tango-app-ui-auth 3.1.1-dev → 3.1.3-dev
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/tango-auth-forgot-password/tango-auth-forgot-password.component.mjs +9 -6
- package/esm2022/lib/components/tango-auth-login/tango-auth-login.component.mjs +9 -6
- package/esm2022/lib/components/tango-auth-signup/step/step1/step1.component.mjs +8 -3
- package/esm2022/lib/components/tango-auth-signup/step/step2/step2.component.mjs +87 -55
- package/esm2022/lib/components/tango-auth-signup/step/step3/step3.component.mjs +3 -3
- package/esm2022/lib/components/tango-auth-signup/tango-auth-signup.component.mjs +14 -10
- package/fesm2022/tango-app-ui-auth.mjs +114 -69
- package/fesm2022/tango-app-ui-auth.mjs.map +1 -1
- package/lib/components/tango-auth-forgot-password/tango-auth-forgot-password.component.d.ts +3 -1
- package/lib/components/tango-auth-login/tango-auth-login.component.d.ts +3 -2
- package/lib/components/tango-auth-signup/step/step1/step1.component.d.ts +1 -0
- package/lib/components/tango-auth-signup/step/step2/step2.component.d.ts +2 -0
- package/lib/components/tango-auth-signup/tango-auth-signup.component.d.ts +3 -1
- package/package.json +1 -1
@@ -2,21 +2,24 @@ import { Component } from '@angular/core';
|
|
2
2
|
import { BehaviorSubject } from 'rxjs';
|
3
3
|
import * as i0 from "@angular/core";
|
4
4
|
import * as i1 from "./step/services/conversion.service";
|
5
|
-
import * as i2 from "
|
6
|
-
import * as i3 from "
|
7
|
-
import * as i4 from "./step/
|
8
|
-
import * as i5 from "./step/
|
9
|
-
import * as i6 from "./
|
5
|
+
import * as i2 from "tango-app-ui-global";
|
6
|
+
import * as i3 from "@angular/common";
|
7
|
+
import * as i4 from "./step/step1/step1.component";
|
8
|
+
import * as i5 from "./step/step2/step2.component";
|
9
|
+
import * as i6 from "./step/step3/step3.component";
|
10
|
+
import * as i7 from "./vertical/vertical.component";
|
10
11
|
export class TangoAuthSignupComponent {
|
11
12
|
setterService;
|
13
|
+
pageInfo;
|
12
14
|
formsCount = 3;
|
13
15
|
account$ = new BehaviorSubject('');
|
14
16
|
currentStep$ = new BehaviorSubject(1);
|
15
17
|
isCurrentFormValid$ = new BehaviorSubject(false);
|
16
18
|
prevStepdata;
|
17
19
|
subscriptions = [];
|
18
|
-
constructor(setterService) {
|
20
|
+
constructor(setterService, pageInfo) {
|
19
21
|
this.setterService = setterService;
|
22
|
+
this.pageInfo = pageInfo;
|
20
23
|
}
|
21
24
|
ngOnDestroy() {
|
22
25
|
this.subscriptions.forEach((subscription) => {
|
@@ -32,6 +35,7 @@ export class TangoAuthSignupComponent {
|
|
32
35
|
else
|
33
36
|
this.nextStep();
|
34
37
|
}));
|
38
|
+
this.pageInfo.setTitle('Signup');
|
35
39
|
}
|
36
40
|
updateAccount = (part, isFormValid) => {
|
37
41
|
const currentAccount = this.account$.value;
|
@@ -53,11 +57,11 @@ export class TangoAuthSignupComponent {
|
|
53
57
|
}
|
54
58
|
this.currentStep$.next(prevStep);
|
55
59
|
}
|
56
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: TangoAuthSignupComponent, deps: [{ token: i1.ConversionService }], target: i0.ɵɵFactoryTarget.Component });
|
57
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: TangoAuthSignupComponent, selector: "lib-tango-auth-signup", ngImport: i0, template: "<div class=\"row me-0\">\r\n <lib-vertical class=\"col-lg-4 col-xl-3 col-xxl-3 p-0\"></lib-vertical>\r\n\r\n <!--begin::Content-->\r\n <div class=\" col-lg-8 col-xl-9 col-xxl-9 mb-10\">\r\n <div class=\"current\">\r\n <ng-container *ngIf=\"currentStep$.value === 1\">\r\n <lib-step1 class=\"w-100 \" [prevStepdata]='prevStepdata' [updateParentModel]=\"updateAccount\" [defaultValues]=\"account$.value\"></lib-step1>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"currentStep$.value === 2\">\r\n <lib-step2 class=\"w-100 \" [updateParentModel]=\"updateAccount\" [defaultValues]=\"account$.value\"></lib-step2>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"currentStep$.value === 3\">\r\n <lib-step3 class=\"w-100 \"></lib-step3>\r\n </ng-container>\r\n </div>\r\n\r\n <!-- <div class=\"d-flex flex-stack py-2\">\r\n <div class=\"mr-2\">\r\n <ng-container *ngIf=\"currentStep$.value == 2\">\r\n <button type=\"button\" class=\"btn btn-lg btn-light-primary me-5\" (click)=\"prevStep()\">\r\n Previous\r\n </button>\r\n </ng-container>\r\n \r\n </div>\r\n\r\n </div> -->\r\n <!-- <div *ngIf=\"currentStep$.value !== 3\" class=\"my-5 d-flex flex-column flex-md-row flex-md-stack pt-3 container-fluid\">\r\n <div class=\"text-gray-900 order-2 order-md-1 ms-10\">\r\n <span class=\"text-muted fw-semibold me-1\">\u00A9 2024 </span>\r\n <a target=\"_blank\" class=\"text-gray-800 text-hover-primary\">Tango IT solutions</a>\r\n </div>\r\n <ul class=\"menu menu-gray-600 menu-hover-primary fw-semibold order-1 me-10\">\r\n <li class=\"menu-item\"><a target=\"_blank\" href=\"https://tangoeye.ai/#aboutus\" class=\"menu-link px-5\">About us</a></li>\r\n <li class=\"menu-item\"><a target=\"_blank\" href=\"https://tangoeye.ai/#contact\" class=\"menu-link px-5\">Contact Us</a></li>\r\n <li class=\"menu-item\"><a target=\"_blank\" href=\"https://tangoeye.ai/privacy-policy-2/\" class=\"menu-link px-5\">Privacy & policy</a></li>\r\n </ul>\r\n </div> -->\r\n </div>\r\n <!-- </div> -->\r\n </div>\r\n <!--end::Content-->\r\n<!-- </div> -->", styles: [""], dependencies: [{ kind: "directive", type:
|
60
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: TangoAuthSignupComponent, deps: [{ token: i1.ConversionService }, { token: i2.PageInfoService }], target: i0.ɵɵFactoryTarget.Component });
|
61
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: TangoAuthSignupComponent, selector: "lib-tango-auth-signup", ngImport: i0, template: "<div class=\"row me-0\">\r\n <lib-vertical class=\"col-lg-4 col-xl-3 col-xxl-3 p-0\"></lib-vertical>\r\n\r\n <!--begin::Content-->\r\n <div class=\" col-lg-8 col-xl-9 col-xxl-9 mb-10\">\r\n <div class=\"current\">\r\n <ng-container *ngIf=\"currentStep$.value === 1\">\r\n <lib-step1 class=\"w-100 \" [prevStepdata]='prevStepdata' [updateParentModel]=\"updateAccount\" [defaultValues]=\"account$.value\"></lib-step1>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"currentStep$.value === 2\">\r\n <lib-step2 class=\"w-100 \" [updateParentModel]=\"updateAccount\" [defaultValues]=\"account$.value\"></lib-step2>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"currentStep$.value === 3\">\r\n <lib-step3 class=\"w-100 \"></lib-step3>\r\n </ng-container>\r\n </div>\r\n\r\n <!-- <div class=\"d-flex flex-stack py-2\">\r\n <div class=\"mr-2\">\r\n <ng-container *ngIf=\"currentStep$.value == 2\">\r\n <button type=\"button\" class=\"btn btn-lg btn-light-primary me-5\" (click)=\"prevStep()\">\r\n Previous\r\n </button>\r\n </ng-container>\r\n \r\n </div>\r\n\r\n </div> -->\r\n <!-- <div *ngIf=\"currentStep$.value !== 3\" class=\"my-5 d-flex flex-column flex-md-row flex-md-stack pt-3 container-fluid\">\r\n <div class=\"text-gray-900 order-2 order-md-1 ms-10\">\r\n <span class=\"text-muted fw-semibold me-1\">\u00A9 2024 </span>\r\n <a target=\"_blank\" class=\"text-gray-800 text-hover-primary\">Tango IT solutions</a>\r\n </div>\r\n <ul class=\"menu menu-gray-600 menu-hover-primary fw-semibold order-1 me-10\">\r\n <li class=\"menu-item\"><a target=\"_blank\" href=\"https://tangoeye.ai/#aboutus\" class=\"menu-link px-5\">About us</a></li>\r\n <li class=\"menu-item\"><a target=\"_blank\" href=\"https://tangoeye.ai/#contact\" class=\"menu-link px-5\">Contact Us</a></li>\r\n <li class=\"menu-item\"><a target=\"_blank\" href=\"https://tangoeye.ai/privacy-policy-2/\" class=\"menu-link px-5\">Privacy & policy</a></li>\r\n </ul>\r\n </div> -->\r\n </div>\r\n <!-- </div> -->\r\n </div>\r\n <!--end::Content-->\r\n<!-- </div> -->", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.Step1Component, selector: "lib-step1" }, { kind: "component", type: i5.Step2Component, selector: "lib-step2" }, { kind: "component", type: i6.Step3Component, selector: "lib-step3" }, { kind: "component", type: i7.VerticalComponent, selector: "lib-vertical" }] });
|
58
62
|
}
|
59
63
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: TangoAuthSignupComponent, decorators: [{
|
60
64
|
type: Component,
|
61
65
|
args: [{ selector: 'lib-tango-auth-signup', template: "<div class=\"row me-0\">\r\n <lib-vertical class=\"col-lg-4 col-xl-3 col-xxl-3 p-0\"></lib-vertical>\r\n\r\n <!--begin::Content-->\r\n <div class=\" col-lg-8 col-xl-9 col-xxl-9 mb-10\">\r\n <div class=\"current\">\r\n <ng-container *ngIf=\"currentStep$.value === 1\">\r\n <lib-step1 class=\"w-100 \" [prevStepdata]='prevStepdata' [updateParentModel]=\"updateAccount\" [defaultValues]=\"account$.value\"></lib-step1>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"currentStep$.value === 2\">\r\n <lib-step2 class=\"w-100 \" [updateParentModel]=\"updateAccount\" [defaultValues]=\"account$.value\"></lib-step2>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"currentStep$.value === 3\">\r\n <lib-step3 class=\"w-100 \"></lib-step3>\r\n </ng-container>\r\n </div>\r\n\r\n <!-- <div class=\"d-flex flex-stack py-2\">\r\n <div class=\"mr-2\">\r\n <ng-container *ngIf=\"currentStep$.value == 2\">\r\n <button type=\"button\" class=\"btn btn-lg btn-light-primary me-5\" (click)=\"prevStep()\">\r\n Previous\r\n </button>\r\n </ng-container>\r\n \r\n </div>\r\n\r\n </div> -->\r\n <!-- <div *ngIf=\"currentStep$.value !== 3\" class=\"my-5 d-flex flex-column flex-md-row flex-md-stack pt-3 container-fluid\">\r\n <div class=\"text-gray-900 order-2 order-md-1 ms-10\">\r\n <span class=\"text-muted fw-semibold me-1\">\u00A9 2024 </span>\r\n <a target=\"_blank\" class=\"text-gray-800 text-hover-primary\">Tango IT solutions</a>\r\n </div>\r\n <ul class=\"menu menu-gray-600 menu-hover-primary fw-semibold order-1 me-10\">\r\n <li class=\"menu-item\"><a target=\"_blank\" href=\"https://tangoeye.ai/#aboutus\" class=\"menu-link px-5\">About us</a></li>\r\n <li class=\"menu-item\"><a target=\"_blank\" href=\"https://tangoeye.ai/#contact\" class=\"menu-link px-5\">Contact Us</a></li>\r\n <li class=\"menu-item\"><a target=\"_blank\" href=\"https://tangoeye.ai/privacy-policy-2/\" class=\"menu-link px-5\">Privacy & policy</a></li>\r\n </ul>\r\n </div> -->\r\n </div>\r\n <!-- </div> -->\r\n </div>\r\n <!--end::Content-->\r\n<!-- </div> -->" }]
|
62
|
-
}], ctorParameters: () => [{ type: i1.ConversionService }] });
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
66
|
+
}], ctorParameters: () => [{ type: i1.ConversionService }, { type: i2.PageInfoService }] });
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFuZ28tYXV0aC1zaWdudXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXV0aC9zcmMvbGliL2NvbXBvbmVudHMvdGFuZ28tYXV0aC1zaWdudXAvdGFuZ28tYXV0aC1zaWdudXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXV0aC9zcmMvbGliL2NvbXBvbmVudHMvdGFuZ28tYXV0aC1zaWdudXAvdGFuZ28tYXV0aC1zaWdudXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFN0QsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7OztBQVFyRCxNQUFNLE9BQU8sd0JBQXdCO0lBWXpCO0lBQXlDO0lBVm5ELFVBQVUsR0FBRyxDQUFDLENBQUM7SUFDZixRQUFRLEdBQ04sSUFBSSxlQUFlLENBQU0sRUFBRSxDQUFDLENBQUM7SUFDL0IsWUFBWSxHQUE0QixJQUFJLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvRCxtQkFBbUIsR0FBNkIsSUFBSSxlQUFlLENBQ2pFLEtBQUssQ0FDTixDQUFDO0lBQ0YsWUFBWSxDQUFNO0lBQ2xCLGFBQWEsR0FBa0IsRUFBRSxDQUFBO0lBQ2pDLFlBQ1UsYUFBZ0MsRUFBUyxRQUF3QjtRQUFqRSxrQkFBYSxHQUFiLGFBQWEsQ0FBbUI7UUFBUyxhQUFRLEdBQVIsUUFBUSxDQUFnQjtJQUFFLENBQUM7SUFFOUUsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsWUFBWSxFQUFDLEVBQUU7WUFDekMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFBO1FBQzVCLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDbkQsSUFBSSxJQUFJLEVBQUUsSUFBSSxFQUFDO2dCQUNiLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDbEIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFBO2FBQzVCOztnQkFDSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQ0QsQ0FBQTtRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBRWxDLENBQUM7SUFDRCxhQUFhLEdBQUcsQ0FBQyxJQUFrQixFQUFFLFdBQW9CLEVBQUUsRUFBRTtRQUMzRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztRQUMzQyxNQUFNLGNBQWMsR0FBRyxFQUFFLEdBQUcsY0FBYyxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUM7UUFDdEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM3QyxDQUFDLENBQUM7SUFHRixRQUFRO1FBQ04sTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQzdDLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDOUIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELFFBQVE7UUFDTixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDN0MsSUFBSSxRQUFRLEtBQUssQ0FBQyxFQUFFO1lBQ2xCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25DLENBQUM7dUdBdkRVLHdCQUF3QjsyRkFBeEIsd0JBQXdCLDZEQ1ZyQyxxaUZBNkNlOzsyRkRuQ0Ysd0JBQXdCO2tCQUxwQyxTQUFTOytCQUNFLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udmVyc2lvblNlcnZpY2UgfSBmcm9tICcuL3N0ZXAvc2VydmljZXMvY29udmVyc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgUGFnZUluZm9TZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLWdsb2JhbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi10YW5nby1hdXRoLXNpZ251cCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RhbmdvLWF1dGgtc2lnbnVwLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vdGFuZ28tYXV0aC1zaWdudXAuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYW5nb0F1dGhTaWdudXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIGZvcm1zQ291bnQgPSAzO1xyXG4gIGFjY291bnQkOiBCZWhhdmlvclN1YmplY3Q8YW55PiA9XHJcbiAgICBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4oJycpO1xyXG4gIGN1cnJlbnRTdGVwJDogQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KDEpO1xyXG4gIGlzQ3VycmVudEZvcm1WYWxpZCQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oXHJcbiAgICBmYWxzZVxyXG4gICk7XHJcbiAgcHJldlN0ZXBkYXRhOiBhbnk7XHJcbiAgc3Vic2NyaXB0aW9uczpTdWJzY3JpcHRpb25bXSA9IFtdXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHNldHRlclNlcnZpY2U6IENvbnZlcnNpb25TZXJ2aWNlLHByaXZhdGUgcGFnZUluZm86UGFnZUluZm9TZXJ2aWNlKXt9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goKHN1YnNjcmlwdGlvbik9PntcclxuICAgICAgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKClcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgIHRoaXMuc2V0dGVyU2VydmljZS4kc3RlcHBlci5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoZGF0YT8ucHJldil7IFxyXG4gICAgICAgIHRoaXMucHJldlN0ZXAoKTtcclxuICAgICAgdGhpcy5wcmV2U3RlcGRhdGEgPSBkYXRhLmRhdGFcclxuICAgICAgfSBcclxuICAgICAgZWxzZSB0aGlzLm5leHRTdGVwKCk7XHJcbiAgICB9KSAgXHJcbiAgICApXHJcbiAgICB0aGlzLnBhZ2VJbmZvLnNldFRpdGxlKCdTaWdudXAnKVxyXG4gICBcclxuICB9XHJcbiAgdXBkYXRlQWNjb3VudCA9IChwYXJ0OiBQYXJ0aWFsPGFueT4sIGlzRm9ybVZhbGlkOiBib29sZWFuKSA9PiB7XHJcbiAgICBjb25zdCBjdXJyZW50QWNjb3VudCA9IHRoaXMuYWNjb3VudCQudmFsdWU7XHJcbiAgICBjb25zdCB1cGRhdGVkQWNjb3VudCA9IHsgLi4uY3VycmVudEFjY291bnQsIC4uLnBhcnQgfTtcclxuICAgIHRoaXMuYWNjb3VudCQubmV4dCh1cGRhdGVkQWNjb3VudCk7XHJcbiAgICB0aGlzLmlzQ3VycmVudEZvcm1WYWxpZCQubmV4dChpc0Zvcm1WYWxpZCk7XHJcbiAgfTtcclxuIFxyXG5cclxuICBuZXh0U3RlcCgpIHtcclxuICAgIGNvbnN0IG5leHRTdGVwID0gdGhpcy5jdXJyZW50U3RlcCQudmFsdWUgKyAxO1xyXG4gICAgaWYgKG5leHRTdGVwID4gdGhpcy5mb3Jtc0NvdW50KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuY3VycmVudFN0ZXAkLm5leHQobmV4dFN0ZXApO1xyXG4gIH1cclxuXHJcbiAgcHJldlN0ZXAoKSB7XHJcbiAgICBjb25zdCBwcmV2U3RlcCA9IHRoaXMuY3VycmVudFN0ZXAkLnZhbHVlIC0gMTtcclxuICAgIGlmIChwcmV2U3RlcCA9PT0gMCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmN1cnJlbnRTdGVwJC5uZXh0KHByZXZTdGVwKTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJyb3cgbWUtMFwiPlxyXG4gICAgPGxpYi12ZXJ0aWNhbCBjbGFzcz1cImNvbC1sZy00IGNvbC14bC0zIGNvbC14eGwtMyBwLTBcIj48L2xpYi12ZXJ0aWNhbD5cclxuXHJcbiAgICA8IS0tYmVnaW46OkNvbnRlbnQtLT5cclxuICAgIDxkaXYgY2xhc3M9XCIgY29sLWxnLTggY29sLXhsLTkgY29sLXh4bC05IG1iLTEwXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdXJyZW50XCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VycmVudFN0ZXAkLnZhbHVlID09PSAxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpYi1zdGVwMSBjbGFzcz1cInctMTAwIFwiIFtwcmV2U3RlcGRhdGFdPSdwcmV2U3RlcGRhdGEnIFt1cGRhdGVQYXJlbnRNb2RlbF09XCJ1cGRhdGVBY2NvdW50XCIgW2RlZmF1bHRWYWx1ZXNdPVwiYWNjb3VudCQudmFsdWVcIj48L2xpYi1zdGVwMT5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXJyZW50U3RlcCQudmFsdWUgPT09IDJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGliLXN0ZXAyIGNsYXNzPVwidy0xMDAgXCIgW3VwZGF0ZVBhcmVudE1vZGVsXT1cInVwZGF0ZUFjY291bnRcIiBbZGVmYXVsdFZhbHVlc109XCJhY2NvdW50JC52YWx1ZVwiPjwvbGliLXN0ZXAyPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRTdGVwJC52YWx1ZSA9PT0gM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaWItc3RlcDMgY2xhc3M9XCJ3LTEwMCBcIj48L2xpYi1zdGVwMz5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LXN0YWNrIHB5LTJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtci0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRTdGVwJC52YWx1ZSA9PSAyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1sZyBidG4tbGlnaHQtcHJpbWFyeSBtZS01XCIgKGNsaWNrKT1cInByZXZTdGVwKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByZXZpb3VzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgIDwhLS0gPGRpdiAqbmdJZj1cImN1cnJlbnRTdGVwJC52YWx1ZSAhPT0gM1wiIGNsYXNzPVwibXktNSBkLWZsZXggZmxleC1jb2x1bW4gZmxleC1tZC1yb3cgIGZsZXgtbWQtc3RhY2sgcHQtMyBjb250YWluZXItZmx1aWRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktOTAwIG9yZGVyLTIgb3JkZXItbWQtMSBtcy0xMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1tdXRlZCBmdy1zZW1pYm9sZCBtZS0xXCI+wqkgMjAyNCA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCIgY2xhc3M9XCJ0ZXh0LWdyYXktODAwIHRleHQtaG92ZXItcHJpbWFyeVwiPlRhbmdvIElUIHNvbHV0aW9uczwvYT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwibWVudSBtZW51LWdyYXktNjAwIG1lbnUtaG92ZXItcHJpbWFyeSBmdy1zZW1pYm9sZCBvcmRlci0xIG1lLTEwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibWVudS1pdGVtXCI+PGEgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cImh0dHBzOi8vdGFuZ29leWUuYWkvI2Fib3V0dXNcIiBjbGFzcz1cIm1lbnUtbGluayBweC01XCI+QWJvdXQgdXM8L2E+PC9saT5cclxuICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJtZW51LWl0ZW1cIj48YSB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiaHR0cHM6Ly90YW5nb2V5ZS5haS8jY29udGFjdFwiIGNsYXNzPVwibWVudS1saW5rIHB4LTVcIj5Db250YWN0IFVzPC9hPjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibWVudS1pdGVtXCI+PGEgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cImh0dHBzOi8vdGFuZ29leWUuYWkvcHJpdmFjeS1wb2xpY3ktMi9cIiBjbGFzcz1cIm1lbnUtbGluayBweC01XCI+UHJpdmFjeSAmIHBvbGljeTwvYT48L2xpPlxyXG4gICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPCEtLSA8L2Rpdj4gLS0+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwhLS1lbmQ6OkNvbnRlbnQtLT5cclxuPCEtLSA8L2Rpdj4gLS0+Il19
|