@idea-ionic/auth 6.13.0 → 7.0.3

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.
@@ -0,0 +1,84 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { IonicModule } from '@ionic/angular';
5
+ import { RouterModule } from '@angular/router';
6
+ import { IDEATranslationsModule } from '@idea-ionic/common';
7
+ import { IDEASignInPage } from './signIn.page';
8
+ import { IDEASignUpPage } from './signUp.page';
9
+ import { IDEANewPasswordPage } from './newPassword.page';
10
+ import { IDEAResendLinkPage } from './resendLink.page';
11
+ import { IDEAForgotPasswordPage } from './forgotPassword.page';
12
+ import { IDEAConfirmPasswordPage } from './confirmPassword.page';
13
+ import { IDEAMFAChallengePage } from './mfaChallenge.page';
14
+ import { IDEASetupMFAPage } from './setupMFA.page';
15
+ import { IDEAPasswordPolicyComponent } from './passwordPolicy.component';
16
+ import { IDEASetupMFAModule } from './setupMFA/setupMFA.module';
17
+ import * as i0 from "@angular/core";
18
+ import * as i1 from "@angular/router";
19
+ export class IDEAAuthModule {
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: IDEAAuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
21
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.8", ngImport: i0, type: IDEAAuthModule, declarations: [IDEASignInPage,
22
+ IDEASignUpPage,
23
+ IDEANewPasswordPage,
24
+ IDEAResendLinkPage,
25
+ IDEAForgotPasswordPage,
26
+ IDEAConfirmPasswordPage,
27
+ IDEAMFAChallengePage,
28
+ IDEASetupMFAPage,
29
+ IDEAPasswordPolicyComponent], imports: [CommonModule,
30
+ FormsModule,
31
+ IonicModule,
32
+ IDEATranslationsModule, i1.RouterModule, IDEASetupMFAModule] }); }
33
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: IDEAAuthModule, imports: [CommonModule,
34
+ FormsModule,
35
+ IonicModule,
36
+ IDEATranslationsModule,
37
+ RouterModule.forChild([
38
+ { path: '', redirectTo: 'sign-in', pathMatch: 'full' },
39
+ { path: 'sign-in', component: IDEASignInPage },
40
+ { path: 'sign-up', component: IDEASignUpPage },
41
+ { path: 'new-password', component: IDEANewPasswordPage },
42
+ { path: 'mfa-challenge', component: IDEAMFAChallengePage },
43
+ { path: 'setup-mfa', component: IDEASetupMFAPage },
44
+ { path: 'resend-link', component: IDEAResendLinkPage },
45
+ { path: 'forgot-password', component: IDEAForgotPasswordPage },
46
+ { path: 'confirm-password', component: IDEAConfirmPasswordPage }
47
+ ]),
48
+ IDEASetupMFAModule] }); }
49
+ }
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: IDEAAuthModule, decorators: [{
51
+ type: NgModule,
52
+ args: [{
53
+ imports: [
54
+ CommonModule,
55
+ FormsModule,
56
+ IonicModule,
57
+ IDEATranslationsModule,
58
+ RouterModule.forChild([
59
+ { path: '', redirectTo: 'sign-in', pathMatch: 'full' },
60
+ { path: 'sign-in', component: IDEASignInPage },
61
+ { path: 'sign-up', component: IDEASignUpPage },
62
+ { path: 'new-password', component: IDEANewPasswordPage },
63
+ { path: 'mfa-challenge', component: IDEAMFAChallengePage },
64
+ { path: 'setup-mfa', component: IDEASetupMFAPage },
65
+ { path: 'resend-link', component: IDEAResendLinkPage },
66
+ { path: 'forgot-password', component: IDEAForgotPasswordPage },
67
+ { path: 'confirm-password', component: IDEAConfirmPasswordPage }
68
+ ]),
69
+ IDEASetupMFAModule
70
+ ],
71
+ declarations: [
72
+ IDEASignInPage,
73
+ IDEASignUpPage,
74
+ IDEANewPasswordPage,
75
+ IDEAResendLinkPage,
76
+ IDEAForgotPasswordPage,
77
+ IDEAConfirmPasswordPage,
78
+ IDEAMFAChallengePage,
79
+ IDEASetupMFAPage,
80
+ IDEAPasswordPolicyComponent
81
+ ]
82
+ }]
83
+ }] });
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9tb2R1bGVzL2F1dGgvc3JjL2F1dGgubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7O0FBaUNoRSxNQUFNLE9BQU8sY0FBYzs4R0FBZCxjQUFjOytHQUFkLGNBQWMsaUJBWHZCLGNBQWM7WUFDZCxjQUFjO1lBQ2QsbUJBQW1CO1lBQ25CLGtCQUFrQjtZQUNsQixzQkFBc0I7WUFDdEIsdUJBQXVCO1lBQ3ZCLG9CQUFvQjtZQUNwQixnQkFBZ0I7WUFDaEIsMkJBQTJCLGFBMUIzQixZQUFZO1lBQ1osV0FBVztZQUNYLFdBQVc7WUFDWCxzQkFBc0IsbUJBWXRCLGtCQUFrQjsrR0FjVCxjQUFjLFlBN0J2QixZQUFZO1lBQ1osV0FBVztZQUNYLFdBQVc7WUFDWCxzQkFBc0I7WUFDdEIsWUFBWSxDQUFDLFFBQVEsQ0FBQztnQkFDcEIsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRTtnQkFDdEQsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUU7Z0JBQzlDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFO2dCQUM5QyxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFO2dCQUN4RCxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLG9CQUFvQixFQUFFO2dCQUMxRCxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNsRCxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFO2dCQUN0RCxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsc0JBQXNCLEVBQUU7Z0JBQzlELEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBRTthQUNqRSxDQUFDO1lBQ0Ysa0JBQWtCOzsyRkFjVCxjQUFjO2tCQS9CMUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLFdBQVc7d0JBQ1gsc0JBQXNCO3dCQUN0QixZQUFZLENBQUMsUUFBUSxDQUFDOzRCQUNwQixFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFOzRCQUN0RCxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRTs0QkFDOUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUU7NEJBQzlDLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUU7NEJBQ3hELEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsb0JBQW9CLEVBQUU7NEJBQzFELEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7NEJBQ2xELEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUU7NEJBQ3RELEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRTs0QkFDOUQsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFO3lCQUNqRSxDQUFDO3dCQUNGLGtCQUFrQjtxQkFDbkI7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLGNBQWM7d0JBQ2QsY0FBYzt3QkFDZCxtQkFBbUI7d0JBQ25CLGtCQUFrQjt3QkFDbEIsc0JBQXNCO3dCQUN0Qix1QkFBdUI7d0JBQ3ZCLG9CQUFvQjt3QkFDcEIsZ0JBQWdCO3dCQUNoQiwyQkFBMkI7cUJBQzVCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElvbmljTW9kdWxlIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgSURFQVRyYW5zbGF0aW9uc01vZHVsZSB9IGZyb20gJ0BpZGVhLWlvbmljL2NvbW1vbic7XG5cbmltcG9ydCB7IElERUFTaWduSW5QYWdlIH0gZnJvbSAnLi9zaWduSW4ucGFnZSc7XG5pbXBvcnQgeyBJREVBU2lnblVwUGFnZSB9IGZyb20gJy4vc2lnblVwLnBhZ2UnO1xuaW1wb3J0IHsgSURFQU5ld1Bhc3N3b3JkUGFnZSB9IGZyb20gJy4vbmV3UGFzc3dvcmQucGFnZSc7XG5pbXBvcnQgeyBJREVBUmVzZW5kTGlua1BhZ2UgfSBmcm9tICcuL3Jlc2VuZExpbmsucGFnZSc7XG5pbXBvcnQgeyBJREVBRm9yZ290UGFzc3dvcmRQYWdlIH0gZnJvbSAnLi9mb3Jnb3RQYXNzd29yZC5wYWdlJztcbmltcG9ydCB7IElERUFDb25maXJtUGFzc3dvcmRQYWdlIH0gZnJvbSAnLi9jb25maXJtUGFzc3dvcmQucGFnZSc7XG5pbXBvcnQgeyBJREVBTUZBQ2hhbGxlbmdlUGFnZSB9IGZyb20gJy4vbWZhQ2hhbGxlbmdlLnBhZ2UnO1xuaW1wb3J0IHsgSURFQVNldHVwTUZBUGFnZSB9IGZyb20gJy4vc2V0dXBNRkEucGFnZSc7XG5pbXBvcnQgeyBJREVBUGFzc3dvcmRQb2xpY3lDb21wb25lbnQgfSBmcm9tICcuL3Bhc3N3b3JkUG9saWN5LmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IElERUFTZXR1cE1GQU1vZHVsZSB9IGZyb20gJy4vc2V0dXBNRkEvc2V0dXBNRkEubW9kdWxlJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBJb25pY01vZHVsZSxcbiAgICBJREVBVHJhbnNsYXRpb25zTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZS5mb3JDaGlsZChbXG4gICAgICB7IHBhdGg6ICcnLCByZWRpcmVjdFRvOiAnc2lnbi1pbicsIHBhdGhNYXRjaDogJ2Z1bGwnIH0sXG4gICAgICB7IHBhdGg6ICdzaWduLWluJywgY29tcG9uZW50OiBJREVBU2lnbkluUGFnZSB9LFxuICAgICAgeyBwYXRoOiAnc2lnbi11cCcsIGNvbXBvbmVudDogSURFQVNpZ25VcFBhZ2UgfSxcbiAgICAgIHsgcGF0aDogJ25ldy1wYXNzd29yZCcsIGNvbXBvbmVudDogSURFQU5ld1Bhc3N3b3JkUGFnZSB9LFxuICAgICAgeyBwYXRoOiAnbWZhLWNoYWxsZW5nZScsIGNvbXBvbmVudDogSURFQU1GQUNoYWxsZW5nZVBhZ2UgfSxcbiAgICAgIHsgcGF0aDogJ3NldHVwLW1mYScsIGNvbXBvbmVudDogSURFQVNldHVwTUZBUGFnZSB9LFxuICAgICAgeyBwYXRoOiAncmVzZW5kLWxpbmsnLCBjb21wb25lbnQ6IElERUFSZXNlbmRMaW5rUGFnZSB9LFxuICAgICAgeyBwYXRoOiAnZm9yZ290LXBhc3N3b3JkJywgY29tcG9uZW50OiBJREVBRm9yZ290UGFzc3dvcmRQYWdlIH0sXG4gICAgICB7IHBhdGg6ICdjb25maXJtLXBhc3N3b3JkJywgY29tcG9uZW50OiBJREVBQ29uZmlybVBhc3N3b3JkUGFnZSB9XG4gICAgXSksXG4gICAgSURFQVNldHVwTUZBTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIElERUFTaWduSW5QYWdlLFxuICAgIElERUFTaWduVXBQYWdlLFxuICAgIElERUFOZXdQYXNzd29yZFBhZ2UsXG4gICAgSURFQVJlc2VuZExpbmtQYWdlLFxuICAgIElERUFGb3Jnb3RQYXNzd29yZFBhZ2UsXG4gICAgSURFQUNvbmZpcm1QYXNzd29yZFBhZ2UsXG4gICAgSURFQU1GQUNoYWxsZW5nZVBhZ2UsXG4gICAgSURFQVNldHVwTUZBUGFnZSxcbiAgICBJREVBUGFzc3dvcmRQb2xpY3lDb21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBJREVBQXV0aE1vZHVsZSB7fVxuIl19
@@ -459,10 +459,10 @@ export class IDEAAuthService {
459
459
  pattern += `.{${this.passwordPolicy.minLength},}`;
460
460
  return pattern;
461
461
  }
462
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: IDEAAuthService, deps: [{ token: i1.IDEAStorageService }], target: i0.ɵɵFactoryTarget.Injectable }); }
463
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: IDEAAuthService, providedIn: 'root' }); }
462
464
  }
463
- IDEAAuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: IDEAAuthService, deps: [{ token: i1.IDEAStorageService }], target: i0.ɵɵFactoryTarget.Injectable });
464
- IDEAAuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: IDEAAuthService, providedIn: 'root' });
465
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: IDEAAuthService, decorators: [{
465
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: IDEAAuthService, decorators: [{
466
466
  type: Injectable,
467
467
  args: [{ providedIn: 'root' }]
468
468
  }], ctorParameters: function () { return [{ type: i1.IDEAStorageService }]; } });
@@ -476,4 +476,4 @@ export var LoginOutcomeActions;
476
476
  LoginOutcomeActions["MFA_CHALLENGE"] = "mfaChallenge";
477
477
  LoginOutcomeActions["MFA_SETUP"] = "mfaSetup";
478
478
  })(LoginOutcomeActions || (LoginOutcomeActions = {}));
479
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbW9kdWxlcy9hdXRoL3NyYy9hdXRoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLFdBQVcsRUFDWCxvQkFBb0IsRUFDcEIsZUFBZSxFQUNmLG1CQUFtQixFQUlwQixNQUFNLDRCQUE0QixDQUFDO0FBR3BDLE9BQU8sRUFBRSxXQUFXLElBQUksR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFFMUM7O0dBRUc7QUFDSCxNQUFNLG9CQUFvQixHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUVoRTs7OztHQUlHO0FBRUgsTUFBTSxPQUFPLGVBQWU7SUFZMUIsWUFBb0IsT0FBMkI7UUFBM0IsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFKdkMsbUJBQWMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFFeEQsbUJBQWMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7UUFHcEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBQztZQUNsQyxVQUFVLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVTtZQUN0QyxRQUFRLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCO1NBQzNDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNLLGtCQUFrQixDQUFDLFFBQWdCLEVBQUUsR0FBVztRQUN0RCxPQUFPLElBQUkscUJBQXFCLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFF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LDZDQUFzQixDQUFBO0FBQ3hCLENBQUMsRUFMVyxtQkFBbUIsS0FBbkIsbUJBQW1CLFFBSzlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQXV0aGVudGljYXRpb25EZXRhaWxzLFxuICBDb2duaXRvVXNlcixcbiAgQ29nbml0b1VzZXJBdHRyaWJ1dGUsXG4gIENvZ25pdG9Vc2VyUG9vbCxcbiAgQ29nbml0b1JlZnJlc2hUb2tlbixcbiAgQ29nbml0b1VzZXJTZXNzaW9uLFxuICBJU2lnblVwUmVzdWx0LFxuICBDaGFsbGVuZ2VOYW1lXG59IGZyb20gJ2FtYXpvbi1jb2duaXRvLWlkZW50aXR5LWpzJztcbmltcG9ydCB7IElERUFTdG9yYWdlU2VydmljZSB9IGZyb20gJ0BpZGVhLWlvbmljL2NvbW1vbic7XG5cbmltcG9ydCB7IGVudmlyb25tZW50IGFzIGVudiB9IGZyb20gJ0BlbnYnO1xuXG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBDb2duaXRvJ3MgdXNlciBhdHRyaWJ1dGUgd2hpY2ggY29udGFpbnMgdGhlIGtleSBvZiB0aGUgbGFzdCBkZXZpY2UgdG8gbG9naW4gaW4gdGhpcyBwcm9qZWN0LlxuICovXG5jb25zdCBERVZJQ0VfS0VZX0FUVFJJQlVURSA9ICdjdXN0b206Jy5jb25jYXQoZW52LmlkZWEucHJvamVjdCk7XG5cbi8qKlxuICogQ29nbml0byB3cmFwcGVyIHRvIG1hbmFnZSB0aGUgYXV0aGVudGljYXRpb24gZmxvdy5cbiAqXG4gKiBOb3RlOiBpbiBJREVBJ3MgQ29nbml0byB1c2VycyBwb29scywgdGhlIGVtYWlsIGlzIGFuIGFsaWFzIG9mIHRoZSB1c2VybmFtZS5cbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBJREVBQXV0aFNlcnZpY2Uge1xuICBwcml2YXRlIHVzZXJQb29sOiBDb2duaXRvVXNlclBvb2w7XG5cbiAgY2hhbGxlbmdlVXNlcm5hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSBjaGFsbGVuZ2VQYXNzd29yZDogc3RyaW5nO1xuXG4gIHByaXZhdGUgbmV3QWNjb3VudEp1c3RSZWdpc3RlcmVkOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBtZmFQcm9qZWN0TmFtZSA9IGVudi5pZGVhLmFwcC50aXRsZSA/PyBlbnYuaWRlYS5wcm9qZWN0O1xuXG4gIHByaXZhdGUgcGFzc3dvcmRQb2xpY3kgPSBlbnYuaWRlYS5hdXRoLnBhc3N3b3JkUG9saWN5O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmFnZTogSURFQVN0b3JhZ2VTZXJ2aWNlKSB7XG4gICAgdGhpcy51c2VyUG9vbCA9IG5ldyBDb2duaXRvVXNlclBvb2woe1xuICAgICAgVXNlclBvb2xJZDogZW52LmF3cy5jb2duaXRvLnVzZXJQb29sSWQsXG4gICAgICBDbGllbnRJZDogZW52LmF3cy5jb2duaXRvLnVzZXJQb29sQ2xpZW50SWRcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmVwYXJlIHRoZSBuZWNlc3Nhcnkgc3RydWN0dXJlIHRvIGdldCBhdXRob3JpemVkIGluIENvZ25pdG8uXG4gICAqL1xuICBwcml2YXRlIHByZXBhcmVBdXRoRGV0YWlscyh1c2VybmFtZTogc3RyaW5nLCBwd2Q6IHN0cmluZyk6IEF1dGhlbnRpY2F0aW9uRGV0YWlscyB7XG4gICAgcmV0dXJuIG5ldyBBdXRoZW50aWNhdGlvbkRldGFpbHMoeyBVc2VybmFtZTogdXNlcm5hbWUsIFBhc3N3b3JkOiBwd2QgfSk7XG4gIH1cbiAgLyoqXG4gICAqIFByZXBhcmUgdGhlIG5lY2Vzc2FyeSBzdHJ1Y3R1cmUgdG8gaWRlbnRpZnkgYSBDb2duaXRvIHVzZXIuXG4gICAqL1xuICBwcmVwYXJlQ29nbml0b1VzZXIodXNlcm5hbWU6IHN0cmluZyk6IENvZ25pdG9Vc2VyIHtcbiAgICByZXR1cm4gbmV3IENvZ25pdG9Vc2VyKHsgVXNlcm5hbWU6IHVzZXJuYW1lLCBQb29sOiB0aGlzLnVzZXJQb29sIH0pO1xuICB9XG4gIC8qKlxuICAgKiBQcmVwYXJlIGEgdXNlciBhdHRyaWJ1dGUgKHRoZXkgYXJlIGFsbCBzdHJpbmdzKSBpbiBDb2duaXRvJ3MgZm9ybWF0LlxuICAgKi9cbiAgcHJpdmF0ZSBwcmVwYXJlVXNlckF0dHJpYnV0ZShuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiBDb2duaXRvVXNlckF0dHJpYnV0ZSB7XG4gICAgcmV0dXJuIG5ldyBDb2duaXRvVXNlckF0dHJpYnV0ZSh7IE5hbWU6IG5hbWUsIFZhbHVlOiB2YWx1ZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQZXJmb3JtIGEgbG9naW4gdGhyb3VnaCB1c2VybmFtZSBhbmQgcGFzc3dvcmQuXG4gICAqL1xuICBsb2dpbih1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogUHJvbWlzZTxMb2dpbk91dGNvbWVBY3Rpb25zPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpOiB2b2lkID0+IHtcbiAgICAgIGNvbnN0IHVzZXIgPSB0aGlzLnByZXBhcmVDb2duaXRvVXNlcih1c2VybmFtZSk7XG4gICAgICB1c2VyLmF1dGhlbnRpY2F0ZVVzZXIodGhpcy5wcmVwYXJlQXV0aERldGFpbHModXNlcm5hbWUsIHBhc3N3b3JkKSwge1xuICAgICAgICBvblN1Y2Nlc3M6ICgpOiB2b2lkID0+XG4gICAgICAgICAgcmVzb2x2ZShlbnYuaWRlYS5hdXRoLmZvcmNlTG9naW5XaXRoTUZBID8gTG9naW5PdXRjb21lQWN0aW9ucy5NRkFfU0VUVVAgOiBMb2dpbk91dGNvbWVBY3Rpb25zLk5PTkUpLFxuICAgICAgICBvbkZhaWx1cmU6IChlcnI6IEVycm9yKTogdm9pZCA9PiByZWplY3QoZXJyKSxcbiAgICAgICAgbmV3UGFzc3dvcmRSZXF1aXJlZDogKCk6IHZvaWQgPT4ge1xuICAgICAgICAgIHRoaXMuY2hhbGxlbmdlVXNlcm5hbWUgPSB1c2VybmFtZTtcbiAgICAgICAgICB0aGlzLmNoYWxsZW5nZVBhc3N3b3JkID0gcGFzc3dvcmQ7XG4gICAgICAgICAgcmVzb2x2ZShMb2dpbk91dGNvbWVBY3Rpb25zLk5FV19QQVNTV09SRCk7XG4gICAgICAgIH0sXG4gICAgICAgIHRvdHBSZXF1aXJlZDogKCk6IHZvaWQgPT4ge1xuICAgICAgICAgIHRoaXMuY2hhbGxlbmdlVXNlcm5hbWUgPSB1c2VybmFtZTtcbiAgICAgICAgICB0aGlzLmNoYWxsZW5nZVBhc3N3b3JkID0gcGFzc3dvcmQ7XG4gICAgICAgICAgcmVzb2x2ZShMb2dpbk91dGNvbWVBY3Rpb25zLk1GQV9DSEFMTEVOR0UpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuICAvKipcbiAgICogQ29tcGxldGUgdGhlIG5ldyBwYXNzd29yZCBmbG93IGluIHRoZSBhdXRoZW50aWNhdGlvbi5cbiAgICovXG4gIGNvbmZpcm1OZXdQYXNzd29yZChuZXdQYXNzd29yZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpOiB2b2lkID0+IHtcbiAgICAgIGNvbnN0IHVzZXIgPSB0aGlzLnByZXBhcmVDb2duaXRvVXNlcih0aGlzLmNoYWxsZW5nZVVzZXJuYW1lKTtcbiAgICAgIHVzZXIuYXV0aGVudGljYXRlVXNlcih0aGlzLnByZXBhcmVBdXRoRGV0YWlscyh0aGlzLmNoYWxsZW5nZVVzZXJuYW1lLCB0aGlzLmNoYWxsZW5nZVBhc3N3b3JkKSwge1xuICAgICAgICBvblN1Y2Nlc3M6ICgpOiB2b2lkID0+IHJlc29sdmUoKSxcbiAgICAgICAgb25GYWlsdXJlOiAoZXJyOiBFcnJvcik6IHZvaWQgPT4gcmVqZWN0KGVyciksXG4gICAgICAgIG5ld1Bhc3N3b3JkUmVxdWlyZWQ6ICgpOiB2b2lkID0+XG4gICAgICAgICAgdXNlci5jb21wbGV0ZU5ld1Bhc3N3b3JkQ2hhbGxlbmdlKFxuICAgICAgICAgICAgbmV3UGFzc3dvcmQsXG4gICAgICAgICAgICB7fSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgb25TdWNjZXNzOiAoKTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFsbGVuZ2VVc2VybmFtZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFsbGVuZ2VQYXNzd29yZCA9IG51bGw7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBvbkZhaWx1cmU6IChlcnI6IEVycm9yKTogdm9pZCA9PiByZWplY3QoZXJyKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIClcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG4gIC8qKlxuICAgKiAgQ29tcGxldGUgdGhlIE1GQSBjaGFsbGVuZ2UgZmxvdyBpbiB0aGUgYXV0aGVudGljYXRpb24uXG4gICAqL1xuICBjb21wbGV0ZU1GQUNoYWxsZW5nZShvdHBDb2RlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCk6IHZvaWQgPT4ge1xuICAgICAgY29uc3QgdXNlciA9IHRoaXMucHJlcGFyZUNvZ25pdG9Vc2VyKHRoaXMuY2hhbGxlbmdlVXNlcm5hbWUpO1xuICAgICAgdXNlci5hdXRoZW50aWNhdGVVc2VyKHRoaXMucHJlcGFyZUF1dGhEZXRhaWxzKHRoaXMuY2hhbGxlbmdlVXNlcm5hbWUsIHRoaXMuY2hhbGxlbmdlUGFzc3dvcmQpLCB7XG4gICAgICAgIG9uU3VjY2VzczogKCk6IHZvaWQgPT4gcmVzb2x2ZSgpLFxuICAgICAgICBvbkZhaWx1cmU6IChlcnI6IEVycm9yKTogdm9pZCA9PiByZWplY3QoZXJyKSxcbiAgICAgICAgdG90cFJlcXVpcmVkOiAoY2hhbGxlbmdlTmFtZTogQ2hhbGxlbmdlTmFtZSk6IHZvaWQgPT5cbiAgICAgICAgICB1c2VyLnNlbmRNRkFDb2RlKFxuICAgICAgICAgICAgb3RwQ29kZSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgb25TdWNjZXNzOiAoKTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFsbGVuZ2VVc2VybmFtZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFsbGVuZ2VQYXNzd29yZCA9IG51bGw7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBvbkZhaWx1cmU6IGVyciA9PiByZWplY3QoZXJyKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNoYWxsZW5nZU5hbWVcbiAgICAgICAgICApXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuICAvKipcbiAgICogUmVnaXN0ZXIgYSBuZXcgdXNlciBhIHNldCBpdHMgZGVmYXVsdCBhdHRyaWJ1dGVzLlxuICAgKi9cbiAgcmVnaXN0ZXIodXNlcm5hbWU6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZywgYXR0cmlidXRlcz86IGFueSk6IFByb21pc2U8Q29nbml0b1VzZXI+IHtcbiAgICBhdHRyaWJ1dGVzID0gYXR0cmlidXRlcyB8fCB7fTtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCk6IHZvaWQgPT4ge1xuICAgICAgLy8gYWRkIGF0dHJpYnV0ZXMgbGlrZSB0aGUgZW1haWwgYWRkcmVzcyBhbmQgdGhlIGZ1bGxuYW1lXG4gICAgICBjb25zdCBhdHRycyA9IFtdO1xuICAgICAgZm9yIChjb25zdCBwcm9wIGluIGF0dHJpYnV0ZXMpXG4gICAgICAgIGlmIChhdHRyaWJ1dGVzW3Byb3BdKSBhdHRycy5wdXNoKHRoaXMucHJlcGFyZVVzZXJBdHRyaWJ1dGUocHJvcCwgYXR0cmlidXRlc1twcm9wXSkpO1xuICAgICAgLy8gYWRkIHRoZSBlbWFpbCwgd2hpY2ggaXMgZXF1YWwgdG8gdGhlIHVzZXJuYW1lIGZvciBtb3N0IG9mIG91ciBQb29sc1xuICAgICAgaWYgKCFhdHRyaWJ1dGVzLmVtYWlsKSBhdHRycy5wdXNoKHRoaXMucHJlcGFyZVVzZXJBdHRyaWJ1dGUoJ2VtYWlsJywgdXNlcm5hbWUpKTtcbiAgICAgIC8vIHJlZ2lzdGVyIHRoZSBuZXcgdXNlciB0byB0aGUgcG9vbFxuICAgICAgdGhpcy51c2VyUG9vbC5zaWduVXAodXNlcm5hbWUsIHBhc3N3b3JkLCBhdHRycywgbnVsbCwgKGVycjogRXJyb3IsIHJlczogSVNpZ25VcFJlc3VsdCk6IHZvaWQgPT4ge1xuICAgICAgICBpZiAoZXJyKSByZXR1cm4gcmVqZWN0KGVycik7XG4gICAgICAgIHRoaXMubmV3QWNjb3VudEp1c3RSZWdpc3RlcmVkID0gdXNlcm5hbWU7XG4gICAgICAgIHJlc29sdmUocmVzLnVzZXIpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIEluIGNhc2UgIG5ldyBhY2NvdW50IGhhcyBqdXN0IGJlZW4gcmVnaXN0ZXJlZCwgcmV0dXJuIHRoZSB1c2VybmFtZS5cbiAgICovXG4gIGdldE5ld0FjY291bnRKdXN0UmVnaXN0ZXJlZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm5ld0FjY291bnRKdXN0UmVnaXN0ZXJlZDtcbiAgfVxuICAvKipcbiAgICogQ29uZmlybSBhIG5ldyByZWdpc3RyYXRpb24gdGhyb3VnaCB0aGUgY29uZmlybWF0aW9uIGNvZGUgc2VudCBieSBDb2duaXRvLlxuICAgKi9cbiAgY29uZmlybVJlZ2lzdHJhdGlvbih1c2VybmFtZTogc3RyaW5nLCBjb2RlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCk6IHZvaWQgPT4ge1xuICAgICAgdGhpcy5wcmVwYXJlQ29nbml0b1VzZXIodXNlcm5hbWUpLmNvbmZpcm1SZWdpc3RyYXRpb24oY29kZSwgdHJ1ZSwgKGVycjogRXJyb3IpOiB2b2lkID0+XG4gICAgICAgIGVyciA/IHJlamVjdChlcnIpIDogcmVzb2x2ZSgpXG4gICAgICApO1xuICAgIH0pO1xuICB9XG4gIC8qKlxuICAgKiBTZW5kIGFnYWluIGEgY29uZmlybWF0aW9uIGNvZGUgZm9yIGEgbmV3IHJlZ2lzdHJhdGlvbi5cbiAgICovXG4gIHJlc2VuZENvbmZpcm1hdGlvbkNvZGUodXNlcm5hbWU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KTogdm9pZCA9PiB7XG4gICAgICB0aGlzLnByZXBhcmVDb2duaXRvVXNlcih1c2VybmFtZSkucmVzZW5kQ29uZmlybWF0aW9uQ29kZSgoZXJyOiBFcnJvcik6IHZvaWQgPT4gKGVyciA/IHJlamVjdChlcnIpIDogcmVzb2x2ZSgpKSk7XG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIExvZ291dCB0aGUgY3VycmVudGx5IHNpZ25lZC1pbiB1c2VyLlxuICAgKi9cbiAgbG9nb3V0KG9wdGlvbnM/OiB7IGdsb2JhbDogYm9vbGVhbiB9KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgb3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oeyBnbG9iYWw6IGZhbHNlIH0sIG9wdGlvbnMpO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KTogdm9pZCA9PiB7XG4gICAgICAvLyByZW1vdmUgdGhlIHJlZnJlc2ggdG9rZW4gcHJldmlvc2x5IHNhdmVkXG4gICAgICB0aGlzLnN0b3JhZ2UucmVtb3ZlKCdBdXRoUmVmcmVzaFRva2VuJykudGhlbihcbiAgICAgICAgKCk6IFByb21pc2U8dm9pZD4gPT5cbiAgICAgICAgICAvLyByZW1vdmUgdGhlIG9wdGlvbmFsIGF1dGggZGV0YWlsc1xuICAgICAgICAgIHRoaXMuc3RvcmFnZS5yZW1vdmUoJ0F1dGhVc2VyRGV0YWlscycpLnRoZW4oKCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgLy8gZ2V0IHRoZSB1c2VyIGFuZCB0aGUgc2Vzc2lvblxuICAgICAgICAgICAgY29uc3QgdXNlciA9IHRoaXMudXNlclBvb2wuZ2V0Q3VycmVudFVzZXIoKTtcbiAgICAgICAgICAgIHVzZXIuZ2V0U2Vzc2lvbihhc3luYyAoZXJyOiBFcnJvcik6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgICAgICAgICAvLyBpZiB0aGUgc2Vzc2lvbiBpcyBhY3RpdmUsIHJ1biB0aGUgb25saW5lIHNpZ24tb3V0OyBvdGhlcndpc2UsIG9ubHkgdGhlIGxvY2FsIGRhdGEgaGFzIGJlZW4gZGVsZXRlZFxuICAgICAgICAgICAgICBpZiAoZXJyKSByZXR1cm4gcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICAvLyBpZiBhIHJlZmVyZW5jZSB0byB0aGUgZGV2aWNlIHdhcyBzYXZlZCwgZm9yZ2V0IGl0XG4gICAgICAgICAgICAgIGlmIChlbnYuaWRlYS5hdXRoLnNpbmdsZVNpbXVsdGFuZW91c1Nlc3Npb24pIGF3YWl0IHRoaXMuc2V0Q3VycmVudERldmljZUZvclByb2plY3QobnVsbCk7XG4gICAgICAgICAgICAgIC8vIHNpZ24tb3V0IGZyb20gdGhlIHBvb2wgKHRlcm1pbmF0ZSB0aGUgY3VycmVudCBzZXNzaW9uIG9yIGFsbCB0aGUgc2Vzc2lvbnMpXG4gICAgICAgICAgICAgIGlmIChvcHRpb25zLmdsb2JhbClcbiAgICAgICAgICAgICAgICB1c2VyLmdsb2JhbFNpZ25PdXQoeyBvblN1Y2Nlc3M6ICgpOiB2b2lkID0+IHJlc29sdmUoKSwgb25GYWlsdXJlOiBlcnIgPT4gcmVqZWN0KGVycikgfSk7XG4gICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHVzZXIuc2lnbk91dCgpO1xuICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIFNlbmQgYSBwYXNzd29yZCByZXNldCByZXF1ZXN0LlxuICAgKi9cbiAgZm9yZ290UGFzc3dvcmQodXNlcm5hbWU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KTogdm9pZCA9PiB7XG4gICAgICB0aGlzLnByZXBhcmVDb2duaXRvVXNlcih1c2VybmFtZSkuZm9yZ290UGFzc3dvcmQoe1xuICAgICAgICBvblN1Y2Nlc3M6ICgpOiB2b2lkID0+IHJlc29sdmUoKSxcbiAgICAgICAgb25GYWlsdXJlOiAoZXJyOiBFcnJvcik6IHZvaWQgPT4gcmVqZWN0KGVycilcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG4gIC8qKlxuICAgKiBDb25maXJtIGEgbmV3IHBhc3N3b3JkIGFmdGVyIGEgcGFzc3dvcmQgcmVzZXQgcmVxdWVzdC5cbiAgICovXG4gIGNvbmZpcm1QYXNzd29yZCh1c2VybmFtZTogc3RyaW5nLCBjb2RlOiBzdHJpbmcsIG5ld1B3ZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpOiB2b2lkID0+IHtcbiAgICAgIHRoaXMucHJlcGFyZUNvZ25pdG9Vc2VyKHVzZXJuYW1lKS5jb25maXJtUGFzc3dvcmQoY29kZSwgbmV3UHdkLCB7XG4gICAgICAgIG9uU3VjY2VzczogKCk6IHZvaWQgPT4gcmVzb2x2ZSgpLFxuICAgICAgICBvbkZhaWx1cmU6IChlcnI6IEVycm9yKTogdm9pZCA9PiByZWplY3QoZXJyKVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIEdldHMgdGhlIFVSTCBmb3IgZW5hYmxpbmcgTUZBLiBUaGlzIFVSTCBjYW4gYmUgdXNlZCB0byBnZW5lcmF0ZSBhIFFSIENvZGUgdG8gcmVhZCB3aXRoIGFuIGF1dGhlbnRpY2F0b3IgYXBwLlxuICAgKi9cbiAgZ2V0VVJMRm9yRW5hYmxpbmdNRkEoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCk6IHZvaWQgPT4ge1xuICAgICAgY29uc3QgdXNlciA9IHRoaXMudXNlclBvb2wuZ2V0Q3VycmVudFVzZXIoKTtcbiAgICAgIGlmICghdXNlcikgcmV0dXJuIHJlamVjdCgpO1xuICAgICAgdXNlci5nZXRTZXNzaW9uKChlcnI6IEVycm9yKTogdm9pZCA9PiB7XG4gICAgICAgIGlmIChlcnIpIHJldHVybiByZWplY3QoZXJyKTtcbiAgICAgICAgdXNlci5hc3NvY2lhdGVTb2Z0d2FyZVRva2VuKHtcbiAgICAgICAgICBhc3NvY2lhdGVTZWNyZXRDb2RlOiAoc2VjcmV0Q29kZTogc3RyaW5nKTogdm9pZCA9PlxuICAgICAgICAgICAgcmVzb2x2ZShgb3RwYXV0aDovL3RvdHAvJHtlbmNvZGVVUkkodGhpcy5tZmFQcm9qZWN0TmFtZSl9P3NlY3JldD0ke3NlY3JldENvZGV9YCksXG4gICAgICAgICAgb25GYWlsdXJlOiAoZXJyOiBhbnkpOiB2b2lkID0+IHJlamVjdChlcnIpXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIENoZWNrIHdoZXRoZXIgdGhlIHVzZXIgaGFzIE1GQSBlbmFibGVkLlxuICAgKi9cbiAgY2hlY2tJZlVzZXJIYXNNRkFFbmFibGVkKGJ5cGFzc0NhY2hlID0gZmFsc2UpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCk6IHZvaWQgPT4ge1xuICAgICAgY29uc3QgdXNlciA9IHRoaXMudXNlclBvb2wuZ2V0Q3VycmVudFVzZXIoKTtcbiAgICAgIGlmICghdXNlcikgcmV0dXJuIHJlamVjdCgpO1xuICAgICAgdXNlci5nZXRTZXNzaW9uKChlcnI6IEVycm9yKTogdm9pZCA9PiB7XG4gICAgICAgIGlmIChlcnIpIHJldHVybiByZWplY3QoZXJyKTtcbiAgICAgICAgdXNlci5nZXRVc2VyRGF0YShcbiAgICAgICAgICAoZXJyLCBkYXRhKTogdm9pZCA9PiB7XG4gICAgICAgICAgICBpZiAoZXJyKSByZXR1cm4gcmVqZWN0KGVycik7XG4gICAgICAgICAgICBjb25zdCBpc01GQUVuYWJsZWQgPSAhIShkYXRhLlVzZXJNRkFTZXR0aW5nTGlzdCAmJiBkYXRhLlVzZXJNRkFTZXR0aW5nTGlzdC5pbmNsdWRlcygnU09GVFdBUkVfVE9LRU5fTUZBJykpO1xuICAgICAgICAgICAgcmVzb2x2ZShpc01GQUVuYWJsZWQpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgeyBieXBhc3NDYWNoZSB9XG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuICAvKipcbiAgICogQ29uZmlndXJlIGEgTUZBIGRldmljZSBmb3IgdGhlIHVzZXIuXG4gICAqL1xuICBwcml2YXRlIHNldE1GQURldmljZShvdHA6IHN0cmluZywgbWZhRGV2aWNlTmFtZTogc3RyaW5nLCBlbmFibGVkID0gdHJ1ZSwgcHJlZmVycmVkID0gdHJ1ZSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KTogdm9pZCA9PiB7XG4gICAgICBjb25zdCB1c2VyID0gdGhpcy51c2VyUG9vbC5nZXRDdXJyZW50VXNlcigpO1xuICAgICAgaWYgKCF1c2VyKSByZXR1cm4gcmVqZWN0KCk7XG4gICAgICB1c2VyLmdldFNlc3Npb24oKGVycjogRXJyb3IpOiB2b2lkID0+IHtcbiAgICAgICAgaWYgKGVycikgcmV0dXJuIHJlamVjdChlcnIpO1xuICAgICAgICB1c2VyLnZlcmlmeVNvZnR3YXJlVG9rZW4ob3RwLCBtZmFEZXZpY2VOYW1lLCB7XG4gICAgICAgICAgb25TdWNjZXNzOiAoKTogdm9pZCA9PlxuICAgICAgICAgICAgdXNlci5zZXRVc2VyTWZhUHJlZmVyZW5jZShudWxsLCB7IEVuYWJsZWQ6IGVuYWJsZWQsIFByZWZlcnJlZE1mYTogcHJlZmVycmVkIH0sIChlcnI6IEVycm9yKTogdm9pZCA9PlxuICAgICAgICAgICAgICBlcnIgPyByZWplY3QoZXJyKSA6IHJlc29sdmUoKVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICBvbkZhaWx1cmU6IChlcnIpOiB2b2lkID0+IHJlamVjdChlcnIpXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIEVuYWJsZSBhIG5ldyBNRkEgZGV2aWNlIGZvciB0aGUgdXNlciBieSBpbnNlcnRpbmcgYW4gT1RQIGNvZGUgZ2VuZXJhdGVkIGJ5IGl0LlxuICAgKi9cbiAgZW5hYmxlTUZBKG90cDogc3RyaW5nLCBtZmFEZXZpY2VOYW1lID0gJ2RlZmF1bHQnKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuc2V0TUZBRGV2aWNlKG90cCwgbWZhRGV2aWNlTmFtZSwgdHJ1ZSwgdHJ1ZSk7XG4gIH1cbiAgLyoqXG4gICAqIERpc2FibGUgTUZBIGZvciBhIHVzZXIgYnkgaW5zZXJ0aW5nIGFuIE9UUCBjb2RlIGdlbmVyYXRlZCBieSBpdC5cbiAgICovXG4gIGRpc2FibGVNRkEob3RwOiBzdHJpbmcsIG1mYURldmljZU5hbWUgPSAnZGVmYXVsdCcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5zZXRNRkFEZXZpY2Uob3RwLCBtZmFEZXZpY2VOYW1lLCBmYWxzZSwgZmFsc2UpO1xuICB9XG4gIC8qKlxuICAgKiBDaGVjayBpZiBhIHVzZXIgaXMgY3VycmVudGx5IGF1dGhlbnRpY2F0ZWQuXG4gICAqIEBwYXJhbSBvZmZsaW5lQWxsb3dlZCBpZiBzZXQgYW5kIGlmIG9mZmxpbmUsIHNraXAgYXV0aGVudGljYXRpb24gYW5kIHJldHJpZXZlIGRhdGEgbG9jYWxseVxuICAgKiBAcGFyYW0gZ2V0RnJlc2hJZFRva2VuT25FeHAgY2IgZnVuY3Rpb24gdG8gZXhlY3V0ZSB3aGVuIHRoZSBpZFRva2VuIGlzIHJlZnJlc2hlZFxuICAgKi9cbiAgaXNBdXRoZW50aWNhdGVkKG9mZmxpbmVBbGxvd2VkOiBib29sZWFuLCBnZXRGcmVzaElkVG9rZW5PbkV4cD86IChmcmVzaElkVG9rZW46IHN0cmluZykgPT4gdm9pZCk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpOiB2b2lkID0+IHtcbiAgICAgIGlmIChvZmZsaW5lQWxsb3dlZCAmJiAhbmF2aWdhdG9yLm9uTGluZSkge1xuICAgICAgICB0aGlzLnN0b3JhZ2UuZ2V0KCdBdXRoVXNlckRldGFpbHMnKS50aGVuKHVzZXJEZXRhaWxzID0+IHJlc29sdmUoeyBpZFRva2VuOiBudWxsLCB1c2VyRGV0YWlscyB9KSk7XG4gICAgICAgIC8vIHJlLWV4ZWN1dGUgdGhlIG1ldGhvZCB3aGVuIGJhY2sgb25saW5lLCBzbyB0aGF0IHlvdSBjYW4gcmV0cmlldmUgYSB0b2tlbiB0byBtYWtlIHJlcXVlc3RzXG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAgICdvbmxpbmUnLFxuICAgICAgICAgICgpOiBQcm9taXNlPHZvaWQ+ID0+XG4gICAgICAgICAgICB0aGlzLmlzQXV0aGVudGljYXRlZCh0cnVlLCBnZXRGcmVzaElkVG9rZW5PbkV4cClcbiAgICAgICAgICAgICAgLy8gc2V0IHRoZSBuZXcgdG9rZW4gYXMgaWYgaXQgd2FzIHJlZnJlc2hlZFxuICAgICAgICAgICAgICAudGhlbihyZXN1bHQgPT4gZ2V0RnJlc2hJZFRva2VuT25FeHAocmVzdWx0LmlkVG9rZW4pKVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgdXNlciA9IHRoaXMudXNlclBvb2wuZ2V0Q3VycmVudFVzZXIoKTtcbiAgICAgICAgaWYgKCF1c2VyKSByZXR1cm4gcmVqZWN0KCk7XG4gICAgICAgIHVzZXIuZ2V0U2Vzc2lvbigoZXJyOiBFcnJvciwgc2Vzc2lvbjogQ29nbml0b1VzZXJTZXNzaW9uKTogdm9pZCA9PiB7XG4gICAgICAgICAgaWYgKGVycikgcmV0dXJuIHJlamVjdChlcnIpO1xuICAgICAgICAgIHVzZXIuZ2V0VXNlckRhdGEoXG4gICAgICAgICAgICAoZXJyLCBkYXRhKTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgIGlmIChlcnIpIHJldHVybiByZWplY3QoZXJyKTtcbiAgICAgICAgICAgICAgY29uc3QgaXNNRkFFbmFibGVkID0gISEoXG4gICAgICAgICAgICAgICAgZGF0YS5Vc2VyTUZBU2V0dGluZ0xpc3QgJiYgZGF0YS5Vc2VyTUZBU2V0dGluZ0xpc3QuaW5jbHVkZXMoJ1NPRlRXQVJFX1RPS0VOX01GQScpXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGlmICghaXNNRkFFbmFibGVkICYmIGVudi5pZGVhLmF1dGguZm9yY2VMb2dpbldpdGhNRkEpXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlamVjdChuZXcgRXJyb3IoTG9naW5PdXRjb21lQWN0aW9ucy5NRkFfU0VUVVApKTtcbiAgICAgICAgICAgICAgdXNlci5nZXRVc2VyQXR0cmlidXRlcygoZTogRXJyb3IsIGF0dHJpYnV0ZXM6IENvZ25pdG9Vc2VyQXR0cmlidXRlW10pOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZSkgcmV0dXJuIHJlamVjdChlKTtcbiAgICAgICAgICAgICAgICAvLyByZW1hcCB1c2VyIGF0dHJpYnV0ZXNcbiAgICAgICAgICAgICAgICBjb25zdCB1c2VyRGV0YWlsczogYW55ID0ge307XG4gICAgICAgICAgICAgICAgYXR0cmlidXRlcy5mb3JFYWNoKChhOiBDb2duaXRvVXNlckF0dHJpYnV0ZSk6IHN0cmluZyA9PiAodXNlckRldGFpbHNbYS5nZXROYW1lKCldID0gYS5nZXRWYWx1ZSgpKSk7XG4gICAgICAgICAgICAgICAgLy8gYWRkIHRoZSB1c2VyJ3MgZ3JvdXBzIHRvIHRoZSBhdHRyaWJ1dGVzXG4gICAgICAgICAgICAgICAgY29uc3Qgc2Vzc2lvbkluZm8gPSBzZXNzaW9uLmdldEFjY2Vzc1Rva2VuKCkuZGVjb2RlUGF5bG9hZCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGdyb3Vwczogc3RyaW5nW10gPSBzZXNzaW9uSW5mb1snY29nbml0bzpncm91cHMnXSB8fCBbXTtcbiAgICAgICAgICAgICAgICB1c2VyRGV0YWlsc1snZ3JvdXBzJ10gPSBncm91cHM7XG4gICAgICAgICAgICAgICAgLy8gcnVuIHNvbWUgY2hlY2tzIGNvbnNpZGVyaW5nIHRoZSB1c2VyJ3MgZ3JvdXBzIGFuZCBkZXZpY2VzIChiYXNlZCBvbiB0aGUgcHJvamVjdCdzIGNvbmZpZ3VyYXRpb24pXG4gICAgICAgICAgICAgICAgdGhpcy5ydW5Qb3N0QXV0aENoZWNrcyh1c2VyRGV0YWlscywgZXJyID0+IHtcbiAgICAgICAgICAgICAgICAgIC8vIGluIGNhc2Ugc29tZSBjaGVjayBmYWlsZWQsIHJlamVjdCB0aGUgYXV0aG9yaXNhdGlvbiBmbG93XG4gICAgICAgICAgICAgICAgICBpZiAoZXJyKSByZXR1cm4gcmVqZWN0KGVycik7XG4gICAgICAgICAgICAgICAgICAvLyAoYXN5bmMpIHNhdmUgdGhlIHJlZnJlc2ggdG9rZW4gc28gaXQgY2FuIGJlIGFjY2Vzc2VkIGJ5IG90aGVyIHByb2NlZHVyZXNcbiAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcmFnZS5zZXQoJ0F1dGhSZWZyZXNoVG9rZW4nLCBzZXNzaW9uLmdldFJlZnJlc2hUb2tlbigpLmdldFRva2VuKCkpO1xuICAgICAgICAgICAgICAgICAgLy8gc2V0IGEgdGltZXIgdG8gbWFuYWdlIHRoZSBhdXRvcmVmcmVzaCBvZiB0aGUgaWRUb2tlbiAodGhyb3VnaCB0aGUgcmVmcmVzaFRva2VuKVxuICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChcbiAgICAgICAgICAgICAgICAgICAgKCk6IHZvaWQgPT4gdGhpcy5yZWZyZXNoU2Vzc2lvbih1c2VyLCBzZXNzaW9uLmdldFJlZnJlc2hUb2tlbigpLmdldFRva2VuKCksIGdldEZyZXNoSWRUb2tlbk9uRXhwKSxcbiAgICAgICAgICAgICAgICAgICAgMTUgKiA2MCAqIDEwMDBcbiAgICAgICAgICAgICAgICAgICk7IC8vIGV2ZXJ5IDE1IG1pbnV0ZXNcbiAgICAgICAgICAgICAgICAgIC8vIChhc3luYykgaWYgb2ZmbGluZUFsbG93ZWQsIHNhdmUgZGF0YSBsb2NhbGx5LCB0byB1c2UgaXQgbmV4dCB0aW1lIHdlJ2xsIGJlIG9mZmxpbmVcbiAgICAgICAgICAgICAgICAgIGlmIChvZmZsaW5lQWxsb3dlZCkgdGhpcy5zdG9yYWdlLnNldCgnQXV0aFVzZXJEZXRhaWxzJywgdXNlckRldGFpbHMpO1xuICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIHRoZSBpZFRva2VuICh0byB1c2Ugd2l0aCBBUEkpXG4gICAgICAgICAgICAgICAgICByZXNvbHZlKHsgaWRUb2tlbjogc2Vzc2lvbi5nZXRJZFRva2VuKCkuZ2V0Snd0VG9rZW4oKSwgdXNlckRldGFpbHMgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHsgYnlwYXNzQ2FjaGU6IHRydWUgfVxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIC8qKlxuICAgKiBIZWxwZXIgdG8gcmVmcmVzaCB0aGUgc2Vzc2lvbiBldmVyeSBOIG1pbnV0ZXMuXG4gICAqL1xuICBwcml2YXRlIHJlZnJlc2hTZXNzaW9uKHVzZXI6IENvZ25pdG9Vc2VyLCByZWZyZXNoVG9rZW46IHN0cmluZywgY2FsbGJhY2s6IChmcmVzaElkVG9rZW46IHN0cmluZykgPT4gdm9pZCk6IHZvaWQge1xuICAgIHVzZXIucmVmcmVzaFNlc3Npb24oXG4gICAgICBuZXcgQ29nbml0b1JlZnJlc2hUb2tlbih7IFJlZnJlc2hUb2tlbjogcmVmcmVzaFRva2VuIH0pLFxuICAgICAgKGVycjogRXJyb3IsIHNlc3Npb246IENvZ25pdG9Vc2VyU2Vzc2lvbik6IHZvaWQgPT4ge1xuICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgLy8gdHJ5IGFnYWluIGluIDEgbWludXRlXG4gICAgICAgICAgc2V0VGltZW91dCgoKTogdm9pZCA9PiB0aGlzLnJlZnJlc2hTZXNzaW9uKHVzZXIsIHJlZnJlc2hUb2tlbiwgY2FsbGJhY2spLCAxICogNjAgKiAxMDAwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyAoYXN5bmMpIHNhdmUgdGhlIHJlZnJlc2ggdG9rZW4gc28gaXQgY2FuIGJlIGFjY2Vzc2VkIGJ5IG90aGVyIHByb2NlZHVyZXNcbiAgICAgICAgICB0aGlzLnN0b3JhZ2Uuc2V0KCdBdXRoUmVmcmVzaFRva2VuJywgc2Vzc2lvbi5nZXRSZWZyZXNoVG9rZW4oKS5nZXRUb2tlbigpKTtcbiAgICAgICAgICAvLyByZXBlYXQgZXZlcnkgMTUgbWludXRlc1xuICAgICAgICAgIHNldFRpbWVvdXQoXG4gICAgICAgICAgICAoKTogdm9pZCA9PiB0aGlzLnJlZnJlc2hTZXNzaW9uKHVzZXIsIHNlc3Npb24uZ2V0UmVmcmVzaFRva2VuKCkuZ2V0VG9rZW4oKSwgY2FsbGJhY2spLFxuICAgICAgICAgICAgMTUgKiA2MCAqIDEwMDBcbiAgICAgICAgICApO1xuICAgICAgICAgIC8vIHJ1biB0aGUgY2FsbGJhY2sgYWN0aW9uLCBpZiBzZXRcbiAgICAgICAgICBpZiAoY2FsbGJhY2spIGNhbGxiYWNrKHNlc3Npb24uZ2V0SWRUb2tlbigpLmdldEp3dFRva2VuKCkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgKTtcbiAgfVxuICAvKipcbiAgICogUnVuIHNvbWUgcG9zdC1hdXRoIGNoZWNrcywgYmFzZWQgb24gdGhlIHVzZXJzIGdyb3VwcyBhbmQgb24gdGhlIGFwcCdzIGNvbmZpZ3VyYXRpb246XG4gICAqICAtIHVzZXJzIGluIHRoZSBDb2duaXRvJ3MgXCJhZG1pbnNcIiBncnVwIHNraXAgYWxsIHRoZSBmb2xsb3dpbmcgcnVsZXMuXG4gICAqICAtIHVzZXJzIGluIHRoZSBDb2duaXRvJ3MgXCJyb2JvdHNcIiBncm91cCBjYW4ndCBzaWduLWludG8gZnJvbnQtZW5kcyAodGhleSBzZXJ2ZSBvbmx5IGJhY2stZW5kIHB1cnBvc2VzKS5cbiAgICogIC0gaWYgYGVudi5pZGVhLmF1dGguc2luZ2xlU2ltdWx0YW5lb3VzU2Vzc2lvbmAgaXMgb24sIG1ha2Ugc3VyZSB0aGVyZSBpcyBvbmx5IG9uZSBhY3RpdmUgc2Vzc2lvbiBwZXIgdXNlci5cbiAgICovXG4gIHByaXZhdGUgcnVuUG9zdEF1dGhDaGVja3ModXNlckRldGFpbHM6IGFueSwgY2FsbGJhY2s6IChlcnI/OiBFcnJvcikgPT4gdm9pZCk6IHZvaWQgfCBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBncm91cHM6IHN0cmluZ1tdID0gdXNlckRldGFpbHNbJ2dyb3VwcyddO1xuICAgIC8vIHNraXAgY2hlY2tzIGlmIHRoZSB1c2VyIGlzIGluIHRoZSBcImFkbWluc1wiIGdyb3VwXG4gICAgY29uc3QgaXNBZG1pbiA9IGdyb3Vwcy5zb21lKHggPT4geCA9PT0gJ2FkbWlucycpO1xuICAgIGlmIChpc0FkbWluKSByZXR1cm4gY2FsbGJhY2soKTtcbiAgICAvLyB1c2VycyBpbiB0aGUgXCJyb2JvdHNcIiBncm91cCBjYW4ndCBzaWduLWludG8gZnJvbnQtZW5kcyAodGhleSBzZXJ2ZSBvbmx5IGJhY2stZW5kIHB1cnBvc2VzKVxuICAgIGNvbnN0IGlzUm9ib3QgPSBncm91cHMuc29tZSh4ID0+IHggPT09ICdyb2JvdHMnKTtcbiAgICBpZiAoaXNSb2JvdCkgcmV0dXJuIGNhbGxiYWNrKG5ldyBFcnJvcignUk9CT1RfVVNFUicpKTtcbiAgICAvLyBpbiBjYXNlIHRoZSBwcm9qZWN0IGxpbWl0cyBlYWNoIGFjY291bnQgdG8gb25seSBvbmUgc2ltdWx0YW5lb3VzIHNlc3Npb24sIHJ1biBhIGNoZWNrXG4gICAgaWYgKGVudi5pZGVhLmF1dGguc2luZ2xlU2ltdWx0YW5lb3VzU2Vzc2lvbikgcmV0dXJuIHRoaXMuY2hlY2tGb3JTaW11bHRhbmVvdXNTZXNzaW9ucyh1c2VyRGV0YWlscywgY2FsbGJhY2spO1xuICAgIC8vIG90aGVyd2lzZSwgd2UncmUgZG9uZVxuICAgIGNhbGxiYWNrKCk7XG4gIH1cbiAgLyoqXG4gICAqIENoZWNrIHdoZXRoZXIgdGhlIHVzZXIgc2lnbmVkLWludG8gbXVsdGlwbGUgZGV2aWNlcy5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgY2hlY2tGb3JTaW11bHRhbmVvdXNTZXNzaW9ucyh1c2VyRGV0YWlsczogYW55LCBjYWxsYmFjazogKGVycj86IEVycm9yKSA9PiB2b2lkKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gZ2V0IG9yIGNyZWF0ZSBhIGtleSBmb3IgdGhlIGN1cnJlbnQgZGV2aWNlICh+cmFuZG9tKVxuICAgIGxldCBjdXJyZW50RGV2aWNlS2V5ID0gYXdhaXQgdGhpcy5zdG9yYWdlLmdldCgnQXV0aERldmljZUtleScpO1xuICAgIGlmICghY3VycmVudERldmljZUtleSkge1xuICAgICAgY29uc3QgcmFuZG9tS2V5ID0gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDEwKTtcbiAgICAgIGN1cnJlbnREZXZpY2VLZXkgPSByYW5kb21LZXkuY29uY2F0KFN0cmluZyhEYXRlLm5vdygpKSk7XG4gICAgICBhd2FpdCB0aGlzLnN0b3JhZ2Uuc2V0KCdBdXRoRGV2aWNlS2V5JywgY3VycmVudERldmljZUtleSk7XG4gICAgfVxuICAgIC8vIGNoZWNrIHdoZXRoZXIgdGhlIGxhc3QgZGV2aWNlIHRvIHNpZ24taW50byB0aGlzIHByb2plY3QgKGlmIGFueSkgaXMgdGhlIGN1cnJlbnQgb25lXG4gICAgY29uc3QgbGFzdERldmljZVRvU2lnbkludG9UaGlzUHJvamVjdCA9IHVzZXJEZXRhaWxzW0RFVklDRV9LRVlfQVRUUklCVVRFXTtcbiAgICAvLyBpZiBpdCdzIHRoZSBmaXJzdCB1c2VyJ3MgZGV2aWNlIHRvIHNpZ24taW4sIHNhdmUgdGhlIHJlZmVyZW5jZSBpbiBDb2duaXRvIGFuZCByZXNvbHZlXG4gICAgaWYgKCFsYXN0RGV2aWNlVG9TaWduSW50b1RoaXNQcm9qZWN0KSB7XG4gICAgICB0aGlzLnNldEN1cnJlbnREZXZpY2VGb3JQcm9qZWN0KGN1cnJlbnREZXZpY2VLZXkpXG4gICAgICAgIC50aGVuKCgpOiB2b2lkID0+IGNhbGxiYWNrKCkpXG4gICAgICAgIC5jYXRjaCgoKTogdm9pZCA9PiBjYWxsYmFjayhuZXcgRXJyb3IoJ0NBTlRfU0VUX0RFVklDRScpKSk7XG4gICAgICAvLyBpZiB0aGUgZGV2aWNlIGRpZG4ndCBjaGFuZ2UsIHJlc29sdmVcbiAgICB9IGVsc2UgaWYgKGxhc3REZXZpY2VUb1NpZ25JbnRvVGhpc1Byb2plY3QgPT09IGN1cnJlbnREZXZpY2VLZXkpIGNhbGxiYWNrKCk7XG4gICAgLy8gb3Rod2Vyd2lzZSwgcmVwb3J0IHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUgc2ltdWx0YW5lb3VzIHNlc3Npb25cbiAgICBlbHNlIGNhbGxiYWNrKG5ldyBFcnJvcignU0lNVUxUQU5FT1VTX1NFU1NJT04nKSk7XG4gIH1cbiAgLyoqXG4gICAqIFNldCAob3IgcmVzZXQpIHRoZSBjdXJyZW50IHVzZXIncyBkZXZpY2UgKGJ5IGtleSkgaW4gdGhlIGN1cnJlbnQgcHJvamVjdCAoc3RvcmVkIGluIENvZ25pdG8pLlxuICAgKi9cbiAgcHJpdmF0ZSBzZXRDdXJyZW50RGV2aWNlRm9yUHJvamVjdChkZXZpY2VLZXk/OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBhdHRyaWJ1dGVzOiBhbnkgPSB7fTtcbiAgICAvLyBub3RlOiBhbiBlbXB0eSBzdHJpbmcgd2lsbCByZW1vdmUgdGhlIGF0dHJpYnV0ZSBmcm9tIENvZ25pdG9cbiAgICBhdHRyaWJ1dGVzW0RFVklDRV9LRVlfQVRUUklCVVRFXSA9IGRldmljZUtleSB8fCAnJztcbiAgICByZXR1cm4gdGhpcy51cGRhdGVVc2VyQXR0cmlidXRlcyhhdHRyaWJ1dGVzKTtcbiAgfVxuICAvKipcbiAgICogVXBkYXRlIHRoZSBjdXJyZW50bHkgbG9nZ2VkIGluIHVzZXIncyBhdHRyaWJ1dGVzLlxuICAgKi9cbiAgdXBkYXRlVXNlckF0dHJpYnV0ZXMoYXR0cmlidXRlczogYW55KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpOiB2b2lkID0+IHtcbiAgICAgIC8vIHByZXBhcmUgdGhlIGF0dHJpYnV0ZXMgd2Ugd2FudCB0byBjaGFuZ2VcbiAgICAgIGNvbnN0IGF0dHJzID0gbmV3IEFycmF5PGFueT4oKTtcbiAgICAgIGZvciAoY29uc3QgcHJvcCBpbiBhdHRyaWJ1dGVzKVxuICAgICAgICBpZiAoYXR0cmlidXRlc1twcm9wXSAhPT0gdW5kZWZpbmVkKSBhdHRycy5wdXNoKHRoaXMucHJlcGFyZVVzZXJBdHRyaWJ1dGUocHJvcCwgYXR0cmlidXRlc1twcm9wXSkpO1xuICAgICAgY29uc3QgdXNlciA9IHRoaXMudXNlclBvb2wuZ2V0Q3VycmVudFVzZXIoKTtcbiAgICAgIGlmICghdXNlcikgcmV0dXJuIHJlamVjdCgpO1xuICAgICAgLy8gd2UgbmVlZCB0byBnZXQgdGhlIHNlc3Npb24gYmVmb3JlIHRvIG1ha2UgY2hhbmdlc1xuICAgICAgdXNlci5nZXRTZXNzaW9uKChlcnI6IEVycm9yKTogdm9pZCA9PiB7XG4gICAgICAgIGlmIChlcnIpIHJlamVjdChlcnIpO1xuICAgICAgICBlbHNlIHVzZXIudXBkYXRlQXR0cmlidXRlcyhhdHRycywgKGU6IEVycm9yKTogdm9pZCA9PiAoZSA/IHJlamVjdChlKSA6IHJlc29sdmUoKSkpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGUgdGhlIHBhc3N3b3JkIGFnYWluc3QgdGhlIHBvbGljeSBzZXQgaW4gdGhlIGVudmlyb25tZW50cyBjb25maWd1cmF0aW9uLlxuICAgKiBJbiBjYXNlIHRoZXJlIGFyZSBlcnJvcnMsIHRoZXkgYXJlIHJldHVybmVkIGFzIGFuIGFycmF5IG9mIHN0cmluZ3MuXG4gICAqL1xuICB2YWxpZGF0ZVBhc3N3b3JkQWdhaW5zdFBvbGljeShwYXNzd29yZDogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGVycm9ycyA9IFtdO1xuICAgIGlmIChwYXNzd29yZD8udHJpbSgpLmxlbmd0aCA8IHRoaXMucGFzc3dvcmRQb2xpY3kubWluTGVuZ3RoKSBlcnJvcnMucHVzaCgnTUlOX0xFTkdUSCcpO1xuICAgIGlmICh0aGlzLnBhc3N3b3JkUG9saWN5LnJlcXVpcmVEaWdpdHMgJiYgIS9cXGQvLnRlc3QocGFzc3dvcmQpKSBlcnJvcnMucHVzaCgnUkVRVUlSRV9ESUdJVFMnKTtcbiAgICBpZiAodGhpcy5wYXNzd29yZFBvbGljeS5yZXF1aXJlTG93ZXJjYXNlICYmICEvW2Etel0vLnRlc3QocGFzc3dvcmQpKSBlcnJvcnMucHVzaCgnUkVRVUlSRV9MT1dFUkNBU0UnKTtcbiAgICBpZiAodGhpcy5wYXNzd29yZFBvbGljeS5yZXF1aXJlU3ltYm9scyAmJiAhL1tcXF5cXCRcXCpcXC5cXF9cXH5cXGBcXCtcXD1AXFwhXFw/XFw+XFw8XFw6XFw7XFxcXFxcLFxcI1xcJVxcJl0vLnRlc3QocGFzc3dvcmQpKVxuICAgICAgZXJyb3JzLnB1c2goJ1JFUVVJUkVfU1lNQk9MUycpO1xuICAgIGlmICh0aGlzLnBhc3N3b3JkUG9saWN5LnJlcXVpcmVVcHBlcmNhc2UgJiYgIS9bQS1aXS8udGVzdChwYXNzd29yZCkpIGVycm9ycy5wdXNoKCdSRVFVSVJFX1VQUEVSQ0FTRScpO1xuICAgIHJldHVybiBlcnJvcnM7XG4gIH1cbiAgLyoqXG4gICAqIEdldCBhIGNvbXBsZXRlIHBhc3N3b3JkIHBvbGljeSBwYXR0ZXJuLCBiYXNlZCBvbiB0aGUgZW52aXJvbm1lbnRzIGNvbmZpZ3VyYXRpb24sIHRvIHVzZSBvbiBwYXNzd29yZCBpbnB1dCBmaWVsZHMuXG4gICAqIE5vdGU6IHNvbWUgb2YgdGhlIHN5bWJvbHMgY291bGRuJ3QgYmUgaW5jbHVkZWQgYmVjYXVzZSB1bnN1cHBvcnRlZCBieSB0aGUgaW5wdXRbcGF0dGVybl0gYXR0cmlidXRlLlxuICAgKi9cbiAgZ2V0UGFzc3dvcmRQb2xpY3lQYXR0ZXJuRm9ySW5wdXQoKTogc3RyaW5nIHtcbiAgICBsZXQgcGF0dGVybiA9ICcnO1xuICAgIGlmICh0aGlzLnBhc3N3b3JkUG9saWN5LnJlcXVpcmVEaWdpdHMpIHBhdHRlcm4gKz0gYCg/PS4qWzAtOV0pYDtcbiAgICBpZiAodGhpcy5wYXNzd29yZFBvbGljeS5yZXF1aXJlTG93ZXJjYXNlKSBwYXR0ZXJuICs9IGAoPz0uKlthLXpdKWA7XG4gICAgaWYgKHRoaXMucGFzc3dvcmRQb2xpY3kucmVxdWlyZVN5bWJvbHMpIHBhdHRlcm4gKz0gYCg/PS4qW1xcXlxcJFxcKlxcLlxcX1xcflxcYFxcK1xcPUBcXCFcXD9cXD5cXDxcXDpcXDtcXFxcXFwsXFwjXFwlXFwmXSlgO1xuICAgIGlmICh0aGlzLnBhc3N3b3JkUG9saWN5LnJlcXVpcmVVcHBlcmNhc2UpIHBhdHRlcm4gKz0gYCg/PS4qW0EtWl0pYDtcbiAgICBwYXR0ZXJuICs9IGAueyR7dGhpcy5wYXNzd29yZFBvbGljeS5taW5MZW5ndGh9LH1gO1xuICAgIHJldHVybiBwYXR0ZXJuO1xuICB9XG59XG5cbi8qKlxuICogVGhlIHBvc3NpYmxlIGFjdGlvbnMgZm9sbG93aW5nIGEgc3VjY2Vzc2Z1bCBsb2dpbi5cbiAqL1xuZXhwb3J0IGVudW0gTG9naW5PdXRjb21lQWN0aW9ucyB7XG4gIE5PTkUgPSAnbm9uZScsXG4gIE5FV19QQVNTV09SRCA9ICduZXdQYXNzd29yZCcsXG4gIE1GQV9DSEFMTEVOR0UgPSAnbWZhQ2hhbGxlbmdlJyxcbiAgTUZBX1NFVFVQID0gJ21mYVNldHVwJ1xufVxuIl19
479
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbW9kdWxlcy9hdXRoL3NyYy9hdXRoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLFdBQVcsRUFDWCxvQkFBb0IsRUFDcEIsZUFBZSxFQUNmLG1CQUFtQixFQUlwQixNQUFNLDRCQUE0QixDQUFDO0FBR3BDLE9BQU8sRUFBRSxXQUFXLElBQUksR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFFMUM7O0dBRUc7QUFDSCxNQUFNLG9CQUFvQixHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUVoRTs7OztHQUlHO0FBRUgsTUFBTSxPQUFPLGVBQWU7SUFZMUIsWUFBb0IsT0FBMkI7UUFBM0IsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFKdkMsbUJBQWMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFFeEQsbUJBQWMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7UUFHcEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBQztZQUNsQyxVQUFVLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVTtZQUN0QyxRQUFRLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCO1NBQzNDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNLLGtCQUFrQixDQUFDLFFBQWdCLEVBQUUsR0FBVztRQUN0RCxPQUFPLElBQUkscUJBQXFCLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFF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LDZDQUFzQixDQUFBO0FBQ3hCLENBQUMsRUFMVyxtQkFBbUIsS0FBbkIsbUJBQW1CLFFBSzlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQXV0aGVudGljYXRpb25EZXRhaWxzLFxuICBDb2duaXRvVXNlcixcbiAgQ29nbml0b1VzZXJBdHRyaWJ1dGUsXG4gIENvZ25pdG9Vc2VyUG9vbCxcbiAgQ29nbml0b1JlZnJlc2hUb2tlbixcbiAgQ29nbml0b1VzZXJTZXNzaW9uLFxuICBJU2lnblVwUmVzdWx0LFxuICBDaGFsbGVuZ2VOYW1lXG59IGZyb20gJ2FtYXpvbi1jb2duaXRvLWlkZW50aXR5LWpzJztcbmltcG9ydCB7IElERUFTdG9yYWdlU2VydmljZSB9IGZyb20gJ0BpZGVhLWlvbmljL2NvbW1vbic7XG5cbmltcG9ydCB7IGVudmlyb25tZW50IGFzIGVudiB9IGZyb20gJ0BlbnYnO1xuXG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBDb2duaXRvJ3MgdXNlciBhdHRyaWJ1dGUgd2hpY2ggY29udGFpbnMgdGhlIGtleSBvZiB0aGUgbGFzdCBkZXZpY2UgdG8gbG9naW4gaW4gdGhpcyBwcm9qZWN0LlxuICovXG5jb25zdCBERVZJQ0VfS0VZX0FUVFJJQlVURSA9ICdjdXN0b206Jy5jb25jYXQoZW52LmlkZWEucHJvamVjdCk7XG5cbi8qKlxuICogQ29nbml0byB3cmFwcGVyIHRvIG1hbmFnZSB0aGUgYXV0aGVudGljYXRpb24gZmxvdy5cbiAqXG4gKiBOb3RlOiBpbiBJREVBJ3MgQ29nbml0byB1c2VycyBwb29scywgdGhlIGVtYWlsIGlzIGFuIGFsaWFzIG9mIHRoZSB1c2VybmFtZS5cbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBJREVBQXV0aFNlcnZpY2Uge1xuICBwcml2YXRlIHVzZXJQb29sOiBDb2duaXRvVXNlclBvb2w7XG5cbiAgY2hhbGxlbmdlVXNlcm5hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSBjaGFsbGVuZ2VQYXNzd29yZDogc3RyaW5nO1xuXG4gIHByaXZhdGUgbmV3QWNjb3VudEp1c3RSZWdpc3RlcmVkOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBtZmFQcm9qZWN0TmFtZSA9IGVudi5pZGVhLmFwcC50aXRsZSA/PyBlbnYuaWRlYS5wcm9qZWN0O1xuXG4gIHByaXZhdGUgcGFzc3dvcmRQb2xpY3kgPSBlbnYuaWRlYS5hdXRoLnBhc3N3b3JkUG9saWN5O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmFnZTogSURFQVN0b3JhZ2VTZXJ2aWNlKSB7XG4gICAgdGhpcy51c2VyUG9vbCA9IG5ldyBDb2duaXRvVXNlclBvb2woe1xuICAgICAgVXNlclBvb2xJZDogZW52LmF3cy5jb2duaXRvLnVzZXJQb29sSWQsXG4gICAgICBDbGllbnRJZDogZW52LmF3cy5jb2duaXRvLnVzZXJQb29sQ2xpZW50SWRcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmVwYXJlIHRoZSBuZWNlc3Nhcnkgc3RydWN0dXJlIHRvIGdldCBhdXRob3JpemVkIGluIENvZ25pdG8uXG4gICAqL1xuICBwcml2YXRlIHByZXBhcmVBdXRoRGV0YWlscyh1c2VybmFtZTogc3RyaW5nLCBwd2Q6IHN0cmluZyk6IEF1dGhlbnRpY2F0aW9uRGV0YWlscyB7XG4gICAgcmV0dXJuIG5ldyBBdXRoZW50aWNhdGlvbkRldGFpbHMoeyBVc2VybmFtZTogdXNlcm5hbWUsIFBhc3N3b3JkOiBwd2QgfSk7XG4gIH1cbiAgLyoqXG4gICAqIFByZXBhcmUgdGhlIG5lY2Vzc2FyeSBzdHJ1Y3R1cmUgdG8gaWRlbnRpZnkgYSBDb2duaXRvIHVzZXIuXG4gICAqL1xuICBwcmVwYXJlQ29nbml0b1VzZXIodXNlcm5hbWU6IHN0cmluZyk6IENvZ25pdG9Vc2VyIHtcbiAgICByZXR1cm4gbmV3IENvZ25pdG9Vc2VyKHsgVXNlcm5hbWU6IHVzZXJuYW1lLCBQb29sOiB0aGlzLnVzZXJQb29sIH0pO1xuICB9XG4gIC8qKlxuICAgKiBQcmVwYXJlIGEgdXNlciBhdHRyaWJ1dGUgKHRoZXkgYXJlIGFsbCBzdHJpbmdzKSBpbiBDb2duaXRvJ3MgZm9ybWF0LlxuICAgKi9cbiAgcHJpdmF0ZSBwcmVwYXJlVXNlckF0dHJpYnV0ZShuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiBDb2duaXRvVXNlckF0dHJpYnV0ZSB7XG4gICAgcmV0dXJuIG5ldyBDb2duaXRvVXNlckF0dHJpYnV0ZSh7IE5hbWU6IG5hbWUsIFZhbHVlOiB2YWx1ZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQZXJmb3JtIGEgbG9naW4gdGhyb3VnaCB1c2VybmFtZSBhbmQgcGFzc3dvcmQuXG4gICAqL1xuICBsb2dpbih1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogUHJvbWlzZTxMb2dpbk91dGNvbWVBY3Rpb25zPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpOiB2b2lkID0+IHtcbiAgICAgIGNvbnN0IHVzZXIgPSB0aGlzLnByZXBhcmVDb2duaXRvVXNlcih1c2VybmFtZSk7XG4gICAgICB1c2VyLmF1dGhlbnRpY2F0ZVVzZXIodGhpcy5wcmVwYXJlQXV0aERldGFpbHModXNlcm5hbWUsIHBhc3N3b3JkKSwge1xuICAgICAgICBvblN1Y2Nlc3M6ICgpOiB2b2lkID0+XG4gICAgICAgICAgcmVzb2x2ZShlbnYuaWRlYS5hdXRoLmZvcmNlTG9naW5XaXRoTUZBID8gTG9naW5PdXRjb21lQWN0aW9ucy5NRkFfU0VUVVAgOiBMb2dpbk91dGNvbWVBY3Rpb25zLk5PTkUpLFxuICAgICAgICBvbkZhaWx1cmU6IChlcnI6IEVycm9yKTogdm9pZCA9PiByZWplY3QoZXJyKSxcbiAgICAgICAgbmV3UGFzc3dvcmRSZXF1aXJlZDogKCk6IHZvaWQgPT4ge1xuICAgICAgICAgIHRoaXMuY2hhbGxlbmdlVXNlcm5hbWUgPSB1c2VybmFtZTtcbiAgICAgICAgICB0aGlzLmNoYWxsZW5nZVBhc3N3b3JkID0gcGFzc3dvcmQ7XG4gICAgICAgICAgcmVzb2x2ZShMb2dpbk91dGNvbWVBY3Rpb25zLk5FV19QQVNTV09SRCk7XG4gICAgICAgIH0sXG4gICAgICAgIHRvdHBSZXF1aXJlZDogKCk6IHZvaWQgPT4ge1xuICAgICAgICAgIHRoaXMuY2hhbGxlbmdlVXNlcm5hbWUgPSB1c2VybmFtZTtcbiAgICAgICAgICB0aGlzLmNoYWxsZW5nZVBhc3N3b3JkID0gcGFzc3dvcmQ7XG4gICAgICAgICAgcmVzb2x2ZShMb2dpbk91dGNvbWVBY3Rpb25zLk1GQV9DSEFMTEVOR0UpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuICAvKipcbiAgICogQ29tcGxldGUgdGhlIG5ldyBwYXNzd29yZCBmbG93IGluIHRoZSBhdXRoZW50aWNhdGlvbi5cbiAgICovXG4gIGNvbmZpcm1OZXdQYXNzd29yZChuZXdQYXNzd29yZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpOiB2b2lkID0+IHtcbiAgICAgIGNvbnN0IHVzZXIgPSB0aGlzLnByZXBhcmVDb2duaXRvVXNlcih0aGlzLmNoYWxsZW5nZVVzZXJuYW1lKTtcbiAgICAgIHVzZXIuYXV0aGVudGljYXRlVXNlcih0aGlzLnByZXBhcmVBdXRoRGV0YWlscyh0aGlzLmNoYWxsZW5nZVVzZXJuYW1lLCB0aGlzLmNoYWxsZW5nZVBhc3N3b3JkKSwge1xuICAgICAgICBvblN1Y2Nlc3M6ICgpOiB2b2lkID0+IHJlc29sdmUoKSxcbiAgICAgICAgb25GYWlsdXJlOiAoZXJyOiBFcnJvcik6IHZvaWQgPT4gcmVqZWN0KGVyciksXG4gICAgICAgIG5ld1Bhc3N3b3JkUmVxdWlyZWQ6ICgpOiB2b2lkID0+XG4gICAgICAgICAgdXNlci5jb21wbGV0ZU5ld1Bhc3N3b3JkQ2hhbGxlbmdlKFxuICAgICAgICAgICAgbmV3UGFzc3dvcmQsXG4gICAgICAgICAgICB7fSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgb25TdWNjZXNzOiAoKTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFsbGVuZ2VVc2VybmFtZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFsbGVuZ2VQYXNzd29yZCA9IG51bGw7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBvbkZhaWx1cmU6IChlcnI6IEVycm9yKTogdm9pZCA9PiByZWplY3QoZXJyKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIClcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG4gIC8qKlxuICAgKiAgQ29tcGxldGUgdGhlIE1GQSBjaGFsbGVuZ2UgZmxvdyBpbiB0aGUgYXV0aGVudGljYXRpb24uXG4gICAqL1xuICBjb21wbGV0ZU1GQUNoYWxsZW5nZShvdHBDb2RlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCk6IHZvaWQgPT4ge1xuICAgICAgY29uc3QgdXNlciA9IHRoaXMucHJlcGFyZUNvZ25pdG9Vc2VyKHRoaXMuY2hhbGxlbmdlVXNlcm5hbWUpO1xuICAgICAgdXNlci5hdXRoZW50aWNhdGVVc2VyKHRoaXMucHJlcGFyZUF1dGhEZXRhaWxzKHRoaXMuY2hhbGxlbmdlVXNlcm5hbWUsIHRoaXMuY2hhbGxlbmdlUGFzc3dvcmQpLCB7XG4gICAgICAgIG9uU3VjY2VzczogKCk6IHZvaWQgPT4gcmVzb2x2ZSgpLFxuICAgICAgICBvbkZhaWx1cmU6IChlcnI6IEVycm9yKTogdm9pZCA9PiByZWplY3QoZXJyKSxcbiAgICAgICAgdG90cFJlcXVpcmVkOiAoY2hhbGxlbmdlTmFtZTogQ2hhbGxlbmdlTmFtZSk6IHZvaWQgPT5cbiAgICAgICAgICB1c2VyLnNlbmRNRkFDb2RlKFxuICAgICAgICAgICAgb3RwQ29kZSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgb25TdWNjZXNzOiAoKTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFsbGVuZ2VVc2VybmFtZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFsbGVuZ2VQYXNzd29yZCA9IG51bGw7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBvbkZhaWx1cmU6IGVyciA9PiByZWplY3QoZXJyKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNoYWxsZW5nZU5hbWVcbiAgICAgICAgICApXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuICAvKipcbiAgICogUmVnaXN0ZXIgYSBuZXcgdXNlciBhIHNldCBpdHMgZGVmYXVsdCBhdHRyaWJ1dGVzLlxuICAgKi9cbiAgcmVnaXN0ZXIodXNlcm5hbWU6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZywgYXR0cmlidXRlcz86IGFueSk6IFByb21pc2U8Q29nbml0b1VzZXI+IHtcbiAgICBhdHRyaWJ1dGVzID0gYXR0cmlidXRlcyB8fCB7fTtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCk6IHZvaWQgPT4ge1xuICAgICAgLy8gYWRkIGF0dHJpYnV0ZXMgbGlrZSB0aGUgZW1haWwgYWRkcmVzcyBhbmQgdGhlIGZ1bGxuYW1lXG4gICAgICBjb25zdCBhdHRycyA9IFtdO1xuICAgICAgZm9yIChjb25zdCBwcm9wIGluIGF0dHJpYnV0ZXMpXG4gICAgICAgIGlmIChhdHRyaWJ1dGVzW3Byb3BdKSBhdHRycy5wdXNoKHRoaXMucHJlcGFyZVVzZXJBdHRyaWJ1dGUocHJvcCwgYXR0cmlidXRlc1twcm9wXSkpO1xuICAgICAgLy8gYWRkIHRoZSBlbWFpbCwgd2hpY2ggaXMgZXF1YWwgdG8gdGhlIHVzZXJuYW1lIGZvciBtb3N0IG9mIG91ciBQb29sc1xuICAgICAgaWYgKCFhdHRyaWJ1dGVzLmVtYWlsKSBhdHRycy5wdXNoKHRoaXMucHJlcGFyZVVzZXJBdHRyaWJ1dGUoJ2VtYWlsJywgdXNlcm5hbWUpKTtcbiAgICAgIC8vIHJlZ2lzdGVyIHRoZSBuZXcgdXNlciB0byB0aGUgcG9vbFxuICAgICAgdGhpcy51c2VyUG9vbC5zaWduVXAodXNlcm5hbWUsIHBhc3N3b3JkLCBhdHRycywgbnVsbCwgKGVycjogRXJyb3IsIHJlczogSVNpZ25VcFJlc3VsdCk6IHZvaWQgPT4ge1xuICAgICAgICBpZiAoZXJyKSByZXR1cm4gcmVqZWN0KGVycik7XG4gICAgICAgIHRoaXMubmV3QWNjb3VudEp1c3RSZWdpc3RlcmVkID0gdXNlcm5hbWU7XG4gICAgICAgIHJlc29sdmUocmVzLnVzZXIpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIEluIGNhc2UgIG5ldyBhY2NvdW50IGhhcyBqdXN0IGJlZW4gcmVnaXN0ZXJlZCwgcmV0dXJuIHRoZSB1c2VybmFtZS5cbiAgICovXG4gIGdldE5ld0FjY291bnRKdXN0UmVnaXN0ZXJlZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm5ld0FjY291bnRKdXN0UmVnaXN0ZXJlZDtcbiAgfVxuICAvKipcbiAgICogQ29uZmlybSBhIG5ldyByZWdpc3RyYXRpb24gdGhyb3VnaCB0aGUgY29uZmlybWF0aW9uIGNvZGUgc2VudCBieSBDb2duaXRvLlxuICAgKi9cbiAgY29uZmlybVJlZ2lzdHJhdGlvbih1c2VybmFtZTogc3RyaW5nLCBjb2RlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCk6IHZvaWQgPT4ge1xuICAgICAgdGhpcy5wcmVwYXJlQ29nbml0b1VzZXIodXNlcm5hbWUpLmNvbmZpcm1SZWdpc3RyYXRpb24oY29kZSwgdHJ1ZSwgKGVycjogRXJyb3IpOiB2b2lkID0+XG4gICAgICAgIGVyciA/IHJlamVjdChlcnIpIDogcmVzb2x2ZSgpXG4gICAgICApO1xuICAgIH0pO1xuICB9XG4gIC8qKlxuICAgKiBTZW5kIGFnYWluIGEgY29uZmlybWF0aW9uIGNvZGUgZm9yIGEgbmV3IHJlZ2lzdHJhdGlvbi5cbiAgICovXG4gIHJlc2VuZENvbmZpcm1hdGlvbkNvZGUodXNlcm5hbWU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KTogdm9pZCA9PiB7XG4gICAgICB0aGlzLnByZXBhcmVDb2duaXRvVXNlcih1c2VybmFtZSkucmVzZW5kQ29uZmlybWF0aW9uQ29kZSgoZXJyOiBFcnJvcik6IHZvaWQgPT4gKGVyciA/IHJlamVjdChlcnIpIDogcmVzb2x2ZSgpKSk7XG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIExvZ291dCB0aGUgY3VycmVudGx5IHNpZ25lZC1pbiB1c2VyLlxuICAgKi9cbiAgbG9nb3V0KG9wdGlvbnM/OiB7IGdsb2JhbDogYm9vbGVhbiB9KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgb3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oeyBnbG9iYWw6IGZhbHNlIH0sIG9wdGlvbnMpO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KTogdm9pZCA9PiB7XG4gICAgICAvLyByZW1vdmUgdGhlIHJlZnJlc2ggdG9rZW4gcHJldmlvc2x5IHNhdmVkXG4gICAgICB0aGlzLnN0b3JhZ2UucmVtb3ZlKCdBdXRoUmVmcmVzaFRva2VuJykudGhlbihcbiAgICAgICAgKCk6IFByb21pc2U8dm9pZD4gPT5cbiAgICAgICAgICAvLyByZW1vdmUgdGhlIG9wdGlvbmFsIGF1dGggZGV0YWlsc1xuICAgICAgICAgIHRoaXMuc3RvcmFnZS5yZW1vdmUoJ0F1dGhVc2VyRGV0YWlscycpLnRoZW4oKCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgLy8gZ2V0IHRoZSB1c2VyIGFuZCB0aGUgc2Vzc2lvblxuICAgICAgICAgICAgY29uc3QgdXNlciA9IHRoaXMudXNlclBvb2wuZ2V0Q3VycmVudFVzZXIoKTtcbiAgICAgICAgICAgIHVzZXIuZ2V0U2Vzc2lvbihhc3luYyAoZXJyOiBFcnJvcik6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgICAgICAgICAvLyBpZiB0aGUgc2Vzc2lvbiBpcyBhY3RpdmUsIHJ1biB0aGUgb25saW5lIHNpZ24tb3V0OyBvdGhlcndpc2UsIG9ubHkgdGhlIGxvY2FsIGRhdGEgaGFzIGJlZW4gZGVsZXRlZFxuICAgICAgICAgICAgICBpZiAoZXJyKSByZXR1cm4gcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICAvLyBpZiBhIHJlZmVyZW5jZSB0byB0aGUgZGV2aWNlIHdhcyBzYXZlZCwgZm9yZ2V0IGl0XG4gICAgICAgICAgICAgIGlmIChlbnYuaWRlYS5hdXRoLnNpbmdsZVNpbXVsdGFuZW91c1Nlc3Npb24pIGF3YWl0IHRoaXMuc2V0Q3VycmVudERldmljZUZvclByb2plY3QobnVsbCk7XG4gICAgICAgICAgICAgIC8vIHNpZ24tb3V0IGZyb20gdGhlIHBvb2wgKHRlcm1pbmF0ZSB0aGUgY3VycmVudCBzZXNzaW9uIG9yIGFsbCB0aGUgc2Vzc2lvbnMpXG4gICAgICAgICAgICAgIGlmIChvcHRpb25zLmdsb2JhbClcbiAgICAgICAgICAgICAgICB1c2VyLmdsb2JhbFNpZ25PdXQoeyBvblN1Y2Nlc3M6ICgpOiB2b2lkID0+IHJlc29sdmUoKSwgb25GYWlsdXJlOiBlcnIgPT4gcmVqZWN0KGVycikgfSk7XG4gICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHVzZXIuc2lnbk91dCgpO1xuICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIFNlbmQgYSBwYXNzd29yZCByZXNldCByZXF1ZXN0LlxuICAgKi9cbiAgZm9yZ290UGFzc3dvcmQodXNlcm5hbWU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KTogdm9pZCA9PiB7XG4gICAgICB0aGlzLnByZXBhcmVDb2duaXRvVXNlcih1c2VybmFtZSkuZm9yZ290UGFzc3dvcmQoe1xuICAgICAgICBvblN1Y2Nlc3M6ICgpOiB2b2lkID0+IHJlc29sdmUoKSxcbiAgICAgICAgb25GYWlsdXJlOiAoZXJyOiBFcnJvcik6IHZvaWQgPT4gcmVqZWN0KGVycilcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG4gIC8qKlxuICAgKiBDb25maXJtIGEgbmV3IHBhc3N3b3JkIGFmdGVyIGEgcGFzc3dvcmQgcmVzZXQgcmVxdWVzdC5cbiAgICovXG4gIGNvbmZpcm1QYXNzd29yZCh1c2VybmFtZTogc3RyaW5nLCBjb2RlOiBzdHJpbmcsIG5ld1B3ZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpOiB2b2lkID0+IHtcbiAgICAgIHRoaXMucHJlcGFyZUNvZ25pdG9Vc2VyKHVzZXJuYW1lKS5jb25maXJtUGFzc3dvcmQoY29kZSwgbmV3UHdkLCB7XG4gICAgICAgIG9uU3VjY2VzczogKCk6IHZvaWQgPT4gcmVzb2x2ZSgpLFxuICAgICAgICBvbkZhaWx1cmU6IChlcnI6IEVycm9yKTogdm9pZCA9PiByZWplY3QoZXJyKVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIEdldHMgdGhlIFVSTCBmb3IgZW5hYmxpbmcgTUZBLiBUaGlzIFVSTCBjYW4gYmUgdXNlZCB0byBnZW5lcmF0ZSBhIFFSIENvZGUgdG8gcmVhZCB3aXRoIGFuIGF1dGhlbnRpY2F0b3IgYXBwLlxuICAgKi9cbiAgZ2V0VVJMRm9yRW5hYmxpbmdNRkEoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCk6IHZvaWQgPT4ge1xuICAgICAgY29uc3QgdXNlciA9IHRoaXMudXNlclBvb2wuZ2V0Q3VycmVudFVzZXIoKTtcbiAgICAgIGlmICghdXNlcikgcmV0dXJuIHJlamVjdCgpO1xuICAgICAgdXNlci5nZXRTZXNzaW9uKChlcnI6IEVycm9yKTogdm9pZCA9PiB7XG4gICAgICAgIGlmIChlcnIpIHJldHVybiByZWplY3QoZXJyKTtcbiAgICAgICAgdXNlci5hc3NvY2lhdGVTb2Z0d2FyZVRva2VuKHtcbiAgICAgICAgICBhc3NvY2lhdGVTZWNyZXRDb2RlOiAoc2VjcmV0Q29kZTogc3RyaW5nKTogdm9pZCA9PlxuICAgICAgICAgICAgcmVzb2x2ZShgb3RwYXV0aDovL3RvdHAvJHtlbmNvZGVVUkkodGhpcy5tZmFQcm9qZWN0TmFtZSl9P3NlY3JldD0ke3NlY3JldENvZGV9YCksXG4gICAgICAgICAgb25GYWlsdXJlOiAoZXJyOiBhbnkpOiB2b2lkID0+IHJlamVjdChlcnIpXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIENoZWNrIHdoZXRoZXIgdGhlIHVzZXIgaGFzIE1GQSBlbmFibGVkLlxuICAgKi9cbiAgY2hlY2tJZlVzZXJIYXNNRkFFbmFibGVkKGJ5cGFzc0NhY2hlID0gZmFsc2UpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCk6IHZvaWQgPT4ge1xuICAgICAgY29uc3QgdXNlciA9IHRoaXMudXNlclBvb2wuZ2V0Q3VycmVudFVzZXIoKTtcbiAgICAgIGlmICghdXNlcikgcmV0dXJuIHJlamVjdCgpO1xuICAgICAgdXNlci5nZXRTZXNzaW9uKChlcnI6IEVycm9yKTogdm9pZCA9PiB7XG4gICAgICAgIGlmIChlcnIpIHJldHVybiByZWplY3QoZXJyKTtcbiAgICAgICAgdXNlci5nZXRVc2VyRGF0YShcbiAgICAgICAgICAoZXJyLCBkYXRhKTogdm9pZCA9PiB7XG4gICAgICAgICAgICBpZiAoZXJyKSByZXR1cm4gcmVqZWN0KGVycik7XG4gICAgICAgICAgICBjb25zdCBpc01GQUVuYWJsZWQgPSAhIShkYXRhLlVzZXJNRkFTZXR0aW5nTGlzdCAmJiBkYXRhLlVzZXJNRkFTZXR0aW5nTGlzdC5pbmNsdWRlcygnU09GVFdBUkVfVE9LRU5fTUZBJykpO1xuICAgICAgICAgICAgcmVzb2x2ZShpc01GQUVuYWJsZWQpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgeyBieXBhc3NDYWNoZSB9XG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuICAvKipcbiAgICogQ29uZmlndXJlIGEgTUZBIGRldmljZSBmb3IgdGhlIHVzZXIuXG4gICAqL1xuICBwcml2YXRlIHNldE1GQURldmljZShvdHA6IHN0cmluZywgbWZhRGV2aWNlTmFtZTogc3RyaW5nLCBlbmFibGVkID0gdHJ1ZSwgcHJlZmVycmVkID0gdHJ1ZSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KTogdm9pZCA9PiB7XG4gICAgICBjb25zdCB1c2VyID0gdGhpcy51c2VyUG9vbC5nZXRDdXJyZW50VXNlcigpO1xuICAgICAgaWYgKCF1c2VyKSByZXR1cm4gcmVqZWN0KCk7XG4gICAgICB1c2VyLmdldFNlc3Npb24oKGVycjogRXJyb3IpOiB2b2lkID0+IHtcbiAgICAgICAgaWYgKGVycikgcmV0dXJuIHJlamVjdChlcnIpO1xuICAgICAgICB1c2VyLnZlcmlmeVNvZnR3YXJlVG9rZW4ob3RwLCBtZmFEZXZpY2VOYW1lLCB7XG4gICAgICAgICAgb25TdWNjZXNzOiAoKTogdm9pZCA9PlxuICAgICAgICAgICAgdXNlci5zZXRVc2VyTWZhUHJlZmVyZW5jZShudWxsLCB7IEVuYWJsZWQ6IGVuYWJsZWQsIFByZWZlcnJlZE1mYTogcHJlZmVycmVkIH0sIChlcnI6IEVycm9yKTogdm9pZCA9PlxuICAgICAgICAgICAgICBlcnIgPyByZWplY3QoZXJyKSA6IHJlc29sdmUoKVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICBvbkZhaWx1cmU6IChlcnIpOiB2b2lkID0+IHJlamVjdChlcnIpXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIEVuYWJsZSBhIG5ldyBNRkEgZGV2aWNlIGZvciB0aGUgdXNlciBieSBpbnNlcnRpbmcgYW4gT1RQIGNvZGUgZ2VuZXJhdGVkIGJ5IGl0LlxuICAgKi9cbiAgZW5hYmxlTUZBKG90cDogc3RyaW5nLCBtZmFEZXZpY2VOYW1lID0gJ2RlZmF1bHQnKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuc2V0TUZBRGV2aWNlKG90cCwgbWZhRGV2aWNlTmFtZSwgdHJ1ZSwgdHJ1ZSk7XG4gIH1cbiAgLyoqXG4gICAqIERpc2FibGUgTUZBIGZvciBhIHVzZXIgYnkgaW5zZXJ0aW5nIGFuIE9UUCBjb2RlIGdlbmVyYXRlZCBieSBpdC5cbiAgICovXG4gIGRpc2FibGVNRkEob3RwOiBzdHJpbmcsIG1mYURldmljZU5hbWUgPSAnZGVmYXVsdCcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5zZXRNRkFEZXZpY2Uob3RwLCBtZmFEZXZpY2VOYW1lLCBmYWxzZSwgZmFsc2UpO1xuICB9XG4gIC8qKlxuICAgKiBDaGVjayBpZiBhIHVzZXIgaXMgY3VycmVudGx5IGF1dGhlbnRpY2F0ZWQuXG4gICAqIEBwYXJhbSBvZmZsaW5lQWxsb3dlZCBpZiBzZXQgYW5kIGlmIG9mZmxpbmUsIHNraXAgYXV0aGVudGljYXRpb24gYW5kIHJldHJpZXZlIGRhdGEgbG9jYWxseVxuICAgKiBAcGFyYW0gZ2V0RnJlc2hJZFRva2VuT25FeHAgY2IgZnVuY3Rpb24gdG8gZXhlY3V0ZSB3aGVuIHRoZSBpZFRva2VuIGlzIHJlZnJlc2hlZFxuICAgKi9cbiAgaXNBdXRoZW50aWNhdGVkKG9mZmxpbmVBbGxvd2VkOiBib29sZWFuLCBnZXRGcmVzaElkVG9rZW5PbkV4cD86IChmcmVzaElkVG9rZW46IHN0cmluZykgPT4gdm9pZCk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpOiB2b2lkID0+IHtcbiAgICAgIGlmIChvZmZsaW5lQWxsb3dlZCAmJiAhbmF2aWdhdG9yLm9uTGluZSkge1xuICAgICAgICB0aGlzLnN0b3JhZ2UuZ2V0KCdBdXRoVXNlckRldGFpbHMnKS50aGVuKHVzZXJEZXRhaWxzID0+IHJlc29sdmUoeyBpZFRva2VuOiBudWxsLCB1c2VyRGV0YWlscyB9KSk7XG4gICAgICAgIC8vIHJlLWV4ZWN1dGUgdGhlIG1ldGhvZCB3aGVuIGJhY2sgb25saW5lLCBzbyB0aGF0IHlvdSBjYW4gcmV0cmlldmUgYSB0b2tlbiB0byBtYWtlIHJlcXVlc3RzXG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAgICdvbmxpbmUnLFxuICAgICAgICAgICgpOiBQcm9taXNlPHZvaWQ+ID0+XG4gICAgICAgICAgICB0aGlzLmlzQXV0aGVudGljYXRlZCh0cnVlLCBnZXRGcmVzaElkVG9rZW5PbkV4cClcbiAgICAgICAgICAgICAgLy8gc2V0IHRoZSBuZXcgdG9rZW4gYXMgaWYgaXQgd2FzIHJlZnJlc2hlZFxuICAgICAgICAgICAgICAudGhlbihyZXN1bHQgPT4gZ2V0RnJlc2hJZFRva2VuT25FeHAocmVzdWx0LmlkVG9rZW4pKVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgdXNlciA9IHRoaXMudXNlclBvb2wuZ2V0Q3VycmVudFVzZXIoKTtcbiAgICAgICAgaWYgKCF1c2VyKSByZXR1cm4gcmVqZWN0KCk7XG4gICAgICAgIHVzZXIuZ2V0U2Vzc2lvbigoZXJyOiBFcnJvciwgc2Vzc2lvbjogQ29nbml0b1VzZXJTZXNzaW9uKTogdm9pZCA9PiB7XG4gICAgICAgICAgaWYgKGVycikgcmV0dXJuIHJlamVjdChlcnIpO1xuICAgICAgICAgIHVzZXIuZ2V0VXNlckRhdGEoXG4gICAgICAgICAgICAoZXJyLCBkYXRhKTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgIGlmIChlcnIpIHJldHVybiByZWplY3QoZXJyKTtcbiAgICAgICAgICAgICAgY29uc3QgaXNNRkFFbmFibGVkID0gISEoXG4gICAgICAgICAgICAgICAgZGF0YS5Vc2VyTUZBU2V0dGluZ0xpc3QgJiYgZGF0YS5Vc2VyTUZBU2V0dGluZ0xpc3QuaW5jbHVkZXMoJ1NPRlRXQVJFX1RPS0VOX01GQScpXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGlmICghaXNNRkFFbmFibGVkICYmIGVudi5pZGVhLmF1dGguZm9yY2VMb2dpbldpdGhNRkEpXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlamVjdChuZXcgRXJyb3IoTG9naW5PdXRjb21lQWN0aW9ucy5NRkFfU0VUVVApKTtcbiAgICAgICAgICAgICAgdXNlci5nZXRVc2VyQXR0cmlidXRlcygoZTogRXJyb3IsIGF0dHJpYnV0ZXM6IENvZ25pdG9Vc2VyQXR0cmlidXRlW10pOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZSkgcmV0dXJuIHJlamVjdChlKTtcbiAgICAgICAgICAgICAgICAvLyByZW1hcCB1c2VyIGF0dHJpYnV0ZXNcbiAgICAgICAgICAgICAgICBjb25zdCB1c2VyRGV0YWlsczogYW55ID0ge307XG4gICAgICAgICAgICAgICAgYXR0cmlidXRlcy5mb3JFYWNoKChhOiBDb2duaXRvVXNlckF0dHJpYnV0ZSk6IHN0cmluZyA9PiAodXNlckRldGFpbHNbYS5nZXROYW1lKCldID0gYS5nZXRWYWx1ZSgpKSk7XG4gICAgICAgICAgICAgICAgLy8gYWRkIHRoZSB1c2VyJ3MgZ3JvdXBzIHRvIHRoZSBhdHRyaWJ1dGVzXG4gICAgICAgICAgICAgICAgY29uc3Qgc2Vzc2lvbkluZm8gPSBzZXNzaW9uLmdldEFjY2Vzc1Rva2VuKCkuZGVjb2RlUGF5bG9hZCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGdyb3Vwczogc3RyaW5nW10gPSBzZXNzaW9uSW5mb1snY29nbml0bzpncm91cHMnXSB8fCBbXTtcbiAgICAgICAgICAgICAgICB1c2VyRGV0YWlsc1snZ3JvdXBzJ10gPSBncm91cHM7XG4gICAgICAgICAgICAgICAgLy8gcnVuIHNvbWUgY2hlY2tzIGNvbnNpZGVyaW5nIHRoZSB1c2VyJ3MgZ3JvdXBzIGFuZCBkZXZpY2VzIChiYXNlZCBvbiB0aGUgcHJvamVjdCdzIGNvbmZpZ3VyYXRpb24pXG4gICAgICAgICAgICAgICAgdGhpcy5ydW5Qb3N0QXV0aENoZWNrcyh1c2VyRGV0YWlscywgZXJyID0+IHtcbiAgICAgICAgICAgICAgICAgIC8vIGluIGNhc2Ugc29tZSBjaGVjayBmYWlsZWQsIHJlamVjdCB0aGUgYXV0aG9yaXNhdGlvbiBmbG93XG4gICAgICAgICAgICAgICAgICBpZiAoZXJyKSByZXR1cm4gcmVqZWN0KGVycik7XG4gICAgICAgICAgICAgICAgICAvLyAoYXN5bmMpIHNhdmUgdGhlIHJlZnJlc2ggdG9rZW4gc28gaXQgY2FuIGJlIGFjY2Vzc2VkIGJ5IG90aGVyIHByb2NlZHVyZXNcbiAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcmFnZS5zZXQoJ0F1dGhSZWZyZXNoVG9rZW4nLCBzZXNzaW9uLmdldFJlZnJlc2hUb2tlbigpLmdldFRva2VuKCkpO1xuICAgICAgICAgICAgICAgICAgLy8gc2V0IGEgdGltZXIgdG8gbWFuYWdlIHRoZSBhdXRvcmVmcmVzaCBvZiB0aGUgaWRUb2tlbiAodGhyb3VnaCB0aGUgcmVmcmVzaFRva2VuKVxuICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChcbiAgICAgICAgICAgICAgICAgICAgKCk6IHZvaWQgPT4gdGhpcy5yZWZyZXNoU2Vzc2lvbih1c2VyLCBzZXNzaW9uLmdldFJlZnJlc2hUb2tlbigpLmdldFRva2VuKCksIGdldEZyZXNoSWRUb2tlbk9uRXhwKSxcbiAgICAgICAgICAgICAgICAgICAgMTUgKiA2MCAqIDEwMDBcbiAgICAgICAgICAgICAgICAgICk7IC8vIGV2ZXJ5IDE1IG1pbnV0ZXNcbiAgICAgICAgICAgICAgICAgIC8vIChhc3luYykgaWYgb2ZmbGluZUFsbG93ZWQsIHNhdmUgZGF0YSBsb2NhbGx5LCB0byB1c2UgaXQgbmV4dCB0aW1lIHdlJ2xsIGJlIG9mZmxpbmVcbiAgICAgICAgICAgICAgICAgIGlmIChvZmZsaW5lQWxsb3dlZCkgdGhpcy5zdG9yYWdlLnNldCgnQXV0aFVzZXJEZXRhaWxzJywgdXNlckRldGFpbHMpO1xuICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIHRoZSBpZFRva2VuICh0byB1c2Ugd2l0aCBBUEkpXG4gICAgICAgICAgICAgICAgICByZXNvbHZlKHsgaWRUb2tlbjogc2Vzc2lvbi5nZXRJZFRva2VuKCkuZ2V0Snd0VG9rZW4oKSwgdXNlckRldGFpbHMgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHsgYnlwYXNzQ2FjaGU6IHRydWUgfVxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIC8qKlxuICAgKiBIZWxwZXIgdG8gcmVmcmVzaCB0aGUgc2Vzc2lvbiBldmVyeSBOIG1pbnV0ZXMuXG4gICAqL1xuICBwcml2YXRlIHJlZnJlc2hTZXNzaW9uKHVzZXI6IENvZ25pdG9Vc2VyLCByZWZyZXNoVG9rZW46IHN0cmluZywgY2FsbGJhY2s6IChmcmVzaElkVG9rZW46IHN0cmluZykgPT4gdm9pZCk6IHZvaWQge1xuICAgIHVzZXIucmVmcmVzaFNlc3Npb24oXG4gICAgICBuZXcgQ29nbml0b1JlZnJlc2hUb2tlbih7IFJlZnJlc2hUb2tlbjogcmVmcmVzaFRva2VuIH0pLFxuICAgICAgKGVycjogRXJyb3IsIHNlc3Npb246IENvZ25pdG9Vc2VyU2Vzc2lvbik6IHZvaWQgPT4ge1xuICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgLy8gdHJ5IGFnYWluIGluIDEgbWludXRlXG4gICAgICAgICAgc2V0VGltZW91dCgoKTogdm9pZCA9PiB0aGlzLnJlZnJlc2hTZXNzaW9uKHVzZXIsIHJlZnJlc2hUb2tlbiwgY2FsbGJhY2spLCAxICogNjAgKiAxMDAwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyAoYXN5bmMpIHNhdmUgdGhlIHJlZnJlc2ggdG9rZW4gc28gaXQgY2FuIGJlIGFjY2Vzc2VkIGJ5IG90aGVyIHByb2NlZHVyZXNcbiAgICAgICAgICB0aGlzLnN0b3JhZ2Uuc2V0KCdBdXRoUmVmcmVzaFRva2VuJywgc2Vzc2lvbi5nZXRSZWZyZXNoVG9rZW4oKS5nZXRUb2tlbigpKTtcbiAgICAgICAgICAvLyByZXBlYXQgZXZlcnkgMTUgbWludXRlc1xuICAgICAgICAgIHNldFRpbWVvdXQoXG4gICAgICAgICAgICAoKTogdm9pZCA9PiB0aGlzLnJlZnJlc2hTZXNzaW9uKHVzZXIsIHNlc3Npb24uZ2V0UmVmcmVzaFRva2VuKCkuZ2V0VG9rZW4oKSwgY2FsbGJhY2spLFxuICAgICAgICAgICAgMTUgKiA2MCAqIDEwMDBcbiAgICAgICAgICApO1xuICAgICAgICAgIC8vIHJ1biB0aGUgY2FsbGJhY2sgYWN0aW9uLCBpZiBzZXRcbiAgICAgICAgICBpZiAoY2FsbGJhY2spIGNhbGxiYWNrKHNlc3Npb24uZ2V0SWRUb2tlbigpLmdldEp3dFRva2VuKCkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgKTtcbiAgfVxuICAvKipcbiAgICogUnVuIHNvbWUgcG9zdC1hdXRoIGNoZWNrcywgYmFzZWQgb24gdGhlIHVzZXJzIGdyb3VwcyBhbmQgb24gdGhlIGFwcCdzIGNvbmZpZ3VyYXRpb246XG4gICAqICAtIHVzZXJzIGluIHRoZSBDb2duaXRvJ3MgXCJhZG1pbnNcIiBncnVwIHNraXAgYWxsIHRoZSBmb2xsb3dpbmcgcnVsZXMuXG4gICAqICAtIHVzZXJzIGluIHRoZSBDb2duaXRvJ3MgXCJyb2JvdHNcIiBncm91cCBjYW4ndCBzaWduLWludG8gZnJvbnQtZW5kcyAodGhleSBzZXJ2ZSBvbmx5IGJhY2stZW5kIHB1cnBvc2VzKS5cbiAgICogIC0gaWYgYGVudi5pZGVhLmF1dGguc2luZ2xlU2ltdWx0YW5lb3VzU2Vzc2lvbmAgaXMgb24sIG1ha2Ugc3VyZSB0aGVyZSBpcyBvbmx5IG9uZSBhY3RpdmUgc2Vzc2lvbiBwZXIgdXNlci5cbiAgICovXG4gIHByaXZhdGUgcnVuUG9zdEF1dGhDaGVja3ModXNlckRldGFpbHM6IGFueSwgY2FsbGJhY2s6IChlcnI/OiBFcnJvcikgPT4gdm9pZCk6IHZvaWQgfCBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBncm91cHM6IHN0cmluZ1tdID0gdXNlckRldGFpbHNbJ2dyb3VwcyddO1xuICAgIC8vIHNraXAgY2hlY2tzIGlmIHRoZSB1c2VyIGlzIGluIHRoZSBcImFkbWluc1wiIGdyb3VwXG4gICAgY29uc3QgaXNBZG1pbiA9IGdyb3Vwcy5zb21lKHggPT4geCA9PT0gJ2FkbWlucycpO1xuICAgIGlmIChpc0FkbWluKSByZXR1cm4gY2FsbGJhY2soKTtcbiAgICAvLyB1c2VycyBpbiB0aGUgXCJyb2JvdHNcIiBncm91cCBjYW4ndCBzaWduLWludG8gZnJvbnQtZW5kcyAodGhleSBzZXJ2ZSBvbmx5IGJhY2stZW5kIHB1cnBvc2VzKVxuICAgIGNvbnN0IGlzUm9ib3QgPSBncm91cHMuc29tZSh4ID0+IHggPT09ICdyb2JvdHMnKTtcbiAgICBpZiAoaXNSb2JvdCkgcmV0dXJuIGNhbGxiYWNrKG5ldyBFcnJvcignUk9CT1RfVVNFUicpKTtcbiAgICAvLyBpbiBjYXNlIHRoZSBwcm9qZWN0IGxpbWl0cyBlYWNoIGFjY291bnQgdG8gb25seSBvbmUgc2ltdWx0YW5lb3VzIHNlc3Npb24sIHJ1biBhIGNoZWNrXG4gICAgaWYgKGVudi5pZGVhLmF1dGguc2luZ2xlU2ltdWx0YW5lb3VzU2Vzc2lvbikgcmV0dXJuIHRoaXMuY2hlY2tGb3JTaW11bHRhbmVvdXNTZXNzaW9ucyh1c2VyRGV0YWlscywgY2FsbGJhY2spO1xuICAgIC8vIG90aGVyd2lzZSwgd2UncmUgZG9uZVxuICAgIGNhbGxiYWNrKCk7XG4gIH1cbiAgLyoqXG4gICAqIENoZWNrIHdoZXRoZXIgdGhlIHVzZXIgc2lnbmVkLWludG8gbXVsdGlwbGUgZGV2aWNlcy5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgY2hlY2tGb3JTaW11bHRhbmVvdXNTZXNzaW9ucyh1c2VyRGV0YWlsczogYW55LCBjYWxsYmFjazogKGVycj86IEVycm9yKSA9PiB2b2lkKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gZ2V0IG9yIGNyZWF0ZSBhIGtleSBmb3IgdGhlIGN1cnJlbnQgZGV2aWNlICh+cmFuZG9tKVxuICAgIGxldCBjdXJyZW50RGV2aWNlS2V5ID0gYXdhaXQgdGhpcy5zdG9yYWdlLmdldCgnQXV0aERldmljZUtleScpO1xuICAgIGlmICghY3VycmVudERldmljZUtleSkge1xuICAgICAgY29uc3QgcmFuZG9tS2V5ID0gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDEwKTtcbiAgICAgIGN1cnJlbnREZXZpY2VLZXkgPSByYW5kb21LZXkuY29uY2F0KFN0cmluZyhEYXRlLm5vdygpKSk7XG4gICAgICBhd2FpdCB0aGlzLnN0b3JhZ2Uuc2V0KCdBdXRoRGV2aWNlS2V5JywgY3VycmVudERldmljZUtleSk7XG4gICAgfVxuICAgIC8vIGNoZWNrIHdoZXRoZXIgdGhlIGxhc3QgZGV2aWNlIHRvIHNpZ24taW50byB0aGlzIHByb2plY3QgKGlmIGFueSkgaXMgdGhlIGN1cnJlbnQgb25lXG4gICAgY29uc3QgbGFzdERldmljZVRvU2lnbkludG9UaGlzUHJvamVjdCA9IHVzZXJEZXRhaWxzW0RFVklDRV9LRVlfQVRUUklCVVRFXTtcbiAgICAvLyBpZiBpdCdzIHRoZSBmaXJzdCB1c2VyJ3MgZGV2aWNlIHRvIHNpZ24taW4sIHNhdmUgdGhlIHJlZmVyZW5jZSBpbiBDb2duaXRvIGFuZCByZXNvbHZlXG4gICAgaWYgKCFsYXN0RGV2aWNlVG9TaWduSW50b1RoaXNQcm9qZWN0KSB7XG4gICAgICB0aGlzLnNldEN1cnJlbnREZXZpY2VGb3JQcm9qZWN0KGN1cnJlbnREZXZpY2VLZXkpXG4gICAgICAgIC50aGVuKCgpOiB2b2lkID0+IGNhbGxiYWNrKCkpXG4gICAgICAgIC5jYXRjaCgoKTogdm9pZCA9PiBjYWxsYmFjayhuZXcgRXJyb3IoJ0NBTlRfU0VUX0RFVklDRScpKSk7XG4gICAgICAvLyBpZiB0aGUgZGV2aWNlIGRpZG4ndCBjaGFuZ2UsIHJlc29sdmVcbiAgICB9IGVsc2UgaWYgKGxhc3REZXZpY2VUb1NpZ25JbnRvVGhpc1Byb2plY3QgPT09IGN1cnJlbnREZXZpY2VLZXkpIGNhbGxiYWNrKCk7XG4gICAgLy8gb3Rod2Vyd2lzZSwgcmVwb3J0IHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUgc2ltdWx0YW5lb3VzIHNlc3Npb25cbiAgICBlbHNlIGNhbGxiYWNrKG5ldyBFcnJvcignU0lNVUxUQU5FT1VTX1NFU1NJT04nKSk7XG4gIH1cbiAgLyoqXG4gICAqIFNldCAob3IgcmVzZXQpIHRoZSBjdXJyZW50IHVzZXIncyBkZXZpY2UgKGJ5IGtleSkgaW4gdGhlIGN1cnJlbnQgcHJvamVjdCAoc3RvcmVkIGluIENvZ25pdG8pLlxuICAgKi9cbiAgcHJpdmF0ZSBzZXRDdXJyZW50RGV2aWNlRm9yUHJvamVjdChkZXZpY2VLZXk/OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBhdHRyaWJ1dGVzOiBhbnkgPSB7fTtcbiAgICAvLyBub3RlOiBhbiBlbXB0eSBzdHJpbmcgd2lsbCByZW1vdmUgdGhlIGF0dHJpYnV0ZSBmcm9tIENvZ25pdG9cbiAgICBhdHRyaWJ1dGVzW0RFVklDRV9LRVlfQVRUUklCVVRFXSA9IGRldmljZUtleSB8fCAnJztcbiAgICByZXR1cm4gdGhpcy51cGRhdGVVc2VyQXR0cmlidXRlcyhhdHRyaWJ1dGVzKTtcbiAgfVxuICAvKipcbiAgICogVXBkYXRlIHRoZSBjdXJyZW50bHkgbG9nZ2VkIGluIHVzZXIncyBhdHRyaWJ1dGVzLlxuICAgKi9cbiAgdXBkYXRlVXNlckF0dHJpYnV0ZXMoYXR0cmlidXRlczogYW55KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpOiB2b2lkID0+IHtcbiAgICAgIC8vIHByZXBhcmUgdGhlIGF0dHJpYnV0ZXMgd2Ugd2FudCB0byBjaGFuZ2VcbiAgICAgIGNvbnN0IGF0dHJzID0gbmV3IEFycmF5PGFueT4oKTtcbiAgICAgIGZvciAoY29uc3QgcHJvcCBpbiBhdHRyaWJ1dGVzKVxuICAgICAgICBpZiAoYXR0cmlidXRlc1twcm9wXSAhPT0gdW5kZWZpbmVkKSBhdHRycy5wdXNoKHRoaXMucHJlcGFyZVVzZXJBdHRyaWJ1dGUocHJvcCwgYXR0cmlidXRlc1twcm9wXSkpO1xuICAgICAgY29uc3QgdXNlciA9IHRoaXMudXNlclBvb2wuZ2V0Q3VycmVudFVzZXIoKTtcbiAgICAgIGlmICghdXNlcikgcmV0dXJuIHJlamVjdCgpO1xuICAgICAgLy8gd2UgbmVlZCB0byBnZXQgdGhlIHNlc3Npb24gYmVmb3JlIHRvIG1ha2UgY2hhbmdlc1xuICAgICAgdXNlci5nZXRTZXNzaW9uKChlcnI6IEVycm9yKTogdm9pZCA9PiB7XG4gICAgICAgIGlmIChlcnIpIHJlamVjdChlcnIpO1xuICAgICAgICBlbHNlIHVzZXIudXBkYXRlQXR0cmlidXRlcyhhdHRycywgKGU6IEVycm9yKTogdm9pZCA9PiAoZSA/IHJlamVjdChlKSA6IHJlc29sdmUoKSkpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGUgdGhlIHBhc3N3b3JkIGFnYWluc3QgdGhlIHBvbGljeSBzZXQgaW4gdGhlIGVudmlyb25tZW50cyBjb25maWd1cmF0aW9uLlxuICAgKiBJbiBjYXNlIHRoZXJlIGFyZSBlcnJvcnMsIHRoZXkgYXJlIHJldHVybmVkIGFzIGFuIGFycmF5IG9mIHN0cmluZ3MuXG4gICAqL1xuICB2YWxpZGF0ZVBhc3N3b3JkQWdhaW5zdFBvbGljeShwYXNzd29yZDogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGVycm9ycyA9IFtdO1xuICAgIGlmIChwYXNzd29yZD8udHJpbSgpLmxlbmd0aCA8IHRoaXMucGFzc3dvcmRQb2xpY3kubWluTGVuZ3RoKSBlcnJvcnMucHVzaCgnTUlOX0xFTkdUSCcpO1xuICAgIGlmICh0aGlzLnBhc3N3b3JkUG9saWN5LnJlcXVpcmVEaWdpdHMgJiYgIS9cXGQvLnRlc3QocGFzc3dvcmQpKSBlcnJvcnMucHVzaCgnUkVRVUlSRV9ESUdJVFMnKTtcbiAgICBpZiAodGhpcy5wYXNzd29yZFBvbGljeS5yZXF1aXJlTG93ZXJjYXNlICYmICEvW2Etel0vLnRlc3QocGFzc3dvcmQpKSBlcnJvcnMucHVzaCgnUkVRVUlSRV9MT1dFUkNBU0UnKTtcbiAgICBpZiAodGhpcy5wYXNzd29yZFBvbGljeS5yZXF1aXJlU3ltYm9scyAmJiAhL1tcXF5cXCRcXCpcXC5cXF9cXH5cXGBcXCtcXD1AXFwhXFw/XFw+XFw8XFw6XFw7XFxcXFxcLFxcI1xcJVxcJl0vLnRlc3QocGFzc3dvcmQpKVxuICAgICAgZXJyb3JzLnB1c2goJ1JFUVVJUkVfU1lNQk9MUycpO1xuICAgIGlmICh0aGlzLnBhc3N3b3JkUG9saWN5LnJlcXVpcmVVcHBlcmNhc2UgJiYgIS9bQS1aXS8udGVzdChwYXNzd29yZCkpIGVycm9ycy5wdXNoKCdSRVFVSVJFX1VQUEVSQ0FTRScpO1xuICAgIHJldHVybiBlcnJvcnM7XG4gIH1cbiAgLyoqXG4gICAqIEdldCBhIGNvbXBsZXRlIHBhc3N3b3JkIHBvbGljeSBwYXR0ZXJuLCBiYXNlZCBvbiB0aGUgZW52aXJvbm1lbnRzIGNvbmZpZ3VyYXRpb24sIHRvIHVzZSBvbiBwYXNzd29yZCBpbnB1dCBmaWVsZHMuXG4gICAqIE5vdGU6IHNvbWUgb2YgdGhlIHN5bWJvbHMgY291bGRuJ3QgYmUgaW5jbHVkZWQgYmVjYXVzZSB1bnN1cHBvcnRlZCBieSB0aGUgaW5wdXRbcGF0dGVybl0gYXR0cmlidXRlLlxuICAgKi9cbiAgZ2V0UGFzc3dvcmRQb2xpY3lQYXR0ZXJuRm9ySW5wdXQoKTogc3RyaW5nIHtcbiAgICBsZXQgcGF0dGVybiA9ICcnO1xuICAgIGlmICh0aGlzLnBhc3N3b3JkUG9saWN5LnJlcXVpcmVEaWdpdHMpIHBhdHRlcm4gKz0gYCg/PS4qWzAtOV0pYDtcbiAgICBpZiAodGhpcy5wYXNzd29yZFBvbGljeS5yZXF1aXJlTG93ZXJjYXNlKSBwYXR0ZXJuICs9IGAoPz0uKlthLXpdKWA7XG4gICAgaWYgKHRoaXMucGFzc3dvcmRQb2xpY3kucmVxdWlyZVN5bWJvbHMpIHBhdHRlcm4gKz0gYCg/PS4qW1xcXlxcJFxcKlxcLlxcX1xcflxcYFxcK1xcPUBcXCFcXD9cXD5cXDxcXDpcXDtcXFxcXFwsXFwjXFwlXFwmXSlgO1xuICAgIGlmICh0aGlzLnBhc3N3b3JkUG9saWN5LnJlcXVpcmVVcHBlcmNhc2UpIHBhdHRlcm4gKz0gYCg/PS4qW0EtWl0pYDtcbiAgICBwYXR0ZXJuICs9IGAueyR7dGhpcy5wYXNzd29yZFBvbGljeS5taW5MZW5ndGh9LH1gO1xuICAgIHJldHVybiBwYXR0ZXJuO1xuICB9XG59XG5cbi8qKlxuICogVGhlIHBvc3NpYmxlIGFjdGlvbnMgZm9sbG93aW5nIGEgc3VjY2Vzc2Z1bCBsb2dpbi5cbiAqL1xuZXhwb3J0IGVudW0gTG9naW5PdXRjb21lQWN0aW9ucyB7XG4gIE5PTkUgPSAnbm9uZScsXG4gIE5FV19QQVNTV09SRCA9ICduZXdQYXNzd29yZCcsXG4gIE1GQV9DSEFMTEVOR0UgPSAnbWZhQ2hhbGxlbmdlJyxcbiAgTUZBX1NFVFVQID0gJ21mYVNldHVwJ1xufVxuIl19
@@ -60,11 +60,11 @@ export class IDEAConfirmPasswordPage {
60
60
  goToAuth() {
61
61
  this.navCtrl.navigateBack(['auth']);
62
62
  }
63
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: IDEAConfirmPasswordPage, deps: [{ token: i1.NavController }, { token: i2.ActivatedRoute }, { token: i1.PopoverController }, { token: i3.IDEAMessageService }, { token: i3.IDEALoadingService }, { token: i3.IDEATranslationsService }, { token: i4.IDEAAuthService }], target: i0.ɵɵFactoryTarget.Component }); }
64
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.8", type: IDEAConfirmPasswordPage, selector: "idea-confirm-password", ngImport: i0, template: "<ion-content>\n <form class=\"flexBox\">\n <ion-card class=\"authCard\">\n <ion-card-header>\n <ion-card-title color=\"primary\">{{ 'IDEA_AUTH.CHANGE_THE_PASSWORD' | translate }}</ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <p class=\"errorBox\" *ngIf=\"errorMsg\">\n <b> {{ 'IDEA_AUTH.ERROR' | translate }}. </b>\n {{ errorMsg }}\n </p>\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"person-circle\" color=\"primary\"></ion-icon>\n </ion-label>\n <ion-input\n type=\"email\"\n inputmode=\"email\"\n pattern=\"[A-Za-z0-9._%+-]{2,}@[a-zA-Z-_.]{2,}[.]{1}[a-zA-Z]{2,}\"\n spellcheck=\"false\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n autocomplete=\"email\"\n [placeholder]=\"'IDEA_AUTH.EMAIL' | translate\"\n [title]=\"'IDEA_AUTH.EMAIL_HINT' | translate\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"email\"\n (keyup.enter)=\"confirmPassword()\"\n ></ion-input>\n </ion-item>\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"disc\" color=\"primary\"></ion-icon>\n </ion-label>\n <ion-input\n type=\"text\"\n spellcheck=\"false\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n autocomplete=\"off\"\n [placeholder]=\"'IDEA_AUTH.RESET_CODE' | translate\"\n [title]=\"'IDEA_AUTH.RESET_CODE_HINT' | translate\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"code\"\n (keyup.enter)=\"confirmPassword()\"\n ></ion-input>\n </ion-item>\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"key\" color=\"primary\"></ion-icon>\n </ion-label>\n <ion-input\n type=\"password\"\n spellcheck=\"false\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n autocomplete=\"new-password\"\n [pattern]=\"auth.getPasswordPolicyPatternForInput()\"\n [clearOnEdit]=\"false\"\n [placeholder]=\"'IDEA_AUTH.NEW_PASSWORD' | translate\"\n [title]=\"'IDEA_AUTH.CHOOSE_A_PASSWORD' | translate\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"newPassword\"\n (keyup.enter)=\"confirmPassword()\"\n ></ion-input>\n <ion-button slot=\"end\" fill=\"clear\" color=\"dark\" (click)=\"openPasswordPolicy($event)\">\n <ion-icon icon=\"help-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </ion-item>\n <ion-button\n expand=\"block\"\n [title]=\"'IDEA_AUTH.CHANGE_MY_PASSWORD_HINT' | translate\"\n (click)=\"confirmPassword()\"\n >\n {{ 'IDEA_AUTH.CHANGE_MY_PASSWORD' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"'IDEA_AUTH.HAVEN_T_RECEIVED_A_RESET_CODE_HINT' | translate\"\n (click)=\"goToForgotPassword()\"\n >\n {{ 'IDEA_AUTH.HAVEN_T_RECEIVED_A_RESET_CODE' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"'IDEA_AUTH.BACK_TO_SIGN_IN_HINT' | translate\"\n (click)=\"goToAuth()\"\n >\n {{ 'IDEA_AUTH.BACK_TO_SIGN_IN' | translate }}\n </ion-button>\n </ion-card-content>\n </ion-card>\n </form>\n</ion-content>\n", styles: [".flexBox{background:var(--idea-auth-background-color, var(--ion-color-white-shade))}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--idea-auth-card-background-color, var(--ion-color-white));border:1px solid var(--idea-auth-card-border-color, var(--ion-color-light));border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--idea-auth-card-background-color, var(--ion-color-white));--border-color: var(--idea-auth-card-border-color, var(--ion-color-light))}.authCard ion-card-content ion-label[position=inline] ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button:not([slot=end]){margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}.passwordPolicyPopover{--width: 350px}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i1.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i1.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: i1.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: i1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1.IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "legacy", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "size", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i1.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "directive", type: i1.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { kind: "pipe", type: i3.IDEATranslatePipe, name: "translate" }] }); }
63
65
  }
64
- IDEAConfirmPasswordPage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: IDEAConfirmPasswordPage, deps: [{ token: i1.NavController }, { token: i2.ActivatedRoute }, { token: i1.PopoverController }, { token: i3.IDEAMessageService }, { token: i3.IDEALoadingService }, { token: i3.IDEATranslationsService }, { token: i4.IDEAAuthService }], target: i0.ɵɵFactoryTarget.Component });
65
- IDEAConfirmPasswordPage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: IDEAConfirmPasswordPage, selector: "idea-confirm-password", ngImport: i0, template: "<ion-content>\n <form class=\"flexBox\">\n <ion-card class=\"authCard\">\n <ion-card-header>\n <ion-card-title color=\"primary\">{{ 'IDEA_AUTH.CHANGE_THE_PASSWORD' | translate }}</ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <p class=\"errorBox\" *ngIf=\"errorMsg\">\n <b> {{ 'IDEA_AUTH.ERROR' | translate }}. </b>\n {{ errorMsg }}\n </p>\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"person-circle\" color=\"primary\"></ion-icon>\n </ion-label>\n <ion-input\n type=\"email\"\n inputmode=\"email\"\n pattern=\"[A-Za-z0-9._%+-]{2,}@[a-zA-Z-_.]{2,}[.]{1}[a-zA-Z]{2,}\"\n spellcheck=\"false\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n autocomplete=\"email\"\n [placeholder]=\"'IDEA_AUTH.EMAIL' | translate\"\n [title]=\"'IDEA_AUTH.EMAIL_HINT' | translate\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"email\"\n (keyup.enter)=\"confirmPassword()\"\n ></ion-input>\n </ion-item>\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"disc\" color=\"primary\"></ion-icon>\n </ion-label>\n <ion-input\n type=\"text\"\n spellcheck=\"false\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n autocomplete=\"off\"\n [placeholder]=\"'IDEA_AUTH.RESET_CODE' | translate\"\n [title]=\"'IDEA_AUTH.RESET_CODE_HINT' | translate\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"code\"\n (keyup.enter)=\"confirmPassword()\"\n ></ion-input>\n </ion-item>\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"key\" color=\"primary\"></ion-icon>\n </ion-label>\n <ion-input\n type=\"password\"\n spellcheck=\"false\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n autocomplete=\"new-password\"\n [pattern]=\"auth.getPasswordPolicyPatternForInput()\"\n [clearOnEdit]=\"false\"\n [placeholder]=\"'IDEA_AUTH.NEW_PASSWORD' | translate\"\n [title]=\"'IDEA_AUTH.CHOOSE_A_PASSWORD' | translate\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"newPassword\"\n (keyup.enter)=\"confirmPassword()\"\n ></ion-input>\n <ion-button slot=\"end\" fill=\"clear\" color=\"dark\" (click)=\"openPasswordPolicy($event)\">\n <ion-icon icon=\"help-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </ion-item>\n <ion-button\n expand=\"block\"\n [title]=\"'IDEA_AUTH.CHANGE_MY_PASSWORD_HINT' | translate\"\n (click)=\"confirmPassword()\"\n >\n {{ 'IDEA_AUTH.CHANGE_MY_PASSWORD' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"'IDEA_AUTH.HAVEN_T_RECEIVED_A_RESET_CODE_HINT' | translate\"\n (click)=\"goToForgotPassword()\"\n >\n {{ 'IDEA_AUTH.HAVEN_T_RECEIVED_A_RESET_CODE' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"'IDEA_AUTH.BACK_TO_SIGN_IN_HINT' | translate\"\n (click)=\"goToAuth()\"\n >\n {{ 'IDEA_AUTH.BACK_TO_SIGN_IN' | translate }}\n </ion-button>\n </ion-card-content>\n </ion-card>\n </form>\n</ion-content>\n", styles: [".flexBox{background:var(--idea-auth-background-color, var(--ion-color-white-shade))}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--idea-auth-card-background-color, var(--ion-color-white));border:1px solid var(--idea-auth-card-border-color, var(--ion-color-light));border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--idea-auth-card-background-color, var(--ion-color-white));--border-color: var(--idea-auth-card-border-color, var(--ion-color-light))}.authCard ion-card-content ion-label[position=inline] ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button:not([slot=end]){margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}.passwordPolicyPopover{--width: 350px}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i1.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i1.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: i1.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: i1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1.IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "size", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i1.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "directive", type: i1.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { kind: "pipe", type: i3.IDEATranslatePipe, name: "translate" }] });
66
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: IDEAConfirmPasswordPage, decorators: [{
66
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: IDEAConfirmPasswordPage, decorators: [{
67
67
  type: Component,
68
68
  args: [{ selector: 'idea-confirm-password', template: "<ion-content>\n <form class=\"flexBox\">\n <ion-card class=\"authCard\">\n <ion-card-header>\n <ion-card-title color=\"primary\">{{ 'IDEA_AUTH.CHANGE_THE_PASSWORD' | translate }}</ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <p class=\"errorBox\" *ngIf=\"errorMsg\">\n <b> {{ 'IDEA_AUTH.ERROR' | translate }}. </b>\n {{ errorMsg }}\n </p>\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"person-circle\" color=\"primary\"></ion-icon>\n </ion-label>\n <ion-input\n type=\"email\"\n inputmode=\"email\"\n pattern=\"[A-Za-z0-9._%+-]{2,}@[a-zA-Z-_.]{2,}[.]{1}[a-zA-Z]{2,}\"\n spellcheck=\"false\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n autocomplete=\"email\"\n [placeholder]=\"'IDEA_AUTH.EMAIL' | translate\"\n [title]=\"'IDEA_AUTH.EMAIL_HINT' | translate\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"email\"\n (keyup.enter)=\"confirmPassword()\"\n ></ion-input>\n </ion-item>\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"disc\" color=\"primary\"></ion-icon>\n </ion-label>\n <ion-input\n type=\"text\"\n spellcheck=\"false\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n autocomplete=\"off\"\n [placeholder]=\"'IDEA_AUTH.RESET_CODE' | translate\"\n [title]=\"'IDEA_AUTH.RESET_CODE_HINT' | translate\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"code\"\n (keyup.enter)=\"confirmPassword()\"\n ></ion-input>\n </ion-item>\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"key\" color=\"primary\"></ion-icon>\n </ion-label>\n <ion-input\n type=\"password\"\n spellcheck=\"false\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n autocomplete=\"new-password\"\n [pattern]=\"auth.getPasswordPolicyPatternForInput()\"\n [clearOnEdit]=\"false\"\n [placeholder]=\"'IDEA_AUTH.NEW_PASSWORD' | translate\"\n [title]=\"'IDEA_AUTH.CHOOSE_A_PASSWORD' | translate\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"newPassword\"\n (keyup.enter)=\"confirmPassword()\"\n ></ion-input>\n <ion-button slot=\"end\" fill=\"clear\" color=\"dark\" (click)=\"openPasswordPolicy($event)\">\n <ion-icon icon=\"help-circle-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </ion-item>\n <ion-button\n expand=\"block\"\n [title]=\"'IDEA_AUTH.CHANGE_MY_PASSWORD_HINT' | translate\"\n (click)=\"confirmPassword()\"\n >\n {{ 'IDEA_AUTH.CHANGE_MY_PASSWORD' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"'IDEA_AUTH.HAVEN_T_RECEIVED_A_RESET_CODE_HINT' | translate\"\n (click)=\"goToForgotPassword()\"\n >\n {{ 'IDEA_AUTH.HAVEN_T_RECEIVED_A_RESET_CODE' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"'IDEA_AUTH.BACK_TO_SIGN_IN_HINT' | translate\"\n (click)=\"goToAuth()\"\n >\n {{ 'IDEA_AUTH.BACK_TO_SIGN_IN' | translate }}\n </ion-button>\n </ion-card-content>\n </ion-card>\n </form>\n</ion-content>\n", styles: [".flexBox{background:var(--idea-auth-background-color, var(--ion-color-white-shade))}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--idea-auth-card-background-color, var(--ion-color-white));border:1px solid var(--idea-auth-card-border-color, var(--ion-color-light));border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--idea-auth-card-background-color, var(--ion-color-white));--border-color: var(--idea-auth-card-border-color, var(--ion-color-light))}.authCard ion-card-content ion-label[position=inline] ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button:not([slot=end]){margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}.passwordPolicyPopover{--width: 350px}\n"] }]
69
69
  }], ctorParameters: function () { return [{ type: i1.NavController }, { type: i2.ActivatedRoute }, { type: i1.PopoverController }, { type: i3.IDEAMessageService }, { type: i3.IDEALoadingService }, { type: i3.IDEATranslationsService }, { type: i4.IDEAAuthService }]; } });
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybVBhc3N3b3JkLnBhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9tb2R1bGVzL2F1dGgvc3JjL2NvbmZpcm1QYXNzd29yZC5wYWdlLnRzIiwiLi4vLi4vLi4vLi4vbW9kdWxlcy9hdXRoL3NyYy9jb25maXJtUGFzc3dvcmQucGFnZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFLbEQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFJekUsT0FBTyxFQUFFLFdBQVcsSUFBSSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7O0FBTzFDLE1BQU0sT0FBTyx1QkFBdUI7SUFPbEMsWUFDVSxPQUFzQixFQUN0QixLQUFxQixFQUNyQixXQUE4QixFQUM5QixPQUEyQixFQUMzQixPQUEyQixFQUMzQixDQUEwQixFQUMzQixJQUFxQjtRQU5wQixZQUFPLEdBQVAsT0FBTyxDQUFlO1FBQ3RCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLGdCQUFXLEdBQVgsV0FBVyxDQUFtQjtRQUM5QixZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQUMzQixZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQUMzQixNQUFDLEdBQUQsQ0FBQyxDQUF5QjtRQUMzQixTQUFJLEdBQUosSUFBSSxDQUFpQjtRQVY5QixtQkFBYyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztJQVczQyxDQUFDO0lBQ0osUUFBUTtRQUNOLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUM7UUFDcEUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUk7WUFDckQsSUFBSSxDQUFDLEtBQUssR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO0lBQ25ELENBQUM7SUFFRCxLQUFLLENBQUMsZUFBZTtRQUNuQixJQUFJO1lBQ0YsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDckIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDekUsSUFBSSxNQUFNLENBQUMsTUFBTTtnQkFDZixJQUFJLENBQUMsUUFBUSxHQUFHO29CQUNkLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHdDQUF3QyxDQUFDO29CQUNsRCxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDaEIsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsa0NBQWtDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FDN0Y7aUJBQ0YsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLElBQUksQ0FBQyxRQUFRO2dCQUFFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsd0NBQXdDLENBQUMsQ0FBQztZQUV2RixNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDMUIsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3pFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLDRCQUE0QixDQUFDLENBQUM7WUFDbkQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ2pCO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxJQUFJLENBQUMsUUFBUSxHQUFJLEtBQWEsQ0FBQyxPQUFPLENBQUM7WUFDdkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsd0NBQXdDLENBQUMsQ0FBQztTQUM5RDtnQkFBUztZQUNSLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDckI7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLGtCQUFrQixDQUFDLEtBQVk7UUFDbkMsTUFBTSxRQUFRLEdBQUcsdUJBQXVCLENBQUM7UUFDekMsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVMsRUFBRSwyQkFBMkIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUMzRyxNQUFNLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFDRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7O29IQTNEVSx1QkFBdUI7d0dBQXZCLHVCQUF1Qiw2RENoQnBDLG11SEFrR0E7MkZEbEZhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2Q29udHJvbGxlciwgUG9wb3ZlckNvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJREVBTWVzc2FnZVNlcnZpY2UsIElERUFMb2FkaW5nU2VydmljZSwgSURFQVRyYW5zbGF0aW9uc1NlcnZpY2UgfSBmcm9tICdAaWRlYS1pb25pYy9jb21tb24nO1xuXG5pbXBvcnQgeyBJREVBUGFzc3dvcmRQb2xpY3lDb21wb25lbnQgfSBmcm9tICcuL3Bhc3N3b3JkUG9saWN5LmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IElERUFBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcblxuaW1wb3J0IHsgZW52aXJvbm1lbnQgYXMgZW52IH0gZnJvbSAnQGVudic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lkZWEtY29uZmlybS1wYXNzd29yZCcsXG4gIHRlbXBsYXRlVXJsOiAnY29uZmlybVBhc3N3b3JkLnBhZ2UuaHRtbCcsXG4gIHN0eWxlVXJsczogWydhdXRoLnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBJREVBQ29uZmlybVBhc3N3b3JkUGFnZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIG5ld1Bhc3N3b3JkOiBzdHJpbmc7XG4gIGNvZGU6IHN0cmluZztcbiAgcGFzc3dvcmRQb2xpY3kgPSBlbnYuaWRlYS5hdXRoLnBhc3N3b3JkUG9saWN5O1xuICBlcnJvck1zZzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbmF2Q3RybDogTmF2Q29udHJvbGxlcixcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHBvcG92ZXJDdHJsOiBQb3BvdmVyQ29udHJvbGxlcixcbiAgICBwcml2YXRlIG1lc3NhZ2U6IElERUFNZXNzYWdlU2VydmljZSxcbiAgICBwcml2YXRlIGxvYWRpbmc6IElERUFMb2FkaW5nU2VydmljZSxcbiAgICBwcml2YXRlIHQ6IElERUFUcmFuc2xhdGlvbnNTZXJ2aWNlLFxuICAgIHB1YmxpYyBhdXRoOiBJREVBQXV0aFNlcnZpY2VcbiAgKSB7fVxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmVtYWlsID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtTWFwLmdldCgnZW1haWwnKSA/PyBudWxsO1xuICAgIGlmICghdGhpcy5lbWFpbCAmJiB0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zLnVzZXIpXG4gICAgICB0aGlzLmVtYWlsID0gZGVjb2RlVVJJQ29tcG9uZW50KHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMudXNlcik7XG4gICAgdGhpcy5jb2RlID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcy5jb2RlO1xuICB9XG5cbiAgYXN5bmMgY29uZmlybVBhc3N3b3JkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLmVycm9yTXNnID0gbnVsbDtcbiAgICAgIGNvbnN0IGVycm9ycyA9IHRoaXMuYXV0aC52YWxpZGF0ZVBhc3N3b3JkQWdhaW5zdFBvbGljeSh0aGlzLm5ld1Bhc3N3b3JkKTtcbiAgICAgIGlmIChlcnJvcnMubGVuZ3RoKVxuICAgICAgICB0aGlzLmVycm9yTXNnID0gW1xuICAgICAgICAgIHRoaXMudC5fKCdJREVBX0FVVEguUEFTU1dPUkRfUkVRVUlSRU1FTlRTX0ZPTExPVycpLFxuICAgICAgICAgIC4uLmVycm9ycy5tYXAoeCA9PlxuICAgICAgICAgICAgdGhpcy50Ll8oJ0lERUFfQVVUSC5QQVNTV09SRF9SRVFVSVJFTUVOVFMuJy5jb25jYXQoeCksIHsgbjogdGhpcy5wYXNzd29yZFBvbGljeS5taW5MZW5ndGggfSlcbiAgICAgICAgICApXG4gICAgICAgIF0uam9pbignICcpO1xuICAgICAgaWYgKHRoaXMuZXJyb3JNc2cpIHJldHVybiB0aGlzLm1lc3NhZ2UuZXJyb3IoJ0lERUFfQVVUSC5QQVNTV09SRF9SRVFVSVJFTUVOVFNfRk9MTE9XJyk7XG5cbiAgICAgIGF3YWl0IHRoaXMubG9hZGluZy5zaG93KCk7XG4gICAgICBhd2FpdCB0aGlzLmF1dGguY29uZmlybVBhc3N3b3JkKHRoaXMuZW1haWwsIHRoaXMuY29kZSwgdGhpcy5uZXdQYXNzd29yZCk7XG4gICAgICB0aGlzLm1lc3NhZ2Uuc3VjY2VzcygnSURFQV9BVVRILlBBU1NXT1JEX0NIQU5HRUQnKTtcbiAgICAgIHRoaXMuZ29Ub0F1dGgoKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5lcnJvck1zZyA9IChlcnJvciBhcyBhbnkpLm1lc3NhZ2U7XG4gICAgICB0aGlzLm1lc3NhZ2UuZXJyb3IoJ0lERUFfQVVUSC5QQVNTV09SRF9SRVFVSVJFTUVOVFNfRk9MTE9XJyk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMubG9hZGluZy5oaWRlKCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgb3BlblBhc3N3b3JkUG9saWN5KGV2ZW50OiBFdmVudCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGNzc0NsYXNzID0gJ3Bhc3N3b3JkUG9saWN5UG9wb3Zlcic7XG4gICAgY29uc3QgcG9wb3ZlciA9IGF3YWl0IHRoaXMucG9wb3ZlckN0cmwuY3JlYXRlKHsgY29tcG9uZW50OiBJREVBUGFzc3dvcmRQb2xpY3lDb21wb25lbnQsIGV2ZW50LCBjc3NDbGFzcyB9KTtcbiAgICBhd2FpdCBwb3BvdmVyLnByZXNlbnQoKTtcbiAgfVxuXG4gIGdvVG9Gb3Jnb3RQYXNzd29yZCgpOiB2b2lkIHtcbiAgICB0aGlzLm5hdkN0cmwubmF2aWdhdGVCYWNrKFsnYXV0aC9mb3Jnb3QtcGFzc3dvcmQnXSk7XG4gIH1cbiAgZ29Ub0F1dGgoKTogdm9pZCB7XG4gICAgdGhpcy5uYXZDdHJsLm5hdmlnYXRlQmFjayhbJ2F1dGgnXSk7XG4gIH1cbn1cbiIsIjxpb24tY29udGVudD5cbiAgPGZvcm0gY2xhc3M9XCJmbGV4Qm94XCI+XG4gICAgPGlvbi1jYXJkIGNsYXNzPVwiYXV0aENhcmRcIj5cbiAgICAgIDxpb24tY2FyZC1oZWFkZXI+XG4gICAgICAgIDxpb24tY2FyZC10aXRsZSBjb2xvcj1cInByaW1hcnlcIj57eyAnSURFQV9BVVRILkNIQU5HRV9USEVfUEFTU1dPUkQnIHwgdHJhbnNsYXRlIH19PC9pb24tY2FyZC10aXRsZT5cbiAgICAgIDwvaW9uLWNhcmQtaGVhZGVyPlxuICAgICAgPGlvbi1jYXJkLWNvbnRlbnQ+XG4gICAgICAgIDxwIGNsYXNzPVwiZXJyb3JCb3hcIiAqbmdJZj1cImVycm9yTXNnXCI+XG4gICAgICAgICAgPGI+IHt7ICdJREVBX0FVVEguRVJST1InIHwgdHJhbnNsYXRlIH19LiA8L2I+XG4gICAgICAgICAge3sgZXJyb3JNc2cgfX1cbiAgICAgICAgPC9wPlxuICAgICAgICA8aW9uLWl0ZW0+XG4gICAgICAgICAgPGlvbi1sYWJlbCBwb3NpdGlvbj1cImlubGluZVwiPlxuICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJwZXJzb24tY2lyY2xlXCIgY29sb3I9XCJwcmltYXJ5XCI+PC9pb24taWNvbj5cbiAgICAgICAgICA8L2lvbi1sYWJlbD5cbiAgICAgICAgICA8aW9uLWlucHV0XG4gICAgICAgICAgICB0eXBlPVwiZW1haWxcIlxuICAgICAgICAgICAgaW5wdXRtb2RlPVwiZW1haWxcIlxuICAgICAgICAgICAgcGF0dGVybj1cIltBLVphLXowLTkuXyUrLV17Mix9QFthLXpBLVotXy5dezIsfVsuXXsxfVthLXpBLVpdezIsfVwiXG4gICAgICAgICAgICBzcGVsbGNoZWNrPVwiZmFsc2VcIlxuICAgICAgICAgICAgYXV0b2NvcnJlY3Q9XCJvZmZcIlxuICAgICAgICAgICAgYXV0b2NhcGl0YWxpemU9XCJvZmZcIlxuICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwiZW1haWxcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidJREVBX0FVVEguRU1BSUwnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCInSURFQV9BVVRILkVNQUlMX0hJTlQnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImVtYWlsXCJcbiAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJjb25maXJtUGFzc3dvcmQoKVwiXG4gICAgICAgICAgPjwvaW9uLWlucHV0PlxuICAgICAgICA8L2lvbi1pdGVtPlxuICAgICAgICA8aW9uLWl0ZW0+XG4gICAgICAgICAgPGlvbi1sYWJlbCBwb3NpdGlvbj1cImlubGluZVwiPlxuICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJkaXNjXCIgY29sb3I9XCJwcmltYXJ5XCI+PC9pb24taWNvbj5cbiAgICAgICAgICA8L2lvbi1sYWJlbD5cbiAgICAgICAgICA8aW9uLWlucHV0XG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBzcGVsbGNoZWNrPVwiZmFsc2VcIlxuICAgICAgICAgICAgYXV0b2NvcnJlY3Q9XCJvZmZcIlxuICAgICAgICAgICAgYXV0b2NhcGl0YWxpemU9XCJvZmZcIlxuICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInSURFQV9BVVRILlJFU0VUX0NPREUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCInSURFQV9BVVRILlJFU0VUX0NPREVfSElOVCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29kZVwiXG4gICAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwiY29uZmlybVBhc3N3b3JkKClcIlxuICAgICAgICAgID48L2lvbi1pbnB1dD5cbiAgICAgICAgPC9pb24taXRlbT5cbiAgICAgICAgPGlvbi1pdGVtPlxuICAgICAgICAgIDxpb24tbGFiZWwgcG9zaXRpb249XCJpbmxpbmVcIj5cbiAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwia2V5XCIgY29sb3I9XCJwcmltYXJ5XCI+PC9pb24taWNvbj5cbiAgICAgICAgICA8L2lvbi1sYWJlbD5cbiAgICAgICAgICA8aW9uLWlucHV0XG4gICAgICAgICAgICB0eXBlPVwicGFzc3dvcmRcIlxuICAgICAgICAgICAgc3BlbGxjaGVjaz1cImZhbHNlXCJcbiAgICAgICAgICAgIGF1dG9jb3JyZWN0PVwib2ZmXCJcbiAgICAgICAgICAgIGF1dG9jYXBpdGFsaXplPVwib2ZmXCJcbiAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm5ldy1wYXNzd29yZFwiXG4gICAgICAgICAgICBbcGF0dGVybl09XCJhdXRoLmdldFBhc3N3b3JkUG9saWN5UGF0dGVybkZvcklucHV0KClcIlxuICAgICAgICAgICAgW2NsZWFyT25FZGl0XT1cImZhbHNlXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInSURFQV9BVVRILk5FV19QQVNTV09SRCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgW3RpdGxlXT1cIidJREVBX0FVVEguQ0hPT1NFX0FfUEFTU1dPUkQnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm5ld1Bhc3N3b3JkXCJcbiAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJjb25maXJtUGFzc3dvcmQoKVwiXG4gICAgICAgICAgPjwvaW9uLWlucHV0PlxuICAgICAgICAgIDxpb24tYnV0dG9uIHNsb3Q9XCJlbmRcIiBmaWxsPVwiY2xlYXJcIiBjb2xvcj1cImRhcmtcIiAoY2xpY2spPVwib3BlblBhc3N3b3JkUG9saWN5KCRldmVudClcIj5cbiAgICAgICAgICAgIDxpb24taWNvbiBpY29uPVwiaGVscC1jaXJjbGUtb3V0bGluZVwiIHNsb3Q9XCJpY29uLW9ubHlcIj48L2lvbi1pY29uPlxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPC9pb24taXRlbT5cbiAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICBleHBhbmQ9XCJibG9ja1wiXG4gICAgICAgICAgW3RpdGxlXT1cIidJREVBX0FVVEguQ0hBTkdFX01ZX1BBU1NXT1JEX0hJTlQnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAoY2xpY2spPVwiY29uZmlybVBhc3N3b3JkKClcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgJ0lERUFfQVVUSC5DSEFOR0VfTVlfUEFTU1dPUkQnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICBmaWxsPVwiY2xlYXJcIlxuICAgICAgICAgIGV4cGFuZD1cImJsb2NrXCJcbiAgICAgICAgICBjbGFzcz1cInNtYWxsQ2FzZUJ1dHRvblwiXG4gICAgICAgICAgW3RpdGxlXT1cIidJREVBX0FVVEguSEFWRU5fVF9SRUNFSVZFRF9BX1JFU0VUX0NPREVfSElOVCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIChjbGljayk9XCJnb1RvRm9yZ290UGFzc3dvcmQoKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyAnSURFQV9BVVRILkhBVkVOX1RfUkVDRUlWRURfQV9SRVNFVF9DT0RFJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgZmlsbD1cImNsZWFyXCJcbiAgICAgICAgICBleHBhbmQ9XCJibG9ja1wiXG4gICAgICAgICAgY2xhc3M9XCJzbWFsbENhc2VCdXR0b25cIlxuICAgICAgICAgIFt0aXRsZV09XCInSURFQV9BVVRILkJBQ0tfVE9fU0lHTl9JTl9ISU5UJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgKGNsaWNrKT1cImdvVG9BdXRoKClcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgJ0lERUFfQVVUSC5CQUNLX1RPX1NJR05fSU4nIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgIDwvaW9uLWNhcmQtY29udGVudD5cbiAgICA8L2lvbi1jYXJkPlxuICA8L2Zvcm0+XG48L2lvbi1jb250ZW50PlxuIl19
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybVBhc3N3b3JkLnBhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9tb2R1bGVzL2F1dGgvc3JjL2NvbmZpcm1QYXNzd29yZC5wYWdlLnRzIiwiLi4vLi4vLi4vLi4vbW9kdWxlcy9hdXRoL3NyYy9jb25maXJtUGFzc3dvcmQucGFnZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFLbEQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFJekUsT0FBTyxFQUFFLFdBQVcsSUFBSSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7O0FBTzFDLE1BQU0sT0FBTyx1QkFBdUI7SUFPbEMsWUFDVSxPQUFzQixFQUN0QixLQUFxQixFQUNyQixXQUE4QixFQUM5QixPQUEyQixFQUMzQixPQUEyQixFQUMzQixDQUEwQixFQUMzQixJQUFxQjtRQU5wQixZQUFPLEdBQVAsT0FBTyxDQUFlO1FBQ3RCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLGdCQUFXLEdBQVgsV0FBVyxDQUFtQjtRQUM5QixZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQUMzQixZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQUMzQixNQUFDLEdBQUQsQ0FBQyxDQUF5QjtRQUMzQixTQUFJLEdBQUosSUFBSSxDQUFpQjtRQVY5QixtQkFBYyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztJQVczQyxDQUFDO0lBQ0osUUFBUTtRQUNOLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUM7UUFDcEUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUk7WUFDckQsSUFBSSxDQUFDLEtBQUssR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO0lBQ25ELENBQUM7SUFFRCxLQUFLLENBQUMsZUFBZTtRQUNuQixJQUFJO1lBQ0YsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDckIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDekUsSUFBSSxNQUFNLENBQUMsTUFBTTtnQkFDZixJQUFJLENBQUMsUUFBUSxHQUFHO29CQUNkLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHdDQUF3QyxDQUFDO29CQUNsRCxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDaEIsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsa0NBQWtDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FDN0Y7aUJBQ0YsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLElBQUksQ0FBQyxRQUFRO2dCQUFFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsd0NBQXdDLENBQUMsQ0FBQztZQUV2RixNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDMUIsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3pFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLDRCQUE0QixDQUFDLENBQUM7WUFDbkQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ2pCO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxJQUFJLENBQUMsUUFBUSxHQUFJLEtBQWEsQ0FBQyxPQUFPLENBQUM7WUFDdkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsd0NBQXdDLENBQUMsQ0FBQztTQUM5RDtnQkFBUztZQUNSLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDckI7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLGtCQUFrQixDQUFDLEtBQVk7UUFDbkMsTUFBTSxRQUFRLEdBQUcsdUJBQXVCLENBQUM7UUFDekMsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVMsRUFBRSwyQkFBMkIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUMzRyxNQUFNLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFDRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7OEdBM0RVLHVCQUF1QjtrR0FBdkIsdUJBQXVCLDZEQ2hCcEMsbXVIQWtHQTs7MkZEbEZhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2Q29udHJvbGxlciwgUG9wb3ZlckNvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJREVBTWVzc2FnZVNlcnZpY2UsIElERUFMb2FkaW5nU2VydmljZSwgSURFQVRyYW5zbGF0aW9uc1NlcnZpY2UgfSBmcm9tICdAaWRlYS1pb25pYy9jb21tb24nO1xuXG5pbXBvcnQgeyBJREVBUGFzc3dvcmRQb2xpY3lDb21wb25lbnQgfSBmcm9tICcuL3Bhc3N3b3JkUG9saWN5LmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IElERUFBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcblxuaW1wb3J0IHsgZW52aXJvbm1lbnQgYXMgZW52IH0gZnJvbSAnQGVudic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lkZWEtY29uZmlybS1wYXNzd29yZCcsXG4gIHRlbXBsYXRlVXJsOiAnY29uZmlybVBhc3N3b3JkLnBhZ2UuaHRtbCcsXG4gIHN0eWxlVXJsczogWydhdXRoLnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBJREVBQ29uZmlybVBhc3N3b3JkUGFnZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIG5ld1Bhc3N3b3JkOiBzdHJpbmc7XG4gIGNvZGU6IHN0cmluZztcbiAgcGFzc3dvcmRQb2xpY3kgPSBlbnYuaWRlYS5hdXRoLnBhc3N3b3JkUG9saWN5O1xuICBlcnJvck1zZzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbmF2Q3RybDogTmF2Q29udHJvbGxlcixcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHBvcG92ZXJDdHJsOiBQb3BvdmVyQ29udHJvbGxlcixcbiAgICBwcml2YXRlIG1lc3NhZ2U6IElERUFNZXNzYWdlU2VydmljZSxcbiAgICBwcml2YXRlIGxvYWRpbmc6IElERUFMb2FkaW5nU2VydmljZSxcbiAgICBwcml2YXRlIHQ6IElERUFUcmFuc2xhdGlvbnNTZXJ2aWNlLFxuICAgIHB1YmxpYyBhdXRoOiBJREVBQXV0aFNlcnZpY2VcbiAgKSB7fVxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmVtYWlsID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtTWFwLmdldCgnZW1haWwnKSA/PyBudWxsO1xuICAgIGlmICghdGhpcy5lbWFpbCAmJiB0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zLnVzZXIpXG4gICAgICB0aGlzLmVtYWlsID0gZGVjb2RlVVJJQ29tcG9uZW50KHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMudXNlcik7XG4gICAgdGhpcy5jb2RlID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcy5jb2RlO1xuICB9XG5cbiAgYXN5bmMgY29uZmlybVBhc3N3b3JkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLmVycm9yTXNnID0gbnVsbDtcbiAgICAgIGNvbnN0IGVycm9ycyA9IHRoaXMuYXV0aC52YWxpZGF0ZVBhc3N3b3JkQWdhaW5zdFBvbGljeSh0aGlzLm5ld1Bhc3N3b3JkKTtcbiAgICAgIGlmIChlcnJvcnMubGVuZ3RoKVxuICAgICAgICB0aGlzLmVycm9yTXNnID0gW1xuICAgICAgICAgIHRoaXMudC5fKCdJREVBX0FVVEguUEFTU1dPUkRfUkVRVUlSRU1FTlRTX0ZPTExPVycpLFxuICAgICAgICAgIC4uLmVycm9ycy5tYXAoeCA9PlxuICAgICAgICAgICAgdGhpcy50Ll8oJ0lERUFfQVVUSC5QQVNTV09SRF9SRVFVSVJFTUVOVFMuJy5jb25jYXQoeCksIHsgbjogdGhpcy5wYXNzd29yZFBvbGljeS5taW5MZW5ndGggfSlcbiAgICAgICAgICApXG4gICAgICAgIF0uam9pbignICcpO1xuICAgICAgaWYgKHRoaXMuZXJyb3JNc2cpIHJldHVybiB0aGlzLm1lc3NhZ2UuZXJyb3IoJ0lERUFfQVVUSC5QQVNTV09SRF9SRVFVSVJFTUVOVFNfRk9MTE9XJyk7XG5cbiAgICAgIGF3YWl0IHRoaXMubG9hZGluZy5zaG93KCk7XG4gICAgICBhd2FpdCB0aGlzLmF1dGguY29uZmlybVBhc3N3b3JkKHRoaXMuZW1haWwsIHRoaXMuY29kZSwgdGhpcy5uZXdQYXNzd29yZCk7XG4gICAgICB0aGlzLm1lc3NhZ2Uuc3VjY2VzcygnSURFQV9BVVRILlBBU1NXT1JEX0NIQU5HRUQnKTtcbiAgICAgIHRoaXMuZ29Ub0F1dGgoKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5lcnJvck1zZyA9IChlcnJvciBhcyBhbnkpLm1lc3NhZ2U7XG4gICAgICB0aGlzLm1lc3NhZ2UuZXJyb3IoJ0lERUFfQVVUSC5QQVNTV09SRF9SRVFVSVJFTUVOVFNfRk9MTE9XJyk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMubG9hZGluZy5oaWRlKCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgb3BlblBhc3N3b3JkUG9saWN5KGV2ZW50OiBFdmVudCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGNzc0NsYXNzID0gJ3Bhc3N3b3JkUG9saWN5UG9wb3Zlcic7XG4gICAgY29uc3QgcG9wb3ZlciA9IGF3YWl0IHRoaXMucG9wb3ZlckN0cmwuY3JlYXRlKHsgY29tcG9uZW50OiBJREVBUGFzc3dvcmRQb2xpY3lDb21wb25lbnQsIGV2ZW50LCBjc3NDbGFzcyB9KTtcbiAgICBhd2FpdCBwb3BvdmVyLnByZXNlbnQoKTtcbiAgfVxuXG4gIGdvVG9Gb3Jnb3RQYXNzd29yZCgpOiB2b2lkIHtcbiAgICB0aGlzLm5hdkN0cmwubmF2aWdhdGVCYWNrKFsnYXV0aC9mb3Jnb3QtcGFzc3dvcmQnXSk7XG4gIH1cbiAgZ29Ub0F1dGgoKTogdm9pZCB7XG4gICAgdGhpcy5uYXZDdHJsLm5hdmlnYXRlQmFjayhbJ2F1dGgnXSk7XG4gIH1cbn1cbiIsIjxpb24tY29udGVudD5cbiAgPGZvcm0gY2xhc3M9XCJmbGV4Qm94XCI+XG4gICAgPGlvbi1jYXJkIGNsYXNzPVwiYXV0aENhcmRcIj5cbiAgICAgIDxpb24tY2FyZC1oZWFkZXI+XG4gICAgICAgIDxpb24tY2FyZC10aXRsZSBjb2xvcj1cInByaW1hcnlcIj57eyAnSURFQV9BVVRILkNIQU5HRV9USEVfUEFTU1dPUkQnIHwgdHJhbnNsYXRlIH19PC9pb24tY2FyZC10aXRsZT5cbiAgICAgIDwvaW9uLWNhcmQtaGVhZGVyPlxuICAgICAgPGlvbi1jYXJkLWNvbnRlbnQ+XG4gICAgICAgIDxwIGNsYXNzPVwiZXJyb3JCb3hcIiAqbmdJZj1cImVycm9yTXNnXCI+XG4gICAgICAgICAgPGI+IHt7ICdJREVBX0FVVEguRVJST1InIHwgdHJhbnNsYXRlIH19LiA8L2I+XG4gICAgICAgICAge3sgZXJyb3JNc2cgfX1cbiAgICAgICAgPC9wPlxuICAgICAgICA8aW9uLWl0ZW0+XG4gICAgICAgICAgPGlvbi1sYWJlbCBwb3NpdGlvbj1cImlubGluZVwiPlxuICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJwZXJzb24tY2lyY2xlXCIgY29sb3I9XCJwcmltYXJ5XCI+PC9pb24taWNvbj5cbiAgICAgICAgICA8L2lvbi1sYWJlbD5cbiAgICAgICAgICA8aW9uLWlucHV0XG4gICAgICAgICAgICB0eXBlPVwiZW1haWxcIlxuICAgICAgICAgICAgaW5wdXRtb2RlPVwiZW1haWxcIlxuICAgICAgICAgICAgcGF0dGVybj1cIltBLVphLXowLTkuXyUrLV17Mix9QFthLXpBLVotXy5dezIsfVsuXXsxfVthLXpBLVpdezIsfVwiXG4gICAgICAgICAgICBzcGVsbGNoZWNrPVwiZmFsc2VcIlxuICAgICAgICAgICAgYXV0b2NvcnJlY3Q9XCJvZmZcIlxuICAgICAgICAgICAgYXV0b2NhcGl0YWxpemU9XCJvZmZcIlxuICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwiZW1haWxcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidJREVBX0FVVEguRU1BSUwnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCInSURFQV9BVVRILkVNQUlMX0hJTlQnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImVtYWlsXCJcbiAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJjb25maXJtUGFzc3dvcmQoKVwiXG4gICAgICAgICAgPjwvaW9uLWlucHV0PlxuICAgICAgICA8L2lvbi1pdGVtPlxuICAgICAgICA8aW9uLWl0ZW0+XG4gICAgICAgICAgPGlvbi1sYWJlbCBwb3NpdGlvbj1cImlubGluZVwiPlxuICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJkaXNjXCIgY29sb3I9XCJwcmltYXJ5XCI+PC9pb24taWNvbj5cbiAgICAgICAgICA8L2lvbi1sYWJlbD5cbiAgICAgICAgICA8aW9uLWlucHV0XG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBzcGVsbGNoZWNrPVwiZmFsc2VcIlxuICAgICAgICAgICAgYXV0b2NvcnJlY3Q9XCJvZmZcIlxuICAgICAgICAgICAgYXV0b2NhcGl0YWxpemU9XCJvZmZcIlxuICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInSURFQV9BVVRILlJFU0VUX0NPREUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCInSURFQV9BVVRILlJFU0VUX0NPREVfSElOVCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29kZVwiXG4gICAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwiY29uZmlybVBhc3N3b3JkKClcIlxuICAgICAgICAgID48L2lvbi1pbnB1dD5cbiAgICAgICAgPC9pb24taXRlbT5cbiAgICAgICAgPGlvbi1pdGVtPlxuICAgICAgICAgIDxpb24tbGFiZWwgcG9zaXRpb249XCJpbmxpbmVcIj5cbiAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwia2V5XCIgY29sb3I9XCJwcmltYXJ5XCI+PC9pb24taWNvbj5cbiAgICAgICAgICA8L2lvbi1sYWJlbD5cbiAgICAgICAgICA8aW9uLWlucHV0XG4gICAgICAgICAgICB0eXBlPVwicGFzc3dvcmRcIlxuICAgICAgICAgICAgc3BlbGxjaGVjaz1cImZhbHNlXCJcbiAgICAgICAgICAgIGF1dG9jb3JyZWN0PVwib2ZmXCJcbiAgICAgICAgICAgIGF1dG9jYXBpdGFsaXplPVwib2ZmXCJcbiAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm5ldy1wYXNzd29yZFwiXG4gICAgICAgICAgICBbcGF0dGVybl09XCJhdXRoLmdldFBhc3N3b3JkUG9saWN5UGF0dGVybkZvcklucHV0KClcIlxuICAgICAgICAgICAgW2NsZWFyT25FZGl0XT1cImZhbHNlXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInSURFQV9BVVRILk5FV19QQVNTV09SRCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgW3RpdGxlXT1cIidJREVBX0FVVEguQ0hPT1NFX0FfUEFTU1dPUkQnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm5ld1Bhc3N3b3JkXCJcbiAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJjb25maXJtUGFzc3dvcmQoKVwiXG4gICAgICAgICAgPjwvaW9uLWlucHV0PlxuICAgICAgICAgIDxpb24tYnV0dG9uIHNsb3Q9XCJlbmRcIiBmaWxsPVwiY2xlYXJcIiBjb2xvcj1cImRhcmtcIiAoY2xpY2spPVwib3BlblBhc3N3b3JkUG9saWN5KCRldmVudClcIj5cbiAgICAgICAgICAgIDxpb24taWNvbiBpY29uPVwiaGVscC1jaXJjbGUtb3V0bGluZVwiIHNsb3Q9XCJpY29uLW9ubHlcIj48L2lvbi1pY29uPlxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPC9pb24taXRlbT5cbiAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICBleHBhbmQ9XCJibG9ja1wiXG4gICAgICAgICAgW3RpdGxlXT1cIidJREVBX0FVVEguQ0hBTkdFX01ZX1BBU1NXT1JEX0hJTlQnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAoY2xpY2spPVwiY29uZmlybVBhc3N3b3JkKClcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgJ0lERUFfQVVUSC5DSEFOR0VfTVlfUEFTU1dPUkQnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICBmaWxsPVwiY2xlYXJcIlxuICAgICAgICAgIGV4cGFuZD1cImJsb2NrXCJcbiAgICAgICAgICBjbGFzcz1cInNtYWxsQ2FzZUJ1dHRvblwiXG4gICAgICAgICAgW3RpdGxlXT1cIidJREVBX0FVVEguSEFWRU5fVF9SRUNFSVZFRF9BX1JFU0VUX0NPREVfSElOVCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIChjbGljayk9XCJnb1RvRm9yZ290UGFzc3dvcmQoKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyAnSURFQV9BVVRILkhBVkVOX1RfUkVDRUlWRURfQV9SRVNFVF9DT0RFJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgZmlsbD1cImNsZWFyXCJcbiAgICAgICAgICBleHBhbmQ9XCJibG9ja1wiXG4gICAgICAgICAgY2xhc3M9XCJzbWFsbENhc2VCdXR0b25cIlxuICAgICAgICAgIFt0aXRsZV09XCInSURFQV9BVVRILkJBQ0tfVE9fU0lHTl9JTl9ISU5UJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgKGNsaWNrKT1cImdvVG9BdXRoKClcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgJ0lERUFfQVVUSC5CQUNLX1RPX1NJR05fSU4nIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgIDwvaW9uLWNhcmQtY29udGVudD5cbiAgICA8L2lvbi1jYXJkPlxuICA8L2Zvcm0+XG48L2lvbi1jb250ZW50PlxuIl19
@@ -31,11 +31,11 @@ export class IDEAForgotPasswordPage {
31
31
  goToAuth() {
32
32
  this.navCtrl.navigateBack(['auth']);
33
33
  }
34
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: IDEAForgotPasswordPage, deps: [{ token: i1.NavController }, { token: i2.IDEAMessageService }, { token: i2.IDEALoadingService }, { token: i3.IDEAAuthService }], target: i0.ɵɵFactoryTarget.Component }); }
35
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.8", type: IDEAForgotPasswordPage, selector: "idea-forgot-password", ngImport: i0, template: "<ion-content>\n <form class=\"flexBox\">\n <ion-card class=\"authCard\">\n <ion-card-header>\n <ion-card-title color=\"primary\">{{ 'IDEA_AUTH.PASSWORD_RESET' | translate }}</ion-card-title>\n <ion-card-subtitle>{{ 'IDEA_AUTH.PASSWORD_RESET_HINT' | translate }}</ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"person-circle\" color=\"primary\"></ion-icon>\n </ion-label>\n <ion-input\n type=\"email\"\n inputmode=\"email\"\n pattern=\"[A-Za-z0-9._%+-]{2,}@[a-zA-Z-_.]{2,}[.]{1}[a-zA-Z]{2,}\"\n spellcheck=\"false\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n autocomplete=\"email\"\n [placeholder]=\"'IDEA_AUTH.EMAIL' | translate\"\n [title]=\"'IDEA_AUTH.EMAIL_HINT' | translate\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"email\"\n (keyup.enter)=\"forgotPassword()\"\n ></ion-input>\n </ion-item>\n <ion-button expand=\"block\" [title]=\"'IDEA_AUTH.RESET_MY_PASSWORD_HINT' | translate\" (click)=\"forgotPassword()\">\n {{ 'IDEA_AUTH.RESET_MY_PASSWORD' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"'IDEA_AUTH.ALREADY_HAVE_A_RESET_CODE_HINT' | translate\"\n (click)=\"goToConfirmPassword()\"\n >\n {{ 'IDEA_AUTH.ALREADY_HAVE_A_RESET_CODE' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"'IDEA_AUTH.BACK_TO_SIGN_IN_HINT' | translate\"\n (click)=\"goToAuth()\"\n >\n {{ 'IDEA_AUTH.BACK_TO_SIGN_IN' | translate }}\n </ion-button>\n </ion-card-content>\n </ion-card>\n </form>\n</ion-content>\n", styles: [".flexBox{background:var(--idea-auth-background-color, var(--ion-color-white-shade))}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--idea-auth-card-background-color, var(--ion-color-white));border:1px solid var(--idea-auth-card-border-color, var(--ion-color-light));border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--idea-auth-card-background-color, var(--ion-color-white));--border-color: var(--idea-auth-card-border-color, var(--ion-color-light))}.authCard ion-card-content ion-label[position=inline] ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button:not([slot=end]){margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}.passwordPolicyPopover{--width: 350px}\n"], dependencies: [{ kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i1.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i1.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: i1.IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { kind: "component", type: i1.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: i1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1.IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "legacy", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "size", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i1.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "directive", type: i1.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { kind: "pipe", type: i2.IDEATranslatePipe, name: "translate" }] }); }
34
36
  }
35
- IDEAForgotPasswordPage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: IDEAForgotPasswordPage, deps: [{ token: i1.NavController }, { token: i2.IDEAMessageService }, { token: i2.IDEALoadingService }, { token: i3.IDEAAuthService }], target: i0.ɵɵFactoryTarget.Component });
36
- IDEAForgotPasswordPage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: IDEAForgotPasswordPage, selector: "idea-forgot-password", ngImport: i0, template: "<ion-content>\n <form class=\"flexBox\">\n <ion-card class=\"authCard\">\n <ion-card-header>\n <ion-card-title color=\"primary\">{{ 'IDEA_AUTH.PASSWORD_RESET' | translate }}</ion-card-title>\n <ion-card-subtitle>{{ 'IDEA_AUTH.PASSWORD_RESET_HINT' | translate }}</ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"person-circle\" color=\"primary\"></ion-icon>\n </ion-label>\n <ion-input\n type=\"email\"\n inputmode=\"email\"\n pattern=\"[A-Za-z0-9._%+-]{2,}@[a-zA-Z-_.]{2,}[.]{1}[a-zA-Z]{2,}\"\n spellcheck=\"false\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n autocomplete=\"email\"\n [placeholder]=\"'IDEA_AUTH.EMAIL' | translate\"\n [title]=\"'IDEA_AUTH.EMAIL_HINT' | translate\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"email\"\n (keyup.enter)=\"forgotPassword()\"\n ></ion-input>\n </ion-item>\n <ion-button expand=\"block\" [title]=\"'IDEA_AUTH.RESET_MY_PASSWORD_HINT' | translate\" (click)=\"forgotPassword()\">\n {{ 'IDEA_AUTH.RESET_MY_PASSWORD' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"'IDEA_AUTH.ALREADY_HAVE_A_RESET_CODE_HINT' | translate\"\n (click)=\"goToConfirmPassword()\"\n >\n {{ 'IDEA_AUTH.ALREADY_HAVE_A_RESET_CODE' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"'IDEA_AUTH.BACK_TO_SIGN_IN_HINT' | translate\"\n (click)=\"goToAuth()\"\n >\n {{ 'IDEA_AUTH.BACK_TO_SIGN_IN' | translate }}\n </ion-button>\n </ion-card-content>\n </ion-card>\n </form>\n</ion-content>\n", styles: [".flexBox{background:var(--idea-auth-background-color, var(--ion-color-white-shade))}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--idea-auth-card-background-color, var(--ion-color-white));border:1px solid var(--idea-auth-card-border-color, var(--ion-color-light));border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--idea-auth-card-background-color, var(--ion-color-white));--border-color: var(--idea-auth-card-border-color, var(--ion-color-light))}.authCard ion-card-content ion-label[position=inline] ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button:not([slot=end]){margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}.passwordPolicyPopover{--width: 350px}\n"], dependencies: [{ kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i1.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i1.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: i1.IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { kind: "component", type: i1.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: i1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1.IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "size", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i1.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "directive", type: i1.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { kind: "pipe", type: i2.IDEATranslatePipe, name: "translate" }] });
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: IDEAForgotPasswordPage, decorators: [{
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: IDEAForgotPasswordPage, decorators: [{
38
38
  type: Component,
39
39
  args: [{ selector: 'idea-forgot-password', template: "<ion-content>\n <form class=\"flexBox\">\n <ion-card class=\"authCard\">\n <ion-card-header>\n <ion-card-title color=\"primary\">{{ 'IDEA_AUTH.PASSWORD_RESET' | translate }}</ion-card-title>\n <ion-card-subtitle>{{ 'IDEA_AUTH.PASSWORD_RESET_HINT' | translate }}</ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"person-circle\" color=\"primary\"></ion-icon>\n </ion-label>\n <ion-input\n type=\"email\"\n inputmode=\"email\"\n pattern=\"[A-Za-z0-9._%+-]{2,}@[a-zA-Z-_.]{2,}[.]{1}[a-zA-Z]{2,}\"\n spellcheck=\"false\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n autocomplete=\"email\"\n [placeholder]=\"'IDEA_AUTH.EMAIL' | translate\"\n [title]=\"'IDEA_AUTH.EMAIL_HINT' | translate\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"email\"\n (keyup.enter)=\"forgotPassword()\"\n ></ion-input>\n </ion-item>\n <ion-button expand=\"block\" [title]=\"'IDEA_AUTH.RESET_MY_PASSWORD_HINT' | translate\" (click)=\"forgotPassword()\">\n {{ 'IDEA_AUTH.RESET_MY_PASSWORD' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"'IDEA_AUTH.ALREADY_HAVE_A_RESET_CODE_HINT' | translate\"\n (click)=\"goToConfirmPassword()\"\n >\n {{ 'IDEA_AUTH.ALREADY_HAVE_A_RESET_CODE' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"'IDEA_AUTH.BACK_TO_SIGN_IN_HINT' | translate\"\n (click)=\"goToAuth()\"\n >\n {{ 'IDEA_AUTH.BACK_TO_SIGN_IN' | translate }}\n </ion-button>\n </ion-card-content>\n </ion-card>\n </form>\n</ion-content>\n", styles: [".flexBox{background:var(--idea-auth-background-color, var(--ion-color-white-shade))}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--idea-auth-card-background-color, var(--ion-color-white));border:1px solid var(--idea-auth-card-border-color, var(--ion-color-light));border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--idea-auth-card-background-color, var(--ion-color-white));--border-color: var(--idea-auth-card-border-color, var(--ion-color-light))}.authCard ion-card-content ion-label[position=inline] ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button:not([slot=end]){margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}.passwordPolicyPopover{--width: 350px}\n"] }]
40
40
  }], ctorParameters: function () { return [{ type: i1.NavController }, { type: i2.IDEAMessageService }, { type: i2.IDEALoadingService }, { type: i3.IDEAAuthService }]; } });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yZ290UGFzc3dvcmQucGFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL21vZHVsZXMvYXV0aC9zcmMvZm9yZ290UGFzc3dvcmQucGFnZS50cyIsIi4uLy4uLy4uLy4uL21vZHVsZXMvYXV0aC9zcmMvZm9yZ290UGFzc3dvcmQucGFnZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQVcxQyxNQUFNLE9BQU8sc0JBQXNCO0lBR2pDLFlBQ1UsT0FBc0IsRUFDdEIsT0FBMkIsRUFDM0IsT0FBMkIsRUFDM0IsSUFBcUI7UUFIckIsWUFBTyxHQUFQLE9BQU8sQ0FBZTtRQUN0QixZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQUMzQixZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQUMzQixTQUFJLEdBQUosSUFBSSxDQUFpQjtJQUM1QixDQUFDO0lBRUosS0FBSyxDQUFDLGNBQWM7UUFDbEIsSUFBSTtZQUNGLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMxQixNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1lBQzNELElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1NBQzVCO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1NBQ2hEO2dCQUFTO1lBQ1IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNyQjtJQUNILENBQUM7SUFFRCxtQkFBbUI7UUFDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzFHLENBQUM7SUFDRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7O21IQTVCVSxzQkFBc0I7dUdBQXRCLHNCQUFzQiw0RENYbkMsbWdFQW9EQTsyRkR6Q2Esc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IElERUFNZXNzYWdlU2VydmljZSwgSURFQUxvYWRpbmdTZXJ2aWNlIH0gZnJvbSAnQGlkZWEtaW9uaWMvY29tbW9uJztcblxuaW1wb3J0IHsgSURFQUF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZGVhLWZvcmdvdC1wYXNzd29yZCcsXG4gIHRlbXBsYXRlVXJsOiAnZm9yZ290UGFzc3dvcmQucGFnZS5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ2F1dGguc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIElERUFGb3Jnb3RQYXNzd29yZFBhZ2Uge1xuICBlbWFpbDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbmF2Q3RybDogTmF2Q29udHJvbGxlcixcbiAgICBwcml2YXRlIG1lc3NhZ2U6IElERUFNZXNzYWdlU2VydmljZSxcbiAgICBwcml2YXRlIGxvYWRpbmc6IElERUFMb2FkaW5nU2VydmljZSxcbiAgICBwcml2YXRlIGF1dGg6IElERUFBdXRoU2VydmljZVxuICApIHt9XG5cbiAgYXN5bmMgZm9yZ290UGFzc3dvcmQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMubG9hZGluZy5zaG93KCk7XG4gICAgICBhd2FpdCB0aGlzLmF1dGguZm9yZ290UGFzc3dvcmQodGhpcy5lbWFpbCk7XG4gICAgICB0aGlzLm1lc3NhZ2Uuc3VjY2VzcygnSURFQV9BVVRILlBBU1NXT1JEX1JFU0VUX0NPREVfU0VOVCcpO1xuICAgICAgdGhpcy5nb1RvQ29uZmlybVBhc3N3b3JkKCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMubWVzc2FnZS5lcnJvcignSURFQV9BVVRILlVTRVJfTk9UX0ZPVU5EJyk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMubG9hZGluZy5oaWRlKCk7XG4gICAgfVxuICB9XG5cbiAgZ29Ub0NvbmZpcm1QYXNzd29yZCgpOiB2b2lkIHtcbiAgICB0aGlzLm5hdkN0cmwubmF2aWdhdGVGb3J3YXJkKFsnYXV0aC9jb25maXJtLXBhc3N3b3JkJ10sIHsgcXVlcnlQYXJhbXM6IHsgZW1haWw6IHRoaXMuZW1haWwgPz8gbnVsbCB9IH0pO1xuICB9XG4gIGdvVG9BdXRoKCk6IHZvaWQge1xuICAgIHRoaXMubmF2Q3RybC5uYXZpZ2F0ZUJhY2soWydhdXRoJ10pO1xuICB9XG59XG4iLCI8aW9uLWNvbnRlbnQ+XG4gIDxmb3JtIGNsYXNzPVwiZmxleEJveFwiPlxuICAgIDxpb24tY2FyZCBjbGFzcz1cImF1dGhDYXJkXCI+XG4gICAgICA8aW9uLWNhcmQtaGVhZGVyPlxuICAgICAgICA8aW9uLWNhcmQtdGl0bGUgY29sb3I9XCJwcmltYXJ5XCI+e3sgJ0lERUFfQVVUSC5QQVNTV09SRF9SRVNFVCcgfCB0cmFuc2xhdGUgfX08L2lvbi1jYXJkLXRpdGxlPlxuICAgICAgICA8aW9uLWNhcmQtc3VidGl0bGU+e3sgJ0lERUFfQVVUSC5QQVNTV09SRF9SRVNFVF9ISU5UJyB8IHRyYW5zbGF0ZSB9fTwvaW9uLWNhcmQtc3VidGl0bGU+XG4gICAgICA8L2lvbi1jYXJkLWhlYWRlcj5cbiAgICAgIDxpb24tY2FyZC1jb250ZW50PlxuICAgICAgICA8aW9uLWl0ZW0+XG4gICAgICAgICAgPGlvbi1sYWJlbCBwb3NpdGlvbj1cImlubGluZVwiPlxuICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJwZXJzb24tY2lyY2xlXCIgY29sb3I9XCJwcmltYXJ5XCI+PC9pb24taWNvbj5cbiAgICAgICAgICA8L2lvbi1sYWJlbD5cbiAgICAgICAgICA8aW9uLWlucHV0XG4gICAgICAgICAgICB0eXBlPVwiZW1haWxcIlxuICAgICAgICAgICAgaW5wdXRtb2RlPVwiZW1haWxcIlxuICAgICAgICAgICAgcGF0dGVybj1cIltBLVphLXowLTkuXyUrLV17Mix9QFthLXpBLVotXy5dezIsfVsuXXsxfVthLXpBLVpdezIsfVwiXG4gICAgICAgICAgICBzcGVsbGNoZWNrPVwiZmFsc2VcIlxuICAgICAgICAgICAgYXV0b2NvcnJlY3Q9XCJvZmZcIlxuICAgICAgICAgICAgYXV0b2NhcGl0YWxpemU9XCJvZmZcIlxuICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwiZW1haWxcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidJREVBX0FVVEguRU1BSUwnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCInSURFQV9BVVRILkVNQUlMX0hJTlQnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImVtYWlsXCJcbiAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJmb3Jnb3RQYXNzd29yZCgpXCJcbiAgICAgICAgICA+PC9pb24taW5wdXQ+XG4gICAgICAgIDwvaW9uLWl0ZW0+XG4gICAgICAgIDxpb24tYnV0dG9uIGV4cGFuZD1cImJsb2NrXCIgW3RpdGxlXT1cIidJREVBX0FVVEguUkVTRVRfTVlfUEFTU1dPUkRfSElOVCcgfCB0cmFuc2xhdGVcIiAoY2xpY2spPVwiZm9yZ290UGFzc3dvcmQoKVwiPlxuICAgICAgICAgIHt7ICdJREVBX0FVVEguUkVTRVRfTVlfUEFTU1dPUkQnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICBmaWxsPVwiY2xlYXJcIlxuICAgICAgICAgIGV4cGFuZD1cImJsb2NrXCJcbiAgICAgICAgICBjbGFzcz1cInNtYWxsQ2FzZUJ1dHRvblwiXG4gICAgICAgICAgW3RpdGxlXT1cIidJREVBX0FVVEguQUxSRUFEWV9IQVZFX0FfUkVTRVRfQ09ERV9ISU5UJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgKGNsaWNrKT1cImdvVG9Db25maXJtUGFzc3dvcmQoKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyAnSURFQV9BVVRILkFMUkVBRFlfSEFWRV9BX1JFU0VUX0NPREUnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICBmaWxsPVwiY2xlYXJcIlxuICAgICAgICAgIGV4cGFuZD1cImJsb2NrXCJcbiAgICAgICAgICBjbGFzcz1cInNtYWxsQ2FzZUJ1dHRvblwiXG4gICAgICAgICAgW3RpdGxlXT1cIidJREVBX0FVVEguQkFDS19UT19TSUdOX0lOX0hJTlQnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAoY2xpY2spPVwiZ29Ub0F1dGgoKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyAnSURFQV9BVVRILkJBQ0tfVE9fU0lHTl9JTicgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgPC9pb24tY2FyZC1jb250ZW50PlxuICAgIDwvaW9uLWNhcmQ+XG4gIDwvZm9ybT5cbjwvaW9uLWNvbnRlbnQ+XG4iXX0=
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yZ290UGFzc3dvcmQucGFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL21vZHVsZXMvYXV0aC9zcmMvZm9yZ290UGFzc3dvcmQucGFnZS50cyIsIi4uLy4uLy4uLy4uL21vZHVsZXMvYXV0aC9zcmMvZm9yZ290UGFzc3dvcmQucGFnZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQVcxQyxNQUFNLE9BQU8sc0JBQXNCO0lBR2pDLFlBQ1UsT0FBc0IsRUFDdEIsT0FBMkIsRUFDM0IsT0FBMkIsRUFDM0IsSUFBcUI7UUFIckIsWUFBTyxHQUFQLE9BQU8sQ0FBZTtRQUN0QixZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQUMzQixZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQUMzQixTQUFJLEdBQUosSUFBSSxDQUFpQjtJQUM1QixDQUFDO0lBRUosS0FBSyxDQUFDLGNBQWM7UUFDbEIsSUFBSTtZQUNGLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMxQixNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1lBQzNELElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1NBQzVCO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1NBQ2hEO2dCQUFTO1lBQ1IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNyQjtJQUNILENBQUM7SUFFRCxtQkFBbUI7UUFDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzFHLENBQUM7SUFDRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7OEdBNUJVLHNCQUFzQjtrR0FBdEIsc0JBQXNCLDREQ1huQyxtZ0VBb0RBOzsyRkR6Q2Esc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IElERUFNZXNzYWdlU2VydmljZSwgSURFQUxvYWRpbmdTZXJ2aWNlIH0gZnJvbSAnQGlkZWEtaW9uaWMvY29tbW9uJztcblxuaW1wb3J0IHsgSURFQUF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZGVhLWZvcmdvdC1wYXNzd29yZCcsXG4gIHRlbXBsYXRlVXJsOiAnZm9yZ290UGFzc3dvcmQucGFnZS5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ2F1dGguc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIElERUFGb3Jnb3RQYXNzd29yZFBhZ2Uge1xuICBlbWFpbDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbmF2Q3RybDogTmF2Q29udHJvbGxlcixcbiAgICBwcml2YXRlIG1lc3NhZ2U6IElERUFNZXNzYWdlU2VydmljZSxcbiAgICBwcml2YXRlIGxvYWRpbmc6IElERUFMb2FkaW5nU2VydmljZSxcbiAgICBwcml2YXRlIGF1dGg6IElERUFBdXRoU2VydmljZVxuICApIHt9XG5cbiAgYXN5bmMgZm9yZ290UGFzc3dvcmQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMubG9hZGluZy5zaG93KCk7XG4gICAgICBhd2FpdCB0aGlzLmF1dGguZm9yZ290UGFzc3dvcmQodGhpcy5lbWFpbCk7XG4gICAgICB0aGlzLm1lc3NhZ2Uuc3VjY2VzcygnSURFQV9BVVRILlBBU1NXT1JEX1JFU0VUX0NPREVfU0VOVCcpO1xuICAgICAgdGhpcy5nb1RvQ29uZmlybVBhc3N3b3JkKCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMubWVzc2FnZS5lcnJvcignSURFQV9BVVRILlVTRVJfTk9UX0ZPVU5EJyk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMubG9hZGluZy5oaWRlKCk7XG4gICAgfVxuICB9XG5cbiAgZ29Ub0NvbmZpcm1QYXNzd29yZCgpOiB2b2lkIHtcbiAgICB0aGlzLm5hdkN0cmwubmF2aWdhdGVGb3J3YXJkKFsnYXV0aC9jb25maXJtLXBhc3N3b3JkJ10sIHsgcXVlcnlQYXJhbXM6IHsgZW1haWw6IHRoaXMuZW1haWwgPz8gbnVsbCB9IH0pO1xuICB9XG4gIGdvVG9BdXRoKCk6IHZvaWQge1xuICAgIHRoaXMubmF2Q3RybC5uYXZpZ2F0ZUJhY2soWydhdXRoJ10pO1xuICB9XG59XG4iLCI8aW9uLWNvbnRlbnQ+XG4gIDxmb3JtIGNsYXNzPVwiZmxleEJveFwiPlxuICAgIDxpb24tY2FyZCBjbGFzcz1cImF1dGhDYXJkXCI+XG4gICAgICA8aW9uLWNhcmQtaGVhZGVyPlxuICAgICAgICA8aW9uLWNhcmQtdGl0bGUgY29sb3I9XCJwcmltYXJ5XCI+e3sgJ0lERUFfQVVUSC5QQVNTV09SRF9SRVNFVCcgfCB0cmFuc2xhdGUgfX08L2lvbi1jYXJkLXRpdGxlPlxuICAgICAgICA8aW9uLWNhcmQtc3VidGl0bGU+e3sgJ0lERUFfQVVUSC5QQVNTV09SRF9SRVNFVF9ISU5UJyB8IHRyYW5zbGF0ZSB9fTwvaW9uLWNhcmQtc3VidGl0bGU+XG4gICAgICA8L2lvbi1jYXJkLWhlYWRlcj5cbiAgICAgIDxpb24tY2FyZC1jb250ZW50PlxuICAgICAgICA8aW9uLWl0ZW0+XG4gICAgICAgICAgPGlvbi1sYWJlbCBwb3NpdGlvbj1cImlubGluZVwiPlxuICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJwZXJzb24tY2lyY2xlXCIgY29sb3I9XCJwcmltYXJ5XCI+PC9pb24taWNvbj5cbiAgICAgICAgICA8L2lvbi1sYWJlbD5cbiAgICAgICAgICA8aW9uLWlucHV0XG4gICAgICAgICAgICB0eXBlPVwiZW1haWxcIlxuICAgICAgICAgICAgaW5wdXRtb2RlPVwiZW1haWxcIlxuICAgICAgICAgICAgcGF0dGVybj1cIltBLVphLXowLTkuXyUrLV17Mix9QFthLXpBLVotXy5dezIsfVsuXXsxfVthLXpBLVpdezIsfVwiXG4gICAgICAgICAgICBzcGVsbGNoZWNrPVwiZmFsc2VcIlxuICAgICAgICAgICAgYXV0b2NvcnJlY3Q9XCJvZmZcIlxuICAgICAgICAgICAgYXV0b2NhcGl0YWxpemU9XCJvZmZcIlxuICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwiZW1haWxcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidJREVBX0FVVEguRU1BSUwnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCInSURFQV9BVVRILkVNQUlMX0hJTlQnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImVtYWlsXCJcbiAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJmb3Jnb3RQYXNzd29yZCgpXCJcbiAgICAgICAgICA+PC9pb24taW5wdXQ+XG4gICAgICAgIDwvaW9uLWl0ZW0+XG4gICAgICAgIDxpb24tYnV0dG9uIGV4cGFuZD1cImJsb2NrXCIgW3RpdGxlXT1cIidJREVBX0FVVEguUkVTRVRfTVlfUEFTU1dPUkRfSElOVCcgfCB0cmFuc2xhdGVcIiAoY2xpY2spPVwiZm9yZ290UGFzc3dvcmQoKVwiPlxuICAgICAgICAgIHt7ICdJREVBX0FVVEguUkVTRVRfTVlfUEFTU1dPUkQnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICBmaWxsPVwiY2xlYXJcIlxuICAgICAgICAgIGV4cGFuZD1cImJsb2NrXCJcbiAgICAgICAgICBjbGFzcz1cInNtYWxsQ2FzZUJ1dHRvblwiXG4gICAgICAgICAgW3RpdGxlXT1cIidJREVBX0FVVEguQUxSRUFEWV9IQVZFX0FfUkVTRVRfQ09ERV9ISU5UJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgKGNsaWNrKT1cImdvVG9Db25maXJtUGFzc3dvcmQoKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyAnSURFQV9BVVRILkFMUkVBRFlfSEFWRV9BX1JFU0VUX0NPREUnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICBmaWxsPVwiY2xlYXJcIlxuICAgICAgICAgIGV4cGFuZD1cImJsb2NrXCJcbiAgICAgICAgICBjbGFzcz1cInNtYWxsQ2FzZUJ1dHRvblwiXG4gICAgICAgICAgW3RpdGxlXT1cIidJREVBX0FVVEguQkFDS19UT19TSUdOX0lOX0hJTlQnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAoY2xpY2spPVwiZ29Ub0F1dGgoKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyAnSURFQV9BVVRILkJBQ0tfVE9fU0lHTl9JTicgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgPC9pb24tY2FyZC1jb250ZW50PlxuICAgIDwvaW9uLWNhcmQ+XG4gIDwvZm9ybT5cbjwvaW9uLWNvbnRlbnQ+XG4iXX0=