{"version":3,"file":"ngx-french-toast.mjs","sources":["../../../projects/ngx-french-toast/src/lib/enums/enums.ts","../../../projects/ngx-french-toast/src/lib/toast.tokens.ts","../../../projects/ngx-french-toast/src/lib/french-toast.service.ts","../../../projects/ngx-french-toast/src/lib/utils/utils.ts","../../../projects/ngx-french-toast/src/lib/components/toasts/toast/toast.component.ts","../../../projects/ngx-french-toast/src/lib/components/toasts/toast/toast.component.html","../../../projects/ngx-french-toast/src/lib/components/toasts/toasts.component.ts","../../../projects/ngx-french-toast/src/lib/components/toasts/toasts.component.html","../../../projects/ngx-french-toast/src/lib/french-toast.module.ts","../../../projects/ngx-french-toast/src/lib/interfaces/interfaces.ts","../../../projects/ngx-french-toast/src/public-api.ts","../../../projects/ngx-french-toast/src/ngx-french-toast.ts"],"sourcesContent":["export enum ToastPosition {\n  TOP_RIGHT = 'top-right',\n  BOTTOM_RIGHT = 'bottom-right',\n  TOP_LEFT = 'top-left',\n  BOTTOM_LEFT = 'bottom-left'\n}\n\nexport enum ToastType {\n  SUCCESS = 'success',\n  DANGER = 'danger',\n  WARNING = 'warning',\n  INFO = 'info'\n}","import { InjectionToken } from '@angular/core';\nimport { ToastConfig } from './interfaces/interfaces';\n\nexport const TOAST_CONFIG = new InjectionToken<ToastConfig>('TOAST_CONFIG');","import { Inject, Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { ToastModel } from './interfaces/interfaces';\nimport { ToastInputModel } from './interfaces/interfaces';\nimport { ToastType } from './enums/enums';\nimport { ToastConfig } from './interfaces/interfaces';\nimport { TOAST_CONFIG } from './toast.tokens';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ToastService {\n\n  toast: BehaviorSubject<ToastModel | null> = new BehaviorSubject<ToastModel | null>(null);\n  clearAll: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n  private duration: number = 7000;\n\n  constructor(@Inject(TOAST_CONFIG) private config: ToastConfig) {\n    if (this.config?.defaultDuration) {\n      this.duration = this.config.defaultDuration;\n    }\n  }\n\n  private addToast(toastInput: ToastInputModel, type: ToastType): void {\n    const newToast: ToastModel = {\n      _id: toastInput._id,\n      title: toastInput.title,\n      content: toastInput.content,\n      isVisible: true,\n      duration: toastInput.duration,\n      icon: toastInput?.icon ?? null,\n      type,\n      customIcon: toastInput.customIcon,\n      component: toastInput.component,\n    };\n    this.toast.next(newToast);\n  }\n\n  private handleToast(toastInput: ToastInputModel, type: ToastType): void {\n    toastInput._id = toastInput?._id ?? this.getUniqueId(5);\n    toastInput.duration = toastInput?.duration ?? this.duration;\n    this.addToast(toastInput, type);\n  }\n\n  success(toastInput: ToastInputModel): void {\n    this.handleToast(toastInput, ToastType.SUCCESS);\n  }\n\n  danger(toastInput: ToastInputModel): void {\n    this.handleToast(toastInput, ToastType.DANGER);\n  }\n\n  info(toastInput: ToastInputModel): void {\n    this.handleToast(toastInput, ToastType.INFO);\n  }\n\n  warning(toastInput: ToastInputModel): void {\n    this.handleToast(toastInput, ToastType.WARNING);\n  }\n\n  clearAllToasts(): void {\n    this.clearAll.next(true);\n  }\n\n  private getUniqueId(parts: number): string {\n    const stringArr = [];\n    for(let i = 0; i< parts; i++){\n      // tslint:disable-next-line:no-bitwise\n      const S4 = (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\n      stringArr.push(S4);\n    }\n    return stringArr.join('');\n  }\n}","// Generated by ChatGPT @ Jun 2023\nexport function darkenHexColor(hexColor: string, factor: number): string {\n  // Remove the '#' symbol from the HEX color code\n  hexColor = hexColor.replace('#', '');\n\n  // Convert the HEX color code to RGB values\n  const r = parseInt(hexColor.substring(0, 2), 16);\n  const g = parseInt(hexColor.substring(2, 4), 16);\n  const b = parseInt(hexColor.substring(4, 6), 16);\n\n  // Convert RGB to HSL\n  const hsl = rgbToHsl(r, g, b);\n\n  // Darken the lightness component\n  const darkenedHsl = { ...hsl, l: hsl.l * factor };\n\n  // Add a small amount of black\n  const blackFactor = 0.125; // Adjust the value to control the amount of black added\n  const darkenedL = darkenedHsl.l * (1 - blackFactor);\n\n  // Convert HSL back to RGB\n  const rgb = hslToRgb(darkenedHsl.h, darkenedHsl.s, darkenedL);\n\n  // Convert the RGB values back to HEX\n  const darkenedHex = `#${padZero(rgb.r.toString(16))}${padZero(rgb.g.toString(16))}${padZero(rgb.b.toString(16))}`;\n\n  return darkenedHex;\n}\n\nfunction rgbToHsl(r: number, g: number, b: number): { h: number; s: number; l: number } {\n  r /= 255;\n  g /= 255;\n  b /= 255;\n\n  const max = Math.max(r, g, b);\n  const min = Math.min(r, g, b);\n  let h = 0,\n    s = 0,\n    l = (max + min) / 2;\n\n  if (max !== min) {\n    const d = max - min;\n    s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n    switch (max) {\n      case r:\n        h = (g - b) / d + (g < b ? 6 : 0);\n        break;\n      case g:\n        h = (b - r) / d + 2;\n        break;\n      case b:\n\n        h = (r - g) / d + 4;\n        break;\n    }\n\n    h /= 6;\n  }\n  return { h, s, l };\n}\n\nfunction hslToRgb(h: number, s: number, l: number): { r: number; g: number; b: number } {\n  let r, g, b;\n\n  if (s === 0) {\n    r = g = b = l;\n  } else {\n    const hue2rgb = (p: number, q: number, t: number): number => {\n      if (t < 0) t += 1;\n      if (t > 1) t -= 1;\n      if (t < 1 / 6) return p + (q - p) * 6 * t;\n      if (t < 1 / 2) return q;\n      if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n      return p;\n    };\n\n    const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n    const p = 2 * l - q;\n\n    r = hue2rgb(p, q, h + 1 / 3) * 255;\n    g = hue2rgb(p, q, h) * 255;\n    b = hue2rgb(p, q, h - 1 / 3) * 255;\n  }\n\n  return {\n    r: Math.round(r),\n    g: Math.round(g),\n    b: Math.round(b),\n  };\n}\n\nfunction padZero(hex: string): string {\n  return hex.length === 1 ? `0${hex}` : hex;\n}","import { AfterContentInit, AfterViewInit, Component, ComponentRef, EventEmitter, HostListener, Inject, Input, OnDestroy, OnInit, Output, ViewChild, ViewContainerRef } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { ToastModel } from '../../../interfaces/interfaces';\nimport { ToastConfig } from '../../../interfaces/interfaces';\nimport { TOAST_CONFIG } from '../../../toast.tokens';\nimport { ToastPosition } from '../../../enums/enums';\nimport { darkenHexColor } from '../../../utils/utils';\n\n@Component({\n  selector: 'app-toast',\n  templateUrl: './toast.component.html',\n  styleUrls: ['./toast.component.scss', '../../../styles/common-styles.scss'],\n})\nexport class ToastComponent implements OnInit, AfterContentInit, AfterViewInit, OnDestroy {\n  @HostListener(\"click\", [\"$event\"])\n  public onClick(event: any): void {\n    event.stopPropagation();\n  }\n  @ViewChild('container', { read: ViewContainerRef }) container!: ViewContainerRef;\n  @Input() toast!: ToastModel;\n  @Input() currentTheme!: string;\n  @Output() control: EventEmitter<ToastModel> = new EventEmitter<ToastModel>();\n  isVisible: boolean = false;\n  duration!: number;\n  remainingTime!: number;\n  timeout!: number;\n  resumeTime!: Date;\n  component!: ComponentRef<any>;\n  subs!: Subscription;\n  svgUrlIsFromSprite: boolean = false;\n  position: ToastPosition = ToastPosition.BOTTOM_RIGHT;\n  bottomRight: ToastPosition = ToastPosition.BOTTOM_RIGHT;\n  bottomLeft: ToastPosition = ToastPosition.BOTTOM_LEFT;\n  topRight: ToastPosition = ToastPosition.TOP_RIGHT;\n  topLeft: ToastPosition = ToastPosition.TOP_LEFT;\n  colors: {\n    success?: string;\n    danger?: string;\n    warning?: string;\n    info?: string;\n  } = {};\n  linearGradient: string = '';\n  toastConfig!: ToastConfig;\n\n  constructor(@Inject(TOAST_CONFIG) private config: ToastConfig) {\n    this.toastConfig = config;\n    if (this.config.position) {\n      this.position = this.config.position;\n    }\n  }\n\n  ngAfterViewInit(): void {\n    if (this.toast.component) {\n      this.createDynamicToast();\n    }\n  }\n\n  ngOnInit(): void {\n    if (this.toastConfig?.colors) {\n      this.getColors();\n    }\n    this.duration = Number(this.toast.duration);\n    this.remainingTime = Number(this.toast.duration);\n    this.resumeTime = new Date();\n    this.svgUrlIsFromSprite = this.toast.icon?.includes('.svg#') as boolean;\n    this.timeout = window.setTimeout(() => {\n      this.destroyToast();\n    }, this.duration);\n  }\n\n  ngAfterContentInit(): void {\n    setTimeout(() => {\n      this.isVisible = true;\n    }, 10);\n  }\n\n  ngOnDestroy(): void {\n    if (this.subs) this.subs.unsubscribe();\n  }\n\n  createDynamicToast(): void {\n    this.container.clear();\n    setTimeout(() => {\n      this.component = this.container.createComponent(this.toast.component);\n      this.component.instance.content = this.toast.content;\n      this.subs = this.component.instance?.destroyToast?.subscribe({\n        next: (res: boolean) => {\n          if (res) {\n            this.destroyToast();\n          }\n        }\n      })\n    }, 0);\n  }\n\n  destroyToast() {\n    this.isVisible = false;\n    setTimeout(() => {\n      if (this.subs) this.subs.unsubscribe();\n      this.toast.isVisible = false;\n      this.control.emit(this.toast);\n    }, 100);\n  }\n\n  onMouseEnter() {\n    clearTimeout(this.timeout);\n    const diff = new Date().getTime() - this.resumeTime.getTime();\n    this.remainingTime -= diff;\n  }\n\n  onMouseLeave() {\n    this.resumeTime = new Date();\n    this.timeout = window.setTimeout(() => {\n      this.destroyToast();\n    }, this.remainingTime);\n  }\n\n  getColors(): void {\n    const colorHexCode: string = this.toastConfig?.colors?.[this.toast.type] as string;\n    if (!colorHexCode) return;\n    const darkenedColorHexCode = darkenHexColor(colorHexCode as string, .725)\n    this.linearGradient = `linear-gradient(45deg, ${darkenedColorHexCode}, ${colorHexCode})`;\n  }\n}","<div (click)=\"destroyToast()\" [class.visible]=\"isVisible\" class=\"toast-container\" [class]=\"toast.type\" [ngClass]=\"{\n  'right': position === bottomRight || position === topRight,\n  'left': position === bottomLeft || position === topLeft\n}\" (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\" [id]=\"toast._id\" [style.background]=\"linearGradient\">\n  <div class=\"toast-timer\" [style]=\"'--animation-speed: ' + duration/1000 + 's'\"></div>\n  <div class=\"toast-group\">\n    <div class=\"toast-group__top\" [ngClass]=\"toast.icon ? 'has-icon' : ''\">\n      <div class=\"toast-group__icon\" *ngIf=\"toast.icon\">\n        <svg *ngIf=\"svgUrlIsFromSprite\">\n          <use [attr.xlink:href]=\"toast.icon\"></use>\n        </svg>\n        <img [src]=\"toast.icon\" *ngIf=\"!svgUrlIsFromSprite\">\n      </div>\n      <p class=\"toast-title\">{{ toast.title }}</p>\n    </div>\n    <div class=\"toast-group__bottom\">\n      <p class=\"toast-content\" *ngIf=\"!toast?.component\">{{ toast.content }}</p>\n      <ng-template *ngIf=\"toast?.component\" #container></ng-template>\n    </div>\n  </div>\n</div>","\nimport {\n  AfterViewInit,\n  Component,\n  Inject,\n  OnDestroy,\n  OnInit,\n  QueryList,\n  ViewChildren\n} from '@angular/core';\nimport { delay, filter, startWith, Subscription } from 'rxjs';\nimport { ToastModel } from '../../interfaces/interfaces';\nimport { ToastComponent } from './toast/toast.component';\nimport { ToastService } from '../../french-toast.service';\nimport { TOAST_CONFIG } from '../../toast.tokens';\nimport { ToastConfig } from '../../interfaces/interfaces';\nimport { ToastPosition } from '../../enums/enums';\n\n@Component({\n  selector: 'french-toast',\n  templateUrl: './toasts.component.html',\n  styleUrls: ['./toasts.component.scss', '../../styles/common-styles.scss'],\n})\nexport class ToastsComponent implements OnInit, AfterViewInit, OnDestroy {\n  toasts: ToastModel[] = [];\n  @ViewChildren(ToastComponent) toastsComponents!: QueryList<ToastComponent>;\n  subs!: Subscription;\n  position: ToastPosition = ToastPosition.BOTTOM_RIGHT;\n  bottomRight: ToastPosition = ToastPosition.BOTTOM_RIGHT;\n  bottomLeft: ToastPosition = ToastPosition.BOTTOM_LEFT;\n  topRight: ToastPosition = ToastPosition.TOP_RIGHT;\n  topLeft: ToastPosition = ToastPosition.TOP_LEFT;\n\n  constructor(\n    private toastService: ToastService,\n    @Inject(TOAST_CONFIG) private config: ToastConfig\n  ) {\n    if (this.config.position) {\n      this.position = this.config.position;\n    }\n  }\n\n  ngOnInit(): void {\n    this.getToasts();\n  }\n\n  ngOnDestroy(): void {\n    this.subs.unsubscribe();\n  }\n\n  ngAfterViewInit(): void {\n    this.subs = this.toastsComponents.changes\n      .pipe(startWith(''))\n      .pipe(delay(0))\n      .subscribe({\n        next: () => {\n          if (this.toastsComponents.toArray().length > 3) {\n            this.toastsComponents.toArray()[0].destroyToast();\n          }\n        },\n      });\n  }\n\n  getToasts(): void {\n    this.subs = this.toastService.toast\n      .pipe(filter((toast) => !!toast))\n      .subscribe({\n        next: (toast) => {\n          const toastElement: ToastModel = toast as ToastModel;\n          if (this.toasts.some((tst) => tst?.component) && !toast?.component) {\n            const index = this.toasts.indexOf(\n              this.toasts.find((e) => e.component) as ToastModel\n            );\n            this.toasts.splice(index, 0, toastElement);\n            return;\n          }\n          this.toasts.push(toast as ToastModel);\n        },\n      });\n\n    this.subs = this.toastService.clearAll.subscribe({\n      next: (res) => {\n        if (res) {\n          this.toastsComponents.toArray().forEach((e) => {\n            e.destroyToast();\n          });\n        }\n      },\n    });\n  }\n\n  control(toast: ToastModel): void {\n    const index = this.toasts.indexOf(toast);\n    this.toasts.splice(index, 1);\n  }\n}\n","<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link href=\"https://fonts.googleapis.com/css2?family=Athiti:wght@200;300;400;500;600;700&display=swap\" rel=\"stylesheet\">\n\n<div class=\"toasts-container\" *ngIf=\"toasts.length\" [ngClass]=\"{\n  'bottom-right': position === bottomRight,\n  'bottom-left': position === bottomLeft,\n  'top-left': position === topLeft,\n  'top-right': position === topRight\n }\">\n  <ng-container *ngFor=\"let toast of toasts\">\n    <app-toast *ngIf=\"toast?.isVisible\" [toast]=\"toast\" (control)=\"control($event)\"></app-toast>\n  </ng-container>\n</div>","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { ToastsComponent } from './components/toasts/toasts.component';\nimport { ToastComponent } from './components/toasts/toast/toast.component';\nimport { CommonModule } from '@angular/common';\nimport { ToastConfig } from './interfaces/interfaces';\nimport { TOAST_CONFIG } from './toast.tokens';\nimport { ToastPosition } from './enums/enums';\n\n@NgModule({\n  declarations: [\n    ToastsComponent,\n    ToastComponent\n  ],\n  imports: [\n    CommonModule\n  ],\n  exports: [\n    ToastsComponent\n  ]\n})\n\nexport class FrenchToastModule {\n  static forRoot(config?: ToastConfig): ModuleWithProviders<FrenchToastModule> {\n    if (!config) {\n      config = {\n        position: ToastPosition.BOTTOM_RIGHT,\n        defaultDuration: 10000\n      }\n    }\n    return {\n      ngModule: FrenchToastModule,\n      providers: [\n        { provide: TOAST_CONFIG, useValue: config }\n      ]\n    };\n  }\n}","import { ToastPosition } from \"../enums/enums\";\n\nexport interface ToastConfig {\n  position?: ToastPosition | undefined;\n  defaultDuration?: number | undefined;\n  colors?: {\n    success?: string | undefined;\n    danger?: string | undefined;\n    warning?: string | undefined;\n    info?: string | undefined;\n  } | undefined;\n}\n\nexport interface ToastInputModel {\n  title: string;\n  content?: string;\n  duration?: number;\n  _id?: string;\n  icon?: string | null;\n  customIcon?: boolean;\n  component?: any;\n  functionality?: string;\n};\n\nexport interface ToastModel extends ToastInputModel {\n  isVisible: boolean;\n  type: 'success' | 'danger' | 'info' | 'warning';\n};","/*\n * Public API Surface of ngx-french-toast\n */\n\nexport * from './lib/french-toast.service';\nexport * from './lib/french-toast.module';\nexport * from './lib/components/toasts/toasts.component';\nexport * from './lib/components/toasts/toast/toast.component';\nexport * from './lib/enums/enums';\nexport * from './lib/interfaces/interfaces';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i3.ToastComponent"],"mappings":";;;;;;IAAY,cAKX;AALD,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,aAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,aAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,aAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC7B,CAAC,EALW,aAAa,KAAb,aAAa,GAKxB,EAAA,CAAA,CAAA,CAAA;IAEW,UAKX;AALD,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACf,CAAC,EALW,SAAS,KAAT,SAAS,GAKpB,EAAA,CAAA,CAAA;;ACTM,MAAM,YAAY,GAAG,IAAI,cAAc,CAAc,cAAc,CAAC;;MCQ9D,YAAY,CAAA;AAMvB,IAAA,WAAA,CAA0C,MAAmB,EAAA;QAAnB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAa;AAJ7D,QAAA,IAAA,CAAA,KAAK,GAAuC,IAAI,eAAe,CAAoB,IAAI,CAAC,CAAC;AACzF,QAAA,IAAA,CAAA,QAAQ,GAA6B,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;QACjE,IAAQ,CAAA,QAAA,GAAW,IAAI,CAAC;AAG9B,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE;YAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;AAC7C,SAAA;KACF;IAEO,QAAQ,CAAC,UAA2B,EAAE,IAAe,EAAA;AAC3D,QAAA,MAAM,QAAQ,GAAe;YAC3B,GAAG,EAAE,UAAU,CAAC,GAAG;YACnB,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,OAAO,EAAE,UAAU,CAAC,OAAO;AAC3B,YAAA,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,UAAU,CAAC,QAAQ;AAC7B,YAAA,IAAI,EAAE,UAAU,EAAE,IAAI,IAAI,IAAI;YAC9B,IAAI;YACJ,UAAU,EAAE,UAAU,CAAC,UAAU;YACjC,SAAS,EAAE,UAAU,CAAC,SAAS;SAChC,CAAC;AACF,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC3B;IAEO,WAAW,CAAC,UAA2B,EAAE,IAAe,EAAA;AAC9D,QAAA,UAAU,CAAC,GAAG,GAAG,UAAU,EAAE,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACxD,UAAU,CAAC,QAAQ,GAAG,UAAU,EAAE,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC;AAC5D,QAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;KACjC;AAED,IAAA,OAAO,CAAC,UAA2B,EAAA;QACjC,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;KACjD;AAED,IAAA,MAAM,CAAC,UAA2B,EAAA;QAChC,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;KAChD;AAED,IAAA,IAAI,CAAC,UAA2B,EAAA;QAC9B,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;KAC9C;AAED,IAAA,OAAO,CAAC,UAA2B,EAAA;QACjC,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;KACjD;IAED,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC1B;AAEO,IAAA,WAAW,CAAC,KAAa,EAAA;QAC/B,MAAM,SAAS,GAAG,EAAE,CAAC;QACrB,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAE,KAAK,EAAE,CAAC,EAAE,EAAC;;AAE3B,YAAA,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,OAAO,IAAI,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC3E,YAAA,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACpB,SAAA;AACD,QAAA,OAAO,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KAC3B;;AA7DU,YAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,kBAMH,YAAY,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AANrB,YAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFX,MAAM,EAAA,CAAA,CAAA;2FAEP,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAOc,MAAM;2BAAC,YAAY,CAAA;;;ACjBlC;AACgB,SAAA,cAAc,CAAC,QAAgB,EAAE,MAAc,EAAA;;IAE7D,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;;AAGrC,IAAA,MAAM,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACjD,IAAA,MAAM,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACjD,IAAA,MAAM,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;;IAGjD,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;;AAG9B,IAAA,MAAM,WAAW,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC;;AAGlD,IAAA,MAAM,WAAW,GAAG,KAAK,CAAC;IAC1B,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;;AAGpD,IAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;;AAG9D,IAAA,MAAM,WAAW,GAAG,CAAA,CAAA,EAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAG,EAAA,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAA,EAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AAElH,IAAA,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAS,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAA;IAC/C,CAAC,IAAI,GAAG,CAAC;IACT,CAAC,IAAI,GAAG,CAAC;IACT,CAAC,IAAI,GAAG,CAAC;AAET,IAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9B,IAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9B,IAAA,IAAI,CAAC,GAAG,CAAC,EACP,CAAC,GAAG,CAAC,EACL,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;IAEtB,IAAI,GAAG,KAAK,GAAG,EAAE;AACf,QAAA,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;QACpB,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;AAEpD,QAAA,QAAQ,GAAG;AACT,YAAA,KAAK,CAAC;gBACJ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClC,MAAM;AACR,YAAA,KAAK,CAAC;gBACJ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACpB,MAAM;AACR,YAAA,KAAK,CAAC;gBAEJ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACpB,MAAM;AACT,SAAA;QAED,CAAC,IAAI,CAAC,CAAC;AACR,KAAA;AACD,IAAA,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACrB,CAAC;AAED,SAAS,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAA;AAC/C,IAAA,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAEZ,IAAI,CAAC,KAAK,CAAC,EAAE;AACX,QAAA,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACf,KAAA;AAAM,SAAA;QACL,MAAM,OAAO,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,KAAY;YAC1D,IAAI,CAAC,GAAG,CAAC;gBAAE,CAAC,IAAI,CAAC,CAAC;YAClB,IAAI,CAAC,GAAG,CAAC;gBAAE,CAAC,IAAI,CAAC,CAAC;AAClB,YAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1C,YAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AAAE,gBAAA,OAAO,CAAC,CAAC;AACxB,YAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AAAE,gBAAA,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACpD,YAAA,OAAO,CAAC,CAAC;AACX,SAAC,CAAC;QAEF,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAChD,QAAA,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAEpB,QAAA,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;QACnC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;AAC3B,QAAA,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AACpC,KAAA;IAED,OAAO;AACL,QAAA,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAChB,QAAA,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAChB,QAAA,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;KACjB,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,GAAW,EAAA;AAC1B,IAAA,OAAO,GAAG,CAAC,MAAM,KAAK,CAAC,GAAG,CAAA,CAAA,EAAI,GAAG,CAAE,CAAA,GAAG,GAAG,CAAC;AAC5C;;MCjFa,cAAc,CAAA;AA+BzB,IAAA,WAAA,CAA0C,MAAmB,EAAA;QAAnB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAa;AAvBnD,QAAA,IAAA,CAAA,OAAO,GAA6B,IAAI,YAAY,EAAc,CAAC;QAC7E,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAO3B,IAAkB,CAAA,kBAAA,GAAY,KAAK,CAAC;AACpC,QAAA,IAAA,CAAA,QAAQ,GAAkB,aAAa,CAAC,YAAY,CAAC;AACrD,QAAA,IAAA,CAAA,WAAW,GAAkB,aAAa,CAAC,YAAY,CAAC;AACxD,QAAA,IAAA,CAAA,UAAU,GAAkB,aAAa,CAAC,WAAW,CAAC;AACtD,QAAA,IAAA,CAAA,QAAQ,GAAkB,aAAa,CAAC,SAAS,CAAC;AAClD,QAAA,IAAA,CAAA,OAAO,GAAkB,aAAa,CAAC,QAAQ,CAAC;QAChD,IAAM,CAAA,MAAA,GAKF,EAAE,CAAC;QACP,IAAc,CAAA,cAAA,GAAW,EAAE,CAAC;AAI1B,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;AAC1B,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;AACtC,SAAA;KACF;AAlCM,IAAA,OAAO,CAAC,KAAU,EAAA;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;KACzB;IAkCD,eAAe,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;YACxB,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC3B,SAAA;KACF;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE;YAC5B,IAAI,CAAC,SAAS,EAAE,CAAC;AAClB,SAAA;QACD,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AACjD,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAY,CAAC;QACxE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,MAAK;YACpC,IAAI,CAAC,YAAY,EAAE,CAAC;AACtB,SAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;KACnB;IAED,kBAAkB,GAAA;QAChB,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB,EAAE,EAAE,CAAC,CAAC;KACR;IAED,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,IAAI;AAAE,YAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;KACxC;IAED,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACtE,YAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AACrD,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,YAAY,EAAE,SAAS,CAAC;AAC3D,gBAAA,IAAI,EAAE,CAAC,GAAY,KAAI;AACrB,oBAAA,IAAI,GAAG,EAAE;wBACP,IAAI,CAAC,YAAY,EAAE,CAAC;AACrB,qBAAA;iBACF;AACF,aAAA,CAAC,CAAA;SACH,EAAE,CAAC,CAAC,CAAC;KACP;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,UAAU,CAAC,MAAK;YACd,IAAI,IAAI,CAAC,IAAI;AAAE,gBAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AACvC,YAAA,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;YAC7B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC/B,EAAE,GAAG,CAAC,CAAC;KACT;IAED,YAAY,GAAA;AACV,QAAA,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC3B,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;AAC9D,QAAA,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC;KAC5B;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,MAAK;YACpC,IAAI,CAAC,YAAY,EAAE,CAAC;AACtB,SAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;KACxB;IAED,SAAS,GAAA;AACP,QAAA,MAAM,YAAY,GAAW,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAW,CAAC;AACnF,QAAA,IAAI,CAAC,YAAY;YAAE,OAAO;QAC1B,MAAM,oBAAoB,GAAG,cAAc,CAAC,YAAsB,EAAE,IAAI,CAAC,CAAA;QACzE,IAAI,CAAC,cAAc,GAAG,CAAA,uBAAA,EAA0B,oBAAoB,CAAK,EAAA,EAAA,YAAY,GAAG,CAAC;KAC1F;;AA7GU,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,kBA+BL,YAAY,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;+FA/BrB,cAAc,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAKO,gBAAgB,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClBlD,8mCAoBM,EAAA,MAAA,EAAA,CAAA,qtDAAA,EAAA,8FAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDPO,cAAc,EAAA,UAAA,EAAA,CAAA;kBAL1B,SAAS;+BACE,WAAW,EAAA,QAAA,EAAA,8mCAAA,EAAA,MAAA,EAAA,CAAA,qtDAAA,EAAA,8FAAA,CAAA,EAAA,CAAA;;0BAmCR,MAAM;2BAAC,YAAY,CAAA;4CA7BzB,OAAO,EAAA,CAAA;sBADb,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAImB,SAAS,EAAA,CAAA;sBAA5D,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,WAAW,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAA;gBACzC,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACI,OAAO,EAAA,CAAA;sBAAhB,MAAM;;;MEEI,eAAe,CAAA;IAU1B,WACU,CAAA,YAA0B,EACJ,MAAmB,EAAA;QADzC,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QACJ,IAAM,CAAA,MAAA,GAAN,MAAM,CAAa;QAXnD,IAAM,CAAA,MAAA,GAAiB,EAAE,CAAC;AAG1B,QAAA,IAAA,CAAA,QAAQ,GAAkB,aAAa,CAAC,YAAY,CAAC;AACrD,QAAA,IAAA,CAAA,WAAW,GAAkB,aAAa,CAAC,YAAY,CAAC;AACxD,QAAA,IAAA,CAAA,UAAU,GAAkB,aAAa,CAAC,WAAW,CAAC;AACtD,QAAA,IAAA,CAAA,QAAQ,GAAkB,aAAa,CAAC,SAAS,CAAC;AAClD,QAAA,IAAA,CAAA,OAAO,GAAkB,aAAa,CAAC,QAAQ,CAAC;AAM9C,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;AACtC,SAAA;KACF;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;KACzB;IAED,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO;AACtC,aAAA,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AACnB,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACd,aAAA,SAAS,CAAC;YACT,IAAI,EAAE,MAAK;gBACT,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC9C,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC;AACnD,iBAAA;aACF;AACF,SAAA,CAAC,CAAC;KACN;IAED,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK;AAChC,aAAA,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;AAChC,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,KAAK,KAAI;gBACd,MAAM,YAAY,GAAe,KAAmB,CAAC;gBACrD,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE;oBAClE,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAe,CACnD,CAAC;oBACF,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;oBAC3C,OAAO;AACR,iBAAA;AACD,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAmB,CAAC,CAAC;aACvC;AACF,SAAA,CAAC,CAAC;QAEL,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC;AAC/C,YAAA,IAAI,EAAE,CAAC,GAAG,KAAI;AACZ,gBAAA,IAAI,GAAG,EAAE;oBACP,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;wBAC5C,CAAC,CAAC,YAAY,EAAE,CAAC;AACnB,qBAAC,CAAC,CAAC;AACJ,iBAAA;aACF;AACF,SAAA,CAAC,CAAC;KACJ;AAED,IAAA,OAAO,CAAC,KAAiB,EAAA;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;KAC9B;;AAvEU,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,2CAYhB,YAAY,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;gGAZX,eAAe,EAAA,QAAA,EAAA,cAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,SAAA,EAEZ,cAAc,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECzB9B,grBAaM,EAAA,MAAA,EAAA,CAAA,ycAAA,EAAA,8FAAA,CAAA,EAAA,YAAA,EAAA,CAAA,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,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDUO,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,SAAS;+BACE,cAAc,EAAA,QAAA,EAAA,grBAAA,EAAA,MAAA,EAAA,CAAA,ycAAA,EAAA,8FAAA,CAAA,EAAA,CAAA;;0BAgBrB,MAAM;2BAAC,YAAY,CAAA;4CAVQ,gBAAgB,EAAA,CAAA;sBAA7C,YAAY;uBAAC,cAAc,CAAA;;;MEJjB,iBAAiB,CAAA;IAC5B,OAAO,OAAO,CAAC,MAAoB,EAAA;QACjC,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,MAAM,GAAG;gBACP,QAAQ,EAAE,aAAa,CAAC,YAAY;AACpC,gBAAA,eAAe,EAAE,KAAK;aACvB,CAAA;AACF,SAAA;QACD,OAAO;AACL,YAAA,QAAQ,EAAE,iBAAiB;AAC3B,YAAA,SAAS,EAAE;AACT,gBAAA,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE;AAC5C,aAAA;SACF,CAAC;KACH;;8GAdU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,iBAX1B,eAAe;QACf,cAAc,CAAA,EAAA,OAAA,EAAA,CAGd,YAAY,CAAA,EAAA,OAAA,EAAA,CAGZ,eAAe,CAAA,EAAA,CAAA,CAAA;AAIN,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAP1B,YAAY,CAAA,EAAA,CAAA,CAAA;2FAOH,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAb7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,eAAe;wBACf,cAAc;AACf,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,eAAe;AAChB,qBAAA;AACF,iBAAA,CAAA;;;ACGA,CAAC;AAKD;;AC3BD;;AAEG;;ACFH;;AAEG;;;;"}