{"version":3,"file":"onepoint-yap-dashboard-toolbox.mjs","sources":["../../../../projects/onepoint-yap/dashboard/toolbox/components/clear-view/clear-view.component.ts","../../../../projects/onepoint-yap/dashboard/toolbox/components/clear-view/clear-view.component.html","../../../../projects/onepoint-yap/dashboard/toolbox/components/drag-widgets/drag-widgets.component.ts","../../../../projects/onepoint-yap/dashboard/toolbox/components/drag-widgets/drag-widgets.component.html","../../../../projects/onepoint-yap/dashboard/toolbox/components/edit-mode-toggle/edit-mode-toggle.component.ts","../../../../projects/onepoint-yap/dashboard/toolbox/components/edit-mode-toggle/edit-mode-toggle.component.html","../../../../projects/onepoint-yap/dashboard/toolbox/components/launch-tab/launch-tab.component.ts","../../../../projects/onepoint-yap/dashboard/toolbox/components/launch-tab/launch-tab.component.html","../../../../projects/onepoint-yap/dashboard/toolbox/components/named-query/named-query.component.ts","../../../../projects/onepoint-yap/dashboard/toolbox/components/named-query/named-query.component.html","../../../../projects/onepoint-yap/dashboard/toolbox/components/save-view/save-view.component.ts","../../../../projects/onepoint-yap/dashboard/toolbox/components/save-view/save-view.component.html","../../../../projects/onepoint-yap/dashboard/toolbox/style/css.component.ts","../../../../projects/onepoint-yap/dashboard/toolbox/components/select-grid-layout/select-grid-layout.component.ts","../../../../projects/onepoint-yap/dashboard/toolbox/components/select-grid-layout/select-grid-layout.component.html","../../../../projects/onepoint-yap/dashboard/toolbox/components/filter-settings/filter-settings.component.ts","../../../../projects/onepoint-yap/dashboard/toolbox/components/filter-settings/filter-settings.component.html","../../../../projects/onepoint-yap/dashboard/toolbox/components/toolbox.component.ts","../../../../projects/onepoint-yap/dashboard/toolbox/components/toolbox.component.html","../../../../projects/onepoint-yap/dashboard/toolbox/toolbox.module.ts","../../../../projects/onepoint-yap/dashboard/toolbox/onepoint-yap-dashboard-toolbox.ts"],"sourcesContent":["import { Component, Input } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { DashboardActions } from '@onepoint-yap/dashboard';\n\n@Component({\n  selector: 'yap-clear-view',\n  templateUrl: './clear-view.component.html'\n})\nexport class ClearViewComponent {\n  @Input() label = true;\n\n  constructor(private store: Store) {}\n\n  clear() {\n    this.store.dispatch(DashboardActions.clearManifest());\n  }\n}\n","<div [yapTooltip]=\"infoTooltip\" yapTooltipPosition=\"bottom\" aria-describedby=\"infoTooltip_clearView\">\n  <button type=\"button\" class=\"a-btn a-btn--secondary -size-md\" (click)=\"clear()\">\n    <ng-container *ngIf=\"label\">{{ '@yap.toolbox.clear' | i18n }}</ng-container>\n  </button>\n</div>\n\n<ng-template #infoTooltip>\n  <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltip_clearView\">\n    <span class=\"m-tooltip__text\">{{ '@yap.toolbox.clear' | i18n }}</span>\n  </div>\n</ng-template>\n","import { ConnectedPosition } from '@angular/cdk/overlay';\nimport { Component, Input } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n  ConfigActions,\n  ToolboxManifestService,\n  ToolboxMenuService,\n  WidgetDescriptionMenu\n} from '@onepoint-yap/dashboard';\nimport { Observable } from 'rxjs';\n\n@Component({\n  selector: 'yap-drag-widgets',\n  templateUrl: './drag-widgets.component.html'\n})\nexport class DragWidgetsComponent {\n  @Input() labels = true;\n  mainOpened = false;\n\n  readonly connectedPosition: ConnectedPosition = {\n    originX: 'start',\n    originY: 'bottom',\n    overlayX: 'start',\n    overlayY: 'top'\n  };\n  menu$: Observable<WidgetDescriptionMenu[]>;\n\n  constructor(\n    private store: Store,\n    private toolboxManifestService: ToolboxManifestService,\n    public toolboxMenuService: ToolboxMenuService\n  ) {\n    this.store.dispatch(ConfigActions.loadWidgets());\n    this.menu$ = this.toolboxMenuService.menuStructure$;\n  }\n\n  dragStart($event: DragEvent, type: string) {\n    this.toolboxManifestService.dataTransfer($event, type);\n\n    setTimeout(() => {\n      this.mainOpened = false;\n    }, 100);\n  }\n\n  openMenu($event: Event) {\n    this.mainOpened = true;\n    $event.stopPropagation();\n  }\n}\n","<div class=\"toolbox-draggable\">\n  <div [yapTooltip]=\"infoTooltip\" yapTooltipPosition=\"bottom\" aria-describedby=\"infoTooltip_dragWidgets\">\n    <button\n      type=\"button\"\n      class=\"a-btn a-btn--secondary -size-md\"\n      (click)=\"openMenu($event)\"\n      cdkOverlayOrigin\n      #trigger=\"cdkOverlayOrigin\"\n      id=\"widget_insert\"\n      aria-haspopup\n      aria-controls=\"IDpanel\"\n      aria-expanded=\"false\"\n    >\n      <ng-container *ngIf=\"labels\"\n        ><span class=\"u-visually-hidden\">{{ '@yap.toolbox.dragIndication' | i18n }}</span\n        >{{ '@yap.toolbox.drag' | i18n }}\n      </ng-container>\n    </button>\n  </div>\n</div>\n\n<ng-template #infoTooltip>\n  <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltip_dragWidgets\">\n    <span class=\"m-tooltip__text\"> Insérer un widget </span>\n  </div>\n</ng-template>\n\n<ng-template\n  cdkConnectedOverlay\n  [cdkConnectedOverlayOrigin]=\"trigger\"\n  [cdkConnectedOverlayOpen]=\"mainOpened\"\n  [cdkConnectedOverlayHasBackdrop]=\"true\"\n  [cdkConnectedOverlayPositions]=\"[connectedPosition]\"\n  cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n  (backdropClick)=\"mainOpened = false\"\n>\n  <div class=\"o-draggable-menu\" aria-label=\"Insérer un widget (par glisser/déposer)\" aria-labelledby=\"widget_insert\">\n    <ul class=\"o-draggable-menu__list\">\n      <ng-container *ngFor=\"let menu of menu$ | async\">\n        <li class=\"o-draggable-menu__list__item\">\n          <button class=\"a-btn\" aria-haspopup=\"true\" aria-expanded=\"false\">\n            <yap-icon [iconSvg]=\"menu.icon\"></yap-icon>\n            <ng-container *ngIf=\"labels\">{{ menu.label | i18n }}</ng-container>\n          </button>\n\n          <ul class=\"o-draggable-menu__list__submenu\">\n            <ng-container *ngFor=\"let sub of menu.sub\">\n              <li class=\"o-draggable-menu__list__submenu__item\">\n                <button class=\"a-btn\" (dragstart)=\"dragStart($event, sub.type)\" draggable=\"true\">\n                  <img [alt]=\"sub.label\" [height]=\"24\" [width]=\"24\" [src]=\"sub.icon | getSecuredImage | async\" />\n                  <ng-container *ngIf=\"labels\">{{ sub.label | i18n }}</ng-container>\n                </button>\n              </li>\n            </ng-container>\n          </ul>\n        </li>\n      </ng-container>\n    </ul>\n  </div>\n</ng-template>\n","import { Component, Input } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { DashboardActions, DashboardSelectors } from '@onepoint-yap/dashboard';\nimport { Observable } from 'rxjs';\n\n@Component({\n  selector: 'yap-edit-mode-toggle',\n  templateUrl: './edit-mode-toggle.component.html'\n})\nexport class EditModeToggleComponent {\n  @Input() label = true;\n  modeEdition$: Observable<boolean>;\n\n  constructor(private store: Store<any>) {\n    this.modeEdition$ = this.store.select(DashboardSelectors.dashboardEditionMode);\n  }\n\n  toggleEditionMode() {\n    this.store.dispatch(DashboardActions.toggleEditionMode({}));\n  }\n}\n","<yap-toggle\n  [ngModel]=\"modeEdition$ | async\"\n  (ngModelChange)=\"toggleEditionMode()\"\n  [alwaysActive]=\"true\"\n  mode=\"action\"\n  dir=\"ltr\"\n>\n  {{ ((modeEdition$ | async) ? '@yap.toolbox.editOff' : '@yap.toolbox.edit') | i18n }}\n</yap-toggle>\n","import { Component, Input } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { DashboardActions } from '@onepoint-yap/dashboard';\n\n@Component({\n  selector: 'yap-launch-tab',\n  templateUrl: './launch-tab.component.html'\n})\nexport class LaunchTabComponent {\n  @Input() label = true;\n\n  constructor(private store: Store) {}\n\n  launchNewWindow() {\n    this.store.dispatch(DashboardActions.createTab());\n  }\n}\n","<div [yapTooltip]=\"infoTooltip\" yapTooltipPosition=\"bottom\" aria-describedby=\"infoTooltip_launchTab\">\n  <button type=\"button\" class=\"a-btn a-btn--secondary -size-md\" (click)=\"launchNewWindow()\">\n    <ng-container *ngIf=\"label\"\n      ><span class=\"u-visually-hidden\">{{ '@yap.toolbox.launchIndication' | i18n }}</span\n      >{{ '@yap.toolbox.launch' | i18n }}</ng-container\n    >\n    <yap-icon iconSvg=\"launch\"></yap-icon>\n  </button>\n</div>\n\n<ng-template #infoTooltip>\n  <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltip_launchTab\">\n    <span class=\"m-tooltip__text\">Nouvelle page</span>\n  </div>\n</ng-template>\n","import { Component, Input } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { DashboardSelectors, DataSourceActions, MIME_TYPE_RESULTSET } from '@onepoint-yap/dashboard';\nimport { Observable } from 'rxjs';\n\n@Component({\n  selector: 'yap-named-query',\n  templateUrl: './named-query.component.html'\n})\nexport class NamedQueryComponent {\n  @Input() label = true;\n  displayCombo = false;\n  namedQueries$: Observable<string[]>;\n\n  constructor(private store: Store<any>) {\n    this.store.dispatch(DataSourceActions.load());\n    this.namedQueries$ = this.store.select(DashboardSelectors.availableNamedQueries);\n  }\n\n  toggle() {\n    this.displayCombo = !this.displayCombo;\n  }\n\n  dragStart($event: DragEvent, rs: string) {\n    if (!!$event && !!$event.dataTransfer && !$event.dataTransfer.types.includes(MIME_TYPE_RESULTSET)) {\n      $event.dataTransfer.setData(MIME_TYPE_RESULTSET, rs);\n    }\n  }\n\n  dragLeave($event: DragEvent) {\n    this.toggle();\n  }\n}\n","<div class=\"o-named-query\">\n  <div class=\"combobox-container\" (dragleave)=\"dragLeave($event)\">\n    <div [yapTooltip]=\"infoTooltip\" yapTooltipPosition=\"bottom\" aria-describedby=\"infoTooltip_namedQuery\">\n      <button type=\"button\" class=\"a-btn a-btn--action\" (click)=\"toggle()\">\n        <yap-icon iconSvg=\"data_usage\"></yap-icon>\n        <ng-container *ngIf=\"label\">{{ '@yap.toolbox.resultSet' | i18n }}</ng-container>\n      </button>\n    </div>\n\n    <div class=\"combobox\" *ngIf=\"displayCombo\" (mouseleave)=\"toggle()\">\n      <ng-container *ngFor=\"let rs of namedQueries$ | async\">\n        <div draggable=\"true\" (dragstart)=\"dragStart($event, rs)\">\n          {{ rs | translateId : { type: 'datasource', output: 'name' } | async }}\n        </div>\n      </ng-container>\n    </div>\n  </div>\n\n  <ng-template #infoTooltip>\n    <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltip_namedQuery\">\n      <span class=\"m-tooltip__text\"> Recherches nommées </span>\n    </div>\n  </ng-template>\n</div>\n","import { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Component, ElementRef, Input, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n  ConfigActions,\n  DashboardActions,\n  DashboardSelectors,\n  LibraryTypes,\n  ManifestDescription,\n  SubscriptionnerDirective,\n  ViewMode,\n  YapVisibility,\n  YapVisibilityType\n} from '@onepoint-yap/dashboard';\nimport { Observable } from 'rxjs';\nimport { v4 } from 'uuid';\n\n@Component({\n  selector: 'yap-save-view',\n  templateUrl: './save-view.component.html'\n})\nexport class SaveViewComponent extends SubscriptionnerDirective {\n  @Input() label = true;\n  @Input() mode: 'saveAs' | 'directSave' = 'saveAs';\n  @ViewChild('input') input!: ElementRef;\n  @ViewChild('saveAs') saveAs!: ElementRef<HTMLButtonElement>;\n  @ViewChild('directiveSave') directiveSave!: ElementRef<HTMLButtonElement>;\n  @ViewChild('firstFocusdirective') firstFocusdirective!: ElementRef<HTMLButtonElement>;\n  @ViewChild('cross') cross!: ElementRef<HTMLButtonElement>;\n  @ViewChild('confirm') confirm!: ElementRef<HTMLButtonElement>;\n  @ViewChild('cancel') cancel!: ElementRef<HTMLButtonElement>;\n  saveAsOpened: boolean = false;\n  overlayRefSaveAs?: OverlayRef;\n  @ViewChild('templateSaveAs', { read: TemplateRef }) templateSaveAs!: TemplateRef<any>;\n  overlayRefDirectSaveType?: OverlayRef;\n  @ViewChild('templateDirectSaveType', { read: TemplateRef }) templateDirectSaveType!: TemplateRef<any>;\n  visibility: YapVisibility = { type: YapVisibilityType.PRIVATE };\n  type: LibraryTypes = LibraryTypes.ILLUSTRATION;\n  saveTypeOpened = false;\n  currentManifest?: ManifestDescription;\n  savePresentationActive$: Observable<boolean>;\n  nbPages: number = 0;\n  initialNbPages: number = 0;\n  hasInitial: boolean = false;\n  ViewMode = ViewMode;\n\n  constructor(private store: Store, private overlay: Overlay, private viewContainerRef: ViewContainerRef) {\n    super();\n\n    this.subscriptions.add(\n      this.store.select(DashboardSelectors.presentation).subscribe((presentation) => {\n        this.currentManifest = presentation.current\n          ? JSON.parse(JSON.stringify(presentation.current))\n          : ({ name: '', image: '', description: '', cover: false } as ManifestDescription);\n        this.initialNbPages = presentation.initial?.windows.length ?? 0;\n        this.hasInitial = !!presentation.initial;\n      })\n    );\n    this.savePresentationActive$ = this.store.select(DashboardSelectors.savePresentationActive);\n    this.subscriptions.add(\n      this.store\n        .select(DashboardSelectors.globalManifest)\n        .subscribe((manifest) => (this.nbPages = manifest.windows.length))\n    );\n  }\n\n  toggleSaveAs() {\n    this.saveAsOpened = !this.saveAsOpened;\n    if (this.saveAsOpened) {\n      this.store.dispatch(DashboardActions.requestAllRoutes());\n      this.openSaveAs();\n      setTimeout(() => {\n        this.input.nativeElement.focus();\n      }, 10);\n    } else {\n      this.overlayRefSaveAs?.dispose();\n      this.overlayRefSaveAs = undefined;\n      this.store.dispatch(ConfigActions.closeOverlay({ id: this.constructor.name }));\n      this.saveAs.nativeElement.focus();\n    }\n  }\n\n  save() {\n    this.store.dispatch(DashboardActions.requestAllRoutes());\n\n    // Give time for routes to be updated\n    setTimeout(() => {\n      let presentation = {\n        name: this.currentManifest!.name,\n        id: v4(),\n        description: this.currentManifest!.description,\n        image: this.currentManifest!.image,\n        visibility: this.visibility,\n        cover: this.currentManifest?.cover ?? false\n      };\n      if (this.mode == 'directSave') {\n        if (this.currentManifest) {\n          presentation.id = this.currentManifest.id;\n          presentation.visibility = this.currentManifest.visibility;\n        }\n      }\n      this.store.dispatch(DashboardActions.saveManifest(presentation));\n      this.store.dispatch(\n        DashboardActions.selectPresentation({\n          presentation: presentation as ManifestDescription,\n          viewMode: ViewMode.CATALOG\n        })\n      );\n    }, 200);\n\n    this.closeModals();\n  }\n\n  closeModals() {\n    if (this.saveTypeOpened) {\n      this.toggleDirectSaveType();\n    }\n    if (this.saveAsOpened) {\n      this.toggleSaveAs();\n    }\n  }\n  changeVisibility($event: YapVisibility) {\n    this.currentManifest!.visibility = $event;\n  }\n  changeValue($event: string) {\n    this.currentManifest!.name = $event;\n  }\n\n  changeDescr($event: string) {\n    this.currentManifest!.description = $event;\n  }\n\n  openSaveAs() {\n    this.overlayRefSaveAs = this.overlay.create(\n      new OverlayConfig({\n        hasBackdrop: true,\n        panelClass: ['o-modal-wrapper'],\n        backdropClass: 'backdrop'\n      })\n    );\n    this.store.dispatch(ConfigActions.addingOverlay({ id: this.constructor.name }));\n    this.overlayRefSaveAs.backdropClick().subscribe((_) => this.toggleSaveAs());\n    this.overlayRefSaveAs.attach(new TemplatePortal(this.templateSaveAs, this.viewContainerRef));\n  }\n\n  isValid() {\n    return (\n      this.currentManifest?.name && 0 < this.currentManifest?.name.length && this.currentManifest?.name.length <= 30\n    );\n  }\n\n  toggleDirectSaveType() {\n    this.saveTypeOpened = !this.saveTypeOpened;\n    if (this.saveTypeOpened) {\n      this.store.dispatch(DashboardActions.requestAllRoutes());\n      this.overlayRefDirectSaveType = this.overlay.create(\n        new OverlayConfig({\n          hasBackdrop: true,\n          panelClass: ['o-modal-wrapper'],\n          backdropClass: 'backdrop'\n        })\n      );\n      this.store.dispatch(ConfigActions.addingOverlay({ id: this.constructor.name }));\n      this.overlayRefDirectSaveType.backdropClick().subscribe((_) => this.toggleDirectSaveType());\n      this.overlayRefDirectSaveType.attach(new TemplatePortal(this.templateDirectSaveType, this.viewContainerRef));\n      setTimeout(() => {\n        this.firstFocusdirective.nativeElement.focus();\n      }, 10);\n    } else {\n      this.overlayRefDirectSaveType?.dispose();\n      this.overlayRefDirectSaveType = undefined;\n      this.store.dispatch(ConfigActions.closeOverlay({ id: this.constructor.name }));\n      this.directiveSave.nativeElement.focus();\n    }\n  }\n\n  get mustOpenModal() {\n    return this.hasInitial && this.nbPages !== this.initialNbPages;\n  }\n\n  directSave() {\n    if (this.mustOpenModal) {\n      this.toggleDirectSaveType();\n    } else {\n      this.save();\n    }\n  }\n\n  restore() {\n    this.store.dispatch(DashboardActions.restoreInitialManifest());\n    this.closeModals();\n  }\n  focusCrossElement() {\n    this.cross.nativeElement.focus();\n  }\n  focusValidation() {\n    if (!this.currentManifest?.name) {\n      this.cancel.nativeElement.focus();\n    }\n    this.confirm.nativeElement.focus();\n  }\n\n  rename() {\n    this.toggleSaveAs();\n  }\n\n  disableNextStep() {\n    if (!this.currentManifest?.name) {\n      this.focusCrossElement();\n    }\n  }\n}\n","<ng-container *ngIf=\"mode === 'directSave'\">\n  <div\n    [yapTooltip]=\"infoTooltipDirectSave\"\n    yapTooltipPosition=\"bottom\"\n    [attr.aria-expanded]=\"saveTypeOpened\"\n    aria-controls=\"directiveSave\"\n    aria-describedby=\"infoTooltip_directSave\"\n  >\n    <button\n      type=\"button\"\n      #directiveSave\n      class=\"a-btn a-btn--secondary -size-md\"\n      (click)=\"directSave()\"\n      [disabled]=\"!(savePresentationActive$ | async)\"\n    >\n      <ng-container *ngIf=\"label\">{{ '@yap.toolbox.save' | i18n }} ({{ nbPages }})</ng-container>\n    </button>\n  </div>\n</ng-container>\n<ng-container *ngIf=\"mode === 'saveAs'\">\n  <div\n    class=\"save-manifest-container\"\n    [yapTooltip]=\"infoTooltipSaveAs\"\n    yapTooltipPosition=\"bottom\"\n    [attr.aria-expanded]=\"saveAsOpened\"\n    aria-controls=\"saveModal\"\n    aria-describedby=\"infoTooltip_saveAs\"\n  >\n    <button\n      type=\"button\"\n      #saveAs\n      class=\"a-btn a-btn--secondary -size-md\"\n      (click)=\"toggleSaveAs()\"\n      aria-haspopup=\"dialog\"\n    >\n      <ng-container *ngIf=\"label\">{{ '@yap.toolbox.saveView' | i18n }} ({{ nbPages }})</ng-container>\n    </button>\n  </div>\n</ng-container>\n\n<ng-template #templateSaveAs>\n  <div\n    class=\"o-modal\"\n    (click)=\"$event.stopPropagation()\"\n    id=\"saveModal\"\n    role=\"dialog\"\n    aria-modal=\"true\"\n    aria-labelledby=\"dialog_saveModal\"\n    (keydown.escape)=\"closeModals()\"\n  >\n    <div class=\"o-modal__top\">\n      <div class=\"o-modal__top__title\">\n        <h2 class=\"a-h2\" id=\"dialog_title\">{{ '@yap.toolbox.rename' | i18n }}</h2>\n      </div>\n      <div class=\"o-modal__top__close\">\n        <button class=\"a-btn a-btn--icon-only\" #cross (keydown.shift.tab)=\"focusValidation()\" (click)=\"toggleSaveAs()\">\n          <yap-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></yap-icon>\n          <span class=\"u-visually-hidden\">{{ '@yap.toolbox.close' | i18n }}</span>\n        </button>\n      </div>\n    </div>\n    <yap-stepper #stepper>\n      <yap-step>\n        <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@yap.presentation.add.info' | i18n }}</h4>\n        <form>\n          <div class=\"m-form-label-field\">\n            <label class=\"a-label\" id=\"label-name\" for=\"input-name\">{{ '@yap.toolbox.manifest.name' | i18n }}</label>\n            <input\n              type=\"text\"\n              id=\"input-name\"\n              name=\"input-name\"\n              class=\"a-form-field\"\n              placeholder=\"{{ '@yap.toolbox.manifest.name' | i18n }}\"\n              [ngModel]=\"currentManifest!.name\"\n              (ngModelChange)=\"changeValue($event)\"\n              aria-labelledby=\"label-name\"\n              maxlength=\"30\"\n              #input\n            />\n          </div>\n          <div class=\"m-form-label-field\">\n            <label class=\"a-label\" id=\"label-descr\" for=\"input-descr\">{{\n              '@yap.toolbox.manifest.description' | i18n\n            }}</label>\n            <input\n              type=\"text\"\n              id=\"input-descr\"\n              name=\"input-descr\"\n              class=\"a-form-field\"\n              placeholder=\"{{ '@yap.toolbox.manifest.description' | i18n }}\"\n              [ngModel]=\"currentManifest!.description\"\n              (ngModelChange)=\"changeDescr($event)\"\n              aria-labelledby=\"label-name\"\n              maxlength=\"200\"\n            />\n          </div>\n          <div class=\"m-form-label-field\">\n            <label class=\"a-label\" for=\"presentation_image\">{{ '@yap.presentation.form.image' | i18n }}</label>\n            <div class=\"o-file-input\">\n              <yap-select-image\n                id=\"presentation_image\"\n                (changed)=\"currentManifest!.image = $event\"\n                [iconUrl]=\"currentManifest!.image\"\n                [mode]=\"type\"\n              ></yap-select-image>\n              <yap-checkbox [(ngModel)]=\"currentManifest!.cover\" name=\"cover\">\n                {{ '@yap.presentation.form.cover' | i18n }}\n              </yap-checkbox>\n            </div>\n          </div>\n\n          <div class=\"m-btn-group\">\n            <button\n              type=\"button\"\n              class=\"a-btn a-btn--secondary\"\n              #cancel\n              (click)=\"toggleSaveAs()\"\n              (keydown.tab)=\"disableNextStep()\"\n            >\n              {{ '@yap.toolbox.manifest.close' | i18n }}\n            </button>\n            <button\n              type=\"submit\"\n              class=\"a-btn a-btn--primary\"\n              (click)=\"stepper.next()\"\n              [disabled]=\"!isValid()\"\n              (keydown.tab)=\"focusCrossElement()\"\n            >\n              {{ '@yap.action.next' | i18n }}\n            </button>\n          </div>\n        </form>\n      </yap-step>\n      <yap-step>\n        <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@yap.restitution.broadcast' | i18n }}</h4>\n        <yap-share [(ngModel)]=\"visibility\" (ngModelChange)=\"changeVisibility($event)\"></yap-share>\n        <div class=\"m-btn-group\">\n          <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"stepper.prev()\">\n            {{ '@yap.action.back' | i18n }}\n          </button>\n          <button\n            type=\"submit\"\n            class=\"a-btn a-btn--primary\"\n            #confirm\n            (click)=\"save()\"\n            (keydown.tab)=\"focusCrossElement()\"\n          >\n            {{ '@yap.restitution.broadcast' | i18n }}\n          </button>\n        </div>\n      </yap-step>\n    </yap-stepper>\n  </div>\n</ng-template>\n\n<ng-template #infoTooltipSaveAs>\n  <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltip_saveAs\">\n    <span class=\"m-tooltip__text\">{{ '@yap.toolbox.rename' | i18n }}</span>\n  </div>\n</ng-template>\n<ng-template #infoTooltipDirectSave>\n  <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltip_directSave\">\n    <span class=\"m-tooltip__text\">{{ '@yap.toolbox.save' | i18n }}</span>\n  </div>\n</ng-template>\n\n<ng-template #templateDirectSaveType>\n  <div\n    class=\"o-modal\"\n    (click)=\"$event.stopPropagation()\"\n    id=\"directiveSave\"\n    role=\"dialog\"\n    aria-labelledby=\"dialog_title\"\n    (keydown.escape)=\"closeModals()\"\n  >\n    <div class=\"o-modal__top\">\n      <div class=\"o-modal__top__title\">\n        <h2 class=\"a-h2\" id=\"dialog_title_\">{{ '@yap.toolbox.save' | i18n }}</h2>\n      </div>\n      <div class=\"o-modal__top__close\">\n        <button class=\"a-btn a-btn--icon-only\" #firstFocusdirective (click)=\"toggleDirectSaveType()\">\n          <yap-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></yap-icon>\n          <span class=\"u-visually-hidden\">{{ '@yap.toolbox.close' | i18n }}</span>\n        </button>\n      </div>\n    </div>\n    <div>\n      <h3>{{ '@yap.snack.pagesChanged' | i18n }}</h3>\n    </div>\n    <div class=\"m-btn-group\">\n      <button class=\"a-btn a-btn--primary\" (click)=\"save()\">\n        {{ '@yap.toolbox.save' | i18n }}\n      </button>\n      <button class=\"a-btn a-btn--primary\" (click)=\"rename()\">\n        {{ '@yap.toolbox.rename' | i18n }}\n      </button>\n      <button class=\"a-btn a-btn--primary\" (click)=\"restore()\" (keydown.tab)=\"closeModals()\">\n        {{ '@yap.toolbox.restore' | i18n }}\n      </button>\n    </div>\n  </div>\n</ng-template>\n","import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'yap-select-grid-layout-css',\n  template: '',\n  styleUrls: ['_o-select-grid-layout.scss', '_o-filter-settings.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class YapSelectGridLayoutCssComponent {}\n","import { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Component, ElementRef, Input, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n  ConfigActions,\n  DashboardActions,\n  DashboardGridLayout,\n  DashboardSelectors,\n  SubscriptionnerDirective,\n  WidgetPlacementUtils\n} from '@onepoint-yap/dashboard';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n@Component({\n  selector: 'yap-select-grid-layout',\n  templateUrl: './select-grid-layout.component.html'\n})\nexport class SelectGridLayoutComponent extends SubscriptionnerDirective {\n  @Input() label = true;\n  availableLayouts$: Observable<{ translation: any; value: any; image: string }[]>;\n  chosenLayout: DashboardGridLayout = DashboardGridLayout.MANUAL;\n  canDispatch = false;\n  @ViewChild('template', { read: TemplateRef }) template!: TemplateRef<any>;\n  @ViewChild('firstButton') firstButton!: ElementRef<HTMLButtonElement>;\n  @ViewChild('openModal') openModal!: ElementRef<HTMLButtonElement>;\n  @ViewChild('cross') cross!: ElementRef<HTMLButtonElement>;\n  @ViewChild('confirm') confirm!: ElementRef<HTMLButtonElement>;\n  modalOpened: boolean = false;\n  overlayRef?: OverlayRef;\n\n  constructor(private store: Store, private overlay: Overlay, private viewContainerRef: ViewContainerRef) {\n    super();\n    this.subscriptions.add(\n      this.store.select(DashboardSelectors.gridLayout).subscribe((layout) => (this.chosenLayout = layout))\n    );\n    this.availableLayouts$ = this.store.select(DashboardSelectors.windowManifest).pipe(\n      map((manifest) =>\n        WidgetPlacementUtils.getLayouts()\n          .filter((layout) => {\n            return WidgetPlacementUtils.placesForLayout(layout.key) >= (manifest.widgets ?? []).length;\n          })\n          .map((layout) => ({\n            value: layout.key,\n            translation: '@yap.toolbox.layout.' + layout.key,\n            image: layout.image\n          }))\n      )\n    );\n\n    setTimeout(() => {\n      this.canDispatch = true;\n    }, 100);\n  }\n\n  changeLayout(layout: DashboardGridLayout) {\n    this.chosenLayout = layout;\n  }\n\n  toggleGridChoiceModal() {\n    this.modalOpened = !this.modalOpened;\n    if (this.modalOpened) {\n      this.openWithTemplate();\n    } else {\n      this.overlayRef?.dispose();\n      this.store.dispatch(ConfigActions.closeOverlay({ id: this.constructor.name }));\n      this.openModal.nativeElement.focus();\n    }\n  }\n\n  openWithTemplate() {\n    if (!this.overlayRef) {\n      this.modalOpened = !this.modalOpened;\n      this.overlayRef = this.overlay.create(\n        new OverlayConfig({\n          hasBackdrop: true,\n          panelClass: ['o-modal-wrapper', 'o-select-grid-layout-modal-wrapper'],\n          backdropClass: 'backdrop'\n        })\n      );\n      this.store.dispatch(ConfigActions.addingOverlay({ id: this.constructor.name }));\n      this.overlayRef.backdropClick().subscribe((_) => this.toggleGridChoiceModal());\n      this.overlayRef.attach(new TemplatePortal(this.template, this.viewContainerRef));\n      setTimeout(() => {\n        this.firstButton.nativeElement.focus();\n      }, 10);\n    } else {\n      this.overlayRef.dispose();\n      this.overlayRef = undefined;\n      this.store.dispatch(ConfigActions.closeOverlay({ id: this.constructor.name }));\n      this.openModal.nativeElement.focus();\n      this.modalOpened = !this.modalOpened;\n    }\n  }\n\n  validate() {\n    if (this.canDispatch) {\n      this.store.dispatch(DashboardActions.setGridLayout({ layout: this.chosenLayout }));\n    }\n    this.toggleGridChoiceModal();\n  }\n  focusCrossElement() {\n    this.cross.nativeElement.focus();\n  }\n\n  focusValidation() {\n    this.confirm.nativeElement.focus();\n  }\n}\n","<yap-select-grid-layout-css></yap-select-grid-layout-css>\n<div [attr.aria-expanded]=\"modalOpened\" aria-controls=\"grid-layout\">\n  <button type=\"button\" #openModal class=\"a-btn a-btn--secondary -size-md\" (click)=\"toggleGridChoiceModal()\">\n    <ng-container *ngIf=\"label\">\n      {{ '@yap.toolbox.chooseGrid' | i18n }}\n    </ng-container>\n  </button>\n</div>\n<ng-template #template>\n  <div\n    class=\"o-modal\"\n    (click)=\"$event.stopPropagation()\"\n    role=\"dialog\"\n    aria-modal=\"true\"\n    aria-labelledby=\"dialog_title\"\n    id=\"grid-layout\"\n    (keydown.escape)=\"toggleGridChoiceModal()\"\n  >\n    <div class=\"o-modal__top\">\n      <div class=\"o-modal__top__title\">\n        <h2 class=\"a-h2\" id=\"dialog_title\">{{ '@yap.toolbox.chooseGrid' | i18n }}</h2>\n      </div>\n      <div class=\"o-modal__top__close\">\n        <button\n          class=\"a-btn a-btn--icon-only\"\n          #cross\n          (keydown.shift.tab)=\"focusValidation()\"\n          (click)=\"toggleGridChoiceModal()\"\n        >\n          <yap-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></yap-icon>\n          <span class=\"u-visually-hidden\">{{ '@yap.toolbox.close' | i18n }}</span>\n        </button>\n      </div>\n    </div>\n    <div class=\"o-select-grid-layout-wrapper\">\n      <ul class=\"o-select-grid-layout\">\n        <li *ngFor=\"let layout of availableLayouts$ | async\" class=\"o-select-grid-layout__item\">\n          <button\n            type=\"button\"\n            #firstButton\n            class=\"a-btn\"\n            [attr.aria-pressed]=\"chosenLayout === layout.value\"\n            [class.selected]=\"chosenLayout === layout.value\"\n            (click)=\"changeLayout(layout.value)\"\n          >\n            <div class=\"u-txt-center\">\n              <img [src]=\"layout.image\" />\n              <strong>{{ layout.translation | i18n }}</strong>\n            </div>\n            <p class=\"a-p\">\n              {{ layout.translation + '_detailled' | i18n }}\n            </p>\n          </button>\n        </li>\n      </ul>\n    </div>\n    <div class=\"m-btn-group -space-evenly\">\n      <button (click)=\"toggleGridChoiceModal()\" class=\"a-btn a-btn--secondary\">\n        {{ '@yap.toolbox.manifest.close' | i18n }}\n      </button>\n      <button (click)=\"validate()\" class=\"a-btn a-btn--primary\" #confirm (keydown.tab)=\"focusCrossElement()\">\n        {{ '@yap.toolbox.manifest.validated' | i18n }}\n      </button>\n    </div>\n  </div>\n</ng-template>\n","import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Component, Injector, Input, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n  Class,\n  ClassSelectors,\n  ConfigActions,\n  DashboardActions,\n  DashboardSelectors,\n  DataSource,\n  DataSourceSelectors,\n  FieldSelectors,\n  FieldType,\n  Filter,\n  FilterFactoryService,\n  GlobalManifest,\n  MonoClassSearchPayload,\n  NamedQueryTypes,\n  SubscriptionnerDirective\n} from '@onepoint-yap/dashboard';\nimport { BehaviorSubject, combineLatest, map, Observable } from 'rxjs';\nimport { withLatestFrom } from 'rxjs/operators';\nimport { v4 } from 'uuid';\n\nexport enum FilterSteps {\n  LIST = 'list',\n  CREATION = 'creation',\n  EDITION = 'edition'\n}\n\nexport interface Attribute {\n  id: string;\n  name: string;\n  label: string;\n  datasource: string;\n  type: FieldType;\n}\n\n@Component({\n  selector: 'yap-filter-settings',\n  templateUrl: './filter-settings.component.html'\n})\nexport class YapFilterSettingsComponent extends SubscriptionnerDirective {\n  @Input() label = true;\n  @ViewChild('settings', { read: TemplateRef }) templateSettings!: TemplateRef<any>;\n  overlayRefSettings?: OverlayRef;\n  settingsOpened: boolean = false;\n  manifest$: Observable<GlobalManifest>;\n  filters: Filter[] = [];\n  types$: Observable<{ label: string; value: string }[]>;\n  currentFilterComponentType$ = new BehaviorSubject('');\n  currentStep: FilterSteps = FilterSteps.LIST;\n  steps = FilterSteps;\n  filter: Filter = {\n    id: v4(),\n    name: '',\n    type: '',\n    attributes: []\n  };\n  datasource$: Observable<any>;\n  operators = [\n    { label: '@yap.search.operator.equalsString', value: 'EQUALS' },\n    { label: '@yap.search.operator.notEqualsString', value: 'NOT_EQUALS' },\n    { label: '@yap.search.operator.contains', value: 'CONTAINS' },\n    { label: '@yap.search.operator.startWith', value: 'START_WITH' },\n    { label: '@yap.search.operator.endWith', value: 'END_WITH' },\n    { label: '@yap.search.operator.greaterThanNumber', value: 'GREATER_THAN' },\n    { label: '@yap.search.operator.lowerThanNumber', value: 'LOWER_THAN' },\n    { label: '@yap.search.operator.innerBoundsDate', value: 'INSIDE' },\n    { label: '@yap.search.operator.outerBoundsDate', value: 'OUTSIDE' }\n  ];\n  currentOperators$ = new BehaviorSubject(this.operators);\n  classes: Class[] = [];\n  attributes$: Observable<{ id: string; name: string; label: string; datasource: string; type: string }[]>;\n  selectedAttribute$ = new BehaviorSubject<string[]>(this.filter.attributes.map((attr) => attr.id));\n  @ViewChild('container', { read: ViewContainerRef }) container!: ViewContainerRef;\n\n  constructor(\n    private store: Store,\n    private overlay: Overlay,\n    private viewContainerRef: ViewContainerRef,\n    private filterFactoryService: FilterFactoryService,\n    private injector: Injector\n  ) {\n    super();\n    this.manifest$ = store.select(DashboardSelectors.globalManifest);\n    this.subscriptions.add(\n      this.manifest$.subscribe((manifest) => {\n        this.filters = manifest.filters ? [...manifest.filters] : [];\n      })\n    );\n\n    this.datasource$ = combineLatest([\n      this.store.select(DataSourceSelectors.getDataSources),\n      store.select(DashboardSelectors.namedQueriesUses)\n    ]).pipe(\n      map(([dataSources, dataSourcesUsed]) =>\n        Object.keys(dataSourcesUsed).map((id) => ({\n          label: dataSources.find((dataSource) => dataSource.id === id)?.name,\n          value: id\n        }))\n      )\n    );\n\n    this.types$ = this.filterFactoryService.types$.pipe(\n      map((types) =>\n        types.map((type) => ({\n          label: '@yap.filters.types.' + type,\n          value: type\n        }))\n      )\n    );\n\n    this.subscriptions.add(\n      this.currentFilterComponentType$.subscribe(() => {\n        this.currentOperators$.next(this.getOperators());\n      })\n    );\n\n    this.attributes$ = combineLatest([\n      store.select(DataSourceSelectors.getDataSources),\n      store.select(DashboardSelectors.namedQueriesUses),\n      store.select(ClassSelectors.classes),\n      this.currentFilterComponentType$\n    ]).pipe(\n      withLatestFrom(store.select(FieldSelectors.fields)),\n      map(([[dataSources, currentDataSources, classes, componentType], fields]) => {\n        let dataSourcesInPres = dataSources.filter((dataSource) =>\n          Object.keys(currentDataSources).includes(dataSource.id) ? dataSource : false\n        );\n        const attributes: Attribute[] = [];\n        dataSourcesInPres.forEach((dataSource) => {\n          const clazz = this.getDatasourceClass(dataSource, classes);\n          clazz?.attributes.forEach((attr) => {\n            attributes.push({\n              id: attr.id,\n              name: attr.name,\n              label: [attr.name, dataSource.name, clazz.name].join(' / '),\n              datasource: dataSource.id,\n              type: fields.find((field) => field.id === attr.field)?.type ?? FieldType.STRING\n            });\n          });\n        });\n        return this.filterAttributes(componentType, attributes);\n      })\n    );\n  }\n\n  getDatasourceClass(dataSource: DataSource, classes: Class[]): Class | undefined {\n    let clazz: Class | undefined = undefined;\n    if (dataSource.sourceType === 'dataset') {\n      clazz = classes.find((clazz) => clazz.id === dataSource.oClass);\n    } else if (\n      dataSource.sourceType === 'namedQuery' &&\n      dataSource.request &&\n      dataSource.request.type === NamedQueryTypes.MONO_CLASS\n    ) {\n      clazz = classes.find((clazz) => clazz.id === (dataSource.request as MonoClassSearchPayload).oClass);\n    }\n    return clazz;\n  }\n\n  filterAttributes(componentType: string, attributes: Attribute[]): Attribute[] {\n    switch (componentType) {\n      case 'date':\n        return attributes.filter((attr) => attr.type === FieldType.INSTANT);\n      case 'number':\n        return attributes.filter((attr) => [FieldType.INTEGER, FieldType.DECIMAL, FieldType.LONG].includes(attr.type));\n      case 'text':\n        return attributes.filter((attr) => [FieldType.STRING, FieldType.KEYWORD].includes(attr.type));\n      default:\n        if (this.selectedAttribute$.value.length > 0) {\n          const attributeType = attributes.find((attr) => attr.id === this.selectedAttribute$.value[0])?.type;\n          return attributes.filter((attr) => attr.type === attributeType);\n        }\n        return attributes;\n    }\n  }\n\n  drop(event: CdkDragDrop<Filter[]>) {\n    moveItemInArray(this.filters, event.previousIndex, event.currentIndex);\n  }\n\n  toggleSettings() {\n    this.settingsOpened = !this.settingsOpened;\n    if (this.settingsOpened) {\n      this.openSettings();\n    } else {\n      this.overlayRefSettings?.dispose();\n      this.overlayRefSettings = undefined;\n      this.store.dispatch(ConfigActions.closeOverlay({ id: this.constructor.name }));\n      this.store.dispatch(DashboardActions.setFilters({ filters: this.filters }));\n      this.goBack();\n    }\n  }\n\n  openSettings() {\n    this.overlayRefSettings = this.overlay.create(\n      new OverlayConfig({\n        hasBackdrop: true,\n        panelClass: ['o-modal-wrapper', 'o-select-grid-layout-modal-wrapper'],\n        backdropClass: 'backdrop'\n      })\n    );\n    this.store.dispatch(ConfigActions.addingOverlay({ id: this.constructor.name }));\n    this.overlayRefSettings.backdropClick().subscribe((_) => {\n      this.goBack();\n      this.toggleSettings();\n    });\n    this.overlayRefSettings.attach(new TemplatePortal(this.templateSettings, this.viewContainerRef));\n  }\n\n  updateFilterType($event: any) {\n    this.filter.type = $event;\n    this.filter.operator = $event === 'list' ? 'EQUALS' : this.filter.operator;\n    if (this.filter.type !== '' && this.container) {\n      let component = this.filterFactoryService.generateFilter(this.filter.type, this.injector, this.container);\n      this.subscriptions.add(\n        component.subscribe((componentRef) => {\n          this.currentFilterComponentType$.next(componentRef.instance.type);\n        })\n      );\n    }\n  }\n\n  getFilterAttributes(filter: Filter, attrCount: number) {\n    attrCount = attrCount <= filter.attributes.length ? attrCount : filter.attributes.length;\n    return filter.attributes\n      .map((attr) => attr.name)\n      .slice(0, attrCount)\n      .join(', ');\n  }\n\n  goBack() {\n    this.filter = {\n      id: v4(),\n      name: '',\n      type: '',\n      attributes: []\n    };\n    this.currentStep = FilterSteps.LIST;\n  }\n\n  goToEdition(filter: Filter) {\n    this.filter = { ...filter };\n    this.currentStep = FilterSteps.EDITION;\n  }\n\n  goToCreation() {\n    this.currentFilterComponentType$.next('');\n    this.currentStep = FilterSteps.EDITION;\n  }\n\n  submitFilter() {\n    this.store.dispatch(DashboardActions.updateFilters({ filter: this.filter }));\n    this.goBack();\n  }\n\n  selectAttribute($event: Attribute[]) {\n    this.filter.attributes = $event;\n    this.selectedAttribute$.next($event.map((attr) => attr.id));\n  }\n\n  deleteFilter(id: string) {\n    this.store.dispatch(DashboardActions.removeFilter({ id }));\n  }\n\n  getOperators(): { label: string; value: string }[] {\n    return this.operators.filter((operator) => {\n      switch (this.currentFilterComponentType$.value) {\n        case 'date':\n          return this.filter.hasDateRange\n            ? ['INSIDE', 'OUTSIDE'].includes(operator.value)\n            : ['EQUALS', 'NOT_EQUALS', 'GREATER_THAN', 'LOWER_THAN'].includes(operator.value);\n        case 'list':\n          return ['EQUALS'].includes(operator.value);\n        case 'number':\n          return ['EQUALS', 'NOT_EQUALS', 'GREATER_THAN', 'LOWER_THAN'].includes(operator.value);\n        case 'text':\n          return ['CONTAINS', 'EQUALS', 'NOT_EQUALS', 'START_WITH', 'END_WITH'].includes(operator.value);\n        default:\n          return operator;\n      }\n    });\n  }\n\n  protected readonly FilterSteps = FilterSteps;\n}\n","<yap-select-grid-layout-css></yap-select-grid-layout-css>\n<div class=\"save-manifest-container\">\n  <div style=\"display: none\">\n    <ng-template #container></ng-template>\n  </div>\n  <button\n    type=\"button\"\n    class=\"a-btn a-btn--secondary -size-md\"\n    [disabled]=\"(attributes$ | async)?.length === 0\"\n    (click)=\"toggleSettings()\"\n    aria-haspopup=\"dialog\"\n  >\n    <ng-container *ngIf=\"label\">{{ '@yap.filters.label' | i18n }}</ng-container>\n  </button>\n</div>\n\n<ng-template #settings>\n  <div class=\"o-filters\">\n    <div class=\"o-filters__header\">\n      <ng-container *ngIf=\"currentStep === FilterSteps.LIST\">\n        <h2>Paramétrer les filtres</h2>\n      </ng-container>\n      <ng-container *ngIf=\"currentStep === FilterSteps.CREATION || currentStep === FilterSteps.EDITION\">\n        <div class=\"u-display-flex -row -align-center\">\n          <button (click)=\"goBack()\" type=\"button\" class=\"back-button\">\n            <yap-icon iconSvg=\"chevron_right\"></yap-icon>\n          </button>\n          <h2>\n            {{\n              (currentStep === FilterSteps.CREATION ? '@yap.filters.creation.create' : '@yap.filters.creation.update')\n                | i18n\n            }}\n          </h2>\n        </div>\n      </ng-container>\n      <button (click)=\"toggleSettings()\" type=\"button\">\n        <yap-icon iconSvg=\"close\"></yap-icon>\n      </button>\n    </div>\n    <ng-container *ngIf=\"currentStep === FilterSteps.LIST\">\n      <div class=\"o-filters__content\">\n        <div *ngIf=\"(attributes$ | async)?.length === 0; else attributesExists\" class=\"a-table-wrapper\"></div>\n        <ng-template #attributesExists>\n          <table *ngIf=\"filters.length > 0; else noFilters\" class=\"a-table\">\n            <tbody cdkDropList [cdkDropListData]=\"filters\" (cdkDropListDropped)=\"drop($event)\">\n              <tr *ngFor=\"let filter of filters\" class=\"o-filters__filter\" cdkDrag>\n                <td>\n                  <span>{{ filter.name }}</span>\n                </td>\n                <td>\n                  <span>{{ getFilterAttributes(filter, 3) }}</span>\n                </td>\n                <td>\n                  <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"deleteFilter(filter.id)\">\n                    {{ '@yap.action.delete' | i18n }}\n                  </button>\n                </td>\n                <td>\n                  <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"goToEdition(filter)\">\n                    {{ '@yap.filters.list.modify' | i18n }}\n                  </button>\n                </td>\n                <td cdkDragHandle><yap-icon iconSvg=\"drag_indicator\"></yap-icon></td>\n              </tr>\n            </tbody>\n          </table>\n          <ng-template #noFilters>\n            <span class=\"o-filters__no-filters\">{{ '@yap.filters.noFilters' | i18n }}</span>\n          </ng-template>\n          <button (click)=\"goToCreation()\" class=\"a-btn a-btn--primary\">{{ '@yap.filters.list.add' | i18n }}</button>\n        </ng-template>\n      </div>\n    </ng-container>\n    <ng-container *ngIf=\"currentStep === FilterSteps.CREATION || currentStep === FilterSteps.EDITION\">\n      <div class=\"o-filters__content\">\n        <div class=\"m-form-label-field\">\n          <label for=\"filterName\" class=\"a-label\">{{ '@yap.filters.creation.name' | i18n }}</label>\n          <input id=\"filterName\" class=\"a-form-field\" type=\"text\" [(ngModel)]=\"filter.name\" />\n        </div>\n        <div class=\"m-form-label-field\">\n          <label for=\"filterType\" class=\"a-label\">{{ '@yap.filters.creation.type' | i18n }}</label>\n          <yap-select\n            id=\"filterType\"\n            [labelTranslate]=\"true\"\n            [itemsAsOption]=\"true\"\n            [placeholder]=\"'@yap.filters.creation.type' | i18n\"\n            [items]=\"types$ | async\"\n            bindLabel=\"label\"\n            bindValue=\"value\"\n            [(ngModel)]=\"filter.type\"\n            (ngModelChange)=\"updateFilterType($event)\"\n          >\n          </yap-select>\n        </div>\n        <div *ngIf=\"(currentFilterComponentType$ | async) === 'date'\" class=\"m-form-label-field u-display-flex -row\">\n          <label for=\"date-range\" class=\"a-label\">Plage de dates</label>\n          <yap-checkbox\n            id=\"date-range\"\n            [(ngModel)]=\"filter.hasDateRange\"\n            (ngModelChange)=\"this.currentOperators$.next(getOperators())\"\n          />\n        </div>\n        <div *ngIf=\"(currentFilterComponentType$ | async) === 'list'\" class=\"m-form-label-field\">\n          <label for=\"possibleValues\" class=\"a-label\">{{ '@yap.filters.creation.values' | i18n }}</label>\n          <input\n            id=\"possibleValues\"\n            class=\"a-form-field\"\n            type=\"text\"\n            [(ngModel)]=\"filter.possibleValues\"\n            placeholder=\"valeur1, valeur2, valeur3\"\n          />\n        </div>\n        <div class=\"m-form-label-field\">\n          <label for=\"attributes\" class=\"a-label\">{{ '@yap.filters.creation.attributes' | i18n }}</label>\n          <yap-select\n            id=\"attributes\"\n            [labelTranslate]=\"false\"\n            [itemsAsOption]=\"true\"\n            [multiple]=\"true\"\n            [items]=\"attributes$ | async\"\n            [ngModel]=\"filter.attributes\"\n            (ngModelChange)=\"selectAttribute($event)\"\n            [placeholder]=\"'@yap.filters.creation.attributes' | i18n\"\n            [autocomplete]=\"true\"\n            bindLabel=\"label\"\n          >\n          </yap-select>\n        </div>\n        <div class=\"m-form-label-field\">\n          <label for=\"operations\" class=\"a-label\">{{ '@yap.filters.attributes.operator' | i18n }}</label>\n          <yap-select\n            id=\"operations\"\n            [labelTranslate]=\"true\"\n            [itemsAsOption]=\"true\"\n            [items]=\"currentOperators$ | async\"\n            [(ngModel)]=\"filter.operator\"\n            [placeholder]=\"'@yap.filters.attributes.operator' | i18n\"\n            bindLabel=\"label\"\n            bindValue=\"value\"\n            [disabled]=\"(currentFilterComponentType$ | async) === 'list'\"\n          >\n          </yap-select>\n        </div>\n        <button\n          class=\"a-btn a-btn--primary\"\n          (click)=\"submitFilter()\"\n          [disabled]=\"!(filter.name && filter.type && filter.attributes.length !== 0 && filter.operator)\"\n          type=\"submit\"\n        >\n          {{ '@yap.toolbox.manifest.validate' | i18n }}\n        </button>\n      </div>\n    </ng-container>\n  </div>\n</ng-template>\n","import { Component, Input } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { DashboardGridLayout, DashboardSelectors } from '@onepoint-yap/dashboard';\nimport { map, Observable } from 'rxjs';\n\n@Component({\n  selector: 'yap-toolbox',\n  templateUrl: './toolbox.component.html'\n})\nexport class ToolboxComponent {\n  @Input() labels = true;\n  hasInitialPresentation$: Observable<boolean>;\n  isManualMode$: Observable<boolean>;\n\n  constructor(store: Store) {\n    this.hasInitialPresentation$ = store.select(DashboardSelectors.presentation).pipe(map((pres) => !!pres.initial));\n    this.isManualMode$ = store\n      .select(DashboardSelectors.windowManifest)\n      .pipe(map((pres) => (pres.grid?.layout ?? DashboardGridLayout.MANUAL) === DashboardGridLayout.MANUAL));\n  }\n}\n","<ul class=\"m-actions-list\" #input>\n  <li class=\"m-actions-list__item\" *ngIf=\"isManualMode$ | async\">\n    <yap-edit-mode-toggle\n      *yapAccess=\"{ module: 'dashboard', page: 'toolbox', action: 'edit_dashboard' }\"\n      [label]=\"labels\"\n    ></yap-edit-mode-toggle>\n  </li>\n  <li class=\"m-actions-list__item\">\n    <yap-filter-settings\n      *yapAccess=\"{ module: 'dashboard', page: 'toolbox', action: 'default_size' }\"\n      [style.z-index]=\"2\"\n      [label]=\"labels\"\n    ></yap-filter-settings>\n  </li>\n  <li class=\"m-actions-list__item\">\n    <yap-launch-tab\n      *yapAccess=\"{ module: 'dashboard', page: 'toolbox', action: 'new_tab' }\"\n      [label]=\"labels\"\n    ></yap-launch-tab>\n  </li>\n  <li class=\"m-actions-list__item\">\n    <yap-drag-widgets\n      *yapAccess=\"{ module: 'dashboard', page: 'toolbox', action: 'drag_widget' }\"\n      [labels]=\"labels\"\n    ></yap-drag-widgets>\n  </li>\n  <li class=\"m-actions-list__item\">\n    <yap-save-view\n      *yapAccess=\"{ module: 'dashboard', page: 'toolbox', action: 'save_view' }\"\n      [style.z-index]=\"2\"\n      [label]=\"labels\"\n    ></yap-save-view>\n  </li>\n  <li class=\"m-actions-list__item\" *ngIf=\"hasInitialPresentation$ | async\">\n    <yap-save-view\n      *yapAccess=\"{ module: 'dashboard', page: 'toolbox', action: 'save_view' }\"\n      [style.z-index]=\"2\"\n      [label]=\"labels\"\n      mode=\"directSave\"\n    ></yap-save-view>\n  </li>\n  <li class=\"m-actions-list__item\">\n    <yap-clear-view\n      *yapAccess=\"{ module: 'dashboard', page: 'toolbox', action: 'clear_view' }\"\n      [style.z-index]=\"2\"\n      [label]=\"labels\"\n    ></yap-clear-view>\n  </li>\n  <li class=\"m-actions-list__item is-screen-size-select\">\n    <yap-select-grid-layout\n      *yapAccess=\"{ module: 'dashboard', page: 'toolbox', action: 'default_size' }\"\n      [style.z-index]=\"2\"\n      [label]=\"labels\"\n    ></yap-select-grid-layout>\n  </li>\n</ul>\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport {\n  YapCoreModule,\n  YapDashboardModule,\n  YapI18nModule,\n  YapIconModule,\n  YapOverlayModule,\n  YapSelectModule,\n  YapShareModule,\n  YapToggleModule\n} from '@onepoint-yap/dashboard';\nimport { YapCheckboxModule } from '@onepoint-yap/dashboard/components/checkbox';\nimport { YapStepperModule } from '@onepoint-yap/dashboard/components/stepper';\nimport { ClearViewComponent } from './components/clear-view/clear-view.component';\nimport { DragWidgetsComponent } from './components/drag-widgets/drag-widgets.component';\nimport { EditModeToggleComponent } from './components/edit-mode-toggle/edit-mode-toggle.component';\nimport { LaunchTabComponent } from './components/launch-tab/launch-tab.component';\nimport { NamedQueryComponent } from './components/named-query/named-query.component';\nimport { SaveViewComponent } from './components/save-view/save-view.component';\nimport { SelectGridLayoutComponent } from './components/select-grid-layout/select-grid-layout.component';\nimport { ToolboxComponent } from './components/toolbox.component';\nimport { YapSelectGridLayoutCssComponent } from './style/css.component';\nimport { YapFilterSettingsComponent } from './components/filter-settings/filter-settings.component';\nimport { CdkDrag, CdkDragHandle, CdkDropList } from '@angular/cdk/drag-drop';\n\nconst components = [\n  ClearViewComponent,\n  DragWidgetsComponent,\n  EditModeToggleComponent,\n  LaunchTabComponent,\n  NamedQueryComponent,\n  SaveViewComponent,\n  SelectGridLayoutComponent,\n  ToolboxComponent,\n  YapSelectGridLayoutCssComponent,\n  YapFilterSettingsComponent\n];\n\n@NgModule({\n  declarations: [...components],\n  imports: [\n    CommonModule,\n    FormsModule,\n    OverlayModule,\n    YapOverlayModule,\n    YapCoreModule,\n    YapDashboardModule,\n    YapSelectModule,\n    YapIconModule,\n    YapCheckboxModule,\n    YapToggleModule,\n    YapStepperModule,\n    YapShareModule,\n    YapI18nModule,\n    CdkDropList,\n    CdkDrag,\n    CdkDragHandle\n  ],\n  exports: [...components]\n})\nexport class YapToolboxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i3","i4","i5","i5.YapSelectGridLayoutCssComponent","map","i7","i8.YapSelectGridLayoutCssComponent","i4.ClearViewComponent","i5.DragWidgetsComponent","i6.EditModeToggleComponent","i7.LaunchTabComponent","i8.SaveViewComponent","i9.SelectGridLayoutComponent","i10.YapFilterSettingsComponent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;MAQa,kBAAkB,CAAA;AAG7B,IAAA,WAAA,CAAoB,KAAY,EAAA;QAAZ,IAAK,CAAA,KAAA,GAAL,KAAK,CAAO;QAFvB,IAAK,CAAA,KAAA,GAAG,IAAI,CAAC;KAEc;IAEpC,KAAK,GAAA;QACH,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,CAAC;KACvD;8GAPU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,KAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,kFCR/B,mgBAWA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDHa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,SAAS;+BACE,gBAAgB,EAAA,QAAA,EAAA,mgBAAA,EAAA,CAAA;4FAIjB,KAAK,EAAA,CAAA;sBAAb,KAAK;;;MEMK,oBAAoB,CAAA;AAY/B,IAAA,WAAA,CACU,KAAY,EACZ,sBAA8C,EAC/C,kBAAsC,EAAA;QAFrC,IAAK,CAAA,KAAA,GAAL,KAAK,CAAO;QACZ,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB,CAAwB;QAC/C,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;QAdtC,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC;QACvB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;AAEV,QAAA,IAAA,CAAA,iBAAiB,GAAsB;AAC9C,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,QAAQ,EAAE,KAAK;SAChB,CAAC;QAQA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC;KACrD;IAED,SAAS,CAAC,MAAiB,EAAE,IAAY,EAAA;QACvC,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAEvD,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;SACzB,EAAE,GAAG,CAAC,CAAC;KACT;AAED,IAAA,QAAQ,CAAC,MAAa,EAAA;AACpB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,MAAM,CAAC,eAAe,EAAE,CAAC;KAC1B;8GAhCU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,KAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,sBAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,sFCfjC,u4EA4DA,EAAA,YAAA,EAAA,CAAA,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,EAAAE,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,qEAAA,EAAA,MAAA,EAAA,CAAA,2BAAA,EAAA,8BAAA,EAAA,qCAAA,EAAA,4BAAA,EAAA,4BAAA,EAAA,0BAAA,EAAA,2BAAA,EAAA,6BAAA,EAAA,8BAAA,EAAA,kCAAA,EAAA,+BAAA,EAAA,mCAAA,EAAA,mCAAA,EAAA,yBAAA,EAAA,iCAAA,EAAA,sCAAA,EAAA,gCAAA,EAAA,iCAAA,EAAA,uCAAA,EAAA,kCAAA,EAAA,yBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,4DAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FD7Ca,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,u4EAAA,EAAA,CAAA;sKAInB,MAAM,EAAA,CAAA;sBAAd,KAAK;;;MEPK,uBAAuB,CAAA;AAIlC,IAAA,WAAA,CAAoB,KAAiB,EAAA;QAAjB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAY;QAH5B,IAAK,CAAA,KAAA,GAAG,IAAI,CAAC;AAIpB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;KAChF;IAED,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC;KAC7D;8GAVU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,KAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,wFCTpC,uQASA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,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,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,GAAA,EAAA,QAAA,EAAA,OAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,UAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,EAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDAa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,SAAS;+BACE,sBAAsB,EAAA,QAAA,EAAA,uQAAA,EAAA,CAAA;4FAIvB,KAAK,EAAA,CAAA;sBAAb,KAAK;;;MEFK,kBAAkB,CAAA;AAG7B,IAAA,WAAA,CAAoB,KAAY,EAAA;QAAZ,IAAK,CAAA,KAAA,GAAL,KAAK,CAAO;QAFvB,IAAK,CAAA,KAAA,GAAG,IAAI,CAAC;KAEc;IAEpC,eAAe,GAAA;QACb,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC;KACnD;8GAPU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,KAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,kFCR/B,mpBAeA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,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,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDPa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,SAAS;+BACE,gBAAgB,EAAA,QAAA,EAAA,mpBAAA,EAAA,CAAA;4FAIjB,KAAK,EAAA,CAAA;sBAAb,KAAK;;;MEAK,mBAAmB,CAAA;AAK9B,IAAA,WAAA,CAAoB,KAAiB,EAAA;QAAjB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAY;QAJ5B,IAAK,CAAA,KAAA,GAAG,IAAI,CAAC;QACtB,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QAInB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;AAC9C,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;KAClF;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;KACxC;IAED,SAAS,CAAC,MAAiB,EAAE,EAAU,EAAA;QACrC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE;YACjG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;AACtD,SAAA;KACF;AAED,IAAA,SAAS,CAAC,MAAiB,EAAA;QACzB,IAAI,CAAC,MAAM,EAAE,CAAC;KACf;8GAtBU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,KAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,mFCThC,miCAwBA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDfa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,SAAS;+BACE,iBAAiB,EAAA,QAAA,EAAA,miCAAA,EAAA,CAAA;4FAIlB,KAAK,EAAA,CAAA;sBAAb,KAAK;;;AEYF,MAAO,iBAAkB,SAAQ,wBAAwB,CAAA;AAyB7D,IAAA,WAAA,CAAoB,KAAY,EAAU,OAAgB,EAAU,gBAAkC,EAAA;AACpG,QAAA,KAAK,EAAE,CAAC;QADU,IAAK,CAAA,KAAA,GAAL,KAAK,CAAO;QAAU,IAAO,CAAA,OAAA,GAAP,OAAO,CAAS;QAAU,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAxB7F,IAAK,CAAA,KAAA,GAAG,IAAI,CAAC;QACb,IAAI,CAAA,IAAA,GAA4B,QAAQ,CAAC;QAQlD,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;QAK9B,IAAU,CAAA,UAAA,GAAkB,EAAE,IAAI,EAAE,iBAAiB,CAAC,OAAO,EAAE,CAAC;AAChE,QAAA,IAAA,CAAA,IAAI,GAAiB,YAAY,CAAC,YAAY,CAAC;QAC/C,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;QAGvB,IAAO,CAAA,OAAA,GAAW,CAAC,CAAC;QACpB,IAAc,CAAA,cAAA,GAAW,CAAC,CAAC;QAC3B,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAC5B,IAAQ,CAAA,QAAA,GAAG,QAAQ,CAAC;QAKlB,IAAI,CAAC,aAAa,CAAC,GAAG,CACpB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,YAAY,KAAI;AAC5E,YAAA,IAAI,CAAC,eAAe,GAAG,YAAY,CAAC,OAAO;AACzC,kBAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AAClD,kBAAG,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAA0B,CAAC;AACpF,YAAA,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;YAChE,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC;SAC1C,CAAC,CACH,CAAC;AACF,QAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;AAC5F,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CACpB,IAAI,CAAC,KAAK;AACP,aAAA,MAAM,CAAC,kBAAkB,CAAC,cAAc,CAAC;AACzC,aAAA,SAAS,CAAC,CAAC,QAAQ,MAAM,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CACrE,CAAC;KACH;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;QACvC,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,CAAC,CAAC;YACzD,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;aAClC,EAAE,EAAE,CAAC,CAAC;AACR,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,gBAAgB,EAAE,OAAO,EAAE,CAAC;AACjC,YAAA,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC/E,YAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AACnC,SAAA;KACF;IAED,IAAI,GAAA;QACF,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,CAAC,CAAC;;QAGzD,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,YAAY,GAAG;AACjB,gBAAA,IAAI,EAAE,IAAI,CAAC,eAAgB,CAAC,IAAI;gBAChC,EAAE,EAAE,EAAE,EAAE;AACR,gBAAA,WAAW,EAAE,IAAI,CAAC,eAAgB,CAAC,WAAW;AAC9C,gBAAA,KAAK,EAAE,IAAI,CAAC,eAAgB,CAAC,KAAK;gBAClC,UAAU,EAAE,IAAI,CAAC,UAAU;AAC3B,gBAAA,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,KAAK,IAAI,KAAK;aAC5C,CAAC;AACF,YAAA,IAAI,IAAI,CAAC,IAAI,IAAI,YAAY,EAAE;gBAC7B,IAAI,IAAI,CAAC,eAAe,EAAE;oBACxB,YAAY,CAAC,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;oBAC1C,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;AAC3D,iBAAA;AACF,aAAA;AACD,YAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;YACjE,IAAI,CAAC,KAAK,CAAC,QAAQ,CACjB,gBAAgB,CAAC,kBAAkB,CAAC;AAClC,gBAAA,YAAY,EAAE,YAAmC;gBACjD,QAAQ,EAAE,QAAQ,CAAC,OAAO;AAC3B,aAAA,CAAC,CACH,CAAC;SACH,EAAE,GAAG,CAAC,CAAC;QAER,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;IAED,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC7B,SAAA;QACD,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,YAAY,EAAE,CAAC;AACrB,SAAA;KACF;AACD,IAAA,gBAAgB,CAAC,MAAqB,EAAA;AACpC,QAAA,IAAI,CAAC,eAAgB,CAAC,UAAU,GAAG,MAAM,CAAC;KAC3C;AACD,IAAA,WAAW,CAAC,MAAc,EAAA;AACxB,QAAA,IAAI,CAAC,eAAgB,CAAC,IAAI,GAAG,MAAM,CAAC;KACrC;AAED,IAAA,WAAW,CAAC,MAAc,EAAA;AACxB,QAAA,IAAI,CAAC,eAAgB,CAAC,WAAW,GAAG,MAAM,CAAC;KAC5C;IAED,UAAU,GAAA;QACR,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CACzC,IAAI,aAAa,CAAC;AAChB,YAAA,WAAW,EAAE,IAAI;YACjB,UAAU,EAAE,CAAC,iBAAiB,CAAC;AAC/B,YAAA,aAAa,EAAE,UAAU;AAC1B,SAAA,CAAC,CACH,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAChF,QAAA,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;AAC5E,QAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;KAC9F;IAED,OAAO,GAAA;QACL,QACE,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE,EAC9G;KACH;IAED,oBAAoB,GAAA;AAClB,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC;QAC3C,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,CAAC,CAAC;YACzD,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CACjD,IAAI,aAAa,CAAC;AAChB,gBAAA,WAAW,EAAE,IAAI;gBACjB,UAAU,EAAE,CAAC,iBAAiB,CAAC;AAC/B,gBAAA,aAAa,EAAE,UAAU;AAC1B,aAAA,CAAC,CACH,CAAC;YACF,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAChF,YAAA,IAAI,CAAC,wBAAwB,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;AAC5F,YAAA,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC7G,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;aAChD,EAAE,EAAE,CAAC,CAAC;AACR,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,wBAAwB,EAAE,OAAO,EAAE,CAAC;AACzC,YAAA,IAAI,CAAC,wBAAwB,GAAG,SAAS,CAAC;YAC1C,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC/E,YAAA,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AAC1C,SAAA;KACF;AAED,IAAA,IAAI,aAAa,GAAA;QACf,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,cAAc,CAAC;KAChE;IAED,UAAU,GAAA;QACR,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC7B,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,IAAI,EAAE,CAAC;AACb,SAAA;KACF;IAED,OAAO,GAAA;QACL,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;IACD,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;KAClC;IACD,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE;AAC/B,YAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AACnC,SAAA;AACD,QAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;KACpC;IAED,MAAM,GAAA;QACJ,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;IAED,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE;YAC/B,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC1B,SAAA;KACF;8GA7LU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,KAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,OAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EAYS,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,eAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,OAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,QAAA,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,gBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,WAAW,EAEH,EAAA,EAAA,YAAA,EAAA,wBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,WAAW,oDCpC1D,q1OA0MA,EAAA,YAAA,EAAA,CAAA,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,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,4EAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,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,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,wDAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,eAAA,EAAA,eAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDpLa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,SAAS;+BACE,eAAe,EAAA,QAAA,EAAA,q1OAAA,EAAA,CAAA;iJAIhB,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACc,KAAK,EAAA,CAAA;sBAAxB,SAAS;uBAAC,OAAO,CAAA;gBACG,MAAM,EAAA,CAAA;sBAA1B,SAAS;uBAAC,QAAQ,CAAA;gBACS,aAAa,EAAA,CAAA;sBAAxC,SAAS;uBAAC,eAAe,CAAA;gBACQ,mBAAmB,EAAA,CAAA;sBAApD,SAAS;uBAAC,qBAAqB,CAAA;gBACZ,KAAK,EAAA,CAAA;sBAAxB,SAAS;uBAAC,OAAO,CAAA;gBACI,OAAO,EAAA,CAAA;sBAA5B,SAAS;uBAAC,SAAS,CAAA;gBACC,MAAM,EAAA,CAAA;sBAA1B,SAAS;uBAAC,QAAQ,CAAA;gBAGiC,cAAc,EAAA,CAAA;sBAAjE,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,gBAAgB,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;gBAEU,sBAAsB,EAAA,CAAA;sBAAjF,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,wBAAwB,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;;;ME5B/C,+BAA+B,CAAA;8GAA/B,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA/B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,+BAA+B,kEAJhC,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,w6BAAA,EAAA,onCAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAID,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAN3C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,4BAA4B,EAC5B,QAAA,EAAA,EAAE,EAEG,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,MAAA,EAAA,CAAA,w6BAAA,EAAA,onCAAA,CAAA,EAAA,CAAA;;;ACajC,MAAO,yBAA0B,SAAQ,wBAAwB,CAAA;AAarE,IAAA,WAAA,CAAoB,KAAY,EAAU,OAAgB,EAAU,gBAAkC,EAAA;AACpG,QAAA,KAAK,EAAE,CAAC;QADU,IAAK,CAAA,KAAA,GAAL,KAAK,CAAO;QAAU,IAAO,CAAA,OAAA,GAAP,OAAO,CAAS;QAAU,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAZ7F,IAAK,CAAA,KAAA,GAAG,IAAI,CAAC;AAEtB,QAAA,IAAA,CAAA,YAAY,GAAwB,mBAAmB,CAAC,MAAM,CAAC;QAC/D,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QAMpB,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;AAK3B,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CACpB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,MAAM,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,CAAC,CACrG,CAAC;QACF,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC,IAAI,CAChF,GAAG,CAAC,CAAC,QAAQ,KACX,oBAAoB,CAAC,UAAU,EAAE;AAC9B,aAAA,MAAM,CAAC,CAAC,MAAM,KAAI;AACjB,YAAA,OAAO,oBAAoB,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,EAAE,MAAM,CAAC;AAC7F,SAAC,CAAC;AACD,aAAA,GAAG,CAAC,CAAC,MAAM,MAAM;YAChB,KAAK,EAAE,MAAM,CAAC,GAAG;AACjB,YAAA,WAAW,EAAE,sBAAsB,GAAG,MAAM,CAAC,GAAG;YAChD,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC,CAAC,CACN,CACF,CAAC;QAEF,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SACzB,EAAE,GAAG,CAAC,CAAC;KACT;AAED,IAAA,YAAY,CAAC,MAA2B,EAAA;AACtC,QAAA,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;KAC5B;IAED,qBAAqB,GAAA;AACnB,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACzB,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC/E,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AACtC,SAAA;KACF;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACpB,YAAA,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;YACrC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CACnC,IAAI,aAAa,CAAC;AAChB,gBAAA,WAAW,EAAE,IAAI;AACjB,gBAAA,UAAU,EAAE,CAAC,iBAAiB,EAAE,oCAAoC,CAAC;AACrE,gBAAA,aAAa,EAAE,UAAU;AAC1B,aAAA,CAAC,CACH,CAAC;YACF,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAChF,YAAA,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;AAC/E,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;YACjF,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;aACxC,EAAE,EAAE,CAAC,CAAC;AACR,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;AAC1B,YAAA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC/E,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AACrC,YAAA,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;AACtC,SAAA;KACF;IAED,QAAQ,GAAA;QACN,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;AACpF,SAAA;QACD,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;IACD,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;KAClC;IAED,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;KACpC;8GAzFU,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,KAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,OAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAzB,yBAAyB,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAKL,WAAW,EAAA,EAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,OAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECxB5C,q+EAkEA,EAAA,YAAA,EAAA,CAAA,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,EAAAD,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,+BAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FD/Ca,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,SAAS;+BACE,wBAAwB,EAAA,QAAA,EAAA,q+EAAA,EAAA,CAAA;iJAIzB,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAIwC,QAAQ,EAAA,CAAA;sBAArD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,UAAU,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;gBAClB,WAAW,EAAA,CAAA;sBAApC,SAAS;uBAAC,aAAa,CAAA;gBACA,SAAS,EAAA,CAAA;sBAAhC,SAAS;uBAAC,WAAW,CAAA;gBACF,KAAK,EAAA,CAAA;sBAAxB,SAAS;uBAAC,OAAO,CAAA;gBACI,OAAO,EAAA,CAAA;sBAA5B,SAAS;uBAAC,SAAS,CAAA;;;IEFV,YAIX;AAJD,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,WAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,WAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACrB,CAAC,EAJW,WAAW,KAAX,WAAW,GAItB,EAAA,CAAA,CAAA,CAAA;AAcK,MAAO,0BAA2B,SAAQ,wBAAwB,CAAA;IAmCtE,WACU,CAAA,KAAY,EACZ,OAAgB,EAChB,gBAAkC,EAClC,oBAA0C,EAC1C,QAAkB,EAAA;AAE1B,QAAA,KAAK,EAAE,CAAC;QANA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAO;QACZ,IAAO,CAAA,OAAA,GAAP,OAAO,CAAS;QAChB,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAClC,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAAsB;QAC1C,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAvCnB,IAAK,CAAA,KAAA,GAAG,IAAI,CAAC;QAGtB,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;QAEhC,IAAO,CAAA,OAAA,GAAa,EAAE,CAAC;AAEvB,QAAA,IAAA,CAAA,2BAA2B,GAAG,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;AACtD,QAAA,IAAA,CAAA,WAAW,GAAgB,WAAW,CAAC,IAAI,CAAC;QAC5C,IAAK,CAAA,KAAA,GAAG,WAAW,CAAC;AACpB,QAAA,IAAA,CAAA,MAAM,GAAW;YACf,EAAE,EAAE,EAAE,EAAE;AACR,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,UAAU,EAAE,EAAE;SACf,CAAC;AAEF,QAAA,IAAA,CAAA,SAAS,GAAG;AACV,YAAA,EAAE,KAAK,EAAE,mCAAmC,EAAE,KAAK,EAAE,QAAQ,EAAE;AAC/D,YAAA,EAAE,KAAK,EAAE,sCAAsC,EAAE,KAAK,EAAE,YAAY,EAAE;AACtE,YAAA,EAAE,KAAK,EAAE,+BAA+B,EAAE,KAAK,EAAE,UAAU,EAAE;AAC7D,YAAA,EAAE,KAAK,EAAE,gCAAgC,EAAE,KAAK,EAAE,YAAY,EAAE;AAChE,YAAA,EAAE,KAAK,EAAE,8BAA8B,EAAE,KAAK,EAAE,UAAU,EAAE;AAC5D,YAAA,EAAE,KAAK,EAAE,wCAAwC,EAAE,KAAK,EAAE,cAAc,EAAE;AAC1E,YAAA,EAAE,KAAK,EAAE,sCAAsC,EAAE,KAAK,EAAE,YAAY,EAAE;AACtE,YAAA,EAAE,KAAK,EAAE,sCAAsC,EAAE,KAAK,EAAE,QAAQ,EAAE;AAClE,YAAA,EAAE,KAAK,EAAE,sCAAsC,EAAE,KAAK,EAAE,SAAS,EAAE;SACpE,CAAC;QACF,IAAiB,CAAA,iBAAA,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxD,IAAO,CAAA,OAAA,GAAY,EAAE,CAAC;QAEtB,IAAkB,CAAA,kBAAA,GAAG,IAAI,eAAe,CAAW,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAoN/E,IAAW,CAAA,WAAA,GAAG,WAAW,CAAC;QAzM3C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;AACjE,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CACpB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAI;AACpC,YAAA,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,GAAG,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;SAC9D,CAAC,CACH,CAAC;AAEF,QAAA,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC;YAC/B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC,cAAc,CAAC;AACrD,YAAA,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,gBAAgB,CAAC;AAClD,SAAA,CAAC,CAAC,IAAI,CACLG,KAAG,CAAC,CAAC,CAAC,WAAW,EAAE,eAAe,CAAC,KACjC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM;AACxC,YAAA,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI;AACnE,YAAA,KAAK,EAAE,EAAE;SACV,CAAC,CAAC,CACJ,CACF,CAAC;QAEF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,CACjDA,KAAG,CAAC,CAAC,KAAK,KACR,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM;YACnB,KAAK,EAAE,qBAAqB,GAAG,IAAI;AACnC,YAAA,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC,CACJ,CACF,CAAC;AAEF,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CACpB,IAAI,CAAC,2BAA2B,CAAC,SAAS,CAAC,MAAK;YAC9C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;SAClD,CAAC,CACH,CAAC;AAEF,QAAA,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC;AAC/B,YAAA,KAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC,cAAc,CAAC;AAChD,YAAA,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,gBAAgB,CAAC;AACjD,YAAA,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC;AACpC,YAAA,IAAI,CAAC,2BAA2B;AACjC,SAAA,CAAC,CAAC,IAAI,CACL,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EACnDA,KAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,kBAAkB,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,KAAI;AAC1E,YAAA,IAAI,iBAAiB,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,UAAU,KACpD,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,UAAU,GAAG,KAAK,CAC7E,CAAC;YACF,MAAM,UAAU,GAAgB,EAAE,CAAC;AACnC,YAAA,iBAAiB,CAAC,OAAO,CAAC,CAAC,UAAU,KAAI;gBACvC,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBAC3D,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;oBACjC,UAAU,CAAC,IAAI,CAAC;wBACd,EAAE,EAAE,IAAI,CAAC,EAAE;wBACX,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,wBAAA,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;wBAC3D,UAAU,EAAE,UAAU,CAAC,EAAE;wBACzB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,SAAS,CAAC,MAAM;AAChF,qBAAA,CAAC,CAAC;AACL,iBAAC,CAAC,CAAC;AACL,aAAC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;SACzD,CAAC,CACH,CAAC;KACH;IAED,kBAAkB,CAAC,UAAsB,EAAE,OAAgB,EAAA;QACzD,IAAI,KAAK,GAAsB,SAAS,CAAC;AACzC,QAAA,IAAI,UAAU,CAAC,UAAU,KAAK,SAAS,EAAE;AACvC,YAAA,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,EAAE,KAAK,UAAU,CAAC,MAAM,CAAC,CAAC;AACjE,SAAA;AAAM,aAAA,IACL,UAAU,CAAC,UAAU,KAAK,YAAY;AACtC,YAAA,UAAU,CAAC,OAAO;YAClB,UAAU,CAAC,OAAO,CAAC,IAAI,KAAK,eAAe,CAAC,UAAU,EACtD;YACA,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,EAAE,KAAM,UAAU,CAAC,OAAkC,CAAC,MAAM,CAAC,CAAC;AACrG,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KACd;IAED,gBAAgB,CAAC,aAAqB,EAAE,UAAuB,EAAA;AAC7D,QAAA,QAAQ,aAAa;AACnB,YAAA,KAAK,MAAM;AACT,gBAAA,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,OAAO,CAAC,CAAC;AACtE,YAAA,KAAK,QAAQ;AACX,gBAAA,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACjH,YAAA,KAAK,MAAM;gBACT,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAChG,YAAA;gBACE,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC5C,MAAM,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;AACpG,oBAAA,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;AACjE,iBAAA;AACD,gBAAA,OAAO,UAAU,CAAC;AACrB,SAAA;KACF;AAED,IAAA,IAAI,CAAC,KAA4B,EAAA;AAC/B,QAAA,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;KACxE;IAED,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC;QAC3C,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,IAAI,CAAC,YAAY,EAAE,CAAC;AACrB,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,kBAAkB,EAAE,OAAO,EAAE,CAAC;AACnC,YAAA,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;YACpC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC/E,YAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAC5E,IAAI,CAAC,MAAM,EAAE,CAAC;AACf,SAAA;KACF;IAED,YAAY,GAAA;QACV,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAC3C,IAAI,aAAa,CAAC;AAChB,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,UAAU,EAAE,CAAC,iBAAiB,EAAE,oCAAoC,CAAC;AACrE,YAAA,aAAa,EAAE,UAAU;AAC1B,SAAA,CAAC,CACH,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAChF,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,KAAI;YACtD,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,CAAC,cAAc,EAAE,CAAC;AACxB,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;KAClG;AAED,IAAA,gBAAgB,CAAC,MAAW,EAAA;AAC1B,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,KAAK,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC3E,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE;YAC7C,IAAI,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;AAC1G,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CACpB,SAAS,CAAC,SAAS,CAAC,CAAC,YAAY,KAAI;gBACnC,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aACnE,CAAC,CACH,CAAC;AACH,SAAA;KACF;IAED,mBAAmB,CAAC,MAAc,EAAE,SAAiB,EAAA;QACnD,SAAS,GAAG,SAAS,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;QACzF,OAAO,MAAM,CAAC,UAAU;aACrB,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC;AACxB,aAAA,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC;aACnB,IAAI,CAAC,IAAI,CAAC,CAAC;KACf;IAED,MAAM,GAAA;QACJ,IAAI,CAAC,MAAM,GAAG;YACZ,EAAE,EAAE,EAAE,EAAE;AACR,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,UAAU,EAAE,EAAE;SACf,CAAC;AACF,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC;KACrC;AAED,IAAA,WAAW,CAAC,MAAc,EAAA;AACxB,QAAA,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;AAC5B,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC;KACxC;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC1C,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC;KACxC;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC7E,IAAI,CAAC,MAAM,EAAE,CAAC;KACf;AAED,IAAA,eAAe,CAAC,MAAmB,EAAA;AACjC,QAAA,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC;AAChC,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;KAC7D;AAED,IAAA,YAAY,CAAC,EAAU,EAAA;AACrB,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;KAC5D;IAED,YAAY,GAAA;QACV,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,KAAI;AACxC,YAAA,QAAQ,IAAI,CAAC,2BAA2B,CAAC,KAAK;AAC5C,gBAAA,KAAK,MAAM;AACT,oBAAA,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY;AAC7B,0BAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;AAChD,0BAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACtF,gBAAA,KAAK,MAAM;oBACT,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC7C,gBAAA,KAAK,QAAQ;AACX,oBAAA,OAAO,CAAC,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzF,gBAAA,KAAK,MAAM;AACT,oBAAA,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACjG,gBAAA;AACE,oBAAA,OAAO,QAAQ,CAAC;AACnB,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;8GAlPU,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,KAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,OAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAJ,IAAA,CAAA,oBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,EAEN,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,WAAW,EA+BV,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,gBAAgB,oDC7ElD,smNA2JA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,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,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,UAAA,EAAA,UAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,IAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,4BAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,+BAAA,EAAA,2BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,iBAAA,EAAA,0BAAA,EAAA,qBAAA,EAAA,yBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,+BAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAL,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FD/Ga,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAJtC,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,smNAAA,EAAA,CAAA;6MAItB,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACwC,gBAAgB,EAAA,CAAA;sBAA7D,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,UAAU,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;gBA+BQ,SAAS,EAAA,CAAA;sBAA5D,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,WAAW,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAA;;;MEpEvC,gBAAgB,CAAA;AAK3B,IAAA,WAAA,CAAY,KAAY,EAAA;QAJf,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC;AAKrB,QAAA,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,IAAI,CAACI,KAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACjH,IAAI,CAAC,aAAa,GAAG,KAAK;AACvB,aAAA,MAAM,CAAC,kBAAkB,CAAC,cAAc,CAAC;aACzC,IAAI,CAACA,KAAG,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,mBAAmB,CAAC,MAAM,MAAM,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;KAC1G;8GAVU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,KAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,iFCT7B,s8DAwDA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,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,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAO,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,0BAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAd,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FD/Ca,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAJ5B,SAAS;+BACE,aAAa,EAAA,QAAA,EAAA,s8DAAA,EAAA,CAAA;4FAId,MAAM,EAAA,CAAA;sBAAd,KAAK;;;AEkBR,MAAM,UAAU,GAAG;IACjB,kBAAkB;IAClB,oBAAoB;IACpB,uBAAuB;IACvB,kBAAkB;IAClB,mBAAmB;IACnB,iBAAiB;IACjB,yBAAyB;IACzB,gBAAgB;IAChB,+BAA+B;IAC/B,0BAA0B;CAC3B,CAAC;MAwBW,gBAAgB,CAAA;8GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,iBAlC3B,kBAAkB;YAClB,oBAAoB;YACpB,uBAAuB;YACvB,kBAAkB;YAClB,mBAAmB;YACnB,iBAAiB;YACjB,yBAAyB;YACzB,gBAAgB;YAChB,+BAA+B;AAC/B,YAAA,0BAA0B,aAMxB,YAAY;YACZ,WAAW;YACX,aAAa;YACb,gBAAgB;YAChB,aAAa;YACb,kBAAkB;YAClB,eAAe;YACf,aAAa;YACb,iBAAiB;YACjB,eAAe;YACf,gBAAgB;YAChB,cAAc;YACd,aAAa;YACb,WAAW;YACX,OAAO;AACP,YAAA,aAAa,aA9Bf,kBAAkB;YAClB,oBAAoB;YACpB,uBAAuB;YACvB,kBAAkB;YAClB,mBAAmB;YACnB,iBAAiB;YACjB,yBAAyB;YACzB,gBAAgB;YAChB,+BAA+B;YAC/B,0BAA0B,CAAA,EAAA,CAAA,CAAA,EAAA;AAyBf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAnBzB,YAAY;YACZ,WAAW;YACX,aAAa;YACb,gBAAgB;YAChB,aAAa;YACb,kBAAkB;YAClB,eAAe;YACf,aAAa;YACb,iBAAiB;YACjB,eAAe;YACf,gBAAgB;YAChB,cAAc;YACd,aAAa,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAOJ,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAtB5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,GAAG,UAAU,CAAC;AAC7B,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,aAAa;wBACb,gBAAgB;wBAChB,aAAa;wBACb,kBAAkB;wBAClB,eAAe;wBACf,aAAa;wBACb,iBAAiB;wBACjB,eAAe;wBACf,gBAAgB;wBAChB,cAAc;wBACd,aAAa;wBACb,WAAW;wBACX,OAAO;wBACP,aAAa;AACd,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC;AACzB,iBAAA,CAAA;;;AC9DD;;AAEG;;;;"}