{"version":3,"file":"select.vue2.mjs","sources":["../../../components/select/select.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { Icon } from '@/components/icon'\r\nimport { Input } from '@/components/input'\r\nimport { NativeScroll } from '@/components/native-scroll'\r\nimport { Option } from '@/components/option'\r\nimport { Overflow } from '@/components/overflow'\r\nimport { Popper } from '@/components/popper'\r\nimport { Renderer } from '@/components/renderer'\r\nimport { Tag } from '@/components/tag'\r\nimport { Tooltip } from '@/components/tooltip'\r\nimport { VirtualList } from '@/components/virtual-list'\r\nimport { useFieldStore } from '@/components/form'\r\n\r\nimport { computed, nextTick, onMounted, reactive, ref, toRef, watch, watchEffect } from 'vue'\r\n\r\nimport {\r\n  placementWhileList,\r\n  useClickOutside,\r\n  useHover,\r\n  useModifier,\r\n  useMounted,\r\n  usePopper,\r\n} from '@vexip-ui/hooks'\r\nimport {\r\n  createIconProp,\r\n  createSizeProp,\r\n  createStateProp,\r\n  emitEvent,\r\n  useIcons,\r\n  useLocale,\r\n  useNameHelper,\r\n  useProps,\r\n} from '@vexip-ui/config'\r\nimport {\r\n  decide,\r\n  getLast,\r\n  getRangeWidth,\r\n  isNull,\r\n  removeArrayItem,\r\n  toAttrValue,\r\n} from '@vexip-ui/utils'\r\nimport { selectProps } from './props'\r\nimport { defaultKeyConfig } from './symbol'\r\n\r\nimport type { InputExposed } from '@/components/input'\r\nimport type { PopperExposed } from '@/components/popper'\r\nimport type { TooltipExposed } from '@/components/tooltip'\r\nimport type { VirtualListExposed } from '@/components/virtual-list'\r\nimport type {\r\n  ChangeEvent,\r\n  SelectBaseValue,\r\n  SelectEvent,\r\n  SelectOptionState,\r\n  SelectSlots,\r\n  SelectValue,\r\n} from './symbol'\r\n\r\nfunction isSameValue(newValue: SelectValue, oldValue: SelectValue) {\r\n  const isNewArray = Array.isArray(newValue)\r\n  const isOldArray = Array.isArray(oldValue)\r\n\r\n  if (isNewArray !== isOldArray) return false\r\n\r\n  if (isNewArray && isOldArray) {\r\n    if (newValue.length !== oldValue.length) return false\r\n\r\n    for (let i = 0, len = newValue.length; i < len; ++i) {\r\n      if (newValue[i] !== oldValue[i]) return false\r\n    }\r\n\r\n    return true\r\n  }\r\n\r\n  if (isNull(newValue)) return isNull(oldValue)\r\n\r\n  return newValue === oldValue\r\n}\r\n\r\ndefineOptions({ name: 'Select' })\r\n\r\nconst {\r\n  idFor,\r\n  labelId,\r\n  state,\r\n  disabled,\r\n  loading,\r\n  size,\r\n  validateField,\r\n  clearField,\r\n  getFieldValue,\r\n  setFieldValue,\r\n} = useFieldStore<SelectValue>(focus)\r\n\r\nconst nh = useNameHelper('select')\r\n\r\nconst _props = defineProps(selectProps)\r\nconst props = useProps('select', _props, {\r\n  size: createSizeProp(size),\r\n  state: createStateProp(state),\r\n  locale: null,\r\n  visible: {\r\n    default: false,\r\n    static: true,\r\n  },\r\n  options: {\r\n    default: () => [],\r\n    static: true,\r\n  },\r\n  disabled: () => disabled.value,\r\n  transitionName: () => nh.ns('drop'),\r\n  outsideClose: true,\r\n  placeholder: null,\r\n  prefix: createIconProp(),\r\n  prefixColor: '',\r\n  suffix: createIconProp(),\r\n  suffixColor: '',\r\n  noSuffix: false,\r\n  value: {\r\n    default: () => getFieldValue()!,\r\n    static: true,\r\n  },\r\n  multiple: false,\r\n  clearable: false,\r\n  maxListHeight: 300,\r\n  listClass: null,\r\n  placement: {\r\n    default: 'bottom',\r\n    validator: value => placementWhileList.includes(value),\r\n  },\r\n  transfer: false,\r\n  optionCheck: false,\r\n  emptyText: null,\r\n  staticSuffix: false,\r\n  loading: () => loading.value,\r\n  loadingIcon: createIconProp(),\r\n  loadingLock: false,\r\n  loadingEffect: null,\r\n  keyConfig: () => ({}),\r\n  filter: false,\r\n  ignoreCase: false,\r\n  creatable: false,\r\n  transparent: false,\r\n  maxTagCount: 0,\r\n  noRestTip: false,\r\n  tagType: null,\r\n  noPreview: false,\r\n  remote: false,\r\n  fitPopper: false,\r\n  name: {\r\n    default: '',\r\n    static: true,\r\n  },\r\n  popperAlive: null,\r\n  countLimit: 0,\r\n  filterPosition: 'in-control',\r\n  slots: () => ({}),\r\n  shift: true,\r\n})\r\n\r\nconst emit = defineEmits(['update:value', 'update:visible', 'update:label'])\r\n\r\nconst slots = defineSlots<SelectSlots>()\r\n\r\nconst locale = useLocale('select', toRef(props, 'locale'))\r\nconst icons = useIcons()\r\n\r\nconst currentVisible = ref(props.visible)\r\nconst currentLabels = ref<string[]>([])\r\nconst currentValues = ref<SelectBaseValue[]>([])\r\nconst currentIndex = ref(-1)\r\nconst placement = toRef(props, 'placement')\r\nconst transfer = toRef(props, 'transfer')\r\n// const listHeight = ref<string>()\r\nconst baseOptions = ref<SelectOptionState[]>([])\r\nconst currentFilter = ref('')\r\nconst anchorWidth = ref(0)\r\nconst userOptions = ref<SelectOptionState[]>([])\r\nconst restTagCount = ref(0)\r\nconst restTipShow = ref(false)\r\nconst composing = ref(false)\r\n\r\nconst { isMounted } = useMounted()\r\n\r\nconst dynamicOption = reactive<SelectOptionState>({\r\n  disabled: false,\r\n  divided: false,\r\n  title: '',\r\n  value: '',\r\n  label: '',\r\n  group: false,\r\n  depth: 0,\r\n  parent: null,\r\n  hidden: false,\r\n  hitting: true,\r\n  data: '',\r\n})\r\n\r\nconst optionValues = reactive(new Set<string | number>())\r\nconst hittingOption = ref<SelectOptionState>()\r\nconst optionStates = computed(() => userOptions.value.concat(baseOptions.value))\r\nconst visibleOptions = computed(() => optionStates.value.filter(state => !state.hidden))\r\n\r\nconst keyConfig = computed(() => ({ ...defaultKeyConfig, ...props.keyConfig }))\r\n\r\nconst wrapper = useClickOutside(handleClickOutside)\r\nconst nativeInput = ref<HTMLInputElement>()\r\nconst filterInput = ref<InputExposed>()\r\nconst device = ref<HTMLElement>()\r\nconst virtualList = ref<VirtualListExposed>()\r\nconst popper = ref<PopperExposed>()\r\nconst restTip = ref<TooltipExposed>()\r\n\r\nconst input = computed(() => filterInput.value?.input ?? nativeInput.value)\r\n\r\nconst { reference, transferTo, updatePopper } = usePopper({\r\n  placement,\r\n  transfer,\r\n  wrapper,\r\n  popper: computed(() => popper.value?.wrapper),\r\n  isDrop: true,\r\n  shift: toRef(props, 'shift'),\r\n})\r\nconst { isHover } = useHover(reference)\r\n\r\nconst cachedSelected = reactive(new Map<SelectBaseValue, SelectOptionState>())\r\nconst optionValueMap = ref(new Map<SelectBaseValue, SelectOptionState>())\r\n\r\nlet emittedValue: typeof props.value | null = props.value\r\n\r\nconst updateTrigger = ref(0)\r\n\r\nwatchEffect(() => {\r\n  /* eslint-disable @typescript-eslint/no-unused-expressions */\r\n  props.keyConfig.value\r\n  props.keyConfig.label\r\n  props.keyConfig.disabled\r\n  props.keyConfig.divided\r\n  props.keyConfig.title\r\n  props.keyConfig.group\r\n  props.keyConfig.children\r\n\r\n  // If we only read the `props.options`, when user use Array native methods to\r\n  // change options, Vue will not trigger the watch callback\r\n  for (let i = 0, len = props.options.length; i < len; ++i) {\r\n    props.options[i]\r\n  }\r\n  /* eslint-enable */\r\n\r\n  updateTrigger.value++\r\n})\r\n\r\nwatch(updateTrigger, initOptionState, { immediate: true })\r\n\r\nfunction initOptionState() {\r\n  const {\r\n    value: valueKey,\r\n    label: labelKey,\r\n    disabled: disabledKey,\r\n    divided: dividedKey,\r\n    title: titleKey,\r\n    group: groupKey,\r\n    children: childrenKey,\r\n  } = keyConfig.value\r\n  const oldMap = optionValueMap.value\r\n  const map = new Map<string | number, SelectOptionState>()\r\n  const states: SelectOptionState[] = []\r\n  const loop = props.options\r\n    .map(option => ({ option, depth: 0, parent: null as SelectOptionState | null }))\r\n    .reverse()\r\n\r\n  optionValues.clear()\r\n\r\n  for (const option of userOptions.value) {\r\n    map.set(option.value, option)\r\n    optionValues.add(option.value)\r\n  }\r\n\r\n  while (loop.length) {\r\n    const { option, depth, parent } = loop.pop()!\r\n    const rawOption = typeof option === 'string' ? { [valueKey]: option } : option\r\n    const group = !!rawOption[groupKey]\r\n    const value = rawOption[valueKey]\r\n\r\n    if (!group && isNull(value)) continue\r\n\r\n    const label = rawOption[labelKey] || String(value)\r\n    const {\r\n      [disabledKey]: disabled = false,\r\n      [dividedKey]: divided = false,\r\n      [titleKey]: title = '',\r\n      [childrenKey]: children = null,\r\n    } = rawOption\r\n    const oldState = oldMap.get(rawOption.value)\r\n    const optionState = reactive({\r\n      disabled,\r\n      divided,\r\n      title,\r\n      value,\r\n      label,\r\n      group,\r\n      depth,\r\n      parent,\r\n      hidden: oldState?.hidden ?? false,\r\n      hitting: oldState?.hitting ?? false,\r\n      data: option,\r\n    }) as SelectOptionState\r\n\r\n    states.push(optionState)\r\n\r\n    if (!group) {\r\n      map.set(value, optionState)\r\n      optionValues.add(String(value))\r\n    }\r\n\r\n    if (Array.isArray(children) && children.length) {\r\n      loop.push(\r\n        ...children\r\n          .map(child => {\r\n            return { option: child, depth: depth + 1, parent: optionState }\r\n          })\r\n          .reverse(),\r\n      )\r\n    }\r\n  }\r\n\r\n  optionValueMap.value = map\r\n  baseOptions.value = states\r\n\r\n  initValueAndLabel(emittedValue)\r\n}\r\n\r\nuseModifier({\r\n  target: wrapper,\r\n  passive: false,\r\n  onKeyDown: (event, modifier) => {\r\n    if (composing.value) {\r\n      event.stopPropagation()\r\n      return\r\n    }\r\n\r\n    if (!currentVisible.value) {\r\n      if (modifier.space || modifier.enter) {\r\n        event.preventDefault()\r\n        event.stopPropagation()\r\n        toggleVisible()\r\n      }\r\n\r\n      return\r\n    }\r\n\r\n    if (modifier.tab || modifier.escape) {\r\n      setVisible(false)\r\n      modifier.resetAll()\r\n\r\n      return\r\n    }\r\n\r\n    decide(\r\n      [\r\n        [\r\n          () => modifier.up || modifier.down,\r\n          () => {\r\n            const options = visibleOptions.value\r\n            const length = options.length\r\n\r\n            if (!length) return\r\n\r\n            const step = modifier.down ? 1 : -1\r\n\r\n            let index = (Math.max(-1, currentIndex.value + step) + length) % length\r\n            let option = options[index]\r\n\r\n            for (let i = 0; (option.disabled || option.group) && i < length; ++i) {\r\n              index += step\r\n              index = (index + length) % length\r\n              option = options[index]\r\n            }\r\n\r\n            updateHitting(index)\r\n          },\r\n        ],\r\n        [\r\n          () => modifier.enter || (!props.filter && modifier.space),\r\n          () => {\r\n            if (currentIndex.value >= 0) {\r\n              handleSelect(totalOptions.value[currentIndex.value])\r\n            } else if (showDynamic.value) {\r\n              handleSelect(dynamicOption)\r\n            } else {\r\n              setVisible(false)\r\n            }\r\n          },\r\n        ],\r\n      ],\r\n      {\r\n        beforeMatchAny: () => {\r\n          event.preventDefault()\r\n          event.stopPropagation()\r\n        },\r\n        afterMatchAny: modifier.resetAll,\r\n      },\r\n    )\r\n  },\r\n})\r\n\r\nconst className = computed(() => {\r\n  return {\r\n    [nh.b()]: true,\r\n    [nh.ns('input-vars')]: true,\r\n    [nh.bs('vars')]: true,\r\n    [nh.bm('inherit')]: props.inherit,\r\n    [nh.bm('multiple')]: props.multiple,\r\n    [nh.bm('filter')]: props.filter,\r\n    [nh.bm('responsive')]: props.multiple && props.maxTagCount <= 0,\r\n    [nh.bm('disabled')]: props.disabled,\r\n  }\r\n})\r\nconst readonly = computed(() => props.loading && props.loadingLock)\r\nconst selectorClass = computed(() => {\r\n  const baseCls = nh.be('selector')\r\n\r\n  return {\r\n    [baseCls]: true,\r\n    [`${baseCls}--focused`]: !props.disabled && currentVisible.value,\r\n    [`${baseCls}--disabled`]: props.disabled,\r\n    [`${baseCls}--readonly`]: readonly.value,\r\n    [`${baseCls}--loading`]: props.loading,\r\n    [`${baseCls}--${props.size}`]: props.size !== 'default',\r\n    [`${baseCls}--${props.state}`]: props.state !== 'default',\r\n    [`${baseCls}--has-prefix`]: hasPrefix.value,\r\n    [`${baseCls}--has-suffix`]: !props.noSuffix,\r\n    [`${baseCls}--transparent`]: props.transparent,\r\n  }\r\n})\r\nconst hasValue = computed(\r\n  () => !isNull(currentValues.value[0]) && (props.multiple || currentValues.value[0] !== ''),\r\n)\r\nconst hasPrefix = computed(() => !!(slots.prefix || props.prefix || props.slots.prefix))\r\nconst showDynamic = computed(() => {\r\n  return !!(\r\n    props.filter &&\r\n    props.creatable &&\r\n    dynamicOption.value &&\r\n    !optionValues.has(dynamicOption.value)\r\n  )\r\n})\r\nconst totalOptions = computed(() => {\r\n  return showDynamic.value ? [dynamicOption].concat(visibleOptions.value) : visibleOptions.value\r\n})\r\nconst normalOptions = computed(() => optionStates.value.filter(option => !option.group))\r\nconst optionParentMap = computed(() => {\r\n  const options = normalOptions.value\r\n  const map = new Map<string | number, SelectOptionState>()\r\n\r\n  for (let i = 0, len = options.length; i < len; ++i) {\r\n    const option = options[i]\r\n\r\n    if (option.parent) {\r\n      map.set(option.value, option.parent)\r\n    }\r\n  }\r\n\r\n  return map\r\n})\r\nconst showClear = computed(() => {\r\n  return !props.disabled && !readonly.value && props.clearable && isHover.value && hasValue.value\r\n})\r\nconst previewOption = computed(() => {\r\n  return !props.noPreview && currentVisible.value ? hittingOption.value : undefined\r\n})\r\nconst limited = computed(() => {\r\n  return props.multiple && props.countLimit > 0 && currentValues.value.length >= props.countLimit\r\n})\r\nconst showPlaceholder = computed(() => {\r\n  if (props.filterPosition !== 'in-control') {\r\n    return (\r\n      !hasValue.value && !previewOption.value && !!(props.placeholder ?? locale.value.placeholder)\r\n    )\r\n  }\r\n\r\n  // 采用反推，出现下列情况时不显示：\r\n  // 1. 开始组合（如输入了任意拼音）\r\n  // 2. 有值且 未开预览/多选模式/未打开列表\r\n  // 3. 没有预览选项且没有合法的占位值\r\n  // 4. 打开列表且输入了过滤值\r\n  return (\r\n    !composing.value &&\r\n    !(hasValue.value && (props.noPreview || props.multiple || !currentVisible.value)) &&\r\n    !(!previewOption.value && !(props.placeholder ?? locale.value.placeholder)) &&\r\n    !(currentVisible.value && currentFilter.value)\r\n  )\r\n})\r\n\r\nfunction getOptionFromMap(value?: SelectBaseValue | null) {\r\n  if (isNull(value)) return null\r\n\r\n  return optionValueMap.value.get(value) ?? cachedSelected.get(value) ?? null\r\n}\r\n\r\nfunction fitPopperWidth() {\r\n  requestAnimationFrame(() => {\r\n    updatePopper()\r\n\r\n    if (wrapper.value && popper.value?.wrapper) {\r\n      if (typeof props.fitPopper === 'number') {\r\n        popper.value.wrapper.style.width = `${props.fitPopper}px`\r\n      } else if (props.fitPopper) {\r\n        popper.value.wrapper.style.width = `${wrapper.value.offsetWidth}px`\r\n      } else {\r\n        popper.value.wrapper.style.minWidth = `${wrapper.value.offsetWidth}px`\r\n      }\r\n    }\r\n  })\r\n}\r\n\r\nwatch(\r\n  () => props.visible,\r\n  value => {\r\n    currentVisible.value = value\r\n  },\r\n)\r\nwatch(currentVisible, value => {\r\n  if (value) {\r\n    restTipShow.value = false\r\n    initHittingIndex()\r\n    fitPopperWidth()\r\n  }\r\n\r\n  if (props.filterPosition !== 'in-control') {\r\n    requestAnimationFrame(syncInputValue)\r\n  } else {\r\n    syncInputValue()\r\n  }\r\n})\r\nwatch(\r\n  () => props.value,\r\n  value => {\r\n    if (!emittedValue || !isSameValue(value, emittedValue)) {\r\n      emittedValue = value\r\n      initValueAndLabel(value)\r\n      syncInputValue()\r\n    }\r\n  },\r\n)\r\nwatch(\r\n  () => props.disabled,\r\n  value => {\r\n    if (value) {\r\n      setVisible(false)\r\n    }\r\n  },\r\n)\r\nwatch(readonly, value => {\r\n  if (value) {\r\n    setVisible(false)\r\n  }\r\n})\r\nwatch(currentFilter, value => {\r\n  dynamicOption.value = value\r\n  dynamicOption.label = value\r\n  dynamicOption.data = value\r\n\r\n  filterOptions(value)\r\n})\r\n\r\ndefineExpose({\r\n  idFor,\r\n  labelId,\r\n  currentVisible,\r\n  currentValues,\r\n  currentLabels,\r\n  optionStates,\r\n  isHover,\r\n  currentFilter,\r\n  composing,\r\n  visibleOptions,\r\n  totalOptions,\r\n\r\n  wrapper,\r\n  reference,\r\n  popper,\r\n  input,\r\n  device,\r\n  virtualList,\r\n  restTip,\r\n\r\n  updatePopper,\r\n  isSelected,\r\n  getOptionFromMap,\r\n  updateHitting,\r\n  handleClear,\r\n  focus,\r\n  blur: () => {\r\n    input.value?.blur()\r\n    reference.value?.blur()\r\n  },\r\n})\r\n\r\nonMounted(() => {\r\n  syncInputValue()\r\n\r\n  if (props.visible) {\r\n    restTipShow.value = false\r\n    initHittingIndex()\r\n    fitPopperWidth()\r\n  }\r\n})\r\n\r\nfunction initValueAndLabel(value: SelectValue | null) {\r\n  if (isNull(value)) {\r\n    currentValues.value = []\r\n    currentLabels.value = []\r\n    return\r\n  }\r\n\r\n  const normalizedValue = !Array.isArray(value) ? [value] : value\r\n\r\n  const valueSet = new Set(normalizedValue)\r\n  const selectedValues: SelectBaseValue[] = []\r\n  const selectedLabels: string[] = []\r\n\r\n  valueSet.forEach(value => {\r\n    let option = getOptionFromMap(value)\r\n\r\n    if (option) {\r\n      selectedValues.push(option.value)\r\n      selectedLabels.push(option.label)\r\n\r\n      if (!cachedSelected.has(option.value)) {\r\n        cachedSelected.set(option.value, option)\r\n      }\r\n    } else if (props.remote) {\r\n      option = reactive({\r\n        value,\r\n        disabled: false,\r\n        divided: false,\r\n        title: '',\r\n        label: String(value),\r\n        group: false,\r\n        depth: -1,\r\n        parent: null,\r\n        hidden: true,\r\n        hitting: false,\r\n        data: value,\r\n      }) as SelectOptionState\r\n\r\n      cachedSelected.set(value, option)\r\n      selectedValues.push(value)\r\n      selectedLabels.push(option.label)\r\n    }\r\n  })\r\n\r\n  for (const cachedValue of Array.from(cachedSelected.keys())) {\r\n    if (!valueSet.has(cachedValue)) {\r\n      cachedSelected.delete(cachedValue)\r\n    }\r\n  }\r\n\r\n  currentValues.value = selectedValues\r\n  currentLabels.value = selectedLabels\r\n\r\n  initHittingIndex()\r\n  filterOptions(currentFilter.value)\r\n}\r\n\r\nfunction initHittingIndex() {\r\n  const value = currentValues.value[0]\r\n\r\n  if (isNull(value)) {\r\n    updateHitting(-1)\r\n  } else {\r\n    if (!isMounted.value) return\r\n\r\n    updateHitting(visibleOptions.value.findIndex(option => option.value === value))\r\n  }\r\n}\r\n\r\nfunction setVisible(visible: boolean) {\r\n  if (currentVisible.value === visible) return\r\n\r\n  currentVisible.value = visible\r\n\r\n  emit('update:visible', visible)\r\n  emitEvent(props.onToggle, visible)\r\n}\r\n\r\nfunction updateHitting(hitting: number, ensureInView = true) {\r\n  currentIndex.value = hitting\r\n  hittingOption.value = undefined\r\n\r\n  let index = -1\r\n\r\n  optionStates.value.forEach(option => {\r\n    if (!option.hidden) {\r\n      index += 1\r\n      option.hitting = hitting === index\r\n\r\n      if (option.hitting) {\r\n        hittingOption.value = option\r\n      }\r\n    } else {\r\n      option.hitting = false\r\n    }\r\n  })\r\n\r\n  if (ensureInView && currentVisible.value && virtualList.value) {\r\n    virtualList.value.ensureIndexInView(hitting)\r\n  }\r\n}\r\n\r\nfunction isSelected(option: SelectOptionState) {\r\n  if (props.multiple) {\r\n    return currentValues.value.includes(option.value)\r\n  }\r\n\r\n  return currentValues.value[0] === option.value\r\n}\r\n\r\nfunction filterOptions(inputValue: string) {\r\n  const filter = props.filter\r\n\r\n  if (!filter || props.remote) return\r\n\r\n  if (!inputValue) {\r\n    optionStates.value.forEach(state => {\r\n      state.hidden = false\r\n    })\r\n  } else {\r\n    optionStates.value.forEach(state => {\r\n      state.hidden = true\r\n    })\r\n\r\n    if (typeof filter === 'function') {\r\n      normalOptions.value.forEach(state => {\r\n        state.hidden = !filter(inputValue, state)\r\n      })\r\n    } else {\r\n      if (props.ignoreCase) {\r\n        const ignoreCaseValue = inputValue.toString().toLocaleLowerCase()\r\n\r\n        normalOptions.value.forEach(state => {\r\n          state.hidden = !state.label?.toString().toLocaleLowerCase().includes(ignoreCaseValue)\r\n        })\r\n      } else {\r\n        normalOptions.value.forEach(state => {\r\n          state.hidden = !state.label?.toString().includes(inputValue?.toString())\r\n        })\r\n      }\r\n    }\r\n\r\n    const parentMap = optionParentMap.value\r\n\r\n    normalOptions.value.forEach(option => {\r\n      if (!option.hidden && option.parent) {\r\n        let parent = parentMap.get(option.value) || null\r\n\r\n        while (parent && parent.hidden) {\r\n          parent.hidden = false\r\n          parent = parent.parent\r\n        }\r\n      }\r\n    })\r\n  }\r\n\r\n  updateHitting(currentIndex.value)\r\n}\r\n\r\nfunction handleTagClose(value?: SelectBaseValue | null) {\r\n  if (props.disabled || readonly.value) return\r\n\r\n  !isNull(value) && handleSelect(getOptionFromMap(value))\r\n}\r\n\r\nfunction handleRestTagClose(value?: SelectBaseValue | null) {\r\n  handleTagClose(value)\r\n\r\n  if (restTipShow.value) {\r\n    restTip.value?.updatePopper()\r\n  }\r\n}\r\n\r\nfunction handleSelect(option?: SelectOptionState | null) {\r\n  if (!option) return\r\n\r\n  const selected = isSelected(option)\r\n  const value = option.value\r\n\r\n  if (selected) {\r\n    if (userOptions.value.find(item => item.value === value)) {\r\n      removeArrayItem(userOptions.value, item => item.value === value)\r\n      optionValueMap.value.delete(value)\r\n    }\r\n\r\n    cachedSelected.delete(value)\r\n  } else {\r\n    if (!props.multiple) {\r\n      userOptions.value.length = 0\r\n    }\r\n\r\n    if (limited.value) return\r\n\r\n    if (dynamicOption.value && value === dynamicOption.value) {\r\n      const newOption = { ...dynamicOption }\r\n\r\n      userOptions.value.push(newOption)\r\n      optionValueMap.value.set(value, newOption)\r\n    }\r\n\r\n    cachedSelected.set(option.value, option)\r\n  }\r\n\r\n  emitEvent(\r\n    props[props.multiple && selected ? 'onCancel' : 'onSelect'] as SelectEvent,\r\n    value,\r\n    option.data,\r\n  )\r\n  handleChange(option)\r\n\r\n  if (props.multiple) {\r\n    if (props.filterPosition === 'in-control') {\r\n      currentFilter.value = ''\r\n      syncInputValue()\r\n    }\r\n\r\n    requestAnimationFrame(updatePopper)\r\n  } else {\r\n    setVisible(false)\r\n  }\r\n\r\n  anchorWidth.value = 0\r\n}\r\n\r\nfunction handleChange(option: SelectOptionState) {\r\n  if (props.multiple) {\r\n    if (isSelected(option)) {\r\n      const index = currentValues.value.findIndex(v => v === option.value)\r\n\r\n      if (~index) {\r\n        currentValues.value.splice(index, 1)\r\n        currentLabels.value.splice(index, 1)\r\n      }\r\n    } else {\r\n      currentValues.value.push(option.value)\r\n      currentLabels.value.push(option.label)\r\n    }\r\n\r\n    emittedValue = Array.from(currentValues.value)\r\n\r\n    emit('update:value', emittedValue)\r\n    emit('update:label', currentLabels.value)\r\n    setFieldValue(emittedValue)\r\n    emitEvent(\r\n      props.onChange as ChangeEvent,\r\n      emittedValue,\r\n      emittedValue.map(value => getOptionFromMap(value)?.data ?? value),\r\n    )\r\n    validateField()\r\n  } else {\r\n    const prevValue = currentValues.value[0]\r\n\r\n    currentValues.value.length = 0\r\n    currentLabels.value.length = 0\r\n    currentValues.value.push(option.value)\r\n    currentLabels.value.push(option.label)\r\n\r\n    if (prevValue !== option.value) {\r\n      emittedValue = option.value\r\n\r\n      emit('update:value', emittedValue)\r\n      emit('update:label', currentLabels.value[0])\r\n      setFieldValue(emittedValue)\r\n      emitEvent(props.onChange as ChangeEvent, emittedValue, option.data)\r\n      validateField()\r\n    }\r\n  }\r\n}\r\n\r\nfunction toggleVisible() {\r\n  if (props.disabled || readonly.value) return\r\n\r\n  setVisible(!currentVisible.value)\r\n}\r\n\r\nfunction handleClickOutside() {\r\n  restTipShow.value = false\r\n  emitEvent(props.onClickOutside)\r\n\r\n  if (props.outsideClose && currentVisible.value) {\r\n    setVisible(false)\r\n    emitEvent(props.onOutsideClose)\r\n  }\r\n}\r\n\r\nfunction handleClear() {\r\n  if (props.disabled || readonly.value) return\r\n\r\n  if (props.clearable) {\r\n    for (const option of userOptions.value) {\r\n      optionValueMap.value.delete(option.value)\r\n    }\r\n\r\n    cachedSelected.clear()\r\n\r\n    userOptions.value.length = 0\r\n    currentValues.value.length = 0\r\n    currentLabels.value.length = 0\r\n    restTipShow.value = false\r\n\r\n    emittedValue = props.multiple ? [] : ''\r\n\r\n    syncInputValue()\r\n    emit('update:value', emittedValue)\r\n    emitEvent(props.onChange as ChangeEvent, emittedValue, props.multiple ? [] : '')\r\n    emitEvent(props.onClear)\r\n    clearField(emittedValue!)\r\n    updatePopper()\r\n  }\r\n}\r\n\r\nlet focused = false\r\n\r\nfunction handleFocus(event: FocusEvent) {\r\n  if (!focused) {\r\n    focused = true\r\n    emitEvent(props.onFocus, event)\r\n  }\r\n}\r\n\r\nfunction handleBlur(event: FocusEvent) {\r\n  if (focused) {\r\n    focused = false\r\n\r\n    setTimeout(() => {\r\n      if (!focused) {\r\n        emitEvent(props.onBlur, event)\r\n      }\r\n    }, 120)\r\n  }\r\n}\r\n\r\nfunction syncInputValue() {\r\n  if (!input.value) return\r\n\r\n  const visible = currentVisible.value\r\n\r\n  if (props.multiple) {\r\n    input.value.value = ''\r\n  } else {\r\n    input.value.value = visible ? '' : currentLabels.value[0] || ''\r\n  }\r\n\r\n  visible ? input.value.focus() : input.value.blur()\r\n}\r\n\r\nfunction handleFilterInput() {\r\n  if (!input.value || composing.value) return\r\n\r\n  let hittingIndex: number\r\n\r\n  currentFilter.value = input.value.value\r\n\r\n  if (!currentFilter.value) {\r\n    hittingIndex = -1\r\n  } else if (showDynamic.value || currentIndex.value !== -1) {\r\n    hittingIndex = 0\r\n  } else {\r\n    hittingIndex = visibleOptions.value.findIndex(\r\n      option => String(option.label) === currentFilter.value,\r\n    )\r\n    hittingIndex = hittingIndex === -1 ? 0 : hittingIndex\r\n  }\r\n\r\n  requestAnimationFrame(() => {\r\n    if (!hittingIndex) {\r\n      hittingIndex = visibleOptions.value.findIndex(\r\n        option => !currentValues.value.includes(option.value),\r\n      )\r\n    }\r\n\r\n    if (hittingIndex !== currentIndex.value) {\r\n      updateHitting(hittingIndex)\r\n    }\r\n\r\n    if (props.multiple && device.value) {\r\n      anchorWidth.value = getRangeWidth(device.value)\r\n    }\r\n\r\n    updatePopper()\r\n  })\r\n\r\n  emitEvent(props.onFilterInput, currentFilter.value)\r\n}\r\n\r\nfunction handleCompositionEnd() {\r\n  if (!composing.value) return\r\n\r\n  composing.value = false\r\n\r\n  if (input.value) {\r\n    input.value.dispatchEvent(new Event('input'))\r\n  }\r\n}\r\n\r\nfunction handleFilterKeyDown(event: KeyboardEvent) {\r\n  if (!input.value) return\r\n\r\n  if (\r\n    props.filterPosition !== 'in-list' &&\r\n    event.key === 'Backspace' &&\r\n    !input.value.value &&\r\n    !isNull(getLast(currentValues.value))\r\n  ) {\r\n    event.stopPropagation()\r\n    handleTagClose(getLast(currentValues.value))\r\n  }\r\n}\r\n\r\nfunction toggleShowRestTip() {\r\n  if (!currentVisible.value) {\r\n    restTipShow.value = !restTipShow.value\r\n\r\n    if (restTipShow.value) {\r\n      nextTick(() => {\r\n        restTip.value?.updatePopper()\r\n      })\r\n    }\r\n  } else {\r\n    toggleVisible()\r\n    restTipShow.value = false\r\n  }\r\n}\r\n\r\nfunction focus(options?: FocusOptions) {\r\n  if (currentVisible.value) {\r\n    ;(input.value || reference.value)?.focus(options)\r\n  } else {\r\n    reference.value?.focus(options)\r\n  }\r\n}\r\n</script>\r\n\r\n<template>\r\n  <div\r\n    :id=\"idFor\"\r\n    ref=\"wrapper\"\r\n    :class=\"className\"\r\n    role=\"group\"\r\n    :aria-disabled=\"toAttrValue(props.disabled)\"\r\n    :aria-expanded=\"toAttrValue(currentVisible)\"\r\n    aria-haspopup=\"listbox\"\r\n    :aria-labelledby=\"labelId\"\r\n    @click=\"toggleVisible\"\r\n  >\r\n    <div\r\n      ref=\"reference\"\r\n      :class=\"selectorClass\"\r\n      tabindex=\"0\"\r\n      @focus=\"handleFocus\"\r\n      @blur=\";(!props.filter || !currentVisible) && handleBlur($event)\"\r\n    >\r\n      <div\r\n        v-if=\"hasPrefix\"\r\n        :class=\"[nh.be('icon'), nh.be('prefix')]\"\r\n        :style=\"{ color: props.prefixColor }\"\r\n      >\r\n        <slot name=\"prefix\">\r\n          <Renderer :renderer=\"props.slots.prefix\">\r\n            <Icon :icon=\"props.prefix\"></Icon>\r\n          </Renderer>\r\n        </slot>\r\n      </div>\r\n      <div :class=\"nh.be('control')\">\r\n        <slot name=\"control\">\r\n          <Renderer :renderer=\"props.slots.control\">\r\n            <template v-if=\"props.multiple\">\r\n              <Overflow\r\n                inherit\r\n                :class=\"[nh.be('tags')]\"\r\n                :items=\"currentValues\"\r\n                :max-count=\"props.maxTagCount\"\r\n                :style=\"{\r\n                  maxWidth: props.maxTagCount <= 0 && `calc(100% - ${anchorWidth}px)`\r\n                }\"\r\n                @rest-change=\"restTagCount = $event\"\r\n                @click.stop=\"toggleVisible\"\r\n              >\r\n                <template #default=\"{ item: value, index }\">\r\n                  <slot\r\n                    name=\"tag\"\r\n                    :value=\"value\"\r\n                    :option=\"getOptionFromMap(value)\"\r\n                    :handle-close=\"handleTagClose.bind(null, value)\"\r\n                  >\r\n                    <Renderer\r\n                      :renderer=\"props.slots.tag\"\r\n                      :data=\"{\r\n                        value,\r\n                        option: getOptionFromMap(value),\r\n                        handleClose: handleTagClose.bind(null, value)\r\n                      }\"\r\n                    >\r\n                      <Tag\r\n                        inherit\r\n                        :class=\"nh.be('tag')\"\r\n                        :type=\"props.tagType\"\r\n                        closable\r\n                        :disabled=\"props.disabled\"\r\n                        @close=\"handleTagClose(value)\"\r\n                      >\r\n                        <span :class=\"nh.be('label')\">\r\n                          <slot name=\"selected\" :value=\"value\" :option=\"getOptionFromMap(value)\">\r\n                            <Renderer\r\n                              :renderer=\"props.slots.selected\"\r\n                              :data=\"{ value, option: getOptionFromMap(value) }\"\r\n                            >\r\n                              {{ currentLabels[index] }}\r\n                            </Renderer>\r\n                          </slot>\r\n                        </span>\r\n                      </Tag>\r\n                    </Renderer>\r\n                  </slot>\r\n                </template>\r\n                <template #counter=\"{ count }\">\r\n                  <slot v-if=\"props.noRestTip\" name=\"restTag\" :rest-count=\"count\">\r\n                    <Renderer :renderer=\"props.slots.restTag\" :data=\"{ restCount: count }\">\r\n                      <Tag\r\n                        inherit\r\n                        :class=\"[nh.be('tag'), nh.be('counter')]\"\r\n                        :type=\"props.tagType\"\r\n                        :disabled=\"props.disabled\"\r\n                      >\r\n                        {{ `+${count}` }}\r\n                      </Tag>\r\n                    </Renderer>\r\n                  </slot>\r\n                  <template v-else>\r\n                    <Tooltip\r\n                      ref=\"restTip\"\r\n                      inherit\r\n                      :transfer=\"false\"\r\n                      :visible=\"restTipShow\"\r\n                      trigger=\"custom\"\r\n                      placement=\"top-end\"\r\n                      :tip-class=\"nh.be('rest-tip')\"\r\n                      @click.stop=\"toggleShowRestTip\"\r\n                    >\r\n                      <template #trigger>\r\n                        <slot name=\"restTag\" :rest-count=\"count\">\r\n                          <Renderer :renderer=\"props.slots.restTag\" :data=\"{ restCount: count }\">\r\n                            <Tag\r\n                              inherit\r\n                              :class=\"[nh.be('tag'), nh.be('counter')]\"\r\n                              :type=\"props.tagType\"\r\n                              :disabled=\"props.disabled\"\r\n                            >\r\n                              {{ `+${count}` }}\r\n                            </Tag>\r\n                          </Renderer>\r\n                        </slot>\r\n                      </template>\r\n                      <NativeScroll inherit use-y-bar>\r\n                        <template v-for=\"(value, index) in currentValues\" :key=\"index\">\r\n                          <slot\r\n                            v-if=\"index >= currentValues.length - restTagCount\"\r\n                            name=\"tag\"\r\n                            :value=\"value\"\r\n                            :option=\"getOptionFromMap(value)\"\r\n                            :handle-close=\"handleRestTagClose.bind(null, value)\"\r\n                          >\r\n                            <Renderer\r\n                              :renderer=\"props.slots.tag\"\r\n                              :data=\"{\r\n                                value,\r\n                                option: getOptionFromMap(value),\r\n                                handleClose: handleRestTagClose.bind(null, value)\r\n                              }\"\r\n                            >\r\n                              <Tag\r\n                                inherit\r\n                                :class=\"nh.be('tag')\"\r\n                                closable\r\n                                :type=\"props.tagType\"\r\n                                :disabled=\"props.disabled\"\r\n                                @close=\"handleRestTagClose(value)\"\r\n                              >\r\n                                <span :class=\"nh.be('label')\">\r\n                                  <slot\r\n                                    name=\"selected\"\r\n                                    :value=\"value\"\r\n                                    :option=\"getOptionFromMap(value)\"\r\n                                  >\r\n                                    <Renderer\r\n                                      :renderer=\"props.slots.selected\"\r\n                                      :data=\"{ value, option: getOptionFromMap(value) }\"\r\n                                    >\r\n                                      {{ currentLabels[index] }}\r\n                                    </Renderer>\r\n                                  </slot>\r\n                                </span>\r\n                              </Tag>\r\n                            </Renderer>\r\n                          </slot>\r\n                        </template>\r\n                      </NativeScroll>\r\n                    </Tooltip>\r\n                  </template>\r\n                </template>\r\n              </Overflow>\r\n              <div\r\n                v-if=\"props.filter && props.filterPosition === 'in-control'\"\r\n                :class=\"nh.be('anchor')\"\r\n                :style=\"{\r\n                  width: `${anchorWidth}px`\r\n                }\"\r\n              >\r\n                <input\r\n                  ref=\"nativeInput\"\r\n                  :class=\"[\r\n                    nh.be('input'),\r\n                    nh.bem('input', 'multiple'),\r\n                    currentVisible && nh.bem('input', 'visible')\r\n                  ]\"\r\n                  :disabled=\"props.disabled\"\r\n                  autocomplete=\"off\"\r\n                  tabindex=\"-1\"\r\n                  role=\"combobox\"\r\n                  aria-autocomplete=\"list\"\r\n                  :name=\"props.name\"\r\n                  @submit.prevent\r\n                  @input=\"handleFilterInput\"\r\n                  @keydown=\"handleFilterKeyDown\"\r\n                  @focus=\"handleFocus($event)\"\r\n                  @blur=\"handleBlur($event)\"\r\n                  @compositionstart=\"composing = true\"\r\n                  @compositionend=\"handleCompositionEnd\"\r\n                  @change=\"handleCompositionEnd\"\r\n                />\r\n                <span ref=\"device\" :class=\"nh.be('device')\" aria-hidden=\"true\">\r\n                  {{ currentFilter }}\r\n                </span>\r\n              </div>\r\n            </template>\r\n            <template v-else>\r\n              <input\r\n                v-if=\"props.filter && props.filterPosition === 'in-control'\"\r\n                ref=\"nativeInput\"\r\n                :class=\"[nh.be('input'), currentVisible && nh.bem('input', 'visible')]\"\r\n                :disabled=\"props.disabled\"\r\n                autocomplete=\"off\"\r\n                tabindex=\"-1\"\r\n                role=\"combobox\"\r\n                aria-autocomplete=\"list\"\r\n                :name=\"props.name\"\r\n                :style=\"{\r\n                  opacity: currentVisible ? undefined : '0%'\r\n                }\"\r\n                @submit.prevent\r\n                @input=\"handleFilterInput\"\r\n                @focus=\"handleFocus($event)\"\r\n                @blur=\"handleBlur($event)\"\r\n                @compositionstart=\"composing = true\"\r\n                @compositionend=\"handleCompositionEnd\"\r\n                @change=\"handleCompositionEnd\"\r\n              />\r\n              <span\r\n                v-if=\"\r\n                  (props.noPreview || !currentVisible) &&\r\n                    hasValue &&\r\n                    (props.filterPosition !== 'in-control' || !currentFilter)\r\n                \"\r\n                :class=\"{\r\n                  [nh.be('selected')]: true,\r\n                  [nh.bem('selected', 'placeholder')]: props.filter && currentVisible && hasValue\r\n                }\"\r\n              >\r\n                <slot\r\n                  v-if=\"getOptionFromMap(currentValues[0])\"\r\n                  name=\"selected\"\r\n                  :value=\"currentValues[0]\"\r\n                  :option=\"getOptionFromMap(currentValues[0])\"\r\n                >\r\n                  <Renderer\r\n                    :renderer=\"props.slots.selected\"\r\n                    :data=\"{ value: currentValues[0], option: getOptionFromMap(currentValues[0]) }\"\r\n                  >\r\n                    {{ currentLabels[0] }}\r\n                  </Renderer>\r\n                </slot>\r\n                <template v-else>\r\n                  {{ currentLabels[0] }}\r\n                </template>\r\n              </span>\r\n            </template>\r\n            <span v-if=\"showPlaceholder\" :class=\"nh.be('placeholder')\">\r\n              <slot\r\n                v-if=\"previewOption\"\r\n                name=\"selected\"\r\n                :preview=\"true\"\r\n                :value=\"previewOption.value\"\r\n                :option=\"previewOption\"\r\n              >\r\n                <Renderer\r\n                  :renderer=\"props.slots.selected\"\r\n                  :data=\"{ value: previewOption.value, preview: true, option: previewOption }\"\r\n                >\r\n                  {{ previewOption.label }}\r\n                </Renderer>\r\n              </slot>\r\n              <template v-else>\r\n                {{ props.placeholder ?? locale.placeholder }}\r\n              </template>\r\n            </span>\r\n          </Renderer>\r\n        </slot>\r\n      </div>\r\n      <div\r\n        v-if=\"!props.noSuffix\"\r\n        :class=\"[nh.be('icon'), nh.be('suffix')]\"\r\n        :style=\"{\r\n          color: props.suffixColor,\r\n          opacity: showClear || props.loading ? '0%' : ''\r\n        }\"\r\n      >\r\n        <slot name=\"suffix\">\r\n          <Renderer :renderer=\"props.slots.suffix\">\r\n            <Icon\r\n              v-if=\"props.suffix\"\r\n              :icon=\"props.suffix\"\r\n              :class=\"{\r\n                [nh.be('arrow')]: !props.staticSuffix\r\n              }\"\r\n            ></Icon>\r\n            <Icon v-else v-bind=\"icons.angleDown\" :class=\"nh.be('arrow')\"></Icon>\r\n          </Renderer>\r\n        </slot>\r\n      </div>\r\n      <div\r\n        v-else-if=\"props.clearable || props.loading\"\r\n        :class=\"[nh.be('icon'), nh.bem('icon', 'placeholder'), nh.be('suffix')]\"\r\n      ></div>\r\n      <Transition :name=\"nh.ns('fade')\" appear>\r\n        <button\r\n          v-if=\"showClear\"\r\n          :class=\"[nh.be('icon'), nh.be('clear')]\"\r\n          type=\"button\"\r\n          tabindex=\"-1\"\r\n          :aria-label=\"locale.ariaLabel.clear\"\r\n          @click.stop=\"handleClear\"\r\n        >\r\n          <Icon v-bind=\"icons.clear\" label=\"clear\"></Icon>\r\n        </button>\r\n        <div v-else-if=\"props.loading\" :class=\"[nh.be('icon'), nh.be('loading')]\">\r\n          <Icon\r\n            v-bind=\"icons.loading\"\r\n            :effect=\"props.loadingEffect || icons.loading.effect\"\r\n            :icon=\"props.loadingIcon || icons.loading.icon\"\r\n            label=\"loading\"\r\n          ></Icon>\r\n        </div>\r\n      </Transition>\r\n    </div>\r\n    <Popper\r\n      ref=\"popper\"\r\n      :class=\"[nh.be('popper'), nh.bs('vars')]\"\r\n      :visible=\"currentVisible\"\r\n      :to=\"transferTo\"\r\n      :transition=\"props.transitionName\"\r\n      :alive=\"props.popperAlive ?? !transferTo\"\r\n      @click.stop=\"focus\"\r\n      @after-leave=\"currentFilter = ''\"\r\n    >\r\n      <slot\r\n        name=\"list\"\r\n        :options=\"totalOptions\"\r\n        :is-selected=\"isSelected\"\r\n        :handle-select=\"handleSelect\"\r\n      >\r\n        <Renderer\r\n          :renderer=\"props.slots.list\"\r\n          :data=\"{ options: totalOptions, isSelected, handleSelect }\"\r\n        >\r\n          <div\r\n            :class=\"[\r\n              nh.be('list'),\r\n              (slots.prepend || slots.append) && nh.bem('list', 'with-extra'),\r\n              props.listClass\r\n            ]\"\r\n          >\r\n            <div v-if=\"props.filter && props.filterPosition === 'in-list'\" :class=\"nh.be('filter')\">\r\n              <Input\r\n                ref=\"filterInput\"\r\n                :class=\"nh.be('filter-input')\"\r\n                transparent\r\n                :disabled=\"props.disabled\"\r\n                :placeholder=\"locale.search\"\r\n                :autocomplete=\"false\"\r\n                :tabindex=\"-1\"\r\n                role=\"combobox\"\r\n                aria-autocomplete=\"list\"\r\n                @input=\"handleFilterInput\"\r\n                @keydown=\"handleFilterKeyDown\"\r\n                @focus=\"handleFocus\"\r\n                @blur=\"handleBlur\"\r\n                @compositionstart=\"composing = true\"\r\n                @compositionend=\"handleCompositionEnd\"\r\n                @change=\"handleCompositionEnd\"\r\n              >\r\n                <template #suffix>\r\n                  <Icon v-bind=\"icons.search\"></Icon>\r\n                </template>\r\n              </Input>\r\n            </div>\r\n            <slot v-if=\"slots.prepend || props.slots.prepend\" name=\"prepend\">\r\n              <Renderer :renderer=\"props.slots.prepend\"></Renderer>\r\n            </slot>\r\n            <VirtualList\r\n              ref=\"virtualList\"\r\n              inherit\r\n              :style=\"{\r\n                height: undefined,\r\n                maxHeight: `${props.maxListHeight}px`\r\n              }\"\r\n              :items=\"totalOptions\"\r\n              :item-size=\"32\"\r\n              use-y-bar\r\n              :height=\"'100%'\"\r\n              id-key=\"value\"\r\n              :items-attrs=\"{\r\n                class: [nh.be('options'), props.optionCheck ? nh.bem('options', 'has-check') : ''],\r\n                role: 'listbox',\r\n                ariaLabel: 'options',\r\n                ariaMultiselectable: props.multiple\r\n              }\"\r\n            >\r\n              <template #default=\"{ item: option, index }\">\r\n                <li\r\n                  v-if=\"option.group\"\r\n                  :class=\"[nh.ns('option-vars'), nh.be('group')]\"\r\n                  :title=\"option.label\"\r\n                >\r\n                  <slot name=\"group\" :option=\"option\" :index=\"index\">\r\n                    <Renderer :renderer=\"props.slots.group\" :data=\"{ option, index }\">\r\n                      <div\r\n                        :class=\"[nh.be('label'), nh.bem('label', 'group')]\"\r\n                        :style=\"{ paddingInlineStart: `${option.depth * 6}px` }\"\r\n                      >\r\n                        {{ option.label }}\r\n                      </div>\r\n                    </Renderer>\r\n                  </slot>\r\n                </li>\r\n                <Option\r\n                  v-else\r\n                  :label=\"option.label\"\r\n                  :value=\"option.value\"\r\n                  :disabled=\"option.disabled || (limited && !isSelected(option))\"\r\n                  :divided=\"option.divided\"\r\n                  :no-title=\"option.title\"\r\n                  :hitting=\"option.hitting\"\r\n                  :selected=\"isSelected(option)\"\r\n                  no-hover\r\n                  @select=\"handleSelect(option)\"\r\n                  @mousemove=\"updateHitting(index, false)\"\r\n                >\r\n                  <slot :option=\"option\" :index=\"index\" :selected=\"isSelected(option)\">\r\n                    <Renderer\r\n                      :renderer=\"props.slots.default\"\r\n                      :data=\"{ option, index, selected: isSelected(option) }\"\r\n                    >\r\n                      <span\r\n                        :class=\"nh.be('label')\"\r\n                        :style=\"{ paddingInlineStart: `${option.depth * 6}px` }\"\r\n                      >\r\n                        {{ option.label }}\r\n                      </span>\r\n                      <Transition v-if=\"props.optionCheck\" :name=\"nh.ns('fade')\" appear>\r\n                        <Icon\r\n                          v-if=\"isSelected(option)\"\r\n                          v-bind=\"icons.check\"\r\n                          :class=\"nh.be('check')\"\r\n                        ></Icon>\r\n                      </Transition>\r\n                    </Renderer>\r\n                  </slot>\r\n                </Option>\r\n              </template>\r\n              <template #empty>\r\n                <div :class=\"nh.be('empty')\">\r\n                  <slot name=\"empty\">\r\n                    <Renderer :renderer=\"props.slots.empty\">\r\n                      {{ props.emptyText ?? locale.empty }}\r\n                    </Renderer>\r\n                  </slot>\r\n                </div>\r\n              </template>\r\n            </VirtualList>\r\n            <slot v-if=\"slots.append || props.slots.append\" name=\"append\">\r\n              <Renderer :renderer=\"props.slots.append\"></Renderer>\r\n            </slot>\r\n          </div>\r\n        </Renderer>\r\n      </slot>\r\n    </Popper>\r\n  </div>\r\n</template>\r\n"],"names":["isSameValue","newValue","oldValue","isNewArray","isOldArray","i","len","isNull","idFor","labelId","state","disabled","loading","size","validateField","clearField","getFieldValue","setFieldValue","useFieldStore","focus","nh","useNameHelper","props","useProps","__props","createSizeProp","createStateProp","createIconProp","value","placementWhileList","emit","__emit","slots","_useSlots","locale","useLocale","toRef","icons","useIcons","currentVisible","ref","currentLabels","currentValues","currentIndex","placement","transfer","baseOptions","currentFilter","anchorWidth","userOptions","restTagCount","restTipShow","composing","isMounted","useMounted","dynamicOption","reactive","optionValues","hittingOption","optionStates","computed","visibleOptions","keyConfig","defaultKeyConfig","wrapper","useClickOutside","handleClickOutside","nativeInput","filterInput","device","virtualList","popper","restTip","input","_a","reference","transferTo","updatePopper","usePopper","isHover","useHover","cachedSelected","optionValueMap","emittedValue","updateTrigger","watchEffect","watch","initOptionState","valueKey","labelKey","disabledKey","dividedKey","titleKey","groupKey","childrenKey","oldMap","map","states","loop","option","depth","parent","rawOption","group","label","divided","title","children","oldState","optionState","child","initValueAndLabel","useModifier","event","modifier","toggleVisible","setVisible","decide","options","length","step","index","updateHitting","handleSelect","totalOptions","showDynamic","className","readonly","selectorClass","baseCls","hasPrefix","hasValue","normalOptions","optionParentMap","showClear","previewOption","limited","showPlaceholder","getOptionFromMap","fitPopperWidth","initHittingIndex","syncInputValue","filterOptions","__expose","isSelected","handleClear","_b","onMounted","normalizedValue","valueSet","selectedValues","selectedLabels","cachedValue","visible","emitEvent","hitting","ensureInView","inputValue","filter","ignoreCaseValue","parentMap","handleTagClose","handleRestTagClose","selected","item","removeArrayItem","newOption","handleChange","v","prevValue","focused","handleFocus","handleBlur","handleFilterInput","hittingIndex","getRangeWidth","handleCompositionEnd","handleFilterKeyDown","getLast","toggleShowRestTip","nextTick","_createElementBlock","_unref","toAttrValue","_createElementVNode","_cache","$event","_normalizeStyle","_renderSlot","_ctx","_createVNode","Renderer","Icon","_normalizeClass","_Fragment","Overflow","_withCtx","Tag","_createTextVNode","_toDisplayString","count","_createBlock","Tooltip","NativeScroll","_openBlock","_renderList","_mergeProps","_Transition","Popper","Input","_normalizeProps","_guardReactiveProps","VirtualList","Option"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyDS,aAAAA,GAAYC,GAAuBC,GAAuB;AAC3D,YAAAC,IAAa,MAAM,QAAQF,CAAQ,GACnCG,IAAa,MAAM,QAAQF,CAAQ;AAErC,UAAAC,MAAeC,EAAmB,QAAA;AAEtC,UAAID,KAAcC,GAAY;AAC5B,YAAIH,EAAS,WAAWC,EAAS,OAAe,QAAA;AAEvC,iBAAAG,IAAI,GAAGC,IAAML,EAAS,QAAQI,IAAIC,GAAK,EAAED;AAChD,cAAIJ,EAASI,CAAC,MAAMH,EAASG,CAAC,EAAU,QAAA;AAGnC,eAAA;AAAA,MAAA;AAGT,aAAIE,EAAON,CAAQ,IAAUM,EAAOL,CAAQ,IAErCD,MAAaC;AAAA,IAAA;AAKhB,UAAA;AAAA,MACJ,OAAAM;AAAA,MACA,SAAAC;AAAA,MACA,OAAAC;AAAA,MACA,UAAAC;AAAA,MACA,SAAAC;AAAA,MACA,MAAAC;AAAA,MACA,eAAAC;AAAA,MACA,YAAAC;AAAA,MACA,eAAAC;AAAA,MACA,eAAAC;AAAA,IAAA,IACEC,GAA2BC,EAAK,GAE9BC,IAAKC,GAAc,QAAQ,GAG3BC,IAAQC,GAAS,UADRC,IAC0B;AAAA,MACvC,MAAMC,GAAeZ,EAAI;AAAA,MACzB,OAAOa,GAAgBhB,EAAK;AAAA,MAC5B,QAAQ;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,QAAQ;AAAA,MACV;AAAA,MACA,SAAS;AAAA,QACP,SAAS,MAAM,CAAC;AAAA,QAChB,QAAQ;AAAA,MACV;AAAA,MACA,UAAU,MAAMC,GAAS;AAAA,MACzB,gBAAgB,MAAMS,EAAG,GAAG,MAAM;AAAA,MAClC,cAAc;AAAA,MACd,aAAa;AAAA,MACb,QAAQO,GAAe;AAAA,MACvB,aAAa;AAAA,MACb,QAAQA,GAAe;AAAA,MACvB,aAAa;AAAA,MACb,UAAU;AAAA,MACV,OAAO;AAAA,QACL,SAAS,MAAMX,GAAc;AAAA,QAC7B,QAAQ;AAAA,MACV;AAAA,MACA,UAAU;AAAA,MACV,WAAW;AAAA,MACX,eAAe;AAAA,MACf,WAAW;AAAA,MACX,WAAW;AAAA,QACT,SAAS;AAAA,QACT,WAAW,CAAAY,MAASC,GAAmB,SAASD,CAAK;AAAA,MACvD;AAAA,MACA,UAAU;AAAA,MACV,aAAa;AAAA,MACb,WAAW;AAAA,MACX,cAAc;AAAA,MACd,SAAS,MAAMhB,GAAQ;AAAA,MACvB,aAAae,GAAe;AAAA,MAC5B,aAAa;AAAA,MACb,eAAe;AAAA,MACf,WAAW,OAAO,CAAA;AAAA,MAClB,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,aAAa;AAAA,MACb,aAAa;AAAA,MACb,WAAW;AAAA,MACX,SAAS;AAAA,MACT,WAAW;AAAA,MACX,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,MAAM;AAAA,QACJ,SAAS;AAAA,QACT,QAAQ;AAAA,MACV;AAAA,MACA,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,gBAAgB;AAAA,MAChB,OAAO,OAAO,CAAA;AAAA,MACd,OAAO;AAAA,IAAA,CACR,GAEKG,IAAOC,IAEPC,KAAQC,GAA0B,GAElCC,IAASC,GAAU,UAAUC,GAAMd,GAAO,QAAQ,CAAC,GACnDe,IAAQC,GAAS,GAEjBC,IAAiBC,EAAIlB,EAAM,OAAO,GAClCmB,IAAgBD,EAAc,EAAE,GAChCE,IAAgBF,EAAuB,EAAE,GACzCG,IAAeH,EAAI,EAAE,GACrBI,KAAYR,GAAMd,GAAO,WAAW,GACpCuB,KAAWT,GAAMd,GAAO,UAAU,GAElCwB,KAAcN,EAAyB,EAAE,GACzCO,IAAgBP,EAAI,EAAE,GACtBQ,KAAcR,EAAI,CAAC,GACnBS,IAAcT,EAAyB,EAAE,GACzCU,KAAeV,EAAI,CAAC,GACpBW,IAAcX,EAAI,EAAK,GACvBY,IAAYZ,EAAI,EAAK,GAErB,EAAE,WAAAa,GAAU,IAAIC,GAAW,GAE3BC,IAAgBC,GAA4B;AAAA,MAChD,UAAU;AAAA,MACV,SAAS;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,MAAM;AAAA,IAAA,CACP,GAEKC,KAAeD,GAAa,oBAAA,KAAsB,GAClDE,KAAgBlB,EAAuB,GACvCmB,IAAeC,EAAS,MAAMX,EAAY,MAAM,OAAOH,GAAY,KAAK,CAAC,GACzEe,IAAiBD,EAAS,MAAMD,EAAa,MAAM,OAAO,CAAAjD,MAAS,CAACA,EAAM,MAAM,CAAC,GAEjFoD,KAAYF,EAAS,OAAO,EAAE,GAAGG,IAAkB,GAAGzC,EAAM,UAAA,EAAY,GAExE0C,IAAUC,GAAgBC,EAAkB,GAC5CC,KAAc3B,EAAsB,GACpC4B,KAAc5B,EAAkB,GAChC6B,KAAS7B,EAAiB,GAC1B8B,KAAc9B,EAAwB,GACtC+B,IAAS/B,EAAmB,GAC5BgC,KAAUhC,EAAoB,GAE9BiC,IAAQb,EAAS,MAAM;;AAAA,eAAAc,IAAAN,GAAY,UAAZ,gBAAAM,EAAmB,UAASP,GAAY;AAAA,KAAK,GAEpE,EAAE,WAAAQ,GAAW,YAAAC,IAAY,cAAAC,GAAA,IAAiBC,GAAU;AAAA,MACxD,WAAAlC;AAAA,MACA,UAAAC;AAAA,MACA,SAAAmB;AAAA,MACA,QAAQJ,EAAS,MAAA;;AAAM,gBAAAc,IAAAH,EAAO,UAAP,gBAAAG,EAAc;AAAA,OAAO;AAAA,MAC5C,QAAQ;AAAA,MACR,OAAOtC,GAAMd,GAAO,OAAO;AAAA,IAAA,CAC5B,GACK,EAAE,SAAAyD,GAAA,IAAYC,GAASL,CAAS,GAEhCM,IAAiBzB,GAAa,oBAAA,KAAyC,GACvE0B,KAAiB1C,EAAQ,oBAAA,KAAyC;AAExE,QAAI2C,IAA0C7D,EAAM;AAE9C,UAAA8D,KAAgB5C,EAAI,CAAC;AAE3B,IAAA6C,GAAY,MAAM;AAEhB,MAAA/D,EAAM,UAAU,OAChBA,EAAM,UAAU,OAChBA,EAAM,UAAU,UAChBA,EAAM,UAAU,SAChBA,EAAM,UAAU,OAChBA,EAAM,UAAU,OAChBA,EAAM,UAAU;AAIP,eAAAjB,IAAI,GAAGC,IAAMgB,EAAM,QAAQ,QAAQjB,IAAIC,GAAK,EAAED;AACrD,QAAAiB,EAAM,QAAQjB,CAAC;AAIH,MAAA+E,GAAA;AAAA,IAAA,CACf,GAEDE,EAAMF,IAAeG,IAAiB,EAAE,WAAW,IAAM;AAEzD,aAASA,KAAkB;AACnB,YAAA;AAAA,QACJ,OAAOC;AAAA,QACP,OAAOC;AAAA,QACP,UAAUC;AAAA,QACV,SAASC;AAAA,QACT,OAAOC;AAAA,QACP,OAAOC;AAAA,QACP,UAAUC;AAAA,UACRhC,GAAU,OACRiC,KAASb,GAAe,OACxBc,yBAAU,IAAwC,GAClDC,KAA8B,CAAC,GAC/BC,KAAO5E,EAAM,QAChB,IAAI,CAAW6E,OAAA,EAAE,QAAAA,GAAQ,OAAO,GAAG,QAAQ,KAAiC,EAAE,EAC9E,QAAQ;AAEX,MAAA1C,GAAa,MAAM;AAER,iBAAA0C,KAAUlD,EAAY;AAC3B,QAAA+C,GAAA,IAAIG,EAAO,OAAOA,CAAM,GACf1C,GAAA,IAAI0C,EAAO,KAAK;AAG/B,aAAOD,GAAK,UAAQ;AAClB,cAAM,EAAE,QAAAC,GAAQ,OAAAC,IAAO,QAAAC,GAAO,IAAIH,GAAK,IAAI,GACrCI,KAAY,OAAOH,KAAW,WAAW,EAAE,CAACX,CAAQ,GAAGW,EAAA,IAAWA,GAClEI,KAAQ,CAAC,CAACD,GAAUT,CAAQ,GAC5BjE,KAAQ0E,GAAUd,CAAQ;AAEhC,YAAI,CAACe,MAAShG,EAAOqB,EAAK,EAAG;AAE7B,cAAM4E,KAAQF,GAAUb,CAAQ,KAAK,OAAO7D,EAAK,GAC3C;AAAA,UACJ,CAAC8D,CAAW,GAAG/E,KAAW;AAAA,UAC1B,CAACgF,CAAU,GAAGc,KAAU;AAAA,UACxB,CAACb,CAAQ,GAAGc,KAAQ;AAAA,UACpB,CAACZ,CAAW,GAAGa,KAAW;AAAA,QAAA,IACxBL,IACEM,KAAWb,GAAO,IAAIO,GAAU,KAAK,GACrCO,KAAcrD,GAAS;AAAA,UAC3B,UAAA7C;AAAAA,UACA,SAAA8F;AAAA,UACA,OAAAC;AAAA,UACA,OAAA9E;AAAA,UACA,OAAA4E;AAAA,UACA,OAAAD;AAAA,UACA,OAAAH;AAAA,UACA,QAAAC;AAAA,UACA,SAAQO,MAAA,gBAAAA,GAAU,WAAU;AAAA,UAC5B,UAASA,MAAA,gBAAAA,GAAU,YAAW;AAAA,UAC9B,MAAMT;AAAA,QAAA,CACP;AAED,QAAAF,GAAO,KAAKY,EAAW,GAElBN,OACCP,GAAA,IAAIpE,IAAOiF,EAAW,GACbpD,GAAA,IAAI,OAAO7B,EAAK,CAAC,IAG5B,MAAM,QAAQ+E,EAAQ,KAAKA,GAAS,UACjCT,GAAA;AAAA,UACH,GAAGS,GACA,IAAI,CAASG,QACL,EAAE,QAAQA,IAAO,OAAOV,KAAQ,GAAG,QAAQS,GAAY,EAC/D,EACA,QAAQ;AAAA,QACb;AAAA,MACF;AAGF,MAAA3B,GAAe,QAAQc,IACvBlD,GAAY,QAAQmD,IAEpBc,GAAkB5B,CAAY;AAAA,IAAA;AAGpB,IAAA6B,GAAA;AAAA,MACV,QAAQhD;AAAA,MACR,SAAS;AAAA,MACT,WAAW,CAACiD,GAAOC,MAAa;AAC9B,YAAI9D,EAAU,OAAO;AACnB,UAAA6D,EAAM,gBAAgB;AACtB;AAAA,QAAA;AAGE,YAAA,CAAC1E,EAAe,OAAO;AACrB,WAAA2E,EAAS,SAASA,EAAS,WAC7BD,EAAM,eAAe,GACrBA,EAAM,gBAAgB,GACRE,GAAA;AAGhB;AAAA,QAAA;AAGE,YAAAD,EAAS,OAAOA,EAAS,QAAQ;AACnC,UAAAE,EAAW,EAAK,GAChBF,EAAS,SAAS;AAElB;AAAA,QAAA;AAGF,QAAAG;AAAA,UACE;AAAA,YACE;AAAA,cACE,MAAMH,EAAS,MAAMA,EAAS;AAAA,cAC9B,MAAM;AACJ,sBAAMI,IAAUzD,EAAe,OACzB0D,IAASD,EAAQ;AAEvB,oBAAI,CAACC,EAAQ;AAEP,sBAAAC,IAAON,EAAS,OAAO,IAAI;AAE7B,oBAAAO,KAAS,KAAK,IAAI,IAAI9E,EAAa,QAAQ6E,CAAI,IAAID,KAAUA,GAC7DpB,IAASmB,EAAQG,CAAK;AAEjB,yBAAApH,KAAI,IAAI8F,EAAO,YAAYA,EAAO,UAAU9F,KAAIkH,GAAQ,EAAElH;AACxD,kBAAAoH,KAAAD,GACTC,KAASA,IAAQF,KAAUA,GAC3BpB,IAASmB,EAAQG,CAAK;AAGxB,gBAAAC,EAAcD,CAAK;AAAA,cAAA;AAAA,YAEvB;AAAA,YACA;AAAA,cACE,MAAMP,EAAS,SAAU,CAAC5F,EAAM,UAAU4F,EAAS;AAAA,cACnD,MAAM;AACA,gBAAAvE,EAAa,SAAS,IACxBgF,GAAaC,GAAa,MAAMjF,EAAa,KAAK,CAAC,IAC1CkF,GAAY,QACrBF,GAAapE,CAAa,IAE1B6D,EAAW,EAAK;AAAA,cAClB;AAAA,YACF;AAAA,UAEJ;AAAA,UACA;AAAA,YACE,gBAAgB,MAAM;AACpB,cAAAH,EAAM,eAAe,GACrBA,EAAM,gBAAgB;AAAA,YACxB;AAAA,YACA,eAAeC,EAAS;AAAA,UAAA;AAAA,QAE5B;AAAA,MAAA;AAAA,IACF,CACD;AAEK,UAAAY,KAAYlE,EAAS,OAClB;AAAA,MACL,CAACxC,EAAG,EAAE,CAAC,GAAG;AAAA,MACV,CAACA,EAAG,GAAG,YAAY,CAAC,GAAG;AAAA,MACvB,CAACA,EAAG,GAAG,MAAM,CAAC,GAAG;AAAA,MACjB,CAACA,EAAG,GAAG,SAAS,CAAC,GAAGE,EAAM;AAAA,MAC1B,CAACF,EAAG,GAAG,UAAU,CAAC,GAAGE,EAAM;AAAA,MAC3B,CAACF,EAAG,GAAG,QAAQ,CAAC,GAAGE,EAAM;AAAA,MACzB,CAACF,EAAG,GAAG,YAAY,CAAC,GAAGE,EAAM,YAAYA,EAAM,eAAe;AAAA,MAC9D,CAACF,EAAG,GAAG,UAAU,CAAC,GAAGE,EAAM;AAAA,IAC7B,EACD,GACKyG,KAAWnE,EAAS,MAAMtC,EAAM,WAAWA,EAAM,WAAW,GAC5D0G,KAAgBpE,EAAS,MAAM;AAC7B,YAAAqE,IAAU7G,EAAG,GAAG,UAAU;AAEzB,aAAA;AAAA,QACL,CAAC6G,CAAO,GAAG;AAAA,QACX,CAAC,GAAGA,CAAO,WAAW,GAAG,CAAC3G,EAAM,YAAYiB,EAAe;AAAA,QAC3D,CAAC,GAAG0F,CAAO,YAAY,GAAG3G,EAAM;AAAA,QAChC,CAAC,GAAG2G,CAAO,YAAY,GAAGF,GAAS;AAAA,QACnC,CAAC,GAAGE,CAAO,WAAW,GAAG3G,EAAM;AAAA,QAC/B,CAAC,GAAG2G,CAAO,KAAK3G,EAAM,IAAI,EAAE,GAAGA,EAAM,SAAS;AAAA,QAC9C,CAAC,GAAG2G,CAAO,KAAK3G,EAAM,KAAK,EAAE,GAAGA,EAAM,UAAU;AAAA,QAChD,CAAC,GAAG2G,CAAO,cAAc,GAAGC,GAAU;AAAA,QACtC,CAAC,GAAGD,CAAO,cAAc,GAAG,CAAC3G,EAAM;AAAA,QACnC,CAAC,GAAG2G,CAAO,eAAe,GAAG3G,EAAM;AAAA,MACrC;AAAA,IAAA,CACD,GACK6G,KAAWvE;AAAA,MACf,MAAM,CAACrD,EAAOmC,EAAc,MAAM,CAAC,CAAC,MAAMpB,EAAM,YAAYoB,EAAc,MAAM,CAAC,MAAM;AAAA,IACzF,GACMwF,KAAYtE,EAAS,MAAM,CAAC,EAAE5B,GAAM,UAAUV,EAAM,UAAUA,EAAM,MAAM,OAAO,GACjFuG,KAAcjE,EAAS,MACpB,CAAC,EACNtC,EAAM,UACNA,EAAM,aACNiC,EAAc,SACd,CAACE,GAAa,IAAIF,EAAc,KAAK,EAExC,GACKqE,KAAehE,EAAS,MACrBiE,GAAY,QAAQ,CAACtE,CAAa,EAAE,OAAOM,EAAe,KAAK,IAAIA,EAAe,KAC1F,GACKuE,KAAgBxE,EAAS,MAAMD,EAAa,MAAM,OAAO,CAAUwC,MAAA,CAACA,EAAO,KAAK,CAAC,GACjFkC,KAAkBzE,EAAS,MAAM;AACrC,YAAM0D,IAAUc,GAAc,OACxBpC,wBAAU,IAAwC;AAE/C,eAAA3F,IAAI,GAAGC,IAAMgH,EAAQ,QAAQjH,IAAIC,GAAK,EAAED,GAAG;AAC5C,cAAA8F,IAASmB,EAAQjH,CAAC;AAExB,QAAI8F,EAAO,UACTH,EAAI,IAAIG,EAAO,OAAOA,EAAO,MAAM;AAAA,MACrC;AAGK,aAAAH;AAAA,IAAA,CACR,GACKsC,KAAY1E,EAAS,MAClB,CAACtC,EAAM,YAAY,CAACyG,GAAS,SAASzG,EAAM,aAAayD,GAAQ,SAASoD,GAAS,KAC3F,GACKI,IAAgB3E,EAAS,MACtB,CAACtC,EAAM,aAAaiB,EAAe,QAAQmB,GAAc,QAAQ,MACzE,GACK8E,KAAU5E,EAAS,MAChBtC,EAAM,YAAYA,EAAM,aAAa,KAAKoB,EAAc,MAAM,UAAUpB,EAAM,UACtF,GACKmH,KAAkB7E,EAAS,MAC3BtC,EAAM,mBAAmB,eAEzB,CAAC6G,GAAS,SAAS,CAACI,EAAc,SAAS,CAAC,EAAEjH,EAAM,eAAeY,EAAO,MAAM,eAUlF,CAACkB,EAAU,SACX,EAAE+E,GAAS,UAAU7G,EAAM,aAAaA,EAAM,YAAY,CAACiB,EAAe,WAC1E,EAAE,CAACgG,EAAc,SAAS,EAAEjH,EAAM,eAAeY,EAAO,MAAM,iBAC9D,EAAEK,EAAe,SAASQ,EAAc,MAE3C;AAED,aAAS2F,EAAiB9G,GAAgC;AACpD,aAAArB,EAAOqB,CAAK,IAAU,OAEnBsD,GAAe,MAAM,IAAItD,CAAK,KAAKqD,EAAe,IAAIrD,CAAK,KAAK;AAAA,IAAA;AAGzE,aAAS+G,KAAiB;AACxB,4BAAsB,MAAM;;AACb,QAAA9D,GAAA,GAETb,EAAQ,WAASU,IAAAH,EAAO,UAAP,QAAAG,EAAc,aAC7B,OAAOpD,EAAM,aAAc,WAC7BiD,EAAO,MAAM,QAAQ,MAAM,QAAQ,GAAGjD,EAAM,SAAS,OAC5CA,EAAM,YACfiD,EAAO,MAAM,QAAQ,MAAM,QAAQ,GAAGP,EAAQ,MAAM,WAAW,OAE/DO,EAAO,MAAM,QAAQ,MAAM,WAAW,GAAGP,EAAQ,MAAM,WAAW;AAAA,MAEtE,CACD;AAAA,IAAA;AAGH,IAAAsB;AAAA,MACE,MAAMhE,EAAM;AAAA,MACZ,CAASM,MAAA;AACP,QAAAW,EAAe,QAAQX;AAAA,MAAA;AAAA,IAE3B,GACA0D,EAAM/C,GAAgB,CAASX,MAAA;AAC7B,MAAIA,MACFuB,EAAY,QAAQ,IACHyF,GAAA,GACFD,GAAA,IAGbrH,EAAM,mBAAmB,eAC3B,sBAAsBuH,EAAc,IAErBA,GAAA;AAAA,IACjB,CACD,GACDvD;AAAA,MACE,MAAMhE,EAAM;AAAA,MACZ,CAASM,MAAA;AACP,SAAI,CAACuD,KAAgB,CAACnF,GAAY4B,GAAOuD,CAAY,OACpCA,IAAAvD,GACfmF,GAAkBnF,CAAK,GACRiH,GAAA;AAAA,MACjB;AAAA,IAEJ,GACAvD;AAAA,MACE,MAAMhE,EAAM;AAAA,MACZ,CAASM,MAAA;AACP,QAAIA,KACFwF,EAAW,EAAK;AAAA,MAClB;AAAA,IAEJ,GACA9B,EAAMyC,IAAU,CAASnG,MAAA;AACvB,MAAIA,KACFwF,EAAW,EAAK;AAAA,IAClB,CACD,GACD9B,EAAMvC,GAAe,CAASnB,MAAA;AAC5B,MAAA2B,EAAc,QAAQ3B,GACtB2B,EAAc,QAAQ3B,GACtB2B,EAAc,OAAO3B,GAErBkH,GAAclH,CAAK;AAAA,IAAA,CACpB,GAEYmH,GAAA;AAAA,MACX,OAAAvI;AAAA,MACA,SAAAC;AAAA,MACA,gBAAA8B;AAAA,MACA,eAAAG;AAAA,MACA,eAAAD;AAAA,MACA,cAAAkB;AAAA,MACA,SAAAoB;AAAA,MACA,eAAAhC;AAAA,MACA,WAAAK;AAAA,MACA,gBAAAS;AAAA,MACA,cAAA+D;AAAA,MAEA,SAAA5D;AAAA,MACA,WAAAW;AAAA,MACA,QAAAJ;AAAA,MACA,OAAAE;AAAA,MACA,QAAAJ;AAAA,MACA,aAAAC;AAAA,MACA,SAAAE;AAAA,MAEA,cAAAK;AAAA,MACA,YAAAmE;AAAA,MACA,kBAAAN;AAAA,MACA,eAAAhB;AAAA,MACA,aAAAuB;AAAA,MACA,OAAA9H;AAAA,MACA,MAAM,MAAM;;AACV,SAAAuD,IAAAD,EAAM,UAAN,QAAAC,EAAa,SACbwE,IAAAvE,EAAU,UAAV,QAAAuE,EAAiB;AAAA,MAAK;AAAA,IACxB,CACD,GAEDC,GAAU,MAAM;AACC,MAAAN,GAAA,GAEXvH,EAAM,YACR6B,EAAY,QAAQ,IACHyF,GAAA,GACFD,GAAA;AAAA,IACjB,CACD;AAED,aAAS5B,GAAkBnF,GAA2B;AAChD,UAAArB,EAAOqB,CAAK,GAAG;AACjB,QAAAc,EAAc,QAAQ,CAAC,GACvBD,EAAc,QAAQ,CAAC;AACvB;AAAA,MAAA;AAGI,YAAA2G,IAAmB,MAAM,QAAQxH,CAAK,IAAcA,IAAV,CAACA,CAAK,GAEhDyH,IAAW,IAAI,IAAID,CAAe,GAClCE,IAAoC,CAAC,GACrCC,IAA2B,CAAC;AAEzB,MAAAF,EAAA,QAAQ,CAAAzH,MAAS;AACpB,YAAAuE,IAASuC,EAAiB9G,CAAK;AAEnC,QAAIuE,KACamD,EAAA,KAAKnD,EAAO,KAAK,GACjBoD,EAAA,KAAKpD,EAAO,KAAK,GAE3BlB,EAAe,IAAIkB,EAAO,KAAK,KACnBlB,EAAA,IAAIkB,EAAO,OAAOA,CAAM,KAEhC7E,EAAM,WACf6E,IAAS3C,GAAS;AAAA,UAChB,OAAA5B;AAAAA,UACA,UAAU;AAAA,UACV,SAAS;AAAA,UACT,OAAO;AAAA,UACP,OAAO,OAAOA,CAAK;AAAA,UACnB,OAAO;AAAA,UACP,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,QAAQ;AAAA,UACR,SAAS;AAAA,UACT,MAAMA;AAAAA,QAAA,CACP,GAEcqD,EAAA,IAAIrD,GAAOuE,CAAM,GAChCmD,EAAe,KAAK1H,CAAK,GACV2H,EAAA,KAAKpD,EAAO,KAAK;AAAA,MAClC,CACD;AAED,iBAAWqD,KAAe,MAAM,KAAKvE,EAAe,KAAA,CAAM;AACxD,QAAKoE,EAAS,IAAIG,CAAW,KAC3BvE,EAAe,OAAOuE,CAAW;AAIrC,MAAA9G,EAAc,QAAQ4G,GACtB7G,EAAc,QAAQ8G,GAELX,GAAA,GACjBE,GAAc/F,EAAc,KAAK;AAAA,IAAA;AAGnC,aAAS6F,KAAmB;AACpB,YAAAhH,IAAQc,EAAc,MAAM,CAAC;AAE/B,UAAAnC,EAAOqB,CAAK;AACd,QAAA8F,EAAc,EAAE;AAAA,WACX;AACD,YAAA,CAACrE,GAAU,MAAO;AAEtB,QAAAqE,EAAc7D,EAAe,MAAM,UAAU,OAAUsC,EAAO,UAAUvE,CAAK,CAAC;AAAA,MAAA;AAAA,IAChF;AAGF,aAASwF,EAAWqC,GAAkB;AAChC,MAAAlH,EAAe,UAAUkH,MAE7BlH,EAAe,QAAQkH,GAEvB3H,EAAK,kBAAkB2H,CAAO,GACpBC,EAAApI,EAAM,UAAUmI,CAAO;AAAA,IAAA;AAG1B,aAAA/B,EAAciC,GAAiBC,IAAe,IAAM;AAC3D,MAAAjH,EAAa,QAAQgH,GACrBjG,GAAc,QAAQ;AAEtB,UAAI+D,IAAQ;AAEC,MAAA9D,EAAA,MAAM,QAAQ,CAAUwC,MAAA;AAC/B,QAACA,EAAO,SAQVA,EAAO,UAAU,MAPRsB,KAAA,GACTtB,EAAO,UAAUwD,MAAYlC,GAEzBtB,EAAO,YACTzC,GAAc,QAAQyC;AAAA,MAI1B,CACD,GAEGyD,KAAgBrH,EAAe,SAAS+B,GAAY,SAC1CA,GAAA,MAAM,kBAAkBqF,CAAO;AAAA,IAC7C;AAGF,aAASX,EAAW7C,GAA2B;AAC7C,aAAI7E,EAAM,WACDoB,EAAc,MAAM,SAASyD,EAAO,KAAK,IAG3CzD,EAAc,MAAM,CAAC,MAAMyD,EAAO;AAAA,IAAA;AAG3C,aAAS2C,GAAce,GAAoB;AACzC,YAAMC,IAASxI,EAAM;AAEjB,UAAA,GAACwI,KAAUxI,EAAM,SAErB;AAAA,YAAI,CAACuI;AACU,UAAAlG,EAAA,MAAM,QAAQ,CAAAjD,MAAS;AAClCA,YAAAA,EAAM,SAAS;AAAA,UAAA,CAChB;AAAA,aACI;AAKD,cAJSiD,EAAA,MAAM,QAAQ,CAAAjD,MAAS;AAClCA,YAAAA,EAAM,SAAS;AAAA,UAAA,CAChB,GAEG,OAAOoJ,KAAW;AACN,YAAA1B,GAAA,MAAM,QAAQ,CAAA1H,MAAS;AACnCA,cAAAA,EAAM,SAAS,CAACoJ,EAAOD,GAAYnJ,CAAK;AAAA,YAAA,CACzC;AAAA,mBAEGY,EAAM,YAAY;AACpB,kBAAMyI,IAAkBF,EAAW,SAAS,EAAE,kBAAkB;AAElD,YAAAzB,GAAA,MAAM,QAAQ,CAAA1H,MAAS;;AACnCA,cAAAA,EAAM,SAAS,GAACA,IAAAA,EAAM,UAANA,QAAAA,EAAa,WAAW,oBAAoB,SAASqJ;AAAA,YAAe,CACrF;AAAA,UAAA;AAEa,YAAA3B,GAAA,MAAM,QAAQ,CAAA1H,MAAS;;AACnCA,cAAAA,EAAM,SAAS,GAACA,IAAAA,EAAM,UAANA,QAAAA,EAAa,WAAW,SAASmJ,KAAA,gBAAAA,EAAY;AAAA,YAAU,CACxE;AAIL,gBAAMG,IAAY3B,GAAgB;AAEpB,UAAAD,GAAA,MAAM,QAAQ,CAAUjC,MAAA;AACpC,gBAAI,CAACA,EAAO,UAAUA,EAAO,QAAQ;AACnC,kBAAIE,IAAS2D,EAAU,IAAI7D,EAAO,KAAK,KAAK;AAErC,qBAAAE,KAAUA,EAAO;AACtB,gBAAAA,EAAO,SAAS,IAChBA,IAASA,EAAO;AAAA,YAClB;AAAA,UACF,CACD;AAAA,QAAA;AAGH,QAAAqB,EAAc/E,EAAa,KAAK;AAAA;AAAA,IAAA;AAGlC,aAASsH,GAAerI,GAAgC;AAClD,MAAAN,EAAM,YAAYyG,GAAS,SAE/B,CAACxH,EAAOqB,CAAK,KAAK+F,GAAae,EAAiB9G,CAAK,CAAC;AAAA,IAAA;AAGxD,aAASsI,GAAmBtI,GAAgC;;AAC1D,MAAAqI,GAAerI,CAAK,GAEhBuB,EAAY,WACduB,IAAAF,GAAQ,UAAR,QAAAE,EAAe;AAAA,IACjB;AAGF,aAASiD,GAAaxB,GAAmC;AACvD,UAAI,CAACA,EAAQ;AAEP,YAAAgE,IAAWnB,EAAW7C,CAAM,GAC5BvE,IAAQuE,EAAO;AAErB,UAAIgE;AACF,QAAIlH,EAAY,MAAM,KAAK,OAAQmH,EAAK,UAAUxI,CAAK,MACrDyI,GAAgBpH,EAAY,OAAO,CAAQmH,MAAAA,EAAK,UAAUxI,CAAK,GAChDsD,GAAA,MAAM,OAAOtD,CAAK,IAGnCqD,EAAe,OAAOrD,CAAK;AAAA,WACtB;AAKL,YAJKN,EAAM,aACT2B,EAAY,MAAM,SAAS,IAGzBuF,GAAQ,MAAO;AAEnB,YAAIjF,EAAc,SAAS3B,MAAU2B,EAAc,OAAO;AAClD,gBAAA+G,IAAY,EAAE,GAAG/G,EAAc;AAEzB,UAAAN,EAAA,MAAM,KAAKqH,CAAS,GACjBpF,GAAA,MAAM,IAAItD,GAAO0I,CAAS;AAAA,QAAA;AAG5B,QAAArF,EAAA,IAAIkB,EAAO,OAAOA,CAAM;AAAA,MAAA;AAGzC,MAAAuD;AAAA,QACEpI,EAAMA,EAAM,YAAY6I,IAAW,aAAa,UAAU;AAAA,QAC1DvI;AAAA,QACAuE,EAAO;AAAA,MACT,GACAoE,GAAapE,CAAM,GAEf7E,EAAM,YACJA,EAAM,mBAAmB,iBAC3ByB,EAAc,QAAQ,IACP8F,GAAA,IAGjB,sBAAsBhE,EAAY,KAElCuC,EAAW,EAAK,GAGlBpE,GAAY,QAAQ;AAAA,IAAA;AAGtB,aAASuH,GAAapE,GAA2B;AAC/C,UAAI7E,EAAM,UAAU;AACd,YAAA0H,EAAW7C,CAAM,GAAG;AACtB,gBAAMsB,IAAQ/E,EAAc,MAAM,UAAU,CAAK8H,MAAAA,MAAMrE,EAAO,KAAK;AAEnE,UAAI,CAACsB,MACW/E,EAAA,MAAM,OAAO+E,GAAO,CAAC,GACrBhF,EAAA,MAAM,OAAOgF,GAAO,CAAC;AAAA,QACrC;AAEc,UAAA/E,EAAA,MAAM,KAAKyD,EAAO,KAAK,GACvB1D,EAAA,MAAM,KAAK0D,EAAO,KAAK;AAGxB,QAAAhB,IAAA,MAAM,KAAKzC,EAAc,KAAK,GAE7CZ,EAAK,gBAAgBqD,CAAY,GAC5BrD,EAAA,gBAAgBW,EAAc,KAAK,GACxCxB,GAAckE,CAAY,GAC1BuE;AAAA,UACEpI,EAAM;AAAA,UACN6D;AAAA,UACAA,EAAa,IAAI,CAAAvD,MAAA;;AAAS,qBAAA8C,IAAAgE,EAAiB9G,CAAK,MAAtB,gBAAA8C,EAAyB,SAAQ9C;AAAA,WAAK;AAAA,QAClE,GACcd,GAAA;AAAA,MAAA,OACT;AACC,cAAA2J,IAAY/H,EAAc,MAAM,CAAC;AAEvC,QAAAA,EAAc,MAAM,SAAS,GAC7BD,EAAc,MAAM,SAAS,GACfC,EAAA,MAAM,KAAKyD,EAAO,KAAK,GACvB1D,EAAA,MAAM,KAAK0D,EAAO,KAAK,GAEjCsE,MAActE,EAAO,UACvBhB,IAAegB,EAAO,OAEtBrE,EAAK,gBAAgBqD,CAAY,GACjCrD,EAAK,gBAAgBW,EAAc,MAAM,CAAC,CAAC,GAC3CxB,GAAckE,CAAY,GAC1BuE,EAAUpI,EAAM,UAAyB6D,GAAcgB,EAAO,IAAI,GACpDrF,GAAA;AAAA,MAChB;AAAA,IACF;AAGF,aAASqG,KAAgB;AACnB,MAAA7F,EAAM,YAAYyG,GAAS,SAEpBX,EAAA,CAAC7E,EAAe,KAAK;AAAA,IAAA;AAGlC,aAAS2B,KAAqB;AAC5B,MAAAf,EAAY,QAAQ,IACpBuG,EAAUpI,EAAM,cAAc,GAE1BA,EAAM,gBAAgBiB,EAAe,UACvC6E,EAAW,EAAK,GAChBsC,EAAUpI,EAAM,cAAc;AAAA,IAChC;AAGF,aAAS2H,KAAc;AACjB,UAAA,EAAA3H,EAAM,YAAYyG,GAAS,UAE3BzG,EAAM,WAAW;AACR,mBAAA6E,KAAUlD,EAAY;AAChB,UAAAiC,GAAA,MAAM,OAAOiB,EAAO,KAAK;AAG1C,QAAAlB,EAAe,MAAM,GAErBhC,EAAY,MAAM,SAAS,GAC3BP,EAAc,MAAM,SAAS,GAC7BD,EAAc,MAAM,SAAS,GAC7BU,EAAY,QAAQ,IAELgC,IAAA7D,EAAM,WAAW,CAAA,IAAK,IAEtBuH,GAAA,GACf/G,EAAK,gBAAgBqD,CAAY,GACjCuE,EAAUpI,EAAM,UAAyB6D,GAAc7D,EAAM,WAAW,KAAK,EAAE,GAC/EoI,EAAUpI,EAAM,OAAO,GACvBP,GAAWoE,CAAa,GACXN,GAAA;AAAA,MAAA;AAAA,IACf;AAGF,QAAI6F,KAAU;AAEd,aAASC,GAAY1D,GAAmB;AACtC,MAAKyD,OACOA,KAAA,IACAhB,EAAApI,EAAM,SAAS2F,CAAK;AAAA,IAChC;AAGF,aAAS2D,GAAW3D,GAAmB;AACrC,MAAIyD,OACQA,KAAA,IAEV,WAAW,MAAM;AACf,QAAKA,MACOhB,EAAApI,EAAM,QAAQ2F,CAAK;AAAA,SAE9B,GAAG;AAAA,IACR;AAGF,aAAS4B,KAAiB;AACpB,UAAA,CAACpE,EAAM,MAAO;AAElB,YAAMgF,IAAUlH,EAAe;AAE/B,MAAIjB,EAAM,WACRmD,EAAM,MAAM,QAAQ,KAEpBA,EAAM,MAAM,QAAQgF,IAAU,KAAKhH,EAAc,MAAM,CAAC,KAAK,IAG/DgH,IAAUhF,EAAM,MAAM,MAAU,IAAAA,EAAM,MAAM,KAAK;AAAA,IAAA;AAGnD,aAASoG,KAAoB;AAC3B,UAAI,CAACpG,EAAM,SAASrB,EAAU,MAAO;AAEjC,UAAA0H;AAEU,MAAA/H,EAAA,QAAQ0B,EAAM,MAAM,OAE7B1B,EAAc,QAER8E,GAAY,SAASlF,EAAa,UAAU,KACtCmI,IAAA,KAEfA,IAAejH,EAAe,MAAM;AAAA,QAClC,CAAUsC,MAAA,OAAOA,EAAO,KAAK,MAAMpD,EAAc;AAAA,MACnD,GACe+H,IAAAA,MAAiB,KAAK,IAAIA,KAP1BA,IAAA,IAUjB,sBAAsB,MAAM;AAC1B,QAAKA,MACHA,IAAejH,EAAe,MAAM;AAAA,UAClC,OAAU,CAACnB,EAAc,MAAM,SAASyD,EAAO,KAAK;AAAA,QACtD,IAGE2E,MAAiBnI,EAAa,SAChC+E,EAAcoD,CAAY,GAGxBxJ,EAAM,YAAY+C,GAAO,UACfrB,GAAA,QAAQ+H,GAAc1G,GAAO,KAAK,IAGnCQ,GAAA;AAAA,MAAA,CACd,GAES6E,EAAApI,EAAM,eAAeyB,EAAc,KAAK;AAAA,IAAA;AAGpD,aAASiI,KAAuB;AAC1B,MAAC5H,EAAU,UAEfA,EAAU,QAAQ,IAEdqB,EAAM,SACRA,EAAM,MAAM,cAAc,IAAI,MAAM,OAAO,CAAC;AAAA,IAC9C;AAGF,aAASwG,GAAoBhE,GAAsB;AAC7C,MAACxC,EAAM,SAGTnD,EAAM,mBAAmB,aACzB2F,EAAM,QAAQ,eACd,CAACxC,EAAM,MAAM,SACb,CAAClE,EAAO2K,GAAQxI,EAAc,KAAK,CAAC,MAEpCuE,EAAM,gBAAgB,GACPgD,GAAAiB,GAAQxI,EAAc,KAAK,CAAC;AAAA,IAC7C;AAGF,aAASyI,KAAoB;AACvB,MAAC5I,EAAe,SASJ4E,GAAA,GACdhE,EAAY,QAAQ,OATRA,EAAA,QAAQ,CAACA,EAAY,OAE7BA,EAAY,SACdiI,GAAS,MAAM;;AACb,SAAA1G,IAAAF,GAAQ,UAAR,QAAAE,EAAe;AAAA,MAAa,CAC7B;AAAA,IAKL;AAGF,aAASvD,GAAMmG,GAAwB;;AACrC,MAAI/E,EAAe,SACfmC,IAAAD,EAAM,SAASE,EAAU,UAAzB,QAAAD,EAAiC,MAAM4C,MAE/B4B,IAAAvE,EAAA,UAAA,QAAAuE,EAAO,MAAM5B;AAAA,IACzB;2BAKA+D,EA8cM,OAAA;AAAA,MA7cH,IAAIC,EAAK9K,EAAA;AAAA,eACN;AAAA,MAAJ,KAAIwD;AAAA,MACH,SAAO8D,GAAS,KAAA;AAAA,MACjB,MAAK;AAAA,MACJ,iBAAewD,EAAAC,EAAA,EAAYD,EAAAhK,CAAA,EAAM,QAAQ;AAAA,MACzC,iBAAegK,EAAWC,EAAA,EAAChJ,EAAc,KAAA;AAAA,MAC1C,iBAAc;AAAA,MACb,mBAAiB+I,EAAO7K,EAAA;AAAA,MACxB,SAAO0G;AAAA,IAAA;MAERqE,EAoTM,OAAA;AAAA,iBAnTA;AAAA,QAAJ,KAAI7G;AAAA,QACH,SAAOqD,GAAa,KAAA;AAAA,QACrB,UAAS;AAAA,QACR,SAAO2C;AAAA,QACP,QAAIc,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAA;AAAA,WAAA,CAAKJ,KAAM,WAAW/I,EAAc,UAAKqI,GAAWc,CAAM;AAAA,QAAA;AAAA,MAAA;QAGvDxD,GAAS,cADjBmD,EAUM,OAAA;AAAA;UARH,UAAQC,EAAElK,CAAA,EAAC,GAAY,MAAA,GAAAkK,EAAAlK,CAAA,EAAG,GAAE,QAAA,CAAA,CAAA;AAAA,UAC5B,OAAKuK,EAAA,EAAA,OAAWL,EAAKhK,CAAA,EAAC,YAAW,CAAA;AAAA,QAAA;UAElCsK,EAIOC,wBAJP,MAIO;AAAA,YAHLC,EAEWR,EAAAS,CAAA,GAAA;AAAA,cAFA,UAAUT,EAAAhK,CAAA,EAAM,MAAM;AAAA,YAAA;yBAC/B,MAAkC;AAAA,gBAAlCwK,EAAkCR,EAAAU,CAAA,GAAA;AAAA,kBAA3B,MAAMV,EAAKhK,CAAA,EAAC;AAAA,gBAAA;;;;;;QAIzBkK,EAoPM,OAAA;AAAA,UApPA,OAAKS,EAAEX,EAAElK,CAAA,EAAC,GAAE,SAAA,CAAA;AAAA,QAAA;UAChBwK,EAkPOC,yBAlPP,MAkPO;AAAA,YAjPLC,EAgPWR,EAAAS,CAAA,GAAA;AAAA,cAhPA,UAAUT,EAAAhK,CAAA,EAAM,MAAM;AAAA,YAAA;yBAC/B,MAwKW;AAAA,gBAxKKgK,EAAAhK,CAAA,EAAM,iBAAtB+J,EAwKWa,IAAA,EAAA,KAAA,KAAA;AAAA,kBAvKTJ,EAqIWR,EAAAa,EAAA,GAAA;AAAA,oBApIT,SAAA;AAAA,oBACC,OAAKF,EAAA,CAAGX,EAAElK,CAAA,EAAC,GAAE,MAAA,CAAA,CAAA;AAAA,oBACb,OAAOsB,EAAa;AAAA,oBACpB,aAAW4I,EAAKhK,CAAA,EAAC;AAAA,oBACjB,OAAKqK,EAAA;AAAA,gCAAiCL,EAAKhK,CAAA,EAAC,eAAW,KAAA,eAAwB0B,GAAW,KAAA;AAAA,oBAAA;oBAG1F,cAAWyI,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAExI,GAAY,QAAGwI;AAAA,oBAC5B,YAAYvE,IAAa,CAAA,MAAA,CAAA;AAAA,kBAAA;oBAEf,SACTiF,EAAA,CAkCO,EAnCmB,MAAAxK,GAAO,OAAA6F,QAAK;AAAA,sBACtCmE,EAkCOC,EAAA,QAAA,OAAA;AAAA,wBAhCJ,OAAAjK;AAAA,wBACA,QAAQ8G,EAAiB9G,CAAK;AAAA,wBAC9B,aAAcqI,GAAe,WAAWrI,CAAK;AAAA,sBAAA,GAJhD,MAkCO;AAAA,wBA5BLkK,EA2BWR,EAAAS,CAAA,GAAA;AAAA,0BA1BR,UAAUT,EAAAhK,CAAA,EAAM,MAAM;AAAA,0BACtB,MAAI;AAAA,4BAA6B,OAAAM;AAAA,4BAAwC,QAAA8G,EAAiB9G,CAAK;AAAA,yCAAyCqI,GAAe,KAAI,MAAOrI,CAAK;AAAA,0BAAA;AAAA;qCAMxK,MAkBM;AAAA,4BAlBNkK,EAkBMR,EAAAe,EAAA,GAAA;AAAA,8BAjBJ,SAAA;AAAA,8BACC,OAAKJ,EAAEX,EAAElK,CAAA,EAAC,GAAE,KAAA,CAAA;AAAA,8BACZ,MAAMkK,EAAKhK,CAAA,EAAC;AAAA,8BACb,UAAA;AAAA,8BACC,UAAUgK,EAAKhK,CAAA,EAAC;AAAA,8BAChB,SAAK,CAAAoK,MAAEzB,GAAerI,CAAK;AAAA,4BAAA;yCAE5B,MASO;AAAA,gCATP4J,EASO,QAAA;AAAA,kCATA,OAAKS,EAAEX,EAAElK,CAAA,EAAC,GAAE,OAAA,CAAA;AAAA,gCAAA;kCACjBwK,EAOOC,EAAA,QAAA,YAAA;AAAA,oCAPgB,OAAAjK;AAAA,oCAAe,QAAQ8G,EAAiB9G,CAAK;AAAA,kCAAA,GAApE,MAOO;AAAA,oCANLkK,EAKWR,EAAAS,CAAA,GAAA;AAAA,sCAJR,UAAUT,EAAAhK,CAAA,EAAM,MAAM;AAAA,sCACtB,MAAQ,EAAA,OAAAM,GAAe,QAAA8G,EAAiB9G,CAAK,EAAA;AAAA,oCAAA;iDAE9C,MAA0B;AAAA,wCAAvB0K,EAAAC,EAAA9J,EAAA,MAAcgF,CAAK,CAAA,GAAA,CAAA;AAAA,sCAAA;;;;;;;;;;;;;oBAQzB,SAAO2E,EAChB,CAWO,EAZa,OAAAI,QAAK;AAAA,sBACblB,EAAAhK,CAAA,EAAM,YAAlBsK,EAWOC,EAAA,QAAA,WAAA;AAAA;wBAXsC,WAAYW;AAAA,sBAAA,GAAzD,MAWO;AAAA,wBAVLV,EASWR,EAAAS,CAAA,GAAA;AAAA,0BATA,UAAUT,EAAAhK,CAAA,EAAM,MAAM;AAAA,0BAAU,mBAAmBkL,EAAK;AAAA,wBAAA;qCACjE,MAOM;AAAA,4BAPNV,EAOMR,EAAAe,EAAA,GAAA;AAAA,8BANJ,SAAA;AAAA,8BACC,UAAQf,EAAElK,CAAA,EAAC,GAAW,KAAA,GAAAkK,EAAAlK,CAAA,EAAG,GAAE,SAAA,CAAA,CAAA;AAAA,8BAC3B,MAAMkK,EAAKhK,CAAA,EAAC;AAAA,8BACZ,UAAUgK,EAAKhK,CAAA,EAAC;AAAA,4BAAA;yCAEjB,MAAiB;AAAA,wCAAVkL,CAAK,EAAA,GAAA,CAAA;AAAA,8BAAA;;;;;;iCAKhBC,GAoEUnB,EAAAoB,EAAA,GAAA;AAAA;iCAnEJ;AAAA,wBAAJ,KAAIlI;AAAA,wBACJ,SAAA;AAAA,wBACC,UAAU;AAAA,wBACV,SAASrB,EAAW;AAAA,wBACrB,SAAQ;AAAA,wBACR,WAAU;AAAA,wBACT,aAAWmI,EAAElK,CAAA,EAAC,GAAE,UAAA;AAAA,wBAChB,YAAY+J,IAAiB,CAAA,MAAA,CAAA;AAAA,sBAAA;wBAEnB,WACT,MAWO;AAAA,0BAXPS,EAWOC,EAXe,QAAA,WAAA,EAAA,WAAYW,EAAA,GAAlC,MAWO;AAAA,4BAVLV,EASWR,EAAAS,CAAA,GAAA;AAAA,8BATA,UAAUT,EAAAhK,CAAA,EAAM,MAAM;AAAA,8BAAU,mBAAmBkL,EAAK;AAAA,4BAAA;yCACjE,MAOM;AAAA,gCAPNV,EAOMR,EAAAe,EAAA,GAAA;AAAA,kCANJ,SAAA;AAAA,kCACC,UAAQf,EAAElK,CAAA,EAAC,GAAW,KAAA,GAAAkK,EAAAlK,CAAA,EAAG,GAAE,SAAA,CAAA,CAAA;AAAA,kCAC3B,MAAMkK,EAAKhK,CAAA,EAAC;AAAA,kCACZ,UAAUgK,EAAKhK,CAAA,EAAC;AAAA,gCAAA;6CAEjB,MAAiB;AAAA,4CAAVkL,CAAK,EAAA,GAAA,CAAA;AAAA,kCAAA;;;;;;;;mCAKpB,MA2Ce;AAAA,0BA3CfV,EA2CeR,EAAAqB,EAAA,GAAA;AAAA,4BA3CD,SAAA;AAAA,4BAAQ,aAAA;AAAA,0BAAA;uCACV,MAAuC;AAAA,+BAAjDC,EAAA,EAAA,GAAAvB,EAyCWa,IAzCwB,MAAAW,GAAAnK,EAAA,OAAjB,CAAAd,GAAO6F,yBAA+BA,KAAK;AAAA,gCAEnDA,KAAS/E,EAAA,MAAc,SAASQ,GAAY,QADpD0I,EAuCOC,EAAA,QAAA,OAAA;AAAA;kCApCJ,OAAAjK;AAAA,kCACA,QAAQ8G,EAAiB9G,CAAK;AAAA,kCAC9B,aAAcsI,GAAmB,WAAWtI,CAAK;AAAA,gCAAA,GALpD,MAuCO;AAAA,kCAhCLkK,EA+BWR,EAAAS,CAAA,GAAA;AAAA,oCA9BR,UAAUT,EAAAhK,CAAA,EAAM,MAAM;AAAA,oCACtB,MAAI;AAAA,sCAAqC,OAAAM;AAAA,sCAAgD,QAAA8G,EAAiB9G,CAAK;AAAA,mDAAiDsI,GAAmB,KAAI,MAAOtI,CAAK;AAAA,oCAAA;AAAA;+CAMpM,MAsBM;AAAA,sCAtBNkK,EAsBMR,EAAAe,EAAA,GAAA;AAAA,wCArBJ,SAAA;AAAA,wCACC,OAAKJ,EAAEX,EAAElK,CAAA,EAAC,GAAE,KAAA,CAAA;AAAA,wCACb,UAAA;AAAA,wCACC,MAAMkK,EAAKhK,CAAA,EAAC;AAAA,wCACZ,UAAUgK,EAAKhK,CAAA,EAAC;AAAA,wCAChB,SAAK,CAAAoK,MAAExB,GAAmBtI,CAAK;AAAA,sCAAA;mDAEhC,MAaO;AAAA,0CAbP4J,EAaO,QAAA;AAAA,4CAbA,OAAKS,EAAEX,EAAElK,CAAA,EAAC,GAAE,OAAA,CAAA;AAAA,0CAAA;4CACjBwK,EAWOC,EAAA,QAAA,YAAA;AAAA,8CATJ,OAAAjK;AAAA,8CACA,QAAQ8G,EAAiB9G,CAAK;AAAA,4CAAA,GAHjC,MAWO;AAAA,8CANLkK,EAKWR,EAAAS,CAAA,GAAA;AAAA,gDAJR,UAAUT,EAAAhK,CAAA,EAAM,MAAM;AAAA,gDACtB,MAAQ,EAAA,OAAAM,GAAe,QAAA8G,EAAiB9G,CAAK,EAAA;AAAA,8CAAA;2DAE9C,MAA0B;AAAA,kDAAvB0K,EAAAC,EAAA9J,EAAA,MAAcgF,CAAK,CAAA,GAAA,CAAA;AAAA,gDAAA;;;;;;;;;;;;;;;;;;;;;;kBActC6D,EAAAhK,CAAA,EAAM,UAAUgK,EAAAhK,CAAA,EAAM,mBAAc,qBAD5C+J,EAgCM,OAAA;AAAA;oBA9BH,OAAKY,EAAEX,EAAElK,CAAA,EAAC,GAAE,QAAA,CAAA;AAAA,oBACZ,OAAKuK,EAAA;AAAA,gCAAiC3I,GAAW,KAAA;AAAA;;oBAIlDwI,EAqBE,SAAA;AAAA,+BApBI;AAAA,sBAAJ,KAAIrH;AAAA,sBACH,OAAK8H,EAAA;AAAA,wBAAyBX,EAAAlK,CAAA,EAAG,GAAE,OAAA;AAAA,wBAAgCkK,EAAAlK,CAAA,EAAG,IAAG,SAAA,UAAA;AAAA,wBAA4CmB,EAAc,SAAI+I,EAAElK,CAAA,EAAC,IAAG,SAAA,SAAA;AAAA,sBAAA;sBAK7I,UAAUkK,EAAKhK,CAAA,EAAC;AAAA,sBACjB,cAAa;AAAA,sBACb,UAAS;AAAA,sBACT,MAAK;AAAA,sBACL,qBAAkB;AAAA,sBACjB,MAAMgK,EAAKhK,CAAA,EAAC;AAAA,sBACZ,6BAAD,MAAe;AAAA,sBAAA,GAAA,CAAA,SAAA,CAAA;AAAA,sBACd,SAAOuJ;AAAA,sBACP,WAASI;AAAA,sBACT,SAAKQ,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAEf,GAAYe,CAAM;AAAA,sBACzB,QAAID,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAEd,GAAWc,CAAM;AAAA,sBACvB,2CAAkBtI,EAAS,QAAA;AAAA,sBAC3B,kBAAgB4H;AAAA,sBAChB,UAAQA;AAAA,oBAAA;oBAEXQ,EAEO,QAAA;AAAA,+BAFG;AAAA,sBAAJ,KAAInH;AAAA,sBAAU,OAAK4H,EAAEX,EAAElK,CAAA,EAAC,GAAE,QAAA,CAAA;AAAA,sBAAY,eAAY;AAAA,yBACnD2B,EAAa,KAAA,GAAA,CAAA;AAAA;gCAItBsI,EAkDWa,IAAA,EAAA,KAAA,KAAA;AAAA,kBAhDDZ,EAAAhK,CAAA,EAAM,UAAUgK,EAAAhK,CAAA,EAAM,mBAAc,qBAD5C+J,EAoBE,SAAA;AAAA;6BAlBI;AAAA,oBAAJ,KAAIlH;AAAA,oBACH,OAAK8H,EAAA,CAAGX,KAAG,aAAa/I,EAAc,SAAI+I,EAAElK,CAAA,EAAC,IAAG,SAAA,SAAA,CAAA,CAAA;AAAA,oBAChD,UAAUkK,EAAKhK,CAAA,EAAC;AAAA,oBACjB,cAAa;AAAA,oBACb,UAAS;AAAA,oBACT,MAAK;AAAA,oBACL,qBAAkB;AAAA,oBACjB,MAAMgK,EAAKhK,CAAA,EAAC;AAAA,oBACZ,OAAKqK,EAAA;AAAA,sBAAgC,SAAApJ,EAAA,QAAiB,SAAS;AAAA,oBAAA;oBAG/D,6BAAD,MAAe;AAAA,oBAAA,GAAA,CAAA,SAAA,CAAA;AAAA,oBACd,SAAOsI;AAAA,oBACP,SAAKY,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAEf,GAAYe,CAAM;AAAA,oBACzB,QAAID,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAEd,GAAWc,CAAM;AAAA,oBACvB,2CAAkBtI,EAAS,QAAA;AAAA,oBAC3B,kBAAgB4H;AAAA,oBAChB,UAAQA;AAAA,kBAAA;mBAGkBM,EAAKhK,CAAA,EAAC,aAAS,CAAKiB,EAAc,UAA0B4F,GAAQ,UAA0BmD,EAAKhK,CAAA,EAAC,mBAAc,gBAAA,CAAsByB,EAAa,eADlLsI,EA2BO,QAAA;AAAA;oBArBJ,OAAKY,EAAA;AAAA,sBAAwB,CAAAX,EAAAlK,CAAA,EAAG,GAAE,UAAA,CAAA,GAAA;AAAA,uBAAyCkK,EAAElK,CAAA,EAAC,IAAiC,YAAA,aAAA,CAAA,GAAAkK,EAAAhK,CAAA,EAAM,UAAUiB,EAAc,SAAI4F,GAAQ;AAAA;;oBAMlJO,EAAiBhG,EAAa,MAAA,CAAA,CAAA,IADtCkJ,EAYOC,EAAA,QAAA,YAAA;AAAA;sBATJ,OAAOnJ,EAAa,MAAA,CAAA;AAAA,sBACpB,QAAQgG,EAAiBhG,EAAa,MAAA,CAAA,CAAA;AAAA,oBAAA,GAJzC,MAYO;AAAA,sBANLoJ,EAKWR,EAAAS,CAAA,GAAA;AAAA,wBAJR,UAAUT,EAAAhK,CAAA,EAAM,MAAM;AAAA,wBACtB,MAAe,EAAA,OAAAoB,EAAA,MAA0B,CAAA,GAAA,QAAAgG,EAAiBhG,EAAa,MAAA,CAAA,CAAA,EAAA;AAAA,sBAAA;mCAExE,MAAsB;AAAA,8BAAnBD,EAAa,MAAA,CAAA,CAAA,GAAA,CAAA;AAAA,wBAAA;;;+BAGpB4I,EAEWa,IAAA,EAAA,KAAA,KAAA;AAAA,0BADNzJ,EAAa,MAAA,CAAA,CAAA,GAAA,CAAA;AAAA;;;gBAIVgG,GAAe,cAA3B4C,EAkBO,QAAA;AAAA;kBAlBuB,OAAKY,EAAEX,EAAElK,CAAA,EAAC,GAAE,aAAA,CAAA;AAAA,gBAAA;kBAEhCmH,EAAa,QADrBqD,EAaOC,EAAA,QAAA,YAAA;AAAA;oBAVJ,SAAS;AAAA,oBACT,OAAOtD,EAAa,MAAC;AAAA,oBACrB,QAAQA,EAAa;AAAA,kBAAA,GALxB,MAaO;AAAA,oBANLuD,EAKWR,EAAAS,CAAA,GAAA;AAAA,sBAJR,UAAUT,EAAAhK,CAAA,EAAM,MAAM;AAAA,sBACtB,MAAe,EAAA,OAAAiH,EAAA,MAAc,4BAA8BA,EAAa,MAAA;AAAA,oBAAA;iCAEzE,MAAyB;AAAA,wBAAtB+D,EAAAC,EAAAhE,EAAA,MAAc,KAAK,GAAA,CAAA;AAAA,sBAAA;;;6BAG1B8C,EAEWa,IAAA,EAAA,KAAA,KAAA;AAAA,oBADNI,EAAAC,EAAAjB,EAAAhK,CAAA,EAAM,eAAegK,EAAApJ,CAAA,EAAO,WAAW,GAAA,CAAA;AAAA;;;;;;;QAO3CoJ,EAAAhK,CAAA,EAAM,WAqBFgK,EAAAhK,CAAA,EAAM,aAAagK,EAAAhK,CAAA,EAAM,gBADtC+J,EAGO,OAAA;AAAA;UADJ,OAAKY,EAAA,CAAGX,EAAElK,CAAA,EAAC,GAAE,MAAA,GAAUkK,EAAElK,CAAA,EAAC,IAAG,QAAA,aAAA,GAAyBkK,EAAElK,CAAA,EAAC,GAAE,QAAA,CAAA,CAAA;AAAA,yCAvB9DiK,EAoBM,OAAA;AAAA;UAlBH,UAAQC,EAAElK,CAAA,EAAC,GAAY,MAAA,GAAAkK,EAAAlK,CAAA,EAAG,GAAE,QAAA,CAAA,CAAA;AAAA,UAC5B,OAAKuK,EAAA;AAAA,YAAsB,OAAAL,EAAAhK,CAAA,EAAM;AAAA,qBAAiCgH,GAAS,SAAIgD,EAAKhK,CAAA,EAAC,UAAO,OAAA;AAAA;;UAK7FsK,EAWOC,wBAXP,MAWO;AAAA,YAVLC,EASWR,EAAAS,CAAA,GAAA;AAAA,cATA,UAAUT,EAAAhK,CAAA,EAAM,MAAM;AAAA,YAAA;yBAC/B,MAMQ;AAAA,gBALAgK,EAAAhK,CAAA,EAAM,YADd,GAAAmL,GAMQnB,EAAAU,CAAA,GAAA;AAAA;kBAJL,MAAMV,EAAKhK,CAAA,EAAC;AAAA,kBACZ,OAAK2K,EAAA;AAAA,oBAAsB,CAAAX,EAAAlK,CAAA,EAAG,GAAe,OAAA,CAAA,GAAA,CAAAkK,EAAAhK,CAAA,EAAM;AAAA;mDAItDsL,EAAA,GAAAH,GAAqEnB,EAArEU,CAAA,GAAAc,GAAqE,EAAhD,KAAA,EAAA,GAAAxB,EAAAjJ,CAAA,EAAM,WAAS;AAAA,kBAAG,OAAOiJ,EAAElK,CAAA,EAAC,GAAE,OAAA;AAAA;;;;;;QAQzD0K,EAmBaiB,IAAA;AAAA,UAnBA,MAAMzB,EAAElK,CAAA,EAAC,GAAE,MAAA;AAAA,UAAU,QAAA;AAAA,QAAA;qBAChC,MASS;AAAA,YARDkH,GAAS,cADjB+C,EASS,UAAA;AAAA;cAPN,UAAQC,EAAElK,CAAA,EAAC,GAAY,MAAA,GAAAkK,EAAAlK,CAAA,EAAG,GAAE,OAAA,CAAA,CAAA;AAAA,cAC7B,MAAK;AAAA,cACL,UAAS;AAAA,cACR,cAAYkK,EAAApJ,CAAA,EAAO,UAAU;AAAA,cAC7B,YAAY+G,IAAW,CAAA,MAAA,CAAA;AAAA,YAAA;cAExB6C,EAAgDR,EAAAU,CAAA,GAAhDc,GAAcxB,EAAkCjJ,CAAA,EAA5B,OAAK,EAAE,OAAM,QAAA,CAAO,GAAA,MAAA,EAAA;AAAA,YAAA,cAE1BiJ,EAAAhK,CAAA,EAAM,gBAAtB+J,EAOM,OAAA;AAAA;cAP0B,UAAQC,EAAElK,CAAA,EAAC,GAAY,MAAA,GAAAkK,EAAAlK,CAAA,EAAG,GAAE,SAAA,CAAA,CAAA;AAAA,YAAA;cAC1D0K,EAKQR,EALRU,CAAA,GAAAc,GACUxB,EAIFjJ,CAAA,EAJQ,SAAO;AAAA,gBACpB,QAAQiJ,KAAM,iBAAiBA,EAAKjJ,CAAA,EAAC,QAAQ;AAAA,gBAC7C,MAAMiJ,KAAM,eAAeA,EAAKjJ,CAAA,EAAC,QAAQ;AAAA,gBAC1C,OAAM;AAAA;;;;;;MAKdyJ,EA6ISR,EAAA0B,EAAA,GAAA;AAAA,iBA5IH;AAAA,QAAJ,KAAIzI;AAAA,QACH,UAAQ+G,EAAElK,CAAA,EAAC,GAAc,QAAA,GAAAkK,EAAAlK,CAAA,EAAG,GAAE,MAAA,CAAA,CAAA;AAAA,QAC9B,SAASmB,EAAc;AAAA,QACvB,IAAI+I,EAAU1G,EAAA;AAAA,QACd,YAAY0G,EAAKhK,CAAA,EAAC;AAAA,QAClB,OAAOgK,EAAAhK,CAAA,EAAM,gBAAgBgK,EAAU1G,EAAA;AAAA,QACvC,YAAYzD,IAAK,CAAA,MAAA,CAAA;AAAA,QACjB,uCAAa4B,EAAa,QAAA;AAAA,MAAA;mBAE3B,MAkIO;AAAA,UAlIP6I,EAkIOC,EAAA,QAAA,QAAA;AAAA,YAhIJ,SAASjE,GAAY;AAAA,YACrB,YAAAoB;AAAA,YACA,cAAArB;AAAA,UAAA,GAJH,MAkIO;AAAA,YA5HLmE,EA2HWR,EAAAS,CAAA,GAAA;AAAA,cA1HR,UAAUT,EAAAhK,CAAA,EAAM,MAAM;AAAA,cACtB,MAAiB,EAAA,SAAAsG,GAAA,OAAc,YAAAoB,oBAAwB;AAAA,YAAA;yBAExD,MAsHM;AAAA,gBAtHNwC,EAsHM,OAAA;AAAA,kBArHH,OAAKS,EAAA;AAAA,oBAAmBX,EAAAlK,CAAA,EAAG,GAAE,MAAA;AAAA,qBAA0BY,GAAM,WAAWA,GAAM,WAAWsJ,EAAElK,CAAA,EAAC,IAAG,QAAA,YAAA;AAAA,oBAAuCkK,EAAAhK,CAAA,EAAM;AAAA;;kBAMlIgK,EAAAhK,CAAA,EAAM,UAAUgK,EAAAhK,CAAA,EAAM,mBAAc,kBAA/C+J,EAuBM,OAAA;AAAA;oBAvB0D,OAAKY,EAAEX,EAAElK,CAAA,EAAC,GAAE,QAAA,CAAA;AAAA,kBAAA;oBAC1E0K,EAqBQR,EAAA2B,EAAA,GAAA;AAAA,+BApBF;AAAA,sBAAJ,KAAI7I;AAAA,sBACH,OAAK6H,EAAEX,EAAElK,CAAA,EAAC,GAAE,cAAA,CAAA;AAAA,sBACb,aAAA;AAAA,sBACC,UAAUkK,EAAKhK,CAAA,EAAC;AAAA,sBAChB,aAAagK,EAAMpJ,CAAA,EAAC;AAAA,sBACpB,cAAc;AAAA,sBACd,UAAU;AAAA,sBACX,MAAK;AAAA,sBACL,qBAAkB;AAAA,sBACjB,SAAO2I;AAAA,sBACP,WAASI;AAAA,sBACT,SAAON;AAAA,sBACP,QAAMC;AAAA,sBACN,6CAAkBxH,EAAS,QAAA;AAAA,sBAC3B,kBAAgB4H;AAAA,sBAChB,UAAQA;AAAA,oBAAA;sBAEE,UACT,MAAmC;AAAA,wBAAnCc,EAAmCR,EAAAU,CAAA,GAAAkB,GAAAC,GAArB7B,EAAKjJ,CAAA,EAAC,MAAM,CAAA,GAAA,MAAA,EAAA;AAAA,sBAAA;;;;kBAIpBL,GAAM,WAAWsJ,KAAM,MAAM,UAAzCM,EAEOC,iCAFP,MAEO;AAAA,oBADLC,EAAqDR,EAAAS,CAAA,GAAA;AAAA,sBAA1C,UAAUT,EAAAhK,CAAA,EAAM,MAAM;AAAA,oBAAA;;kBAEnCwK,EAgFcR,EAAA8B,EAAA,GAAA;AAAA,6BA/ER;AAAA,oBAAJ,KAAI9I;AAAA,oBACJ,SAAA;AAAA,oBACC,OAAKqH,EAAA;AAAA,8BAA6B;AAAA,sBAA0C,WAAA,GAAAL,EAAAhK,CAAA,EAAM,aAAa;AAAA,oBAAA;oBAI/F,OAAOsG,GAAY;AAAA,oBACnB,aAAW;AAAA,oBACZ,aAAA;AAAA,oBACC,QAAQ;AAAA,oBACT,UAAO;AAAA,oBACN,eAAW;AAAA,8BAA6B0D,EAAElK,CAAA,EAAC,GAAe,SAAA,GAAAkK,EAAAhK,CAAA,EAAM,cAAcgK,EAAElK,CAAA,EAAC,IAAG,WAAA,WAAA,IAAA,EAAA;AAAA;;sBAA+I,qBAAAkK,EAAAhK,CAAA,EAAM;AAAA,oBAAA;AAAA;oBAO/N,SACT8K,EAAA,CAeK,EAhBqB,MAAAjG,GAAQ,OAAAsB,QAAK;AAAA,sBAE/BtB,EAAO,cADfkF,EAeK,MAAA;AAAA;wBAbF,UAAQC,EAAElK,CAAA,EAAC,GAAmB,aAAA,GAAAkK,EAAAlK,CAAA,EAAG,GAAE,OAAA,CAAA,CAAA;AAAA,wBACnC,OAAO+E,EAAO;AAAA,sBAAA;wBAEfyF,EASOC,EAAA,QAAA,SAAA;AAAA,0BATa,QAAA1F;AAAA,0BAAiB,OAAAsB;AAAA,wBAAA,GAArC,MASO;AAAA,0BARLqE,EAOWR,EAAAS,CAAA,GAAA;AAAA,4BAPA,UAAUT,EAAAhK,CAAA,EAAM,MAAM;AAAA,4BAAQ,MAAI,EAAI,QAAA6E,GAAQ,OAAAsB,EAAK;AAAA,0BAAA;uCAC5D,MAKM;AAAA,8BALN+D,EAKM,OAAA;AAAA,gCAJH,UAAQF,EAAElK,CAAA,EAAC,GAAa,OAAA,GAAAkK,EAAAlK,CAAA,EAAG,IAAG,SAAA,OAAA,CAAA,CAAA;AAAA,gCAC9B,OAAKuK,EAAA,EAAA,oBAAA,GAA2BxF,EAAO,QAAK,CAAA,KAAA,CAAA;AAAA,8BAE1C,GAAAoG,EAAApG,EAAO,KAAK,GAAA,CAAA;AAAA,4BAAA;;;;uCAKvB,GAAAsG,GAiCSnB,EAAA+B,EAAA,GAAA;AAAA;wBA/BN,OAAOlH,EAAO;AAAA,wBACd,OAAOA,EAAO;AAAA,wBACd,UAAUA,EAAO,YAAaqC,GAAO,SAAA,CAAKQ,EAAW7C,CAAM;AAAA,wBAC3D,SAASA,EAAO;AAAA,wBAChB,YAAUA,EAAO;AAAA,wBACjB,SAASA,EAAO;AAAA,wBAChB,UAAU6C,EAAW7C,CAAM;AAAA,wBAC5B,YAAA;AAAA,wBACC,UAAM,CAAAuF,MAAE/D,GAAaxB,CAAM;AAAA,wBAC3B,aAAS,CAAAuF,MAAEhE,EAAcD,GAAK,EAAA;AAAA,sBAAA;mCAE/B,MAmBO;AAAA,0BAnBPmE,EAmBOC,EAAA,QAAA,WAAA;AAAA,4BAnBA,QAAA1F;AAAA,4BAAiB,OAAAsB;AAAA,4BAAe,UAAUuB,EAAW7C,CAAM;AAAA,0BAAA,GAAlE,MAmBO;AAAA,4BAlBL2F,EAiBWR,EAAAS,CAAA,GAAA;AAAA,8BAhBR,UAAUT,EAAAhK,CAAA,EAAM,MAAM;AAAA,8BACtB,QAAQ,QAAA6E,GAAQ,OAAAsB,GAAiB,UAAAuB,EAAW7C,CAAM,EAAA;AAAA,4BAAA;yCAEnD,MAKO;AAAA,gCALPqF,EAKO,QAAA;AAAA,kCAJJ,OAAKS,EAAEX,EAAElK,CAAA,EAAC,GAAE,OAAA,CAAA;AAAA,kCACZ,OAAKuK,EAAA,EAAA,oBAAA,GAA2BxF,EAAO,QAAK,CAAA,KAAA,CAAA;AAAA,gCAE1C,GAAAoG,EAAApG,EAAO,KAAK,GAAA,CAAA;AAAA,gCAECmF,EAAAhK,CAAA,EAAM,oBAAxBmL,GAMaM,IAAA;AAAA;kCANyB,MAAMzB,EAAElK,CAAA,EAAC,GAAE,MAAA;AAAA,kCAAU,QAAA;AAAA,gCAAA;6CACzD,MAIQ;AAAA,oCAHA4H,EAAW7C,CAAM,KADzByG,EAAA,GAAAH,GAIQnB,EAJRU,CAAA,GAAAc,GAIQ,EAFE,KAAA,EAAA,GAAAxB,EAAAjJ,CAAA,EAAM,OAAK;AAAA,sCAClB,OAAOiJ,EAAElK,CAAA,EAAC,GAAE,OAAA;AAAA,oCAAA;;;;;;;;;;;;oBAOd,SACT,MAMM;AAAA,sBANNoK,EAMM,OAAA;AAAA,wBANA,OAAKS,EAAEX,EAAElK,CAAA,EAAC,GAAE,OAAA,CAAA;AAAA,sBAAA;wBAChBwK,EAIOC,uBAJP,MAIO;AAAA,0BAHLC,EAEWR,EAAAS,CAAA,GAAA;AAAA,4BAFA,UAAUT,EAAAhK,CAAA,EAAM,MAAM;AAAA,0BAAA;uCAC/B,MAAqC;AAAA,8BAAlCgL,EAAAC,EAAAjB,EAAAhK,CAAA,EAAM,aAAagK,EAAApJ,CAAA,EAAO,KAAK,GAAA,CAAA;AAAA,4BAAA;;;;;;;;kBAMhCF,GAAM,UAAUsJ,KAAM,MAAM,SAAxCM,EAEOC,gCAFP,MAEO;AAAA,oBADLC,EAAoDR,EAAAS,CAAA,GAAA;AAAA,sBAAzC,UAAUT,EAAAhK,CAAA,EAAM,MAAM;AAAA,oBAAA;;;;;;;;;;;;;"}