tango-app-ui-auth 3.1.3-dev → 3.1.5-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.
Files changed (20) hide show
  1. package/esm2022/lib/components/tango-auth/tango-auth.component.mjs +4 -4
  2. package/esm2022/lib/components/tango-auth-forgot-password/tango-auth-forgot-password.component.mjs +16 -7
  3. package/esm2022/lib/components/tango-auth-login/tango-auth-login.component.mjs +7 -4
  4. package/esm2022/lib/components/tango-auth-signup/step/calendly-modal/calendly-modal.component.mjs +4 -4
  5. package/esm2022/lib/components/tango-auth-signup/step/modal-content/modal-content.component.mjs +4 -4
  6. package/esm2022/lib/components/tango-auth-signup/step/services/conversion.service.mjs +4 -4
  7. package/esm2022/lib/components/tango-auth-signup/step/step1/step1.component.mjs +13 -7
  8. package/esm2022/lib/components/tango-auth-signup/step/step2/step2.component.mjs +4 -4
  9. package/esm2022/lib/components/tango-auth-signup/step/step3/step3.component.mjs +4 -4
  10. package/esm2022/lib/components/tango-auth-signup/tango-auth-signup.component.mjs +4 -4
  11. package/esm2022/lib/components/tango-auth-signup/vertical/vertical.component.mjs +4 -4
  12. package/esm2022/lib/guards/auth.guard.mjs +4 -4
  13. package/esm2022/lib/services/auth.service.mjs +4 -4
  14. package/esm2022/lib/tango-auth-routing.module.mjs +5 -5
  15. package/esm2022/lib/tango-auth.module.mjs +5 -5
  16. package/fesm2022/tango-app-ui-auth.mjs +71 -53
  17. package/fesm2022/tango-app-ui-auth.mjs.map +1 -1
  18. package/lib/components/tango-auth-forgot-password/tango-auth-forgot-password.component.d.ts +3 -0
  19. package/lib/components/tango-auth-signup/step/step1/step1.component.d.ts +3 -0
  20. package/package.json +1 -1
@@ -57,6 +57,9 @@ export class TangoAuthLoginComponent {
57
57
  this.initForm();
58
58
  // this.userProfile();
59
59
  // get return url from route parameters or default to '/'
60
+ if (this.authlocalStorageToken) {
61
+ this.router.navigate(['/manage']);
62
+ }
60
63
  this.returnUrl =
61
64
  this.route.snapshot.queryParams["returnUrl".toString()] || "/";
62
65
  if (this.emailInputRef?.nativeElement.value || this.passwordInputRef?.nativeElement.value) {
@@ -145,10 +148,10 @@ export class TangoAuthLoginComponent {
145
148
  showPassword() {
146
149
  this.show = !this.show;
147
150
  }
148
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: TangoAuthLoginComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2.FormBuilder }, { token: i3.AuthService }, { token: i4.GlobalStateService }, { token: i0.ChangeDetectorRef }, { token: i5.ToastService }, { token: i4.PageInfoService }], target: i0.ɵɵFactoryTarget.Component });
149
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: TangoAuthLoginComponent, selector: "lib-tango-auth-login", viewQueries: [{ propertyName: "emailInputRef", first: true, predicate: ["emailInput"], descendants: true }, { propertyName: "passwordInputRef", first: true, predicate: ["passwordInput"], descendants: true }], ngImport: i0, template: "<!-- <div class=\"row justify-content-center logotext px-0\">\r\n <img src=\"./assets/tango/Icons/login-background.svg\" alt=\"\">\r\n </div> -->\r\n\r\n<!-- \r\n<button (click)=\"onClick()\">Log In</button> -->\r\n\r\n<div *ngIf=\"isloader\" class=\"container mt-20\">\r\n <div class=\"text-center mt-20\">\r\n <img src=\"./assets/tango/Icons/favicon.png\" alt=\"Tango logo\" />\r\n <div>Loading ...</div>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"!isloader\" class=\"container\">\r\n <!-- style=\"padding: 96px 142px 96px 142px;\" -->\r\n <div class=\"row position-absolute\" >\r\n <div class=\"col-md-6 pe-10 d-flex justify-content-center align-items-center \">\r\n <img src=\"./assets/tango/Icons/LHS.svg\" alt=\"Image\" class=\"img-fluid w-100\">\r\n </div>\r\n <div class=\"col-md-6 px-10 d-flex justify-content-center align-items-center\"> \r\n <div class=\"card card-flush w-lg-600px ms-20 py-3\">\r\n <div class=\"login-form login-signin\">\r\n \r\n <div class=\"d-flex flex-column align-items-between title-padding\">\r\n <div class=\"text-start my-10 ms-10\">\r\n <h3 class=\"login-title\">Log in</h3>\r\n <p class=\"login-sub-title\">Welcome back! Please enter your details.</p>\r\n </div>\r\n <form #loginForm=\"ngForm\" class=\"w-100 title-padding\" novalidate=\"novalidate\">\r\n <div class=\"mb-5 \">\r\n <label for=\"Email\" class=\"form-label\">Email</label>\r\n <input type=\"email\" class=\"form-control\" id=\"Email\" name=\"Email\" autocomplete=\"off\" required [(ngModel)]=\"credentials.email\" autocomplete=\"off\" #emailInput>\r\n </div>\r\n <div class=\"mb-5 \">\r\n <label for=\"Password\" class=\"form-label\">Password</label>\r\n <div class=\"position-relative mb-3\">\r\n <input class=\"form-control\" id=\"Password\" [type]=\"show ? 'text' : 'password'\"\r\n placeholder=\"\" name=\"password\" autocomplete=\"off\" required #passwordInput\r\n [(ngModel)]=\"credentials.password\">\r\n <span (click)=\"showPassword()\"\r\n class=\"btn btn-sm btn-icon position-absolute translate-middle top-50 end-0 me-n2\"\r\n data-kt-password-meter-control=\"visibility\">\r\n <i *ngIf=\"show\" class=\"fa fa-eye\" aria-hidden=\"true\"></i>\r\n <i *ngIf=\"!show\" class=\"fa fa-eye-slash\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n <div *ngIf=\"hasError\" class=\"text-danger\" style=\"color: #ffffff !important;\">\r\n Email Id / Mobile Number or Password is incorrect\r\n </div>\r\n </div>\r\n<div class=\"text-center\">\r\n <h6 class=\"forgot cursor-pointer\" routerLink=\"/auth/forgot-password\">Forgot Password</h6>\r\n\r\n</div>\r\n <button class=\"btn btn-primary w-100 mt-3\" [disabled]=\"!loginForm.valid || (!credentials.email || !credentials.password)\" (click)=\"onLogin()\">Sign in</button>\r\n\r\n <!-- <button class=\"btn btn-outline w-100 mt-3 not-allowed coming-soon\" >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_3727_17759)\">\r\n <path\r\n d=\"M24.2663 12.9767C24.2663 12.161 24.2001 11.3408 24.059 10.5383H12.7402V15.1593H19.222C18.953 16.6497 18.0888 17.9681 16.8233 18.8058V21.8042H20.6903C22.9611 19.7142 24.2663 16.6276 24.2663 12.9767Z\"\r\n fill=\"#4285F4\" />\r\n <path\r\n d=\"M12.7401 24.701C15.9766 24.701 18.7059 23.6384 20.6945 21.8041L16.8276 18.8057C15.7517 19.5377 14.3627 19.9522 12.7445 19.9522C9.61388 19.9522 6.95946 17.8401 6.00705 15.0005H2.0166V18.0914C4.05371 22.1436 8.2029 24.701 12.7401 24.701Z\"\r\n fill=\"#34A853\" />\r\n <path\r\n d=\"M6.00277 15.0004C5.50011 13.5101 5.50011 11.8962 6.00277 10.4059V7.31494H2.01674C0.314734 10.7057 0.314734 14.7006 2.01674 18.0913L6.00277 15.0004Z\"\r\n fill=\"#FBBC04\" />\r\n <path\r\n d=\"M12.7401 5.44986C14.4509 5.4234 16.1044 6.06716 17.3434 7.24886L20.7695 3.82281C18.6001 1.7857 15.7208 0.665729 12.7401 0.701004C8.2029 0.701004 4.05371 3.25842 2.0166 7.315L6.00264 10.4059C6.95064 7.56193 9.60947 5.44986 12.7401 5.44986Z\"\r\n fill=\"#EA4335\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3727_17759\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0.5 0.700195)\" />\r\n </clipPath>\r\n </defs>\r\n </svg><span class=\"mx-2\">Sign in with Google</span> \r\n <span class=\"tooltip\">Coming Soon</span>\r\n </button>\r\n <button class=\"btn btn-outline w-100 mt-3 not-allowed coming-soon\" ><svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_3727_6141)\">\r\n <path d=\"M11.9057 12.104H0.5V0.700195H11.9057V12.104Z\" fill=\"#F1511B\" />\r\n <path d=\"M24.5004 12.104H13.0938V0.700195H24.4994V12.104H24.5004Z\" fill=\"#80CC28\" />\r\n <path d=\"M11.9057 24.7002H0.5V13.2964H11.9057V24.7002Z\" fill=\"#00ADEF\" />\r\n <path d=\"M24.5004 24.7002H13.0938V13.2964H24.4994V24.7002H24.5004Z\" fill=\"#FBBC09\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3727_6141\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0.5 0.700195)\" />\r\n </clipPath>\r\n </defs>\r\n </svg><span class=\"mx-2\">Sign in with Microsoft</span> <span class=\"tooltip\">Coming Soon</span></button> -->\r\n </form>\r\n\r\n <div class=\"mt-3 text-center ms-75px\"><span class=\"signup-default\"></span>Don\u2019t have an account?<span class=\"signup-primary ms-2 cursor-pointer\" routerLink=\"/auth/signup\">Sign up</span></div>\r\n </div>\r\n <div class=\" d-flex flex-column flex-md-row mb-3 flex-md-stack py-3 container-fluid\">\r\n <div class=\"text-gray-900 order-2 order-md-1 ms-10\">\r\n <span class=\"me-1 footer\">2024</span>\r\n <a target=\"_blank\" href=\"https://tangoeye.ai\" class=\"footer text-decoration-underline cursor-pointer\">&#64;Tango IT Solutions India Pvt Ltd</a>\r\n </div>\r\n <ul class=\"menu menu-gray-600 menu-hover-primary fw-semibold order-1 me-7\">\r\n <li class=\"menu-item footer\"><a target=\"_blank\" href=\"mailto:support@tangotech.co.in?subject=Subject%20Here&body=Body%20Here\" class=\"menu-link px-5\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"13\" viewBox=\"0 0 12 13\" fill=\"none\">\r\n <path d=\"M11 3.7002C11 3.1502 10.55 2.7002 10 2.7002H2C1.45 2.7002 1 3.1502 1 3.7002M11 3.7002V9.7002C11 10.2502 10.55 10.7002 10 10.7002H2C1.45 10.7002 1 10.2502 1 9.7002V3.7002M11 3.7002L6 7.2002L1 3.7002\" stroke=\"#667085\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg><span class=\"ms-2\">support&#64;tangotech.co.in</span></a></li>\r\n \r\n </ul>\r\n </div>\r\n </div>\r\n \r\n\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n<img src=\"./assets/tango/Icons/login-background1.svg\" alt=\"Image\" class=\"background-image\">\r\n</div>", styles: [".container{width:100%;height:100%;overflow:hidden}.background-image{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;z-index:-1}.content{position:relative;z-index:1;width:45%;margin-left:auto;padding:20px;border-radius:16px;background:#fff;box-shadow:0 4px 10px #0000000d}.login-form .title-padding{padding:0 32px}.login-form .login-title{color:var(--Gray-900, #101828);font-size:36px;font-weight:600;line-height:44px;letter-spacing:-.72px}.login-form .login-sub-title{color:var(--Gray-500, #667085);font-size:16px;font-weight:400;line-height:24px}.login-form .form-label{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:500;line-height:20px}.login-form .img-src{padding:10px 5px 32px}.login-form .mx-25{margin-right:-10px!important;margin-left:-45px!important}.login-form .w-360px{width:360px!important}.login-form .forgot{color:var(--Primary-700, #009BF3)!important;font-size:14px!important;font-weight:600;line-height:20px;text-decoration-line:underline;text-transform:capitalize;text-align:center}.login-form .signup-default{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:400!important;line-height:20px}.login-form .signup-primary{color:var(--Primary-700, #009BF3)!important;font-size:14px;font-weight:600!important;line-height:20px;text-decoration-line:underline;text-transform:capitalize}.login-form .footer{color:var(--Gray-500, #667085)!important;font-size:12px!important;font-weight:400!important;line-height:20px}@media (min-width: 1745px) and (max-width: 1910px){.mt-6{margin-top:7rem!important}}@media (min-width: 1920px) and (max-width: 2100px){.mt-6{margin-top:10rem!important}.login-form .mx-25{margin-right:0!important;margin-left:20px!important}}.position-absolute{position:absolute;top:50%;transform:translateY(-50%)}.not-allowed{cursor:not-allowed!important}.btn-outline.coming-soon{border-color:#ced4da;color:#6c757d;position:relative}.btn-outline.coming-soon:hover{border-color:#6c757d;color:#212529}.tooltip{visibility:hidden;background-color:#000;color:#fff;text-align:center;border-radius:6px;padding:5px;position:absolute;z-index:1;bottom:100%;left:50%;transform:translate(-50%);width:max-content}.btn-outline.coming-soon:hover .tooltip{visibility:visible}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
151
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: TangoAuthLoginComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2.FormBuilder }, { token: i3.AuthService }, { token: i4.GlobalStateService }, { token: i0.ChangeDetectorRef }, { token: i5.ToastService }, { token: i4.PageInfoService }], target: i0.ɵɵFactoryTarget.Component });
152
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: TangoAuthLoginComponent, selector: "lib-tango-auth-login", viewQueries: [{ propertyName: "emailInputRef", first: true, predicate: ["emailInput"], descendants: true }, { propertyName: "passwordInputRef", first: true, predicate: ["passwordInput"], descendants: true }], ngImport: i0, template: "<!-- <div class=\"row justify-content-center logotext px-0\">\r\n <img src=\"./assets/tango/Icons/login-background.svg\" alt=\"\">\r\n </div> -->\r\n\r\n<!-- \r\n<button (click)=\"onClick()\">Log In</button> -->\r\n\r\n<div *ngIf=\"isloader\" class=\"container mt-20\">\r\n <div class=\"text-center mt-20\">\r\n <img src=\"./assets/tango/Icons/favicon.png\" alt=\"Tango logo\" />\r\n <div>Loading ...</div>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"!isloader\" class=\"container\">\r\n <!-- style=\"padding: 96px 142px 96px 142px;\" -->\r\n <div class=\"row position-absolute\" >\r\n <div class=\"col-md-6 pe-10 d-flex justify-content-center align-items-center \">\r\n <img src=\"./assets/tango/Icons/LHS.svg\" alt=\"Image\" class=\"img-fluid w-100\">\r\n </div>\r\n <div class=\"col-md-6 px-10 d-flex justify-content-center align-items-center\"> \r\n <div class=\"card card-flush w-lg-600px ms-20 py-3\">\r\n <div class=\"login-form login-signin\">\r\n \r\n <div class=\"d-flex flex-column align-items-between title-padding\">\r\n <div class=\"text-start my-10 ms-10\">\r\n <h3 class=\"login-title\">Log in</h3>\r\n <p class=\"login-sub-title\">Welcome back! Please enter your details.</p>\r\n </div>\r\n <form #loginForm=\"ngForm\" class=\"w-100 title-padding\" novalidate=\"novalidate\">\r\n <div class=\"mb-5 \">\r\n <label for=\"Email\" class=\"form-label\">Email</label>\r\n <input type=\"email\" class=\"form-control\" id=\"Email\" name=\"Email\" autocomplete=\"off\" required [(ngModel)]=\"credentials.email\" autocomplete=\"off\" #emailInput>\r\n </div>\r\n <div class=\"mb-5 \">\r\n <label for=\"Password\" class=\"form-label\">Password</label>\r\n <div class=\"position-relative mb-3\">\r\n <input class=\"form-control\" id=\"Password\" [type]=\"show ? 'text' : 'password'\"\r\n placeholder=\"\" name=\"password\" autocomplete=\"off\" required #passwordInput\r\n [(ngModel)]=\"credentials.password\">\r\n <span (click)=\"showPassword()\"\r\n class=\"btn btn-sm btn-icon position-absolute translate-middle top-50 end-0 me-n2\"\r\n data-kt-password-meter-control=\"visibility\">\r\n <i *ngIf=\"show\" class=\"fa fa-eye\" aria-hidden=\"true\"></i>\r\n <i *ngIf=\"!show\" class=\"fa fa-eye-slash\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n <div *ngIf=\"hasError\" class=\"text-danger\" style=\"color: #ffffff !important;\">\r\n Email Id / Mobile Number or Password is incorrect\r\n </div>\r\n </div>\r\n<div class=\"text-center\">\r\n <h6 class=\"forgot cursor-pointer\" routerLink=\"/auth/forgot-password\">Forgot Password</h6>\r\n\r\n</div>\r\n <button class=\"btn btn-primary w-100 mt-3\" [disabled]=\"!loginForm.valid || (!credentials.email || !credentials.password)\" (click)=\"onLogin()\">Sign in</button>\r\n\r\n <!-- <button class=\"btn btn-outline w-100 mt-3 not-allowed coming-soon\" >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_3727_17759)\">\r\n <path\r\n d=\"M24.2663 12.9767C24.2663 12.161 24.2001 11.3408 24.059 10.5383H12.7402V15.1593H19.222C18.953 16.6497 18.0888 17.9681 16.8233 18.8058V21.8042H20.6903C22.9611 19.7142 24.2663 16.6276 24.2663 12.9767Z\"\r\n fill=\"#4285F4\" />\r\n <path\r\n d=\"M12.7401 24.701C15.9766 24.701 18.7059 23.6384 20.6945 21.8041L16.8276 18.8057C15.7517 19.5377 14.3627 19.9522 12.7445 19.9522C9.61388 19.9522 6.95946 17.8401 6.00705 15.0005H2.0166V18.0914C4.05371 22.1436 8.2029 24.701 12.7401 24.701Z\"\r\n fill=\"#34A853\" />\r\n <path\r\n d=\"M6.00277 15.0004C5.50011 13.5101 5.50011 11.8962 6.00277 10.4059V7.31494H2.01674C0.314734 10.7057 0.314734 14.7006 2.01674 18.0913L6.00277 15.0004Z\"\r\n fill=\"#FBBC04\" />\r\n <path\r\n d=\"M12.7401 5.44986C14.4509 5.4234 16.1044 6.06716 17.3434 7.24886L20.7695 3.82281C18.6001 1.7857 15.7208 0.665729 12.7401 0.701004C8.2029 0.701004 4.05371 3.25842 2.0166 7.315L6.00264 10.4059C6.95064 7.56193 9.60947 5.44986 12.7401 5.44986Z\"\r\n fill=\"#EA4335\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3727_17759\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0.5 0.700195)\" />\r\n </clipPath>\r\n </defs>\r\n </svg><span class=\"mx-2\">Sign in with Google</span> \r\n <span class=\"tooltip\">Coming Soon</span>\r\n </button>\r\n <button class=\"btn btn-outline w-100 mt-3 not-allowed coming-soon\" ><svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_3727_6141)\">\r\n <path d=\"M11.9057 12.104H0.5V0.700195H11.9057V12.104Z\" fill=\"#F1511B\" />\r\n <path d=\"M24.5004 12.104H13.0938V0.700195H24.4994V12.104H24.5004Z\" fill=\"#80CC28\" />\r\n <path d=\"M11.9057 24.7002H0.5V13.2964H11.9057V24.7002Z\" fill=\"#00ADEF\" />\r\n <path d=\"M24.5004 24.7002H13.0938V13.2964H24.4994V24.7002H24.5004Z\" fill=\"#FBBC09\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3727_6141\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0.5 0.700195)\" />\r\n </clipPath>\r\n </defs>\r\n </svg><span class=\"mx-2\">Sign in with Microsoft</span> <span class=\"tooltip\">Coming Soon</span></button> -->\r\n </form>\r\n\r\n <div class=\"mt-3 text-center ms-75px\"><span class=\"signup-default\"></span>Don\u2019t have an account?<span class=\"signup-primary ms-2 cursor-pointer\" routerLink=\"/auth/signup\">Sign up</span></div>\r\n </div>\r\n <div class=\" d-flex flex-column flex-md-row mb-3 flex-md-stack py-3 container-fluid\">\r\n <div class=\"text-gray-900 order-2 order-md-1 ms-10\">\r\n <span class=\"me-1 footer\">2024</span>\r\n <a target=\"_blank\" href=\"https://tangoeye.ai\" class=\"footer text-decoration-underline cursor-pointer\">&#64;Tango IT Solutions India Pvt Ltd</a>\r\n </div>\r\n <ul class=\"menu menu-gray-600 menu-hover-primary fw-semibold order-1 me-7\">\r\n <li class=\"menu-item footer\"><a target=\"_blank\" href=\"mailto:support@tangotech.co.in?subject=Subject%20Here&body=Body%20Here\" class=\"menu-link px-5\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"13\" viewBox=\"0 0 12 13\" fill=\"none\">\r\n <path d=\"M11 3.7002C11 3.1502 10.55 2.7002 10 2.7002H2C1.45 2.7002 1 3.1502 1 3.7002M11 3.7002V9.7002C11 10.2502 10.55 10.7002 10 10.7002H2C1.45 10.7002 1 10.2502 1 9.7002V3.7002M11 3.7002L6 7.2002L1 3.7002\" stroke=\"#667085\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg><span class=\"ms-2\">support&#64;tangotech.co.in</span></a></li>\r\n \r\n </ul>\r\n </div>\r\n </div>\r\n \r\n\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n<img src=\"./assets/tango/Icons/login-background1.svg\" alt=\"Image\" class=\"background-image\">\r\n</div>", styles: [".container{width:100%;height:100%;overflow:hidden}.background-image{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;z-index:-1}.content{position:relative;z-index:1;width:45%;margin-left:auto;padding:20px;border-radius:16px;background:#fff;box-shadow:0 4px 10px #0000000d}.login-form .title-padding{padding:0 32px}.login-form .login-title{color:var(--Gray-900, #101828);font-size:36px;font-weight:600;line-height:44px;letter-spacing:-.72px}.login-form .login-sub-title{color:var(--Gray-500, #667085);font-size:16px;font-weight:400;line-height:24px}.login-form .form-label{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:500;line-height:20px}.login-form .img-src{padding:10px 5px 32px}.login-form .mx-25{margin-right:-10px!important;margin-left:-45px!important}.login-form .w-360px{width:360px!important}.login-form .forgot{color:var(--Primary-700, #009BF3)!important;font-size:14px!important;font-weight:600;line-height:20px;text-decoration-line:underline;text-transform:capitalize;text-align:center}.login-form .signup-default{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:400!important;line-height:20px}.login-form .signup-primary{color:var(--Primary-700, #009BF3)!important;font-size:14px;font-weight:600!important;line-height:20px;text-decoration-line:underline;text-transform:capitalize}.login-form .footer{color:var(--Gray-500, #667085)!important;font-size:12px!important;font-weight:400!important;line-height:20px}@media (min-width: 1745px) and (max-width: 1910px){.mt-6{margin-top:7rem!important}}@media (min-width: 1920px) and (max-width: 2100px){.mt-6{margin-top:10rem!important}.login-form .mx-25{margin-right:0!important;margin-left:20px!important}}.position-absolute{position:absolute;top:50%;transform:translateY(-50%)}.not-allowed{cursor:not-allowed!important}.btn-outline.coming-soon{border-color:#ced4da;color:#6c757d;position:relative}.btn-outline.coming-soon:hover{border-color:#6c757d;color:#212529}.tooltip{visibility:hidden;background-color:#000;color:#fff;text-align:center;border-radius:6px;padding:5px;position:absolute;z-index:1;bottom:100%;left:50%;transform:translate(-50%);width:max-content}.btn-outline.coming-soon:hover .tooltip{visibility:visible}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
150
153
  }
151
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: TangoAuthLoginComponent, decorators: [{
154
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: TangoAuthLoginComponent, decorators: [{
152
155
  type: Component,
153
156
  args: [{ selector: "lib-tango-auth-login", template: "<!-- <div class=\"row justify-content-center logotext px-0\">\r\n <img src=\"./assets/tango/Icons/login-background.svg\" alt=\"\">\r\n </div> -->\r\n\r\n<!-- \r\n<button (click)=\"onClick()\">Log In</button> -->\r\n\r\n<div *ngIf=\"isloader\" class=\"container mt-20\">\r\n <div class=\"text-center mt-20\">\r\n <img src=\"./assets/tango/Icons/favicon.png\" alt=\"Tango logo\" />\r\n <div>Loading ...</div>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"!isloader\" class=\"container\">\r\n <!-- style=\"padding: 96px 142px 96px 142px;\" -->\r\n <div class=\"row position-absolute\" >\r\n <div class=\"col-md-6 pe-10 d-flex justify-content-center align-items-center \">\r\n <img src=\"./assets/tango/Icons/LHS.svg\" alt=\"Image\" class=\"img-fluid w-100\">\r\n </div>\r\n <div class=\"col-md-6 px-10 d-flex justify-content-center align-items-center\"> \r\n <div class=\"card card-flush w-lg-600px ms-20 py-3\">\r\n <div class=\"login-form login-signin\">\r\n \r\n <div class=\"d-flex flex-column align-items-between title-padding\">\r\n <div class=\"text-start my-10 ms-10\">\r\n <h3 class=\"login-title\">Log in</h3>\r\n <p class=\"login-sub-title\">Welcome back! Please enter your details.</p>\r\n </div>\r\n <form #loginForm=\"ngForm\" class=\"w-100 title-padding\" novalidate=\"novalidate\">\r\n <div class=\"mb-5 \">\r\n <label for=\"Email\" class=\"form-label\">Email</label>\r\n <input type=\"email\" class=\"form-control\" id=\"Email\" name=\"Email\" autocomplete=\"off\" required [(ngModel)]=\"credentials.email\" autocomplete=\"off\" #emailInput>\r\n </div>\r\n <div class=\"mb-5 \">\r\n <label for=\"Password\" class=\"form-label\">Password</label>\r\n <div class=\"position-relative mb-3\">\r\n <input class=\"form-control\" id=\"Password\" [type]=\"show ? 'text' : 'password'\"\r\n placeholder=\"\" name=\"password\" autocomplete=\"off\" required #passwordInput\r\n [(ngModel)]=\"credentials.password\">\r\n <span (click)=\"showPassword()\"\r\n class=\"btn btn-sm btn-icon position-absolute translate-middle top-50 end-0 me-n2\"\r\n data-kt-password-meter-control=\"visibility\">\r\n <i *ngIf=\"show\" class=\"fa fa-eye\" aria-hidden=\"true\"></i>\r\n <i *ngIf=\"!show\" class=\"fa fa-eye-slash\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n <div *ngIf=\"hasError\" class=\"text-danger\" style=\"color: #ffffff !important;\">\r\n Email Id / Mobile Number or Password is incorrect\r\n </div>\r\n </div>\r\n<div class=\"text-center\">\r\n <h6 class=\"forgot cursor-pointer\" routerLink=\"/auth/forgot-password\">Forgot Password</h6>\r\n\r\n</div>\r\n <button class=\"btn btn-primary w-100 mt-3\" [disabled]=\"!loginForm.valid || (!credentials.email || !credentials.password)\" (click)=\"onLogin()\">Sign in</button>\r\n\r\n <!-- <button class=\"btn btn-outline w-100 mt-3 not-allowed coming-soon\" >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_3727_17759)\">\r\n <path\r\n d=\"M24.2663 12.9767C24.2663 12.161 24.2001 11.3408 24.059 10.5383H12.7402V15.1593H19.222C18.953 16.6497 18.0888 17.9681 16.8233 18.8058V21.8042H20.6903C22.9611 19.7142 24.2663 16.6276 24.2663 12.9767Z\"\r\n fill=\"#4285F4\" />\r\n <path\r\n d=\"M12.7401 24.701C15.9766 24.701 18.7059 23.6384 20.6945 21.8041L16.8276 18.8057C15.7517 19.5377 14.3627 19.9522 12.7445 19.9522C9.61388 19.9522 6.95946 17.8401 6.00705 15.0005H2.0166V18.0914C4.05371 22.1436 8.2029 24.701 12.7401 24.701Z\"\r\n fill=\"#34A853\" />\r\n <path\r\n d=\"M6.00277 15.0004C5.50011 13.5101 5.50011 11.8962 6.00277 10.4059V7.31494H2.01674C0.314734 10.7057 0.314734 14.7006 2.01674 18.0913L6.00277 15.0004Z\"\r\n fill=\"#FBBC04\" />\r\n <path\r\n d=\"M12.7401 5.44986C14.4509 5.4234 16.1044 6.06716 17.3434 7.24886L20.7695 3.82281C18.6001 1.7857 15.7208 0.665729 12.7401 0.701004C8.2029 0.701004 4.05371 3.25842 2.0166 7.315L6.00264 10.4059C6.95064 7.56193 9.60947 5.44986 12.7401 5.44986Z\"\r\n fill=\"#EA4335\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3727_17759\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0.5 0.700195)\" />\r\n </clipPath>\r\n </defs>\r\n </svg><span class=\"mx-2\">Sign in with Google</span> \r\n <span class=\"tooltip\">Coming Soon</span>\r\n </button>\r\n <button class=\"btn btn-outline w-100 mt-3 not-allowed coming-soon\" ><svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_3727_6141)\">\r\n <path d=\"M11.9057 12.104H0.5V0.700195H11.9057V12.104Z\" fill=\"#F1511B\" />\r\n <path d=\"M24.5004 12.104H13.0938V0.700195H24.4994V12.104H24.5004Z\" fill=\"#80CC28\" />\r\n <path d=\"M11.9057 24.7002H0.5V13.2964H11.9057V24.7002Z\" fill=\"#00ADEF\" />\r\n <path d=\"M24.5004 24.7002H13.0938V13.2964H24.4994V24.7002H24.5004Z\" fill=\"#FBBC09\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3727_6141\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0.5 0.700195)\" />\r\n </clipPath>\r\n </defs>\r\n </svg><span class=\"mx-2\">Sign in with Microsoft</span> <span class=\"tooltip\">Coming Soon</span></button> -->\r\n </form>\r\n\r\n <div class=\"mt-3 text-center ms-75px\"><span class=\"signup-default\"></span>Don\u2019t have an account?<span class=\"signup-primary ms-2 cursor-pointer\" routerLink=\"/auth/signup\">Sign up</span></div>\r\n </div>\r\n <div class=\" d-flex flex-column flex-md-row mb-3 flex-md-stack py-3 container-fluid\">\r\n <div class=\"text-gray-900 order-2 order-md-1 ms-10\">\r\n <span class=\"me-1 footer\">2024</span>\r\n <a target=\"_blank\" href=\"https://tangoeye.ai\" class=\"footer text-decoration-underline cursor-pointer\">&#64;Tango IT Solutions India Pvt Ltd</a>\r\n </div>\r\n <ul class=\"menu menu-gray-600 menu-hover-primary fw-semibold order-1 me-7\">\r\n <li class=\"menu-item footer\"><a target=\"_blank\" href=\"mailto:support@tangotech.co.in?subject=Subject%20Here&body=Body%20Here\" class=\"menu-link px-5\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"13\" viewBox=\"0 0 12 13\" fill=\"none\">\r\n <path d=\"M11 3.7002C11 3.1502 10.55 2.7002 10 2.7002H2C1.45 2.7002 1 3.1502 1 3.7002M11 3.7002V9.7002C11 10.2502 10.55 10.7002 10 10.7002H2C1.45 10.7002 1 10.2502 1 9.7002V3.7002M11 3.7002L6 7.2002L1 3.7002\" stroke=\"#667085\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg><span class=\"ms-2\">support&#64;tangotech.co.in</span></a></li>\r\n \r\n </ul>\r\n </div>\r\n </div>\r\n \r\n\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n<img src=\"./assets/tango/Icons/login-background1.svg\" alt=\"Image\" class=\"background-image\">\r\n</div>", styles: [".container{width:100%;height:100%;overflow:hidden}.background-image{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;z-index:-1}.content{position:relative;z-index:1;width:45%;margin-left:auto;padding:20px;border-radius:16px;background:#fff;box-shadow:0 4px 10px #0000000d}.login-form .title-padding{padding:0 32px}.login-form .login-title{color:var(--Gray-900, #101828);font-size:36px;font-weight:600;line-height:44px;letter-spacing:-.72px}.login-form .login-sub-title{color:var(--Gray-500, #667085);font-size:16px;font-weight:400;line-height:24px}.login-form .form-label{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:500;line-height:20px}.login-form .img-src{padding:10px 5px 32px}.login-form .mx-25{margin-right:-10px!important;margin-left:-45px!important}.login-form .w-360px{width:360px!important}.login-form .forgot{color:var(--Primary-700, #009BF3)!important;font-size:14px!important;font-weight:600;line-height:20px;text-decoration-line:underline;text-transform:capitalize;text-align:center}.login-form .signup-default{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:400!important;line-height:20px}.login-form .signup-primary{color:var(--Primary-700, #009BF3)!important;font-size:14px;font-weight:600!important;line-height:20px;text-decoration-line:underline;text-transform:capitalize}.login-form .footer{color:var(--Gray-500, #667085)!important;font-size:12px!important;font-weight:400!important;line-height:20px}@media (min-width: 1745px) and (max-width: 1910px){.mt-6{margin-top:7rem!important}}@media (min-width: 1920px) and (max-width: 2100px){.mt-6{margin-top:10rem!important}.login-form .mx-25{margin-right:0!important;margin-left:20px!important}}.position-absolute{position:absolute;top:50%;transform:translateY(-50%)}.not-allowed{cursor:not-allowed!important}.btn-outline.coming-soon{border-color:#ced4da;color:#6c757d;position:relative}.btn-outline.coming-soon:hover{border-color:#6c757d;color:#212529}.tooltip{visibility:hidden;background-color:#000;color:#fff;text-align:center;border-radius:6px;padding:5px;position:absolute;z-index:1;bottom:100%;left:50%;transform:translate(-50%);width:max-content}.btn-outline.coming-soon:hover .tooltip{visibility:visible}\n"] }]
154
157
  }], ctorParameters: () => [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.FormBuilder }, { type: i3.AuthService }, { type: i4.GlobalStateService }, { type: i0.ChangeDetectorRef }, { type: i5.ToastService }, { type: i4.PageInfoService }], propDecorators: { emailInputRef: [{
@@ -158,4 +161,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
158
161
  type: ViewChild,
159
162
  args: ['passwordInput']
160
163
  }] } });
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFuZ28tYXV0aC1sb2dpbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hdXRoL3NyYy9saWIvY29tcG9uZW50cy90YW5nby1hdXRoLWxvZ2luL3RhbmdvLWF1dGgtbG9naW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXV0aC9zcmMvbGliL2NvbXBvbmVudHMvdGFuZ28tYXV0aC1sb2dpbi90YW5nby1hdXRoLWxvZ2luLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFpQyxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDL0csT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpELE9BQU8sRUFBRSxPQUFPLEVBQVMsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7OztBQVdqRCxNQUFNLE9BQU8sdUJBQXVCO0lBcUJ4QjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQStCO0lBQy9CO0lBQW1DO0lBekI3QyxXQUFXLEdBQVE7UUFDakIsS0FBSyxFQUFFLGdCQUFnQjtRQUN2QixRQUFRLEVBQUUsTUFBTTtLQUNqQixDQUFDO0lBQ0YsUUFBUSxDQUFVO0lBQ2xCLFNBQVMsQ0FBUztJQUNsQixJQUFJLEdBQVksS0FBSyxDQUFDO0lBQ3RCLFNBQVMsQ0FBTTtJQUNmLFdBQVcsR0FBUTtRQUNqQixLQUFLLEVBQUUsSUFBSTtRQUNYLFFBQVEsRUFBRSxJQUFJO0tBQ2YsQ0FBQztJQUNGLFNBQVMsQ0FBVTtJQUNuQixRQUFRLEdBQVcsSUFBSSxDQUFDO0lBQ0MsYUFBYSxDQUFjO0lBQ3hCLGdCQUFnQixDQUFjO0lBQ2xELHFCQUFxQixDQUFNO0lBQ2xCLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBRTFDLFlBQ1UsTUFBYyxFQUNkLEtB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RUQsWUFBWTtRQUNWLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3pCLENBQUM7dUdBcklVLHVCQUF1QjsyRkFBdkIsdUJBQXVCLDZRQ2RwQyxzb1BBeUhNOzsyRkQzR08sdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHNCQUFzQjtzUkFtQlAsYUFBYTtzQkFBckMsU0FBUzt1QkFBQyxZQUFZO2dCQUNLLGdCQUFnQjtzQkFBM0MsU0FBUzt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgU3ViamVjdCwgZmlyc3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgU3dhbCBmcm9tICdzd2VldGFsZXJ0Mic7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlLCBQYWdlSW5mb1NlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJ1xyXG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktc2hhcmVkJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImxpYi10YW5nby1hdXRoLWxvZ2luXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi90YW5nby1hdXRoLWxvZ2luLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmw6IFwiLi90YW5nby1hdXRoLWxvZ2luLmNvbXBvbmVudC5zY3NzXCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYW5nb0F1dGhMb2dpbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBkZWZhdWx0QXV0aDogYW55ID0ge1xyXG4gICAgZW1haWw6IFwiYWRtaW5AZGVtby5jb21cIixcclxuICAgIHBhc3N3b3JkOiBcImRlbW9cIixcclxuICB9O1xyXG4gIGhhc0Vycm9yOiBib29sZWFuO1xyXG4gIHJldHVyblVybDogc3RyaW5nO1xyXG4gIHNob3c6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBsb2dpbkZvcm06IGFueTtcclxuICBjcmVkZW50aWFsczogYW55ID0ge1xyXG4gICAgZW1haWw6IG51bGwsXHJcbiAgICBwYXNzd29yZDogbnVsbCxcclxuICB9O1xyXG4gIGlzTG9hZGluZzogYm9vbGVhbjtcclxuICBpc2xvYWRlciA6Ym9vbGVhbiA9dHJ1ZTtcclxuICBAVmlld0NoaWxkKCdlbWFpbElucHV0JykgZW1haWxJbnB1dFJlZiE6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgncGFzc3dvcmRJbnB1dCcpIHBhc3N3b3JkSW5wdXRSZWYhOiBFbGVtZW50UmVmO1xyXG4gIHByaXZhdGUgYXV0aGxvY2FsU3RvcmFnZVRva2VuOiBhbnk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIHNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBnczogR2xvYmFsU3RhdGVTZXJ2aWNlLHByaXZhdGUgY2QgOkNoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSB0b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZSxwcml2YXRlIHBhZ2VJbmZvOlBhZ2VJbmZvU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5ncy5lbnZpcm9ubWVudC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChlbnYpID0+IHtcclxuICAgICAgaWYgKGVudikge1xyXG4gICAgICAgIHRoaXMuYXV0aGxvY2FsU3RvcmFnZVRva2VuID0gYCR7ZW52LmFwcFZlcnNpb259LSR7ZW52LlVTRVJEQVRBX0tFWX1gO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGlmICh0aGlzLnNlcnZpY2UuY3VycmVudFVzZXJWYWx1ZSkge1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXCIvXCJdKTtcclxuICAgIH1cclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmluaXRGb3JtKCk7XHJcbiAgICAvLyB0aGlzLnVzZXJQcm9maWxlKCk7XHJcbiAgICAvLyBnZXQgcmV0dXJuIHVybCBmcm9tIHJvdXRlIHBhcmFtZXRlcnMgb3IgZGVmYXVsdCB0byAnLydcclxuICAgIHRoaXMucmV0dXJuVXJsID1cclxuICAgICAgdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtc1tcInJldHVyblVybFwiLnRvU3RyaW5nKCldIHx8IFwiL1wiO1xyXG4gICAgICBpZiAodGhpcy5lbWFpbElucHV0UmVmPy5uYXRpdmVFbGVtZW50LnZhbHVlIHx8IHRoaXMucGFzc3dvcmRJbnB1dFJlZj8ubmF0aXZlRWxlbWVudC52YWx1ZSkge1xyXG4gICAgICAgIC8vIENsZWFyIHRoZSBmaWVsZHMgaWYgYXV0b2ZpbGxlZFxyXG4gICAgICAgIHRoaXMuZW1haWxJbnB1dFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICAgICAgdGhpcy5wYXNzd29yZElucHV0UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnBhZ2VJbmZvLnNldFRpdGxlKCdMb2dpbicpXHJcbiAgfVxyXG4gIFxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgaW5pdEZvcm0oKSB7XHJcbiAgICB0aGlzLmlzbG9hZGVyID0gZmFsc2U7XHJcbiAgICB0aGlzLmxvZ2luRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICBlbWFpbDogW1xyXG4gICAgICAgIHRoaXMuZGVmYXVsdEF1dGguZW1haWwsXHJcbiAgICAgICAgVmFsaWRhdG9ycy5jb21wb3NlKFtcclxuICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXHJcbiAgICAgICAgICBWYWxpZGF0b3JzLmVtYWlsLFxyXG4gICAgICAgICAgVmFsaWRhdG9ycy5taW5MZW5ndGgoMyksXHJcbiAgICAgICAgICBWYWxpZGF0b3JzLm1heExlbmd0aCgzMjApLFxyXG4gICAgICAgIF0pLFxyXG4gICAgICBdLFxyXG4gICAgICBwYXNzd29yZDogW1xyXG4gICAgICAgIHRoaXMuZGVmYXVsdEF1dGgucGFzc3dvcmQsXHJcbiAgICAgICAgVmFsaWRhdG9ycy5jb21wb3NlKFtcclxuICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXHJcbiAgICAgICAgICBWYWxpZGF0b3JzLm1pbkxlbmd0aCgzKSxcclxuICAgICAgICAgIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDEwMCksXHJcbiAgICAgICAgXSksXHJcbiAgICAgIF0sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgb25Mb2dpbigpIHtcclxuICAgIC8vIGxvY2FsU3RvcmFnZS5jbGVhcigpO1xyXG4gICAgdGhpcy5oYXNFcnJvciA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5zaG93ID0gZmFsc2U7XHJcbiAgICB0aGlzLnNlcnZpY2UubG9naW4odGhpcy5jcmVkZW50aWFscykucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcclxuICAgIGlmKHJlcyAmJiByZXM/LmNvZGUgPT09IDIwMCl7XHJcbiAgICAgICAgbGV0IGxvZ2luVG9rZW46IGFueSA9XHJcbiAgICAgICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmF1dGhsb2NhbFN0b3JhZ2VUb2tlbik7XHJcbiAgICAgICAgaWYgKGxvZ2luVG9rZW4pIHtcclxuICAgICAgICAgIGxvZ2luVG9rZW4gPSBKU09OLnBhcnNlKGxvZ2luVG9rZW4pO1xyXG4gICAgICAgIH1cclxuICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFxyXG4gICAgICAgICAgICB0aGlzLmF1dGhsb2NhbFN0b3JhZ2VUb2tlbixcclxuICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkocmVzPy5kYXRhPy5yZXN1bHQpXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgdGhpcy51c2VyUHJvZmlsZSgpO1xyXG4gICAgICAgIH0gIGVsc2UgaWYgKCFyZXMgfHwgcmVzPy5jb2RlID09IDQwMSkge1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5nZXRFcnJvclRvYXN0KCdFbnRlciBWYWxpZCBDcmVkZW50aWFscycpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZ2V0RXJyb3JUb2FzdCgnRW50ZXIgVmFsaWQgQ3JlZGVudGlhbHMnKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICB0aGlzLmhhc0Vycm9yID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5nZXRFcnJvclRvYXN0KGVycj8uZXJyb3I/LmVycm9yID8gZXJyPy5lcnJvcj8uZXJyb3IgOidUaGUgdXNlciBoYXMgYmVlbiB1bmF1dGhvcml6ZWQgdG8gbG9naW4nKTtcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdXNlclByb2ZpbGUoKSB7XHJcbiAgICB0aGlzLnNlcnZpY2UudXNlclByb2ZpbGVEZXQoKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlcykgPT4ge1xyXG4gICAgICAgIGlmIChyZXMmJiByZXMuY29kZSA9PTIwMCkge1xyXG4gICAgICAgICAgdGhpcy5ncy51c2VyQWNjZXNzLm5leHQocmVzLmRhdGE/LnBlcm1pc3Npb24pXHJcbiAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKVxyXG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbWFuYWdlJ10pO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoIXJlcyB8fCByZXMuY29kZSA9PSA0MDEpIHtcclxuICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmdldEVycm9yVG9hc3QoJ0VudGVyIFZhbGlkIENyZWRlbnRpYWxzJyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmdldEVycm9yVG9hc3QoJ0VudGVyIFZhbGlkIENyZWRlbnRpYWxzJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgIHRoaXMuaGFzRXJyb3IgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmdldEVycm9yVG9hc3QoZXJyLmVycm9yLmVycm9yKTtcclxuICAgICAgICBsb2NhbFN0b3JhZ2UuY2xlYXIoKTtcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2hvd1Bhc3N3b3JkKCkge1xyXG4gICAgdGhpcy5zaG93ID0gIXRoaXMuc2hvdztcclxuICB9XHJcbn1cclxuIiwiPCEtLSA8ZGl2IGNsYXNzPVwicm93IGp1c3RpZnktY29udGVudC1jZW50ZXIgbG9nb3RleHQgcHgtMFwiPlxyXG4gICAgPGltZyAgc3JjPVwiLi9hc3NldHMvdGFuZ28vSWNvbnMvbG9naW4tYmFja2dyb3VuZC5zdmdcIiBhbHQ9XCJcIj5cclxuICA8L2Rpdj4gLS0+XHJcblxyXG48IS0tIFxyXG48YnV0dG9uIChjbGljayk9XCJvbkNsaWNrKClcIj5Mb2cgSW48L2J1dHRvbj4gLS0+XHJcblxyXG48ZGl2ICpuZ0lmPVwiaXNsb2FkZXJcIiBjbGFzcz1cImNvbnRhaW5lciBtdC0yMFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBtdC0yMFwiPlxyXG4gICAgPGltZyBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9mYXZpY29uLnBuZ1wiIGFsdD1cIlRhbmdvIGxvZ29cIiAvPlxyXG4gICAgPGRpdj5Mb2FkaW5nIC4uLjwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgKm5nSWY9XCIhaXNsb2FkZXJcIiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG4gIDwhLS0gc3R5bGU9XCJwYWRkaW5nOiA5NnB4IDE0MnB4IDk2cHggMTQycHg7XCIgLS0+XHJcbiAgPGRpdiBjbGFzcz1cInJvdyBwb3NpdGlvbi1hYnNvbHV0ZVwiID5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IHBlLTEwIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBcIj5cclxuICAgICAgICA8aW1nIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL0xIUy5zdmdcIiBhbHQ9XCJJbWFnZVwiIGNsYXNzPVwiaW1nLWZsdWlkIHctMTAwXCI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgcHgtMTAgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+IFxyXG4gIDxkaXYgY2xhc3M9XCJjYXJkIGNhcmQtZmx1c2ggdy1sZy02MDBweCBtcy0yMCBweS0zXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJsb2dpbi1mb3JtIGxvZ2luLXNpZ25pblwiPlxyXG4gICAgXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1iZXR3ZWVuIHRpdGxlLXBhZGRpbmdcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXN0YXJ0IG15LTEwIG1zLTEwXCI+XHJcbiAgICAgICAgICAgIDxoMyBjbGFzcz1cImxvZ2luLXRpdGxlXCI+TG9nIGluPC9oMz5cclxuICAgICAgICAgICAgPHAgY2xhc3M9XCJsb2dpbi1zdWItdGl0bGVcIj5XZWxjb21lIGJhY2shIFBsZWFzZSBlbnRlciB5b3VyIGRldGFpbHMuPC9wPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8Zm9ybSAjbG9naW5Gb3JtPVwibmdGb3JtXCIgY2xhc3M9XCJ3LTEwMCB0aXRsZS1wYWRkaW5nXCIgbm92YWxpZGF0ZT1cIm5vdmFsaWRhdGVcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTUgXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIkVtYWlsXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+RW1haWw8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiZW1haWxcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGlkPVwiRW1haWxcIiBuYW1lPVwiRW1haWxcIiAgYXV0b2NvbXBsZXRlPVwib2ZmXCIgcmVxdWlyZWQgWyhuZ01vZGVsKV09XCJjcmVkZW50aWFscy5lbWFpbFwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiICNlbWFpbElucHV0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTUgXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIlBhc3N3b3JkXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+UGFzc3dvcmQ8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZSBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGlucHV0ICBjbGFzcz1cImZvcm0tY29udHJvbFwiIGlkPVwiUGFzc3dvcmRcIiBbdHlwZV09XCJzaG93ID8gJ3RleHQnIDogJ3Bhc3N3b3JkJ1wiXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJcIiBuYW1lPVwicGFzc3dvcmRcIiBhdXRvY29tcGxldGU9XCJvZmZcIiByZXF1aXJlZCAjcGFzc3dvcmRJbnB1dFxyXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY3JlZGVudGlhbHMucGFzc3dvcmRcIj5cclxuICAgICAgICAgICAgICA8c3BhbiAoY2xpY2spPVwic2hvd1Bhc3N3b3JkKClcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4taWNvbiBwb3NpdGlvbi1hYnNvbHV0ZSB0cmFuc2xhdGUtbWlkZGxlIHRvcC01MCBlbmQtMCBtZS1uMlwiXHJcbiAgICAgICAgICAgICAgZGF0YS1rdC1wYXNzd29yZC1tZXRlci1jb250cm9sPVwidmlzaWJpbGl0eVwiPlxyXG4gICAgICAgICAgICAgIDxpICpuZ0lmPVwic2hvd1wiIGNsYXNzPVwiZmEgZmEtZXllXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgIDxpICpuZ0lmPVwiIXNob3dcIiBjbGFzcz1cImZhIGZhLWV5ZS1zbGFzaFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cImhhc0Vycm9yXCIgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiIHN0eWxlPVwiY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcIj5cclxuICAgICAgICAgICAgRW1haWwgSWQgLyBNb2JpbGUgTnVtYmVyIG9yIFBhc3N3b3JkIGlzIGluY29ycmVjdFxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuPGRpdiBjbGFzcz1cInRleHQtY2VudGVyXCI+XHJcbiAgPGg2IGNsYXNzPVwiZm9yZ290IGN1cnNvci1wb2ludGVyXCIgcm91dGVyTGluaz1cIi9hdXRoL2ZvcmdvdC1wYXNzd29yZFwiPkZvcmdvdCBQYXNzd29yZDwvaDY+XHJcblxyXG48L2Rpdj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSB3LTEwMCBtdC0zXCIgW2Rpc2FibGVkXT1cIiFsb2dpbkZvcm0udmFsaWQgfHwgKCFjcmVkZW50aWFscy5lbWFpbCB8fCAhY3JlZGVudGlhbHMucGFzc3dvcmQpXCIgKGNsaWNrKT1cIm9uTG9naW4oKVwiPlNpZ24gaW48L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZSB3LTEwMCBtdC0zIG5vdC1hbGxvd2VkIGNvbWluZy1zb29uXCIgPlxyXG4gICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICB3aWR0aD1cIjI1XCIgaGVpZ2h0PVwiMjVcIiB2aWV3Qm94PVwiMCAwIDI1IDI1XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMzcyN18xNzc1OSlcIj5cclxuICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICBkPVwiTTI0LjI2NjMgMTIuOTc2N0MyNC4yNjYzIDEyLjE2MSAyNC4yMDAxIDExLjM0MDggMjQuMDU5IDEwLjUzODNIMTIuNzQwMlYxNS4xNTkzSDE5LjIyMkMxOC45NTMgMTYuNjQ5NyAxOC4wODg4IDE3Ljk2ODEgMTYuODIzMyAxOC44MDU4VjIxLjgwNDJIMjAuNjkwM0MyMi45NjExIDE5LjcxNDIgMjQuMjY2MyAxNi42Mjc2IDI0LjI2NjMgMTIuOTc2N1pcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNDI4NUY0XCIgLz5cclxuICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICBkPVwiTTEyLjc0MDEgMjQuNzAxQzE1Ljk3NjYgMjQuNzAxIDE4LjcwNTkgMjMuNjM4NCAyMC42OTQ1IDIxLjgwNDFMMTYuODI3NiAxOC44MDU3QzE1Ljc1MTcgMTkuNTM3NyAxNC4zNjI3IDE5Ljk1MjIgMTIuNzQ0NSAxOS45NTIyQzkuNjEzODggMTkuOTUyMiA2Ljk1OTQ2IDE3Ljg0MDEgNi4wMDcwNSAxNS4wMDA1SDIuMDE2NlYxOC4wOTE0QzQuMDUzNzEgMjIuMTQzNiA4LjIwMjkgMjQuNzAxIDEyLjc0MDEgMjQuNzAxWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiMzNEE4NTNcIiAvPlxyXG4gICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNNi4wMDI3NyAxNS4wMDA0QzUuNTAwMTEgMTMuNTEwMSA1LjUwMDExIDExLjg5NjIgNi4wMDI3NyAxMC40MDU5VjcuMzE0OTRIMi4wMTY3NEMwLjMxNDczNCAxMC43MDU3IDAuMzE0NzM0IDE0LjcwMDYgMi4wMTY3NCAxOC4wOTEzTDYuMDAyNzcgMTUuMDAwNFpcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjRkJCQzA0XCIgLz5cclxuICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICBkPVwiTTEyLjc0MDEgNS40NDk4NkMxNC40NTA5IDUuNDIzNCAxNi4xMDQ0IDYuMDY3MTYgMTcuMzQzNCA3LjI0ODg2TDIwLjc2OTUgMy44MjI4MUMxOC42MDAxIDEuNzg1NyAxNS43MjA4IDAuNjY1NzI5IDEyLjc0MDEgMC43MDEwMDRDOC4yMDI5IDAuNzAxMDA0IDQuMDUzNzEgMy4yNTg0MiAyLjAxNjYgNy4zMTVMNi4wMDI2NCAxMC40MDU5QzYuOTUwNjQgNy41NjE5MyA5LjYwOTQ3IDUuNDQ5ODYgMTIuNzQwMSA1LjQ0OTg2WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiNFQTQzMzVcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzM3MjdfMTc3NTlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiBmaWxsPVwid2hpdGVcIiB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMC41IDAuNzAwMTk1KVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgPC9zdmc+PHNwYW4gY2xhc3M9XCJteC0yXCI+U2lnbiBpbiB3aXRoIEdvb2dsZTwvc3Bhbj4gXHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0b29sdGlwXCI+Q29taW5nIFNvb248L3NwYW4+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIHctMTAwIG10LTMgbm90LWFsbG93ZWQgY29taW5nLXNvb25cIiA+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgIHdpZHRoPVwiMjVcIiBoZWlnaHQ9XCIyNVwiIHZpZXdCb3g9XCIwIDAgMjUgMjVcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8zNzI3XzYxNDEpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTEuOTA1NyAxMi4xMDRIMC41VjAuNzAwMTk1SDExLjkwNTdWMTIuMTA0WlwiIGZpbGw9XCIjRjE1MTFCXCIgLz5cclxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yNC41MDA0IDEyLjEwNEgxMy4wOTM4VjAuNzAwMTk1SDI0LjQ5OTRWMTIuMTA0SDI0LjUwMDRaXCIgZmlsbD1cIiM4MENDMjhcIiAvPlxyXG4gICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTExLjkwNTcgMjQuNzAwMkgwLjVWMTMuMjk2NEgxMS45MDU3VjI0LjcwMDJaXCIgZmlsbD1cIiMwMEFERUZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTI0LjUwMDQgMjQuNzAwMkgxMy4wOTM4VjEzLjI5NjRIMjQuNDk5NFYyNC43MDAySDI0LjUwMDRaXCIgZmlsbD1cIiNGQkJDMDlcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzM3MjdfNjE0MVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIGZpbGw9XCJ3aGl0ZVwiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgwLjUgMC43MDAxOTUpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICA8L3N2Zz48c3BhbiBjbGFzcz1cIm14LTJcIj5TaWduIGluIHdpdGggTWljcm9zb2Z0PC9zcGFuPiAgPHNwYW4gY2xhc3M9XCJ0b29sdGlwXCI+Q29taW5nIFNvb248L3NwYW4+PC9idXR0b24+IC0tPlxyXG4gICAgICAgICAgPC9mb3JtPlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zIHRleHQtY2VudGVyIG1zLTc1cHhcIj48c3BhbiBjbGFzcz1cInNpZ251cC1kZWZhdWx0XCI+PC9zcGFuPkRvbuKAmXQgaGF2ZSBhbiBhY2NvdW50PzxzcGFuIGNsYXNzPVwic2lnbnVwLXByaW1hcnkgbXMtMiBjdXJzb3ItcG9pbnRlclwiIHJvdXRlckxpbms9XCIvYXV0aC9zaWdudXBcIj5TaWduIHVwPC9zcGFuPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgIGNsYXNzPVwiIGQtZmxleCBmbGV4LWNvbHVtbiBmbGV4LW1kLXJvdyBtYi0zICBmbGV4LW1kLXN0YWNrIHB5LTMgY29udGFpbmVyLWZsdWlkXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTkwMCBvcmRlci0yIG9yZGVyLW1kLTEgbXMtMTBcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lLTEgZm9vdGVyXCI+MjAyNDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiaHR0cHM6Ly90YW5nb2V5ZS5haVwiIGNsYXNzPVwiZm9vdGVyIHRleHQtZGVjb3JhdGlvbi11bmRlcmxpbmUgY3Vyc29yLXBvaW50ZXJcIj4mIzY0O1RhbmdvIElUIFNvbHV0aW9ucyBJbmRpYSBQdnQgTHRkPC9hPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8dWwgY2xhc3M9XCJtZW51IG1lbnUtZ3JheS02MDAgbWVudS1ob3Zlci1wcmltYXJ5IGZ3LXNlbWlib2xkIG9yZGVyLTEgbWUtN1wiPlxyXG4gICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm1lbnUtaXRlbSBmb290ZXJcIj48YSB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwibWFpbHRvOnN1cHBvcnRAdGFuZ290ZWNoLmNvLmluP3N1YmplY3Q9U3ViamVjdCUyMEhlcmUmYm9keT1Cb2R5JTIwSGVyZVwiIGNsYXNzPVwibWVudS1saW5rIHB4LTVcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTNcIiB2aWV3Qm94PVwiMCAwIDEyIDEzXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTEgMy43MDAyQzExIDMuMTUwMiAxMC41NSAyLjcwMDIgMTAgMi43MDAySDJDMS40NSAyLjcwMDIgMSAzLjE1MDIgMSAzLjcwMDJNMTEgMy43MDAyVjkuNzAwMkMxMSAxMC4yNTAyIDEwLjU1IDEwLjcwMDIgMTAgMTAuNzAwMkgyQzEuNDUgMTAuNzAwMiAxIDEwLjI1MDIgMSA5LjcwMDJWMy43MDAyTTExIDMuNzAwMkw2IDcuMjAwMkwxIDMuNzAwMlwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz48c3BhbiBjbGFzcz1cIm1zLTJcIj5zdXBwb3J0JiM2NDt0YW5nb3RlY2guY28uaW48L3NwYW4+PC9hPjwvbGk+XHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICA8L3VsPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgXHJcblxyXG5cclxuXHJcbiAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjxpbWcgc3JjPVwiLi9hc3NldHMvdGFuZ28vSWNvbnMvbG9naW4tYmFja2dyb3VuZDEuc3ZnXCIgYWx0PVwiSW1hZ2VcIiBjbGFzcz1cImJhY2tncm91bmQtaW1hZ2VcIj5cclxuPC9kaXY+Il19
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFuZ28tYXV0aC1sb2dpbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hdXRoL3NyYy9saWIvY29tcG9uZW50cy90YW5nby1hdXRoLWxvZ2luL3RhbmdvLWF1dGgtbG9naW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXV0aC9zcmMvbGliL2NvbXBvbmVudHMvdGFuZ28tYXV0aC1sb2dpbi90YW5nby1hdXRoLWxvZ2luLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFpQyxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDL0csT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpELE9BQU8sRUFBRSxPQUFPLEVBQVMsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7OztBQVdqRCxNQUFNLE9BQU8sdUJBQXVCO0lBcUJ4QjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQStCO0lBQy9CO0lBQW1DO0lBekI3QyxXQUFXLEdBQVE7UUFDakIsS0FBSyxFQUFFLGdCQUFnQjtRQUN2QixRQUFRLEVBQUUsTUFBTTtLQUNqQixDQUFDO0lBQ0YsUUFBUSxDQUFVO0lBQ2xCLFNBQVMsQ0FBUztJQUNsQixJQUFJLEdBQVksS0FBSyxDQUFDO0lBQ3RCLFNBQVMsQ0FBTTtJQUNmLFdBQVcsR0FBUTtRQUNqQixLQUFLLEVBQUUsSUFBSTtRQUNYLFFBQVEsRUFBRSxJQUFJO0tBQ2YsQ0FBQztJQUNGLFNBQVMsQ0FBVTtJQUNuQixRQUFRLEdBQVcsSUFBSSxDQUFDO0lBQ0MsYUFBYSxDQUFjO0lBQ3hCLGdCQUFnQixDQUFjO0lBQ2xELHFCQUFxQixDQUFNO0lBQ2xCLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBRTFDLFlBQ1UsTUFBYyxFQUNkLEtB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QUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDakQsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3ZCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3pCLENBQUM7d0dBeElVLHVCQUF1Qjs0RkFBdkIsdUJBQXVCLDZRQ2RwQyxzb1BBeUhNOzs0RkQzR08sdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHNCQUFzQjtzUkFtQlAsYUFBYTtzQkFBckMsU0FBUzt1QkFBQyxZQUFZO2dCQUNLLGdCQUFnQjtzQkFBM0MsU0FBUzt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgU3ViamVjdCwgZmlyc3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgU3dhbCBmcm9tICdzd2VldGFsZXJ0Mic7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlLCBQYWdlSW5mb1NlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJ1xyXG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktc2hhcmVkJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImxpYi10YW5nby1hdXRoLWxvZ2luXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi90YW5nby1hdXRoLWxvZ2luLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmw6IFwiLi90YW5nby1hdXRoLWxvZ2luLmNvbXBvbmVudC5zY3NzXCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYW5nb0F1dGhMb2dpbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBkZWZhdWx0QXV0aDogYW55ID0ge1xyXG4gICAgZW1haWw6IFwiYWRtaW5AZGVtby5jb21cIixcclxuICAgIHBhc3N3b3JkOiBcImRlbW9cIixcclxuICB9O1xyXG4gIGhhc0Vycm9yOiBib29sZWFuO1xyXG4gIHJldHVyblVybDogc3RyaW5nO1xyXG4gIHNob3c6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBsb2dpbkZvcm06IGFueTtcclxuICBjcmVkZW50aWFsczogYW55ID0ge1xyXG4gICAgZW1haWw6IG51bGwsXHJcbiAgICBwYXNzd29yZDogbnVsbCxcclxuICB9O1xyXG4gIGlzTG9hZGluZzogYm9vbGVhbjtcclxuICBpc2xvYWRlciA6Ym9vbGVhbiA9dHJ1ZTtcclxuICBAVmlld0NoaWxkKCdlbWFpbElucHV0JykgZW1haWxJbnB1dFJlZiE6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgncGFzc3dvcmRJbnB1dCcpIHBhc3N3b3JkSW5wdXRSZWYhOiBFbGVtZW50UmVmO1xyXG4gIHByaXZhdGUgYXV0aGxvY2FsU3RvcmFnZVRva2VuOiBhbnk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIHNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBnczogR2xvYmFsU3RhdGVTZXJ2aWNlLHByaXZhdGUgY2QgOkNoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSB0b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZSxwcml2YXRlIHBhZ2VJbmZvOlBhZ2VJbmZvU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5ncy5lbnZpcm9ubWVudC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChlbnYpID0+IHtcclxuICAgICAgaWYgKGVudikge1xyXG4gICAgICAgIHRoaXMuYXV0aGxvY2FsU3RvcmFnZVRva2VuID0gYCR7ZW52LmFwcFZlcnNpb259LSR7ZW52LlVTRVJEQVRBX0tFWX1gO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGlmICh0aGlzLnNlcnZpY2UuY3VycmVudFVzZXJWYWx1ZSkge1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXCIvXCJdKTtcclxuICAgIH1cclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmluaXRGb3JtKCk7XHJcbiAgICAvLyB0aGlzLnVzZXJQcm9maWxlKCk7XHJcbiAgICAvLyBnZXQgcmV0dXJuIHVybCBmcm9tIHJvdXRlIHBhcmFtZXRlcnMgb3IgZGVmYXVsdCB0byAnLydcclxuICAgIGlmKHRoaXMuYXV0aGxvY2FsU3RvcmFnZVRva2VuKSB7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL21hbmFnZSddKTtcclxuICAgIH1cclxuICAgIHRoaXMucmV0dXJuVXJsID1cclxuICAgICAgdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtc1tcInJldHVyblVybFwiLnRvU3RyaW5nKCldIHx8IFwiL1wiO1xyXG4gICAgICBpZiAodGhpcy5lbWFpbElucHV0UmVmPy5uYXRpdmVFbGVtZW50LnZhbHVlIHx8IHRoaXMucGFzc3dvcmRJbnB1dFJlZj8ubmF0aXZlRWxlbWVudC52YWx1ZSkge1xyXG4gICAgICAgIC8vIENsZWFyIHRoZSBmaWVsZHMgaWYgYXV0b2ZpbGxlZFxyXG4gICAgICAgIHRoaXMuZW1haWxJbnB1dFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICAgICAgdGhpcy5wYXNzd29yZElucHV0UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnBhZ2VJbmZvLnNldFRpdGxlKCdMb2dpbicpXHJcbiAgfVxyXG4gIFxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgaW5pdEZvcm0oKSB7XHJcbiAgICB0aGlzLmlzbG9hZGVyID0gZmFsc2U7XHJcbiAgICB0aGlzLmxvZ2luRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICBlbWFpbDogW1xyXG4gICAgICAgIHRoaXMuZGVmYXVsdEF1dGguZW1haWwsXHJcbiAgICAgICAgVmFsaWRhdG9ycy5jb21wb3NlKFtcclxuICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXHJcbiAgICAgICAgICBWYWxpZGF0b3JzLmVtYWlsLFxyXG4gICAgICAgICAgVmFsaWRhdG9ycy5taW5MZW5ndGgoMyksXHJcbiAgICAgICAgICBWYWxpZGF0b3JzLm1heExlbmd0aCgzMjApLFxyXG4gICAgICAgIF0pLFxyXG4gICAgICBdLFxyXG4gICAgICBwYXNzd29yZDogW1xyXG4gICAgICAgIHRoaXMuZGVmYXVsdEF1dGgucGFzc3dvcmQsXHJcbiAgICAgICAgVmFsaWRhdG9ycy5jb21wb3NlKFtcclxuICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXHJcbiAgICAgICAgICBWYWxpZGF0b3JzLm1pbkxlbmd0aCgzKSxcclxuICAgICAgICAgIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDEwMCksXHJcbiAgICAgICAgXSksXHJcbiAgICAgIF0sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgb25Mb2dpbigpIHtcclxuICAgIC8vIGxvY2FsU3RvcmFnZS5jbGVhcigpO1xyXG4gICAgdGhpcy5oYXNFcnJvciA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5zaG93ID0gZmFsc2U7XHJcbiAgICB0aGlzLnNlcnZpY2UubG9naW4odGhpcy5jcmVkZW50aWFscykucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcclxuICAgIGlmKHJlcyAmJiByZXM/LmNvZGUgPT09IDIwMCl7XHJcbiAgICAgICAgbGV0IGxvZ2luVG9rZW46IGFueSA9XHJcbiAgICAgICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmF1dGhsb2NhbFN0b3JhZ2VUb2tlbik7XHJcbiAgICAgICAgaWYgKGxvZ2luVG9rZW4pIHtcclxuICAgICAgICAgIGxvZ2luVG9rZW4gPSBKU09OLnBhcnNlKGxvZ2luVG9rZW4pO1xyXG4gICAgICAgIH1cclxuICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFxyXG4gICAgICAgICAgICB0aGlzLmF1dGhsb2NhbFN0b3JhZ2VUb2tlbixcclxuICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkocmVzPy5kYXRhPy5yZXN1bHQpXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgdGhpcy51c2VyUHJvZmlsZSgpO1xyXG4gICAgICAgIH0gIGVsc2UgaWYgKCFyZXMgfHwgcmVzPy5jb2RlID09IDQwMSkge1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5nZXRFcnJvclRvYXN0KCdFbnRlciBWYWxpZCBDcmVkZW50aWFscycpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZ2V0RXJyb3JUb2FzdCgnRW50ZXIgVmFsaWQgQ3JlZGVudGlhbHMnKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICB0aGlzLmhhc0Vycm9yID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5nZXRFcnJvclRvYXN0KGVycj8uZXJyb3I/LmVycm9yID8gZXJyPy5lcnJvcj8uZXJyb3IgOidUaGUgdXNlciBoYXMgYmVlbiB1bmF1dGhvcml6ZWQgdG8gbG9naW4nKTtcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdXNlclByb2ZpbGUoKSB7XHJcbiAgICB0aGlzLnNlcnZpY2UudXNlclByb2ZpbGVEZXQoKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlcykgPT4ge1xyXG4gICAgICAgIGlmIChyZXMmJiByZXMuY29kZSA9PTIwMCkge1xyXG4gICAgICAgICAgdGhpcy5ncy51c2VyQWNjZXNzLm5leHQocmVzLmRhdGE/LnBlcm1pc3Npb24pXHJcbiAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKVxyXG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbWFuYWdlJ10pO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoIXJlcyB8fCByZXMuY29kZSA9PSA0MDEpIHtcclxuICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmdldEVycm9yVG9hc3QoJ0VudGVyIFZhbGlkIENyZWRlbnRpYWxzJyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmdldEVycm9yVG9hc3QoJ0VudGVyIFZhbGlkIENyZWRlbnRpYWxzJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgIHRoaXMuaGFzRXJyb3IgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmdldEVycm9yVG9hc3QoZXJyLmVycm9yLmVycm9yKTtcclxuICAgICAgICBsb2NhbFN0b3JhZ2UuY2xlYXIoKTtcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2hvd1Bhc3N3b3JkKCkge1xyXG4gICAgdGhpcy5zaG93ID0gIXRoaXMuc2hvdztcclxuICB9XHJcbn1cclxuIiwiPCEtLSA8ZGl2IGNsYXNzPVwicm93IGp1c3RpZnktY29udGVudC1jZW50ZXIgbG9nb3RleHQgcHgtMFwiPlxyXG4gICAgPGltZyAgc3JjPVwiLi9hc3NldHMvdGFuZ28vSWNvbnMvbG9naW4tYmFja2dyb3VuZC5zdmdcIiBhbHQ9XCJcIj5cclxuICA8L2Rpdj4gLS0+XHJcblxyXG48IS0tIFxyXG48YnV0dG9uIChjbGljayk9XCJvbkNsaWNrKClcIj5Mb2cgSW48L2J1dHRvbj4gLS0+XHJcblxyXG48ZGl2ICpuZ0lmPVwiaXNsb2FkZXJcIiBjbGFzcz1cImNvbnRhaW5lciBtdC0yMFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBtdC0yMFwiPlxyXG4gICAgPGltZyBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9mYXZpY29uLnBuZ1wiIGFsdD1cIlRhbmdvIGxvZ29cIiAvPlxyXG4gICAgPGRpdj5Mb2FkaW5nIC4uLjwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgKm5nSWY9XCIhaXNsb2FkZXJcIiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG4gIDwhLS0gc3R5bGU9XCJwYWRkaW5nOiA5NnB4IDE0MnB4IDk2cHggMTQycHg7XCIgLS0+XHJcbiAgPGRpdiBjbGFzcz1cInJvdyBwb3NpdGlvbi1hYnNvbHV0ZVwiID5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IHBlLTEwIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBcIj5cclxuICAgICAgICA8aW1nIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL0xIUy5zdmdcIiBhbHQ9XCJJbWFnZVwiIGNsYXNzPVwiaW1nLWZsdWlkIHctMTAwXCI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgcHgtMTAgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+IFxyXG4gIDxkaXYgY2xhc3M9XCJjYXJkIGNhcmQtZmx1c2ggdy1sZy02MDBweCBtcy0yMCBweS0zXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJsb2dpbi1mb3JtIGxvZ2luLXNpZ25pblwiPlxyXG4gICAgXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1iZXR3ZWVuIHRpdGxlLXBhZGRpbmdcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXN0YXJ0IG15LTEwIG1zLTEwXCI+XHJcbiAgICAgICAgICAgIDxoMyBjbGFzcz1cImxvZ2luLXRpdGxlXCI+TG9nIGluPC9oMz5cclxuICAgICAgICAgICAgPHAgY2xhc3M9XCJsb2dpbi1zdWItdGl0bGVcIj5XZWxjb21lIGJhY2shIFBsZWFzZSBlbnRlciB5b3VyIGRldGFpbHMuPC9wPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8Zm9ybSAjbG9naW5Gb3JtPVwibmdGb3JtXCIgY2xhc3M9XCJ3LTEwMCB0aXRsZS1wYWRkaW5nXCIgbm92YWxpZGF0ZT1cIm5vdmFsaWRhdGVcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTUgXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIkVtYWlsXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+RW1haWw8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiZW1haWxcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGlkPVwiRW1haWxcIiBuYW1lPVwiRW1haWxcIiAgYXV0b2NvbXBsZXRlPVwib2ZmXCIgcmVxdWlyZWQgWyhuZ01vZGVsKV09XCJjcmVkZW50aWFscy5lbWFpbFwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiICNlbWFpbElucHV0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTUgXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIlBhc3N3b3JkXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+UGFzc3dvcmQ8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZSBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGlucHV0ICBjbGFzcz1cImZvcm0tY29udHJvbFwiIGlkPVwiUGFzc3dvcmRcIiBbdHlwZV09XCJzaG93ID8gJ3RleHQnIDogJ3Bhc3N3b3JkJ1wiXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJcIiBuYW1lPVwicGFzc3dvcmRcIiBhdXRvY29tcGxldGU9XCJvZmZcIiByZXF1aXJlZCAjcGFzc3dvcmRJbnB1dFxyXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY3JlZGVudGlhbHMucGFzc3dvcmRcIj5cclxuICAgICAgICAgICAgICA8c3BhbiAoY2xpY2spPVwic2hvd1Bhc3N3b3JkKClcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4taWNvbiBwb3NpdGlvbi1hYnNvbHV0ZSB0cmFuc2xhdGUtbWlkZGxlIHRvcC01MCBlbmQtMCBtZS1uMlwiXHJcbiAgICAgICAgICAgICAgZGF0YS1rdC1wYXNzd29yZC1tZXRlci1jb250cm9sPVwidmlzaWJpbGl0eVwiPlxyXG4gICAgICAgICAgICAgIDxpICpuZ0lmPVwic2hvd1wiIGNsYXNzPVwiZmEgZmEtZXllXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgIDxpICpuZ0lmPVwiIXNob3dcIiBjbGFzcz1cImZhIGZhLWV5ZS1zbGFzaFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cImhhc0Vycm9yXCIgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiIHN0eWxlPVwiY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcIj5cclxuICAgICAgICAgICAgRW1haWwgSWQgLyBNb2JpbGUgTnVtYmVyIG9yIFBhc3N3b3JkIGlzIGluY29ycmVjdFxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuPGRpdiBjbGFzcz1cInRleHQtY2VudGVyXCI+XHJcbiAgPGg2IGNsYXNzPVwiZm9yZ290IGN1cnNvci1wb2ludGVyXCIgcm91dGVyTGluaz1cIi9hdXRoL2ZvcmdvdC1wYXNzd29yZFwiPkZvcmdvdCBQYXNzd29yZDwvaDY+XHJcblxyXG48L2Rpdj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSB3LTEwMCBtdC0zXCIgW2Rpc2FibGVkXT1cIiFsb2dpbkZvcm0udmFsaWQgfHwgKCFjcmVkZW50aWFscy5lbWFpbCB8fCAhY3JlZGVudGlhbHMucGFzc3dvcmQpXCIgKGNsaWNrKT1cIm9uTG9naW4oKVwiPlNpZ24gaW48L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZSB3LTEwMCBtdC0zIG5vdC1hbGxvd2VkIGNvbWluZy1zb29uXCIgPlxyXG4gICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICB3aWR0aD1cIjI1XCIgaGVpZ2h0PVwiMjVcIiB2aWV3Qm94PVwiMCAwIDI1IDI1XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMzcyN18xNzc1OSlcIj5cclxuICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICBkPVwiTTI0LjI2NjMgMTIuOTc2N0MyNC4yNjYzIDEyLjE2MSAyNC4yMDAxIDExLjM0MDggMjQuMDU5IDEwLjUzODNIMTIuNzQwMlYxNS4xNTkzSDE5LjIyMkMxOC45NTMgMTYuNjQ5NyAxOC4wODg4IDE3Ljk2ODEgMTYuODIzMyAxOC44MDU4VjIxLjgwNDJIMjAuNjkwM0MyMi45NjExIDE5LjcxNDIgMjQuMjY2MyAxNi42Mjc2IDI0LjI2NjMgMTIuOTc2N1pcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNDI4NUY0XCIgLz5cclxuICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICBkPVwiTTEyLjc0MDEgMjQuNzAxQzE1Ljk3NjYgMjQuNzAxIDE4LjcwNTkgMjMuNjM4NCAyMC42OTQ1IDIxLjgwNDFMMTYuODI3NiAxOC44MDU3QzE1Ljc1MTcgMTkuNTM3NyAxNC4zNjI3IDE5Ljk1MjIgMTIuNzQ0NSAxOS45NTIyQzkuNjEzODggMTkuOTUyMiA2Ljk1OTQ2IDE3Ljg0MDEgNi4wMDcwNSAxNS4wMDA1SDIuMDE2NlYxOC4wOTE0QzQuMDUzNzEgMjIuMTQzNiA4LjIwMjkgMjQuNzAxIDEyLjc0MDEgMjQuNzAxWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiMzNEE4NTNcIiAvPlxyXG4gICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNNi4wMDI3NyAxNS4wMDA0QzUuNTAwMTEgMTMuNTEwMSA1LjUwMDExIDExLjg5NjIgNi4wMDI3NyAxMC40MDU5VjcuMzE0OTRIMi4wMTY3NEMwLjMxNDczNCAxMC43MDU3IDAuMzE0NzM0IDE0LjcwMDYgMi4wMTY3NCAxOC4wOTEzTDYuMDAyNzcgMTUuMDAwNFpcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjRkJCQzA0XCIgLz5cclxuICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICBkPVwiTTEyLjc0MDEgNS40NDk4NkMxNC40NTA5IDUuNDIzNCAxNi4xMDQ0IDYuMDY3MTYgMTcuMzQzNCA3LjI0ODg2TDIwLjc2OTUgMy44MjI4MUMxOC42MDAxIDEuNzg1NyAxNS43MjA4IDAuNjY1NzI5IDEyLjc0MDEgMC43MDEwMDRDOC4yMDI5IDAuNzAxMDA0IDQuMDUzNzEgMy4yNTg0MiAyLjAxNjYgNy4zMTVMNi4wMDI2NCAxMC40MDU5QzYuOTUwNjQgNy41NjE5MyA5LjYwOTQ3IDUuNDQ5ODYgMTIuNzQwMSA1LjQ0OTg2WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiNFQTQzMzVcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzM3MjdfMTc3NTlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiBmaWxsPVwid2hpdGVcIiB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMC41IDAuNzAwMTk1KVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgPC9zdmc+PHNwYW4gY2xhc3M9XCJteC0yXCI+U2lnbiBpbiB3aXRoIEdvb2dsZTwvc3Bhbj4gXHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0b29sdGlwXCI+Q29taW5nIFNvb248L3NwYW4+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIHctMTAwIG10LTMgbm90LWFsbG93ZWQgY29taW5nLXNvb25cIiA+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgIHdpZHRoPVwiMjVcIiBoZWlnaHQ9XCIyNVwiIHZpZXdCb3g9XCIwIDAgMjUgMjVcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8zNzI3XzYxNDEpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTEuOTA1NyAxMi4xMDRIMC41VjAuNzAwMTk1SDExLjkwNTdWMTIuMTA0WlwiIGZpbGw9XCIjRjE1MTFCXCIgLz5cclxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yNC41MDA0IDEyLjEwNEgxMy4wOTM4VjAuNzAwMTk1SDI0LjQ5OTRWMTIuMTA0SDI0LjUwMDRaXCIgZmlsbD1cIiM4MENDMjhcIiAvPlxyXG4gICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTExLjkwNTcgMjQuNzAwMkgwLjVWMTMuMjk2NEgxMS45MDU3VjI0LjcwMDJaXCIgZmlsbD1cIiMwMEFERUZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTI0LjUwMDQgMjQuNzAwMkgxMy4wOTM4VjEzLjI5NjRIMjQuNDk5NFYyNC43MDAySDI0LjUwMDRaXCIgZmlsbD1cIiNGQkJDMDlcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzM3MjdfNjE0MVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIGZpbGw9XCJ3aGl0ZVwiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgwLjUgMC43MDAxOTUpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICA8L3N2Zz48c3BhbiBjbGFzcz1cIm14LTJcIj5TaWduIGluIHdpdGggTWljcm9zb2Z0PC9zcGFuPiAgPHNwYW4gY2xhc3M9XCJ0b29sdGlwXCI+Q29taW5nIFNvb248L3NwYW4+PC9idXR0b24+IC0tPlxyXG4gICAgICAgICAgPC9mb3JtPlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zIHRleHQtY2VudGVyIG1zLTc1cHhcIj48c3BhbiBjbGFzcz1cInNpZ251cC1kZWZhdWx0XCI+PC9zcGFuPkRvbuKAmXQgaGF2ZSBhbiBhY2NvdW50PzxzcGFuIGNsYXNzPVwic2lnbnVwLXByaW1hcnkgbXMtMiBjdXJzb3ItcG9pbnRlclwiIHJvdXRlckxpbms9XCIvYXV0aC9zaWdudXBcIj5TaWduIHVwPC9zcGFuPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgIGNsYXNzPVwiIGQtZmxleCBmbGV4LWNvbHVtbiBmbGV4LW1kLXJvdyBtYi0zICBmbGV4LW1kLXN0YWNrIHB5LTMgY29udGFpbmVyLWZsdWlkXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTkwMCBvcmRlci0yIG9yZGVyLW1kLTEgbXMtMTBcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lLTEgZm9vdGVyXCI+MjAyNDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiaHR0cHM6Ly90YW5nb2V5ZS5haVwiIGNsYXNzPVwiZm9vdGVyIHRleHQtZGVjb3JhdGlvbi11bmRlcmxpbmUgY3Vyc29yLXBvaW50ZXJcIj4mIzY0O1RhbmdvIElUIFNvbHV0aW9ucyBJbmRpYSBQdnQgTHRkPC9hPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8dWwgY2xhc3M9XCJtZW51IG1lbnUtZ3JheS02MDAgbWVudS1ob3Zlci1wcmltYXJ5IGZ3LXNlbWlib2xkIG9yZGVyLTEgbWUtN1wiPlxyXG4gICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm1lbnUtaXRlbSBmb290ZXJcIj48YSB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwibWFpbHRvOnN1cHBvcnRAdGFuZ290ZWNoLmNvLmluP3N1YmplY3Q9U3ViamVjdCUyMEhlcmUmYm9keT1Cb2R5JTIwSGVyZVwiIGNsYXNzPVwibWVudS1saW5rIHB4LTVcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTNcIiB2aWV3Qm94PVwiMCAwIDEyIDEzXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTEgMy43MDAyQzExIDMuMTUwMiAxMC41NSAyLjcwMDIgMTAgMi43MDAySDJDMS40NSAyLjcwMDIgMSAzLjE1MDIgMSAzLjcwMDJNMTEgMy43MDAyVjkuNzAwMkMxMSAxMC4yNTAyIDEwLjU1IDEwLjcwMDIgMTAgMTAuNzAwMkgyQzEuNDUgMTAuNzAwMiAxIDEwLjI1MDIgMSA5LjcwMDJWMy43MDAyTTExIDMuNzAwMkw2IDcuMjAwMkwxIDMuNzAwMlwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz48c3BhbiBjbGFzcz1cIm1zLTJcIj5zdXBwb3J0JiM2NDt0YW5nb3RlY2guY28uaW48L3NwYW4+PC9hPjwvbGk+XHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICA8L3VsPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgXHJcblxyXG5cclxuXHJcbiAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjxpbWcgc3JjPVwiLi9hc3NldHMvdGFuZ28vSWNvbnMvbG9naW4tYmFja2dyb3VuZDEuc3ZnXCIgYWx0PVwiSW1hZ2VcIiBjbGFzcz1cImJhY2tncm91bmQtaW1hZ2VcIj5cclxuPC9kaXY+Il19
@@ -22,13 +22,13 @@ export class CalendlyModalComponent {
22
22
  this.modalRef.close({ type: 'scheduled' });
23
23
  }
24
24
  }
25
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: CalendlyModalComponent, deps: [{ token: i1.NgbActiveModal }], target: i0.ɵɵFactoryTarget.Component });
26
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: CalendlyModalComponent, selector: "lib-calendly-modal", inputs: { userData: "userData" }, ngImport: i0, template: "<div class=\"calendly-inline-widget\"></div>\r\n", styles: [".calendly-inline-widget{height:80dvh}\n"] });
25
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CalendlyModalComponent, deps: [{ token: i1.NgbActiveModal }], target: i0.ɵɵFactoryTarget.Component });
26
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: CalendlyModalComponent, selector: "lib-calendly-modal", inputs: { userData: "userData" }, ngImport: i0, template: "<div class=\"calendly-inline-widget\"></div>\r\n", styles: [".calendly-inline-widget{height:80dvh}\n"] });
27
27
  }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: CalendlyModalComponent, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CalendlyModalComponent, decorators: [{
29
29
  type: Component,
30
30
  args: [{ selector: 'lib-calendly-modal', template: "<div class=\"calendly-inline-widget\"></div>\r\n", styles: [".calendly-inline-widget{height:80dvh}\n"] }]
31
31
  }], ctorParameters: () => [{ type: i1.NgbActiveModal }], propDecorators: { userData: [{
32
32
  type: Input
33
33
  }] } });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kbHktbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXV0aC9zcmMvbGliL2NvbXBvbmVudHMvdGFuZ28tYXV0aC1zaWdudXAvc3RlcC9jYWxlbmRseS1tb2RhbC9jYWxlbmRseS1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hdXRoL3NyYy9saWIvY29tcG9uZW50cy90YW5nby1hdXRoLXNpZ251cC9zdGVwL2NhbGVuZGx5LW1vZGFsL2NhbGVuZGx5LW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUE2QixNQUFNLGVBQWUsQ0FBQzs7O0FBVTVFLE1BQU0sT0FBTyxzQkFBc0I7SUFLYjtJQUhYLFFBQVEsQ0FBSztJQUd0QixZQUFvQixRQUF1QjtRQUF2QixhQUFRLEdBQVIsUUFBUSxDQUFlO0lBQUUsQ0FBQztJQUU5QyxRQUFRO1FBQ04sTUFBTSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBQ2xFLE1BQU0sQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUM7WUFDL0IsR0FBRyxFQUFFLDJEQUEyRCxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksVUFBVSxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRTtZQUNuSCxhQUFhLEVBQUUsUUFBUSxDQUFDLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBQztTQUNqRSxDQUFDLENBQUM7SUFFTCxDQUFDO0lBRUQsV0FBVztRQUNULE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQW1CO1FBQ2hDLElBQUcsS0FBSyxFQUFFLE1BQU0sS0FBSyxzQkFBc0IsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSywwQkFBMEIsRUFBQztZQUMzRixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFDLElBQUksRUFBQyxXQUFXLEVBQUMsQ0FBQyxDQUFBO1NBQzFDO0lBQ0gsQ0FBQzt1R0F4QlUsc0JBQXNCOzJGQUF0QixzQkFBc0IsNEZDVm5DLGtEQUNBOzsyRkRTYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0Usb0JBQW9CO21GQU1yQixRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgTmdab25lLCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ2JBY3RpdmVNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuZGVjbGFyZSBnbG9iYWwgeyBpbnRlcmZhY2UgV2luZG93IHsgQ2FsZW5kbHk6IGFueTsgfSB9IFxyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWNhbGVuZGx5LW1vZGFsJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kbHktbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9jYWxlbmRseS1tb2RhbC5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIENhbGVuZGx5TW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIEBJbnB1dCgpIHVzZXJEYXRhOiBhbnlcclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbW9kYWxSZWY6TmdiQWN0aXZlTW9kYWwpe31cclxuICBcclxuICBuZ09uSW5pdCgpOiB2b2lkIHsgICAgXHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIHRoaXMubWVzc2FnZUhhbmRsZXIuYmluZCh0aGlzKSlcclxuICAgIHdpbmRvdy5DYWxlbmRseS5pbml0SW5saW5lV2lkZ2V0KHtcclxuICAgICAgdXJsOiBgaHR0cHM6Ly9jYWxlbmRseS5jb20vaGVsbG8tdGFuZ28vY29ubmVjdF90YW5nb19leWU/bmFtZT0ke3RoaXMudXNlckRhdGE/Lm5hbWV9JmVtYWlsPSR7dGhpcy51c2VyRGF0YT8uZW1haWx9YCxcclxuICAgICAgcGFyZW50RWxlbWVudDogZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmNhbGVuZGx5LWlubGluZS13aWRnZXQnKSxcclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCB0aGlzLm1lc3NhZ2VIYW5kbGVyLmJpbmQodGhpcykpO1xyXG4gIH1cclxuXHJcbiAgbWVzc2FnZUhhbmRsZXIoZXZlbnQ6IE1lc3NhZ2VFdmVudCk6IHZvaWQge1xyXG4gICAgaWYoZXZlbnQ/Lm9yaWdpbiA9PT0gJ2h0dHBzOi8vY2FsZW5kbHkuY29tJyAmJiBldmVudC5kYXRhLmV2ZW50ID09PSBcImNhbGVuZGx5LmV2ZW50X3NjaGVkdWxlZFwiKXtcclxuICAgICAgICB0aGlzLm1vZGFsUmVmLmNsb3NlKHt0eXBlOidzY2hlZHVsZWQnfSlcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNhbGVuZGx5LWlubGluZS13aWRnZXRcIj48L2Rpdj5cclxuIl19
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kbHktbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXV0aC9zcmMvbGliL2NvbXBvbmVudHMvdGFuZ28tYXV0aC1zaWdudXAvc3RlcC9jYWxlbmRseS1tb2RhbC9jYWxlbmRseS1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hdXRoL3NyYy9saWIvY29tcG9uZW50cy90YW5nby1hdXRoLXNpZ251cC9zdGVwL2NhbGVuZGx5LW1vZGFsL2NhbGVuZGx5LW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUE2QixNQUFNLGVBQWUsQ0FBQzs7O0FBVTVFLE1BQU0sT0FBTyxzQkFBc0I7SUFLYjtJQUhYLFFBQVEsQ0FBSztJQUd0QixZQUFvQixRQUF1QjtRQUF2QixhQUFRLEdBQVIsUUFBUSxDQUFlO0lBQUUsQ0FBQztJQUU5QyxRQUFRO1FBQ04sTUFBTSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBQ2xFLE1BQU0sQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUM7WUFDL0IsR0FBRyxFQUFFLDJEQUEyRCxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksVUFBVSxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRTtZQUNuSCxhQUFhLEVBQUUsUUFBUSxDQUFDLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBQztTQUNqRSxDQUFDLENBQUM7SUFFTCxDQUFDO0lBRUQsV0FBVztRQUNULE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQW1CO1FBQ2hDLElBQUcsS0FBSyxFQUFFLE1BQU0sS0FBSyxzQkFBc0IsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSywwQkFBMEIsRUFBQztZQUMzRixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFDLElBQUksRUFBQyxXQUFXLEVBQUMsQ0FBQyxDQUFBO1NBQzFDO0lBQ0gsQ0FBQzt3R0F4QlUsc0JBQXNCOzRGQUF0QixzQkFBc0IsNEZDVm5DLGtEQUNBOzs0RkRTYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0Usb0JBQW9CO21GQU1yQixRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgTmdab25lLCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ2JBY3RpdmVNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuZGVjbGFyZSBnbG9iYWwgeyBpbnRlcmZhY2UgV2luZG93IHsgQ2FsZW5kbHk6IGFueTsgfSB9IFxyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWNhbGVuZGx5LW1vZGFsJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kbHktbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9jYWxlbmRseS1tb2RhbC5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIENhbGVuZGx5TW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIEBJbnB1dCgpIHVzZXJEYXRhOiBhbnlcclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbW9kYWxSZWY6TmdiQWN0aXZlTW9kYWwpe31cclxuICBcclxuICBuZ09uSW5pdCgpOiB2b2lkIHsgICAgXHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIHRoaXMubWVzc2FnZUhhbmRsZXIuYmluZCh0aGlzKSlcclxuICAgIHdpbmRvdy5DYWxlbmRseS5pbml0SW5saW5lV2lkZ2V0KHtcclxuICAgICAgdXJsOiBgaHR0cHM6Ly9jYWxlbmRseS5jb20vaGVsbG8tdGFuZ28vY29ubmVjdF90YW5nb19leWU/bmFtZT0ke3RoaXMudXNlckRhdGE/Lm5hbWV9JmVtYWlsPSR7dGhpcy51c2VyRGF0YT8uZW1haWx9YCxcclxuICAgICAgcGFyZW50RWxlbWVudDogZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmNhbGVuZGx5LWlubGluZS13aWRnZXQnKSxcclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCB0aGlzLm1lc3NhZ2VIYW5kbGVyLmJpbmQodGhpcykpO1xyXG4gIH1cclxuXHJcbiAgbWVzc2FnZUhhbmRsZXIoZXZlbnQ6IE1lc3NhZ2VFdmVudCk6IHZvaWQge1xyXG4gICAgaWYoZXZlbnQ/Lm9yaWdpbiA9PT0gJ2h0dHBzOi8vY2FsZW5kbHkuY29tJyAmJiBldmVudC5kYXRhLmV2ZW50ID09PSBcImNhbGVuZGx5LmV2ZW50X3NjaGVkdWxlZFwiKXtcclxuICAgICAgICB0aGlzLm1vZGFsUmVmLmNsb3NlKHt0eXBlOidzY2hlZHVsZWQnfSlcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNhbGVuZGx5LWlubGluZS13aWRnZXRcIj48L2Rpdj5cclxuIl19
@@ -32,10 +32,10 @@ export class ModalContentComponent {
32
32
  passBack() {
33
33
  this.activeModal.close(this.user);
34
34
  }
35
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ModalContentComponent, deps: [{ token: i1.NgbActiveModal }], target: i0.ɵɵFactoryTarget.Component });
36
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: ModalContentComponent, selector: "lib-modal-content", inputs: { user: "user", width: "width", height: "height" }, ngImport: i0, template: "<div >\r\n<div class=\"modal-header border-bottom-0\">\r\n <!-- <h4 class=\"modal-title\" id=\"modal-basic-title\">Simple modal</h4> -->\r\n <div class=\"col-12 text-end \">\r\n <div class=\"btn btn-sm btn-icon btn-active-color-primary\" data-bs-dismiss=\"modal\">\r\n <i (click)=\"activeModal.dismiss('Cross click')\" class=\"ki-duotone ki-cross fs-1\"><span class=\"path1\"></span><span\r\n class=\"path2\"></span></i>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"modal-body pt-0\">\r\n <div class=\"row mx-5\">\r\n <div class=\"col-lg-6 col-md-6 col-sm-6 md-offset-3\">\r\n <div class=\"align-items-center border-0 mt-4\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"main fs-lg-1 text-gray-800 mb-2 \">Product Offerings</span>\r\n </h3>\r\n </div>\r\n <div class=\"\">\r\n <div class=\"d-flex align-items-center collapsible py-3 toggle mb-0\" data-bs-toggle=\"collapse\"\r\n data-bs-target=\"#kt_job_4_1\">\r\n <div class=\"btn btn-sm btn-icon mw-20px btn-active-color-primary me-5\"\r\n (click)=\"expandPlan('traffic')\">\r\n <span class=\"svg-icon svg-icon-primary svg-icon-1\" *ngIf=\"expandDetails.traffic\"><svg\r\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"6.0104\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n <span class=\"svg-icon svg-icon-1\" *ngIf=\"!expandDetails.traffic\"><svg width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"10.8891\" y=\"17.8033\" width=\"12\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(-90 10.8891 17.8033)\" fill=\"currentColor\"></rect>\r\n <rect x=\"6.01041\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n </div>\r\n <h4 class=\"text-gray-700 fw-bold cursor-pointer mb-0\">\r\n Tango Traffic\r\n </h4>\r\n </div>\r\n <div id=\"kt_job_4_1\" class=\"collapse show fs-6 ms-1\" *ngIf=\"expandDetails.traffic\">\r\n <div class=\"mb-4 text-gray-700 sub\">\r\n <ul>\r\n <li>Footfall Analysis.</li>\r\n <li>Bounced vs Engager Analysis</li>\r\n <li>Missed Opportunity Vs Conversion Rate.</li>\r\n <li>Footfall Image Directory by the hour.</li>\r\n <li>Infra tracking ticketing system.</li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n <div class=\"m-0\">\r\n <div class=\"d-flex align-items-center collapsible py-3 toggle mb-0\" data-bs-toggle=\"collapse\"\r\n data-bs-target=\"#kt_job_4_1\">\r\n <div class=\"btn btn-sm btn-icon mw-20px btn-active-color-primary me-5\"\r\n (click)=\"expandPlan('zone')\">\r\n <span class=\"svg-icon svg-icon-primary svg-icon-1\" *ngIf=\"expandDetails.zone\"><svg\r\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"6.0104\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n <span class=\"svg-icon svg-icon-1\" *ngIf=\"!expandDetails.zone\"><svg width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"10.8891\" y=\"17.8033\" width=\"12\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(-90 10.8891 17.8033)\" fill=\"currentColor\"></rect>\r\n <rect x=\"6.01041\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n </div>\r\n <h4 class=\"text-gray-700 fw-bold cursor-pointer mb-0\">\r\n Tango Zone\r\n </h4>\r\n </div>\r\n <div id=\"kt_job_4_1\" class=\"collapse show fs-6 ms-1\" *ngIf=\"expandDetails.zone\">\r\n <div class=\"mb-4 text-gray-700 sub\">\r\n <ul>\r\n <li>Heatmap Analysis.</li>\r\n <li>Concentration % of each of your zone.</li>\r\n <li>Customer trajectory during their visit to your store.</li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n <!-- <div class=\"m-0\">\r\n <div class=\"d-flex align-items-center collapsible py-3 toggle mb-0\" data-bs-toggle=\"collapse\"\r\n data-bs-target=\"#kt_job_4_1\">\r\n <div class=\"btn btn-sm btn-icon mw-20px btn-active-color-primary me-5\"\r\n (click)=\"expandPlan('revops')\">\r\n <span class=\"svg-icon svg-icon-primary svg-icon-1\" *ngIf=\"expandDetails.revops\"><svg\r\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"6.0104\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n <span class=\"svg-icon svg-icon-1\" *ngIf=\"!expandDetails.revops\"><svg width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"10.8891\" y=\"17.8033\" width=\"12\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(-90 10.8891 17.8033)\" fill=\"currentColor\"></rect>\r\n <rect x=\"6.01041\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n </div>\r\n <h4 class=\"text-gray-700 fw-bold cursor-pointer mb-0\">\r\n Tango Revops\r\n </h4>\r\n </div>\r\n <div id=\"kt_job_4_1\" class=\"collapse show fs-6 ms-1\" *ngIf=\"expandDetails.revops\">\r\n <div class=\"mb-4 text-gray-700 sub\">\r\n <ul>\r\n <li>Identifying missed opportunities across reasons like Pricing, Store, Product, Staff\r\n etc.</li>\r\n <li>Customer database solution for retargeting.</li>\r\n <li>POS integration to capture conversion.</li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n </div> -->\r\n <div class=\"m-0\">\r\n <div class=\"d-flex align-items-center collapsible py-3 toggle mb-0\" data-bs-toggle=\"collapse\"\r\n data-bs-target=\"#kt_job_4_1\">\r\n <div class=\"btn btn-sm btn-icon mw-20px btn-active-color-primary me-5\"\r\n (click)=\"expandPlan('sop')\">\r\n <span class=\"svg-icon svg-icon-primary svg-icon-1\" *ngIf=\"expandDetails.sop\"><svg\r\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"6.0104\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n <span class=\"svg-icon svg-icon-1\" *ngIf=\"!expandDetails.sop\"><svg width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"10.8891\" y=\"17.8033\" width=\"12\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(-90 10.8891 17.8033)\" fill=\"currentColor\"></rect>\r\n <rect x=\"6.01041\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n </div>\r\n <h4 class=\"text-gray-700 fw-bold cursor-pointer mb-0\">\r\n Tango SOP\r\n </h4>\r\n </div>\r\n <div id=\"kt_job_4_1\" class=\"collapse show fs-6 ms-1\" *ngIf=\"expandDetails.sop\">\r\n <div class=\"mb-4 text-gray-700 sub\">\r\n <ul>\r\n <li>Daily store operation.</li>\r\n <li> Extensive summary of data points like store open and close time.\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n \r\n <div class=\"m-0\">\r\n <div class=\"d-flex align-items-center collapsible py-3 toggle mb-0\" data-bs-toggle=\"collapse\"\r\n data-bs-target=\"#kt_job_4_1\">\r\n <div class=\"btn btn-sm btn-icon mw-20px btn-active-color-primary me-5\"\r\n (click)=\"expandPlan('support')\">\r\n <span class=\"svg-icon svg-icon-primary svg-icon-1\" *ngIf=\"expandDetails.support\"><svg\r\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"6.0104\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n <span class=\"svg-icon svg-icon-1\" *ngIf=\"!expandDetails.support\"><svg width=\"24\"\r\n height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"10.8891\" y=\"17.8033\" width=\"12\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(-90 10.8891 17.8033)\" fill=\"currentColor\"></rect>\r\n <rect x=\"6.01041\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n </div>\r\n <h4 class=\"text-gray-700 fw-bold cursor-pointer mb-0\">\r\n Priority Support\r\n </h4>\r\n </div>\r\n <div id=\"kt_job_4_1\" class=\"collapse show fs-6 ms-1\" *ngIf=\"expandDetails.support\">\r\n <div class=\"mb-4 text-gray-700 sub\">\r\n <ul>\r\n <li> 24*7 CCTV monitoring of all the cameras in a single screen.</li>\r\n <li>Live and Recap video option for the entire day.\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n <div class=\"col-lg-6 col-md-6 col-sm-6 \">\r\n <div class=\"card-header\">\r\n <video class=\"video-width\" muted autoplay controls style=\"border-radius: 20px;\">\r\n <source src=\"https://tangoeye-dashboard-video.objectstore.e2enetworks.net/tango-main-video%201.mp4\"\r\n type=\"video/mp4\">\r\n <!-- https://tango-staticsite.s3.ap-south-1.amazonaws.com/Tango+Eye_720p_with+music_Trim.mp4\" -->\r\n </video>\r\n </div>\r\n <div class=\"card-header align-items-center border-0 mt-4\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"main fs-lg-1 text-gray-800\">Product Walk-Through</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-header align-items-center border-0 my-2 ms-6\" ><span\r\n class=\"sub\">We transform your existing CCTV cameras into a powerful store analytics tool.\r\n Our industry-first Al and computer vision technology help brands identify missed sale\r\n opportunities and focus on improving conversion rates across stores.</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n", styles: [".sub{color:#7e8299!important;font-weight:500;font-size:15px;line-height:25px}.main{font-weight:600!important;font-size:18px!important;line-height:22px;color:#13263c!important}::ng-deep .modal-content{border-radius:12px!important}@media (min-width: 320px) and (max-width: 1024px){.topbar{margin-top:3rem!important}.w-100{width:92%!important}.testrel{margin-left:4%}.imgsrc{width:48%;margin-top:5%;margin-left:37%}}.video-custom-tag{width:400px;height:400px;border-radius:40px;margin:0 20px}.font{font-family:Inter!important}.ul_style_none ul{list-style:none}.full-width-modal .modal-dialog{max-width:100%;width:100%}.full-width-modal .modal-content{width:100%}.video-width{width:350px}@media (min-width: 1920px) and (max-width: 2100px){::ng-deep .modal.show .modal-dialog{transform:none;margin-right:325px!important}::ng-deep .modal-lg,.modal-xl{--bs-modal-width: 1105px}.video-width{width:465px}}.close{position:absolute;right:10px;top:10px;z-index:1;opacity:.5;background-color:transparent;border:none;font-size:1.5rem;line-height:1;padding:.25rem .75rem}.close:hover{opacity:1}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
35
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: ModalContentComponent, deps: [{ token: i1.NgbActiveModal }], target: i0.ɵɵFactoryTarget.Component });
36
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: ModalContentComponent, selector: "lib-modal-content", inputs: { user: "user", width: "width", height: "height" }, ngImport: i0, template: "<div >\r\n<div class=\"modal-header border-bottom-0\">\r\n <!-- <h4 class=\"modal-title\" id=\"modal-basic-title\">Simple modal</h4> -->\r\n <div class=\"col-12 text-end \">\r\n <div class=\"btn btn-sm btn-icon btn-active-color-primary\" data-bs-dismiss=\"modal\">\r\n <i (click)=\"activeModal.dismiss('Cross click')\" class=\"ki-duotone ki-cross fs-1\"><span class=\"path1\"></span><span\r\n class=\"path2\"></span></i>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"modal-body pt-0\">\r\n <div class=\"row mx-5\">\r\n <div class=\"col-lg-6 col-md-6 col-sm-6 md-offset-3\">\r\n <div class=\"align-items-center border-0 mt-4\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"main fs-lg-1 text-gray-800 mb-2 \">Product Offerings</span>\r\n </h3>\r\n </div>\r\n <div class=\"\">\r\n <div class=\"d-flex align-items-center collapsible py-3 toggle mb-0\" data-bs-toggle=\"collapse\"\r\n data-bs-target=\"#kt_job_4_1\">\r\n <div class=\"btn btn-sm btn-icon mw-20px btn-active-color-primary me-5\"\r\n (click)=\"expandPlan('traffic')\">\r\n <span class=\"svg-icon svg-icon-primary svg-icon-1\" *ngIf=\"expandDetails.traffic\"><svg\r\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"6.0104\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n <span class=\"svg-icon svg-icon-1\" *ngIf=\"!expandDetails.traffic\"><svg width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"10.8891\" y=\"17.8033\" width=\"12\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(-90 10.8891 17.8033)\" fill=\"currentColor\"></rect>\r\n <rect x=\"6.01041\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n </div>\r\n <h4 class=\"text-gray-700 fw-bold cursor-pointer mb-0\">\r\n Tango Traffic\r\n </h4>\r\n </div>\r\n <div id=\"kt_job_4_1\" class=\"collapse show fs-6 ms-1\" *ngIf=\"expandDetails.traffic\">\r\n <div class=\"mb-4 text-gray-700 sub\">\r\n <ul>\r\n <li>Footfall Analysis.</li>\r\n <li>Bounced vs Engager Analysis</li>\r\n <li>Missed Opportunity Vs Conversion Rate.</li>\r\n <li>Footfall Image Directory by the hour.</li>\r\n <li>Infra tracking ticketing system.</li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n <div class=\"m-0\">\r\n <div class=\"d-flex align-items-center collapsible py-3 toggle mb-0\" data-bs-toggle=\"collapse\"\r\n data-bs-target=\"#kt_job_4_1\">\r\n <div class=\"btn btn-sm btn-icon mw-20px btn-active-color-primary me-5\"\r\n (click)=\"expandPlan('zone')\">\r\n <span class=\"svg-icon svg-icon-primary svg-icon-1\" *ngIf=\"expandDetails.zone\"><svg\r\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"6.0104\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n <span class=\"svg-icon svg-icon-1\" *ngIf=\"!expandDetails.zone\"><svg width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"10.8891\" y=\"17.8033\" width=\"12\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(-90 10.8891 17.8033)\" fill=\"currentColor\"></rect>\r\n <rect x=\"6.01041\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n </div>\r\n <h4 class=\"text-gray-700 fw-bold cursor-pointer mb-0\">\r\n Tango Zone\r\n </h4>\r\n </div>\r\n <div id=\"kt_job_4_1\" class=\"collapse show fs-6 ms-1\" *ngIf=\"expandDetails.zone\">\r\n <div class=\"mb-4 text-gray-700 sub\">\r\n <ul>\r\n <li>Heatmap Analysis.</li>\r\n <li>Concentration % of each of your zone.</li>\r\n <li>Customer trajectory during their visit to your store.</li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n <!-- <div class=\"m-0\">\r\n <div class=\"d-flex align-items-center collapsible py-3 toggle mb-0\" data-bs-toggle=\"collapse\"\r\n data-bs-target=\"#kt_job_4_1\">\r\n <div class=\"btn btn-sm btn-icon mw-20px btn-active-color-primary me-5\"\r\n (click)=\"expandPlan('revops')\">\r\n <span class=\"svg-icon svg-icon-primary svg-icon-1\" *ngIf=\"expandDetails.revops\"><svg\r\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"6.0104\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n <span class=\"svg-icon svg-icon-1\" *ngIf=\"!expandDetails.revops\"><svg width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"10.8891\" y=\"17.8033\" width=\"12\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(-90 10.8891 17.8033)\" fill=\"currentColor\"></rect>\r\n <rect x=\"6.01041\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n </div>\r\n <h4 class=\"text-gray-700 fw-bold cursor-pointer mb-0\">\r\n Tango Revops\r\n </h4>\r\n </div>\r\n <div id=\"kt_job_4_1\" class=\"collapse show fs-6 ms-1\" *ngIf=\"expandDetails.revops\">\r\n <div class=\"mb-4 text-gray-700 sub\">\r\n <ul>\r\n <li>Identifying missed opportunities across reasons like Pricing, Store, Product, Staff\r\n etc.</li>\r\n <li>Customer database solution for retargeting.</li>\r\n <li>POS integration to capture conversion.</li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n </div> -->\r\n <div class=\"m-0\">\r\n <div class=\"d-flex align-items-center collapsible py-3 toggle mb-0\" data-bs-toggle=\"collapse\"\r\n data-bs-target=\"#kt_job_4_1\">\r\n <div class=\"btn btn-sm btn-icon mw-20px btn-active-color-primary me-5\"\r\n (click)=\"expandPlan('sop')\">\r\n <span class=\"svg-icon svg-icon-primary svg-icon-1\" *ngIf=\"expandDetails.sop\"><svg\r\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"6.0104\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n <span class=\"svg-icon svg-icon-1\" *ngIf=\"!expandDetails.sop\"><svg width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"10.8891\" y=\"17.8033\" width=\"12\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(-90 10.8891 17.8033)\" fill=\"currentColor\"></rect>\r\n <rect x=\"6.01041\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n </div>\r\n <h4 class=\"text-gray-700 fw-bold cursor-pointer mb-0\">\r\n Tango SOP\r\n </h4>\r\n </div>\r\n <div id=\"kt_job_4_1\" class=\"collapse show fs-6 ms-1\" *ngIf=\"expandDetails.sop\">\r\n <div class=\"mb-4 text-gray-700 sub\">\r\n <ul>\r\n <li>Daily store operation.</li>\r\n <li> Extensive summary of data points like store open and close time.\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n \r\n <div class=\"m-0\">\r\n <div class=\"d-flex align-items-center collapsible py-3 toggle mb-0\" data-bs-toggle=\"collapse\"\r\n data-bs-target=\"#kt_job_4_1\">\r\n <div class=\"btn btn-sm btn-icon mw-20px btn-active-color-primary me-5\"\r\n (click)=\"expandPlan('support')\">\r\n <span class=\"svg-icon svg-icon-primary svg-icon-1\" *ngIf=\"expandDetails.support\"><svg\r\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"6.0104\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n <span class=\"svg-icon svg-icon-1\" *ngIf=\"!expandDetails.support\"><svg width=\"24\"\r\n height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"10.8891\" y=\"17.8033\" width=\"12\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(-90 10.8891 17.8033)\" fill=\"currentColor\"></rect>\r\n <rect x=\"6.01041\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n </div>\r\n <h4 class=\"text-gray-700 fw-bold cursor-pointer mb-0\">\r\n Priority Support\r\n </h4>\r\n </div>\r\n <div id=\"kt_job_4_1\" class=\"collapse show fs-6 ms-1\" *ngIf=\"expandDetails.support\">\r\n <div class=\"mb-4 text-gray-700 sub\">\r\n <ul>\r\n <li> 24*7 CCTV monitoring of all the cameras in a single screen.</li>\r\n <li>Live and Recap video option for the entire day.\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n <div class=\"col-lg-6 col-md-6 col-sm-6 \">\r\n <div class=\"card-header\">\r\n <video class=\"video-width\" muted autoplay controls style=\"border-radius: 20px;\">\r\n <source src=\"https://tangoeye-dashboard-video.objectstore.e2enetworks.net/tango-main-video%201.mp4\"\r\n type=\"video/mp4\">\r\n <!-- https://tango-staticsite.s3.ap-south-1.amazonaws.com/Tango+Eye_720p_with+music_Trim.mp4\" -->\r\n </video>\r\n </div>\r\n <div class=\"card-header align-items-center border-0 mt-4\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"main fs-lg-1 text-gray-800\">Product Walk-Through</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-header align-items-center border-0 my-2 ms-6\" ><span\r\n class=\"sub\">We transform your existing CCTV cameras into a powerful store analytics tool.\r\n Our industry-first Al and computer vision technology help brands identify missed sale\r\n opportunities and focus on improving conversion rates across stores.</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n", styles: [".sub{color:#7e8299!important;font-weight:500;font-size:15px;line-height:25px}.main{font-weight:600!important;font-size:18px!important;line-height:22px;color:#13263c!important}::ng-deep .modal-content{border-radius:12px!important}@media (min-width: 320px) and (max-width: 1024px){.topbar{margin-top:3rem!important}.w-100{width:92%!important}.testrel{margin-left:4%}.imgsrc{width:48%;margin-top:5%;margin-left:37%}}.video-custom-tag{width:400px;height:400px;border-radius:40px;margin:0 20px}.font{font-family:Inter!important}.ul_style_none ul{list-style:none}.full-width-modal .modal-dialog{max-width:100%;width:100%}.full-width-modal .modal-content{width:100%}.video-width{width:350px}@media (min-width: 1920px) and (max-width: 2100px){::ng-deep .modal.show .modal-dialog{transform:none;margin-right:325px!important}::ng-deep .modal-lg,.modal-xl{--bs-modal-width: 1105px}.video-width{width:465px}}.close{position:absolute;right:10px;top:10px;z-index:1;opacity:.5;background-color:transparent;border:none;font-size:1.5rem;line-height:1;padding:.25rem .75rem}.close:hover{opacity:1}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
37
37
  }
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ModalContentComponent, decorators: [{
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: ModalContentComponent, decorators: [{
39
39
  type: Component,
40
40
  args: [{ selector: 'lib-modal-content', template: "<div >\r\n<div class=\"modal-header border-bottom-0\">\r\n <!-- <h4 class=\"modal-title\" id=\"modal-basic-title\">Simple modal</h4> -->\r\n <div class=\"col-12 text-end \">\r\n <div class=\"btn btn-sm btn-icon btn-active-color-primary\" data-bs-dismiss=\"modal\">\r\n <i (click)=\"activeModal.dismiss('Cross click')\" class=\"ki-duotone ki-cross fs-1\"><span class=\"path1\"></span><span\r\n class=\"path2\"></span></i>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"modal-body pt-0\">\r\n <div class=\"row mx-5\">\r\n <div class=\"col-lg-6 col-md-6 col-sm-6 md-offset-3\">\r\n <div class=\"align-items-center border-0 mt-4\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"main fs-lg-1 text-gray-800 mb-2 \">Product Offerings</span>\r\n </h3>\r\n </div>\r\n <div class=\"\">\r\n <div class=\"d-flex align-items-center collapsible py-3 toggle mb-0\" data-bs-toggle=\"collapse\"\r\n data-bs-target=\"#kt_job_4_1\">\r\n <div class=\"btn btn-sm btn-icon mw-20px btn-active-color-primary me-5\"\r\n (click)=\"expandPlan('traffic')\">\r\n <span class=\"svg-icon svg-icon-primary svg-icon-1\" *ngIf=\"expandDetails.traffic\"><svg\r\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"6.0104\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n <span class=\"svg-icon svg-icon-1\" *ngIf=\"!expandDetails.traffic\"><svg width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"10.8891\" y=\"17.8033\" width=\"12\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(-90 10.8891 17.8033)\" fill=\"currentColor\"></rect>\r\n <rect x=\"6.01041\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n </div>\r\n <h4 class=\"text-gray-700 fw-bold cursor-pointer mb-0\">\r\n Tango Traffic\r\n </h4>\r\n </div>\r\n <div id=\"kt_job_4_1\" class=\"collapse show fs-6 ms-1\" *ngIf=\"expandDetails.traffic\">\r\n <div class=\"mb-4 text-gray-700 sub\">\r\n <ul>\r\n <li>Footfall Analysis.</li>\r\n <li>Bounced vs Engager Analysis</li>\r\n <li>Missed Opportunity Vs Conversion Rate.</li>\r\n <li>Footfall Image Directory by the hour.</li>\r\n <li>Infra tracking ticketing system.</li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n <div class=\"m-0\">\r\n <div class=\"d-flex align-items-center collapsible py-3 toggle mb-0\" data-bs-toggle=\"collapse\"\r\n data-bs-target=\"#kt_job_4_1\">\r\n <div class=\"btn btn-sm btn-icon mw-20px btn-active-color-primary me-5\"\r\n (click)=\"expandPlan('zone')\">\r\n <span class=\"svg-icon svg-icon-primary svg-icon-1\" *ngIf=\"expandDetails.zone\"><svg\r\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"6.0104\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n <span class=\"svg-icon svg-icon-1\" *ngIf=\"!expandDetails.zone\"><svg width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"10.8891\" y=\"17.8033\" width=\"12\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(-90 10.8891 17.8033)\" fill=\"currentColor\"></rect>\r\n <rect x=\"6.01041\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n </div>\r\n <h4 class=\"text-gray-700 fw-bold cursor-pointer mb-0\">\r\n Tango Zone\r\n </h4>\r\n </div>\r\n <div id=\"kt_job_4_1\" class=\"collapse show fs-6 ms-1\" *ngIf=\"expandDetails.zone\">\r\n <div class=\"mb-4 text-gray-700 sub\">\r\n <ul>\r\n <li>Heatmap Analysis.</li>\r\n <li>Concentration % of each of your zone.</li>\r\n <li>Customer trajectory during their visit to your store.</li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n <!-- <div class=\"m-0\">\r\n <div class=\"d-flex align-items-center collapsible py-3 toggle mb-0\" data-bs-toggle=\"collapse\"\r\n data-bs-target=\"#kt_job_4_1\">\r\n <div class=\"btn btn-sm btn-icon mw-20px btn-active-color-primary me-5\"\r\n (click)=\"expandPlan('revops')\">\r\n <span class=\"svg-icon svg-icon-primary svg-icon-1\" *ngIf=\"expandDetails.revops\"><svg\r\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"6.0104\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n <span class=\"svg-icon svg-icon-1\" *ngIf=\"!expandDetails.revops\"><svg width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"10.8891\" y=\"17.8033\" width=\"12\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(-90 10.8891 17.8033)\" fill=\"currentColor\"></rect>\r\n <rect x=\"6.01041\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n </div>\r\n <h4 class=\"text-gray-700 fw-bold cursor-pointer mb-0\">\r\n Tango Revops\r\n </h4>\r\n </div>\r\n <div id=\"kt_job_4_1\" class=\"collapse show fs-6 ms-1\" *ngIf=\"expandDetails.revops\">\r\n <div class=\"mb-4 text-gray-700 sub\">\r\n <ul>\r\n <li>Identifying missed opportunities across reasons like Pricing, Store, Product, Staff\r\n etc.</li>\r\n <li>Customer database solution for retargeting.</li>\r\n <li>POS integration to capture conversion.</li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n </div> -->\r\n <div class=\"m-0\">\r\n <div class=\"d-flex align-items-center collapsible py-3 toggle mb-0\" data-bs-toggle=\"collapse\"\r\n data-bs-target=\"#kt_job_4_1\">\r\n <div class=\"btn btn-sm btn-icon mw-20px btn-active-color-primary me-5\"\r\n (click)=\"expandPlan('sop')\">\r\n <span class=\"svg-icon svg-icon-primary svg-icon-1\" *ngIf=\"expandDetails.sop\"><svg\r\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"6.0104\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n <span class=\"svg-icon svg-icon-1\" *ngIf=\"!expandDetails.sop\"><svg width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"10.8891\" y=\"17.8033\" width=\"12\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(-90 10.8891 17.8033)\" fill=\"currentColor\"></rect>\r\n <rect x=\"6.01041\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n </div>\r\n <h4 class=\"text-gray-700 fw-bold cursor-pointer mb-0\">\r\n Tango SOP\r\n </h4>\r\n </div>\r\n <div id=\"kt_job_4_1\" class=\"collapse show fs-6 ms-1\" *ngIf=\"expandDetails.sop\">\r\n <div class=\"mb-4 text-gray-700 sub\">\r\n <ul>\r\n <li>Daily store operation.</li>\r\n <li> Extensive summary of data points like store open and close time.\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n \r\n <div class=\"m-0\">\r\n <div class=\"d-flex align-items-center collapsible py-3 toggle mb-0\" data-bs-toggle=\"collapse\"\r\n data-bs-target=\"#kt_job_4_1\">\r\n <div class=\"btn btn-sm btn-icon mw-20px btn-active-color-primary me-5\"\r\n (click)=\"expandPlan('support')\">\r\n <span class=\"svg-icon svg-icon-primary svg-icon-1\" *ngIf=\"expandDetails.support\"><svg\r\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"6.0104\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n <span class=\"svg-icon svg-icon-1\" *ngIf=\"!expandDetails.support\"><svg width=\"24\"\r\n height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.3\" x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" fill=\"currentColor\">\r\n </rect>\r\n <rect x=\"10.8891\" y=\"17.8033\" width=\"12\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(-90 10.8891 17.8033)\" fill=\"currentColor\"></rect>\r\n <rect x=\"6.01041\" y=\"10.9247\" width=\"12\" height=\"2\" rx=\"1\" fill=\"currentColor\">\r\n </rect>\r\n </svg>\r\n </span>\r\n </div>\r\n <h4 class=\"text-gray-700 fw-bold cursor-pointer mb-0\">\r\n Priority Support\r\n </h4>\r\n </div>\r\n <div id=\"kt_job_4_1\" class=\"collapse show fs-6 ms-1\" *ngIf=\"expandDetails.support\">\r\n <div class=\"mb-4 text-gray-700 sub\">\r\n <ul>\r\n <li> 24*7 CCTV monitoring of all the cameras in a single screen.</li>\r\n <li>Live and Recap video option for the entire day.\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n <div class=\"col-lg-6 col-md-6 col-sm-6 \">\r\n <div class=\"card-header\">\r\n <video class=\"video-width\" muted autoplay controls style=\"border-radius: 20px;\">\r\n <source src=\"https://tangoeye-dashboard-video.objectstore.e2enetworks.net/tango-main-video%201.mp4\"\r\n type=\"video/mp4\">\r\n <!-- https://tango-staticsite.s3.ap-south-1.amazonaws.com/Tango+Eye_720p_with+music_Trim.mp4\" -->\r\n </video>\r\n </div>\r\n <div class=\"card-header align-items-center border-0 mt-4\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"main fs-lg-1 text-gray-800\">Product Walk-Through</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-header align-items-center border-0 my-2 ms-6\" ><span\r\n class=\"sub\">We transform your existing CCTV cameras into a powerful store analytics tool.\r\n Our industry-first Al and computer vision technology help brands identify missed sale\r\n opportunities and focus on improving conversion rates across stores.</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n", styles: [".sub{color:#7e8299!important;font-weight:500;font-size:15px;line-height:25px}.main{font-weight:600!important;font-size:18px!important;line-height:22px;color:#13263c!important}::ng-deep .modal-content{border-radius:12px!important}@media (min-width: 320px) and (max-width: 1024px){.topbar{margin-top:3rem!important}.w-100{width:92%!important}.testrel{margin-left:4%}.imgsrc{width:48%;margin-top:5%;margin-left:37%}}.video-custom-tag{width:400px;height:400px;border-radius:40px;margin:0 20px}.font{font-family:Inter!important}.ul_style_none ul{list-style:none}.full-width-modal .modal-dialog{max-width:100%;width:100%}.full-width-modal .modal-content{width:100%}.video-width{width:350px}@media (min-width: 1920px) and (max-width: 2100px){::ng-deep .modal.show .modal-dialog{transform:none;margin-right:325px!important}::ng-deep .modal-lg,.modal-xl{--bs-modal-width: 1105px}.video-width{width:465px}}.close{position:absolute;right:10px;top:10px;z-index:1;opacity:.5;background-color:transparent;border:none;font-size:1.5rem;line-height:1;padding:.25rem .75rem}.close:hover{opacity:1}\n"] }]
41
41
  }], ctorParameters: () => [{ type: i1.NgbActiveModal }], propDecorators: { user: [{
@@ -45,4 +45,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
45
45
  }], height: [{
46
46
  type: Input
47
47
  }] } });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtY29udGVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hdXRoL3NyYy9saWIvY29tcG9uZW50cy90YW5nby1hdXRoLXNpZ251cC9zdGVwL21vZGFsLWNvbnRlbnQvbW9kYWwtY29udGVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hdXRoL3NyYy9saWIvY29tcG9uZW50cy90YW5nby1hdXRoLXNpZ251cC9zdGVwL21vZGFsLWNvbnRlbnQvbW9kYWwtY29udGVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7OztBQVF6RCxNQUFNLE9BQU8scUJBQXFCO0lBWXZCO0lBWEEsSUFBSSxDQUFTO0lBQ2IsS0FBSyxDQUFTO0lBQ2QsTUFBTSxDQUFTO0lBQ3hCLGFBQWEsR0FBUTtRQUNuQixPQUFPLEVBQUUsS0FBSztRQUNkLElBQUksRUFBRSxLQUFLO1FBQ1gsTUFBTSxFQUFFLEtBQUs7UUFDYixHQUFHLEVBQUUsS0FBSztRQUNWLE9BQU8sRUFBRSxLQUFLO0tBQ2YsQ0FBQztJQUNGLFlBQ1MsV0FBMkI7UUFBM0IsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO0lBQ2hDLENBQUM7SUFDTCxRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFBO0lBRXRDLENBQUM7SUFDRCxVQUFVLENBQUMsR0FBUTtRQUNqQixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUM1QyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDeEIsSUFBSSxHQUFHLEtBQUssR0FBRztnQkFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQTs7Z0JBQzlELElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFBO1FBQ3RDLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQzt1R0EzQlUscUJBQXFCOzJGQUFyQixxQkFBcUIscUhDUmxDLG93ZkFzUEE7OzJGRDlPYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UsbUJBQW1CO21GQUtwQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ2JBY3RpdmVNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLW1vZGFsLWNvbnRlbnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RhbC1jb250ZW50LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vbW9kYWwtY29udGVudC5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIE1vZGFsQ29udGVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdHtcclxuICBASW5wdXQoKSB1c2VyOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgd2lkdGg6IHN0cmluZztcclxuICBASW5wdXQoKSBoZWlnaHQ6IHN0cmluZztcclxuICBleHBhbmREZXRhaWxzOiBhbnkgPSB7XHJcbiAgICB0cmFmZmljOiBmYWxzZSxcclxuICAgIHpvbmU6IGZhbHNlLFxyXG4gICAgcmV2b3BzOiBmYWxzZSxcclxuICAgIHNvcDogZmFsc2UsXHJcbiAgICBzdXBwb3J0OiBmYWxzZSxcclxuICB9O1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGFjdGl2ZU1vZGFsOiBOZ2JBY3RpdmVNb2RhbFxyXG4gICkgeyB9XHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmV4cGFuZERldGFpbHNbdGhpcy51c2VyXSA9IHRydWVcclxuXHJcbiAgfVxyXG4gIGV4cGFuZFBsYW4oa2V5OiBhbnkpIHtcclxuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh0aGlzLmV4cGFuZERldGFpbHMpXHJcbiAgICBrZXlzLmZvckVhY2goKGVsZTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChrZXkgPT09IGVsZSkgdGhpcy5leHBhbmREZXRhaWxzW2VsZV0gPSAhdGhpcy5leHBhbmREZXRhaWxzW2VsZV1cclxuICAgICAgZWxzZSB0aGlzLmV4cGFuZERldGFpbHNbZWxlXSA9IGZhbHNlXHJcbiAgICB9KVxyXG4gIH1cclxuICBwYXNzQmFjaygpIHtcclxuICAgIHRoaXMuYWN0aXZlTW9kYWwuY2xvc2UodGhpcy51c2VyKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiAgPlxyXG48ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyIGJvcmRlci1ib3R0b20tMFwiPlxyXG4gICAgPCEtLSA8aDQgY2xhc3M9XCJtb2RhbC10aXRsZVwiIGlkPVwibW9kYWwtYmFzaWMtdGl0bGVcIj5TaW1wbGUgbW9kYWw8L2g0PiAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgdGV4dC1lbmQgXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWljb24gYnRuLWFjdGl2ZS1jb2xvci1wcmltYXJ5XCIgZGF0YS1icy1kaXNtaXNzPVwibW9kYWxcIj5cclxuICAgICAgICAgICAgPGkgKGNsaWNrKT1cImFjdGl2ZU1vZGFsLmRpc21pc3MoJ0Nyb3NzIGNsaWNrJylcIiBjbGFzcz1cImtpLWR1b3RvbmUga2ktY3Jvc3MgZnMtMVwiPjxzcGFuIGNsYXNzPVwicGF0aDFcIj48L3NwYW4+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBhdGgyXCI+PC9zcGFuPjwvaT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5IHB0LTBcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbXgtNVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctNiBjb2wtbWQtNiBjb2wtc20tNiBtZC1vZmZzZXQtM1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWxpZ24taXRlbXMtY2VudGVyIGJvcmRlci0wIG10LTRcIj5cclxuICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cImNhcmQtdGl0bGUgYWxpZ24taXRlbXMtc3RhcnQgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1haW4gZnMtbGctMSB0ZXh0LWdyYXktODAwIG1iLTIgXCI+UHJvZHVjdCBPZmZlcmluZ3M8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIlwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgY29sbGFwc2libGUgcHktMyB0b2dnbGUgIG1iLTBcIiBkYXRhLWJzLXRvZ2dsZT1cImNvbGxhcHNlXCJcclxuICAgICAgICAgICAgICAgICAgICBkYXRhLWJzLXRhcmdldD1cIiNrdF9qb2JfNF8xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWljb24gbXctMjBweCBidG4tYWN0aXZlLWNvbG9yLXByaW1hcnkgbWUtNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJleHBhbmRQbGFuKCd0cmFmZmljJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi1wcmltYXJ5IHN2Zy1pY29uLTFcIiAqbmdJZj1cImV4cGFuZERldGFpbHMudHJhZmZpY1wiPjxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBvcGFjaXR5PVwiMC4zXCIgeD1cIjJcIiB5PVwiMlwiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHJ4PVwiNVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3JlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjYuMDEwNFwiIHk9XCIxMC45MjQ3XCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjJcIiByeD1cIjFcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xXCIgKm5nSWY9XCIhZXhwYW5kRGV0YWlscy50cmFmZmljXCI+PHN2ZyB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBvcGFjaXR5PVwiMC4zXCIgeD1cIjJcIiB5PVwiMlwiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHJ4PVwiNVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3JlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjEwLjg4OTFcIiB5PVwiMTcuODAzM1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIyXCIgcng9XCIxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtPVwicm90YXRlKC05MCAxMC44ODkxIDE3LjgwMzMpXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiPjwvcmVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiNi4wMTA0MVwiIHk9XCIxMC45MjQ3XCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjJcIiByeD1cIjFcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJ0ZXh0LWdyYXktNzAwIGZ3LWJvbGQgY3Vyc29yLXBvaW50ZXIgbWItMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBUYW5nbyBUcmFmZmljXHJcbiAgICAgICAgICAgICAgICAgICAgPC9oND5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImt0X2pvYl80XzFcIiBjbGFzcz1cImNvbGxhcHNlIHNob3cgZnMtNiBtcy0xXCIgKm5nSWY9XCJleHBhbmREZXRhaWxzLnRyYWZmaWNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItNCB0ZXh0LWdyYXktNzAwIHN1YlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+Rm9vdGZhbGwgQW5hbHlzaXMuPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5Cb3VuY2VkIHZzIEVuZ2FnZXIgQW5hbHlzaXM8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPk1pc3NlZCBPcHBvcnR1bml0eSBWcyBDb252ZXJzaW9uIFJhdGUuPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5Gb290ZmFsbCBJbWFnZSBEaXJlY3RvcnkgYnkgdGhlIGhvdXIuPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5JbmZyYSB0cmFja2luZyB0aWNrZXRpbmcgc3lzdGVtLjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgY29sbGFwc2libGUgcHktMyB0b2dnbGUgIG1iLTBcIiBkYXRhLWJzLXRvZ2dsZT1cImNvbGxhcHNlXCJcclxuICAgICAgICAgICAgICAgICAgICBkYXRhLWJzLXRhcmdldD1cIiNrdF9qb2JfNF8xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWljb24gbXctMjBweCBidG4tYWN0aXZlLWNvbG9yLXByaW1hcnkgbWUtNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJleHBhbmRQbGFuKCd6b25lJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi1wcmltYXJ5IHN2Zy1pY29uLTFcIiAqbmdJZj1cImV4cGFuZERldGFpbHMuem9uZVwiPjxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBvcGFjaXR5PVwiMC4zXCIgeD1cIjJcIiB5PVwiMlwiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHJ4PVwiNVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3JlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjYuMDEwNFwiIHk9XCIxMC45MjQ3XCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjJcIiByeD1cIjFcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xXCIgKm5nSWY9XCIhZXhwYW5kRGV0YWlscy56b25lXCI+PHN2ZyB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBvcGFjaXR5PVwiMC4zXCIgeD1cIjJcIiB5PVwiMlwiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHJ4PVwiNVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3JlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjEwLjg4OTFcIiB5PVwiMTcuODAzM1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIyXCIgcng9XCIxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtPVwicm90YXRlKC05MCAxMC44ODkxIDE3LjgwMzMpXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiPjwvcmVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiNi4wMTA0MVwiIHk9XCIxMC45MjQ3XCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjJcIiByeD1cIjFcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJ0ZXh0LWdyYXktNzAwIGZ3LWJvbGQgY3Vyc29yLXBvaW50ZXIgbWItMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBUYW5nbyBab25lXHJcbiAgICAgICAgICAgICAgICAgICAgPC9oND5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImt0X2pvYl80XzFcIiBjbGFzcz1cImNvbGxhcHNlIHNob3cgZnMtNiBtcy0xXCIgKm5nSWY9XCJleHBhbmREZXRhaWxzLnpvbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItNCB0ZXh0LWdyYXktNzAwICBzdWJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkhlYXRtYXAgQW5hbHlzaXMuPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5Db25jZW50cmF0aW9uICUgb2YgZWFjaCBvZiB5b3VyIHpvbmUuPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5DdXN0b21lciB0cmFqZWN0b3J5IGR1cmluZyB0aGVpciB2aXNpdCB0byB5b3VyIHN0b3JlLjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cIm0tMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGNvbGxhcHNpYmxlIHB5LTMgdG9nZ2xlICBtYi0wXCIgZGF0YS1icy10b2dnbGU9XCJjb2xsYXBzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtYnMtdGFyZ2V0PVwiI2t0X2pvYl80XzFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWljb24gbXctMjBweCBidG4tYWN0aXZlLWNvbG9yLXByaW1hcnkgbWUtNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZXhwYW5kUGxhbigncmV2b3BzJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tcHJpbWFyeSBzdmctaWNvbi0xXCIgKm5nSWY9XCJleHBhbmREZXRhaWxzLnJldm9wc1wiPjxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBvcGFjaXR5PVwiMC4zXCIgeD1cIjJcIiB5PVwiMlwiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHJ4PVwiNVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiNi4wMTA0XCIgeT1cIjEwLjkyNDdcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMlwiIHJ4PVwiMVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xXCIgKm5nSWY9XCIhZXhwYW5kRGV0YWlscy5yZXZvcHNcIj48c3ZnIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgb3BhY2l0eT1cIjAuM1wiIHg9XCIyXCIgeT1cIjJcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiByeD1cIjVcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcmVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjEwLjg4OTFcIiB5PVwiMTcuODAzM1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIyXCIgcng9XCIxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybT1cInJvdGF0ZSgtOTAgMTAuODg5MSAxNy44MDMzKVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj48L3JlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI2LjAxMDQxXCIgeT1cIjEwLjkyNDdcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMlwiIHJ4PVwiMVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwidGV4dC1ncmF5LTcwMCBmdy1ib2xkIGN1cnNvci1wb2ludGVyIG1iLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhbmdvIFJldm9wc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2g0PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJrdF9qb2JfNF8xXCIgY2xhc3M9XCJjb2xsYXBzZSBzaG93IGZzLTYgbXMtMVwiICpuZ0lmPVwiZXhwYW5kRGV0YWlscy5yZXZvcHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTQgdGV4dC1ncmF5LTcwMCBzdWJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+SWRlbnRpZnlpbmcgbWlzc2VkIG9wcG9ydHVuaXRpZXMgYWNyb3NzIHJlYXNvbnMgbGlrZSBQcmljaW5nLCBTdG9yZSwgUHJvZHVjdCwgU3RhZmZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXRjLjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkN1c3RvbWVyIGRhdGFiYXNlIHNvbHV0aW9uIGZvciByZXRhcmdldGluZy48L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5QT1MgaW50ZWdyYXRpb24gdG8gY2FwdHVyZSBjb252ZXJzaW9uLjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgY29sbGFwc2libGUgcHktMyB0b2dnbGUgIG1iLTBcIiBkYXRhLWJzLXRvZ2dsZT1cImNvbGxhcHNlXCJcclxuICAgICAgICAgICAgICAgICAgICBkYXRhLWJzLXRhcmdldD1cIiNrdF9qb2JfNF8xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWljb24gbXctMjBweCBidG4tYWN0aXZlLWNvbG9yLXByaW1hcnkgbWUtNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJleHBhbmRQbGFuKCdzb3AnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLXByaW1hcnkgc3ZnLWljb24tMVwiICpuZ0lmPVwiZXhwYW5kRGV0YWlscy5zb3BcIj48c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgb3BhY2l0eT1cIjAuM1wiIHg9XCIyXCIgeT1cIjJcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiByeD1cIjVcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI2LjAxMDRcIiB5PVwiMTAuOTI0N1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIyXCIgcng9XCIxXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcmVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMVwiICpuZ0lmPVwiIWV4cGFuZERldGFpbHMuc29wXCI+PHN2ZyB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgb3BhY2l0eT1cIjAuM1wiIHg9XCIyXCIgeT1cIjJcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiByeD1cIjVcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3JlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMTAuODg5MVwiIHk9XCIxNy44MDMzXCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjJcIiByeD1cIjFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybT1cInJvdGF0ZSgtOTAgMTAuODg5MSAxNy44MDMzKVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj48L3JlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiNi4wMTA0MVwiIHk9XCIxMC45MjQ3XCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjJcIiByeD1cIjFcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3JlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJ0ZXh0LWdyYXktNzAwIGZ3LWJvbGQgY3Vyc29yLXBvaW50ZXIgbWItMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBUYW5nbyBTT1BcclxuICAgICAgICAgICAgICAgICAgICA8L2g0PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwia3Rfam9iXzRfMVwiIGNsYXNzPVwiY29sbGFwc2Ugc2hvdyBmcy02IG1zLTFcIiAqbmdJZj1cImV4cGFuZERldGFpbHMuc29wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTQgdGV4dC1ncmF5LTcwMCBzdWJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkRhaWx5IHN0b3JlIG9wZXJhdGlvbi48L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPiBFeHRlbnNpdmUgc3VtbWFyeSBvZiBkYXRhIHBvaW50cyBsaWtlIHN0b3JlIG9wZW4gYW5kIGNsb3NlIHRpbWUuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLTBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGNvbGxhcHNpYmxlIHB5LTMgdG9nZ2xlICBtYi0wXCIgZGF0YS1icy10b2dnbGU9XCJjb2xsYXBzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS1icy10YXJnZXQ9XCIja3Rfam9iXzRfMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1pY29uIG13LTIwcHggYnRuLWFjdGl2ZS1jb2xvci1wcmltYXJ5IG1lLTVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZXhwYW5kUGxhbignc3VwcG9ydCcpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tcHJpbWFyeSBzdmctaWNvbi0xXCIgKm5nSWY9XCJleHBhbmREZXRhaWxzLnN1cHBvcnRcIj48c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgb3BhY2l0eT1cIjAuM1wiIHg9XCIyXCIgeT1cIjJcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiByeD1cIjVcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI2LjAxMDRcIiB5PVwiMTAuOTI0N1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIyXCIgcng9XCIxXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcmVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMVwiICpuZ0lmPVwiIWV4cGFuZERldGFpbHMuc3VwcG9ydFwiPjxzdmcgd2lkdGg9XCIyNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgb3BhY2l0eT1cIjAuM1wiIHg9XCIyXCIgeT1cIjJcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiByeD1cIjVcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIxMC44ODkxXCIgeT1cIjE3LjgwMzNcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMlwiIHJ4PVwiMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybT1cInJvdGF0ZSgtOTAgMTAuODg5MSAxNy44MDMzKVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj48L3JlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjYuMDEwNDFcIiB5PVwiMTAuOTI0N1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIyXCIgcng9XCIxXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcmVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwidGV4dC1ncmF5LTcwMCBmdy1ib2xkIGN1cnNvci1wb2ludGVyIG1iLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgU3VwcG9ydFxyXG4gICAgICAgICAgICAgICAgICAgIDwvaDQ+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJrdF9qb2JfNF8xXCIgY2xhc3M9XCJjb2xsYXBzZSBzaG93IGZzLTYgbXMtMVwiICpuZ0lmPVwiZXhwYW5kRGV0YWlscy5zdXBwb3J0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTQgdGV4dC1ncmF5LTcwMCBzdWJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPiAyNCo3IENDVFYgbW9uaXRvcmluZyBvZiBhbGwgdGhlIGNhbWVyYXMgaW4gYSBzaW5nbGUgc2NyZWVuLjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+TGl2ZSBhbmQgUmVjYXAgdmlkZW8gb3B0aW9uIGZvciB0aGUgZW50aXJlIGRheS5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTYgY29sLW1kLTYgY29sLXNtLTYgXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPHZpZGVvIGNsYXNzPVwidmlkZW8td2lkdGhcIiBtdXRlZCBhdXRvcGxheSBjb250cm9scyBzdHlsZT1cImJvcmRlci1yYWRpdXM6IDIwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSBzcmM9XCJodHRwczovL3RhbmdvZXllLWRhc2hib2FyZC12aWRlby5vYmplY3RzdG9yZS5lMmVuZXR3b3Jrcy5uZXQvdGFuZ28tbWFpbi12aWRlbyUyMDEubXA0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInZpZGVvL21wNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gaHR0cHM6Ly90YW5nby1zdGF0aWNzaXRlLnMzLmFwLXNvdXRoLTEuYW1hem9uYXdzLmNvbS9UYW5nbytFeWVfNzIwcF93aXRoK211c2ljX1RyaW0ubXA0XCIgLS0+XHJcbiAgICAgICAgICAgICAgICA8L3ZpZGVvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGFsaWduLWl0ZW1zLWNlbnRlciBib3JkZXItMCBtdC00XCI+XHJcbiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJjYXJkLXRpdGxlIGFsaWduLWl0ZW1zLXN0YXJ0IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYWluIGZzLWxnLTEgdGV4dC1ncmF5LTgwMFwiPlByb2R1Y3QgV2Fsay1UaHJvdWdoPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBhbGlnbi1pdGVtcy1jZW50ZXIgYm9yZGVyLTAgbXktMiBtcy02XCIgPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzdWJcIj5XZSB0cmFuc2Zvcm0geW91ciBleGlzdGluZyBDQ1RWIGNhbWVyYXMgaW50byBhIHBvd2VyZnVsIHN0b3JlIGFuYWx5dGljcyB0b29sLlxyXG4gICAgICAgICAgICAgICAgICAgIE91ciBpbmR1c3RyeS1maXJzdCBBbCBhbmQgY29tcHV0ZXIgdmlzaW9uIHRlY2hub2xvZ3kgaGVscCBicmFuZHMgaWRlbnRpZnkgbWlzc2VkIHNhbGVcclxuICAgICAgICAgICAgICAgICAgICBvcHBvcnR1bml0aWVzIGFuZCBmb2N1cyBvbiBpbXByb3ZpbmcgY29udmVyc2lvbiByYXRlcyBhY3Jvc3Mgc3RvcmVzLjwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG4iXX0=
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtY29udGVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hdXRoL3NyYy9saWIvY29tcG9uZW50cy90YW5nby1hdXRoLXNpZ251cC9zdGVwL21vZGFsLWNvbnRlbnQvbW9kYWwtY29udGVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hdXRoL3NyYy9saWIvY29tcG9uZW50cy90YW5nby1hdXRoLXNpZ251cC9zdGVwL21vZGFsLWNvbnRlbnQvbW9kYWwtY29udGVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7OztBQVF6RCxNQUFNLE9BQU8scUJBQXFCO0lBWXZCO0lBWEEsSUFBSSxDQUFTO0lBQ2IsS0FBSyxDQUFTO0lBQ2QsTUFBTSxDQUFTO0lBQ3hCLGFBQWEsR0FBUTtRQUNuQixPQUFPLEVBQUUsS0FBSztRQUNkLElBQUksRUFBRSxLQUFLO1FBQ1gsTUFBTSxFQUFFLEtBQUs7UUFDYixHQUFHLEVBQUUsS0FBSztRQUNWLE9BQU8sRUFBRSxLQUFLO0tBQ2YsQ0FBQztJQUNGLFlBQ1MsV0FBMkI7UUFBM0IsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO0lBQ2hDLENBQUM7SUFDTCxRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFBO0lBRXRDLENBQUM7SUFDRCxVQUFVLENBQUMsR0FBUTtRQUNqQixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUM1QyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDeEIsSUFBSSxHQUFHLEtBQUssR0FBRztnQkFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQTs7Z0JBQzlELElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFBO1FBQ3RDLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQzt3R0EzQlUscUJBQXFCOzRGQUFyQixxQkFBcUIscUhDUmxDLG93ZkFzUEE7OzRGRDlPYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UsbUJBQW1CO21GQUtwQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ2JBY3RpdmVNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLW1vZGFsLWNvbnRlbnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RhbC1jb250ZW50LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vbW9kYWwtY29udGVudC5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIE1vZGFsQ29udGVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdHtcclxuICBASW5wdXQoKSB1c2VyOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgd2lkdGg6IHN0cmluZztcclxuICBASW5wdXQoKSBoZWlnaHQ6IHN0cmluZztcclxuICBleHBhbmREZXRhaWxzOiBhbnkgPSB7XHJcbiAgICB0cmFmZmljOiBmYWxzZSxcclxuICAgIHpvbmU6IGZhbHNlLFxyXG4gICAgcmV2b3BzOiBmYWxzZSxcclxuICAgIHNvcDogZmFsc2UsXHJcbiAgICBzdXBwb3J0OiBmYWxzZSxcclxuICB9O1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGFjdGl2ZU1vZGFsOiBOZ2JBY3RpdmVNb2RhbFxyXG4gICkgeyB9XHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmV4cGFuZERldGFpbHNbdGhpcy51c2VyXSA9IHRydWVcclxuXHJcbiAgfVxyXG4gIGV4cGFuZFBsYW4oa2V5OiBhbnkpIHtcclxuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh0aGlzLmV4cGFuZERldGFpbHMpXHJcbiAgICBrZXlzLmZvckVhY2goKGVsZTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChrZXkgPT09IGVsZSkgdGhpcy5leHBhbmREZXRhaWxzW2VsZV0gPSAhdGhpcy5leHBhbmREZXRhaWxzW2VsZV1cclxuICAgICAgZWxzZSB0aGlzLmV4cGFuZERldGFpbHNbZWxlXSA9IGZhbHNlXHJcbiAgICB9KVxyXG4gIH1cclxuICBwYXNzQmFjaygpIHtcclxuICAgIHRoaXMuYWN0aXZlTW9kYWwuY2xvc2UodGhpcy51c2VyKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiAgPlxyXG48ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyIGJvcmRlci1ib3R0b20tMFwiPlxyXG4gICAgPCEtLSA8aDQgY2xhc3M9XCJtb2RhbC10aXRsZVwiIGlkPVwibW9kYWwtYmFzaWMtdGl0bGVcIj5TaW1wbGUgbW9kYWw8L2g0PiAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgdGV4dC1lbmQgXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWljb24gYnRuLWFjdGl2ZS1jb2xvci1wcmltYXJ5XCIgZGF0YS1icy1kaXNtaXNzPVwibW9kYWxcIj5cclxuICAgICAgICAgICAgPGkgKGNsaWNrKT1cImFjdGl2ZU1vZGFsLmRpc21pc3MoJ0Nyb3NzIGNsaWNrJylcIiBjbGFzcz1cImtpLWR1b3RvbmUga2ktY3Jvc3MgZnMtMVwiPjxzcGFuIGNsYXNzPVwicGF0aDFcIj48L3NwYW4+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBhdGgyXCI+PC9zcGFuPjwvaT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5IHB0LTBcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbXgtNVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctNiBjb2wtbWQtNiBjb2wtc20tNiBtZC1vZmZzZXQtM1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWxpZ24taXRlbXMtY2VudGVyIGJvcmRlci0wIG10LTRcIj5cclxuICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cImNhcmQtdGl0bGUgYWxpZ24taXRlbXMtc3RhcnQgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1haW4gZnMtbGctMSB0ZXh0LWdyYXktODAwIG1iLTIgXCI+UHJvZHVjdCBPZmZlcmluZ3M8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIlwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgY29sbGFwc2libGUgcHktMyB0b2dnbGUgIG1iLTBcIiBkYXRhLWJzLXRvZ2dsZT1cImNvbGxhcHNlXCJcclxuICAgICAgICAgICAgICAgICAgICBkYXRhLWJzLXRhcmdldD1cIiNrdF9qb2JfNF8xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWljb24gbXctMjBweCBidG4tYWN0aXZlLWNvbG9yLXByaW1hcnkgbWUtNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJleHBhbmRQbGFuKCd0cmFmZmljJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi1wcmltYXJ5IHN2Zy1pY29uLTFcIiAqbmdJZj1cImV4cGFuZERldGFpbHMudHJhZmZpY1wiPjxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBvcGFjaXR5PVwiMC4zXCIgeD1cIjJcIiB5PVwiMlwiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHJ4PVwiNVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3JlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjYuMDEwNFwiIHk9XCIxMC45MjQ3XCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjJcIiByeD1cIjFcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xXCIgKm5nSWY9XCIhZXhwYW5kRGV0YWlscy50cmFmZmljXCI+PHN2ZyB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBvcGFjaXR5PVwiMC4zXCIgeD1cIjJcIiB5PVwiMlwiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHJ4PVwiNVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3JlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjEwLjg4OTFcIiB5PVwiMTcuODAzM1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIyXCIgcng9XCIxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtPVwicm90YXRlKC05MCAxMC44ODkxIDE3LjgwMzMpXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiPjwvcmVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiNi4wMTA0MVwiIHk9XCIxMC45MjQ3XCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjJcIiByeD1cIjFcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJ0ZXh0LWdyYXktNzAwIGZ3LWJvbGQgY3Vyc29yLXBvaW50ZXIgbWItMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBUYW5nbyBUcmFmZmljXHJcbiAgICAgICAgICAgICAgICAgICAgPC9oND5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImt0X2pvYl80XzFcIiBjbGFzcz1cImNvbGxhcHNlIHNob3cgZnMtNiBtcy0xXCIgKm5nSWY9XCJleHBhbmREZXRhaWxzLnRyYWZmaWNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItNCB0ZXh0LWdyYXktNzAwIHN1YlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+Rm9vdGZhbGwgQW5hbHlzaXMuPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5Cb3VuY2VkIHZzIEVuZ2FnZXIgQW5hbHlzaXM8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPk1pc3NlZCBPcHBvcnR1bml0eSBWcyBDb252ZXJzaW9uIFJhdGUuPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5Gb290ZmFsbCBJbWFnZSBEaXJlY3RvcnkgYnkgdGhlIGhvdXIuPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5JbmZyYSB0cmFja2luZyB0aWNrZXRpbmcgc3lzdGVtLjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgY29sbGFwc2libGUgcHktMyB0b2dnbGUgIG1iLTBcIiBkYXRhLWJzLXRvZ2dsZT1cImNvbGxhcHNlXCJcclxuICAgICAgICAgICAgICAgICAgICBkYXRhLWJzLXRhcmdldD1cIiNrdF9qb2JfNF8xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWljb24gbXctMjBweCBidG4tYWN0aXZlLWNvbG9yLXByaW1hcnkgbWUtNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJleHBhbmRQbGFuKCd6b25lJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi1wcmltYXJ5IHN2Zy1pY29uLTFcIiAqbmdJZj1cImV4cGFuZERldGFpbHMuem9uZVwiPjxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBvcGFjaXR5PVwiMC4zXCIgeD1cIjJcIiB5PVwiMlwiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHJ4PVwiNVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3JlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjYuMDEwNFwiIHk9XCIxMC45MjQ3XCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjJcIiByeD1cIjFcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xXCIgKm5nSWY9XCIhZXhwYW5kRGV0YWlscy56b25lXCI+PHN2ZyB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBvcGFjaXR5PVwiMC4zXCIgeD1cIjJcIiB5PVwiMlwiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHJ4PVwiNVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3JlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjEwLjg4OTFcIiB5PVwiMTcuODAzM1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIyXCIgcng9XCIxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtPVwicm90YXRlKC05MCAxMC44ODkxIDE3LjgwMzMpXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiPjwvcmVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiNi4wMTA0MVwiIHk9XCIxMC45MjQ3XCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjJcIiByeD1cIjFcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJ0ZXh0LWdyYXktNzAwIGZ3LWJvbGQgY3Vyc29yLXBvaW50ZXIgbWItMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBUYW5nbyBab25lXHJcbiAgICAgICAgICAgICAgICAgICAgPC9oND5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImt0X2pvYl80XzFcIiBjbGFzcz1cImNvbGxhcHNlIHNob3cgZnMtNiBtcy0xXCIgKm5nSWY9XCJleHBhbmREZXRhaWxzLnpvbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItNCB0ZXh0LWdyYXktNzAwICBzdWJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkhlYXRtYXAgQW5hbHlzaXMuPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5Db25jZW50cmF0aW9uICUgb2YgZWFjaCBvZiB5b3VyIHpvbmUuPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5DdXN0b21lciB0cmFqZWN0b3J5IGR1cmluZyB0aGVpciB2aXNpdCB0byB5b3VyIHN0b3JlLjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cIm0tMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGNvbGxhcHNpYmxlIHB5LTMgdG9nZ2xlICBtYi0wXCIgZGF0YS1icy10b2dnbGU9XCJjb2xsYXBzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtYnMtdGFyZ2V0PVwiI2t0X2pvYl80XzFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWljb24gbXctMjBweCBidG4tYWN0aXZlLWNvbG9yLXByaW1hcnkgbWUtNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZXhwYW5kUGxhbigncmV2b3BzJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tcHJpbWFyeSBzdmctaWNvbi0xXCIgKm5nSWY9XCJleHBhbmREZXRhaWxzLnJldm9wc1wiPjxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBvcGFjaXR5PVwiMC4zXCIgeD1cIjJcIiB5PVwiMlwiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHJ4PVwiNVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiNi4wMTA0XCIgeT1cIjEwLjkyNDdcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMlwiIHJ4PVwiMVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xXCIgKm5nSWY9XCIhZXhwYW5kRGV0YWlscy5yZXZvcHNcIj48c3ZnIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgb3BhY2l0eT1cIjAuM1wiIHg9XCIyXCIgeT1cIjJcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiByeD1cIjVcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcmVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjEwLjg4OTFcIiB5PVwiMTcuODAzM1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIyXCIgcng9XCIxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybT1cInJvdGF0ZSgtOTAgMTAuODg5MSAxNy44MDMzKVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj48L3JlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI2LjAxMDQxXCIgeT1cIjEwLjkyNDdcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMlwiIHJ4PVwiMVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwidGV4dC1ncmF5LTcwMCBmdy1ib2xkIGN1cnNvci1wb2ludGVyIG1iLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhbmdvIFJldm9wc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2g0PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJrdF9qb2JfNF8xXCIgY2xhc3M9XCJjb2xsYXBzZSBzaG93IGZzLTYgbXMtMVwiICpuZ0lmPVwiZXhwYW5kRGV0YWlscy5yZXZvcHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTQgdGV4dC1ncmF5LTcwMCBzdWJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+SWRlbnRpZnlpbmcgbWlzc2VkIG9wcG9ydHVuaXRpZXMgYWNyb3NzIHJlYXNvbnMgbGlrZSBQcmljaW5nLCBTdG9yZSwgUHJvZHVjdCwgU3RhZmZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXRjLjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkN1c3RvbWVyIGRhdGFiYXNlIHNvbHV0aW9uIGZvciByZXRhcmdldGluZy48L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5QT1MgaW50ZWdyYXRpb24gdG8gY2FwdHVyZSBjb252ZXJzaW9uLjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgY29sbGFwc2libGUgcHktMyB0b2dnbGUgIG1iLTBcIiBkYXRhLWJzLXRvZ2dsZT1cImNvbGxhcHNlXCJcclxuICAgICAgICAgICAgICAgICAgICBkYXRhLWJzLXRhcmdldD1cIiNrdF9qb2JfNF8xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWljb24gbXctMjBweCBidG4tYWN0aXZlLWNvbG9yLXByaW1hcnkgbWUtNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJleHBhbmRQbGFuKCdzb3AnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLXByaW1hcnkgc3ZnLWljb24tMVwiICpuZ0lmPVwiZXhwYW5kRGV0YWlscy5zb3BcIj48c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgb3BhY2l0eT1cIjAuM1wiIHg9XCIyXCIgeT1cIjJcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiByeD1cIjVcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI2LjAxMDRcIiB5PVwiMTAuOTI0N1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIyXCIgcng9XCIxXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcmVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMVwiICpuZ0lmPVwiIWV4cGFuZERldGFpbHMuc29wXCI+PHN2ZyB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgb3BhY2l0eT1cIjAuM1wiIHg9XCIyXCIgeT1cIjJcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiByeD1cIjVcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3JlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMTAuODg5MVwiIHk9XCIxNy44MDMzXCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjJcIiByeD1cIjFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybT1cInJvdGF0ZSgtOTAgMTAuODg5MSAxNy44MDMzKVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj48L3JlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiNi4wMTA0MVwiIHk9XCIxMC45MjQ3XCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjJcIiByeD1cIjFcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3JlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJ0ZXh0LWdyYXktNzAwIGZ3LWJvbGQgY3Vyc29yLXBvaW50ZXIgbWItMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBUYW5nbyBTT1BcclxuICAgICAgICAgICAgICAgICAgICA8L2g0PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwia3Rfam9iXzRfMVwiIGNsYXNzPVwiY29sbGFwc2Ugc2hvdyBmcy02IG1zLTFcIiAqbmdJZj1cImV4cGFuZERldGFpbHMuc29wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTQgdGV4dC1ncmF5LTcwMCBzdWJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkRhaWx5IHN0b3JlIG9wZXJhdGlvbi48L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPiBFeHRlbnNpdmUgc3VtbWFyeSBvZiBkYXRhIHBvaW50cyBsaWtlIHN0b3JlIG9wZW4gYW5kIGNsb3NlIHRpbWUuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLTBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGNvbGxhcHNpYmxlIHB5LTMgdG9nZ2xlICBtYi0wXCIgZGF0YS1icy10b2dnbGU9XCJjb2xsYXBzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS1icy10YXJnZXQ9XCIja3Rfam9iXzRfMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1pY29uIG13LTIwcHggYnRuLWFjdGl2ZS1jb2xvci1wcmltYXJ5IG1lLTVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZXhwYW5kUGxhbignc3VwcG9ydCcpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tcHJpbWFyeSBzdmctaWNvbi0xXCIgKm5nSWY9XCJleHBhbmREZXRhaWxzLnN1cHBvcnRcIj48c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgb3BhY2l0eT1cIjAuM1wiIHg9XCIyXCIgeT1cIjJcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiByeD1cIjVcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI2LjAxMDRcIiB5PVwiMTAuOTI0N1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIyXCIgcng9XCIxXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcmVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMVwiICpuZ0lmPVwiIWV4cGFuZERldGFpbHMuc3VwcG9ydFwiPjxzdmcgd2lkdGg9XCIyNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgb3BhY2l0eT1cIjAuM1wiIHg9XCIyXCIgeT1cIjJcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiByeD1cIjVcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIxMC44ODkxXCIgeT1cIjE3LjgwMzNcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMlwiIHJ4PVwiMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybT1cInJvdGF0ZSgtOTAgMTAuODg5MSAxNy44MDMzKVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj48L3JlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjYuMDEwNDFcIiB5PVwiMTAuOTI0N1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIyXCIgcng9XCIxXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcmVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwidGV4dC1ncmF5LTcwMCBmdy1ib2xkIGN1cnNvci1wb2ludGVyIG1iLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgU3VwcG9ydFxyXG4gICAgICAgICAgICAgICAgICAgIDwvaDQ+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJrdF9qb2JfNF8xXCIgY2xhc3M9XCJjb2xsYXBzZSBzaG93IGZzLTYgbXMtMVwiICpuZ0lmPVwiZXhwYW5kRGV0YWlscy5zdXBwb3J0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTQgdGV4dC1ncmF5LTcwMCBzdWJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPiAyNCo3IENDVFYgbW9uaXRvcmluZyBvZiBhbGwgdGhlIGNhbWVyYXMgaW4gYSBzaW5nbGUgc2NyZWVuLjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+TGl2ZSBhbmQgUmVjYXAgdmlkZW8gb3B0aW9uIGZvciB0aGUgZW50aXJlIGRheS5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTYgY29sLW1kLTYgY29sLXNtLTYgXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPHZpZGVvIGNsYXNzPVwidmlkZW8td2lkdGhcIiBtdXRlZCBhdXRvcGxheSBjb250cm9scyBzdHlsZT1cImJvcmRlci1yYWRpdXM6IDIwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSBzcmM9XCJodHRwczovL3RhbmdvZXllLWRhc2hib2FyZC12aWRlby5vYmplY3RzdG9yZS5lMmVuZXR3b3Jrcy5uZXQvdGFuZ28tbWFpbi12aWRlbyUyMDEubXA0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInZpZGVvL21wNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gaHR0cHM6Ly90YW5nby1zdGF0aWNzaXRlLnMzLmFwLXNvdXRoLTEuYW1hem9uYXdzLmNvbS9UYW5nbytFeWVfNzIwcF93aXRoK211c2ljX1RyaW0ubXA0XCIgLS0+XHJcbiAgICAgICAgICAgICAgICA8L3ZpZGVvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGFsaWduLWl0ZW1zLWNlbnRlciBib3JkZXItMCBtdC00XCI+XHJcbiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJjYXJkLXRpdGxlIGFsaWduLWl0ZW1zLXN0YXJ0IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYWluIGZzLWxnLTEgdGV4dC1ncmF5LTgwMFwiPlByb2R1Y3QgV2Fsay1UaHJvdWdoPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBhbGlnbi1pdGVtcy1jZW50ZXIgYm9yZGVyLTAgbXktMiBtcy02XCIgPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzdWJcIj5XZSB0cmFuc2Zvcm0geW91ciBleGlzdGluZyBDQ1RWIGNhbWVyYXMgaW50byBhIHBvd2VyZnVsIHN0b3JlIGFuYWx5dGljcyB0b29sLlxyXG4gICAgICAgICAgICAgICAgICAgIE91ciBpbmR1c3RyeS1maXJzdCBBbCBhbmQgY29tcHV0ZXIgdmlzaW9uIHRlY2hub2xvZ3kgaGVscCBicmFuZHMgaWRlbnRpZnkgbWlzc2VkIHNhbGVcclxuICAgICAgICAgICAgICAgICAgICBvcHBvcnR1bml0aWVzIGFuZCBmb2N1cyBvbiBpbXByb3ZpbmcgY29udmVyc2lvbiByYXRlcyBhY3Jvc3Mgc3RvcmVzLjwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG4iXX0=
@@ -15,13 +15,13 @@ export class ConversionService {
15
15
  this.$stepper.emit(data);
16
16
  console.log(data);
17
17
  }
18
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ConversionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
19
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ConversionService, providedIn: 'root' });
18
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: ConversionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
19
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: ConversionService, providedIn: 'root' });
20
20
  }
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ConversionService, decorators: [{
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: ConversionService, decorators: [{
22
22
  type: Injectable,
23
23
  args: [{
24
24
  providedIn: 'root'
25
25
  }]
26
26
  }], ctorParameters: () => [] });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXV0aC9zcmMvbGliL2NvbXBvbmVudHMvdGFuZ28tYXV0aC1zaWdudXAvc3RlcC9zZXJ2aWNlcy9jb252ZXJzaW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFLL0IsTUFBTSxPQUFPLGlCQUFpQjtJQUNsQixjQUFjLEdBQUcsSUFBSSxPQUFPLEVBQU8sQ0FBQztJQUNyQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUU5QyxRQUFRLENBQW9CO0lBR25DO1FBQ0ksSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBRXZDLENBQUM7SUFDRCxLQUFLLENBQUMsT0FBWTtRQUNkLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFDRCxlQUFlLENBQUMsSUFBUztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3JCLENBQUM7dUdBakJRLGlCQUFpQjsyR0FBakIsaUJBQWlCLGNBRmQsTUFBTTs7MkZBRVQsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbnZlcnNpb25TZXJ2aWNlIHtcclxuICAgIHByaXZhdGUgZmlsdGVyc1N1YmplY3QgPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgICBwdWJsaWMgJGZpbHRlcnMgPSB0aGlzLmZpbHRlcnNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICAgIHB1YmxpYyAkc3RlcHBlcjogRXZlbnRFbWl0dGVyPGFueT47XHJcbiBcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLiRzdGVwcGVyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgICBcclxuICAgIH1cclxuICAgIGFwcGx5KG9wdGlvbnM6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZmlsdGVyc1N1YmplY3QubmV4dChvcHRpb25zKTtcclxuICAgIH1cclxuICAgIGNvbXBsZXRlU3RlcHBlcihkYXRhOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLiRzdGVwcGVyLmVtaXQoZGF0YSk7XHJcbiAgICAgICAgY29uc29sZS5sb2coZGF0YSlcclxuICAgIH1cclxuXHJcbiAgIFxyXG59XHJcbiJdfQ==
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXV0aC9zcmMvbGliL2NvbXBvbmVudHMvdGFuZ28tYXV0aC1zaWdudXAvc3RlcC9zZXJ2aWNlcy9jb252ZXJzaW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFLL0IsTUFBTSxPQUFPLGlCQUFpQjtJQUNsQixjQUFjLEdBQUcsSUFBSSxPQUFPLEVBQU8sQ0FBQztJQUNyQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUU5QyxRQUFRLENBQW9CO0lBR25DO1FBQ0ksSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBRXZDLENBQUM7SUFDRCxLQUFLLENBQUMsT0FBWTtRQUNkLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFDRCxlQUFlLENBQUMsSUFBUztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3JCLENBQUM7d0dBakJRLGlCQUFpQjs0R0FBakIsaUJBQWlCLGNBRmQsTUFBTTs7NEZBRVQsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbnZlcnNpb25TZXJ2aWNlIHtcclxuICAgIHByaXZhdGUgZmlsdGVyc1N1YmplY3QgPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgICBwdWJsaWMgJGZpbHRlcnMgPSB0aGlzLmZpbHRlcnNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICAgIHB1YmxpYyAkc3RlcHBlcjogRXZlbnRFbWl0dGVyPGFueT47XHJcbiBcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLiRzdGVwcGVyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgICBcclxuICAgIH1cclxuICAgIGFwcGx5KG9wdGlvbnM6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZmlsdGVyc1N1YmplY3QubmV4dChvcHRpb25zKTtcclxuICAgIH1cclxuICAgIGNvbXBsZXRlU3RlcHBlcihkYXRhOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLiRzdGVwcGVyLmVtaXQoZGF0YSk7XHJcbiAgICAgICAgY29uc29sZS5sb2coZGF0YSlcclxuICAgIH1cclxuXHJcbiAgIFxyXG59XHJcbiJdfQ==