{"version":3,"file":"react-tooltip.mjs","sources":["../src/utils/handle-style.ts","../src/utils/debounce.ts","../src/components/TooltipProvider/TooltipProvider.tsx","../src/components/TooltipProvider/TooltipWrapper.tsx","../src/utils/use-isomorphic-layout-effect.ts","../src/utils/get-scroll-parent.ts","../src/utils/compute-positions.ts","../src/components/Tooltip/Tooltip.tsx","../src/components/TooltipContent/TooltipContent.tsx","../src/components/TooltipController/TooltipController.tsx","../src/index.tsx"],"sourcesContent":["// This is the ID for the core styles of ReactTooltip\nconst REACT_TOOLTIP_CORE_STYLES_ID = 'react-tooltip-core-styles'\n// This is the ID for the visual styles of ReactTooltip\nconst REACT_TOOLTIP_BASE_STYLES_ID = 'react-tooltip-base-styles'\n\nfunction injectStyle({\n  css,\n  id = REACT_TOOLTIP_BASE_STYLES_ID,\n  type = 'base',\n  ref,\n}: {\n  css: string\n  id?: string\n  type?: string\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  ref?: any\n}) {\n  if (\n    type === 'core' &&\n    typeof process !== 'undefined' && // this validation prevents docs from breaking even with `process?`\n    process?.env?.REACT_TOOLTIP_DISABLE_CORE_STYLES\n  ) {\n    return\n  }\n\n  if (\n    type !== 'core' &&\n    typeof process !== 'undefined' && // this validation prevents docs from breaking even with `process?`\n    process?.env?.REACT_TOOLTIP_DISABLE_BASE_STYLES\n  ) {\n    return\n  }\n\n  if (type === 'core') {\n    // eslint-disable-next-line no-param-reassign\n    id = REACT_TOOLTIP_CORE_STYLES_ID\n  }\n\n  if (!ref) {\n    // eslint-disable-next-line no-param-reassign\n    ref = {}\n  }\n  const { insertAt } = ref\n\n  if (!css || typeof document === 'undefined' || document.getElementById(id)) {\n    return\n  }\n\n  const head = document.head || document.getElementsByTagName('head')[0]\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  const style: any = document.createElement('style')\n  style.id = id\n  style.type = 'text/css'\n\n  if (insertAt === 'top') {\n    if (head.firstChild) {\n      head.insertBefore(style, head.firstChild)\n    } else {\n      head.appendChild(style)\n    }\n  } else {\n    head.appendChild(style)\n  }\n\n  if (style.styleSheet) {\n    style.styleSheet.cssText = css\n  } else {\n    style.appendChild(document.createTextNode(css))\n  }\n}\n\nfunction removeStyle({\n  type = 'base',\n  id = REACT_TOOLTIP_BASE_STYLES_ID,\n}: {\n  type?: string\n  id?: string\n} = {}) {\n  if (type === 'core') {\n    // eslint-disable-next-line no-param-reassign\n    id = REACT_TOOLTIP_CORE_STYLES_ID\n  }\n\n  const style = document.getElementById(id)\n  style?.remove()\n}\n\nexport { injectStyle, removeStyle }\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * This function debounce the received function\n * @param { function } \tfunc\t\t\t\tFunction to be debounced\n * @param { number } \t\twait\t\t\t\tTime to wait before execut the function\n * @param { boolean } \timmediate\t\tParam to define if the function will be executed immediately\n */\nconst debounce = (func: (...args: any[]) => void, wait?: number, immediate?: true) => {\n  let timeout: NodeJS.Timeout | null = null\n\n  return function debounced(this: typeof func, ...args: any[]) {\n    const later = () => {\n      timeout = null\n      if (!immediate) {\n        func.apply(this, args)\n      }\n    }\n\n    if (immediate && !timeout) {\n      /**\n       * there's not need to clear the timeout\n       * since we expect it to resolve and set `timeout = null`\n       */\n      func.apply(this, args)\n      timeout = setTimeout(later, wait)\n    }\n\n    if (!immediate) {\n      if (timeout) {\n        clearTimeout(timeout)\n      }\n      timeout = setTimeout(later, wait)\n    }\n  }\n}\n\nexport default debounce\n","import React, {\n  createContext,\n  PropsWithChildren,\n  useCallback,\n  useContext,\n  useMemo,\n  useState,\n} from 'react'\n\nimport type {\n  AnchorRef,\n  TooltipContextData,\n  TooltipContextDataWrapper,\n} from './TooltipProviderTypes'\n\nconst DEFAULT_TOOLTIP_ID = 'DEFAULT_TOOLTIP_ID'\nconst DEFAULT_CONTEXT_DATA: TooltipContextData = {\n  anchorRefs: new Set(),\n  activeAnchor: { current: null },\n  attach: () => {\n    /* attach anchor element */\n  },\n  detach: () => {\n    /* detach anchor element */\n  },\n  setActiveAnchor: () => {\n    /* set active anchor */\n  },\n}\n\nconst DEFAULT_CONTEXT_DATA_WRAPPER: TooltipContextDataWrapper = {\n  getTooltipData: () => DEFAULT_CONTEXT_DATA,\n}\n\nconst TooltipContext = createContext<TooltipContextDataWrapper>(DEFAULT_CONTEXT_DATA_WRAPPER)\n\n/**\n * @deprecated Use the `data-tooltip-id` attribute, or the `anchorSelect` prop instead.\n * See https://react-tooltip.com/docs/getting-started\n */\nconst TooltipProvider: React.FC<PropsWithChildren<void>> = ({ children }) => {\n  const [anchorRefMap, setAnchorRefMap] = useState<Record<string, Set<AnchorRef>>>({\n    [DEFAULT_TOOLTIP_ID]: new Set(),\n  })\n  const [activeAnchorMap, setActiveAnchorMap] = useState<Record<string, AnchorRef>>({\n    [DEFAULT_TOOLTIP_ID]: { current: null },\n  })\n\n  const attach = (tooltipId: string, ...refs: AnchorRef[]) => {\n    setAnchorRefMap((oldMap) => {\n      const tooltipRefs = oldMap[tooltipId] ?? new Set()\n      refs.forEach((ref) => tooltipRefs.add(ref))\n      // create new object to trigger re-render\n      return { ...oldMap, [tooltipId]: new Set(tooltipRefs) }\n    })\n  }\n\n  const detach = (tooltipId: string, ...refs: AnchorRef[]) => {\n    setAnchorRefMap((oldMap) => {\n      const tooltipRefs = oldMap[tooltipId]\n      if (!tooltipRefs) {\n        // tooltip not found\n        // maybe thow error?\n        return oldMap\n      }\n      refs.forEach((ref) => tooltipRefs.delete(ref))\n      // create new object to trigger re-render\n      return { ...oldMap }\n    })\n  }\n\n  const setActiveAnchor = (tooltipId: string, ref: React.RefObject<HTMLElement>) => {\n    setActiveAnchorMap((oldMap) => {\n      if (oldMap[tooltipId]?.current === ref.current) {\n        return oldMap\n      }\n      // create new object to trigger re-render\n      return { ...oldMap, [tooltipId]: ref }\n    })\n  }\n\n  const getTooltipData = useCallback(\n    (tooltipId = DEFAULT_TOOLTIP_ID) => ({\n      anchorRefs: anchorRefMap[tooltipId] ?? new Set(),\n      activeAnchor: activeAnchorMap[tooltipId] ?? { current: null },\n      attach: (...refs: AnchorRef[]) => attach(tooltipId, ...refs),\n      detach: (...refs: AnchorRef[]) => detach(tooltipId, ...refs),\n      setActiveAnchor: (ref: AnchorRef) => setActiveAnchor(tooltipId, ref),\n    }),\n    [anchorRefMap, activeAnchorMap, attach, detach],\n  )\n\n  const context = useMemo(() => {\n    return {\n      getTooltipData,\n    }\n  }, [getTooltipData])\n\n  return <TooltipContext.Provider value={context}>{children}</TooltipContext.Provider>\n}\n\nexport function useTooltip(tooltipId = DEFAULT_TOOLTIP_ID) {\n  return useContext(TooltipContext).getTooltipData(tooltipId)\n}\n\nexport default TooltipProvider\n","import React, { useEffect, useRef } from 'react'\nimport classNames from 'classnames'\nimport { useTooltip } from './TooltipProvider'\nimport type { ITooltipWrapper } from './TooltipProviderTypes'\n\n/**\n * @deprecated Use the `data-tooltip-id` attribute, or the `anchorSelect` prop instead.\n * See https://react-tooltip.com/docs/getting-started\n */\nconst TooltipWrapper = ({\n  tooltipId,\n  children,\n  className,\n  place,\n  content,\n  html,\n  variant,\n  offset,\n  wrapper,\n  events,\n  positionStrategy,\n  delayShow,\n  delayHide,\n}: ITooltipWrapper) => {\n  const { attach, detach } = useTooltip(tooltipId)\n  const anchorRef = useRef<HTMLElement | null>(null)\n\n  useEffect(() => {\n    attach(anchorRef)\n    return () => {\n      detach(anchorRef)\n    }\n  }, [])\n\n  return (\n    <span\n      ref={anchorRef}\n      className={classNames('react-tooltip-wrapper', className)}\n      data-tooltip-place={place}\n      data-tooltip-content={content}\n      data-tooltip-html={html}\n      data-tooltip-variant={variant}\n      data-tooltip-offset={offset}\n      data-tooltip-wrapper={wrapper}\n      data-tooltip-events={events}\n      data-tooltip-position-strategy={positionStrategy}\n      data-tooltip-delay-show={delayShow}\n      data-tooltip-delay-hide={delayHide}\n    >\n      {children}\n    </span>\n  )\n}\n\nexport default TooltipWrapper\n","import { useLayoutEffect, useEffect } from 'react'\n\nconst useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect\n\nexport default useIsomorphicLayoutEffect\n","const isScrollable = (node: Element) => {\n  if (!(node instanceof HTMLElement || node instanceof SVGElement)) {\n    return false\n  }\n  const style = getComputedStyle(node)\n  return ['overflow', 'overflow-x', 'overflow-y'].some((propertyName) => {\n    const value = style.getPropertyValue(propertyName)\n    return value === 'auto' || value === 'scroll'\n  })\n}\n\nexport const getScrollParent = (node: Element | null) => {\n  if (!node) {\n    return null\n  }\n  let currentParent = node.parentElement\n  while (currentParent) {\n    if (isScrollable(currentParent)) {\n      return currentParent\n    }\n    currentParent = currentParent.parentElement\n  }\n  return document.scrollingElement || document.documentElement\n}\n","import { computePosition, offset, shift, arrow, flip } from '@floating-ui/dom'\nimport type { IComputePositions } from './compute-positions-types'\n\nexport const computeTooltipPosition = async ({\n  elementReference = null,\n  tooltipReference = null,\n  tooltipArrowReference = null,\n  place = 'top',\n  offset: offsetValue = 10,\n  strategy = 'absolute',\n  middlewares = [offset(Number(offsetValue)), flip(), shift({ padding: 5 })],\n  border,\n}: IComputePositions) => {\n  if (!elementReference) {\n    // elementReference can be null or undefined and we will not compute the position\n    // eslint-disable-next-line no-console\n    // console.error('The reference element for tooltip was not defined: ', elementReference)\n    return { tooltipStyles: {}, tooltipArrowStyles: {}, place }\n  }\n\n  if (tooltipReference === null) {\n    return { tooltipStyles: {}, tooltipArrowStyles: {}, place }\n  }\n\n  const middleware = middlewares\n\n  if (tooltipArrowReference) {\n    middleware.push(arrow({ element: tooltipArrowReference as HTMLElement, padding: 5 }))\n\n    return computePosition(elementReference as HTMLElement, tooltipReference as HTMLElement, {\n      placement: place,\n      strategy,\n      middleware,\n    }).then(({ x, y, placement, middlewareData }) => {\n      const styles = { left: `${x}px`, top: `${y}px`, border }\n\n      const { x: arrowX, y: arrowY } = middlewareData.arrow ?? { x: 0, y: 0 }\n\n      const staticSide =\n        {\n          top: 'bottom',\n          right: 'left',\n          bottom: 'top',\n          left: 'right',\n        }[placement.split('-')[0]] ?? 'bottom'\n\n      const borderSide =\n        border &&\n        {\n          top: { borderBottom: border, borderRight: border },\n          right: { borderBottom: border, borderLeft: border },\n          bottom: { borderTop: border, borderLeft: border },\n          left: { borderTop: border, borderRight: border },\n        }[placement.split('-')[0]]\n\n      let borderWidth = 0\n      if (border) {\n        const match = `${border}`.match(/(\\d+)px/)\n        if (match?.[1]) {\n          borderWidth = Number(match[1])\n        } else {\n          /**\n           * this means `border` was set without `width`, or non-px value\n           */\n          borderWidth = 1\n        }\n      }\n\n      const arrowStyle = {\n        left: arrowX != null ? `${arrowX}px` : '',\n        top: arrowY != null ? `${arrowY}px` : '',\n        right: '',\n        bottom: '',\n        ...borderSide,\n        [staticSide]: `-${4 + borderWidth}px`,\n      }\n\n      return { tooltipStyles: styles, tooltipArrowStyles: arrowStyle, place: placement }\n    })\n  }\n\n  return computePosition(elementReference as HTMLElement, tooltipReference as HTMLElement, {\n    placement: 'bottom',\n    strategy,\n    middleware,\n  }).then(({ x, y, placement }) => {\n    const styles = { left: `${x}px`, top: `${y}px` }\n\n    return { tooltipStyles: styles, tooltipArrowStyles: {}, place: placement }\n  })\n}\n","import React, { useEffect, useState, useRef } from 'react'\nimport classNames from 'classnames'\nimport debounce from 'utils/debounce'\nimport { useTooltip } from 'components/TooltipProvider'\nimport useIsomorphicLayoutEffect from 'utils/use-isomorphic-layout-effect'\nimport { getScrollParent } from 'utils/get-scroll-parent'\nimport { computeTooltipPosition } from 'utils/compute-positions'\nimport coreStyles from './core-styles.module.css'\nimport styles from './styles.module.css'\nimport type { IPosition, ITooltip, PlacesType } from './TooltipTypes'\n\nconst Tooltip = ({\n  // props\n  id,\n  className,\n  classNameArrow,\n  variant = 'dark',\n  anchorId,\n  anchorSelect,\n  place = 'top',\n  offset = 10,\n  events = ['hover'],\n  openOnClick = false,\n  positionStrategy = 'absolute',\n  middlewares,\n  wrapper: WrapperElement,\n  delayShow = 0,\n  delayHide = 0,\n  float = false,\n  hidden = false,\n  noArrow = false,\n  clickable = false,\n  closeOnEsc = false,\n  closeOnScroll = false,\n  closeOnResize = false,\n  style: externalStyles,\n  position,\n  afterShow,\n  afterHide,\n  // props handled by controller\n  content,\n  contentWrapperRef,\n  isOpen,\n  setIsOpen,\n  activeAnchor,\n  setActiveAnchor,\n  border,\n  opacity,\n}: ITooltip) => {\n  const tooltipRef = useRef<HTMLElement>(null)\n  const tooltipArrowRef = useRef<HTMLElement>(null)\n  const tooltipShowDelayTimerRef = useRef<NodeJS.Timeout | null>(null)\n  const tooltipHideDelayTimerRef = useRef<NodeJS.Timeout | null>(null)\n  const [actualPlacement, setActualPlacement] = useState(place)\n  const [inlineStyles, setInlineStyles] = useState({})\n  const [inlineArrowStyles, setInlineArrowStyles] = useState({})\n  const [show, setShow] = useState(false)\n  const [rendered, setRendered] = useState(false)\n  const wasShowing = useRef(false)\n  const lastFloatPosition = useRef<IPosition | null>(null)\n  /**\n   * @todo Remove this in a future version (provider/wrapper method is deprecated)\n   */\n  const { anchorRefs, setActiveAnchor: setProviderActiveAnchor } = useTooltip(id)\n  const hoveringTooltip = useRef(false)\n  const [anchorsBySelect, setAnchorsBySelect] = useState<HTMLElement[]>([])\n  const mounted = useRef(false)\n\n  const shouldOpenOnClick = openOnClick || events.includes('click')\n\n  /**\n   * useLayoutEffect runs before useEffect,\n   * but should be used carefully because of caveats\n   * https://beta.reactjs.org/reference/react/useLayoutEffect#caveats\n   */\n  useIsomorphicLayoutEffect(() => {\n    mounted.current = true\n    return () => {\n      mounted.current = false\n    }\n  }, [])\n\n  useEffect(() => {\n    if (!show) {\n      /**\n       * this fixes weird behavior when switching between two anchor elements very quickly\n       * remove the timeout and switch quickly between two adjancent anchor elements to see it\n       *\n       * in practice, this means the tooltip is not immediately removed from the DOM on hide\n       */\n      const timeout = setTimeout(() => {\n        setRendered(false)\n      }, 150)\n      return () => {\n        clearTimeout(timeout)\n      }\n    }\n    return () => null\n  }, [show])\n\n  const handleShow = (value: boolean) => {\n    if (!mounted.current) {\n      return\n    }\n    if (value) {\n      setRendered(true)\n    }\n    /**\n     * wait for the component to render and calculate position\n     * before actually showing\n     */\n    setTimeout(() => {\n      if (!mounted.current) {\n        return\n      }\n      setIsOpen?.(value)\n      if (isOpen === undefined) {\n        setShow(value)\n      }\n    }, 10)\n  }\n\n  /**\n   * this replicates the effect from `handleShow()`\n   * when `isOpen` is changed from outside\n   */\n  useEffect(() => {\n    if (isOpen === undefined) {\n      return () => null\n    }\n    if (isOpen) {\n      setRendered(true)\n    }\n    const timeout = setTimeout(() => {\n      setShow(isOpen)\n    }, 10)\n    return () => {\n      clearTimeout(timeout)\n    }\n  }, [isOpen])\n\n  useEffect(() => {\n    if (show === wasShowing.current) {\n      return\n    }\n    wasShowing.current = show\n    if (show) {\n      afterShow?.()\n    } else {\n      afterHide?.()\n    }\n  }, [show])\n\n  const handleShowTooltipDelayed = () => {\n    if (tooltipShowDelayTimerRef.current) {\n      clearTimeout(tooltipShowDelayTimerRef.current)\n    }\n\n    tooltipShowDelayTimerRef.current = setTimeout(() => {\n      handleShow(true)\n    }, delayShow)\n  }\n\n  const handleHideTooltipDelayed = (delay = delayHide) => {\n    if (tooltipHideDelayTimerRef.current) {\n      clearTimeout(tooltipHideDelayTimerRef.current)\n    }\n\n    tooltipHideDelayTimerRef.current = setTimeout(() => {\n      if (hoveringTooltip.current) {\n        return\n      }\n      handleShow(false)\n    }, delay)\n  }\n\n  const handleShowTooltip = (event?: Event) => {\n    if (!event) {\n      return\n    }\n    const target = (event.currentTarget ?? event.target) as HTMLElement | null\n    if (!target?.isConnected) {\n      /**\n       * this happens when the target is removed from the DOM\n       * at the same time the tooltip gets triggered\n       */\n      setActiveAnchor(null)\n      setProviderActiveAnchor({ current: null })\n      return\n    }\n    if (delayShow) {\n      handleShowTooltipDelayed()\n    } else {\n      handleShow(true)\n    }\n    setActiveAnchor(target)\n    setProviderActiveAnchor({ current: target })\n\n    if (tooltipHideDelayTimerRef.current) {\n      clearTimeout(tooltipHideDelayTimerRef.current)\n    }\n  }\n\n  const handleHideTooltip = () => {\n    if (clickable) {\n      // allow time for the mouse to reach the tooltip, in case there's a gap\n      handleHideTooltipDelayed(delayHide || 100)\n    } else if (delayHide) {\n      handleHideTooltipDelayed()\n    } else {\n      handleShow(false)\n    }\n\n    if (tooltipShowDelayTimerRef.current) {\n      clearTimeout(tooltipShowDelayTimerRef.current)\n    }\n  }\n\n  const handleTooltipPosition = ({ x, y }: IPosition) => {\n    const virtualElement = {\n      getBoundingClientRect() {\n        return {\n          x,\n          y,\n          width: 0,\n          height: 0,\n          top: y,\n          left: x,\n          right: x,\n          bottom: y,\n        }\n      },\n    } as Element\n    computeTooltipPosition({\n      place,\n      offset,\n      elementReference: virtualElement,\n      tooltipReference: tooltipRef.current,\n      tooltipArrowReference: tooltipArrowRef.current,\n      strategy: positionStrategy,\n      middlewares,\n      border,\n    }).then((computedStylesData) => {\n      if (Object.keys(computedStylesData.tooltipStyles).length) {\n        setInlineStyles(computedStylesData.tooltipStyles)\n      }\n      if (Object.keys(computedStylesData.tooltipArrowStyles).length) {\n        setInlineArrowStyles(computedStylesData.tooltipArrowStyles)\n      }\n      setActualPlacement(computedStylesData.place as PlacesType)\n    })\n  }\n\n  const handleMouseMove = (event?: Event) => {\n    if (!event) {\n      return\n    }\n    const mouseEvent = event as MouseEvent\n    const mousePosition = {\n      x: mouseEvent.clientX,\n      y: mouseEvent.clientY,\n    }\n    handleTooltipPosition(mousePosition)\n    lastFloatPosition.current = mousePosition\n  }\n\n  const handleClickTooltipAnchor = (event?: Event) => {\n    handleShowTooltip(event)\n    if (delayHide) {\n      handleHideTooltipDelayed()\n    }\n  }\n\n  const handleClickOutsideAnchors = (event: MouseEvent) => {\n    const anchorById = document.querySelector<HTMLElement>(`[id='${anchorId}']`)\n    const anchors = [anchorById, ...anchorsBySelect]\n    if (anchors.some((anchor) => anchor?.contains(event.target as HTMLElement))) {\n      return\n    }\n    if (tooltipRef.current?.contains(event.target as HTMLElement)) {\n      return\n    }\n    handleShow(false)\n    if (tooltipShowDelayTimerRef.current) {\n      clearTimeout(tooltipShowDelayTimerRef.current)\n    }\n  }\n\n  // debounce handler to prevent call twice when\n  // mouse enter and focus events being triggered toggether\n  const debouncedHandleShowTooltip = debounce(handleShowTooltip, 50, true)\n  const debouncedHandleHideTooltip = debounce(handleHideTooltip, 50, true)\n\n  useEffect(() => {\n    const elementRefs = new Set(anchorRefs)\n\n    anchorsBySelect.forEach((anchor) => {\n      elementRefs.add({ current: anchor })\n    })\n\n    const anchorById = document.querySelector<HTMLElement>(`[id='${anchorId}']`)\n    if (anchorById) {\n      elementRefs.add({ current: anchorById })\n    }\n\n    const handleScrollResize = () => {\n      handleShow(false)\n    }\n\n    const anchorScrollParent = getScrollParent(activeAnchor)\n    const tooltipScrollParent = getScrollParent(tooltipRef.current)\n\n    if (closeOnScroll) {\n      window.addEventListener('scroll', handleScrollResize)\n      anchorScrollParent?.addEventListener('scroll', handleScrollResize)\n      tooltipScrollParent?.addEventListener('scroll', handleScrollResize)\n    }\n    if (closeOnResize) {\n      window.addEventListener('resize', handleScrollResize)\n    }\n\n    const handleEsc = (event: KeyboardEvent) => {\n      if (event.key !== 'Escape') {\n        return\n      }\n      handleShow(false)\n    }\n\n    if (closeOnEsc) {\n      window.addEventListener('keydown', handleEsc)\n    }\n\n    const enabledEvents: { event: string; listener: (event?: Event) => void }[] = []\n\n    if (shouldOpenOnClick) {\n      window.addEventListener('click', handleClickOutsideAnchors)\n      enabledEvents.push({ event: 'click', listener: handleClickTooltipAnchor })\n    } else {\n      enabledEvents.push(\n        { event: 'mouseenter', listener: debouncedHandleShowTooltip },\n        { event: 'mouseleave', listener: debouncedHandleHideTooltip },\n        { event: 'focus', listener: debouncedHandleShowTooltip },\n        { event: 'blur', listener: debouncedHandleHideTooltip },\n      )\n      if (float) {\n        enabledEvents.push({\n          event: 'mousemove',\n          listener: handleMouseMove,\n        })\n      }\n    }\n\n    const handleMouseEnterTooltip = () => {\n      hoveringTooltip.current = true\n    }\n    const handleMouseLeaveTooltip = () => {\n      hoveringTooltip.current = false\n      handleHideTooltip()\n    }\n\n    if (clickable && !shouldOpenOnClick) {\n      tooltipRef.current?.addEventListener('mouseenter', handleMouseEnterTooltip)\n      tooltipRef.current?.addEventListener('mouseleave', handleMouseLeaveTooltip)\n    }\n\n    enabledEvents.forEach(({ event, listener }) => {\n      elementRefs.forEach((ref) => {\n        ref.current?.addEventListener(event, listener)\n      })\n    })\n\n    return () => {\n      if (closeOnScroll) {\n        window.removeEventListener('scroll', handleScrollResize)\n        anchorScrollParent?.removeEventListener('scroll', handleScrollResize)\n        tooltipScrollParent?.removeEventListener('scroll', handleScrollResize)\n      }\n      if (closeOnResize) {\n        window.removeEventListener('resize', handleScrollResize)\n      }\n      if (shouldOpenOnClick) {\n        window.removeEventListener('click', handleClickOutsideAnchors)\n      }\n      if (closeOnEsc) {\n        window.removeEventListener('keydown', handleEsc)\n      }\n      if (clickable && !shouldOpenOnClick) {\n        tooltipRef.current?.removeEventListener('mouseenter', handleMouseEnterTooltip)\n        tooltipRef.current?.removeEventListener('mouseleave', handleMouseLeaveTooltip)\n      }\n      enabledEvents.forEach(({ event, listener }) => {\n        elementRefs.forEach((ref) => {\n          ref.current?.removeEventListener(event, listener)\n        })\n      })\n    }\n    /**\n     * rendered is also a dependency to ensure anchor observers are re-registered\n     * since `tooltipRef` becomes stale after removing/adding the tooltip to the DOM\n     */\n  }, [rendered, anchorRefs, anchorsBySelect, closeOnEsc, events])\n\n  useEffect(() => {\n    let selector = anchorSelect ?? ''\n    if (!selector && id) {\n      selector = `[data-tooltip-id='${id}']`\n    }\n    const documentObserverCallback: MutationCallback = (mutationList) => {\n      const newAnchors: HTMLElement[] = []\n      mutationList.forEach((mutation) => {\n        if (mutation.type === 'attributes' && mutation.attributeName === 'data-tooltip-id') {\n          const newId = (mutation.target as HTMLElement).getAttribute('data-tooltip-id')\n          if (newId === id) {\n            newAnchors.push(mutation.target as HTMLElement)\n          }\n        }\n        if (mutation.type !== 'childList') {\n          return\n        }\n        if (activeAnchor) {\n          ;[...mutation.removedNodes].some((node) => {\n            if (node?.contains?.(activeAnchor)) {\n              setRendered(false)\n              handleShow(false)\n              setActiveAnchor(null)\n              if (tooltipShowDelayTimerRef.current) {\n                clearTimeout(tooltipShowDelayTimerRef.current)\n              }\n              if (tooltipHideDelayTimerRef.current) {\n                clearTimeout(tooltipHideDelayTimerRef.current)\n              }\n              return true\n            }\n            return false\n          })\n        }\n        if (!selector) {\n          return\n        }\n        try {\n          const elements = [...mutation.addedNodes].filter((node) => node.nodeType === 1)\n          newAnchors.push(\n            // the element itself is an anchor\n            ...(elements.filter((element) =>\n              (element as HTMLElement).matches(selector),\n            ) as HTMLElement[]),\n          )\n          newAnchors.push(\n            // the element has children which are anchors\n            ...elements.flatMap(\n              (element) =>\n                [...(element as HTMLElement).querySelectorAll(selector)] as HTMLElement[],\n            ),\n          )\n        } catch {\n          /**\n           * invalid CSS selector.\n           * already warned on tooltip controller\n           */\n        }\n      })\n      if (newAnchors.length) {\n        setAnchorsBySelect((anchors) => [...anchors, ...newAnchors])\n      }\n    }\n    const documentObserver = new MutationObserver(documentObserverCallback)\n    // watch for anchor being removed from the DOM\n    documentObserver.observe(document.body, {\n      childList: true,\n      subtree: true,\n      attributes: true,\n      attributeFilter: ['data-tooltip-id'],\n    })\n    return () => {\n      documentObserver.disconnect()\n    }\n  }, [id, anchorSelect, activeAnchor])\n\n  const updateTooltipPosition = () => {\n    if (position) {\n      // if `position` is set, override regular and `float` positioning\n      handleTooltipPosition(position)\n      return\n    }\n\n    if (float) {\n      if (lastFloatPosition.current) {\n        /*\n          Without this, changes to `content`, `place`, `offset`, ..., will only\n          trigger a position calculation after a `mousemove` event.\n\n          To see why this matters, comment this line, run `yarn dev` and click the\n          \"Hover me!\" anchor.\n        */\n        handleTooltipPosition(lastFloatPosition.current)\n      }\n      // if `float` is set, override regular positioning\n      return\n    }\n\n    computeTooltipPosition({\n      place,\n      offset,\n      elementReference: activeAnchor,\n      tooltipReference: tooltipRef.current,\n      tooltipArrowReference: tooltipArrowRef.current,\n      strategy: positionStrategy,\n      middlewares,\n      border,\n    }).then((computedStylesData) => {\n      if (!mounted.current) {\n        // invalidate computed positions after remount\n        return\n      }\n      if (Object.keys(computedStylesData.tooltipStyles).length) {\n        setInlineStyles(computedStylesData.tooltipStyles)\n      }\n      if (Object.keys(computedStylesData.tooltipArrowStyles).length) {\n        setInlineArrowStyles(computedStylesData.tooltipArrowStyles)\n      }\n      setActualPlacement(computedStylesData.place as PlacesType)\n    })\n  }\n\n  useEffect(() => {\n    updateTooltipPosition()\n  }, [show, activeAnchor, content, externalStyles, place, offset, positionStrategy, position])\n\n  useEffect(() => {\n    if (!contentWrapperRef?.current) {\n      return () => null\n    }\n    const contentObserver = new ResizeObserver(() => {\n      updateTooltipPosition()\n    })\n    contentObserver.observe(contentWrapperRef.current)\n    return () => {\n      contentObserver.disconnect()\n    }\n  }, [content, contentWrapperRef?.current])\n\n  useEffect(() => {\n    const anchorById = document.querySelector<HTMLElement>(`[id='${anchorId}']`)\n    const anchors = [...anchorsBySelect, anchorById]\n    if (!activeAnchor || !anchors.includes(activeAnchor)) {\n      /**\n       * if there is no active anchor,\n       * or if the current active anchor is not amongst the allowed ones,\n       * reset it\n       */\n      setActiveAnchor(anchorsBySelect[0] ?? anchorById)\n    }\n  }, [anchorId, anchorsBySelect, activeAnchor])\n\n  useEffect(() => {\n    return () => {\n      if (tooltipShowDelayTimerRef.current) {\n        clearTimeout(tooltipShowDelayTimerRef.current)\n      }\n      if (tooltipHideDelayTimerRef.current) {\n        clearTimeout(tooltipHideDelayTimerRef.current)\n      }\n    }\n  }, [])\n\n  useEffect(() => {\n    let selector = anchorSelect\n    if (!selector && id) {\n      selector = `[data-tooltip-id='${id}']`\n    }\n    if (!selector) {\n      return\n    }\n    try {\n      const anchors = Array.from(document.querySelectorAll<HTMLElement>(selector))\n      setAnchorsBySelect(anchors)\n    } catch {\n      // warning was already issued in the controller\n      setAnchorsBySelect([])\n    }\n  }, [id, anchorSelect])\n\n  const canShow = !hidden && content && show && Object.keys(inlineStyles).length > 0\n\n  return rendered ? (\n    <WrapperElement\n      id={id}\n      role=\"tooltip\"\n      className={classNames(\n        'react-tooltip',\n        coreStyles['tooltip'],\n        styles['tooltip'],\n        styles[variant],\n        className,\n        `react-tooltip__place-${actualPlacement}`,\n        {\n          [coreStyles['show']]: canShow,\n          [coreStyles['fixed']]: positionStrategy === 'fixed',\n          [coreStyles['clickable']]: clickable,\n        },\n      )}\n      style={{\n        ...externalStyles,\n        ...inlineStyles,\n        opacity: opacity !== undefined && canShow ? opacity : undefined,\n      }}\n      ref={tooltipRef}\n    >\n      {content}\n      <WrapperElement\n        className={classNames(\n          'react-tooltip-arrow',\n          coreStyles['arrow'],\n          styles['arrow'],\n          classNameArrow,\n          {\n            /**\n             * changed from dash `no-arrow` to camelcase because of:\n             * https://github.com/indooorsman/esbuild-css-modules-plugin/issues/42\n             */\n            [coreStyles['noArrow']]: noArrow,\n          },\n        )}\n        style={inlineArrowStyles}\n        ref={tooltipArrowRef}\n      />\n    </WrapperElement>\n  ) : null\n}\n\nexport default Tooltip\n","/* eslint-disable react/no-danger */\nimport React from 'react'\nimport type { ITooltipContent } from './TooltipContentTypes'\n\nconst TooltipContent = ({ content }: ITooltipContent) => {\n  return <span dangerouslySetInnerHTML={{ __html: content }} />\n}\n\nexport default TooltipContent\n","import React, { useEffect, useRef, useState } from 'react'\nimport { Tooltip } from 'components/Tooltip'\nimport type {\n  EventsType,\n  PositionStrategy,\n  PlacesType,\n  VariantType,\n  WrapperType,\n  DataAttribute,\n  ITooltip,\n  ChildrenType,\n} from 'components/Tooltip/TooltipTypes'\nimport { useTooltip } from 'components/TooltipProvider'\nimport { TooltipContent } from 'components/TooltipContent'\nimport type { ITooltipController } from './TooltipControllerTypes'\n\nconst TooltipController = ({\n  id,\n  anchorId,\n  anchorSelect,\n  content,\n  html,\n  render,\n  className,\n  classNameArrow,\n  variant = 'dark',\n  place = 'top',\n  offset = 10,\n  wrapper = 'div',\n  children = null,\n  events = ['hover'],\n  openOnClick = false,\n  positionStrategy = 'absolute',\n  middlewares,\n  delayShow = 0,\n  delayHide = 0,\n  float = false,\n  hidden = false,\n  noArrow = false,\n  clickable = false,\n  closeOnEsc = false,\n  closeOnScroll = false,\n  closeOnResize = false,\n  style,\n  position,\n  isOpen,\n  border,\n  opacity,\n  setIsOpen,\n  afterShow,\n  afterHide,\n}: ITooltipController) => {\n  const [tooltipContent, setTooltipContent] = useState(content)\n  const [tooltipHtml, setTooltipHtml] = useState(html)\n  const [tooltipPlace, setTooltipPlace] = useState(place)\n  const [tooltipVariant, setTooltipVariant] = useState(variant)\n  const [tooltipOffset, setTooltipOffset] = useState(offset)\n  const [tooltipDelayShow, setTooltipDelayShow] = useState(delayShow)\n  const [tooltipDelayHide, setTooltipDelayHide] = useState(delayHide)\n  const [tooltipFloat, setTooltipFloat] = useState(float)\n  const [tooltipHidden, setTooltipHidden] = useState(hidden)\n  const [tooltipWrapper, setTooltipWrapper] = useState<WrapperType>(wrapper)\n  const [tooltipEvents, setTooltipEvents] = useState(events)\n  const [tooltipPositionStrategy, setTooltipPositionStrategy] = useState(positionStrategy)\n  const [activeAnchor, setActiveAnchor] = useState<HTMLElement | null>(null)\n  /**\n   * @todo Remove this in a future version (provider/wrapper method is deprecated)\n   */\n  const { anchorRefs, activeAnchor: providerActiveAnchor } = useTooltip(id)\n\n  const getDataAttributesFromAnchorElement = (elementReference: HTMLElement) => {\n    const dataAttributes = elementReference?.getAttributeNames().reduce((acc, name) => {\n      if (name.startsWith('data-tooltip-')) {\n        const parsedAttribute = name.replace(/^data-tooltip-/, '') as DataAttribute\n        acc[parsedAttribute] = elementReference?.getAttribute(name) ?? null\n      }\n      return acc\n    }, {} as Record<DataAttribute, string | null>)\n\n    return dataAttributes\n  }\n\n  const applyAllDataAttributesFromAnchorElement = (\n    dataAttributes: Record<string, string | null>,\n  ) => {\n    const handleDataAttributes: Record<DataAttribute, (value: string | null) => void> = {\n      place: (value) => {\n        setTooltipPlace((value as PlacesType) ?? place)\n      },\n      content: (value) => {\n        setTooltipContent(value ?? content)\n      },\n      html: (value) => {\n        setTooltipHtml(value ?? html)\n      },\n      variant: (value) => {\n        setTooltipVariant((value as VariantType) ?? variant)\n      },\n      offset: (value) => {\n        setTooltipOffset(value === null ? offset : Number(value))\n      },\n      wrapper: (value) => {\n        setTooltipWrapper((value as WrapperType) ?? wrapper)\n      },\n      events: (value) => {\n        const parsed = value?.split(' ') as EventsType[]\n        setTooltipEvents(parsed ?? events)\n      },\n      'position-strategy': (value) => {\n        setTooltipPositionStrategy((value as PositionStrategy) ?? positionStrategy)\n      },\n      'delay-show': (value) => {\n        setTooltipDelayShow(value === null ? delayShow : Number(value))\n      },\n      'delay-hide': (value) => {\n        setTooltipDelayHide(value === null ? delayHide : Number(value))\n      },\n      float: (value) => {\n        setTooltipFloat(value === null ? float : value === 'true')\n      },\n      hidden: (value) => {\n        setTooltipHidden(value === null ? hidden : value === 'true')\n      },\n    }\n    // reset unset data attributes to default values\n    // without this, data attributes from the last active anchor will still be used\n    Object.values(handleDataAttributes).forEach((handler) => handler(null))\n    Object.entries(dataAttributes).forEach(([key, value]) => {\n      handleDataAttributes[key as DataAttribute]?.(value)\n    })\n  }\n\n  useEffect(() => {\n    setTooltipContent(content)\n  }, [content])\n\n  useEffect(() => {\n    setTooltipHtml(html)\n  }, [html])\n\n  useEffect(() => {\n    setTooltipPlace(place)\n  }, [place])\n\n  useEffect(() => {\n    setTooltipVariant(variant)\n  }, [variant])\n\n  useEffect(() => {\n    setTooltipOffset(offset)\n  }, [offset])\n\n  useEffect(() => {\n    setTooltipDelayShow(delayShow)\n  }, [delayShow])\n\n  useEffect(() => {\n    setTooltipDelayHide(delayHide)\n  }, [delayHide])\n\n  useEffect(() => {\n    setTooltipFloat(float)\n  }, [float])\n\n  useEffect(() => {\n    setTooltipHidden(hidden)\n  }, [hidden])\n\n  useEffect(() => {\n    setTooltipPositionStrategy(positionStrategy)\n  }, [positionStrategy])\n\n  useEffect(() => {\n    const elementRefs = new Set(anchorRefs)\n\n    let selector = anchorSelect\n    if (!selector && id) {\n      selector = `[data-tooltip-id='${id}']`\n    }\n    if (selector) {\n      try {\n        const anchorsBySelect = document.querySelectorAll<HTMLElement>(selector)\n        anchorsBySelect.forEach((anchor) => {\n          elementRefs.add({ current: anchor })\n        })\n      } catch {\n        if (!process.env.NODE_ENV || process.env.NODE_ENV !== 'production') {\n          // eslint-disable-next-line no-console\n          console.warn(`[react-tooltip] \"${selector}\" is not a valid CSS selector`)\n        }\n      }\n    }\n\n    const anchorById = document.querySelector<HTMLElement>(`[id='${anchorId}']`)\n    if (anchorById) {\n      elementRefs.add({ current: anchorById })\n    }\n\n    if (!elementRefs.size) {\n      return () => null\n    }\n\n    const anchorElement = activeAnchor ?? anchorById ?? providerActiveAnchor.current\n\n    const observerCallback: MutationCallback = (mutationList) => {\n      mutationList.forEach((mutation) => {\n        if (\n          !anchorElement ||\n          mutation.type !== 'attributes' ||\n          !mutation.attributeName?.startsWith('data-tooltip-')\n        ) {\n          return\n        }\n        // make sure to get all set attributes, since all unset attributes are reset\n        const dataAttributes = getDataAttributesFromAnchorElement(anchorElement)\n        applyAllDataAttributesFromAnchorElement(dataAttributes)\n      })\n    }\n\n    // Create an observer instance linked to the callback function\n    const observer = new MutationObserver(observerCallback)\n\n    // do not check for subtree and childrens, we only want to know attribute changes\n    // to stay watching `data-attributes-*` from anchor element\n    const observerConfig = { attributes: true, childList: false, subtree: false }\n\n    if (anchorElement) {\n      const dataAttributes = getDataAttributesFromAnchorElement(anchorElement)\n      applyAllDataAttributesFromAnchorElement(dataAttributes)\n      // Start observing the target node for configured mutations\n      observer.observe(anchorElement, observerConfig)\n    }\n\n    return () => {\n      // Remove the observer when the tooltip is destroyed\n      observer.disconnect()\n    }\n  }, [anchorRefs, providerActiveAnchor, activeAnchor, anchorId, anchorSelect])\n\n  useEffect(() => {\n    if (process.env.NODE_ENV === 'production') {\n      return\n    }\n    if (style?.border) {\n      // eslint-disable-next-line no-console\n      console.warn('[react-tooltip] Do not set `style.border`. Use `border` prop instead.')\n    }\n    if (border && !CSS.supports('border', `${border}`)) {\n      // eslint-disable-next-line no-console\n      console.warn(`[react-tooltip] \"${border}\" is not a valid \\`border\\`.`)\n    }\n    if (style?.opacity) {\n      // eslint-disable-next-line no-console\n      console.warn('[react-tooltip] Do not set `style.opacity`. Use `opacity` prop instead.')\n    }\n    if (opacity && !CSS.supports('opacity', `${opacity}`)) {\n      // eslint-disable-next-line no-console\n      console.warn(`[react-tooltip] \"${opacity}\" is not a valid \\`opacity\\`.`)\n    }\n  }, [])\n\n  /**\n   * content priority: children < render or content < html\n   * children should be lower priority so that it can be used as the \"default\" content\n   */\n  let renderedContent: ChildrenType = children\n  const contentWrapperRef = useRef<HTMLDivElement>(null)\n  if (render) {\n    const rendered = render({ content: tooltipContent ?? null, activeAnchor }) as React.ReactNode\n    renderedContent = rendered ? (\n      <div ref={contentWrapperRef} className=\"react-tooltip-content-wrapper\">\n        {rendered}\n      </div>\n    ) : null\n  } else if (tooltipContent) {\n    renderedContent = tooltipContent\n  }\n  if (tooltipHtml) {\n    renderedContent = <TooltipContent content={tooltipHtml} />\n  }\n\n  const props: ITooltip = {\n    id,\n    anchorId,\n    anchorSelect,\n    className,\n    classNameArrow,\n    content: renderedContent,\n    contentWrapperRef,\n    place: tooltipPlace,\n    variant: tooltipVariant,\n    offset: tooltipOffset,\n    wrapper: tooltipWrapper,\n    events: tooltipEvents,\n    openOnClick,\n    positionStrategy: tooltipPositionStrategy,\n    middlewares,\n    delayShow: tooltipDelayShow,\n    delayHide: tooltipDelayHide,\n    float: tooltipFloat,\n    hidden: tooltipHidden,\n    noArrow,\n    clickable,\n    closeOnEsc,\n    closeOnScroll,\n    closeOnResize,\n    style,\n    position,\n    isOpen,\n    border,\n    opacity,\n    setIsOpen,\n    afterShow,\n    afterHide,\n    activeAnchor,\n    setActiveAnchor: (anchor: HTMLElement | null) => setActiveAnchor(anchor),\n  }\n\n  return <Tooltip {...props} />\n}\n\nexport default TooltipController\n","import './tokens.css'\n\nimport { injectStyle } from 'utils/handle-style'\n\nimport type {\n  ChildrenType,\n  DataAttribute,\n  EventsType,\n  PlacesType,\n  PositionStrategy,\n  VariantType,\n  WrapperType,\n  IPosition,\n  Middleware,\n} from './components/Tooltip/TooltipTypes'\nimport type { ITooltipController } from './components/TooltipController/TooltipControllerTypes'\nimport type { ITooltipWrapper } from './components/TooltipProvider/TooltipProviderTypes'\n\n// those content will be replaced in build time with the `react-tooltip.css` builded content\nconst TooltipCoreStyles = 'react-tooltip-core-css-placeholder'\nconst TooltipStyles = 'react-tooltip-css-placeholder'\n\ninjectStyle({ css: TooltipCoreStyles, type: 'core' })\ninjectStyle({ css: TooltipStyles })\n\nexport { TooltipController as Tooltip } from './components/TooltipController'\nexport { TooltipProvider, TooltipWrapper } from './components/TooltipProvider'\nexport type {\n  ChildrenType,\n  DataAttribute,\n  EventsType,\n  PlacesType,\n  PositionStrategy,\n  VariantType,\n  WrapperType,\n  ITooltipController as ITooltip,\n  ITooltipWrapper,\n  IPosition,\n  Middleware,\n}\n\nexport { removeStyle } from './utils/handle-style'\n"],"names":[],"mappings":";;;;;;;;;;;AAAA;AACA,MAAM,4BAA4B,GAAG,2BAA2B,CAAA;AAChE;AACA,MAAM,4BAA4B,GAAG,2BAA2B,CAAA;AAEhE,SAAS,WAAW,CAAC,EACnB,GAAG,EACH,EAAE,GAAG,4BAA4B,EACjC,IAAI,GAAG,MAAM,EACb,GAAG,GAOJ,EAAA;;IACC,IACE,IAAI,KAAK,MAAM;AACf,QAAA,OAAO,OAAO,KAAK,WAAW;SAC9B,CAAA,EAAA,GAAA,OAAO,KAAP,IAAA,IAAA,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,GAAG,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,iCAAiC,CAAA,EAC/C;QACA,OAAM;AACP,KAAA;IAED,IACE,IAAI,KAAK,MAAM;AACf,QAAA,OAAO,OAAO,KAAK,WAAW;SAC9B,CAAA,EAAA,GAAA,OAAO,KAAP,IAAA,IAAA,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,GAAG,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,iCAAiC,CAAA,EAC/C;QACA,OAAM;AACP,KAAA;IAED,IAAI,IAAI,KAAK,MAAM,EAAE;;QAEnB,EAAE,GAAG,4BAA4B,CAAA;AAClC,KAAA;IAED,IAAI,CAAC,GAAG,EAAE;;QAER,GAAG,GAAG,EAAE,CAAA;AACT,KAAA;AACD,IAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAA;AAExB,IAAA,IAAI,CAAC,GAAG,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE;QAC1E,OAAM;AACP,KAAA;AAED,IAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;;IAEtE,MAAM,KAAK,GAAQ,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;AAClD,IAAA,KAAK,CAAC,EAAE,GAAG,EAAE,CAAA;AACb,IAAA,KAAK,CAAC,IAAI,GAAG,UAAU,CAAA;IAEvB,IAAI,QAAQ,KAAK,KAAK,EAAE;QACtB,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;AAC1C,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;AACxB,SAAA;AACF,KAAA;AAAM,SAAA;AACL,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;AACxB,KAAA;IAED,IAAI,KAAK,CAAC,UAAU,EAAE;AACpB,QAAA,KAAK,CAAC,UAAU,CAAC,OAAO,GAAG,GAAG,CAAA;AAC/B,KAAA;AAAM,SAAA;QACL,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAA;AAChD,KAAA;AACH,CAAC;AAED,SAAS,WAAW,CAAC,EACnB,IAAI,GAAG,MAAM,EACb,EAAE,GAAG,4BAA4B,GAAA,GAI/B,EAAE,EAAA;IACJ,IAAI,IAAI,KAAK,MAAM,EAAE;;QAEnB,EAAE,GAAG,4BAA4B,CAAA;AAClC,KAAA;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA;AACzC,IAAA,KAAK,aAAL,KAAK,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAL,KAAK,CAAE,MAAM,EAAE,CAAA;AACjB;;ACrFA;AACA;;;;;AAKG;AACH,MAAM,QAAQ,GAAG,CAAC,IAA8B,EAAE,IAAa,EAAE,SAAgB,KAAI;IACnF,IAAI,OAAO,GAA0B,IAAI,CAAA;AAEzC,IAAA,OAAO,SAAS,SAAS,CAAoB,GAAG,IAAW,EAAA;QACzD,MAAM,KAAK,GAAG,MAAK;YACjB,OAAO,GAAG,IAAI,CAAA;YACd,IAAI,CAAC,SAAS,EAAE;AACd,gBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;AACvB,aAAA;AACH,SAAC,CAAA;AAED,QAAA,IAAI,SAAS,IAAI,CAAC,OAAO,EAAE;AACzB;;;AAGG;AACH,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;AACtB,YAAA,OAAO,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AAClC,SAAA;QAED,IAAI,CAAC,SAAS,EAAE;AACd,YAAA,IAAI,OAAO,EAAE;gBACX,YAAY,CAAC,OAAO,CAAC,CAAA;AACtB,aAAA;AACD,YAAA,OAAO,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AAClC,SAAA;AACH,KAAC,CAAA;AACH,CAAC;;ACnBD,MAAM,kBAAkB,GAAG,oBAAoB,CAAA;AAC/C,MAAM,oBAAoB,GAAuB;IAC/C,UAAU,EAAE,IAAI,GAAG,EAAE;AACrB,IAAA,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;IAC/B,MAAM,EAAE,MAAK;;KAEZ;IACD,MAAM,EAAE,MAAK;;KAEZ;IACD,eAAe,EAAE,MAAK;;KAErB;CACF,CAAA;AAED,MAAM,4BAA4B,GAA8B;AAC9D,IAAA,cAAc,EAAE,MAAM,oBAAoB;CAC3C,CAAA;AAED,MAAM,cAAc,GAAG,aAAa,CAA4B,4BAA4B,CAAC,CAAA;AAE7F;;;AAGG;AACH,MAAM,eAAe,GAAsC,CAAC,EAAE,QAAQ,EAAE,KAAI;AAC1E,IAAA,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAiC;AAC/E,QAAA,CAAC,kBAAkB,GAAG,IAAI,GAAG,EAAE;AAChC,KAAA,CAAC,CAAA;AACF,IAAA,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAA4B;AAChF,QAAA,CAAC,kBAAkB,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE;AACxC,KAAA,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,CAAC,SAAiB,EAAE,GAAG,IAAiB,KAAI;AACzD,QAAA,eAAe,CAAC,CAAC,MAAM,KAAI;;YACzB,MAAM,WAAW,GAAG,CAAA,EAAA,GAAA,MAAM,CAAC,SAAS,CAAC,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,IAAI,GAAG,EAAE,CAAA;AAClD,YAAA,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;;AAE3C,YAAA,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC,SAAS,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,EAAE,CAAA;AACzD,SAAC,CAAC,CAAA;AACJ,KAAC,CAAA;IAED,MAAM,MAAM,GAAG,CAAC,SAAiB,EAAE,GAAG,IAAiB,KAAI;AACzD,QAAA,eAAe,CAAC,CAAC,MAAM,KAAI;AACzB,YAAA,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;YACrC,IAAI,CAAC,WAAW,EAAE;;;AAGhB,gBAAA,OAAO,MAAM,CAAA;AACd,aAAA;AACD,YAAA,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;;AAE9C,YAAA,OAAO,EAAE,GAAG,MAAM,EAAE,CAAA;AACtB,SAAC,CAAC,CAAA;AACJ,KAAC,CAAA;AAED,IAAA,MAAM,eAAe,GAAG,CAAC,SAAiB,EAAE,GAAiC,KAAI;AAC/E,QAAA,kBAAkB,CAAC,CAAC,MAAM,KAAI;;AAC5B,YAAA,IAAI,CAAA,CAAA,EAAA,GAAA,MAAM,CAAC,SAAS,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,MAAK,GAAG,CAAC,OAAO,EAAE;AAC9C,gBAAA,OAAO,MAAM,CAAA;AACd,aAAA;;YAED,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC,SAAS,GAAG,GAAG,EAAE,CAAA;AACxC,SAAC,CAAC,CAAA;AACJ,KAAC,CAAA;IAED,MAAM,cAAc,GAAG,WAAW,CAChC,CAAC,SAAS,GAAG,kBAAkB,KAAI;;AAAC,QAAA,QAAC;YACnC,UAAU,EAAE,MAAA,YAAY,CAAC,SAAS,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,IAAI,GAAG,EAAE;YAChD,YAAY,EAAE,CAAA,EAAA,GAAA,eAAe,CAAC,SAAS,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,OAAO,EAAE,IAAI,EAAE;AAC7D,YAAA,MAAM,EAAE,CAAC,GAAG,IAAiB,KAAK,MAAM,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC;AAC5D,YAAA,MAAM,EAAE,CAAC,GAAG,IAAiB,KAAK,MAAM,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC;YAC5D,eAAe,EAAE,CAAC,GAAc,KAAK,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC;AACrE,SAAA,EAAC;KAAA,EACF,CAAC,YAAY,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC,CAChD,CAAA;AAED,IAAA,MAAM,OAAO,GAAG,OAAO,CAAC,MAAK;QAC3B,OAAO;YACL,cAAc;SACf,CAAA;AACH,KAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAA;IAEpB,OAAO,KAAA,CAAA,aAAA,CAAC,cAAc,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,OAAO,EAAA,EAAG,QAAQ,CAA2B,CAAA;AACtF,EAAC;AAEe,SAAA,UAAU,CAAC,SAAS,GAAG,kBAAkB,EAAA;IACvD,OAAO,UAAU,CAAC,cAAc,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAA;AAC7D;;AClGA;;;AAGG;AACH,MAAM,cAAc,GAAG,CAAC,EACtB,SAAS,EACT,QAAQ,EACR,SAAS,EACT,KAAK,EACL,OAAO,EACP,IAAI,EACJ,OAAO,EACP,MAAM,EACN,OAAO,EACP,MAAM,EACN,gBAAgB,EAChB,SAAS,EACT,SAAS,GACO,KAAI;IACpB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,SAAS,CAAC,CAAA;AAChD,IAAA,MAAM,SAAS,GAAG,MAAM,CAAqB,IAAI,CAAC,CAAA;IAElD,SAAS,CAAC,MAAK;QACb,MAAM,CAAC,SAAS,CAAC,CAAA;AACjB,QAAA,OAAO,MAAK;YACV,MAAM,CAAC,SAAS,CAAC,CAAA;AACnB,SAAC,CAAA;KACF,EAAE,EAAE,CAAC,CAAA;AAEN,IAAA,QACE,KACE,CAAA,aAAA,CAAA,MAAA,EAAA,EAAA,GAAG,EAAE,SAAS,EACd,SAAS,EAAE,UAAU,CAAC,uBAAuB,EAAE,SAAS,CAAC,EACrC,oBAAA,EAAA,KAAK,0BACH,OAAO,EAAA,mBAAA,EACV,IAAI,EAAA,sBAAA,EACD,OAAO,EACR,qBAAA,EAAA,MAAM,EACL,sBAAA,EAAA,OAAO,yBACR,MAAM,EAAA,gCAAA,EACK,gBAAgB,EAAA,yBAAA,EACvB,SAAS,EACT,yBAAA,EAAA,SAAS,IAEjC,QAAQ,CACJ,EACR;AACH;;AClDA,MAAM,yBAAyB,GAAG,OAAO,MAAM,KAAK,WAAW,GAAG,eAAe,GAAG,SAAS;;ACF7F,MAAM,YAAY,GAAG,CAAC,IAAa,KAAI;IACrC,IAAI,EAAE,IAAI,YAAY,WAAW,IAAI,IAAI,YAAY,UAAU,CAAC,EAAE;AAChE,QAAA,OAAO,KAAK,CAAA;AACb,KAAA;AACD,IAAA,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;AACpC,IAAA,OAAO,CAAC,UAAU,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,KAAI;QACpE,MAAM,KAAK,GAAG,KAAK,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAA;AAClD,QAAA,OAAO,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,QAAQ,CAAA;AAC/C,KAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAEM,MAAM,eAAe,GAAG,CAAC,IAAoB,KAAI;IACtD,IAAI,CAAC,IAAI,EAAE;AACT,QAAA,OAAO,IAAI,CAAA;AACZ,KAAA;AACD,IAAA,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,CAAA;AACtC,IAAA,OAAO,aAAa,EAAE;AACpB,QAAA,IAAI,YAAY,CAAC,aAAa,CAAC,EAAE;AAC/B,YAAA,OAAO,aAAa,CAAA;AACrB,SAAA;AACD,QAAA,aAAa,GAAG,aAAa,CAAC,aAAa,CAAA;AAC5C,KAAA;AACD,IAAA,OAAO,QAAQ,CAAC,gBAAgB,IAAI,QAAQ,CAAC,eAAe,CAAA;AAC9D,CAAC;;ACpBM,MAAM,sBAAsB,GAAG,OAAO,EAC3C,gBAAgB,GAAG,IAAI,EACvB,gBAAgB,GAAG,IAAI,EACvB,qBAAqB,GAAG,IAAI,EAC5B,KAAK,GAAG,KAAK,EACb,MAAM,EAAE,WAAW,GAAG,EAAE,EACxB,QAAQ,GAAG,UAAU,EACrB,WAAW,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,EAC1E,MAAM,GACY,KAAI;IACtB,IAAI,CAAC,gBAAgB,EAAE;;;;QAIrB,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE,KAAK,EAAE,CAAA;AAC5D,KAAA;IAED,IAAI,gBAAgB,KAAK,IAAI,EAAE;QAC7B,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE,KAAK,EAAE,CAAA;AAC5D,KAAA;IAED,MAAM,UAAU,GAAG,WAAW,CAAA;AAE9B,IAAA,IAAI,qBAAqB,EAAE;AACzB,QAAA,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,qBAAoC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;AAErF,QAAA,OAAO,eAAe,CAAC,gBAA+B,EAAE,gBAA+B,EAAE;AACvF,YAAA,SAAS,EAAE,KAAK;YAChB,QAAQ;YACR,UAAU;AACX,SAAA,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,KAAI;;AAC9C,YAAA,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA,EAAA,CAAI,EAAE,GAAG,EAAE,CAAG,EAAA,CAAC,IAAI,EAAE,MAAM,EAAE,CAAA;YAExD,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,CAAA,EAAA,GAAA,cAAc,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;YAEvE,MAAM,UAAU,GACd,CAAA,EAAA,GAAA;AACE,gBAAA,GAAG,EAAE,QAAQ;AACb,gBAAA,KAAK,EAAE,MAAM;AACb,gBAAA,MAAM,EAAE,KAAK;AACb,gBAAA,IAAI,EAAE,OAAO;AACd,aAAA,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,QAAQ,CAAA;YAExC,MAAM,UAAU,GACd,MAAM;AACN,gBAAA;oBACE,GAAG,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE;oBAClD,KAAK,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE;oBACnD,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE;oBACjD,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE;iBACjD,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAE5B,IAAI,WAAW,GAAG,CAAC,CAAA;AACnB,YAAA,IAAI,MAAM,EAAE;gBACV,MAAM,KAAK,GAAG,CAAA,EAAG,MAAM,CAAA,CAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;gBAC1C,IAAI,KAAK,aAAL,KAAK,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAL,KAAK,CAAG,CAAC,CAAC,EAAE;oBACd,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AAC/B,iBAAA;AAAM,qBAAA;AACL;;AAEG;oBACH,WAAW,GAAG,CAAC,CAAA;AAChB,iBAAA;AACF,aAAA;AAED,YAAA,MAAM,UAAU,GAAG;AACjB,gBAAA,IAAI,EAAE,MAAM,IAAI,IAAI,GAAG,CAAA,EAAG,MAAM,CAAA,EAAA,CAAI,GAAG,EAAE;AACzC,gBAAA,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,CAAA,EAAG,MAAM,CAAA,EAAA,CAAI,GAAG,EAAE;AACxC,gBAAA,KAAK,EAAE,EAAE;AACT,gBAAA,MAAM,EAAE,EAAE;AACV,gBAAA,GAAG,UAAU;AACb,gBAAA,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,WAAW,CAAI,EAAA,CAAA;aACtC,CAAA;AAED,YAAA,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,kBAAkB,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;AACpF,SAAC,CAAC,CAAA;AACH,KAAA;AAED,IAAA,OAAO,eAAe,CAAC,gBAA+B,EAAE,gBAA+B,EAAE;AACvF,QAAA,SAAS,EAAE,QAAQ;QACnB,QAAQ;QACR,UAAU;AACX,KAAA,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,KAAI;AAC9B,QAAA,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,CAAG,EAAA,CAAC,CAAI,EAAA,CAAA,EAAE,GAAG,EAAE,CAAA,EAAG,CAAC,CAAA,EAAA,CAAI,EAAE,CAAA;AAEhD,QAAA,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;AAC5E,KAAC,CAAC,CAAA;AACJ,CAAC;;;;;;AC/ED,MAAM,OAAO,GAAG,CAAC;AACf;AACA,EAAE,EACF,SAAS,EACT,cAAc,EACd,OAAO,GAAG,MAAM,EAChB,QAAQ,EACR,YAAY,EACZ,KAAK,GAAG,KAAK,EACb,MAAM,GAAG,EAAE,EACX,MAAM,GAAG,CAAC,OAAO,CAAC,EAClB,WAAW,GAAG,KAAK,EACnB,gBAAgB,GAAG,UAAU,EAC7B,WAAW,EACX,OAAO,EAAE,cAAc,EACvB,SAAS,GAAG,CAAC,EACb,SAAS,GAAG,CAAC,EACb,KAAK,GAAG,KAAK,EACb,MAAM,GAAG,KAAK,EACd,OAAO,GAAG,KAAK,EACf,SAAS,GAAG,KAAK,EACjB,UAAU,GAAG,KAAK,EAClB,aAAa,GAAG,KAAK,EACrB,aAAa,GAAG,KAAK,EACrB,KAAK,EAAE,cAAc,EACrB,QAAQ,EACR,SAAS,EACT,SAAS;AACT;AACA,OAAO,EACP,iBAAiB,EACjB,MAAM,EACN,SAAS,EACT,YAAY,EACZ,eAAe,EACf,MAAM,EACN,OAAO,GACE,KAAI;AACb,IAAA,MAAM,UAAU,GAAG,MAAM,CAAc,IAAI,CAAC,CAAA;AAC5C,IAAA,MAAM,eAAe,GAAG,MAAM,CAAc,IAAI,CAAC,CAAA;AACjD,IAAA,MAAM,wBAAwB,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAA;AACpE,IAAA,MAAM,wBAAwB,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAA;IACpE,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC7D,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IACpD,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IAC9D,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACvC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;AAC/C,IAAA,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;AAChC,IAAA,MAAM,iBAAiB,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAA;AACxD;;AAEG;AACH,IAAA,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,uBAAuB,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC,CAAA;AAC/E,IAAA,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IACrC,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAgB,EAAE,CAAC,CAAA;AACzE,IAAA,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IAE7B,MAAM,iBAAiB,GAAG,WAAW,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;AAEjE;;;;AAIG;IACH,yBAAyB,CAAC,MAAK;AAC7B,QAAA,OAAO,CAAC,OAAO,GAAG,IAAI,CAAA;AACtB,QAAA,OAAO,MAAK;AACV,YAAA,OAAO,CAAC,OAAO,GAAG,KAAK,CAAA;AACzB,SAAC,CAAA;KACF,EAAE,EAAE,CAAC,CAAA;IAEN,SAAS,CAAC,MAAK;QACb,IAAI,CAAC,IAAI,EAAE;AACT;;;;;AAKG;AACH,YAAA,MAAM,OAAO,GAAG,UAAU,CAAC,MAAK;gBAC9B,WAAW,CAAC,KAAK,CAAC,CAAA;aACnB,EAAE,GAAG,CAAC,CAAA;AACP,YAAA,OAAO,MAAK;gBACV,YAAY,CAAC,OAAO,CAAC,CAAA;AACvB,aAAC,CAAA;AACF,SAAA;AACD,QAAA,OAAO,MAAM,IAAI,CAAA;AACnB,KAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;AAEV,IAAA,MAAM,UAAU,GAAG,CAAC,KAAc,KAAI;AACpC,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YACpB,OAAM;AACP,SAAA;AACD,QAAA,IAAI,KAAK,EAAE;YACT,WAAW,CAAC,IAAI,CAAC,CAAA;AAClB,SAAA;AACD;;;AAGG;QACH,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;gBACpB,OAAM;AACP,aAAA;AACD,YAAA,SAAS,aAAT,SAAS,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAT,SAAS,CAAG,KAAK,CAAC,CAAA;YAClB,IAAI,MAAM,KAAK,SAAS,EAAE;gBACxB,OAAO,CAAC,KAAK,CAAC,CAAA;AACf,aAAA;SACF,EAAE,EAAE,CAAC,CAAA;AACR,KAAC,CAAA;AAED;;;AAGG;IACH,SAAS,CAAC,MAAK;QACb,IAAI,MAAM,KAAK,SAAS,EAAE;AACxB,YAAA,OAAO,MAAM,IAAI,CAAA;AAClB,SAAA;AACD,QAAA,IAAI,MAAM,EAAE;YACV,WAAW,CAAC,IAAI,CAAC,CAAA;AAClB,SAAA;AACD,QAAA,MAAM,OAAO,GAAG,UAAU,CAAC,MAAK;YAC9B,OAAO,CAAC,MAAM,CAAC,CAAA;SAChB,EAAE,EAAE,CAAC,CAAA;AACN,QAAA,OAAO,MAAK;YACV,YAAY,CAAC,OAAO,CAAC,CAAA;AACvB,SAAC,CAAA;AACH,KAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;IAEZ,SAAS,CAAC,MAAK;AACb,QAAA,IAAI,IAAI,KAAK,UAAU,CAAC,OAAO,EAAE;YAC/B,OAAM;AACP,SAAA;AACD,QAAA,UAAU,CAAC,OAAO,GAAG,IAAI,CAAA;AACzB,QAAA,IAAI,IAAI,EAAE;AACR,YAAA,SAAS,KAAT,IAAA,IAAA,SAAS,KAAT,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,SAAS,EAAI,CAAA;AACd,SAAA;AAAM,aAAA;AACL,YAAA,SAAS,KAAT,IAAA,IAAA,SAAS,KAAT,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,SAAS,EAAI,CAAA;AACd,SAAA;AACH,KAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IAEV,MAAM,wBAAwB,GAAG,MAAK;QACpC,IAAI,wBAAwB,CAAC,OAAO,EAAE;AACpC,YAAA,YAAY,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAA;AAC/C,SAAA;AAED,QAAA,wBAAwB,CAAC,OAAO,GAAG,UAAU,CAAC,MAAK;YACjD,UAAU,CAAC,IAAI,CAAC,CAAA;SACjB,EAAE,SAAS,CAAC,CAAA;AACf,KAAC,CAAA;AAED,IAAA,MAAM,wBAAwB,GAAG,CAAC,KAAK,GAAG,SAAS,KAAI;QACrD,IAAI,wBAAwB,CAAC,OAAO,EAAE;AACpC,YAAA,YAAY,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAA;AAC/C,SAAA;AAED,QAAA,wBAAwB,CAAC,OAAO,GAAG,UAAU,CAAC,MAAK;YACjD,IAAI,eAAe,CAAC,OAAO,EAAE;gBAC3B,OAAM;AACP,aAAA;YACD,UAAU,CAAC,KAAK,CAAC,CAAA;SAClB,EAAE,KAAK,CAAC,CAAA;AACX,KAAC,CAAA;AAED,IAAA,MAAM,iBAAiB,GAAG,CAAC,KAAa,KAAI;;QAC1C,IAAI,CAAC,KAAK,EAAE;YACV,OAAM;AACP,SAAA;AACD,QAAA,MAAM,MAAM,IAAI,CAAA,EAAA,GAAA,KAAK,CAAC,aAAa,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,KAAK,CAAC,MAAM,CAAuB,CAAA;QAC1E,IAAI,EAAC,MAAM,KAAN,IAAA,IAAA,MAAM,uBAAN,MAAM,CAAE,WAAW,CAAA,EAAE;AACxB;;;AAGG;YACH,eAAe,CAAC,IAAI,CAAC,CAAA;AACrB,YAAA,uBAAuB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;YAC1C,OAAM;AACP,SAAA;AACD,QAAA,IAAI,SAAS,EAAE;AACb,YAAA,wBAAwB,EAAE,CAAA;AAC3B,SAAA;AAAM,aAAA;YACL,UAAU,CAAC,IAAI,CAAC,CAAA;AACjB,SAAA;QACD,eAAe,CAAC,MAAM,CAAC,CAAA;AACvB,QAAA,uBAAuB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;QAE5C,IAAI,wBAAwB,CAAC,OAAO,EAAE;AACpC,YAAA,YAAY,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAA;AAC/C,SAAA;AACH,KAAC,CAAA;IAED,MAAM,iBAAiB,GAAG,MAAK;AAC7B,QAAA,IAAI,SAAS,EAAE;;AAEb,YAAA,wBAAwB,CAAC,SAAS,IAAI,GAAG,CAAC,CAAA;AAC3C,SAAA;AAAM,aAAA,IAAI,SAAS,EAAE;AACpB,YAAA,wBAAwB,EAAE,CAAA;AAC3B,SAAA;AAAM,aAAA;YACL,UAAU,CAAC,KAAK,CAAC,CAAA;AAClB,SAAA;QAED,IAAI,wBAAwB,CAAC,OAAO,EAAE;AACpC,YAAA,YAAY,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAA;AAC/C,SAAA;AACH,KAAC,CAAA;IAED,MAAM,qBAAqB,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAa,KAAI;AACpD,QAAA,MAAM,cAAc,GAAG;YACrB,qBAAqB,GAAA;gBACnB,OAAO;oBACL,CAAC;oBACD,CAAC;AACD,oBAAA,KAAK,EAAE,CAAC;AACR,oBAAA,MAAM,EAAE,CAAC;AACT,oBAAA,GAAG,EAAE,CAAC;AACN,oBAAA,IAAI,EAAE,CAAC;AACP,oBAAA,KAAK,EAAE,CAAC;AACR,oBAAA,MAAM,EAAE,CAAC;iBACV,CAAA;aACF;SACS,CAAA;AACZ,QAAA,sBAAsB,CAAC;YACrB,KAAK;YACL,MAAM;AACN,YAAA,gBAAgB,EAAE,cAAc;YAChC,gBAAgB,EAAE,UAAU,CAAC,OAAO;YACpC,qBAAqB,EAAE,eAAe,CAAC,OAAO;AAC9C,YAAA,QAAQ,EAAE,gBAAgB;YAC1B,WAAW;YACX,MAAM;AACP,SAAA,CAAC,CAAC,IAAI,CAAC,CAAC,kBAAkB,KAAI;YAC7B,IAAI,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE;AACxD,gBAAA,eAAe,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAA;AAClD,aAAA;YACD,IAAI,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC,MAAM,EAAE;AAC7D,gBAAA,oBAAoB,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAA;AAC5D,aAAA;AACD,YAAA,kBAAkB,CAAC,kBAAkB,CAAC,KAAmB,CAAC,CAAA;AAC5D,SAAC,CAAC,CAAA;AACJ,KAAC,CAAA;AAED,IAAA,MAAM,eAAe,GAAG,CAAC,KAAa,KAAI;QACxC,IAAI,CAAC,KAAK,EAAE;YACV,OAAM;AACP,SAAA;QACD,MAAM,UAAU,GAAG,KAAmB,CAAA;AACtC,QAAA,MAAM,aAAa,GAAG;YACpB,CAAC,EAAE,UAAU,CAAC,OAAO;YACrB,CAAC,EAAE,UAAU,CAAC,OAAO;SACtB,CAAA;QACD,qBAAqB,CAAC,aAAa,CAAC,CAAA;AACpC,QAAA,iBAAiB,CAAC,OAAO,GAAG,aAAa,CAAA;AAC3C,KAAC,CAAA;AAED,IAAA,MAAM,wBAAwB,GAAG,CAAC,KAAa,KAAI;QACjD,iBAAiB,CAAC,KAAK,CAAC,CAAA;AACxB,QAAA,IAAI,SAAS,EAAE;AACb,YAAA,wBAAwB,EAAE,CAAA;AAC3B,SAAA;AACH,KAAC,CAAA;AAED,IAAA,MAAM,yBAAyB,GAAG,CAAC,KAAiB,KAAI;;QACtD,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAc,CAAQ,KAAA,EAAA,QAAQ,CAAI,EAAA,CAAA,CAAC,CAAA;QAC5E,MAAM,OAAO,GAAG,CAAC,UAAU,EAAE,GAAG,eAAe,CAAC,CAAA;QAChD,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,KAAA,IAAA,IAAN,MAAM,KAAN,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,MAAM,CAAE,QAAQ,CAAC,KAAK,CAAC,MAAqB,CAAC,CAAC,EAAE;YAC3E,OAAM;AACP,SAAA;QACD,IAAI,CAAA,EAAA,GAAA,UAAU,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,CAAC,KAAK,CAAC,MAAqB,CAAC,EAAE;YAC7D,OAAM;AACP,SAAA;QACD,UAAU,CAAC,KAAK,CAAC,CAAA;QACjB,IAAI,wBAAwB,CAAC,OAAO,EAAE;AACpC,YAAA,YAAY,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAA;AAC/C,SAAA;AACH,KAAC,CAAA;;;IAID,MAAM,0BAA0B,GAAG,QAAQ,CAAC,iBAAiB,EAAE,EAAE,EAAE,IAAI,CAAC,CAAA;IACxE,MAAM,0BAA0B,GAAG,QAAQ,CAAC,iBAAiB,EAAE,EAAE,EAAE,IAAI,CAAC,CAAA;IAExE,SAAS,CAAC,MAAK;;AACb,QAAA,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAA;AAEvC,QAAA,eAAe,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;YACjC,WAAW,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;AACtC,SAAC,CAAC,CAAA;QAEF,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAc,CAAQ,KAAA,EAAA,QAAQ,CAAI,EAAA,CAAA,CAAC,CAAA;AAC5E,QAAA,IAAI,UAAU,EAAE;YACd,WAAW,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAA;AACzC,SAAA;QAED,MAAM,kBAAkB,GAAG,MAAK;YAC9B,UAAU,CAAC,KAAK,CAAC,CAAA;AACnB,SAAC,CAAA;AAED,QAAA,MAAM,kBAAkB,GAAG,eAAe,CAAC,YAAY,CAAC,CAAA;QACxD,MAAM,mBAAmB,GAAG,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;AAE/D,QAAA,IAAI,aAAa,EAAE;AACjB,YAAA,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAA;YACrD,kBAAkB,KAAA,IAAA,IAAlB,kBAAkB,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAlB,kBAAkB,CAAE,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAA;YAClE,mBAAmB,KAAA,IAAA,IAAnB,mBAAmB,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAnB,mBAAmB,CAAE,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAA;AACpE,SAAA;AACD,QAAA,IAAI,aAAa,EAAE;AACjB,YAAA,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAA;AACtD,SAAA;AAED,QAAA,MAAM,SAAS,GAAG,CAAC,KAAoB,KAAI;AACzC,YAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;gBAC1B,OAAM;AACP,aAAA;YACD,UAAU,CAAC,KAAK,CAAC,CAAA;AACnB,SAAC,CAAA;AAED,QAAA,IAAI,UAAU,EAAE;AACd,YAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;AAC9C,SAAA;QAED,MAAM,aAAa,GAA2D,EAAE,CAAA;AAEhF,QAAA,IAAI,iBAAiB,EAAE;AACrB,YAAA,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAA;AAC3D,YAAA,aAAa,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,wBAAwB,EAAE,CAAC,CAAA;AAC3E,SAAA;AAAM,aAAA;AACL,YAAA,aAAa,CAAC,IAAI,CAChB,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,0BAA0B,EAAE,EAC7D,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,0BAA0B,EAAE,EAC7D,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,0BAA0B,EAAE,EACxD,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,0BAA0B,EAAE,CACxD,CAAA;AACD,YAAA,IAAI,KAAK,EAAE;gBACT,aAAa,CAAC,IAAI,CAAC;AACjB,oBAAA,KAAK,EAAE,WAAW;AAClB,oBAAA,QAAQ,EAAE,eAAe;AAC1B,iBAAA,CAAC,CAAA;AACH,aAAA;AACF,SAAA;QAED,MAAM,uBAAuB,GAAG,MAAK;AACnC,YAAA,eAAe,CAAC,OAAO,GAAG,IAAI,CAAA;AAChC,SAAC,CAAA;QACD,MAAM,uBAAuB,GAAG,MAAK;AACnC,YAAA,eAAe,CAAC,OAAO,GAAG,KAAK,CAAA;AAC/B,YAAA,iBAAiB,EAAE,CAAA;AACrB,SAAC,CAAA;AAED,QAAA,IAAI,SAAS,IAAI,CAAC,iBAAiB,EAAE;YACnC,CAAA,EAAA,GAAA,UAAU,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,gBAAgB,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAAA;YAC3E,CAAA,EAAA,GAAA,UAAU,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,gBAAgB,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAAA;AAC5E,SAAA;QAED,aAAa,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAI;AAC5C,YAAA,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;;gBAC1B,CAAA,EAAA,GAAA,GAAG,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;AAChD,aAAC,CAAC,CAAA;AACJ,SAAC,CAAC,CAAA;AAEF,QAAA,OAAO,MAAK;;AACV,YAAA,IAAI,aAAa,EAAE;AACjB,gBAAA,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAA;gBACxD,kBAAkB,KAAA,IAAA,IAAlB,kBAAkB,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAlB,kBAAkB,CAAE,mBAAmB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAA;gBACrE,mBAAmB,KAAA,IAAA,IAAnB,mBAAmB,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAnB,mBAAmB,CAAE,mBAAmB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAA;AACvE,aAAA;AACD,YAAA,IAAI,aAAa,EAAE;AACjB,gBAAA,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAA;AACzD,aAAA;AACD,YAAA,IAAI,iBAAiB,EAAE;AACrB,gBAAA,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAA;AAC/D,aAAA;AACD,YAAA,IAAI,UAAU,EAAE;AACd,gBAAA,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;AACjD,aAAA;AACD,YAAA,IAAI,SAAS,IAAI,CAAC,iBAAiB,EAAE;gBACnC,CAAA,EAAA,GAAA,UAAU,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,mBAAmB,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAAA;gBAC9E,CAAA,EAAA,GAAA,UAAU,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,mBAAmB,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAAA;AAC/E,aAAA;YACD,aAAa,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAI;AAC5C,gBAAA,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;;oBAC1B,CAAA,EAAA,GAAA,GAAG,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,mBAAmB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;AACnD,iBAAC,CAAC,CAAA;AACJ,aAAC,CAAC,CAAA;AACJ,SAAC,CAAA;AACD;;;AAGG;AACL,KAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAA;IAE/D,SAAS,CAAC,MAAK;QACb,IAAI,QAAQ,GAAG,YAAY,KAAA,IAAA,IAAZ,YAAY,KAAZ,KAAA,CAAA,GAAA,YAAY,GAAI,EAAE,CAAA;AACjC,QAAA,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE;AACnB,YAAA,QAAQ,GAAG,CAAA,kBAAA,EAAqB,EAAE,CAAA,EAAA,CAAI,CAAA;AACvC,SAAA;AACD,QAAA,MAAM,wBAAwB,GAAqB,CAAC,YAAY,KAAI;YAClE,MAAM,UAAU,GAAkB,EAAE,CAAA;AACpC,YAAA,YAAY,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;gBAChC,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,IAAI,QAAQ,CAAC,aAAa,KAAK,iBAAiB,EAAE;oBAClF,MAAM,KAAK,GAAI,QAAQ,CAAC,MAAsB,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAA;oBAC9E,IAAI,KAAK,KAAK,EAAE,EAAE;AAChB,wBAAA,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAqB,CAAC,CAAA;AAChD,qBAAA;AACF,iBAAA;AACD,gBAAA,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,EAAE;oBACjC,OAAM;AACP,iBAAA;AACD,gBAAA,IAAI,YAAY,EAAE;oBACf,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAI;;wBACxC,IAAI,CAAA,EAAA,GAAA,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,IAAA,EAAG,YAAY,CAAC,EAAE;4BAClC,WAAW,CAAC,KAAK,CAAC,CAAA;4BAClB,UAAU,CAAC,KAAK,CAAC,CAAA;4BACjB,eAAe,CAAC,IAAI,CAAC,CAAA;4BACrB,IAAI,wBAAwB,CAAC,OAAO,EAAE;AACpC,gCAAA,YAAY,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAA;AAC/C,6BAAA;4BACD,IAAI,wBAAwB,CAAC,OAAO,EAAE;AACpC,gCAAA,YAAY,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAA;AAC/C,6BAAA;AACD,4BAAA,OAAO,IAAI,CAAA;AACZ,yBAAA;AACD,wBAAA,OAAO,KAAK,CAAA;AACd,qBAAC,CAAC,CAAA;AACH,iBAAA;gBACD,IAAI,CAAC,QAAQ,EAAE;oBACb,OAAM;AACP,iBAAA;gBACD,IAAI;oBACF,MAAM,QAAQ,GAAG,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAA;AAC/E,oBAAA,UAAU,CAAC,IAAI;;AAEb,oBAAA,GAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,KACzB,OAAuB,CAAC,OAAO,CAAC,QAAQ,CAAC,CACzB,CACpB,CAAA;AACD,oBAAA,UAAU,CAAC,IAAI;;oBAEb,GAAG,QAAQ,CAAC,OAAO,CACjB,CAAC,OAAO,KACN,CAAC,GAAI,OAAuB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAkB,CAC5E,CACF,CAAA;AACF,iBAAA;gBAAC,OAAM,EAAA,EAAA;AACN;;;AAGG;AACJ,iBAAA;AACH,aAAC,CAAC,CAAA;YACF,IAAI,UAAU,CAAC,MAAM,EAAE;AACrB,gBAAA,kBAAkB,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC,CAAA;AAC7D,aAAA;AACH,SAAC,CAAA;AACD,QAAA,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,wBAAwB,CAAC,CAAA;;AAEvE,QAAA,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE;AACtC,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,UAAU,EAAE,IAAI;YAChB,eAAe,EAAE,CAAC,iBAAiB,CAAC;AACrC,SAAA,CAAC,CAAA;AACF,QAAA,OAAO,MAAK;YACV,gBAAgB,CAAC,UAAU,EAAE,CAAA;AAC/B,SAAC,CAAA;KACF,EAAE,CAAC,EAAE,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC,CAAA;IAEpC,MAAM,qBAAqB,GAAG,MAAK;AACjC,QAAA,IAAI,QAAQ,EAAE;;YAEZ,qBAAqB,CAAC,QAAQ,CAAC,CAAA;YAC/B,OAAM;AACP,SAAA;AAED,QAAA,IAAI,KAAK,EAAE;YACT,IAAI,iBAAiB,CAAC,OAAO,EAAE;AAC7B;;;;;;AAME;AACF,gBAAA,qBAAqB,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;AACjD,aAAA;;YAED,OAAM;AACP,SAAA;AAED,QAAA,sBAAsB,CAAC;YACrB,KAAK;YACL,MAAM;AACN,YAAA,gBAAgB,EAAE,YAAY;YAC9B,gBAAgB,EAAE,UAAU,CAAC,OAAO;YACpC,qBAAqB,EAAE,eAAe,CAAC,OAAO;AAC9C,YAAA,QAAQ,EAAE,gBAAgB;YAC1B,WAAW;YACX,MAAM;AACP,SAAA,CAAC,CAAC,IAAI,CAAC,CAAC,kBAAkB,KAAI;AAC7B,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;;gBAEpB,OAAM;AACP,aAAA;YACD,IAAI,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE;AACxD,gBAAA,eAAe,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAA;AAClD,aAAA;YACD,IAAI,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC,MAAM,EAAE;AAC7D,gBAAA,oBAAoB,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAA;AAC5D,aAAA;AACD,YAAA,kBAAkB,CAAC,kBAAkB,CAAC,KAAmB,CAAC,CAAA;AAC5D,SAAC,CAAC,CAAA;AACJ,KAAC,CAAA;IAED,SAAS,CAAC,MAAK;AACb,QAAA,qBAAqB,EAAE,CAAA;AACzB,KAAC,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CAAC,CAAA;IAE5F,SAAS,CAAC,MAAK;QACb,IAAI,EAAC,iBAAiB,KAAjB,IAAA,IAAA,iBAAiB,uBAAjB,iBAAiB,CAAE,OAAO,CAAA,EAAE;AAC/B,YAAA,OAAO,MAAM,IAAI,CAAA;AAClB,SAAA;AACD,QAAA,MAAM,eAAe,GAAG,IAAI,cAAc,CAAC,MAAK;AAC9C,YAAA,qBAAqB,EAAE,CAAA;AACzB,SAAC,CAAC,CAAA;AACF,QAAA,eAAe,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;AAClD,QAAA,OAAO,MAAK;YACV,eAAe,CAAC,UAAU,EAAE,CAAA;AAC9B,SAAC,CAAA;AACH,KAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAA,IAAA,IAAjB,iBAAiB,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAjB,iBAAiB,CAAE,OAAO,CAAC,CAAC,CAAA;IAEzC,SAAS,CAAC,MAAK;;QACb,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAc,CAAQ,KAAA,EAAA,QAAQ,CAAI,EAAA,CAAA,CAAC,CAAA;QAC5E,MAAM,OAAO,GAAG,CAAC,GAAG,eAAe,EAAE,UAAU,CAAC,CAAA;QAChD,IAAI,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;AACpD;;;;AAIG;YACH,eAAe,CAAC,MAAA,eAAe,CAAC,CAAC,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,UAAU,CAAC,CAAA;AAClD,SAAA;KACF,EAAE,CAAC,QAAQ,EAAE,eAAe,EAAE,YAAY,CAAC,CAAC,CAAA;IAE7C,SAAS,CAAC,MAAK;AACb,QAAA,OAAO,MAAK;YACV,IAAI,wBAAwB,CAAC,OAAO,EAAE;AACpC,gBAAA,YAAY,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAA;AAC/C,aAAA;YACD,IAAI,wBAAwB,CAAC,OAAO,EAAE;AACpC,gBAAA,YAAY,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAA;AAC/C,aAAA;AACH,SAAC,CAAA;KACF,EAAE,EAAE,CAAC,CAAA;IAEN,SAAS,CAAC,MAAK;QACb,IAAI,QAAQ,GAAG,YAAY,CAAA;AAC3B,QAAA,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE;AACnB,YAAA,QAAQ,GAAG,CAAA,kBAAA,EAAqB,EAAE,CAAA,EAAA,CAAI,CAAA;AACvC,SAAA;QACD,IAAI,CAAC,QAAQ,EAAE;YACb,OAAM;AACP,SAAA;QACD,IAAI;AACF,YAAA,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAc,QAAQ,CAAC,CAAC,CAAA;YAC5E,kBAAkB,CAAC,OAAO,CAAC,CAAA;AAC5B,SAAA;QAAC,OAAM,EAAA,EAAA;;YAEN,kBAAkB,CAAC,EAAE,CAAC,CAAA;AACvB,SAAA;AACH,KAAC,EAAE,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,CAAA;AAEtB,IAAA,MAAM,OAAO,GAAG,CAAC,MAAM,IAAI,OAAO,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;AAElF,IAAA,OAAO,QAAQ,IACb,KAAA,CAAA,aAAA,CAAC,cAAc,EACb,EAAA,EAAE,EAAE,EAAE,EACN,IAAI,EAAC,SAAS,EACd,SAAS,EAAE,UAAU,CACnB,eAAe,EACf,UAAU,CAAC,SAAS,CAAC,EACrB,MAAM,CAAC,SAAS,CAAC,EACjB,MAAM,CAAC,OAAO,CAAC,EACf,SAAS,EACT,CAAwB,qBAAA,EAAA,eAAe,EAAE,EACzC;AACE,YAAA,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,OAAO;YAC7B,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,gBAAgB,KAAK,OAAO;AACnD,YAAA,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,SAAS;SACrC,CACF,EACD,KAAK,EAAE;AACL,YAAA,GAAG,cAAc;AACjB,YAAA,GAAG,YAAY;AACf,YAAA,OAAO,EAAE,OAAO,KAAK,SAAS,IAAI,OAAO,GAAG,OAAO,GAAG,SAAS;SAChE,EACD,GAAG,EAAE,UAAU,EAAA;QAEd,OAAO;AACR,QAAA,KAAA,CAAA,aAAA,CAAC,cAAc,EACb,EAAA,SAAS,EAAE,UAAU,CACnB,qBAAqB,EACrB,UAAU,CAAC,OAAO,CAAC,EACnB,MAAM,CAAC,OAAO,CAAC,EACf,cAAc,EACd;AACE;;;AAGG;AACH,gBAAA,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,OAAO;AACjC,aAAA,CACF,EACD,KAAK,EAAE,iBAAiB,EACxB,GAAG,EAAE,eAAe,EAAA,CACpB,CACa,IACf,IAAI,CAAA;AACV,CAAC;;ACpnBD;AAIA,MAAM,cAAc,GAAG,CAAC,EAAE,OAAO,EAAmB,KAAI;IACtD,OAAO,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,uBAAuB,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAA,CAAI,CAAA;AAC/D,CAAC;;ACUK,MAAA,iBAAiB,GAAG,CAAC,EACzB,EAAE,EACF,QAAQ,EACR,YAAY,EACZ,OAAO,EACP,IAAI,EACJ,MAAM,EACN,SAAS,EACT,cAAc,EACd,OAAO,GAAG,MAAM,EAChB,KAAK,GAAG,KAAK,EACb,MAAM,GAAG,EAAE,EACX,OAAO,GAAG,KAAK,EACf,QAAQ,GAAG,IAAI,EACf,MAAM,GAAG,CAAC,OAAO,CAAC,EAClB,WAAW,GAAG,KAAK,EACnB,gBAAgB,GAAG,UAAU,EAC7B,WAAW,EACX,SAAS,GAAG,CAAC,EACb,SAAS,GAAG,CAAC,EACb,KAAK,GAAG,KAAK,EACb,MAAM,GAAG,KAAK,EACd,OAAO,GAAG,KAAK,EACf,SAAS,GAAG,KAAK,EACjB,UAAU,GAAG,KAAK,EAClB,aAAa,GAAG,KAAK,EACrB,aAAa,GAAG,KAAK,EACrB,KAAK,EACL,QAAQ,EACR,MAAM,EACN,MAAM,EACN,OAAO,EACP,SAAS,EACT,SAAS,EACT,SAAS,GACU,KAAI;IACvB,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC7D,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;IACpD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACvD,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC7D,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC1D,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAA;IACnE,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAA;IACnE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACvD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC1D,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAc,OAAO,CAAC,CAAA;IAC1E,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC1D,MAAM,CAAC,uBAAuB,EAAE,0BAA0B,CAAC,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAA;IACxF,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAqB,IAAI,CAAC,CAAA;AAC1E;;AAEG;AACH,IAAA,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,oBAAoB,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC,CAAA;AAEzE,IAAA,MAAM,kCAAkC,GAAG,CAAC,gBAA6B,KAAI;AAC3E,QAAA,MAAM,cAAc,GAAG,gBAAgB,KAAhB,IAAA,IAAA,gBAAgB,uBAAhB,gBAAgB,CAAE,iBAAiB,EAAA,CAAG,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,KAAI;;AAChF,YAAA,IAAI,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE;gBACpC,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAkB,CAAA;AAC3E,gBAAA,GAAG,CAAC,eAAe,CAAC,GAAG,CAAA,EAAA,GAAA,gBAAgB,KAAhB,IAAA,IAAA,gBAAgB,KAAhB,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,gBAAgB,CAAE,YAAY,CAAC,IAAI,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,IAAI,CAAA;AACpE,aAAA;AACD,YAAA,OAAO,GAAG,CAAA;SACX,EAAE,EAA0C,CAAC,CAAA;AAE9C,QAAA,OAAO,cAAc,CAAA;AACvB,KAAC,CAAA;AAED,IAAA,MAAM,uCAAuC,GAAG,CAC9C,cAA6C,KAC3C;AACF,QAAA,MAAM,oBAAoB,GAA0D;AAClF,YAAA,KAAK,EAAE,CAAC,KAAK,KAAI;;AACf,gBAAA,eAAe,CAAC,CAAC,EAAA,GAAA,KAAoB,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,KAAK,CAAC,CAAA;aAChD;AACD,YAAA,OAAO,EAAE,CAAC,KAAK,KAAI;gBACjB,iBAAiB,CAAC,KAAK,KAAL,IAAA,IAAA,KAAK,cAAL,KAAK,GAAI,OAAO,CAAC,CAAA;aACpC;AACD,YAAA,IAAI,EAAE,CAAC,KAAK,KAAI;gBACd,cAAc,CAAC,KAAK,KAAL,IAAA,IAAA,KAAK,cAAL,KAAK,GAAI,IAAI,CAAC,CAAA;aAC9B;AACD,YAAA,OAAO,EAAE,CAAC,KAAK,KAAI;;AACjB,gBAAA,iBAAiB,CAAC,CAAC,EAAA,GAAA,KAAqB,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,OAAO,CAAC,CAAA;aACrD;AACD,YAAA,MAAM,EAAE,CAAC,KAAK,KAAI;AAChB,gBAAA,gBAAgB,CAAC,KAAK,KAAK,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;aAC1D;AACD,YAAA,OAAO,EAAE,CAAC,KAAK,KAAI;;AACjB,gBAAA,iBAAiB,CAAC,CAAC,EAAA,GAAA,KAAqB,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,OAAO,CAAC,CAAA;aACrD;AACD,YAAA,MAAM,EAAE,CAAC,KAAK,KAAI;AAChB,gBAAA,MAAM,MAAM,GAAG,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAL,KAAK,CAAE,KAAK,CAAC,GAAG,CAAiB,CAAA;gBAChD,gBAAgB,CAAC,MAAM,KAAN,IAAA,IAAA,MAAM,cAAN,MAAM,GAAI,MAAM,CAAC,CAAA;aACnC;AACD,YAAA,mBAAmB,EAAE,CAAC,KAAK,KAAI;;AAC7B,gBAAA,0BAA0B,CAAC,CAAC,EAAA,GAAA,KAA0B,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,gBAAgB,CAAC,CAAA;aAC5E;AACD,YAAA,YAAY,EAAE,CAAC,KAAK,KAAI;AACtB,gBAAA,mBAAmB,CAAC,KAAK,KAAK,IAAI,GAAG,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;aAChE;AACD,YAAA,YAAY,EAAE,CAAC,KAAK,KAAI;AACtB,gBAAA,mBAAmB,CAAC,KAAK,KAAK,IAAI,GAAG,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;aAChE;AACD,YAAA,KAAK,EAAE,CAAC,KAAK,KAAI;AACf,gBAAA,eAAe,CAAC,KAAK,KAAK,IAAI,GAAG,KAAK,GAAG,KAAK,KAAK,MAAM,CAAC,CAAA;aAC3D;AACD,YAAA,MAAM,EAAE,CAAC,KAAK,KAAI;AAChB,gBAAA,gBAAgB,CAAC,KAAK,KAAK,IAAI,GAAG,MAAM,GAAG,KAAK,KAAK,MAAM,CAAC,CAAA;aAC7D;SACF,CAAA;;;AAGD,QAAA,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;AACvE,QAAA,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;;AACtD,YAAA,CAAA,EAAA,GAAA,oBAAoB,CAAC,GAAoB,CAAC,MAAG,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,oBAAA,EAAA,KAAK,CAAC,CAAA;AACrD,SAAC,CAAC,CAAA;AACJ,KAAC,CAAA;IAED,SAAS,CAAC,MAAK;QACb,iBAAiB,CAAC,OAAO,CAAC,CAAA;AAC5B,KAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IAEb,SAAS,CAAC,MAAK;QACb,cAAc,CAAC,IAAI,CAAC,CAAA;AACtB,KAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IAEV,SAAS,CAAC,MAAK;QACb,eAAe,CAAC,KAAK,CAAC,CAAA;AACxB,KAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAEX,SAAS,CAAC,MAAK;QACb,iBAAiB,CAAC,OAAO,CAAC,CAAA;AAC5B,KAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IAEb,SAAS,CAAC,MAAK;QACb,gBAAgB,CAAC,MAAM,CAAC,CAAA;AAC1B,KAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;IAEZ,SAAS,CAAC,MAAK;QACb,mBAAmB,CAAC,SAAS,CAAC,CAAA;AAChC,KAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;IAEf,SAAS,CAAC,MAAK;QACb,mBAAmB,CAAC,SAAS,CAAC,CAAA;AAChC,KAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;IAEf,SAAS,CAAC,MAAK;QACb,eAAe,CAAC,KAAK,CAAC,CAAA;AACxB,KAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAEX,SAAS,CAAC,MAAK;QACb,gBAAgB,CAAC,MAAM,CAAC,CAAA;AAC1B,KAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;IAEZ,SAAS,CAAC,MAAK;QACb,0BAA0B,CAAC,gBAAgB,CAAC,CAAA;AAC9C,KAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAA;IAEtB,SAAS,CAAC,MAAK;;AACb,QAAA,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAA;QAEvC,IAAI,QAAQ,GAAG,YAAY,CAAA;AAC3B,QAAA,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE;AACnB,YAAA,QAAQ,GAAG,CAAA,kBAAA,EAAqB,EAAE,CAAA,EAAA,CAAI,CAAA;AACvC,SAAA;AACD,QAAA,IAAI,QAAQ,EAAE;YACZ,IAAI;gBACF,MAAM,eAAe,GAAG,QAAQ,CAAC,gBAAgB,CAAc,QAAQ,CAAC,CAAA;AACxE,gBAAA,eAAe,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;oBACjC,WAAW,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;AACtC,iBAAC,CAAC,CAAA;AACH,aAAA;YAAC,OAAM,EAAA,EAAA;AACN,gBAAoE;;AAElE,oBAAA,OAAO,CAAC,IAAI,CAAC,oBAAoB,QAAQ,CAAA,6BAAA,CAA+B,CAAC,CAAA;AAC1E,iBAAA;AACF,aAAA;AACF,SAAA;QAED,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAc,CAAQ,KAAA,EAAA,QAAQ,CAAI,EAAA,CAAA,CAAC,CAAA;AAC5E,QAAA,IAAI,UAAU,EAAE;YACd,WAAW,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAA;AACzC,SAAA;AAED,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;AACrB,YAAA,OAAO,MAAM,IAAI,CAAA;AAClB,SAAA;AAED,QAAA,MAAM,aAAa,GAAG,CAAA,EAAA,GAAA,YAAY,aAAZ,YAAY,KAAA,KAAA,CAAA,GAAZ,YAAY,GAAI,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,oBAAoB,CAAC,OAAO,CAAA;AAEhF,QAAA,MAAM,gBAAgB,GAAqB,CAAC,YAAY,KAAI;AAC1D,YAAA,YAAY,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;;AAChC,gBAAA,IACE,CAAC,aAAa;oBACd,QAAQ,CAAC,IAAI,KAAK,YAAY;oBAC9B,EAAC,CAAA,EAAA,GAAA,QAAQ,CAAC,aAAa,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,UAAU,CAAC,eAAe,CAAC,CAAA,EACpD;oBACA,OAAM;AACP,iBAAA;;AAED,gBAAA,MAAM,cAAc,GAAG,kCAAkC,CAAC,aAAa,CAAC,CAAA;gBACxE,uCAAuC,CAAC,cAAc,CAAC,CAAA;AACzD,aAAC,CAAC,CAAA;AACJ,SAAC,CAAA;;AAGD,QAAA,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,gBAAgB,CAAC,CAAA;;;AAIvD,QAAA,MAAM,cAAc,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;AAE7E,QAAA,IAAI,aAAa,EAAE;AACjB,YAAA,MAAM,cAAc,GAAG,kCAAkC,CAAC,aAAa,CAAC,CAAA;YACxE,uCAAuC,CAAC,cAAc,CAAC,CAAA;;AAEvD,YAAA,QAAQ,CAAC,OAAO,CAAC,aAAa,EAAE,cAAc,CAAC,CAAA;AAChD,SAAA;AAED,QAAA,OAAO,MAAK;;YAEV,QAAQ,CAAC,UAAU,EAAE,CAAA;AACvB,SAAC,CAAA;AACH,KAAC,EAAE,CAAC,UAAU,EAAE,oBAAoB,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAA;IAE5E,SAAS,CAAC,MAAK;AAIb,QAAA,IAAI,KAAK,KAAL,IAAA,IAAA,KAAK,uBAAL,KAAK,CAAE,MAAM,EAAE;;AAEjB,YAAA,OAAO,CAAC,IAAI,CAAC,uEAAuE,CAAC,CAAA;AACtF,SAAA;AACD,QAAA,IAAI,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAA,EAAG,MAAM,CAAA,CAAE,CAAC,EAAE;;AAElD,YAAA,OAAO,CAAC,IAAI,CAAC,oBAAoB,MAAM,CAAA,4BAAA,CAA8B,CAAC,CAAA;AACvE,SAAA;AACD,QAAA,IAAI,KAAK,KAAL,IAAA,IAAA,KAAK,uBAAL,KAAK,CAAE,OAAO,EAAE;;AAElB,YAAA,OAAO,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAA;AACxF,SAAA;AACD,QAAA,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAA,EAAG,OAAO,CAAA,CAAE,CAAC,EAAE;;AAErD,YAAA,OAAO,CAAC,IAAI,CAAC,oBAAoB,OAAO,CAAA,6BAAA,CAA+B,CAAC,CAAA;AACzE,SAAA;KACF,EAAE,EAAE,CAAC,CAAA;AAEN;;;AAGG;IACH,IAAI,eAAe,GAAiB,QAAQ,CAAA;AAC5C,IAAA,MAAM,iBAAiB,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;AACtD,IAAA,IAAI,MAAM,EAAE;AACV,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,OAAO,EAAE,cAAc,KAAA,IAAA,IAAd,cAAc,KAAA,KAAA,CAAA,GAAd,cAAc,GAAI,IAAI,EAAE,YAAY,EAAE,CAAoB,CAAA;QAC7F,eAAe,GAAG,QAAQ,IACxB,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,GAAG,EAAE,iBAAiB,EAAE,SAAS,EAAC,+BAA+B,IACnE,QAAQ,CACL,IACJ,IAAI,CAAA;AACT,KAAA;AAAM,SAAA,IAAI,cAAc,EAAE;QACzB,eAAe,GAAG,cAAc,CAAA;AACjC,KAAA;AACD,IAAA,IAAI,WAAW,EAAE;QACf,eAAe,GAAG,oBAAC,cAAc,EAAA,EAAC,OAAO,EAAE,WAAW,GAAI,CAAA;AAC3D,KAAA;AAED,IAAA,MAAM,KAAK,GAAa;QACtB,EAAE;QACF,QAAQ;QACR,YAAY;QACZ,SAAS;QACT,cAAc;AACd,QAAA,OAAO,EAAE,eAAe;QACxB,iBAAiB;AACjB,QAAA,KAAK,EAAE,YAAY;AACnB,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,MAAM,EAAE,aAAa;QACrB,WAAW;AACX,QAAA,gBAAgB,EAAE,uBAAuB;QACzC,WAAW;AACX,QAAA,SAAS,EAAE,gBAAgB;AAC3B,QAAA,SAAS,EAAE,gBAAgB;AAC3B,QAAA,KAAK,EAAE,YAAY;AACnB,QAAA,MAAM,EAAE,aAAa;QACrB,OAAO;QACP,SAAS;QACT,UAAU;QACV,aAAa;QACb,aAAa;QACb,KAAK;QACL,QAAQ;QACR,MAAM;QACN,MAAM;QACN,OAAO;QACP,SAAS;QACT,SAAS;QACT,SAAS;QACT,YAAY;QACZ,eAAe,EAAE,CAAC,MAA0B,KAAK,eAAe,CAAC,MAAM,CAAC;KACzE,CAAA;AAED,IAAA,OAAO,KAAC,CAAA,aAAA,CAAA,OAAO,EAAK,EAAA,GAAA,KAAK,GAAI,CAAA;AAC/B;;AC7SA;AACA,MAAM,iBAAiB,GAAG,oCAAoC,CAAA;AAC9D,MAAM,aAAa,GAAG,+BAA+B,CAAA;AAErD,WAAW,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;AACrD,WAAW,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC;;;;"}