ng-easycommerce-v18 0.0.7 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7,6 +7,7 @@
7
7
  "accessories": "Accesorios",
8
8
  "accordian-details": "detalles de acordeón",
9
9
  "account-info": "Información de cuenta",
10
+ "accept-terms": "Acepto los",
10
11
  "action": "Acción",
11
12
  "actual-password": "Contraseña actual",
12
13
  "add-to-cart": "Agregar",
@@ -310,6 +311,7 @@
310
311
  "subtotal": "Subtotal",
311
312
  "taxes": "Impuestos",
312
313
  "taxon": "Categoría",
314
+ "terms-and-conditions": "Términos y condiciones",
313
315
  "thanks-details": "Su compra se ha realizado con éxito. A continuación recibirá un mail con los detalles de su compra",
314
316
  "thanks-for-buying": "Gracias por su compra",
315
317
  "thanks-for-register": "Gracias por registrarse",
@@ -379,6 +381,8 @@
379
381
  "exit": "Salir",
380
382
  "start-impersonating": "Operando como: {{ customer }}",
381
383
  "stop-impersonating": "No se encuentra operando por ninguno de sus clientes",
384
+ "must-accept-terms": "Debe aceptar los términos y condiciones para continuar.",
385
+ "subscribe-newsletter": "Suscribirse al newsletter",
382
386
  "must-select-customer": "Debe seleccionar un cliente para ejecutar esta acción.",
383
387
  "new-orders": "Pedidos nuevos",
384
388
  "operate-as": "Operar como",
@@ -1,4 +1,4 @@
1
- import { Component, EventEmitter, inject, Input, Output } from '@angular/core';
1
+ import { Component, EventEmitter, inject, Input, Output, signal } from '@angular/core';
2
2
  import { AnalyticsService, AuthService, ToastService } from '../../../ec-services';
3
3
  import { Router } from '@angular/router';
4
4
  import { FormBuilder, ReactiveFormsModule, Validators } from '@angular/forms';
@@ -23,7 +23,15 @@ export class RegisterFormEcComponent {
23
23
  /**
24
24
  * Contiene el formulario de registro.
25
25
  */
26
- form;
26
+ registerForm = signal(this._formBuilder.group({
27
+ firstName: ['', Validators.required],
28
+ lastName: ['', Validators.required],
29
+ email: ['', [Validators.required, Validators.email]],
30
+ plainPassword: ['', Validators.required],
31
+ plainPassword2: ['', Validators.required],
32
+ newsletter: [false],
33
+ terms: ['', Validators.required],
34
+ }));
27
35
  /**
28
36
  * Para indicar que se esta procesando la solicitud de registro.
29
37
  */
@@ -33,15 +41,6 @@ export class RegisterFormEcComponent {
33
41
  */
34
42
  success = false;
35
43
  constructor() {
36
- this.form = this._formBuilder.group({
37
- firstName: ['', Validators.required],
38
- lastName: ['', Validators.required],
39
- email: ['', [Validators.required, Validators.email]],
40
- plainPassword: ['', Validators.required],
41
- plainPassword2: ['', Validators.required],
42
- newsletter: [false],
43
- terms: ['', Validators.required],
44
- });
45
44
  }
46
45
  /**
47
46
  * Registra un usuario.
@@ -51,25 +50,25 @@ export class RegisterFormEcComponent {
51
50
  register(event) {
52
51
  event.preventDefault();
53
52
  this.loading = true;
54
- if (!this.form.valid) {
53
+ if (!this.registerForm.valid) {
55
54
  this._toastService.show('fields-incomplete');
56
55
  this.loading = false;
57
56
  return;
58
57
  }
59
58
  ;
60
- if (this.form.value.plainPassword != this.form.value.plainPassword2) {
59
+ if (this.registerForm.value.plainPassword != this.registerForm.value.plainPassword2) {
61
60
  this._toastService.show('mismatched-password');
62
61
  this.loading = false;
63
62
  return;
64
63
  }
65
- if (this.form.valid) {
66
- firstValueFrom(this._authService.singUp(this.form.value)).then(res => {
64
+ if (this.registerForm.valid) {
65
+ firstValueFrom(this._authService.singUp(this.registerForm.value)).then(res => {
67
66
  this.loading = false;
68
67
  this._toastService.success('register-ok');
69
68
  this._analyticsService.callEvent('sign_up', {
70
- firstName: this.form.value.firstName,
71
- lastName: this.form.value.lastName,
72
- email: this.form.value.email
69
+ firstName: this.registerForm.value.firstName,
70
+ lastName: this.registerForm.value.lastName,
71
+ email: this.registerForm.value.email
73
72
  });
74
73
  this.success = true;
75
74
  this.ready.emit(true);
@@ -92,14 +91,14 @@ export class RegisterFormEcComponent {
92
91
  }
93
92
  }
94
93
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: RegisterFormEcComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
95
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: RegisterFormEcComponent, isStandalone: true, selector: "app-register-form-ec", inputs: { redirect: "redirect" }, outputs: { ready: "ready" }, ngImport: i0, template: "<div class=\"w-100 pl-md-5 position-relative\" id=\"register\">\r\n <div class=\"py-2\">\r\n <h5>CREAR CUENTA</h5>\r\n </div>\r\n <form id=\"registro\" [formGroup]=\"form\" (submit)=\"register($event)\">\r\n <div class=\"form-group\">\r\n <label for=\"\" class=\"form-label\">NOMBRE</label>\r\n <input formControlName=\"firstName\" class=\"form-control rounded-0\" type=\"text\" placeholder=\"Nombre\">\r\n </div>\r\n <div class=\"form-group\">\r\n <label for=\"\" class=\"form-label\">APELLIDO</label>\r\n <input formControlName=\"lastName\" class=\"form-control rounded-0\" type=\"text\" placeholder=\"Apellido\">\r\n </div>\r\n <div class=\"form-group\">\r\n <label for=\"\" class=\"\">CORREO ELECTRONICO</label>\r\n <input formControlName=\"email\" email required class=\"form-control rounded-0\" type=\"email\"\r\n placeholder=\"Correo electr\u00F3nico\">\r\n </div>\r\n <div class=\"form-group\">\r\n <label for=\"\" class=\"form-label\">CONTRASE\u00D1A</label>\r\n <input formControlName=\"plainPassword\" required class=\"form-control rounded-0\" type=\"password\"\r\n placeholder=\"Contrase\u00F1a\">\r\n </div>\r\n <div class=\"form-group\">\r\n <label for=\"\" class=\"form-label\">REPETIR CONTRASE\u00D1A</label>\r\n <input formControlName=\"plainPassword2\" required class=\"form-control rounded-0\" type=\"password\"\r\n placeholder=\"Repetir contrase\u00F1a\">\r\n </div>\r\n\r\n <div class=\"custom-control d-flex flex-row form-check custom-checkbox mr-sm-2 mt-4 mb-2\">\r\n <input type=\"checkbox\" formControlName=\"terms\" required class=\"custom-control-input form-check-input\" name=\"Color2\"\r\n id=\"Color2\">\r\n <label class=\"custom-control-label ff-ubuntu-light font-sm form-check-label\" for=\"Color2\"> He\r\n le\u00EDdo y acepto las pol\u00EDticas de privacidad y los t\u00E9rminos y\r\n condiciones</label>\r\n </div>\r\n\r\n <div class=\"custom-control d-flex flex-row form-check custom-checkbox mr-sm-2 mb-4\">\r\n <input type=\"checkbox\" formControlName=\"newsletter\" class=\"custom-control-input form-check-input\" name=\"Color3\" id=\"Color3\">\r\n <label class=\"custom-control-label form-check-label ff-ubuntu-light font-sm\" for=\"Color3\">\r\n Suscripci\u00F3n al Newsletter</label>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-12\">\r\n <button [disabled]=\"form.invalid\" type=\"submit\"\r\n class=\"btn btn-primary px-5 py-2 h-fit\">CREAR</button>\r\n </div>\r\n </div>\r\n </form>\r\n @if(loading){\r\n <app-loading-section-ec />\r\n }\r\n \r\n</div>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.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: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.CheckboxRequiredValidator, selector: "input[type=checkbox][required][formControlName],input[type=checkbox][required][formControl],input[type=checkbox][required][ngModel]" }, { kind: "directive", type: i1.EmailValidator, selector: "[email][formControlName],[email][formControl],[email][ngModel]", inputs: ["email"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: LoadingSectionEcComponent, selector: "app-loading-section-ec" }] });
94
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: RegisterFormEcComponent, isStandalone: true, selector: "app-register-form-ec", inputs: { redirect: "redirect" }, outputs: { ready: "ready" }, ngImport: i0, template: "<div class=\"w-100 pl-md-5 position-relative\" id=\"register\">\r\n <div class=\"py-2\">\r\n <h5>CREAR CUENTA</h5>\r\n </div>\r\n <form id=\"registro\" [formGroup]=\"registerForm\" (submit)=\"register($event)\">\r\n <div class=\"form-group\">\r\n <label for=\"\" class=\"form-label\">NOMBRE</label>\r\n <input formControlName=\"firstName\" class=\"form-control rounded-0\" type=\"text\" placeholder=\"Nombre\">\r\n </div>\r\n <div class=\"form-group\">\r\n <label for=\"\" class=\"form-label\">APELLIDO</label>\r\n <input formControlName=\"lastName\" class=\"form-control rounded-0\" type=\"text\" placeholder=\"Apellido\">\r\n </div>\r\n <div class=\"form-group\">\r\n <label for=\"\" class=\"\">CORREO ELECTRONICO</label>\r\n <input formControlName=\"email\" email required class=\"form-control rounded-0\" type=\"email\"\r\n placeholder=\"Correo electr\u00F3nico\">\r\n </div>\r\n <div class=\"form-group\">\r\n <label for=\"\" class=\"form-label\">CONTRASE\u00D1A</label>\r\n <input formControlName=\"plainPassword\" required class=\"form-control rounded-0\" type=\"password\"\r\n placeholder=\"Contrase\u00F1a\">\r\n </div>\r\n <div class=\"form-group\">\r\n <label for=\"\" class=\"form-label\">REPETIR CONTRASE\u00D1A</label>\r\n <input formControlName=\"plainPassword2\" required class=\"form-control rounded-0\" type=\"password\"\r\n placeholder=\"Repetir contrase\u00F1a\">\r\n </div>\r\n\r\n <div class=\"custom-control d-flex flex-row form-check custom-checkbox mr-sm-2 mt-4 mb-2\">\r\n <input type=\"checkbox\" formControlName=\"terms\" required class=\"custom-control-input form-check-input\" name=\"Color2\"\r\n id=\"Color2\">\r\n <label class=\"custom-control-label ff-ubuntu-light font-sm form-check-label\" for=\"Color2\"> He\r\n le\u00EDdo y acepto las pol\u00EDticas de privacidad y los t\u00E9rminos y\r\n condiciones</label>\r\n </div>\r\n\r\n <div class=\"custom-control d-flex flex-row form-check custom-checkbox mr-sm-2 mb-4\">\r\n <input type=\"checkbox\" formControlName=\"newsletter\" class=\"custom-control-input form-check-input\" name=\"Color3\" id=\"Color3\">\r\n <label class=\"custom-control-label form-check-label ff-ubuntu-light font-sm\" for=\"Color3\">\r\n Suscripci\u00F3n al Newsletter</label>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-12\">\r\n <button [disabled]=\"registerForm.invalid\" type=\"submit\"\r\n class=\"btn btn-primary px-5 py-2 h-fit\">CREAR</button>\r\n </div>\r\n </div>\r\n </form>\r\n @if(loading){\r\n <app-loading-section-ec />\r\n }\r\n \r\n</div>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.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: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.CheckboxRequiredValidator, selector: "input[type=checkbox][required][formControlName],input[type=checkbox][required][formControl],input[type=checkbox][required][ngModel]" }, { kind: "directive", type: i1.EmailValidator, selector: "[email][formControlName],[email][formControl],[email][ngModel]", inputs: ["email"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: LoadingSectionEcComponent, selector: "app-loading-section-ec" }] });
96
95
  }
97
96
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: RegisterFormEcComponent, decorators: [{
98
97
  type: Component,
99
- args: [{ selector: 'app-register-form-ec', standalone: true, imports: [ReactiveFormsModule, LoadingSectionEcComponent], template: "<div class=\"w-100 pl-md-5 position-relative\" id=\"register\">\r\n <div class=\"py-2\">\r\n <h5>CREAR CUENTA</h5>\r\n </div>\r\n <form id=\"registro\" [formGroup]=\"form\" (submit)=\"register($event)\">\r\n <div class=\"form-group\">\r\n <label for=\"\" class=\"form-label\">NOMBRE</label>\r\n <input formControlName=\"firstName\" class=\"form-control rounded-0\" type=\"text\" placeholder=\"Nombre\">\r\n </div>\r\n <div class=\"form-group\">\r\n <label for=\"\" class=\"form-label\">APELLIDO</label>\r\n <input formControlName=\"lastName\" class=\"form-control rounded-0\" type=\"text\" placeholder=\"Apellido\">\r\n </div>\r\n <div class=\"form-group\">\r\n <label for=\"\" class=\"\">CORREO ELECTRONICO</label>\r\n <input formControlName=\"email\" email required class=\"form-control rounded-0\" type=\"email\"\r\n placeholder=\"Correo electr\u00F3nico\">\r\n </div>\r\n <div class=\"form-group\">\r\n <label for=\"\" class=\"form-label\">CONTRASE\u00D1A</label>\r\n <input formControlName=\"plainPassword\" required class=\"form-control rounded-0\" type=\"password\"\r\n placeholder=\"Contrase\u00F1a\">\r\n </div>\r\n <div class=\"form-group\">\r\n <label for=\"\" class=\"form-label\">REPETIR CONTRASE\u00D1A</label>\r\n <input formControlName=\"plainPassword2\" required class=\"form-control rounded-0\" type=\"password\"\r\n placeholder=\"Repetir contrase\u00F1a\">\r\n </div>\r\n\r\n <div class=\"custom-control d-flex flex-row form-check custom-checkbox mr-sm-2 mt-4 mb-2\">\r\n <input type=\"checkbox\" formControlName=\"terms\" required class=\"custom-control-input form-check-input\" name=\"Color2\"\r\n id=\"Color2\">\r\n <label class=\"custom-control-label ff-ubuntu-light font-sm form-check-label\" for=\"Color2\"> He\r\n le\u00EDdo y acepto las pol\u00EDticas de privacidad y los t\u00E9rminos y\r\n condiciones</label>\r\n </div>\r\n\r\n <div class=\"custom-control d-flex flex-row form-check custom-checkbox mr-sm-2 mb-4\">\r\n <input type=\"checkbox\" formControlName=\"newsletter\" class=\"custom-control-input form-check-input\" name=\"Color3\" id=\"Color3\">\r\n <label class=\"custom-control-label form-check-label ff-ubuntu-light font-sm\" for=\"Color3\">\r\n Suscripci\u00F3n al Newsletter</label>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-12\">\r\n <button [disabled]=\"form.invalid\" type=\"submit\"\r\n class=\"btn btn-primary px-5 py-2 h-fit\">CREAR</button>\r\n </div>\r\n </div>\r\n </form>\r\n @if(loading){\r\n <app-loading-section-ec />\r\n }\r\n \r\n</div>\r\n" }]
98
+ args: [{ selector: 'app-register-form-ec', standalone: true, imports: [ReactiveFormsModule, LoadingSectionEcComponent], template: "<div class=\"w-100 pl-md-5 position-relative\" id=\"register\">\r\n <div class=\"py-2\">\r\n <h5>CREAR CUENTA</h5>\r\n </div>\r\n <form id=\"registro\" [formGroup]=\"registerForm\" (submit)=\"register($event)\">\r\n <div class=\"form-group\">\r\n <label for=\"\" class=\"form-label\">NOMBRE</label>\r\n <input formControlName=\"firstName\" class=\"form-control rounded-0\" type=\"text\" placeholder=\"Nombre\">\r\n </div>\r\n <div class=\"form-group\">\r\n <label for=\"\" class=\"form-label\">APELLIDO</label>\r\n <input formControlName=\"lastName\" class=\"form-control rounded-0\" type=\"text\" placeholder=\"Apellido\">\r\n </div>\r\n <div class=\"form-group\">\r\n <label for=\"\" class=\"\">CORREO ELECTRONICO</label>\r\n <input formControlName=\"email\" email required class=\"form-control rounded-0\" type=\"email\"\r\n placeholder=\"Correo electr\u00F3nico\">\r\n </div>\r\n <div class=\"form-group\">\r\n <label for=\"\" class=\"form-label\">CONTRASE\u00D1A</label>\r\n <input formControlName=\"plainPassword\" required class=\"form-control rounded-0\" type=\"password\"\r\n placeholder=\"Contrase\u00F1a\">\r\n </div>\r\n <div class=\"form-group\">\r\n <label for=\"\" class=\"form-label\">REPETIR CONTRASE\u00D1A</label>\r\n <input formControlName=\"plainPassword2\" required class=\"form-control rounded-0\" type=\"password\"\r\n placeholder=\"Repetir contrase\u00F1a\">\r\n </div>\r\n\r\n <div class=\"custom-control d-flex flex-row form-check custom-checkbox mr-sm-2 mt-4 mb-2\">\r\n <input type=\"checkbox\" formControlName=\"terms\" required class=\"custom-control-input form-check-input\" name=\"Color2\"\r\n id=\"Color2\">\r\n <label class=\"custom-control-label ff-ubuntu-light font-sm form-check-label\" for=\"Color2\"> He\r\n le\u00EDdo y acepto las pol\u00EDticas de privacidad y los t\u00E9rminos y\r\n condiciones</label>\r\n </div>\r\n\r\n <div class=\"custom-control d-flex flex-row form-check custom-checkbox mr-sm-2 mb-4\">\r\n <input type=\"checkbox\" formControlName=\"newsletter\" class=\"custom-control-input form-check-input\" name=\"Color3\" id=\"Color3\">\r\n <label class=\"custom-control-label form-check-label ff-ubuntu-light font-sm\" for=\"Color3\">\r\n Suscripci\u00F3n al Newsletter</label>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-12\">\r\n <button [disabled]=\"registerForm.invalid\" type=\"submit\"\r\n class=\"btn btn-primary px-5 py-2 h-fit\">CREAR</button>\r\n </div>\r\n </div>\r\n </form>\r\n @if(loading){\r\n <app-loading-section-ec />\r\n }\r\n \r\n</div>\r\n" }]
100
99
  }], ctorParameters: () => [], propDecorators: { redirect: [{
101
100
  type: Input
102
101
  }], ready: [{
103
102
  type: Output
104
103
  }] } });
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXItZm9ybS1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9hdXRoLWVjL3JlZ2lzdGVyLWZvcm0tZWMvcmVnaXN0ZXItZm9ybS1lYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9hdXRoLWVjL3JlZ2lzdGVyLWZvcm0tZWMvcmVnaXN0ZXItZm9ybS1lYy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25GLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFhLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQVN0QyxNQUFNLE9BQU8sdUJBQXVCO0lBQzNCLFlBQVksR0FBZ0IsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2hELGFBQWEsR0FBaUIsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ25ELE9BQU8sR0FBVyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsaUJBQWlCLEdBQXFCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lB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QUNuQyxDQUFDO1lBQ0YsQ0FBQyxFQUNELEdBQUcsQ0FBQyxFQUFFO2dCQUNMLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFBO2dCQUNwQixJQUFHLEdBQUcsQ0FBQyxNQUFNLElBQUksR0FBRyxFQUFDLENBQUM7b0JBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLENBQUE7Z0JBQ3BELENBQUM7cUJBQU0sQ0FBQztvQkFDUCxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFBO2dCQUNqRCxDQUFDO1lBQ0YsQ0FBQyxDQUNELENBQUE7UUFDRixDQUFDO2FBQU0sQ0FBQztZQUNQLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFBO1lBQ3ZDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFBO1FBQ3JCLENBQUM7SUFDRixDQUFDO3VHQXJGVyx1QkFBdUI7MkZBQXZCLHVCQUF1QiwrSUNkcEMsOHpGQXVEQSx5REQ3Q1csbUJBQW1CLHNyREFBRSx5QkFBeUI7OzJGQUk1Qyx1QkFBdUI7a0JBUG5DLFNBQVM7K0JBQ0Msc0JBQXNCLGNBQ3BCLElBQUksV0FDUCxDQUFDLG1CQUFtQixFQUFFLHlCQUF5QixDQUFDO3dEQWFoRCxRQUFRO3NCQUFoQixLQUFLO2dCQUlJLEtBQUs7c0JBQWQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBbmFseXRpY3NTZXJ2aWNlLCBBdXRoU2VydmljZSwgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZWMtc2VydmljZXMnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBMb2FkaW5nU2VjdGlvbkVjQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL3dpZGdldHMtZWMvbG9hZGluZ1wiO1xyXG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdhcHAtcmVnaXN0ZXItZm9ybS1lYycsXHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRpbXBvcnRzOiBbUmVhY3RpdmVGb3Jtc01vZHVsZSwgTG9hZGluZ1NlY3Rpb25FY0NvbXBvbmVudF0sXHJcblx0dGVtcGxhdGVVcmw6ICcuL3JlZ2lzdGVyLWZvcm0tZWMuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWycuL3JlZ2lzdGVyLWZvcm0tZWMuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVnaXN0ZXJGb3JtRWNDb21wb25lbnQge1xyXG5cdHByaXZhdGUgX2F1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSA9IGluamVjdChBdXRoU2VydmljZSk7XHJcblx0cHJpdmF0ZSBfdG9hc3RTZXJ2aWNlOiBUb2FzdFNlcnZpY2UgPSBpbmplY3QoVG9hc3RTZXJ2aWNlKTtcclxuXHRwcml2YXRlIF9yb3V0ZXI6IFJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xyXG5cdHByaXZhdGUgX2FuYWx5dGljc1NlcnZpY2U6IEFuYWx5dGljc1NlcnZpY2UgPSBpbmplY3QoQW5hbHl0aWNzU2VydmljZSk7XHJcblx0cHJpdmF0ZSBfZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyID0gaW5qZWN0KEZvcm1CdWlsZGVyKTtcclxuXHQgLyoqXHJcbiAgICAgKiBJbmRpY2Egc2kgZGViZSByZWRpcmVjY2lvbmFyIG8gc2UgcXVlZGEgZW4gbGEgbWlzbWEgcGFudGFsbGFcclxuICAgICAqL1xyXG5cdEBJbnB1dCgpIHJlZGlyZWN0OmJvb2xlYW4gPSB0cnVlO1xyXG5cdC8qKlxyXG4gICAgICogUGFyYSBxdWUgc2UgcHVlZGUgY2FwdHVyYXIgZWwgZXN0YWRvIGRlIGxhIHBldGljacOzbiBkZSByZWdpc3Ryby5cclxuICAgICAqL1xyXG5cdEBPdXRwdXQoKSByZWFkeSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHQvKipcclxuXHQgKiBDb250aWVuZSBlbCBmb3JtdWxhcmlvIGRlIHJlZ2lzdHJvLlxyXG5cdCAqL1xyXG5cdHB1YmxpYyBmb3JtOiBGb3JtR3JvdXA7XHJcblx0LyoqXHJcblx0ICogUGFyYSBpbmRpY2FyIHF1ZSBzZSBlc3RhIHByb2Nlc2FuZG8gbGEgc29saWNpdHVkIGRlIHJlZ2lzdHJvLlxyXG5cdCAqL1xyXG5cdHB1YmxpYyBsb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcblx0LyoqXHJcblx0ICogUGFyYSBpbmRpY2FyIGVsIGV4aXRvIGRlIGxhIHNvbGljaXR1ZCBkZSByZWdpc3Ryby5cclxuXHQgKi9cclxuXHRwdWJsaWMgc3VjY2VzczogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuXHRjb25zdHJ1Y3RvcigpIHtcclxuXHRcdHRoaXMuZm9ybSA9IHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwKHtcclxuXHRcdFx0Zmlyc3ROYW1lOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG5cdFx0XHRsYXN0TmFtZTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuXHRcdFx0ZW1haWw6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMuZW1haWxdXSxcclxuXHRcdFx0cGxhaW5QYXNzd29yZDogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuXHRcdFx0cGxhaW5QYXNzd29yZDI6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcblx0XHRcdG5ld3NsZXR0ZXI6IFtmYWxzZV0sXHJcblx0XHRcdHRlcm1zOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG5cdFx0fSk7XHJcblx0fVxyXG5cdC8qKlxyXG5cdCAqIFJlZ2lzdHJhIHVuIHVzdWFyaW8uXHJcblx0ICogQHBhcmFtIGV2ZW50IFxyXG5cdCAqIEByZXR1cm5zIFxyXG5cdCAqL1xyXG5cdHJlZ2lzdGVyKGV2ZW50OiBFdmVudCl7XHJcblx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cdFx0dGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuXHRcdGlmICghdGhpcy5mb3JtLnZhbGlkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3RvYXN0U2VydmljZS5zaG93KCdmaWVsZHMtaW5jb21wbGV0ZScpO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfTtcclxuXHRcdGlmICh0aGlzLmZvcm0udmFsdWUucGxhaW5QYXNzd29yZCAhPSB0aGlzLmZvcm0udmFsdWUucGxhaW5QYXNzd29yZDIpIHtcclxuICAgICAgICAgICAgdGhpcy5fdG9hc3RTZXJ2aWNlLnNob3coJ21pc21hdGNoZWQtcGFzc3dvcmQnKTtcclxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2VcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHRcdGlmKHRoaXMuZm9ybS52YWxpZCl7XHJcblx0XHRcdGZpcnN0VmFsdWVGcm9tKHRoaXMuX2F1dGhTZXJ2aWNlLnNpbmdVcCh0aGlzLmZvcm0udmFsdWUpKS50aGVuKFxyXG5cdFx0XHRcdHJlcyA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLmxvYWRpbmcgPSBmYWxzZVxyXG5cdFx0XHRcdFx0dGhpcy5fdG9hc3RTZXJ2aWNlLnN1Y2Nlc3MoJ3JlZ2lzdGVyLW9rJylcclxuXHRcdFx0XHRcdHRoaXMuX2FuYWx5dGljc1NlcnZpY2UuY2FsbEV2ZW50KCdzaWduX3VwJywge1xyXG5cdFx0XHRcdFx0XHRmaXJzdE5hbWU6IHRoaXMuZm9ybS52YWx1ZS5maXJzdE5hbWUsXHJcblx0XHRcdFx0XHRcdGxhc3ROYW1lOiB0aGlzLmZvcm0udmFsdWUubGFzdE5hbWUsXHJcblx0XHRcdFx0XHRcdGVtYWlsOiB0aGlzLmZvcm0udmFsdWUuZW1haWxcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHR0aGlzLnN1Y2Nlc3MgPSB0cnVlXHJcblx0XHRcdFx0XHR0aGlzLnJlYWR5LmVtaXQodHJ1ZSlcclxuXHRcdFx0XHRcdGlmKHRoaXMucmVkaXJlY3Qpe1xyXG5cdFx0XHRcdFx0XHR0aGlzLl9yb3V0ZXIubmF2aWdhdGVCeVVybCgnaG9tZScpXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHRlcnIgPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy5sb2FkaW5nID0gZmFsc2VcclxuXHRcdFx0XHRcdGlmKGVyci5zdGF0dXMgPT0gNDAwKXtcclxuXHRcdFx0XHRcdFx0dGhpcy5fdG9hc3RTZXJ2aWNlLnNob3coJ2VtYWlsLWFscmVhZHktcmVnaXN0ZXJlZCcpXHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHR0aGlzLl90b2FzdFNlcnZpY2UuZXJyb3IoJ2VtYWlsLXJlZ2lzdGVyLWVycm9yJylcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdClcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMuX3RvYXN0U2VydmljZS5zaG93KCdpbnZhbGlkLWZvcm0nKVxyXG5cdFx0XHR0aGlzLmxvYWRpbmcgPSBmYWxzZVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInctMTAwIHBsLW1kLTUgcG9zaXRpb24tcmVsYXRpdmVcIiBpZD1cInJlZ2lzdGVyXCI+XHJcbiAgPGRpdiBjbGFzcz1cInB5LTJcIj5cclxuICAgICAgPGg1PkNSRUFSIENVRU5UQTwvaDU+XHJcbiAgPC9kaXY+XHJcbiAgPGZvcm0gaWQ9XCJyZWdpc3Ryb1wiIFtmb3JtR3JvdXBdPVwiZm9ybVwiIChzdWJtaXQpPVwicmVnaXN0ZXIoJGV2ZW50KVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgPGxhYmVsIGZvcj1cIlwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPk5PTUJSRTwvbGFiZWw+XHJcbiAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZmlyc3ROYW1lXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgcm91bmRlZC0wXCIgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIk5vbWJyZVwiPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5BUEVMTElETzwvbGFiZWw+XHJcbiAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwibGFzdE5hbWVcIiBjbGFzcz1cImZvcm0tY29udHJvbCByb3VuZGVkLTBcIiB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiQXBlbGxpZG9cIj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICA8bGFiZWwgZm9yPVwiXCIgY2xhc3M9XCJcIj5DT1JSRU8gRUxFQ1RST05JQ088L2xhYmVsPlxyXG4gICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImVtYWlsXCIgZW1haWwgcmVxdWlyZWQgY2xhc3M9XCJmb3JtLWNvbnRyb2wgcm91bmRlZC0wXCIgdHlwZT1cImVtYWlsXCJcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkNvcnJlbyBlbGVjdHLDs25pY29cIj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICA8bGFiZWwgZm9yPVwiXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+Q09OVFJBU0XDkUE8L2xhYmVsPlxyXG4gICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cInBsYWluUGFzc3dvcmRcIiByZXF1aXJlZCBjbGFzcz1cImZvcm0tY29udHJvbCByb3VuZGVkLTBcIiB0eXBlPVwicGFzc3dvcmRcIlxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiQ29udHJhc2XDsWFcIj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICA8bGFiZWwgZm9yPVwiXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+UkVQRVRJUiBDT05UUkFTRcORQTwvbGFiZWw+XHJcbiAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwicGxhaW5QYXNzd29yZDJcIiByZXF1aXJlZCBjbGFzcz1cImZvcm0tY29udHJvbCByb3VuZGVkLTBcIiB0eXBlPVwicGFzc3dvcmRcIlxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiUmVwZXRpciBjb250cmFzZcOxYVwiPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjdXN0b20tY29udHJvbCBkLWZsZXggZmxleC1yb3cgZm9ybS1jaGVjayBjdXN0b20tY2hlY2tib3ggbXItc20tMiBtdC00IG1iLTJcIj5cclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBmb3JtQ29udHJvbE5hbWU9XCJ0ZXJtc1wiIHJlcXVpcmVkIGNsYXNzPVwiY3VzdG9tLWNvbnRyb2wtaW5wdXQgZm9ybS1jaGVjay1pbnB1dFwiIG5hbWU9XCJDb2xvcjJcIlxyXG4gICAgICAgICAgICAgIGlkPVwiQ29sb3IyXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjdXN0b20tY29udHJvbC1sYWJlbCBmZi11YnVudHUtbGlnaHQgZm9udC1zbSBmb3JtLWNoZWNrLWxhYmVsXCIgZm9yPVwiQ29sb3IyXCI+IEhlXHJcbiAgICAgICAgICAgICAgbGXDrWRvIHkgYWNlcHRvIGxhcyBwb2zDrXRpY2FzIGRlIHByaXZhY2lkYWQgeSBsb3MgdMOpcm1pbm9zIHlcclxuICAgICAgICAgICAgICBjb25kaWNpb25lczwvbGFiZWw+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImN1c3RvbS1jb250cm9sIGQtZmxleCBmbGV4LXJvdyBmb3JtLWNoZWNrIGN1c3RvbS1jaGVja2JveCBtci1zbS0yIG1iLTRcIj5cclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBmb3JtQ29udHJvbE5hbWU9XCJuZXdzbGV0dGVyXCIgY2xhc3M9XCJjdXN0b20tY29udHJvbC1pbnB1dCBmb3JtLWNoZWNrLWlucHV0XCIgbmFtZT1cIkNvbG9yM1wiIGlkPVwiQ29sb3IzXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjdXN0b20tY29udHJvbC1sYWJlbCBmb3JtLWNoZWNrLWxhYmVsIGZmLXVidW50dS1saWdodCBmb250LXNtXCIgZm9yPVwiQ29sb3IzXCI+XHJcbiAgICAgICAgICAgICAgU3VzY3JpcGNpw7NuIGFsIE5ld3NsZXR0ZXI8L2xhYmVsPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJmb3JtLmludmFsaWRcIiB0eXBlPVwic3VibWl0XCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgcHgtNSBweS0yIGgtZml0XCI+Q1JFQVI8L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICA8L2Zvcm0+XHJcbiAgQGlmKGxvYWRpbmcpe1xyXG4gICAgPGFwcC1sb2FkaW5nLXNlY3Rpb24tZWMgLz5cclxuICB9XHJcbiAgXHJcbjwvZGl2PlxyXG4iXX0=
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXItZm9ybS1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9hdXRoLWVjL3JlZ2lzdGVyLWZvcm0tZWMvcmVnaXN0ZXItZm9ybS1lYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9hdXRoLWVjL3JlZ2lzdGVyLWZvcm0tZWMvcmVnaXN0ZXItZm9ybS1lYy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0YsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBYSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFTdEMsTUFBTSxPQUFPLHVCQUF1QjtJQUMzQixZQUFZLEdBQWdCLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNoRCxhQUFhLEdBQWlCLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNuRCxPQUFPLEdBQVcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLGlCQUFpQixHQUFxQixNQUFNLENBQUMsZ0JBQWdCLENB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QkFDbkMsQ0FBQztZQUNGLENBQUMsRUFDRCxHQUFHLENBQUMsRUFBRTtnQkFDTCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQTtnQkFDcEIsSUFBRyxHQUFHLENBQUMsTUFBTSxJQUFJLEdBQUcsRUFBQyxDQUFDO29CQUNyQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxDQUFBO2dCQUNwRCxDQUFDO3FCQUFNLENBQUM7b0JBQ1AsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQTtnQkFDakQsQ0FBQztZQUNGLENBQUMsQ0FDRCxDQUFBO1FBQ0YsQ0FBQzthQUFNLENBQUM7WUFDUCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQTtZQUN2QyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQTtRQUNyQixDQUFDO0lBQ0YsQ0FBQzt1R0F2RlcsdUJBQXVCOzJGQUF2Qix1QkFBdUIsK0lDZHBDLDgwRkF1REEseUREN0NXLG1CQUFtQixzckRBQUUseUJBQXlCOzsyRkFJNUMsdUJBQXVCO2tCQVBuQyxTQUFTOytCQUNDLHNCQUFzQixjQUNwQixJQUFJLFdBQ1AsQ0FBQyxtQkFBbUIsRUFBRSx5QkFBeUIsQ0FBQzt3REFhaEQsUUFBUTtzQkFBaEIsS0FBSztnQkFJSSxLQUFLO3NCQUFkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBbmFseXRpY3NTZXJ2aWNlLCBBdXRoU2VydmljZSwgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZWMtc2VydmljZXMnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBMb2FkaW5nU2VjdGlvbkVjQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL3dpZGdldHMtZWMvbG9hZGluZ1wiO1xyXG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdhcHAtcmVnaXN0ZXItZm9ybS1lYycsXHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRpbXBvcnRzOiBbUmVhY3RpdmVGb3Jtc01vZHVsZSwgTG9hZGluZ1NlY3Rpb25FY0NvbXBvbmVudF0sXHJcblx0dGVtcGxhdGVVcmw6ICcuL3JlZ2lzdGVyLWZvcm0tZWMuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWycuL3JlZ2lzdGVyLWZvcm0tZWMuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVnaXN0ZXJGb3JtRWNDb21wb25lbnQge1xyXG5cdHByaXZhdGUgX2F1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSA9IGluamVjdChBdXRoU2VydmljZSk7XHJcblx0cHJpdmF0ZSBfdG9hc3RTZXJ2aWNlOiBUb2FzdFNlcnZpY2UgPSBpbmplY3QoVG9hc3RTZXJ2aWNlKTtcclxuXHRwcml2YXRlIF9yb3V0ZXI6IFJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xyXG5cdHByaXZhdGUgX2FuYWx5dGljc1NlcnZpY2U6IEFuYWx5dGljc1NlcnZpY2UgPSBpbmplY3QoQW5hbHl0aWNzU2VydmljZSk7XHJcblx0cHJpdmF0ZSBfZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyID0gaW5qZWN0KEZvcm1CdWlsZGVyKTtcclxuXHQgLyoqXHJcbiAgICAgKiBJbmRpY2Egc2kgZGViZSByZWRpcmVjY2lvbmFyIG8gc2UgcXVlZGEgZW4gbGEgbWlzbWEgcGFudGFsbGFcclxuICAgICAqL1xyXG5cdEBJbnB1dCgpIHJlZGlyZWN0OmJvb2xlYW4gPSB0cnVlO1xyXG5cdC8qKlxyXG4gICAgICogUGFyYSBxdWUgc2UgcHVlZGUgY2FwdHVyYXIgZWwgZXN0YWRvIGRlIGxhIHBldGljacOzbiBkZSByZWdpc3Ryby5cclxuICAgICAqL1xyXG5cdEBPdXRwdXQoKSByZWFkeSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHQvKipcclxuXHQgKiBDb250aWVuZSBlbCBmb3JtdWxhcmlvIGRlIHJlZ2lzdHJvLlxyXG5cdCAqL1xyXG5cdFx0cHVibGljIHJlZ2lzdGVyRm9ybTogYW55ID0gc2lnbmFsPEZvcm1Hcm91cD4oXHJcblx0XHRcdHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwKHtcclxuXHRcdFx0XHRmaXJzdE5hbWU6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcblx0XHRcdFx0bGFzdE5hbWU6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcblx0XHRcdFx0ZW1haWw6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMuZW1haWxdXSxcclxuXHRcdFx0XHRwbGFpblBhc3N3b3JkOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG5cdFx0XHRcdHBsYWluUGFzc3dvcmQyOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG5cdFx0XHRcdG5ld3NsZXR0ZXI6IFtmYWxzZV0sXHJcblx0XHRcdFx0dGVybXM6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcblx0XHRcdH0pXHJcblx0XHQpO1xyXG5cdC8qKlxyXG5cdCAqIFBhcmEgaW5kaWNhciBxdWUgc2UgZXN0YSBwcm9jZXNhbmRvIGxhIHNvbGljaXR1ZCBkZSByZWdpc3Ryby5cclxuXHQgKi9cclxuXHRwdWJsaWMgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdC8qKlxyXG5cdCAqIFBhcmEgaW5kaWNhciBlbCBleGl0byBkZSBsYSBzb2xpY2l0dWQgZGUgcmVnaXN0cm8uXHJcblx0ICovXHJcblx0cHVibGljIHN1Y2Nlc3M6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblx0Y29uc3RydWN0b3IoKSB7XHJcblxyXG5cdH1cclxuXHQvKipcclxuXHQgKiBSZWdpc3RyYSB1biB1c3VhcmlvLlxyXG5cdCAqIEBwYXJhbSBldmVudCBcclxuXHQgKiBAcmV0dXJucyBcclxuXHQgKi9cclxuXHRyZWdpc3RlcihldmVudDogRXZlbnQpe1xyXG5cdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHRcdHRoaXMubG9hZGluZyA9IHRydWU7XHJcblx0XHRpZiAoIXRoaXMucmVnaXN0ZXJGb3JtLnZhbGlkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3RvYXN0U2VydmljZS5zaG93KCdmaWVsZHMtaW5jb21wbGV0ZScpO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfTtcclxuXHRcdGlmICh0aGlzLnJlZ2lzdGVyRm9ybS52YWx1ZS5wbGFpblBhc3N3b3JkICE9IHRoaXMucmVnaXN0ZXJGb3JtLnZhbHVlLnBsYWluUGFzc3dvcmQyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3RvYXN0U2VydmljZS5zaG93KCdtaXNtYXRjaGVkLXBhc3N3b3JkJyk7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblx0XHRpZih0aGlzLnJlZ2lzdGVyRm9ybS52YWxpZCl7XHJcblx0XHRcdGZpcnN0VmFsdWVGcm9tKHRoaXMuX2F1dGhTZXJ2aWNlLnNpbmdVcCh0aGlzLnJlZ2lzdGVyRm9ybS52YWx1ZSkpLnRoZW4oXHJcblx0XHRcdFx0cmVzID0+IHtcclxuXHRcdFx0XHRcdHRoaXMubG9hZGluZyA9IGZhbHNlXHJcblx0XHRcdFx0XHR0aGlzLl90b2FzdFNlcnZpY2Uuc3VjY2VzcygncmVnaXN0ZXItb2snKVxyXG5cdFx0XHRcdFx0dGhpcy5fYW5hbHl0aWNzU2VydmljZS5jYWxsRXZlbnQoJ3NpZ25fdXAnLCB7XHJcblx0XHRcdFx0XHRcdGZpcnN0TmFtZTogdGhpcy5yZWdpc3RlckZvcm0udmFsdWUuZmlyc3ROYW1lLFxyXG5cdFx0XHRcdFx0XHRsYXN0TmFtZTogdGhpcy5yZWdpc3RlckZvcm0udmFsdWUubGFzdE5hbWUsXHJcblx0XHRcdFx0XHRcdGVtYWlsOiB0aGlzLnJlZ2lzdGVyRm9ybS52YWx1ZS5lbWFpbFxyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdHRoaXMuc3VjY2VzcyA9IHRydWVcclxuXHRcdFx0XHRcdHRoaXMucmVhZHkuZW1pdCh0cnVlKVxyXG5cdFx0XHRcdFx0aWYodGhpcy5yZWRpcmVjdCl7XHJcblx0XHRcdFx0XHRcdHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKCdob21lJylcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdGVyciA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLmxvYWRpbmcgPSBmYWxzZVxyXG5cdFx0XHRcdFx0aWYoZXJyLnN0YXR1cyA9PSA0MDApe1xyXG5cdFx0XHRcdFx0XHR0aGlzLl90b2FzdFNlcnZpY2Uuc2hvdygnZW1haWwtYWxyZWFkeS1yZWdpc3RlcmVkJylcclxuXHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdHRoaXMuX3RvYXN0U2VydmljZS5lcnJvcignZW1haWwtcmVnaXN0ZXItZXJyb3InKVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0KVxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5fdG9hc3RTZXJ2aWNlLnNob3coJ2ludmFsaWQtZm9ybScpXHJcblx0XHRcdHRoaXMubG9hZGluZyA9IGZhbHNlXHJcblx0XHR9XHJcblx0fVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwidy0xMDAgcGwtbWQtNSBwb3NpdGlvbi1yZWxhdGl2ZVwiIGlkPVwicmVnaXN0ZXJcIj5cclxuICA8ZGl2IGNsYXNzPVwicHktMlwiPlxyXG4gICAgICA8aDU+Q1JFQVIgQ1VFTlRBPC9oNT5cclxuICA8L2Rpdj5cclxuICA8Zm9ybSBpZD1cInJlZ2lzdHJvXCIgW2Zvcm1Hcm91cF09XCJyZWdpc3RlckZvcm1cIiAoc3VibWl0KT1cInJlZ2lzdGVyKCRldmVudClcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5OT01CUkU8L2xhYmVsPlxyXG4gICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImZpcnN0TmFtZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sIHJvdW5kZWQtMFwiIHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJOb21icmVcIj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICA8bGFiZWwgZm9yPVwiXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+QVBFTExJRE88L2xhYmVsPlxyXG4gICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImxhc3ROYW1lXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgcm91bmRlZC0wXCIgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIkFwZWxsaWRvXCI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgPGxhYmVsIGZvcj1cIlwiIGNsYXNzPVwiXCI+Q09SUkVPIEVMRUNUUk9OSUNPPC9sYWJlbD5cclxuICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJlbWFpbFwiIGVtYWlsIHJlcXVpcmVkIGNsYXNzPVwiZm9ybS1jb250cm9sIHJvdW5kZWQtMFwiIHR5cGU9XCJlbWFpbFwiXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJDb3JyZW8gZWxlY3Ryw7NuaWNvXCI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgPGxhYmVsIGZvcj1cIlwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPkNPTlRSQVNFw5FBPC9sYWJlbD5cclxuICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJwbGFpblBhc3N3b3JkXCIgcmVxdWlyZWQgY2xhc3M9XCJmb3JtLWNvbnRyb2wgcm91bmRlZC0wXCIgdHlwZT1cInBhc3N3b3JkXCJcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkNvbnRyYXNlw7FhXCI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgPGxhYmVsIGZvcj1cIlwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlJFUEVUSVIgQ09OVFJBU0XDkUE8L2xhYmVsPlxyXG4gICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cInBsYWluUGFzc3dvcmQyXCIgcmVxdWlyZWQgY2xhc3M9XCJmb3JtLWNvbnRyb2wgcm91bmRlZC0wXCIgdHlwZT1cInBhc3N3b3JkXCJcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlJlcGV0aXIgY29udHJhc2XDsWFcIj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tLWNvbnRyb2wgZC1mbGV4IGZsZXgtcm93IGZvcm0tY2hlY2sgY3VzdG9tLWNoZWNrYm94IG1yLXNtLTIgbXQtNCBtYi0yXCI+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgZm9ybUNvbnRyb2xOYW1lPVwidGVybXNcIiByZXF1aXJlZCBjbGFzcz1cImN1c3RvbS1jb250cm9sLWlucHV0IGZvcm0tY2hlY2staW5wdXRcIiBuYW1lPVwiQ29sb3IyXCJcclxuICAgICAgICAgICAgICBpZD1cIkNvbG9yMlwiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY3VzdG9tLWNvbnRyb2wtbGFiZWwgZmYtdWJ1bnR1LWxpZ2h0IGZvbnQtc20gZm9ybS1jaGVjay1sYWJlbFwiIGZvcj1cIkNvbG9yMlwiPiBIZVxyXG4gICAgICAgICAgICAgIGxlw61kbyB5IGFjZXB0byBsYXMgcG9sw610aWNhcyBkZSBwcml2YWNpZGFkIHkgbG9zIHTDqXJtaW5vcyB5XHJcbiAgICAgICAgICAgICAgY29uZGljaW9uZXM8L2xhYmVsPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjdXN0b20tY29udHJvbCBkLWZsZXggZmxleC1yb3cgZm9ybS1jaGVjayBjdXN0b20tY2hlY2tib3ggbXItc20tMiBtYi00XCI+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgZm9ybUNvbnRyb2xOYW1lPVwibmV3c2xldHRlclwiIGNsYXNzPVwiY3VzdG9tLWNvbnRyb2wtaW5wdXQgZm9ybS1jaGVjay1pbnB1dFwiIG5hbWU9XCJDb2xvcjNcIiBpZD1cIkNvbG9yM1wiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY3VzdG9tLWNvbnRyb2wtbGFiZWwgZm9ybS1jaGVjay1sYWJlbCBmZi11YnVudHUtbGlnaHQgZm9udC1zbVwiIGZvcj1cIkNvbG9yM1wiPlxyXG4gICAgICAgICAgICAgIFN1c2NyaXBjacOzbiBhbCBOZXdzbGV0dGVyPC9sYWJlbD5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwicmVnaXN0ZXJGb3JtLmludmFsaWRcIiB0eXBlPVwic3VibWl0XCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgcHgtNSBweS0yIGgtZml0XCI+Q1JFQVI8L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICA8L2Zvcm0+XHJcbiAgQGlmKGxvYWRpbmcpe1xyXG4gICAgPGFwcC1sb2FkaW5nLXNlY3Rpb24tZWMgLz5cclxuICB9XHJcbiAgXHJcbjwvZGl2PlxyXG4iXX0=
@@ -56,7 +56,7 @@ export class BlockBannerBoxEcComponent extends BlockEcComponent {
56
56
  swiperOptions() {
57
57
  return {
58
58
  slidesPerView: 1,
59
- autoplay: true,
59
+ autoplay: false,
60
60
  loop: true,
61
61
  speed: 1050,
62
62
  pagination: false,
@@ -91,12 +91,13 @@ export class BlockBannerBoxEcComponent extends BlockEcComponent {
91
91
  redirectRoute(url) {
92
92
  // this.router.navigate(['/collection/categories'])
93
93
  }
94
+ boxesInlcudesCode = (box) => this.meta.code.toUpperCase().includes(box.toUpperCase());
94
95
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: BlockBannerBoxEcComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
95
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: BlockBannerBoxEcComponent, isStandalone: true, selector: "app-block-banner-box-ec", inputs: { banners: "banners", meta: "meta" }, usesInheritance: true, ngImport: i0, template: "@if(banners.length){\r\n <section [ngClass]=\"trimClassBlock(meta.code) + ' container-fluid'\" \r\n [style.background-color]=\"meta.styles?.backgroundColor\"\r\n [style.background-image]=\"meta.styles?.backgroundImage ? 'url(' + mediaUrl + meta.styles?.backgroundImage +')' : 'inherit'\">\r\n\r\n <div class=\"block-boxes\" style=\"background-color: white;\">\r\n @if(meta.name){\r\n <div class=\"row\">\r\n a\r\n <div class=\"col-12 mt-4\">\r\n <h2 class=\"font-weight-normal font-gd\">\r\n <span>{{meta.name}}</span>\r\n </h2>\r\n </div>\r\n </div> \r\n }\r\n \r\n @if(meta.styles && meta.styles.carrousel == false){\r\n <!-- Si es formato fijo -->\r\n <div class=\"banner-content\">\r\n <div class=\"row g-0\">\r\n @for (banner of banners; track $index) {\r\n <div [ngClass]=\"'item '+'col-md-6 '+'col-lg-'+(12/banners.length) \" [id]=\"$index\">\r\n <img class=\"img-fluid\" [src]=\" mediaBannerUrl+getImage(banner)\" alt=\"\" />\r\n <div class=\"position-absolute w-100 top-0 start-0 h-100\">\r\n <h2 [ngClass]=\"'item-title px-2 item-position-vertical-'+ (banner.styles?.description?.position)\"\r\n [style.color]=\"(banner.styles?.description?.color) ? banner.styles?.description?.color : '#000'\">\r\n {{banner.title}}\r\n </h2>\r\n @if(banner.subtitle){\r\n <p [style.color]=\"(banner.styles?.description?.color) ? banner.styles?.description?.color : '#000' \"\r\n [class]=\"'px-4 item-subtitle item-position-vertical-' + (banner.styles?.description?.position)\">\r\n {{banner.subtitle}}\r\n </p>\r\n }\r\n </div>\r\n <div [class]=\"'item-position-vertical-' + (banner.styles?.button?.position)\">\r\n @if(banner.styles?.button?.text){\r\n <a href=\"{{banner.url}}\" [class]=\"'item-button btn btn-light'\">\r\n {{banner.styles.button.text}}\r\n </a>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }@else {\r\n <!-- Si es Carrousel -->\r\n <swiper-container init=\"false\" [id]=\"meta?.code\">\r\n @for (banner of banners; track $index) {\r\n <!-- Si es de Categorias -->\r\n @if (banner.taxons[0]) {\r\n <swiper-slide>\r\n\r\n <a class=\"banner-content carrousel item\" (click)='redirectRoute(banner.taxons[0].slug)' [routerLink]=\"['/collection/categories/', banner.taxons[0].slug]\" routerLinkActive=\"router-link-active\" style=\"text-decoration: none; cursor: pointer; background-color: white;\">\r\n <div class=\"image-container\">\r\n <img [src]=\"mediaBannerUrl+getImage(banner)\" alt=\"Banner Image\" class=\"banner-image\">\r\n </div>\r\n @if(banner.title){\r\n <h2 [class]=\"'box-text item-title-full px-2 item-position-vertical-'+ (banner.styles?.description?.position)\"\r\n style=\"color:#fff\">\r\n {{banner.title}}\r\n </h2>\r\n }\r\n @if(banner.taxons && banner.taxons.length){\r\n <h5 class=\"item-subtitle-full item-position-vertical-center text-center box-text\">\r\n {{banner.translations.es_AR.title}}\r\n </h5>\r\n }\r\n @if(banner.subtitle){\r\n <p [style.color]=\"(banner.styles?.description?.color) ? banner.styles?.description?.color : '#000' \"\r\n [class]=\"'box-text px-4 item-subtitle-full item-position-vertical-' + (banner.styles?.description?.position)\">\r\n {{banner.subtitle}}\r\n </p>\r\n }\r\n </a>\r\n </swiper-slide>\r\n } @else {\r\n <swiper-slide>\r\n\r\n <a class=\"banner-content carrousel item\" style=\"cursor: pointer;\">\r\n <div class=\"image-container\">\r\n <img [src]=\"mediaBannerUrl+getImage(banner)\" alt=\"Banner Image\" class=\"banner-image\">\r\n </div>\r\n @if(banner.title){\r\n <h2 [class]=\"'box-text item-title-full px-2 item-position-vertical-'+ (banner.styles?.description?.position)\"\r\n style=\"color:#fff\">\r\n {{banner.title}}\r\n </h2>\r\n }\r\n @if(banner.taxons && banner.taxons.length){\r\n <h5 class=\"item-subtitle-full item-position-vertical-center text-center box-text\">\r\n {{banner.translations.es_AR.title}}\r\n </h5>\r\n }\r\n @if(banner.subtitle){\r\n <p [style.color]=\"(banner.styles?.description?.color) ? banner.styles?.description?.color : '#000' \"\r\n [class]=\"'box-text px-4 item-subtitle-full item-position-vertical-' + (banner.styles?.description?.position)\">\r\n {{banner.subtitle}}\r\n </p>\r\n }\r\n </a>\r\n </swiper-slide>\r\n }\r\n \r\n }\r\n </swiper-container> \r\n }\r\n </div>\r\n\r\n </section>\r\n}", styles: ["@charset \"UTF-8\";.banner-container{text-align:center}.banner-image{display:block;margin:0 auto}.item-subtitle-full{margin-top:10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }] });
96
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: BlockBannerBoxEcComponent, isStandalone: true, selector: "app-block-banner-box-ec", inputs: { banners: "banners", meta: "meta" }, usesInheritance: true, ngImport: i0, template: "@if(banners.length){\r\n <section [ngClass]=\"trimClassBlock(meta.code) + ' container'\" \r\n [style.background-color]=\"meta.styles?.backgroundColor\"\r\n [style.background-image]=\"meta.styles?.backgroundImage ? 'url(' + mediaUrl + meta.styles?.backgroundImage +')' : 'inherit'\">\r\n\r\n <div class=\"block-boxes\">\r\n @if(meta.name){\r\n <div class=\"row\">\r\n a\r\n <div class=\"col-12 mt-4\">\r\n <h2 class=\"font-weight-normal font-gd\">\r\n <span>{{meta.name}}</span>\r\n </h2>\r\n </div>\r\n </div> \r\n }\r\n \r\n @if(meta.styles && meta.styles.carrousel == false){\r\n <!-- Si es formato fijo -->\r\n <div class=\"banner-content\">\r\n <div class=\"row g-0\">\r\n @for (banner of banners; track $index) {\r\n <div [ngClass]=\"'item '+'col-md-6 '+'col-lg-'+(12/banners.length) \" [id]=\"$index\">\r\n <img class=\"img-fluid\" [src]=\" mediaBannerUrl+getImage(banner)\" alt=\"\" />\r\n <div class=\"position-absolute w-100 top-0 start-0 h-100\">\r\n <h2 [ngClass]=\"'item-title px-2 item-position-vertical-'+ (banner.styles?.description?.position)\"\r\n [style.color]=\"(banner.styles?.description?.color) ? banner.styles?.description?.color : '#000'\">\r\n {{banner.title}}\r\n </h2>\r\n @if(banner.subtitle){\r\n <p [style.color]=\"(banner.styles?.description?.color) ? banner.styles?.description?.color : '#000' \"\r\n [class]=\"'px-4 item-subtitle item-position-vertical-' + (banner.styles?.description?.position)\">\r\n {{banner.subtitle}}\r\n </p>\r\n }\r\n </div>\r\n <div [class]=\"'item-position-vertical-' + (banner.styles?.button?.position)\">\r\n @if(banner.styles?.button?.text){\r\n <a href=\"{{banner.url}}\" [class]=\"'item-button btn btn-light'\">\r\n {{banner.styles.button.text}}\r\n </a>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }@else {\r\n <!-- Si es Carrousel -->\r\n <swiper-container init=\"false\" [id]=\"meta?.code\">\r\n @for (banner of banners; track $index) {\r\n <!-- Si es de Categorias -->\r\n @if (banner.taxons[0]) {\r\n <swiper-slide>\r\n\r\n <a class=\"banner-content carrousel item\" (click)='redirectRoute(banner.taxons[0].slug)' [routerLink]=\"['/collection/categories/', banner.taxons[0].slug]\" routerLinkActive=\"router-link-active\" style=\"text-decoration: none; cursor: pointer; background-color: white;\">\r\n <div class=\"image-container\">\r\n <img [src]=\"mediaBannerUrl+getImage(banner)\" alt=\"Banner Image\" class=\"banner-image\">\r\n </div>\r\n @if(banner.title){\r\n <h2 [class]=\"'box-text item-title-full px-2 item-position-vertical-'+ (banner.styles?.description?.position)\"\r\n style=\"color:#fff\">\r\n {{banner.title}}\r\n </h2>\r\n }\r\n @if(banner.taxons && banner.taxons.length){\r\n <h5 class=\"item-subtitle-full item-position-vertical-center text-center box-text\">\r\n {{banner.translations.es_AR.title}}\r\n </h5>\r\n }\r\n @if(banner.subtitle){\r\n <p [style.color]=\"(banner.styles?.description?.color) ? banner.styles?.description?.color : '#000' \"\r\n [class]=\"'box-text px-4 item-subtitle-full item-position-vertical-' + (banner.styles?.description?.position)\">\r\n {{banner.subtitle}}\r\n </p>\r\n }\r\n </a>\r\n </swiper-slide>\r\n } @else {\r\n <swiper-slide>\r\n\r\n <a class=\"banner-content carrousel item\" style=\"cursor: pointer;\">\r\n <div class=\"image-container\">\r\n <img [src]=\"mediaBannerUrl+getImage(banner)\" alt=\"Banner Image\" class=\"banner-image\">\r\n </div>\r\n @if(banner.title){\r\n <h2 [class]=\"'box-text item-title-full px-2 item-position-vertical-'+ (banner.styles?.description?.position)\"\r\n style=\"color:#fff\">\r\n {{banner.title}}\r\n </h2>\r\n }\r\n @if(banner.taxons && banner.taxons.length){\r\n <h5 class=\"item-subtitle-full item-position-vertical-center text-center box-text\">\r\n {{banner.translations.es_AR.title}}\r\n </h5>\r\n }\r\n @if(banner.subtitle){\r\n <p [style.color]=\"(banner.styles?.description?.color) ? banner.styles?.description?.color : '#000' \"\r\n [class]=\"'box-text px-4 item-subtitle-full item-position-vertical-' + (banner.styles?.description?.position)\">\r\n {{banner.subtitle}}\r\n </p>\r\n }\r\n </a>\r\n </swiper-slide>\r\n }\r\n \r\n }\r\n </swiper-container> \r\n }\r\n </div>\r\n\r\n </section>\r\n}", styles: ["@charset \"UTF-8\";.banner-container{text-align:center}.banner-image{display:block;margin:0 auto}.item-subtitle-full{margin-top:10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }] });
96
97
  }
97
98
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: BlockBannerBoxEcComponent, decorators: [{
98
99
  type: Component,
99
- args: [{ selector: 'app-block-banner-box-ec', standalone: true, imports: [CommonModule, RouterModule], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "@if(banners.length){\r\n <section [ngClass]=\"trimClassBlock(meta.code) + ' container-fluid'\" \r\n [style.background-color]=\"meta.styles?.backgroundColor\"\r\n [style.background-image]=\"meta.styles?.backgroundImage ? 'url(' + mediaUrl + meta.styles?.backgroundImage +')' : 'inherit'\">\r\n\r\n <div class=\"block-boxes\" style=\"background-color: white;\">\r\n @if(meta.name){\r\n <div class=\"row\">\r\n a\r\n <div class=\"col-12 mt-4\">\r\n <h2 class=\"font-weight-normal font-gd\">\r\n <span>{{meta.name}}</span>\r\n </h2>\r\n </div>\r\n </div> \r\n }\r\n \r\n @if(meta.styles && meta.styles.carrousel == false){\r\n <!-- Si es formato fijo -->\r\n <div class=\"banner-content\">\r\n <div class=\"row g-0\">\r\n @for (banner of banners; track $index) {\r\n <div [ngClass]=\"'item '+'col-md-6 '+'col-lg-'+(12/banners.length) \" [id]=\"$index\">\r\n <img class=\"img-fluid\" [src]=\" mediaBannerUrl+getImage(banner)\" alt=\"\" />\r\n <div class=\"position-absolute w-100 top-0 start-0 h-100\">\r\n <h2 [ngClass]=\"'item-title px-2 item-position-vertical-'+ (banner.styles?.description?.position)\"\r\n [style.color]=\"(banner.styles?.description?.color) ? banner.styles?.description?.color : '#000'\">\r\n {{banner.title}}\r\n </h2>\r\n @if(banner.subtitle){\r\n <p [style.color]=\"(banner.styles?.description?.color) ? banner.styles?.description?.color : '#000' \"\r\n [class]=\"'px-4 item-subtitle item-position-vertical-' + (banner.styles?.description?.position)\">\r\n {{banner.subtitle}}\r\n </p>\r\n }\r\n </div>\r\n <div [class]=\"'item-position-vertical-' + (banner.styles?.button?.position)\">\r\n @if(banner.styles?.button?.text){\r\n <a href=\"{{banner.url}}\" [class]=\"'item-button btn btn-light'\">\r\n {{banner.styles.button.text}}\r\n </a>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }@else {\r\n <!-- Si es Carrousel -->\r\n <swiper-container init=\"false\" [id]=\"meta?.code\">\r\n @for (banner of banners; track $index) {\r\n <!-- Si es de Categorias -->\r\n @if (banner.taxons[0]) {\r\n <swiper-slide>\r\n\r\n <a class=\"banner-content carrousel item\" (click)='redirectRoute(banner.taxons[0].slug)' [routerLink]=\"['/collection/categories/', banner.taxons[0].slug]\" routerLinkActive=\"router-link-active\" style=\"text-decoration: none; cursor: pointer; background-color: white;\">\r\n <div class=\"image-container\">\r\n <img [src]=\"mediaBannerUrl+getImage(banner)\" alt=\"Banner Image\" class=\"banner-image\">\r\n </div>\r\n @if(banner.title){\r\n <h2 [class]=\"'box-text item-title-full px-2 item-position-vertical-'+ (banner.styles?.description?.position)\"\r\n style=\"color:#fff\">\r\n {{banner.title}}\r\n </h2>\r\n }\r\n @if(banner.taxons && banner.taxons.length){\r\n <h5 class=\"item-subtitle-full item-position-vertical-center text-center box-text\">\r\n {{banner.translations.es_AR.title}}\r\n </h5>\r\n }\r\n @if(banner.subtitle){\r\n <p [style.color]=\"(banner.styles?.description?.color) ? banner.styles?.description?.color : '#000' \"\r\n [class]=\"'box-text px-4 item-subtitle-full item-position-vertical-' + (banner.styles?.description?.position)\">\r\n {{banner.subtitle}}\r\n </p>\r\n }\r\n </a>\r\n </swiper-slide>\r\n } @else {\r\n <swiper-slide>\r\n\r\n <a class=\"banner-content carrousel item\" style=\"cursor: pointer;\">\r\n <div class=\"image-container\">\r\n <img [src]=\"mediaBannerUrl+getImage(banner)\" alt=\"Banner Image\" class=\"banner-image\">\r\n </div>\r\n @if(banner.title){\r\n <h2 [class]=\"'box-text item-title-full px-2 item-position-vertical-'+ (banner.styles?.description?.position)\"\r\n style=\"color:#fff\">\r\n {{banner.title}}\r\n </h2>\r\n }\r\n @if(banner.taxons && banner.taxons.length){\r\n <h5 class=\"item-subtitle-full item-position-vertical-center text-center box-text\">\r\n {{banner.translations.es_AR.title}}\r\n </h5>\r\n }\r\n @if(banner.subtitle){\r\n <p [style.color]=\"(banner.styles?.description?.color) ? banner.styles?.description?.color : '#000' \"\r\n [class]=\"'box-text px-4 item-subtitle-full item-position-vertical-' + (banner.styles?.description?.position)\">\r\n {{banner.subtitle}}\r\n </p>\r\n }\r\n </a>\r\n </swiper-slide>\r\n }\r\n \r\n }\r\n </swiper-container> \r\n }\r\n </div>\r\n\r\n </section>\r\n}", styles: ["@charset \"UTF-8\";.banner-container{text-align:center}.banner-image{display:block;margin:0 auto}.item-subtitle-full{margin-top:10px}\n"] }]
100
+ args: [{ selector: 'app-block-banner-box-ec', standalone: true, imports: [CommonModule, RouterModule], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "@if(banners.length){\r\n <section [ngClass]=\"trimClassBlock(meta.code) + ' container'\" \r\n [style.background-color]=\"meta.styles?.backgroundColor\"\r\n [style.background-image]=\"meta.styles?.backgroundImage ? 'url(' + mediaUrl + meta.styles?.backgroundImage +')' : 'inherit'\">\r\n\r\n <div class=\"block-boxes\">\r\n @if(meta.name){\r\n <div class=\"row\">\r\n a\r\n <div class=\"col-12 mt-4\">\r\n <h2 class=\"font-weight-normal font-gd\">\r\n <span>{{meta.name}}</span>\r\n </h2>\r\n </div>\r\n </div> \r\n }\r\n \r\n @if(meta.styles && meta.styles.carrousel == false){\r\n <!-- Si es formato fijo -->\r\n <div class=\"banner-content\">\r\n <div class=\"row g-0\">\r\n @for (banner of banners; track $index) {\r\n <div [ngClass]=\"'item '+'col-md-6 '+'col-lg-'+(12/banners.length) \" [id]=\"$index\">\r\n <img class=\"img-fluid\" [src]=\" mediaBannerUrl+getImage(banner)\" alt=\"\" />\r\n <div class=\"position-absolute w-100 top-0 start-0 h-100\">\r\n <h2 [ngClass]=\"'item-title px-2 item-position-vertical-'+ (banner.styles?.description?.position)\"\r\n [style.color]=\"(banner.styles?.description?.color) ? banner.styles?.description?.color : '#000'\">\r\n {{banner.title}}\r\n </h2>\r\n @if(banner.subtitle){\r\n <p [style.color]=\"(banner.styles?.description?.color) ? banner.styles?.description?.color : '#000' \"\r\n [class]=\"'px-4 item-subtitle item-position-vertical-' + (banner.styles?.description?.position)\">\r\n {{banner.subtitle}}\r\n </p>\r\n }\r\n </div>\r\n <div [class]=\"'item-position-vertical-' + (banner.styles?.button?.position)\">\r\n @if(banner.styles?.button?.text){\r\n <a href=\"{{banner.url}}\" [class]=\"'item-button btn btn-light'\">\r\n {{banner.styles.button.text}}\r\n </a>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }@else {\r\n <!-- Si es Carrousel -->\r\n <swiper-container init=\"false\" [id]=\"meta?.code\">\r\n @for (banner of banners; track $index) {\r\n <!-- Si es de Categorias -->\r\n @if (banner.taxons[0]) {\r\n <swiper-slide>\r\n\r\n <a class=\"banner-content carrousel item\" (click)='redirectRoute(banner.taxons[0].slug)' [routerLink]=\"['/collection/categories/', banner.taxons[0].slug]\" routerLinkActive=\"router-link-active\" style=\"text-decoration: none; cursor: pointer; background-color: white;\">\r\n <div class=\"image-container\">\r\n <img [src]=\"mediaBannerUrl+getImage(banner)\" alt=\"Banner Image\" class=\"banner-image\">\r\n </div>\r\n @if(banner.title){\r\n <h2 [class]=\"'box-text item-title-full px-2 item-position-vertical-'+ (banner.styles?.description?.position)\"\r\n style=\"color:#fff\">\r\n {{banner.title}}\r\n </h2>\r\n }\r\n @if(banner.taxons && banner.taxons.length){\r\n <h5 class=\"item-subtitle-full item-position-vertical-center text-center box-text\">\r\n {{banner.translations.es_AR.title}}\r\n </h5>\r\n }\r\n @if(banner.subtitle){\r\n <p [style.color]=\"(banner.styles?.description?.color) ? banner.styles?.description?.color : '#000' \"\r\n [class]=\"'box-text px-4 item-subtitle-full item-position-vertical-' + (banner.styles?.description?.position)\">\r\n {{banner.subtitle}}\r\n </p>\r\n }\r\n </a>\r\n </swiper-slide>\r\n } @else {\r\n <swiper-slide>\r\n\r\n <a class=\"banner-content carrousel item\" style=\"cursor: pointer;\">\r\n <div class=\"image-container\">\r\n <img [src]=\"mediaBannerUrl+getImage(banner)\" alt=\"Banner Image\" class=\"banner-image\">\r\n </div>\r\n @if(banner.title){\r\n <h2 [class]=\"'box-text item-title-full px-2 item-position-vertical-'+ (banner.styles?.description?.position)\"\r\n style=\"color:#fff\">\r\n {{banner.title}}\r\n </h2>\r\n }\r\n @if(banner.taxons && banner.taxons.length){\r\n <h5 class=\"item-subtitle-full item-position-vertical-center text-center box-text\">\r\n {{banner.translations.es_AR.title}}\r\n </h5>\r\n }\r\n @if(banner.subtitle){\r\n <p [style.color]=\"(banner.styles?.description?.color) ? banner.styles?.description?.color : '#000' \"\r\n [class]=\"'box-text px-4 item-subtitle-full item-position-vertical-' + (banner.styles?.description?.position)\">\r\n {{banner.subtitle}}\r\n </p>\r\n }\r\n </a>\r\n </swiper-slide>\r\n }\r\n \r\n }\r\n </swiper-container> \r\n }\r\n </div>\r\n\r\n </section>\r\n}", styles: ["@charset \"UTF-8\";.banner-container{text-align:center}.banner-image{display:block;margin:0 auto}.item-subtitle-full{margin-top:10px}\n"] }]
100
101
  }], ctorParameters: () => [], propDecorators: { banners: [{
101
102
  type: Input,
102
103
  args: [{
@@ -106,4 +107,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
106
107
  type: Input,
107
108
  args: [{ required: true }]
108
109
  }] } });
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stYmFubmVyLWJveC1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9ibG9ja3MtZWMvYmxvY2stYmFubmVyLWJveC1lYy9ibG9jay1iYW5uZXItYm94LWVjLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1jb21wb25lbnRzL2Jsb2Nrcy1lYy9ibG9jay1iYW5uZXItYm94LWVjL2Jsb2NrLWJhbm5lci1ib3gtZWMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFhLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2SCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsUUFBUSxFQUFtQixNQUFNLGdCQUFnQixDQUFDO0FBRTNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQUUvQyxRQUFRLEVBQUUsQ0FBQTtBQUNWOzs7O0dBSUc7QUFTSCxNQUFNLE9BQU8seUJBQTBCLFNBQVEsZ0JBQWdCO0lBQzlEOztPQUVHO0lBR0EsT0FBTyxDQUFNO0lBQ2hCOztPQUVHO0lBQ3dCLElBQUksQ0FBTTtJQUNyQzs7T0FFRztJQUNLLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO0lBQ25EOztPQUVHO0lBQ0gsYUFBYSxHQUFHLE1BQU0sQ0FBeUIsSUFBSSxDQUFDLENBQUE7SUFFNUMsUUFBUSxDQUFZO0lBQ3BCLFVBQVUsR0FBUSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7SUFFN0M7Ozs7T0FJRztJQUNIO1FBQ0MsS0FBSyxFQUFFLENBQUE7UUFDUCxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFBO1FBQ3pCLENBQUM7UUFDRCxlQUFlLENBQUMsR0FBRyxFQUFFO1lBQ3BCLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsR0FBRyxHQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUE7WUFDL0UsTUFBTSxDQUFDLE1BQU0sQ0FBQyxxQkFBc0IsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQTtZQUMzRCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxxQkFBd0MsQ0FBQyxDQUFBO1lBQ2hFLHNDQUFzQztZQUN0QyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsVUFBVSxFQUFFLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUE7SUFDSCxDQUFDO0lBQ0Q7O09BRUc7SUFDTSxhQUFhO1FBQ3JCLE9BQU87WUFDRyxhQUFhLEVBQUUsQ0FBQztZQUNoQixRQUFRLEVBQUUsSUFBSTtZQUNkLElBQUksRUFBRSxJQUFJO1lBQ1YsS0FBSyxFQUFFLElBQUk7WUFDWCxVQUFVLEVBQUUsS0FBSztZQUNqQixVQUFVLEVBQUUsSUFBSTtZQUNoQixVQUFVLEVBQUUsSUFBSTtZQUNoQixXQUFXLEVBQUU7Z0JBQ1QsQ0FBQyxFQUFFO29CQUNDLGFBQWEsRUFBRSxDQUFDO2lCQUNuQjtnQkFDRCxHQUFHLEVBQUM7b0JBQ0EsYUFBYSxFQUFFLENBQUM7aUJBQ25CO2dCQUNELEdBQUcsRUFBRTtvQkFDRCxhQUFhLEVBQUUsQ0FBQztpQkFDbkI7Z0JBQ0QsR0FBRyxFQUFFO29CQUNELGFBQWEsRUFBRSxDQUFDO2lCQUNuQjtnQkFDRCxJQUFJLEVBQUU7b0JBQ0YsYUFBYSxFQUFFLENBQUM7aUJBQ25CO2FBQ0o7U0FDSixDQUFBO0lBQ1IsQ0FBQztJQUNEOzs7T0FHRztJQUNILGVBQWUsQ0FBQyxNQUFXO1FBQzFCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsa0JBQWtCLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFDNUQsQ0FBQztJQUVELGFBQWEsQ0FBQyxHQUFXO1FBQ3hCLG1EQUFtRDtJQUNsRCxDQUFDO3VHQWxGUyx5QkFBeUI7MkZBQXpCLHlCQUF5Qix3SkN0QnRDLGl5TkFnSEMsZ01EL0ZVLFlBQVksNEhBQUUsWUFBWTs7MkZBS3hCLHlCQUF5QjtrQkFSckMsU0FBUzsrQkFDQyx5QkFBeUIsY0FDdkIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxXQUc3QixDQUFDLHNCQUFzQixDQUFDO3dEQVE3QixPQUFPO3NCQUZULEtBQUs7dUJBQUM7d0JBQ04sUUFBUSxFQUFFLElBQUk7cUJBQ2Q7Z0JBSTBCLElBQUk7c0JBQTlCLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlLCBDb21tb25Nb2R1bGUsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgYWZ0ZXJOZXh0UmVuZGVyLCBDb21wb25lbnQsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIGluamVjdCwgSW5wdXQsIFBMQVRGT1JNX0lELCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmxvY2tFY0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Fic3RyYWN0aW9ucy1jb21wb25lbnRzJztcclxuaW1wb3J0IHsgQW5hbHl0aWNzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2VjLXNlcnZpY2VzJztcclxuaW1wb3J0IHsgcmVnaXN0ZXIsIFN3aXBlckNvbnRhaW5lciB9IGZyb20gJ3N3aXBlci9lbGVtZW50JztcclxuaW1wb3J0IHsgU3dpcGVyT3B0aW9ucyB9IGZyb20gJ3N3aXBlci90eXBlcyc7XHJcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5yZWdpc3RlcigpXHJcbi8qKlxyXG4gKiBDb21wb25lbnRlIHBhcmEgbWFuZWphciBsb3MgYmFubmVyIGRlIHRpcG8gYm94LlxyXG4gKiBAY2xhc3MgQmxvY2tCYW5uZXJCb3hFY0NvbXBvbmVudFxyXG4gKiBAZXh0ZW5kcyB7QmxvY2tFY0NvbXBvbmVudH1cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnYXBwLWJsb2NrLWJhbm5lci1ib3gtZWMnLFxyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0aW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUm91dGVyTW9kdWxlXSxcclxuXHR0ZW1wbGF0ZVVybDogJy4vYmxvY2stYmFubmVyLWJveC1lYy5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmw6ICcuL2Jsb2NrLWJhbm5lci1ib3gtZWMuY29tcG9uZW50LnNjc3MnLFxyXG5cdHNjaGVtYXM6W0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCbG9ja0Jhbm5lckJveEVjQ29tcG9uZW50IGV4dGVuZHMgQmxvY2tFY0NvbXBvbmVudCB7XHJcblx0LyoqXHJcblx0ICogQmFubmVycyBkZSB0aXBvIEJveC5cclxuXHQgKi9cclxuXHRASW5wdXQoe1xyXG5cdFx0cmVxdWlyZWQ6IHRydWVcclxuXHR9KSBiYW5uZXJzOiBhbnk7XHJcblx0LyoqXHJcblx0ICogRGF0b3MgZGVsIGJsb3F1ZSBxdWUgY29udGllbmUgYSBsb3MgYmFubmVyc1xyXG5cdCAqL1xyXG5cdEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIG1ldGE6IGFueTtcclxuXHQvKipcclxuXHQgKiBTZXJ2aWNpbyBwYXJhIEFuYWx5dGljc1xyXG5cdCAqL1xyXG5cdHByaXZhdGUgYW5hbHl0aWNzU2VydmljZSA9IGluamVjdChBbmFseXRpY3NTZXJ2aWNlKVxyXG5cdC8qKlxyXG5cdCAqIFNpZ25hbCB1dGxpemFkbyBwYXJhIGd1YXJkYSBlbCBjb250ZW5lZG9yIGRlbCBjYXJydXNlbFxyXG5cdCAqL1xyXG5cdHN3aXBlckVsZW1lbnQgPSBzaWduYWw8U3dpcGVyQ29udGFpbmVyIHwgbnVsbD4obnVsbClcclxuXHRcclxuXHRwcml2YXRlIGRvY3VtZW50PzogRG9jdW1lbnQ7XHJcblx0cHJpdmF0ZSBwbGF0Zm9ybUlkOiBhbnkgPSBpbmplY3QoUExBVEZPUk1fSUQpXHJcblx0XHJcblx0LyoqXHJcblx0ICogRWplY3V0YSBlbCBtw6l0b2RvIGBhZnRlck5leHRSZW5kZXJgcGFyYSBjYXJnYXIgbGFzIGNvbmZpZ3VyYWNpb25lcyBuZWNlc2FyaWFzIFxyXG5cdCAqIHBhcmEgZWwgY2FycnVzZWwgZGVsIGJhbm5lcnMuIEVzdG8gZGViZSBzZXIgYXNpIGRlYmlkbyBhIHF1ZSB5YSBkZWJlIGVzdGFyIHByZXNlbnRlXHJcblx0ICogZW4gZWwgRG9tIGVsIGVsZW1lbnQgYDxzd2lwZXItY29udGFpbmVyPmAgcGFyYSBwb2RlciBjb25maWd1cmFybG8uXHJcblx0ICovXHJcblx0Y29uc3RydWN0b3IoKSB7XHJcblx0XHRzdXBlcigpXHJcblx0XHRpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xyXG5cdFx0XHR0aGlzLmRvY3VtZW50ID0gZG9jdW1lbnRcclxuXHRcdH1cclxuXHRcdGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XHJcblx0XHRcdGNvbnN0IHN3aXBlckVsZW1Db25zdHJ1Y3RvciA9IHRoaXMuZG9jdW1lbnQ/LnF1ZXJ5U2VsZWN0b3IoJyMnK3RoaXMubWV0YT8uY29kZSlcclxuXHRcdFx0T2JqZWN0LmFzc2lnbihzd2lwZXJFbGVtQ29uc3RydWN0b3IhLCB0aGlzLnN3aXBlck9wdGlvbnMoKSlcclxuXHRcdFx0dGhpcy5zd2lwZXJFbGVtZW50LnNldChzd2lwZXJFbGVtQ29uc3RydWN0b3IgYXMgU3dpcGVyQ29udGFpbmVyKVxyXG5cdFx0XHQvL3N3aXBlckVsZW1Db25zdHJ1Y3Rvcj8uaW5pdGlhbGl6ZSgpO1xyXG5cdFx0XHR0aGlzLnN3aXBlckVsZW1lbnQoKT8uaW5pdGlhbGl6ZSgpO1xyXG5cdFx0fSlcclxuXHR9XHJcblx0LyoqXHJcblx0ICogTcOpdG9kbyBvcmlnaW5hbCBlbjoge0BsaW5rIEJsb2NrRWNDb21wb25lbnR9XHJcblx0ICovXHJcblx0b3ZlcnJpZGUgc3dpcGVyT3B0aW9ucyAoKTpTd2lwZXJPcHRpb25zIHtcclxuXHRcdHJldHVybiB7XHJcbiAgICAgICAgICAgIHNsaWRlc1BlclZpZXc6IDEsXHJcbiAgICAgICAgICAgIGF1dG9wbGF5OiB0cnVlLFxyXG4gICAgICAgICAgICBsb29wOiB0cnVlLFxyXG4gICAgICAgICAgICBzcGVlZDogMTA1MCxcclxuICAgICAgICAgICAgcGFnaW5hdGlvbjogZmFsc2UsXHJcbiAgICAgICAgICAgIG5hdmlnYXRpb246IHRydWUsXHJcbiAgICAgICAgICAgIGF1dG9IZWlnaHQ6IHRydWUsXHJcbiAgICAgICAgICAgIGJyZWFrcG9pbnRzOiB7XHJcbiAgICAgICAgICAgICAgICAwOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogMVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIDU3Njp7XHJcbiAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogMiBcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICA3Njg6IHtcclxuICAgICAgICAgICAgICAgICAgICBzbGlkZXNQZXJWaWV3OiA0LFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIDk5Mjoge1xyXG4gICAgICAgICAgICAgICAgICAgIHNsaWRlc1BlclZpZXc6IDUsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgMTIwMDoge1xyXG4gICAgICAgICAgICAgICAgICAgIHNsaWRlc1BlclZpZXc6IDUsXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblx0fVxyXG5cdC8qKlxyXG5cdCAqIEFwbGljYSBlbCBldmVudG8gYHNlbGVjdF9wcm9tb3Rpb25gIGp1bnRvIGNvbiBlbCBiYW5uZXIgcXVlIGludGVyYWN0dWEuXHJcblx0ICogQHBhcmFtIGJhbm5lciBcclxuXHQgKi9cclxuXHRzZWxlY3RQcm9tb3Rpb24oYmFubmVyOiBhbnkpOiB2b2lkIHtcclxuXHRcdHRoaXMuYW5hbHl0aWNzU2VydmljZS5jYWxsRXZlbnQoJ3NlbGVjdF9wcm9tb3Rpb24nLCBiYW5uZXIpXHJcblx0fVxyXG5cclxuXHRyZWRpcmVjdFJvdXRlKHVybDogc3RyaW5nKTogdm9pZCB7XHJcblx0XHQvLyB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9jb2xsZWN0aW9uL2NhdGVnb3JpZXMnXSlcclxuXHQgIH1cclxufVxyXG4iLCJAaWYoYmFubmVycy5sZW5ndGgpe1xyXG4gICAgPHNlY3Rpb24gW25nQ2xhc3NdPVwidHJpbUNsYXNzQmxvY2sobWV0YS5jb2RlKSArICcgY29udGFpbmVyLWZsdWlkJ1wiIFxyXG4gICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwibWV0YS5zdHlsZXM/LmJhY2tncm91bmRDb2xvclwiXHJcbiAgICBbc3R5bGUuYmFja2dyb3VuZC1pbWFnZV09XCJtZXRhLnN0eWxlcz8uYmFja2dyb3VuZEltYWdlID8gJ3VybCgnICsgbWVkaWFVcmwgKyBtZXRhLnN0eWxlcz8uYmFja2dyb3VuZEltYWdlICsnKScgOiAnaW5oZXJpdCdcIj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJsb2NrLWJveGVzXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcIj5cclxuICAgICAgICAgICAgQGlmKG1ldGEubmFtZSl7XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgYVxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgbXQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJmb250LXdlaWdodC1ub3JtYWwgZm9udC1nZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3ttZXRhLm5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9oMj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PiBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAgIEBpZihtZXRhLnN0eWxlcyAmJiBtZXRhLnN0eWxlcy5jYXJyb3VzZWwgPT0gZmFsc2Upe1xyXG4gICAgICAgICAgICAgICAgPCEtLSBTaSBlcyBmb3JtYXRvIGZpam8gLS0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFubmVyLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGctMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChiYW5uZXIgb2YgYmFubmVyczsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW25nQ2xhc3NdPVwiJ2l0ZW0gJysnY29sLW1kLTYgJysnY29sLWxnLScrKDEyL2Jhbm5lcnMubGVuZ3RoKSBcIiBbaWRdPVwiJGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLWZsdWlkXCIgW3NyY109XCIgbWVkaWFCYW5uZXJVcmwrZ2V0SW1hZ2UoYmFubmVyKVwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGUgdy0xMDAgdG9wLTAgc3RhcnQtMCBoLTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBbbmdDbGFzc109XCInaXRlbS10aXRsZSBweC0yIGl0ZW0tcG9zaXRpb24tdmVydGljYWwtJysgKGJhbm5lci5zdHlsZXM/LmRlc2NyaXB0aW9uPy5wb3NpdGlvbilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCIoYmFubmVyLnN0eWxlcz8uZGVzY3JpcHRpb24/LmNvbG9yKSA/IGJhbm5lci5zdHlsZXM/LmRlc2NyaXB0aW9uPy5jb2xvciA6ICcjMDAwJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2Jhbm5lci50aXRsZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oMj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYoYmFubmVyLnN1YnRpdGxlKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgW3N0eWxlLmNvbG9yXT1cIihiYW5uZXIuc3R5bGVzPy5kZXNjcmlwdGlvbj8uY29sb3IpID8gYmFubmVyLnN0eWxlcz8uZGVzY3JpcHRpb24/LmNvbG9yIDogJyMwMDAnIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCIncHgtNCBpdGVtLXN1YnRpdGxlIGl0ZW0tcG9zaXRpb24tdmVydGljYWwtJyArIChiYW5uZXIuc3R5bGVzPy5kZXNjcmlwdGlvbj8ucG9zaXRpb24pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2Jhbm5lci5zdWJ0aXRsZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW2NsYXNzXT1cIidpdGVtLXBvc2l0aW9uLXZlcnRpY2FsLScgKyAoYmFubmVyLnN0eWxlcz8uYnV0dG9uPy5wb3NpdGlvbilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYoYmFubmVyLnN0eWxlcz8uYnV0dG9uPy50ZXh0KXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cInt7YmFubmVyLnVybH19XCIgW2NsYXNzXT1cIidpdGVtLWJ1dHRvbiBidG4gYnRuLWxpZ2h0J1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tiYW5uZXIuc3R5bGVzLmJ1dHRvbi50ZXh0fX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIH1AZWxzZSB7XHJcbiAgICAgICAgICAgICAgIDwhLS0gU2kgZXMgQ2Fycm91c2VsIC0tPlxyXG4gICAgICAgICAgICAgICA8c3dpcGVyLWNvbnRhaW5lciBpbml0PVwiZmFsc2VcIiBbaWRdPVwibWV0YT8uY29kZVwiPlxyXG4gICAgICAgICAgICAgICAgQGZvciAoYmFubmVyIG9mIGJhbm5lcnM7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gU2kgZXMgZGUgQ2F0ZWdvcmlhcyAtLT5cclxuICAgICAgICAgICAgICAgICAgICBAaWYgKGJhbm5lci50YXhvbnNbMF0pIHtcclxuICAgICAgICAgICAgICAgICAgICA8c3dpcGVyLXNsaWRlPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJiYW5uZXItY29udGVudCBjYXJyb3VzZWwgaXRlbVwiIChjbGljayk9J3JlZGlyZWN0Um91dGUoYmFubmVyLnRheG9uc1swXS5zbHVnKScgW3JvdXRlckxpbmtdPVwiWycvY29sbGVjdGlvbi9jYXRlZ29yaWVzLycsIGJhbm5lci50YXhvbnNbMF0uc2x1Z11cIiByb3V0ZXJMaW5rQWN0aXZlPVwicm91dGVyLWxpbmstYWN0aXZlXCIgIHN0eWxlPVwidGV4dC1kZWNvcmF0aW9uOiBub25lOyBjdXJzb3I6IHBvaW50ZXI7IGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJtZWRpYUJhbm5lclVybCtnZXRJbWFnZShiYW5uZXIpXCIgYWx0PVwiQmFubmVyIEltYWdlXCIgY2xhc3M9XCJiYW5uZXItaW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKGJhbm5lci50aXRsZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIFtjbGFzc109XCInYm94LXRleHQgaXRlbS10aXRsZS1mdWxsIHB4LTIgaXRlbS1wb3NpdGlvbi12ZXJ0aWNhbC0nKyAoYmFubmVyLnN0eWxlcz8uZGVzY3JpcHRpb24/LnBvc2l0aW9uKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiY29sb3I6I2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2Jhbm5lci50aXRsZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oMj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZihiYW5uZXIudGF4b25zICYmIGJhbm5lci50YXhvbnMubGVuZ3RoKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDUgY2xhc3M9XCJpdGVtLXN1YnRpdGxlLWZ1bGwgaXRlbS1wb3NpdGlvbi12ZXJ0aWNhbC1jZW50ZXIgdGV4dC1jZW50ZXIgYm94LXRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tiYW5uZXIudHJhbnNsYXRpb25zLmVzX0FSLnRpdGxlfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2g1PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKGJhbm5lci5zdWJ0aXRsZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgW3N0eWxlLmNvbG9yXT1cIihiYW5uZXIuc3R5bGVzPy5kZXNjcmlwdGlvbj8uY29sb3IpID8gYmFubmVyLnN0eWxlcz8uZGVzY3JpcHRpb24/LmNvbG9yIDogJyMwMDAnIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCInYm94LXRleHQgcHgtNCBpdGVtLXN1YnRpdGxlLWZ1bGwgaXRlbS1wb3NpdGlvbi12ZXJ0aWNhbC0nICsgKGJhbm5lci5zdHlsZXM/LmRlc2NyaXB0aW9uPy5wb3NpdGlvbilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tiYW5uZXIuc3VidGl0bGV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3dpcGVyLXNsaWRlPlxyXG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3dpcGVyLXNsaWRlPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiYmFubmVyLWNvbnRlbnQgY2Fycm91c2VsIGl0ZW1cIiBzdHlsZT1cImN1cnNvcjogcG9pbnRlcjtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW1hZ2UtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJtZWRpYUJhbm5lclVybCtnZXRJbWFnZShiYW5uZXIpXCIgYWx0PVwiQmFubmVyIEltYWdlXCIgY2xhc3M9XCJiYW5uZXItaW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYoYmFubmVyLnRpdGxlKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIFtjbGFzc109XCInYm94LXRleHQgaXRlbS10aXRsZS1mdWxsIHB4LTIgaXRlbS1wb3NpdGlvbi12ZXJ0aWNhbC0nKyAoYmFubmVyLnN0eWxlcz8uZGVzY3JpcHRpb24/LnBvc2l0aW9uKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cImNvbG9yOiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7YmFubmVyLnRpdGxlfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oMj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKGJhbm5lci50YXhvbnMgJiYgYmFubmVyLnRheG9ucy5sZW5ndGgpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDUgY2xhc3M9XCJpdGVtLXN1YnRpdGxlLWZ1bGwgaXRlbS1wb3NpdGlvbi12ZXJ0aWNhbC1jZW50ZXIgdGV4dC1jZW50ZXIgYm94LXRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7YmFubmVyLnRyYW5zbGF0aW9ucy5lc19BUi50aXRsZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaDU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZihiYW5uZXIuc3VidGl0bGUpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBbc3R5bGUuY29sb3JdPVwiKGJhbm5lci5zdHlsZXM/LmRlc2NyaXB0aW9uPy5jb2xvcikgPyBiYW5uZXIuc3R5bGVzPy5kZXNjcmlwdGlvbj8uY29sb3IgOiAnIzAwMCcgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCInYm94LXRleHQgcHgtNCBpdGVtLXN1YnRpdGxlLWZ1bGwgaXRlbS1wb3NpdGlvbi12ZXJ0aWNhbC0nICsgKGJhbm5lci5zdHlsZXM/LmRlc2NyaXB0aW9uPy5wb3NpdGlvbilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7YmFubmVyLnN1YnRpdGxlfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zd2lwZXItc2xpZGU+XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICA8L3N3aXBlci1jb250YWluZXI+IFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgPC9zZWN0aW9uPlxyXG59Il19
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stYmFubmVyLWJveC1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9ibG9ja3MtZWMvYmxvY2stYmFubmVyLWJveC1lYy9ibG9jay1iYW5uZXItYm94LWVjLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1jb21wb25lbnRzL2Jsb2Nrcy1lYy9ibG9jay1iYW5uZXItYm94LWVjL2Jsb2NrLWJhbm5lci1ib3gtZWMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFhLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2SCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsUUFBUSxFQUFtQixNQUFNLGdCQUFnQixDQUFDO0FBRTNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQUUvQyxRQUFRLEVBQUUsQ0FBQTtBQUNWOzs7O0dBSUc7QUFTSCxNQUFNLE9BQU8seUJBQTBCLFNBQVEsZ0JBQWdCO0lBQzlEOztPQUVHO0lBR0EsT0FBTyxDQUFNO0lBQ2hCOztPQUVHO0lBQ3dCLElBQUksQ0FBTTtJQUNyQzs7T0FFRztJQUNLLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO0lBQ25EOztPQUVHO0lBQ0gsYUFBYSxHQUFHLE1BQU0sQ0FBeUIsSUFBSSxDQUFDLENBQUE7SUFFNUMsUUFBUSxDQUFZO0lBQ3BCLFVBQVUsR0FBUSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7SUFFN0M7Ozs7T0FJRztJQUNIO1FBQ0MsS0FBSyxFQUFFLENBQUE7UUFDUCxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFBO1FBQ3pCLENBQUM7UUFDRCxlQUFlLENBQUMsR0FBRyxFQUFFO1lBQ3BCLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsR0FBRyxHQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUE7WUFDL0UsTUFBTSxDQUFDLE1BQU0sQ0FBQyxxQkFBc0IsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQTtZQUMzRCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxxQkFBd0MsQ0FBQyxDQUFBO1lBQ2hFLHNDQUFzQztZQUN0QyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsVUFBVSxFQUFFLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUE7SUFDSCxDQUFDO0lBQ0Q7O09BRUc7SUFDTSxhQUFhO1FBQ3JCLE9BQU87WUFDRyxhQUFhLEVBQUUsQ0FBQztZQUNoQixRQUFRLEVBQUUsS0FBSztZQUNmLElBQUksRUFBRSxJQUFJO1lBQ1YsS0FBSyxFQUFFLElBQUk7WUFDWCxVQUFVLEVBQUUsS0FBSztZQUNqQixVQUFVLEVBQUUsSUFBSTtZQUNoQixVQUFVLEVBQUUsSUFBSTtZQUNoQixXQUFXLEVBQUU7Z0JBQ1QsQ0FBQyxFQUFFO29CQUNDLGFBQWEsRUFBRSxDQUFDO2lCQUNuQjtnQkFDRCxHQUFHLEVBQUM7b0JBQ0EsYUFBYSxFQUFFLENBQUM7aUJBQ25CO2dCQUNELEdBQUcsRUFBRTtvQkFDRCxhQUFhLEVBQUUsQ0FBQztpQkFDbkI7Z0JBQ0QsR0FBRyxFQUFFO29CQUNELGFBQWEsRUFBRSxDQUFDO2lCQUNuQjtnQkFDRCxJQUFJLEVBQUU7b0JBQ0YsYUFBYSxFQUFFLENBQUM7aUJBQ25CO2FBQ0o7U0FDSixDQUFBO0lBQ1IsQ0FBQztJQUNEOzs7T0FHRztJQUNILGVBQWUsQ0FBQyxNQUFXO1FBQzFCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsa0JBQWtCLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFDNUQsQ0FBQztJQUVELGFBQWEsQ0FBQyxHQUFXO1FBQ3hCLG1EQUFtRDtJQUNsRCxDQUFDO0lBRUgsaUJBQWlCLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQTt1R0FwRmpGLHlCQUF5QjsyRkFBekIseUJBQXlCLHdKQ3RCdEMsd3ZOQWdIQyxnTUQvRlUsWUFBWSw0SEFBRSxZQUFZOzsyRkFLeEIseUJBQXlCO2tCQVJyQyxTQUFTOytCQUNDLHlCQUF5QixjQUN2QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLFdBRzdCLENBQUMsc0JBQXNCLENBQUM7d0RBUTdCLE9BQU87c0JBRlQsS0FBSzt1QkFBQzt3QkFDTixRQUFRLEVBQUUsSUFBSTtxQkFDZDtnQkFJMEIsSUFBSTtzQkFBOUIsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUsIENvbW1vbk1vZHVsZSwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBhZnRlck5leHRSZW5kZXIsIENvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgaW5qZWN0LCBJbnB1dCwgUExBVEZPUk1fSUQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCbG9ja0VjQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYWJzdHJhY3Rpb25zLWNvbXBvbmVudHMnO1xyXG5pbXBvcnQgeyBBbmFseXRpY3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZWMtc2VydmljZXMnO1xyXG5pbXBvcnQgeyByZWdpc3RlciwgU3dpcGVyQ29udGFpbmVyIH0gZnJvbSAnc3dpcGVyL2VsZW1lbnQnO1xyXG5pbXBvcnQgeyBTd2lwZXJPcHRpb25zIH0gZnJvbSAnc3dpcGVyL3R5cGVzJztcclxuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbnJlZ2lzdGVyKClcclxuLyoqXHJcbiAqIENvbXBvbmVudGUgcGFyYSBtYW5lamFyIGxvcyBiYW5uZXIgZGUgdGlwbyBib3guXHJcbiAqIEBjbGFzcyBCbG9ja0Jhbm5lckJveEVjQ29tcG9uZW50XHJcbiAqIEBleHRlbmRzIHtCbG9ja0VjQ29tcG9uZW50fVxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdhcHAtYmxvY2stYmFubmVyLWJveC1lYycsXHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSb3V0ZXJNb2R1bGVdLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9ibG9jay1iYW5uZXItYm94LWVjLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybDogJy4vYmxvY2stYmFubmVyLWJveC1lYy5jb21wb25lbnQuc2NzcycsXHJcblx0c2NoZW1hczpbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEJsb2NrQmFubmVyQm94RWNDb21wb25lbnQgZXh0ZW5kcyBCbG9ja0VjQ29tcG9uZW50IHtcclxuXHQvKipcclxuXHQgKiBCYW5uZXJzIGRlIHRpcG8gQm94LlxyXG5cdCAqL1xyXG5cdEBJbnB1dCh7XHJcblx0XHRyZXF1aXJlZDogdHJ1ZVxyXG5cdH0pIGJhbm5lcnM6IGFueTtcclxuXHQvKipcclxuXHQgKiBEYXRvcyBkZWwgYmxvcXVlIHF1ZSBjb250aWVuZSBhIGxvcyBiYW5uZXJzXHJcblx0ICovXHJcblx0QElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgbWV0YTogYW55O1xyXG5cdC8qKlxyXG5cdCAqIFNlcnZpY2lvIHBhcmEgQW5hbHl0aWNzXHJcblx0ICovXHJcblx0cHJpdmF0ZSBhbmFseXRpY3NTZXJ2aWNlID0gaW5qZWN0KEFuYWx5dGljc1NlcnZpY2UpXHJcblx0LyoqXHJcblx0ICogU2lnbmFsIHV0bGl6YWRvIHBhcmEgZ3VhcmRhIGVsIGNvbnRlbmVkb3IgZGVsIGNhcnJ1c2VsXHJcblx0ICovXHJcblx0c3dpcGVyRWxlbWVudCA9IHNpZ25hbDxTd2lwZXJDb250YWluZXIgfCBudWxsPihudWxsKVxyXG5cdFxyXG5cdHByaXZhdGUgZG9jdW1lbnQ/OiBEb2N1bWVudDtcclxuXHRwcml2YXRlIHBsYXRmb3JtSWQ6IGFueSA9IGluamVjdChQTEFURk9STV9JRClcclxuXHRcclxuXHQvKipcclxuXHQgKiBFamVjdXRhIGVsIG3DqXRvZG8gYGFmdGVyTmV4dFJlbmRlcmBwYXJhIGNhcmdhciBsYXMgY29uZmlndXJhY2lvbmVzIG5lY2VzYXJpYXMgXHJcblx0ICogcGFyYSBlbCBjYXJydXNlbCBkZWwgYmFubmVycy4gRXN0byBkZWJlIHNlciBhc2kgZGViaWRvIGEgcXVlIHlhIGRlYmUgZXN0YXIgcHJlc2VudGVcclxuXHQgKiBlbiBlbCBEb20gZWwgZWxlbWVudCBgPHN3aXBlci1jb250YWluZXI+YCBwYXJhIHBvZGVyIGNvbmZpZ3VyYXJsby5cclxuXHQgKi9cclxuXHRjb25zdHJ1Y3RvcigpIHtcclxuXHRcdHN1cGVyKClcclxuXHRcdGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XHJcblx0XHRcdHRoaXMuZG9jdW1lbnQgPSBkb2N1bWVudFxyXG5cdFx0fVxyXG5cdFx0YWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcclxuXHRcdFx0Y29uc3Qgc3dpcGVyRWxlbUNvbnN0cnVjdG9yID0gdGhpcy5kb2N1bWVudD8ucXVlcnlTZWxlY3RvcignIycrdGhpcy5tZXRhPy5jb2RlKVxyXG5cdFx0XHRPYmplY3QuYXNzaWduKHN3aXBlckVsZW1Db25zdHJ1Y3RvciEsIHRoaXMuc3dpcGVyT3B0aW9ucygpKVxyXG5cdFx0XHR0aGlzLnN3aXBlckVsZW1lbnQuc2V0KHN3aXBlckVsZW1Db25zdHJ1Y3RvciBhcyBTd2lwZXJDb250YWluZXIpXHJcblx0XHRcdC8vc3dpcGVyRWxlbUNvbnN0cnVjdG9yPy5pbml0aWFsaXplKCk7XHJcblx0XHRcdHRoaXMuc3dpcGVyRWxlbWVudCgpPy5pbml0aWFsaXplKCk7XHJcblx0XHR9KVxyXG5cdH1cclxuXHQvKipcclxuXHQgKiBNw6l0b2RvIG9yaWdpbmFsIGVuOiB7QGxpbmsgQmxvY2tFY0NvbXBvbmVudH1cclxuXHQgKi9cclxuXHRvdmVycmlkZSBzd2lwZXJPcHRpb25zICgpOlN3aXBlck9wdGlvbnMge1xyXG5cdFx0cmV0dXJuIHtcclxuICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogMSxcclxuICAgICAgICAgICAgYXV0b3BsYXk6IGZhbHNlLFxyXG4gICAgICAgICAgICBsb29wOiB0cnVlLFxyXG4gICAgICAgICAgICBzcGVlZDogMTA1MCxcclxuICAgICAgICAgICAgcGFnaW5hdGlvbjogZmFsc2UsXHJcbiAgICAgICAgICAgIG5hdmlnYXRpb246IHRydWUsXHJcbiAgICAgICAgICAgIGF1dG9IZWlnaHQ6IHRydWUsXHJcbiAgICAgICAgICAgIGJyZWFrcG9pbnRzOiB7XHJcbiAgICAgICAgICAgICAgICAwOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogMVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIDU3Njp7XHJcbiAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogMiBcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICA3Njg6IHtcclxuICAgICAgICAgICAgICAgICAgICBzbGlkZXNQZXJWaWV3OiA0LFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIDk5Mjoge1xyXG4gICAgICAgICAgICAgICAgICAgIHNsaWRlc1BlclZpZXc6IDUsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgMTIwMDoge1xyXG4gICAgICAgICAgICAgICAgICAgIHNsaWRlc1BlclZpZXc6IDUsXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblx0fVxyXG5cdC8qKlxyXG5cdCAqIEFwbGljYSBlbCBldmVudG8gYHNlbGVjdF9wcm9tb3Rpb25gIGp1bnRvIGNvbiBlbCBiYW5uZXIgcXVlIGludGVyYWN0dWEuXHJcblx0ICogQHBhcmFtIGJhbm5lciBcclxuXHQgKi9cclxuXHRzZWxlY3RQcm9tb3Rpb24oYmFubmVyOiBhbnkpOiB2b2lkIHtcclxuXHRcdHRoaXMuYW5hbHl0aWNzU2VydmljZS5jYWxsRXZlbnQoJ3NlbGVjdF9wcm9tb3Rpb24nLCBiYW5uZXIpXHJcblx0fVxyXG5cclxuXHRyZWRpcmVjdFJvdXRlKHVybDogc3RyaW5nKTogdm9pZCB7XHJcblx0XHQvLyB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9jb2xsZWN0aW9uL2NhdGVnb3JpZXMnXSlcclxuXHQgIH1cclxuXHJcblx0Ym94ZXNJbmxjdWRlc0NvZGUgPSAoYm94OiBzdHJpbmcpID0+IHRoaXMubWV0YS5jb2RlLnRvVXBwZXJDYXNlKCkuaW5jbHVkZXMoYm94LnRvVXBwZXJDYXNlKCkpXHJcblxyXG59XHJcbiIsIkBpZihiYW5uZXJzLmxlbmd0aCl7XHJcbiAgICA8c2VjdGlvbiBbbmdDbGFzc109XCJ0cmltQ2xhc3NCbG9jayhtZXRhLmNvZGUpICsgJyBjb250YWluZXInXCIgXHJcbiAgICBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJtZXRhLnN0eWxlcz8uYmFja2dyb3VuZENvbG9yXCJcclxuICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWltYWdlXT1cIm1ldGEuc3R5bGVzPy5iYWNrZ3JvdW5kSW1hZ2UgPyAndXJsKCcgKyBtZWRpYVVybCArIG1ldGEuc3R5bGVzPy5iYWNrZ3JvdW5kSW1hZ2UgKycpJyA6ICdpbmhlcml0J1wiPlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYmxvY2stYm94ZXNcIj5cclxuICAgICAgICAgICAgQGlmKG1ldGEubmFtZSl7XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgYVxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgbXQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJmb250LXdlaWdodC1ub3JtYWwgZm9udC1nZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3ttZXRhLm5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9oMj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PiBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAgIEBpZihtZXRhLnN0eWxlcyAmJiBtZXRhLnN0eWxlcy5jYXJyb3VzZWwgPT0gZmFsc2Upe1xyXG4gICAgICAgICAgICAgICAgPCEtLSBTaSBlcyBmb3JtYXRvIGZpam8gLS0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFubmVyLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGctMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChiYW5uZXIgb2YgYmFubmVyczsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW25nQ2xhc3NdPVwiJ2l0ZW0gJysnY29sLW1kLTYgJysnY29sLWxnLScrKDEyL2Jhbm5lcnMubGVuZ3RoKSBcIiBbaWRdPVwiJGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLWZsdWlkXCIgW3NyY109XCIgbWVkaWFCYW5uZXJVcmwrZ2V0SW1hZ2UoYmFubmVyKVwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGUgdy0xMDAgdG9wLTAgc3RhcnQtMCBoLTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBbbmdDbGFzc109XCInaXRlbS10aXRsZSBweC0yIGl0ZW0tcG9zaXRpb24tdmVydGljYWwtJysgKGJhbm5lci5zdHlsZXM/LmRlc2NyaXB0aW9uPy5wb3NpdGlvbilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCIoYmFubmVyLnN0eWxlcz8uZGVzY3JpcHRpb24/LmNvbG9yKSA/IGJhbm5lci5zdHlsZXM/LmRlc2NyaXB0aW9uPy5jb2xvciA6ICcjMDAwJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2Jhbm5lci50aXRsZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oMj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYoYmFubmVyLnN1YnRpdGxlKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgW3N0eWxlLmNvbG9yXT1cIihiYW5uZXIuc3R5bGVzPy5kZXNjcmlwdGlvbj8uY29sb3IpID8gYmFubmVyLnN0eWxlcz8uZGVzY3JpcHRpb24/LmNvbG9yIDogJyMwMDAnIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCIncHgtNCBpdGVtLXN1YnRpdGxlIGl0ZW0tcG9zaXRpb24tdmVydGljYWwtJyArIChiYW5uZXIuc3R5bGVzPy5kZXNjcmlwdGlvbj8ucG9zaXRpb24pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2Jhbm5lci5zdWJ0aXRsZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW2NsYXNzXT1cIidpdGVtLXBvc2l0aW9uLXZlcnRpY2FsLScgKyAoYmFubmVyLnN0eWxlcz8uYnV0dG9uPy5wb3NpdGlvbilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYoYmFubmVyLnN0eWxlcz8uYnV0dG9uPy50ZXh0KXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cInt7YmFubmVyLnVybH19XCIgW2NsYXNzXT1cIidpdGVtLWJ1dHRvbiBidG4gYnRuLWxpZ2h0J1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tiYW5uZXIuc3R5bGVzLmJ1dHRvbi50ZXh0fX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIH1AZWxzZSB7XHJcbiAgICAgICAgICAgICAgIDwhLS0gU2kgZXMgQ2Fycm91c2VsIC0tPlxyXG4gICAgICAgICAgICAgICA8c3dpcGVyLWNvbnRhaW5lciBpbml0PVwiZmFsc2VcIiBbaWRdPVwibWV0YT8uY29kZVwiPlxyXG4gICAgICAgICAgICAgICAgQGZvciAoYmFubmVyIG9mIGJhbm5lcnM7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gU2kgZXMgZGUgQ2F0ZWdvcmlhcyAtLT5cclxuICAgICAgICAgICAgICAgICAgICBAaWYgKGJhbm5lci50YXhvbnNbMF0pIHtcclxuICAgICAgICAgICAgICAgICAgICA8c3dpcGVyLXNsaWRlPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJiYW5uZXItY29udGVudCBjYXJyb3VzZWwgaXRlbVwiIChjbGljayk9J3JlZGlyZWN0Um91dGUoYmFubmVyLnRheG9uc1swXS5zbHVnKScgW3JvdXRlckxpbmtdPVwiWycvY29sbGVjdGlvbi9jYXRlZ29yaWVzLycsIGJhbm5lci50YXhvbnNbMF0uc2x1Z11cIiByb3V0ZXJMaW5rQWN0aXZlPVwicm91dGVyLWxpbmstYWN0aXZlXCIgIHN0eWxlPVwidGV4dC1kZWNvcmF0aW9uOiBub25lOyBjdXJzb3I6IHBvaW50ZXI7IGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJtZWRpYUJhbm5lclVybCtnZXRJbWFnZShiYW5uZXIpXCIgYWx0PVwiQmFubmVyIEltYWdlXCIgY2xhc3M9XCJiYW5uZXItaW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKGJhbm5lci50aXRsZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIFtjbGFzc109XCInYm94LXRleHQgaXRlbS10aXRsZS1mdWxsIHB4LTIgaXRlbS1wb3NpdGlvbi12ZXJ0aWNhbC0nKyAoYmFubmVyLnN0eWxlcz8uZGVzY3JpcHRpb24/LnBvc2l0aW9uKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiY29sb3I6I2ZmZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2Jhbm5lci50aXRsZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oMj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZihiYW5uZXIudGF4b25zICYmIGJhbm5lci50YXhvbnMubGVuZ3RoKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDUgY2xhc3M9XCJpdGVtLXN1YnRpdGxlLWZ1bGwgaXRlbS1wb3NpdGlvbi12ZXJ0aWNhbC1jZW50ZXIgdGV4dC1jZW50ZXIgYm94LXRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tiYW5uZXIudHJhbnNsYXRpb25zLmVzX0FSLnRpdGxlfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2g1PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKGJhbm5lci5zdWJ0aXRsZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgW3N0eWxlLmNvbG9yXT1cIihiYW5uZXIuc3R5bGVzPy5kZXNjcmlwdGlvbj8uY29sb3IpID8gYmFubmVyLnN0eWxlcz8uZGVzY3JpcHRpb24/LmNvbG9yIDogJyMwMDAnIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCInYm94LXRleHQgcHgtNCBpdGVtLXN1YnRpdGxlLWZ1bGwgaXRlbS1wb3NpdGlvbi12ZXJ0aWNhbC0nICsgKGJhbm5lci5zdHlsZXM/LmRlc2NyaXB0aW9uPy5wb3NpdGlvbilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tiYW5uZXIuc3VidGl0bGV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3dpcGVyLXNsaWRlPlxyXG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3dpcGVyLXNsaWRlPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiYmFubmVyLWNvbnRlbnQgY2Fycm91c2VsIGl0ZW1cIiBzdHlsZT1cImN1cnNvcjogcG9pbnRlcjtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW1hZ2UtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJtZWRpYUJhbm5lclVybCtnZXRJbWFnZShiYW5uZXIpXCIgYWx0PVwiQmFubmVyIEltYWdlXCIgY2xhc3M9XCJiYW5uZXItaW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYoYmFubmVyLnRpdGxlKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIFtjbGFzc109XCInYm94LXRleHQgaXRlbS10aXRsZS1mdWxsIHB4LTIgaXRlbS1wb3NpdGlvbi12ZXJ0aWNhbC0nKyAoYmFubmVyLnN0eWxlcz8uZGVzY3JpcHRpb24/LnBvc2l0aW9uKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cImNvbG9yOiNmZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7YmFubmVyLnRpdGxlfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oMj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKGJhbm5lci50YXhvbnMgJiYgYmFubmVyLnRheG9ucy5sZW5ndGgpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDUgY2xhc3M9XCJpdGVtLXN1YnRpdGxlLWZ1bGwgaXRlbS1wb3NpdGlvbi12ZXJ0aWNhbC1jZW50ZXIgdGV4dC1jZW50ZXIgYm94LXRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7YmFubmVyLnRyYW5zbGF0aW9ucy5lc19BUi50aXRsZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaDU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZihiYW5uZXIuc3VidGl0bGUpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBbc3R5bGUuY29sb3JdPVwiKGJhbm5lci5zdHlsZXM/LmRlc2NyaXB0aW9uPy5jb2xvcikgPyBiYW5uZXIuc3R5bGVzPy5kZXNjcmlwdGlvbj8uY29sb3IgOiAnIzAwMCcgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCInYm94LXRleHQgcHgtNCBpdGVtLXN1YnRpdGxlLWZ1bGwgaXRlbS1wb3NpdGlvbi12ZXJ0aWNhbC0nICsgKGJhbm5lci5zdHlsZXM/LmRlc2NyaXB0aW9uPy5wb3NpdGlvbilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7YmFubmVyLnN1YnRpdGxlfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zd2lwZXItc2xpZGU+XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICA8L3N3aXBlci1jb250YWluZXI+IFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgPC9zZWN0aW9uPlxyXG59Il19
@@ -48,7 +48,7 @@ export class BlockProductsEcComponent extends BlockEcComponent {
48
48
  slidesPerView: 2
49
49
  },
50
50
  768: {
51
- slidesPerView: 4,
51
+ slidesPerView: 3,
52
52
  },
53
53
  992: {
54
54
  slidesPerView: 4,
@@ -88,11 +88,11 @@ export class BlockProductsEcComponent extends BlockEcComponent {
88
88
  this.analyticsService.callEvent('select_promotion', item);
89
89
  }
90
90
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: BlockProductsEcComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
91
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: BlockProductsEcComponent, isStandalone: true, selector: "app-block-products-ec", inputs: { appProduct: "appProduct", products: "products", meta: "meta" }, usesInheritance: true, ngImport: i0, template: "<section [ngClass]=\"trimClassBlock(meta.code) + ' container-fluid'\">\r\n\r\n <div class=\"blockProduct block-product\">\r\n @if(meta.name){\r\n <div class=\"row\">\r\n <div class=\"col-12 mt-4\">\r\n <h2 class=\"font-weight-normal font-gd\">\r\n <span>{{meta.name}}</span>\r\n </h2>\r\n </div>\r\n </div>\r\n }\r\n\r\n\r\n @if(meta.styles && meta.styles.carrousel == false){\r\n <div class=\"row \">\r\n @for (product of products; track $index) {\r\n <div [class]=\"'item '+ ' col-'+ (meta.styles.items?.sm) + ' col-md-' + (meta.styles.items?.md) + ' col-lg-' + (meta.styles.items?.lg) + ' px-2'\" [id]=\"$index\">\r\n <!-- verifica que si vienen un template para un custom appProduct llamado \"appProduct\" con un objeto \"product\"- sino usa por defecto el del core -->\r\n <ng-container *ngTemplateOutlet=\"appProduct ? appProduct : defaultAppProduct; context: {product:product}\"></ng-container> \r\n </div>\r\n }\r\n </div>\r\n } @else {\r\n <swiper-container init=\"false\" [id]=\"meta?.code\">\r\n @for (product of products; track $index) {\r\n <swiper-slide>\r\n <ng-container *ngTemplateOutlet=\"appProduct ? appProduct : defaultAppProduct; context: {product:product}\"></ng-container> \r\n </swiper-slide>\r\n }\r\n </swiper-container>\r\n }\r\n </div>\r\n</section>\r\n\r\n\r\n<!-- componente por defecto (tomara como producto el contexto pasado como \"product\") -->\r\n<ng-template #defaultAppProduct let-product=\"product\" > \r\n <app-product-ec [product]=\"product\"></app-product-ec>\r\n</ng-template>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ProductEcComponent, selector: "app-product-ec", inputs: ["product", "isProductBox", "isCollection"], outputs: ["loaded"] }] });
91
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: BlockProductsEcComponent, isStandalone: true, selector: "app-block-products-ec", inputs: { appProduct: "appProduct", products: "products", meta: "meta" }, usesInheritance: true, ngImport: i0, template: "<section [ngClass]=\"trimClassBlock(meta.code) + ' container-fluid'\">\r\n\r\n <div class=\"blockProduct block-product\">\r\n @if(meta.name){\r\n <div class=\"row\">\r\n <div class=\"col-12 mt-4\">\r\n <h2 class=\"font-weight-normal font-gd\">\r\n <span>{{meta.name}}</span>\r\n </h2>\r\n </div>\r\n </div>\r\n }\r\n\r\n\r\n @if(meta.styles && meta.styles.carrousel == false){\r\n <div class=\"row \">\r\n @for (product of products; track $index) {\r\n <div [class]=\"'item '+ ' col-'+ (meta.styles.items?.sm) + ' col-md-' + (meta.styles.items?.md) + ' col-lg-' + (meta.styles.items?.lg) + ' px-2'\" [id]=\"$index\">\r\n <!-- verifica que si vienen un template para un custom appProduct llamado \"appProduct\" con un objeto \"product\"- sino usa por defecto el del core -->\r\n <ng-container *ngTemplateOutlet=\"appProduct ? appProduct : defaultAppProduct; context: {product:product}\"></ng-container>\r\n </div>\r\n }\r\n </div>\r\n } @else {\r\n <div class=\"container\">\r\n <swiper-container init=\"false\" [id]=\"meta?.code\">\r\n @for (product of products; track $index) {\r\n <swiper-slide id=\"swiper-slide\">\r\n <ng-container\r\n *ngTemplateOutlet=\"appProduct ? appProduct : defaultAppProduct; context: {product:product}\"></ng-container>\r\n </swiper-slide>\r\n }\r\n </swiper-container>\r\n </div>\r\n }\r\n </div>\r\n</section>\r\n\r\n\r\n<!-- componente por defecto (tomara como producto el contexto pasado como \"product\") -->\r\n<ng-template #defaultAppProduct let-product=\"product\">\r\n <app-product-ec [product]=\"product\"></app-product-ec>\r\n</ng-template>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ProductEcComponent, selector: "app-product-ec", inputs: ["product", "isProductBox", "isCollection"], outputs: ["loaded"] }] });
92
92
  }
93
93
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: BlockProductsEcComponent, decorators: [{
94
94
  type: Component,
95
- args: [{ selector: 'app-block-products-ec', standalone: true, imports: [CommonModule, ProductEcComponent], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<section [ngClass]=\"trimClassBlock(meta.code) + ' container-fluid'\">\r\n\r\n <div class=\"blockProduct block-product\">\r\n @if(meta.name){\r\n <div class=\"row\">\r\n <div class=\"col-12 mt-4\">\r\n <h2 class=\"font-weight-normal font-gd\">\r\n <span>{{meta.name}}</span>\r\n </h2>\r\n </div>\r\n </div>\r\n }\r\n\r\n\r\n @if(meta.styles && meta.styles.carrousel == false){\r\n <div class=\"row \">\r\n @for (product of products; track $index) {\r\n <div [class]=\"'item '+ ' col-'+ (meta.styles.items?.sm) + ' col-md-' + (meta.styles.items?.md) + ' col-lg-' + (meta.styles.items?.lg) + ' px-2'\" [id]=\"$index\">\r\n <!-- verifica que si vienen un template para un custom appProduct llamado \"appProduct\" con un objeto \"product\"- sino usa por defecto el del core -->\r\n <ng-container *ngTemplateOutlet=\"appProduct ? appProduct : defaultAppProduct; context: {product:product}\"></ng-container> \r\n </div>\r\n }\r\n </div>\r\n } @else {\r\n <swiper-container init=\"false\" [id]=\"meta?.code\">\r\n @for (product of products; track $index) {\r\n <swiper-slide>\r\n <ng-container *ngTemplateOutlet=\"appProduct ? appProduct : defaultAppProduct; context: {product:product}\"></ng-container> \r\n </swiper-slide>\r\n }\r\n </swiper-container>\r\n }\r\n </div>\r\n</section>\r\n\r\n\r\n<!-- componente por defecto (tomara como producto el contexto pasado como \"product\") -->\r\n<ng-template #defaultAppProduct let-product=\"product\" > \r\n <app-product-ec [product]=\"product\"></app-product-ec>\r\n</ng-template>\r\n" }]
95
+ args: [{ selector: 'app-block-products-ec', standalone: true, imports: [CommonModule, ProductEcComponent], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<section [ngClass]=\"trimClassBlock(meta.code) + ' container-fluid'\">\r\n\r\n <div class=\"blockProduct block-product\">\r\n @if(meta.name){\r\n <div class=\"row\">\r\n <div class=\"col-12 mt-4\">\r\n <h2 class=\"font-weight-normal font-gd\">\r\n <span>{{meta.name}}</span>\r\n </h2>\r\n </div>\r\n </div>\r\n }\r\n\r\n\r\n @if(meta.styles && meta.styles.carrousel == false){\r\n <div class=\"row \">\r\n @for (product of products; track $index) {\r\n <div [class]=\"'item '+ ' col-'+ (meta.styles.items?.sm) + ' col-md-' + (meta.styles.items?.md) + ' col-lg-' + (meta.styles.items?.lg) + ' px-2'\" [id]=\"$index\">\r\n <!-- verifica que si vienen un template para un custom appProduct llamado \"appProduct\" con un objeto \"product\"- sino usa por defecto el del core -->\r\n <ng-container *ngTemplateOutlet=\"appProduct ? appProduct : defaultAppProduct; context: {product:product}\"></ng-container>\r\n </div>\r\n }\r\n </div>\r\n } @else {\r\n <div class=\"container\">\r\n <swiper-container init=\"false\" [id]=\"meta?.code\">\r\n @for (product of products; track $index) {\r\n <swiper-slide id=\"swiper-slide\">\r\n <ng-container\r\n *ngTemplateOutlet=\"appProduct ? appProduct : defaultAppProduct; context: {product:product}\"></ng-container>\r\n </swiper-slide>\r\n }\r\n </swiper-container>\r\n </div>\r\n }\r\n </div>\r\n</section>\r\n\r\n\r\n<!-- componente por defecto (tomara como producto el contexto pasado como \"product\") -->\r\n<ng-template #defaultAppProduct let-product=\"product\">\r\n <app-product-ec [product]=\"product\"></app-product-ec>\r\n</ng-template>" }]
96
96
  }], ctorParameters: () => [], propDecorators: { appProduct: [{
97
97
  type: Input
98
98
  }], products: [{
@@ -106,4 +106,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
106
106
  required: true
107
107
  }]
108
108
  }] } });
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stcHJvZHVjdHMtZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvYmxvY2tzLWVjL2Jsb2NrLXByb2R1Y3RzLWVjL2Jsb2NrLXByb2R1Y3RzLWVjLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1jb21wb25lbnRzL2Jsb2Nrcy1lYy9ibG9jay1wcm9kdWN0cy1lYy9ibG9jay1wcm9kdWN0cy1lYy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFDcEksT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFakUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLHFEQUFxRDtBQUNyRCxPQUFPLEVBQUUsUUFBUSxFQUFtQixNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7QUFFM0UsUUFBUSxFQUFFLENBQUE7QUFDVjs7OztHQUlHO0FBU0gsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGdCQUFnQjtJQUM3RDs7T0FFRztJQUNLLGdCQUFnQixHQUFxQixNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtJQUNyRTs7T0FFRztJQUNILGFBQWEsR0FBRyxNQUFNLENBQXlCLElBQUksQ0FBQyxDQUFBO0lBQ3BEOztPQUVHO0lBQ00sVUFBVSxDQUErQjtJQUNsRDs7T0FFRztJQUdBLFFBQVEsQ0FBTSxDQUFDLGFBQWE7SUFDL0I7O09BRUc7SUFHQSxJQUFJLENBQU07SUFDYjs7T0FFRztJQUNNLGFBQWEsR0FBRyxHQUFrQixFQUFFO1FBQzVDLE9BQU87WUFDTixVQUFVLEVBQUUsSUFBSTtZQUNoQixXQUFXLEVBQUU7Z0JBQ1osQ0FBQyxFQUFFO29CQUNGLGFBQWEsRUFBRSxDQUFDO2lCQUNoQjtnQkFDRCxHQUFHLEVBQUU7b0JBQ0osYUFBYSxFQUFFLENBQUM7aUJBQ2hCO2dCQUNELEdBQUcsRUFBRTtvQkFDSixhQUFhLEVBQUUsQ0FBQztpQkFDaEI7Z0JBQ0QsR0FBRyxFQUFFO29CQUNKLGFBQWEsRUFBRSxDQUFDO2lCQUNoQjtnQkFDRCxJQUFJLEVBQUU7b0JBQ0wsYUFBYSxFQUFFLENBQUM7aUJBQ2hCO2FBQ0Q7U0FDRCxDQUFBO0lBQ0YsQ0FBQyxDQUFBO0lBQ08sUUFBUSxDQUFZO0lBQ3BCLFVBQVUsR0FBUSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7SUFFN0M7Ozs7T0FJRztJQUNIO1FBQ0MsS0FBSyxFQUFFLENBQUE7UUFDUCxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFBO1FBQ3pCLENBQUM7UUFDRCxlQUFlLENBQUMsR0FBRyxFQUFFO1lBQ3BCLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUE7WUFDakYsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO2dCQUMzQixNQUFNLENBQUMsTUFBTSxDQUFDLHFCQUFzQixFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFBO2dCQUMzRCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxxQkFBd0MsQ0FBQyxDQUFBO2dCQUNoRSxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsVUFBVSxFQUFFLENBQUM7WUFDcEMsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFBO0lBQ0gsQ0FBQztJQUNEOzs7T0FHRztJQUNILGVBQWUsQ0FBQyxJQUFTO1FBQ3hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDMUQsQ0FBQzt1R0E5RVcsd0JBQXdCOzJGQUF4Qix3QkFBd0Isa0xDdkJyQyx1OURBd0NBLHlERHRCVyxZQUFZLG9TQUFFLGtCQUFrQjs7MkZBSzlCLHdCQUF3QjtrQkFScEMsU0FBUzsrQkFDQyx1QkFBdUIsY0FDckIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGtCQUFrQixDQUFDLFdBR2xDLENBQUMsc0JBQXNCLENBQUM7d0RBY3hCLFVBQVU7c0JBQWxCLEtBQUs7Z0JBTUgsUUFBUTtzQkFGVixLQUFLO3VCQUFDO3dCQUNOLFFBQVEsRUFBRSxJQUFJO3FCQUNkO2dCQU1FLElBQUk7c0JBRk4sS0FBSzt1QkFBQzt3QkFDTixRQUFRLEVBQUUsSUFBSTtxQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFmdGVyTmV4dFJlbmRlciwgQ29tcG9uZW50LCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBpbmplY3QsIElucHV0LCBQTEFURk9STV9JRCwgc2lnbmFsLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCbG9ja0VjQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYWJzdHJhY3Rpb25zLWNvbXBvbmVudHMnO1xyXG5pbXBvcnQgeyBTd2lwZXJPcHRpb25zIH0gZnJvbSAnc3dpcGVyL3R5cGVzJztcclxuaW1wb3J0IHsgQW5hbHl0aWNzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2VjLXNlcnZpY2VzJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbi8vIGltcG9ydCBmdW5jdGlvbiB0byByZWdpc3RlciBTd2lwZXIgY3VzdG9tIGVsZW1lbnRzXHJcbmltcG9ydCB7IHJlZ2lzdGVyLCBTd2lwZXJDb250YWluZXIgfSBmcm9tICdzd2lwZXIvZWxlbWVudC9idW5kbGUnO1xyXG5pbXBvcnQgeyBQcm9kdWN0RWNDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vcHJvZHVjdC1lYy9wcm9kdWN0LWVjLmNvbXBvbmVudFwiO1xyXG5cclxucmVnaXN0ZXIoKVxyXG4vKipcclxuICogQ29tcG9uZW4gcGFyYSBtYW5lamFyIGxvcyBibG9xdWVzIGRlIHByb2R1Y3Rvcy5cclxuICogQGV4dGVuZHMge0Jsb2NrRWNDb21wb25lbnR9XHJcbiAqIEBjbGFzcyBCbG9ja1Byb2R1Y3RzRWNDb21wb25lbnRcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnYXBwLWJsb2NrLXByb2R1Y3RzLWVjJyxcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFByb2R1Y3RFY0NvbXBvbmVudF0sXHJcblx0dGVtcGxhdGVVcmw6ICcuL2Jsb2NrLXByb2R1Y3RzLWVjLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybDogJy4vYmxvY2stcHJvZHVjdHMtZWMuY29tcG9uZW50LnNjc3MnLFxyXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmxvY2tQcm9kdWN0c0VjQ29tcG9uZW50IGV4dGVuZHMgQmxvY2tFY0NvbXBvbmVudCB7XHJcblx0LyoqXHJcblx0ICogU2VydmljaW8gZGUgQW5hbHl0aWNzXHJcblx0ICovXHJcblx0cHJpdmF0ZSBhbmFseXRpY3NTZXJ2aWNlOiBBbmFseXRpY3NTZXJ2aWNlID0gaW5qZWN0KEFuYWx5dGljc1NlcnZpY2UpXHJcblx0LyoqXHJcblx0ICogU2lnbmFsIHV0bGl6YWRvIHBhcmEgZ3VhcmRhIGVsIGNvbnRlbmVkb3IgZGVsIGNhcnJ1c2VsXHJcblx0ICovXHJcblx0c3dpcGVyRWxlbWVudCA9IHNpZ25hbDxTd2lwZXJDb250YWluZXIgfCBudWxsPihudWxsKVxyXG5cdC8qKlxyXG5cdCAqIElucHV0IHF1ZSByZWNpYmUgdW4gdGVtcGxhdGUgcGFyYSBlbCBwcm9kdWN0by5cclxuXHQgKi9cclxuXHRASW5wdXQoKSBhcHBQcm9kdWN0OiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xyXG5cdC8qKlxyXG5cdCAqIENvbGVjY2nDs24gZGUgcHJvZHVjdG9zLlxyXG5cdCAqL1xyXG5cdEBJbnB1dCh7XHJcblx0XHRyZXF1aXJlZDogdHJ1ZVxyXG5cdH0pIHByb2R1Y3RzOiBhbnk7IC8vIFByb2R1Y3RbXTtcclxuXHQvKipcclxuXHQgKiBCbG9xdWUgcHJpbmNpcGFsIHF1ZSBjb250aWVuZSBsb3MgcHJvZHVjdG9zXHJcblx0ICovXHJcblx0QElucHV0KHtcclxuXHRcdHJlcXVpcmVkOiB0cnVlXHJcblx0fSkgbWV0YTogYW55O1xyXG5cdC8qKlxyXG5cdCAqIE3DqXRvZG8gb3JpZ2luYWwgZW46IHtAbGluayBCbG9ja0VjQ29tcG9uZW50fVxyXG5cdCAqL1xyXG5cdG92ZXJyaWRlIHN3aXBlck9wdGlvbnMgPSAoKTogU3dpcGVyT3B0aW9ucyA9PiB7XHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHRuYXZpZ2F0aW9uOiB0cnVlLFxyXG5cdFx0XHRicmVha3BvaW50czoge1xyXG5cdFx0XHRcdDA6IHtcclxuXHRcdFx0XHRcdHNsaWRlc1BlclZpZXc6IDFcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdDU3Njoge1xyXG5cdFx0XHRcdFx0c2xpZGVzUGVyVmlldzogMlxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0NzY4OiB7XHJcblx0XHRcdFx0XHRzbGlkZXNQZXJWaWV3OiA0LFxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0OTkyOiB7XHJcblx0XHRcdFx0XHRzbGlkZXNQZXJWaWV3OiA0LFxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0MTIwMDoge1xyXG5cdFx0XHRcdFx0c2xpZGVzUGVyVmlldzogNCxcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0cHJpdmF0ZSBkb2N1bWVudD86IERvY3VtZW50O1xyXG5cdHByaXZhdGUgcGxhdGZvcm1JZDogYW55ID0gaW5qZWN0KFBMQVRGT1JNX0lEKVxyXG5cclxuXHQvKipcclxuXHQgKiBFamVjdXRhIGVsIG3DqXRvZG8gYGFmdGVyTmV4dFJlbmRlcmBwYXJhIGNhcmdhciBsYXMgY29uZmlndXJhY2lvbmVzIG5lY2VzYXJpYXMgXHJcblx0ICogcGFyYSBlbCBjYXJydXNlbCBkZWwgYmFubmVycy4gRXN0byBkZWJlIHNlciBhc2kgZGViaWRvIGEgcXVlIHlhIGRlYmUgZXN0YXIgcHJlc2VudGVcclxuXHQgKiBlbiBlbCBEb20gZWwgZWxlbWVudCBgPHN3aXBlci1jb250YWluZXI+YCBwYXJhIHBvZGVyIGNvbmZpZ3VyYXJsby5cclxuXHQgKi9cclxuXHRjb25zdHJ1Y3RvcigpIHtcclxuXHRcdHN1cGVyKClcclxuXHRcdGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XHJcblx0XHRcdHRoaXMuZG9jdW1lbnQgPSBkb2N1bWVudFxyXG5cdFx0fVxyXG5cdFx0YWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcclxuXHRcdFx0Y29uc3Qgc3dpcGVyRWxlbUNvbnN0cnVjdG9yID0gdGhpcy5kb2N1bWVudD8ucXVlcnlTZWxlY3RvcignIycgKyB0aGlzLm1ldGE/LmNvZGUpXHJcblx0XHRcdGlmIChzd2lwZXJFbGVtQ29uc3RydWN0b3IpIHtcclxuXHRcdFx0XHRPYmplY3QuYXNzaWduKHN3aXBlckVsZW1Db25zdHJ1Y3RvciEsIHRoaXMuc3dpcGVyT3B0aW9ucygpKVxyXG5cdFx0XHRcdHRoaXMuc3dpcGVyRWxlbWVudC5zZXQoc3dpcGVyRWxlbUNvbnN0cnVjdG9yIGFzIFN3aXBlckNvbnRhaW5lcilcclxuXHRcdFx0XHR0aGlzLnN3aXBlckVsZW1lbnQoKT8uaW5pdGlhbGl6ZSgpO1xyXG5cdFx0XHR9XHJcblx0XHR9KVxyXG5cdH1cclxuXHQvKipcclxuXHQgKiBBcGxpY2EgZWwgZXZlbnRvIGBzZWxlY3RfcHJvbW90aW9uYCBqdW50byBjb24gZWwgYmFubmVyIHF1ZSBpbnRlcmFjdHVhLlxyXG5cdCAqIEBwYXJhbSBiYW5uZXIgXHJcblx0ICovXHJcblx0c2VsZWN0UHJvbW90aW9uKGl0ZW06IGFueSk6IHZvaWQge1xyXG5cdFx0dGhpcy5hbmFseXRpY3NTZXJ2aWNlLmNhbGxFdmVudCgnc2VsZWN0X3Byb21vdGlvbicsIGl0ZW0pXHJcblx0fVxyXG59XHJcbiIsIjxzZWN0aW9uIFtuZ0NsYXNzXT1cInRyaW1DbGFzc0Jsb2NrKG1ldGEuY29kZSkgKyAnIGNvbnRhaW5lci1mbHVpZCdcIj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiYmxvY2tQcm9kdWN0IGJsb2NrLXByb2R1Y3RcIj5cclxuICAgICAgICBAaWYobWV0YS5uYW1lKXtcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBtdC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGgyICBjbGFzcz1cImZvbnQtd2VpZ2h0LW5vcm1hbCBmb250LWdkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7bWV0YS5uYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9oMj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAgICAgQGlmKG1ldGEuc3R5bGVzICYmIG1ldGEuc3R5bGVzLmNhcnJvdXNlbCA9PSBmYWxzZSl7XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKHByb2R1Y3Qgb2YgcHJvZHVjdHM7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtjbGFzc109XCInaXRlbSAnKyAnIGNvbC0nKyAobWV0YS5zdHlsZXMuaXRlbXM/LnNtKSArICcgY29sLW1kLScgKyAobWV0YS5zdHlsZXMuaXRlbXM/Lm1kKSAgKyAnIGNvbC1sZy0nICsgKG1ldGEuc3R5bGVzLml0ZW1zPy5sZykgICsgJyBweC0yJ1wiIFtpZF09XCIkaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gdmVyaWZpY2EgcXVlIHNpIHZpZW5lbiB1biB0ZW1wbGF0ZSBwYXJhIHVuIGN1c3RvbSBhcHBQcm9kdWN0IGxsYW1hZG8gXCJhcHBQcm9kdWN0XCIgY29uIHVuIG9iamV0byBcInByb2R1Y3RcIi0gc2lubyB1c2EgcG9yIGRlZmVjdG8gZWwgZGVsIGNvcmUgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYXBwUHJvZHVjdCA/IGFwcFByb2R1Y3QgOiBkZWZhdWx0QXBwUHJvZHVjdDsgY29udGV4dDoge3Byb2R1Y3Q6cHJvZHVjdH1cIj48L25nLWNvbnRhaW5lcj4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgICAgIDxzd2lwZXItY29udGFpbmVyIGluaXQ9XCJmYWxzZVwiIFtpZF09XCJtZXRhPy5jb2RlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgQGZvciAocHJvZHVjdCBvZiBwcm9kdWN0czsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzd2lwZXItc2xpZGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYXBwUHJvZHVjdCA/IGFwcFByb2R1Y3QgOiBkZWZhdWx0QXBwUHJvZHVjdDsgY29udGV4dDoge3Byb2R1Y3Q6cHJvZHVjdH1cIj48L25nLWNvbnRhaW5lcj4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3dpcGVyLXNsaWRlPlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIDwvc3dpcGVyLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbjwvc2VjdGlvbj5cclxuXHJcblxyXG48IS0tIGNvbXBvbmVudGUgcG9yIGRlZmVjdG8gKHRvbWFyYSBjb21vIHByb2R1Y3RvIGVsIGNvbnRleHRvIHBhc2FkbyBjb21vIFwicHJvZHVjdFwiKSAtLT5cclxuPG5nLXRlbXBsYXRlICNkZWZhdWx0QXBwUHJvZHVjdCBsZXQtcHJvZHVjdD1cInByb2R1Y3RcIiA+IFxyXG4gICAgPGFwcC1wcm9kdWN0LWVjIFtwcm9kdWN0XT1cInByb2R1Y3RcIj48L2FwcC1wcm9kdWN0LWVjPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stcHJvZHVjdHMtZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvYmxvY2tzLWVjL2Jsb2NrLXByb2R1Y3RzLWVjL2Jsb2NrLXByb2R1Y3RzLWVjLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1jb21wb25lbnRzL2Jsb2Nrcy1lYy9ibG9jay1wcm9kdWN0cy1lYy9ibG9jay1wcm9kdWN0cy1lYy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFDcEksT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFakUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLHFEQUFxRDtBQUNyRCxPQUFPLEVBQUUsUUFBUSxFQUFtQixNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7QUFFM0UsUUFBUSxFQUFFLENBQUE7QUFDVjs7OztHQUlHO0FBU0gsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGdCQUFnQjtJQUM3RDs7T0FFRztJQUNLLGdCQUFnQixHQUFxQixNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtJQUNyRTs7T0FFRztJQUNILGFBQWEsR0FBRyxNQUFNLENBQXlCLElBQUksQ0FBQyxDQUFBO0lBQ3BEOztPQUVHO0lBQ00sVUFBVSxDQUErQjtJQUNsRDs7T0FFRztJQUdBLFFBQVEsQ0FBTSxDQUFDLGFBQWE7SUFDL0I7O09BRUc7SUFHQSxJQUFJLENBQU07SUFDYjs7T0FFRztJQUNNLGFBQWEsR0FBRyxHQUFrQixFQUFFO1FBQzVDLE9BQU87WUFDTixVQUFVLEVBQUUsSUFBSTtZQUNoQixXQUFXLEVBQUU7Z0JBQ1osQ0FBQyxFQUFFO29CQUNGLGFBQWEsRUFBRSxDQUFDO2lCQUNoQjtnQkFDRCxHQUFHLEVBQUU7b0JBQ0osYUFBYSxFQUFFLENBQUM7aUJBQ2hCO2dCQUNELEdBQUcsRUFBRTtvQkFDSixhQUFhLEVBQUUsQ0FBQztpQkFDaEI7Z0JBQ0QsR0FBRyxFQUFFO29CQUNKLGFBQWEsRUFBRSxDQUFDO2lCQUNoQjtnQkFDRCxJQUFJLEVBQUU7b0JBQ0wsYUFBYSxFQUFFLENBQUM7aUJBQ2hCO2FBQ0Q7U0FDRCxDQUFBO0lBQ0YsQ0FBQyxDQUFBO0lBQ08sUUFBUSxDQUFZO0lBQ3BCLFVBQVUsR0FBUSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7SUFFN0M7Ozs7T0FJRztJQUNIO1FBQ0MsS0FBSyxFQUFFLENBQUE7UUFDUCxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFBO1FBQ3pCLENBQUM7UUFDRCxlQUFlLENBQUMsR0FBRyxFQUFFO1lBQ3BCLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUE7WUFDakYsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO2dCQUMzQixNQUFNLENBQUMsTUFBTSxDQUFDLHFCQUFzQixFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFBO2dCQUMzRCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxxQkFBd0MsQ0FBQyxDQUFBO2dCQUNoRSxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsVUFBVSxFQUFFLENBQUM7WUFDcEMsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFBO0lBQ0gsQ0FBQztJQUNEOzs7T0FHRztJQUNILGVBQWUsQ0FBQyxJQUFTO1FBQ3hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDMUQsQ0FBQzt1R0E5RVcsd0JBQXdCOzJGQUF4Qix3QkFBd0Isa0xDdkJyQyxxNURBMENjLHlERHhCSCxZQUFZLG9TQUFFLGtCQUFrQjs7MkZBSzlCLHdCQUF3QjtrQkFScEMsU0FBUzsrQkFDQyx1QkFBdUIsY0FDckIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGtCQUFrQixDQUFDLFdBR2xDLENBQUMsc0JBQXNCLENBQUM7d0RBY3hCLFVBQVU7c0JBQWxCLEtBQUs7Z0JBTUgsUUFBUTtzQkFGVixLQUFLO3VCQUFDO3dCQUNOLFFBQVEsRUFBRSxJQUFJO3FCQUNkO2dCQU1FLElBQUk7c0JBRk4sS0FBSzt1QkFBQzt3QkFDTixRQUFRLEVBQUUsSUFBSTtxQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFmdGVyTmV4dFJlbmRlciwgQ29tcG9uZW50LCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBpbmplY3QsIElucHV0LCBQTEFURk9STV9JRCwgc2lnbmFsLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCbG9ja0VjQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYWJzdHJhY3Rpb25zLWNvbXBvbmVudHMnO1xyXG5pbXBvcnQgeyBTd2lwZXJPcHRpb25zIH0gZnJvbSAnc3dpcGVyL3R5cGVzJztcclxuaW1wb3J0IHsgQW5hbHl0aWNzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2VjLXNlcnZpY2VzJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbi8vIGltcG9ydCBmdW5jdGlvbiB0byByZWdpc3RlciBTd2lwZXIgY3VzdG9tIGVsZW1lbnRzXHJcbmltcG9ydCB7IHJlZ2lzdGVyLCBTd2lwZXJDb250YWluZXIgfSBmcm9tICdzd2lwZXIvZWxlbWVudC9idW5kbGUnO1xyXG5pbXBvcnQgeyBQcm9kdWN0RWNDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vcHJvZHVjdC1lYy9wcm9kdWN0LWVjLmNvbXBvbmVudFwiO1xyXG5cclxucmVnaXN0ZXIoKVxyXG4vKipcclxuICogQ29tcG9uZW4gcGFyYSBtYW5lamFyIGxvcyBibG9xdWVzIGRlIHByb2R1Y3Rvcy5cclxuICogQGV4dGVuZHMge0Jsb2NrRWNDb21wb25lbnR9XHJcbiAqIEBjbGFzcyBCbG9ja1Byb2R1Y3RzRWNDb21wb25lbnRcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnYXBwLWJsb2NrLXByb2R1Y3RzLWVjJyxcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFByb2R1Y3RFY0NvbXBvbmVudF0sXHJcblx0dGVtcGxhdGVVcmw6ICcuL2Jsb2NrLXByb2R1Y3RzLWVjLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybDogJy4vYmxvY2stcHJvZHVjdHMtZWMuY29tcG9uZW50LnNjc3MnLFxyXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmxvY2tQcm9kdWN0c0VjQ29tcG9uZW50IGV4dGVuZHMgQmxvY2tFY0NvbXBvbmVudCB7XHJcblx0LyoqXHJcblx0ICogU2VydmljaW8gZGUgQW5hbHl0aWNzXHJcblx0ICovXHJcblx0cHJpdmF0ZSBhbmFseXRpY3NTZXJ2aWNlOiBBbmFseXRpY3NTZXJ2aWNlID0gaW5qZWN0KEFuYWx5dGljc1NlcnZpY2UpXHJcblx0LyoqXHJcblx0ICogU2lnbmFsIHV0bGl6YWRvIHBhcmEgZ3VhcmRhIGVsIGNvbnRlbmVkb3IgZGVsIGNhcnJ1c2VsXHJcblx0ICovXHJcblx0c3dpcGVyRWxlbWVudCA9IHNpZ25hbDxTd2lwZXJDb250YWluZXIgfCBudWxsPihudWxsKVxyXG5cdC8qKlxyXG5cdCAqIElucHV0IHF1ZSByZWNpYmUgdW4gdGVtcGxhdGUgcGFyYSBlbCBwcm9kdWN0by5cclxuXHQgKi9cclxuXHRASW5wdXQoKSBhcHBQcm9kdWN0OiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xyXG5cdC8qKlxyXG5cdCAqIENvbGVjY2nDs24gZGUgcHJvZHVjdG9zLlxyXG5cdCAqL1xyXG5cdEBJbnB1dCh7XHJcblx0XHRyZXF1aXJlZDogdHJ1ZVxyXG5cdH0pIHByb2R1Y3RzOiBhbnk7IC8vIFByb2R1Y3RbXTtcclxuXHQvKipcclxuXHQgKiBCbG9xdWUgcHJpbmNpcGFsIHF1ZSBjb250aWVuZSBsb3MgcHJvZHVjdG9zXHJcblx0ICovXHJcblx0QElucHV0KHtcclxuXHRcdHJlcXVpcmVkOiB0cnVlXHJcblx0fSkgbWV0YTogYW55O1xyXG5cdC8qKlxyXG5cdCAqIE3DqXRvZG8gb3JpZ2luYWwgZW46IHtAbGluayBCbG9ja0VjQ29tcG9uZW50fVxyXG5cdCAqL1xyXG5cdG92ZXJyaWRlIHN3aXBlck9wdGlvbnMgPSAoKTogU3dpcGVyT3B0aW9ucyA9PiB7XHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHRuYXZpZ2F0aW9uOiB0cnVlLFxyXG5cdFx0XHRicmVha3BvaW50czoge1xyXG5cdFx0XHRcdDA6IHtcclxuXHRcdFx0XHRcdHNsaWRlc1BlclZpZXc6IDFcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdDU3Njoge1xyXG5cdFx0XHRcdFx0c2xpZGVzUGVyVmlldzogMlxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0NzY4OiB7XHJcblx0XHRcdFx0XHRzbGlkZXNQZXJWaWV3OiAzLFxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0OTkyOiB7XHJcblx0XHRcdFx0XHRzbGlkZXNQZXJWaWV3OiA0LFxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0MTIwMDoge1xyXG5cdFx0XHRcdFx0c2xpZGVzUGVyVmlldzogNCxcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0cHJpdmF0ZSBkb2N1bWVudD86IERvY3VtZW50O1xyXG5cdHByaXZhdGUgcGxhdGZvcm1JZDogYW55ID0gaW5qZWN0KFBMQVRGT1JNX0lEKVxyXG5cclxuXHQvKipcclxuXHQgKiBFamVjdXRhIGVsIG3DqXRvZG8gYGFmdGVyTmV4dFJlbmRlcmBwYXJhIGNhcmdhciBsYXMgY29uZmlndXJhY2lvbmVzIG5lY2VzYXJpYXMgXHJcblx0ICogcGFyYSBlbCBjYXJydXNlbCBkZWwgYmFubmVycy4gRXN0byBkZWJlIHNlciBhc2kgZGViaWRvIGEgcXVlIHlhIGRlYmUgZXN0YXIgcHJlc2VudGVcclxuXHQgKiBlbiBlbCBEb20gZWwgZWxlbWVudCBgPHN3aXBlci1jb250YWluZXI+YCBwYXJhIHBvZGVyIGNvbmZpZ3VyYXJsby5cclxuXHQgKi9cclxuXHRjb25zdHJ1Y3RvcigpIHtcclxuXHRcdHN1cGVyKClcclxuXHRcdGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XHJcblx0XHRcdHRoaXMuZG9jdW1lbnQgPSBkb2N1bWVudFxyXG5cdFx0fVxyXG5cdFx0YWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcclxuXHRcdFx0Y29uc3Qgc3dpcGVyRWxlbUNvbnN0cnVjdG9yID0gdGhpcy5kb2N1bWVudD8ucXVlcnlTZWxlY3RvcignIycgKyB0aGlzLm1ldGE/LmNvZGUpXHJcblx0XHRcdGlmIChzd2lwZXJFbGVtQ29uc3RydWN0b3IpIHtcclxuXHRcdFx0XHRPYmplY3QuYXNzaWduKHN3aXBlckVsZW1Db25zdHJ1Y3RvciEsIHRoaXMuc3dpcGVyT3B0aW9ucygpKVxyXG5cdFx0XHRcdHRoaXMuc3dpcGVyRWxlbWVudC5zZXQoc3dpcGVyRWxlbUNvbnN0cnVjdG9yIGFzIFN3aXBlckNvbnRhaW5lcilcclxuXHRcdFx0XHR0aGlzLnN3aXBlckVsZW1lbnQoKT8uaW5pdGlhbGl6ZSgpO1xyXG5cdFx0XHR9XHJcblx0XHR9KVxyXG5cdH1cclxuXHQvKipcclxuXHQgKiBBcGxpY2EgZWwgZXZlbnRvIGBzZWxlY3RfcHJvbW90aW9uYCBqdW50byBjb24gZWwgYmFubmVyIHF1ZSBpbnRlcmFjdHVhLlxyXG5cdCAqIEBwYXJhbSBiYW5uZXIgXHJcblx0ICovXHJcblx0c2VsZWN0UHJvbW90aW9uKGl0ZW06IGFueSk6IHZvaWQge1xyXG5cdFx0dGhpcy5hbmFseXRpY3NTZXJ2aWNlLmNhbGxFdmVudCgnc2VsZWN0X3Byb21vdGlvbicsIGl0ZW0pXHJcblx0fVxyXG59XHJcbiIsIjxzZWN0aW9uIFtuZ0NsYXNzXT1cInRyaW1DbGFzc0Jsb2NrKG1ldGEuY29kZSkgKyAnIGNvbnRhaW5lci1mbHVpZCdcIj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiYmxvY2tQcm9kdWN0IGJsb2NrLXByb2R1Y3RcIj5cclxuICAgICAgICBAaWYobWV0YS5uYW1lKXtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgbXQtNFwiPlxyXG4gICAgICAgICAgICAgICAgPGgyICBjbGFzcz1cImZvbnQtd2VpZ2h0LW5vcm1hbCBmb250LWdkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3ttZXRhLm5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgIEBpZihtZXRhLnN0eWxlcyAmJiBtZXRhLnN0eWxlcy5jYXJyb3VzZWwgPT0gZmFsc2Upe1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgXCI+XHJcbiAgICAgICAgICAgIEBmb3IgKHByb2R1Y3Qgb2YgcHJvZHVjdHM7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgICA8ZGl2IFtjbGFzc109XCInaXRlbSAnKyAnIGNvbC0nKyAobWV0YS5zdHlsZXMuaXRlbXM/LnNtKSArICcgY29sLW1kLScgKyAobWV0YS5zdHlsZXMuaXRlbXM/Lm1kKSAgKyAnIGNvbC1sZy0nICsgKG1ldGEuc3R5bGVzLml0ZW1zPy5sZykgICsgJyBweC0yJ1wiIFtpZF09XCIkaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgIDwhLS0gdmVyaWZpY2EgcXVlIHNpIHZpZW5lbiB1biB0ZW1wbGF0ZSBwYXJhIHVuIGN1c3RvbSBhcHBQcm9kdWN0IGxsYW1hZG8gXCJhcHBQcm9kdWN0XCIgY29uIHVuIG9iamV0byBcInByb2R1Y3RcIi0gc2lubyB1c2EgcG9yIGRlZmVjdG8gZWwgZGVsIGNvcmUgLS0+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYXBwUHJvZHVjdCA/IGFwcFByb2R1Y3QgOiBkZWZhdWx0QXBwUHJvZHVjdDsgY29udGV4dDoge3Byb2R1Y3Q6cHJvZHVjdH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxzd2lwZXItY29udGFpbmVyIGluaXQ9XCJmYWxzZVwiIFtpZF09XCJtZXRhPy5jb2RlXCI+XHJcbiAgICAgICAgICAgICAgICBAZm9yIChwcm9kdWN0IG9mIHByb2R1Y3RzOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICAgICAgICAgIDxzd2lwZXItc2xpZGUgaWQ9XCJzd2lwZXItc2xpZGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiYXBwUHJvZHVjdCA/IGFwcFByb2R1Y3QgOiBkZWZhdWx0QXBwUHJvZHVjdDsgY29udGV4dDoge3Byb2R1Y3Q6cHJvZHVjdH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvc3dpcGVyLXNsaWRlPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L3N3aXBlci1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbjwvc2VjdGlvbj5cclxuXHJcblxyXG48IS0tIGNvbXBvbmVudGUgcG9yIGRlZmVjdG8gKHRvbWFyYSBjb21vIHByb2R1Y3RvIGVsIGNvbnRleHRvIHBhc2FkbyBjb21vIFwicHJvZHVjdFwiKSAtLT5cclxuPG5nLXRlbXBsYXRlICNkZWZhdWx0QXBwUHJvZHVjdCBsZXQtcHJvZHVjdD1cInByb2R1Y3RcIj5cclxuICAgIDxhcHAtcHJvZHVjdC1lYyBbcHJvZHVjdF09XCJwcm9kdWN0XCI+PC9hcHAtcHJvZHVjdC1lYz5cclxuPC9uZy10ZW1wbGF0ZT4iXX0=
@@ -12,7 +12,7 @@ export class FiltersEcComponent {
12
12
  priceGapPercentage = 0.1;
13
13
  constructor() {
14
14
  this.filter$.subscribe(res => {
15
- this.filters = this._filtersService.getSpecificFilters(['attributes', 'categories', 'price_range', 'dynamics']);
15
+ console.log("filters", res);
16
16
  });
17
17
  }
18
18
  getSpecificFilter(type) {
@@ -141,4 +141,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
141
141
  type: ViewChild,
142
142
  args: ['rangeMax']
143
143
  }] } });
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9maWx0ZXJzLWVjL2ZpbHRlcnMtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvZmlsdGVycy1lYy9maWx0ZXJzLWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBZSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBR25ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOztBQVMxRSxNQUFNLE9BQU8sa0JBQWtCO0lBQ3RCLGVBQWUsR0FBbUIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzFELE9BQU8sR0FBYSxFQUFFLENBQUM7SUFDdkIsT0FBTyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDO0lBQ3RDLFNBQVMsQ0FBTTtJQUVELFdBQVcsQ0FBYztJQUN6QixXQUFXLENBQWM7SUFFaEQsa0JBQWtCLEdBQUcsR0FBRyxDQUFDO0lBR3pCO1FBQ0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDNUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQTtRQUNoSCxDQUFDLENBQUMsQ0FBQTtJQUNILENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxJ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LFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDbkYsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDOUYsQ0FBQztJQUVELFFBQVEsR0FBRyxHQUFHLEVBQUU7UUFDZixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNwQixPQUFPLElBQUksQ0FBQTtJQUNaLENBQUMsQ0FBQTt1R0F6SVcsa0JBQWtCOzJGQUFsQixrQkFBa0IsaVRDYi9CLDhCQUNBOzsyRkRZYSxrQkFBa0I7a0JBUDlCLFNBQVM7K0JBQ0MsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQLEVBQUU7d0RBUUYsU0FBUztzQkFBakIsS0FBSztnQkFFaUIsV0FBVztzQkFBakMsU0FBUzt1QkFBQyxVQUFVO2dCQUNFLFdBQVc7c0JBQWpDLFNBQVM7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBJbnB1dCwgRWxlbWVudFJlZiAsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGaWx0ZXJzU2VydmljZSB9IGZyb20gJy4uLy4uL2VjLXNlcnZpY2VzJztcclxuaW1wb3J0IHsgRmlsdGVyIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcyc7XHJcbmltcG9ydCB7IEZpbHRlckVsZW1lbnQsIEZpbHRlclR5cGUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgUHJpY2VSYW5nZUZpbHRlciB9IGZyb20gJy4uLy4uL2NsYXNzZXMvZmlsdGVycy9QcmljZVJhbmdlRmlsdGVyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnbGliLWZpbHRlcnMtZWMnLFxyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0aW1wb3J0czogW10sXHJcblx0dGVtcGxhdGVVcmw6ICcuL2ZpbHRlcnMtZWMuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsOiAnLi9maWx0ZXJzLWVjLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsdGVyc0VjQ29tcG9uZW50IHtcclxuXHRwcml2YXRlIF9maWx0ZXJzU2VydmljZTogRmlsdGVyc1NlcnZpY2UgPSBpbmplY3QoRmlsdGVyc1NlcnZpY2UpO1xyXG5cdHB1YmxpYyBmaWx0ZXJzOiBGaWx0ZXJbXSA9IFtdO1xyXG5cdHB1YmxpYyBmaWx0ZXIkID0gdGhpcy5fZmlsdGVyc1NlcnZpY2UuZmlsdGVycyQ7XHJcblx0QElucHV0KCkgc2V0U2VsZWN0OiBhbnk7XHJcblxyXG5cdEBWaWV3Q2hpbGQoJ3JhbmdlTWluJykgcmFuZ2VNaW5SZWYhOiBFbGVtZW50UmVmO1xyXG5cdEBWaWV3Q2hpbGQoJ3JhbmdlTWF4JykgcmFuZ2VNYXhSZWYhOiBFbGVtZW50UmVmO1xyXG5cclxuXHRwcmljZUdhcFBlcmNlbnRhZ2UgPSAwLjE7XHJcblxyXG5cclxuXHRjb25zdHJ1Y3RvcigpIHtcclxuXHRcdHRoaXMuZmlsdGVyJC5zdWJzY3JpYmUocmVzID0+IHtcclxuXHRcdFx0dGhpcy5maWx0ZXJzID0gdGhpcy5fZmlsdGVyc1NlcnZpY2UuZ2V0U3BlY2lmaWNGaWx0ZXJzKFsnYXR0cmlidXRlcycsICdjYXRlZ29yaWVzJywgJ3ByaWNlX3JhbmdlJywgJ2R5bmFtaWNzJ10pXHJcblx0XHR9KVxyXG5cdH1cclxuXHJcblx0Z2V0U3BlY2lmaWNGaWx0ZXIodHlwZTogRmlsdGVyVHlwZSk6IEZpbHRlciB8IG51bGwge1xyXG5cdFx0Y29uc3QgZmlsdGVyID0gdGhpcy5maWx0ZXJzLmZpbmQoZmlsdGVyID0+IGZpbHRlci50eXBlKCkgPT09IHR5cGUpXHJcblx0XHRyZXR1cm4gZmlsdGVyIHx8IG51bGw7XHJcblx0fVxyXG5cclxuXHQvKk9idGllbmUgZWwgZmlsdHJvIGVsZWdpZG8gZW4gZWwgc2VsZWN0LCBsbyBwYXNhIGFsIHNldFNlbGVjdFxyXG5cdHBhcmEgcXVlIHNlIG1hcnF1ZSBzZWxlY2Npb25hZG8qL1xyXG5cdG9uU2VsZWN0KGV2ZW50OiBhbnksIGZpbHRlcjogRmlsdGVyRWxlbWVudFtdIHwgbnVsbCkge1xyXG5cdFx0Y29uc29sZS5sb2coZmlsdGVyKVxyXG5cdFx0LyogIGNvbnN0IHNlbGVjdGVkT3B0aW9uID0gZmlsdGVyXHJcblx0XHRcdCAuZmxhdE1hcChjYXRlZ29yeSA9PiBjYXRlZ29yeS5jaGlsZHJlbilcclxuXHRcdFx0IC5maWx0ZXIob3B0aW9uID0+IG9wdGlvbj8uY29kZSA9PT0gZXZlbnQudGFyZ2V0LnZhbHVlKVxyXG5cdFx0XHQgLnBvcCgpXHJcblx0XHQgc2VsZWN0ZWRPcHRpb24gJiYgdGhpcy5fZmlsdGVyc1NlcnZpY2Uuc2V0RmlsdGVyU2VsZWN0ZWQodGhpcy5maWx0ZXJzWzBdLCBzZWxlY3RlZE9wdGlvbikgKi9cclxuXHR9XHJcblxyXG5cdHNldFNlbGVjdGVkKGZpbHRlcjogRmlsdGVyIHwgbnVsbCwgc2VsZWN0ZWQ6IEZpbHRlckVsZW1lbnQpIHtcclxuXHRcdGNvbnNvbGUubG9nKFwic2V0XCIsIGZpbHRlcik7XHJcblx0XHRmaWx0ZXIgJiYgdGhpcy5fZmlsdGVyc1NlcnZpY2Uuc2V0RmlsdGVyU2VsZWN0ZWQoZmlsdGVyLCBzZWxlY3RlZClcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCogUmVkb25kZWEgYWwgbcO6bHRpcGxvIGRlICdzdGVwJyByZXNwZXRhbmRvIGVsIHJlZG9uZGVvIGVudGVybzpcclxuXHQqIC0gTcOtbmltbzogcmVkb25kZWEgaGFjaWEgYWJham8uXHJcblx0KiAtIE3DoXhpbW86IHJlZG9uZGVhIGhhY2lhIGFycmliYS5cclxuXHQqL1xyXG5cdG9uUmFuZ2VDaGFuZ2UoZXZlbnQ6IEV2ZW50LCB0eXBlOiAnbWluJyB8ICdtYXgnLCBmaWx0ZXI6IHsgbWluUHJpY2U6IG51bWJlcjsgbWF4UHJpY2U6IG51bWJlcjsgY3VycmVudE1pblByaWNlPzogbnVtYmVyOyBjdXJyZW50TWF4UHJpY2U/OiBudW1iZXIgfSkge1xyXG5cdFx0Y29uc3QgaW5wdXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuXHRcdGxldCB2YWx1ZSA9IHBhcnNlSW50KGlucHV0LnZhbHVlLCAxMCk7XHJcblx0XHR2YWx1ZSA9IHRoaXMucm91bmRUb05lYXJlc3QodmFsdWUsIDUsIHR5cGUsIGZpbHRlcik7XHJcblxyXG5cdFx0dGhpcy51cGRhdGVGaWx0ZXJQcmljZXModHlwZSwgdmFsdWUsIGZpbHRlciwgdGhpcy5wcmljZUdhcFBlcmNlbnRhZ2UpO1xyXG5cdH1cclxuXHJcblx0cm91bmRUb05lYXJlc3QodmFsdWU6IG51bWJlciwgc3RlcDogbnVtYmVyLCB0eXBlOiAnbWluJyB8ICdtYXgnLCBmaWx0ZXI6IGFueSk6IG51bWJlciB7XHJcblx0XHRsZXQgcm91bmRlZCA9IE1hdGgucm91bmQodmFsdWUgLyBzdGVwKSAqIHN0ZXA7XHJcblx0XHRpZiAodHlwZSA9PT0gJ21heCcgJiYgcm91bmRlZCA8IGZpbHRlci5tYXhQcmljZSkge1xyXG5cdFx0XHRyb3VuZGVkID0gTWF0aC5jZWlsKHZhbHVlIC8gc3RlcCkgKiBzdGVwO1xyXG5cdFx0fVxyXG5cdFx0aWYgKHR5cGUgPT09ICdtaW4nICYmIHJvdW5kZWQgPiBmaWx0ZXIubWluUHJpY2UpIHtcclxuXHRcdFx0cm91bmRlZCA9IE1hdGguZmxvb3IodmFsdWUgLyBzdGVwKSAqIHN0ZXA7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gcm91bmRlZDtcclxuXHR9XHJcblx0dW5pcXVlU2VsZWN0aW9uKGZpbHRlcjogeyBkYXRhOiBhbnlbXTsgfSwgZmlsdGVyQ2hpbGQ6IGFueSkge1xyXG5cdFx0Ly8gQnVzY2FyIHNpIGhheSB1biBmaWx0cm8gZGUgdGlwbyBQcmljZVJhbmdlRmlsdGVyIGVuIGxhIGxpc3RhIGRlIGZpbHRyb3NcclxuXHRcdGNvbnN0IHByaWNlUmFuZ2VGaWx0ZXIgPSB0aGlzLmZpbHRlcnMuZmluZChmID0+IGYgaW5zdGFuY2VvZiBQcmljZVJhbmdlRmlsdGVyKTtcclxuXHJcblx0XHRpZiAocHJpY2VSYW5nZUZpbHRlcikge1xyXG5cdFx0XHRwcmljZVJhbmdlRmlsdGVyLnJlc2V0KCk7XHJcblx0XHR9XHJcblx0XHRmaWx0ZXIuZGF0YS5mb3JFYWNoKGZpbHRlckVsZW1lbnQgPT4ge1xyXG5cdFx0XHRpZiAoZmlsdGVyRWxlbWVudC5zZWxlY3RlZCkge1xyXG5cdFx0XHRcdGZpbHRlckVsZW1lbnQuc2VsZWN0ZWQgPSBmYWxzZTtcclxuXHRcdFx0fVxyXG5cdFx0XHRmaWx0ZXJFbGVtZW50LmNoaWxkcmVuLmZvckVhY2goKGZpbHRlckNoaWxkcmVuOiBGaWx0ZXJFbGVtZW50KSA9PiB7XHJcblx0XHRcdFx0aWYgKGZpbHRlckNoaWxkcmVuICE9IGZpbHRlckNoaWxkICYmIGZpbHRlckNoaWxkcmVuLnNlbGVjdGVkKSB7XHJcblx0XHRcdFx0XHRmaWx0ZXJDaGlsZHJlbi5zZWxlY3RlZCA9IGZhbHNlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG4gICAqIEFjdHVhbGl6YSBsb3MgdmFsb3JlcyBkZWwgZmlsdHJvIHBlcm1pdGllbmRvIHF1ZSB1biBpbnB1dCBlbXB1amUgYWwgb3Ryby5cclxuICAqL1xyXG5cdHVwZGF0ZUZpbHRlclByaWNlcyh0eXBlOiAnbWluJyB8ICdtYXgnLCB2YWx1ZTogbnVtYmVyLCBmaWx0ZXI6IGFueSwgcHJpY2VHYXA6IG51bWJlcikge1xyXG5cdFx0Y29uc3QgZ2xvYmFsTWluID0gZmlsdGVyLm1pblByaWNlID8/IDA7XHJcblx0XHRjb25zdCBnbG9iYWxNYXggPSBmaWx0ZXIubWF4UHJpY2U7XHJcblxyXG5cdFx0bGV0IGN1cnJlbnRNaW4gPSBmaWx0ZXIuY3VycmVudE1pblByaWNlID8/IGdsb2JhbE1pbjtcclxuXHRcdGxldCBjdXJyZW50TWF4ID0gZmlsdGVyLmN1cnJlbnRNYXhQcmljZSA/PyBnbG9iYWxNYXg7XHJcblxyXG5cdFx0aWYgKHR5cGUgPT09ICdtaW4nKSB7XHJcblx0XHRcdGxldCBuZXdNaW4gPSBNYXRoLm1pbihNYXRoLm1heCh2YWx1ZSwgZ2xvYmFsTWluKSwgZ2xvYmFsTWF4KTtcclxuXHRcdFx0aWYgKG5ld01pbiArIHByaWNlR2FwID4gY3VycmVudE1heCkge1xyXG5cdFx0XHRcdGxldCBuZXdNYXhDYW5kaWRhdGUgPSBuZXdNaW4gKyBwcmljZUdhcDtcclxuXHRcdFx0XHRpZiAobmV3TWF4Q2FuZGlkYXRlIDw9IGdsb2JhbE1heCkge1xyXG5cdFx0XHRcdFx0Y3VycmVudE1heCA9IG5ld01heENhbmRpZGF0ZTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0bmV3TWluID0gZ2xvYmFsTWF4IC0gcHJpY2VHYXA7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdGZpbHRlci5jdXJyZW50TWluUHJpY2UgPSBuZXdNaW47XHJcblx0XHRcdGZpbHRlci5jdXJyZW50TWF4UHJpY2UgPSBjdXJyZW50TWF4O1xyXG5cdFx0fSBlbHNlIGlmICh0eXBlID09PSAnbWF4Jykge1xyXG5cdFx0XHRsZXQgbmV3TWF4ID0gTWF0aC5tYXgoTWF0aC5taW4odmFsdWUsIGdsb2JhbE1heCksIGdsb2JhbE1pbik7XHJcblx0XHRcdGlmIChuZXdNYXggLSBwcmljZUdhcCA8IGN1cnJlbnRNaW4pIHtcclxuXHRcdFx0XHRsZXQgbmV3TWluQ2FuZGlkYXRlID0gbmV3TWF4IC0gcHJpY2VHYXA7XHJcblx0XHRcdFx0aWYgKG5ld01pbkNhbmRpZGF0ZSA+PSBnbG9iYWxNaW4pIHtcclxuXHRcdFx0XHRcdGN1cnJlbnRNaW4gPSBuZXdNaW5DYW5kaWRhdGU7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdG5ld01heCA9IGdsb2JhbE1pbiArIHByaWNlR2FwO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRmaWx0ZXIuY3VycmVudE1heFByaWNlID0gbmV3TWF4O1xyXG5cdFx0XHRmaWx0ZXIuY3VycmVudE1pblByaWNlID0gY3VycmVudE1pbjtcclxuXHRcdH1cclxuXHR9XHJcblx0Ly8gTcOpdG9kbyBwYXJhIGFjdHVhbGl6YXIgbG9zIHZhbG9yZXMgZGUgcHJlY2lvIHNlbGVjY2lvbmFkb3NcclxuXHR1cGRhdGVQcmljZVJhbmdlKG1pbjogbnVtYmVyLCBtYXg6IG51bWJlciwgcHJpY2VGaWx0ZXI6IFByaWNlUmFuZ2VGaWx0ZXIpIHtcclxuXHRcdHByaWNlRmlsdGVyLnNldFNlbGVjdGVkKG1pbiwgbWF4KTtcclxuXHRcdHRoaXMuc2V0U2VsZWN0KHByaWNlRmlsdGVyKTtcclxuXHR9XHJcblxyXG5cdC8vIE3DqXRvZG9zIHBhcmEgYWN0dWFsaXphciBsYSBiYXJyYSBkZWwgZmlsdHJvIHBvciBwcmVjaW9cclxuXHRjYWxjdWxhdGVMZWZ0UGVyY2VudGFnZShjdXJyZW50TWluUHJpY2U6IG51bWJlciwgbWluUHJpY2U6IG51bWJlciwgbWF4UHJpY2U6IG51bWJlcik6IG51bWJlciB7XHJcblx0XHRjb25zdCBtaW5WYWwgPSBNYXRoLm1heChtaW5QcmljZSwgTWF0aC5taW4oY3VycmVudE1pblByaWNlID8/IG1pblByaWNlLCBtYXhQcmljZSkpO1xyXG5cdFx0cmV0dXJuIE1hdGgubWF4KDAsIE1hdGgubWluKCgobWluVmFsIC0gbWluUHJpY2UpIC8gKG1heFByaWNlIC0gbWluUHJpY2UpKSAqIDEwMCwgMTAwKSk7XHJcblx0fVxyXG5cclxuXHRjYWxjdWxhdGVSaWdodFBlcmNlbnRhZ2UoY3VycmVudE1heFByaWNlOiBudW1iZXIsIG1pblByaWNlOiBudW1iZXIsIG1heFByaWNlOiBudW1iZXIpOiBudW1iZXIge1xyXG5cdFx0Y29uc3QgbWF4VmFsID0gTWF0aC5tYXgobWluUHJpY2UsIE1hdGgubWluKGN1cnJlbnRNYXhQcmljZSA/PyBtYXhQcmljZSwgbWF4UHJpY2UpKTtcclxuXHRcdHJldHVybiBNYXRoLm1heCgwLCBNYXRoLm1pbigxMDAgLSAoKG1heFZhbCAtIG1pblByaWNlKSAvIChtYXhQcmljZSAtIG1pblByaWNlKSkgKiAxMDAsIDEwMCkpO1xyXG5cdH1cclxuXHJcblx0c2Nyb2xsVXAgPSAoKSA9PiB7XHJcblx0XHR3aW5kb3cuc2Nyb2xsKDAsIDApO1xyXG5cdFx0cmV0dXJuIHRydWVcclxuXHR9XHJcblx0XHJcbn1cclxuIiwiPHA+ZmlsdGVycy1lYyB3b3JrcyE8L3A+XHJcbiJdfQ==
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9maWx0ZXJzLWVjL2ZpbHRlcnMtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvZmlsdGVycy1lYy9maWx0ZXJzLWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBZSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBR25ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOztBQVMxRSxNQUFNLE9BQU8sa0JBQWtCO0lBQ3RCLGVBQWUsR0FBbUIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzFELE9BQU8sR0FBYSxFQUFFLENBQUM7SUFDdkIsT0FBTyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDO0lBQ3RDLFNBQVMsQ0FBTTtJQUVELFdBQVcsQ0FBYztJQUN6QixXQUFXLENBQWM7SUFFaEQsa0JBQWtCLEdBQUcsR0FBRyxDQUFDO0lBR3pCO1FBQ0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDNUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUE7SUFDSCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsSUFBZ0I7UUFDakMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxD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SUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzlGLENBQUM7SUFFRCxRQUFRLEdBQUcsR0FBRyxFQUFFO1FBQ2YsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEIsT0FBTyxJQUFJLENBQUE7SUFDWixDQUFDLENBQUE7dUdBeklXLGtCQUFrQjsyRkFBbEIsa0JBQWtCLGlUQ2IvQiw4QkFDQTs7MkZEWWEsa0JBQWtCO2tCQVA5QixTQUFTOytCQUNDLGdCQUFnQixjQUNkLElBQUksV0FDUCxFQUFFO3dEQVFGLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRWlCLFdBQVc7c0JBQWpDLFNBQVM7dUJBQUMsVUFBVTtnQkFDRSxXQUFXO3NCQUFqQyxTQUFTO3VCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgSW5wdXQsIEVsZW1lbnRSZWYgLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRmlsdGVyc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9lYy1zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IEZpbHRlciB9IGZyb20gJy4uLy4uL2NsYXNzZXMnO1xyXG5pbXBvcnQgeyBGaWx0ZXJFbGVtZW50LCBGaWx0ZXJUeXBlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IFByaWNlUmFuZ2VGaWx0ZXIgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2ZpbHRlcnMvUHJpY2VSYW5nZUZpbHRlcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2xpYi1maWx0ZXJzLWVjJyxcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdGltcG9ydHM6IFtdLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9maWx0ZXJzLWVjLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybDogJy4vZmlsdGVycy1lYy5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEZpbHRlcnNFY0NvbXBvbmVudCB7XHJcblx0cHJpdmF0ZSBfZmlsdGVyc1NlcnZpY2U6IEZpbHRlcnNTZXJ2aWNlID0gaW5qZWN0KEZpbHRlcnNTZXJ2aWNlKTtcclxuXHRwdWJsaWMgZmlsdGVyczogRmlsdGVyW10gPSBbXTtcclxuXHRwdWJsaWMgZmlsdGVyJCA9IHRoaXMuX2ZpbHRlcnNTZXJ2aWNlLmZpbHRlcnMkO1xyXG5cdEBJbnB1dCgpIHNldFNlbGVjdDogYW55O1xyXG5cclxuXHRAVmlld0NoaWxkKCdyYW5nZU1pbicpIHJhbmdlTWluUmVmITogRWxlbWVudFJlZjtcclxuXHRAVmlld0NoaWxkKCdyYW5nZU1heCcpIHJhbmdlTWF4UmVmITogRWxlbWVudFJlZjtcclxuXHJcblx0cHJpY2VHYXBQZXJjZW50YWdlID0gMC4xO1xyXG5cclxuXHJcblx0Y29uc3RydWN0b3IoKSB7XHJcblx0XHR0aGlzLmZpbHRlciQuc3Vic2NyaWJlKHJlcyA9PiB7XHJcblx0XHRcdGNvbnNvbGUubG9nKFwiZmlsdGVyc1wiLCByZXMpO1xyXG5cdFx0fSlcclxuXHR9XHJcblxyXG5cdGdldFNwZWNpZmljRmlsdGVyKHR5cGU6IEZpbHRlclR5cGUpOiBGaWx0ZXIgfCBudWxsIHtcclxuXHRcdGNvbnN0IGZpbHRlciA9IHRoaXMuZmlsdGVycy5maW5kKGZpbHRlciA9PiBmaWx0ZXIudHlwZSgpID09PSB0eXBlKVxyXG5cdFx0cmV0dXJuIGZpbHRlciB8fCBudWxsO1xyXG5cdH1cclxuXHJcblx0LypPYnRpZW5lIGVsIGZpbHRybyBlbGVnaWRvIGVuIGVsIHNlbGVjdCwgbG8gcGFzYSBhbCBzZXRTZWxlY3RcclxuXHRwYXJhIHF1ZSBzZSBtYXJxdWUgc2VsZWNjaW9uYWRvKi9cclxuXHRvblNlbGVjdChldmVudDogYW55LCBmaWx0ZXI6IEZpbHRlckVsZW1lbnRbXSB8IG51bGwpIHtcclxuXHRcdGNvbnNvbGUubG9nKGZpbHRlcilcclxuXHRcdC8qICBjb25zdCBzZWxlY3RlZE9wdGlvbiA9IGZpbHRlclxyXG5cdFx0XHQgLmZsYXRNYXAoY2F0ZWdvcnkgPT4gY2F0ZWdvcnkuY2hpbGRyZW4pXHJcblx0XHRcdCAuZmlsdGVyKG9wdGlvbiA9PiBvcHRpb24/LmNvZGUgPT09IGV2ZW50LnRhcmdldC52YWx1ZSlcclxuXHRcdFx0IC5wb3AoKVxyXG5cdFx0IHNlbGVjdGVkT3B0aW9uICYmIHRoaXMuX2ZpbHRlcnNTZXJ2aWNlLnNldEZpbHRlclNlbGVjdGVkKHRoaXMuZmlsdGVyc1swXSwgc2VsZWN0ZWRPcHRpb24pICovXHJcblx0fVxyXG5cclxuXHRzZXRTZWxlY3RlZChmaWx0ZXI6IEZpbHRlciB8IG51bGwsIHNlbGVjdGVkOiBGaWx0ZXJFbGVtZW50KSB7XHJcblx0XHRjb25zb2xlLmxvZyhcInNldFwiLCBmaWx0ZXIpO1xyXG5cdFx0ZmlsdGVyICYmIHRoaXMuX2ZpbHRlcnNTZXJ2aWNlLnNldEZpbHRlclNlbGVjdGVkKGZpbHRlciwgc2VsZWN0ZWQpXHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQqIFJlZG9uZGVhIGFsIG3Dumx0aXBsbyBkZSAnc3RlcCcgcmVzcGV0YW5kbyBlbCByZWRvbmRlbyBlbnRlcm86XHJcblx0KiAtIE3DrW5pbW86IHJlZG9uZGVhIGhhY2lhIGFiYWpvLlxyXG5cdCogLSBNw6F4aW1vOiByZWRvbmRlYSBoYWNpYSBhcnJpYmEuXHJcblx0Ki9cclxuXHRvblJhbmdlQ2hhbmdlKGV2ZW50OiBFdmVudCwgdHlwZTogJ21pbicgfCAnbWF4JywgZmlsdGVyOiB7IG1pblByaWNlOiBudW1iZXI7IG1heFByaWNlOiBudW1iZXI7IGN1cnJlbnRNaW5QcmljZT86IG51bWJlcjsgY3VycmVudE1heFByaWNlPzogbnVtYmVyIH0pIHtcclxuXHRcdGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcblx0XHRsZXQgdmFsdWUgPSBwYXJzZUludChpbnB1dC52YWx1ZSwgMTApO1xyXG5cdFx0dmFsdWUgPSB0aGlzLnJvdW5kVG9OZWFyZXN0KHZhbHVlLCA1LCB0eXBlLCBmaWx0ZXIpO1xyXG5cclxuXHRcdHRoaXMudXBkYXRlRmlsdGVyUHJpY2VzKHR5cGUsIHZhbHVlLCBmaWx0ZXIsIHRoaXMucHJpY2VHYXBQZXJjZW50YWdlKTtcclxuXHR9XHJcblxyXG5cdHJvdW5kVG9OZWFyZXN0KHZhbHVlOiBudW1iZXIsIHN0ZXA6IG51bWJlciwgdHlwZTogJ21pbicgfCAnbWF4JywgZmlsdGVyOiBhbnkpOiBudW1iZXIge1xyXG5cdFx0bGV0IHJvdW5kZWQgPSBNYXRoLnJvdW5kKHZhbHVlIC8gc3RlcCkgKiBzdGVwO1xyXG5cdFx0aWYgKHR5cGUgPT09ICdtYXgnICYmIHJvdW5kZWQgPCBmaWx0ZXIubWF4UHJpY2UpIHtcclxuXHRcdFx0cm91bmRlZCA9IE1hdGguY2VpbCh2YWx1ZSAvIHN0ZXApICogc3RlcDtcclxuXHRcdH1cclxuXHRcdGlmICh0eXBlID09PSAnbWluJyAmJiByb3VuZGVkID4gZmlsdGVyLm1pblByaWNlKSB7XHJcblx0XHRcdHJvdW5kZWQgPSBNYXRoLmZsb29yKHZhbHVlIC8gc3RlcCkgKiBzdGVwO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHJvdW5kZWQ7XHJcblx0fVxyXG5cdHVuaXF1ZVNlbGVjdGlvbihmaWx0ZXI6IHsgZGF0YTogYW55W107IH0sIGZpbHRlckNoaWxkOiBhbnkpIHtcclxuXHRcdC8vIEJ1c2NhciBzaSBoYXkgdW4gZmlsdHJvIGRlIHRpcG8gUHJpY2VSYW5nZUZpbHRlciBlbiBsYSBsaXN0YSBkZSBmaWx0cm9zXHJcblx0XHRjb25zdCBwcmljZVJhbmdlRmlsdGVyID0gdGhpcy5maWx0ZXJzLmZpbmQoZiA9PiBmIGluc3RhbmNlb2YgUHJpY2VSYW5nZUZpbHRlcik7XHJcblxyXG5cdFx0aWYgKHByaWNlUmFuZ2VGaWx0ZXIpIHtcclxuXHRcdFx0cHJpY2VSYW5nZUZpbHRlci5yZXNldCgpO1xyXG5cdFx0fVxyXG5cdFx0ZmlsdGVyLmRhdGEuZm9yRWFjaChmaWx0ZXJFbGVtZW50ID0+IHtcclxuXHRcdFx0aWYgKGZpbHRlckVsZW1lbnQuc2VsZWN0ZWQpIHtcclxuXHRcdFx0XHRmaWx0ZXJFbGVtZW50LnNlbGVjdGVkID0gZmFsc2U7XHJcblx0XHRcdH1cclxuXHRcdFx0ZmlsdGVyRWxlbWVudC5jaGlsZHJlbi5mb3JFYWNoKChmaWx0ZXJDaGlsZHJlbjogRmlsdGVyRWxlbWVudCkgPT4ge1xyXG5cdFx0XHRcdGlmIChmaWx0ZXJDaGlsZHJlbiAhPSBmaWx0ZXJDaGlsZCAmJiBmaWx0ZXJDaGlsZHJlbi5zZWxlY3RlZCkge1xyXG5cdFx0XHRcdFx0ZmlsdGVyQ2hpbGRyZW4uc2VsZWN0ZWQgPSBmYWxzZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuICAgKiBBY3R1YWxpemEgbG9zIHZhbG9yZXMgZGVsIGZpbHRybyBwZXJtaXRpZW5kbyBxdWUgdW4gaW5wdXQgZW1wdWplIGFsIG90cm8uXHJcbiAgKi9cclxuXHR1cGRhdGVGaWx0ZXJQcmljZXModHlwZTogJ21pbicgfCAnbWF4JywgdmFsdWU6IG51bWJlciwgZmlsdGVyOiBhbnksIHByaWNlR2FwOiBudW1iZXIpIHtcclxuXHRcdGNvbnN0IGdsb2JhbE1pbiA9IGZpbHRlci5taW5QcmljZSA/PyAwO1xyXG5cdFx0Y29uc3QgZ2xvYmFsTWF4ID0gZmlsdGVyLm1heFByaWNlO1xyXG5cclxuXHRcdGxldCBjdXJyZW50TWluID0gZmlsdGVyLmN1cnJlbnRNaW5QcmljZSA/PyBnbG9iYWxNaW47XHJcblx0XHRsZXQgY3VycmVudE1heCA9IGZpbHRlci5jdXJyZW50TWF4UHJpY2UgPz8gZ2xvYmFsTWF4O1xyXG5cclxuXHRcdGlmICh0eXBlID09PSAnbWluJykge1xyXG5cdFx0XHRsZXQgbmV3TWluID0gTWF0aC5taW4oTWF0aC5tYXgodmFsdWUsIGdsb2JhbE1pbiksIGdsb2JhbE1heCk7XHJcblx0XHRcdGlmIChuZXdNaW4gKyBwcmljZUdhcCA+IGN1cnJlbnRNYXgpIHtcclxuXHRcdFx0XHRsZXQgbmV3TWF4Q2FuZGlkYXRlID0gbmV3TWluICsgcHJpY2VHYXA7XHJcblx0XHRcdFx0aWYgKG5ld01heENhbmRpZGF0ZSA8PSBnbG9iYWxNYXgpIHtcclxuXHRcdFx0XHRcdGN1cnJlbnRNYXggPSBuZXdNYXhDYW5kaWRhdGU7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdG5ld01pbiA9IGdsb2JhbE1heCAtIHByaWNlR2FwO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRmaWx0ZXIuY3VycmVudE1pblByaWNlID0gbmV3TWluO1xyXG5cdFx0XHRmaWx0ZXIuY3VycmVudE1heFByaWNlID0gY3VycmVudE1heDtcclxuXHRcdH0gZWxzZSBpZiAodHlwZSA9PT0gJ21heCcpIHtcclxuXHRcdFx0bGV0IG5ld01heCA9IE1hdGgubWF4KE1hdGgubWluKHZhbHVlLCBnbG9iYWxNYXgpLCBnbG9iYWxNaW4pO1xyXG5cdFx0XHRpZiAobmV3TWF4IC0gcHJpY2VHYXAgPCBjdXJyZW50TWluKSB7XHJcblx0XHRcdFx0bGV0IG5ld01pbkNhbmRpZGF0ZSA9IG5ld01heCAtIHByaWNlR2FwO1xyXG5cdFx0XHRcdGlmIChuZXdNaW5DYW5kaWRhdGUgPj0gZ2xvYmFsTWluKSB7XHJcblx0XHRcdFx0XHRjdXJyZW50TWluID0gbmV3TWluQ2FuZGlkYXRlO1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRuZXdNYXggPSBnbG9iYWxNaW4gKyBwcmljZUdhcDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0ZmlsdGVyLmN1cnJlbnRNYXhQcmljZSA9IG5ld01heDtcclxuXHRcdFx0ZmlsdGVyLmN1cnJlbnRNaW5QcmljZSA9IGN1cnJlbnRNaW47XHJcblx0XHR9XHJcblx0fVxyXG5cdC8vIE3DqXRvZG8gcGFyYSBhY3R1YWxpemFyIGxvcyB2YWxvcmVzIGRlIHByZWNpbyBzZWxlY2Npb25hZG9zXHJcblx0dXBkYXRlUHJpY2VSYW5nZShtaW46IG51bWJlciwgbWF4OiBudW1iZXIsIHByaWNlRmlsdGVyOiBQcmljZVJhbmdlRmlsdGVyKSB7XHJcblx0XHRwcmljZUZpbHRlci5zZXRTZWxlY3RlZChtaW4sIG1heCk7XHJcblx0XHR0aGlzLnNldFNlbGVjdChwcmljZUZpbHRlcik7XHJcblx0fVxyXG5cclxuXHQvLyBNw6l0b2RvcyBwYXJhIGFjdHVhbGl6YXIgbGEgYmFycmEgZGVsIGZpbHRybyBwb3IgcHJlY2lvXHJcblx0Y2FsY3VsYXRlTGVmdFBlcmNlbnRhZ2UoY3VycmVudE1pblByaWNlOiBudW1iZXIsIG1pblByaWNlOiBudW1iZXIsIG1heFByaWNlOiBudW1iZXIpOiBudW1iZXIge1xyXG5cdFx0Y29uc3QgbWluVmFsID0gTWF0aC5tYXgobWluUHJpY2UsIE1hdGgubWluKGN1cnJlbnRNaW5QcmljZSA/PyBtaW5QcmljZSwgbWF4UHJpY2UpKTtcclxuXHRcdHJldHVybiBNYXRoLm1heCgwLCBNYXRoLm1pbigoKG1pblZhbCAtIG1pblByaWNlKSAvIChtYXhQcmljZSAtIG1pblByaWNlKSkgKiAxMDAsIDEwMCkpO1xyXG5cdH1cclxuXHJcblx0Y2FsY3VsYXRlUmlnaHRQZXJjZW50YWdlKGN1cnJlbnRNYXhQcmljZTogbnVtYmVyLCBtaW5QcmljZTogbnVtYmVyLCBtYXhQcmljZTogbnVtYmVyKTogbnVtYmVyIHtcclxuXHRcdGNvbnN0IG1heFZhbCA9IE1hdGgubWF4KG1pblByaWNlLCBNYXRoLm1pbihjdXJyZW50TWF4UHJpY2UgPz8gbWF4UHJpY2UsIG1heFByaWNlKSk7XHJcblx0XHRyZXR1cm4gTWF0aC5tYXgoMCwgTWF0aC5taW4oMTAwIC0gKChtYXhWYWwgLSBtaW5QcmljZSkgLyAobWF4UHJpY2UgLSBtaW5QcmljZSkpICogMTAwLCAxMDApKTtcclxuXHR9XHJcblxyXG5cdHNjcm9sbFVwID0gKCkgPT4ge1xyXG5cdFx0d2luZG93LnNjcm9sbCgwLCAwKTtcclxuXHRcdHJldHVybiB0cnVlXHJcblx0fVxyXG5cdFxyXG59XHJcbiIsIjxwPmZpbHRlcnMtZWMgd29ya3MhPC9wPlxyXG4iXX0=