visorus-erp-core 10.1.2 → 11.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/visorus-erp-core.umd.js +4928 -5330
- package/bundles/visorus-erp-core.umd.js.map +1 -1
- package/bundles/visorus-erp-core.umd.min.js +1 -1
- package/bundles/visorus-erp-core.umd.min.js.map +1 -1
- package/esm2015/lib/app.module.js +4 -3
- package/esm2015/lib/components/acreedor/select/select-acreedor.component.js +2 -2
- package/esm2015/lib/components/acreedor/services/acreedor.service.js +11 -25
- package/esm2015/lib/components/acreedor/services/acreedorCuentaContable.js +13 -11
- package/esm2015/lib/components/agente/models/Agente.js +1 -1
- package/esm2015/lib/components/agente/services/agente.service.js +17 -25
- package/esm2015/lib/components/almacen/models/Almacen.js +1 -1
- package/esm2015/lib/components/almacen/services/almacen.service.js +13 -26
- package/esm2015/lib/components/banco/models/Banco.js +1 -1
- package/esm2015/lib/components/banco/services/banco.service.js +10 -25
- package/esm2015/lib/components/caja/session-create/session-create.component.js +2 -2
- package/esm2015/lib/components/caja/sessionCaja.service.js +11 -25
- package/esm2015/lib/components/catalogoTipo/models/CatalogoTipo.js +1 -1
- package/esm2015/lib/components/catalogoTipo/services/catalogoTipo.service.js +10 -25
- package/esm2015/lib/components/clasificadorTipo/models/ClasificadorTipo.js +1 -1
- package/esm2015/lib/components/clasificadorTipo/services/clasificadorTipo.service.js +10 -25
- package/esm2015/lib/components/claveAumentoDisminucion/services/clave-aumento-disminucion.service.js +10 -25
- package/esm2015/lib/components/claveMovimiento/models/ClaveMovimiento.js +1 -1
- package/esm2015/lib/components/claveMovimiento/services/claveMovimiento.service.js +10 -25
- package/esm2015/lib/components/cliente/models/Cliente.js +1 -1
- package/esm2015/lib/components/cliente/models/ClienteCuentaBanco.js +1 -1
- package/esm2015/lib/components/cliente/models/ClienteFlete.js +1 -1
- package/esm2015/lib/components/cliente/select/select-cliente.component.js +2 -2
- package/esm2015/lib/components/cliente/services/cliente.service.js +11 -26
- package/esm2015/lib/components/cliente/services/clienteCuentaBanco.service.js +12 -26
- package/esm2015/lib/components/cliente/services/clienteFlete.service.js +12 -26
- package/esm2015/lib/components/contacto/models/DatoContacto.js +1 -1
- package/esm2015/lib/components/contacto/services/datoContacto.service.js +10 -25
- package/esm2015/lib/components/dato-direccion/models/DatoDireccion.js +1 -1
- package/esm2015/lib/components/dato-direccion/services/datoDireccion.service.js +10 -25
- package/esm2015/lib/components/departamento/models/Departamento.js +1 -1
- package/esm2015/lib/components/departamento/services/departamento.service.js +10 -25
- package/esm2015/lib/components/empresa/models/ConfiguracionEmpresaAdministrativa.js +1 -1
- package/esm2015/lib/components/empresa/models/Empresa.js +1 -1
- package/esm2015/lib/components/empresa/services/empresa.service.js +13 -26
- package/esm2015/lib/components/error404/error404.component.js +2 -2
- package/esm2015/lib/components/flete/models/Flete.js +1 -1
- package/esm2015/lib/components/flete/services/flete.service.js +11 -25
- package/esm2015/lib/components/formaPago/models/FormaPago.js +1 -1
- package/esm2015/lib/components/formaPago/services/FormaPago.service.js +10 -25
- package/esm2015/lib/components/loading/loading.component.js +3 -3
- package/esm2015/lib/components/loading/loading.service.js +2 -2
- package/esm2015/lib/components/loading-screen/loading-screen.component.js +3 -3
- package/esm2015/lib/components/loading-screen/loading-screen.service.js +2 -2
- package/esm2015/lib/components/login-modal/login-modal.component.js +3 -3
- package/esm2015/lib/components/login-modal/login-modal.service.js +2 -2
- package/esm2015/lib/components/moneda/models/Moneda.js +1 -1
- package/esm2015/lib/components/moneda/services/moneda.service.js +11 -25
- package/esm2015/lib/components/pdfModal/pdf-modal.component.js +2 -2
- package/esm2015/lib/components/pdfModal/pdf-modal.service.js +2 -2
- package/esm2015/lib/components/persona-fisica/models/EstadoCivil.js +1 -1
- package/esm2015/lib/components/persona-fisica/models/Genero.js +1 -1
- package/esm2015/lib/components/persona-fisica/models/Persona.js +1 -1
- package/esm2015/lib/components/persona-fisica/models/PersonaFisica.js +1 -1
- package/esm2015/lib/components/persona-fisica/services/personaFisica.service.js +13 -12
- package/esm2015/lib/components/proveedor/models/Proveedor.js +1 -1
- package/esm2015/lib/components/proveedor/models/ProveedorCuentaBanco.js +1 -1
- package/esm2015/lib/components/proveedor/models/ProveedorFlete.js +1 -1
- package/esm2015/lib/components/proveedor/select/select-proveedor.component.js +2 -2
- package/esm2015/lib/components/proveedor/services/proveedor.service.js +11 -25
- package/esm2015/lib/components/proveedor/services/proveedorCuentaBanco.service.js +12 -26
- package/esm2015/lib/components/proveedor/services/proveedorFlete.service.js +11 -22
- package/esm2015/lib/components/seleccion-articulo-informacion/seleccion-articulo-informacion.component.js +2 -2
- package/esm2015/lib/components/seleccion-articulo-informacion/services/articulo-informacion.service.js +12 -26
- package/esm2015/lib/components/selecciona-articulo/selecciona-articulo.component.js +3 -3
- package/esm2015/lib/components/selecciona-articulo/stock.service.js +13 -15
- package/esm2015/lib/components/serieDocumento/models/SerieDocumento.js +1 -1
- package/esm2015/lib/components/serieDocumento/services/serieDocumento.service.js +13 -24
- package/esm2015/lib/components/tipo-contacto/models/TipoContacto.js +1 -1
- package/esm2015/lib/components/tipo-contacto/services/tipoContacto.service.js +10 -25
- package/esm2015/lib/components/ubicacion/models/Ubicacion.js +1 -1
- package/esm2015/lib/components/ubicacion/services/ubicacion.service.js +10 -25
- package/esm2015/lib/contabilidad/componentes/cclista/cclista.component.js +2 -2
- package/esm2015/lib/contabilidad/componentes/ccseleccion-dialog/ccseleccion-dialog.component.js +4 -4
- package/esm2015/lib/contabilidad/modelos/cuentaContable.model.js +1 -1
- package/esm2015/lib/contabilidad/modelos/normaInfoFinanciera.model.js +1 -1
- package/esm2015/lib/contabilidad/servicios/cuentacontable.service.js +12 -26
- package/esm2015/lib/globalPrimeNg.js +1 -1
- package/esm2015/lib/httpInterceptor/httpInterceptor.js +2 -2
- package/esm2015/lib/importComponents.js +1 -1
- package/esm2015/lib/importComponetsConta.js +1 -1
- package/esm2015/lib/models/PersonaMoral.js +1 -1
- package/esm2015/lib/models/Usuario.js +1 -1
- package/esm2015/lib/models/auth.js +1 -1
- package/esm2015/lib/services/auth.service.js +23 -2
- package/esm2015/lib/services/authenticated.service.js +2 -2
- package/esm2015/lib/services/canActivateGuard.service.ts.js +2 -2
- package/esm2015/lib/services/catalogo-adicional.service.js +11 -25
- package/esm2015/lib/services/controlAcceso.service.js +2 -2
- package/esm2015/lib/services/crud.service.js +46 -0
- package/esm2015/lib/services/file.service.js +2 -2
- package/esm2015/lib/services/global.service.js +2 -13
- package/esm2015/lib/services/init.service.js +2 -2
- package/esm2015/lib/services/message.service.js +2 -2
- package/esm2015/lib/services/paginate.service.js +2 -2
- package/esm2015/lib/services/personaMoral.service.js +10 -25
- package/esm2015/lib/services/versionCheck.service.js +2 -2
- package/esm2015/lib/utils/tipo_catalogo.ts.js +1 -1
- package/esm2015/public_api.js +3 -3
- package/esm2015/visorus-erp-core.js +1 -1
- package/fesm2015/visorus-erp-core.js +332 -783
- package/fesm2015/visorus-erp-core.js.map +1 -1
- package/lib/app.module.d.ts +1 -0
- package/lib/components/acreedor/services/acreedor.service.d.ts +5 -12
- package/lib/components/acreedor/services/acreedorCuentaContable.d.ts +6 -6
- package/lib/components/agente/services/agente.service.d.ts +8 -14
- package/lib/components/almacen/services/almacen.service.d.ts +6 -13
- package/lib/components/banco/services/banco.service.d.ts +4 -12
- package/lib/components/caja/sessionCaja.service.d.ts +5 -11
- package/lib/components/catalogoTipo/services/catalogoTipo.service.d.ts +4 -12
- package/lib/components/clasificadorTipo/services/clasificadorTipo.service.d.ts +4 -12
- package/lib/components/claveAumentoDisminucion/services/clave-aumento-disminucion.service.d.ts +4 -11
- package/lib/components/claveMovimiento/services/claveMovimiento.service.d.ts +4 -12
- package/lib/components/cliente/services/cliente.service.d.ts +5 -13
- package/lib/components/cliente/services/clienteCuentaBanco.service.d.ts +6 -13
- package/lib/components/cliente/services/clienteFlete.service.d.ts +6 -12
- package/lib/components/contacto/services/datoContacto.service.d.ts +4 -11
- package/lib/components/dato-direccion/services/datoDireccion.service.d.ts +4 -11
- package/lib/components/departamento/services/departamento.service.d.ts +4 -11
- package/lib/components/empresa/services/empresa.service.d.ts +6 -12
- package/lib/components/flete/services/flete.service.d.ts +5 -11
- package/lib/components/formaPago/services/FormaPago.service.d.ts +4 -12
- package/lib/components/moneda/services/moneda.service.d.ts +5 -11
- package/lib/components/persona-fisica/services/personaFisica.service.d.ts +7 -8
- package/lib/components/proveedor/services/proveedor.service.d.ts +5 -11
- package/lib/components/proveedor/services/proveedorCuentaBanco.service.d.ts +6 -12
- package/lib/components/proveedor/services/proveedorFlete.service.d.ts +6 -11
- package/lib/components/seleccion-articulo-informacion/services/articulo-informacion.service.d.ts +6 -12
- package/lib/components/selecciona-articulo/stock.service.d.ts +5 -7
- package/lib/components/serieDocumento/services/serieDocumento.service.d.ts +7 -12
- package/lib/components/tipo-contacto/services/tipoContacto.service.d.ts +4 -11
- package/lib/components/ubicacion/services/ubicacion.service.d.ts +4 -11
- package/lib/contabilidad/servicios/cuentacontable.service.d.ts +6 -12
- package/lib/services/auth.service.d.ts +1 -0
- package/lib/services/catalogo-adicional.service.d.ts +5 -11
- package/lib/services/crud.service.d.ts +20 -0
- package/lib/services/global.service.d.ts +2 -4
- package/lib/services/personaMoral.service.d.ts +4 -11
- package/package.json +8 -8
- package/public_api.d.ts +2 -2
- package/esm2015/lib/services/api.service.js +0 -80
- package/lib/services/api.service.d.ts +0 -45
|
@@ -1,38 +1,24 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { HttpClient } from '@angular/common/http';
|
|
3
|
+
import { CrudService } from '../../../services/crud.service';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "
|
|
5
|
-
export class ArticuloInformacionService {
|
|
6
|
-
constructor(
|
|
7
|
-
|
|
8
|
-
this.
|
|
9
|
-
}
|
|
10
|
-
getAll(params) {
|
|
11
|
-
return this.api.get(this.endpoint, params);
|
|
5
|
+
import * as i1 from "@angular/common/http";
|
|
6
|
+
export class ArticuloInformacionService extends CrudService {
|
|
7
|
+
constructor(httpClient) {
|
|
8
|
+
super(httpClient, 'articulo');
|
|
9
|
+
this.httpClient = httpClient;
|
|
12
10
|
}
|
|
13
11
|
obtenerExistencias(articulo) {
|
|
14
12
|
let uRL = "/existenciasArticulo/" + articulo;
|
|
15
|
-
return this.
|
|
16
|
-
}
|
|
17
|
-
get(id) {
|
|
18
|
-
return this.api.get(`${this.endpoint}/${id}`);
|
|
19
|
-
}
|
|
20
|
-
save(obj) {
|
|
21
|
-
return this.api.post(this.endpoint, obj);
|
|
22
|
-
}
|
|
23
|
-
update(obj) {
|
|
24
|
-
return this.api.put(this.endpoint, obj.id, obj);
|
|
25
|
-
}
|
|
26
|
-
delete(id) {
|
|
27
|
-
return this.api.delete(this.endpoint, id);
|
|
13
|
+
return this.httpClient.get(this.geturl() + uRL, this.buildAuth());
|
|
28
14
|
}
|
|
29
15
|
}
|
|
30
|
-
/** @nocollapse */ ArticuloInformacionService.ɵfac = function ArticuloInformacionService_Factory(t) { return new (t || ArticuloInformacionService)(i0.ɵɵinject(i1.
|
|
16
|
+
/** @nocollapse */ ArticuloInformacionService.ɵfac = function ArticuloInformacionService_Factory(t) { return new (t || ArticuloInformacionService)(i0.ɵɵinject(i1.HttpClient)); };
|
|
31
17
|
/** @nocollapse */ ArticuloInformacionService.ɵprov = i0.ɵɵdefineInjectable({ token: ArticuloInformacionService, factory: ArticuloInformacionService.ɵfac, providedIn: 'root' });
|
|
32
|
-
|
|
18
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ArticuloInformacionService, [{
|
|
33
19
|
type: Injectable,
|
|
34
20
|
args: [{
|
|
35
21
|
providedIn: 'root'
|
|
36
22
|
}]
|
|
37
|
-
}], function () { return [{ type: i1.
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
}], function () { return [{ type: i1.HttpClient }]; }, null); })();
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJ0aWN1bG8taW5mb3JtYWNpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VycC1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY2Npb24tYXJ0aWN1bG8taW5mb3JtYWNpb24vc2VydmljZXMvYXJ0aWN1bG8taW5mb3JtYWNpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7OztBQUs3RCxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsV0FBVztJQUN6RCxZQUFvQixVQUF1QjtRQUN6QyxLQUFLLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRFosZUFBVSxHQUFWLFVBQVUsQ0FBYTtJQUUzQyxDQUFDO0lBRUQsa0JBQWtCLENBQUMsUUFBaUI7UUFDbEMsSUFBSSxHQUFHLEdBQUcsdUJBQXVCLEdBQUMsUUFBUSxDQUFDO1FBQzNDLE9BQVEsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsRUFBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUNwRSxDQUFDOzt1SEFSVSwwQkFBMEI7cUZBQTFCLDBCQUEwQixXQUExQiwwQkFBMEIsbUJBRnpCLE1BQU07dUZBRVAsMEJBQTBCO2NBSHRDLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SHR0cENsaWVudH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQ3J1ZFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jcnVkLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBcnRpY3Vsb0luZm9ybWFjaW9uU2VydmljZSBleHRlbmRzIENydWRTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwQ2xpZW50IDogSHR0cENsaWVudCl7XG4gICAgc3VwZXIoaHR0cENsaWVudCwgJ2FydGljdWxvJyk7XG4gIH1cblxuICBvYnRlbmVyRXhpc3RlbmNpYXMoYXJ0aWN1bG8gOiBudW1iZXIpIHtcbiAgICBsZXQgdVJMID0gXCIvZXhpc3RlbmNpYXNBcnRpY3Vsby9cIithcnRpY3VsbztcbiAgICByZXR1cm4gIHRoaXMuaHR0cENsaWVudC5nZXQodGhpcy5nZXR1cmwoKSArIHVSTCx0aGlzLmJ1aWxkQXV0aCgpKTtcbiAgfVxuICBcbn1cbiJdfQ==
|
|
@@ -498,8 +498,8 @@ export class SeleccionaArticuloComponent {
|
|
|
498
498
|
i0.ɵɵproperty("rows", ctx.page.rows)("totalRecords", ctx.page.total)("pageLinkSize", 5)("rowsPerPageOptions", i0.ɵɵpureFunction0(24, _c1));
|
|
499
499
|
i0.ɵɵadvance(1);
|
|
500
500
|
i0.ɵɵproperty("ngIf", ctx.showModalInformacion);
|
|
501
|
-
} }, directives: [i4.Dialog, i5.SelectControlValueAccessor, i6.InputText, i5.NgControlStatus, i5.NgModel, i5.NgSelectOption, i5.ɵ
|
|
502
|
-
|
|
501
|
+
} }, directives: [i4.Dialog, i5.SelectControlValueAccessor, i6.InputText, i5.NgControlStatus, i5.NgModel, i5.NgSelectOption, i5.ɵangular_packages_forms_forms_z, i5.DefaultValueAccessor, i7.ButtonDirective, i8.NgForOf, i9.Table, i10.PrimeTemplate, i11.Paginator, i8.NgIf, i12.TranslateDirective, i9.SelectableRow, i13.SeleccionArticuloInformacionComponent], pipes: [i12.TranslatePipe, i8.CurrencyPipe, i8.DecimalPipe], styles: ["tr[_ngcontent-%COMP%]:hover{background-color:#34a835!important;color:#fff!important}table[_ngcontent-%COMP%]{position:absolute}"] });
|
|
502
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SeleccionaArticuloComponent, [{
|
|
503
503
|
type: Component,
|
|
504
504
|
args: [{
|
|
505
505
|
selector: 'app-selecciona-articulo',
|
|
@@ -519,4 +519,4 @@ export class SeleccionaArticuloComponent {
|
|
|
519
519
|
}], emitShowArticulos: [{
|
|
520
520
|
type: Output
|
|
521
521
|
}] }); })();
|
|
522
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWNjaW9uYS1hcnRpY3Vsby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiL1VzZXJzL3VyaWVsbWFuemFub3J1aXovcHJvZ3JhbW1pbmcvYW5ndWxhci92cy1lcnAtcHJveWVjdC1saWJzL3Byb2plY3RzL2VycC1jb3JlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3NlbGVjY2lvbmEtYXJ0aWN1bG8vc2VsZWNjaW9uYS1hcnRpY3Vsby5jb21wb25lbnQudHMiLCJsaWIvY29tcG9uZW50cy9zZWxlY2Npb25hLWFydGljdWxvL3NlbGVjY2lvbmEtYXJ0aWN1bG8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU3RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztJQzJCckMsa0NBQXFFO0lBQUEsWUFBdUI7SUFBQSxpQkFBUzs7O0lBQXpELGdEQUF3QjtJQUFDLGVBQXVCO0lBQXZCLDRDQUF1Qjs7O0lBeUI5Riw4QkFBaUU7SUFBQSxvQ0FBb0I7SUFBQSxpQkFBSzs7O0lBQzFGLDhCQUFpRTtJQUFBLHNCQUFNO0lBQUEsaUJBQUs7OztJQUk1RSw4QkFBZ0Y7SUFBQSxzQkFBTTtJQUFBLGlCQUFLOzs7SUFDM0YsOEJBQWdGO0lBQUEsd0JBQVE7SUFBQSxpQkFBSzs7O0lBQzdGLDhCQUFnRjtJQUFBLHdCQUFRO0lBQUEsaUJBQUs7OztJQUM3Riw4QkFBZ0Y7SUFBQSx3QkFBUTtJQUFBLGlCQUFLOzs7SUFDN0YsOEJBQWdGO0lBQUEsd0JBQVE7SUFBQSxpQkFBSzs7O0lBQzdGLDhCQUFnRjtJQUFBLGdDQUFnQjtJQUFBLGlCQUFLOzs7SUFFckcsOEJBQXdFO0lBQUEsWUFBb0I7SUFBQSxpQkFBSzs7O0lBQXpCLGVBQW9CO0lBQXBCLDBDQUFvQjs7O0lBaEI5RiwwQkFDRTtJQUFBLDhCQUFrQztJQUFBLHFDQUFnQjtJQUFBLGlCQUFLO0lBQ3ZELDhCQUFrQztJQUFBLDBCQUFVO0lBQUEsaUJBQUs7SUFDakQsOEJBQWtDO0lBQUEsc0JBQU07SUFBQSxpQkFBSztJQUM3QywwRkFBaUU7SUFDakUsMEZBQWlFO0lBQ2pFLDhCQUFrQztJQUFBLDRCQUFNO0lBQUEsaUJBQUs7SUFDN0MsK0JBQW1DO0lBQUEsNEJBQVc7SUFBQSxpQkFBSztJQUNuRCwwQkFBdUM7SUFDdkMsNEZBQWdGO0lBQ2hGLDRGQUFnRjtJQUNoRiw0RkFBZ0Y7SUFDaEYsNEZBQWdGO0lBQ2hGLDRGQUFnRjtJQUNoRiw0RkFBZ0Y7SUFDaEYsK0JBQWtDO0lBQUEsc0NBQXFCO0lBQUEsaUJBQUs7SUFDNUQsNEZBQXdFO0lBQzFFLGlCQUFLOzs7SUFicUIsZUFBOEI7SUFBOUIsb0RBQThCO0lBQzlCLGVBQThCO0lBQTlCLG9EQUE4QjtJQUk5QixlQUE2QztJQUE3QyxrRUFBNkM7SUFDN0MsZUFBNkM7SUFBN0Msa0VBQTZDO0lBQzdDLGVBQTZDO0lBQTdDLGtFQUE2QztJQUM3QyxlQUE2QztJQUE3QyxrRUFBNkM7SUFDN0MsZUFBNkM7SUFBN0Msa0VBQTZDO0lBQzdDLGVBQTZDO0lBQTdDLGtFQUE2QztJQUVqRSxlQUFxQztJQUFyQyxpREFBcUM7OztJQUt6Qyw4QkFBb0U7SUFBQSxxQ0FBcUI7SUFBQSxpQkFBSzs7O0lBQzlGLDhCQUF5RDtJQUFBLFlBQTJCO0lBQUEsaUJBQUs7OztJQUFoQyxlQUEyQjtJQUEzQixpREFBMkI7OztJQUlwRiw4QkFBd0Q7SUFBQSxZQUFnQztJQUFBLGlCQUFLOzs7SUFBckMsZUFBZ0M7SUFBaEMsc0RBQWdDOzs7SUFDeEYsOEJBQXdEO0lBQUEsWUFBa0M7SUFBQSxpQkFBSzs7O0lBQXZDLGVBQWtDO0lBQWxDLHdEQUFrQzs7O0lBUzFGLDhCQUFzRTtJQUFBLFlBQ3RFOztJQUFBLGlCQUFLOzs7SUFEaUUsZUFDdEU7SUFEc0Usb0ZBQ3RFOzs7SUFDQSw4QkFBc0U7SUFBQSxZQUNsRTs7SUFBQSxpQkFBSzs7O0lBRDZELGVBQ2xFO0lBRGtFLDJFQUNsRTs7O0lBQ0osOEJBQXNFO0lBQUEsWUFDbEU7O0lBQUEsaUJBQUs7OztJQUQ2RCxlQUNsRTtJQURrRSwyRUFDbEU7OztJQUNKLDhCQUFzRTtJQUFBLFlBQ2xFOztJQUFBLGlCQUFLOzs7SUFENkQsZUFDbEU7SUFEa0UsMkVBQ2xFOzs7SUFDSiw4QkFBc0U7SUFBQSxZQUNsRTs7SUFBQSxpQkFBSzs7O0lBRDZELGVBQ2xFO0lBRGtFLDJFQUNsRTs7O0lBQ0osOEJBQXVFO0lBQUEsWUFBOEI7O0lBQUEsaUJBQUs7OztJQUFuQyxlQUE4QjtJQUE5Qiw4REFBOEI7OztJQUVuRywrQkFDRTtJQUFBLCtCQUFzQjtJQUFBLGlDQUFjO0lBQUEsWUFBc0I7SUFBQSxpQkFBUTtJQUFBLGlCQUFNO0lBQ3hFLCtCQUFzQjtJQUFBLGlDQUFjO0lBQUEsWUFBNkM7O0lBQUEsaUJBQVE7SUFDekYsaUJBQU07SUFDUixpQkFBTTs7O0lBSGdDLGVBQXNCO0lBQXRCLDRDQUFzQjtJQUN0QixlQUE2QztJQUE3QywrRUFBNkM7OztJQUtyRiw4QkFBbUY7SUFBQSxZQUFrQjtJQUFBLGlCQUFLOzs7SUFBdkIsZUFBa0I7SUFBbEIsd0NBQWtCOzs7O0lBbkN2Ryw4QkFDRTtJQUFBLDBGQUFvRTtJQUNwRSwwRkFBeUQ7SUFDekQsOEJBQXlCO0lBQUEsWUFBc0I7SUFBQSxpQkFBSztJQUNwRCw4QkFBeUI7SUFBQSxZQUF3QjtJQUFBLGlCQUFLO0lBRXRELDBGQUF3RDtJQUN4RCwwRkFBd0Q7SUFFeEQsOEJBQXlCO0lBQUEsYUFBMkI7SUFBQSxpQkFBSztJQUN6RCwrQkFBMEI7SUFBQSxhQUFnQztJQUFBLGlCQUFLO0lBQy9ELCtCQUNFO0lBQUEsbUNBRVM7SUFEUCxpUUFBb0M7SUFDdEMsaUJBQVM7SUFDWCxpQkFBSztJQUNMLDRGQUFzRTtJQUV0RSw0RkFBc0U7SUFFdEUsNEZBQXNFO0lBRXRFLDRGQUFzRTtJQUV0RSw0RkFBc0U7SUFFdEUsNEZBQXVFO0lBQ3ZFLCtCQUNFO0lBQUEsOEZBQ0U7SUFJSixpQkFBSztJQUVMLDRGQUFtRjtJQUNyRixpQkFBSzs7OztJQXBDRCw0Q0FBMEI7SUFDSCxlQUFnQztJQUFoQyxtREFBZ0M7SUFDaEMsZUFBK0I7SUFBL0Isa0RBQStCO0lBQy9CLGVBQXNCO0lBQXRCLDRDQUFzQjtJQUN0QixlQUF3QjtJQUF4Qiw4Q0FBd0I7SUFFeEIsZUFBOEI7SUFBOUIsb0RBQThCO0lBQzlCLGVBQThCO0lBQTlCLG9EQUE4QjtJQUU5QixlQUEyQjtJQUEzQixpREFBMkI7SUFDMUIsZUFBZ0M7SUFBaEMsc0RBQWdDO0lBTWpDLGVBQTRDO0lBQTVDLGtFQUE0QztJQUU1QyxlQUE0QztJQUE1QyxrRUFBNEM7SUFFNUMsZUFBNEM7SUFBNUMsa0VBQTRDO0lBRTVDLGVBQTRDO0lBQTVDLGtFQUE0QztJQUU1QyxlQUE0QztJQUE1QyxrRUFBNEM7SUFFNUMsZUFBNkM7SUFBN0Msa0VBQTZDO0lBRTNCLGVBQStDO0lBQS9DLHdEQUErQztJQU90RixlQUF5RDtJQUF6RCw4REFBeUQ7Ozs7SUF3RXJFLDhEQUVxQztJQURuQyxvU0FBNkM7SUFDL0MsaUJBQXFDOzs7SUFGRCx1REFBa0MscUNBQUE7Ozs7QUR4S3RFLE1BQU0sT0FBTywyQkFBMkI7SUE0QnRDLFlBQ29CLGFBQStCLEVBQy9CLGdCQUFrQyxFQUNsQyxlQUFpQztRQUZqQyxrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFDL0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxvQkFBZSxHQUFmLGVBQWUsQ0FBa0I7UUF6QjVDLDJCQUFzQixHQUFhLEtBQUssQ0FBQztRQUV4Qyx5QkFBb0IsR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM5RCxzQkFBaUIsR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUtyRSxrQkFBYSxHQUFRLEVBQUUsQ0FBQztRQUV4QixZQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2Isc0JBQWlCLEdBQVM7WUFDeEIsWUFBWSxFQUFHLEVBQUU7U0FDbEIsQ0FBQztRQUVGLGNBQVMsR0FBUyxLQUFLLENBQUM7UUFFeEIseUJBQW9CLEdBQVMsS0FBSyxDQUFDO1FBQ25DLGtCQUFhLEdBQVMsSUFBSSxDQUFDO1FBQzNCLHFCQUFnQixHQUFLLEVBQUUsQ0FBQztRQUN4QixTQUFJLEdBQUcsR0FBRyxDQUFDO0lBSzhDLENBQUM7SUFFMUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzVDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FDM0M7WUFDRSxFQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBQztTQUNwQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBR1gsSUFBSSxDQUFDLGFBQWEsR0FBQyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUUsQ0FBQyxTQUFTLENBQ2hFLENBQUMsSUFBUyxFQUFHLEVBQUU7WUFDYixJQUFJLENBQUMsV0FBVyxHQUFlLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDM0MsQ0FBQyxDQUNGLENBQUM7UUFFRixJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUMzQyw0Q0FBNEM7SUFDOUMsQ0FBQztJQUVELE1BQU0sQ0FBRSxDQUFDO1FBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQzNCLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFDRCw4QkFBOEI7UUFDNUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDM0MsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFDO1lBQ3JCLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxhQUFhLEdBQUMsS0FBSyxDQUFDO1NBQzFCO0lBQ0gsQ0FBQztJQUVELDBCQUEwQjtRQUN4QixJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUUsSUFBSSxDQUFDLElBQUksQ0FBRSxDQUFDO1FBQzdFLE1BQU0sVUFBVSxHQUFHO1lBQ2pCLE9BQU8sRUFBZSxDQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFFO1lBQzdGLFVBQVUsRUFBWSxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVU7WUFDbkQsaUJBQWlCLEVBQUssSUFBSSxDQUFDLGlCQUFpQjtZQUM1QyxZQUFZLEVBQVUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJO1lBQzlGLG1CQUFtQixFQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CO1NBQzdELENBQUM7UUFDRixJQUFJLENBQUMsYUFBYSxDQUFDLHNDQUFzQyxDQUFFLFVBQVUsRUFBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFFLENBQUMsSUFBSSxDQUMxRyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQ1osSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUM7WUFDL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUM3QixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUM7Z0JBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO2FBQzdDO1lBQ0QsSUFBRyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUM7Z0JBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO2FBQ3ZCO1FBQ0gsQ0FBQyxDQUNGLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ1YsSUFBSSxDQUFDLGFBQWEsR0FBSSxFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsNkJBQTZCO1FBQzNCLElBQUssSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRztZQUMzRSxPQUFPLEtBQUssQ0FBQztRQUNiLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFDRCw2QkFBNkIsQ0FBRSxNQUFNO1FBQ25DLElBQUksTUFBTSxDQUFDLEdBQUcsS0FBSyxPQUFPO1lBQ3hCLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBRSxNQUFNO1FBQ3RCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFFLENBQUMsQ0FBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxjQUFjLENBQUMsTUFBTTtRQUNqQixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxhQUFhO1FBQzdCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxhQUFhLENBQUM7UUFDdEMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQztJQUNuQyxDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBSztRQUN0QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUMzQyxDQUFDOzt5SEF2SFUsMkJBQTJCO21GQUEzQiwyQkFBMkI7UUNQeEMsbUNBR0U7UUFIK0MsOEpBQTJCLCtGQUNoRSxvQ0FBZ0MsSUFEZ0MsZ0lBQ2lCLEVBQUUsV0FBRyx5QkFBcUIsSUFEM0M7O1FBRzFFLDhCQUNFO1FBQUEsOEJBQ0U7UUFBQSw4QkFDRTtRQUFBLDhCQUNFO1FBQUEsaUNBQ0U7UUFEaUIsNktBQTRDLDZGQUFXLG1DQUErQixJQUExQztRQUM3RCxpQ0FBa0I7UUFBQSxzQkFBTTtRQUFBLGlCQUFTO1FBQ2pDLGlDQUFrQjtRQUFBLDRCQUFXO1FBQUEsaUJBQVM7UUFDdEMsa0NBQW1CO1FBQUEsNkJBQVk7UUFBQSxpQkFBUztRQUN4QyxrQ0FBbUI7UUFBQSx3QkFBTztRQUFBLGlCQUFTO1FBQ3JDLGlCQUFTO1FBQ1gsaUJBQU07UUFDTixrQ0FFQTtRQUZvRCxvS0FBbUMsdUdBQ3pFLHlDQUF1QyxJQURrQztRQUF2RixpQkFFQTtRQUFBLG1DQUNtRDtRQUFqRCx5R0FBUyxnQ0FBNkIsSUFBQztRQUFDLGlCQUFTO1FBQ3JELGlCQUFNO1FBQ1IsaUJBQU07UUFDTiwrQkFDRTtRQUFBLCtCQUNFO1FBQUEsZ0NBQ0U7UUFBQSxrQ0FBcUI7UUFBQSx5QkFBUTtRQUFBLGlCQUFRO1FBQ3ZDLGlCQUFNO1FBQ04sbUNBRUU7UUFGdUMsa0tBQWdDLDhGQUM3RCxtQ0FBK0IsSUFEOEI7UUFFdkUscUZBQXFFO1FBQ3ZFLGlCQUFTO1FBQ1gsaUJBQU07UUFFUixpQkFBTTtRQUNSLGlCQUFNO1FBYU4sd0NBRUU7UUFEdUIsNEhBQWUsNEJBQXdCLElBQUM7UUFDL0QsZ0dBQ0U7UUFtQkYsaUdBQ0U7UUFzQ0osaUJBQVU7UUF5RFYsd0NBQzBEO1FBRHFCLGtJQUFnQixrQkFBYyxJQUFDO1FBQ2xFLGlCQUFjO1FBSzVELGlCQUFXO1FBTVgsNklBRUE7O1FBL0s0QywyREFBb0Q7UUFGdEYsc0VBQXNDO1FBQUMsMkNBQTJCLHFCQUFBLHFCQUFBLHFCQUFBLFlBQUE7UUFPL0MsZUFBNEM7UUFBNUMsNERBQTRDO1FBT2IsZUFBbUM7UUFBbkMsbURBQW1DO1FBVzlDLGVBQWdDO1FBQWhDLGdEQUFnQztRQUUvRCxlQUFtQztRQUFuQyx5Q0FBbUM7UUFrQjFDLGVBQXVCO1FBQXZCLHlDQUF1QixvQkFBQSxvQkFBQTtRQXNIbkIsZUFBa0I7UUFBbEIsb0NBQWtCLGdDQUFBLG1CQUFBLG1EQUFBO1FBYWUsZUFBNEI7UUFBNUIsK0NBQTRCOztrRER6Sy9ELDJCQUEyQjtjQUx2QyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLHlCQUF5QjtnQkFDbkMsV0FBVyxFQUFFLHNDQUFzQztnQkFDbkQsU0FBUyxFQUFFLENBQUMscUNBQXFDLENBQUM7YUFDbkQ7MEhBR1UsYUFBYTtrQkFBckIsS0FBSztZQUNHLGFBQWE7a0JBQXJCLEtBQUs7WUFDRyxVQUFVO2tCQUFsQixLQUFLO1lBRUcsc0JBQXNCO2tCQUE5QixLQUFLO1lBRUksb0JBQW9CO2tCQUE3QixNQUFNO1lBQ0csaUJBQWlCO2tCQUExQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFsbWFjZW4gfSBmcm9tICcuLi9hbG1hY2VuL21vZGVscy9BbG1hY2VuJztcbmltcG9ydCB7IFBhZ2luYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3BhZ2luYXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWxtYWNlblNlcnZpY2UgfSBmcm9tICcuLi9hbG1hY2VuL3NlcnZpY2VzL2FsbWFjZW4uc2VydmljZSc7XG5pbXBvcnQgeyBTdG9ja1NlcnZpY2UgfSBmcm9tICcuL3N0b2NrLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtc2VsZWNjaW9uYS1hcnRpY3VsbycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY2Npb25hLWFydGljdWxvLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VsZWNjaW9uYS1hcnRpY3Vsby5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2VsZWNjaW9uYUFydGljdWxvQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBjb25maWd1cmFjaW9uIDogYW55O1xuICBASW5wdXQoKSBzaG93QXJ0aWN1bG9zIDogYm9vbGVhbjtcbiAgQElucHV0KCkgbW92aW1pZW50bzogYW55O1xuXG4gIEBJbnB1dCgpIG1hbmVqYVVuaWRhZFNlY3VuZGFyaWEgOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIGVtaXRGaWxhU2VsZWNjaW9uYWRhIDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBlbWl0U2hvd0FydGljdWxvcyA6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG5cblxuICBhbG1hY2VuTGlzdDogQWxtYWNlbltdO1xuICBhcnRpY3Vsb3NMaXN0OiBhbnkgPSBbXTtcbiAgcGFnZTogYW55O1xuICBvcmRlbmFyID0gW107XG4gIGJ1c3F1ZWRhQXJ0aWN1bG9zIDogYW55ID0ge1xuICAgIHRpcG9CdXNxdWVkYSA6ICcnXG4gIH07XG5cbiAgc2hvd01vZGFsOmJvb2xlYW49ZmFsc2U7XG4gIGFydGljdWxvU2VsZWN0ZWQ6YW55O1xuICBzaG93TW9kYWxJbmZvcm1hY2lvbjpib29sZWFuPWZhbHNlO1xuICBzaG93Rmlyc3RUaW1lOmJvb2xlYW49dHJ1ZTtcbiAgY2xhc2lmaWNhZG9yTGlzdDphbnk9W107XG4gIHNpemUgPSA2NDA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICAgICAgICAgIHByaXZhdGUgX3N0b2NrU2VydmljZSAgICA6IFN0b2NrU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfcGFnaW5hdGVTZXJ2aWNlIDogUGFnaW5hdGVTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF9hbG1hY2VuU2VydmljZSAgOiBBbG1hY2VuU2VydmljZSkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5wYWdlID0gdGhpcy5fcGFnaW5hdGVTZXJ2aWNlLmdldFBhZ2UoKTtcbiAgICB0aGlzLm9yZGVuYXIgPSB0aGlzLl9wYWdpbmF0ZVNlcnZpY2UuZ2V0T3JkZW4oXG4gICAgICBbXG4gICAgICAgIHtwYXJhbTogJ25vbWJyZScsIGxhYmVsOiAnZXN0YXR1cyd9XG4gICAgICBdLCAnZXMnKTtcblxuXG4gICAgdGhpcy5zaG93Rmlyc3RUaW1lPXRydWU7XG4gICAgdGhpcy5fYWxtYWNlblNlcnZpY2UuZ2V0QWxsKCB0aGlzLmNvbmZpZ3VyYWNpb24ucGFyYW1zICkuc3Vic2NyaWJlKFxuICAgICAgKGRhdGE6IGFueSApID0+IHtcbiAgICAgICAgdGhpcy5hbG1hY2VuTGlzdCA9IDxBbG1hY2VuW10+IGRhdGEuZGF0YTtcbiAgICAgIH1cbiAgICApO1xuICAgIFxuICAgIHRoaXMuYnVzcXVlZGFBcnRpY3Vsb3MudGlwb0J1c3F1ZWRhID0gJ0NEJztcbiAgICAvL3RlbXB0aGlzLm9idGVuZXJFeGlzdGVuY2lhQXJ0aWN1bG9zU2hvdygpO1xuICB9XG5cbiAgcGFnaW5hKCBlICl7XG4gICAgdGhpcy5wYWdlLnJvd3MgPSBlLnJvd3M7XG4gICAgdGhpcy5wYWdlLm9mZnNldCA9IGUuZmlyc3Q7XG4gICAgdGhpcy5vYnRlbmVyRXhpc3RlbmNpYUFydGljdWxvcygpO1xuICB9XG4gIG9idGVuZXJFeGlzdGVuY2lhQXJ0aWN1bG9zU2hvdygpe1xuICAgIHRoaXMuYnVzcXVlZGFBcnRpY3Vsb3MudGlwb0J1c3F1ZWRhID0gJ0NEJztcbiAgICBpZiAodGhpcy5zaG93Rmlyc3RUaW1lKXtcbiAgICAgIHRoaXMub2J0ZW5lckV4aXN0ZW5jaWFBcnRpY3Vsb3MoKTtcbiAgICAgIHRoaXMuc2hvd0ZpcnN0VGltZT1mYWxzZTtcbiAgICB9XG4gIH1cblxuICBvYnRlbmVyRXhpc3RlbmNpYUFydGljdWxvcyggKSB7XG4gICAgdGhpcy5idXNxdWVkYUFydGljdWxvcy5wYXJhbXMgPSB0aGlzLl9wYWdpbmF0ZVNlcnZpY2UuZ2V0UGFyYW1zKCB0aGlzLnBhZ2UgKTtcbiAgICBjb25zdCBwYXJhbWV0cm9zID0ge1xuICAgICAgYWxtYWNlbiAgICAgICAgICAgICA6ICggdGhpcy5jb25maWd1cmFjaW9uLm5vT2N1cGFBbGFtYWNlbiA/IG51bGwgOiB0aGlzLm1vdmltaWVudG8uYWxtYWNlbiApLFxuICAgICAgdGlwb1ByZWNpbyAgICAgICAgICA6IHRoaXMuY29uZmlndXJhY2lvbi50aXBvUHJlY2lvLFxuICAgICAgYnVzcXVlZGFBcnRpY3Vsb3MgICA6IHRoaXMuYnVzcXVlZGFBcnRpY3Vsb3MsXG4gICAgICB0aXBvQXJ0aWN1bG8gICAgICAgIDogdGhpcy5jb25maWd1cmFjaW9uLnRpcG9BcnRpY3VsbyA/IHRoaXMuY29uZmlndXJhY2lvbi50aXBvQXJ0aWN1bG8gOiBudWxsLFxuICAgICAgbnVtZXJvUHJlY2lvRGVmYXVsdCA6IHRoaXMuY29uZmlndXJhY2lvbi5udW1lcm9QcmVjaW9EZWZhdWx0XG4gICAgfTsgICAgICAgXG4gICAgdGhpcy5fc3RvY2tTZXJ2aWNlLm9idGVuZXJFeGlzdGVuY2lhc0FydGljdWxvc0Rlc2NyaXBjaW9uKCBwYXJhbWV0cm9zICwgdGhpcy5idXNxdWVkYUFydGljdWxvcy5wYXJhbXMgKS50aGVuKFxuICAgICAgKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmFydGljdWxvc0xpc3QgPSBkYXRhLmFydGljdWxvc0Rlc2NyaXBjaW9uO1xuICAgICAgICB0aGlzLnBhZ2UudG90YWwgPSBkYXRhLnRvdGFsOyAgXG4gICAgICAgIGlmIChkYXRhLmNsYXNpZmljYWRvcmVzKXtcbiAgICAgICAgICB0aGlzLmNsYXNpZmljYWRvckxpc3QgPSBkYXRhLmNsYXNpZmljYWRvcmVzO1xuICAgICAgICB9ICAgICAgXG4gICAgICAgIGlmKCF0aGlzLnNob3dNb2RhbCl7XG4gICAgICAgICAgdGhpcy5zaG93TW9kYWwgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgKS5jYXRjaChlID0+e1xuICAgICAgdGhpcy5hcnRpY3Vsb3NMaXN0ID0gIFtdO1xuICAgIH0pO1xuICB9XG5cbiAgb2J0ZW5lckV4aXN0ZW5jaWFBcnRpY3Vsb3NWYWwoKXtcbiAgICBpZiAoIHRoaXMuYnVzcXVlZGFBcnRpY3Vsb3MudGlwb0J1c3F1ZWRhICE9ICcnICYmICF0aGlzLmJ1c3F1ZWRhQXJ0aWN1bG9zLmtleSApXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB0aGlzLm9idGVuZXJFeGlzdGVuY2lhQXJ0aWN1bG9zKCk7IFxuICB9XG4gIG9idGVuZXJFeGlzdGVuY2lhQXJ0aWN1bG9zS2V5KCAkZXZlbnQgKSB7XG4gICAgaWYoICRldmVudC5rZXkgPT09ICdFbnRlcicpXG4gICAgICB0aGlzLm9idGVuZXJFeGlzdGVuY2lhQXJ0aWN1bG9zKCk7XG4gIH1cblxuICBmaWxhU2VsZWNjaW9uYWRhKCAkZXZlbnQgKSB7XG4gICAgdGhpcy5lbWl0RmlsYVNlbGVjY2lvbmFkYS5lbWl0KCRldmVudCk7XG4gIH1cblxuICBlbWl0aXJTaG93QXJ0aWN1bG9zKCkge1xuICAgIHRoaXMuZW1pdFNob3dBcnRpY3Vsb3MuZW1pdCggMCApO1xuICB9XG5cbiAgc2VyaWVzQXJ0aWN1bG8oc2VyaWVzKXtcbiAgICAgIGNvbnNvbGUubG9nKHNlcmllcyk7XG4gIH1cblxuICBvblNob3dJbmZvcm1hY2lvbihldmVudEFydGljdWxvKXtcbiAgICB0aGlzLmFydGljdWxvU2VsZWN0ZWQgPSBldmVudEFydGljdWxvO1xuICAgIHRoaXMuc2hvd01vZGFsSW5mb3JtYWNpb24gPSB0cnVlO1xuICB9XG5cbiAgb25FdmVudEluZm9ybWFjaW9uKGV2ZW50KSB7XG4gICAgdGhpcy5zaG93TW9kYWxJbmZvcm1hY2lvbiA9IGV2ZW50LnN0YXR1cztcdCAgICAgIFxuICB9XG59XG4iLCI8IS0taW5pY2lhIHNlbGVjY2lvbiBkZSBhcnRpY3Vsb3MtLT5cbjwhLS0gICAob25TaG93KT1cIm9idGVuZXJFeGlzdGVuY2lhQXJ0aWN1bG9zU2hvdygpXCIgLS0+XG48IS0tXG4gIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLWNlbnRlclwiID4tLT5cbjxwLWRpYWxvZyBoZWFkZXI9XCJ7eyAnQXJ0aWN1bG9zJyB8IHRyYW5zbGF0ZSB9fVwiIFsodmlzaWJsZSldPVwic2hvd0FydGljdWxvc1wiIFttYXhpbWl6YWJsZV09XCJ0cnVlXCJcbiAgKG9uU2hvdyk9XCJvYnRlbmVyRXhpc3RlbmNpYUFydGljdWxvc1Nob3coKVwiIChvbkhpZGUpPVwiYnVzcXVlZGFBcnRpY3Vsb3MgPSB7IHRpcG9CdXNxdWVkYSA6ICcnfTsgZW1pdGlyU2hvd0FydGljdWxvcygpXCJcbiAgW2Jhc2VaSW5kZXhdPVwiMTAwMDBcIiBbYmxvY2tTY3JvbGxdPVwidHJ1ZVwiIFtzdHlsZV09XCJ7J3dpZHRoJzogc2l6ZSsncHgnLCAnbWluLXdpZHRoJzogJzIwMHB4J31cIiBbbWluWV09XCI3MFwiPlxuICA8ZGl2IGNsYXNzPVwiZ3JpZCBncmlkLWZsdWlkXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMiBtZDpjb2wtNiBsZzpjb2wtNlwiPlxuICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XG4gICAgICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDogMTE1cHg7XCI+XG4gICAgICAgICAgPHNlbGVjdCBwSW5wdXRUZXh0IFsobmdNb2RlbCldPVwiYnVzcXVlZGFBcnRpY3Vsb3MudGlwb0J1c3F1ZWRhXCIgKGNoYW5nZSk9XCJvYnRlbmVyRXhpc3RlbmNpYUFydGljdWxvc1ZhbCgpXCI+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiQ1wiPkNvZGlnbzwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIkRcIj5EZXNjcmlwY2lvbjwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIkNEXCI+Q29pbmNpZGVuY2lhPC9vcHRpb24+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiQ0lcIj5JZ3VhbCBhPC9vcHRpb24+XG4gICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBzdHlsZT1cIndpZHRoOiAyMDBweDtcIiBwSW5wdXRUZXh0IFsobmdNb2RlbCldPVwiYnVzcXVlZGFBcnRpY3Vsb3Mua2V5XCJcbiAgICAgICAgICAoa2V5cHJlc3MpPVwib2J0ZW5lckV4aXN0ZW5jaWFBcnRpY3Vsb3NLZXkoICRldmVudCApXCIgaWQ9XCJrZXlcIj5cbiAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIHR5cGU9XCJidXR0b25cIiBpY29uPVwicGkgcGktc2VhcmNoXCIgc3R5bGVDbGFzcz1cInAtYnV0dG9uLXNlY29uZGFyeVwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9idGVuZXJFeGlzdGVuY2lhQXJ0aWN1bG9zKCApXCI+PC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIG1kOmNvbC02IGxnOmNvbC02XCI+XG4gICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cbiAgICAgICAgPGRpdiBzdHlsZT1cIndpZHRoOiAxMDBweDtcIj5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwiYWxtYWNlblwiPkFsbWFjZW46PC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxzZWxlY3QgcElucHV0VGV4dCBzdHlsZT1cIndpZHRoOiAyMDBweDtcIiBbKG5nTW9kZWwpXT1cIm1vdmltaWVudG8uYWxtYWNlblwiIGRpc2FibGVkIGlkPVwiYWxtYWNlblwiXG4gICAgICAgICAgKGNoYW5nZSk9XCJvYnRlbmVyRXhpc3RlbmNpYUFydGljdWxvc1ZhbCgpXCI+XG4gICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgYWxtYWNlbiBvZiBhbG1hY2VuTGlzdFwiIHZhbHVlPVwie3sgYWxtYWNlbi5pZCB9fVwiPnt7YWxtYWNlbi5kZXNjcmlwY2lvbn19PC9vcHRpb24+XG4gICAgICAgIDwvc2VsZWN0PlxuICAgICAgPC9kaXY+XG5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPCEtLVxuICAgICAgPGRpdiBpZD1cInRhYmxlLXdyYXBwZXJcIj5cbiAgICAgIDxkaXYgaWQ9XCJ0YWJsZS1zY3JvbGxcIj4tLT5cbiAgPCEtLSBuZXcgdGFibGVcbiAgICAgICA8cC10YWJsZSAjZHQgW2NvbHVtbnNdPVwiY29sc0REXCIgW3ZhbHVlXT1cImxpc3RERFwiIFtzY3JvbGxhYmxlXT1cInRydWVcIiBcbiAgICAgICBbc3R5bGVdPVwie3dpZHRoOiAnMTAwJSd9IFwiIFtzY3JvbGxIZWlnaHRdPVwibWF4SCArICdweCdcIiBcbiAgICAgICBbcmVzaXphYmxlQ29sdW1uc109XCJ0cnVlXCIgWyhzZWxlY3Rpb24pXT1cInNlbGVjdGVkWE1MXCIgKG9uUm93U2VsZWN0KT1cIm9uUm93U2VsZWN0KCRldmVudClcIiBkYXRhS2V5PVwidXVpZFwiPlxuXG4gICAgICAgXG4gICAgICAtLT5cblxuICA8cC10YWJsZSBbdmFsdWVdPVwiYXJ0aWN1bG9zTGlzdFwiIFtzY3JvbGxhYmxlXT1cInRydWVcIiAjZHQgc2Nyb2xsSGVpZ2h0PVwiNDAwcHhcIiBbcmVzcG9uc2l2ZV09XCJ0cnVlXCJcbiAgICBzZWxlY3Rpb25Nb2RlPVwic2luZ2xlXCIgKG9uUm93U2VsZWN0KT1cImZpbGFTZWxlY2Npb25hZGEoJGV2ZW50KVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIj5cbiAgICAgIDx0cj5cbiAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDgwcHhcIiB0cmFuc2xhdGU+Q8OzZGlnbyBVYmljYWNpb248L3RoPlxuICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDogNzBweFwiIHRyYW5zbGF0ZT5FeGlzdGVuY2lhPC90aD5cbiAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDQwcHhcIiB0cmFuc2xhdGU+VW5pZGFkPC90aD5cbiAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDUwcHhcIiAqbmdJZj1cIm1hbmVqYVVuaWRhZFNlY3VuZGFyaWFcIiB0cmFuc2xhdGU+ZXhpc3RlbmNpYVNlY3VuZGFyaWE8L3RoPlxuICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDogNDBweFwiICpuZ0lmPVwibWFuZWphVW5pZGFkU2VjdW5kYXJpYVwiIHRyYW5zbGF0ZT5VbmlkYWQ8L3RoPlxuICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDogODBweFwiIHRyYW5zbGF0ZT5Dw7NkaWdvPC90aD5cbiAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDEyMHB4XCIgdHJhbnNsYXRlPkRlc2NyaXBjaW9uPC90aD5cbiAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDQwcHhcIiB0cmFuc2xhdGU+PC90aD5cbiAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDgwcHhcIiAqbmdJZj1cImNvbmZpZ3VyYWNpb24udGlwb1ByZWNpbyAhPT0gJ2Nvc3RvJyBcIiB0cmFuc2xhdGU+UHJlY2lvPC90aD5cbiAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDgwcHhcIiAqbmdJZj1cImNvbmZpZ3VyYWNpb24udGlwb1ByZWNpbyAhPT0gJ2Nvc3RvJyBcIiB0cmFuc2xhdGU+UHJlY2lvIDI8L3RoPlxuICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDogODBweFwiICpuZ0lmPVwiY29uZmlndXJhY2lvbi50aXBvUHJlY2lvICE9PSAnY29zdG8nIFwiIHRyYW5zbGF0ZT5QcmVjaW8gMzwvdGg+XG4gICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOiA4MHB4XCIgKm5nSWY9XCJjb25maWd1cmFjaW9uLnRpcG9QcmVjaW8gIT09ICdjb3N0bycgXCIgdHJhbnNsYXRlPlByZWNpbyA0PC90aD5cbiAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDgwcHhcIiAqbmdJZj1cImNvbmZpZ3VyYWNpb24udGlwb1ByZWNpbyAhPT0gJ2Nvc3RvJyBcIiB0cmFuc2xhdGU+UHJlY2lvIDU8L3RoPlxuICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDogNDBweFwiICpuZ0lmPVwiY29uZmlndXJhY2lvbi50aXBvUHJlY2lvID09PSAnY29zdG8nIFwiIHRyYW5zbGF0ZT5Nb3ZpbWllbnRvLmNvc3RvPC90aD5cbiAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDQwcHhcIiB0cmFuc2xhdGU+RXhpc3RlbmNpYSBwb3IgVW5pZGFkPC90aD5cbiAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNsYXNpZmljYWRvckxpc3RcIiBzdHlsZT1cIndpZHRoOiA4MHB4XCIgdHJhbnNsYXRlPnt7aXRlbS5kZXNjcmlwY2lvbn19PC90aD5cbiAgICAgIDwvdHI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiIGxldC1yb3dEYXRhIGxldC1yb3dJbmRleD1cInJvd0luZGV4XCI+XG4gICAgICA8dHIgW3BTZWxlY3RhYmxlUm93XT1cInJvd0RhdGFcIj5cbiAgICAgICAgPHRkIHN0eWxlPVwid2lkdGg6IDgwcHg7XCIgKm5nSWY9XCIhcm93RGF0YS51YmljYWNpb25Db2RpZ29cIiB0cmFuc2xhdGU+TW92aW1pZW50by5Ob0FzaWduYWRvPC90ZD5cbiAgICAgICAgPHRkIHN0eWxlPVwid2lkdGg6IDgwcHg7XCIgKm5nSWY9XCJyb3dEYXRhLnViaWNhY2lvbkNvZGlnb1wiPnt7cm93RGF0YS51YmljYWNpb25Db2RpZ299fTwvdGQ+XG4gICAgICAgIDx0ZCBzdHlsZT1cIndpZHRoOiA3MHB4O1wiPnt7cm93RGF0YS5leGlzdGVuY2lhfX08L3RkPlxuICAgICAgICA8dGQgc3R5bGU9XCJ3aWR0aDogNDBweDtcIj57e3Jvd0RhdGEudW5pZGFkQ29kaWdvfX08L3RkPlxuXG4gICAgICAgIDx0ZCBzdHlsZT1cIndpZHRoOiA1MHB4O1wiICpuZ0lmPVwibWFuZWphVW5pZGFkU2VjdW5kYXJpYVwiPnt7cm93RGF0YS5leGlzdGVuY2lhU2VjdW5kYXJpYX19PC90ZD5cbiAgICAgICAgPHRkIHN0eWxlPVwid2lkdGg6IDQwcHg7XCIgKm5nSWY9XCJtYW5lamFVbmlkYWRTZWN1bmRhcmlhXCI+e3tyb3dEYXRhLnVuaWRhZFNlY3VuZGFyaWFDb2RpZ299fTwvdGQ+XG5cbiAgICAgICAgPHRkIHN0eWxlPVwid2lkdGg6IDgwcHg7XCI+e3tyb3dEYXRhLmFydGljdWxvLmNvZGlnb319PC90ZD5cbiAgICAgICAgPHRkIHN0eWxlPVwid2lkdGg6IDEyMHB4O1wiPnt7cm93RGF0YS5hcnRpY3Vsby5kZXNjcmlwY2lvbn19PC90ZD5cbiAgICAgICAgPHRkIHN0eWxlPVwid2lkdGg6IDQwcHg7XCI+XG4gICAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIHR5cGU9XCJidXR0b25cIiBpY29uPVwicGkgcGktZXllXCIgY2xhc3M9XCJ1aS1idXR0b24tcmFpc2VkIHVpLWJ1dHRvbi1wcmltYXJ5XCJcbiAgICAgICAgICAgIChjbGljayk9XCJvblNob3dJbmZvcm1hY2lvbihyb3dEYXRhKVwiPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgc3R5bGU9XCJ3aWR0aDogODBweDtcIiAqbmdJZj1cImNvbmZpZ3VyYWNpb24udGlwb1ByZWNpbyAhPT0gJ2Nvc3RvJ1wiPnt7cm93RGF0YS5wcmVjaW9Db25JbXB1ZXN0b3MgfCBjdXJyZW5jeSB9fVxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgc3R5bGU9XCJ3aWR0aDogODBweDtcIiAqbmdJZj1cImNvbmZpZ3VyYWNpb24udGlwb1ByZWNpbyAhPT0gJ2Nvc3RvJ1wiPnt7cm93RGF0YS5wcmVjaW8yQ29uSW1wdWVzdG9zIHwgY3VycmVuY3lcbiAgICAgICAgICB9fTwvdGQ+XG4gICAgICAgIDx0ZCBzdHlsZT1cIndpZHRoOiA4MHB4O1wiICpuZ0lmPVwiY29uZmlndXJhY2lvbi50aXBvUHJlY2lvICE9PSAnY29zdG8nXCI+e3tyb3dEYXRhLnByZWNpbzNDb25JbXB1ZXN0b3MgfCBjdXJyZW5jeVxuICAgICAgICAgIH19PC90ZD5cbiAgICAgICAgPHRkIHN0eWxlPVwid2lkdGg6IDgwcHg7XCIgKm5nSWY9XCJjb25maWd1cmFjaW9uLnRpcG9QcmVjaW8gIT09ICdjb3N0bydcIj57e3Jvd0RhdGEucHJlY2lvNENvbkltcHVlc3RvcyB8IGN1cnJlbmN5XG4gICAgICAgICAgfX08L3RkPlxuICAgICAgICA8dGQgc3R5bGU9XCJ3aWR0aDogODBweDtcIiAqbmdJZj1cImNvbmZpZ3VyYWNpb24udGlwb1ByZWNpbyAhPT0gJ2Nvc3RvJ1wiPnt7cm93RGF0YS5wcmVjaW81Q29uSW1wdWVzdG9zIHwgY3VycmVuY3lcbiAgICAgICAgICB9fTwvdGQ+XG4gICAgICAgIDx0ZCBzdHlsZT1cIndpZHRoOiA0MHB4O1wiICpuZ0lmPVwiY29uZmlndXJhY2lvbi50aXBvUHJlY2lvID09PSAnY29zdG8nIFwiPnt7cm93RGF0YS5wcmVjaW8gfCBjdXJyZW5jeSB9fTwvdGQ+XG4gICAgICAgIDx0ZCBzdHlsZT1cIndpZHRoOiA0MHB4O1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cganVzdGlmeS1jb250ZW50LWJldHdlZW5cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiByb3dEYXRhLmV4aXN0ZW5jaWFVbmlkYWRlc1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy00XCI+PGxhYmVsIGZvcj1cIlwiPnt7aXRlbS51bmlkYWRfY29kaWdvfX08L2xhYmVsPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy00XCI+PGxhYmVsIGZvcj1cIlwiPnt7aXRlbS51bmlkYWRfZXhpc3RlbmNpYSB8IG51bWJlciA6ICcxLjItMid9fTwvbGFiZWw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPCEtLSA8dGQgc3R5bGU9XCJ3aWR0aDogNDBweDtcIj48L3RkPiAgIC0tPlxuICAgICAgICA8dGQgKm5nRm9yPVwibGV0IGl0ZW1EYXRhIG9mIHJvd0RhdGEuYXJ0aWN1bG9DbGFzaWZpY2Fkb3JMaXN0XCIgc3R5bGU9XCJ3aWR0aDogODBweDtcIj57e2l0ZW1EYXRhLnZhbG9yfX08L3RkPlxuICAgICAgPC90cj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L3AtdGFibGU+XG5cbiAgPCEtLSAvbmV3IHRhYmxlLS0+XG4gIDwhLS0gXG4gICAgICA8cC10YWJsZSBbKHZhbHVlKV09XCJhcnRpY3Vsb3NMaXN0XCIgcmVzcG9uc2l2ZT1cInRydWVcIiBcbiAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25Nb2RlPVwibXVsdGlwbGVcIiAob25Sb3dTZWxlY3QpPVwiZmlsYVNlbGVjY2lvbmFkYSgkZXZlbnQpXCIgIFtzY3JvbGxhYmxlXT1cInRydWVcIiBzY3JvbGxIZWlnaHQ9XCIzNTBweFwiID5cblxuICAgICAgICA8cC1jb2x1bW4gIGhlYWRlcj1cInt7ICdDb2RpZ28gdWJpY2FjaW9uJy50b1N0cmluZygpIHwgdHJhbnNsYXRlfX1cIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWRhdG89XCJyb3dEYXRhXCIgcFRlbXBsYXRlPVwiYm9keVwiPlxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cIlwiICpuZ0lmPVwiIWRhdG8udWJpY2FjaW9uQ29kaWdvXCIgIHRyYW5zbGF0ZT4gTW92aW1pZW50by5Ob0FzaWduYWRvIDwvbGFiZWw+XG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwiXCIgKm5nSWY9XCJkYXRvLnViaWNhY2lvbkNvZGlnb1wiID4ge3sgZGF0by51YmljYWNpb25Db2RpZ28gfX08L2xhYmVsPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvcC1jb2x1bW4+XG4gICAgICAgIDxwLWNvbHVtbiBmaWVsZD1cInViaWNhY2lvbkNvZGlnb1wiIGhlYWRlcj1cInt7ICdEZXNjcmlwY2lvbiB1YmljYWNpb24nLnRvU3RyaW5nKCkgfCB0cmFuc2xhdGV9fVwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtZGF0bz1cInJvd0RhdGFcIiBwVGVtcGxhdGU9XCJib2R5XCI+XG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwiXCIgKm5nSWY9XCIhZGF0by51YmljYWNpb25Db2RpZ29cIiAgdHJhbnNsYXRlPiBNb3ZpbWllbnRvLk5vQXNpZ25hZG8gPC9sYWJlbD5cbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJcIiAqbmdJZj1cImRhdG8udWJpY2FjaW9uQ29kaWdvXCIgPiB7eyBkYXRvLnViaWNhY2lvbkNvZGlnbyB9fTwvbGFiZWw+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9wLWNvbHVtbj5cblxuICAgICAgICA8cC1jb2x1bW4gZmllbGQ9XCJleGlzdGVuY2lhXCIgaGVhZGVyPVwie3snRXhpc3RlbmNpYScgfCB0cmFuc2xhdGV9fVwiPjwvcC1jb2x1bW4+XG4gICAgICAgIDxwLWNvbHVtbiBmaWVsZD1cInVuaWRhZENvZGlnb1wiIGhlYWRlcj1cInt7J1VuaWRhZCcgfCB0cmFuc2xhdGV9fVwiPjwvcC1jb2x1bW4+XG4gICAgICAgIDxwLWNvbHVtbiBmaWVsZD1cInVuaWRhZERlc2NyaXBjaW9uXCIgaGVhZGVyPVwie3snRGVzY3JpcGNpb24gdW5pZGFkJyB8IHRyYW5zbGF0ZX19XCI+PC9wLWNvbHVtbj5cblxuICAgICAgICA8cC1jb2x1bW4gZmllbGQ9XCJleGlzdGVuY2lhU2VjdW5kYXJpYVwiIGhlYWRlcj1cInt7J2V4aXN0ZW5jaWFTZWN1bmRhcmlhJyB8IHRyYW5zbGF0ZX19XCIgKm5nSWY9XCJtYW5lamFVbmlkYWRTZWN1bmRhcmlhXCI+PC9wLWNvbHVtbj5cbiAgICAgICAgPHAtY29sdW1uIGZpZWxkPVwidW5pZGFkU2VjdW5kYXJpYUNvZGlnb1wiIGhlYWRlcj1cInt7J1VuaWRhZCcgfCB0cmFuc2xhdGV9fVwiICpuZ0lmPVwibWFuZWphVW5pZGFkU2VjdW5kYXJpYVwiPjwvcC1jb2x1bW4+XG4gICAgICAgIFxuXG4gICAgICAgIDxwLWNvbHVtbiAqbmdJZj1cImNvbmZpZ3VyYWNpb24udGlwb1ByZWNpbyAhPT0gJ2Nvc3RvJyBcIiAgaGVhZGVyPVwie3snTW92aW1pZW50by5tb3ZpbWllbnRvRGV0YWxsZS5wcmVjaW8nIHwgdHJhbnNsYXRlfX1cIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWRhdG89XCJyb3dEYXRhXCIgcFRlbXBsYXRlPVwiYm9keVwiPlxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cIlwiPnt7IGRhdG8ucHJlY2lvQ29uSW1wdWVzdG9zIHwgY3VycmVuY3kgfX08L2xhYmVsPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvcC1jb2x1bW4+XG4gICAgICAgIDxwLWNvbHVtbiAqbmdJZj1cImNvbmZpZ3VyYWNpb24udGlwb1ByZWNpbyA9PT0gJ2Nvc3RvJyBcIiBoZWFkZXI9XCJ7eydNb3ZpbWllbnRvLmNvc3RvJyB8IHRyYW5zbGF0ZSB9fVwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtZGF0bz1cInJvd0RhdGFcIiBwVGVtcGxhdGU9XCJib2R5XCI+XG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwiXCI+e3sgZGF0by5wcmVjaW8gfCBjdXJyZW5jeSB9fTwvbGFiZWw+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9wLWNvbHVtbj5cblxuXG4gICAgICAgIDxwLWNvbHVtbiBmaWVsZD1cImFydGljdWxvLmNvZGlnb1wiIGhlYWRlcj1cInt7J0NvZGlnbyBhcnRpY3VsbycgfCB0cmFuc2xhdGV9fVwiPjwvcC1jb2x1bW4+XG4gICAgICAgIDxwLWNvbHVtbiBmaWVsZD1cImFydGljdWxvLmRlc2NyaXBjaW9uXCIgaGVhZGVyPVwie3snRGVzY3JpcGNpb24nIHwgdHJhbnNsYXRlfX1cIj48L3AtY29sdW1uPlxuXG5cblxuICAgICAgICA8cC1jb2x1bW4gIGhlYWRlcj1cInt7J0V4aXN0ZW5jaWFQb3JVbmlkYWQnIHwgdHJhbnNsYXRlIH19XCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1kYXRvPVwicm93RGF0YVwiIHBUZW1wbGF0ZT1cImJvZHlcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cganVzdGlmeS1jb250ZW50LWJldHdlZW5cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkYXRvLmV4aXN0ZW5jaWFVbmlkYWRlc1wiID5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy00XCI+PGxhYmVsIGZvcj1cIlwiPnt7aXRlbS51bmlkYWRfY29kaWdvfX08L2xhYmVsPjwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTRcIj48bGFiZWwgZm9yPVwiXCI+e3tpdGVtLnVuaWRhZF9leGlzdGVuY2lhIHwgbnVtYmVyIDogJzEuMi0yJ319PC9sYWJlbD5cbiAgICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgIFxuICAgICAgICAgICAgPC9kaXY+ICBcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L3AtY29sdW1uPlxuICAgICAgICBcbiAgICAgIDwvcC10YWJsZT5cbiAgICAgIC0tPlxuICA8cC1wYWdpbmF0b3IgW3Jvd3NdPVwicGFnZS5yb3dzXCIgW3RvdGFsUmVjb3Jkc109XCJwYWdlLnRvdGFsXCIgW3BhZ2VMaW5rU2l6ZV09XCI1XCIgKG9uUGFnZUNoYW5nZSk9XCJwYWdpbmEoJGV2ZW50KVwiXG4gICAgW3Jvd3NQZXJQYWdlT3B0aW9uc109XCJbMTAsMjUsNTAsMTAwLDUwMF1cIj48L3AtcGFnaW5hdG9yPlxuICA8IS0tICBcbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICAtLT5cbjwvcC1kaWFsb2c+XG48IS0tXG4gIDwvZGl2PiBcbiAgICAgIC0tPlxuPCEtLXRlcm1pbmEgc2VsZWNjaW9uIGRlIGFydGljdWxvcy0tPlxuPCEtLXNlbGVjY2lvbmEgdWJpY2FjaW9uIC0tPlxuPGxpYi1zZWxlY2Npb24tYXJ0aWN1bG8taW5mb3JtYWNpb24gW3Nob3dNb2RhbF09XCJzaG93TW9kYWxJbmZvcm1hY2lvblwiIFthcnRpY3Vsb109XCJhcnRpY3Vsb1NlbGVjdGVkXCJcbiAgKGV2ZW50U2VsZWN0aW9uKT1cIm9uRXZlbnRJbmZvcm1hY2lvbigkZXZlbnQpXCIgKm5nSWY9XCJzaG93TW9kYWxJbmZvcm1hY2lvblwiPlxuPC9saWItc2VsZWNjaW9uLWFydGljdWxvLWluZm9ybWFjaW9uPiJdfQ==
|
|
522
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWNjaW9uYS1hcnRpY3Vsby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcnAtY29yZS9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWNjaW9uYS1hcnRpY3Vsby9zZWxlY2Npb25hLWFydGljdWxvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VycC1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY2Npb25hLWFydGljdWxvL3NlbGVjY2lvbmEtYXJ0aWN1bG8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU3RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztJQzJCckMsa0NBQXFFO0lBQUEsWUFBdUI7SUFBQSxpQkFBUzs7O0lBQXpELGdEQUF3QjtJQUFDLGVBQXVCO0lBQXZCLDRDQUF1Qjs7O0lBeUI5Riw4QkFBaUU7SUFBQSxvQ0FBb0I7SUFBQSxpQkFBSzs7O0lBQzFGLDhCQUFpRTtJQUFBLHNCQUFNO0lBQUEsaUJBQUs7OztJQUk1RSw4QkFBZ0Y7SUFBQSxzQkFBTTtJQUFBLGlCQUFLOzs7SUFDM0YsOEJBQWdGO0lBQUEsd0JBQVE7SUFBQSxpQkFBSzs7O0lBQzdGLDhCQUFnRjtJQUFBLHdCQUFRO0lBQUEsaUJBQUs7OztJQUM3Riw4QkFBZ0Y7SUFBQSx3QkFBUTtJQUFBLGlCQUFLOzs7SUFDN0YsOEJBQWdGO0lBQUEsd0JBQVE7SUFBQSxpQkFBSzs7O0lBQzdGLDhCQUFnRjtJQUFBLGdD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QkFBQSxZQUFBO1FBTy9DLGVBQTRDO1FBQTVDLDREQUE0QztRQU9iLGVBQW1DO1FBQW5DLG1EQUFtQztRQVc5QyxlQUFnQztRQUFoQyxnREFBZ0M7UUFFM0MsZUFBYztRQUFkLHlDQUFjO1FBa0J6QyxlQUF1QjtRQUF2Qix5Q0FBdUIsb0JBQUEsb0JBQUE7UUFzSG5CLGVBQWtCO1FBQWxCLG9DQUFrQixnQ0FBQSxtQkFBQSxtREFBQTtRQWFnQixlQUEwQjtRQUExQiwrQ0FBMEI7O3VGRHpLOUQsMkJBQTJCO2NBTHZDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUseUJBQXlCO2dCQUNuQyxXQUFXLEVBQUUsc0NBQXNDO2dCQUNuRCxTQUFTLEVBQUUsQ0FBQyxxQ0FBcUMsQ0FBQzthQUNuRDswSEFHVSxhQUFhO2tCQUFyQixLQUFLO1lBQ0csYUFBYTtrQkFBckIsS0FBSztZQUNHLFVBQVU7a0JBQWxCLEtBQUs7WUFFRyxzQkFBc0I7a0JBQTlCLEtBQUs7WUFFSSxvQkFBb0I7a0JBQTdCLE1BQU07WUFDRyxpQkFBaUI7a0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWxtYWNlbiB9IGZyb20gJy4uL2FsbWFjZW4vbW9kZWxzL0FsbWFjZW4nO1xuaW1wb3J0IHsgUGFnaW5hdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcGFnaW5hdGUuc2VydmljZSc7XG5pbXBvcnQgeyBBbG1hY2VuU2VydmljZSB9IGZyb20gJy4uL2FsbWFjZW4vc2VydmljZXMvYWxtYWNlbi5zZXJ2aWNlJztcbmltcG9ydCB7IFN0b2NrU2VydmljZSB9IGZyb20gJy4vc3RvY2suc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1zZWxlY2Npb25hLWFydGljdWxvJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjY2lvbmEtYXJ0aWN1bG8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWxlY2Npb25hLWFydGljdWxvLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY2Npb25hQXJ0aWN1bG9Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIGNvbmZpZ3VyYWNpb24gOiBhbnk7XG4gIEBJbnB1dCgpIHNob3dBcnRpY3Vsb3MgOiBib29sZWFuO1xuICBASW5wdXQoKSBtb3ZpbWllbnRvOiBhbnk7XG5cbiAgQElucHV0KCkgbWFuZWphVW5pZGFkU2VjdW5kYXJpYSA6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgZW1pdEZpbGFTZWxlY2Npb25hZGEgOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGVtaXRTaG93QXJ0aWN1bG9zIDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cblxuXG4gIGFsbWFjZW5MaXN0OiBBbG1hY2VuW107XG4gIGFydGljdWxvc0xpc3Q6IGFueSA9IFtdO1xuICBwYWdlOiBhbnk7XG4gIG9yZGVuYXIgPSBbXTtcbiAgYnVzcXVlZGFBcnRpY3Vsb3MgOiBhbnkgPSB7XG4gICAgdGlwb0J1c3F1ZWRhIDogJydcbiAgfTtcblxuICBzaG93TW9kYWw6Ym9vbGVhbj1mYWxzZTtcbiAgYXJ0aWN1bG9TZWxlY3RlZDphbnk7XG4gIHNob3dNb2RhbEluZm9ybWFjaW9uOmJvb2xlYW49ZmFsc2U7XG4gIHNob3dGaXJzdFRpbWU6Ym9vbGVhbj10cnVlO1xuICBjbGFzaWZpY2Fkb3JMaXN0OmFueT1bXTtcbiAgc2l6ZSA9IDY0MDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfc3RvY2tTZXJ2aWNlICAgIDogU3RvY2tTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF9wYWdpbmF0ZVNlcnZpY2UgOiBQYWdpbmF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgX2FsbWFjZW5TZXJ2aWNlICA6IEFsbWFjZW5TZXJ2aWNlKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnBhZ2UgPSB0aGlzLl9wYWdpbmF0ZVNlcnZpY2UuZ2V0UGFnZSgpO1xuICAgIHRoaXMub3JkZW5hciA9IHRoaXMuX3BhZ2luYXRlU2VydmljZS5nZXRPcmRlbihcbiAgICAgIFtcbiAgICAgICAge3BhcmFtOiAnbm9tYnJlJywgbGFiZWw6ICdlc3RhdHVzJ31cbiAgICAgIF0sICdlcycpO1xuXG5cbiAgICB0aGlzLnNob3dGaXJzdFRpbWU9dHJ1ZTtcbiAgICB0aGlzLl9hbG1hY2VuU2VydmljZS5nZXRBbGwoIHRoaXMuY29uZmlndXJhY2lvbi5wYXJhbXMgKS5zdWJzY3JpYmUoXG4gICAgICAoZGF0YTogYW55ICkgPT4ge1xuICAgICAgICB0aGlzLmFsbWFjZW5MaXN0ID0gPEFsbWFjZW5bXT4gZGF0YS5kYXRhO1xuICAgICAgfVxuICAgICk7XG4gICAgXG4gICAgdGhpcy5idXNxdWVkYUFydGljdWxvcy50aXBvQnVzcXVlZGEgPSAnQ0QnO1xuICAgIC8vdGVtcHRoaXMub2J0ZW5lckV4aXN0ZW5jaWFBcnRpY3Vsb3NTaG93KCk7XG4gIH1cblxuICBwYWdpbmEoIGUgKXtcbiAgICB0aGlzLnBhZ2Uucm93cyA9IGUucm93cztcbiAgICB0aGlzLnBhZ2Uub2Zmc2V0ID0gZS5maXJzdDtcbiAgICB0aGlzLm9idGVuZXJFeGlzdGVuY2lhQXJ0aWN1bG9zKCk7XG4gIH1cbiAgb2J0ZW5lckV4aXN0ZW5jaWFBcnRpY3Vsb3NTaG93KCl7XG4gICAgdGhpcy5idXNxdWVkYUFydGljdWxvcy50aXBvQnVzcXVlZGEgPSAnQ0QnO1xuICAgIGlmICh0aGlzLnNob3dGaXJzdFRpbWUpe1xuICAgICAgdGhpcy5vYnRlbmVyRXhpc3RlbmNpYUFydGljdWxvcygpO1xuICAgICAgdGhpcy5zaG93Rmlyc3RUaW1lPWZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIG9idGVuZXJFeGlzdGVuY2lhQXJ0aWN1bG9zKCApIHtcbiAgICB0aGlzLmJ1c3F1ZWRhQXJ0aWN1bG9zLnBhcmFtcyA9IHRoaXMuX3BhZ2luYXRlU2VydmljZS5nZXRQYXJhbXMoIHRoaXMucGFnZSApO1xuICAgIGNvbnN0IHBhcmFtZXRyb3MgPSB7XG4gICAgICBhbG1hY2VuICAgICAgICAgICAgIDogKCB0aGlzLmNvbmZpZ3VyYWNpb24ubm9PY3VwYUFsYW1hY2VuID8gbnVsbCA6IHRoaXMubW92aW1pZW50by5hbG1hY2VuICksXG4gICAgICB0aXBvUHJlY2lvICAgICAgICAgIDogdGhpcy5jb25maWd1cmFjaW9uLnRpcG9QcmVjaW8sXG4gICAgICBidXNxdWVkYUFydGljdWxvcyAgIDogdGhpcy5idXNxdWVkYUFydGljdWxvcyxcbiAgICAgIHRpcG9BcnRpY3VsbyAgICAgICAgOiB0aGlzLmNvbmZpZ3VyYWNpb24udGlwb0FydGljdWxvID8gdGhpcy5jb25maWd1cmFjaW9uLnRpcG9BcnRpY3VsbyA6IG51bGwsXG4gICAgICBudW1lcm9QcmVjaW9EZWZhdWx0IDogdGhpcy5jb25maWd1cmFjaW9uLm51bWVyb1ByZWNpb0RlZmF1bHRcbiAgICB9OyAgICAgICBcbiAgICB0aGlzLl9zdG9ja1NlcnZpY2Uub2J0ZW5lckV4aXN0ZW5jaWFzQXJ0aWN1bG9zRGVzY3JpcGNpb24oIHBhcmFtZXRyb3MgLCB0aGlzLmJ1c3F1ZWRhQXJ0aWN1bG9zLnBhcmFtcyApLnRoZW4oXG4gICAgICAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuYXJ0aWN1bG9zTGlzdCA9IGRhdGEuYXJ0aWN1bG9zRGVzY3JpcGNpb247XG4gICAgICAgIHRoaXMucGFnZS50b3RhbCA9IGRhdGEudG90YWw7ICBcbiAgICAgICAgaWYgKGRhdGEuY2xhc2lmaWNhZG9yZXMpe1xuICAgICAgICAgIHRoaXMuY2xhc2lmaWNhZG9yTGlzdCA9IGRhdGEuY2xhc2lmaWNhZG9yZXM7XG4gICAgICAgIH0gICAgICBcbiAgICAgICAgaWYoIXRoaXMuc2hvd01vZGFsKXtcbiAgICAgICAgICB0aGlzLnNob3dNb2RhbCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICApLmNhdGNoKGUgPT57XG4gICAgICB0aGlzLmFydGljdWxvc0xpc3QgPSAgW107XG4gICAgfSk7XG4gIH1cblxuICBvYnRlbmVyRXhpc3RlbmNpYUFydGljdWxvc1ZhbCgpe1xuICAgIGlmICggdGhpcy5idXNxdWVkYUFydGljdWxvcy50aXBvQnVzcXVlZGEgIT0gJycgJiYgIXRoaXMuYnVzcXVlZGFBcnRpY3Vsb3Mua2V5IClcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIHRoaXMub2J0ZW5lckV4aXN0ZW5jaWFBcnRpY3Vsb3MoKTsgXG4gIH1cbiAgb2J0ZW5lckV4aXN0ZW5jaWFBcnRpY3Vsb3NLZXkoICRldmVudCApIHtcbiAgICBpZiggJGV2ZW50LmtleSA9PT0gJ0VudGVyJylcbiAgICAgIHRoaXMub2J0ZW5lckV4aXN0ZW5jaWFBcnRpY3Vsb3MoKTtcbiAgfVxuXG4gIGZpbGFTZWxlY2Npb25hZGEoICRldmVudCApIHtcbiAgICB0aGlzLmVtaXRGaWxhU2VsZWNjaW9uYWRhLmVtaXQoJGV2ZW50KTtcbiAgfVxuXG4gIGVtaXRpclNob3dBcnRpY3Vsb3MoKSB7XG4gICAgdGhpcy5lbWl0U2hvd0FydGljdWxvcy5lbWl0KCAwICk7XG4gIH1cblxuICBzZXJpZXNBcnRpY3VsbyhzZXJpZXMpe1xuICAgICAgY29uc29sZS5sb2coc2VyaWVzKTtcbiAgfVxuXG4gIG9uU2hvd0luZm9ybWFjaW9uKGV2ZW50QXJ0aWN1bG8pe1xuICAgIHRoaXMuYXJ0aWN1bG9TZWxlY3RlZCA9IGV2ZW50QXJ0aWN1bG87XG4gICAgdGhpcy5zaG93TW9kYWxJbmZvcm1hY2lvbiA9IHRydWU7XG4gIH1cblxuICBvbkV2ZW50SW5mb3JtYWNpb24oZXZlbnQpIHtcbiAgICB0aGlzLnNob3dNb2RhbEluZm9ybWFjaW9uID0gZXZlbnQuc3RhdHVzO1x0ICAgICAgXG4gIH1cbn1cbiIsIjwhLS1pbmljaWEgc2VsZWNjaW9uIGRlIGFydGljdWxvcy0tPlxuPCEtLSAgIChvblNob3cpPVwib2J0ZW5lckV4aXN0ZW5jaWFBcnRpY3Vsb3NTaG93KClcIiAtLT5cbjwhLS1cbiAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtY2VudGVyXCIgPi0tPlxuPHAtZGlhbG9nIGhlYWRlcj1cInt7ICdBcnRpY3Vsb3MnIHwgdHJhbnNsYXRlIH19XCIgWyh2aXNpYmxlKV09XCJzaG93QXJ0aWN1bG9zXCIgW21heGltaXphYmxlXT1cInRydWVcIlxuICAob25TaG93KT1cIm9idGVuZXJFeGlzdGVuY2lhQXJ0aWN1bG9zU2hvdygpXCIgKG9uSGlkZSk9XCJidXNxdWVkYUFydGljdWxvcyA9IHsgdGlwb0J1c3F1ZWRhIDogJyd9OyBlbWl0aXJTaG93QXJ0aWN1bG9zKClcIlxuICBbYmFzZVpJbmRleF09XCIxMDAwMFwiIFtibG9ja1Njcm9sbF09XCJ0cnVlXCIgW3N0eWxlXT1cInsnd2lkdGgnOiBzaXplKydweCcsICdtaW4td2lkdGgnOiAnMjAwcHgnfVwiIFttaW5ZXT1cIjcwXCI+XG4gIDxkaXYgY2xhc3M9XCJncmlkIGdyaWQtZmx1aWRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIG1kOmNvbC02IGxnOmNvbC02XCI+XG4gICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cbiAgICAgICAgPGRpdiBzdHlsZT1cIndpZHRoOiAxMTVweDtcIj5cbiAgICAgICAgICA8c2VsZWN0IHBJbnB1dFRleHQgWyhuZ01vZGVsKV09XCJidXNxdWVkYUFydGljdWxvcy50aXBvQnVzcXVlZGFcIiAoY2hhbmdlKT1cIm9idGVuZXJFeGlzdGVuY2lhQXJ0aWN1bG9zVmFsKClcIj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJDXCI+Q29kaWdvPC9vcHRpb24+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiRFwiPkRlc2NyaXBjaW9uPC9vcHRpb24+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiQ0RcIj5Db2luY2lkZW5jaWE8L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJDSVwiPklndWFsIGE8L29wdGlvbj5cbiAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHN0eWxlPVwid2lkdGg6IDIwMHB4O1wiIHBJbnB1dFRleHQgWyhuZ01vZGVsKV09XCJidXNxdWVkYUFydGljdWxvcy5rZXlcIlxuICAgICAgICAgIChrZXlwcmVzcyk9XCJvYnRlbmVyRXhpc3RlbmNpYUFydGljdWxvc0tleSggJGV2ZW50IClcIiBpZD1cImtleVwiPlxuICAgICAgICA8YnV0dG9uIHBCdXR0b24gdHlwZT1cImJ1dHRvblwiIGljb249XCJwaSBwaS1zZWFyY2hcIiBzdHlsZUNsYXNzPVwicC1idXR0b24tc2Vjb25kYXJ5XCJcbiAgICAgICAgICAoY2xpY2spPVwib2J0ZW5lckV4aXN0ZW5jaWFBcnRpY3Vsb3MoIClcIj48L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgbWQ6Y29sLTYgbGc6Y29sLTZcIj5cbiAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxuICAgICAgICA8ZGl2IHN0eWxlPVwid2lkdGg6IDEwMHB4O1wiPlxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJhbG1hY2VuXCI+QWxtYWNlbjo8L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNlbGVjdCBwSW5wdXRUZXh0IHN0eWxlPVwid2lkdGg6IDIwMHB4O1wiIFsobmdNb2RlbCldPVwibW92aW1pZW50by5hbG1hY2VuXCIgZGlzYWJsZWQgaWQ9XCJhbG1hY2VuXCJcbiAgICAgICAgICAoY2hhbmdlKT1cIm9idGVuZXJFeGlzdGVuY2lhQXJ0aWN1bG9zVmFsKClcIj5cbiAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBhbG1hY2VuIG9mIGFsbWFjZW5MaXN0XCIgdmFsdWU9XCJ7eyBhbG1hY2VuLmlkIH19XCI+e3thbG1hY2VuLmRlc2NyaXBjaW9ufX08L29wdGlvbj5cbiAgICAgICAgPC9zZWxlY3Q+XG4gICAgICA8L2Rpdj5cblxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8IS0tXG4gICAgICA8ZGl2IGlkPVwidGFibGUtd3JhcHBlclwiPlxuICAgICAgPGRpdiBpZD1cInRhYmxlLXNjcm9sbFwiPi0tPlxuICA8IS0tIG5ldyB0YWJsZVxuICAgICAgIDxwLXRhYmxlICNkdCBbY29sdW1uc109XCJjb2xzRERcIiBbdmFsdWVdPVwibGlzdEREXCIgW3Njcm9sbGFibGVdPVwidHJ1ZVwiIFxuICAgICAgIFtzdHlsZV09XCJ7d2lkdGg6ICcxMDAlJ30gXCIgW3Njcm9sbEhlaWdodF09XCJtYXhIICsgJ3B4J1wiIFxuICAgICAgIFtyZXNpemFibGVDb2x1bW5zXT1cInRydWVcIiBbKHNlbGVjdGlvbildPVwic2VsZWN0ZWRYTUxcIiAob25Sb3dTZWxlY3QpPVwib25Sb3dTZWxlY3QoJGV2ZW50KVwiIGRhdGFLZXk9XCJ1dWlkXCI+XG5cbiAgICAgICBcbiAgICAgIC0tPlxuXG4gIDxwLXRhYmxlIFt2YWx1ZV09XCJhcnRpY3Vsb3NMaXN0XCIgW3Njcm9sbGFibGVdPVwidHJ1ZVwiICNkdCBzY3JvbGxIZWlnaHQ9XCI0MDBweFwiIFtyZXNwb25zaXZlXT1cInRydWVcIlxuICAgIHNlbGVjdGlvbk1vZGU9XCJzaW5nbGVcIiAob25Sb3dTZWxlY3QpPVwiZmlsYVNlbGVjY2lvbmFkYSgkZXZlbnQpXCI+XG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxuICAgICAgPHRyPlxuICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDogODBweFwiIHRyYW5zbGF0ZT5Dw7NkaWdvIFViaWNhY2lvbjwvdGg+XG4gICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOiA3MHB4XCIgdHJhbnNsYXRlPkV4aXN0ZW5jaWE8L3RoPlxuICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDogNDBweFwiIHRyYW5zbGF0ZT5VbmlkYWQ8L3RoPlxuICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDogNTBweFwiICpuZ0lmPVwibWFuZWphVW5pZGFkU2VjdW5kYXJpYVwiIHRyYW5zbGF0ZT5leGlzdGVuY2lhU2VjdW5kYXJpYTwvdGg+XG4gICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOiA0MHB4XCIgKm5nSWY9XCJtYW5lamFVbmlkYWRTZWN1bmRhcmlhXCIgdHJhbnNsYXRlPlVuaWRhZDwvdGg+XG4gICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOiA4MHB4XCIgdHJhbnNsYXRlPkPDs2RpZ288L3RoPlxuICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDogMTIwcHhcIiB0cmFuc2xhdGU+RGVzY3JpcGNpb248L3RoPlxuICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDogNDBweFwiIHRyYW5zbGF0ZT48L3RoPlxuICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDogODBweFwiICpuZ0lmPVwiY29uZmlndXJhY2lvbi50aXBvUHJlY2lvICE9PSAnY29zdG8nIFwiIHRyYW5zbGF0ZT5QcmVjaW88L3RoPlxuICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDogODBweFwiICpuZ0lmPVwiY29uZmlndXJhY2lvbi50aXBvUHJlY2lvICE9PSAnY29zdG8nIFwiIHRyYW5zbGF0ZT5QcmVjaW8gMjwvdGg+XG4gICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOiA4MHB4XCIgKm5nSWY9XCJjb25maWd1cmFjaW9uLnRpcG9QcmVjaW8gIT09ICdjb3N0bycgXCIgdHJhbnNsYXRlPlByZWNpbyAzPC90aD5cbiAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDgwcHhcIiAqbmdJZj1cImNvbmZpZ3VyYWNpb24udGlwb1ByZWNpbyAhPT0gJ2Nvc3RvJyBcIiB0cmFuc2xhdGU+UHJlY2lvIDQ8L3RoPlxuICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDogODBweFwiICpuZ0lmPVwiY29uZmlndXJhY2lvbi50aXBvUHJlY2lvICE9PSAnY29zdG8nIFwiIHRyYW5zbGF0ZT5QcmVjaW8gNTwvdGg+XG4gICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOiA0MHB4XCIgKm5nSWY9XCJjb25maWd1cmFjaW9uLnRpcG9QcmVjaW8gPT09ICdjb3N0bycgXCIgdHJhbnNsYXRlPk1vdmltaWVudG8uY29zdG88L3RoPlxuICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDogNDBweFwiIHRyYW5zbGF0ZT5FeGlzdGVuY2lhIHBvciBVbmlkYWQ8L3RoPlxuICAgICAgICA8dGggKm5nRm9yPVwibGV0IGl0ZW0gb2YgY2xhc2lmaWNhZG9yTGlzdFwiIHN0eWxlPVwid2lkdGg6IDgwcHhcIiB0cmFuc2xhdGU+e3tpdGVtLmRlc2NyaXBjaW9ufX08L3RoPlxuICAgICAgPC90cj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCIgbGV0LXJvd0RhdGEgbGV0LXJvd0luZGV4PVwicm93SW5kZXhcIj5cbiAgICAgIDx0ciBbcFNlbGVjdGFibGVSb3ddPVwicm93RGF0YVwiPlxuICAgICAgICA8dGQgc3R5bGU9XCJ3aWR0aDogODBweDtcIiAqbmdJZj1cIiFyb3dEYXRhLnViaWNhY2lvbkNvZGlnb1wiIHRyYW5zbGF0ZT5Nb3ZpbWllbnRvLk5vQXNpZ25hZG88L3RkPlxuICAgICAgICA8dGQgc3R5bGU9XCJ3aWR0aDogODBweDtcIiAqbmdJZj1cInJvd0RhdGEudWJpY2FjaW9uQ29kaWdvXCI+e3tyb3dEYXRhLnViaWNhY2lvbkNvZGlnb319PC90ZD5cbiAgICAgICAgPHRkIHN0eWxlPVwid2lkdGg6IDcwcHg7XCI+e3tyb3dEYXRhLmV4aXN0ZW5jaWF9fTwvdGQ+XG4gICAgICAgIDx0ZCBzdHlsZT1cIndpZHRoOiA0MHB4O1wiPnt7cm93RGF0YS51bmlkYWRDb2RpZ299fTwvdGQ+XG5cbiAgICAgICAgPHRkIHN0eWxlPVwid2lkdGg6IDUwcHg7XCIgKm5nSWY9XCJtYW5lamFVbmlkYWRTZWN1bmRhcmlhXCI+e3tyb3dEYXRhLmV4aXN0ZW5jaWFTZWN1bmRhcmlhfX08L3RkPlxuICAgICAgICA8dGQgc3R5bGU9XCJ3aWR0aDogNDBweDtcIiAqbmdJZj1cIm1hbmVqYVVuaWRhZFNlY3VuZGFyaWFcIj57e3Jvd0RhdGEudW5pZGFkU2VjdW5kYXJpYUNvZGlnb319PC90ZD5cblxuICAgICAgICA8dGQgc3R5bGU9XCJ3aWR0aDogODBweDtcIj57e3Jvd0RhdGEuYXJ0aWN1bG8uY29kaWdvfX08L3RkPlxuICAgICAgICA8dGQgc3R5bGU9XCJ3aWR0aDogMTIwcHg7XCI+e3tyb3dEYXRhLmFydGljdWxvLmRlc2NyaXBjaW9ufX08L3RkPlxuICAgICAgICA8dGQgc3R5bGU9XCJ3aWR0aDogNDBweDtcIj5cbiAgICAgICAgICA8YnV0dG9uIHBCdXR0b24gdHlwZT1cImJ1dHRvblwiIGljb249XCJwaSBwaS1leWVcIiBjbGFzcz1cInVpLWJ1dHRvbi1yYWlzZWQgdWktYnV0dG9uLXByaW1hcnlcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2hvd0luZm9ybWFjaW9uKHJvd0RhdGEpXCI+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCBzdHlsZT1cIndpZHRoOiA4MHB4O1wiICpuZ0lmPVwiY29uZmlndXJhY2lvbi50aXBvUHJlY2lvICE9PSAnY29zdG8nXCI+e3tyb3dEYXRhLnByZWNpb0NvbkltcHVlc3RvcyB8IGN1cnJlbmN5IH19XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCBzdHlsZT1cIndpZHRoOiA4MHB4O1wiICpuZ0lmPVwiY29uZmlndXJhY2lvbi50aXBvUHJlY2lvICE9PSAnY29zdG8nXCI+e3tyb3dEYXRhLnByZWNpbzJDb25JbXB1ZXN0b3MgfCBjdXJyZW5jeVxuICAgICAgICAgIH19PC90ZD5cbiAgICAgICAgPHRkIHN0eWxlPVwid2lkdGg6IDgwcHg7XCIgKm5nSWY9XCJjb25maWd1cmFjaW9uLnRpcG9QcmVjaW8gIT09ICdjb3N0bydcIj57e3Jvd0RhdGEucHJlY2lvM0NvbkltcHVlc3RvcyB8IGN1cnJlbmN5XG4gICAgICAgICAgfX08L3RkPlxuICAgICAgICA8dGQgc3R5bGU9XCJ3aWR0aDogODBweDtcIiAqbmdJZj1cImNvbmZpZ3VyYWNpb24udGlwb1ByZWNpbyAhPT0gJ2Nvc3RvJ1wiPnt7cm93RGF0YS5wcmVjaW80Q29uSW1wdWVzdG9zIHwgY3VycmVuY3lcbiAgICAgICAgICB9fTwvdGQ+XG4gICAgICAgIDx0ZCBzdHlsZT1cIndpZHRoOiA4MHB4O1wiICpuZ0lmPVwiY29uZmlndXJhY2lvbi50aXBvUHJlY2lvICE9PSAnY29zdG8nXCI+e3tyb3dEYXRhLnByZWNpbzVDb25JbXB1ZXN0b3MgfCBjdXJyZW5jeVxuICAgICAgICAgIH19PC90ZD5cbiAgICAgICAgPHRkIHN0eWxlPVwid2lkdGg6IDQwcHg7XCIgKm5nSWY9XCJjb25maWd1cmFjaW9uLnRpcG9QcmVjaW8gPT09ICdjb3N0bycgXCI+e3tyb3dEYXRhLnByZWNpbyB8IGN1cnJlbmN5IH19PC90ZD5cbiAgICAgICAgPHRkIHN0eWxlPVwid2lkdGg6IDQwcHg7XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIHJvd0RhdGEuZXhpc3RlbmNpYVVuaWRhZGVzXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTRcIj48bGFiZWwgZm9yPVwiXCI+e3tpdGVtLnVuaWRhZF9jb2RpZ299fTwvbGFiZWw+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTRcIj48bGFiZWwgZm9yPVwiXCI+e3tpdGVtLnVuaWRhZF9leGlzdGVuY2lhIHwgbnVtYmVyIDogJzEuMi0yJ319PC9sYWJlbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RkPlxuICAgICAgICA8IS0tIDx0ZCBzdHlsZT1cIndpZHRoOiA0MHB4O1wiPjwvdGQ+ICAgLS0+XG4gICAgICAgIDx0ZCAqbmdGb3I9XCJsZXQgaXRlbURhdGEgb2Ygcm93RGF0YS5hcnRpY3Vsb0NsYXNpZmljYWRvckxpc3RcIiBzdHlsZT1cIndpZHRoOiA4MHB4O1wiPnt7aXRlbURhdGEudmFsb3J9fTwvdGQ+XG4gICAgICA8L3RyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvcC10YWJsZT5cblxuICA8IS0tIC9uZXcgdGFibGUtLT5cbiAgPCEtLSBcbiAgICAgIDxwLXRhYmxlIFsodmFsdWUpXT1cImFydGljdWxvc0xpc3RcIiByZXNwb25zaXZlPVwidHJ1ZVwiIFxuICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbk1vZGU9XCJtdWx0aXBsZVwiIChvblJvd1NlbGVjdCk9XCJmaWxhU2VsZWNjaW9uYWRhKCRldmVudClcIiAgW3Njcm9sbGFibGVdPVwidHJ1ZVwiIHNjcm9sbEhlaWdodD1cIjM1MHB4XCIgPlxuXG4gICAgICAgIDxwLWNvbHVtbiAgaGVhZGVyPVwie3sgJ0NvZGlnbyB1YmljYWNpb24nLnRvU3RyaW5nKCkgfCB0cmFuc2xhdGV9fVwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtZGF0bz1cInJvd0RhdGFcIiBwVGVtcGxhdGU9XCJib2R5XCI+XG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwiXCIgKm5nSWY9XCIhZGF0by51YmljYWNpb25Db2RpZ29cIiAgdHJhbnNsYXRlPiBNb3ZpbWllbnRvLk5vQXNpZ25hZG8gPC9sYWJlbD5cbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJcIiAqbmdJZj1cImRhdG8udWJpY2FjaW9uQ29kaWdvXCIgPiB7eyBkYXRvLnViaWNhY2lvbkNvZGlnbyB9fTwvbGFiZWw+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9wLWNvbHVtbj5cbiAgICAgICAgPHAtY29sdW1uIGZpZWxkPVwidWJpY2FjaW9uQ29kaWdvXCIgaGVhZGVyPVwie3sgJ0Rlc2NyaXBjaW9uIHViaWNhY2lvbicudG9TdHJpbmcoKSB8IHRyYW5zbGF0ZX19XCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1kYXRvPVwicm93RGF0YVwiIHBUZW1wbGF0ZT1cImJvZHlcIj5cbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJcIiAqbmdJZj1cIiFkYXRvLnViaWNhY2lvbkNvZGlnb1wiICB0cmFuc2xhdGU+IE1vdmltaWVudG8uTm9Bc2lnbmFkbyA8L2xhYmVsPlxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cIlwiICpuZ0lmPVwiZGF0by51YmljYWNpb25Db2RpZ29cIiA+IHt7IGRhdG8udWJpY2FjaW9uQ29kaWdvIH19PC9sYWJlbD5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L3AtY29sdW1uPlxuXG4gICAgICAgIDxwLWNvbHVtbiBmaWVsZD1cImV4aXN0ZW5jaWFcIiBoZWFkZXI9XCJ7eydFeGlzdGVuY2lhJyB8IHRyYW5zbGF0ZX19XCI+PC9wLWNvbHVtbj5cbiAgICAgICAgPHAtY29sdW1uIGZpZWxkPVwidW5pZGFkQ29kaWdvXCIgaGVhZGVyPVwie3snVW5pZGFkJyB8IHRyYW5zbGF0ZX19XCI+PC9wLWNvbHVtbj5cbiAgICAgICAgPHAtY29sdW1uIGZpZWxkPVwidW5pZGFkRGVzY3JpcGNpb25cIiBoZWFkZXI9XCJ7eydEZXNjcmlwY2lvbiB1bmlkYWQnIHwgdHJhbnNsYXRlfX1cIj48L3AtY29sdW1uPlxuXG4gICAgICAgIDxwLWNvbHVtbiBmaWVsZD1cImV4aXN0ZW5jaWFTZWN1bmRhcmlhXCIgaGVhZGVyPVwie3snZXhpc3RlbmNpYVNlY3VuZGFyaWEnIHwgdHJhbnNsYXRlfX1cIiAqbmdJZj1cIm1hbmVqYVVuaWRhZFNlY3VuZGFyaWFcIj48L3AtY29sdW1uPlxuICAgICAgICA8cC1jb2x1bW4gZmllbGQ9XCJ1bmlkYWRTZWN1bmRhcmlhQ29kaWdvXCIgaGVhZGVyPVwie3snVW5pZGFkJyB8IHRyYW5zbGF0ZX19XCIgKm5nSWY9XCJtYW5lamFVbmlkYWRTZWN1bmRhcmlhXCI+PC9wLWNvbHVtbj5cbiAgICAgICAgXG5cbiAgICAgICAgPHAtY29sdW1uICpuZ0lmPVwiY29uZmlndXJhY2lvbi50aXBvUHJlY2lvICE9PSAnY29zdG8nIFwiICBoZWFkZXI9XCJ7eydNb3ZpbWllbnRvLm1vdmltaWVudG9EZXRhbGxlLnByZWNpbycgfCB0cmFuc2xhdGV9fVwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtZGF0bz1cInJvd0RhdGFcIiBwVGVtcGxhdGU9XCJib2R5XCI+XG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwiXCI+e3sgZGF0by5wcmVjaW9Db25JbXB1ZXN0b3MgfCBjdXJyZW5jeSB9fTwvbGFiZWw+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9wLWNvbHVtbj5cbiAgICAgICAgPHAtY29sdW1uICpuZ0lmPVwiY29uZmlndXJhY2lvbi50aXBvUHJlY2lvID09PSAnY29zdG8nIFwiIGhlYWRlcj1cInt7J01vdmltaWVudG8uY29zdG8nIHwgdHJhbnNsYXRlIH19XCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1kYXRvPVwicm93RGF0YVwiIHBUZW1wbGF0ZT1cImJvZHlcIj5cbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJcIj57eyBkYXRvLnByZWNpbyB8IGN1cnJlbmN5IH19PC9sYWJlbD5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L3AtY29sdW1uPlxuXG5cbiAgICAgICAgPHAtY29sdW1uIGZpZWxkPVwiYXJ0aWN1bG8uY29kaWdvXCIgaGVhZGVyPVwie3snQ29kaWdvIGFydGljdWxvJyB8IHRyYW5zbGF0ZX19XCI+PC9wLWNvbHVtbj5cbiAgICAgICAgPHAtY29sdW1uIGZpZWxkPVwiYXJ0aWN1bG8uZGVzY3JpcGNpb25cIiBoZWFkZXI9XCJ7eydEZXNjcmlwY2lvbicgfCB0cmFuc2xhdGV9fVwiPjwvcC1jb2x1bW4+XG5cblxuXG4gICAgICAgIDxwLWNvbHVtbiAgaGVhZGVyPVwie3snRXhpc3RlbmNpYVBvclVuaWRhZCcgfCB0cmFuc2xhdGUgfX1cIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWRhdG89XCJyb3dEYXRhXCIgcFRlbXBsYXRlPVwiYm9keVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGRhdG8uZXhpc3RlbmNpYVVuaWRhZGVzXCIgPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTRcIj48bGFiZWwgZm9yPVwiXCI+e3tpdGVtLnVuaWRhZF9jb2RpZ299fTwvbGFiZWw+PC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctNFwiPjxsYWJlbCBmb3I9XCJcIj57e2l0ZW0udW5pZGFkX2V4aXN0ZW5jaWEgfCBudW1iZXIgOiAnMS4yLTInfX08L2xhYmVsPlxuICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgXG4gICAgICAgICAgICA8L2Rpdj4gIFxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvcC1jb2x1bW4+XG4gICAgICAgIFxuICAgICAgPC9wLXRhYmxlPlxuICAgICAgLS0+XG4gIDxwLXBhZ2luYXRvciBbcm93c109XCJwYWdlLnJvd3NcIiBbdG90YWxSZWNvcmRzXT1cInBhZ2UudG90YWxcIiBbcGFnZUxpbmtTaXplXT1cIjVcIiAob25QYWdlQ2hhbmdlKT1cInBhZ2luYSgkZXZlbnQpXCJcbiAgICBbcm93c1BlclBhZ2VPcHRpb25zXT1cIlsxMCwyNSw1MCwxMDAsNTAwXVwiPjwvcC1wYWdpbmF0b3I+XG4gIDwhLS0gIFxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIC0tPlxuPC9wLWRpYWxvZz5cbjwhLS1cbiAgPC9kaXY+IFxuICAgICAgLS0+XG48IS0tdGVybWluYSBzZWxlY2Npb24gZGUgYXJ0aWN1bG9zLS0+XG48IS0tc2VsZWNjaW9uYSB1YmljYWNpb24gLS0+XG48bGliLXNlbGVjY2lvbi1hcnRpY3Vsby1pbmZvcm1hY2lvbiBbc2hvd01vZGFsXT1cInNob3dNb2RhbEluZm9ybWFjaW9uXCIgW2FydGljdWxvXT1cImFydGljdWxvU2VsZWN0ZWRcIlxuICAoZXZlbnRTZWxlY3Rpb24pPVwib25FdmVudEluZm9ybWFjaW9uKCRldmVudClcIiAqbmdJZj1cInNob3dNb2RhbEluZm9ybWFjaW9uXCI+XG48L2xpYi1zZWxlY2Npb24tYXJ0aWN1bG8taW5mb3JtYWNpb24+Il19
|
|
@@ -1,19 +1,17 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { HttpClient } from '@angular/common/http';
|
|
3
|
+
import { CrudService } from '../../services/crud.service';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "
|
|
5
|
-
export class StockService {
|
|
6
|
-
constructor(
|
|
7
|
-
|
|
8
|
-
this.
|
|
9
|
-
}
|
|
10
|
-
getAll(params) {
|
|
11
|
-
return this.api.get(this.endpoint, params);
|
|
5
|
+
import * as i1 from "@angular/common/http";
|
|
6
|
+
export class StockService extends CrudService {
|
|
7
|
+
constructor(httpClient) {
|
|
8
|
+
super(httpClient, 'stock');
|
|
9
|
+
this.httpClient = httpClient;
|
|
12
10
|
}
|
|
13
11
|
obtenerExistenciasArticulosDescripcion(parametros, params) {
|
|
14
|
-
const url =
|
|
12
|
+
const url = this.getBaseUrl() + '/stock/obtenerExistenciasArticulos';
|
|
15
13
|
let promesa = new Promise((resolve, reject) => {
|
|
16
|
-
this.
|
|
14
|
+
this.httpClient.post(url + this.serializeParams(params), parametros, this.buildAuth()).subscribe((data) => {
|
|
17
15
|
resolve(data);
|
|
18
16
|
}, (err) => {
|
|
19
17
|
reject(err);
|
|
@@ -22,12 +20,12 @@ export class StockService {
|
|
|
22
20
|
return promesa;
|
|
23
21
|
}
|
|
24
22
|
}
|
|
25
|
-
/** @nocollapse */ StockService.ɵfac = function StockService_Factory(t) { return new (t || StockService)(i0.ɵɵinject(i1.
|
|
23
|
+
/** @nocollapse */ StockService.ɵfac = function StockService_Factory(t) { return new (t || StockService)(i0.ɵɵinject(i1.HttpClient)); };
|
|
26
24
|
/** @nocollapse */ StockService.ɵprov = i0.ɵɵdefineInjectable({ token: StockService, factory: StockService.ɵfac, providedIn: 'root' });
|
|
27
|
-
|
|
25
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(StockService, [{
|
|
28
26
|
type: Injectable,
|
|
29
27
|
args: [{
|
|
30
28
|
providedIn: 'root'
|
|
31
29
|
}]
|
|
32
|
-
}], function () { return [{ type: i1.
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
}], function () { return [{ type: i1.HttpClient }]; }, null); })();
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2suc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VycC1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY2Npb25hLWFydGljdWxvL3N0b2NrLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7QUFNMUQsTUFBTSxPQUFPLFlBQWEsU0FBUyxXQUFXO0lBRzVDLFlBQXFCLFVBQXNCO1FBQ3pDLEtBQUssQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFEUixlQUFVLEdBQVYsVUFBVSxDQUFZO0lBRTNDLENBQUM7SUFHRCxzQ0FBc0MsQ0FBQyxVQUFVLEVBQUUsTUFBTTtRQUV2RCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsb0NBQW9DLENBQUM7UUFDckUsSUFBSSxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUcsTUFBTSxFQUFFLEVBQUU7WUFDN0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLEVBQUcsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBRSxDQUFDLFNBQVMsQ0FDL0YsQ0FBQyxJQUFTLEVBQUUsRUFBRTtnQkFDUixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEIsQ0FBQyxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQ1YsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2xCLENBQUMsQ0FDSixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDOzsyRkFyQlUsWUFBWTt1RUFBWixZQUFZLFdBQVosWUFBWSxtQkFGWCxNQUFNO3VGQUVQLFlBQVk7Y0FIeEIsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBDcnVkU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NydWQuc2VydmljZSc7XG5cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU3RvY2tTZXJ2aWNlIGV4dGVuZHMgIENydWRTZXJ2aWNlIHtcblxuXG4gIGNvbnN0cnVjdG9yKCBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQpIHtcbiAgICBzdXBlcihodHRwQ2xpZW50LCAnc3RvY2snKTtcbiAgfVxuXG5cbiAgb2J0ZW5lckV4aXN0ZW5jaWFzQXJ0aWN1bG9zRGVzY3JpcGNpb24ocGFyYW1ldHJvcywgcGFyYW1zKSB7XG5cbiAgICBjb25zdCB1cmwgPSB0aGlzLmdldEJhc2VVcmwoKSArICcvc3RvY2svb2J0ZW5lckV4aXN0ZW5jaWFzQXJ0aWN1bG9zJztcbiAgICBsZXQgcHJvbWVzYSA9IG5ldyBQcm9taXNlKChyZXNvbHZlICwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLmh0dHBDbGllbnQucG9zdCggdXJsICsgdGhpcy5zZXJpYWxpemVQYXJhbXMocGFyYW1zKSwgIHBhcmFtZXRyb3MsIHRoaXMuYnVpbGRBdXRoKCkgKS5zdWJzY3JpYmUoXG4gICAgICAgICAgKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHJlc29sdmUoZGF0YSk7XG4gICAgICAgICAgfSwgKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgICAgfVxuICAgICAgKTtcbiAgICB9KTtcbiAgICByZXR1cm4gcHJvbWVzYTtcbiAgfVxuXG59XG4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export class SerieDocumento {
|
|
2
2
|
constructor() { }
|
|
3
3
|
}
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VyaWVEb2N1bWVudG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcnAtY29yZS9zcmMvbGliL2NvbXBvbmVudHMvc2VyaWVEb2N1bWVudG8vbW9kZWxzL1NlcmllRG9jdW1lbnRvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBTyxjQUFjO0lBNEJ2QixnQkFBZ0IsQ0FBQztDQUNwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENsYXZlTW92aW1pZW50byB9IGZyb20gXCIuLi8uLi9jbGF2ZU1vdmltaWVudG8vbW9kZWxzL0NsYXZlTW92aW1pZW50b1wiO1xuXG5cbmV4cG9ydCBjbGFzcyBTZXJpZURvY3VtZW50byB7XG4gICAgaWQgICAgICAgICAgICAgICA6IG51bWJlcjtcbiAgICB2ZXJzaW9uICAgICAgICAgIDogbnVtYmVyO1xuICAgIGNvZGlnbyAgICAgICAgICAgOiBzdHJpbmc7XG4gICAgZGVzY3JpcGNpb24gICAgICA6IHN0cmluZztcbiAgICBmb2xpbyAgICAgICAgICAgIDogbnVtYmVyO1xuICAgIHNlcmllSW1wcmltaXIgICAgOiBzdHJpbmc7XG4gICAgZm9ybWF0b0RlZmF1bHQgICA6IHN0cmluZztcbiAgICBpbXByZXNvcmFEZWZhdWx0IDogc3RyaW5nO1xuICAgIGxpbmVhc1JlcG9ydGUgICAgOiBudW1iZXI7XG4gICAgcHJlY2lvRGVmYXVsdCAgICA6IG51bWJlcjtcbiAgICBlbXByZXNhQ29udGFibGUgIDogbnVtYmVyO1xuICAgIHRpcG9TZXJpZSAgICAgICAgOiBzdHJpbmc7XG4gICAgbnVtZXJvRGVDb3BpYXMgICA6IG51bWJlcjtcbiAgICBmb2xpb1RlbXBvcmFsICAgIDogYm9vbGVhbjtcbiAgICBwcmV2ZXJJbXByZXNpb24gIDogYm9vbGVhbjtcbiAgICBmb2xpb0F1dG9tYXRpY28gIDogYm9vbGVhbjtcbiAgICBhcGFydGFyTWVyY2FuY2lhIDogYm9vbGVhbjtcbiAgICBtb3N0cmFyUHJlY2lvc05ldG9zIDogYm9vbGVhbjtcbiAgICB2ZW50YU5lZ2FkYSAgICAgIDogYm9vbGVhbjtcbiAgICBkdXBsaWNhckZvbGlvICAgIDogYm9vbGVhbjtcbiAgICBlc3RhdHVzICAgICAgICAgICA6IGJvb2xlYW47XG4gICAgY2xhdmVNb3ZpbWllbnRvICAgOiBDbGF2ZU1vdmltaWVudG87XG5cbiAgICBmb3JtYXRvUmVwb3J0ZSAgICA6IGFueTtcbiAgICBub21icmVSZXBvcnRlICAgICA6c3RyaW5nO1xuXG5cbiAgICBjb25zdHJ1Y3RvcigpIHsgfVxufSJdfQ==
|
|
@@ -1,37 +1,26 @@
|
|
|
1
1
|
import { Injectable } from "@angular/core";
|
|
2
|
-
import {
|
|
2
|
+
import { HttpClient } from "@angular/common/http";
|
|
3
|
+
import { CrudService } from "../../../services/crud.service";
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "
|
|
5
|
-
export class SerieDocumentoService {
|
|
6
|
-
constructor(
|
|
7
|
-
|
|
8
|
-
this.
|
|
5
|
+
import * as i1 from "@angular/common/http";
|
|
6
|
+
export class SerieDocumentoService extends CrudService {
|
|
7
|
+
constructor(httpClient) {
|
|
8
|
+
super(httpClient, 'serieDocumento');
|
|
9
|
+
this.httpClient = httpClient;
|
|
9
10
|
}
|
|
10
11
|
getTipos() {
|
|
11
|
-
return this.
|
|
12
|
+
return this.httpClient.get(this.getUrl('serieDocumento') + '/tipoSerie', this.buildAuth());
|
|
12
13
|
}
|
|
13
14
|
getReporte(params) {
|
|
14
|
-
return this.
|
|
15
|
-
}
|
|
16
|
-
get(id) {
|
|
17
|
-
return this.api.get(`${this.endpoint}/${id}`);
|
|
18
|
-
}
|
|
19
|
-
save(obj) {
|
|
20
|
-
return this.api.post(this.endpoint, obj);
|
|
21
|
-
}
|
|
22
|
-
update(obj) {
|
|
23
|
-
return this.api.put(this.endpoint, obj.id, obj);
|
|
24
|
-
}
|
|
25
|
-
delete(id) {
|
|
26
|
-
return this.api.delete(this.endpoint, id);
|
|
15
|
+
return this.httpClient.get(this.getUrl('serieDocumento') + '/descargaFormatoReporte' + this.serializeParams(params), this.buildAuth());
|
|
27
16
|
}
|
|
28
17
|
}
|
|
29
|
-
/** @nocollapse */ SerieDocumentoService.ɵfac = function SerieDocumentoService_Factory(t) { return new (t || SerieDocumentoService)(i0.ɵɵinject(i1.
|
|
18
|
+
/** @nocollapse */ SerieDocumentoService.ɵfac = function SerieDocumentoService_Factory(t) { return new (t || SerieDocumentoService)(i0.ɵɵinject(i1.HttpClient)); };
|
|
30
19
|
/** @nocollapse */ SerieDocumentoService.ɵprov = i0.ɵɵdefineInjectable({ token: SerieDocumentoService, factory: SerieDocumentoService.ɵfac, providedIn: 'root' });
|
|
31
|
-
|
|
20
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SerieDocumentoService, [{
|
|
32
21
|
type: Injectable,
|
|
33
22
|
args: [{
|
|
34
23
|
providedIn: 'root'
|
|
35
24
|
}]
|
|
36
|
-
}], function () { return [{ type: i1.
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
}], function () { return [{ type: i1.HttpClient }]; }, null); })();
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWVEb2N1bWVudG8uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VycC1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9zZXJpZURvY3VtZW50by9zZXJ2aWNlcy9zZXJpZURvY3VtZW50by5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7O0FBSzdELE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxXQUFXO0lBQzlDLFlBQW9CLFVBQXVCO1FBQ3ZDLEtBQUssQ0FBQyxVQUFVLEVBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQURuQixlQUFVLEdBQVYsVUFBVSxDQUFhO0lBRTNDLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBUSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEdBQUMsWUFBWSxFQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFDRCxVQUFVLENBQUMsTUFBTTtRQUNmLE9BQVEsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFDLHlCQUF5QixHQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLEVBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDckksQ0FBQzs7NkdBVkkscUJBQXFCO2dGQUFyQixxQkFBcUIsV0FBckIscUJBQXFCLG1CQUZsQixNQUFNO3VGQUVULHFCQUFxQjtjQUhqQyxVQUFVO2VBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcbmltcG9ydCB7IENydWRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL2NydWQuc2VydmljZVwiO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFNlcmllRG9jdW1lbnRvU2VydmljZSBleHRlbmRzIENydWRTZXJ2aWNle1xuICAgICAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHBDbGllbnQgOiBIdHRwQ2xpZW50KXtcbiAgICAgICAgICAgIHN1cGVyKGh0dHBDbGllbnQsJ3NlcmllRG9jdW1lbnRvJyk7XG4gICAgICAgIH1cblxuICAgICAgICBnZXRUaXBvcygpe1xuICAgICAgICAgIHJldHVybiAgdGhpcy5odHRwQ2xpZW50LmdldCh0aGlzLmdldFVybCgnc2VyaWVEb2N1bWVudG8nKSsnL3RpcG9TZXJpZScsdGhpcy5idWlsZEF1dGgoKSk7XG4gICAgICAgIH1cbiAgICAgICAgZ2V0UmVwb3J0ZShwYXJhbXMpe1xuICAgICAgICAgIHJldHVybiAgdGhpcy5odHRwQ2xpZW50LmdldCh0aGlzLmdldFVybCgnc2VyaWVEb2N1bWVudG8nKSsnL2Rlc2NhcmdhRm9ybWF0b1JlcG9ydGUnK3RoaXMuc2VyaWFsaXplUGFyYW1zKHBhcmFtcyksdGhpcy5idWlsZEF1dGgoKSk7XG4gICAgICAgIH1cbn0iXX0=
|
|
@@ -3,4 +3,4 @@ export class TipoContacto {
|
|
|
3
3
|
this.estatus = true;
|
|
4
4
|
}
|
|
5
5
|
}
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGlwb0NvbnRhY3RvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXJwLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3RpcG8tY29udGFjdG8vbW9kZWxzL1RpcG9Db250YWN0by50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sWUFBWTtJQUtyQjtRQUNJLElBQUksQ0FBQyxPQUFPLEdBQUUsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBUaXBvQ29udGFjdG97XG4gICAgIGlkICAgICAgICAgICA6IG51bWJlcjtcbiAgICAgZGVzY3JpcGNpb24gIDogU3RyaW5nO1xuICAgICBlc3RhdHVzICAgICAgOiBib29sZWFuO1xuICAgICB2ZXJzaW9uICAgICAgOiBudW1iZXI7XG4gICAgY29uc3RydWN0b3IoKXtcbiAgICAgICAgdGhpcy5lc3RhdHVzPSB0cnVlO1xuICAgIH1cbn0iXX0=
|
|
@@ -1,34 +1,19 @@
|
|
|
1
|
+
import { CrudService } from "../../../services/crud.service";
|
|
2
|
+
import { HttpClient } from "@angular/common/http";
|
|
1
3
|
import { Injectable } from "@angular/core";
|
|
2
|
-
import { ApiService } from "../../../services/api.service";
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "
|
|
5
|
-
export class TipoContactoService {
|
|
6
|
-
constructor(
|
|
7
|
-
|
|
8
|
-
this.endpoint = 'tipoContacto';
|
|
9
|
-
}
|
|
10
|
-
getAll(params) {
|
|
11
|
-
return this.api.get(this.endpoint, params);
|
|
12
|
-
}
|
|
13
|
-
get(id) {
|
|
14
|
-
return this.api.get(`${this.endpoint}/${id}`);
|
|
15
|
-
}
|
|
16
|
-
save(obj) {
|
|
17
|
-
return this.api.post(this.endpoint, obj);
|
|
18
|
-
}
|
|
19
|
-
update(obj) {
|
|
20
|
-
return this.api.put(this.endpoint, obj.id, obj);
|
|
21
|
-
}
|
|
22
|
-
delete(id) {
|
|
23
|
-
return this.api.delete(this.endpoint, id);
|
|
5
|
+
import * as i1 from "@angular/common/http";
|
|
6
|
+
export class TipoContactoService extends CrudService {
|
|
7
|
+
constructor(http) {
|
|
8
|
+
super(http, '/tipoContacto');
|
|
24
9
|
}
|
|
25
10
|
}
|
|
26
|
-
/** @nocollapse */ TipoContactoService.ɵfac = function TipoContactoService_Factory(t) { return new (t || TipoContactoService)(i0.ɵɵinject(i1.
|
|
11
|
+
/** @nocollapse */ TipoContactoService.ɵfac = function TipoContactoService_Factory(t) { return new (t || TipoContactoService)(i0.ɵɵinject(i1.HttpClient)); };
|
|
27
12
|
/** @nocollapse */ TipoContactoService.ɵprov = i0.ɵɵdefineInjectable({ token: TipoContactoService, factory: TipoContactoService.ɵfac, providedIn: 'root' });
|
|
28
|
-
|
|
13
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TipoContactoService, [{
|
|
29
14
|
type: Injectable,
|
|
30
15
|
args: [{
|
|
31
16
|
providedIn: 'root'
|
|
32
17
|
}]
|
|
33
|
-
}], function () { return [{ type: i1.
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
}], function () { return [{ type: i1.HttpClient }]; }, null); })();
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlwb0NvbnRhY3RvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcnAtY29yZS9zcmMvbGliL2NvbXBvbmVudHMvdGlwby1jb250YWN0by9zZXJ2aWNlcy90aXBvQ29udGFjdG8uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDN0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUszQyxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsV0FBVztJQUNoRCxZQUFhLElBQWdCO1FBQ3pCLEtBQUssQ0FBQyxJQUFJLEVBQUMsZUFBZSxDQUFDLENBQUM7SUFDaEMsQ0FBQzs7eUdBSFEsbUJBQW1COzhFQUFuQixtQkFBbUIsV0FBbkIsbUJBQW1CLG1CQUZoQixNQUFNO3VGQUVULG1CQUFtQjtjQUgvQixVQUFVO2VBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IENydWRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL2NydWQuc2VydmljZVwiO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbiAgfSlcbmV4cG9ydCBjbGFzcyBUaXBvQ29udGFjdG9TZXJ2aWNlIGV4dGVuZHMgQ3J1ZFNlcnZpY2V7XG4gICAgY29uc3RydWN0b3IoIGh0dHA6IEh0dHBDbGllbnQpe1xuICAgICAgICBzdXBlcihodHRwLCcvdGlwb0NvbnRhY3RvJyk7XG4gICAgfVxuICAgIFxufSJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export class Ubicacion {
|
|
2
2
|
constructor() { }
|
|
3
3
|
}
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVWJpY2FjaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXJwLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3ViaWNhY2lvbi9tb2RlbHMvVWJpY2FjaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxTQUFTO0lBZXBCLGdCQUFjLENBQUM7Q0FDaEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgVWJpY2FjaW9uIHtcbiAgaWQgICAgICAgIDogbnVtYmVyO1xuICB2ZXJzaW9uICAgOiBudW1iZXI7XG4gIGVzdGF0dXMgICA6IGJvb2xlYW47XG4gIGNvZGlnbyAgICA6IHN0cmluZztcbiAgbGFyZ28gICAgIDogbnVtYmVyO1xuICBhbmNobyAgICAgOiBudW1iZXI7XG4gIGFsdG8gICAgICA6IG51bWJlcjtcbiAgcGVzb01heGltbyAgOiBudW1iZXI7IFxuICBkZXNjcmlwY2lvbiA6IHN0cmluZztcbiAgbml2ZWwxICA6IHN0cmluZztcbiAgbml2ZWwyICA6IHN0cmluZztcbiAgbml2ZWwzICA6IHN0cmluZztcbiAgbml2ZWw0ICA6IHN0cmluZztcbiAgbml2ZWw1ICA6IHN0cmluZztcbiAgY29uc3RydWN0b3IoKXt9XG59Il19
|
|
@@ -1,34 +1,19 @@
|
|
|
1
1
|
import { Injectable } from "@angular/core";
|
|
2
|
-
import {
|
|
2
|
+
import { HttpClient } from "@angular/common/http";
|
|
3
|
+
import { CrudService } from "../../../services/crud.service";
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "
|
|
5
|
-
export class UbicacionService {
|
|
6
|
-
constructor(
|
|
7
|
-
|
|
8
|
-
this.endpoint = 'ubicacion';
|
|
9
|
-
}
|
|
10
|
-
getAll(params) {
|
|
11
|
-
return this.api.get(this.endpoint, params);
|
|
12
|
-
}
|
|
13
|
-
get(id) {
|
|
14
|
-
return this.api.get(`${this.endpoint}/${id}`);
|
|
15
|
-
}
|
|
16
|
-
save(obj) {
|
|
17
|
-
return this.api.post(this.endpoint, obj);
|
|
18
|
-
}
|
|
19
|
-
update(obj) {
|
|
20
|
-
return this.api.put(this.endpoint, obj.id, obj);
|
|
21
|
-
}
|
|
22
|
-
delete(id) {
|
|
23
|
-
return this.api.delete(this.endpoint, id);
|
|
5
|
+
import * as i1 from "@angular/common/http";
|
|
6
|
+
export class UbicacionService extends CrudService {
|
|
7
|
+
constructor(http) {
|
|
8
|
+
super(http, 'ubicacion');
|
|
24
9
|
}
|
|
25
10
|
}
|
|
26
|
-
/** @nocollapse */ UbicacionService.ɵfac = function UbicacionService_Factory(t) { return new (t || UbicacionService)(i0.ɵɵinject(i1.
|
|
11
|
+
/** @nocollapse */ UbicacionService.ɵfac = function UbicacionService_Factory(t) { return new (t || UbicacionService)(i0.ɵɵinject(i1.HttpClient)); };
|
|
27
12
|
/** @nocollapse */ UbicacionService.ɵprov = i0.ɵɵdefineInjectable({ token: UbicacionService, factory: UbicacionService.ɵfac, providedIn: 'root' });
|
|
28
|
-
|
|
13
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UbicacionService, [{
|
|
29
14
|
type: Injectable,
|
|
30
15
|
args: [{
|
|
31
16
|
providedIn: 'root'
|
|
32
17
|
}]
|
|
33
|
-
}], function () { return [{ type: i1.
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
}], function () { return [{ type: i1.HttpClient }]; }, null); })();
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWJpY2FjaW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcnAtY29yZS9zcmMvbGliL2NvbXBvbmVudHMvdWJpY2FjaW9uL3NlcnZpY2VzL3ViaWNhY2lvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7O0FBSTFELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxXQUFXO0lBQ2hELFlBQVksSUFBaUI7UUFDdkIsS0FBSyxDQUFDLElBQUksRUFBQyxXQUFXLENBQUMsQ0FBQztJQUM5QixDQUFDOzttR0FIVyxnQkFBZ0I7MkVBQWhCLGdCQUFnQixXQUFoQixnQkFBZ0IsbUJBRGhCLE1BQU07dUZBQ04sZ0JBQWdCO2NBRi9CLFVBQVU7ZUFBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xuaW1wb3J0IHsgQ3J1ZFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvY3J1ZC5zZXJ2aWNlXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pIGV4cG9ydCBjbGFzcyBVYmljYWNpb25TZXJ2aWNlIGV4dGVuZHMgQ3J1ZFNlcnZpY2V7XG4gICAgY29uc3RydWN0b3IoaHR0cCA6IEh0dHBDbGllbnQpe1xuICAgICAgICAgIHN1cGVyKGh0dHAsJ3ViaWNhY2lvbicpO1xuICAgIH1cbn0iXX0=
|
|
@@ -257,7 +257,7 @@ export class CclistaComponent {
|
|
|
257
257
|
i0.ɵɵstyleMap(i0.ɵɵpureFunction0(7, _c0));
|
|
258
258
|
i0.ɵɵproperty("value", ctx.cuentasContables ? ctx.cuentasContables : ctx.tempAccounts)("scrollable", true)("scrollHeight", ctx.maxH + "px")("resizableColumns", true);
|
|
259
259
|
} }, directives: [i2.DefaultValueAccessor, i3.InputText, i2.NgControlStatus, i2.NgModel, i4.TreeTable, i5.PrimeTemplate, i4.TreeTableToggler, i6.NgIf, i7.ButtonDirective], styles: [""] });
|
|
260
|
-
|
|
260
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CclistaComponent, [{
|
|
261
261
|
type: Component,
|
|
262
262
|
args: [{
|
|
263
263
|
selector: 'lib-cclista',
|
|
@@ -271,4 +271,4 @@ export class CclistaComponent {
|
|
|
271
271
|
}], evSelectedAccount: [{
|
|
272
272
|
type: Output
|
|
273
273
|
}] }); })();
|
|
274
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2NsaXN0YS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiL1VzZXJzL3VyaWVsbWFuemFub3J1aXovcHJvZ3JhbW1pbmcvYW5ndWxhci92cy1lcnAtcHJveWVjdC1saWJzL3Byb2plY3RzL2VycC1jb3JlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb250YWJpbGlkYWQvY29tcG9uZW50ZXMvY2NsaXN0YS9jY2xpc3RhLmNvbXBvbmVudC50cyIsImxpYi9jb250YWJpbGlkYWQvY29tcG9uZW50ZXMvY2NsaXN0YS9jY2xpc3RhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7Ozs7Ozs7Ozs7SUNHbkUsMEJBQ0k7SUFBQSw2QkFBMEI7SUFBQSwrQkFBZTtJQUFBLGlCQUFLO0lBQzlDLDZCQUEwQjtJQUFBLGdDQUFXO0lBQUEsaUJBQUs7SUFDMUMsNkJBQXlCO0lBQUEsMEJBQVU7SUFBQSxpQkFBSztJQUN4Qyw2QkFBeUI7SUFBQSxvQkFBSTtJQUFBLGlCQUFLO0lBQ2xDLDZCQUEwQjtJQUFBLHlCQUFRO0lBQUEsaUJBQUs7SUFDM0MsaUJBQUs7Ozs7SUFtQk8sa0NBQThMO0lBQWxHLHlRQUF1QztJQUFrRCxpQkFBUzs7OztJQUM5TCxrQ0FBK0w7SUFBbkcsMFFBQXVDO0lBQW1ELGlCQUFTOzs7SUFqQjNNLDBCQUNJO0lBQUEsNkJBQ0k7SUFBQSx5Q0FBNkQ7SUFDN0QsWUFDSjtJQUFBLGlCQUFLO0lBQ0wsNkJBQ0k7SUFBQSxZQUNKO0lBQUEsaUJBQUs7SUFDTCw4QkFDSTtJQUFBLFlBQ0o7SUFBQSxpQkFBSztJQUNMLDhCQUNJO0lBQUEsWUFDSjtJQUFBLGlCQUFLO0lBQ0wsK0JBQ0k7SUFBQSxnQ0FDSTtJQUFBLHdGQUFxTDtJQUNyTCx3RkFBc0w7SUFDMUwsaUJBQU07SUFDVixpQkFBSztJQUNULGlCQUFLOzs7OztJQWxCdUIsZUFBbUI7SUFBbkIsb0NBQW1CO0lBQ3ZDLGVBQ0o7SUFESSwwREFDSjtJQUVJLGVBQ0o7SUFESSx1REFDSjtJQUVJLGVBQ0o7SUFESSxzREFDSjtJQUVJLGVBQ0o7SUFESSxnREFDSjtJQUc0SSxlQUFnRDtJQUFoRCwyRUFBZ0Q7SUFDaEQsZUFBaUQ7SUFBakQsNEVBQWlEOzs7QUR0QjdNLE1BQU0sT0FBTyxnQkFBZ0I7SUFlM0IsWUFBb0Isc0JBQTZDO1FBQTdDLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBdUI7UUFQakUscUJBQWdCLEdBQVUsRUFBRSxDQUFDO1FBQzdCLFNBQUksR0FBRyxHQUFHLENBQUM7UUFDWCxVQUFLLEdBQVEsRUFBRSxDQUFDO1FBQ2hCLGlCQUFZLEdBQTBCLEVBQUUsQ0FBQztRQUt2QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQXVCLENBQUM7SUFDbkUsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxnQ0FBZ0MsRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFRCxnQ0FBZ0M7UUFDOUIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGdDQUFnQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUU7WUFDdkYsSUFBSSxNQUFNLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQztnQkFDL0IsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2FBQ3JCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUN2Qyx3QkFBd0I7WUFDeEIsSUFBSSxjQUFjLEdBQUcsR0FBRyxDQUFDO1lBQ3pCLE1BQU0sS0FBSyxHQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNqRSxNQUFNLEtBQUssR0FBVSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7WUFFakUsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDeEMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQyxNQUFNLEVBQUU7b0JBQ2pDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO3dCQUNyQyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7NEJBQzNDLE9BQU8sQ0FBQyxDQUFDO3lCQUNWO3dCQUNELElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTs0QkFDM0MsT0FBTyxDQUFDLENBQUMsQ0FBQzt5QkFDWDtxQkFDRjtvQkFDRCxPQUFPLENBQUMsQ0FBQztpQkFDVjtnQkFDRCxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRTtvQkFDL0IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7d0JBQ3JDLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTs0QkFDM0MsT0FBTyxDQUFDLENBQUM7eUJBQ1Y7d0JBQ0QsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFOzRCQUMzQyxPQUFPLENBQUMsQ0FBQyxDQUFDO3lCQUNYO3FCQUNGO29CQUNELE9BQU8sQ0FBQyxDQUFDLENBQUM7aUJBQ1g7Z0JBQ0QsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUU7b0JBQy9CLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO3dCQUNyQyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7NEJBQzNDLE9BQU8sQ0FBQyxDQUFDO3lCQUNWO3dCQUNELElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTs0QkFDM0MsT0FBTyxDQUFDLENBQUMsQ0FBQzt5QkFDWDtxQkFDRjtvQkFDRCxPQUFPLENBQUMsQ0FBQztpQkFDVjthQUNGO1lBQ0QsT0FBTyxDQUFDLENBQUM7UUFDWCxDQUFDLENBQUMsQ0FBQztRQUNILEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3RDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNyQjtTQUNGO1FBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDNUMsQ0FBQztJQUVELFFBQVEsQ0FBQyxPQUFZO1FBQ25CLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDbEMsd0JBQXdCO1lBQ3hCLElBQUksY0FBYyxHQUFHLEdBQUcsQ0FBQztZQUN6QixNQUFNLEtBQUssR0FBVSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDakUsTUFBTSxLQUFLLEdBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ2pFLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ3hDLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsTUFBTSxFQUFFO29CQUNqQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTt3QkFDckMsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFOzRCQUMzQyxPQUFPLENBQUMsQ0FBQzt5QkFDVjt3QkFDRCxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7NEJBQzNDLE9BQU8sQ0FBQyxDQUFDLENBQUM7eUJBQ1g7cUJBQ0Y7b0JBQ0QsT0FBTyxDQUFDLENBQUM7aUJBQ1Y7Z0JBQ0QsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUU7b0JBQy9CLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO3dCQUNyQyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7NEJBQzNDLE9BQU8sQ0FBQyxDQUFDO3lCQUNWO3dCQUNELElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTs0QkFDM0MsT0FBTyxDQUFDLENBQUMsQ0FBQzt5QkFDWDtxQkFDRjtvQkFDRCxPQUFPLENBQUMsQ0FBQyxDQUFDO2lCQUNYO2dCQUNELElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFO29CQUMvQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTt3QkFDckMsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFOzRCQUMzQyxPQUFPLENBQUMsQ0FBQzt5QkFDVjt3QkFDRCxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7NEJBQzNDLE9BQU8sQ0FBQyxDQUFDLENBQUM7eUJBQ1g7cUJBQ0Y7b0JBQ0QsT0FBTyxDQUFDLENBQUM7aUJBQ1Y7YUFDRjtZQUNELE9BQU8sQ0FBQyxDQUFDO1FBQ1gsQ0FBQyxDQUFDLENBQUM7UUFDSCxLQUFLLElBQUksSUFBSSxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUU7WUFDakMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNyQjtJQUNILENBQUM7SUFJRCxvQkFBb0IsQ0FBQyxPQUE0QjtRQUMvQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxjQUFjLENBQUMsR0FBUTtRQUNyQixJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7WUFDN0IsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDaEIsSUFBSSxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLEtBQUssSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNoQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ25CO1FBQ0QsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUlELGFBQWEsQ0FBQyxRQUFhO1FBQ3pCLElBQUksWUFBWSxHQUFVLEVBQUUsQ0FBQztRQUM3QixJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssRUFBRSxFQUFFO1lBQ3JCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1NBQzlCO2FBQU07WUFDTCxLQUFLLElBQUksT0FBTyxJQUFJLFFBQVEsRUFBRTtnQkFDNUIsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQUU7b0JBQ25MLFlBQVksR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDO3dCQUNqQyxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7d0JBQ2xCLFFBQVEsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7cUJBQy9DLENBQUMsQ0FBQztpQkFDSjtxQkFBTTtvQkFDTCxZQUFZLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO2lCQUMxRTthQUNGO1lBQ0QsT0FBTyxZQUFZLENBQUM7U0FDckI7SUFDSCxDQUFDOzttR0FqTFUsZ0JBQWdCO3dFQUFoQixnQkFBZ0I7UUNUN0IsZ0NBRUE7UUFGc0Ysd0lBQW1CLHFGQUFVLDBCQUFzQixJQUFoQztRQUF6RyxpQkFFQTtRQUFBLDhCQUNJO1FBQUEsc0NBQ0k7UUFBQSxrRkFDSTtRQVFKLGtGQUNJO1FBc0JSLGlCQUFjO1FBQ2xCLGlCQUFNOztRQXJDZ0YsbUNBQW1CO1FBR1gsZUFBMEI7UUFBMUIseUNBQTBCO1FBQXZHLHNGQUF3RCxvQkFBQSxpQ0FBQSwwQkFBQTs7a0RETTVELGdCQUFnQjtjQUw1QixTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLGFBQWE7Z0JBQ3ZCLFdBQVcsRUFBRSwwQkFBMEI7Z0JBQ3ZDLFNBQVMsRUFBRSxDQUFDLHlCQUF5QixDQUFDO2FBQ3ZDO3dFQUlDLFFBQVE7a0JBRFAsS0FBSztZQUdOLFdBQVc7a0JBRFYsS0FBSztZQUdOLGlCQUFpQjtrQkFEaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEN1ZW50YUNvbnRhYmxlTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbG9zL2N1ZW50YUNvbnRhYmxlLm1vZGVsJztcbmltcG9ydCB7IEN1ZW50YUNvbnRhYmxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2lvcy9jdWVudGFjb250YWJsZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWNjbGlzdGEnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2NsaXN0YS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NjbGlzdGEuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIENjbGlzdGFDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpXG4gIGlzU2hhcmVkOiBib29sZWFuO1xuICBASW5wdXQoKVxuICB0eXBlQWNjb3VudDogbnVtYmVyO1xuICBAT3V0cHV0KClcbiAgZXZTZWxlY3RlZEFjY291bnQ6IEV2ZW50RW1pdHRlcjxDdWVudGFDb250YWJsZU1vZGVsPjtcbiAgY3VlbnRhc0NvbnRhYmxlczogYW55W10gPSBbXTtcbiAgbWF4SCA9IDcyMDtcbiAgcXVlcnk6IGFueSA9IFwiXCI7XG4gIHRlbXBBY2NvdW50czogQ3VlbnRhQ29udGFibGVNb2RlbFtdID0gW107XG5cbiAgY3VlbnRhU2VsZWNjaW9uYWRhOiBDdWVudGFDb250YWJsZU1vZGVsO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2N1ZW50YUNvbnRhYmxlU2VydmljZTogQ3VlbnRhQ29udGFibGVTZXJ2aWNlKSB7XG4gICAgdGhpcy5ldlNlbGVjdGVkQWNjb3VudCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VlbnRhQ29udGFibGVNb2RlbD4oKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMubWF4SCA9IHdpbmRvdy5pbm5lckhlaWdodCAtIDMyMDtcbiAgICB0aGlzLm9idGVuZXJDdWVudGFzQ29udGFibGVzUmVjdXJzaXZvKCk7XG4gIH1cblxuICBvYnRlbmVyQ3VlbnRhc0NvbnRhYmxlc1JlY3Vyc2l2bygpIHtcbiAgICB0aGlzLl9jdWVudGFDb250YWJsZVNlcnZpY2Uub2J0aWVuZUN1ZW50YXNDb250YWJsZXNSZWN1cnNpdm8oKS5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB7XG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIHRoaXMuY3VlbnRhc0NvbnRhYmxlcyA9IHJlc3VsdDtcbiAgICAgICAgdGhpcy5zb3J0QWNjb3VudHMoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHNvcnRBY2NvdW50cygpIHtcbiAgICB0aGlzLmN1ZW50YXNDb250YWJsZXMuc29ydChmdW5jdGlvbiAoYSwgYikge1xuICAgICAgLy8gZ2V0IHN5bWJvbCBmb3Igc3RyaW5nXG4gICAgICBsZXQgY2hhcmFjdGVyQnJlYWsgPSAnLic7XG4gICAgICBjb25zdCBsaXN0QTogYW55W10gPSBhLmRhdGEuY3VlbnRhQ29udGFibGUuc3BsaXQoY2hhcmFjdGVyQnJlYWspO1xuICAgICAgY29uc3QgbGlzdEI6IGFueVtdID0gYi5kYXRhLmN1ZW50YUNvbnRhYmxlLnNwbGl0KGNoYXJhY3RlckJyZWFrKTtcblxuICAgICAgaWYgKGxpc3RBLmxlbmd0aCA+IDAgJiYgbGlzdEIubGVuZ3RoID4gMCkge1xuICAgICAgICBpZiAobGlzdEEubGVuZ3RoID09PSBsaXN0Qi5sZW5ndGgpIHtcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpc3RBLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAocGFyc2VJbnQobGlzdEFbaV0pID4gcGFyc2VJbnQobGlzdEJbaV0pKSB7XG4gICAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHBhcnNlSW50KGxpc3RBW2ldKSA8IHBhcnNlSW50KGxpc3RCW2ldKSkge1xuICAgICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsaXN0QS5sZW5ndGggPCBsaXN0Qi5sZW5ndGgpIHtcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpc3RBLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAocGFyc2VJbnQobGlzdEFbaV0pID4gcGFyc2VJbnQobGlzdEJbaV0pKSB7XG4gICAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHBhcnNlSW50KGxpc3RBW2ldKSA8IHBhcnNlSW50KGxpc3RCW2ldKSkge1xuICAgICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobGlzdEIubGVuZ3RoIDwgbGlzdEEubGVuZ3RoKSB7XG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaXN0Qi5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKHBhcnNlSW50KGxpc3RBW2ldKSA+IHBhcnNlSW50KGxpc3RCW2ldKSkge1xuICAgICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwYXJzZUludChsaXN0QVtpXSkgPCBwYXJzZUludChsaXN0QltpXSkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIDA7XG4gICAgfSk7XG4gICAgZm9yIChsZXQgaXRlbSBvZiB0aGlzLmN1ZW50YXNDb250YWJsZXMpIHtcbiAgICAgIGlmIChpdGVtLmNoaWxkcmVuKSB7XG4gICAgICAgIHRoaXMuc29ydEl0ZW0oaXRlbSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMudGVtcEFjY291bnRzID0gdGhpcy5jdWVudGFzQ29udGFibGVzO1xuICB9XG5cbiAgc29ydEl0ZW0oYWNjb3VudDogYW55KSB7XG4gICAgYWNjb3VudC5jaGlsZHJlbi5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICAvLyBnZXQgc3ltYm9sIGZvciBzdHJpbmdcbiAgICAgIGxldCBjaGFyYWN0ZXJCcmVhayA9ICcuJztcbiAgICAgIGNvbnN0IGxpc3RBOiBhbnlbXSA9IGEuZGF0YS5jdWVudGFDb250YWJsZS5zcGxpdChjaGFyYWN0ZXJCcmVhayk7XG4gICAgICBjb25zdCBsaXN0QjogYW55W10gPSBiLmRhdGEuY3VlbnRhQ29udGFibGUuc3BsaXQoY2hhcmFjdGVyQnJlYWspO1xuICAgICAgaWYgKGxpc3RBLmxlbmd0aCA+IDAgJiYgbGlzdEIubGVuZ3RoID4gMCkge1xuICAgICAgICBpZiAobGlzdEEubGVuZ3RoID09PSBsaXN0Qi5sZW5ndGgpIHtcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpc3RBLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAocGFyc2VJbnQobGlzdEFbaV0pID4gcGFyc2VJbnQobGlzdEJbaV0pKSB7XG4gICAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHBhcnNlSW50KGxpc3RBW2ldKSA8IHBhcnNlSW50KGxpc3RCW2ldKSkge1xuICAgICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsaXN0QS5sZW5ndGggPCBsaXN0Qi5sZW5ndGgpIHtcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpc3RBLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAocGFyc2VJbnQobGlzdEFbaV0pID4gcGFyc2VJbnQobGlzdEJbaV0pKSB7XG4gICAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHBhcnNlSW50KGxpc3RBW2ldKSA8IHBhcnNlSW50KGxpc3RCW2ldKSkge1xuICAgICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobGlzdEIubGVuZ3RoIDwgbGlzdEEubGVuZ3RoKSB7XG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaXN0Qi5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKHBhcnNlSW50KGxpc3RBW2ldKSA+IHBhcnNlSW50KGxpc3RCW2ldKSkge1xuICAgICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwYXJzZUludChsaXN0QVtpXSkgPCBwYXJzZUludChsaXN0QltpXSkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIDA7XG4gICAgfSk7XG4gICAgZm9yIChsZXQgaXRlbSBvZiBhY2NvdW50LmNoaWxkcmVuKSB7XG4gICAgICB0aGlzLnNvcnRJdGVtKGl0ZW0pO1xuICAgIH1cbiAgfVxuXG5cblxuICBzZWxlY3RDdWVudGFDb250YWJsZShhY2NvdW50OiBDdWVudGFDb250YWJsZU1vZGVsKSB7XG4gICAgdGhpcy5ldlNlbGVjdGVkQWNjb3VudC5lbWl0KGFjY291bnQpO1xuICB9XG5cbiAgZmlsdGVyQWNjb3VudHMoZXZ0OiBhbnkpIHtcbiAgICBpZiAoIWV2dCkge1xuICAgICAgY29uc3QgdGVtcCA9IHRoaXMucmVzZXRBY2NvdW50KCk7XG4gICAgICB0aGlzLmN1ZW50YXNDb250YWJsZXMgPSB0ZW1wO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmN1ZW50YXNDb250YWJsZXMgPSB0aGlzLmJyb3dzZUFjY291bnQodGhpcy50ZW1wQWNjb3VudHMpO1xuICB9XG5cbiAgcmVzZXRBY2NvdW50KCkge1xuICAgIHRoaXMucXVlcnkgPSAnJztcbiAgICBsZXQgYWNjb3VudHMgPSBbXTtcbiAgICBmb3IgKGxldCBjYyBvZiB0aGlzLnRlbXBBY2NvdW50cykge1xuICAgICAgYWNjb3VudHMucHVzaChjYyk7XG4gICAgfVxuICAgIHJldHVybiBhY2NvdW50cztcbiAgfVxuXG5cblxuICBicm93c2VBY2NvdW50KGFjY291bnRzOiBhbnkpIHtcbiAgICBsZXQgbGlzdEFjY291bnRzOiBhbnlbXSA9IFtdO1xuICAgIGlmICh0aGlzLnF1ZXJ5ID09PSAnJykge1xuICAgICAgY29uc3QgdGVtcCA9IHRoaXMucmVzZXRBY2NvdW50KCk7XG4gICAgICB0aGlzLmN1ZW50YXNDb250YWJsZXMgPSB0ZW1wO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGxldCBhY2NvdW50IG9mIGFjY291bnRzKSB7XG4gICAgICAgIGlmIChhY2NvdW50LmRhdGEuY3VlbnRhQ29udGFibGUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMucXVlcnkudG9Mb3dlckNhc2UoKSkgfHwgYWNjb3VudC5kYXRhLmRlc2NyaXBjaW9uLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0aGlzLnF1ZXJ5LnRvTG93ZXJDYXNlKCkpKSB7XG4gICAgICAgICAgbGlzdEFjY291bnRzID0gbGlzdEFjY291bnRzLmNvbmNhdCh7XG4gICAgICAgICAgICBkYXRhOiBhY2NvdW50LmRhdGEsXG4gICAgICAgICAgICBjaGlsZHJlbjogdGhpcy5icm93c2VBY2NvdW50KGFjY291bnQuY2hpbGRyZW4pXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbGlzdEFjY291bnRzID0gbGlzdEFjY291bnRzLmNvbmNhdCh0aGlzLmJyb3dzZUFjY291bnQoYWNjb3VudC5jaGlsZHJlbikpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbGlzdEFjY291bnRzO1xuICAgIH1cbiAgfVxuXG59XG4iLCI8aW5wdXQgdHlwZT1cInRleHRcIiBzdHlsZT1cIndpZHRoOiAxMDAlO1wiIHBJbnB1dFRleHQgcGxhY2Vob2xkZXI9XCJDdWVudGEgbyBkZXNjcmlwY2nDs25cIiBbKG5nTW9kZWwpXT1cInF1ZXJ5XCIgKGtleXVwKT1cImZpbHRlckFjY291bnRzKCRldmVudClcIj5cblxuPGRpdiBzdHlsZT1cInBhZGRpbmc6IDEwcHg7XCI+XG4gICAgPHAtdHJlZVRhYmxlIFt2YWx1ZV09XCJjdWVudGFzQ29udGFibGVzP2N1ZW50YXNDb250YWJsZXM6dGVtcEFjY291bnRzXCIgW3Njcm9sbGFibGVdPVwidHJ1ZVwiIFtzdHlsZV09XCJ7d2lkdGg6ICcxMDAlJ30gXCIgW3Njcm9sbEhlaWdodF09XCJtYXhIICsgJ3B4J1wiIFtyZXNpemFibGVDb2x1bW5zXT1cInRydWVcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxuICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOiAxNTBweDtcIj5DdWVudGEgY29udGFibGU8L3RoPlxuICAgICAgICAgICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOiAxNTBweDtcIj5EZXNjcmlwY2nDs248L3RoPlxuICAgICAgICAgICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOiA5MHB4O1wiPk5hdHVyYWxlemE8L3RoPlxuICAgICAgICAgICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOiA2MHB4O1wiPlRpcG88L3RoPlxuICAgICAgICAgICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOiAyMDBweDtcIj5BY2Npb25lczwvdGg+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiIGxldC1yb3dOb2RlIGxldC1yb3dEYXRhPVwicm93RGF0YVwiIHN0eWxlPVwid2lkdGg6IDEwMCU7XCI+XG4gICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwidWktcmVzaXphYmxlLWNvbHVtblwiIHN0eWxlPVwid2lkdGg6IDE1MHB4O1wiPlxuICAgICAgICAgICAgICAgICAgICA8cC10cmVlVGFibGVUb2dnbGVyIFtyb3dOb2RlXT1cInJvd05vZGVcIj48L3AtdHJlZVRhYmxlVG9nZ2xlcj5cbiAgICAgICAgICAgICAgICAgICAge3tyb3dEYXRhLmN1ZW50YUNvbnRhYmxlfX1cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInVpLXJlc2l6YWJsZS1jb2x1bW5cIiBzdHlsZT1cIndpZHRoOiAxNTBweDtcIj5cbiAgICAgICAgICAgICAgICAgICAge3tyb3dEYXRhLmRlc2NyaXBjaW9ufX1cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInVpLXJlc2l6YWJsZS1jb2x1bW5cIiBzdHlsZT1cIndpZHRoOiA5MHB4O1wiPlxuICAgICAgICAgICAgICAgICAgICB7e3Jvd0RhdGEubmF0dXJhbGV6YX19XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJ1aS1yZXNpemFibGUtY29sdW1uXCIgc3R5bGU9XCJ3aWR0aDogNjBweDtcIj5cbiAgICAgICAgICAgICAgICAgICAge3tyb3dEYXRhLnRpcG99fVxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwidWktcmVzaXphYmxlLWNvbHVtblwiIHN0eWxlPVwid2lkdGg6IDIwMHB4O1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLXJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIHR5cGU9XCJidXR0b25cIiBpY29uPVwicGkgcGktY2hlY2tcIiBjbGFzcz1cInVpLWJ1dHRvbi1yYWlzZWQgdWktYnV0dG9uLXN1Y2Nlc3NcIiAoY2xpY2spPVwic2VsZWN0Q3VlbnRhQ29udGFibGUocm93RGF0YSlcIiAqbmdJZj1cInR5cGVBY2NvdW50PT0xICYmIHJvd0RhdGEuY3VlbnRhUmVnaXN0cm9cIj48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gcEJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgaWNvbj1cInBpIHBpLWNoZWNrXCIgY2xhc3M9XCJ1aS1idXR0b24tcmFpc2VkIHVpLWJ1dHRvbi1zdWNjZXNzXCIgKGNsaWNrKT1cInNlbGVjdEN1ZW50YUNvbnRhYmxlKHJvd0RhdGEpXCIgKm5nSWY9XCJ0eXBlQWNjb3VudD09MiAmJiAhcm93RGF0YS5jdWVudGFSZWdpc3Ryb1wiPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L3AtdHJlZVRhYmxlPlxuPC9kaXY+Il19
|
|
274
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2NsaXN0YS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcnAtY29yZS9zcmMvbGliL2NvbnRhYmlsaWRhZC9jb21wb25lbnRlcy9jY2xpc3RhL2NjbGlzdGEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXJwLWNvcmUvc3JjL2xpYi9jb250YWJpbGlkYWQvY29tcG9uZW50ZXMvY2NsaXN0YS9jY2xpc3RhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7Ozs7Ozs7Ozs7SUNHbkUsMEJBQUk7SUFDQSw2QkFBMEI7SUFBQSwrQkFBZTtJQUFBLGlCQUFLO0lBQzlDLDZCQUEwQjtJQUFBLGdDQUFXO0lBQUEsaUJBQUs7SUFDMUMsNkJBQXlCO0lBQUEsMEJBQVU7SUFBQSxpQkFBSztJQUN4Qyw2QkFBeUI7SUFBQSxvQkFBSTtJQUFBLGlCQUFLO0lBQ2xDLDZCQUEwQjtJQUFBLHlCQUFRO0lBQUEsaUJBQUs7SUFDM0MsaUJBQUs7Ozs7SUFtQk8sa0NBQXFMO0lBQXpGLHlRQUF1QztJQUFrRCxpQkFBUzs7OztJQUM5TCxrQ0FBc0w7SUFBMUYsMFFBQXVDO0lBQW1ELGlCQUFTOzs7SUFqQjNNLDBCQUFJO0lBQ0EsNkJBQXNEO0lBQ2xELHlDQUE2RDtJQUM3RCxZQUNKO0lBQUEsaUJBQUs7SUFDTCw2QkFBc0Q7SUFDbEQsWUFDSjtJQUFBLGlCQUFLO0lBQ0wsOEJBQXFEO0lBQ2pELFlBQ0o7SUFBQSxpQkFBSztJQUNMLDhCQUFxRDtJQUNqRCxZQUNKO0lBQUEsaUJBQUs7SUFDTCwrQkFBc0Q7SUFDbEQsZ0NBQXdCO0lBQ3BC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QyxRQUFRLENBQUM7cUJBQy9DLENBQUMsQ0FBQztpQkFDSjtxQkFBTTtvQkFDTCxZQUFZLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO2lCQUMxRTthQUNGO1lBQ0QsT0FBTyxZQUFZLENBQUM7U0FDckI7SUFDSCxDQUFDOzttR0FqTFUsZ0JBQWdCO3dFQUFoQixnQkFBZ0I7UUNUN0IsZ0NBQTJJO1FBQXJELHdJQUFtQixxRkFBVSwwQkFBc0IsSUFBaEM7UUFBekcsaUJBQTJJO1FBRTNJLDhCQUE0QjtRQUN4QixzQ0FBNEs7UUFDeEssa0ZBUWM7UUFDZCxrRkFzQmM7UUFDbEIsaUJBQWM7UUFDbEIsaUJBQU07O1FBckNnRixtQ0FBbUI7UUFHWCxlQUEwQjtRQUExQix5Q0FBMEI7UUFBdkcsc0ZBQXdELG9CQUFBLGlDQUFBLDBCQUFBOzt1RkRNNUQsZ0JBQWdCO2NBTDVCLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsYUFBYTtnQkFDdkIsV0FBVyxFQUFFLDBCQUEwQjtnQkFDdkMsU0FBUyxFQUFFLENBQUMseUJBQXlCLENBQUM7YUFDdkM7d0VBSUMsUUFBUTtrQkFEUCxLQUFLO1lBR04sV0FBVztrQkFEVixLQUFLO1lBR04saUJBQWlCO2tCQURoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ3VlbnRhQ29udGFibGVNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVsb3MvY3VlbnRhQ29udGFibGUubW9kZWwnO1xuaW1wb3J0IHsgQ3VlbnRhQ29udGFibGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljaW9zL2N1ZW50YWNvbnRhYmxlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItY2NsaXN0YScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jY2xpc3RhLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2NsaXN0YS5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ2NsaXN0YUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KClcbiAgaXNTaGFyZWQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpXG4gIHR5cGVBY2NvdW50OiBudW1iZXI7XG4gIEBPdXRwdXQoKVxuICBldlNlbGVjdGVkQWNjb3VudDogRXZlbnRFbWl0dGVyPEN1ZW50YUNvbnRhYmxlTW9kZWw+O1xuICBjdWVudGFzQ29udGFibGVzOiBhbnlbXSA9IFtdO1xuICBtYXhIID0gNzIwO1xuICBxdWVyeTogYW55ID0gXCJcIjtcbiAgdGVtcEFjY291bnRzOiBDdWVudGFDb250YWJsZU1vZGVsW10gPSBbXTtcblxuICBjdWVudGFTZWxlY2Npb25hZGE6IEN1ZW50YUNvbnRhYmxlTW9kZWw7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfY3VlbnRhQ29udGFibGVTZXJ2aWNlOiBDdWVudGFDb250YWJsZVNlcnZpY2UpIHtcbiAgICB0aGlzLmV2U2VsZWN0ZWRBY2NvdW50ID0gbmV3IEV2ZW50RW1pdHRlcjxDdWVudGFDb250YWJsZU1vZGVsPigpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5tYXhIID0gd2luZG93LmlubmVySGVpZ2h0IC0gMzIwO1xuICAgIHRoaXMub2J0ZW5lckN1ZW50YXNDb250YWJsZXNSZWN1cnNpdm8oKTtcbiAgfVxuXG4gIG9idGVuZXJDdWVudGFzQ29udGFibGVzUmVjdXJzaXZvKCkge1xuICAgIHRoaXMuX2N1ZW50YUNvbnRhYmxlU2VydmljZS5vYnRpZW5lQ3VlbnRhc0NvbnRhYmxlc1JlY3Vyc2l2bygpLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgdGhpcy5jdWVudGFzQ29udGFibGVzID0gcmVzdWx0O1xuICAgICAgICB0aGlzLnNvcnRBY2NvdW50cygpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgc29ydEFjY291bnRzKCkge1xuICAgIHRoaXMuY3VlbnRhc0NvbnRhYmxlcy5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICAvLyBnZXQgc3ltYm9sIGZvciBzdHJpbmdcbiAgICAgIGxldCBjaGFyYWN0ZXJCcmVhayA9ICcuJztcbiAgICAgIGNvbnN0IGxpc3RBOiBhbnlbXSA9IGEuZGF0YS5jdWVudGFDb250YWJsZS5zcGxpdChjaGFyYWN0ZXJCcmVhayk7XG4gICAgICBjb25zdCBsaXN0QjogYW55W10gPSBiLmRhdGEuY3VlbnRhQ29udGFibGUuc3BsaXQoY2hhcmFjdGVyQnJlYWspO1xuXG4gICAgICBpZiAobGlzdEEubGVuZ3RoID4gMCAmJiBsaXN0Qi5sZW5ndGggPiAwKSB7XG4gICAgICAgIGlmIChsaXN0QS5sZW5ndGggPT09IGxpc3RCLmxlbmd0aCkge1xuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdEEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChwYXJzZUludChsaXN0QVtpXSkgPiBwYXJzZUludChsaXN0QltpXSkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocGFyc2VJbnQobGlzdEFbaV0pIDwgcGFyc2VJbnQobGlzdEJbaV0pKSB7XG4gICAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxpc3RBLmxlbmd0aCA8IGxpc3RCLmxlbmd0aCkge1xuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdEEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChwYXJzZUludChsaXN0QVtpXSkgPiBwYXJzZUludChsaXN0QltpXSkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocGFyc2VJbnQobGlzdEFbaV0pIDwgcGFyc2VJbnQobGlzdEJbaV0pKSB7XG4gICAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsaXN0Qi5sZW5ndGggPCBsaXN0QS5sZW5ndGgpIHtcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpc3RCLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAocGFyc2VJbnQobGlzdEFbaV0pID4gcGFyc2VJbnQobGlzdEJbaV0pKSB7XG4gICAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHBhcnNlSW50KGxpc3RBW2ldKSA8IHBhcnNlSW50KGxpc3RCW2ldKSkge1xuICAgICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gMDtcbiAgICB9KTtcbiAgICBmb3IgKGxldCBpdGVtIG9mIHRoaXMuY3VlbnRhc0NvbnRhYmxlcykge1xuICAgICAgaWYgKGl0ZW0uY2hpbGRyZW4pIHtcbiAgICAgICAgdGhpcy5zb3J0SXRlbShpdGVtKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy50ZW1wQWNjb3VudHMgPSB0aGlzLmN1ZW50YXNDb250YWJsZXM7XG4gIH1cblxuICBzb3J0SXRlbShhY2NvdW50OiBhbnkpIHtcbiAgICBhY2NvdW50LmNoaWxkcmVuLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgIC8vIGdldCBzeW1ib2wgZm9yIHN0cmluZ1xuICAgICAgbGV0IGNoYXJhY3RlckJyZWFrID0gJy4nO1xuICAgICAgY29uc3QgbGlzdEE6IGFueVtdID0gYS5kYXRhLmN1ZW50YUNvbnRhYmxlLnNwbGl0KGNoYXJhY3RlckJyZWFrKTtcbiAgICAgIGNvbnN0IGxpc3RCOiBhbnlbXSA9IGIuZGF0YS5jdWVudGFDb250YWJsZS5zcGxpdChjaGFyYWN0ZXJCcmVhayk7XG4gICAgICBpZiAobGlzdEEubGVuZ3RoID4gMCAmJiBsaXN0Qi5sZW5ndGggPiAwKSB7XG4gICAgICAgIGlmIChsaXN0QS5sZW5ndGggPT09IGxpc3RCLmxlbmd0aCkge1xuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdEEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChwYXJzZUludChsaXN0QVtpXSkgPiBwYXJzZUludChsaXN0QltpXSkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocGFyc2VJbnQobGlzdEFbaV0pIDwgcGFyc2VJbnQobGlzdEJbaV0pKSB7XG4gICAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxpc3RBLmxlbmd0aCA8IGxpc3RCLmxlbmd0aCkge1xuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdEEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChwYXJzZUludChsaXN0QVtpXSkgPiBwYXJzZUludChsaXN0QltpXSkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocGFyc2VJbnQobGlzdEFbaV0pIDwgcGFyc2VJbnQobGlzdEJbaV0pKSB7XG4gICAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsaXN0Qi5sZW5ndGggPCBsaXN0QS5sZW5ndGgpIHtcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpc3RCLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAocGFyc2VJbnQobGlzdEFbaV0pID4gcGFyc2VJbnQobGlzdEJbaV0pKSB7XG4gICAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHBhcnNlSW50KGxpc3RBW2ldKSA8IHBhcnNlSW50KGxpc3RCW2ldKSkge1xuICAgICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gMDtcbiAgICB9KTtcbiAgICBmb3IgKGxldCBpdGVtIG9mIGFjY291bnQuY2hpbGRyZW4pIHtcbiAgICAgIHRoaXMuc29ydEl0ZW0oaXRlbSk7XG4gICAgfVxuICB9XG5cblxuXG4gIHNlbGVjdEN1ZW50YUNvbnRhYmxlKGFjY291bnQ6IEN1ZW50YUNvbnRhYmxlTW9kZWwpIHtcbiAgICB0aGlzLmV2U2VsZWN0ZWRBY2NvdW50LmVtaXQoYWNjb3VudCk7XG4gIH1cblxuICBmaWx0ZXJBY2NvdW50cyhldnQ6IGFueSkge1xuICAgIGlmICghZXZ0KSB7XG4gICAgICBjb25zdCB0ZW1wID0gdGhpcy5yZXNldEFjY291bnQoKTtcbiAgICAgIHRoaXMuY3VlbnRhc0NvbnRhYmxlcyA9IHRlbXA7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY3VlbnRhc0NvbnRhYmxlcyA9IHRoaXMuYnJvd3NlQWNjb3VudCh0aGlzLnRlbXBBY2NvdW50cyk7XG4gIH1cblxuICByZXNldEFjY291bnQoKSB7XG4gICAgdGhpcy5xdWVyeSA9ICcnO1xuICAgIGxldCBhY2NvdW50cyA9IFtdO1xuICAgIGZvciAobGV0IGNjIG9mIHRoaXMudGVtcEFjY291bnRzKSB7XG4gICAgICBhY2NvdW50cy5wdXNoKGNjKTtcbiAgICB9XG4gICAgcmV0dXJuIGFjY291bnRzO1xuICB9XG5cblxuXG4gIGJyb3dzZUFjY291bnQoYWNjb3VudHM6IGFueSkge1xuICAgIGxldCBsaXN0QWNjb3VudHM6IGFueVtdID0gW107XG4gICAgaWYgKHRoaXMucXVlcnkgPT09ICcnKSB7XG4gICAgICBjb25zdCB0ZW1wID0gdGhpcy5yZXNldEFjY291bnQoKTtcbiAgICAgIHRoaXMuY3VlbnRhc0NvbnRhYmxlcyA9IHRlbXA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvciAobGV0IGFjY291bnQgb2YgYWNjb3VudHMpIHtcbiAgICAgICAgaWYgKGFjY291bnQuZGF0YS5jdWVudGFDb250YWJsZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5xdWVyeS50b0xvd2VyQ2FzZSgpKSB8fCBhY2NvdW50LmRhdGEuZGVzY3JpcGNpb24udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMucXVlcnkudG9Mb3dlckNhc2UoKSkpIHtcbiAgICAgICAgICBsaXN0QWNjb3VudHMgPSBsaXN0QWNjb3VudHMuY29uY2F0KHtcbiAgICAgICAgICAgIGRhdGE6IGFjY291bnQuZGF0YSxcbiAgICAgICAgICAgIGNoaWxkcmVuOiB0aGlzLmJyb3dzZUFjY291bnQoYWNjb3VudC5jaGlsZHJlbilcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsaXN0QWNjb3VudHMgPSBsaXN0QWNjb3VudHMuY29uY2F0KHRoaXMuYnJvd3NlQWNjb3VudChhY2NvdW50LmNoaWxkcmVuKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBsaXN0QWNjb3VudHM7XG4gICAgfVxuICB9XG5cbn1cbiIsIjxpbnB1dCB0eXBlPVwidGV4dFwiIHN0eWxlPVwid2lkdGg6IDEwMCU7XCIgcElucHV0VGV4dCBwbGFjZWhvbGRlcj1cIkN1ZW50YSBvIGRlc2NyaXBjacOzblwiIFsobmdNb2RlbCldPVwicXVlcnlcIiAoa2V5dXApPVwiZmlsdGVyQWNjb3VudHMoJGV2ZW50KVwiPlxuXG48ZGl2IHN0eWxlPVwicGFkZGluZzogMTBweDtcIj5cbiAgICA8cC10cmVlVGFibGUgW3ZhbHVlXT1cImN1ZW50YXNDb250YWJsZXM/Y3VlbnRhc0NvbnRhYmxlczp0ZW1wQWNjb3VudHNcIiBbc2Nyb2xsYWJsZV09XCJ0cnVlXCIgW3N0eWxlXT1cInt3aWR0aDogJzEwMCUnfSBcIiBbc2Nyb2xsSGVpZ2h0XT1cIm1heEggKyAncHgnXCIgW3Jlc2l6YWJsZUNvbHVtbnNdPVwidHJ1ZVwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDE1MHB4O1wiPkN1ZW50YSBjb250YWJsZTwvdGg+XG4gICAgICAgICAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDE1MHB4O1wiPkRlc2NyaXBjacOzbjwvdGg+XG4gICAgICAgICAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDkwcHg7XCI+TmF0dXJhbGV6YTwvdGg+XG4gICAgICAgICAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDYwcHg7XCI+VGlwbzwvdGg+XG4gICAgICAgICAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDIwMHB4O1wiPkFjY2lvbmVzPC90aD5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCIgbGV0LXJvd05vZGUgbGV0LXJvd0RhdGE9XCJyb3dEYXRhXCIgc3R5bGU9XCJ3aWR0aDogMTAwJTtcIj5cbiAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJ1aS1yZXNpemFibGUtY29sdW1uXCIgc3R5bGU9XCJ3aWR0aDogMTUwcHg7XCI+XG4gICAgICAgICAgICAgICAgICAgIDxwLXRyZWVUYWJsZVRvZ2dsZXIgW3Jvd05vZGVdPVwicm93Tm9kZVwiPjwvcC10cmVlVGFibGVUb2dnbGVyPlxuICAgICAgICAgICAgICAgICAgICB7e3Jvd0RhdGEuY3VlbnRhQ29udGFibGV9fVxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwidWktcmVzaXphYmxlLWNvbHVtblwiIHN0eWxlPVwid2lkdGg6IDE1MHB4O1wiPlxuICAgICAgICAgICAgICAgICAgICB7e3Jvd0RhdGEuZGVzY3JpcGNpb259fVxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwidWktcmVzaXphYmxlLWNvbHVtblwiIHN0eWxlPVwid2lkdGg6IDkwcHg7XCI+XG4gICAgICAgICAgICAgICAgICAgIHt7cm93RGF0YS5uYXR1cmFsZXphfX1cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInVpLXJlc2l6YWJsZS1jb2x1bW5cIiBzdHlsZT1cIndpZHRoOiA2MHB4O1wiPlxuICAgICAgICAgICAgICAgICAgICB7e3Jvd0RhdGEudGlwb319XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJ1aS1yZXNpemFibGUtY29sdW1uXCIgc3R5bGU9XCJ3aWR0aDogMjAwcHg7XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tcm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHBCdXR0b24gdHlwZT1cImJ1dHRvblwiIGljb249XCJwaSBwaS1jaGVja1wiIGNsYXNzPVwidWktYnV0dG9uLXJhaXNlZCB1aS1idXR0b24tc3VjY2Vzc1wiIChjbGljayk9XCJzZWxlY3RDdWVudGFDb250YWJsZShyb3dEYXRhKVwiICpuZ0lmPVwidHlwZUFjY291bnQ9PTEgJiYgcm93RGF0YS5jdWVudGFSZWdpc3Ryb1wiPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIHR5cGU9XCJidXR0b25cIiBpY29uPVwicGkgcGktY2hlY2tcIiBjbGFzcz1cInVpLWJ1dHRvbi1yYWlzZWQgdWktYnV0dG9uLXN1Y2Nlc3NcIiAoY2xpY2spPVwic2VsZWN0Q3VlbnRhQ29udGFibGUocm93RGF0YSlcIiAqbmdJZj1cInR5cGVBY2NvdW50PT0yICYmICFyb3dEYXRhLmN1ZW50YVJlZ2lzdHJvXCI+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvcC10cmVlVGFibGU+XG48L2Rpdj4iXX0=
|