{"version":3,"file":"ng-devui-toggle-menu.mjs","sources":["../../devui/toggle-menu/toggle-menu-list.component.ts","../../devui/toggle-menu/toggle-menu-list.component.html","../../devui/toggle-menu/toggle-menu-container.component.ts","../../devui/toggle-menu/toggle-menu-container.component.html","../../devui/toggle-menu/toggle-menu-input.component.ts","../../devui/toggle-menu/toggle-menu-input.component.html","../../devui/toggle-menu/toggle-menu-label.component.ts","../../devui/toggle-menu/toggle-menu-label.component.html","../../devui/toggle-menu/toggle-menu-list-item.component.ts","../../devui/toggle-menu/toggle-menu-list-item.component.html","../../devui/toggle-menu/toggle-menu-operation.component.ts","../../devui/toggle-menu/toggle-menu-operation.component.html","../../devui/toggle-menu/toggle-menu-placeholder.component.ts","../../devui/toggle-menu/toggle-menu-search.component.ts","../../devui/toggle-menu/toggle-menu-search.component.html","../../devui/toggle-menu/toggle-menu.module.ts","../../devui/toggle-menu/ng-devui-toggle-menu.ts"],"sourcesContent":["import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\r\nimport {\r\n  ChangeDetectionStrategy,\r\n  ChangeDetectorRef,\r\n  Component,\r\n  ElementRef,\r\n  EventEmitter,\r\n  Input,\r\n  OnChanges,\r\n  OnDestroy,\r\n  OnInit,\r\n  Output,\r\n  SimpleChanges,\r\n  TemplateRef,\r\n  ViewChild,\r\n} from '@angular/core';\r\nimport { I18nInterface, I18nService } from 'ng-devui/i18n';\r\nimport { fadeInOut } from 'ng-devui/utils';\r\nimport { Subscription } from 'rxjs';\r\nimport { ToggleMenuListItem } from './toggle-menu.type';\r\n\r\n@Component({\r\n  selector: 'd-toggle-menu-list',\r\n  templateUrl: './toggle-menu-list.component.html',\r\n  styleUrls: [`./toggle-menu-list.component.scss`],\r\n  animations: [fadeInOut],\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  preserveWhitespaces: false,\r\n})\r\nexport class ToggleMenuListComponent implements OnInit, OnChanges, OnDestroy {\r\n  /**\r\n   * 【必选】下拉选项资源，支持Array<string>, Array<{key: value}>\r\n   */\r\n  @Input() options: Array<ToggleMenuListItem> = [];\r\n  /**\r\n   * 【当传入资源（options）类型为Array<{key: value}，必选】针对传入资源options的每项对应字段做禁用操作的key\r\n   */\r\n  @Input() optionDisabledKey = '';\r\n  /**\r\n   * 【当传入资源（options）类型为Array<{key: value}，必选】针对传入资源options的每项对应字段禁止变更的key\r\n   */\r\n  @Input() optionImmutableKey = '';\r\n  /**\r\n   * 【当传入资源（options）类型为Array<{key: value}，可选】如使用分组需设置\r\n   */\r\n  @Input() optionGroupKey = '';\r\n  /**\r\n   * 【可选】下拉选框尺寸\r\n   */\r\n  @Input() size: '' | 'sm' | 'lg';\r\n  @Input() keyword: string;\r\n  /**\r\n   * 【可选】是否在搜索过滤状态中\r\n   */\r\n  @Input() isFiltering = false;\r\n  /**\r\n   *  【可选】启用数据懒加载，默认不启用\r\n   */\r\n  @Input() enableLazyLoad = false;\r\n  /**\r\n   * 【可选】是否虚拟滚动\r\n   */\r\n  @Input() virtualScroll = false;\r\n\r\n  /**\r\n   * 【必选】下拉列表单项模板\r\n   */\r\n  @Input() listItemTemplate: TemplateRef<any>;\r\n  /**\r\n   * 【可选】自定义 loading 模板\r\n   */\r\n  @Input() loadingTemplateRef: TemplateRef<any>;\r\n  /**\r\n   * 【可选】配置无数据展示\r\n   */\r\n  @Input() noResultItemTemplate: TemplateRef<any>;\r\n  /**\r\n   * 【可选】支持自定义区域显示内容\r\n   */\r\n  @Input() customViewTemplate: TemplateRef<any>;\r\n  /**\r\n   * customViewTemplate的方向，支持下方和右方\r\n   */\r\n  @Input() customViewDirection: 'top' | 'bottom' | 'right' | 'left' = 'bottom';\r\n  /**\r\n   * 【可选】模板高度\r\n   */\r\n  @Input() templateItemSize: number; // 模板itemSize，appendToBody为true\r\n  /**\r\n   * 【可选】下拉菜单高度，建议使用px作为高度单位\r\n   */\r\n  @Input() set scrollHeight(value) {\r\n    this._scrollHeight = `${parseInt(value, 10)}px`;\r\n  }\r\n\r\n  get scrollHeight() {\r\n    return this._scrollHeight;\r\n  }\r\n\r\n  @Input() selectIndex = -1;\r\n  /**\r\n   * 【可选】是否允许单选状态下无选中值时高亮某项\r\n   */\r\n  @Input() hasSelectIndex: boolean;\r\n  /**\r\n   * 【可选】是否支持多选\r\n   */\r\n  @Input() multiple: boolean;\r\n  @Input() multiItems = [];\r\n  @Input() value: ToggleMenuListItem | Array<ToggleMenuListItem>;\r\n  /**\r\n   * 【可选】是否支持全选\r\n   */\r\n  @Input() isSelectAll = false;\r\n  /**\r\n   * 【可选】配置多选的时候是否维持原数组排序还是用户选择的顺序排序，默认是用户顺序\r\n   */\r\n  @Input() keepMultipleOrder: 'origin' | 'user-select' = 'user-select';\r\n  @Input() eventHandle: any;\r\n  @Input() closeScope: 'all' | 'blank' | 'none' = 'all';\r\n  /**\r\n   * select下拉toggle事件，值为true或false\r\n   */\r\n  @Output() toggleChange = new EventEmitter<any>();\r\n  @Output() valueChange = new EventEmitter<any>();\r\n  @Output() loadMore = new EventEmitter<any>();\r\n  @ViewChild('dropdownUl') dropdownUl: ElementRef;\r\n  @ViewChild(CdkVirtualScrollViewport) virtualScrollViewport: CdkVirtualScrollViewport;\r\n\r\n  get realVirtualScrollItemSize() {\r\n    const itemSize = (this.templateItemSize || this.virtualScrollItemSize[this.size || 'normal']) + this.virtualScrollItemSize.space;\r\n    const num = Math.round(this.scrollHeightNum / itemSize) || 10;\r\n    this.minBuffer = num * 1.5 * itemSize;\r\n    this.maxBuffer = num * 2.5 * itemSize;\r\n    return itemSize;\r\n  }\r\n\r\n  _scrollHeight = '300px';\r\n  i18nCommonText: I18nInterface['common'];\r\n  i18nSubscription: Subscription;\r\n  availableOptions = [];\r\n  activeIndex = -1;\r\n  allChecked = false;\r\n  halfChecked = false;\r\n  showLoading = false;\r\n  scrollHeightNum: number;\r\n  minBuffer: number;\r\n  maxBuffer: number;\r\n  virtualScrollViewportSizeMightChange = false;\r\n  virtualScrollItemSize: any = {\r\n    sm: 30,\r\n    normal: 36,\r\n    lg: 50,\r\n    space: 4,\r\n  };\r\n  // 容器边距，虚拟滚动设置高度需考虑上下边距\r\n  CONTAINER_MARGINS = 12;\r\n\r\n  constructor(private changeDetectorRef: ChangeDetectorRef, private i18n: I18nService) {}\r\n\r\n  ngOnInit() {\r\n    this.setI18nText();\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    const { options, value, eventHandle } = changes;\r\n    if (options) {\r\n      this.availableOptions = this.options;\r\n      this.setAvailableOptions();\r\n      // 显示数据变更，需要判断全选半选状态\r\n      if (this.isSelectAll) {\r\n        const selectedItemForFilterOptions = [];\r\n        this.multiItems.forEach((item) => {\r\n          this.availableOptions.forEach((option) => {\r\n            if (item.id === option.id) {\r\n              selectedItemForFilterOptions.push(item);\r\n            }\r\n          });\r\n        });\r\n        this.setChecked(selectedItemForFilterOptions);\r\n      }\r\n      if (\r\n        !this.hasSelectIndex &&\r\n        !this.multiple &&\r\n        (!this.value || (this.availableOptions && !this.availableOptions.find((option) => option.option === this.value)))\r\n      ) {\r\n        this.selectIndex = this.isFiltering && this.availableOptions && this.availableOptions.length > 0 ? 0 : -1;\r\n      }\r\n      if (this.virtualScroll && this.virtualScrollViewport) {\r\n        this.virtualScrollViewportSizeMightChange = true;\r\n        this.virtualScrollViewport.checkViewportSize();\r\n      }\r\n      this.changeDetectorRef.markForCheck();\r\n    }\r\n    if (value) {\r\n      this.setAvailableOptions();\r\n    }\r\n    if (eventHandle?.currentValue) {\r\n      const evt = eventHandle.currentValue;\r\n      const { event, type } = evt;\r\n      switch (type) {\r\n      case 'keydown.esc':\r\n        this.onEscKeyup(event);\r\n        break;\r\n      case 'keydown.ArrowUp':\r\n        this.handleKeyUpEvent(event);\r\n        break;\r\n      case 'keydown.ArrowDown':\r\n        this.handleKeyDownEvent(event);\r\n        break;\r\n      case 'keydown.enter':\r\n        this.handleKeyEnterEvent(event);\r\n        break;\r\n      default:\r\n      }\r\n    }\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    if (this.i18nSubscription) {\r\n      this.i18nSubscription.unsubscribe();\r\n    }\r\n  }\r\n\r\n  setI18nText() {\r\n    this.i18nCommonText = this.i18n.getI18nText().common;\r\n    this.i18nSubscription = this.i18n.langChange().subscribe((data) => {\r\n      this.i18nCommonText = data.common;\r\n    });\r\n  }\r\n\r\n  setAvailableOptions() {\r\n    if (!Array.isArray(this.availableOptions)) {\r\n      return;\r\n    }\r\n    const result = this.multiple ? this.value : [this.value];\r\n    const _value = this.value ? result : [];\r\n    this.availableOptions = this.availableOptions.map((item, index) =>\r\n      item.id >= 0 && item.option\r\n        ? {\r\n          isChecked: _value.findIndex((i) => JSON.stringify(i) === JSON.stringify(item.option)) > -1,\r\n          id: item.id,\r\n          option: item.option,\r\n        }\r\n        : { isChecked: _value.findIndex((i) => JSON.stringify(i) === JSON.stringify(item)) > -1, id: index, option: item }\r\n    );\r\n  }\r\n\r\n  setChecked(selectedItem) {\r\n    if (!selectedItem) {\r\n      return;\r\n    }\r\n    if (!this.isSelectAll) {\r\n      return;\r\n    }\r\n    this.halfChecked = false;\r\n    if (selectedItem.length === this.availableOptions.length) {\r\n      this.allChecked = true;\r\n    } else if (selectedItem.length === 0) {\r\n      this.allChecked = false;\r\n    } else {\r\n      this.halfChecked = true;\r\n    }\r\n  }\r\n\r\n  selectAll() {\r\n    const mutableOption = this.optionImmutableKey\r\n      ? this.availableOptions.filter((item) => !item.option[this.optionImmutableKey])\r\n      : this.availableOptions;\r\n    const selectedImmutableOption = this.optionImmutableKey ? this.multiItems.filter((item) => item.option[this.optionImmutableKey]) : [];\r\n\r\n    if (mutableOption && mutableOption.length > this.multiItems.length - selectedImmutableOption.length) {\r\n      mutableOption.forEach((item) => {\r\n        const indexOfOption = this.multiItems.findIndex((i) => JSON.stringify(i.option) === JSON.stringify(item.option));\r\n        if (indexOfOption === -1) {\r\n          this.multiItems.push({ id: item.id, option: item.option });\r\n        }\r\n      });\r\n    } else {\r\n      this.multiItems = [...selectedImmutableOption];\r\n    }\r\n    this.value = this.multiItems.map((item) => item.option);\r\n    this.valueChange.emit({ value: this.value, multiItems: this.multiItems });\r\n    this.setChecked(this.value);\r\n  }\r\n\r\n  trackByFn(index, item) {\r\n    return index;\r\n  }\r\n\r\n  onEscKeyup(event?: Event) {\r\n    if (event) {\r\n      event.stopPropagation();\r\n    }\r\n    this.toggleChange.emit(false);\r\n  }\r\n\r\n  handleKeyUpEvent(event?: Event) {\r\n    if (event) {\r\n      event.preventDefault();\r\n      event.stopPropagation();\r\n    }\r\n    this.selectIndex = this.selectIndex === 0 || this.selectIndex === -1 ? this.availableOptions.length - 1 : this.selectIndex - 1;\r\n    this.scrollToActive();\r\n  }\r\n\r\n  handleKeyDownEvent(event?: Event) {\r\n    if (event) {\r\n      event.preventDefault();\r\n      event.stopPropagation();\r\n    }\r\n    this.selectIndex = this.selectIndex === this.availableOptions.length - 1 ? 0 : this.selectIndex + 1;\r\n    this.scrollToActive();\r\n  }\r\n\r\n  handleKeyEnterEvent(event?: Event) {\r\n    if (event) {\r\n      event.preventDefault();\r\n      event.stopPropagation();\r\n    }\r\n    const item = this.availableOptions[this.selectIndex];\r\n    if (item) {\r\n      this.choose({ option: item.option, index: item.id, event: null });\r\n    } else if (this.closeScope === 'all') {\r\n      this.toggleChange.emit(false);\r\n    }\r\n  }\r\n\r\n  scrollToActive(): void {\r\n    const that = this;\r\n    setTimeout(() => {\r\n      try {\r\n        const selectIndex = that.selectIndex + (that.isSelectAll ? 1 : 0); // 多了个全选会导致问题，index需要加1\r\n        const scrollPane: any = that.dropdownUl.nativeElement.children[selectIndex];\r\n        if (scrollPane.scrollIntoViewIfNeeded) {\r\n          scrollPane.scrollIntoViewIfNeeded(false);\r\n        } else {\r\n          const containerInfo = that.dropdownUl.nativeElement.getBoundingClientRect();\r\n          const elementInfo = scrollPane.getBoundingClientRect();\r\n          if (elementInfo.bottom > containerInfo.bottom || elementInfo.top < containerInfo.top) {\r\n            scrollPane.scrollIntoView(false);\r\n          }\r\n        }\r\n      } catch (e) {}\r\n    });\r\n  }\r\n\r\n  resetIndex(resetSelectIndex = true) {\r\n    this.selectIndex = resetSelectIndex ? -1 : 0;\r\n    this.activeIndex = -1;\r\n    this.changeDetectorRef.markForCheck();\r\n  }\r\n\r\n  choose = ({ option, index, event }) => {\r\n    if (event) {\r\n      event.preventDefault();\r\n      event.stopPropagation();\r\n    }\r\n    if (typeof option === 'object' && Object.keys(option).length === 0) {\r\n      this.toggleChange.emit(false);\r\n      return;\r\n    }\r\n    if (this.optionDisabledKey && option[this.optionDisabledKey]) {\r\n      return;\r\n    }\r\n    if (this.optionImmutableKey && option[this.optionImmutableKey]) {\r\n      return;\r\n    }\r\n    if (this.optionGroupKey && option[this.optionGroupKey]) {\r\n      return;\r\n    }\r\n    if (this.multiple) {\r\n      const indexOfOption = this.multiItems.findIndex((item) => JSON.stringify(item.option) === JSON.stringify(option));\r\n      if (indexOfOption === -1) {\r\n        this.multiItems.push({ id: index, option });\r\n      } else {\r\n        this.multiItems.splice(indexOfOption, 1);\r\n      }\r\n      if (this.keepMultipleOrder === 'origin') {\r\n        this.multiItems.sort((a, b) => a.id - b.id);\r\n      }\r\n      this.value = this.multiItems.map((item) => item.option);\r\n    } else {\r\n      this.value = option;\r\n      this.activeIndex = index;\r\n      this.selectIndex = index;\r\n      if (this.closeScope === 'all') {\r\n        this.toggleChange.emit(false);\r\n      }\r\n      if (this.virtualScrollViewportSizeMightChange) {\r\n        // 解决虚拟滚动更新options长度展开前无法获取正确高度影响\r\n        setTimeout(() => {\r\n          if (this.virtualScrollViewportSizeMightChange && this.virtualScrollViewport) {\r\n            this.virtualScrollViewportSizeMightChange = false;\r\n            this.virtualScrollViewport.checkViewportSize();\r\n          }\r\n        }, 0);\r\n      }\r\n    }\r\n    this.valueChange.emit({ value: this.value, multiItems: this.multiItems, option, event, index });\r\n    this.setAvailableOptions();\r\n    this.setChecked(this.value);\r\n  };\r\n\r\n  showSelectAll() {\r\n    return this.isSelectAll && this.multiple && this.availableOptions.length > 0;\r\n  }\r\n\r\n  getVirtualScrollHeight(len, size) {\r\n    if (len > 0) {\r\n      let height =\r\n        (this.templateItemSize || this.virtualScrollItemSize[size || 'normal']) * len + this.virtualScrollItemSize.space * (len - 1);\r\n      if (this.isSelectAll && this.multiple) {\r\n        height += this.virtualScrollItemSize[size ? size : 'normal'] + this.virtualScrollItemSize.space;\r\n      }\r\n      const scrollHeight = parseInt(this.scrollHeight, 10);\r\n      this.scrollHeightNum = height > scrollHeight ? scrollHeight : height;\r\n      return `${this.scrollHeightNum + this.CONTAINER_MARGINS * 2}px`;\r\n    }\r\n  }\r\n\r\n  loadMoreEvent(event) {\r\n    this.showLoading = true;\r\n    this.loadMore.emit({ instance: this, event });\r\n  }\r\n\r\n  loadStart() {\r\n    this.showLoading = true;\r\n    this.changeDetectorRef.detectChanges();\r\n  }\r\n\r\n  loadFinish() {\r\n    this.showLoading = false;\r\n    this.changeDetectorRef.detectChanges();\r\n  }\r\n}\r\n","<ul\n  class=\"devui-dropdown-menu-wrap {{ size ? 'devui-dropdown-menu-' + size : '' }}\"\n  dLoading\n  positionType=\"relative\"\n  [showLoading]=\"showLoading\"\n  [message]=\"i18nCommonText?.loading\"\n  [loadingTemplateRef]=\"loadingTemplateRef\"\n  [backdrop]=\"true\"\n  (click)=\"$event.stopPropagation(); $event.preventDefault()\"\n>\n  <ng-content></ng-content>\n  <ul\n    #dropdownUl\n    *ngIf=\"!virtualScroll || enableLazyLoad; else scrollViewTpl\"\n    class=\"devui-select-list-unstyled devui-scrollbar\"\n    [ngStyle]=\"{ 'max-height': scrollHeight, width: '100%' }\"\n    dLazyLoad\n    [enableLazyLoad]=\"enableLazyLoad\"\n    (loadMore)=\"loadMoreEvent($event)\"\n  >\n    <ng-template [ngTemplateOutlet]=\"selectAllTpl\"></ng-template>\n    <ng-container *ngFor=\"let item of availableOptions; let index = index; trackBy: trackByFn\">\n      <!--list-item 单个选项模板-->\n      <ng-template\n        [ngTemplateOutlet]=\"listItemTemplate\"\n        [ngTemplateOutletContext]=\"{\n          item: item,\n          index: index,\n          selectIndex: selectIndex,\n          activeIndex: activeIndex,\n          choose: choose\n        }\"\n      ></ng-template>\n    </ng-container>\n    <div *ngIf=\"availableOptions?.length === 0\" class=\"devui-no-data-tip\">\n      <ng-container *ngIf=\"noResultItemTemplate; else noResultDefaultTpl\">\n        <ng-template [ngTemplateOutlet]=\"noResultItemTemplate\" [ngTemplateOutletContext]=\"{ options: options }\"></ng-template>\n      </ng-container>\n    </div>\n  </ul>\n</ul>\n<ng-container *ngIf=\"customViewTemplate\">\n  <div class=\"devui-select-custom-area\">\n    <ng-template [ngTemplateOutlet]=\"customViewTemplate\" [ngTemplateOutletContext]=\"{ $implicit: this, choose: choose }\"></ng-template>\n  </div>\n</ng-container>\n\n<!--虚拟滚动模板-->\n<ng-template #scrollViewTpl>\n  <cdk-virtual-scroll-viewport\n    [ngStyle]=\"{\n      height: getVirtualScrollHeight(availableOptions.length, size),\n      width: '100%',\n      'max-height': scrollHeight\n    }\"\n    [itemSize]=\"realVirtualScrollItemSize\"\n    [minBufferPx]=\"minBuffer\"\n    [maxBufferPx]=\"maxBuffer\"\n    class=\"viewport-wrapper devui-select-list-unstyled devui-scrollbar\"\n    #dropdownUl\n  >\n    <ng-template [ngTemplateOutlet]=\"selectAllTpl\"></ng-template>\n    <ng-container *cdkVirtualFor=\"let item of availableOptions; let index = index; trackBy: trackByFn\">\n      <ng-template\n        [ngTemplateOutlet]=\"listItemTemplate\"\n        [ngTemplateOutletContext]=\"{\n          item: item,\n          index: index,\n          selectIndex: selectIndex,\n          activeIndex: activeIndex,\n          choose: choose\n        }\"\n      ></ng-template>\n    </ng-container>\n  </cdk-virtual-scroll-viewport>\n</ng-template>\n\n<!--全选模板-->\n<ng-template #selectAllTpl>\n  <li class=\"devui-dropdown-item\" *ngIf=\"showSelectAll()\" (click)=\"selectAll()\">\n    <span>\n      <d-checkbox [label]=\"i18nCommonText.checkAll\" [isShowTitle]=\"false\" [halfchecked]=\"halfChecked\" [(ngModel)]=\"allChecked\"></d-checkbox>\n    </span>\n  </li>\n</ng-template>\n\n<!--无内容模板-->\n<ng-template #noResultDefaultTpl>{{ isFiltering ? i18nCommonText?.noRecordsFound : i18nCommonText?.noData }}</ng-template>\n","import {\r\n  CdkConnectedOverlay,\r\n  CdkOverlayOrigin,\r\n  ConnectedOverlayPositionChange,\r\n  ConnectedPosition,\r\n  ScrollStrategy,\r\n  ScrollStrategyOptions,\r\n  VerticalConnectionPos,\r\n} from '@angular/cdk/overlay';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport {\r\n  ChangeDetectionStrategy,\r\n  ChangeDetectorRef,\r\n  Component,\r\n  ContentChild,\r\n  ElementRef,\r\n  EventEmitter,\r\n  HostListener,\r\n  Inject,\r\n  Input,\r\n  NgZone,\r\n  OnChanges,\r\n  OnInit,\r\n  Output,\r\n  Renderer2,\r\n  SimpleChanges,\r\n  ViewChild,\r\n} from '@angular/core';\r\nimport {\r\n  AppendToBodyDirection,\r\n  AppendToBodyDirectionsConfig,\r\n  AppendToBodyScrollStrategyType,\r\n  DevConfigService,\r\n  WithConfig,\r\n  addClassToOrigin,\r\n  fadeInOut,\r\n  formWithDropDown,\r\n  removeClassFromOrigin,\r\n} from 'ng-devui/utils';\r\nimport { WindowRef } from 'ng-devui/window-ref';\r\nimport { ToggleMenuListComponent } from './toggle-menu-list.component';\r\n\r\n@Component({\r\n  selector: 'd-toggle-menu-container',\r\n  templateUrl: './toggle-menu-container.component.html',\r\n  styleUrls: [`./toggle-menu-container.component.scss`],\r\n  animations: [fadeInOut],\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  preserveWhitespaces: false,\r\n})\r\nexport class ToggleMenuContainerComponent implements OnInit, OnChanges {\r\n  @Input() set isOpen(value) {\r\n    if (this._isOpen === value) {\r\n      // 如果toggle-container自身触发开关，父级组件的isOpen随toggleChange改变，会通过input再次返回导致重复触发，通过值是否变化屏蔽该次触发\r\n      return;\r\n    }\r\n    this._isOpen = value;\r\n    this.toggleChange.emit(value);\r\n    this.setDocumentClickListener();\r\n    if (this.selectWrapper) {\r\n      this.dropDownWidth = this.width ? this.width : this.selectWrapper.nativeElement.offsetWidth;\r\n    }\r\n    if (value) {\r\n      addClassToOrigin(this.selectWrapper);\r\n      setTimeout(() => {\r\n        this.startAnimation = true;\r\n        this.changeDetectorRef.detectChanges();\r\n      });\r\n    } else {\r\n      removeClassFromOrigin(this.selectWrapper);\r\n    }\r\n  }\r\n\r\n  get isOpen() {\r\n    return this._isOpen;\r\n  }\r\n  /**\r\n   * 【可选】是否appendToBody\r\n   */\r\n  @Input() appendToBody = false;\r\n  @Input() appendToBodyDirections: Array<AppendToBodyDirection | ConnectedPosition> = ['rightDown', 'leftDown', 'rightUp', 'leftUp'];\r\n  @Input() @WithConfig() appendToBodyScrollStrategy: AppendToBodyScrollStrategyType;\r\n  /**\r\n   * 【可选】cdk模式origin width\r\n   */\r\n  @Input() width: number;\r\n  @Input() size: '' | 'sm' | 'lg';\r\n  /**\r\n   * auto-complete 参数\r\n   */\r\n  @Input() overview: string;\r\n  @Input() position: any;\r\n  /**\r\n   * 【可选】是否禁用下拉框\r\n   */\r\n  @Input() disabled = false;\r\n  /**\r\n   * 【可选】暂停使用下拉功能，不添加禁用效果\r\n   */\r\n  @Input() paused = false;\r\n  /**\r\n   * 【可选】是否展示动效\r\n   */\r\n  @Input() @WithConfig() showAnimation = true;\r\n  /**\r\n   * 【可选】是否支持聚焦自动展开下拉\r\n   */\r\n  @Input() toggleOnFocus = false;\r\n  @Input() closeScope: 'all' | 'blank' | 'none' = 'all';\r\n  @Input() direction: 'up' | 'down' | 'auto' = 'down';\r\n  @Input() selectWrapper: ElementRef;\r\n\r\n  /**\r\n   * select下拉toggle事件，值为true或false\r\n   */\r\n  @Output() toggleChange = new EventEmitter<any>();\r\n  @Output() passEvent = new EventEmitter<any>();\r\n  @ViewChild('selectBox', { static: true }) selectBoxElement: ElementRef;\r\n  @ViewChild('selectMenu', { static: true }) selectMenuElement: ElementRef;\r\n  @ViewChild(CdkConnectedOverlay) connectedOverlay: CdkConnectedOverlay;\r\n  @ContentChild(ToggleMenuListComponent) listInstance: ToggleMenuListComponent;\r\n\r\n  _isOpen = false;\r\n  isInit = true;\r\n  isMouseEvent = false;\r\n  startAnimation = false;\r\n  labelMinHeight = 20; // position.top小于20px时候，表示光标在第一行\r\n  popDirection: 'top' | 'bottom' = 'bottom';\r\n  menuPosition: VerticalConnectionPos = 'bottom';\r\n  scrollStrategy: ScrollStrategy;\r\n  cdkConnectedOverlayOrigin: CdkOverlayOrigin;\r\n  overlayPositions: Array<ConnectedPosition>;\r\n  dropDownWidth: number;\r\n  document: Document;\r\n\r\n  constructor(\r\n    @Inject(DOCUMENT) private doc: any,\r\n    public element: ElementRef,\r\n    private windowRef: WindowRef,\r\n    private ngZone: NgZone,\r\n    private renderer: Renderer2,\r\n    private changeDetectorRef: ChangeDetectorRef,\r\n    private devConfigService: DevConfigService,\r\n    private scrollStrategyOption: ScrollStrategyOptions\r\n  ) {\r\n    this.document = this.doc;\r\n    this.scrollStrategy = this.scrollStrategyOption.reposition();\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.isInit = false;\r\n    this.setPositions();\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    const { appendToBodyDirections, appendToBodyScrollStrategy } = changes;\r\n    const globalScrollStrategy = this.devConfigService.getConfigForApi('appendToBodyScrollStrategy');\r\n    if (appendToBodyDirections) {\r\n      this.setPositions();\r\n    }\r\n    if (this.appendToBodyScrollStrategy && (appendToBodyScrollStrategy || globalScrollStrategy)) {\r\n      const func = this.scrollStrategyOption[this.appendToBodyScrollStrategy];\r\n      this.scrollStrategy = func();\r\n    }\r\n  }\r\n\r\n  animationEnd() {\r\n    if (!this.isOpen && this.selectMenuElement && this.showAnimation) {\r\n      const targetElement = this.selectMenuElement.nativeElement;\r\n      this.startAnimation = false;\r\n      setTimeout(() => {\r\n        // 动画会覆盖导致display还是block， 所以要等动画覆盖完\r\n        this.renderer.setStyle(targetElement, 'display', 'none');\r\n      });\r\n    }\r\n  }\r\n\r\n  setPositions() {\r\n    if (this.appendToBodyDirections && this.appendToBodyDirections.length > 0) {\r\n      this.overlayPositions = this.appendToBodyDirections\r\n        .map((position) => {\r\n          if (typeof position === 'string') {\r\n            return AppendToBodyDirectionsConfig[position];\r\n          } else {\r\n            return position;\r\n          }\r\n        })\r\n        .filter((position) => position !== undefined);\r\n    } else {\r\n      this.overlayPositions = undefined;\r\n    }\r\n  }\r\n\r\n  updatePosition() {\r\n    if (this.appendToBody) {\r\n      setTimeout(() => {\r\n        if (this.connectedOverlay && this.connectedOverlay.overlayRef) {\r\n          this.connectedOverlay.overlayRef.updatePosition();\r\n        }\r\n      });\r\n    }\r\n  }\r\n\r\n  setPassEvent(event, type) {\r\n    if (this.isOpen || this.paused) {\r\n      this.passEvent.emit({ event, type });\r\n    }\r\n  }\r\n\r\n  onPositionChange(position: ConnectedOverlayPositionChange) {\r\n    this.menuPosition = position.connectionPair.originY;\r\n  }\r\n\r\n  setDocumentClickListener() {\r\n    this.ngZone.runOutsideAngular(() => {\r\n      if (this.isOpen) {\r\n        this.document.addEventListener('click', this.onDocumentClick);\r\n      } else {\r\n        this.document.removeEventListener('click', this.onDocumentClick);\r\n      }\r\n    });\r\n  }\r\n\r\n  onDocumentClick = (event: Event) => {\r\n    if (this.listInstance && this.isOpen && this.selectBoxElement && !this.selectBoxElement.nativeElement.contains(event.target)) {\r\n      this.isOpen = false;\r\n      this.listInstance.selectIndex = this.listInstance.activeIndex ? this.listInstance.activeIndex : -1;\r\n      this.changeDetectorRef.detectChanges();\r\n    }\r\n  };\r\n\r\n  // mousedown mouseup解决focus与click冲突问题\r\n  @HostListener('mousedown', ['$event'])\r\n  public setMouseEventTrue(event) {\r\n    this.isMouseEvent = true;\r\n  }\r\n  @HostListener('mouseup', ['$event'])\r\n  public setMouseEventFalse(event) {\r\n    this.isMouseEvent = false;\r\n  }\r\n\r\n  autoToggle(event) {\r\n    event.preventDefault();\r\n    event.stopPropagation();\r\n    if (this.toggleOnFocus && !this.disabled && !this.paused && !this.isOpen && !this.isMouseEvent) {\r\n      this.toggle();\r\n    }\r\n  }\r\n\r\n  toggle(event?: Event) {\r\n    if (this.disabled || this.paused) {\r\n      this.isOpen = false;\r\n      return;\r\n    }\r\n    if (!this.isOpen) {\r\n      if (!this.appendToBody) {\r\n        let direction = '';\r\n        switch (this.direction) {\r\n        case 'auto':\r\n          direction = this.isBottomRectEnough() ? 'bottom' : 'top';\r\n          break;\r\n        case 'down':\r\n          direction = 'bottom';\r\n          break;\r\n        case 'up':\r\n          direction = 'top';\r\n          break;\r\n        default:\r\n          direction = 'bottom';\r\n        }\r\n        this.popDirection = <any>direction;\r\n      } else {\r\n        this.updateCdkConnectedOverlayOrigin();\r\n      }\r\n    } else {\r\n      if (!this.showAnimation) {\r\n        this.startAnimation = false;\r\n      }\r\n      if (this.closeScope === 'none' || (this.closeScope === 'blank' && this.element.nativeElement.contains(event.target))) {\r\n        return;\r\n      }\r\n    }\r\n    this.isOpen = !this.isOpen;\r\n  }\r\n\r\n  isBottomRectEnough() {\r\n    const selectMenuElement = this.selectWrapper.nativeElement;\r\n    const selectInputElement = this.selectBoxElement;\r\n    const displayStyle = selectMenuElement.style.display || (<any>window).getComputedStyle(selectMenuElement).display;\r\n    let tempStyle;\r\n    if (displayStyle === 'none') {\r\n      // 必要， 否则首次展开必有问题， 如果animationEnd之后设置为none也会有问题\r\n      tempStyle = {\r\n        visibility: selectMenuElement.style.visibility,\r\n        display: selectMenuElement.style.display,\r\n        transform: selectMenuElement.style.transform,\r\n      };\r\n      this.renderer.setStyle(selectMenuElement, 'visibility', 'hidden');\r\n      this.renderer.setStyle(selectMenuElement, 'display', 'block');\r\n      this.renderer.setStyle(selectMenuElement, 'transform', 'translate(0, -9999)');\r\n    }\r\n    const elementHeight = selectMenuElement.offsetHeight;\r\n    const bottomDistance = this.windowRef.innerHeight - selectInputElement.nativeElement.getBoundingClientRect().bottom;\r\n    const isBottomEnough = bottomDistance >= elementHeight;\r\n    if (displayStyle === 'none') {\r\n      this.renderer.setStyle(selectMenuElement, 'visibility', tempStyle.visibility);\r\n      this.renderer.setStyle(selectMenuElement, 'display', tempStyle.display);\r\n      this.renderer.setStyle(selectMenuElement, 'transform', tempStyle.transform);\r\n    }\r\n    return isBottomEnough;\r\n  }\r\n\r\n  updateCdkConnectedOverlayOrigin() {\r\n    if (this.selectWrapper?.nativeElement) {\r\n      this.cdkConnectedOverlayOrigin = new CdkOverlayOrigin(formWithDropDown(this.selectWrapper) || this.selectWrapper.nativeElement);\r\n    }\r\n  }\r\n}\r\n","<div\r\n  #selectBox\r\n  class=\"devui-toggle-menu-container devui-toggle-menu{{ size ? '-' + size : '' }} {{ disabled ? 'disabled' : '' }}\"\r\n  [tabindex]=\"0\"\r\n  (click)=\"toggle($event)\"\r\n  (focus)=\"autoToggle($event); setPassEvent($event, 'focus')\"\r\n  (blur)=\"setPassEvent($event, 'blur')\"\r\n  (keydown.esc)=\"setPassEvent($event, 'keydown.esc')\"\r\n  (keydown.ArrowUp)=\"setPassEvent($event, 'keydown.ArrowUp')\"\r\n  (keydown.ArrowDown)=\"setPassEvent($event, 'keydown.ArrowDown')\"\r\n  (keydown.enter)=\"setPassEvent($event, 'keydown.enter')\"\r\n  (keydown)=\"setPassEvent($event, 'keydown')\"\r\n>\r\n  <ng-content></ng-content>\r\n  <ng-container *ngIf=\"appendToBody; else selectDropdownTpl\">\r\n    <ng-template\r\n      cdk-connected-overlay\r\n      [cdkConnectedOverlayOrigin]=\"cdkConnectedOverlayOrigin\"\r\n      [cdkConnectedOverlayWidth]=\"dropDownWidth\"\r\n      [cdkConnectedOverlayOpen]=\"isOpen\"\r\n      [cdkConnectedOverlayPositions]=\"overlayPositions\"\r\n      [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy\"\r\n      (positionChange)=\"onPositionChange($event)\"\r\n      (backdropClick)=\"isOpen = false\"\r\n      (detach)=\"isOpen && (isOpen = false)\"\r\n    >\r\n      <ng-template [ngTemplateOutlet]=\"selectDropdownTpl\"></ng-template>\r\n    </ng-template>\r\n  </ng-container>\r\n  <ng-template #selectDropdownTpl>\r\n    <div\r\n      #selectMenu\r\n      class=\"devui-dropdown-menu\"\r\n      [ngClass]=\"{\r\n        'devui-dropdown-menu-cdk': appendToBody,\r\n        'devui-custom-right': listInstance?.customViewDirection === 'right',\r\n        'devui-custom-left': listInstance?.customViewDirection === 'left',\r\n        'devui-custom-top': listInstance?.customViewDirection === 'top',\r\n        'devui-dropdown-menu-multiple': listInstance?.multiple\r\n      }\"\r\n      [@fadeInOut]=\"isOpen && startAnimation ? (appendToBody ? menuPosition : popDirection) : 'void'\"\r\n      (@fadeInOut.done)=\"animationEnd()\"\r\n      [@.disabled]=\"!showAnimation\"\r\n    >\r\n      <ng-content select=\"d-toggle-menu-list\"></ng-content>\r\n    </div>\r\n  </ng-template>\r\n</div>\r\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, TemplateRef } from '@angular/core';\n\n@Component({\n  selector: 'd-toggle-menu-input',\n  templateUrl: './toggle-menu-input.component.html',\n  styleUrls: [`./toggle-menu-input.component.scss`],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToggleMenuInputComponent {\n  @Input() value: any;\n  @Input() inputValue: any;\n  @Input() inputWidth: string;\n  @Input() disabled = false;\n  @Input() readonly = false;\n  @Input() filterKey: string;\n  @Input() isDisabledCustomTemplate = false;\n  @Input() customTemplate: TemplateRef<any>;\n  @HostBinding('style.width')\n  get width() {\n    return this.inputWidth || 'inherit';\n  }\n}\n","<ng-container *ngIf=\"!isDisabledCustomTemplate; else defaultInputTemplate\">\n  <div class=\"devui-toggle-menu-input-template-container\">\n    <ng-template\n      [ngTemplateOutlet]=\"customTemplate\"\n      [ngTemplateOutletContext]=\"{\n        option: value,\n        filterKey: filterKey,\n        position: 'result',\n        inputValue: inputValue\n      }\"\n    ></ng-template>\n  </div>\n</ng-container>\n\n<ng-template #defaultInputTemplate>\n  <input\n    type=\"text\"\n    class=\"devui-form-control devui-select-input devui-input\"\n    autocomplete=\"off\"\n    [disabled]=\"disabled\"\n    [minLength]=\"0\"\n    [tabindex]=\"-1\"\n    [readonly]=\"readonly\"\n    [value]=\"inputValue || ''\"\n  />\n</ng-template>\n","import { Component, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\nimport { ToggleMenuListItem } from './toggle-menu.type';\n\n@Component({\n  selector: 'd-toggle-menu-label',\n  templateUrl: './toggle-menu-label.component.html',\n  styleUrls: [`./toggle-menu-label.component.scss`],\n})\nexport class ToggleMenuLabelComponent {\n  @Input() mode: 'normal' | 'scroll-y' | 'multiple-line' | string;\n  @Input() multiItems: Array<ToggleMenuListItem> = [];\n  @Input() disabled = false;\n  @Input() maxWidth: string;\n  @Input() maxHeight: string;\n  @Input() optionDisabledKey = '';\n  @Input() customViewTemplate: TemplateRef<any>;\n  @Input() valueParser: (item: any) => any;\n  @Output() removeChange = new EventEmitter<any>();\n\n  trackByOptionPointer(index, item) {\n    return item.option;\n  }\n\n  removeItem(item, event, index) {\n    this.removeChange.emit({ ...item, event, index });\n  }\n}\n","<ul class=\"devui-select-tag-list devui-scrollbar {{ mode }}\" [style.maxHeight]=\"maxHeight\" *ngIf=\"multiItems.length > 0\">\n  <li\n    class=\"devui-select-tag-item\"\n    *ngFor=\"let item of multiItems; let index = index; trackBy: trackByOptionPointer\"\n    [style.maxWidth]=\"maxWidth\"\n    [ngClass]=\"{\n      disabled: disabled || (optionDisabledKey && item.option[optionDisabledKey])\n    }\"\n  >\n    <d-tag\n      [deletable]=\"!(disabled || (optionDisabledKey && item.option[optionDisabledKey]))\"\n      [maxWidth]=\"'100%'\"\n      [tag]=\"valueParser(item.option)\"\n      [customViewTemplate]=\"customViewTemplate\"\n      (tagDelete)=\"removeItem(item, $event?.event, index)\"\n    ></d-tag>\n  </li>\n</ul>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\nimport { ToggleMenuListItem } from './toggle-menu.type';\n\n@Component({\n  selector: 'd-toggle-menu-list-item',\n  templateUrl: './toggle-menu-list-item.component.html',\n  styleUrls: ['./toggle-menu-list-item.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToggleMenuListItemComponent {\n  @Input() item: ToggleMenuListItem;\n  @Input() index: number;\n  @Input() selectIndex: number;\n  @Input() activeIndex: number;\n  /**\n   * 【可选】决定下拉框每项文字如何显示，默认显示filterKey字段或者本身的值\n   */\n  // @deprecated\n  @Input() formatter: (item: any) => string;\n  /**\n   * 【当传入资源（options）类型为Array<{key: value}，必选】针对传入资源options的每项对应字段做过滤操作\n   */\n  @Input() filterKey: string;\n  /**\n   * 【当传入资源（options）类型为Array<{key: value}，必选】针对传入资源options的每项对应字段做禁用操作的key\n   */\n  @Input() optionDisabledKey = '';\n  /**\n   * 【当传入资源（options）类型为Array<{key: value}，可选】如使用分组需设置\n   */\n  @Input() optionGroupKey = '';\n  /**\n   * 【可选】是否允许高亮选项\n   */\n  @Input() highlightToggle = true;\n  /**\n   * 【可选】下拉高亮css\n   */\n  @Input() highlightItemClass = 'active';\n  /**\n   * 【可选】是否支持多选\n   */\n  @Input() multiple: boolean;\n  /**\n   * 【可选】是否需要关键字高亮显示\n   */\n  @Input() isShowKeyword: boolean;\n  /**\n   * 【可选】auto-complete 中需要高亮显示的关键字\n   */\n  @Input() keyword: string;\n  @Input() customTemplate: TemplateRef<any>;\n\n  // @deprecated\n  @Input() color: string;\n  @Output() chooseItem = new EventEmitter<any>();\n\n  constructor() {\n    this.formatter = (item) => (item ? item[this.filterKey] || item.label || item.toString() : '');\n  }\n\n  choose(option, index, event?: Event) {\n    this.chooseItem.emit({ option, index, event });\n  }\n}\n","<li\n  title=\"{{ formatter(item.option) }}\"\n  class=\"devui-dropdown-item devui-toggle-menu{{ multiple ? '-multiple-' : '-' }}item {{\n    highlightToggle && item.isChecked ? highlightItemClass : ''\n  }}\"\n  [class.selected]=\"selectIndex === index && item.id !== activeIndex\"\n  [class.disabled]=\"optionDisabledKey && item.option[optionDisabledKey]\"\n  [class.group]=\"optionGroupKey && item.option[optionGroupKey]\"\n  (click)=\"choose(item.option, item.id, $event)\"\n>\n  <ng-content select=\"[itemPrefix]\"></ng-content>\n  <ng-template\n    [ngTemplateOutlet]=\"customTemplate || (multiple ? checkBoxItem : isShowKeyword ? defaultHighlight : defaultItem)\"\n    [ngTemplateOutletContext]=\"\n      isShowKeyword\n        ? {\n            item: item.option,\n            formatter: formatter,\n            keyword: keyword,\n            $index: index\n          }\n        : multiple\n        ? {\n            option: item.option,\n            checked: item.isChecked,\n            filterKey: filterKey,\n            position: 'list',\n            template: checkBoxItem,\n            $index: index\n          }\n        : {\n            option: item.option,\n            filterKey: filterKey,\n            position: 'list',\n            template: defaultItem,\n            $index: index\n          }\n    \"\n  >\n  </ng-template>\n  <ng-content select=\"[itemSuffix]\"></ng-content>\n</li>\n\n<ng-template #defaultItem let-option=\"option\">\n  {{ formatter(option) }}\n</ng-template>\n\n<ng-template #defaultHighlight let-item=\"item\" let-keyword=\"keyword\">\n  <d-highlight [value]=\"formatter(item)\" [term]=\"keyword\"></d-highlight>\n</ng-template>\n\n<ng-template #checkBoxItem let-option=\"option\" let-checked=\"checked\">\n  <d-checkbox\n    [color]=\"color\"\n    [cssClass]=\"'devui-select-checkbox'\"\n    [disabled]=\"option[optionDisabledKey]\"\n    [label]=\"formatter(option)\"\n    [ngModel]=\"checked\"\n  >\n  </d-checkbox>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { DevConfigService, WithConfig } from 'ng-devui/utils';\n\n@Component({\n  selector: 'd-toggle-menu-operation',\n  templateUrl: './toggle-menu-operation.component.html',\n  styleUrls: [`./toggle-menu-operation.component.scss`],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToggleMenuOperationComponent {\n  @Input() controlConfig: {\n    clear?: boolean;\n    chevron?: boolean;\n  };\n  @Input() @WithConfig() showAnimation = true;\n  @Input() chevronStatus = false;\n  @Output() operationChangeEvent = new EventEmitter<any>();\n\n  constructor(private devConfigService: DevConfigService) {}\n\n  operationFn(event, operate) {\n    this.operationChangeEvent.emit({ event, operate });\n  }\n}\n","<div class=\"devui-toggle-menu-operation-container\">\n  <span\n    *ngIf=\"controlConfig?.clear\"\n    class=\"devui-select-clear-icon\"\n    (mousedown)=\"$event.preventDefault()\"\n    (click)=\"operationFn($event, 'clear')\"\n  >\n    <svg\n      width=\"16px\"\n      height=\"16px\"\n      viewBox=\"0 0 16 16\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    >\n      <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <path\n          d=\"M8,1 C11.8659932,1 15,4.13400675 15,8 C15,11.8659932 11.8659932,15 8,15 C4.13400675,15 1,11.8659932 1,8 C1,4.13400675 4.13400675,1 8,1 Z M5.87867966,5.17157288 C5.68341751,4.97631073 5.36683502,4.97631073 5.17157288,5.17157288 C4.99800652,5.34513923 4.97872137,5.61456363 5.11371742,5.80943177 L5.17157288,5.87867966 L7.29218611,7.99929289 L5.17157288,10.1213203 C4.97631073,10.3165825 4.97631073,10.633165 5.17157288,10.8284271 C5.34513923,11.0019935 5.61456363,11.0212786 5.80943177,10.8862826 L5.87867966,10.8284271 L7.99929289,8.70639967 L10.1213203,10.8284271 C10.3165825,11.0236893 10.633165,11.0236893 10.8284271,10.8284271 C11.0019935,10.6548608 11.0212786,10.3854364 10.8862826,10.1905682 L10.8284271,10.1213203 L8.70710678,8 L10.8284271,5.87867966 C11.0236893,5.68341751 11.0236893,5.36683502 10.8284271,5.17157288 C10.6548608,4.99800652 10.3854364,4.97872137 10.1905682,5.11371742 L10.1213203,5.17157288 L8,7.29289322 L5.87867966,5.17157288 Z\"\n          fill-rule=\"nonzero\"\n        ></path>\n      </g>\n    </svg>\n  </span>\n  <span\n    *ngIf=\"controlConfig?.chevron\"\n    class=\"devui-toggle-menu-chevron-icon\"\n    [ngClass]=\"{ 'devui-toggle-menu-chevron-icon-animation': showAnimation, 'devui-toggle-menu-chevron-icon-open': chevronStatus }\"\n  >\n    <svg\n      width=\"1em\"\n      height=\"1em\"\n      viewBox=\"0 0 16 16\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    >\n      <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <path\n          d=\"M12.1464466,6.85355339 L8.35355339,10.6464466 C8.15829124,10.8417088 7.84170876,10.8417088 7.64644661,10.6464466 L3.85355339,6.85355339 C3.65829124,6.65829124 3.65829124,6.34170876 3.85355339,6.14644661 C3.94732158,6.05267842 4.07449854,6 4.20710678,6 L11.7928932,6 C12.0690356,6 12.2928932,6.22385763 12.2928932,6.5 C12.2928932,6.63260824 12.2402148,6.7597852 12.1464466,6.85355339 Z\"\n          fill-rule=\"nonzero\"\n        ></path>\n      </g>\n    </svg>\n  </span>\n</div>\n","import { Component, Input, TemplateRef } from '@angular/core';\n\n@Component({\n  selector: 'd-toggle-menu-placeholder',\n  template: `\n    <ng-container *ngIf=\"isTemplate; else defaultTemplate\"></ng-container>\n    <ng-template #defaultTemplate\n      ><span class=\"devui-placeholder\">{{ placeholder }}</span></ng-template\n    >\n  `,\n  styleUrls: [`./toggle-menu-placeholder.component.scss`],\n})\nexport class ToggleMenuPlaceholderComponent {\n  @Input() placeholder: TemplateRef<any> | string;\n  get isTemplate() {\n    return this.placeholder && typeof this.placeholder !== 'string';\n  }\n}\n","import {\r\n  AfterViewInit,\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  ElementRef,\r\n  EventEmitter,\r\n  HostBinding,\r\n  Input,\r\n  OnDestroy,\r\n  OnInit,\r\n  Output,\r\n} from '@angular/core';\r\nimport { Observable, Subscription, fromEvent, of } from 'rxjs';\r\nimport { debounceTime, filter, map } from 'rxjs/operators';\r\n\r\n@Component({\r\n  selector: 'd-toggle-menu-search',\r\n  templateUrl: './toggle-menu-search.component.html',\r\n  styleUrls: [`./toggle-menu-search.component.scss`],\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  preserveWhitespaces: false,\r\n})\r\nexport class ToggleMenuSearchComponent implements OnInit, AfterViewInit, OnDestroy {\r\n  @Input() searchPlaceholder: string;\r\n  @Input() isShowSearchIcon = true;\r\n  @Input() inputValue: string;\r\n  @Input() inputWidth: string;\r\n  @Input() filterKey: string;\r\n  @Input() maxLength: number;\r\n  @Input() disabled = false;\r\n  @Input() spellcheck = false;\r\n  @Input() options = [];\r\n  @Input() delay = 300;\r\n  /**\r\n   * 【可选】决定下拉框没项文字如何显示，默认显示filterKey字段或者本身的值\r\n   */\r\n  // @deprecated\r\n  @Input() formatter: (item: any) => string;\r\n  /**\r\n   * 【可选】搜索函数，当需要自定义下拉选择过滤规则时可以使用\r\n   *  请保证返回值有id和option字段，id是确保尤其多选的时候能正确索引对应选项\r\n   *  简单实现参考：\r\n   *  search = (term) => {\r\n   *    return of(\r\n   *     [Lily, May, Jorsh, Shiwa, Nanth]\r\n   *     .map((option, index) => ({id: index, option: option}))\r\n   *     .filter(item => item.option.name.toLowerCase().indexOf(term.toLowerCase()) !== -1)\r\n   *   );\r\n   *  }\r\n   */\r\n  @Input() searchFn: (term: string) => Observable<Array<{ id: string | number; option: any }>>;\r\n  @Output() searchInputValueChange = new EventEmitter<any>();\r\n  @HostBinding('style.width')\r\n  get width() {\r\n    return this.inputWidth || 'inherit';\r\n  }\r\n\r\n  filterSubscription: Subscription;\r\n\r\n  constructor(public el: ElementRef) {\r\n    this.formatter = (item) => {\r\n      const str = String(item) ? item.toString() : '';\r\n      return typeof item === 'object' ? item[this.filterKey] || '' : str;\r\n    };\r\n  }\r\n\r\n  ngOnInit() {\r\n    if (!this.searchFn) {\r\n      this.searchFn = (term: any) => {\r\n        return of(\r\n          (this.options ? this.options : [])\r\n            .map((option, index) => ({ id: index, option }))\r\n            .filter((item) => this.formatter(item.option).toLowerCase().indexOf(term.toLowerCase()) !== -1)\r\n        );\r\n      };\r\n    }\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    this.el.nativeElement.focus();\r\n    if (!this.filterSubscription) {\r\n      // 避免重复订阅\r\n      this.filterSubscription = fromEvent(this.el.nativeElement, 'input')\r\n        .pipe(\r\n          map((e: any) => e.target.value),\r\n          filter((term) => !this.disabled && this.searchFn && term.length >= 0),\r\n          debounceTime(this.delay)\r\n        )\r\n        .subscribe((term) => this.searchInputValueChange.emit(term));\r\n    }\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    if (this.filterSubscription) {\r\n      this.filterSubscription.unsubscribe();\r\n    }\r\n  }\r\n}\r\n","<div class=\"devui-toggle-menu-search\">\r\n  <input\r\n    name=\"search\"\r\n    type=\"text\"\r\n    autocomplete=\"off\"\r\n    class=\"devui-form-control devui-select-search devui-select-input\"\r\n    [value]=\"inputValue || ''\"\r\n    [disabled]=\"disabled\"\r\n    [spellcheck]=\"spellcheck\"\r\n    [maxLength]=\"maxLength\"\r\n    [placeholder]=\"searchPlaceholder\"\r\n    (trim)=\"(false)\"\r\n  />\r\n  <span class=\"devui-toggle-menu-search-icon\">\r\n    <svg\r\n      *ngIf=\"isShowSearchIcon\"\r\n      width=\"14px\"\r\n      height=\"14px\"\r\n      viewBox=\"0 0 14 14\"\r\n      version=\"1.1\"\r\n      xmlns=\"http://www.w3.org/2000/svg\"\r\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n      class=\"svg-icon-search\"\r\n      style=\"vertical-align: middle; margin-top: -4px\"\r\n    >\r\n      <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\r\n        <g transform=\"translate(-1.000000, -1.000000)\">\r\n          <path\r\n            d=\"M7.30811922,1 C10.7919973,1 13.6162384,3.82424117 13.6162384,7.30811922 C13.6162384,8.72507634 13.149053,10.0329164 12.3603151,11.0860065 L14.7360564,13.4616238 C15.0879812,13.8135487 15.0879812,14.3841316 14.7360564,14.7360564 C14.3841316,15.0879812 13.8135487,15.0879812 13.4616238,14.7360564 L11.0860065,12.3603151 C10.0329164,13.149053 8.72507634,13.6162384 7.30811922,13.6162384 C3.82424117,13.6162384 1,10.7919973 1,7.30811922 C1,3.82424117 3.82424117,1 7.30811922,1 Z M7.31,2.51 C4.6590332,2.51 2.51,4.6590332 2.51,7.31 C2.51,9.9609668 4.6590332,12.11 7.31,12.11 C9.9609668,12.11 12.11,9.9609668 12.11,7.31 C12.11,4.6590332 9.9609668,2.51 7.31,2.51 Z\"\r\n            fill-rule=\"nonzero\"\r\n          ></path>\r\n        </g>\r\n      </g>\r\n    </svg>\r\n  </span>\r\n  <ng-content></ng-content>\r\n</div>\r\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CheckBoxModule } from 'ng-devui/checkbox';\nimport { LoadingModule } from 'ng-devui/loading';\nimport { TagsModule } from 'ng-devui/tags';\nimport { HighlightModule, LazyLoadModule } from 'ng-devui/utils';\nimport { WindowRefModule } from 'ng-devui/window-ref';\nimport { ToggleMenuContainerComponent } from './toggle-menu-container.component';\nimport { ToggleMenuInputComponent } from './toggle-menu-input.component';\nimport { ToggleMenuLabelComponent } from './toggle-menu-label.component';\nimport { ToggleMenuListItemComponent } from './toggle-menu-list-item.component';\nimport { ToggleMenuListComponent } from './toggle-menu-list.component';\nimport { ToggleMenuOperationComponent } from './toggle-menu-operation.component';\nimport { ToggleMenuPlaceholderComponent } from './toggle-menu-placeholder.component';\nimport { ToggleMenuSearchComponent } from './toggle-menu-search.component';\n\n@NgModule({\n  imports: [\n    CommonModule,\n    FormsModule,\n    CheckBoxModule,\n    HighlightModule,\n    LazyLoadModule,\n    LoadingModule,\n    OverlayModule,\n    ScrollingModule,\n    WindowRefModule,\n    TagsModule,\n  ],\n  declarations: [\n    ToggleMenuContainerComponent,\n    ToggleMenuOperationComponent,\n    ToggleMenuInputComponent,\n    ToggleMenuLabelComponent,\n    ToggleMenuListItemComponent,\n    ToggleMenuListComponent,\n    ToggleMenuPlaceholderComponent,\n    ToggleMenuSearchComponent,\n  ],\n  exports: [\n    ToggleMenuContainerComponent,\n    ToggleMenuOperationComponent,\n    ToggleMenuInputComponent,\n    ToggleMenuLabelComponent,\n    ToggleMenuListItemComponent,\n    ToggleMenuListComponent,\n    ToggleMenuPlaceholderComponent,\n    ToggleMenuSearchComponent,\n  ],\n})\nexport class ToggleMenuModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i5","i1","i3","i4"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;MA6Ba,uBAAuB,CAAA;AA2DlC;;AAEG;IACH,IAAa,YAAY,CAAC,KAAK,EAAA;QAC7B,IAAI,CAAC,aAAa,GAAG,CAAG,EAAA,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA,EAAA,CAAI,CAAC;KACjD;AAED,IAAA,IAAI,YAAY,GAAA;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;KAC3B;AAgCD,IAAA,IAAI,yBAAyB,GAAA;QAC3B,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;AACjI,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC9D,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,QAAQ,CAAC;QACtC,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,QAAQ,CAAC;AACtC,QAAA,OAAO,QAAQ,CAAC;KACjB;IAuBD,WAAoB,CAAA,iBAAoC,EAAU,IAAiB,EAAA;QAA/D,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QAAU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAa;AAhInF;;AAEG;QACM,IAAO,CAAA,OAAA,GAA8B,EAAE,CAAC;AACjD;;AAEG;QACM,IAAiB,CAAA,iBAAA,GAAG,EAAE,CAAC;AAChC;;AAEG;QACM,IAAkB,CAAA,kBAAA,GAAG,EAAE,CAAC;AACjC;;AAEG;QACM,IAAc,CAAA,cAAA,GAAG,EAAE,CAAC;AAM7B;;AAEG;QACM,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;AAC7B;;AAEG;QACM,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;AAChC;;AAEG;QACM,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;AAkB/B;;AAEG;QACM,IAAmB,CAAA,mBAAA,GAAwC,QAAQ,CAAC;QAgBpE,IAAW,CAAA,WAAA,GAAG,CAAC,CAAC,CAAC;QASjB,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;AAEzB;;AAEG;QACM,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;AAC7B;;AAEG;QACM,IAAiB,CAAA,iBAAA,GAA6B,aAAa,CAAC;QAE5D,IAAU,CAAA,UAAA,GAA6B,KAAK,CAAC;AACtD;;AAEG;AACO,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAO,CAAC;AACvC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAO,CAAC;AACtC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAO,CAAC;QAY7C,IAAa,CAAA,aAAA,GAAG,OAAO,CAAC;QAGxB,IAAgB,CAAA,gBAAA,GAAG,EAAE,CAAC;QACtB,IAAW,CAAA,WAAA,GAAG,CAAC,CAAC,CAAC;QACjB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QACnB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QACpB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QAIpB,IAAoC,CAAA,oCAAA,GAAG,KAAK,CAAC;AAC7C,QAAA,IAAA,CAAA,qBAAqB,GAAQ;AAC3B,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,KAAK,EAAE,CAAC;SACT,CAAC;;QAEF,IAAiB,CAAA,iBAAA,GAAG,EAAE,CAAC;QAqMvB,IAAM,CAAA,MAAA,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAI;YACpC,IAAI,KAAK,EAAE;gBACT,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,KAAK,CAAC,eAAe,EAAE,CAAC;aACzB;AACD,YAAA,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AAClE,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC9B,OAAO;aACR;YACD,IAAI,IAAI,CAAC,iBAAiB,IAAI,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE;gBAC5D,OAAO;aACR;YACD,IAAI,IAAI,CAAC,kBAAkB,IAAI,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE;gBAC9D,OAAO;aACR;YACD,IAAI,IAAI,CAAC,cAAc,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;gBACtD,OAAO;aACR;AACD,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,gBAAA,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AAClH,gBAAA,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE;AACxB,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;iBAC7C;qBAAM;oBACL,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;iBAC1C;AACD,gBAAA,IAAI,IAAI,CAAC,iBAAiB,KAAK,QAAQ,EAAE;oBACvC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;iBAC7C;AACD,gBAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC;aACzD;iBAAM;AACL,gBAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;AACpB,gBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,gBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,gBAAA,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,EAAE;AAC7B,oBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBAC/B;AACD,gBAAA,IAAI,IAAI,CAAC,oCAAoC,EAAE;;oBAE7C,UAAU,CAAC,MAAK;wBACd,IAAI,IAAI,CAAC,oCAAoC,IAAI,IAAI,CAAC,qBAAqB,EAAE;AAC3E,4BAAA,IAAI,CAAC,oCAAoC,GAAG,KAAK,CAAC;AAClD,4BAAA,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,EAAE,CAAC;yBAChD;qBACF,EAAE,CAAC,CAAC,CAAC;iBACP;aACF;YACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YAChG,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC3B,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9B,SAAC,CAAC;KApPqF;IAEvF,QAAQ,GAAA;QACN,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;QAChD,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC;YACrC,IAAI,CAAC,mBAAmB,EAAE,CAAC;;AAE3B,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE;gBACpB,MAAM,4BAA4B,GAAG,EAAE,CAAC;gBACxC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;oBAC/B,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;wBACvC,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,EAAE;AACzB,4BAAA,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;yBACzC;AACH,qBAAC,CAAC,CAAC;AACL,iBAAC,CAAC,CAAC;AACH,gBAAA,IAAI,CAAC,UAAU,CAAC,4BAA4B,CAAC,CAAC;aAC/C;YACD,IACE,CAAC,IAAI,CAAC,cAAc;gBACpB,CAAC,IAAI,CAAC,QAAQ;AACd,iBAAC,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EACjH;gBACA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;aAC3G;YACD,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,qBAAqB,EAAE;AACpD,gBAAA,IAAI,CAAC,oCAAoC,GAAG,IAAI,CAAC;AACjD,gBAAA,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,EAAE,CAAC;aAChD;AACD,YAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;SACvC;QACD,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC5B;AACD,QAAA,IAAI,WAAW,EAAE,YAAY,EAAE;AAC7B,YAAA,MAAM,GAAG,GAAG,WAAW,CAAC,YAAY,CAAC;AACrC,YAAA,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC;YAC5B,QAAQ,IAAI;AACZ,gBAAA,KAAK,aAAa;AAChB,oBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;oBACvB,MAAM;AACR,gBAAA,KAAK,iBAAiB;AACpB,oBAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;oBAC7B,MAAM;AACR,gBAAA,KAAK,mBAAmB;AACtB,oBAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;oBAC/B,MAAM;AACR,gBAAA,KAAK,eAAe;AAClB,oBAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;oBAChC,MAAM;gBACR,QAAQ;aACP;SACF;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACzB,YAAA,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;SACrC;KACF;IAED,WAAW,GAAA;QACT,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC;AACrD,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,KAAI;AAChE,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;AACpC,SAAC,CAAC,CAAC;KACJ;IAED,mBAAmB,GAAA;QACjB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;YACzC,OAAO;SACR;AACD,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzD,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,GAAG,MAAM,GAAG,EAAE,CAAC;QACxC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,KAC5D,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM;AACzB,cAAE;AACA,gBAAA,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC1F,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,MAAM,EAAE,IAAI,CAAC,MAAM;AACpB,aAAA;AACD,cAAE,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CACrH,CAAC;KACH;AAED,IAAA,UAAU,CAAC,YAAY,EAAA;QACrB,IAAI,CAAC,YAAY,EAAE;YACjB,OAAO;SACR;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACrB,OAAO;SACR;AACD,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,YAAY,CAAC,MAAM,KAAK,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;AACxD,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;SACxB;AAAM,aAAA,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;AACpC,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;SACzB;aAAM;AACL,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SACzB;KACF;IAED,SAAS,GAAA;AACP,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB;cACzC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AAC/E,cAAE,IAAI,CAAC,gBAAgB,CAAC;AAC1B,QAAA,MAAM,uBAAuB,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG,EAAE,CAAC;AAEtI,QAAA,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,uBAAuB,CAAC,MAAM,EAAE;AACnG,YAAA,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AAC7B,gBAAA,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACjH,gBAAA,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE;AACxB,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;iBAC5D;AACH,aAAC,CAAC,CAAC;SACJ;aAAM;AACL,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,uBAAuB,CAAC,CAAC;SAChD;AACD,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC;AACxD,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;AAC1E,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC7B;IAED,SAAS,CAAC,KAAK,EAAE,IAAI,EAAA;AACnB,QAAA,OAAO,KAAK,CAAC;KACd;AAED,IAAA,UAAU,CAAC,KAAa,EAAA;QACtB,IAAI,KAAK,EAAE;YACT,KAAK,CAAC,eAAe,EAAE,CAAC;SACzB;AACD,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC/B;AAED,IAAA,gBAAgB,CAAC,KAAa,EAAA;QAC5B,IAAI,KAAK,EAAE;YACT,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;SACzB;AACD,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QAC/H,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;AAED,IAAA,kBAAkB,CAAC,KAAa,EAAA;QAC9B,IAAI,KAAK,EAAE;YACT,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;SACzB;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACpG,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;AAED,IAAA,mBAAmB,CAAC,KAAa,EAAA;QAC/B,IAAI,KAAK,EAAE;YACT,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;SACzB;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACrD,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;SACnE;AAAM,aAAA,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,EAAE;AACpC,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC/B;KACF;IAED,cAAc,GAAA;QACZ,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,UAAU,CAAC,MAAK;AACd,YAAA,IAAI;gBACF,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAClE,gBAAA,MAAM,UAAU,GAAQ,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAC5E,gBAAA,IAAI,UAAU,CAAC,sBAAsB,EAAE;AACrC,oBAAA,UAAU,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;iBAC1C;qBAAM;oBACL,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;AAC5E,oBAAA,MAAM,WAAW,GAAG,UAAU,CAAC,qBAAqB,EAAE,CAAC;AACvD,oBAAA,IAAI,WAAW,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,IAAI,WAAW,CAAC,GAAG,GAAG,aAAa,CAAC,GAAG,EAAE;AACpF,wBAAA,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;qBAClC;iBACF;aACF;AAAC,YAAA,OAAO,CAAC,EAAE,GAAE;AAChB,SAAC,CAAC,CAAC;KACJ;IAED,UAAU,CAAC,gBAAgB,GAAG,IAAI,EAAA;AAChC,QAAA,IAAI,CAAC,WAAW,GAAG,gBAAgB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7C,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;AACtB,QAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;KACvC;IAqDD,aAAa,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;KAC9E;IAED,sBAAsB,CAAC,GAAG,EAAE,IAAI,EAAA;AAC9B,QAAA,IAAI,GAAG,GAAG,CAAC,EAAE;AACX,YAAA,IAAI,MAAM,GACR,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,qBAAqB,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;YAC/H,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACrC,MAAM,IAAI,IAAI,CAAC,qBAAqB,CAAC,IAAI,GAAG,IAAI,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;aACjG;YACD,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AACrD,YAAA,IAAI,CAAC,eAAe,GAAG,MAAM,GAAG,YAAY,GAAG,YAAY,GAAG,MAAM,CAAC;YACrE,OAAO,CAAA,EAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAA,EAAA,CAAI,CAAC;SACjE;KACF;AAED,IAAA,aAAa,CAAC,KAAK,EAAA;AACjB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;KAC/C;IAED,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;KACxC;IAED,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;KACxC;+GArZU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,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,SAAA,EAAA,IAAA,EAAA,uBAAuB,6kCAkGvB,wBAAwB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC/HrC,iyGAwFA,ED/Dc,MAAA,EAAA,CAAA,o9CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,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,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,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,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,iBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,EAAA,eAAA,EAAA,aAAA,EAAA,eAAA,EAAA,eAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,aAAA,EAAA,QAAA,EAAA,YAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,cAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,cAAA,EAAA,oBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,uCAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,gCAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAC,SAAS,CAAC,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAIZ,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBARnC,SAAS;+BACE,oBAAoB,EAAA,UAAA,EAGlB,CAAC,SAAS,CAAC,mBACN,uBAAuB,CAAC,MAAM,EAAA,mBAAA,EAC1B,KAAK,EAAA,QAAA,EAAA,iyGAAA,EAAA,MAAA,EAAA,CAAA,o9CAAA,CAAA,EAAA,CAAA;gHAMjB,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAIG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBAIG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBAIG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAIG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAIG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAIG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAIG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAKG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAIG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBAIG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBAIG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBAIG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBAIG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAIO,YAAY,EAAA,CAAA;sBAAxB,KAAK;gBAQG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAIG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAIG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAIG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAIG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAII,YAAY,EAAA,CAAA;sBAArB,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBACkB,UAAU,EAAA,CAAA;sBAAlC,SAAS;uBAAC,YAAY,CAAA;gBACc,qBAAqB,EAAA,CAAA;sBAAzD,SAAS;uBAAC,wBAAwB,CAAA;;;ME7ExB,4BAA4B,CAAA;IACvC,IAAa,MAAM,CAAC,KAAK,EAAA;AACvB,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE;;YAE1B,OAAO;SACR;AACD,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,wBAAwB,EAAE,CAAC;AAChC,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,WAAW,CAAC;SAC7F;QACD,IAAI,KAAK,EAAE;AACT,YAAA,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACrC,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC3B,gBAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;AACzC,aAAC,CAAC,CAAC;SACJ;aAAM;AACL,YAAA,qBAAqB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SAC3C;KACF;AAED,IAAA,IAAI,MAAM,GAAA;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;KACrB;AA4DD,IAAA,WAAA,CAC4B,GAAQ,EAC3B,OAAmB,EAClB,SAAoB,EACpB,MAAc,EACd,QAAmB,EACnB,iBAAoC,EACpC,gBAAkC,EAClC,oBAA2C,EAAA;QAPzB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAK;QAC3B,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;QAClB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QACpB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QACnB,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QACpC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAClC,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAAuB;AAnErD;;AAEG;QACM,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QACrB,IAAsB,CAAA,sBAAA,GAAqD,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAYnI;;AAEG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAC1B;;AAEG;QACM,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;AACxB;;AAEG;QACoB,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC;AAC5C;;AAEG;QACM,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;QACtB,IAAU,CAAA,UAAA,GAA6B,KAAK,CAAC;QAC7C,IAAS,CAAA,SAAA,GAA2B,MAAM,CAAC;AAGpD;;AAEG;AACO,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAO,CAAC;AACvC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAO,CAAC;QAM9C,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;QAChB,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC;QACd,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QACrB,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;AACvB,QAAA,IAAA,CAAA,cAAc,GAAG,EAAE,CAAC;QACpB,IAAY,CAAA,YAAA,GAAqB,QAAQ,CAAC;QAC1C,IAAY,CAAA,YAAA,GAA0B,QAAQ,CAAC;AA+F/C,QAAA,IAAA,CAAA,eAAe,GAAG,CAAC,KAAY,KAAI;YACjC,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AAC5H,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBACpB,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;AACnG,gBAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;aACxC;AACH,SAAC,CAAC;AApFA,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC;QACzB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,CAAC;KAC9D;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,MAAM,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,GAAG,OAAO,CAAC;QACvE,MAAM,oBAAoB,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,4BAA4B,CAAC,CAAC;QACjG,IAAI,sBAAsB,EAAE;YAC1B,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;QACD,IAAI,IAAI,CAAC,0BAA0B,KAAK,0BAA0B,IAAI,oBAAoB,CAAC,EAAE;YAC3F,MAAM,IAAI,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;AACxE,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,EAAE,CAAC;SAC9B;KACF;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,aAAa,EAAE;AAChE,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC;AAC3D,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;YAC5B,UAAU,CAAC,MAAK;;gBAEd,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AAC3D,aAAC,CAAC,CAAC;SACJ;KACF;IAED,YAAY,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAAE;AACzE,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,sBAAsB;AAChD,iBAAA,GAAG,CAAC,CAAC,QAAQ,KAAI;AAChB,gBAAA,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;AAChC,oBAAA,OAAO,4BAA4B,CAAC,QAAQ,CAAC,CAAC;iBAC/C;qBAAM;AACL,oBAAA,OAAO,QAAQ,CAAC;iBACjB;AACH,aAAC,CAAC;iBACD,MAAM,CAAC,CAAC,QAAQ,KAAK,QAAQ,KAAK,SAAS,CAAC,CAAC;SACjD;aAAM;AACL,YAAA,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;SACnC;KACF;IAED,cAAc,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,UAAU,CAAC,MAAK;gBACd,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE;AAC7D,oBAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;iBACnD;AACH,aAAC,CAAC,CAAC;SACJ;KACF;IAED,YAAY,CAAC,KAAK,EAAE,IAAI,EAAA;QACtB,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE;YAC9B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;SACtC;KACF;AAED,IAAA,gBAAgB,CAAC,QAAwC,EAAA;QACvD,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC;KACrD;IAED,wBAAwB,GAAA;AACtB,QAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAK;AACjC,YAAA,IAAI,IAAI,CAAC,MAAM,EAAE;gBACf,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;aAC/D;iBAAM;gBACL,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;aAClE;AACH,SAAC,CAAC,CAAC;KACJ;;AAYM,IAAA,iBAAiB,CAAC,KAAK,EAAA;AAC5B,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;KAC1B;AAEM,IAAA,kBAAkB,CAAC,KAAK,EAAA;AAC7B,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;KAC3B;AAED,IAAA,UAAU,CAAC,KAAK,EAAA;QACd,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YAC9F,IAAI,CAAC,MAAM,EAAE,CAAC;SACf;KACF;AAED,IAAA,MAAM,CAAC,KAAa,EAAA;QAClB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE;AAChC,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,OAAO;SACR;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAChB,YAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;gBACtB,IAAI,SAAS,GAAG,EAAE,CAAC;AACnB,gBAAA,QAAQ,IAAI,CAAC,SAAS;AACtB,oBAAA,KAAK,MAAM;AACT,wBAAA,SAAS,GAAG,IAAI,CAAC,kBAAkB,EAAE,GAAG,QAAQ,GAAG,KAAK,CAAC;wBACzD,MAAM;AACR,oBAAA,KAAK,MAAM;wBACT,SAAS,GAAG,QAAQ,CAAC;wBACrB,MAAM;AACR,oBAAA,KAAK,IAAI;wBACP,SAAS,GAAG,KAAK,CAAC;wBAClB,MAAM;AACR,oBAAA;wBACE,SAAS,GAAG,QAAQ,CAAC;iBACtB;AACD,gBAAA,IAAI,CAAC,YAAY,GAAQ,SAAS,CAAC;aACpC;iBAAM;gBACL,IAAI,CAAC,+BAA+B,EAAE,CAAC;aACxC;SACF;aAAM;AACL,YAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACvB,gBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;aAC7B;YACD,IAAI,IAAI,CAAC,UAAU,KAAK,MAAM,KAAK,IAAI,CAAC,UAAU,KAAK,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE;gBACpH,OAAO;aACR;SACF;AACD,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;KAC5B;IAED,kBAAkB,GAAA;AAChB,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;AAC3D,QAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,CAAC;AACjD,QAAA,MAAM,YAAY,GAAG,iBAAiB,CAAC,KAAK,CAAC,OAAO,IAAU,MAAO,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC;AAClH,QAAA,IAAI,SAAS,CAAC;AACd,QAAA,IAAI,YAAY,KAAK,MAAM,EAAE;;AAE3B,YAAA,SAAS,GAAG;AACV,gBAAA,UAAU,EAAE,iBAAiB,CAAC,KAAK,CAAC,UAAU;AAC9C,gBAAA,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC,OAAO;AACxC,gBAAA,SAAS,EAAE,iBAAiB,CAAC,KAAK,CAAC,SAAS;aAC7C,CAAC;YACF,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;YAClE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YAC9D,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,EAAE,WAAW,EAAE,qBAAqB,CAAC,CAAC;SAC/E;AACD,QAAA,MAAM,aAAa,GAAG,iBAAiB,CAAC,YAAY,CAAC;AACrD,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,kBAAkB,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC;AACpH,QAAA,MAAM,cAAc,GAAG,cAAc,IAAI,aAAa,CAAC;AACvD,QAAA,IAAI,YAAY,KAAK,MAAM,EAAE;AAC3B,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,EAAE,YAAY,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;AAC9E,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,EAAE,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;AACxE,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,EAAE,WAAW,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;SAC7E;AACD,QAAA,OAAO,cAAc,CAAC;KACvB;IAED,+BAA+B,GAAA;AAC7B,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,aAAa,EAAE;AACrC,YAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;SACjI;KACF;AA1QU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,kBAsF7B,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAtFP,4BAA4B,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,YAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,0BAAA,EAAA,4BAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,aAAA,EAAA,eAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,WAAA,EAAA,2BAAA,EAAA,SAAA,EAAA,4BAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAsEzB,uBAAuB,EAD1B,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,mBAAmB,qECvHhC,+mEAgDA,EAAA,MAAA,EAAA,CAAA,6lOAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,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,EAAA,wCAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EDFc,CAAC,SAAS,CAAC,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;AAmCA,UAAA,CAAA;AAAb,IAAA,UAAU,EAAE;;AAA4D,CAAA,EAAA,4BAAA,CAAA,SAAA,EAAA,4BAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAsB3D,UAAA,CAAA;AAAb,IAAA,UAAU,EAAE;;AAAsB,CAAA,EAAA,4BAAA,CAAA,SAAA,EAAA,eAAA,EAAA,KAAA,CAAA,CAAA,CAAA;4FArDjC,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBARxC,SAAS;+BACE,yBAAyB,EAAA,UAAA,EAGvB,CAAC,SAAS,CAAC,mBACN,uBAAuB,CAAC,MAAM,EAAA,mBAAA,EAC1B,KAAK,EAAA,QAAA,EAAA,+mEAAA,EAAA,MAAA,EAAA,CAAA,6lOAAA,CAAA,EAAA,CAAA;;0BAwFvB,MAAM;2BAAC,QAAQ,CAAA;8OArFL,MAAM,EAAA,CAAA;sBAAlB,KAAK;gBA4BG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,sBAAsB,EAAA,CAAA;sBAA9B,KAAK;gBACiB,0BAA0B,EAAA,CAAA;sBAAhD,KAAK;gBAIG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAIG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAIG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAIG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAIiB,aAAa,EAAA,CAAA;sBAAnC,KAAK;gBAIG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAKI,YAAY,EAAA,CAAA;sBAArB,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACmC,gBAAgB,EAAA,CAAA;sBAAzD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBACG,iBAAiB,EAAA,CAAA;sBAA3D,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,YAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBACT,gBAAgB,EAAA,CAAA;sBAA/C,SAAS;uBAAC,mBAAmB,CAAA;gBACS,YAAY,EAAA,CAAA;sBAAlD,YAAY;uBAAC,uBAAuB,CAAA;gBAiH9B,iBAAiB,EAAA,CAAA;sBADvB,YAAY;uBAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAK9B,kBAAkB,EAAA,CAAA;sBADxB,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MEpOxB,wBAAwB,CAAA;AANrC,IAAA,WAAA,GAAA;QAUW,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QACjB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QAEjB,IAAwB,CAAA,wBAAA,GAAG,KAAK,CAAC;AAM3C,KAAA;AAJC,IAAA,IACI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,UAAU,IAAI,SAAS,CAAC;KACrC;+GAZU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,8VCRrC,iuBA0BA,EAAA,MAAA,EAAA,CAAA,sxCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDlBa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBANpC,SAAS;+BACE,qBAAqB,EAAA,eAAA,EAGd,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,iuBAAA,EAAA,MAAA,EAAA,CAAA,sxCAAA,CAAA,EAAA,CAAA;8BAGtC,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,wBAAwB,EAAA,CAAA;sBAAhC,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAEF,KAAK,EAAA,CAAA;sBADR,WAAW;uBAAC,aAAa,CAAA;;;METf,wBAAwB,CAAA;AALrC,IAAA,WAAA,GAAA;QAOW,IAAU,CAAA,UAAA,GAA8B,EAAE,CAAC;QAC3C,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QAGjB,IAAiB,CAAA,iBAAA,GAAG,EAAE,CAAC;AAGtB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAO,CAAC;AASlD,KAAA;IAPC,oBAAoB,CAAC,KAAK,EAAE,IAAI,EAAA;QAC9B,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;AAED,IAAA,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAA;AAC3B,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;KACnD;+GAjBU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,4UCRrC,8tBAkBA,EAAA,MAAA,EAAA,CAAA,ugCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,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,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,OAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,cAAA,EAAA,MAAA,EAAA,MAAA,EAAA,SAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDVa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,8tBAAA,EAAA,MAAA,EAAA,CAAA,ugCAAA,CAAA,EAAA,CAAA;8BAKtB,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACI,YAAY,EAAA,CAAA;sBAArB,MAAM;;;MERI,2BAA2B,CAAA;AAgDtC,IAAA,WAAA,GAAA;AAlCA;;AAEG;QACM,IAAiB,CAAA,iBAAA,GAAG,EAAE,CAAC;AAChC;;AAEG;QACM,IAAc,CAAA,cAAA,GAAG,EAAE,CAAC;AAC7B;;AAEG;QACM,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC;AAChC;;AAEG;QACM,IAAkB,CAAA,kBAAA,GAAG,QAAQ,CAAC;AAiB7B,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAO,CAAC;AAG7C,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;KAChG;AAED,IAAA,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,KAAa,EAAA;AACjC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;KAChD;+GAtDU,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,4gBCTxC,27DA6DA,EAAA,MAAA,EAAA,CAAA,ijCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,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,EAAAG,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,EAAA,eAAA,EAAA,aAAA,EAAA,eAAA,EAAA,eAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDpDa,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBANvC,SAAS;+BACE,yBAAyB,EAAA,eAAA,EAGlB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,27DAAA,EAAA,MAAA,EAAA,CAAA,ijCAAA,CAAA,EAAA,CAAA;wDAGtC,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAKG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAIG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAIG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBAIG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAIG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBAIG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBAIG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAIG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAIG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAGG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACI,UAAU,EAAA,CAAA;sBAAnB,MAAM;;;ME9CI,4BAA4B,CAAA;AASvC,IAAA,WAAA,CAAoB,gBAAkC,EAAA;QAAlC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAJ/B,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC;QACnC,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;AACrB,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,YAAY,EAAO,CAAC;KAEC;IAE1D,WAAW,CAAC,KAAK,EAAE,OAAO,EAAA;QACxB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;KACpD;+GAbU,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAF,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,sOCTzC,2kFA6CA,EAAA,MAAA,EAAA,CAAA,kiCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;AD/ByB,UAAA,CAAA;AAAb,IAAA,UAAU,EAAE;;AAAsB,CAAA,EAAA,4BAAA,CAAA,SAAA,EAAA,eAAA,EAAA,KAAA,CAAA,CAAA,CAAA;4FALjC,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBANxC,SAAS;+BACE,yBAAyB,EAAA,eAAA,EAGlB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,2kFAAA,EAAA,MAAA,EAAA,CAAA,kiCAAA,CAAA,EAAA,CAAA;qFAGtC,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAIiB,aAAa,EAAA,CAAA;sBAAnC,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACI,oBAAoB,EAAA,CAAA;sBAA7B,MAAM;;;MEJI,8BAA8B,CAAA;AAEzC,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,WAAW,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC;KACjE;+GAJU,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA9B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,8BAA8B,EAR/B,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;AAKT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,8IAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGU,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAV1C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,2BAA2B,EAC3B,QAAA,EAAA,CAAA;;;;;AAKT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,8IAAA,CAAA,EAAA,CAAA;8BAIQ,WAAW,EAAA,CAAA;sBAAnB,KAAK;;;MCSK,yBAAyB,CAAA;AA8BpC,IAAA,IACI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,UAAU,IAAI,SAAS,CAAC;KACrC;AAID,IAAA,WAAA,CAAmB,EAAc,EAAA;QAAd,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;QAnCxB,IAAgB,CAAA,gBAAA,GAAG,IAAI,CAAC;QAKxB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QACjB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QACnB,IAAO,CAAA,OAAA,GAAG,EAAE,CAAC;QACb,IAAK,CAAA,KAAA,GAAG,GAAG,CAAC;AAmBX,QAAA,IAAA,CAAA,sBAAsB,GAAG,IAAI,YAAY,EAAO,CAAC;AASzD,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,KAAI;AACxB,YAAA,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC;AAChD,YAAA,OAAO,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC;AACrE,SAAC,CAAC;KACH;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAS,KAAI;AAC5B,gBAAA,OAAO,EAAE,CACP,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,EAAE;AAC9B,qBAAA,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;AAC/C,qBAAA,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAClG,CAAC;AACJ,aAAC,CAAC;SACH;KACF;IAED,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AAC9B,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;;AAE5B,YAAA,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,OAAO,CAAC;iBAChE,IAAI,CACH,GAAG,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC/B,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,EACrE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CACzB;AACA,iBAAA,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SAChE;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC3B,YAAA,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC;SACvC;KACF;+GA1EU,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,kfCtBtC,kyDAqCA,EAAA,MAAA,EAAA,CAAA,sdAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDfa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAPrC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,EAGf,eAAA,EAAA,uBAAuB,CAAC,MAAM,uBAC1B,KAAK,EAAA,QAAA,EAAA,kyDAAA,EAAA,MAAA,EAAA,CAAA,sdAAA,CAAA,EAAA,CAAA;+EAGjB,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAKG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAaG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACI,sBAAsB,EAAA,CAAA;sBAA/B,MAAM;gBAEH,KAAK,EAAA,CAAA;sBADR,WAAW;uBAAC,aAAa,CAAA;;;MECf,gBAAgB,CAAA;+GAAhB,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,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,iBApBzB,4BAA4B;YAC5B,4BAA4B;YAC5B,wBAAwB;YACxB,wBAAwB;YACxB,2BAA2B;YAC3B,uBAAuB;YACvB,8BAA8B;AAC9B,YAAA,yBAAyB,aAnBzB,YAAY;YACZ,WAAW;YACX,cAAc;YACd,eAAe;YACf,cAAc;YACd,aAAa;YACb,aAAa;YACb,eAAe;YACf,eAAe;AACf,YAAA,UAAU,aAaV,4BAA4B;YAC5B,4BAA4B;YAC5B,wBAAwB;YACxB,wBAAwB;YACxB,2BAA2B;YAC3B,uBAAuB;YACvB,8BAA8B;YAC9B,yBAAyB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAhCzB,YAAY;YACZ,WAAW;YACX,cAAc;YACd,eAAe;YACf,cAAc;YACd,aAAa;YACb,aAAa;YACb,eAAe;YACf,eAAe;YACf,UAAU,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAuBD,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAlC5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,cAAc;wBACd,eAAe;wBACf,cAAc;wBACd,aAAa;wBACb,aAAa;wBACb,eAAe;wBACf,eAAe;wBACf,UAAU;AACX,qBAAA;AACD,oBAAA,YAAY,EAAE;wBACZ,4BAA4B;wBAC5B,4BAA4B;wBAC5B,wBAAwB;wBACxB,wBAAwB;wBACxB,2BAA2B;wBAC3B,uBAAuB;wBACvB,8BAA8B;wBAC9B,yBAAyB;AAC1B,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,4BAA4B;wBAC5B,4BAA4B;wBAC5B,wBAAwB;wBACxB,wBAAwB;wBACxB,2BAA2B;wBAC3B,uBAAuB;wBACvB,8BAA8B;wBAC9B,yBAAyB;AAC1B,qBAAA;AACF,iBAAA,CAAA;;;ACpDD;;AAEG;;;;"}