{"version":3,"file":"safe-common-components.mjs","sources":["../../../projects/common-components/src/lib/modules/services/navbar/navbar.service.ts","../../../projects/common-components/src/lib/modules/pages/navbar/navbar.component.ts","../../../projects/common-components/src/lib/modules/pages/navbar/navbar.component.html","../../../projects/common-components/src/lib/common-components.component.ts","../../../projects/common-components/src/lib/modules/services/loader/loader.service.ts","../../../projects/common-components/src/lib/modules/pages/loader/loader.component.ts","../../../projects/common-components/src/lib/modules/pages/loader/loader.component.html","../../../projects/common-components/src/lib/shared/material/material.module.ts","../../../projects/common-components/src/lib/modules/pages/buttons-form/buttons-form.component.ts","../../../projects/common-components/src/lib/modules/pages/buttons-form/buttons-form.component.html","../../../projects/common-components/src/lib/modules/pages/validation-input/validation-input.component.ts","../../../projects/common-components/src/lib/modules/pages/validation-input/validation-input.component.html","../../../projects/common-components/src/lib/modules/pages/input-general-form/input-general-form.component.ts","../../../projects/common-components/src/lib/modules/pages/input-general-form/input-general-form.component.html","../../../projects/common-components/src/lib/modules/pages/input-select-form/input-select-form.component.ts","../../../projects/common-components/src/lib/modules/pages/input-select-form/input-select-form.component.html","../../../projects/common-components/src/lib/modules/constants-input-date/constants-input-date.ts","../../../projects/common-components/src/lib/modules/pages/input-date-form/input-date-form.component.ts","../../../projects/common-components/src/lib/modules/pages/input-date-form/input-date-form.component.html","../../../projects/common-components/src/lib/modules/pages/tab/tab.component.ts","../../../projects/common-components/src/lib/modules/pages/tab/tab.component.html","../../../projects/common-components/src/lib/core/enums/actionsOfPetitions.enum.ts","../../../projects/common-components/src/lib/core/services/generic/generic.service.ts","../../../projects/common-components/src/lib/modules/services/validateType/validateType.ts","../../../projects/common-components/src/lib/core/factory/input-validations.ts","../../../projects/common-components/src/lib/shared/directives/options-dropdownlist.directive.ts","../../../projects/common-components/src/lib/modules/pages/generic-form/generic-form.component.ts","../../../projects/common-components/src/lib/modules/pages/generic-form/generic-form.component.html","../../../projects/common-components/src/lib/modules/services/generic/multiple-deletion.service.ts","../../../projects/common-components/src/lib/modules/pages/generic-component/generic.component.ts","../../../projects/common-components/src/lib/modules/pages/generic-component/generic.component.html","../../../projects/common-components/src/lib/common-components.module.ts","../../../projects/common-components/src/lib/modules/interceptors/loader.interceptor.ts","../../../projects/common-components/src/lib/core/factory/handler/handlerCreateAndUpdate.ts","../../../projects/common-components/src/lib/core/factory/handler/notificationCreateAndUpdate.ts","../../../projects/common-components/src/safe-common-components.ts"],"sourcesContent":["import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { Navbar, Excel } from './navbar';\r\n//import { environment } from '../../../environments/environment';\r\n//import { saveAs } from 'file-saver';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class NavbarService {\r\n  public dataNavbar: any\r\n  constructor(private httpClient: HttpClient) { }\r\n\r\n  private subject = new Subject<any>();\r\n\r\n    enviarDescripcion(mensaje: Navbar) {\r\n        this.subject.next(mensaje);\r\n    }\r\n\r\n/*     limpiarMensajes() {\r\n        this.subject.next();\r\n    }\r\n */\r\n    obtenerDescripcion(): Observable<any> {\r\n        return this.subject.asObservable();\r\n    }\r\n\r\n    async getDataSession() {\r\n      const response =  this.dataNavbar /*await this.httpClient\r\n        .get(`${environment.urlServiceSecurityEnviroment}/datosmaestros/ofic-usua`)\r\n        .toPromise(); */\r\n        \r\n      return response;\r\n    }    \r\n\r\n /*    async descargarExcel(data: Excel) {\r\n      if (data.sheetName == null || data.sheetName === undefined) {\r\n        data.sheetName = 'Reporte';\r\n      }\r\n      if (data.fileName == null || data.fileName === undefined) {\r\n        data.fileName = 'Reporte';\r\n      }\r\n      if (data.method == null || data.method === undefined) {\r\n        data.method = 'post';\r\n      }\r\n      if (data.body == null || data.body === undefined) {\r\n        data.body = {};\r\n      }\r\n      if (data.header == null || data.header === undefined) {\r\n        data.header = [];\r\n      }\r\n      if (data.include == null || data.include === undefined) {\r\n        data.include = [];\r\n      }\r\n      if (data.exclude == null || data.exclude === undefined) {\r\n        data.exclude = [];\r\n      }\r\n      if (data.nombresColumnas == null || data.nombresColumnas === undefined) {\r\n        data.nombresColumnas = null;\r\n      }\r\n      if (data.json == null || data.json === undefined) {\r\n        data.json = null;\r\n      }\r\n      if (data.bandera === null || data.bandera === undefined) {\r\n        data.bandera = '0';\r\n      }\r\n      if (data.ordenColumnas == null || data.ordenColumnas === undefined) {\r\n        data.ordenColumnas = null;\r\n      }\r\n      if (data.formatoFechaEntrada == null || data.formatoFechaEntrada === undefined) {\r\n        data.formatoFechaEntrada = null;\r\n      }\r\n      if (data.formatoFechaSalida == null || data.formatoFechaSalida === undefined) {\r\n        data.formatoFechaSalida = null;\r\n      }\r\n      const body = {\r\n        encabezado: data.header,\r\n        cuerpo: data.body,\r\n        excluir: data.exclude,\r\n        incluir: data.include,\r\n        nombresColumnas: data.nombresColumnas,\r\n        json: data.json,\r\n        ordenColumnas: data.ordenColumnas,\r\n        formatoFechaEntrada: data.formatoFechaEntrada,\r\n        formatoFechaSalida: data.formatoFechaSalida\r\n      };\r\n\r\n      const file = await this.httpClient.post<Blob>(environment.urlServiceSecurityEnviroment + '/excelcomponent/v1/excel', body,  {\r\n        headers: new HttpHeaders({\r\n          'Content-Type': 'application/json',\r\n          'method-resource': data.method,\r\n          'url-resource': environment.urlServiceSecurityEnviroment + '/' + data.resource,\r\n          'sheet-name': data.sheetName,\r\n          'file-name': data.fileName,\r\n          'bandera': data.bandera\r\n        }),\r\n        responseType: 'blob' as 'json',\r\n        observe: 'response'\r\n      }).toPromise();\r\n\r\n      const blob = new Blob([file.body], { type: 'application/x-download' });\r\n      saveAs(blob, data.fileName + '.xlsx');\r\n    }\r\n\r\n    async obtenerBaseDatos() {\r\n      return await this.httpClient.get(environment.urlServiceSecurityEnviroment + '/database').toPromise();\r\n    }\r\n\r\n    async obtenerMenu() {\r\n      return await this.httpClient.get(environment.urlServiceSecurityEnviroment + '/menu').toPromise();\r\n    } */\r\n}\r\n","import { Component, OnInit, OnDestroy} from '@angular/core';\r\nimport { DatePipe } from '@angular/common';\r\n//import { DecodeService } from 'src/app/services/decoderToken/decodertoken.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { Router } from '@angular/router';\r\nimport { NavbarService } from '../../services/navbar/navbar.service';\r\nimport { Navbar, NavbarButton } from '../../services/navbar/navbar';\r\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\r\n//import { DialogService } from 'src/app/modules/dialog/dialog.service';\r\n\r\n@Component({\r\n  selector: 'safe-navbar',\r\n  templateUrl: './navbar.component.html',\r\n  styleUrls: ['./navbar.component.css']\r\n})\r\nexport class NavbarComponent implements OnInit, OnDestroy {\r\n  formNavbar: FormGroup = null;\r\n\r\n  fecha?: string ;\r\n  usuario!: string;\r\n  forma!: string;\r\n  descripcion!: string | undefined;\r\n  botones!: Array<NavbarButton> | undefined;\r\n  version!: string | undefined;\r\n  baseDatos: any = {base_datos: ''};\r\n  dataSession?: any;\r\n  subscription: Subscription;\r\n  menu: any = [];\r\n\r\n/*   menujson: any = [ {\r\n        label: 'Condición de pensionado',\r\n        type: 'url',\r\n        url: '/sfmscope'\r\n      },\r\n      {\r\n        label: 'Operación',\r\n        type: 'submenu',\r\n        items: [{label: 'Opciones de inversión', type: 'url', url: '/sfmscooi'},\r\n                {label: 'Planes de inversión', type: 'url', url: '/sfmsplin'},\r\n                {label: 'prueba', type: 'submenu', items: [{label: 'Opc', type: 'url', url: '/'}]}\r\n                ]\r\n      }\r\n    ];\r\n */\r\n  constructor(\r\n    //private datePipe: DatePipe,\r\n    //private decodeService: DecodeService,\r\n    private formBuilder: FormBuilder,\r\n    private navbarService: NavbarService,\r\n    public routeNavigate: Router,\r\n    //public dialogService: DialogService\r\n  ) {\r\n    this.subscription = this.navbarService\r\n      .obtenerDescripcion()\r\n      .subscribe((mensaje: Navbar) => {\r\n        if (mensaje) {\r\n          this.forma = mensaje.forma;\r\n          this.descripcion = mensaje.descripcion;\r\n          this.botones = mensaje.botones;\r\n          this.version = mensaje.version;\r\n        }\r\n      });\r\n  }\r\n\r\n  async ngOnInit() {\r\n    this.fecha = '20/05/2023'//this.datePipe.transform(new Date(), 'dd-MM-yyyy');\r\n    //this.obtenerUsuario();\r\n    this.descripcion='SAFE Sistema de Administración Fiduciario';\r\n    this.formNavbar = new FormGroup({\r\n        /* Bloque Datos session */\r\n        v_compania: new FormControl(''),\r\n        v_transaccion: new FormControl(''),\r\n        v_usuario: new FormControl(''),\r\n        v_producto: new FormControl(''),\r\n        v_linea: new FormControl(''),\r\n        v_fechaProducto: new FormControl('')\r\n      });\r\n    this.searchDataSession();\r\n  }\r\n\r\n  async searchDataSession() {\r\n    this.dataSession = await this.navbarService.getDataSession();\r\n    //Verificar error \r\n\r\n    //  // this.formNavbar.get('v_compania').setValue(this.dataSession.p_compania);\r\n    //   this.formNavbar.get('v_transaccion').setValue(this.dataSession.p_transaccion);\r\n    //   this.formNavbar.get('v_usuario').setValue(this.dataSession.p_usuario);\r\n    //   this.formNavbar.get('v_producto').setValue(this.dataSession.p_producto);\r\n    //   this.formNavbar.get('v_linea').setValue(this.dataSession.p_linea);\r\n    //   this.formNavbar.get('v_fechaProducto').setValue(this.dataSession.p_fechaProducto);\r\n    //  console.log(this.dataSession)\r\n  }\r\n\r\n  async ngAfterViewInit() {\r\n    setTimeout(async () => {\r\n      if (this.routeNavigate.url === '/logout') { return; }\r\n      await this.obtenerMenu();\r\n      //this.baseDatos = await this.navbarService.obtenerBaseDatos();\r\n    }, 500);\r\n  }\r\n\r\n  async cerrar() {\r\n   /*  const cerrarSesion = await this.dialogService.confirm({\r\n      title: 'Cerrar Sesión',\r\n      body: 'Está seguro de cerrar Sesión ?',\r\n    }\r\n    );\r\n\r\n    if (cerrarSesion) {\r\n      sessionStorage.removeItem('access_token');\r\n      sessionStorage.removeItem('logout');\r\n      sessionStorage.removeItem('logout_time');\r\n      this.routeNavigate.navigateByUrl('/logout');\r\n    } */\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.subscription.unsubscribe();\r\n  }\r\n\r\n  obtenerUsuario(): void {   \r\n/*     const usuarioInterval = setInterval(() => {\r\n      const respuesta: any = this.decodeService.decodeToken();\r\n      if (respuesta) {\r\n        this.usuario = respuesta.sub;\r\n        clearInterval(usuarioInterval);\r\n      }\r\n    }, 1000); */\r\n  }\r\n\r\n  limpiarMenu(menu = []) {\r\n/*     menu.forEach(option => {\r\n      option.delete = false;\r\n      if (option.type === 'submenu') {\r\n        option.items = this.limpiarMenu(option.items);\r\n        option.delete = option.items.length === 0;\r\n      }\r\n    });\r\n    return menu.filter(option => !option.delete); */\r\n  }\r\n\r\n  async obtenerMenu() {\r\n    //  this.menu = await this.navbarService.obtenerMenu();\r\n    // this.menu = this.limpiarMenu(this.menu);\r\n    // this.menu.push({\r\n    //   label: 'Cerrar sesión',\r\n    //   type: 'close'\r\n    // });\r\n  } \r\n}\r\n","<nav>\r\n  <!-- <div class=\"navbar\">\r\n    <table width=\"100%\">\r\n        <td style=\"text-align: left; width: 50px; padding-top: 10px;\">\r\n          <img class=\"logo\" alt=\"Davivienda\" src=\"/assets/logoSAFE.png\" />\r\n        </td>\r\n        <td class=\"barra-data\">\r\n          <br> Versi&oacute;n:  {{ version || '1.0' }} \r\n          <br> Fecha de versi&oacute;n:  {{ fecha }} \r\n        </td>\r\n        <td class=\"barra-titulo\" style=\"text-align: center;\">\r\n         <form class=\"forma\" [formGroup]=\"formNavbar\" autocomplete=\"off\">\r\n          <div class=\"row-external\">\r\n            <div class=\"item item-100\">\r\n          <mat-card class=\"card\">\r\n            <mat-card-content class=\"mat-card-content\">\r\n              <div class=\"row\">\r\n\r\n                <div class=\"item item-40\" style=\"text-align:left; font-size:smaller\">\r\n                    <mat-label>Compañía: </mat-label>\r\n                    <input class=\"deshabilitado\" readonly formControlName=\"v_compania\" matInput type=\"text\" />\r\n                </div>  \r\n                <div class=\"item item-30\" style=\"text-align:left; font-size:smaller;\">\r\n                  <mat-label>Línea: </mat-label>\r\n                  <input class=\"deshabilitado\" readonly formControlName=\"v_linea\" matInput type=\"text\" />\r\n             </div>                   \r\n                 <div class=\"item item-15\" style=\"text-align:left; font-size:smaller;\">\r\n                     <mat-label>Usuario: </mat-label>\r\n                     <input class=\"deshabilitado\" readonly formControlName=\"v_usuario\" matInput type=\"text\" /> \r\n                </div>\r\n              </div>                    \r\n              <div class=\"row\">\r\n                <div class=\"item item-40\" style=\"text-align:left; font-size:smaller;\">\r\n                     <mat-label>Producto: </mat-label>\r\n                     <input class=\"deshabilitado\" readonly formControlName=\"v_producto\" matInput type=\"text\" />\r\n                </div>\r\n                <div class=\"item item-30\" style=\"text-align:left; font-size:smaller;\">\r\n                     <mat-label>Transacción: </mat-label>\r\n                     <input class=\"deshabilitado\" readonly formControlName=\"v_transaccion\" matInput type=\"text\" />\r\n                </div>\r\n                <div class=\"item item-15\" style=\"text-align:left; font-size:smaller;\">\r\n                     <mat-label>Fecha de Producto: </mat-label>\r\n                     <input class=\"deshablitado\" readonly formControlName=\"v_fechaProducto\" matInput type=\"text\" />                   \r\n                </div> \r\n              </div>\r\n            </mat-card-content>\r\n          </mat-card>  \r\n          </div>\r\n          </div>\r\n         </form>      \r\n        </td> \r\n          <td class=\"barra\">\r\n          <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@48,400,0,0\" />\r\n          <span class=\"material-symbols-outlined\">\r\n            home\r\n            </span>\r\n            <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@48,400,0,0\" />\r\n            <span class=\"material-symbols-outlined\">\r\n              help\r\n            </span> <br> \r\n          </td>\r\n      <td style=\"text-align: left; width: 60px; padding-top: 10px;\">\r\n        <img class=\"logoDav\" alt=\"Davivienda\" src=\"/assets/logo_safe_fiducia.png\" />\r\n      </td>      \r\n    </table>\r\n\r\n  </div> -->\r\n  <div class=\"menu\" *ngIf=\"routeNavigate.url != '/logout'\">\r\n    <table class=\"table-navbar-menu\" style=\"width: 100%; vertical-align: middle; padding: 0px; margin: 0px;\">\r\n      <tr>\r\n        <!-- <td style=\"width: 5%; padding-top: 0px !important; border-right: 1px inset rgba(210,210,210,0.98);\">\r\n           <app-menu [data]=\"menu\" principal=\"true\" label=\"menu\"></app-menu>\r\n        </td> -->\r\n        <td style=\"width: 75%; padding-top: 0px !important\">\r\n           <span [id]=\"item.id\" class=\"menu-item\" (click)=\"(item.loading) ? null: item.callback($event, item)\"\r\n            *ngFor=\"let item of botones\">\r\n            <mat-icon *ngIf=\"item.icon\">{{ item.icon }}</mat-icon>{{ item.loading || item.label }}\r\n          </span>\r\n        </td>\r\n         <td style=\"width: 20%; text-align: right; padding-right: 10px; padding-top: 0px !important\">\r\n          <span class=\"menu-form-name\">{{ forma | uppercase }}</span>\r\n        </td> \r\n      </tr>\r\n    </table>\r\n  </div>\r\n</nav>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'safe-common-components',\r\n  template: `\r\n    <p>\r\n      common-components works!\r\n    </p>\r\n  `,\r\n  styles: [\r\n  ]\r\n})\r\nexport class CommonComponentsComponent {\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class LoaderService {\r\n  private varLoading: boolean;\r\n  public loadingStatus: any;\r\n\r\n  statusKeyBoard = false;\r\n\r\n  constructor() {\r\n    this.varLoading = false;\r\n    this.loadingStatus = new Subject();\r\n  }\r\n  get loading(): boolean {\r\n    return this.varLoading;\r\n  }\r\n  set loading(value) {\r\n    this.varLoading = value;\r\n\r\n    this.loadingStatus.next(value);\r\n  }\r\n  startLoading() {\r\n    this.loading = true;\r\n  }\r\n  stopLoading() {\r\n    this.loading = false;\r\n  }\r\n    \r\n  getStatusKeyBoard() {\r\n    return this.statusKeyBoard;\r\n  }\r\n\r\n  setStatusKeyBoard(newStatus: boolean) {\r\n    this.statusKeyBoard = newStatus;\r\n  }\r\n}\r\n","import { Component, OnDestroy, ElementRef, AfterViewInit, ChangeDetectorRef, Input } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { LoaderService } from '../../services/loader/loader.service';\r\nimport { debounceTime } from 'rxjs/operators';\r\n\r\n@Component({\r\n  selector: 'safe-loader',\r\n  templateUrl: './loader.component.html',\r\n  styleUrls: ['./loader.component.scss'],\r\n  host: {\r\n    '(document:keydown)': 'onKeyDown($event)'\r\n  }\r\n})\r\nexport class LoaderComponent implements  OnDestroy, AfterViewInit {\r\n  public mode = 'indeterminate';\r\n  public value = 50;\r\n  public loading: boolean;\r\n  public loadingSubscription!: Subscription;\r\n  public debounceTime!: number;\r\n  @Input('mode') transactionModeInput?: number = 2;\r\n\r\n  constructor(\r\n    public loaderService: LoaderService,\r\n    private elmRef: ElementRef,\r\n    private changeDetectorRef: ChangeDetectorRef\r\n  ) {\r\n    this.loading = false;\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n    this.elmRef.nativeElement.style.display = 'none';\r\n    this.loadingSubscription = this.loaderService.loadingStatus\r\n      .pipe(debounceTime(this.debounceTime))\r\n      .subscribe((status: boolean) => {\r\n        this.elmRef.nativeElement.style.display = status ? 'block' : 'none';\r\n        this.loaderService.setStatusKeyBoard(status);\r\n        this.changeDetectorRef.detectChanges();\r\n      });\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.loadingSubscription.unsubscribe();\r\n  }\r\n\r\n  onKeyDown(ev:KeyboardEvent) {\r\n    if (this.loaderService.getStatusKeyBoard()) {\r\n      ev.preventDefault();\r\n    }\r\n  }\r\n}\r\n","<ng-container *ngIf=\"transactionModeInput === 1\">\r\n    <section class=\"loadModal\" id=\"loader\">\r\n        <mat-progress-spinner diameter=\"40\" class=\"spinner custom-spinner\" mode=\"indeterminate\"></mat-progress-spinner>\r\n    </section>\r\n</ng-container>\r\n<ng-container *ngIf=\"transactionModeInput === 2\">\r\n    <section class=\"loadModal\" id=\"loader\">\r\n        <div class=\"modal loader\" style=\"background-color: transparent;\">\r\n            <svg id=\"Light\" class=\"light\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 201.23 171.23\">\r\n                <path class=\"cls-1\" d=\"M100.77,144.33c-13.87,0-19.53-3.72-19.53-3.72-34.71,11.18-48.12-24.2-37.71-35.91S53.6,81.18,53.6,81.18s-19.18,4-19.62-7.7c0,0-1.51-5.85,6.3-12.36C47.76,54.89,75.4,33.8,97.75,26.78a11.53,11.53,0,0,1,6.3.07c4.23,1.07,13.08,4.4,24.69,10.86,0,0-3.25-8.46,9.77-7.94,4.7.19,7.53.79,9.23,1.79a4.31,4.31,0,0,1,1.58,5.68,18.41,18.41,0,0,0-1.94,9.58,19.21,19.21,0,0,0,.22,1.94c1.3,7.81,19.52,10.41,19.52,24.72,0,10.41-20.28,7.71-20.28,7.71s-.2,11.85,10.21,23.56-2.49,47-37.19,35.86c0,0-5.66,3.72-19.53,3.72Z\" />\r\n            </svg>\r\n    \r\n            <svg id=\"Rojo\" class=\"default\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 201.23 171.23\">\r\n                <path class=\"cls-1\" d=\"M100.77,144.33c-13.87,0-19.53-3.72-19.53-3.72-34.71,11.18-48.12-24.2-37.71-35.91S53.6,81.18,53.6,81.18s-19.18,4-19.62-7.7c0,0-1.51-5.85,6.3-12.36C47.76,54.89,75.4,33.8,97.75,26.78a11.53,11.53,0,0,1,6.3.07c4.23,1.07,13.08,4.4,24.69,10.86,0,0-3.25-8.46,9.77-7.94,4.7.19,7.53.79,9.23,1.79a4.31,4.31,0,0,1,1.58,5.68,18.41,18.41,0,0,0-1.94,9.58,19.21,19.21,0,0,0,.22,1.94c1.3,7.81,19.52,10.41,19.52,24.72,0,10.41-20.28,7.71-20.28,7.71s-.2,11.85,10.21,23.56-2.49,47-37.19,35.86c0,0-5.66,3.72-19.53,3.72Z\" />\r\n            </svg>\r\n        </div>\r\n    </section>\r\n</ng-container>\r\n","import { NgModule } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSliderModule } from '@angular/material/slider';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport {MatDatepickerModule} from '@angular/material/datepicker';\r\nimport { MatNativeDateModule } from '@angular/material/core';\r\nconst materialComponents = [\r\n  MatButtonModule,\r\n  MatDialogModule,\r\n  MatCardModule,\r\n  MatAutocompleteModule,\r\n  MatInputModule,\r\n  MatRadioModule,\r\n  MatDividerModule,\r\n  MatCheckboxModule,\r\n  MatTabsModule,\r\n  MatTableModule,\r\n  MatGridListModule,\r\n  MatIconModule,\r\n  MatSelectModule,\r\n  MatProgressSpinnerModule,\r\n  MatButtonToggleModule,\r\n  MatSliderModule,\r\n  MatPaginatorModule,\r\n  ScrollingModule,\r\n  MatTooltipModule,\r\n  MatFormFieldModule,\r\n  MatProgressBarModule,\r\n  MatStepperModule,\r\n  MatMenuModule,\r\n  MatDatepickerModule,\r\n  MatNativeDateModule\r\n];\r\n@NgModule({\r\n  imports: [],\r\n  exports: [materialComponents]\r\n})\r\nexport class MaterialModule {}\r\n","import { Component, OnInit, Input, forwardRef, AfterViewInit, Output, EventEmitter } from '@angular/core';\r\n\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormControl } from '@angular/forms';\r\n@Component({\r\n  selector: 'safe-buttons-form',\r\n  templateUrl: './buttons-form.component.html'\r\n})\r\nexport class ButtonsFormComponent {\r\n  @Input() showBtnAccept: boolean;\r\n  @Input() showBtnCancel: boolean;\r\n  @Input() showBtnDelete: boolean;\r\n  @Input() showBtnClean: boolean;\r\n  @Input() showBtnDeleteIndependent: boolean;\r\n  @Input() disabledDeleteIndependent: boolean;\r\n  @Input() submit: boolean = true;\r\n  @Input() labelBtnAccept: string = 'Guardar';\r\n  @Input() labelBtnCancel: string = 'Cancelar';\r\n  @Input() labelBtnDelete: string = 'Eliminar';\r\n  @Input() labelBtnClean: string = 'Limpiar';\r\n  @Input() iconAccept?: string ;\r\n  @Input() iconCancel?: string ;\r\n  @Input() iconDelete?: string  ;\r\n  // @Input() iconAccept: string = 'save';\r\n  // @Input() iconCancel: string = 'clear_all';\r\n  // @Input() iconDelete: string = 'clear_all';\r\n  @Input() controll: FormControl;\r\n\r\n  @Output() eventEmmitterAccept = new EventEmitter<string>();\r\n  @Output() eventEmmitterCancel = new EventEmitter<string>();\r\n  @Output() eventEmmitterDelete = new EventEmitter<string>();\r\n  @Output() eventEmmitterClean = new EventEmitter<string>();\r\n\r\n  isDisabled: boolean;\r\n  onChange = (_: any) => { }\r\n  onTouch = () => { }\r\n\r\n\r\n  constructor() {\r\n\r\n  }\r\n\r\n  ngOnInit() {\r\n\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n\r\n  }\r\n\r\n  onInput(value: string) {\r\n    this.onTouch();\r\n    this.onChange(value);\r\n  }\r\n  writeValue(value: any): void {\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.onChange = fn;\r\n  }\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouch = fn;\r\n  }\r\n  setDisabledState(isDisabled: boolean): void {\r\n    this.isDisabled = isDisabled;\r\n  }\r\n\r\n  public clickAccept(event: any) {\r\n    this.eventEmmitterAccept.emit(event);\r\n  }\r\n\r\n  public clickCancel(event: any) {\r\n    this.eventEmmitterCancel.emit(event);\r\n  }\r\n\r\n  public clickDelete(event: any) {\r\n    this.eventEmmitterDelete.emit(event);\r\n  }\r\n  public clickClean(event: any) {\r\n    this.eventEmmitterClean.emit(event);\r\n  }\r\n  isMobile() {\r\n    return window.innerWidth <= 400;\r\n  }\r\n  \r\n}\r\n","<div class=\"flag d-flex justify-content-end\">\r\n  <button class=\"safe-button-secundary buttons-form safe-margin-buttons\" *ngIf=\"showBtnCancel\" mat-button type=\"button\"\r\n    (click)=\"clickCancel($event)\" title=\"{{ labelBtnCancel }}\">\r\n    {{labelBtnCancel}}\r\n  </button>\r\n  <button class=\"buttons-form safe-button-secundary safe-margin-buttons\" type=\"button\" *ngIf=\"showBtnClean\" mat-button\r\n    (click)=\"clickClean($event)\" title=\"{{ labelBtnClean }}\">\r\n    {{ labelBtnClean }}\r\n  </button>\r\n  <button class=\"buttons-form safe-button-primary safe-margin-buttons \" type=\"button\" \r\n  mat-button [disabled]=\"submit\"\r\n    (click)=\"clickAccept($event)\" title=\"{{ labelBtnAccept }}\">\r\n    {{ labelBtnAccept }}\r\n  </button>\r\n  <button class=\"buttons-form safe-button-primary safe-margin-buttons\" type=\"button\" *ngIf=\"showBtnDeleteIndependent\" mat-button\r\n    [disabled]=\"disabledDeleteIndependent\" (click)=\"clickDelete($event)\" title=\"{{ labelBtnDelete }}\">\r\n    {{ labelBtnDelete }}\r\n  </button>\r\n  <button class=\"buttons-form safe-button-primary safe-margin-buttons\" type=\"button\"  *ngIf=\"showBtnDelete\" mat-button [disabled]=\"submit\"\r\n    (click)=\"clickDelete($event)\" title=\"{{ labelBtnDelete }}\">\r\n    {{ labelBtnDelete }}\r\n  </button>\r\n</div>","import { Component, Input } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\n\r\n@Component({\r\n  selector: 'safe-validation-input',\r\n  templateUrl: './validation-input.component.html'\r\n})\r\nexport class ValidationInputComponent {\r\n  @Input() control: FormControl;\r\n  @Input() date: boolean = false;\r\n  @Input() select: boolean = false;\r\n  getErrors() {\r\n\r\n    let errors = [];\r\n    for (let error of Object.entries(this.control.errors)) {\r\n\r\n      let staticMsg = null;\r\n      if (error.find(error => error == 'matDatepickerParse')) {\r\n        staticMsg = 'Formato de fecha inválido';\r\n      }\r\n      if (error[0] === 'matDatepickerMin') {\r\n        staticMsg = 'Fecha mínima inválida';\r\n      }\r\n      if (error[0] === 'matDatepickerMax') {\r\n        staticMsg = 'Fecha máxima inválida';\r\n      }\r\n      if (error[0] === 'required') {\r\n        staticMsg = 'Este campo es requerido';\r\n      }\r\n\r\n      if (error[0] === 'minlength') {\r\n        staticMsg = 'Este campo es mínimo de ' + error[1].requiredLength + ' caracteres';\r\n      }\r\n      if (error[0] === 'maxlength') {\r\n        staticMsg = 'Este campo es máximo de ' + error[1].requiredLength + ' caracteres';\r\n      }\r\n      if (error[0] === 'pattern') {\r\n        staticMsg = 'Este campo no cumple el patrón ' + error[1].requiredPattern;\r\n      }\r\n      if (error[0] === 'notFound') {\r\n        staticMsg = 'Registro no encontrado. Verifíque el valor diligenciado';\r\n      }\r\n      if (error[0] === 'min') {\r\n        staticMsg = 'Este campo es mínimo de ' + String(error[1].min).length + ' caracteres';\r\n      }\r\n      if (error[0] === 'max') {\r\n        staticMsg = 'Este campo es máximo de ' + String(error[1].max).length + ' caracteres';\r\n      }\r\n\r\n      errors.push({\r\n        type: error[0],\r\n        msg: staticMsg || error[1]\r\n      });\r\n    }\r\n    return errors;\r\n  }\r\n\r\n  getError() {\r\n    try {\r\n      return this.getErrors()[0];\r\n    } catch {\r\n      return false;\r\n    }\r\n  }\r\n  hola() {\r\n    console.log(this.control)\r\n  }\r\n}\r\n","<ng-container >\r\n    <mat-icon \r\n\r\n    [ngClass]=\"{  \r\n        \r\n    'icon-style': date===false && select===false,\r\n    'date-icon': date===true,\r\n    ' select-icon': select===true,\r\n \r\n }\" \r\n    class=\"icon-color-red\"\r\n    *ngIf=\"getError()\" color=\"error\"   matSuffix matTooltipClass=\"tooltip-error\" [matTooltip]=\"getError().msg\" fontIcon=\"error_outline\"></mat-icon>\r\n</ng-container>       ","import { ChangeDetectorRef, Component, Directive, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, ViewChild, computed, inject } from '@angular/core';\r\nimport { AbstractControl, FormControl, FormGroup, ValidationErrors, ValidatorFn } from '@angular/forms';\r\nimport { distinctUntilChanged } from 'rxjs/operators';\r\nimport { CdkTextareaAutosize } from '@angular/cdk/text-field';\r\nimport { TextAreaFilter } from '../../../core/interfaces/genericComponent/generic-object-component.interface';\r\n\r\n@Component({\r\n  selector: 'safe-input-general-form',\r\n  templateUrl: './input-general-form.component.html'\r\n})\r\nexport class InputGeneralFormComponent implements OnInit {\r\n\r\n  protected value: string;\r\n  @Input() label: string;\r\n  @Input() placeholder: string;\r\n  @Input() type: string = 'text';//'number','onlyText'\r\n  @Input() autocomplete: string = 'off';\r\n  @Input() required: boolean = false;\r\n  @Input() maxlength: number;\r\n  @Input() control: FormControl;\r\n  @Input() tooltip: string;\r\n  @Input() icon: string;\r\n  @Input() isReadOnly: boolean = false;\r\n  @Input() upperCase: boolean = false;\r\n  @Input() textArea?: boolean|TextAreaFilter = false;\r\n  @Input() isDisabled: boolean = false;\r\n\r\n  minRowsSignal= computed(()=> {\r\n    if (this.textArea && typeof this.textArea !== 'boolean' && this.textArea.minRows) {\r\n      return this.textArea.minRows;\r\n    }\r\n    return 1;\r\n   })\r\n  maxRowsSignal= computed(()=> {\r\n    if (this.textArea && typeof this.textArea !== 'boolean' && this.textArea.maxRows) {\r\n      return this.textArea.maxRows;\r\n    }\r\n    return 4;\r\n   })\r\n  protected searchIcon: boolean = false;\r\n  // @Output() valueChangesInput = new EventEmitter<any>();\r\n\r\n  @Output() onBlurInput = new EventEmitter<string>();\r\n  @Output() openListOut = new EventEmitter<string>();\r\n  onChange = (_: any) => { }\r\n  onTouch = () => { }\r\n\r\n  @ViewChild('autosize', { static: false }) autosize: CdkTextareaAutosize;\r\n  @ViewChild('inputG', { static: false }) myInputElement!: ElementRef<HTMLInputElement>;\r\n\r\n  decimalNumber: boolean = false;\r\n\r\n  ngOnInit() {\r\n    if (this.type === 'decimalNumber') {\r\n      this.decimalNumber = true;\r\n      this.type = 'text';\r\n    }\r\n    if (!this.placeholder) {\r\n      if (this.label) {\r\n        this.placeholder = this.label;\r\n      }\r\n    }\r\n\r\n    if (!this.tooltip) {\r\n      if (this.label) {\r\n        this.tooltip = this.label;\r\n      }\r\n    }\r\n    if (this.isDisabled) this.control.disable();\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    // this.control.valueChanges.pipe(distinctUntilChanged()).subscribe(\r\n    // this.control.valueChanges.subscribe(\r\n    //   (val) => {\r\n    //     if (this.control.value == \"\" || this.control.value == null || this.control.value == undefined) {\r\n    //       this.value = \"\";\r\n    //     }\r\n    //   }\r\n    // );\r\n    if (this.decimalNumber) {\r\n      this.thousandsFormat();\r\n    }\r\n  }\r\n\r\n  openList(): void {\r\n    this.openListOut.emit()\r\n  }\r\n\r\n  onInput(value: string) {\r\n    //this.value = value;\r\n    this.onTouch();\r\n    this.onChange(value);\r\n    //this.valueChanges.emit(value);\r\n  }\r\n  writeValue(value: any): void {\r\n    if (value) {\r\n      this.value = value || '';\r\n    } else {\r\n      this.value = '';\r\n    }\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.onChange = fn;\r\n  }\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouch = fn;\r\n  }\r\n  setDisabledState(isDisabled: boolean): void {\r\n    this.isDisabled = isDisabled;\r\n  }\r\n\r\n\r\n  public onBlurInputEvent(value) {\r\n    this.onBlurInput.emit(value);\r\n  }\r\n  onInputChange(event: Event) {\r\n\r\n    if (this.maxlength) {\r\n      const inputValue = (event.target as HTMLInputElement).value;\r\n      if (inputValue.length > this.maxlength) {\r\n        this.control.setValue(inputValue.slice(0, this.maxlength), { emitEvent: false });\r\n      }\r\n    }\r\n    if (this.upperCase && (event.target as HTMLInputElement).value) {\r\n      this.control.setValue((event.target as HTMLInputElement).value.toUpperCase());\r\n    }\r\n    if (this.type === 'number') {\r\n      const inputValueOriginal: any = (((event.target as HTMLInputElement).value));\r\n      const inputValueNumber: any = Number(((event.target as HTMLInputElement).value));\r\n      if (Number.isNaN(inputValueNumber)) {\r\n        this.control.setValue(Number((String(inputValueOriginal.substring(0, inputValueOriginal.length - 1)))));\r\n      } else {\r\n        this.control.setValue(this.control.value ? Number(this.control.value) : null);\r\n      }\r\n    }\r\n  }\r\n\r\n  thousandsFormat() {\r\n    const inputValue = this.myInputElement.nativeElement.value;\r\n    const contenidoFiltrado = inputValue.replace(/[^\\d,.]/g, '');\r\n    let tme = contenidoFiltrado.split('.');\r\n    tme[0] = tme[0].replaceAll(',', '');\r\n    tme[0] = tme[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\r\n    tme[1] = tme[1]?.replaceAll(',', '');\r\n    const temp = `${tme[0]}${tme[1]?.length >= 0 ? '.' + tme[1] : ''}`;\r\n    this.control.setValue(temp, { emitEvent: false });\r\n  }\r\n\r\n\r\n\r\n\r\n}\r\n","<div [ngClass]=\"{ 'disabled-icon': control.disabled?true:false }\">\r\n    <mat-form-field appearance=\"outline\">\r\n        <mat-label>{{label}}</mat-label>\r\n        <textarea cdkTextareaAutosize #autosize=\"cdkTextareaAutosize\" [cdkAutosizeMinRows]=\"minRowsSignal()\"\r\n            [cdkAutosizeMaxRows]=\"maxRowsSignal()\" *ngIf=\"textArea\" (input)=\"onInputChange($event)\" matInput\r\n            (blur)=\"onBlurInputEvent(control.value)\" [formControl]=\"control\" placeholder=\"{{placeholder}}\"\r\n            [autocomplete]=\"autocomplete\" numericDirective [required]=\"required\" matTooltip=\"{{tooltip}}\"\r\n            [matTooltipPosition]=\"'above'\" matTooltipPosition=\"above\" matTooltipClass=\"tooltip-background\"\r\n            [readonly]=\"isReadOnly\" onlyTextDirective type=\"number\"></textarea>\r\n        <input #inputG *ngIf=\"!textArea\" (input)=\"onInputChange($event);decimalNumber?thousandsFormat():null;\" matInput\r\n            (blur)=\"onBlurInputEvent(control.value)\" [formControl]=\"control\" placeholder=\"{{placeholder}}\"\r\n            [autocomplete]=\"autocomplete\" numericDirective [required]=\"required\" matTooltip=\"{{tooltip}}\"\r\n            matTooltipPosition=\"above\" matTooltipClass=\"tooltip-background\" [readonly]=\"isReadOnly\" onlyTextDirective\r\n            [type]=\"type\">\r\n\r\n        <safe-validation-input *ngIf=\"control?.errors && (control?.dirty || control?.touched)\"\r\n            [control]=\"control\"></safe-validation-input>\r\n        <mat-icon class=\"icon-filter-help\"\r\n            [ngClass]=\"{  'icon-color-red': control?.errors && (control?.dirty || control?.touched)}\" *ngIf=\"icon\"\r\n            aria-hidden=\"false\" aria-label=\"Example home icon\" [fontIcon]=\"icon\" (click)=\"openList()\"></mat-icon>\r\n    </mat-form-field>\r\n\r\n</div>\r\n\r\n\r\n\r\n<!-- <mat-form-field appearance=\"{{appearanceInput}}\">\r\n    <mat-label>{{label|translate}}</mat-label>\r\n    <input matInput #inputGeneral [formControl]=\"control\" (input)=\"onInput($event.target.value)\" (click)=\"onInput($event.target.value)\" (keyup)=\"onInput($event.target.value)\" (change)=\"onInput($event.target.value)\" [value]=\"value\" placeholder=\"{{placeholder|translate}}\"\r\n        [autocomplete]=\"autocomplete\" [type]=\"type\" [required]=\"required\" [attr.maxlength]=\"maxlength\">\r\n\r\n    <mat-error *ngIf=\"control?.hasError('maxlength')\">\r\n        <strong>{{'msg.campoMaxLength'|translate}} ({{control?.errors.maxlength.requiredLength}} / {{control?.errors.maxlength.actualLength}})</strong>\r\n    </mat-error>\r\n    <mat-error *ngIf=\"control?.hasError('required')\">\r\n        <strong>{{'msg.campoRequerido'|translate}}</strong>\r\n    </mat-error>\r\n\r\n</mat-form-field> -->\r\n\r\n<!-- <mat-error *ngIf=\"control?.hasError('maxlength')\">\r\n    <strong>{{'msg.campoMaxLength'|translate}} (control?.errors.maxlength.requiredLength  / control?.errors.maxlength.actualLength)</strong>\r\n</mat-error> -->\r\n<!-- {{control.errors | json}} -->\r\n<!-- { \"maxlength\": { \"requiredLength\": 30, \"actualLength\": 40 } } -->\r\n<!-- <mat-error *ngIf=\"!control?.valid && (control?.dirty || form?.submited == true)\"> -->\r\n<!-- (input)=\"onInput($event.target.value)\" \r\n    (keyup)=\"onInput(inputGeneral.value)\" (change)=\"onInput(inputGeneral.value)\"-->\r\n\r\n<!-- <mat-form-field appearance=\"{{appearanceInput}}\">\r\n    <mat-label>{{label|translate}}</mat-label>\r\n    <input matInput [formControl]=\"control\" placeholder=\"{{placeholder|translate}}\" [autocomplete]=\"autocomplete\" [type]=\"type\" [required]=\"required\" [attr.maxlength]=\"maxlength\">\r\n    <mat-error *ngIf=\"control.hasError('required')\">\r\n        <strong>{{'msg.campoRequerido'|translate}}</strong>\r\n    </mat-error>\r\n</mat-form-field> -->","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\n\r\n@Component({\r\n  selector: 'safe-input-select-form',\r\n  templateUrl: './input-select-form.component.html'\r\n})\r\nexport class InputSelectFormComponent {\r\n\r\n  protected value: string;\r\n  public isNumber: boolean = false;\r\n\r\n  @Input() label: string;\r\n  @Input() required: boolean = true;\r\n  @Input() control: FormControl;\r\n  @Input() tooltip: string;\r\n  @Input() xOption: string;\r\n  @Input() xOption2: string;\r\n  @Input() xOptionSeparator: string = ' - ';\r\n  @Input() xId: string;\r\n  @Input() lst: any;\r\n  @Input() optionNone: boolean = true;//para mostrar la opcion de ninguno\r\n  @Input() optionNoneLabel: string = 'Seleccione una opción';//para mostrar la opcion de ninguno\r\n  @Input() isDisabled: boolean = false;\r\n\r\n  @Output() eventEmmitter = new EventEmitter<string>();\r\n\r\n\r\n  onChange = (_: any) => { }\r\n  onTouch = () => { }\r\n\r\n  ngOnInit() {\r\n    if (!this.tooltip) {\r\n      if (this.label) {\r\n        this.tooltip = this.label;\r\n      }\r\n    }\r\n    if(this.isDisabled) this.control.disable();\r\n  }\r\n\r\n  onInput(value: string) {\r\n    this.onTouch();\r\n    this.onChange(value);\r\n  }\r\n  writeValue(value: any): void {\r\n    if (value) {\r\n      this.value = value || '';\r\n    } else {\r\n      this.value = '';\r\n    }\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.onChange = fn;\r\n  }\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouch = fn;\r\n  }\r\n  setDisabledState(isDisabled: boolean): void {\r\n    this.isDisabled = isDisabled;\r\n  }\r\n\r\n  public selectEvent(event: any) {\r\n    this.eventEmmitter.emit(event);\r\n  }\r\n\r\n  public getOption(item: any) {\r\n    let val: string = '';\r\n    if (item[this.xOption]) {\r\n      val = item[this.xOption];\r\n    }\r\n    if (this.xOption2) {\r\n      val += this.xOptionSeparator + item[this.xOption2];\r\n    }\r\n    return val;\r\n  }\r\n}\r\n","<mat-form-field appearance=\"outline\" style=\" position: relative!important;  \">\r\n    <mat-label>{{label}}</mat-label>\r\n    <mat-select placeholder=\"Seleccione una opción \" [formControl]=\"control\" (selectionChange)='selectEvent($event)' [required]=\"required\" matTooltip=\"{{tooltip}}\" matTooltipPosition=\"above\">\r\n        <mat-option *ngIf=\"optionNone\">{{optionNoneLabel }}</mat-option>\r\n        <mat-option *ngFor=\"let item of lst\" [value]=\"item[xId]\">\r\n            {{getOption(item)}}\r\n        </mat-option>\r\n    </mat-select>\r\n    <safe-validation-input *ngIf=\"control?.errors && (control?.dirty || control?.touched)\" [control]=\"control\" [select]=\"true\" ></safe-validation-input>\r\n\r\n</mat-form-field>\r\n","export class ConstantsInputDate {\r\n\r\n\r\n\r\n    public static SEPARATOR_FILE = \"_\";\r\n    public static SEPARATOR_FILE_PATH = \"/\";\r\n    public static FORMAT_DATE_VIEW = 'dd/MM/yyyy';\r\n    public static FORMAT_TIME_VIEW = 'hh:mm a';\r\n    public static FORMAT_DATETIME_VIEW = 'dd/MM/yyyy HH:mm:ss';\r\n    public static replaceSpace = /\\s+/g;\r\n    public static MY_DATE_FORMAT = {\r\n        parse: {\r\n          dateInput: 'DD/MM/YYYY', // this is how your date will be parsed from Input\r\n        },\r\n        display: {\r\n          dateInput: 'DD/MM/YYYY', // this is how your date will get displayed on the Input\r\n          monthYearLabel: 'MMMM YYYY',\r\n          dateA11yLabel: 'LL',\r\n          monthYearA11yLabel: 'MMMM YYYY',\r\n        },\r\n      };\r\n  \r\n\r\n}  ","import { Component, Input } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { ConstantsInputDate } from '../../constants-input-date/constants-input-date';\r\n\r\n@Component({\r\n  selector: 'safe-input-date-form',\r\n  templateUrl: './input-date-form.component.html'\r\n})\r\nexport class InputDateFormComponent {\r\n  @Input() label: string;\r\n  @Input() datePickerDisabled: boolean=false;\r\n  @Input() cleanData: boolean=false;\r\n  @Input() minDate: Date;\r\n  @Input() maxDate: Date;\r\n  @Input() required: boolean;\r\n  @Input() control: FormControl = new FormControl();\r\n  @Input() tooltip: string;\r\n  @Input() isDisabled: boolean = false;\r\n\r\n  configFile = { allowExtensions: '.pdf', sizeFile: 1000000 };\r\n  formatDateView = ConstantsInputDate.FORMAT_DATE_VIEW;\r\n  formatTimeView = ConstantsInputDate.FORMAT_TIME_VIEW;\r\n  formatDatetimeView = ConstantsInputDate.FORMAT_DATETIME_VIEW;\r\n  onChange = (_: any) => { }\r\n  onTouch = () => { }\r\n\r\n\r\n\r\n  constructor() {\r\n   \r\n  }\r\n\r\n\r\n\r\n  cleanValue() {\r\n    this.control.setValue('');\r\n  }\r\n\r\n  ngOnInit() {\r\n    if(!this.tooltip){\r\n      if (this.label) {\r\n        this.tooltip = this.label;\r\n      }\r\n    }\r\n    if(this.isDisabled) this.control.disable();\r\n  }\r\n\r\n\r\n\r\n  ngAfterViewInit() {\r\n\r\n    // RESET the custom input form control UI when the form control is RESET\r\n    this.control.valueChanges.subscribe(\r\n      () => {\r\n        // check condition if the form control is RESET\r\n        // console.log('valueChanges', this.control.value);\r\n        if (this.control.value == \"\" || this.control.value == null || this.control.value == undefined) {\r\n          // this.value = \"\";\r\n          //this.inputRef.nativeElement.value = \"\";\r\n        }\r\n      }\r\n    );\r\n  }\r\n\r\n\r\n\r\n  writeValue(value: any): void {\r\n    // if (value) {\r\n    //   this.value = value || '';\r\n    // } else {\r\n    //   this.value = '';\r\n    // }\r\n    // this.value = value;\r\n    // console.log('writeValue', value);\r\n  }\r\n  registerOnChange(fn: any): void {\r\n    this.onChange = fn;\r\n    // console.log('registerOnChange', fn);\r\n  }\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouch = fn;\r\n    // console.log('registerOnTouched', fn);\r\n  }\r\n  setDisabledState(isDisabled: boolean): void {\r\n    this.isDisabled = isDisabled;\r\n    // console.log('setDisabledState', isDisabled);\r\n  }\r\n}\r\n","<mat-form-field appearance=\"outline\" matTooltip=\"{{tooltip}}\" matTooltipPosition=\"above\"\r\n    matTooltipClass=\"tooltip-background\">\r\n    <mat-label>{{label}}</mat-label>\r\n    <input matInput #inputDate [formControl]=\"control\" [matDatepicker]=\"picker2\" [min]=\"minDate\" [max]=\"maxDate\"\r\n        autocomplete=\"off\" [required]=\"required\" readonly=\"false\">\r\n    <mat-datepicker-toggle matSuffix [for]=\"picker2\" style=\"display: inline-block;\" class=\"total\"></mat-datepicker-toggle>\r\n    <mat-datepicker [disabled]=\"datePickerDisabled\" #picker2></mat-datepicker>\r\n    <mat-datepicker-toggle *ngIf=\"cleanData\" matSuffix style=\"display: inline-block;\" (click)=\"cleanValue()\">\r\n        <mat-icon matDatepickerToggleIcon>close</mat-icon>\r\n    </mat-datepicker-toggle>\r\n    <safe-validation-input *ngIf=\"control?.errors && (control?.dirty || control?.touched)\" [control]=\"control\" [date]=\"true\"></safe-validation-input>\r\n</mat-form-field>","import { Component, Input } from '@angular/core';\r\nimport {  Router } from '@angular/router';\r\n\r\n@Component({\r\n  selector: 'safe-tab',\r\n  templateUrl: './tab.component.html'\r\n})\r\nexport class TabComponent {\r\n  @Input() routes: { route: string, name: string }[] = [];\r\n  @Input() production: boolean = false;\r\n  indexRouter: number = 0;\r\n  constructor(private router: Router) {\r\n\r\n  }\r\n  onTabChange(event: any): void {\r\n    const rutaSeleccionada = this.routes[event.index].route;\r\n    if (this.production) {\r\n      this.redirection(rutaSeleccionada);\r\n    }else {\r\n      this.router.navigateByUrl(rutaSeleccionada);\r\n    }\r\n  }\r\n\r\n  ngAfterContentChecked(){\r\n    try {\r\n      const currentIndexRoute = this.routes.findIndex(ruta => ruta.route === this.router.url);\r\n      currentIndexRoute ? this.indexRouter = currentIndexRoute : this.indexRouter = 0;\r\n    } catch (error) {\r\n      this.indexRouter = 0\r\n    }\r\n  }\r\n\r\n  redirection(urlForm: string) {\r\n    this.router.navigate(['/safe']).then(()=>{\r\n      this.router.navigate([urlForm], { skipLocationChange: true });\r\n    })\r\n  }\r\n}\r\n","\r\n<div class=\"row justify-content-end\"  >\r\n    <div class=\"col-12 col-sm-5 height-tab\" [class.single-tab]=\"routes.length === 1\">\r\n        <mat-tab-group [selectedIndex]=indexRouter [disableRipple]=\"true\"  (selectedTabChange)=\"onTabChange($event)\">\r\n            <mat-tab  *ngFor=\"let ruta of routes\" [label]=\"ruta.name\"></mat-tab>\r\n        </mat-tab-group>\r\n    </div>\r\n    <div class=\"line\"></div>\r\n</div>\r\n","export enum actionsHttp{\r\n    getAll='get',\r\n    update='put',\r\n    create='post',\r\n    delete='delete'\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { QueryOptions } from '../../interfaces/request/get.interface';\r\nimport { Observable } from 'rxjs/internal/Observable';\r\nimport { actionsHttp } from '../../enums/actionsOfPetitions.enum';\r\nimport { SqlInsertValue } from '../../interfaces/request/insert.interface';\r\nimport { Update } from '../../interfaces/request/update.interface';\r\nimport { DeletionPayload, SqlDelete } from '../../interfaces/request/deletion.interface';\r\nimport { Response } from '../../interfaces/response/response.interface';\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class GenericService {\r\n\r\n\r\n\r\n  constructor(private http: HttpClient) { }\r\n\r\n  /**\r\n   * Makes an http request to get service logs\r\n   * @param filter QueryOptions \r\n   * @param relativePath string path of the service to consume\r\n   * @returns an observable of type Response\r\n   */\r\n  getRegistries(filter: QueryOptions, relativePath: string): Observable<Response> {\r\n    return this.http.post<Response>(`${relativePath}/${actionsHttp.getAll}`, filter);\r\n  }\r\n  getRegistriesNoFilter(relativePath: string): Observable<Response> {\r\n    return this.http.get<Response>(`${relativePath}/${actionsHttp.getAll}`);\r\n  }\r\n\r\n  /**\r\n   * Makes an http request to create a new record\r\n   * @param newRecord SqlInsertValue[] \r\n   * @param relativePath string path of the service to consume\r\n   * @returns an observable of type Response\r\n   */\r\n  createRegistry(newRecord: SqlInsertValue[], relativePath: string): Observable<Response> {\r\n    return this.http.post<Response>(`${relativePath}/${actionsHttp.create}`, newRecord);\r\n  }\r\n\r\n  /**\r\n   * Makes an http request to update a record\r\n   * @param updateRecord Update[]\r\n   * @param relativePath string path of the service to consume\r\n   * @returns an observable of type Response\r\n   */\r\n  updateRegistry(updateRecord: Update[], relativePath: string): Observable<Response> {\r\n    return this.http.put<Response>(`${relativePath}/${actionsHttp.update}`, updateRecord);\r\n  }\r\n\r\n  /**\r\n   * Makes an http request to delete a record\r\n   * @param recordDelete SqlDelete[]\r\n   * @param relativePath string path of the service to consume\r\n   * @returns an observable of type Response\r\n   */\r\n  deleteRegistry(recordDelete: SqlDelete[], relativePath: string): Observable<Response> {\r\n    return this.http.request<Response>('delete', `${relativePath}/${actionsHttp.delete}`, {body: recordDelete});\r\n  }\r\n\r\n  /**\r\n   * Makes an http request to delete multiple records\r\n   * @param recordsDelete DeletionPayload\r\n   * @param relativePath string path of the service to consume\r\n   * @returns an observable of type Response\r\n   */\r\n  deleteSeveralRegistry(recordsDelete: DeletionPayload, relativePath: string): Observable<Response> {\r\n    return this.http.request<Response>('delete', `${relativePath}/${actionsHttp.delete}`, {body: recordsDelete});\r\n  }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\n\r\n@Injectable({\r\n    providedIn: 'root'\r\n  })\r\nexport class validateType {\r\n    \r\n  /**\r\n   * \r\n   * @param typeProperty tipo de dato a enviar\r\n   * @param response objeto con el valor del value\r\n   * @param propiedad nombre del propertyName\r\n   * @returns objeto de insercion\r\n   */\r\n    validateType(typeProperty: string, response: any, propiedad: string) {\r\n        let res: any;\r\n        switch (typeProperty) {\r\n            case 'decimalNumber':\r\n                const value = typeof response[propiedad] ===  \"string\" ? response[propiedad].replaceAll(',', '') : response[propiedad];\r\n                res = {\r\n                    propertyName: propiedad,\r\n                    type: 'number',\r\n                    value: Number(value)\r\n                }\r\n                break;\r\n            case 'date':\r\n                const today = new Date(response[propiedad]);\r\n                let year = today.getFullYear();\r\n                let month = (today.getMonth() + 1).toString().padStart(2, \"0\");\r\n                let day = today.getDate().toString().padStart(2, \"0\");\r\n                res = {\r\n                    propertyName: propiedad,\r\n                    type: 'date',\r\n                    value: `${day}-${month}-${year}`\r\n                }\r\n                break;\r\n            default:\r\n                res = {\r\n                    propertyName: propiedad,\r\n                    type: typeProperty,\r\n                    value: response[propiedad]\r\n                }\r\n                break;\r\n        }\r\n        return res;\r\n    }\r\n}","import { Injectable, inject } from '@angular/core';\r\nimport { Observable, firstValueFrom } from \"rxjs\";\r\nimport { FormGroup } from \"@angular/forms\";\r\n\r\n\r\nimport { GenericService } from '../services/generic/generic.service';\r\nimport { Condition, QueryOptions } from '../interfaces/request/get.interface';\r\nimport { NotificationTService } from 'safe-notification-popup';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class InputValidation {\r\n  genericService = inject(GenericService)\r\n  notificationService = inject(NotificationTService)\r\n\r\n  async getDataFunction(filter: QueryOptions, url: string) {\r\n    const res: any = await firstValueFrom(this.genericService.getRegistries(filter, url), { defaultValue: [] });\r\n\r\n    return res.payload.queryResponse;\r\n  }\r\n  /**\r\n   * Función para validar helplists en el componente genérico\r\n   * @param form Nombre del FormGroup en el formulario utilizado\r\n   * @param idFormReferSpecial Nombre del input de búsqueda en el formulario\r\n   * @param showField Nombre de la columna de búsqueda\r\n   * @param filterConditions Condiciones del filtro \r\n   * @param urlService Url del servicio get\r\n   * @param required Indica si es campo de búsqueda es requerido o no.\r\n   * @param updateDependents Arreglo con la relación de los campos a setear en el helplist \r\n   * @param idRefer id de referencia del helplist (genérico) Este parámetro es opcional\r\n   * @param idFormRefer Input id de referencia en el formulario (genérico) Este parámetro es opcional\r\n   */\r\n\r\n\r\n  async validateInputHelplist(\r\n    form: FormGroup,\r\n    idFormReferSpecial: string,\r\n    showField: string,\r\n    filterConditions: Condition[],\r\n    urlService: string,\r\n    required: boolean = false,\r\n    updateDependents:any =null,\r\n    idRefer: any = null,\r\n    idFormRefer: any =null,\r\n    ) {\r\n\r\n\r\n\r\n    if (form.controls[idFormReferSpecial].value !== null && form.controls[idFormReferSpecial].value !== '' && form.controls[idFormReferSpecial].value !== undefined ) {\r\n\r\n      const filter: any = {\r\n        conditions: filterConditions,\r\n        orderOptions: [],\r\n        pagination: { currentPage: 1, totalRows: null, pageSize: 10 },\r\n      };\r\n      try {\r\n        const res: any = await this.getDataFunction(filter, urlService);\r\n        if (res?.length > 0) { \r\n\r\n\r\n          form.controls[idFormReferSpecial].setValue(res[0][showField]);\r\n           if(idRefer){\r\n            form.controls[idFormRefer].setValue(res[0][idRefer]);\r\n            } \r\n          if (updateDependents.length>0) {\r\n            updateDependents.forEach(update=>{\r\n              form.controls[update.nameControl].setValue(res[0][update.nameField]);\r\n            })\r\n          }      \r\n        } else {\r\n           if(idRefer){\r\n            form.controls[idFormRefer].setValue(null);\r\n            } \r\n          if (updateDependents.length>0) {\r\n            updateDependents.forEach(update=>{\r\n              form.controls[update.nameControl].setValue(null);\r\n            })\r\n          }\r\n          form.controls[idFormReferSpecial].setErrors({ notFound: true });\r\n          this.notificationService.info({\r\n            title: 'Advertencia',\r\n            body: 'No se encontró ningún registro',\r\n          });\r\n\r\n        }\r\n\r\n      } catch (error) {\r\n        if(idRefer){\r\n          form.controls[idFormRefer].setValue(null);\r\n          }\r\n        form.controls[idFormReferSpecial].setValue(null);\r\n        this.notificationService.error({\r\n          title: 'Error',\r\n          body: error.error.errors,\r\n        });\r\n\r\n      }\r\n    } else {\r\n      if (required == true) {\r\n        form.controls[idFormReferSpecial].setErrors({ required: true });\r\n        this.notificationService.info({\r\n          title: 'Advertencia',\r\n          body: 'Este campo es obligatorio.',\r\n        });\r\n      }\r\n    }\r\n   \r\n\r\n  }\r\n}\r\n\r\n","import { Directive, ElementRef, HostListener, Input, OnInit, ViewContainerRef } from '@angular/core';\r\n\r\nimport { GridComponent } from \"safe-grid\";\r\nimport { PopupService } from 'safe-notification-popup';\r\n\r\n\r\n\r\n@Directive({\r\n  selector: '[helpList]'\r\n})\r\nexport class OptionsDropdownlistDirective implements OnInit  {\r\n\r\n  @Input() helpList: any;\r\n  @Input() oppTitle = null;\r\n  @Input() oppWidth = '100%';\r\n  @Input() oppHeight = 'auto';\r\n  private component: any;\r\n  constructor(\r\n    private _view: ViewContainerRef, \r\n    private el: ElementRef, \r\n    public dialog: PopupService\r\n  ) { }\r\n\r\n  ngOnInit() {\r\n    const view: any = this._view;\r\n    if (view._view !== undefined) {\r\n      this.component = view._view.component;\r\n    }\r\n  }\r\n\r\n  @HostListener('click', ['$event'])\r\n  @HostListener('keydown.f9', ['$event'])\r\n\r\n  enter(event) {\r\n    console.log('ok');\r\n    \r\n    if ((event.type === 'keydown') ||\r\n        (event.type === 'click' && event.target.tagName === 'MAT-ICON') ||\r\n        (event.type === 'click' && (event.target.tagName === 'BUTTON' || event.target.tagName === 'SPAN'))) {\r\n\r\n      if (event.target.disabled || event.target.readOnly) { return; }\r\n\r\n      if (this.helpList === undefined || this.helpList === null) { return; }\r\n      const dataSource = this.helpList;\r\n      dataSource.opp = {\r\n        dialog: this.dialog,\r\n        el: this.el\r\n      };\r\n      this.dialog.custom({\r\n        component: GridComponent,\r\n        width: this.oppWidth,\r\n        height: this.oppHeight,\r\n        title: this.oppTitle,\r\n        data: {\r\n          dataSource\r\n        }\r\n      }, (response) => {\r\n        // console.log(response);\r\n      });\r\n    }\r\n  }\r\n\r\n}\r\n","import { Component, Input, OnDestroy, OnInit, ViewChild, inject } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, NgForm } from '@angular/forms';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\nimport { GenericService } from '../../../core/services/generic/generic.service';\r\nimport { QueryOptions } from '../../../core/interfaces/request/get.interface';\r\nimport { lastValueFrom } from 'rxjs/internal/lastValueFrom';\r\nimport { Title } from '../../../core/interfaces/genericComponent/generic-object-component.interface';\r\nimport { InputValidation } from '../../../core/factory/input-validations';\r\n\r\nimport { validateType } from '../../services/validateType/validateType';\r\nimport { GridComponent } from 'safe-grid';\r\nimport { NotificationTService } from 'safe-notification-popup';\r\nimport { Update } from '../../../core/interfaces/request/update.interface';\r\nimport { SqlInsertValue } from '../../../core/interfaces/request/insert.interface';\r\nimport { Subject, Subscription, takeUntil } from 'rxjs';\r\n\r\n@Component({\r\n  selector: 'safe-generic-form',\r\n  templateUrl: './generic-form.component.html'\r\n})\r\nexport class GenericFormComponent implements OnInit, OnDestroy {\r\n  validateTypeService = inject(validateType);\r\n  genericService = inject(GenericService);\r\n  unSubsChanges?: Subscription;\r\n  destroyServices$ = new Subject<void>();\r\n  @ViewChild('formV', { static: false }) formV!: NgForm;\r\n  myForm!: FormGroup;\r\n  @Input() arrayTitles: any[] = [];\r\n  @Input() id_usuario: number;\r\n  @Input() others_bind: any = [];\r\n  @Input() disabledForm: boolean = false;\r\n  @Input() urlService: string;\r\n  @Input() componentCurrent: GridComponent;\r\n  @Input() typePetition: string;\r\n  @Input() idRefer: string = '';\r\n  @Input() row: any;\r\n  notificationService = inject(NotificationTService);\r\n  currentValueForHelpListHiddenFilter: any;\r\n  currentHelpListKey: string;  \r\n  currentIdFormRefer: string;\r\n  auxEnableField: boolean = false;\r\n\r\n  get form() {\r\n    return this.myForm;\r\n  }\r\n  constructor(\r\n    private fb: FormBuilder,\r\n    private dialogRef: MatDialogRef<GenericFormComponent>,\r\n\r\n    private InputValidation: InputValidation\r\n  ) {}\r\n\r\n  ngOnInit() {\r\n    this.injectDataHelpList();\r\n    this.buildControlsForm();\r\n  }\r\n  buildControlsForm() {\r\n    this.myForm = this.fb.group({});\r\n\r\n    this.arrayTitles.forEach((r) => {\r\n      if (r.value && r.hasDependency) {\r\n        this.auxEnableField = true;\r\n      }\r\n      if (r.destinationHelpListKey) {\r\n        this.currentHelpListKey = r.destinationHelpListKey;\r\n        this.currentIdFormRefer = r.idFormReferByDependency;\r\n      }\r\n      if (r.helpListParameter) {\r\n        this.myForm.addControl(r.helpListParameter.idFormRefer, new FormControl(r.value && r.value.id ? r.value.id : null, r.validators ? r.validators : []));\r\n        this.myForm.addControl(r.helpListParameter.idFormRefer + '_#a*e/', new FormControl(r.value && r.value.name ? r.value.name : null, r.validators ? r.validators : []));\r\n\r\n        if (r.disabledControl || this.disabledForm || (r.hasDependency && !this.auxEnableField)) {\r\n          this.disableControl(r.helpListParameter.idFormRefer + '_#a*e/');\r\n        }\r\n      } else if (r.selectOption) {\r\n        this.myForm.addControl(r.selectOption.idPetition ? r.selectOption.idPetition : r.key, new FormControl(r.value ? r.value : null, r.validators ? r.validators : []));\r\n\r\n        if (r.disabledControl || this.disabledForm) {\r\n          this.disableControl(r.selectOption.idPetition ? r.selectOption.idPetition : r.key);\r\n        }\r\n      } else {\r\n        this.myForm.addControl(r.key, new FormControl(r.value ? r.value : null, r.validators ? r.validators : []));\r\n      }\r\n      if (r.disabledControl || this.disabledForm || (r.hasDependency && !this.auxEnableField)) {\r\n        this.disableControl(r.key);\r\n      }\r\n      if (r.defaultValue) {\r\n        this.myForm.get(r.key).setValue(r.defaultValue);\r\n      }\r\n      if (r.sendValueToHelpList) {\r\n        this.createSubscriptionForHiddenFilter(r);\r\n        if (r.value) {                \r\n          if (typeof r.value === 'object' && r.value.id !== undefined) {\r\n            this.currentValueForHelpListHiddenFilter = r.value.id;\r\n          } else {\r\n            this.currentValueForHelpListHiddenFilter = r.value ?? '';\r\n          }              \r\n          this.injectDataHelpList();\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  disableControl(controlName: string) {\r\n    if (this.myForm.get(controlName)) {\r\n      this.myForm.get(controlName).disable();\r\n    }\r\n  }\r\n\r\n  getTitlesWithFilterNewName(filter: QueryOptions) {\r\n    if (filter.conditions.length > 0) {\r\n      filter.conditions.forEach((condition2) => {\r\n        this.arrayTitles.forEach((title) => {\r\n          if (title.helpListParameter && title.helpListParameter.titles && title.helpListParameter.titles.length > 0) {\r\n            var filter = title.helpListParameter.titles.find((filterNew) => filterNew.key === condition2.propertyName);\r\n            if (filter && filter.filterNewName) {\r\n              condition2.propertyName = filter.filterNewName;\r\n            }\r\n          }\r\n        });\r\n      });\r\n    }\r\n  }\r\n  async getData(filter: QueryOptions, url: string) {\r\n    this.getTitlesWithFilterNewName(filter);\r\n    const categories$ = this.genericService.getRegistries(filter, url);\r\n    return (await lastValueFrom(categories$))?.payload;\r\n  }\r\n\r\n  injectDataHelpList() {\r\n    this.arrayTitles.forEach((title) => {\r\n      if (title.helpListParameter) {\r\n        title.helpListFunction = {\r\n          data: async (filter: QueryOptions) => await this.getData(filter, title.helpListParameter.urlService),\r\n          titles: [...title.helpListParameter.titles],\r\n          hiddenFilter: title.helpListParameter.hiddenFilter\r\n            ? this.treatDataHelpListHiddenFilter(title.helpListParameter.hiddenFilter)\r\n            : () => {\r\n                return [];\r\n              },\r\n          params: {\r\n            title: title.helpListParameter.params.title ? title.helpListParameter.title : null,\r\n            width: '100%',\r\n            height: title.helpListParameter.params.height,\r\n            maxHeight: title.helpListParameter.params.maxHeight,\r\n            minHeight: title.helpListParameter.params.minHeight,\r\n            serverFilter: title.helpListParameter.params.serverFilter,\r\n            startEmpty: false,\r\n            paginatorSize: title.helpListParameter.params.paginatorSize,\r\n          },\r\n          onEnter: (grid: any, data: any, key: string) => {\r\n            if (data) {\r\n              this.upgradeControlsHelpList(title, data);\r\n              title.helpListFunction?.grid?.dialog?.dialogRef?.close();\r\n            }\r\n          },\r\n        };\r\n      }\r\n    });\r\n  }\r\n\r\n  createSubscriptionForHiddenFilter(fieldName: any): void {\r\n    this.currentHelpListKey = fieldName.destinationHelpListKey;\r\n    this.currentIdFormRefer = fieldName.idFormReferByDependency;\r\n    this.unSubsChanges = this.form.get(fieldName.key)?.valueChanges.subscribe((value) => {\r\n      if (value) {              \r\n        this.form.get(`${fieldName.idFormReferByDependency}_#a*e/`)?.reset();\r\n        this.form.get(fieldName.hasCodependency)?.reset();\r\n        this.auxEnableField = true;\r\n        this.currentValueForHelpListHiddenFilter = value;\r\n        this.form.get(`${fieldName.idFormReferByDependency}_#a*e/`)?.enable();\r\n        fieldName.helpListFunction?.grid?.dialog?.dialogRef?.close();\r\n        this.injectDataHelpList();\r\n      }\r\n    });\r\n  }\r\n\r\n  treatDataHelpListHiddenFilter(filter: any) {\r\n    let newFilter = filter[0];\r\n    if (this.currentHelpListKey && this.currentHelpListKey === newFilter.propertyName && newFilter.condition && newFilter.type) {\r\n      newFilter.value = this.currentValueForHelpListHiddenFilter;\r\n    }\r\n    return [newFilter];\r\n  }\r\n\r\n  createRegistry(response: any) {\r\n    var sqlInsertValue: SqlInsertValue[] = [];\r\n    for (let propiedad in response) {\r\n      const typeProperty = this.arrayTitles.find((r) => r.key == propiedad) ? this.arrayTitles.find((r) => r.key == propiedad)!.type : 'text';\r\n      if (response.hasOwnProperty(propiedad)) {\r\n        sqlInsertValue.push(this.validateTypeService.validateType(typeProperty, response, propiedad));\r\n      }\r\n    }\r\n    sqlInsertValue.push({\r\n      propertyName: 'id_usuario_aplicativo',\r\n      type: 'number',\r\n      value: this.id_usuario,\r\n    });\r\n    if (this.others_bind) {\r\n      this.others_bind.forEach((element) => {\r\n        sqlInsertValue.push({\r\n          propertyName: element.propertyName,\r\n          type: element.type,\r\n          value: element.value,\r\n        });\r\n      });\r\n    }\r\n    this.genericService.createRegistry(sqlInsertValue, this.urlService).pipe(takeUntil(this.destroyServices$)).subscribe(async (res) => {\r\n      await this.componentCurrent.filter();\r\n      const queryResponse: any = res.payload.queryResponse;\r\n      this.notificationService.success({\r\n        title: 'Éxitoso',\r\n        body: [queryResponse.message],\r\n      });\r\n      this.dialogRef.close(this.getObjectForm());\r\n      this.myForm.reset();\r\n    });\r\n  }\r\n\r\n  upgradeControlsHelpList(title: any, data: any) {\r\n    this.form.get(title.helpListParameter.idFormRefer)?.setValue(data[title.helpListParameter.idRefer]);\r\n    this.form\r\n      .get(title.helpListParameter.idFormRefer + '_#a*e/')\r\n      ?.setValue(title.helpListParameter.showFieldSecond ? data[title.helpListParameter.showField] + ' - ' + data[title.helpListParameter.showFieldSecond] : data[title.helpListParameter.showField]);\r\n    if (title.helpListParameter.updateDependents) {\r\n      title.helpListParameter.updateDependents.forEach((updateDependent) => {\r\n        if (updateDependent.type == 'upgrade') {\r\n          this.form.get(updateDependent.nameControl)?.setValue(data[updateDependent.nameField]);\r\n        } else if (updateDependent.type == 'reset') {\r\n          this.form.get(updateDependent.name)?.setValue(null);\r\n        }\r\n      });\r\n    }\r\n  }\r\n  add() {\r\n    try {\r\n      var objectForm = this.getObjectForm();\r\n      if (this.typePetition == 'post') {\r\n        this.createRegistry(objectForm);\r\n      }\r\n      if (this.typePetition == 'put') {\r\n        this.updateRegistry(objectForm);\r\n      }\r\n    } catch (error) {\r\n      console.error(error);\r\n    }\r\n  }\r\n  updateRegistry(response: any) {\r\n    var sqlUpdateValue = [];\r\n\r\n    for (let propiedad in response) {\r\n      if (response.hasOwnProperty(propiedad)) {\r\n        const typeProperty = this.arrayTitles.find((r) => r.key == propiedad) ? this.arrayTitles.find((r) => r.key == propiedad)!.type : 'text';\r\n        sqlUpdateValue.push(this.validateTypeService.validateType(typeProperty, response, propiedad));\r\n      }\r\n    }\r\n    sqlUpdateValue.push({\r\n      propertyName: 'id_usuario_aplicativo',\r\n      type: 'number',\r\n      value: this.id_usuario,\r\n    });\r\n    if (this.others_bind.length > 0) {\r\n      this.others_bind.forEach((element) => {\r\n        sqlUpdateValue.push({\r\n          propertyName: element.propertyName,\r\n          type: element.type,\r\n          value: element.value,\r\n        });\r\n      });\r\n    }\r\n    const sqlUpdateCondition: Update[] = [\r\n      {\r\n        sqlUpdateValues: [...sqlUpdateValue],\r\n        sqlUpdateConditions: [\r\n          {\r\n            propertyName: `${this.idRefer}_`,\r\n            type: 'number',\r\n            value: this.row[this.idRefer],\r\n          },\r\n        ],\r\n      },\r\n    ];\r\n    this.genericService.updateRegistry(sqlUpdateCondition, this.urlService).pipe(takeUntil(this.destroyServices$)).subscribe(async (res) => {\r\n      await this.componentCurrent.filter();\r\n      const queryResponse: any = res.payload.queryResponse;\r\n      this.notificationService.success({\r\n        title: 'Éxitoso',\r\n        body: [queryResponse.message],\r\n      });\r\n      this.dialogRef.close(this.getObjectForm());\r\n      this.myForm.reset();\r\n    });\r\n  }\r\n  getObjectForm(): object {\r\n    var objectForm: any = {};\r\n    for (let index = 0; index < this.arrayTitles.length; index++) {\r\n      const title = this.arrayTitles[index];\r\n      var nameControl = '';\r\n      if (title.disabledControl && !title.disabledSendId) {\r\n        continue;\r\n      }\r\n      if (title.helpListParameter) {\r\n        nameControl = title.helpListParameter.idFormRefer;\r\n      } else if (title.selectOption) {\r\n        nameControl = title.selectOption.idPetition ? title.selectOption.idPetition : title.key;\r\n      } else {\r\n        nameControl = title.key;\r\n      }\r\n\r\n      objectForm[nameControl] = this.myForm.get(nameControl).value;\r\n    }\r\n    return objectForm;\r\n  }\r\n\r\n  /**\r\n   * Set reactive form elements to null and reset validators\r\n   */\r\n  clean() {\r\n    this.auxEnableField = false;\r\n    this.form.get(`${this.currentIdFormRefer}_#a*e/`)?.disable();  \r\n    this.myForm.reset();\r\n  }\r\n\r\n  /**\r\n   * Looks for the control passed as a parameter in the form\r\n   * @param controlName string form identifier key\r\n   * @returns FormControl\r\n   */\r\n\r\n  getControl(controlName: string): FormControl {\r\n    if (this.myForm.get(controlName)) {\r\n      // El control existe\r\n      return this.myForm.get(controlName) as FormControl;\r\n    } else {\r\n      var control = new FormControl();\r\n      return control as FormControl;\r\n    }\r\n  }\r\n\r\n  disabledFormCase(title: Title): boolean {\r\n    return this.disabledForm ? !title.noShowInVisibility : !title.hideForm;\r\n  }\r\n\r\n  validateValuesImp(helpListParameter: any) {\r\n    if (\r\n      this.myForm.controls[helpListParameter.idFormRefer + '_#a*e/'] &&\r\n      this.myForm.controls[helpListParameter.idFormRefer + '_#a*e/'].value !== '' &&\r\n      this.myForm.controls[helpListParameter.idFormRefer + '_#a*e/'].value !== null &&\r\n      this.myForm.controls[helpListParameter.idFormRefer + '_#a*e/'].value !== undefined\r\n    ) {\r\n   \r\n      var titleFind = helpListParameter.titles.find((title) => title.key == helpListParameter.showField);\r\n\r\n\r\n      //type no existe de showField\r\n      this.InputValidation.validateInputHelplist(\r\n        this.myForm,\r\n        helpListParameter.idFormRefer + '_#a*e/',\r\n        helpListParameter.showField,\r\n        [\r\n          {\r\n            propertyName: titleFind.key,\r\n            condition: 'eq' /*titleFind.filter.condition*/,\r\n            type: titleFind.type,\r\n            value: this.form.controls[helpListParameter.idFormRefer + '_#a*e/'].value,\r\n          },\r\n        ],\r\n        helpListParameter.urlService,\r\n        false,\r\n        helpListParameter.updateDependents ? helpListParameter.updateDependents : [],\r\n        helpListParameter.idRefer,\r\n        helpListParameter.idFormRefer\r\n      );\r\n    }\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.destroyServices$.next();\r\n    this.destroyServices$.complete();\r\n    if (this.unSubsChanges) this.unSubsChanges.unsubscribe();\r\n  }\r\n  closePopup() {\r\n    this.dialogRef.close();\r\n  }\r\n}\r\n","<div class=\"container-fluid\">\r\n  <div class=\"row\">\r\n    <div class=\"col-12\">\r\n      <mat-card>\r\n        <mat-card-content>\r\n          <form  #formV=\"ngForm\" [formGroup]=\"myForm\" [attr.disabled]=\"true\">\r\n            <div class=\"row\">\r\n              <div [class]=\"title.formFieldWidth ? title.formFieldWidth : (title.hideForm && title.hideForm === true ? 'd-none' :'col-xs-12 col-sm-6')\"\r\n                *ngFor=\"let title of arrayTitles\">\r\n                <safe-input-general-form [textArea]=\"title.textArea\" [upperCase]=\"title.normalCase?false:true\"\r\n                  *ngIf=\"!title.selectOption && !title.dateOption && !title.helpListParameter && disabledFormCase(title)\"\r\n                  [control]=\"getControl(title.key)\" [label]=\"title.label\" [type]=\"title.type\" [required]=\"title.hasRequired\">\r\n                </safe-input-general-form>\r\n                <safe-input-general-form [textArea]=\"title.textArea\" *ngIf=\"title.helpListParameter && disabledFormCase(title)\" [oppTitle]=\"title.helpListParameter.title\"\r\n                  [icon]=\"title.helpListParameter.icon\" [helpList]=\"title.helpListFunction\" [upperCase]=\"title.normalCase?false:true\"\r\n                  [oppWidth]=\"title.helpListParameter.oppWidth\" [oppHeight]=\"title.helpListParameter.oppHeight\"\r\n                  [control]=\"getControl(title.helpListParameter.idFormRefer+'_#a*e/')\" [label]=\"title.label\" [type]=\"title.type\" [required]=\"title.hasRequired\"\r\n                  [isReadOnly]=\"false\" (onBlurInput)=\"validateValuesImp(title.helpListParameter)\"\r\n                  >\r\n                </safe-input-general-form>\r\n                <safe-input-select-form *ngIf=\"title.selectOption && disabledFormCase(title)\" [label]=\"title.label\" [lst]=\"title.selectOption.data\"\r\n                  [xOption]=\"title.selectOption.showField\" [xOption2]=\"title.selectOption.showFieldTwo\"\r\n                  [optionNone]=\"title.optionNone\" [optionNoneLabel]=\"title.optionNoneLabel\" [xId]=\"title.selectOption.id\" [control]=\"getControl( title.selectOption.idPetition ? title.selectOption.idPetition : title.key)\" [required]=\"title.hasRequired\"\r\n                  [isDisabled]=\"disabledForm\">\r\n                </safe-input-select-form>\r\n                <safe-input-date-form *ngIf=\"title.type=='date' && disabledFormCase(title)\" [label]=\"title.label\" [control]=\"getControl(title.key)\"\r\n                  [minDate]=\"title.dateOption.minDate?title.dateOption.minDate:null\"\r\n                  [maxDate]=\"title.dateOption.maxDate?title.dateOption.maxDate:null\" [required]=\"title.hasRequired\" [isDisabled]=\"disabledForm\"></safe-input-date-form>\r\n              </div>\r\n            </div>\r\n\r\n            <div class=\"row\" *ngIf=\"!disabledForm\">\r\n              <div class=\"col-sm-12 form-group\" *ngIf=\"arrayTitles.length > 4\">\r\n                <safe-buttons-form [showBtnAccept]=\"true\" [submit]=\"!form.valid\" (eventEmmitterAccept)=\"add()\"\r\n                  [labelBtnAccept]=\"'Guardar'\" [iconAccept]=\"'save'\" [showBtnClean]=\"true\"\r\n                  (eventEmmitterClean)=\"clean()\" [labelBtnClean]=\"'Limpiar'\"  [showBtnCancel]=\"true\"\r\n                  (eventEmmitterCancel)=\"closePopup()\" [labelBtnCancel]=\"'Cancelar'\"\r\n                  class=\"float-right\"></safe-buttons-form>\r\n              </div>\r\n              <div class=\"col-sm-12 form-group\" *ngIf=\"arrayTitles.length <= 4\">\r\n                <safe-buttons-form [showBtnAccept]=\"true\" [submit]=\"!form.valid\" (eventEmmitterAccept)=\"add()\"\r\n                [labelBtnAccept]=\"'Guardar'\" [iconAccept]=\"'save'\" [showBtnCancel]=\"true\"\r\n                (eventEmmitterCancel)=\"closePopup()\" [labelBtnCancel]=\"'Cancelar'\"\r\n                class=\"float-right\"></safe-buttons-form>\r\n              </div>\r\n            </div>\r\n          </form>\r\n        </mat-card-content>\r\n      </mat-card>\r\n    </div>\r\n  </div>\r\n</div>","import { Injectable, inject,OnDestroy } from '@angular/core';\r\n\r\nimport { Deletion, DeletionPayload, SqlDelete } from '../../../core/interfaces/request/deletion.interface';\r\nimport { GenericService } from '../../../core/services/generic/generic.service';\r\n\r\nimport { GridComponent } from 'safe-grid';\r\nimport { NotificationTService, PopupService } from 'safe-notification-popup';\r\nimport { Subject } from 'rxjs/internal/Subject';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n\r\nexport interface MultipleDeletionInterface {\r\n  componentCurrent: GridComponent | null,\r\n  idRefer: string,\r\n  urlService: string,\r\n  arrayElimination: any,\r\n  arrayEliminationTemp: any,\r\n  isEnableDeleteButton: boolean\r\n}\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class MultipleDeletionService implements OnDestroy {\r\n  popupService = inject(PopupService);\r\n  genericService = inject(GenericService);\r\n  notificationService = inject(NotificationTService);\r\n  destroyServices$ = new Subject<void>();\r\n  /**\r\n   * \r\n   * @param multipleDeletionElement Elemento que contiene componentCurrent, idRefer, urlService, arrayElimination, arrayEliminationTemp, isEnableDeleteButton\r\n   */\r\n  onLoadCheck(multipleDeletionElement: MultipleDeletionInterface) {\r\n    multipleDeletionElement.arrayElimination.forEach((itemOne: any) => {\r\n      const index = multipleDeletionElement.componentCurrent.dataSourceMat.data.findIndex((itemTwo: any) => itemOne[multipleDeletionElement.idRefer] === itemTwo[multipleDeletionElement.idRefer])\r\n      if (index !== -1) {\r\n        if (multipleDeletionElement.arrayEliminationTemp.find(item => item[multipleDeletionElement.idRefer] === multipleDeletionElement.componentCurrent.dataSourceMat.data[index][multipleDeletionElement.idRefer])) {\r\n          multipleDeletionElement.componentCurrent.dataSourceMat.data[index].onCheck = new Promise((resolve) => { resolve(false); })\r\n          multipleDeletionElement.componentCurrent.dataSourceMat.data[index]['CHECK'] = null;\r\n          multipleDeletionElement.isEnableDeleteButton = false;\r\n        } else {\r\n          multipleDeletionElement.componentCurrent.dataSourceMat.data[index]['CHECK'] = 'Sí';\r\n        }\r\n      }\r\n    })\r\n\r\n    multipleDeletionElement.arrayEliminationTemp.forEach(elm => {\r\n      const indexElementDelete = multipleDeletionElement.arrayElimination.findIndex((opc: any) => opc[multipleDeletionElement.idRefer] === elm[multipleDeletionElement.idRefer]);\r\n      multipleDeletionElement.arrayElimination.splice(indexElementDelete, 1);\r\n    })\r\n    multipleDeletionElement.arrayEliminationTemp = [];\r\n  }\r\n\r\n  /**\r\n   * \r\n   * @param multipleDeletionElement Elemento que contiene componentCurrent, idRefer, urlService, arrayElimination, arrayEliminationTemp, isEnableDeleteButton\r\n   * @param row posicion a buscar en multipleDeletionElement.componentCurrent.dataSourceMat.data[row]['CHECK']\r\n   * @param newValue puede ser Sí o No\r\n   * @param masive booleano para identificar si es uno o más de uno\r\n   */\r\n  onCheckDeleteAll(multipleDeletionElement: MultipleDeletionInterface, row: number, newValue: string, masive: boolean) {\r\n    multipleDeletionElement.isEnableDeleteButton = true;\r\n    multipleDeletionElement.componentCurrent.dataSourceMat.data[row]['CHECK'] = newValue;\r\n    if (masive && newValue === 'Sí') {\r\n      this.addDataDelete(multipleDeletionElement, row, 'add');\r\n    } else if (!masive && newValue === 'Sí') {\r\n      this.addDataDelete(multipleDeletionElement, row, 'add');\r\n    } else if (masive && newValue === 'No') {\r\n      multipleDeletionElement.arrayElimination = [];\r\n    } else if (!masive && newValue === 'No') {\r\n      this.addDataDelete(multipleDeletionElement, row, 'del');\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Destinada para eliminar un registro del grid\r\n   * @param multipleDeletionElement Elemento que contiene componentCurrent, idRefer, urlService, arrayElimination, arrayEliminationTemp, isEnableDeleteButton\r\n   * @param row parametro que contiene información de la data a eliminar\r\n   */\r\n  deleteRegistry(multipleDeletionElement: MultipleDeletionInterface, row: any) {\r\n    const respuesta = {\r\n      title: 'Confirmar',\r\n      body: '¿Desea eliminar este registro?',\r\n      width: '30%',\r\n      labelCancel: 'Cancelar',\r\n      labelAccept: 'Continuar'\r\n    };\r\n    this.popupService.confirm(respuesta, (response: any) => {\r\n      if (response) {\r\n        const sqlDeleteCondition: SqlDelete[] = [\r\n          {\r\n            propertyName: multipleDeletionElement.idRefer,\r\n            type: 'number',\r\n            value: row[multipleDeletionElement.idRefer]\r\n          }\r\n        ]\r\n\r\n        this.genericService.deleteRegistry(sqlDeleteCondition, multipleDeletionElement.urlService)\r\n          .pipe(takeUntil(this.destroyServices$)).subscribe({\r\n            next: async res => {\r\n              await multipleDeletionElement.componentCurrent.loadingReset();\r\n              const queryResponse: any = res.payload.queryResponse;\r\n              this.addDataDelete(multipleDeletionElement, row, 'del');\r\n              this.notificationService.success({ title: \"Éxitoso\", body: [queryResponse.message] })\r\n            },\r\n            error: async err => {\r\n              this.responseDeleteError(multipleDeletionElement, err);\r\n            }\r\n          })\r\n      }\r\n      return;\r\n    })\r\n  }\r\n\r\n  /**\r\n   * Función permite eliminar un array de registros\r\n   * @param multipleDeletionElement Elemento que contiene componentCurrent, idRefer, urlService, arrayElimination, arrayEliminationTemp, isEnableDeleteButton\r\n   */\r\n  deleteArrayData(multipleDeletionElement: MultipleDeletionInterface) {\r\n    const respuesta = {\r\n      title: 'Confirmar',\r\n      body: '¿Desea elimina(r) estos registro(s)?',\r\n      width: '30%',\r\n      labelCancel: 'Cancelar',\r\n      labelAccept: 'Continuar'\r\n    };\r\n    this.popupService.confirm(respuesta, (response: any) => {\r\n      if (response) {\r\n        const sqlDeleteCondition: DeletionPayload = {\r\n          deletions: []\r\n        }\r\n        const arrayDeletion: Deletion[] = [];\r\n        multipleDeletionElement.arrayElimination.forEach((item: any) => {\r\n          const arraySqlDelete: SqlDelete[] = [\r\n            {\r\n              propertyName: multipleDeletionElement.idRefer,\r\n              type: 'number',\r\n              value: item[multipleDeletionElement.idRefer]\r\n            }\r\n          ]\r\n          arrayDeletion.push({\r\n            sqlDelete: arraySqlDelete\r\n          })\r\n        })\r\n        sqlDeleteCondition.deletions = arrayDeletion;\r\n\r\n        this.genericService.deleteSeveralRegistry(sqlDeleteCondition, multipleDeletionElement.urlService)\r\n        .pipe(takeUntil(this.destroyServices$)).subscribe({\r\n            next: async response => this.responseDeleteSeveral(multipleDeletionElement, response),\r\n            error: err => this.responseDeleteError(multipleDeletionElement, err)\r\n          })\r\n      }\r\n      return;\r\n    })\r\n  }\r\n\r\n  /**\r\n   * Metodo que permite recargar el grid y mostrar la notificación de registros eliminados\r\n   * @param multipleDeletionElement Elemento que contiene componentCurrent, idRefer, urlService, arrayElimination, arrayEliminationTemp, isEnableDeleteButton\r\n   * @param response respuesta del servidor, se espera que tenga payload y dentro queryResponse\r\n   */\r\n  async responseDeleteSeveral(multipleDeletionElement: MultipleDeletionInterface, response: any) {\r\n    await multipleDeletionElement.componentCurrent.loadingReset();\r\n    this.cleanArrayElimination(multipleDeletionElement);\r\n    const queryResponse: any = response.payload.queryResponse;\r\n    this.notificationService.success({ title: 'Éxitoso', body: [queryResponse.message] });\r\n  }\r\n\r\n  /**\r\n   * Eliminar el array de elemento seleccionados a eliminar\r\n   * @param multipleDeletionElement Elemento que contiene componentCurrent, idRefer, urlService, arrayElimination, arrayEliminationTemp, isEnableDeleteButton\r\n   */\r\n  cleanArrayElimination(multipleDeletionElement: MultipleDeletionInterface) {\r\n    multipleDeletionElement.arrayElimination = [];\r\n  }\r\n\r\n  /**\r\n   * Metodo que permite recargar el grid y manejar los registros elminados\r\n   * @param multipleDeletionElement Elemento que contiene componentCurrent, idRefer, urlService, arrayElimination, arrayEliminationTemp, isEnableDeleteButton\r\n   * @param error error del servidor, contiene error.error.errors\r\n   * @returns \r\n   */\r\n  async responseDeleteError(multipleDeletionElement: MultipleDeletionInterface, error: any) {\r\n    let idsItemsNotDeleted = [];\r\n\r\n    if (error?.error?.errors instanceof Array) {\r\n      idsItemsNotDeleted = error.error.errors.map(cadena => {\r\n        const expresionRegular = /[\\w.,]*\\b(Id|ID|id):\\s*\\d+\\b[\\w.,]*/;\r\n        const cumpleExpresion = expresionRegular.test(cadena);\r\n        if (cumpleExpresion) {\r\n          const expresionNumeros = /(?:Id|ID|id):\\s*(\\d+)/i;\r\n          const numeros = cadena.match(expresionNumeros);\r\n          return Number(numeros[1]);\r\n        }\r\n        return null;\r\n      })\r\n    }\r\n    \r\n    if(idsItemsNotDeleted.length === 0) return;\r\n    idsItemsNotDeleted = idsItemsNotDeleted.filter(item => item !== null);\r\n    const indexElementFailed = multipleDeletionElement.arrayElimination.findIndex(item => item[multipleDeletionElement.idRefer] === idsItemsNotDeleted[0]);\r\n    const arrayParcial = indexElementFailed >= 0 ? multipleDeletionElement.arrayElimination.slice(indexElementFailed) : multipleDeletionElement.arrayElimination;\r\n    multipleDeletionElement.arrayElimination = arrayParcial;\r\n    if (multipleDeletionElement.arrayElimination.length > 0) multipleDeletionElement.arrayEliminationTemp = [multipleDeletionElement.arrayElimination[0]];\r\n    await multipleDeletionElement.componentCurrent.loadingReset();\r\n  }\r\n\r\n  /**\r\n   * Metodo permite capturar el evento de si se realiza check sobre algún registro del grid, y guardarlo en un array\r\n   * @param multipleDeletionElement Elemento que contiene componentCurrent, idRefer, urlService, arrayElimination, arrayEliminationTemp, isEnableDeleteButton\r\n   * @param row posición del elemento a buscar en multipleDeletionElement.componentCurrent.dataSourceMat.data[row]\r\n   * @param action puede ser 'add' o 'del'\r\n   */\r\n  addDataDelete(multipleDeletionElement: MultipleDeletionInterface, row: number, action: string) {\r\n    if (action === 'add') {\r\n      multipleDeletionElement.arrayElimination.push(multipleDeletionElement.componentCurrent.dataSourceMat.data[row]);\r\n    } else if (action === 'del') {\r\n      const indexElementDelete = multipleDeletionElement.arrayElimination.findIndex((opc: any) => opc[multipleDeletionElement.idRefer] === multipleDeletionElement.componentCurrent.dataSourceMat.data[row][multipleDeletionElement.idRefer]);\r\n      multipleDeletionElement.arrayElimination.splice(indexElementDelete, 1);\r\n    }\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.destroyServices$.next();\r\n    this.destroyServices$.complete();\r\n  }\r\n}\r\n","\r\nimport { Component, Input, ViewChild, inject } from '@angular/core';\r\nimport { GridComponent } from 'safe-grid';\r\nimport { GridDataSource } from 'safe-grid/lib/modules/interfaces/grid-data-source';\r\nimport { ConstantsSyzePopup } from 'safe-notification-popup';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Subject, lastValueFrom } from 'rxjs';\r\nimport { Payload } from '../../../core/interfaces/response/payload.interface';\r\nimport { QueryOptions } from '../../../core/interfaces/request/get.interface';\r\nimport { GenericFormComponent } from '../generic-form/generic-form.component';\r\nimport { Validators } from '@angular/forms';\r\nimport { MultipleDeletionInterface, MultipleDeletionService } from '../../services/generic/multiple-deletion.service';\r\nimport { validateType } from '../../services/validateType/validateType';\r\n\r\n\r\n@Component({\r\n  selector: 'safe-generic-component',\r\n  templateUrl: './generic.component.html'\r\n})\r\nexport class GenericComponent extends MultipleDeletionService {\r\n  route = inject(ActivatedRoute);\r\n\r\n  validateTypeService = inject(validateType);\r\n  dataGrid!: Payload;\r\n  gridGeneric!: GridDataSource;\r\n  elementsDelete: MultipleDeletionInterface = {\r\n    componentCurrent: null,\r\n    idRefer: '',\r\n    urlService: '',\r\n    arrayElimination: [],\r\n    arrayEliminationTemp: [],\r\n    isEnableDeleteButton: true\r\n  };\r\n  arrayElimination: any[] = [];\r\n  arrayEliminationTemp: any[] = [];\r\n\r\n  @Input() generalObject!: any;\r\n  @Input() id_usuario!: any;\r\n  @Input() others_bind: any = [];\r\n  @ViewChild('componentCurrent', { static: false }) componentCurrent!: GridComponent;\r\n\r\n  ngOnInit(): void {\r\n    this.injectDataSelect();\r\n    this.createGeneralGrid();\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    this.elementsDelete = {\r\n      componentCurrent: this.componentCurrent,\r\n      idRefer: this.generalObject.idRefer,\r\n      urlService: this.generalObject.urlService,\r\n      arrayElimination: this.arrayElimination,\r\n      arrayEliminationTemp: this.arrayEliminationTemp,\r\n      isEnableDeleteButton: true,\r\n    }\r\n  }\r\n\r\n  /**\r\n   * La función permite obtener la data del servicio genérico retornando el payload\r\n   * @param filter parametro que espera enviar el filtro al servicio\r\n   * @returns \r\n   */\r\n  async getData(filter: QueryOptions, url: string) {\r\n    this.changeNamePropertyName(filter)\r\n    const categories$ = this.genericService.getRegistries(filter, url);\r\n    return (await lastValueFrom(categories$))?.payload;\r\n  }\r\n\r\n  changeNamePropertyName(filter: QueryOptions) {\r\n    if (filter.conditions.length > 0) {\r\n      filter.conditions.forEach(condition => {\r\n        var filter = this.generalObject.titles.find(filterNew => filterNew.key === condition.propertyName);\r\n        if (filter?.filterNewName) {\r\n          condition.propertyName = filter.filterNewName;\r\n        }\r\n      })\r\n    }\r\n  }\r\n\r\n  /**\r\n   * La función define el grid genérico del componente\r\n   */\r\n  createGeneralGrid() {\r\n    this.itHasRequired()\r\n    this.gridGeneric = {\r\n      data: async (filter: QueryOptions) => await this.getData(filter, this.generalObject.urlService),\r\n      hiddenFilter: this.generalObject.hiddenFilter ? this.generalObject.hiddenFilter : () => {\r\n        return [];\r\n      },\r\n      titles: [\r\n        ...this.generalObject.titles.filter(r => !r.hideField),\r\n        {\r\n          key: 'CHECK',\r\n          label: 'Marcar todo',\r\n          type: 'check',\r\n          width: '5%',\r\n          disabled: () => this.generalObject.params.genericActions[1].disable,\r\n          selectAllCheck: true,\r\n          confirmCheckAll: true,\r\n          checkValue: 'Sí',\r\n          noCheckValue: 'No',\r\n          onCheck: (row: number, previousValue: string, newValue: string, masive: boolean) => {\r\n            this.onCheckDeleteAll(this.elementsDelete, row, newValue, masive);\r\n          },\r\n          style: () => ({ 'text-align': 'center' }),\r\n        },\r\n\r\n      ],\r\n      params: {\r\n        height: this.generalObject.params.height,\r\n        serverFilter: this.generalObject.params.serverFilter,\r\n        paginatorSize: this.generalObject.params.paginatorSize,\r\n        minWidthActions: this.generalObject.params.minWidthActions,\r\n        showSelector: this.generalObject.params.showSelector,\r\n        genericActions: [\r\n          {\r\n            tooltip: this.generalObject.params.genericActions[0].labelDialog,\r\n            label: this.generalObject.params.genericActions[0].label,\r\n            disabled: this.generalObject.params.genericActions[0].disable ? true : false,\r\n            onSelect: () => {\r\n              this.createData()\r\n            }\r\n          },\r\n          {\r\n            tooltip: this.generalObject.params.genericActions[1].labelDialog,\r\n            label: this.generalObject.params.genericActions[1].label,\r\n            disabled: this.generalObject.params.genericActions[1].disable ? true : () => !(this.elementsDelete.arrayElimination.length > 0 && this.elementsDelete.isEnableDeleteButton),\r\n            onSelect: async () => {\r\n              this.deleteArrayData(this.elementsDelete);\r\n            }\r\n          }\r\n        ],\r\n        actions: [\r\n          {\r\n            label: this.generalObject.params.actions[0].icon,\r\n            tooltip: this.generalObject.params.actions[0].tooltip,\r\n            disabled: this.generalObject.params.actions[0].disabled,\r\n            onSelect: async (event: any, grid: any, row: any, column: any, index: any) => {\r\n              this.viewRegistry(row);\r\n            }\r\n          },\r\n          {\r\n            label: this.generalObject.params.actions[1].icon,\r\n            tooltip: this.generalObject.params.actions[1].tooltip,\r\n            disabled: this.generalObject.params.actions[1].disabled,\r\n            onSelect: async (event: any, grid: any, row: any, column: any, index: any) => {\r\n              this.updateRegistry(row);\r\n            }\r\n          },\r\n          {\r\n            label: this.generalObject.params.actions[2].icon,\r\n            tooltip: this.generalObject.params.actions[2].tooltip,\r\n            disabled: () => this.generalObject.params.actions[2].disabled || !this.elementsDelete.isEnableDeleteButton,\r\n            onSelect: async (event: any, grid: any, row: any, column: any, index: any) => {\r\n              this.deleteRegistry(this.elementsDelete, row);\r\n            }\r\n          }\r\n        ],\r\n        // editableKey: ['ID_USER']\r\n      },\r\n      onLoad: async () => {\r\n        this.onLoadCheck(this.elementsDelete);\r\n      },\r\n    };\r\n  }\r\n\r\n  itHasRequired() {\r\n    this.generalObject.titles.forEach(element => {\r\n      if (element.validators) {\r\n        if (element.validators.some(validator => validator === Validators.required)) {\r\n          element.hasRequired = true\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  injectDataSelect() {\r\n    this.generalObject.titles.forEach(async r => {\r\n      if (r.selectOption && r.selectOption.urlPetition) {\r\n        const data: any = await this.getData(\r\n          {\r\n            conditions: [],\r\n            orderOptions: []\r\n          },\r\n          r.selectOption.urlPetition)\r\n        if (data) {\r\n          r.selectOption!.data = data.queryResponse;\r\n        }\r\n      }\r\n    })\r\n  }\r\n\r\n\r\n\r\n  loadDataTitles(row: any) {\r\n    this.generalObject.titles.forEach(title => {\r\n\r\n      if (title.helpListParameter) {\r\n\r\n        title.value = {\r\n          'id': row[title.helpListParameter.idRefer],\r\n          'name': row[title.key]\r\n        }\r\n      } else if (title.selectOption && title.selectOption.id !== title.key && title.selectOption.idPetition) {\r\n        title.value = row[title.selectOption.id]\r\n      } else {\r\n\r\n        title.value = row[title.key]\r\n      }\r\n    })\r\n  }\r\n\r\n  viewRegistry(row: any) {\r\n    this.loadDataTitles(row)\r\n    const respuesta = {\r\n      component: GenericFormComponent,\r\n      title: this.generalObject.params.actions[0].onSelecTitle ? this.generalObject.params.actions[0].onSelecTitle : 'Ver registro',\r\n      width: this.generalObject.params.widthDialog ?? ConstantsSyzePopup.widthConfirmDialogSmall,\r\n      data: {\r\n        arrayTitles: this.generalObject.titles,\r\n        disabledForm: true\r\n      }\r\n    };\r\n    this.popupService.custom(respuesta, async (response: any) => {\r\n      if (!response) return;\r\n    })\r\n  }\r\n\r\n  /**\r\n   * Función permite crear un registro\r\n   */\r\n  createData() {\r\n\r\n    this.cleanValueTitle()\r\n    const respuesta = {\r\n      component: GenericFormComponent,\r\n      title: this.generalObject.params.genericActions[0].labelDialog,\r\n      width: this.generalObject.params.widthDialog ?? ConstantsSyzePopup.widthConfirmDialogSmall,\r\n      data: {\r\n        arrayTitles: this.generalObject.titles,\r\n        id_usuario: this.id_usuario,\r\n        others_bind: this.others_bind,\r\n        componentCurrent:this.componentCurrent,\r\n        urlService: this.generalObject.urlService,\r\n        typePetition: 'post'\r\n\r\n\r\n      }\r\n    };\r\n\r\n    this.popupService.custom(respuesta, (response: any) => {\r\n      if (!response) return;\r\n    })\r\n  }\r\n  /**\r\n   * La función permite actualizar un registro del grid\r\n   * @param row parametro que contiene información de la data para el update\r\n   */\r\n  updateRegistry(row: any) {\r\n    this.loadDataTitles(row)\r\n    this.generalObject.titles.forEach(element => {\r\n      if (element.type === 'date') {\r\n        element.value = new Date(element?.value !== null ? element?.value : '')\r\n      };\r\n    });\r\n\r\n    const respuesta = {\r\n      component: GenericFormComponent,\r\n      title: this.generalObject.params.actions[1].onSelecTitle ? this.generalObject.params.actions[1].onSelecTitle : '',\r\n      width: this.generalObject.params.widthDialog ?? ConstantsSyzePopup.widthConfirmDialogSmall,\r\n      data: {\r\n\r\n        arrayTitles: this.generalObject.titles,\r\n        id_usuario: this.id_usuario,\r\n        others_bind: this.others_bind,\r\n        urlService: this.generalObject.urlService,\r\n        typePetition: 'put',\r\n        componentCurrent:this.componentCurrent,\r\n        idRefer: this.generalObject.idRefer,\r\n        row: row,\r\n      }\r\n    };\r\n    this.popupService.custom(respuesta, async (response: any) => {\r\n      if (!response) return;\r\n\r\n    })\r\n  }\r\n  cleanValueTitle() {\r\n    this.generalObject.titles.forEach(r => {\r\n      if (r.value) {\r\n        r.value = null;\r\n      }\r\n    })\r\n  }\r\n\r\n  /**\r\n   * Metodo permite mostrar la notificación de registros actualizados\r\n   * \r\n   */\r\n  notificationSuccess() {\r\n    this.notificationService.success({ title: 'Registro actualizado' });\r\n  }\r\n\r\n\r\n}\r\n","<div class=\"container-fluid mt-4\">\r\n  <div class=\"row\">\r\n    <div class=\"col-12\">\r\n      <mat-card class=\"safe-mat-card-mdc-border\">\r\n        <mat-card-title class=\"card-title\">{{generalObject.title}}</mat-card-title>\r\n        <mat-card-content>\r\n          <grid #componentCurrent [dataSource]=\"gridGeneric\"></grid>\r\n        </mat-card-content>\r\n      </mat-card>\r\n    </div>\r\n  </div>\r\n</div>","import { HttpClientModule } from '@angular/common/http';\r\nimport { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport {NavbarComponent} from './modules/pages/navbar/navbar.component'\r\nimport { CommonComponentsComponent } from './common-components.component';\r\nimport { LoaderComponent } from './modules/pages/loader/loader.component';\r\nimport { MaterialModule } from './shared/material/material.module';\r\nimport { ButtonsFormComponent } from './modules/pages/buttons-form/buttons-form.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { InputGeneralFormComponent } from './modules/pages/input-general-form/input-general-form.component';\r\nimport { InputSelectFormComponent } from './modules/pages/input-select-form/input-select-form.component';\r\nimport { InputDateFormComponent } from './modules/pages/input-date-form/input-date-form.component';\r\nimport { TabComponent } from './modules/pages/tab/tab.component';\r\nimport { GenericComponent } from './modules/pages/generic-component/generic.component';\r\nimport { GenericFormComponent } from './modules/pages/generic-form/generic-form.component';\r\nimport { GridModule } from 'safe-grid';\r\nimport { OptionsDropdownlistDirective } from '../public-api';\r\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\r\nimport { MomentDateAdapter } from '@angular/material-moment-adapter';\r\nimport { ConstantsInputDate } from './modules/constants-input-date/constants-input-date';\r\nimport { ValidationInputComponent } from './modules/pages/validation-input/validation-input.component';\r\n\r\n\r\n@NgModule({\r\n  declarations: [\r\n    CommonComponentsComponent,\r\n    LoaderComponent,\r\n    NavbarComponent,\r\n    ButtonsFormComponent,\r\n    InputGeneralFormComponent,\r\n    InputSelectFormComponent,\r\n    InputDateFormComponent,\r\n    TabComponent,\r\n    GenericComponent,\r\n    GenericFormComponent,\r\n    OptionsDropdownlistDirective,\r\n    ValidationInputComponent,\r\n    \r\n  ],\r\n  imports: [\r\n    MaterialModule,\r\n    HttpClientModule,\r\n    ReactiveFormsModule ,\r\n    GridModule,\r\n    CommonModule\r\n  ],\r\n  exports: [\r\n    CommonComponentsComponent,\r\n    LoaderComponent,\r\n    NavbarComponent,\r\n    ButtonsFormComponent,\r\n    InputGeneralFormComponent,\r\n    InputDateFormComponent,\r\n    InputSelectFormComponent,\r\n    TabComponent,\r\n    GenericComponent,\r\n    GenericFormComponent,\r\n    OptionsDropdownlistDirective,\r\n\r\n    \r\n  ],\r\n  providers: [\r\n    {\r\n      provide: DateAdapter,\r\n      useClass: MomentDateAdapter,\r\n      deps: [MAT_DATE_LOCALE],\r\n    },\r\n    { provide: MAT_DATE_FORMATS, useValue: ConstantsInputDate.MY_DATE_FORMAT },\r\n  ],\r\n})\r\nexport class CommonComponentsModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { LoaderService } from '../services/loader/loader.service';\r\n\r\n@Injectable()\r\nexport class LoaderInterceptor implements HttpInterceptor {\r\n  public count = 0;\r\n\r\n  constructor(public loaderService: LoaderService) {}\r\n\r\n  intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n    if (this.count === 0) {​​\r\n      this.loaderService.startLoading();\r\n    }​​\r\n    this.count++;\r\n    return next.handle(req).pipe(\r\n      finalize(() => {\r\n        this.count--;\r\n        if (this.count === 0) {\r\n          this.loaderService.stopLoading();\r\n        }\r\n      })\r\n    );\r\n  }\r\n}\r\n","import { CreateResponse } from \"../../interfaces/response/response.interface\"\r\n\r\nexport const nextHandler = (response: CreateResponse, notificationService: any, dialogRef: any, unSubsDialog: any) => {\r\n    if(response){\r\n      notificationService.success({\r\n        body: response.payload.queryResponse.message,\r\n        title: 'Éxitoso'\r\n      })\r\n        dialogRef.close(true)\r\n        unSubsDialog = dialogRef.afterClosed().subscribe()\r\n    }\r\n  }\r\n\r\n  export const erroHandler = (err: any, notificationService: any) => {\r\n    notificationService.error({title: 'Error', body: err?.error?.errors[0]})\r\n  }\r\n\r\n  export const deleteNextHandler = (response: Response, notificationService: any) => {\r\n    if (response) {\r\n      window.location.reload();\r\n      notificationService.success({\r\n        title: 'Éxitoso',\r\n        body: 'Registro eliminado'\r\n      })\r\n    }\r\n  }","import { Injectable } from \"@angular/core\";\r\nimport { CreateResponse } from \"../../interfaces/response/response.interface\";\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\n\r\nexport class NotificationCreateAndUpdate {\r\n  nextHandler(response: CreateResponse | any, notificationService: any, dialogRef: any, unSubsDialog: any, modo = \"normal\") {\r\n    if (response) {\r\n      if(modo === \"normal\"){\r\n        notificationService.success({\r\n          body: response.payload.queryResponse.message,\r\n          title: 'Éxitoso'\r\n        })\r\n      }else if(modo === \"procedure\"){\r\n        notificationService.success({\r\n          body: response.payload.dmlResponse.queryResponse.message,\r\n          title: 'Éxitoso'\r\n        })\r\n      }\r\n      dialogRef.close(true)\r\n      unSubsDialog = dialogRef.afterClosed().subscribe()\r\n    }\r\n  }\r\n\r\n  erroHandler(err: any, notificationService: any) {\r\n    notificationService.error({ title: 'Error', body: err?.error?.errors[0] })\r\n  }\r\n\r\n  deleteNextHandler = (response: Response, notificationService: any) => {\r\n    if (response) {\r\n      window.location.reload();\r\n      notificationService.success({\r\n        title: 'Éxitoso',\r\n        body: 'Registro eliminado'\r\n      })\r\n    }\r\n}\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.NavbarService","i1.LoaderService","i3","i2","i4","i5","i7","i8.ValidationInputComponent","i6","i7.ValidationInputComponent","i3.InputValidation","i6.ButtonsFormComponent","i7.InputGeneralFormComponent","i8.InputSelectFormComponent","i9.InputDateFormComponent","i10.OptionsDropdownlistDirective","Subject","takeUntil","lastValueFrom"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;AACA;AAEA,MAGa,aAAa,CAAA;AAExB,IAAA,WAAA,CAAoB,UAAsB,EAAA;QAAtB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AAElC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,OAAO,EAAO,CAAC;KAFU;AAI7C,IAAA,iBAAiB,CAAC,OAAe,EAAA;AAC7B,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAC9B;AAEL;;;AAGG;IACC,kBAAkB,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;KACtC;AAED,IAAA,MAAM,cAAc,GAAA;AAClB,QAAA,MAAM,QAAQ,GAAI,IAAI,CAAC,UAAU,CAAA;;AAEf;AAElB,QAAA,OAAO,QAAQ,CAAC;KACjB;8GAxBQ,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFZ,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAEP,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACDD;AAEA,MAKa,eAAe,CAAA;AAc5B;;;;;;;;;;;;;;AAcG;AACD,IAAA,WAAA;;;IAGU,WAAwB,EACxB,aAA4B,EAC7B,aAAqB,EAAA;QAFpB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAC7B,IAAa,CAAA,aAAA,GAAb,aAAa,CAAQ;QAjC9B,IAAU,CAAA,UAAA,GAAc,IAAI,CAAC;AAQ7B,QAAA,IAAA,CAAA,SAAS,GAAQ,EAAC,UAAU,EAAE,EAAE,EAAC,CAAC;QAGlC,IAAI,CAAA,IAAA,GAAQ,EAAE,CAAC;AAyBb,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa;AACnC,aAAA,kBAAkB,EAAE;AACpB,aAAA,SAAS,CAAC,CAAC,OAAe,KAAI;AAC7B,YAAA,IAAI,OAAO,EAAE;AACX,gBAAA,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;AAC3B,gBAAA,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;AACvC,gBAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;AAC/B,gBAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;AAChC,aAAA;AACH,SAAC,CAAC,CAAC;KACN;AAED,IAAA,MAAM,QAAQ,GAAA;AACZ,QAAA,IAAI,CAAC,KAAK,GAAG,YAAY,CAAA;;AAEzB,QAAA,IAAI,CAAC,WAAW,GAAC,2CAA2C,CAAC;AAC7D,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,SAAS,CAAC;;AAE5B,YAAA,UAAU,EAAE,IAAI,WAAW,CAAC,EAAE,CAAC;AAC/B,YAAA,aAAa,EAAE,IAAI,WAAW,CAAC,EAAE,CAAC;AAClC,YAAA,SAAS,EAAE,IAAI,WAAW,CAAC,EAAE,CAAC;AAC9B,YAAA,UAAU,EAAE,IAAI,WAAW,CAAC,EAAE,CAAC;AAC/B,YAAA,OAAO,EAAE,IAAI,WAAW,CAAC,EAAE,CAAC;AAC5B,YAAA,eAAe,EAAE,IAAI,WAAW,CAAC,EAAE,CAAC;AACrC,SAAA,CAAC,CAAC;QACL,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC1B;AAED,IAAA,MAAM,iBAAiB,GAAA;QACrB,IAAI,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;;;;;;;;;KAU9D;AAED,IAAA,MAAM,eAAe,GAAA;QACnB,UAAU,CAAC,YAAW;AACpB,YAAA,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,KAAK,SAAS,EAAE;gBAAE,OAAO;AAAE,aAAA;AACrD,YAAA,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;;SAE1B,EAAE,GAAG,CAAC,CAAC;KACT;AAED,IAAA,MAAM,MAAM,GAAA;AACX;;;;;;;;;;;AAWK;KACL;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;KACjC;IAED,cAAc,GAAA;AAChB;;;;;;AAMgB;KACb;IAED,WAAW,CAAC,IAAI,GAAG,EAAE,EAAA;AACvB;;;;;;;AAOoD;KACjD;AAED,IAAA,MAAM,WAAW,GAAA;;;;;;;KAOhB;8GArIU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,aAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,mDCf5B,woJAsFA,EAAA,MAAA,EAAA,CAAA,w5yBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDvEa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,SAAS;+BACE,aAAa,EAAA,QAAA,EAAA,woJAAA,EAAA,MAAA,EAAA,CAAA,w5yBAAA,CAAA,EAAA,CAAA;;;AETzB,MAUa,yBAAyB,CAAA;8GAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EAR1B,QAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;AAIT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAIU,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAVrC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,EACxB,QAAA,EAAA,CAAA;;;;AAIT,EAAA,CAAA,EAAA,CAAA;;;ACLH,MAGa,aAAa,CAAA;AAMxB,IAAA,WAAA,GAAA;QAFA,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;AAGrB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,OAAO,EAAE,CAAC;KACpC;AACD,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;IACD,IAAI,OAAO,CAAC,KAAK,EAAA;AACf,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAExB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChC;IACD,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;KACrB;IACD,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;KACtB;IAED,iBAAiB,GAAA;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;KAC5B;AAED,IAAA,iBAAiB,CAAC,SAAkB,EAAA;AAClC,QAAA,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;KACjC;8GA/BU,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFZ,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAEP,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACAD,MAQa,eAAe,CAAA;AAQ1B,IAAA,WAAA,CACS,aAA4B,EAC3B,MAAkB,EAClB,iBAAoC,EAAA;QAFrC,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAC3B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAY;QAClB,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QAVvC,IAAI,CAAA,IAAA,GAAG,eAAe,CAAC;QACvB,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;QAIH,IAAoB,CAAA,oBAAA,GAAY,CAAC,CAAC;AAO/C,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;KACtB;IAED,eAAe,GAAA;QACb,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;AACjD,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa;AACxD,aAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACrC,aAAA,SAAS,CAAC,CAAC,MAAe,KAAI;AAC7B,YAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AACpE,YAAA,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAC7C,YAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;AACzC,SAAC,CAAC,CAAC;KACN;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,CAAC;KACxC;AAED,IAAA,SAAS,CAAC,EAAgB,EAAA;AACxB,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,EAAE;YAC1C,EAAE,CAAC,cAAc,EAAE,CAAC;AACrB,SAAA;KACF;8GAnCU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,aAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,yLCb5B,22DAkBA,EAAA,MAAA,EAAA,CAAA,y9EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDLa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAR3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EAGjB,IAAA,EAAA;AACJ,wBAAA,oBAAoB,EAAE,mBAAmB;AAC1C,qBAAA,EAAA,QAAA,EAAA,22DAAA,EAAA,MAAA,EAAA,CAAA,y9EAAA,CAAA,EAAA,CAAA;0JAQc,oBAAoB,EAAA,CAAA;sBAAlC,KAAK;uBAAC,MAAM,CAAA;;;AEOf,MAAM,kBAAkB,GAAG;IACzB,eAAe;IACf,eAAe;IACf,aAAa;IACb,qBAAqB;IACrB,cAAc;IACd,cAAc;IACd,gBAAgB;IAChB,iBAAiB;IACjB,aAAa;IACb,cAAc;IACd,iBAAiB;IACjB,aAAa;IACb,eAAe;IACf,wBAAwB;IACxB,qBAAqB;IACrB,eAAe;IACf,kBAAkB;IAClB,eAAe;IACf,gBAAgB;IAChB,kBAAkB;IAClB,oBAAoB;IACpB,gBAAgB;IAChB,aAAa;IACb,mBAAmB;IACnB,mBAAmB;CACpB,CAAC;AACF,MAIa,cAAc,CAAA;8GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YA9BzB,eAAe;YACf,eAAe;YACf,aAAa;YACb,qBAAqB;YACrB,cAAc;YACd,cAAc;YACd,gBAAgB;YAChB,iBAAiB;YACjB,aAAa;YACb,cAAc;YACd,iBAAiB;YACjB,aAAa;YACb,eAAe;YACf,wBAAwB;YACxB,qBAAqB;YACrB,eAAe;YACf,kBAAkB;YAClB,eAAe;YACf,gBAAgB;YAChB,kBAAkB;YAClB,oBAAoB;YACpB,gBAAgB;YAChB,aAAa;YACb,mBAAmB;YACnB,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;AAMR,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YA9BzB,eAAe;YACf,eAAe;YACf,aAAa;YACb,qBAAqB;YACrB,cAAc;YACd,cAAc;YACd,gBAAgB;YAChB,iBAAiB;YACjB,aAAa;YACb,cAAc;YACd,iBAAiB;YACjB,aAAa;YACb,eAAe;YACf,wBAAwB;YACxB,qBAAqB;YACrB,eAAe;YACf,kBAAkB;YAClB,eAAe;YACf,gBAAgB;YAChB,kBAAkB;YAClB,oBAAoB;YACpB,gBAAgB;YAChB,aAAa;YACb,mBAAmB;YACnB,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAMR,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,EAAE;oBACX,OAAO,EAAE,CAAC,kBAAkB,CAAC;AAC9B,iBAAA,CAAA;;;ACrDD,MAIa,oBAAoB,CAAA;AA8B/B,IAAA,WAAA,GAAA;QAvBS,IAAM,CAAA,MAAA,GAAY,IAAI,CAAC;QACvB,IAAc,CAAA,cAAA,GAAW,SAAS,CAAC;QACnC,IAAc,CAAA,cAAA,GAAW,UAAU,CAAC;QACpC,IAAc,CAAA,cAAA,GAAW,UAAU,CAAC;QACpC,IAAa,CAAA,aAAA,GAAW,SAAS,CAAC;AASjC,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,YAAY,EAAU,CAAC;AACjD,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,YAAY,EAAU,CAAC;AACjD,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,YAAY,EAAU,CAAC;AACjD,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,YAAY,EAAU,CAAC;AAG1D,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,CAAM,KAAI,GAAI,CAAA;AAC1B,QAAA,IAAA,CAAA,OAAO,GAAG,MAAK,GAAI,CAAA;KAKlB;IAED,QAAQ,GAAA;KAEP;IAED,eAAe,GAAA;KAEd;AAED,IAAA,OAAO,CAAC,KAAa,EAAA;QACnB,IAAI,CAAC,OAAO,EAAE,CAAC;AACf,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KACtB;AACD,IAAA,UAAU,CAAC,KAAU,EAAA;KACpB;AAED,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;AACD,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;KACnB;AACD,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;KAC9B;AAEM,IAAA,WAAW,CAAC,KAAU,EAAA;AAC3B,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACtC;AAEM,IAAA,WAAW,CAAC,KAAU,EAAA;AAC3B,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACtC;AAEM,IAAA,WAAW,CAAC,KAAU,EAAA;AAC3B,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACtC;AACM,IAAA,UAAU,CAAC,KAAU,EAAA;AAC1B,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACrC;IACD,QAAQ,GAAA;AACN,QAAA,OAAO,MAAM,CAAC,UAAU,IAAI,GAAG,CAAC;KACjC;8GA3EU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,wuBCPjC,8zCAsBM,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDfO,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,8zCAAA,EAAA,CAAA;0EAIpB,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,wBAAwB,EAAA,CAAA;sBAAhC,KAAK;gBACG,yBAAyB,EAAA,CAAA;sBAAjC,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAIG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAEI,mBAAmB,EAAA,CAAA;sBAA5B,MAAM;gBACG,mBAAmB,EAAA,CAAA;sBAA5B,MAAM;gBACG,mBAAmB,EAAA,CAAA;sBAA5B,MAAM;gBACG,kBAAkB,EAAA,CAAA;sBAA3B,MAAM;;;AE3BT,MAIa,wBAAwB,CAAA;AAJrC,IAAA,WAAA,GAAA;QAMW,IAAI,CAAA,IAAA,GAAY,KAAK,CAAC;QACtB,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;AAyDlC,KAAA;IAxDC,SAAS,GAAA;QAEP,IAAI,MAAM,GAAG,EAAE,CAAC;AAChB,QAAA,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAErD,IAAI,SAAS,GAAG,IAAI,CAAC;AACrB,YAAA,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,IAAI,oBAAoB,CAAC,EAAE;gBACtD,SAAS,GAAG,2BAA2B,CAAC;AACzC,aAAA;AACD,YAAA,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,kBAAkB,EAAE;gBACnC,SAAS,GAAG,uBAAuB,CAAC;AACrC,aAAA;AACD,YAAA,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,kBAAkB,EAAE;gBACnC,SAAS,GAAG,uBAAuB,CAAC;AACrC,aAAA;AACD,YAAA,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE;gBAC3B,SAAS,GAAG,yBAAyB,CAAC;AACvC,aAAA;AAED,YAAA,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE;gBAC5B,SAAS,GAAG,0BAA0B,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,GAAG,aAAa,CAAC;AAClF,aAAA;AACD,YAAA,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE;gBAC5B,SAAS,GAAG,0BAA0B,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,GAAG,aAAa,CAAC;AAClF,aAAA;AACD,YAAA,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;gBAC1B,SAAS,GAAG,iCAAiC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;AAC1E,aAAA;AACD,YAAA,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE;gBAC3B,SAAS,GAAG,yDAAyD,CAAC;AACvE,aAAA;AACD,YAAA,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE;AACtB,gBAAA,SAAS,GAAG,0BAA0B,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,aAAa,CAAC;AACtF,aAAA;AACD,YAAA,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE;AACtB,gBAAA,SAAS,GAAG,0BAA0B,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,aAAa,CAAC;AACtF,aAAA;YAED,MAAM,CAAC,IAAI,CAAC;AACV,gBAAA,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AACd,gBAAA,GAAG,EAAE,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC;AAC3B,aAAA,CAAC,CAAC;AACJ,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;IAED,QAAQ,GAAA;QACN,IAAI;AACF,YAAA,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5B,SAAA;QAAC,MAAM;AACN,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;KACF;IACD,IAAI,GAAA;AACF,QAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;KAC1B;8GA3DU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,6HCPrC,+aAYsB,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDLT,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAJpC,SAAS;+BACE,uBAAuB,EAAA,QAAA,EAAA,+aAAA,EAAA,CAAA;8BAIxB,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;;;AEJR,MAIa,yBAAyB,CAAA;AAJtC,IAAA,WAAA,GAAA;AASW,QAAA,IAAA,CAAA,IAAI,GAAW,MAAM,CAAC;QACtB,IAAY,CAAA,YAAA,GAAW,KAAK,CAAC;QAC7B,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAK1B,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAC5B,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAC3B,IAAQ,CAAA,QAAA,GAA4B,KAAK,CAAC;QAC1C,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;AAErC,QAAA,IAAA,CAAA,aAAa,GAAE,QAAQ,CAAC,MAAI;AAC1B,YAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AAChF,gBAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC9B,aAAA;AACD,YAAA,OAAO,CAAC,CAAC;AACV,SAAC,CAAC,CAAA;AACH,QAAA,IAAA,CAAA,aAAa,GAAE,QAAQ,CAAC,MAAI;AAC1B,YAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AAChF,gBAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC9B,aAAA;AACD,YAAA,OAAO,CAAC,CAAC;AACV,SAAC,CAAC,CAAA;QACO,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;;AAG5B,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAU,CAAC;AACzC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAU,CAAC;AACnD,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,CAAM,KAAI,GAAI,CAAA;AAC1B,QAAA,IAAA,CAAA,OAAO,GAAG,MAAK,GAAI,CAAA;QAKnB,IAAa,CAAA,aAAA,GAAY,KAAK,CAAC;AAuGhC,KAAA;IArGC,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,EAAE;AACjC,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,YAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;AACpB,SAAA;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACrB,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC;AAC/B,aAAA;AACF,SAAA;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,gBAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;AAC3B,aAAA;AACF,SAAA;QACD,IAAI,IAAI,CAAC,UAAU;AAAE,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;KAC7C;IAED,eAAe,GAAA;;;;;;;;;QASb,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,IAAI,CAAC,eAAe,EAAE,CAAC;AACxB,SAAA;KACF;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAA;KACxB;AAED,IAAA,OAAO,CAAC,KAAa,EAAA;;QAEnB,IAAI,CAAC,OAAO,EAAE,CAAC;AACf,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;;KAEtB;AACD,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE,CAAC;AAC1B,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AACjB,SAAA;KACF;AAED,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;AACD,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;KACnB;AACD,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;KAC9B;AAGM,IAAA,gBAAgB,CAAC,KAAK,EAAA;AAC3B,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC9B;AACD,IAAA,aAAa,CAAC,KAAY,EAAA;QAExB,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,MAAM,UAAU,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;AAC5D,YAAA,IAAI,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE;gBACtC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AAClF,aAAA;AACF,SAAA;QACD,IAAI,IAAI,CAAC,SAAS,IAAK,KAAK,CAAC,MAA2B,CAAC,KAAK,EAAE;AAC9D,YAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAE,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;AAC/E,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;YAC1B,MAAM,kBAAkB,KAAW,KAAK,CAAC,MAA2B,CAAC,KAAK,EAAE,CAAC;AAC7E,YAAA,MAAM,gBAAgB,GAAQ,MAAM,EAAG,KAAK,CAAC,MAA2B,CAAC,KAAK,EAAE,CAAC;AACjF,YAAA,IAAI,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE;gBAClC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,EAAE,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACzG,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;AAC/E,aAAA;AACF,SAAA;KACF;IAED,eAAe,GAAA;QACb,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC;QAC3D,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAC7D,IAAI,GAAG,GAAG,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACvC,QAAA,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACpC,QAAA,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;AACtD,QAAA,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACrC,QAAA,MAAM,IAAI,GAAG,CAAG,EAAA,GAAG,CAAC,CAAC,CAAC,CAAA,EAAG,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;AACnE,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;KACnD;8GA1IU,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,+mBCVtC,gwHAuDqB,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FD7CR,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,SAAS;+BACE,yBAAyB,EAAA,QAAA,EAAA,gwHAAA,EAAA,CAAA;8BAM1B,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAiBI,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBAImC,QAAQ,EAAA,CAAA;sBAAjD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,UAAU,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBACA,cAAc,EAAA,CAAA;sBAArD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;;;AE7CxC,MAIa,wBAAwB,CAAA;AAJrC,IAAA,WAAA,GAAA;QAOS,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAGxB,IAAQ,CAAA,QAAA,GAAY,IAAI,CAAC;QAKzB,IAAgB,CAAA,gBAAA,GAAW,KAAK,CAAC;AAGjC,QAAA,IAAA,CAAA,UAAU,GAAY,IAAI,CAAC;AAC3B,QAAA,IAAA,CAAA,eAAe,GAAW,uBAAuB,CAAC;QAClD,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;AAE3B,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAU,CAAC;AAGrD,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,CAAM,KAAI,GAAI,CAAA;AAC1B,QAAA,IAAA,CAAA,OAAO,GAAG,MAAK,GAAI,CAAA;AA+CpB,KAAA;IA7CC,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,gBAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;AAC3B,aAAA;AACF,SAAA;QACD,IAAG,IAAI,CAAC,UAAU;AAAE,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;KAC5C;AAED,IAAA,OAAO,CAAC,KAAa,EAAA;QACnB,IAAI,CAAC,OAAO,EAAE,CAAC;AACf,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KACtB;AACD,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE,CAAC;AAC1B,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AACjB,SAAA;KACF;AAED,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;AACD,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;KACnB;AACD,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;KAC9B;AAEM,IAAA,WAAW,CAAC,KAAU,EAAA;AAC3B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChC;AAEM,IAAA,SAAS,CAAC,IAAS,EAAA;QACxB,IAAI,GAAG,GAAW,EAAE,CAAC;AACrB,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AACtB,YAAA,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC1B,SAAA;QACD,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,GAAG,IAAI,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACpD,SAAA;AACD,QAAA,OAAO,GAAG,CAAC;KACZ;8GApEU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,qYCPrC,qvBAWA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAR,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,8BAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDJa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAJpC,SAAS;+BACE,wBAAwB,EAAA,QAAA,EAAA,qvBAAA,EAAA,CAAA;8BAQzB,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBACG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAEI,aAAa,EAAA,CAAA;sBAAtB,MAAM;;;AEzBT,MAAa,kBAAkB,CAAA;aAIb,IAAc,CAAA,cAAA,GAAG,GAAG,CAAC,EAAA;aACrB,IAAmB,CAAA,mBAAA,GAAG,GAAG,CAAC,EAAA;aAC1B,IAAgB,CAAA,gBAAA,GAAG,YAAY,CAAC,EAAA;aAChC,IAAgB,CAAA,gBAAA,GAAG,SAAS,CAAC,EAAA;aAC7B,IAAoB,CAAA,oBAAA,GAAG,qBAAqB,CAAC,EAAA;aAC7C,IAAY,CAAA,YAAA,GAAG,MAAM,CAAC,EAAA;AACtB,IAAA,SAAA,IAAA,CAAA,cAAc,GAAG;AAC3B,QAAA,KAAK,EAAE;YACL,SAAS,EAAE,YAAY;AACxB,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,SAAS,EAAE,YAAY;AACvB,YAAA,cAAc,EAAE,WAAW;AAC3B,YAAA,aAAa,EAAE,IAAI;AACnB,YAAA,kBAAkB,EAAE,WAAW;AAChC,SAAA;KACF,CAAC,EAAA;;;AChBR,MAIa,sBAAsB,CAAA;AAoBjC,IAAA,WAAA,GAAA;QAlBS,IAAkB,CAAA,kBAAA,GAAU,KAAK,CAAC;QAClC,IAAS,CAAA,SAAA,GAAU,KAAK,CAAC;AAIzB,QAAA,IAAA,CAAA,OAAO,GAAgB,IAAI,WAAW,EAAE,CAAC;QAEzC,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAErC,IAAU,CAAA,UAAA,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AAC5D,QAAA,IAAA,CAAA,cAAc,GAAG,kBAAkB,CAAC,gBAAgB,CAAC;AACrD,QAAA,IAAA,CAAA,cAAc,GAAG,kBAAkB,CAAC,gBAAgB,CAAC;AACrD,QAAA,IAAA,CAAA,kBAAkB,GAAG,kBAAkB,CAAC,oBAAoB,CAAC;AAC7D,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,CAAM,KAAI,GAAI,CAAA;AAC1B,QAAA,IAAA,CAAA,OAAO,GAAG,MAAK,GAAI,CAAA;KAMlB;IAID,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;KAC3B;IAED,QAAQ,GAAA;AACN,QAAA,IAAG,CAAC,IAAI,CAAC,OAAO,EAAC;YACf,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,gBAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;AAC3B,aAAA;AACF,SAAA;QACD,IAAG,IAAI,CAAC,UAAU;AAAE,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;KAC5C;IAID,eAAe,GAAA;;QAGb,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CACjC,MAAK;;;YAGH,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,SAAS,EAAE;;;AAG9F,aAAA;AACH,SAAC,CACF,CAAC;KACH;AAID,IAAA,UAAU,CAAC,KAAU,EAAA;;;;;;;;KAQpB;AACD,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;;KAEpB;AACD,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;;KAEnB;AACD,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;;KAE9B;8GA9EU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,0RCRnC,g+BAWiB,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAV,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,KAAA,EAAA,KAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDHJ,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,SAAS;+BACE,sBAAsB,EAAA,QAAA,EAAA,g+BAAA,EAAA,CAAA;0EAIvB,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;;;AEdR,MAIa,YAAY,CAAA;AAIvB,IAAA,WAAA,CAAoB,MAAc,EAAA;QAAd,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QAHzB,IAAM,CAAA,MAAA,GAAsC,EAAE,CAAC;QAC/C,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QACrC,IAAW,CAAA,WAAA,GAAW,CAAC,CAAC;KAGvB;AACD,IAAA,WAAW,CAAC,KAAU,EAAA;AACpB,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;QACxD,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;AACpC,SAAA;AAAK,aAAA;AACJ,YAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;AAC7C,SAAA;KACF;IAED,qBAAqB,GAAA;QACnB,IAAI;YACF,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACxF,YAAA,iBAAiB,GAAG,IAAI,CAAC,WAAW,GAAG,iBAAiB,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AACjF,SAAA;AAAC,QAAA,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,WAAW,GAAG,CAAC,CAAA;AACrB,SAAA;KACF;AAED,IAAA,WAAW,CAAC,OAAe,EAAA;AACzB,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAI;AACvC,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC;AAChE,SAAC,CAAC,CAAA;KACH;8GA7BU,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAR,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAY,wGCPzB,2bASA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDFa,YAAY,EAAA,UAAA,EAAA,CAAA;kBAJxB,SAAS;+BACE,UAAU,EAAA,QAAA,EAAA,2bAAA,EAAA,CAAA;6FAIX,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;;;IETI,YAKX;AALD,CAAA,UAAY,WAAW,EAAA;AACnB,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,KAAY,CAAA;AACZ,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,KAAY,CAAA;AACZ,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,QAAe,CAAA;AACnB,CAAC,EALW,WAAW,KAAX,WAAW,GAKtB,EAAA,CAAA,CAAA;;ACID,MAGa,cAAc,CAAA;AAIzB,IAAA,WAAA,CAAoB,IAAgB,EAAA;QAAhB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;KAAK;AAEzC;;;;;AAKG;IACH,aAAa,CAAC,MAAoB,EAAE,YAAoB,EAAA;AACtD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAW,CAAG,EAAA,YAAY,CAAI,CAAA,EAAA,WAAW,CAAC,MAAM,CAAA,CAAE,EAAE,MAAM,CAAC,CAAC;KAClF;AACD,IAAA,qBAAqB,CAAC,YAAoB,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAW,CAAA,EAAG,YAAY,CAAA,CAAA,EAAI,WAAW,CAAC,MAAM,CAAA,CAAE,CAAC,CAAC;KACzE;AAED;;;;;AAKG;IACH,cAAc,CAAC,SAA2B,EAAE,YAAoB,EAAA;AAC9D,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAW,CAAG,EAAA,YAAY,CAAI,CAAA,EAAA,WAAW,CAAC,MAAM,CAAA,CAAE,EAAE,SAAS,CAAC,CAAC;KACrF;AAED;;;;;AAKG;IACH,cAAc,CAAC,YAAsB,EAAE,YAAoB,EAAA;AACzD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAW,CAAG,EAAA,YAAY,CAAI,CAAA,EAAA,WAAW,CAAC,MAAM,CAAA,CAAE,EAAE,YAAY,CAAC,CAAC;KACvF;AAED;;;;;AAKG;IACH,cAAc,CAAC,YAAyB,EAAE,YAAoB,EAAA;QAC5D,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAW,QAAQ,EAAE,CAAA,EAAG,YAAY,CAAA,CAAA,EAAI,WAAW,CAAC,MAAM,EAAE,EAAE,EAAC,IAAI,EAAE,YAAY,EAAC,CAAC,CAAC;KAC7G;AAED;;;;;AAKG;IACH,qBAAqB,CAAC,aAA8B,EAAE,YAAoB,EAAA;QACxE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAW,QAAQ,EAAE,CAAA,EAAG,YAAY,CAAA,CAAA,EAAI,WAAW,CAAC,MAAM,EAAE,EAAE,EAAC,IAAI,EAAE,aAAa,EAAC,CAAC,CAAC;KAC9G;8GAzDU,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFb,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACTD,MAGa,YAAY,CAAA;AAEvB;;;;;;AAMG;AACD,IAAA,YAAY,CAAC,YAAoB,EAAE,QAAa,EAAE,SAAiB,EAAA;AAC/D,QAAA,IAAI,GAAQ,CAAC;AACb,QAAA,QAAQ,YAAY;AAChB,YAAA,KAAK,eAAe;AAChB,gBAAA,MAAM,KAAK,GAAG,OAAO,QAAQ,CAAC,SAAS,CAAC,KAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;AACvH,gBAAA,GAAG,GAAG;AACF,oBAAA,YAAY,EAAE,SAAS;AACvB,oBAAA,IAAI,EAAE,QAAQ;AACd,oBAAA,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;iBACvB,CAAA;gBACD,MAAM;AACV,YAAA,KAAK,MAAM;gBACP,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;AAC5C,gBAAA,IAAI,IAAI,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;gBAC/B,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC/D,gBAAA,IAAI,GAAG,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACtD,gBAAA,GAAG,GAAG;AACF,oBAAA,YAAY,EAAE,SAAS;AACvB,oBAAA,IAAI,EAAE,MAAM;AACZ,oBAAA,KAAK,EAAE,CAAG,EAAA,GAAG,IAAI,KAAK,CAAA,CAAA,EAAI,IAAI,CAAE,CAAA;iBACnC,CAAA;gBACD,MAAM;AACV,YAAA;AACI,gBAAA,GAAG,GAAG;AACF,oBAAA,YAAY,EAAE,SAAS;AACvB,oBAAA,IAAI,EAAE,YAAY;AAClB,oBAAA,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC;iBAC7B,CAAA;gBACD,MAAM;AACb,SAAA;AACD,QAAA,OAAO,GAAG,CAAC;KACd;8GAxCQ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFT,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAET,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACKH,MAGa,eAAe,CAAA;AAH5B,IAAA,WAAA,GAAA;AAIE,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC,CAAA;AACvC,QAAA,IAAA,CAAA,mBAAmB,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAA;AAgGnD,KAAA;AA9FC,IAAA,MAAM,eAAe,CAAC,MAAoB,EAAE,GAAW,EAAA;QACrD,MAAM,GAAG,GAAQ,MAAM,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC;AAE5G,QAAA,OAAO,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC;KAClC;AACD;;;;;;;;;;;AAWG;IAGH,MAAM,qBAAqB,CACzB,IAAe,EACf,kBAA0B,EAC1B,SAAiB,EACjB,gBAA6B,EAC7B,UAAkB,EAClB,QAAA,GAAoB,KAAK,EACzB,gBAAsB,GAAA,IAAI,EAC1B,OAAe,GAAA,IAAI,EACnB,WAAA,GAAkB,IAAI,EAAA;AAKtB,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,KAAK,KAAK,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,KAAK,KAAK,SAAS,EAAG;AAEhK,YAAA,MAAM,MAAM,GAAQ;AAClB,gBAAA,UAAU,EAAE,gBAAgB;AAC5B,gBAAA,YAAY,EAAE,EAAE;AAChB,gBAAA,UAAU,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;aAC9D,CAAC;YACF,IAAI;gBACF,MAAM,GAAG,GAAQ,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAChE,gBAAA,IAAI,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE;AAGnB,oBAAA,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AAC7D,oBAAA,IAAG,OAAO,EAAC;AACV,wBAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACpD,qBAAA;AACH,oBAAA,IAAI,gBAAgB,CAAC,MAAM,GAAC,CAAC,EAAE;AAC7B,wBAAA,gBAAgB,CAAC,OAAO,CAAC,MAAM,IAAE;4BAC/B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;AACvE,yBAAC,CAAC,CAAA;AACH,qBAAA;AACF,iBAAA;AAAM,qBAAA;AACJ,oBAAA,IAAG,OAAO,EAAC;wBACV,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACzC,qBAAA;AACH,oBAAA,IAAI,gBAAgB,CAAC,MAAM,GAAC,CAAC,EAAE;AAC7B,wBAAA,gBAAgB,CAAC,OAAO,CAAC,MAAM,IAAE;AAC/B,4BAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACnD,yBAAC,CAAC,CAAA;AACH,qBAAA;AACD,oBAAA,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAChE,oBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;AAC5B,wBAAA,KAAK,EAAE,aAAa;AACpB,wBAAA,IAAI,EAAE,gCAAgC;AACvC,qBAAA,CAAC,CAAC;AAEJ,iBAAA;AAEF,aAAA;AAAC,YAAA,OAAO,KAAK,EAAE;AACd,gBAAA,IAAG,OAAO,EAAC;oBACT,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACzC,iBAAA;gBACH,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACjD,gBAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;AAC7B,oBAAA,KAAK,EAAE,OAAO;AACd,oBAAA,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM;AACzB,iBAAA,CAAC,CAAC;AAEJ,aAAA;AACF,SAAA;AAAM,aAAA;YACL,IAAI,QAAQ,IAAI,IAAI,EAAE;AACpB,gBAAA,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAChE,gBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;AAC5B,oBAAA,KAAK,EAAE,aAAa;AACpB,oBAAA,IAAI,EAAE,4BAA4B;AACnC,iBAAA,CAAC,CAAC;AACJ,aAAA;AACF,SAAA;KAGF;8GAjGU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cAFd,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAEP,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACJD,MAGa,4BAA4B,CAAA;AAOvC,IAAA,WAAA,CACU,KAAuB,EACvB,EAAc,EACf,MAAoB,EAAA;QAFnB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAkB;QACvB,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;QACf,IAAM,CAAA,MAAA,GAAN,MAAM,CAAc;QAPpB,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC;QAChB,IAAQ,CAAA,QAAA,GAAG,MAAM,CAAC;QAClB,IAAS,CAAA,SAAA,GAAG,MAAM,CAAC;KAMvB;IAEL,QAAQ,GAAA;AACN,QAAA,MAAM,IAAI,GAAQ,IAAI,CAAC,KAAK,CAAC;AAC7B,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;YAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;AACvC,SAAA;KACF;AAKD,IAAA,KAAK,CAAC,KAAK,EAAA;AACT,QAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAElB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS;AACzB,aAAC,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,KAAK,UAAU,CAAC;aAC9D,KAAK,CAAC,IAAI,KAAK,OAAO,KAAK,KAAK,CAAC,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,EAAE;YAEtG,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE;gBAAE,OAAO;AAAE,aAAA;YAE/D,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;gBAAE,OAAO;AAAE,aAAA;AACtE,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC;YACjC,UAAU,CAAC,GAAG,GAAG;gBACf,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,EAAE,EAAE,IAAI,CAAC,EAAE;aACZ,CAAC;AACF,YAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;AACjB,gBAAA,SAAS,EAAE,aAAa;gBACxB,KAAK,EAAE,IAAI,CAAC,QAAQ;gBACpB,MAAM,EAAE,IAAI,CAAC,SAAS;gBACtB,KAAK,EAAE,IAAI,CAAC,QAAQ;AACpB,gBAAA,IAAI,EAAE;oBACJ,UAAU;AACX,iBAAA;aACF,EAAE,CAAC,QAAQ,KAAI;;AAEhB,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;8GAlDU,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAH,IAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAA5B,4BAA4B,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,YAAA,EAAA,eAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAHxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,YAAY;AACvB,iBAAA,CAAA;6JAGU,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAkBN,KAAK,EAAA,CAAA;sBAHJ,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;;sBAChC,YAAY;uBAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,CAAA;;;ACfxC,MAIa,oBAAoB,CAAA;AAsB/B,IAAA,IAAI,IAAI,GAAA;QACN,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;AACD,IAAA,WAAA,CACU,EAAe,EACf,SAA6C,EAE7C,eAAgC,EAAA;QAHhC,IAAE,CAAA,EAAA,GAAF,EAAE,CAAa;QACf,IAAS,CAAA,SAAA,GAAT,SAAS,CAAoC;QAE7C,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;AA5B1C,QAAA,IAAA,CAAA,mBAAmB,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AAC3C,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AAExC,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,OAAO,EAAQ,CAAC;QAG9B,IAAW,CAAA,WAAA,GAAU,EAAE,CAAC;QAExB,IAAW,CAAA,WAAA,GAAQ,EAAE,CAAC;QACtB,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;QAI9B,IAAO,CAAA,OAAA,GAAW,EAAE,CAAC;AAE9B,QAAA,IAAA,CAAA,mBAAmB,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAInD,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;KAU5B;IAEJ,QAAQ,GAAA;QACN,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC1B;IACD,iBAAiB,GAAA;QACf,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAEhC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;AAC7B,YAAA,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,aAAa,EAAE;AAC9B,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC5B,aAAA;YACD,IAAI,CAAC,CAAC,sBAAsB,EAAE;AAC5B,gBAAA,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC,sBAAsB,CAAC;AACnD,gBAAA,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC,uBAAuB,CAAC;AACrD,aAAA;YACD,IAAI,CAAC,CAAC,iBAAiB,EAAE;gBACvB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,WAAW,EAAE,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC;gBACtJ,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,WAAW,GAAG,QAAQ,EAAE,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC;AAErK,gBAAA,IAAI,CAAC,CAAC,eAAe,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;oBACvF,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,iBAAiB,CAAC,WAAW,GAAG,QAAQ,CAAC,CAAC;AACjE,iBAAA;AACF,aAAA;iBAAM,IAAI,CAAC,CAAC,YAAY,EAAE;gBACzB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,GAAG,CAAC,CAAC,YAAY,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,EAAE,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC;AAEnK,gBAAA,IAAI,CAAC,CAAC,eAAe,IAAI,IAAI,CAAC,YAAY,EAAE;oBAC1C,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,GAAG,CAAC,CAAC,YAAY,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACpF,iBAAA;AACF,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,EAAE,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC;AAC5G,aAAA;AACD,YAAA,IAAI,CAAC,CAAC,eAAe,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;AACvF,gBAAA,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5B,aAAA;YACD,IAAI,CAAC,CAAC,YAAY,EAAE;AAClB,gBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;AACjD,aAAA;YACD,IAAI,CAAC,CAAC,mBAAmB,EAAE;AACzB,gBAAA,IAAI,CAAC,iCAAiC,CAAC,CAAC,CAAC,CAAC;gBAC1C,IAAI,CAAC,CAAC,KAAK,EAAE;AACX,oBAAA,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,SAAS,EAAE;wBAC3D,IAAI,CAAC,mCAAmC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;AACvD,qBAAA;AAAM,yBAAA;wBACL,IAAI,CAAC,mCAAmC,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;AAC1D,qBAAA;oBACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC3B,iBAAA;AACF,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,cAAc,CAAC,WAAmB,EAAA;QAChC,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;YAChC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC;AACxC,SAAA;KACF;AAED,IAAA,0BAA0B,CAAC,MAAoB,EAAA;AAC7C,QAAA,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YAChC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,UAAU,KAAI;gBACvC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;AACjC,oBAAA,IAAI,KAAK,CAAC,iBAAiB,IAAI,KAAK,CAAC,iBAAiB,CAAC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC1G,IAAI,MAAM,GAAG,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,GAAG,KAAK,UAAU,CAAC,YAAY,CAAC,CAAC;AAC3G,wBAAA,IAAI,MAAM,IAAI,MAAM,CAAC,aAAa,EAAE;AAClC,4BAAA,UAAU,CAAC,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC;AAChD,yBAAA;AACF,qBAAA;AACH,iBAAC,CAAC,CAAC;AACL,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;AACD,IAAA,MAAM,OAAO,CAAC,MAAoB,EAAE,GAAW,EAAA;AAC7C,QAAA,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;AACxC,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACnE,OAAO,CAAC,MAAM,aAAa,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC;KACpD;IAED,kBAAkB,GAAA;QAChB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;YACjC,IAAI,KAAK,CAAC,iBAAiB,EAAE;gBAC3B,KAAK,CAAC,gBAAgB,GAAG;AACvB,oBAAA,IAAI,EAAE,OAAO,MAAoB,KAAK,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC,UAAU,CAAC;oBACpG,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC;AAC3C,oBAAA,YAAY,EAAE,KAAK,CAAC,iBAAiB,CAAC,YAAY;0BAC9C,IAAI,CAAC,6BAA6B,CAAC,KAAK,CAAC,iBAAiB,CAAC,YAAY,CAAC;0BACxE,MAAK;AACH,4BAAA,OAAO,EAAE,CAAC;yBACX;AACL,oBAAA,MAAM,EAAE;AACN,wBAAA,KAAK,EAAE,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,iBAAiB,CAAC,KAAK,GAAG,IAAI;AAClF,wBAAA,KAAK,EAAE,MAAM;AACb,wBAAA,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM;AAC7C,wBAAA,SAAS,EAAE,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS;AACnD,wBAAA,SAAS,EAAE,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS;AACnD,wBAAA,YAAY,EAAE,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,YAAY;AACzD,wBAAA,UAAU,EAAE,KAAK;AACjB,wBAAA,aAAa,EAAE,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,aAAa;AAC5D,qBAAA;oBACD,OAAO,EAAE,CAAC,IAAS,EAAE,IAAS,EAAE,GAAW,KAAI;AAC7C,wBAAA,IAAI,IAAI,EAAE;AACR,4BAAA,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;4BAC1C,KAAK,CAAC,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAC1D,yBAAA;qBACF;iBACF,CAAC;AACH,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,iCAAiC,CAAC,SAAc,EAAA;AAC9C,QAAA,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC,sBAAsB,CAAC;AAC3D,QAAA,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC,uBAAuB,CAAC;QAC5D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AAClF,YAAA,IAAI,KAAK,EAAE;AACT,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAG,EAAA,SAAS,CAAC,uBAAuB,CAAQ,MAAA,CAAA,CAAC,EAAE,KAAK,EAAE,CAAC;AACrE,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,CAAC;AAClD,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC3B,gBAAA,IAAI,CAAC,mCAAmC,GAAG,KAAK,CAAC;AACjD,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAG,EAAA,SAAS,CAAC,uBAAuB,CAAQ,MAAA,CAAA,CAAC,EAAE,MAAM,EAAE,CAAC;gBACtE,SAAS,CAAC,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;gBAC7D,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC3B,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,6BAA6B,CAAC,MAAW,EAAA;AACvC,QAAA,IAAI,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAC1B,QAAA,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,KAAK,SAAS,CAAC,YAAY,IAAI,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,EAAE;AAC1H,YAAA,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,mCAAmC,CAAC;AAC5D,SAAA;QACD,OAAO,CAAC,SAAS,CAAC,CAAC;KACpB;AAED,IAAA,cAAc,CAAC,QAAa,EAAA;QAC1B,IAAI,cAAc,GAAqB,EAAE,CAAC;AAC1C,QAAA,KAAK,IAAI,SAAS,IAAI,QAAQ,EAAE;YAC9B,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,SAAS,CAAE,CAAC,IAAI,GAAG,MAAM,CAAC;AACxI,YAAA,IAAI,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;AACtC,gBAAA,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,YAAY,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAC/F,aAAA;AACF,SAAA;QACD,cAAc,CAAC,IAAI,CAAC;AAClB,YAAA,YAAY,EAAE,uBAAuB;AACrC,YAAA,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,IAAI,CAAC,UAAU;AACvB,SAAA,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;gBACnC,cAAc,CAAC,IAAI,CAAC;oBAClB,YAAY,EAAE,OAAO,CAAC,YAAY;oBAClC,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,KAAK,EAAE,OAAO,CAAC,KAAK;AACrB,iBAAA,CAAC,CAAC;AACL,aAAC,CAAC,CAAC;AACJ,SAAA;AACD,QAAA,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,GAAG,KAAI;AACjI,YAAA,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC;AACrC,YAAA,MAAM,aAAa,GAAQ,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC;AACrD,YAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC;AAC/B,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,IAAI,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC;AAC9B,aAAA,CAAC,CAAC;YACH,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;AAC3C,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;AACtB,SAAC,CAAC,CAAC;KACJ;IAED,uBAAuB,CAAC,KAAU,EAAE,IAAS,EAAA;QAC3C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;AACpG,QAAA,IAAI,CAAC,IAAI;aACN,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,WAAW,GAAG,QAAQ,CAAC;AACpD,cAAE,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,SAAS,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC;AAClM,QAAA,IAAI,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,EAAE;YAC5C,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,eAAe,KAAI;AACnE,gBAAA,IAAI,eAAe,CAAC,IAAI,IAAI,SAAS,EAAE;AACrC,oBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;AACvF,iBAAA;AAAM,qBAAA,IAAI,eAAe,CAAC,IAAI,IAAI,OAAO,EAAE;AAC1C,oBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrD,iBAAA;AACH,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;IACD,GAAG,GAAA;QACD,IAAI;AACF,YAAA,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;AACtC,YAAA,IAAI,IAAI,CAAC,YAAY,IAAI,MAAM,EAAE;AAC/B,gBAAA,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;AACjC,aAAA;AACD,YAAA,IAAI,IAAI,CAAC,YAAY,IAAI,KAAK,EAAE;AAC9B,gBAAA,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;AACjC,aAAA;AACF,SAAA;AAAC,QAAA,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACtB,SAAA;KACF;AACD,IAAA,cAAc,CAAC,QAAa,EAAA;QAC1B,IAAI,cAAc,GAAG,EAAE,CAAC;AAExB,QAAA,KAAK,IAAI,SAAS,IAAI,QAAQ,EAAE;AAC9B,YAAA,IAAI,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;gBACtC,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,SAAS,CAAE,CAAC,IAAI,GAAG,MAAM,CAAC;AACxI,gBAAA,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,YAAY,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAC/F,aAAA;AACF,SAAA;QACD,cAAc,CAAC,IAAI,CAAC;AAClB,YAAA,YAAY,EAAE,uBAAuB;AACrC,YAAA,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,IAAI,CAAC,UAAU;AACvB,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/B,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;gBACnC,cAAc,CAAC,IAAI,CAAC;oBAClB,YAAY,EAAE,OAAO,CAAC,YAAY;oBAClC,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,KAAK,EAAE,OAAO,CAAC,KAAK;AACrB,iBAAA,CAAC,CAAC;AACL,aAAC,CAAC,CAAC;AACJ,SAAA;AACD,QAAA,MAAM,kBAAkB,GAAa;AACnC,YAAA;AACE,gBAAA,eAAe,EAAE,CAAC,GAAG,cAAc,CAAC;AACpC,gBAAA,mBAAmB,EAAE;AACnB,oBAAA;AACE,wBAAA,YAAY,EAAE,CAAA,EAAG,IAAI,CAAC,OAAO,CAAG,CAAA,CAAA;AAChC,wBAAA,IAAI,EAAE,QAAQ;wBACd,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;AAC9B,qBAAA;AACF,iBAAA;AACF,aAAA;SACF,CAAC;AACF,QAAA,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,kBAAkB,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,GAAG,KAAI;AACrI,YAAA,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC;AACrC,YAAA,MAAM,aAAa,GAAQ,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC;AACrD,YAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC;AAC/B,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,IAAI,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC;AAC9B,aAAA,CAAC,CAAC;YACH,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;AAC3C,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;AACtB,SAAC,CAAC,CAAC;KACJ;IACD,aAAa,GAAA;QACX,IAAI,UAAU,GAAQ,EAAE,CAAC;AACzB,QAAA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,IAAI,KAAK,CAAC,eAAe,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE;gBAClD,SAAS;AACV,aAAA;YACD,IAAI,KAAK,CAAC,iBAAiB,EAAE;AAC3B,gBAAA,WAAW,GAAG,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC;AACnD,aAAA;iBAAM,IAAI,KAAK,CAAC,YAAY,EAAE;gBAC7B,WAAW,GAAG,KAAK,CAAC,YAAY,CAAC,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC;AACzF,aAAA;AAAM,iBAAA;AACL,gBAAA,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC;AACzB,aAAA;AAED,YAAA,UAAU,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC;AAC9D,SAAA;AACD,QAAA,OAAO,UAAU,CAAC;KACnB;AAED;;AAEG;IACH,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,kBAAkB,CAAQ,MAAA,CAAA,CAAC,EAAE,OAAO,EAAE,CAAC;AAC7D,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;KACrB;AAED;;;;AAIG;AAEH,IAAA,UAAU,CAAC,WAAmB,EAAA;QAC5B,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;;YAEhC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAgB,CAAC;AACpD,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;AAChC,YAAA,OAAO,OAAsB,CAAC;AAC/B,SAAA;KACF;AAED,IAAA,gBAAgB,CAAC,KAAY,EAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,YAAY,GAAG,CAAC,KAAK,CAAC,kBAAkB,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC;KACxE;AAED,IAAA,iBAAiB,CAAC,iBAAsB,EAAA;QACtC,IACE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,WAAW,GAAG,QAAQ,CAAC;AAC9D,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,WAAW,GAAG,QAAQ,CAAC,CAAC,KAAK,KAAK,EAAE;AAC3E,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,WAAW,GAAG,QAAQ,CAAC,CAAC,KAAK,KAAK,IAAI;AAC7E,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,WAAW,GAAG,QAAQ,CAAC,CAAC,KAAK,KAAK,SAAS,EAClF;YAEA,IAAI,SAAS,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,GAAG,IAAI,iBAAiB,CAAC,SAAS,CAAC,CAAC;;AAInG,YAAA,IAAI,CAAC,eAAe,CAAC,qBAAqB,CACxC,IAAI,CAAC,MAAM,EACX,iBAAiB,CAAC,WAAW,GAAG,QAAQ,EACxC,iBAAiB,CAAC,SAAS,EAC3B;AACE,gBAAA;oBACE,YAAY,EAAE,SAAS,CAAC,GAAG;oBAC3B,SAAS,EAAE,IAAI;oBACf,IAAI,EAAE,SAAS,CAAC,IAAI;AACpB,oBAAA,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,WAAW,GAAG,QAAQ,CAAC,CAAC,KAAK;AAC1E,iBAAA;AACF,aAAA,EACD,iBAAiB,CAAC,UAAU,EAC5B,KAAK,EACL,iBAAiB,CAAC,gBAAgB,GAAG,iBAAiB,CAAC,gBAAgB,GAAG,EAAE,EAC5E,iBAAiB,CAAC,OAAO,EACzB,iBAAiB,CAAC,WAAW,CAC9B,CAAC;AACH,SAAA;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;QACjC,IAAI,IAAI,CAAC,aAAa;AAAE,YAAA,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;KAC1D;IACD,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;KACxB;8GA3WU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAI,IAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAO,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,mZCpBjC,89HAmDM,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAN,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAY,oBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,cAAA,EAAA,0BAAA,EAAA,2BAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,yBAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,aAAA,EAAA,MAAA,EAAA,cAAA,EAAA,UAAA,EAAA,WAAA,EAAA,SAAA,EAAA,SAAA,EAAA,MAAA,EAAA,YAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,KAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,4BAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FD/BO,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,89HAAA,EAAA,CAAA;0JAQU,KAAK,EAAA,CAAA;sBAA3C,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAE5B,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,GAAG,EAAA,CAAA;sBAAX,KAAK;;;AEfR,MAGa,uBAAuB,CAAA;AAHpC,IAAA,WAAA,GAAA;AAIE,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AACpC,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AACxC,QAAA,IAAA,CAAA,mBAAmB,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AACnD,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAIC,SAAO,EAAQ,CAAC;AAuMxC,KAAA;AAtMC;;;AAGG;AACH,IAAA,WAAW,CAAC,uBAAkD,EAAA;QAC5D,uBAAuB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;AAChE,YAAA,MAAM,KAAK,GAAG,uBAAuB,CAAC,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAY,KAAK,OAAO,CAAC,uBAAuB,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAA;AAC5L,YAAA,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;AAChB,gBAAA,IAAI,uBAAuB,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,KAAK,uBAAuB,CAAC,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,EAAE;AAC5M,oBAAA,uBAAuB,CAAC,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI,EAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAA;AAC1H,oBAAA,uBAAuB,CAAC,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;AACnF,oBAAA,uBAAuB,CAAC,oBAAoB,GAAG,KAAK,CAAC;AACtD,iBAAA;AAAM,qBAAA;AACL,oBAAA,uBAAuB,CAAC,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;AACpF,iBAAA;AACF,aAAA;AACH,SAAC,CAAC,CAAA;AAEF,QAAA,uBAAuB,CAAC,oBAAoB,CAAC,OAAO,CAAC,GAAG,IAAG;YACzD,MAAM,kBAAkB,GAAG,uBAAuB,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,GAAQ,KAAK,GAAG,CAAC,uBAAuB,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3K,uBAAuB,CAAC,gBAAgB,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;AACzE,SAAC,CAAC,CAAA;AACF,QAAA,uBAAuB,CAAC,oBAAoB,GAAG,EAAE,CAAC;KACnD;AAED;;;;;;AAMG;AACH,IAAA,gBAAgB,CAAC,uBAAkD,EAAE,GAAW,EAAE,QAAgB,EAAE,MAAe,EAAA;AACjH,QAAA,uBAAuB,CAAC,oBAAoB,GAAG,IAAI,CAAC;AACpD,QAAA,uBAAuB,CAAC,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC;AACrF,QAAA,IAAI,MAAM,IAAI,QAAQ,KAAK,IAAI,EAAE;YAC/B,IAAI,CAAC,aAAa,CAAC,uBAAuB,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AACzD,SAAA;AAAM,aAAA,IAAI,CAAC,MAAM,IAAI,QAAQ,KAAK,IAAI,EAAE;YACvC,IAAI,CAAC,aAAa,CAAC,uBAAuB,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AACzD,SAAA;AAAM,aAAA,IAAI,MAAM,IAAI,QAAQ,KAAK,IAAI,EAAE;AACtC,YAAA,uBAAuB,CAAC,gBAAgB,GAAG,EAAE,CAAC;AAC/C,SAAA;AAAM,aAAA,IAAI,CAAC,MAAM,IAAI,QAAQ,KAAK,IAAI,EAAE;YACvC,IAAI,CAAC,aAAa,CAAC,uBAAuB,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AACzD,SAAA;KACF;AAED;;;;AAIG;IACH,cAAc,CAAC,uBAAkD,EAAE,GAAQ,EAAA;AACzE,QAAA,MAAM,SAAS,GAAG;AAChB,YAAA,KAAK,EAAE,WAAW;AAClB,YAAA,IAAI,EAAE,gCAAgC;AACtC,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,WAAW,EAAE,UAAU;AACvB,YAAA,WAAW,EAAE,WAAW;SACzB,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,QAAa,KAAI;AACrD,YAAA,IAAI,QAAQ,EAAE;AACZ,gBAAA,MAAM,kBAAkB,GAAgB;AACtC,oBAAA;wBACE,YAAY,EAAE,uBAAuB,CAAC,OAAO;AAC7C,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,KAAK,EAAE,GAAG,CAAC,uBAAuB,CAAC,OAAO,CAAC;AAC5C,qBAAA;iBACF,CAAA;gBAED,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,kBAAkB,EAAE,uBAAuB,CAAC,UAAU,CAAC;qBACvF,IAAI,CAACC,WAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC;AAChD,oBAAA,IAAI,EAAE,OAAM,GAAG,KAAG;AAChB,wBAAA,MAAM,uBAAuB,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;AAC9D,wBAAA,MAAM,aAAa,GAAQ,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC;wBACrD,IAAI,CAAC,aAAa,CAAC,uBAAuB,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AACxD,wBAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;qBACtF;AACD,oBAAA,KAAK,EAAE,OAAM,GAAG,KAAG;AACjB,wBAAA,IAAI,CAAC,mBAAmB,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;qBACxD;AACF,iBAAA,CAAC,CAAA;AACL,aAAA;YACD,OAAO;AACT,SAAC,CAAC,CAAA;KACH;AAED;;;AAGG;AACH,IAAA,eAAe,CAAC,uBAAkD,EAAA;AAChE,QAAA,MAAM,SAAS,GAAG;AAChB,YAAA,KAAK,EAAE,WAAW;AAClB,YAAA,IAAI,EAAE,sCAAsC;AAC5C,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,WAAW,EAAE,UAAU;AACvB,YAAA,WAAW,EAAE,WAAW;SACzB,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,QAAa,KAAI;AACrD,YAAA,IAAI,QAAQ,EAAE;AACZ,gBAAA,MAAM,kBAAkB,GAAoB;AAC1C,oBAAA,SAAS,EAAE,EAAE;iBACd,CAAA;gBACD,MAAM,aAAa,GAAe,EAAE,CAAC;gBACrC,uBAAuB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,IAAS,KAAI;AAC7D,oBAAA,MAAM,cAAc,GAAgB;AAClC,wBAAA;4BACE,YAAY,EAAE,uBAAuB,CAAC,OAAO;AAC7C,4BAAA,IAAI,EAAE,QAAQ;AACd,4BAAA,KAAK,EAAE,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC;AAC7C,yBAAA;qBACF,CAAA;oBACD,aAAa,CAAC,IAAI,CAAC;AACjB,wBAAA,SAAS,EAAE,cAAc;AAC1B,qBAAA,CAAC,CAAA;AACJ,iBAAC,CAAC,CAAA;AACF,gBAAA,kBAAkB,CAAC,SAAS,GAAG,aAAa,CAAC;gBAE7C,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,kBAAkB,EAAE,uBAAuB,CAAC,UAAU,CAAC;qBAChG,IAAI,CAACA,WAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9C,oBAAA,IAAI,EAAE,OAAM,QAAQ,KAAI,IAAI,CAAC,qBAAqB,CAAC,uBAAuB,EAAE,QAAQ,CAAC;AACrF,oBAAA,KAAK,EAAE,GAAG,IAAI,IAAI,CAAC,mBAAmB,CAAC,uBAAuB,EAAE,GAAG,CAAC;AACrE,iBAAA,CAAC,CAAA;AACL,aAAA;YACD,OAAO;AACT,SAAC,CAAC,CAAA;KACH;AAED;;;;AAIG;AACH,IAAA,MAAM,qBAAqB,CAAC,uBAAkD,EAAE,QAAa,EAAA;AAC3F,QAAA,MAAM,uBAAuB,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;AAC9D,QAAA,IAAI,CAAC,qBAAqB,CAAC,uBAAuB,CAAC,CAAC;AACpD,QAAA,MAAM,aAAa,GAAQ,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC;AAC1D,QAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;KACvF;AAED;;;AAGG;AACH,IAAA,qBAAqB,CAAC,uBAAkD,EAAA;AACtE,QAAA,uBAAuB,CAAC,gBAAgB,GAAG,EAAE,CAAC;KAC/C;AAED;;;;;AAKG;AACH,IAAA,MAAM,mBAAmB,CAAC,uBAAkD,EAAE,KAAU,EAAA;QACtF,IAAI,kBAAkB,GAAG,EAAE,CAAC;AAE5B,QAAA,IAAI,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,KAAK,EAAE;YACzC,kBAAkB,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,IAAG;gBACnD,MAAM,gBAAgB,GAAG,qCAAqC,CAAC;gBAC/D,MAAM,eAAe,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACtD,gBAAA,IAAI,eAAe,EAAE;oBACnB,MAAM,gBAAgB,GAAG,wBAAwB,CAAC;oBAClD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;AAC/C,oBAAA,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3B,iBAAA;AACD,gBAAA,OAAO,IAAI,CAAC;AACd,aAAC,CAAC,CAAA;AACH,SAAA;AAED,QAAA,IAAG,kBAAkB,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;AAC3C,QAAA,kBAAkB,GAAG,kBAAkB,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC;QACtE,MAAM,kBAAkB,GAAG,uBAAuB,CAAC,gBAAgB,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,KAAK,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;QACvJ,MAAM,YAAY,GAAG,kBAAkB,IAAI,CAAC,GAAG,uBAAuB,CAAC,gBAAgB,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,uBAAuB,CAAC,gBAAgB,CAAC;AAC7J,QAAA,uBAAuB,CAAC,gBAAgB,GAAG,YAAY,CAAC;AACxD,QAAA,IAAI,uBAAuB,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;YAAE,uBAAuB,CAAC,oBAAoB,GAAG,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;AACtJ,QAAA,MAAM,uBAAuB,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;KAC/D;AAED;;;;;AAKG;AACH,IAAA,aAAa,CAAC,uBAAkD,EAAE,GAAW,EAAE,MAAc,EAAA;QAC3F,IAAI,MAAM,KAAK,KAAK,EAAE;AACpB,YAAA,uBAAuB,CAAC,gBAAgB,CAAC,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACjH,SAAA;aAAM,IAAI,MAAM,KAAK,KAAK,EAAE;AAC3B,YAAA,MAAM,kBAAkB,GAAG,uBAAuB,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,GAAQ,KAAK,GAAG,CAAC,uBAAuB,CAAC,OAAO,CAAC,KAAK,uBAAuB,CAAC,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC;YACxO,uBAAuB,CAAC,gBAAgB,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;AACxE,SAAA;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;KAClC;8GA1MU,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,cAFtB,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAEP,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACPD,MAIa,gBAAiB,SAAQ,uBAAuB,CAAA;AAJ7D,IAAA,WAAA,GAAA;;AAKE,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AAE/B,QAAA,IAAA,CAAA,mBAAmB,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AAG3C,QAAA,IAAA,CAAA,cAAc,GAA8B;AAC1C,YAAA,gBAAgB,EAAE,IAAI;AACtB,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,gBAAgB,EAAE,EAAE;AACpB,YAAA,oBAAoB,EAAE,EAAE;AACxB,YAAA,oBAAoB,EAAE,IAAI;SAC3B,CAAC;QACF,IAAgB,CAAA,gBAAA,GAAU,EAAE,CAAC;QAC7B,IAAoB,CAAA,oBAAA,GAAU,EAAE,CAAC;QAIxB,IAAW,CAAA,WAAA,GAAQ,EAAE,CAAC;AA0QhC,KAAA;IAvQC,QAAQ,GAAA;QACN,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC1B;IAED,eAAe,GAAA;QACb,IAAI,CAAC,cAAc,GAAG;YACpB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;AACvC,YAAA,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO;AACnC,YAAA,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU;YACzC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;AAC/C,YAAA,oBAAoB,EAAE,IAAI;SAC3B,CAAA;KACF;AAED;;;;AAIG;AACH,IAAA,MAAM,OAAO,CAAC,MAAoB,EAAE,GAAW,EAAA;AAC7C,QAAA,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAA;AACnC,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACnE,OAAO,CAAC,MAAMC,eAAa,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC;KACpD;AAED,IAAA,sBAAsB,CAAC,MAAoB,EAAA;AACzC,QAAA,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AAChC,YAAA,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,IAAG;gBACpC,IAAI,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,GAAG,KAAK,SAAS,CAAC,YAAY,CAAC,CAAC;gBACnG,IAAI,MAAM,EAAE,aAAa,EAAE;AACzB,oBAAA,SAAS,CAAC,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC;AAC/C,iBAAA;AACH,aAAC,CAAC,CAAA;AACH,SAAA;KACF;AAED;;AAEG;IACH,iBAAiB,GAAA;QACf,IAAI,CAAC,aAAa,EAAE,CAAA;QACpB,IAAI,CAAC,WAAW,GAAG;AACjB,YAAA,IAAI,EAAE,OAAO,MAAoB,KAAK,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;AAC/F,YAAA,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,GAAG,MAAK;AACrF,gBAAA,OAAO,EAAE,CAAC;aACX;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AACtD,gBAAA;AACE,oBAAA,GAAG,EAAE,OAAO;AACZ,oBAAA,KAAK,EAAE,aAAa;AACpB,oBAAA,IAAI,EAAE,OAAO;AACb,oBAAA,KAAK,EAAE,IAAI;AACX,oBAAA,QAAQ,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO;AACnE,oBAAA,cAAc,EAAE,IAAI;AACpB,oBAAA,eAAe,EAAE,IAAI;AACrB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,YAAY,EAAE,IAAI;oBAClB,OAAO,EAAE,CAAC,GAAW,EAAE,aAAqB,EAAE,QAAgB,EAAE,MAAe,KAAI;AACjF,wBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;qBACnE;oBACD,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;AAC1C,iBAAA;AAEF,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM;AACxC,gBAAA,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,YAAY;AACpD,gBAAA,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,aAAa;AACtD,gBAAA,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,eAAe;AAC1D,gBAAA,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,YAAY;AACpD,gBAAA,cAAc,EAAE;AACd,oBAAA;AACE,wBAAA,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,WAAW;AAChE,wBAAA,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK;wBACxD,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,GAAG,KAAK;wBAC5E,QAAQ,EAAE,MAAK;4BACb,IAAI,CAAC,UAAU,EAAE,CAAA;yBAClB;AACF,qBAAA;AACD,oBAAA;AACE,wBAAA,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,WAAW;AAChE,wBAAA,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK;AACxD,wBAAA,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,GAAG,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC;wBAC3K,QAAQ,EAAE,YAAW;AACnB,4BAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;yBAC3C;AACF,qBAAA;AACF,iBAAA;AACD,gBAAA,OAAO,EAAE;AACP,oBAAA;AACE,wBAAA,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;AAChD,wBAAA,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO;AACrD,wBAAA,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ;AACvD,wBAAA,QAAQ,EAAE,OAAO,KAAU,EAAE,IAAS,EAAE,GAAQ,EAAE,MAAW,EAAE,KAAU,KAAI;AAC3E,4BAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;yBACxB;AACF,qBAAA;AACD,oBAAA;AACE,wBAAA,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;AAChD,wBAAA,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO;AACrD,wBAAA,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ;AACvD,wBAAA,QAAQ,EAAE,OAAO,KAAU,EAAE,IAAS,EAAE,GAAQ,EAAE,MAAW,EAAE,KAAU,KAAI;AAC3E,4BAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;yBAC1B;AACF,qBAAA;AACD,oBAAA;AACE,wBAAA,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;AAChD,wBAAA,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO;wBACrD,QAAQ,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,oBAAoB;AAC1G,wBAAA,QAAQ,EAAE,OAAO,KAAU,EAAE,IAAS,EAAE,GAAQ,EAAE,MAAW,EAAE,KAAU,KAAI;4BAC3E,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;yBAC/C;AACF,qBAAA;AACF,iBAAA;;AAEF,aAAA;YACD,MAAM,EAAE,YAAW;AACjB,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;aACvC;SACF,CAAC;KACH;IAED,aAAa,GAAA;QACX,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,IAAG;YAC1C,IAAI,OAAO,CAAC,UAAU,EAAE;AACtB,gBAAA,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,IAAI,SAAS,KAAK,UAAU,CAAC,QAAQ,CAAC,EAAE;AAC3E,oBAAA,OAAO,CAAC,WAAW,GAAG,IAAI,CAAA;AAC3B,iBAAA;AACF,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;IAED,gBAAgB,GAAA;QACd,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,OAAM,CAAC,KAAG;YAC1C,IAAI,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,YAAY,CAAC,WAAW,EAAE;AAChD,gBAAA,MAAM,IAAI,GAAQ,MAAM,IAAI,CAAC,OAAO,CAClC;AACE,oBAAA,UAAU,EAAE,EAAE;AACd,oBAAA,YAAY,EAAE,EAAE;AACjB,iBAAA,EACD,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC,CAAA;AAC7B,gBAAA,IAAI,IAAI,EAAE;oBACR,CAAC,CAAC,YAAa,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC;AAC3C,iBAAA;AACF,aAAA;AACH,SAAC,CAAC,CAAA;KACH;AAID,IAAA,cAAc,CAAC,GAAQ,EAAA;QACrB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,IAAG;YAExC,IAAI,KAAK,CAAC,iBAAiB,EAAE;gBAE3B,KAAK,CAAC,KAAK,GAAG;oBACZ,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC;AAC1C,oBAAA,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;iBACvB,CAAA;AACF,aAAA;AAAM,iBAAA,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,YAAY,CAAC,EAAE,KAAK,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE;gBACrG,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;AACzC,aAAA;AAAM,iBAAA;gBAEL,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;AAC7B,aAAA;AACH,SAAC,CAAC,CAAA;KACH;AAED,IAAA,YAAY,CAAC,GAAQ,EAAA;AACnB,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;AACxB,QAAA,MAAM,SAAS,GAAG;AAChB,YAAA,SAAS,EAAE,oBAAoB;AAC/B,YAAA,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,cAAc;YAC7H,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,IAAI,kBAAkB,CAAC,uBAAuB;AAC1F,YAAA,IAAI,EAAE;AACJ,gBAAA,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM;AACtC,gBAAA,YAAY,EAAE,IAAI;AACnB,aAAA;SACF,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,QAAa,KAAI;AAC1D,YAAA,IAAI,CAAC,QAAQ;gBAAE,OAAO;AACxB,SAAC,CAAC,CAAA;KACH;AAED;;AAEG;IACH,UAAU,GAAA;QAER,IAAI,CAAC,eAAe,EAAE,CAAA;AACtB,QAAA,MAAM,SAAS,GAAG;AAChB,YAAA,SAAS,EAAE,oBAAoB;AAC/B,YAAA,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,WAAW;YAC9D,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,IAAI,kBAAkB,CAAC,uBAAuB;AAC1F,YAAA,IAAI,EAAE;AACJ,gBAAA,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM;gBACtC,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,gBAAgB,EAAC,IAAI,CAAC,gBAAgB;AACtC,gBAAA,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU;AACzC,gBAAA,YAAY,EAAE,MAAM;AAGrB,aAAA;SACF,CAAC;QAEF,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,QAAa,KAAI;AACpD,YAAA,IAAI,CAAC,QAAQ;gBAAE,OAAO;AACxB,SAAC,CAAC,CAAA;KACH;AACD;;;AAGG;AACH,IAAA,cAAc,CAAC,GAAQ,EAAA;AACrB,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;QACxB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,IAAG;AAC1C,YAAA,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE;gBAC3B,OAAO,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,KAAK,IAAI,GAAG,OAAO,EAAE,KAAK,GAAG,EAAE,CAAC,CAAA;AACxE,aAAA;YAAA,CAAC;AACJ,SAAC,CAAC,CAAC;AAEH,QAAA,MAAM,SAAS,GAAG;AAChB,YAAA,SAAS,EAAE,oBAAoB;AAC/B,YAAA,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,EAAE;YACjH,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,IAAI,kBAAkB,CAAC,uBAAuB;AAC1F,YAAA,IAAI,EAAE;AAEJ,gBAAA,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM;gBACtC,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;AAC7B,gBAAA,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU;AACzC,gBAAA,YAAY,EAAE,KAAK;gBACnB,gBAAgB,EAAC,IAAI,CAAC,gBAAgB;AACtC,gBAAA,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO;AACnC,gBAAA,GAAG,EAAE,GAAG;AACT,aAAA;SACF,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,QAAa,KAAI;AAC1D,YAAA,IAAI,CAAC,QAAQ;gBAAE,OAAO;AAExB,SAAC,CAAC,CAAA;KACH;IACD,eAAe,GAAA;QACb,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAG;YACpC,IAAI,CAAC,CAAC,KAAK,EAAE;AACX,gBAAA,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;AAChB,aAAA;AACH,SAAC,CAAC,CAAA;KACH;AAED;;;AAGG;IACH,mBAAmB,GAAA;QACjB,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC,CAAC;KACrE;8GA1RU,gBAAgB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,6SCnB7B,6aAWM,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAnB,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,kDAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDQO,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAJ5B,SAAS;+BACE,wBAAwB,EAAA,QAAA,EAAA,6aAAA,EAAA,CAAA;8BAoBzB,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAC4C,gBAAgB,EAAA,CAAA;sBAAjE,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,kBAAkB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;;;AEhBlD,MA+Ca,sBAAsB,CAAA;8GAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,iBA7C/B,yBAAyB;YACzB,eAAe;YACf,eAAe;YACf,oBAAoB;YACpB,yBAAyB;YACzB,wBAAwB;YACxB,sBAAsB;YACtB,YAAY;YACZ,gBAAgB;YAChB,oBAAoB;YACpB,4BAA4B;AAC5B,YAAA,wBAAwB,aAIxB,cAAc;YACd,gBAAgB;YAChB,mBAAmB;YACnB,UAAU;AACV,YAAA,YAAY,aAGZ,yBAAyB;YACzB,eAAe;YACf,eAAe;YACf,oBAAoB;YACpB,yBAAyB;YACzB,sBAAsB;YACtB,wBAAwB;YACxB,YAAY;YACZ,gBAAgB;YAChB,oBAAoB;YACpB,4BAA4B,CAAA,EAAA,CAAA,CAAA,EAAA;AAanB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,EATtB,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,WAAW;AACpB,gBAAA,QAAQ,EAAE,iBAAiB;gBAC3B,IAAI,EAAE,CAAC,eAAe,CAAC;AACxB,aAAA;YACD,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,CAAC,cAAc,EAAE;AAC3E,SAAA,EAAA,OAAA,EAAA,CA5BC,cAAc;YACd,gBAAgB;YAChB,mBAAmB;YACnB,UAAU;YACV,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FA0BH,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBA/ClC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,yBAAyB;wBACzB,eAAe;wBACf,eAAe;wBACf,oBAAoB;wBACpB,yBAAyB;wBACzB,wBAAwB;wBACxB,sBAAsB;wBACtB,YAAY;wBACZ,gBAAgB;wBAChB,oBAAoB;wBACpB,4BAA4B;wBAC5B,wBAAwB;AAEzB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,cAAc;wBACd,gBAAgB;wBAChB,mBAAmB;wBACnB,UAAU;wBACV,YAAY;AACb,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,yBAAyB;wBACzB,eAAe;wBACf,eAAe;wBACf,oBAAoB;wBACpB,yBAAyB;wBACzB,sBAAsB;wBACtB,wBAAwB;wBACxB,YAAY;wBACZ,gBAAgB;wBAChB,oBAAoB;wBACpB,4BAA4B;AAG7B,qBAAA;AACD,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,WAAW;AACpB,4BAAA,QAAQ,EAAE,iBAAiB;4BAC3B,IAAI,EAAE,CAAC,eAAe,CAAC;AACxB,yBAAA;wBACD,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,CAAC,cAAc,EAAE;AAC3E,qBAAA;AACF,iBAAA,CAAA;;;AC/DD,MACa,iBAAiB,CAAA;AAG5B,IAAA,WAAA,CAAmB,aAA4B,EAAA;QAA5B,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAFxC,IAAK,CAAA,KAAA,GAAG,CAAC,CAAC;KAEkC;IAEnD,SAAS,CAAC,GAAqB,EAAE,IAAiB,EAAA;AAChD,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE;AACpB,YAAA,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;AACnC,SAAA;QACD,IAAI,CAAC,KAAK,EAAE,CAAC;AACb,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAC1B,QAAQ,CAAC,MAAK;YACZ,IAAI,CAAC,KAAK,EAAE,CAAC;AACb,YAAA,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE;AACpB,gBAAA,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;AAClC,aAAA;SACF,CAAC,CACH,CAAC;KACH;8GAlBU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAF,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAAjB,iBAAiB,EAAA,CAAA,CAAA,EAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,UAAU;;;ACJJ,MAAM,WAAW,GAAG,CAAC,QAAwB,EAAE,mBAAwB,EAAE,SAAc,EAAE,YAAiB,KAAI;AACjH,IAAA,IAAG,QAAQ,EAAC;QACV,mBAAmB,CAAC,OAAO,CAAC;AAC1B,YAAA,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO;AAC5C,YAAA,KAAK,EAAE,SAAS;AACjB,SAAA,CAAC,CAAA;AACA,QAAA,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACrB,YAAY,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,EAAE,CAAA;AACrD,KAAA;AACH,EAAC;MAEY,WAAW,GAAG,CAAC,GAAQ,EAAE,mBAAwB,KAAI;IAChE,mBAAmB,CAAC,KAAK,CAAC,EAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAC,CAAC,CAAA;AAC1E,EAAC;MAEY,iBAAiB,GAAG,CAAC,QAAkB,EAAE,mBAAwB,KAAI;AAChF,IAAA,IAAI,QAAQ,EAAE;AACZ,QAAA,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACzB,mBAAmB,CAAC,OAAO,CAAC;AAC1B,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,IAAI,EAAE,oBAAoB;AAC3B,SAAA,CAAC,CAAA;AACH,KAAA;AACH;;ACtBF,MAIa,2BAA2B,CAAA;AAJxC,IAAA,WAAA,GAAA;AA2BE,QAAA,IAAA,CAAA,iBAAiB,GAAG,CAAC,QAAkB,EAAE,mBAAwB,KAAI;AACnE,YAAA,IAAI,QAAQ,EAAE;AACZ,gBAAA,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACzB,mBAAmB,CAAC,OAAO,CAAC;AAC1B,oBAAA,KAAK,EAAE,SAAS;AAChB,oBAAA,IAAI,EAAE,oBAAoB;AAC3B,iBAAA,CAAC,CAAA;AACH,aAAA;AACL,SAAC,CAAA;AACA,KAAA;IA/BC,WAAW,CAAC,QAA8B,EAAE,mBAAwB,EAAE,SAAc,EAAE,YAAiB,EAAE,IAAI,GAAG,QAAQ,EAAA;AACtH,QAAA,IAAI,QAAQ,EAAE;YACZ,IAAG,IAAI,KAAK,QAAQ,EAAC;gBACnB,mBAAmB,CAAC,OAAO,CAAC;AAC1B,oBAAA,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO;AAC5C,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA,CAAC,CAAA;AACH,aAAA;iBAAK,IAAG,IAAI,KAAK,WAAW,EAAC;gBAC5B,mBAAmB,CAAC,OAAO,CAAC;oBAC1B,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,OAAO;AACxD,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA,CAAC,CAAA;AACH,aAAA;AACD,YAAA,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YACrB,YAAY,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,EAAE,CAAA;AACnD,SAAA;KACF;IAED,WAAW,CAAC,GAAQ,EAAE,mBAAwB,EAAA;QAC5C,mBAAmB,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;KAC3E;8GArBU,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,cAH1B,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAGP,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAJvC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACLD;;AAEG;;;;"}