{"version":3,"file":"ui-av.mjs","sources":["../../../projects/av-ui/src/lib/av-ui.service.ts","../../../projects/av-ui/src/lib/av-ui.component.ts","../../../projects/av-ui/src/lib/av-button/av-button.component.ts","../../../projects/av-ui/src/lib/av-button/av-button.component.html","../../../projects/av-ui/src/lib/av-input/av-input.component.ts","../../../projects/av-ui/src/lib/av-input/av-input.component.html","../../../projects/av-ui/src/lib/av-select/av-select.component.ts","../../../projects/av-ui/src/lib/av-select/av-select.component.html","../../../projects/av-ui/src/lib/av-textarea/av-textarea.component.ts","../../../projects/av-ui/src/lib/av-textarea/av-textarea.component.html","../../../projects/av-ui/src/lib/av-password/av-password.component.ts","../../../projects/av-ui/src/lib/av-password/av-password.component.html","../../../projects/av-ui/src/lib/av-date-picker/av-date-picker.component.ts","../../../projects/av-ui/src/lib/av-date-picker/av-date-picker.component.html","../../../projects/av-ui/src/lib/av-checkbox/av-checkbox.component.ts","../../../projects/av-ui/src/lib/av-checkbox/av-checkbox.component.html","../../../projects/av-ui/src/lib/av-radio-button/av-radio-button.component.ts","../../../projects/av-ui/src/lib/av-radio-button/av-radio-button.component.html","../../../projects/av-ui/src/lib/av-multiselect/av-multiselect.component.ts","../../../projects/av-ui/src/lib/av-multiselect/av-multiselect.component.html","../../../projects/av-ui/src/lib/av-table/av-table.component.ts","../../../projects/av-ui/src/lib/av-table/av-table.component.html","../../../projects/av-ui/src/lib/av-accordion/accordion-panel.directive.ts","../../../projects/av-ui/src/lib/av-accordion/av-accordion.component.ts","../../../projects/av-ui/src/lib/av-accordion/av-accordion.component.html","../../../projects/av-ui/src/lib/av-tabs/tab.directive.ts","../../../projects/av-ui/src/lib/av-tabs/av-tabs.component.ts","../../../projects/av-ui/src/lib/av-tabs/av-tabs.component.html","../../../projects/av-ui/src/lib/av-dialog/av-dialog.component.ts","../../../projects/av-ui/src/lib/av-dialog/av-dialog.component.html","../../../projects/av-ui/src/lib/av-file-upload/av-file-upload.component.ts","../../../projects/av-ui/src/lib/av-file-upload/av-file-upload.component.html","../../../projects/av-ui/src/lib/av-message/av-message.component.ts","../../../projects/av-ui/src/lib/av-message/av-message.component.html","../../../projects/av-ui/src/lib/av-toast/av-toast.component.ts","../../../projects/av-ui/src/lib/av-toast/av-toast.component.html","../../../projects/av-ui/src/lib/av-progress-bar/av-progress-bar.component.ts","../../../projects/av-ui/src/lib/av-progress-bar/av-progress-bar.component.html","../../../projects/av-ui/src/lib/av-spinner/av-spinner.component.ts","../../../projects/av-ui/src/lib/av-spinner/av-spinner.component.html","../../../projects/av-ui/src/lib/validator.service.ts","../../../projects/av-ui/src/public-api.ts","../../../projects/av-ui/src/ui-av.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class AvUiService {\r\n\r\n  constructor() { }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-av-ui',\r\n  imports: [],\r\n  template: `\r\n    <p>\r\n      av-ui works!\r\n    </p>\r\n  `,\r\n  styles: ``\r\n})\r\nexport class AvUiComponent {\r\n\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, Input } from '@angular/core';\r\nimport { RouterLink } from '@angular/router';\r\nimport { ButtonModule } from 'primeng/button';\r\n\r\n@Component({\r\n  selector: 'av-button',\r\n  standalone: true,\r\n  imports: [CommonModule, ButtonModule, RouterLink],\r\n  templateUrl: './av-button.component.html',\r\n  styleUrls: ['./av-button.component.css']\r\n})\r\nexport class AvButtonComponent {\r\n  @Input() label?: string;\r\n  @Input() icon?: string;\r\n  @Input() iconPos: 'left' | 'right' | 'top' | 'bottom' = 'left';\r\n  @Input() badge?: string;\r\n  @Input() disabled = false;\r\n  @Input() loading = false;\r\n  @Input() loadingIcon?: string;\r\n  @Input() raised = false;\r\n  @Input() rounded = false;\r\n  @Input() text = false;\r\n  @Input() plain = false;\r\n  @Input() severity?: 'info' | 'success' | 'warn' | 'danger' | 'secondary' | 'contrast' | 'help' | 'primary';\r\n  @Input() outlined = false;\r\n  @Input() size?: 'small' | 'large';\r\n  @Input() variant?: 'text' | 'outlined';\r\n  @Input() style?: object;\r\n  @Input() styleClass?: string;\r\n  @Input() badgeClass?: string;\r\n  @Input() badgeSeverity?: 'info' | 'success' | 'warn' | 'danger' | 'secondary' | 'contrast' | 'help' | 'primary';\r\n  @Input() ariaLabel?: string;\r\n  @Input() autofocus = false;\r\n  @Input() fluid = false;\r\n  @Input() buttonProps?: any;\r\n\r\n  // ✅ Nuevo tipo de botón: submit\r\n  @Input() buttonType: 'button' | 'external' | 'router' | 'submit' = 'button';\r\n  @Input() href?: string; \r\n  @Input() routerLink?: string; \r\n}\r\n","@if(buttonType === 'external') {\r\n    <!-- ✅ Enlace Externo -->\r\n    <a [href]=\"href\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"p-button font-bold\">\r\n      {{ label }}\r\n    </a>\r\n  } @else if(buttonType === 'router') {\r\n    <!-- ✅ Enlace Interno -->\r\n    <a [routerLink]=\"routerLink\" class=\"p-button font-bold\">\r\n      {{ label }}\r\n    </a>\r\n  } @else if(buttonType === 'submit') {\r\n    <!-- ✅ Botón Submit -->\r\n    <button type=\"submit\" class=\"p-button font-bold\">\r\n      {{ label }}\r\n    </button>\r\n  } @else {\r\n    <!-- ✅ Botón Normal -->\r\n    <p-button \r\n      [label]=\"label\" \r\n      [icon]=\"icon\" \r\n      [iconPos]=\"iconPos\"\r\n      [badge]=\"badge\" \r\n      [disabled]=\"disabled\"\r\n      [loading]=\"loading\"\r\n      [loadingIcon]=\"loadingIcon\"\r\n      [raised]=\"raised\"\r\n      [rounded]=\"rounded\"\r\n      [text]=\"text\"\r\n      [plain]=\"plain\"\r\n      [severity]=\"severity\"\r\n      [outlined]=\"outlined\"\r\n      [size]=\"size\"\r\n      [variant]=\"variant\"\r\n      [style]=\"style\"\r\n      [styleClass]=\"styleClass\"\r\n      [badgeClass]=\"badgeClass\"\r\n      [badgeSeverity]=\"badgeSeverity\"\r\n      [ariaLabel]=\"ariaLabel\"\r\n      [autofocus]=\"autofocus\"\r\n      [fluid]=\"fluid\"\r\n      [buttonProps]=\"buttonProps\">\r\n    </p-button>\r\n  }\r\n  ","import { CommonModule } from '@angular/common';\r\nimport { Component, input, Input, ViewEncapsulation } from '@angular/core';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { InputNumberModule } from 'primeng/inputnumber';\r\nimport { FloatLabelModule } from 'primeng/floatlabel'; \r\nimport { IftaLabelModule } from 'primeng/iftalabel'; \r\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n  selector: 'av-input',\r\n  standalone: true,\r\n  encapsulation: ViewEncapsulation.None,\r\n  imports: [CommonModule, InputTextModule, InputNumberModule, FloatLabelModule, IftaLabelModule, FormsModule],\r\n  templateUrl: './av-input.component.html',\r\n  styleUrl: './av-input.component.css',\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: AvInputComponent,\r\n      multi: true,\r\n    },\r\n  ],\r\n})\r\nexport class AvInputComponent implements ControlValueAccessor {\r\n  @Input() errorMessage: string = '';\r\n  @Input() helpText: string = '';\r\n  @Input() label: string = '';\r\n  @Input() type: 'text' | 'number' = 'text';\r\n  @Input() variant: 'outlined' | 'filled' | 'standard' = 'outlined';\r\n  @Input() size: 'small' | 'normal' | 'large' = 'normal';\r\n  @Input() placeholder: string = '';\r\n  @Input() disabled: boolean = false;\r\n  @Input() floatLabel: 'over' | 'in' | 'on' | null = null;\r\n  @Input() iftaLabel: boolean = false;\r\n  @Input() invalid: boolean = false;\r\n  @Input() name: string = '';\r\n\r\n  // ✅ Configuración de p-inputNumber\r\n  @Input() min?: number;\r\n  @Input() max?: number;\r\n  @Input() prefix?: string;\r\n  @Input() suffix?: string;\r\n  @Input() mode?: 'decimal' | 'currency';\r\n  @Input() currency?: string;\r\n\r\n  value: string | number | null | undefined;\r\n\r\n  get validatedSize(): 'small' | 'large' | null {\r\n    return this.size === 'small' || this.size === 'large' ? this.size : null;\r\n  }\r\n\r\n  setDisabledState(isDisabled: boolean): void {\r\n    this.disabled = isDisabled;\r\n  }\r\n  \r\n  writeValue(value:  string | number | null | undefined): void {\r\n    this.value = value;\r\n  }\r\n\r\n  registerOnChange(fn: typeof this.onChange): void {\r\n    this.onChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: typeof this.onTouched): void {\r\n    this.onTouched = fn;\r\n  }\r\n\r\n\r\n  public onChange = (value:  string | number | null | undefined) => {\r\n    this.value = value;\r\n  };\r\n\r\n  public onTouched = () => {};\r\n\r\n\r\n  \r\n}\r\n","<div\r\n  class=\"av-input-container flex flex-col gap-2\"\r\n  [class.filled]=\"variant === 'filled'\"\r\n  [class.outlined]=\"variant === 'outlined'\"\r\n  [class.invalid]=\"invalid\"\r\n>\r\n  <!-- ✅ Aplica la clase \"invalid\" si es inválido -->\r\n\r\n  @if(iftaLabel) {\r\n  <p-iftalabel>\r\n    @if(type === 'number') {\r\n    <p-inputNumber\r\n      [placeholder]=\"placeholder\"\r\n      [disabled]=\"disabled\"\r\n      [min]=\"min\"\r\n      [max]=\"max\"\r\n      [mode]=\"mode\"\r\n      [currency]=\"currency\"\r\n      [prefix]=\"prefix\"\r\n      [suffix]=\"suffix\"\r\n      [class.ng-invalid]=\"invalid\"\r\n      [class.ng-dirty]=\"invalid\"\r\n      [attr.size]=\"validatedSize ? validatedSize : null\"\r\n      [class.p-inputtext-sm]=\"validatedSize === 'small'\"\r\n      [class.p-inputtext-lg]=\"validatedSize === 'large'\"\r\n      [(ngModel)]=\"value\"\r\n      (onInput)=\"onChange($event.value)\"\r\n      (onBlur)=\"onTouched()\"              \r\n      [ngClass]=\"{\r\n        'border-error-500 bg-red-100 focus:border-red-500': errorMessage,\r\n        'border-neutral-200': !errorMessage\r\n      }\"\r\n    />\r\n    \r\n    } @else {\r\n    <input\r\n      [type]=\"type\"\r\n      pInputText\r\n      [placeholder]=\"placeholder\"\r\n      [disabled]=\"disabled\"\r\n      [class.ng-invalid]=\"invalid\"\r\n      [class.ng-dirty]=\"invalid\"\r\n      [attr.pSize]=\"validatedSize ? validatedSize : null\"\r\n      [class.p-inputtext-sm]=\"validatedSize === 'small'\"\r\n      [class.p-inputtext-lg]=\"validatedSize === 'large'\"\r\n      [(ngModel)]=\"value\"\r\n      (input)=\"onChange(value)\"\r\n      (blur)=\"onTouched()\"\r\n      [ngClass]=\"{\r\n        'border-error-500 bg-red-100 focus:border-red-500': errorMessage,\r\n        'border-neutral-200': !errorMessage\r\n      }\"\r\n    />\r\n    }\r\n    <label [class.text-red-500]=\"invalid\" for=\"label-{{ label }}\"\r\n    [ngClass]=\"{\r\n      'text-red-500': errorMessage,\r\n      'tex-black': !errorMessage\r\n    }\">{{\r\n      label\r\n    }}</label>\r\n  </p-iftalabel>\r\n  } @else if(floatLabel) {\r\n  <p-floatLabel [variant]=\"floatLabel\">\r\n    @if(type === 'number') {\r\n    <p-inputNumber\r\n      [placeholder]=\"placeholder\"\r\n      [disabled]=\"disabled\"\r\n      [min]=\"min\"\r\n      [max]=\"max\"\r\n      [mode]=\"mode\"\r\n      [currency]=\"currency\"\r\n      [prefix]=\"prefix\"\r\n      [suffix]=\"suffix\"\r\n      [class.ng-invalid]=\"invalid\"\r\n      [class.ng-dirty]=\"invalid\"\r\n      [attr.size]=\"validatedSize ? validatedSize : null\"\r\n      [class.p-inputtext-sm]=\"validatedSize === 'small'\"\r\n      [class.p-inputtext-lg]=\"validatedSize === 'large'\"\r\n      [(ngModel)]=\"value\"\r\n      (onInput)=\"onChange($event.value)\"\r\n      (onBlur)=\"onTouched()\"     \r\n      [ngClass]=\"{\r\n        'border-error-500 bg-red-100 focus:border-red-500': errorMessage,\r\n        'border-neutral-200': !errorMessage\r\n      }\"\r\n    />\r\n\r\n    } @else {\r\n    <input\r\n      [type]=\"type\"\r\n      pInputText\r\n      [placeholder]=\"placeholder\"\r\n      [disabled]=\"disabled\"\r\n      [class.ng-invalid]=\"invalid\"\r\n      [class.ng-dirty]=\"invalid\"\r\n      [attr.pSize]=\"validatedSize ? validatedSize : null\"\r\n      [class.p-inputtext-sm]=\"validatedSize === 'small'\"\r\n      [class.p-inputtext-lg]=\"validatedSize === 'large'\"\r\n      [(ngModel)]=\"value\"\r\n      (input)=\"onChange(value)\"\r\n      (blur)=\"onTouched()\"\r\n      [ngClass]=\"{\r\n        'border-error-500 bg-red-100 focus:border-red-500': errorMessage,\r\n        'border-neutral-200': !errorMessage\r\n      }\"\r\n    />\r\n    }\r\n    <label [class.text-red-500]=\"invalid\" for=\"label-{{ label }}\" [ngClass]=\"{\r\n      'text-red-500': errorMessage,\r\n      'tex-black': !errorMessage\r\n    }\">{{\r\n      label\r\n    }}</label>\r\n  </p-floatLabel>\r\n  } @else { @if(label) {\r\n  <label [class.text-red-500]=\"invalid\" for=\"label-{{ label }}\" [ngClass]=\"{\r\n    'text-red-500': errorMessage,\r\n    'tex-black': !errorMessage\r\n  }\">{{\r\n    label\r\n  }}</label>\r\n  } @if(type === 'number') {\r\n  <p-inputNumber\r\n    [placeholder]=\"placeholder\"\r\n    [disabled]=\"disabled\"\r\n    [min]=\"min\"\r\n    [max]=\"max\"\r\n    [mode]=\"mode\"\r\n    [currency]=\"currency\"\r\n    [prefix]=\"prefix\"\r\n    [suffix]=\"suffix\"\r\n    [class.ng-invalid]=\"invalid\"\r\n    [class.ng-dirty]=\"invalid\"\r\n    [attr.size]=\"validatedSize ? validatedSize : null\"\r\n    [class.p-inputtext-sm]=\"validatedSize === 'small'\"\r\n    [class.p-inputtext-lg]=\"validatedSize === 'large'\"\r\n    [(ngModel)]=\"value\"\r\n    (onInput)=\"onChange($event.value)\"\r\n    (onBlur)=\"onTouched()\"     \r\n    [ngClass]=\"{\r\n      'border-error-500 bg-red-100 focus:border-red-500': errorMessage,\r\n      'border-neutral-200': !errorMessage\r\n    }\"\r\n  />\r\n\r\n  } @else {\r\n  <input\r\n    [type]=\"type\"\r\n    pInputText\r\n    [placeholder]=\"placeholder\"\r\n    [disabled]=\"disabled\"\r\n    [class.ng-invalid]=\"invalid\"\r\n    [class.ng-dirty]=\"invalid\"\r\n    [attr.pSize]=\"validatedSize ? validatedSize : null\"\r\n    [class.p-inputtext-sm]=\"validatedSize === 'small'\"\r\n    [class.p-inputtext-lg]=\"validatedSize === 'large'\"\r\n    [(ngModel)]=\"value\"\r\n    (input)=\"onChange(value)\"\r\n    (blur)=\"onTouched()\"\r\n    [ngClass]=\"{\r\n      'border-red-500 bg-red-100 focus:border-red-500': errorMessage,\r\n      'border-neutral-200': !errorMessage\r\n    }\"\r\n  />\r\n  } } @if(helpText) {\r\n  <small id=\"help-text\" [class.text-red-500]=\"invalid\">{{ helpText }}</small>\r\n  } @if (errorMessage) {\r\n  <small id=\"help\" class=\"text-red-500 text-help-input\">\r\n    {{ errorMessage }}\r\n  </small>\r\n  }\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, Input, Output, EventEmitter, forwardRef, ContentChild, TemplateRef, input } from '@angular/core';\r\nimport { FormsModule, NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\r\nimport { FloatLabelModule } from 'primeng/floatlabel';\r\nimport { IftaLabelModule } from 'primeng/iftalabel';\r\nimport { SelectModule } from 'primeng/select';\r\n\r\n@Component({\r\n  selector: 'av-select',\r\n  standalone: true,\r\n  imports: [CommonModule, FormsModule, SelectModule, FloatLabelModule, IftaLabelModule],\r\n  templateUrl: './av-select.component.html',\r\n  styleUrls: ['./av-select.component.css'],\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => AvSelectComponent),\r\n      multi: true,\r\n    },\r\n  ],\r\n})\r\nexport class AvSelectComponent implements ControlValueAccessor {\r\n  public errorMessage = input<string>('');\r\n  @Input() options: any[] = [];\r\n  @Input() labelKey: string = 'label';\r\n  @Input() valueKey: string = 'value';\r\n  @Input() placeholder: string = 'Seleccione una opción';\r\n\r\n  // ✅ Manejo del valor seleccionado\r\n  @Input() selectedValue: any = null;\r\n  @Output() selectedValueChange = new EventEmitter<any>();\r\n\r\n  // ✅ Propiedades adicionales\r\n  @Input() filter: boolean = false;\r\n  @Input() filterBy: string = 'name';\r\n  @Input() showClear: boolean = false;\r\n  @Input() floatLabel: 'over' | 'in' | 'on' | null = null;\r\n  @Input() iftaLabel: boolean = false;\r\n  @Input() invalid: boolean = false;\r\n  @Input() disabled: boolean = false;\r\n  @Input() size: 'small' | 'normal' | 'large' = 'normal';\r\n\r\n  get validatedSize(): 'small' | 'large' | null {\r\n    return this.size === 'small' || this.size === 'large' ? this.size : null;\r\n  }\r\n\r\n  // ✅ Métodos de ControlValueAccessor\r\n  onChange = (value: any) => { };\r\n  onTouched = () => { };\r\n\r\n  writeValue(value: any): void {\r\n    this.selectedValue = value || null;\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.onChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouched = fn;\r\n  }\r\n\r\n  setDisabledState(isDisabled: boolean): void {\r\n    // Puedes agregar lógica si deseas manejar `disabled`\r\n  }\r\n\r\n  onSelectChange(value: any) {\r\n    this.selectedValue = value;\r\n    this.selectedValueChange.emit(value);\r\n    this.onChange(value);\r\n    this.onTouched();\r\n  }\r\n}\r\n","<div class=\"av-select-container flex flex-col gap-2\" [class.invalid]=\"invalid\">\r\n    @if(iftaLabel) {\r\n      <p-iftalabel>\r\n        <p-select \r\n          [options]=\"options\"\r\n          (blur)=\"onTouched()\"\r\n          [(ngModel)]=\"selectedValue\"\r\n          (ngModelChange)=\"onSelectChange($event)\"\r\n          [optionLabel]=\"labelKey\"\r\n          [optionValue]=\"valueKey\"\r\n          [filter]=\"filter\"\r\n          [filterBy]=\"filterBy\"\r\n          [showClear]=\"showClear\"\r\n          [disabled]=\"disabled\"\r\n          [class.ng-invalid]=\"invalid\"\r\n          [class.ng-dirty]=\"invalid\"\r\n          [attr.size]=\"validatedSize ? validatedSize : null\"\r\n          [class.p-inputtext-sm]=\"validatedSize === 'small'\"\r\n          [class.p-inputtext-lg]=\"validatedSize === 'large'\"\r\n          class=\"select-wrapper\"    [ngClass]=\"{\r\n            'border-error-500 bg-red-100 focus:border-red-500': errorMessage(),\r\n            'border-neutral-200': !errorMessage()\r\n          }\">\r\n\r\n        <!-- ✅ Mostrar el valor seleccionado con ícono -->\r\n        <ng-template #selectedItem let-selectedOption>\r\n          <div class=\"flex items-center gap-2\">\r\n            <div>{{ selectedOption[labelKey] }}</div>\r\n          </div>\r\n        </ng-template>\r\n\r\n        <!-- ✅ Mostrar cada opción en la lista con ícono -->\r\n        <ng-template let-item #item>\r\n          <div class=\"flex items-center gap-2\">\r\n            <div>{{ item[labelKey] }}</div>\r\n          </div>\r\n        </ng-template>\r\n        </p-select>\r\n        <label for=\"{{ placeholder }}\"  [ngClass]=\"{\r\n          'text-red-500': errorMessage(),\r\n          'tex-black': !errorMessage()\r\n        }\">{{ placeholder }}</label>\r\n      </p-iftalabel>\r\n    } @else if(floatLabel) {\r\n      <p-floatLabel [variant]=\"floatLabel\">\r\n        <p-select \r\n          [options]=\"options\"\r\n          (blur)=\"onTouched()\"\r\n          [(ngModel)]=\"selectedValue\"\r\n          (ngModelChange)=\"onSelectChange($event)\"\r\n          [optionLabel]=\"labelKey\"\r\n          [optionValue]=\"valueKey\"\r\n          [filter]=\"filter\"\r\n          [filterBy]=\"filterBy\"\r\n          [showClear]=\"showClear\"\r\n          [disabled]=\"disabled\"\r\n          [class.ng-invalid]=\"invalid\"\r\n          [class.ng-dirty]=\"invalid\"\r\n          [attr.size]=\"validatedSize ? validatedSize : null\"\r\n          [class.p-inputtext-sm]=\"validatedSize === 'small'\"\r\n          [class.p-inputtext-lg]=\"validatedSize === 'large'\"\r\n          class=\"select-wrapper\"    [ngClass]=\"{\r\n            'border-error-500 bg-red-100 focus:border-red-500': errorMessage(),\r\n            'border-neutral-200': !errorMessage()\r\n          }\">\r\n\r\n        <!-- ✅ Mostrar el valor seleccionado con ícono -->\r\n        <ng-template #selectedItem let-selectedOption>\r\n          <div class=\"flex items-center gap-2\">\r\n            <div>{{ selectedOption[labelKey] }}</div>\r\n          </div>\r\n        </ng-template>\r\n\r\n        <!-- ✅ Mostrar cada opción en la lista con ícono -->\r\n        <ng-template let-item #item>\r\n          <div class=\"flex items-center gap-2\">\r\n            <div>{{ item[labelKey] }}</div>\r\n          </div>\r\n        </ng-template>\r\n        </p-select>\r\n        <label for=\"{{ placeholder }}\"  [ngClass]=\"{\r\n          'text-red-500': errorMessage(),\r\n          'tex-black': !errorMessage()\r\n        }\">{{ placeholder }}</label>\r\n      </p-floatLabel>\r\n    } @else {\r\n      <label for=\"label-{{placeholder}}\" [class.text-red-500]=\"invalid\"  [ngClass]=\"{\r\n        'text-red-500': errorMessage(),\r\n        'tex-black': !errorMessage()\r\n      }\">{{ placeholder }}</label>\r\n      <p-select \r\n        [options]=\"options\"\r\n        (blur)=\"onTouched()\"\r\n        [(ngModel)]=\"selectedValue\"\r\n        (ngModelChange)=\"onSelectChange($event)\"\r\n        [optionLabel]=\"labelKey\"\r\n        [optionValue]=\"valueKey\"\r\n        [filter]=\"filter\"\r\n        [filterBy]=\"filterBy\"\r\n        [showClear]=\"showClear\"\r\n        [disabled]=\"disabled\"\r\n        [placeholder]=\"placeholder\"\r\n        [class.ng-invalid]=\"invalid\"\r\n        [class.ng-dirty]=\"invalid\"\r\n        [attr.size]=\"validatedSize ? validatedSize : null\"\r\n        [class.p-inputtext-sm]=\"validatedSize === 'small'\"\r\n        [class.p-inputtext-lg]=\"validatedSize === 'large'\"\r\n        class=\"select-wrapper\"    [ngClass]=\"{\r\n          'border-error-500 bg-red-100 focus:border-red-500': errorMessage(),\r\n          'border-neutral-200': !errorMessage()\r\n        }\">\r\n\r\n          <!-- ✅ Mostrar el valor seleccionado con ícono -->\r\n        <ng-template #selectedItem let-selectedOption>\r\n          <div class=\"flex items-center gap-2\">\r\n            <div>{{ selectedOption[labelKey] }}</div>\r\n          </div>\r\n        </ng-template>\r\n\r\n        <!-- ✅ Mostrar cada opción en la lista con ícono -->\r\n        <ng-template let-item #item>\r\n          <div class=\"flex items-center gap-2\">\r\n            <div>{{ item[labelKey] }}</div>\r\n          </div>\r\n        </ng-template>\r\n      </p-select>\r\n    }\r\n    @if (errorMessage()) {\r\n      <small id=\"help\" class=\"text-red-500 text-help-input\">\r\n        {{ errorMessage() }}\r\n      </small>\r\n      }\r\n  </div>\r\n  ","import { CommonModule } from '@angular/common';\r\nimport { Component, forwardRef, input, Input, model } from '@angular/core';\r\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { TextareaModule } from 'primeng/textarea';\r\nimport { FloatLabelModule } from 'primeng/floatlabel';\r\nimport { IftaLabelModule } from 'primeng/iftalabel';\r\n\r\n@Component({\r\n  selector: 'av-textarea',\r\n  standalone: true,\r\n  imports: [CommonModule, FormsModule, TextareaModule , FloatLabelModule, IftaLabelModule],\r\n  templateUrl: './av-textarea.component.html',\r\n  styleUrl: './av-textarea.component.css',\r\n    providers: [\r\n      {\r\n        provide: NG_VALUE_ACCESSOR,\r\n        useExisting: forwardRef(() => AvTextareaComponent),\r\n        multi: true,\r\n      },\r\n    ],\r\n})\r\nexport class AvTextareaComponent implements ControlValueAccessor {\r\n   public errorMessage = input<string>('');\r\n  @Input() helpText: string = '';\r\n  @Input() label: string = '';\r\n  @Input() placeholder: string = '';\r\n  @Input() disabled: boolean = false;\r\n  @Input() floatLabel: 'over' | 'in' | 'on' | null = null;\r\n  @Input() iftaLabel: boolean = false;\r\n  @Input() invalid: boolean = false;\r\n  @Input() autoResize: boolean = false;\r\n  @Input() size: 'small' | 'normal' | 'large' = 'normal';\r\n value = model('');\r\n\r\n  get validatedSize(): 'small' | 'large' | null {\r\n    return this.size === 'small' || this.size === 'large' ? this.size : null;\r\n  }\r\n  writeValue(value: string): void {\r\n    this.value.set(value);\r\n  }\r\n\r\n  registerOnChange(fn: typeof this.onChange): void {\r\n    this.onChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: typeof this.onTouched): void {\r\n    this.onTouched = fn;\r\n  }\r\n\r\n\r\n  public onChange = (value: string) => {\r\n    this.value.set(value);\r\n  };\r\n\r\n  public onTouched = () => {};\r\n}\r\n","<div class=\"av-textarea-container flex flex-col gap-2\" \r\n  [class.invalid]=\"invalid\">\r\n\r\n  @if(iftaLabel) {\r\n    <p-iftalabel>\r\n      <textarea \r\n        pTextarea\r\n        [(ngModel)]=\"value\"\r\n        [placeholder]=\"placeholder\"\r\n        [disabled]=\"disabled\"\r\n        [autoResize]=\"autoResize\"\r\n        [class.ng-invalid]=\"invalid\"\r\n        [class.ng-dirty]=\"invalid\"\r\n        [attr.pSize]=\"validatedSize ? validatedSize : null\"\r\n        [class.p-inputtext-sm]=\"validatedSize === 'small'\"\r\n        [class.p-inputtext-lg]=\"validatedSize === 'large'\"\r\n        [(ngModel)]=\"value\"\r\n        (input)=\"onChange(value())\"\r\n        (blur)=\"onTouched()\" [ngClass]=\"{\r\n          'border-red-500 bg-red-100 focus:border-red-500': errorMessage(),\r\n          'border-neutral-200': !errorMessage()\r\n        }\">\r\n      </textarea>\r\n      <label for=\"{{ label }}\" [ngClass]=\"{\r\n        'text-red-500': errorMessage(),\r\n        'tex-black': !errorMessage()\r\n      }\">{{ label }}</label>\r\n    </p-iftalabel>\r\n  } @else if(floatLabel) {\r\n    <p-floatLabel [variant]=\"floatLabel\">\r\n      <textarea \r\n        pTextarea\r\n        [(ngModel)]=\"value\"\r\n        [placeholder]=\"placeholder\"\r\n        [disabled]=\"disabled\"\r\n        [autoResize]=\"autoResize\"\r\n        [class.ng-invalid]=\"invalid\"\r\n        [class.ng-dirty]=\"invalid\"\r\n        [attr.pSize]=\"validatedSize ? validatedSize : null\"\r\n        [class.p-inputtext-sm]=\"validatedSize === 'small'\"\r\n        [class.p-inputtext-lg]=\"validatedSize === 'large'\"\r\n        [(ngModel)]=\"value\"\r\n        (input)=\"onChange(value())\"\r\n        (blur)=\"onTouched()\"     [ngClass]=\"{\r\n          'border-red-500 bg-red-100 focus:border-red-500': errorMessage(),\r\n          'border-neutral-200': !errorMessage()\r\n        }\">\r\n      </textarea>\r\n      <label for=\"{{ label }}\" [ngClass]=\"{\r\n        'text-red-500': errorMessage(),\r\n        'tex-black': !errorMessage()\r\n      }\">{{ label }}</label>\r\n    </p-floatLabel>\r\n  } @else {\r\n    @if(label) {\r\n      <label for=\"label-{{label}}\" [class.text-red-500]=\"invalid\" [ngClass]=\"{\r\n        'text-red-500': errorMessage(),\r\n        'tex-black': !errorMessage()\r\n      }\">{{ label }}</label>\r\n    }\r\n    <textarea \r\n      pTextarea\r\n      [(ngModel)]=\"value\"\r\n      [placeholder]=\"placeholder\"\r\n      [disabled]=\"disabled\"\r\n      [autoResize]=\"autoResize\"\r\n      [class.ng-invalid]=\"invalid\"\r\n      [class.ng-dirty]=\"invalid\"\r\n      [attr.pSize]=\"validatedSize ? validatedSize : null\"\r\n      [class.p-inputtext-sm]=\"validatedSize === 'small'\"\r\n      [class.p-inputtext-lg]=\"validatedSize === 'large'\"\r\n      [(ngModel)]=\"value\"\r\n      (input)=\"onChange(value())\"\r\n      (blur)=\"onTouched()\"     [ngClass]=\"{\r\n        'border-red-500 bg-red-100 focus:border-red-500': errorMessage(),\r\n        'border-neutral-200': !errorMessage()\r\n      }\">\r\n    </textarea>\r\n  }\r\n\r\n  @if(helpText) {\r\n    <small id=\"help-text\" [class.text-red-500]=\"invalid\">{{ helpText }}</small>\r\n  } @if (errorMessage()) {\r\n  <small id=\"help\" class=\"text-red-500 text-help-input\">\r\n    {{ errorMessage() }}\r\n  </small>\r\n  }\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, Input, Output, EventEmitter, forwardRef, ContentChild, TemplateRef, ViewEncapsulation, input } from '@angular/core';\r\nimport { FormsModule, NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\r\nimport { PasswordModule } from 'primeng/password';\r\nimport { FloatLabelModule } from 'primeng/floatlabel';\r\nimport { IftaLabelModule } from 'primeng/iftalabel';\r\n\r\n@Component({\r\n  selector: 'av-password',\r\n  standalone: true,\r\n  imports: [CommonModule, FormsModule, PasswordModule, FloatLabelModule, IftaLabelModule],\r\n  templateUrl: './av-password.component.html',\r\n  styleUrl: './av-password.component.scss',\r\n   encapsulation: ViewEncapsulation.None,\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => AvPasswordComponent),\r\n      multi: true,\r\n    },\r\n  ],\r\n})\r\nexport class AvPasswordComponent implements ControlValueAccessor {\r\n  public errorMessage = input<string>('');\r\n  @Input() label: string = '';\r\n  @Input() placeholder: string = '';\r\n  @Input() disabled: boolean = false;\r\n  @Input() floatLabel: 'over' | 'in' | 'on' | null = null;\r\n  @Input() iftaLabel: boolean = false;\r\n  @Input() invalid: boolean = false;\r\n  @Input() feedback: boolean = true;\r\n  @Input() toggleMask: boolean = false;\r\n  @Input() promptLabel: string = 'Enter password';\r\n  @Input() weakLabel: string = 'Weak';\r\n  @Input() mediumLabel: string = 'Medium';\r\n  @Input() strongLabel: string = 'Strong';\r\n  @Input() size: 'small' | 'normal' | 'large' = 'normal';\r\n  @Input() dataPass: string = ''; // ✅ Manejo de la contraseña  \r\n  @Output() dataPassChange = new EventEmitter<string>(); // ✅ Emisión de cambios  \r\n  @ContentChild('header') headerTemplate!: TemplateRef<any>;\r\n  @ContentChild('footer') footerTemplate!: TemplateRef<any>;\r\n  // ✅ Métodos de ControlValueAccessor  \r\n  onChange = (value: string) => {};\r\n  onTouched = () => {};\r\n\r\n  writeValue(value: string): void {\r\n    this.dataPass = value || '';\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.onChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouched = fn;\r\n  }\r\n\r\n  setDisabledState(isDisabled: boolean): void {\r\n    this.disabled = isDisabled;\r\n  }\r\n\r\n  onPasswordChange(value: string) {\r\n    this.dataPass = value;\r\n    this.dataPassChange.emit(value);\r\n    this.onChange(value);\r\n    this.onTouched();\r\n  }\r\n\r\n  get validatedSize(): 'small' | 'large' | null {\r\n    return this.size === 'small' || this.size === 'large' ? this.size : null;\r\n  }\r\n}\r\n","<div class=\"av-password-container flex flex-col gap-2\" [class.invalid]=\"invalid\">\r\n  @if(iftaLabel) {\r\n    <p-iftalabel>\r\n      <p-password \r\n        [(ngModel)]=\"dataPass\"\r\n        (ngModelChange)=\"onPasswordChange($event)\"\r\n        [placeholder]=\"placeholder\"\r\n        [disabled]=\"disabled\"\r\n        [feedback]=\"feedback\"\r\n        [toggleMask]=\"toggleMask\"\r\n        [promptLabel]=\"promptLabel\"\r\n        [weakLabel]=\"weakLabel\"\r\n        [mediumLabel]=\"mediumLabel\"\r\n        [strongLabel]=\"strongLabel\"\r\n        [class.ng-invalid]=\"invalid\"\r\n        [class.ng-dirty]=\"invalid\"\r\n        [attr.size]=\"validatedSize ? validatedSize : null\"\r\n        [class.p-inputtext-sm]=\"validatedSize === 'small'\"\r\n        [class.p-inputtext-lg]=\"validatedSize === 'large'\"\r\n        class=\"password-wrapper\"\r\n        [ngClass]=\"{\r\n          'border-error-500 bg-red-100 focus:border-red-500': errorMessage(),\r\n          'border-neutral-200': !errorMessage()\r\n        }\">\r\n        @if(headerTemplate) {\r\n          <ng-template pTemplate=\"header\">\r\n            <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\r\n          </ng-template>\r\n        }\r\n    \r\n        @if(footerTemplate) {\r\n          <ng-template pTemplate=\"footer\">\r\n            <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\r\n          </ng-template>\r\n        }\r\n      </p-password>\r\n      <label for=\"{{ label }}\" [ngClass]=\"{\r\n        'text-red-500': errorMessage(),\r\n        'tex-black': !errorMessage()\r\n      }\">{{ label }}</label>\r\n    </p-iftalabel>\r\n  } @else if(floatLabel) {\r\n    <p-floatLabel [variant]=\"floatLabel\">\r\n      <p-password \r\n        [(ngModel)]=\"dataPass\"\r\n        (ngModelChange)=\"onPasswordChange($event)\"\r\n        [placeholder]=\"placeholder\"\r\n        [disabled]=\"disabled\"\r\n        [feedback]=\"feedback\"\r\n        [toggleMask]=\"toggleMask\"\r\n        [promptLabel]=\"promptLabel\"\r\n        [weakLabel]=\"weakLabel\"\r\n        [mediumLabel]=\"mediumLabel\"\r\n        [strongLabel]=\"strongLabel\"\r\n        [class.ng-invalid]=\"invalid\"\r\n        [class.ng-dirty]=\"invalid\"\r\n        [attr.size]=\"validatedSize ? validatedSize : null\"\r\n        [class.p-inputtext-sm]=\"validatedSize === 'small'\"\r\n        [class.p-inputtext-lg]=\"validatedSize === 'large'\"\r\n        class=\"password-wrapper\"\r\n        [ngClass]=\"{\r\n          'border-error-500 bg-red-100 focus:border-red-500': errorMessage(),\r\n          'border-neutral-200': !errorMessage()\r\n        }\">\r\n        @if(headerTemplate) {\r\n          <ng-template pTemplate=\"header\">\r\n            <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\r\n          </ng-template>\r\n        }\r\n    \r\n        @if(footerTemplate) {\r\n          <ng-template pTemplate=\"footer\">\r\n            <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\r\n          </ng-template>\r\n        }\r\n      </p-password>\r\n      <label for=\"{{ label }}\" [ngClass]=\"{\r\n        'text-red-500': errorMessage(),\r\n        'tex-black': !errorMessage()\r\n      }\">{{ label }}</label>\r\n    </p-floatLabel>\r\n  } @else {\r\n    @if(label) {\r\n      <label for=\"label-{{label}}\" [class.text-red-500]=\"invalid\" [ngClass]=\"{\r\n        'text-red-500': errorMessage(),\r\n        'tex-black': !errorMessage()\r\n      }\">{{ label }}</label>\r\n    }\r\n    <p-password \r\n    [(ngModel)]=\"dataPass\"\r\n     (input)=\"onChange(dataPass)\"\r\n     (blur)=\"onTouched()\"\r\n      (ngModelChange)=\"onPasswordChange($event)\"\r\n      [placeholder]=\"placeholder\"\r\n      [disabled]=\"disabled\"\r\n      [feedback]=\"feedback\"\r\n      [toggleMask]=\"toggleMask\"\r\n      [promptLabel]=\"promptLabel\"\r\n      [weakLabel]=\"weakLabel\"\r\n      [mediumLabel]=\"mediumLabel\"\r\n      [strongLabel]=\"strongLabel\"\r\n      [class.ng-invalid]=\"invalid\"\r\n      [class.ng-dirty]=\"invalid\"\r\n      [attr.size]=\"validatedSize ? validatedSize : null\"\r\n      [class.p-inputtext-sm]=\"validatedSize === 'small'\"\r\n      [class.p-inputtext-lg]=\"validatedSize === 'large'\"\r\n      class=\"password-wrapper\"\r\n      [ngClass]=\"{\r\n        'border-error-500 bg-red-100 focus:border-red-500': errorMessage(),\r\n        'border-neutral-200': !errorMessage()\r\n      }\">\r\n      @if(headerTemplate) {\r\n        <ng-template pTemplate=\"header\">\r\n          <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\r\n        </ng-template>\r\n      }\r\n  \r\n      @if(footerTemplate) {\r\n        <ng-template pTemplate=\"footer\">\r\n          <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\r\n        </ng-template>\r\n      }\r\n    </p-password>\r\n  }\r\n  @if (errorMessage()) {\r\n    <small id=\"help\" class=\"text-red-500 text-help-input\">\r\n      {{ errorMessage() }}\r\n    </small>\r\n    }\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, Input, Output, EventEmitter, forwardRef, ViewEncapsulation, input } from '@angular/core';\r\nimport { FormsModule, NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\r\nimport { DatePickerModule } from 'primeng/datepicker';\r\nimport { FloatLabelModule } from 'primeng/floatlabel';\r\nimport { IftaLabelModule } from 'primeng/iftalabel';\r\n\r\n@Component({\r\n  selector: 'av-date-picker',\r\n  standalone: true,\r\n   encapsulation: ViewEncapsulation.None,\r\n  imports: [CommonModule, FormsModule, DatePickerModule, FloatLabelModule, IftaLabelModule],\r\n  templateUrl: './av-date-picker.component.html',\r\n  styleUrl: './av-date-picker.component.css',\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => AvDatePickerComponent),\r\n      multi: true,\r\n    },\r\n  ],\r\n})\r\nexport class AvDatePickerComponent implements ControlValueAccessor {\r\n  public errorMessage = input<string>('');\r\n  @Input() label: string = '';\r\n  @Input() placeholder: string = '';\r\n  @Input() disabled: boolean = false;\r\n  @Input() floatLabel: 'over' | 'in' | 'on' | null = null;\r\n  @Input() iftaLabel: boolean = false;\r\n  @Input() invalid: boolean = false;\r\n  @Input() format: string = 'dd/mm/yy';\r\n  @Input() minDate?: Date;\r\n  @Input() maxDate?: Date;\r\n  @Input() multiple: boolean = false;\r\n  @Input() range: boolean = false;\r\n  @Input() showIcon: boolean = false;\r\n  @Input() showTime: boolean = false;\r\n  @Input() buttonBar: boolean = false;\r\n  @Input() monthPicker: boolean = false;\r\n  @Input() yearPicker: boolean = false;\r\n\r\n  @Input() dateValue: Date | Date[] | null = null;\r\n  @Output() dateValueChange = new EventEmitter<Date | Date[] | null>();\r\n\r\n  onChange = (value: Date | Date[] | null) => {};\r\n  onTouched = () => {};\r\n\r\n  writeValue(value: Date | Date[] | null): void {\r\n    this.dateValue = value || null;\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.onChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouched = fn;\r\n  }\r\n\r\n  setDisabledState(isDisabled: boolean): void {\r\n    this.disabled = isDisabled;\r\n  }\r\n\r\n  onDateChange(value: Date | Date[] | null) {\r\n    this.dateValue = value;\r\n    this.dateValueChange.emit(value);\r\n    this.onChange(value);\r\n    this.onTouched();\r\n  }\r\n}\r\n","<div class=\"av-date-picker-container flex flex-col gap-2\" [class.invalid]=\"invalid\">\r\n    @if(iftaLabel) {\r\n      <p-iftalabel>\r\n        <p-datepicker\r\n          [(ngModel)]=\"dateValue\"\r\n          (ngModelChange)=\"onDateChange($event)\"\r\n          [placeholder]=\"placeholder\"\r\n          [disabled]=\"disabled\"\r\n          [showIcon]=\"showIcon\"\r\n          [showTime]=\"showTime\"\r\n          [showButtonBar]=\"buttonBar\"\r\n          [view]=\"monthPicker ? 'month' : yearPicker ? 'year' : 'date'\"\r\n          [minDate]=\"minDate\"\r\n          [maxDate]=\"maxDate\"\r\n          [dateFormat]=\"format\"\r\n          (onBlur)=\"onTouched()\"      \r\n          [selectionMode]=\"multiple ? 'multiple' : range ? 'range' : 'single'\"\r\n          [ngClass]=\"{\r\n            'border-red-500 bg-red-100 focus:border-red-500': errorMessage(),\r\n            'border-neutral-200': !errorMessage()\r\n          }\"></p-datepicker>\r\n        <label for=\"{{ label }}\" [ngClass]=\"{\r\n          'text-red-500': errorMessage(),\r\n          'tex-black': !errorMessage()\r\n        }\">{{ label }}</label>\r\n      </p-iftalabel>\r\n    } @else if(floatLabel) {\r\n      <p-floatLabel [variant]=\"floatLabel\">\r\n        <p-datepicker\r\n          [(ngModel)]=\"dateValue\"\r\n          (ngModelChange)=\"onDateChange($event)\"\r\n          [placeholder]=\"placeholder\"\r\n          [disabled]=\"disabled\"\r\n          [showIcon]=\"showIcon\"\r\n          [showTime]=\"showTime\"\r\n          [showButtonBar]=\"buttonBar\"\r\n          [view]=\"monthPicker ? 'month' : yearPicker ? 'year' : 'date'\"\r\n          [minDate]=\"minDate\"\r\n          [maxDate]=\"maxDate\"\r\n          [dateFormat]=\"format\"\r\n          (onBlur)=\"onTouched()\"      \r\n          [selectionMode]=\"multiple ? 'multiple' : range ? 'range' : 'single'\"\r\n          [ngClass]=\"{\r\n            'border-red-500 bg-red-100 focus:border-red-500': errorMessage(),\r\n            'border-neutral-200': !errorMessage()\r\n          }\"></p-datepicker>\r\n        <label for=\"{{ label }}\" [ngClass]=\"{\r\n          'text-red-500': errorMessage(),\r\n          'tex-black': !errorMessage()\r\n        }\">{{ label }}</label>\r\n      </p-floatLabel>\r\n    } @else {\r\n      @if(label) {\r\n        <label for=\"label-{{label}}\" [class.text-red-500]=\"invalid\" [ngClass]=\"{\r\n          'text-red-500': errorMessage(),\r\n          'tex-black': !errorMessage()\r\n        }\">{{ label }}</label>\r\n      }\r\n      <p-datepicker\r\n        [(ngModel)]=\"dateValue\"\r\n        (ngModelChange)=\"onDateChange($event)\"\r\n        [placeholder]=\"placeholder\"\r\n        [disabled]=\"disabled\"\r\n        [showIcon]=\"showIcon\"\r\n        [showTime]=\"showTime\"\r\n        [showButtonBar]=\"buttonBar\"\r\n        [view]=\"monthPicker ? 'month' : yearPicker ? 'year' : 'date'\"\r\n        [minDate]=\"minDate\"\r\n        [maxDate]=\"maxDate\"\r\n        [dateFormat]=\"format\"\r\n        (onBlur)=\"onTouched()\"      \r\n        [selectionMode]=\"multiple ? 'multiple' : range ? 'range' : 'single'\"\r\n        [ngClass]=\"{\r\n          'border-red-500 bg-red-100 focus:border-red-500': errorMessage(),\r\n          'border-neutral-200': !errorMessage()\r\n        }\"></p-datepicker>\r\n    }\r\n    @if (errorMessage()) {\r\n      <small id=\"help\" class=\"text-red-500 text-help-input\">\r\n        {{ errorMessage() }}\r\n      </small>\r\n      }\r\n  </div>\r\n  ","import { CommonModule } from '@angular/common';\r\nimport { Component, Input, Output, EventEmitter, forwardRef, ViewEncapsulation, input } from '@angular/core';\r\nimport { FormsModule, NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\n\r\n@Component({\r\n  selector: 'av-checkbox',\r\n  standalone: true,\r\n  imports: [CommonModule, FormsModule, CheckboxModule],\r\n  encapsulation: ViewEncapsulation.None,\r\n  templateUrl: './av-checkbox.component.html',\r\n  styleUrls: ['./av-checkbox.component.css'],\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => AvCheckboxComponent),\r\n      multi: true,\r\n    },\r\n  ],\r\n})\r\nexport class AvCheckboxComponent implements ControlValueAccessor {\r\n  public errorMessage = input<string>('');\r\n  @Input() value: any;\r\n  @Input() options: { key: string; name: string }[] = []; \r\n  @Input() label: string = '';\r\n  @Input() disabled: boolean = false;\r\n  @Input() binary: boolean = true;\r\n  @Input() invalid: boolean = false;\r\n  @Input() size: 'small' | 'normal' | 'large' = 'normal';\r\n  @Input() model: string[] = [];\r\n\r\n  @Output() modelChange = new EventEmitter<string[]>();\r\n\r\n  onChange = (value: any) => {};\r\n  onTouched = () => {};\r\n\r\n  get validatedSize(): 'small' | 'large' | null {\r\n    return this.size === 'small' || this.size === 'large' ? this.size : null;\r\n  }\r\n\r\n  writeValue(value: any): void {\r\n    if (this.binary) {\r\n      this.value = value ?? false;\r\n    } else {\r\n      this.model = value || [];\r\n    }\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.onChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouched = fn;\r\n  }\r\n\r\n  toggleCheck(_: any, event: boolean) {\r\n    if (this.binary) {\r\n      this.value = event;\r\n      this.onChange(this.value);\r\n    } else {\r\n      this.model = event\r\n        ? [...this.model, _].filter((v, i, arr) => arr.indexOf(v) === i)\r\n        : this.model.filter((item) => item !== _);\r\n  \r\n      this.modelChange.emit(this.model);\r\n      this.onChange(this.model);\r\n    }\r\n  \r\n    this.onTouched();\r\n  }\r\n\r\n  isChecked(value: string): boolean {\r\n    return this.binary ? !!this.value : this.model.includes(value);\r\n  }\r\n}\r\n","<div class=\"av-checkbox-container flex flex-col gap-2\" [class.invalid]=\"invalid\">\r\n  @if (options.length) {\r\n    @for (option of options; track option.key) {\r\n      <div class=\"flex items-center gap-2\">\r\n        <p-checkbox\r\n          [binary]=\"binary\"\r\n          [disabled]=\"disabled\"\r\n          [ngModel]=\"isChecked(option.key)\"\r\n          (ngModelChange)=\"toggleCheck(option.key, $event)\"\r\n          [class.p-checkbox-sm]=\"validatedSize === 'small'\"\r\n          [class.p-checkbox-lg]=\"validatedSize === 'large'\"\r\n          class=\"checkbox-wrapper\"\r\n          [ngClass]=\"{\r\n            'border-error-500 focus:border-red-500': errorMessage(),\r\n            'border-neutral-200': !errorMessage()\r\n          }\"></p-checkbox>\r\n        <label for=\"{{ option.key }}\" [ngClass]=\"{\r\n          'text-red-500': errorMessage(),\r\n          'tex-black': !errorMessage()\r\n        }\">{{ option.name }}</label>\r\n      </div>\r\n    }\r\n  } @else {\r\n    <div class=\"flex items-center gap-2\">\r\n      <p-checkbox\r\n        [binary]=\"binary\"\r\n        [disabled]=\"disabled\"\r\n        [ngModel]=\"isChecked(value)\"\r\n        (ngModelChange)=\"toggleCheck(value, $event)\"\r\n        [class.p-checkbox-sm]=\"validatedSize === 'small'\"\r\n        [class.p-checkbox-lg]=\"validatedSize === 'large'\"\r\n        class=\"checkbox-wrapper\"\r\n        [ngClass]=\"{\r\n          'border-error-500  focus:border-red-500': errorMessage(),\r\n          'border-neutral-200': !errorMessage()\r\n        }\"></p-checkbox>\r\n      @if(label){\r\n        <label for=\"{{label}}\" [ngClass]=\"{\r\n          'text-red-500': errorMessage(),\r\n          'tex-black': !errorMessage()\r\n        }\">{{ label }}</label>\r\n      }\r\n    </div>\r\n  }\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, Input, Output, EventEmitter, forwardRef, ViewEncapsulation, input } from '@angular/core';\r\nimport { FormsModule, NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\r\nimport { RadioButtonModule } from 'primeng/radiobutton';\r\n\r\n@Component({\r\n  selector: 'av-radio-button',\r\n  standalone: true,\r\n  imports: [CommonModule, FormsModule, RadioButtonModule],\r\n  encapsulation: ViewEncapsulation.None,\r\n  templateUrl: './av-radio-button.component.html',\r\n  styleUrls: ['./av-radio-button.component.css'],\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => AvRadioButtonComponent),\r\n      multi: true,\r\n    },\r\n  ],\r\n})\r\nexport class AvRadioButtonComponent implements ControlValueAccessor {\r\n  public errorMessage = input<string>('');\r\n  @Input() options: { key: string; name: string }[] = [];\r\n  @Input() label: string = '';\r\n  @Input() disabled: boolean = false;\r\n  @Input() invalid: boolean = false;\r\n  @Input() size: 'small' | 'normal' | 'large' = 'normal';\r\n  @Input() value: string = '';\r\n  @Input() model: string = '';\r\n  @Input() direction: 'row' | 'column' = 'column';\r\n  @Output() modelChange = new EventEmitter<string>();\r\n\r\n  onChange = (value: any) => {};\r\n  onTouched = () => {};\r\n\r\n  get validatedSize(): 'small' | 'large' | null {\r\n    return this.size === 'small' || this.size === 'large' ? this.size : null;\r\n  }\r\n\r\n  writeValue(value: any): void {\r\n    this.model = value;\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.onChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouched = fn;\r\n  }\r\n\r\n  toggleSelect(value: string) {\r\n    this.model = value;\r\n    this.modelChange.emit(this.model);\r\n    this.onChange(this.model);\r\n    this.onTouched();\r\n  }\r\n}\r\n","<div class=\"av-radio-button-container flex  gap-2\" [class.invalid]=\"invalid\"   [ngClass]=\"{\r\n  'flex-col': direction === 'column',\r\n  'flex-row flex-wrap items-center': direction === 'row',\r\n  'invalid': invalid\r\n}\">\r\n    @if (options.length) {\r\n      <label for=\"{{ label}}\" class=\"block w-full\">{{ label}}</label>\r\n      @for (option of options; track option.key) {\r\n        <div class=\"flex items-center gap-2\">\r\n          <p-radiobutton\r\n            [disabled]=\"disabled\"\r\n            [ngModel]=\"model\"\r\n            (ngModelChange)=\"toggleSelect(option.key)\"\r\n            [inputId]=\"option.key\"\r\n            [value]=\"option.key\"\r\n            [class.p-radiobutton-sm]=\"validatedSize === 'small'\"\r\n            [class.p-radiobutton-lg]=\"validatedSize === 'large'\"\r\n            class=\"radio-wrapper\"\r\n          ></p-radiobutton>\r\n          <label for=\"{{ option.key }}\">{{ option.name }}</label>\r\n        </div>\r\n      }\r\n    } @else {\r\n      <div class=\"flex items-center gap-2\">\r\n        <p-radiobutton\r\n          [disabled]=\"disabled\"\r\n          [ngModel]=\"model\"\r\n          (ngModelChange)=\"toggleSelect(value)\"\r\n          [inputId]=\"label\"\r\n          [value]=\"value\"\r\n          [class.p-radiobutton-sm]=\"validatedSize === 'small'\"\r\n          [class.p-radiobutton-lg]=\"validatedSize === 'large'\"\r\n          class=\"radio-wrapper\"\r\n        ></p-radiobutton>\r\n        @if(label){\r\n          <label for=\"{{label}}\">{{ label }}</label>\r\n        }\r\n      </div>\r\n    }\r\n  </div>\r\n  ","import { CommonModule } from '@angular/common';\r\nimport { Component, Input, Output, EventEmitter, forwardRef, ViewEncapsulation, input } from '@angular/core';\r\nimport { FormsModule, NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\r\nimport { MultiSelectModule } from 'primeng/multiselect';\r\nimport { FloatLabelModule } from 'primeng/floatlabel';\r\nimport { IftaLabelModule } from 'primeng/iftalabel';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\n\r\n@Component({\r\n  selector: 'av-multiselect',\r\n  standalone: true,\r\n  encapsulation: ViewEncapsulation.None,\r\n  imports: [CommonModule, FormsModule, MultiSelectModule, FloatLabelModule, IftaLabelModule, CheckboxModule ],\r\n  templateUrl: './av-multiselect.component.html',\r\n  styleUrls: ['./av-multiselect.component.css'],\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => AvMultiSelectComponent),\r\n      multi: true,\r\n    },\r\n  ],\r\n})\r\nexport class AvMultiSelectComponent implements ControlValueAccessor {\r\n  public errorMessage = input<string>('');\r\n  @Input() options: any[] = [];\r\n  @Input() labelKey: string = 'label';\r\n  @Input() valueKey: string = 'value';\r\n  @Input() placeholder: string = 'Seleccione opciones';\r\n  @Input() maxSelectedLabels: number = 3;\r\n  @Input() disabled: boolean = false;\r\n  @Input() filter: boolean = false;\r\n  @Input() filterBy: string = 'name';\r\n  @Input() showClear: boolean = false;\r\n  @Input() floatLabel: 'over' | 'in' | 'on' | null = null;\r\n  @Input() iftaLabel: boolean = false;\r\n  @Input() invalid: boolean = false;\r\n  @Input() size: 'small' | 'normal' | 'large' = 'normal';\r\n  @Input() showToggleAll: boolean = false;\r\n  @Input() selectedValues: any[] = [];\r\n  @Output() selectedValuesChange = new EventEmitter<any[]>();\r\n\r\n  get validatedSize(): 'small' | 'large' | null {\r\n    return this.size === 'small' || this.size === 'large' ? this.size : null;\r\n  }\r\n\r\n\r\n  get filteredOptions(): any[] {\r\n    return this.filter ? this.options : this.options.filter(opt => opt[this.valueKey]);\r\n  }\r\n  toggleSelectAll() {\r\n    if (this.isAllSelected()) {\r\n      this.selectedValues = [];\r\n    } else {\r\n      this.selectedValues = this.options.map(option => option[this.valueKey]);\r\n    }\r\n    this.onMultiSelectChange(this.selectedValues);\r\n  }\r\n\r\n  isAllSelected(): boolean {\r\n    return this.selectedValues.length === this.options.length;\r\n  }\r\n  \r\n\r\n  onChange = (value: any) => {};\r\n  onTouched = () => {};\r\n\r\n  writeValue(value: any): void {\r\n    this.selectedValues = value || [];\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.onChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouched = fn;\r\n  }\r\n\r\n  onMultiSelectChange(value: any) {\r\n    this.selectedValues = value;\r\n    this.selectedValuesChange.emit(value);\r\n    this.onChange(value);\r\n    this.onTouched();\r\n  }\r\n}\r\n","\r\n\r\n<div class=\"av-multiselect-container flex flex-col gap-2\" [class.invalid]=\"invalid\">\r\n    @if(iftaLabel) {\r\n      <p-iftalabel>\r\n        <p-multiselect\r\n          [options]=\"options\"\r\n          (blur)=\"onTouched()\"\r\n          [(ngModel)]=\"selectedValues\"\r\n          (ngModelChange)=\"onMultiSelectChange($event)\"\r\n          [optionLabel]=\"labelKey\"\r\n          [optionValue]=\"valueKey\"\r\n          [filter]=\"filter\"\r\n          [showToggleAll]=\"filter && showToggleAll\" \r\n          [filterBy]=\"filterBy\"\r\n          [showClear]=\"showClear\"\r\n          [disabled]=\"disabled\"\r\n          [maxSelectedLabels]=\"maxSelectedLabels\"\r\n          [class.ng-invalid]=\"invalid\"\r\n          [class.ng-dirty]=\"invalid\"\r\n          [attr.size]=\"validatedSize ? validatedSize : null\"\r\n          [class.p-inputtext-sm]=\"validatedSize === 'small'\"\r\n          [class.p-inputtext-lg]=\"validatedSize === 'large'\"\r\n          class=\"select-wrapper\" \r\n          [ngClass]=\"{\r\n            'border-error-500 bg-red-100 focus:border-red-500': errorMessage(),\r\n            'border-neutral-200': !errorMessage()\r\n          }\">\r\n          @if (filter && showToggleAll) {\r\n            <ng-template pTemplate=\"header\">\r\n              <div class=\"flex items-center p-2 cursor-pointer\" (click)=\"toggleSelectAll()\">\r\n                <p-checkbox\r\n                  [binary]=\"true\"\r\n                  [ngModel]=\"isAllSelected()\"\r\n                  (ngModelChange)=\"toggleSelectAll()\"\r\n                ></p-checkbox>\r\n                <span class=\"ml-2\">Seleccionar todos</span>\r\n              </div>\r\n            </ng-template>\r\n          }\r\n        </p-multiselect>\r\n        <label for=\"{{ placeholder }}\"     [ngClass]=\"{\r\n          'text-red-500': errorMessage(),\r\n          'tex-black': !errorMessage()\r\n        }\">{{ placeholder }}</label>\r\n      </p-iftalabel>\r\n    } @else if(floatLabel) {\r\n      <p-floatLabel [variant]=\"floatLabel\">\r\n        <p-multiselect\r\n          [options]=\"options\"\r\n          (blur)=\"onTouched()\"\r\n          [(ngModel)]=\"selectedValues\"\r\n          (ngModelChange)=\"onMultiSelectChange($event)\"\r\n          [optionLabel]=\"labelKey\"\r\n          [optionValue]=\"valueKey\"\r\n          [filter]=\"filter\"\r\n          [showToggleAll]=\"filter && showToggleAll\" \r\n          [filterBy]=\"filterBy\"\r\n          [showClear]=\"showClear\"\r\n          [disabled]=\"disabled\"\r\n          [maxSelectedLabels]=\"maxSelectedLabels\"\r\n          [class.ng-invalid]=\"invalid\"\r\n          [class.ng-dirty]=\"invalid\"\r\n          [attr.size]=\"validatedSize ? validatedSize : null\"\r\n          [class.p-multiselect-sm]=\"validatedSize === 'small'\"\r\n          [class.p-multiselect-lg]=\"validatedSize === 'large'\"\r\n          class=\"select-wrapper\"\r\n          [ngClass]=\"{\r\n            'border-error-500 bg-red-100 focus:border-red-500': errorMessage(),\r\n            'border-neutral-200': !errorMessage()\r\n          }\">\r\n          @if (filter && showToggleAll) {\r\n            <ng-template pTemplate=\"header\">\r\n              <div class=\"flex items-center p-2 cursor-pointer\" (click)=\"toggleSelectAll()\">\r\n                <p-checkbox\r\n                  [binary]=\"true\"\r\n                  [ngModel]=\"isAllSelected()\"\r\n                  (ngModelChange)=\"toggleSelectAll()\"\r\n                ></p-checkbox>\r\n                <span class=\"ml-2\">Seleccionar todos</span>\r\n              </div>\r\n            </ng-template>\r\n          }\r\n        </p-multiselect>\r\n        <label for=\"{{ placeholder }}\"     [ngClass]=\"{\r\n          'text-red-500': errorMessage(),\r\n          'tex-black': !errorMessage()\r\n        }\">{{ placeholder }}</label>\r\n      </p-floatLabel>\r\n    } @else {\r\n      <label for=\"label-{{placeholder}}\" [class.text-red-500]=\"invalid\"     [ngClass]=\"{\r\n        'text-red-500': errorMessage(),\r\n        'tex-black': !errorMessage()\r\n      }\">{{ placeholder }}</label>\r\n      <p-multiselect\r\n        [options]=\"options\"\r\n        (blur)=\"onTouched()\"\r\n        [(ngModel)]=\"selectedValues\"\r\n        (ngModelChange)=\"onMultiSelectChange($event)\"\r\n        [optionLabel]=\"labelKey\"\r\n        [optionValue]=\"valueKey\"\r\n        [filter]=\"filter\"\r\n        [showToggleAll]=\"filter && showToggleAll\" \r\n        [filterBy]=\"filterBy\"\r\n        [showClear]=\"showClear\"\r\n        [disabled]=\"disabled\"\r\n        [maxSelectedLabels]=\"maxSelectedLabels\"\r\n        [placeholder]=\"placeholder\"\r\n        [class.ng-invalid]=\"invalid\"\r\n        [class.ng-dirty]=\"invalid\"\r\n        [attr.size]=\"validatedSize ? validatedSize : null\"\r\n        [class.p-multiselect-sm]=\"validatedSize === 'small'\"\r\n        [class.p-multiselect-lg]=\"validatedSize === 'large'\"\r\n        class=\"select-wrapper\"\r\n        [ngClass]=\"{\r\n          'border-error-500 text-red-500  bg-red-100 focus:border-red-500': errorMessage(),\r\n          'border-neutral-200': !errorMessage()\r\n        }\">\r\n        @if (filter && showToggleAll) {\r\n            <ng-template pTemplate=\"header\">\r\n              <div class=\"flex items-center p-2 cursor-pointer\" (click)=\"toggleSelectAll()\">\r\n                <p-checkbox\r\n                  [binary]=\"true\"\r\n                  [ngModel]=\"isAllSelected()\"\r\n                  (ngModelChange)=\"toggleSelectAll()\"\r\n                ></p-checkbox>\r\n                <span class=\"ml-2\">Seleccionar todos</span>\r\n              </div>\r\n            </ng-template>\r\n          }\r\n      </p-multiselect>\r\n    }\r\n    @if (errorMessage()) {\r\n      <small id=\"help\" class=\"text-red-500 text-help-input\">\r\n        {{ errorMessage() }}\r\n      </small>\r\n      }\r\n  </div>\r\n  ","import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectorRef, Component, ContentChild, inject, Input, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { IconFieldModule } from 'primeng/iconfield';\r\nimport { InputIconModule } from 'primeng/inputicon';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { Table, TableModule } from 'primeng/table';\r\n\r\ninterface ExportColumn {\r\n  title: string;\r\n  dataKey: string;\r\n}\r\n\r\nexport interface Column {\r\n  field: string;\r\n  header: string;\r\n  sortable?: boolean;\r\n  filter?: boolean;\r\n  customExportHeader?: string;\r\n  type?: string;\r\n}\r\n\r\n@Component({\r\n  selector: 'av-table',\r\n  standalone: true,\r\n  imports: [CommonModule, TableModule, ButtonModule, IconFieldModule, InputIconModule, InputTextModule],\r\n  encapsulation: ViewEncapsulation.None,\r\n  templateUrl: './av-table.component.html',\r\n  styleUrls: ['./av-table.component.css'],\r\n  \r\n})\r\nexport class AvTableComponent {\r\n  cdRef = inject(ChangeDetectorRef);\r\n  @Input() columns: { field: string; header: string; sortable?: boolean; filter?: boolean; customExportHeader?: string }[] = [];  @Input() data: any[] = [];\r\n  @Input() paginator: boolean = false;\r\n  @Input() rows: number = 10;\r\n  @Input() striped: boolean = false;\r\n  @Input() responsive: boolean = true;\r\n  @Input() exportable: boolean = false;\r\n  @Input() filterable: boolean = false; \r\n  @ViewChild('dTable') dt!: Table;\r\n  @ContentChild('header', { static: false }) customHeader!: TemplateRef<any>;\r\n  @ContentChild('body', { static: false }) customBody!: TemplateRef<any>;\r\n\r\n  exportColumns!: ExportColumn[];\r\n\r\n  get globalFilterFields(): string[] {\r\n    return this.columns.map(col => col.field);\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    this.exportColumns = this.columns.map(col => ({\r\n      title: col.customExportHeader ?? col.header,\r\n      dataKey: col.field\r\n    }));\r\n\r\n    this.cdRef.detectChanges();\r\n  }\r\n\r\n  // ✅ Método corregido para filtrar globalmente\r\n  filterGlobal(event: Event) {\r\n    const input = event.target as HTMLInputElement;\r\n    if (input && this.dt) {\r\n      this.dt.filterGlobal(input.value.trim(), 'contains');\r\n      this.cdRef.detectChanges(); \r\n    }\r\n  }\r\n\r\n\r\n\r\n}\r\n","<p-table\r\n  #dTable\r\n  [columns]=\"columns\"\r\n  [value]=\"data\"\r\n  [paginator]=\"paginator\"\r\n  [rows]=\"rows\"\r\n  [responsiveLayout]=\"responsive ? 'scroll' : 'stack'\"\r\n  [globalFilterFields]=\"globalFilterFields\"\r\n  [class.p-datatable-striped]=\"striped\"\r\n  selectionMode=\"multiple\"\r\n  [exportHeader]=\"'customExportHeader'\"\r\n  class=\"p-datatable-sm\"\r\n>\r\n  <!-- ✅ Exportación y Filtro Global -->\r\n  <ng-template pTemplate=\"caption\">\r\n    <div class=\"flex justify-end items-center\">\r\n      @if (exportable) {\r\n      <div class=\"text-end pb-4\">\r\n        <p-button\r\n          type=\"neutral\"\r\n          iconPos=\"right\"\r\n          icon=\"pi pi-file-excel\"\r\n          label=\"Exportar excel\"\r\n          (onClick)=\"dTable.exportCSV()\"\r\n        />\r\n      </div>\r\n      }\r\n      @if (filterable) {\r\n      <ng-container>\r\n        <p-iconfield iconPosition=\"left\" class=\"ml-auto\">\r\n          <p-inputicon><i class=\"pi pi-search\"></i></p-inputicon>\r\n          <input\r\n            pInputText\r\n            type=\"text\"\r\n            (input)=\"filterGlobal($event)\"\r\n            placeholder=\"Buscar...\"\r\n          />\r\n        </p-iconfield>\r\n      </ng-container>\r\n      }\r\n    </div>\r\n  </ng-template>\r\n\r\n  <!-- ✅ Header con Ordenamiento y Filtros -->\r\n<!-- ✅ Header -->\r\n<ng-template pTemplate=\"header\" let-columns>\r\n  <ng-container *ngIf=\"customHeader; else defaultHeader\">\r\n    <ng-container *ngTemplateOutlet=\"customHeader\"></ng-container>\r\n  </ng-container>\r\n  <ng-template #defaultHeader>\r\n    <tr>\r\n      @for (col of columns; track col.field) {\r\n      <th [pSortableColumn]=\"col.sortable ? col.field : undefined\" scope=\"col\">\r\n        {{ col.header }}\r\n        @if (col.sortable) {\r\n        <p-sortIcon [field]=\"col.field\"></p-sortIcon>\r\n        }\r\n        <ng-container *ngIf=\"col.filter\">\r\n          <p-columnFilter\r\n            onKeyPress\r\n            type=\"text\"\r\n            [field]=\"col.field\"\r\n            placeholder=\"Filtrar...\"\r\n            (click)=\"$event.stopPropagation()\"\r\n          />\r\n        </ng-container>\r\n      </th>\r\n      }\r\n    </tr>\r\n  </ng-template>\r\n</ng-template>\r\n\r\n\r\n  <!-- ✅ Body -->\r\n<!-- ✅ Body -->\r\n<ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\">\r\n  <ng-container *ngIf=\"customBody; else defaultBody\">\r\n    <ng-container *ngTemplateOutlet=\"customBody; context: { $implicit: rowData }\"></ng-container>\r\n  </ng-container>\r\n  <ng-template #defaultBody>\r\n    <tr class=\"tr-body\" [pSelectableRow]=\"rowData\">\r\n      @for (col of columns; track $index) {\r\n      <td>{{ rowData[col.field] }}</td>\r\n      }\r\n    </tr>\r\n  </ng-template>\r\n</ng-template>\r\n\r\n</p-table>\r\n","import { Directive, Input, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n  selector: '[avAccordionPanel]',\r\n  standalone: true,\r\n})\r\nexport class AvAccordionPanelDirective {\r\n  @Input('avAccordionPanel') header: string = '';\r\n\r\n  constructor(public templateRef: TemplateRef<any>) {}\r\n}\r\n","import { Component, Input, ChangeDetectorRef, OnInit, inject, ContentChildren, QueryList } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AccordionModule } from 'primeng/accordion';\r\nimport { AvAccordionPanelDirective } from './accordion-panel.directive';\r\n\r\n@Component({\r\n  selector: 'av-accordion',\r\n  standalone: true,\r\n  imports: [CommonModule, AccordionModule],\r\n  templateUrl: './av-accordion.component.html',\r\n  styleUrls: ['./av-accordion.component.css']\r\n})\r\nexport class AvAccordionComponent implements OnInit {\r\n  cdr = inject(ChangeDetectorRef);\r\n  @Input() panels: { header: string; content: string; disabled?: boolean; value?: string | number }[] = [];\r\n  @Input() multiple: boolean = false;\r\n  @Input() activeIndex: number | number[] | null = null;// Valor predeterminado: abre el primer panel\r\n  @ContentChildren(AvAccordionPanelDirective) dynamicPanels!: QueryList<AvAccordionPanelDirective>;\r\n\r\n\r\n  isDynamic = false;\r\n\r\n  ngOnInit() {\r\n    if (this.activeIndex === null) {\r\n      this.activeIndex = this.multiple ? [0] : 0;\r\n    }\r\n  }\r\n\r\n  ngAfterContentInit() {\r\n    this.isDynamic = this.dynamicPanels.length > 0;\r\n    this.cdr.detectChanges();\r\n  }\r\n}\r\n","@if (isDynamic) {\r\n  <p-accordion [multiple]=\"multiple\" [value]=\"activeIndex ?? 0\">\r\n    @for (panel of dynamicPanels; track $index) {\r\n      <p-accordion-panel [value]=\"$index\">\r\n        <p-accordion-header>{{ panel.header }}</p-accordion-header>\r\n        <p-accordion-content>\r\n          <ng-container *ngTemplateOutlet=\"panel.templateRef\" />\r\n        </p-accordion-content>\r\n      </p-accordion-panel>\r\n    }\r\n  </p-accordion>\r\n}\r\n @else if (panels.length > 0) {\r\n  <p-accordion [multiple]=\"multiple\" [value]=\"activeIndex ?? 0\">\r\n    @for (panel of panels; track panel.header ?? $index) {\r\n      <p-accordion-panel [value]=\"panel.value ?? $index\" [disabled]=\"panel.disabled ?? false\">\r\n        <p-accordion-header>{{ panel.header }}</p-accordion-header>\r\n        <p-accordion-content>\r\n          <p>{{ panel.content }}</p>\r\n        </p-accordion-content>\r\n      </p-accordion-panel>\r\n    }\r\n  </p-accordion>\r\n}\r\n","import { Directive, Input, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n  selector: '[avTab]',\r\n  standalone: true,\r\n})\r\nexport class TabDirective {\r\n  @Input('avTab') title: string = '';\r\n\r\n  constructor(public template: TemplateRef<any>) {}\r\n}\r\n","import { Component, ContentChildren, Input, OnInit, QueryList } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TabsModule } from 'primeng/tabs';\r\nimport { TabDirective } from './tab.directive';\r\n\r\n@Component({\r\n  selector: 'av-tabs',\r\n  standalone: true,\r\n  imports: [CommonModule, TabsModule, TabDirective],\r\n  templateUrl: './av-tabs.component.html',\r\n  styleUrls: ['./av-tabs.component.css']\r\n})\r\nexport class AvTabsComponent implements OnInit {\r\n  @Input() tabs: { title: string; value: number; content: string; disabled?: boolean }[] = [];\r\n  @Input() activeIndex: number = 0;\r\n  @Input() isTemplate: boolean = false;\r\n  @ContentChildren(TabDirective) templates!: QueryList<TabDirective>;\r\n  \r\n  ngOnInit() {\r\n    if (this.tabs.length > 0 && this.activeIndex >= this.tabs.length) {\r\n      this.activeIndex = 0; // Asegura que no haya un índice fuera de rango\r\n    }\r\n  }\r\n\r\n}\r\n","<!-- Esto es importante para que Angular detecte su uso -->\r\n<ng-container *ngIf=\"false\">\r\n  <ng-template avTab></ng-template>\r\n</ng-container>\r\n\r\n<!-- Lógica normal de tabs -->\r\n@if (!isTemplate && tabs.length > 0) {\r\n  <!-- tabs estáticos -->\r\n  <p-tabs [(value)]=\"activeIndex\">\r\n    <p-tablist>\r\n      @for (tab of tabs; track tab.value ?? $index) {\r\n        <p-tab [value]=\"tab.value\" [disabled]=\"tab.disabled ?? false\">\r\n          {{ tab.title }}\r\n        </p-tab>\r\n      }\r\n    </p-tablist>\r\n    <p-tabpanels>\r\n      @for (tab of tabs; track tab.value ?? $index) {\r\n        <p-tabpanel [value]=\"tab.value\">\r\n          <p class=\"m-0\">{{ tab.content }}</p>\r\n        </p-tabpanel>\r\n      }\r\n    </p-tabpanels>\r\n  </p-tabs>\r\n} @else {\r\n  <p-tabs [(value)]=\"activeIndex\">\r\n    <p-tablist>\r\n      @for (tab of templates; track $index) {\r\n        <p-tab [value]=\"$index\">{{ tab.title }}</p-tab>\r\n      }\r\n    </p-tablist>\r\n    <p-tabpanels>\r\n      @for (tab of templates; track $index) {\r\n        <p-tabpanel [value]=\"$index\">\r\n          <ng-container *ngTemplateOutlet=\"tab.template\" />\r\n        </p-tabpanel>\r\n      }\r\n    </p-tabpanels>\r\n  </p-tabs>\r\n}\r\n\r\n\r\n\r\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DialogModule } from 'primeng/dialog';\r\nimport { ButtonModule } from 'primeng/button';\r\n\r\n@Component({\r\n  selector: 'av-dialog',\r\n  standalone: true,\r\n  imports: [CommonModule, DialogModule, ButtonModule],\r\n  templateUrl: './av-dialog.component.html',\r\n  styleUrls: ['./av-dialog.component.css']\r\n})\r\nexport class AvDialogComponent {\r\n  private _visible = false;\r\n  @Input()\r\n  get visible(): boolean {\r\n    return this._visible;\r\n  }\r\n\r\n  set visible(val: boolean) {\r\n    this._visible = val;\r\n    this.visibleChange.emit(this._visible);\r\n  }\r\n  // 🔁 Para soportar [(visible)] binding bidireccional\r\n  @Output() visibleChange = new EventEmitter<boolean>();\r\n  @Input() header: string = 'Título del Diálogo';\r\n  @Input() content: string = 'Contenido del diálogo.';\r\n  @Input() width: string = '30rem';\r\n  @Input() modal: boolean = true;\r\n  @Input() closable: boolean = true;\r\n  @Input() position!: 'center' | 'top' | 'bottom' | 'left' | 'right' | 'topleft' | 'topright' | 'bottomleft' | 'bottomright';\r\n  @Input() useTemplate: boolean = false;\r\n  @Output() close = new EventEmitter<void>();\r\n  \r\n  // 🔁 Se ejecuta al cerrar el diálogo\r\n  onDialogHide() {\r\n    this.visible = false;\r\n    this.close.emit();\r\n  }\r\n}\r\n","<p-dialog\r\n  [(visible)]=\"visible\"\r\n  [header]=\"header\"\r\n  [modal]=\"modal\"\r\n  [style]=\"{ width: width }\"\r\n  [closable]=\"closable\"\r\n  [position]=\"position\"\r\n  (onHide)=\"onDialogHide()\"\r\n>\r\n  <!-- 🔹 Si useTemplate es false, muestra content como texto -->\r\n  @if (!useTemplate) {\r\n  <p>{{ content }}</p>\r\n  } @else {\r\n  <!-- 🔹 Si useTemplate es true, muestra el contenido dinámico -->\r\n  <ng-content></ng-content>\r\n  }\r\n\r\n  <ng-template pTemplate=\"footer\">\r\n    @if (!useTemplate && closable) {\r\n      <p-button\r\n      onKeyPress\r\n      label=\"Cerrar\"\r\n      icon=\"pi pi-times\"\r\n      (click)=\"onDialogHide()\"\r\n    />\r\n    } @else {\r\n    <ng-content select=\"[dialog-footer]\"></ng-content>\r\n    }\r\n\r\n  </ng-template>\r\n\r\n \r\n</p-dialog>\r\n","import {\r\n  Component,\r\n  Input,\r\n  Output,\r\n  EventEmitter,\r\n  ViewChild,\r\n  inject,\r\n  ViewEncapsulation,\r\n  signal,\r\n  forwardRef,\r\n} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport {\r\n  FileUploadModule,\r\n  FileUpload,\r\n  FileUploadEvent,\r\n} from 'primeng/fileupload';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { ToastModule } from 'primeng/toast';\r\nimport { MessageService } from 'primeng/api';\r\nimport { ProgressBarModule } from 'primeng/progressbar';\r\nimport { BadgeModule } from 'primeng/badge';\r\nimport { PrimeNG } from 'primeng/config';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n  selector: 'av-file-upload',\r\n  standalone: true,\r\n  encapsulation: ViewEncapsulation.None,\r\n  imports: [\r\n    CommonModule,\r\n    FileUploadModule,\r\n    ButtonModule,\r\n    ToastModule,\r\n    ProgressBarModule,\r\n    BadgeModule,\r\n  ],\r\n  templateUrl: './av-file-upload.component.html',\r\n  styleUrls: ['./av-file-upload.component.css'],\r\n  providers: [\r\n    MessageService,\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => AvFileUploadComponent),\r\n      multi: true,\r\n    },\r\n  ],\r\n})\r\nexport class AvFileUploadComponent {\r\n  private readonly messageService = inject(MessageService);\r\n  private readonly config = inject(PrimeNG);\r\n  uploadCompleted = signal(false);\r\n  @Input() mode: 'basic' | 'advanced' = 'advanced';\r\n  @Input() autoUpload: boolean = false;\r\n  @Input() multiple: boolean = false;\r\n  @Input() chooseLabel: string = 'Choose';\r\n  @Input() uploadLabel: string = 'Upload';\r\n  @Input() url: string = 'https://www.primefaces.org/cdn/api/upload.php';\r\n  @Input() accept: string = '';\r\n  @Input() maxFileSize: number = 1000000;\r\n  @Input() format: string = ''; // Texto que muestra los tipos permitidos (ej: JPEG, PNG)\r\n  @Input() typeFormat: 'image' | 'doc' | 'excel' | 'all' | '' = ''; // Tipo de archivos aceptados\r\n\r\n  hasFiles: boolean = false;\r\n  files: File[] = [];\r\n  totalSize: number = 0;\r\n  totalSizePercent: number = 0;\r\n  @Output() onUpload = new EventEmitter<any>();\r\n  @ViewChild('uploader') uploaderRef!: FileUpload;\r\n\r\n  get uploadIcon(): string {\r\n    switch (this.typeFormat) {\r\n      case 'doc':\r\n      case 'excel':\r\n        return 'pi pi-file';\r\n      case 'image':\r\n        return 'pi pi-images';\r\n      default:\r\n        return 'pi pi-file';\r\n    }\r\n  }\r\n\r\n  getUploadIcon(file: File): string {\r\n    const type = file.type;\r\n\r\n    if (type.startsWith('image/')) return 'pi pi-image';\r\n    if (type.startsWith('video/')) return 'pi pi-video';\r\n    if (type === 'application/pdf') return 'pi pi-file-pdf';\r\n    if (type.includes('zip') || type.includes('compressed'))\r\n      return 'pi pi-file-zip';\r\n    if (type.includes('spreadsheet') || file.name.endsWith('.xlsx'))\r\n      return 'pi pi-file-excel';\r\n    if (type.includes('word') || file.name.endsWith('.docx'))\r\n      return 'pi pi-file-word';\r\n    if (type.includes('presentation') || file.name.endsWith('.pptx'))\r\n      return 'pi pi-file';\r\n    if (type.includes('text') || file.name.endsWith('.txt'))\r\n      return 'pi pi-file';\r\n\r\n    return 'pi pi-file'; // Default\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this.setAcceptedFormats();\r\n  }\r\n\r\n  isImage(file: any): boolean {\r\n    const ext = file?.name?.split('.').pop()?.toLowerCase();\r\n    return ['jpeg', 'jpg', 'png', 'webp', 'svg'].includes(ext);\r\n  }\r\n\r\n  triggerUpload() {\r\n    this.uploaderRef.upload();\r\n  }\r\n\r\n \r\n\r\n  handleUpload(event: FileUploadEvent) {\r\n    const interval = setInterval(() => {\r\n      if (this.totalSizePercent >= 100) {\r\n        clearInterval(interval);\r\n\r\n        this.uploadCompleted.set(true); \r\n        for (const file of event.files) {\r\n          this.files.push(file);\r\n        }\r\n        this.messageService.add({\r\n          severity: 'success',\r\n          summary: 'Éxito',\r\n          detail: 'Archivo subido correctamente',\r\n        });\r\n\r\n        this.onUpload.emit(event);\r\n         this.uploaderRef.uploadedFiles = [];\r\n      } else {\r\n        this.totalSizePercent += 10;\r\n      }\r\n    }, 30);\r\n  }\r\n\r\n  handleError(event: any) {\r\n    this.messageService.add({\r\n      severity: 'error',\r\n      summary: 'Error',\r\n      detail: 'Falló la subida de archivo',\r\n    });\r\n  }\r\n  handleFileSelect(event: any) {\r\n    this.hasFiles = event.files && event.files.length > 0;\r\n  }\r\n\r\n  handleClear() {\r\n    this.uploadCompleted.set(false);\r\n    this.hasFiles = false;\r\n    this.totalSize = 0;\r\n    this.totalSizePercent = 0;\r\n    this.files = [];\r\n  }\r\n\r\n  setAcceptedFormats() {\r\n    switch (this.typeFormat.toLowerCase()) {\r\n      case 'image':\r\n        this.accept = '.jpeg,.jpg,.png,.webp,.svg';\r\n        break;\r\n      case 'doc':\r\n        this.accept = '.doc,.docx,.ppt,.pptx';\r\n        break;\r\n      case 'excel':\r\n        this.accept = '.json,.xls,.xlsx,.csv,.ods';\r\n        break;\r\n      case 'all':\r\n        this.accept =\r\n          '.jpeg,.jpg,.png,.webp,.svg,.doc,.docx,.ppt,.pptx,.xls,.xlsx,.csv,.ods';\r\n        break;\r\n      default:\r\n        this.accept = ''; // Si no se define nada\r\n        break;\r\n    }\r\n  }\r\n\r\n  choose(event: Event, callback: Function) {\r\n    callback();\r\n  }\r\n\r\n  uploadWithCallback(callback: Function) {\r\n    if (!this.multiple && this.files.length > 1) {\r\n      const lastFile = this.files.at(-1);\r\n      this.uploaderRef.clear(); \r\n      if (lastFile) {\r\n        this.uploaderRef.files = [lastFile];\r\n        this.files = [lastFile];\r\n      }\r\n    }\r\n\r\n    callback();\r\n    if (!this.multiple && this.files.length === 1) {\r\n      const lastFile = this.files[0];\r\n\r\n      const objectURL = lastFile ? URL.createObjectURL(lastFile) : null;\r\n      this.onChange(objectURL);\r\n      this.onTouched();\r\n\r\n      this.totalSize = parseInt(this.formatSize(lastFile.size));\r\n      this.totalSizePercent = this.totalSize / 10;\r\n    }\r\n    this.uploadCompleted.set(true);\r\n  }\r\n\r\n  handleSelect(event: any) {\r\n    const selectedFile = event.currentFiles[0]; \r\n\r\n    if (!this.multiple && selectedFile) {\r\n      this.files = [selectedFile]; \r\n      this.totalSize = parseInt(this.formatSize(selectedFile.size));\r\n      this.totalSizePercent = this.totalSize / 10;\r\n\r\n      const objectURL = selectedFile?.objectURL;\r\n      this.onChange(objectURL);\r\n      this.onTouched();\r\n    } else {\r\n      this.files = event.currentFiles;\r\n      this.totalSize = 0;\r\n      this.files.forEach((file) => {\r\n        this.totalSize += parseInt(this.formatSize(file.size));\r\n      });\r\n      this.totalSizePercent = this.totalSize / 10;\r\n    }\r\n  }\r\n\r\n  removeFile(event: Event, file: any, removeCallback: Function, index: number) {\r\n    removeCallback(event, index);\r\n    this.totalSize -= parseInt(this.formatSize(file.size));\r\n    this.totalSizePercent = this.totalSize / 10;\r\n  }\r\n\r\n  formatSize(bytes: number): string {\r\n    const k = 1024;\r\n    const dm = 3;\r\n    const sizes = this.config.translation.fileSizeTypes;\r\n    if (!sizes) {\r\n      return '0 B';\r\n    }\r\n    if (bytes === 0) {\r\n      return `0 ${sizes[0]}`;\r\n    }\r\n    const i = Math.floor(Math.log(bytes) / Math.log(k));\r\n    const formattedSize = parseFloat((bytes / Math.pow(k, i)).toFixed(dm));\r\n    return `${formattedSize} ${sizes[i]}`;\r\n  }\r\n  clearFiles() {\r\n    this.files = [];\r\n    this.totalSize = 0;\r\n    this.totalSizePercent = 0;\r\n    this.hasFiles = false;\r\n\r\n    if (this.uploaderRef) {\r\n      this.uploaderRef.clear();\r\n    }\r\n  }\r\n\r\n  onChange: any = () => {};\r\n  onTouched: any = () => {};\r\n\r\n  writeValue(value: any): void {\r\n    if (value) {\r\n      this.files = value;\r\n    }\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.onChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouched = fn;\r\n  }\r\n}\r\n","<p-toast />\r\n\r\n<div class=\"flex flex-col items-center gap-4 w-full\">\r\n  <p-fileupload\r\n    #uploader\r\n    name=\"myfile[]\"\r\n    [mode]=\"mode\"\r\n    [url]=\"url\"\r\n    [chooseLabel]=\"chooseLabel\"\r\n    [auto]=\"autoUpload\"\r\n    [multiple]=\"multiple\"\r\n    [accept]=\"accept\"\r\n    [maxFileSize]=\"maxFileSize\"\r\n    (onSelect)=\"\r\n      mode === 'advanced' ? handleSelect($event) : handleFileSelect($event)\r\n    \"\r\n    (onClear)=\"handleClear()\"\r\n    (onUpload)=\"handleUpload($event)\"\r\n    (onError)=\"handleError($event)\"\r\n    class=\"w-full\"\r\n  >\r\n    @if (mode === 'advanced') {\r\n    <ng-template\r\n      #header\r\n      let-files\r\n      let-chooseCallback=\"chooseCallback\"\r\n      let-clearCallback=\"clearCallback\"\r\n      let-uploadCallback=\"uploadCallback\"\r\n    >\r\n      <div class=\"flex flex-wrap justify-between items-center flex-1 gap-4\">\r\n        <div class=\"flex gap-2\">\r\n          <p-button\r\n            (onClick)=\"choose($event, chooseCallback)\"\r\n            [icon]=\"uploadIcon\"\r\n            [rounded]=\"true\"\r\n            [outlined]=\"true\"\r\n          />\r\n\r\n        \r\n            <p-button\r\n              (onClick)=\"uploadWithCallback(uploadCallback)\"\r\n              icon=\"pi pi-cloud-upload\"\r\n              [rounded]=\"true\"\r\n              [outlined]=\"true\"\r\n              severity=\"success\"\r\n              [disabled]=\"!files || files.length === 0\"\r\n            />\r\n    \r\n\r\n          <p-button\r\n            (onClick)=\"handleClear(); clearCallback()\"\r\n            icon=\"pi pi-times\"\r\n            [rounded]=\"true\"\r\n            [outlined]=\"true\"\r\n            severity=\"danger\"\r\n            [disabled]=\"!files || files.length === 0\"\r\n          />\r\n        </div>\r\n\r\n        <p-progressbar\r\n          [value]=\"totalSizePercent\"\r\n          [showValue]=\"false\"\r\n          class=\"w-full\"\r\n          styleClass=\"md:w-20rem h-1 w-full md:ml-auto\"\r\n        >\r\n          <span class=\"whitespace-nowrap\">{{ totalSize }}B / 1Mb</span>\r\n        </p-progressbar>\r\n      </div>\r\n    </ng-template>\r\n    <ng-template\r\n      #content\r\n      let-files\r\n      let-uploadedFiles=\"uploadedFiles\"\r\n      let-removeFileCallback=\"removeFileCallback\"\r\n      let-removeUploadedFileCallback=\"removeUploadedFileCallback\"\r\n    >\r\n      <div class=\"flex flex-col gap-8\">\r\n        <div *ngIf=\"files?.length > 0\">\r\n          <!-- <h5>Pendientes</h5> -->\r\n          <div class=\"flex flex-wrap gap-4\">\r\n            <div\r\n              *ngFor=\"let file of files; let i = index\"\r\n              class=\"relative w-[130px] h-[130px] overflow-hidden rounded-lg shadow border border-surface flex items-center justify-center\"\r\n            >\r\n              <!-- Imagen -->\r\n              <ng-container *ngIf=\"isImage(file); else fileIcon\">\r\n                <img\r\n                  *ngIf=\"isImage(file)\"\r\n                  role=\"presentation\"\r\n                  [alt]=\"file.name\"\r\n                  [src]=\"file.objectURL\"\r\n                  class=\"w-full h-full object-cover\"\r\n                />\r\n              </ng-container>\r\n              <ng-template #fileIcon>\r\n                <i\r\n                  [ngClass]=\"getUploadIcon(file)\"\r\n                  class=\"text-5xl text-primary-500\"\r\n                ></i>\r\n              </ng-template>\r\n\r\n              <!-- Overlay -->\r\n              <div\r\n                class=\"absolute inset-0 text-white flex flex-col justify-end p-2 text-sm bg-[#0c1920]/30\"\r\n              >\r\n                <span class=\"truncate text-xs font-semibold\">{{\r\n                  file.name\r\n                }}</span>\r\n                <span class=\"text-xs\">{{ formatSize(file.size) }}</span>\r\n                <p-badge value=\"Pending\" severity=\"warn\" class=\"mt-1\" />\r\n                <p-button\r\n                  icon=\"pi pi-trash\"\r\n                  (onClick)=\"removeFile($event, file, removeFileCallback, i)\"\r\n                  class=\"!absolute top-1 right-1\"\r\n                  [rounded]=\"true\"\r\n                  severity=\"danger\"\r\n                  styleClass=\"!p-1 !text-xs\"\r\n                />\r\n              </div>\r\n            </div>\r\n          </div>\r\n        </div>\r\n        <div *ngIf=\"uploadedFiles?.length > 0 && totalSizePercent > 99\">\r\n          <!-- <h5>Completed</h5> -->\r\n          <div class=\"flex flex-wrap gap-4\">\r\n            <div\r\n              *ngFor=\"let file of uploadedFiles; let i = index\"\r\n              class=\"relative w-[130px] h-[130px] overflow-hidden rounded-lg shadow border border-surface flex items-center justify-center\"\r\n            >\r\n              <!-- Imagen -->\r\n              <ng-container *ngIf=\"isImage(file); else fileIcon\">\r\n                <img\r\n                  *ngIf=\"isImage(file)\"\r\n                  role=\"presentation\"\r\n                  [alt]=\"file.name\"\r\n                  [src]=\"file.objectURL\"\r\n                  class=\"w-full h-full object-cover\"\r\n                />\r\n              </ng-container>\r\n              <ng-template #fileIcon>\r\n                <i\r\n                  [ngClass]=\"getUploadIcon(file)\"\r\n                  class=\"text-5xl text-primary-500\"\r\n                ></i>\r\n              </ng-template>\r\n\r\n              <!-- Overlay -->\r\n              <div\r\n                class=\"absolute inset-0 text-white flex flex-col justify-end p-2 text-sm bg-[#0c1920]/30\"\r\n              >\r\n                <span class=\"truncate text-xs font-semibold\">{{\r\n                  file.name\r\n                }}</span>\r\n                <span class=\"text-xs\">{{ formatSize(file.size) }}</span>\r\n                <p-badge value=\"Completed\" class=\"mt-4\" severity=\"success\" />\r\n                <p-button\r\n                  icon=\"pi pi-trash\"\r\n                  (onClick)=\"removeUploadedFileCallback(i)\"\r\n                  class=\"!absolute top-1 right-1\"\r\n                  [rounded]=\"true\"\r\n                  severity=\"danger\"\r\n                  styleClass=\"!p-1 !text-xs\"\r\n                />\r\n              </div>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </ng-template>\r\n    <ng-template #file></ng-template>\r\n    <ng-template #empty>\r\n      <div class=\"flex items-center justify-center flex-col\">\r\n        <i\r\n          class=\"pi pi-cloud-upload !border-2 !rounded-full !p-8 !text-4xl !text-muted-color\"\r\n        ></i>\r\n        <p class=\"mt-6 mb-0\">Arrastre y suelte archivos aquí para cargarlos.</p>\r\n        <p class=\"text-neutral-500 text-sm\">\r\n          Formatos permitidos: {{ format }}\r\n        </p>\r\n      </div>\r\n    </ng-template>\r\n    }\r\n  </p-fileupload>\r\n  @if (mode === 'basic' && hasFiles && !autoUpload) {\r\n  <p-button\r\n    [label]=\"uploadLabel\"\r\n    severity=\"secondary\"\r\n    (onClick)=\"triggerUpload()\"\r\n  />\r\n  }\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MessageModule } from 'primeng/message';\r\n\r\n@Component({\r\n  selector: 'av-message',\r\n  standalone: true,\r\n  imports: [CommonModule, MessageModule],\r\n  templateUrl: './av-message.component.html',\r\n  styleUrls: ['./av-message.component.css'],\r\n})\r\nexport class AvMessageComponent {\r\n  @Input() severity: 'success' | 'info' | 'warn' | 'error' | 'secondary' | 'contrast' = 'info';\r\n  @Input() text: string = '';\r\n  @Input() icon: string = '';\r\n  @Input() variant: 'outlined' | 'text' | 'simple' | undefined;\r\n  @Input() size: 'small' | 'large' | '' = '';\r\n  @Input() closable: boolean = false;\r\n\r\n}\r\n","<p-message\r\n  [severity]=\"severity\"\r\n  [text]=\"text\"\r\n  [icon]=\"icon\"\r\n  [variant]=\"variant\"\r\n  [size]=\"size || undefined\"\r\n  [closable]=\"closable\"\r\n/>\r\n","// av-toast.component.ts\r\nimport { Component, inject, Input } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ToastModule } from 'primeng/toast';\r\nimport { MessageService } from 'primeng/api';\r\n\r\n\r\nexport interface Message {\r\n  severity?: 'success' | 'info' | 'warn' | 'error' | 'secondary' | 'contrast';\r\n  summary?: string;\r\n  detail?: string;\r\n  key?: string;\r\n  life?: number;\r\n  closable?: boolean;\r\n}\r\n\r\n\r\n@Component({\r\n  selector: 'av-toast',\r\n  standalone: true,\r\n  imports: [CommonModule, ToastModule],\r\n  templateUrl: './av-toast.component.html',\r\n  providers: [MessageService],\r\n})\r\nexport class AvToastComponent {\r\n  private readonly messageService = inject(MessageService);\r\n  @Input() key: string = 'default';\r\n  @Input() position:\r\n    | 'top-left'\r\n    | 'top-center'\r\n    | 'top-right'\r\n    | 'bottom-left'\r\n    | 'bottom-center'\r\n    | 'bottom-right'\r\n    | 'center' = 'top-right';\r\n\r\n  show(\r\n    type: 'success' | 'info' | 'warn' | 'error' | 'secondary' | 'contrast',\r\n    summary: string,\r\n    detail: string\r\n  ) {\r\n    this.messageService.add({\r\n      severity: type,\r\n      summary,\r\n      detail,\r\n      life: 3000,\r\n    });\r\n  }\r\n\r\n  showPosition(\r\n    type: 'success' | 'info' | 'warn' | 'error' | 'secondary' | 'contrast',\r\n    summary: string,\r\n    detail: string,\r\n    key: string\r\n  ) {\r\n    this.messageService.add({\r\n      severity: type,\r\n      summary,\r\n      detail,\r\n      key,\r\n      life: 3000,\r\n    });\r\n  }\r\n\r\n  showMulti(messages: Array<Message>) {\r\n    this.messageService.addAll(\r\n      messages.map((message) => ({\r\n        ...message,\r\n        severity: message.severity ?? undefined,\r\n      }))\r\n    );\r\n  }\r\n}\r\n","<p-toast  />\r\n\r\n@if (key !== 'default') {\r\n  <p-toast [key]=\"key\" [position]=\"position\" />\r\n}\r\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ProgressBarModule } from 'primeng/progressbar';\r\n\r\n@Component({\r\n  selector: 'av-progress-bar',\r\n  standalone: true,\r\n   encapsulation: ViewEncapsulation.None,\r\n  imports: [CommonModule, ProgressBarModule],\r\n  templateUrl: './av-progress-bar.component.html',\r\n  styleUrls: ['./av-progress-bar.component.css'],\r\n})\r\nexport class AvProgressBarComponent {\r\n  @Input() value?: number; // Valor del progreso (0 - 100)\r\n  @Input() mode: 'determinate' | 'indeterminate' = 'determinate';\r\n  @Input() height: string = '1rem';\r\n  @Input() showText: boolean = true;\r\n  @Input() styleClass?: string;\r\n @Input() customStyle: { [key: string]: any } = {};\r\n @Input() progressBarColor: string = '#4caf50'; // Color dinámico de la barra de progreso\r\n\r\n\r\n\r\n\r\n\r\n\r\n}\r\n","<p-progressbar\r\n  [value]=\"mode === 'determinate' ? value : undefined\"\r\n  [mode]=\"mode\"\r\n  [style]=\"{ height}\"\r\n  [ngStyle]=\"{ customStyle }\"\r\n\r\n\r\n>\r\n  <ng-template #content let-val>\r\n    @if (showText && mode === 'determinate') {\r\n      <span>{{ val }}%</span>\r\n    }\r\n  </ng-template>\r\n</p-progressbar>\r\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ProgressSpinnerModule } from 'primeng/progressspinner';\r\n\r\n@Component({\r\n  selector: 'av-spinner',\r\n  standalone: true,\r\n  imports: [CommonModule, ProgressSpinnerModule],\r\n  templateUrl: './av-spinner.component.html',\r\n  styleUrls: ['./av-spinner.component.css'],\r\n  encapsulation: ViewEncapsulation.None, // para que puedas modificar estilos internos\r\n})\r\nexport class AvSpinnerComponent {\r\n  @Input() size: string = '50px';\r\n  @Input() strokeWidth: string = '4';\r\n  @Input() fill: string = 'transparent';\r\n  @Input() animationDuration: string = '1s';\r\n}\r\n","<p-progress-spinner\r\n  [style]=\"{ width: size, height: size }\"\r\n  [strokeWidth]=\"strokeWidth\"\r\n  [fill]=\"fill\"\r\n  [animationDuration]=\"animationDuration\"\r\n  ariaLabel=\"loading\"\r\n/>\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n  FormControl,\r\n  ValidationErrors,\r\n  FormGroup,\r\n  AbstractControl,\r\n  FormArray,\r\n} from '@angular/forms';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ValidatorsService {\r\n  public firstNameAndLastnamePattern: string = '([a-zA-Z]+) ([a-zA-Z]+)';\r\n  public emailPattern: string = '^[a-z0-9._%+-]+@[a-z0-9.-]+\\\\.[a-z]{2,6}$';\r\n  public cantBeStrider = (control: FormControl): ValidationErrors | null => {\r\n    const value: string = control.value.trim().toLowerCase();\r\n    if (value === 'strider') {\r\n      return {\r\n        noStrider: true,\r\n      };\r\n    }\r\n    return null;\r\n  };\r\n\r\n  public isValidField(form: FormGroup, field: string): boolean | null {\r\n    return form.controls[field].errors && form.controls[field].touched;\r\n  }\r\n\r\n  public getErrorMessage(form: FormGroup, field: string): string {\r\n    const control = form.get(field);\r\n\r\n    if (field.includes('.')) {\r\n      const parts = field.split('.');\r\n      const groupControl = form.get(parts[0]) as FormArray;\r\n      const index = +parts[1];\r\n      const controlInGroup = groupControl.at(index).get(parts[2]);\r\n      return this.getControlErrorMessage(controlInGroup);\r\n    } else {\r\n      return this.getControlErrorMessage(control);\r\n    }\r\n  }\r\n\r\n  private getControlErrorMessage(control: AbstractControl | null): string {\r\n    if (!control || !control.touched || !control.errors) {\r\n      return '';\r\n    }\r\n    const errors = control.errors;\r\n    for (const key of Object.keys(errors)) {\r\n      switch (key) {\r\n        case 'required':\r\n          return 'Este campo es obligatorio';\r\n        case 'requiredDateRange':\r\n          return 'Selecciona un rango de fechas válido';\r\n        case 'minlength':\r\n          return `Mínimo ${errors['minlength'].requiredLength} caracteres.`;\r\n        case 'maxlength':\r\n          return `Máximo ${errors['maxlength'].requiredLength} caracteres.`;\r\n        case 'email':\r\n          return 'Formato de correo no válido';\r\n        case 'pattern':\r\n          return `Formato de  no válido`;\r\n      }\r\n    }\r\n    return '';\r\n  }\r\n\r\n  public isFieldOneEqualFieldTwo(field1: string, field2: string) {\r\n    return (formGroup: AbstractControl): ValidationErrors | null => {\r\n      const fieldValue1 = formGroup.get(field1)?.value;\r\n      const fieldValue2 = formGroup.get(field2)?.value;\r\n      if (fieldValue1 !== fieldValue2) {\r\n        formGroup.get(field2)?.setErrors({ notEqual: true });\r\n        return { notEqual: true };\r\n      }\r\n      formGroup.get(field2)?.setErrors(null);\r\n      return null;\r\n    };\r\n  }\r\n  public getError(form: FormGroup, field: string): string {\r\n    return this.getErrorMessage(form, field);\r\n  }\r\n}\r\n","/*\r\n * Public API Surface of av-ui\r\n */\r\n\r\nexport * from './lib/av-ui.service';\r\nexport * from './lib/av-ui.component';\r\nexport * from './lib/av-button/av-button.component';\r\nexport * from './lib/av-input/av-input.component';\r\nexport * from './lib/av-select/av-select.component';\r\nexport * from './lib/av-textarea/av-textarea.component';\r\nexport * from './lib/av-password/av-password.component';\r\nexport * from './lib/av-date-picker/av-date-picker.component';\r\nexport * from './lib/av-checkbox/av-checkbox.component';\r\nexport * from './lib/av-radio-button/av-radio-button.component';\r\nexport * from './lib/av-select/av-select.component';\r\nexport * from './lib/av-multiselect/av-multiselect.component';\r\nexport * from './lib/av-table/av-table.component';\r\nexport * from './lib/av-accordion/av-accordion.component';\r\nexport * from './lib/av-accordion/accordion-panel.directive';\r\nexport * from './lib/av-tabs/av-tabs.component';\r\nexport * from './lib/av-tabs/tab.directive';\r\nexport * from './lib/av-dialog/av-dialog.component'; \r\nexport * from './lib/av-file-upload/av-file-upload.component';\r\nexport * from './lib/av-message/av-message.component';\r\nexport * from './lib/av-toast/av-toast.component';\r\nexport * from './lib/av-progress-bar/av-progress-bar.component';\r\nexport * from './lib/av-spinner/av-spinner.component';\r\nexport * from './lib/validator.service';\r\n\r\n\r\n\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3","i6","i4","i5","i2","i7","i1"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAKa,WAAW,CAAA;AAEtB,IAAA,WAAA,GAAA;uGAFW,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAX,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,cAFV,MAAM,EAAA,CAAA;;2FAEP,WAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCQY,aAAa,CAAA;uGAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAb,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,EAPd,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;AAIT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAGU,aAAa,EAAA,UAAA,EAAA,CAAA;kBAVzB,SAAS;+BACE,WAAW,EAAA,OAAA,EACZ,EAAE,EACD,QAAA,EAAA,CAAA;;;;AAIT,EAAA,CAAA,EAAA;;;MCGU,iBAAiB,CAAA;AACnB,IAAA,KAAK;AACL,IAAA,IAAI;IACJ,OAAO,GAAwC,MAAM;AACrD,IAAA,KAAK;IACL,QAAQ,GAAG,KAAK;IAChB,OAAO,GAAG,KAAK;AACf,IAAA,WAAW;IACX,MAAM,GAAG,KAAK;IACd,OAAO,GAAG,KAAK;IACf,IAAI,GAAG,KAAK;IACZ,KAAK,GAAG,KAAK;AACb,IAAA,QAAQ;IACR,QAAQ,GAAG,KAAK;AAChB,IAAA,IAAI;AACJ,IAAA,OAAO;AACP,IAAA,KAAK;AACL,IAAA,UAAU;AACV,IAAA,UAAU;AACV,IAAA,aAAa;AACb,IAAA,SAAS;IACT,SAAS,GAAG,KAAK;IACjB,KAAK,GAAG,KAAK;AACb,IAAA,WAAW;;IAGX,UAAU,GAAgD,QAAQ;AAClE,IAAA,IAAI;AACJ,IAAA,UAAU;uGA5BR,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,6mBCZ9B,i4CA2CE,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDnCU,YAAY,EAAE,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,kbAAE,UAAU,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAIrC,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAP7B,SAAS;+BACE,WAAW,EAAA,UAAA,EACT,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,YAAY,EAAE,UAAU,CAAC,EAAA,QAAA,EAAA,i4CAAA,EAAA;8BAKxC,KAAK,EAAA,CAAA;sBAAb;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,MAAM,EAAA,CAAA;sBAAd;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,aAAa,EAAA,CAAA;sBAArB;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBAGQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,UAAU,EAAA,CAAA;sBAAlB;;;MEjBU,gBAAgB,CAAA;IAClB,YAAY,GAAW,EAAE;IACzB,QAAQ,GAAW,EAAE;IACrB,KAAK,GAAW,EAAE;IAClB,IAAI,GAAsB,MAAM;IAChC,OAAO,GAAuC,UAAU;IACxD,IAAI,GAAiC,QAAQ;IAC7C,WAAW,GAAW,EAAE;IACxB,QAAQ,GAAY,KAAK;IACzB,UAAU,GAAgC,IAAI;IAC9C,SAAS,GAAY,KAAK;IAC1B,OAAO,GAAY,KAAK;IACxB,IAAI,GAAW,EAAE;;AAGjB,IAAA,GAAG;AACH,IAAA,GAAG;AACH,IAAA,MAAM;AACN,IAAA,MAAM;AACN,IAAA,IAAI;AACJ,IAAA,QAAQ;AAEjB,IAAA,KAAK;AAEL,IAAA,IAAI,aAAa,GAAA;QACf,OAAO,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI;;AAG1E,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU;;AAG5B,IAAA,UAAU,CAAC,KAA0C,EAAA;AACnD,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;AAGpB,IAAA,gBAAgB,CAAC,EAAwB,EAAA;AACvC,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAGpB,IAAA,iBAAiB,CAAC,EAAyB,EAAA;AACzC,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;;AAId,IAAA,QAAQ,GAAG,CAAC,KAA0C,KAAI;AAC/D,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AACpB,KAAC;AAEM,IAAA,SAAS,GAAG,MAAK,GAAG;uGAjDhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAhB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,EARhB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,GAAA,EAAA,KAAA,EAAA,GAAA,EAAA,KAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,gBAAgB;AAC7B,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECrBH,iuLA6KA,EAAA,MAAA,EAAA,CAAA,sWAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDjKY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,cAAA,EAAA,SAAA,EAAA,YAAA,EAAA,OAAA,EAAA,aAAA,EAAA,MAAA,EAAA,WAAA,EAAA,UAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,MAAA,EAAA,UAAA,EAAA,cAAA,EAAA,KAAA,EAAA,KAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,MAAA,EAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,UAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,QAAA,EAAA,WAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,wCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAW/F,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAf5B,SAAS;+BACE,UAAU,EAAA,UAAA,EACR,IAAI,EACD,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,eAAe,EAAE,WAAW,CAAC,EAGhG,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAkB,gBAAA;AAC7B,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,iuLAAA,EAAA,MAAA,EAAA,CAAA,sWAAA,CAAA,EAAA;8BAGQ,YAAY,EAAA,CAAA;sBAApB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBAGQ,GAAG,EAAA,CAAA;sBAAX;gBACQ,GAAG,EAAA,CAAA;sBAAX;gBACQ,MAAM,EAAA,CAAA;sBAAd;gBACQ,MAAM,EAAA,CAAA;sBAAd;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;;;MEtBU,iBAAiB,CAAA;AACrB,IAAA,YAAY,GAAG,KAAK,CAAS,EAAE,CAAC;IAC9B,OAAO,GAAU,EAAE;IACnB,QAAQ,GAAW,OAAO;IAC1B,QAAQ,GAAW,OAAO;IAC1B,WAAW,GAAW,uBAAuB;;IAG7C,aAAa,GAAQ,IAAI;AACxB,IAAA,mBAAmB,GAAG,IAAI,YAAY,EAAO;;IAG9C,MAAM,GAAY,KAAK;IACvB,QAAQ,GAAW,MAAM;IACzB,SAAS,GAAY,KAAK;IAC1B,UAAU,GAAgC,IAAI;IAC9C,SAAS,GAAY,KAAK;IAC1B,OAAO,GAAY,KAAK;IACxB,QAAQ,GAAY,KAAK;IACzB,IAAI,GAAiC,QAAQ;AAEtD,IAAA,IAAI,aAAa,GAAA;QACf,OAAO,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI;;;AAI1E,IAAA,QAAQ,GAAG,CAAC,KAAU,KAAI,GAAI;AAC9B,IAAA,SAAS,GAAG,MAAK,GAAI;AAErB,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,IAAI,IAAI;;AAGpC,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAGpB,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;;AAGrB,IAAA,gBAAgB,CAAC,UAAmB,EAAA;;;AAIpC,IAAA,cAAc,CAAC,KAAU,EAAA;AACvB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK;AAC1B,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC;AACpC,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QACpB,IAAI,CAAC,SAAS,EAAE;;uGAjDP,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EARjB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,iBAAiB,CAAC;AAChD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;SACF,ECnBH,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,+5KAqIE,ED3HU,MAAA,EAAA,CAAA,wOAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,kWAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,cAAA,EAAA,QAAA,EAAA,MAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,EAAA,cAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,SAAA,EAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,MAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,wCAAA,EAAA,CAAA,EAAA,CAAA;;2FAWzE,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAd7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EACT,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,gBAAgB,EAAE,eAAe,CAAC,EAG1E,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,uBAAuB,CAAC;AAChD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,+5KAAA,EAAA,MAAA,EAAA,CAAA,wOAAA,CAAA,EAAA;8BAIQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBAGQ,aAAa,EAAA,CAAA;sBAArB;gBACS,mBAAmB,EAAA,CAAA;sBAA5B;gBAGQ,MAAM,EAAA,CAAA;sBAAd;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,IAAI,EAAA,CAAA;sBAAZ;;;MEnBU,mBAAmB,CAAA;AACtB,IAAA,YAAY,GAAG,KAAK,CAAS,EAAE,CAAC;IAC/B,QAAQ,GAAW,EAAE;IACrB,KAAK,GAAW,EAAE;IAClB,WAAW,GAAW,EAAE;IACxB,QAAQ,GAAY,KAAK;IACzB,UAAU,GAAgC,IAAI;IAC9C,SAAS,GAAY,KAAK;IAC1B,OAAO,GAAY,KAAK;IACxB,UAAU,GAAY,KAAK;IAC3B,IAAI,GAAiC,QAAQ;AACvD,IAAA,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC;AAEhB,IAAA,IAAI,aAAa,GAAA;QACf,OAAO,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI;;AAE1E,IAAA,UAAU,CAAC,KAAa,EAAA;AACtB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;;AAGvB,IAAA,gBAAgB,CAAC,EAAwB,EAAA;AACvC,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAGpB,IAAA,iBAAiB,CAAC,EAAyB,EAAA;AACzC,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;;AAId,IAAA,QAAQ,GAAG,CAAC,KAAa,KAAI;AAClC,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AACvB,KAAC;AAEM,IAAA,SAAS,GAAG,MAAK,GAAG;uGAjChB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EARjB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,mBAAmB,CAAC;AAClD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;SACF,ECnBL,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,oxGAwFA,ED9EY,MAAA,EAAA,CAAA,qXAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,onBAAE,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAG,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,wCAAA,EAAA,CAAA,EAAA,CAAA;;2FAW5E,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAd/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EACX,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,WAAW,EAAE,cAAc,EAAG,gBAAgB,EAAE,eAAe,CAAC,EAG3E,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,yBAAyB,CAAC;AAClD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,oxGAAA,EAAA,MAAA,EAAA,CAAA,qXAAA,CAAA,EAAA;8BAIM,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,IAAI,EAAA,CAAA;sBAAZ;;;METU,mBAAmB,CAAA;AACvB,IAAA,YAAY,GAAG,KAAK,CAAS,EAAE,CAAC;IAC9B,KAAK,GAAW,EAAE;IAClB,WAAW,GAAW,EAAE;IACxB,QAAQ,GAAY,KAAK;IACzB,UAAU,GAAgC,IAAI;IAC9C,SAAS,GAAY,KAAK;IAC1B,OAAO,GAAY,KAAK;IACxB,QAAQ,GAAY,IAAI;IACxB,UAAU,GAAY,KAAK;IAC3B,WAAW,GAAW,gBAAgB;IACtC,SAAS,GAAW,MAAM;IAC1B,WAAW,GAAW,QAAQ;IAC9B,WAAW,GAAW,QAAQ;IAC9B,IAAI,GAAiC,QAAQ;AAC7C,IAAA,QAAQ,GAAW,EAAE,CAAC;AACrB,IAAA,cAAc,GAAG,IAAI,YAAY,EAAU,CAAC;AAC9B,IAAA,cAAc;AACd,IAAA,cAAc;;AAEtC,IAAA,QAAQ,GAAG,CAAC,KAAa,KAAI,GAAG;AAChC,IAAA,SAAS,GAAG,MAAK,GAAG;AAEpB,IAAA,UAAU,CAAC,KAAa,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,IAAI,EAAE;;AAG7B,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAGpB,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;;AAGrB,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU;;AAG5B,IAAA,gBAAgB,CAAC,KAAa,EAAA;AAC5B,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;AAC/B,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QACpB,IAAI,CAAC,SAAS,EAAE;;AAGlB,IAAA,IAAI,aAAa,GAAA;QACf,OAAO,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI;;uGA/C/D,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EARnB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,mBAAmB,CAAC;AAClD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;SACF,ECpBH,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,u7JAkIA,EDxHY,MAAA,EAAA,CAAA,ysBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,kWAAE,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,OAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,WAAA,EAAA,WAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,wCAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAY3E,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAf/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,cACX,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,CAAC,iBAGvE,iBAAiB,CAAC,IAAI,EAC3B,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,yBAAyB,CAAC;AAClD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,u7JAAA,EAAA,MAAA,EAAA,CAAA,ysBAAA,CAAA,EAAA;8BAIQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACS,cAAc,EAAA,CAAA;sBAAvB;gBACuB,cAAc,EAAA,CAAA;sBAArC,YAAY;uBAAC,QAAQ;gBACE,cAAc,EAAA,CAAA;sBAArC,YAAY;uBAAC,QAAQ;;;MElBX,qBAAqB,CAAA;AACzB,IAAA,YAAY,GAAG,KAAK,CAAS,EAAE,CAAC;IAC9B,KAAK,GAAW,EAAE;IAClB,WAAW,GAAW,EAAE;IACxB,QAAQ,GAAY,KAAK;IACzB,UAAU,GAAgC,IAAI;IAC9C,SAAS,GAAY,KAAK;IAC1B,OAAO,GAAY,KAAK;IACxB,MAAM,GAAW,UAAU;AAC3B,IAAA,OAAO;AACP,IAAA,OAAO;IACP,QAAQ,GAAY,KAAK;IACzB,KAAK,GAAY,KAAK;IACtB,QAAQ,GAAY,KAAK;IACzB,QAAQ,GAAY,KAAK;IACzB,SAAS,GAAY,KAAK;IAC1B,WAAW,GAAY,KAAK;IAC5B,UAAU,GAAY,KAAK;IAE3B,SAAS,GAAyB,IAAI;AACrC,IAAA,eAAe,GAAG,IAAI,YAAY,EAAwB;AAEpE,IAAA,QAAQ,GAAG,CAAC,KAA2B,KAAI,GAAG;AAC9C,IAAA,SAAS,GAAG,MAAK,GAAG;AAEpB,IAAA,UAAU,CAAC,KAA2B,EAAA;AACpC,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,IAAI,IAAI;;AAGhC,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAGpB,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;;AAGrB,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU;;AAG5B,IAAA,YAAY,CAAC,KAA2B,EAAA;AACtC,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;AAChC,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QACpB,IAAI,CAAC,SAAS,EAAE;;uGA7CP,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EARrB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,qBAAqB,CAAC;AACpD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;SACF,ECpBH,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,i6GAmFE,EDxEU,MAAA,EAAA,CAAA,2OAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,kWAAE,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,SAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,UAAA,EAAA,6BAAA,EAAA,WAAA,EAAA,UAAA,EAAA,eAAA,EAAA,cAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,sBAAA,EAAA,SAAA,EAAA,eAAA,EAAA,WAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,MAAA,EAAA,SAAA,EAAA,SAAA,EAAA,eAAA,EAAA,cAAA,EAAA,WAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,SAAA,EAAA,cAAA,EAAA,cAAA,EAAA,eAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,wCAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAW7E,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAfjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,cACd,IAAI,EAAA,aAAA,EACA,iBAAiB,CAAC,IAAI,WAC7B,CAAC,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,CAAC,EAG9E,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,2BAA2B,CAAC;AACpD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,i6GAAA,EAAA,MAAA,EAAA,CAAA,2OAAA,CAAA,EAAA;8BAIQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,MAAM,EAAA,CAAA;sBAAd;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBAEQ,SAAS,EAAA,CAAA;sBAAjB;gBACS,eAAe,EAAA,CAAA;sBAAxB;;;MEtBU,mBAAmB,CAAA;AACvB,IAAA,YAAY,GAAG,KAAK,CAAS,EAAE,CAAC;AAC9B,IAAA,KAAK;IACL,OAAO,GAAoC,EAAE;IAC7C,KAAK,GAAW,EAAE;IAClB,QAAQ,GAAY,KAAK;IACzB,MAAM,GAAY,IAAI;IACtB,OAAO,GAAY,KAAK;IACxB,IAAI,GAAiC,QAAQ;IAC7C,KAAK,GAAa,EAAE;AAEnB,IAAA,WAAW,GAAG,IAAI,YAAY,EAAY;AAEpD,IAAA,QAAQ,GAAG,CAAC,KAAU,KAAI,GAAG;AAC7B,IAAA,SAAS,GAAG,MAAK,GAAG;AAEpB,IAAA,IAAI,aAAa,GAAA;QACf,OAAO,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI;;AAG1E,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,KAAK;;aACtB;AACL,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE;;;AAI5B,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAGpB,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;;IAGrB,WAAW,CAAC,CAAM,EAAE,KAAc,EAAA;AAChC,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;;aACpB;YACL,IAAI,CAAC,KAAK,GAAG;AACX,kBAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AAC/D,kBAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC;YAE3C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AACjC,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;;QAG3B,IAAI,CAAC,SAAS,EAAE;;AAGlB,IAAA,SAAS,CAAC,KAAa,EAAA;QACrB,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;;uGArDrD,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EARnB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,mBAAmB,CAAC;AAClD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClBH,sxDA6CA,EDrCY,MAAA,EAAA,CAAA,0cAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,kWAAE,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,qCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,MAAA,EAAA,aAAA,EAAA,cAAA,EAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,YAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAYxC,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAf/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EACX,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,WAAW,EAAE,cAAc,CAAC,EAAA,aAAA,EACrC,iBAAiB,CAAC,IAAI,EAG1B,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,yBAAyB,CAAC;AAClD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,sxDAAA,EAAA,MAAA,EAAA,CAAA,0cAAA,CAAA,EAAA;8BAIQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,MAAM,EAAA,CAAA;sBAAd;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBAES,WAAW,EAAA,CAAA;sBAApB;;;MEXU,sBAAsB,CAAA;AAC1B,IAAA,YAAY,GAAG,KAAK,CAAS,EAAE,CAAC;IAC9B,OAAO,GAAoC,EAAE;IAC7C,KAAK,GAAW,EAAE;IAClB,QAAQ,GAAY,KAAK;IACzB,OAAO,GAAY,KAAK;IACxB,IAAI,GAAiC,QAAQ;IAC7C,KAAK,GAAW,EAAE;IAClB,KAAK,GAAW,EAAE;IAClB,SAAS,GAAqB,QAAQ;AACrC,IAAA,WAAW,GAAG,IAAI,YAAY,EAAU;AAElD,IAAA,QAAQ,GAAG,CAAC,KAAU,KAAI,GAAG;AAC7B,IAAA,SAAS,GAAG,MAAK,GAAG;AAEpB,IAAA,IAAI,aAAa,GAAA;QACf,OAAO,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI;;AAG1E,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;AAGpB,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAGpB,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;;AAGrB,IAAA,YAAY,CAAC,KAAa,EAAA;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;QAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AACjC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,SAAS,EAAE;;uGAnCP,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,EARtB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,sBAAsB,CAAC;AACrD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClBH,4kDAwCE,EDhCU,MAAA,EAAA,CAAA,yZAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,kWAAE,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,OAAA,EAAA,YAAA,EAAA,WAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAY3C,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAflC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EACf,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,WAAW,EAAE,iBAAiB,CAAC,EAAA,aAAA,EACxC,iBAAiB,CAAC,IAAI,EAG1B,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,4BAA4B,CAAC;AACrD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,4kDAAA,EAAA,MAAA,EAAA,CAAA,yZAAA,CAAA,EAAA;8BAIQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACS,WAAW,EAAA,CAAA;sBAApB;;;MEPU,sBAAsB,CAAA;AAC1B,IAAA,YAAY,GAAG,KAAK,CAAS,EAAE,CAAC;IAC9B,OAAO,GAAU,EAAE;IACnB,QAAQ,GAAW,OAAO;IAC1B,QAAQ,GAAW,OAAO;IAC1B,WAAW,GAAW,qBAAqB;IAC3C,iBAAiB,GAAW,CAAC;IAC7B,QAAQ,GAAY,KAAK;IACzB,MAAM,GAAY,KAAK;IACvB,QAAQ,GAAW,MAAM;IACzB,SAAS,GAAY,KAAK;IAC1B,UAAU,GAAgC,IAAI;IAC9C,SAAS,GAAY,KAAK;IAC1B,OAAO,GAAY,KAAK;IACxB,IAAI,GAAiC,QAAQ;IAC7C,aAAa,GAAY,KAAK;IAC9B,cAAc,GAAU,EAAE;AACzB,IAAA,oBAAoB,GAAG,IAAI,YAAY,EAAS;AAE1D,IAAA,IAAI,aAAa,GAAA;QACf,OAAO,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI;;AAI1E,IAAA,IAAI,eAAe,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;;IAEpF,eAAe,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AACxB,YAAA,IAAI,CAAC,cAAc,GAAG,EAAE;;aACnB;YACL,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;;AAEzE,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC;;IAG/C,aAAa,GAAA;QACX,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM;;AAI3D,IAAA,QAAQ,GAAG,CAAC,KAAU,KAAI,GAAG;AAC7B,IAAA,SAAS,GAAG,MAAK,GAAG;AAEpB,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,IAAI,EAAE;;AAGnC,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAGpB,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;;AAGrB,IAAA,mBAAmB,CAAC,KAAU,EAAA;AAC5B,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK;AAC3B,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC;AACrC,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QACpB,IAAI,CAAC,SAAS,EAAE;;uGA5DP,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,EARtB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,sBAAsB,CAAC;AACrD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECrBH,gzLA0IE,EAAA,MAAA,EAAA,CAAA,oYAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED9HU,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,WAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,cAAA,EAAA,MAAA,EAAA,eAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,aAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,cAAA,EAAA,MAAA,EAAA,WAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,SAAA,EAAA,aAAA,EAAA,UAAA,EAAA,WAAA,EAAA,cAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,aAAA,EAAA,aAAA,EAAA,YAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,wCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,qCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,MAAA,EAAA,aAAA,EAAA,cAAA,EAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,YAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAW9F,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAflC,SAAS;+BACE,gBAAgB,EAAA,UAAA,EACd,IAAI,EACD,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,CAAE,EAGhG,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,4BAA4B,CAAC;AACrD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,gzLAAA,EAAA,MAAA,EAAA,CAAA,oYAAA,CAAA,EAAA;8BAIQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,iBAAiB,EAAA,CAAA;sBAAzB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,MAAM,EAAA,CAAA;sBAAd;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,aAAa,EAAA,CAAA;sBAArB;gBACQ,cAAc,EAAA,CAAA;sBAAtB;gBACS,oBAAoB,EAAA,CAAA;sBAA7B;;;METU,gBAAgB,CAAA;AAC3B,IAAA,KAAK,GAAG,MAAM,CAAC,iBAAiB,CAAC;IACxB,OAAO,GAA2G,EAAE;IAAY,IAAI,GAAU,EAAE;IAChJ,SAAS,GAAY,KAAK;IAC1B,IAAI,GAAW,EAAE;IACjB,OAAO,GAAY,KAAK;IACxB,UAAU,GAAY,IAAI;IAC1B,UAAU,GAAY,KAAK;IAC3B,UAAU,GAAY,KAAK;AACf,IAAA,EAAE;AACoB,IAAA,YAAY;AACd,IAAA,UAAU;AAEnD,IAAA,aAAa;AAEb,IAAA,IAAI,kBAAkB,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC;;IAG3C,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK;AAC5C,YAAA,KAAK,EAAE,GAAG,CAAC,kBAAkB,IAAI,GAAG,CAAC,MAAM;YAC3C,OAAO,EAAE,GAAG,CAAC;AACd,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;;;AAI5B,IAAA,YAAY,CAAC,KAAY,EAAA;AACvB,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAA0B;AAC9C,QAAA,IAAI,KAAK,IAAI,IAAI,CAAC,EAAE,EAAE;AACpB,YAAA,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,UAAU,CAAC;AACpD,YAAA,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;;;uGAjCnB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAhB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,EC/B7B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,SAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,MAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,IAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,i0FAyFA,EDhEY,MAAA,EAAA,CAAA,mQAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,EAAE,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,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,KAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,2BAAA,EAAA,+BAAA,EAAA,2BAAA,EAAA,uBAAA,EAAA,wBAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,0BAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,YAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,sBAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,YAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,UAAA,EAAA,aAAA,EAAA,MAAA,EAAA,eAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,MAAA,EAAA,cAAA,EAAA,WAAA,EAAA,WAAA,EAAA,eAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,4BAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,wBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,YAAA,EAAA,aAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,yBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,qBAAA,EAAA,wBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,SAAA,EAAA,UAAA,EAAA,WAAA,EAAA,UAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,aAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,eAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,WAAA,EAAA,mBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,UAAA,EAAA,SAAA,EAAA,aAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,WAAA,EAAA,WAAA,EAAA,OAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,eAAe,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,wCAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,eAAe,uIAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAMzF,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAT5B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,cACR,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,CAAC,EACtF,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,i0FAAA,EAAA,MAAA,EAAA,CAAA,mQAAA,CAAA,EAAA;8BAO5B,OAAO,EAAA,CAAA;sBAAf;gBAAwI,IAAI,EAAA,CAAA;sBAAZ;gBACxH,SAAS,EAAA,CAAA;sBAAjB;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACoB,EAAE,EAAA,CAAA;sBAAtB,SAAS;uBAAC,QAAQ;gBACwB,YAAY,EAAA,CAAA;sBAAtD,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;gBACA,UAAU,EAAA,CAAA;sBAAlD,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;;;MEpC5B,yBAAyB,CAAA;AAGjB,IAAA,WAAA;IAFQ,MAAM,GAAW,EAAE;AAE9C,IAAA,WAAA,CAAmB,WAA6B,EAAA;QAA7B,IAAW,CAAA,WAAA,GAAX,WAAW;;uGAHnB,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;gFAE4B,MAAM,EAAA,CAAA;sBAAhC,KAAK;uBAAC,kBAAkB;;;MCKd,oBAAoB,CAAA;AAC/B,IAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;IACtB,MAAM,GAAuF,EAAE;IAC/F,QAAQ,GAAY,KAAK;AACzB,IAAA,WAAW,GAA6B,IAAI,CAAC;AACV,IAAA,aAAa;IAGzD,SAAS,GAAG,KAAK;IAEjB,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE;AAC7B,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;;;IAI9C,kBAAkB,GAAA;QAChB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;AAC9C,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;;uGAlBf,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,sLAKd,yBAAyB,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjB5C,q9BAwBA,EDhBY,MAAA,EAAA,CAAA,uLAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,qMAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,mBAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,qCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,uCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,yCAAA,EAAA,CAAA,EAAA,CAAA;;2FAI5B,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,cACZ,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,eAAe,CAAC,EAAA,QAAA,EAAA,q9BAAA,EAAA,MAAA,EAAA,CAAA,uLAAA,CAAA,EAAA;8BAM/B,MAAM,EAAA,CAAA;sBAAd;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBAC2C,aAAa,EAAA,CAAA;sBAAxD,eAAe;uBAAC,yBAAyB;;;MEX/B,YAAY,CAAA;AAGJ,IAAA,QAAA;IAFH,KAAK,GAAW,EAAE;AAElC,IAAA,WAAA,CAAmB,QAA0B,EAAA;QAA1B,IAAQ,CAAA,QAAA,GAAR,QAAQ;;uGAHhB,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAZ,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,OAAA,EAAA,OAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAJxB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,SAAS;AACnB,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;gFAEiB,KAAK,EAAA,CAAA;sBAApB,KAAK;uBAAC,OAAO;;;MCKH,eAAe,CAAA;IACjB,IAAI,GAA4E,EAAE;IAClF,WAAW,GAAW,CAAC;IACvB,UAAU,GAAY,KAAK;AACL,IAAA,SAAS;IAExC,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAChE,YAAA,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;;;uGARd,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,SAAA,EAIT,YAAY,EChB/B,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,gwCA2CA,yDDnCY,YAAY,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,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,UAAU,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,MAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,GAAA,EAAA,QAAA,EAAA,OAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,YAAY,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAIrC,eAAe,EAAA,UAAA,EAAA,CAAA;kBAP3B,SAAS;+BACE,SAAS,EAAA,UAAA,EACP,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,UAAU,EAAE,YAAY,CAAC,EAAA,QAAA,EAAA,gwCAAA,EAAA;8BAKxC,IAAI,EAAA,CAAA;sBAAZ;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBAC8B,SAAS,EAAA,CAAA;sBAAvC,eAAe;uBAAC,YAAY;;;MEJlB,iBAAiB,CAAA;IACpB,QAAQ,GAAG,KAAK;AACxB,IAAA,IACI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,QAAQ;;IAGtB,IAAI,OAAO,CAAC,GAAY,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,GAAG;QACnB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;;;AAG9B,IAAA,aAAa,GAAG,IAAI,YAAY,EAAW;IAC5C,MAAM,GAAW,oBAAoB;IACrC,OAAO,GAAW,wBAAwB;IAC1C,KAAK,GAAW,OAAO;IACvB,KAAK,GAAY,IAAI;IACrB,QAAQ,GAAY,IAAI;AACxB,IAAA,QAAQ;IACR,WAAW,GAAY,KAAK;AAC3B,IAAA,KAAK,GAAG,IAAI,YAAY,EAAQ;;IAG1C,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;;uGAzBR,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,gTCZ9B,m1BAiCA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDzBY,YAAY,EAAE,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,8gCAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,UAAA,EAAA,SAAA,EAAA,aAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,WAAA,EAAA,WAAA,EAAA,OAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAIvC,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAP7B,SAAS;+BACE,WAAW,EAAA,UAAA,EACT,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC,EAAA,QAAA,EAAA,m1BAAA,EAAA;8BAO/C,OAAO,EAAA,CAAA;sBADV;gBAUS,aAAa,EAAA,CAAA;sBAAtB;gBACQ,MAAM,EAAA,CAAA;sBAAd;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACS,KAAK,EAAA,CAAA;sBAAd;;;MEgBU,qBAAqB,CAAA;AACf,IAAA,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;AACvC,IAAA,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;AACzC,IAAA,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC;IACtB,IAAI,GAAyB,UAAU;IACvC,UAAU,GAAY,KAAK;IAC3B,QAAQ,GAAY,KAAK;IACzB,WAAW,GAAW,QAAQ;IAC9B,WAAW,GAAW,QAAQ;IAC9B,GAAG,GAAW,+CAA+C;IAC7D,MAAM,GAAW,EAAE;IACnB,WAAW,GAAW,OAAO;AAC7B,IAAA,MAAM,GAAW,EAAE,CAAC;AACpB,IAAA,UAAU,GAA2C,EAAE,CAAC;IAEjE,QAAQ,GAAY,KAAK;IACzB,KAAK,GAAW,EAAE;IAClB,SAAS,GAAW,CAAC;IACrB,gBAAgB,GAAW,CAAC;AAClB,IAAA,QAAQ,GAAG,IAAI,YAAY,EAAO;AACrB,IAAA,WAAW;AAElC,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,QAAQ,IAAI,CAAC,UAAU;AACrB,YAAA,KAAK,KAAK;AACV,YAAA,KAAK,OAAO;AACV,gBAAA,OAAO,YAAY;AACrB,YAAA,KAAK,OAAO;AACV,gBAAA,OAAO,cAAc;AACvB,YAAA;AACE,gBAAA,OAAO,YAAY;;;AAIzB,IAAA,aAAa,CAAC,IAAU,EAAA;AACtB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI;AAEtB,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;AAAE,YAAA,OAAO,aAAa;AACnD,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;AAAE,YAAA,OAAO,aAAa;QACnD,IAAI,IAAI,KAAK,iBAAiB;AAAE,YAAA,OAAO,gBAAgB;AACvD,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;AACrD,YAAA,OAAO,gBAAgB;AACzB,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC7D,YAAA,OAAO,kBAAkB;AAC3B,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;AACtD,YAAA,OAAO,iBAAiB;AAC1B,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC9D,YAAA,OAAO,YAAY;AACrB,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AACrD,YAAA,OAAO,YAAY;QAErB,OAAO,YAAY,CAAC;;IAGtB,QAAQ,GAAA;QACN,IAAI,CAAC,kBAAkB,EAAE;;AAG3B,IAAA,OAAO,CAAC,IAAS,EAAA;AACf,QAAA,MAAM,GAAG,GAAG,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE;AACvD,QAAA,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;;IAG5D,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;;AAK3B,IAAA,YAAY,CAAC,KAAsB,EAAA;AACjC,QAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAK;AAChC,YAAA,IAAI,IAAI,CAAC,gBAAgB,IAAI,GAAG,EAAE;gBAChC,aAAa,CAAC,QAAQ,CAAC;AAEvB,gBAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;AAC9B,gBAAA,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE;AAC9B,oBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;;AAEvB,gBAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;AACtB,oBAAA,QAAQ,EAAE,SAAS;AACnB,oBAAA,OAAO,EAAE,OAAO;AAChB,oBAAA,MAAM,EAAE,8BAA8B;AACvC,iBAAA,CAAC;AAEF,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AACxB,gBAAA,IAAI,CAAC,WAAW,CAAC,aAAa,GAAG,EAAE;;iBAC/B;AACL,gBAAA,IAAI,CAAC,gBAAgB,IAAI,EAAE;;SAE9B,EAAE,EAAE,CAAC;;AAGR,IAAA,WAAW,CAAC,KAAU,EAAA;AACpB,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;AACtB,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,MAAM,EAAE,4BAA4B;AACrC,SAAA,CAAC;;AAEJ,IAAA,gBAAgB,CAAC,KAAU,EAAA;AACzB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;;IAGvD,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/B,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC;AAClB,QAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC;AACzB,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE;;IAGjB,kBAAkB,GAAA;AAChB,QAAA,QAAQ,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;AACnC,YAAA,KAAK,OAAO;AACV,gBAAA,IAAI,CAAC,MAAM,GAAG,4BAA4B;gBAC1C;AACF,YAAA,KAAK,KAAK;AACR,gBAAA,IAAI,CAAC,MAAM,GAAG,uBAAuB;gBACrC;AACF,YAAA,KAAK,OAAO;AACV,gBAAA,IAAI,CAAC,MAAM,GAAG,4BAA4B;gBAC1C;AACF,YAAA,KAAK,KAAK;AACR,gBAAA,IAAI,CAAC,MAAM;AACT,oBAAA,uEAAuE;gBACzE;AACF,YAAA;AACE,gBAAA,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;gBACjB;;;IAIN,MAAM,CAAC,KAAY,EAAE,QAAkB,EAAA;AACrC,QAAA,QAAQ,EAAE;;AAGZ,IAAA,kBAAkB,CAAC,QAAkB,EAAA;AACnC,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAClC,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;YACxB,IAAI,QAAQ,EAAE;gBACZ,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,QAAQ,CAAC;AACnC,gBAAA,IAAI,CAAC,KAAK,GAAG,CAAC,QAAQ,CAAC;;;AAI3B,QAAA,QAAQ,EAAE;AACV,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAE9B,YAAA,MAAM,SAAS,GAAG,QAAQ,GAAG,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,IAAI;AACjE,YAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;YACxB,IAAI,CAAC,SAAS,EAAE;AAEhB,YAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACzD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,GAAG,EAAE;;AAE7C,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;;AAGhC,IAAA,YAAY,CAAC,KAAU,EAAA;QACrB,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;AAE1C,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,YAAY,EAAE;AAClC,YAAA,IAAI,CAAC,KAAK,GAAG,CAAC,YAAY,CAAC;AAC3B,YAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAC7D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,GAAG,EAAE;AAE3C,YAAA,MAAM,SAAS,GAAG,YAAY,EAAE,SAAS;AACzC,YAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;YACxB,IAAI,CAAC,SAAS,EAAE;;aACX;AACL,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,YAAY;AAC/B,YAAA,IAAI,CAAC,SAAS,GAAG,CAAC;YAClB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AAC1B,gBAAA,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxD,aAAC,CAAC;YACF,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,GAAG,EAAE;;;AAI/C,IAAA,UAAU,CAAC,KAAY,EAAE,IAAS,EAAE,cAAwB,EAAE,KAAa,EAAA;AACzE,QAAA,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC;AAC5B,QAAA,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,GAAG,EAAE;;AAG7C,IAAA,UAAU,CAAC,KAAa,EAAA;QACtB,MAAM,CAAC,GAAG,IAAI;QACd,MAAM,EAAE,GAAG,CAAC;QACZ,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa;QACnD,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,OAAO,KAAK;;AAEd,QAAA,IAAI,KAAK,KAAK,CAAC,EAAE;AACf,YAAA,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE;;QAExB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACnD,MAAM,aAAa,GAAG,UAAU,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QACtE,OAAO,CAAA,EAAG,aAAa,CAAI,CAAA,EAAA,KAAK,CAAC,CAAC,CAAC,EAAE;;IAEvC,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE;AACf,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC;AAClB,QAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC;AACzB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AAErB,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;;;AAI5B,IAAA,QAAQ,GAAQ,MAAK,GAAG;AACxB,IAAA,SAAS,GAAQ,MAAK,GAAG;AAEzB,IAAA,UAAU,CAAC,KAAU,EAAA;QACnB,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;;AAItB,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAGpB,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;;uGAlOV,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EATrB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,GAAA,EAAA,KAAA,EAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA;YACT,cAAc;AACd,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,qBAAqB,CAAC;AACpD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC9CH,4gOA+LA,EAAA,MAAA,EAAA,CAAA,gEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDjKI,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,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,UAAA,EAAA,IAAA,EACZ,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,KAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,+BAAA,EAAA,8BAAA,EAAA,+BAAA,EAAA,8BAAA,EAAA,+BAAA,EAAA,gCAAA,EAAA,OAAA,EAAA,YAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,SAAA,EAAA,cAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,eAAA,EAAA,cAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAChB,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,UAAA,EAAA,SAAA,EAAA,aAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,WAAA,EAAA,WAAA,EAAA,OAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,KAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,YAAA,EAAA,YAAA,EAAA,MAAA,EAAA,OAAA,EAAA,YAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACX,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,WAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACjB,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,KAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAaF,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAvBjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,cACd,IAAI,EAAA,aAAA,EACD,iBAAiB,CAAC,IAAI,EAC5B,OAAA,EAAA;wBACP,YAAY;wBACZ,gBAAgB;wBAChB,YAAY;wBACZ,WAAW;wBACX,iBAAiB;wBACjB,WAAW;qBACZ,EAGU,SAAA,EAAA;wBACT,cAAc;AACd,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,2BAA2B,CAAC;AACpD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,4gOAAA,EAAA,MAAA,EAAA,CAAA,gEAAA,CAAA,EAAA;8BAMQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,GAAG,EAAA,CAAA;sBAAX;gBACQ,MAAM,EAAA,CAAA;sBAAd;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,MAAM,EAAA,CAAA;sBAAd;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBAMS,QAAQ,EAAA,CAAA;sBAAjB;gBACsB,WAAW,EAAA,CAAA;sBAAjC,SAAS;uBAAC,UAAU;;;MEzDV,kBAAkB,CAAA;IACpB,QAAQ,GAAqE,MAAM;IACnF,IAAI,GAAW,EAAE;IACjB,IAAI,GAAW,EAAE;AACjB,IAAA,OAAO;IACP,IAAI,GAA2B,EAAE;IACjC,QAAQ,GAAY,KAAK;uGANvB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,ECX/B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,uLAQA,EDDY,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,8BAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,YAAA,EAAA,UAAA,EAAA,MAAA,EAAA,WAAA,EAAA,MAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAI1B,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAP9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,cACV,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,aAAa,CAAC,EAAA,QAAA,EAAA,uLAAA,EAAA;8BAK7B,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;;;AEjBH;MAwBa,gBAAgB,CAAA;AACV,IAAA,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;IAC/C,GAAG,GAAW,SAAS;IACvB,QAAQ,GAOF,WAAW;AAE1B,IAAA,IAAI,CACF,IAAsE,EACtE,OAAe,EACf,MAAc,EAAA;AAEd,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;AACtB,YAAA,QAAQ,EAAE,IAAI;YACd,OAAO;YACP,MAAM;AACN,YAAA,IAAI,EAAE,IAAI;AACX,SAAA,CAAC;;AAGJ,IAAA,YAAY,CACV,IAAsE,EACtE,OAAe,EACf,MAAc,EACd,GAAW,EAAA;AAEX,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;AACtB,YAAA,QAAQ,EAAE,IAAI;YACd,OAAO;YACP,MAAM;YACN,GAAG;AACH,YAAA,IAAI,EAAE,IAAI;AACX,SAAA,CAAC;;AAGJ,IAAA,SAAS,CAAC,QAAwB,EAAA;AAChC,QAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CACxB,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,MAAM;AACzB,YAAA,GAAG,OAAO;AACV,YAAA,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,SAAS;SACxC,CAAC,CAAC,CACJ;;uGA9CQ,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,KAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAFhB,CAAC,cAAc,CAAC,0BCtB7B,+GAKA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDeY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,KAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,YAAA,EAAA,YAAA,EAAA,MAAA,EAAA,OAAA,EAAA,YAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAIxB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAP5B,SAAS;+BACE,UAAU,EAAA,UAAA,EACR,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,WAAW,CAAC,EAAA,SAAA,EAEzB,CAAC,cAAc,CAAC,EAAA,QAAA,EAAA,+GAAA,EAAA;8BAIlB,GAAG,EAAA,CAAA;sBAAX;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;;;MEfU,sBAAsB,CAAA;IACxB,KAAK,CAAU;IACf,IAAI,GAAoC,aAAa;IACrD,MAAM,GAAW,MAAM;IACvB,QAAQ,GAAY,IAAI;AACxB,IAAA,UAAU;IACX,WAAW,GAA2B,EAAE;AACxC,IAAA,gBAAgB,GAAW,SAAS,CAAC;uGAPlC,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,ECZnC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,wVAcA,EDNY,MAAA,EAAA,CAAA,yLAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,mHAAE,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,WAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAI9B,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBARlC,SAAS;+BACE,iBAAiB,EAAA,UAAA,EACf,IAAI,EAAA,aAAA,EACA,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC7B,CAAC,YAAY,EAAE,iBAAiB,CAAC,EAAA,QAAA,EAAA,wVAAA,EAAA,MAAA,EAAA,CAAA,yLAAA,CAAA,EAAA;8BAKjC,KAAK,EAAA,CAAA;sBAAb;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,MAAM,EAAA,CAAA;sBAAd;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACO,WAAW,EAAA,CAAA;sBAAnB;gBACQ,gBAAgB,EAAA,CAAA;sBAAxB;;;MEPW,kBAAkB,CAAA;IACpB,IAAI,GAAW,MAAM;IACrB,WAAW,GAAW,GAAG;IACzB,IAAI,GAAW,aAAa;IAC5B,iBAAiB,GAAW,IAAI;uGAJ9B,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,ECZ/B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,IAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,gNAOA,EDAY,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,8BAAE,qBAAqB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,0DAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,aAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAKlC,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAR9B,SAAS;+BACE,YAAY,EAAA,UAAA,EACV,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,qBAAqB,CAAC,EAAA,aAAA,EAG/B,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,gNAAA,EAAA;8BAG5B,IAAI,EAAA,CAAA;sBAAZ;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,iBAAiB,EAAA,CAAA;sBAAzB;;;MENU,iBAAiB,CAAA;IACrB,2BAA2B,GAAW,yBAAyB;IAC/D,YAAY,GAAW,2CAA2C;AAClE,IAAA,aAAa,GAAG,CAAC,OAAoB,KAA6B;QACvE,MAAM,KAAK,GAAW,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;AACxD,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,OAAO;AACL,gBAAA,SAAS,EAAE,IAAI;aAChB;;AAEH,QAAA,OAAO,IAAI;AACb,KAAC;IAEM,YAAY,CAAC,IAAe,EAAE,KAAa,EAAA;AAChD,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO;;IAG7D,eAAe,CAAC,IAAe,EAAE,KAAa,EAAA;QACnD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;AAE/B,QAAA,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACvB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;YAC9B,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAc;AACpD,YAAA,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AACvB,YAAA,MAAM,cAAc,GAAG,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3D,YAAA,OAAO,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC;;aAC7C;AACL,YAAA,OAAO,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC;;;AAIvC,IAAA,sBAAsB,CAAC,OAA+B,EAAA;AAC5D,QAAA,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;AACnD,YAAA,OAAO,EAAE;;AAEX,QAAA,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM;QAC7B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YACrC,QAAQ,GAAG;AACT,gBAAA,KAAK,UAAU;AACb,oBAAA,OAAO,2BAA2B;AACpC,gBAAA,KAAK,mBAAmB;AACtB,oBAAA,OAAO,sCAAsC;AAC/C,gBAAA,KAAK,WAAW;oBACd,OAAO,CAAA,OAAA,EAAU,MAAM,CAAC,WAAW,CAAC,CAAC,cAAc,cAAc;AACnE,gBAAA,KAAK,WAAW;oBACd,OAAO,CAAA,OAAA,EAAU,MAAM,CAAC,WAAW,CAAC,CAAC,cAAc,cAAc;AACnE,gBAAA,KAAK,OAAO;AACV,oBAAA,OAAO,6BAA6B;AACtC,gBAAA,KAAK,SAAS;AACZ,oBAAA,OAAO,uBAAuB;;;AAGpC,QAAA,OAAO,EAAE;;IAGJ,uBAAuB,CAAC,MAAc,EAAE,MAAc,EAAA;QAC3D,OAAO,CAAC,SAA0B,KAA6B;YAC7D,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,KAAK;YAChD,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,KAAK;AAChD,YAAA,IAAI,WAAW,KAAK,WAAW,EAAE;AAC/B,gBAAA,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACpD,gBAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;;YAE3B,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC;AACtC,YAAA,OAAO,IAAI;AACb,SAAC;;IAEI,QAAQ,CAAC,IAAe,EAAE,KAAa,EAAA;QAC5C,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC;;uGApE/B,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cADJ,MAAM,EAAA,CAAA;;2FACnB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACTlC;;AAEG;;ACFH;;AAEG;;;;"}