{"version":3,"file":"swiper-bundle.esm.browser.js.map","sources":["../node_modules/ssr-window/ssr-window.esm.js","../src/shared/utils.js","../src/shared/get-support.js","../src/shared/get-device.js","../src/shared/get-browser.js","../src/core/modules/resize/resize.js","../src/core/modules/observer/observer.js","../src/core/events-emitter.js","../src/core/update/updateSize.js","../src/core/update/updateSlides.js","../src/core/update/updateAutoHeight.js","../src/core/update/updateSlidesOffset.js","../src/core/update/updateSlidesProgress.js","../src/core/update/updateProgress.js","../src/core/update/updateSlidesClasses.js","../src/core/update/updateActiveIndex.js","../src/core/update/updateClickedSlide.js","../src/core/update/index.js","../src/core/translate/getTranslate.js","../src/core/translate/setTranslate.js","../src/core/translate/minTranslate.js","../src/core/translate/maxTranslate.js","../src/core/translate/translateTo.js","../src/core/translate/index.js","../src/core/transition/setTransition.js","../src/core/transition/transitionEmit.js","../src/core/transition/transitionStart.js","../src/core/transition/transitionEnd.js","../src/core/transition/index.js","../src/core/slide/slideTo.js","../src/core/slide/slideToLoop.js","../src/core/slide/slideNext.js","../src/core/slide/slidePrev.js","../src/core/slide/slideReset.js","../src/core/slide/slideToClosest.js","../src/core/slide/slideToClickedSlide.js","../src/core/slide/index.js","../src/core/loop/loopCreate.js","../src/core/loop/loopFix.js","../src/core/loop/loopDestroy.js","../src/core/loop/index.js","../src/core/grab-cursor/setGrabCursor.js","../src/core/grab-cursor/unsetGrabCursor.js","../src/core/grab-cursor/index.js","../src/core/events/onTouchStart.js","../src/core/events/onTouchMove.js","../src/core/events/onTouchEnd.js","../src/core/events/onResize.js","../src/core/events/onClick.js","../src/core/events/onScroll.js","../src/core/events/onLoad.js","../src/core/events/index.js","../src/core/breakpoints/setBreakpoint.js","../src/core/breakpoints/getBreakpoint.js","../src/core/breakpoints/index.js","../src/core/classes/addClasses.js","../src/core/classes/removeClasses.js","../src/core/classes/index.js","../src/core/check-overflow/index.js","../src/core/defaults.js","../src/core/moduleExtendParams.js","../src/core/core.js","../src/modules/virtual/virtual.js","../src/modules/keyboard/keyboard.js","../src/modules/mousewheel/mousewheel.js","../src/shared/create-element-if-not-defined.js","../src/modules/navigation/navigation.js","../src/shared/classes-to-selector.js","../src/modules/pagination/pagination.js","../src/modules/scrollbar/scrollbar.js","../src/modules/parallax/parallax.js","../src/modules/zoom/zoom.js","../src/modules/controller/controller.js","../src/modules/a11y/a11y.js","../src/modules/history/history.js","../src/modules/hash-navigation/hash-navigation.js","../src/modules/autoplay/autoplay.js","../src/modules/thumbs/thumbs.js","../src/modules/free-mode/free-mode.js","../src/modules/grid/grid.js","../src/modules/manipulation/methods/appendSlide.js","../src/modules/manipulation/methods/prependSlide.js","../src/modules/manipulation/methods/addSlide.js","../src/modules/manipulation/methods/removeSlide.js","../src/modules/manipulation/methods/removeAllSlides.js","../src/modules/manipulation/manipulation.js","../src/shared/effect-init.js","../src/shared/effect-target.js","../src/shared/effect-virtual-transition-end.js","../src/modules/effect-fade/effect-fade.js","../src/modules/effect-cube/effect-cube.js","../src/shared/create-shadow.js","../src/modules/effect-flip/effect-flip.js","../src/modules/effect-coverflow/effect-coverflow.js","../src/modules/effect-creative/effect-creative.js","../src/modules/effect-cards/effect-cards.js","../src/swiper.js"],"sourcesContent":["/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n    return (obj !== null &&\n        typeof obj === 'object' &&\n        'constructor' in obj &&\n        obj.constructor === Object);\n}\nfunction extend(target = {}, src = {}) {\n    Object.keys(src).forEach((key) => {\n        if (typeof target[key] === 'undefined')\n            target[key] = src[key];\n        else if (isObject(src[key]) &&\n            isObject(target[key]) &&\n            Object.keys(src[key]).length > 0) {\n            extend(target[key], src[key]);\n        }\n    });\n}\n\nconst ssrDocument = {\n    body: {},\n    addEventListener() { },\n    removeEventListener() { },\n    activeElement: {\n        blur() { },\n        nodeName: '',\n    },\n    querySelector() {\n        return null;\n    },\n    querySelectorAll() {\n        return [];\n    },\n    getElementById() {\n        return null;\n    },\n    createEvent() {\n        return {\n            initEvent() { },\n        };\n    },\n    createElement() {\n        return {\n            children: [],\n            childNodes: [],\n            style: {},\n            setAttribute() { },\n            getElementsByTagName() {\n                return [];\n            },\n        };\n    },\n    createElementNS() {\n        return {};\n    },\n    importNode() {\n        return null;\n    },\n    location: {\n        hash: '',\n        host: '',\n        hostname: '',\n        href: '',\n        origin: '',\n        pathname: '',\n        protocol: '',\n        search: '',\n    },\n};\nfunction getDocument() {\n    const doc = typeof document !== 'undefined' ? document : {};\n    extend(doc, ssrDocument);\n    return doc;\n}\n\nconst ssrWindow = {\n    document: ssrDocument,\n    navigator: {\n        userAgent: '',\n    },\n    location: {\n        hash: '',\n        host: '',\n        hostname: '',\n        href: '',\n        origin: '',\n        pathname: '',\n        protocol: '',\n        search: '',\n    },\n    history: {\n        replaceState() { },\n        pushState() { },\n        go() { },\n        back() { },\n    },\n    CustomEvent: function CustomEvent() {\n        return this;\n    },\n    addEventListener() { },\n    removeEventListener() { },\n    getComputedStyle() {\n        return {\n            getPropertyValue() {\n                return '';\n            },\n        };\n    },\n    Image() { },\n    Date() { },\n    screen: {},\n    setTimeout() { },\n    clearTimeout() { },\n    matchMedia() {\n        return {};\n    },\n    requestAnimationFrame(callback) {\n        if (typeof setTimeout === 'undefined') {\n            callback();\n            return null;\n        }\n        return setTimeout(callback, 0);\n    },\n    cancelAnimationFrame(id) {\n        if (typeof setTimeout === 'undefined') {\n            return;\n        }\n        clearTimeout(id);\n    },\n};\nfunction getWindow() {\n    const win = typeof window !== 'undefined' ? window : {};\n    extend(win, ssrWindow);\n    return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","import { getWindow, getDocument } from 'ssr-window';\n\nfunction deleteProps(obj) {\n  const object = obj;\n  Object.keys(object).forEach((key) => {\n    try {\n      object[key] = null;\n    } catch (e) {\n      // no getter for object\n    }\n    try {\n      delete object[key];\n    } catch (e) {\n      // something got wrong\n    }\n  });\n}\nfunction nextTick(callback, delay = 0) {\n  return setTimeout(callback, delay);\n}\nfunction now() {\n  return Date.now();\n}\nfunction getComputedStyle(el) {\n  const window = getWindow();\n  let style;\n  if (window.getComputedStyle) {\n    style = window.getComputedStyle(el, null);\n  }\n  if (!style && el.currentStyle) {\n    style = el.currentStyle;\n  }\n  if (!style) {\n    style = el.style;\n  }\n\n  return style;\n}\nfunction getTranslate(el, axis = 'x') {\n  const window = getWindow();\n  let matrix;\n  let curTransform;\n  let transformMatrix;\n\n  const curStyle = getComputedStyle(el, null);\n\n  if (window.WebKitCSSMatrix) {\n    curTransform = curStyle.transform || curStyle.webkitTransform;\n    if (curTransform.split(',').length > 6) {\n      curTransform = curTransform\n        .split(', ')\n        .map((a) => a.replace(',', '.'))\n        .join(', ');\n    }\n    // Some old versions of Webkit choke when 'none' is passed; pass\n    // empty string instead in this case\n    transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n  } else {\n    transformMatrix =\n      curStyle.MozTransform ||\n      curStyle.OTransform ||\n      curStyle.MsTransform ||\n      curStyle.msTransform ||\n      curStyle.transform ||\n      curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n    matrix = transformMatrix.toString().split(',');\n  }\n\n  if (axis === 'x') {\n    // Latest Chrome and webkits Fix\n    if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n    // Crazy IE10 Matrix\n    else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n    // Normal Browsers\n    else curTransform = parseFloat(matrix[4]);\n  }\n  if (axis === 'y') {\n    // Latest Chrome and webkits Fix\n    if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n    // Crazy IE10 Matrix\n    else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n    // Normal Browsers\n    else curTransform = parseFloat(matrix[5]);\n  }\n  return curTransform || 0;\n}\nfunction isObject(o) {\n  return (\n    typeof o === 'object' &&\n    o !== null &&\n    o.constructor &&\n    Object.prototype.toString.call(o).slice(8, -1) === 'Object'\n  );\n}\nfunction isNode(node) {\n  // eslint-disable-next-line\n  if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n    return node instanceof HTMLElement;\n  }\n  return node && (node.nodeType === 1 || node.nodeType === 11);\n}\nfunction extend(...args) {\n  const to = Object(args[0]);\n  const noExtend = ['__proto__', 'constructor', 'prototype'];\n  for (let i = 1; i < args.length; i += 1) {\n    const nextSource = args[i];\n    if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n      const keysArray = Object.keys(Object(nextSource)).filter((key) => noExtend.indexOf(key) < 0);\n      for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n        const nextKey = keysArray[nextIndex];\n        const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n        if (desc !== undefined && desc.enumerable) {\n          if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n            if (nextSource[nextKey].__swiper__) {\n              to[nextKey] = nextSource[nextKey];\n            } else {\n              extend(to[nextKey], nextSource[nextKey]);\n            }\n          } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n            to[nextKey] = {};\n            if (nextSource[nextKey].__swiper__) {\n              to[nextKey] = nextSource[nextKey];\n            } else {\n              extend(to[nextKey], nextSource[nextKey]);\n            }\n          } else {\n            to[nextKey] = nextSource[nextKey];\n          }\n        }\n      }\n    }\n  }\n  return to;\n}\n\nfunction setCSSProperty(el, varName, varValue) {\n  el.style.setProperty(varName, varValue);\n}\n\nfunction animateCSSModeScroll({ swiper, targetPosition, side }) {\n  const window = getWindow();\n  const startPosition = -swiper.translate;\n  let startTime = null;\n  let time;\n  const duration = swiper.params.speed;\n\n  swiper.wrapperEl.style.scrollSnapType = 'none';\n  window.cancelAnimationFrame(swiper.cssModeFrameID);\n\n  const dir = targetPosition > startPosition ? 'next' : 'prev';\n\n  const isOutOfBound = (current, target) => {\n    return (dir === 'next' && current >= target) || (dir === 'prev' && current <= target);\n  };\n\n  const animate = () => {\n    time = new Date().getTime();\n    if (startTime === null) {\n      startTime = time;\n    }\n\n    const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n    const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n    let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n\n    if (isOutOfBound(currentPosition, targetPosition)) {\n      currentPosition = targetPosition;\n    }\n    swiper.wrapperEl.scrollTo({\n      [side]: currentPosition,\n    });\n    if (isOutOfBound(currentPosition, targetPosition)) {\n      swiper.wrapperEl.style.overflow = 'hidden';\n      swiper.wrapperEl.style.scrollSnapType = '';\n      setTimeout(() => {\n        swiper.wrapperEl.style.overflow = '';\n        swiper.wrapperEl.scrollTo({\n          [side]: currentPosition,\n        });\n      });\n      window.cancelAnimationFrame(swiper.cssModeFrameID);\n      return;\n    }\n    swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n  };\n  animate();\n}\n\nfunction getSlideTransformEl(slideEl) {\n  return (\n    slideEl.querySelector('.swiper-slide-transform') ||\n    (slideEl.shadowEl && slideEl.shadowEl.querySelector('.swiper-slide-transform')) ||\n    slideEl\n  );\n}\n\nfunction findElementsInElements(elements = [], selector = '') {\n  const found = [];\n  elements.forEach((el) => {\n    found.push(...el.querySelectorAll(selector));\n  });\n  return found;\n}\nfunction elementChildren(element, selector = '') {\n  return [...element.children].filter((el) => el.matches(selector));\n}\n\nfunction createElement(tag, classes = []) {\n  const el = document.createElement(tag);\n  el.classList.add(...(Array.isArray(classes) ? classes : [classes]));\n  return el;\n}\nfunction elementOffset(el) {\n  const window = getWindow();\n  const document = getDocument();\n  const box = el.getBoundingClientRect();\n  const body = document.body;\n  const clientTop = el.clientTop || body.clientTop || 0;\n  const clientLeft = el.clientLeft || body.clientLeft || 0;\n  const scrollTop = el === window ? window.scrollY : el.scrollTop;\n  const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n  return {\n    top: box.top + scrollTop - clientTop,\n    left: box.left + scrollLeft - clientLeft,\n  };\n}\nfunction elementPrevAll(el, selector) {\n  const prevEls = [];\n  while (el.previousElementSibling) {\n    const prev = el.previousElementSibling; // eslint-disable-line\n    if (selector) {\n      if (prev.matches(selector)) prevEls.push(prev);\n    } else prevEls.push(prev);\n    el = prev;\n  }\n  return prevEls;\n}\nfunction elementNextAll(el, selector) {\n  const nextEls = [];\n  while (el.nextElementSibling) {\n    const next = el.nextElementSibling; // eslint-disable-line\n    if (selector) {\n      if (next.matches(selector)) nextEls.push(next);\n    } else nextEls.push(next);\n    el = next;\n  }\n  return nextEls;\n}\nfunction elementStyle(el, prop) {\n  const window = getWindow();\n  return window.getComputedStyle(el, null).getPropertyValue(prop);\n}\nfunction elementIndex(el) {\n  let child = el;\n  let i;\n  if (child) {\n    i = 0;\n    // eslint-disable-next-line\n    while ((child = child.previousSibling) !== null) {\n      if (child.nodeType === 1) i += 1;\n    }\n    return i;\n  }\n  return undefined;\n}\n\nfunction elementParents(el, selector) {\n  const parents = []; // eslint-disable-line\n  let parent = el.parentElement; // eslint-disable-line\n  while (parent) {\n    if (selector) {\n      if (parent.matches(selector)) parents.push(parent);\n    } else {\n      parents.push(parent);\n    }\n    parent = parent.parentElement;\n  }\n  return parents;\n}\n\nfunction elementTransitionEnd(el, callback) {\n  function fireCallBack(e) {\n    if (e.target !== el) return;\n    callback.call(el, e);\n    el.removeEventListener('transitionend', fireCallBack);\n  }\n  if (callback) {\n    el.addEventListener('transitionend', fireCallBack);\n  }\n}\n\nfunction elementOuterSize(el, size, includeMargins) {\n  const window = getWindow();\n  if (includeMargins) {\n    return (\n      el[size === 'width' ? 'offsetWidth' : 'offsetHeight'] +\n      parseFloat(\n        window\n          .getComputedStyle(el, null)\n          .getPropertyValue(size === 'width' ? 'margin-right' : 'margin-top'),\n      ) +\n      parseFloat(\n        window\n          .getComputedStyle(el, null)\n          .getPropertyValue(size === 'width' ? 'margin-left' : 'margin-bottom'),\n      )\n    );\n  }\n  return el.offsetWidth;\n}\n\nexport {\n  animateCSSModeScroll,\n  deleteProps,\n  nextTick,\n  now,\n  getTranslate,\n  isObject,\n  extend,\n  getComputedStyle,\n  setCSSProperty,\n  getSlideTransformEl,\n  // dom\n  findElementsInElements,\n  createElement,\n  elementChildren,\n  elementOffset,\n  elementPrevAll,\n  elementNextAll,\n  elementStyle,\n  elementIndex,\n  elementParents,\n  elementTransitionEnd,\n  elementOuterSize,\n};\n","import { getWindow, getDocument } from 'ssr-window';\r\n\r\nlet support;\r\n\r\nfunction calcSupport() {\r\n  const window = getWindow();\r\n  const document = getDocument();\r\n\r\n  return {\r\n    smoothScroll: document.documentElement && 'scrollBehavior' in document.documentElement.style,\r\n\r\n    touch: !!(\r\n      'ontouchstart' in window ||\r\n      (window.DocumentTouch && document instanceof window.DocumentTouch)\r\n    ),\r\n  };\r\n}\r\n\r\nfunction getSupport() {\r\n  if (!support) {\r\n    support = calcSupport();\r\n  }\r\n  return support;\r\n}\r\n\r\nexport { getSupport };\r\n","import { getWindow } from 'ssr-window';\r\nimport { getSupport } from './get-support.js';\r\n\r\nlet deviceCached;\r\n\r\nfunction calcDevice({ userAgent } = {}) {\r\n  const support = getSupport();\r\n  const window = getWindow();\r\n  const platform = window.navigator.platform;\r\n  const ua = userAgent || window.navigator.userAgent;\r\n\r\n  const device = {\r\n    ios: false,\r\n    android: false,\r\n  };\r\n\r\n  const screenWidth = window.screen.width;\r\n  const screenHeight = window.screen.height;\r\n\r\n  const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\r\n  let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\r\n  const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\r\n  const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\r\n  const windows = platform === 'Win32';\r\n  let macos = platform === 'MacIntel';\r\n\r\n  // iPadOs 13 fix\r\n  const iPadScreens = [\r\n    '1024x1366',\r\n    '1366x1024',\r\n    '834x1194',\r\n    '1194x834',\r\n    '834x1112',\r\n    '1112x834',\r\n    '768x1024',\r\n    '1024x768',\r\n    '820x1180',\r\n    '1180x820',\r\n    '810x1080',\r\n    '1080x810',\r\n  ];\r\n  if (\r\n    !ipad &&\r\n    macos &&\r\n    support.touch &&\r\n    iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0\r\n  ) {\r\n    ipad = ua.match(/(Version)\\/([\\d.]+)/);\r\n    if (!ipad) ipad = [0, 1, '13_0_0'];\r\n    macos = false;\r\n  }\r\n\r\n  // Android\r\n  if (android && !windows) {\r\n    device.os = 'android';\r\n    device.android = true;\r\n  }\r\n  if (ipad || iphone || ipod) {\r\n    device.os = 'ios';\r\n    device.ios = true;\r\n  }\r\n\r\n  // Export object\r\n  return device;\r\n}\r\n\r\nfunction getDevice(overrides = {}) {\r\n  if (!deviceCached) {\r\n    deviceCached = calcDevice(overrides);\r\n  }\r\n  return deviceCached;\r\n}\r\n\r\nexport { getDevice };\r\n","import { getWindow } from 'ssr-window';\r\n\r\nlet browser;\r\n\r\nfunction calcBrowser() {\r\n  const window = getWindow();\r\n  function isSafari() {\r\n    const ua = window.navigator.userAgent.toLowerCase();\r\n    return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\r\n  }\r\n  return {\r\n    isSafari: isSafari(),\r\n    isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent),\r\n  };\r\n}\r\n\r\nfunction getBrowser() {\r\n  if (!browser) {\r\n    browser = calcBrowser();\r\n  }\r\n  return browser;\r\n}\r\n\r\nexport { getBrowser };\r\n","import { getWindow } from 'ssr-window';\r\n\r\nexport default function Resize({ swiper, on, emit }) {\r\n  const window = getWindow();\r\n  let observer = null;\r\n  let animationFrame = null;\r\n\r\n  const resizeHandler = () => {\r\n    if (!swiper || swiper.destroyed || !swiper.initialized) return;\r\n    emit('beforeResize');\r\n    emit('resize');\r\n  };\r\n\r\n  const createObserver = () => {\r\n    if (!swiper || swiper.destroyed || !swiper.initialized) return;\r\n    observer = new ResizeObserver((entries) => {\r\n      animationFrame = window.requestAnimationFrame(() => {\r\n        const { width, height } = swiper;\r\n        let newWidth = width;\r\n        let newHeight = height;\r\n        entries.forEach(({ contentBoxSize, contentRect, target }) => {\r\n          if (target && target !== swiper.el) return;\r\n          newWidth = contentRect\r\n            ? contentRect.width\r\n            : (contentBoxSize[0] || contentBoxSize).inlineSize;\r\n          newHeight = contentRect\r\n            ? contentRect.height\r\n            : (contentBoxSize[0] || contentBoxSize).blockSize;\r\n        });\r\n        if (newWidth !== width || newHeight !== height) {\r\n          resizeHandler();\r\n        }\r\n      });\r\n    });\r\n    observer.observe(swiper.el);\r\n  };\r\n\r\n  const removeObserver = () => {\r\n    if (animationFrame) {\r\n      window.cancelAnimationFrame(animationFrame);\r\n    }\r\n    if (observer && observer.unobserve && swiper.el) {\r\n      observer.unobserve(swiper.el);\r\n      observer = null;\r\n    }\r\n  };\r\n\r\n  const orientationChangeHandler = () => {\r\n    if (!swiper || swiper.destroyed || !swiper.initialized) return;\r\n    emit('orientationchange');\r\n  };\r\n\r\n  on('init', () => {\r\n    if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\r\n      createObserver();\r\n      return;\r\n    }\r\n    window.addEventListener('resize', resizeHandler);\r\n    window.addEventListener('orientationchange', orientationChangeHandler);\r\n  });\r\n\r\n  on('destroy', () => {\r\n    removeObserver();\r\n    window.removeEventListener('resize', resizeHandler);\r\n    window.removeEventListener('orientationchange', orientationChangeHandler);\r\n  });\r\n}\r\n","import { getWindow } from 'ssr-window';\nimport { elementParents } from '../../../shared/utils.js';\n\nexport default function Observer({ swiper, extendParams, on, emit }) {\n  const observers = [];\n  const window = getWindow();\n  const attach = (target, options = {}) => {\n    const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n    const observer = new ObserverFunc((mutations) => {\n      // The observerUpdate event should only be triggered\n      // once despite the number of mutations.  Additional\n      // triggers are redundant and are very costly\n      if (mutations.length === 1) {\n        emit('observerUpdate', mutations[0]);\n        return;\n      }\n      const observerUpdate = function observerUpdate() {\n        emit('observerUpdate', mutations[0]);\n      };\n\n      if (window.requestAnimationFrame) {\n        window.requestAnimationFrame(observerUpdate);\n      } else {\n        window.setTimeout(observerUpdate, 0);\n      }\n    });\n\n    observer.observe(target, {\n      attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n      childList: typeof options.childList === 'undefined' ? true : options.childList,\n      characterData: typeof options.characterData === 'undefined' ? true : options.characterData,\n    });\n\n    observers.push(observer);\n  };\n  const init = () => {\n    if (!swiper.params.observer) return;\n    if (swiper.params.observeParents) {\n      const containerParents = elementParents(swiper.el);\n      for (let i = 0; i < containerParents.length; i += 1) {\n        attach(containerParents[i]);\n      }\n    }\n    // Observe container\n    attach(swiper.el, {\n      childList: swiper.params.observeSlideChildren,\n    });\n\n    // Observe wrapper\n    attach(swiper.wrapperEl, { attributes: false });\n  };\n  const destroy = () => {\n    observers.forEach((observer) => {\n      observer.disconnect();\n    });\n    observers.splice(0, observers.length);\n  };\n\n  extendParams({\n    observer: false,\n    observeParents: false,\n    observeSlideChildren: false,\n  });\n  on('init', init);\n  on('destroy', destroy);\n}\n","/* eslint-disable no-underscore-dangle */\r\n\r\nexport default {\r\n  on(events, handler, priority) {\r\n    const self = this;\r\n    if (!self.eventsListeners || self.destroyed) return self;\r\n    if (typeof handler !== 'function') return self;\r\n    const method = priority ? 'unshift' : 'push';\r\n    events.split(' ').forEach((event) => {\r\n      if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\r\n      self.eventsListeners[event][method](handler);\r\n    });\r\n    return self;\r\n  },\r\n\r\n  once(events, handler, priority) {\r\n    const self = this;\r\n    if (!self.eventsListeners || self.destroyed) return self;\r\n    if (typeof handler !== 'function') return self;\r\n    function onceHandler(...args) {\r\n      self.off(events, onceHandler);\r\n      if (onceHandler.__emitterProxy) {\r\n        delete onceHandler.__emitterProxy;\r\n      }\r\n      handler.apply(self, args);\r\n    }\r\n    onceHandler.__emitterProxy = handler;\r\n    return self.on(events, onceHandler, priority);\r\n  },\r\n\r\n  onAny(handler, priority) {\r\n    const self = this;\r\n    if (!self.eventsListeners || self.destroyed) return self;\r\n    if (typeof handler !== 'function') return self;\r\n    const method = priority ? 'unshift' : 'push';\r\n    if (self.eventsAnyListeners.indexOf(handler) < 0) {\r\n      self.eventsAnyListeners[method](handler);\r\n    }\r\n    return self;\r\n  },\r\n\r\n  offAny(handler) {\r\n    const self = this;\r\n    if (!self.eventsListeners || self.destroyed) return self;\r\n    if (!self.eventsAnyListeners) return self;\r\n    const index = self.eventsAnyListeners.indexOf(handler);\r\n    if (index >= 0) {\r\n      self.eventsAnyListeners.splice(index, 1);\r\n    }\r\n    return self;\r\n  },\r\n\r\n  off(events, handler) {\r\n    const self = this;\r\n    if (!self.eventsListeners || self.destroyed) return self;\r\n    if (!self.eventsListeners) return self;\r\n    events.split(' ').forEach((event) => {\r\n      if (typeof handler === 'undefined') {\r\n        self.eventsListeners[event] = [];\r\n      } else if (self.eventsListeners[event]) {\r\n        self.eventsListeners[event].forEach((eventHandler, index) => {\r\n          if (\r\n            eventHandler === handler ||\r\n            (eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler)\r\n          ) {\r\n            self.eventsListeners[event].splice(index, 1);\r\n          }\r\n        });\r\n      }\r\n    });\r\n    return self;\r\n  },\r\n\r\n  emit(...args) {\r\n    const self = this;\r\n    if (!self.eventsListeners || self.destroyed) return self;\r\n    if (!self.eventsListeners) return self;\r\n    let events;\r\n    let data;\r\n    let context;\r\n    if (typeof args[0] === 'string' || Array.isArray(args[0])) {\r\n      events = args[0];\r\n      data = args.slice(1, args.length);\r\n      context = self;\r\n    } else {\r\n      events = args[0].events;\r\n      data = args[0].data;\r\n      context = args[0].context || self;\r\n    }\r\n    data.unshift(context);\r\n    const eventsArray = Array.isArray(events) ? events : events.split(' ');\r\n\r\n    eventsArray.forEach((event) => {\r\n      if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\r\n        self.eventsAnyListeners.forEach((eventHandler) => {\r\n          eventHandler.apply(context, [event, ...data]);\r\n        });\r\n      }\r\n      if (self.eventsListeners && self.eventsListeners[event]) {\r\n        self.eventsListeners[event].forEach((eventHandler) => {\r\n          eventHandler.apply(context, data);\r\n        });\r\n      }\r\n    });\r\n    return self;\r\n  },\r\n};\r\n","import { elementStyle } from '../../shared/utils.js';\n\nexport default function updateSize() {\n  const swiper = this;\n  let width;\n  let height;\n  const el = swiper.el;\n  if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n    width = swiper.params.width;\n  } else {\n    width = el.clientWidth;\n  }\n  if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n    height = swiper.params.height;\n  } else {\n    height = el.clientHeight;\n  }\n  if ((width === 0 && swiper.isHorizontal()) || (height === 0 && swiper.isVertical())) {\n    return;\n  }\n\n  // Subtract paddings\n  width =\n    width -\n    parseInt(elementStyle(el, 'padding-left') || 0, 10) -\n    parseInt(elementStyle(el, 'padding-right') || 0, 10);\n  height =\n    height -\n    parseInt(elementStyle(el, 'padding-top') || 0, 10) -\n    parseInt(elementStyle(el, 'padding-bottom') || 0, 10);\n\n  if (Number.isNaN(width)) width = 0;\n  if (Number.isNaN(height)) height = 0;\n\n  Object.assign(swiper, {\n    width,\n    height,\n    size: swiper.isHorizontal() ? width : height,\n  });\n}\n","import {\n  elementChildren,\n  elementOuterSize,\n  elementStyle,\n  setCSSProperty,\n} from '../../shared/utils.js';\n\nexport default function updateSlides() {\n  const swiper = this;\n  function getDirectionLabel(property) {\n    if (swiper.isHorizontal()) {\n      return property;\n    }\n    // prettier-ignore\n    return {\n      'width': 'height',\n      'margin-top': 'margin-left',\n      'margin-bottom ': 'margin-right',\n      'margin-left': 'margin-top',\n      'margin-right': 'margin-bottom',\n      'padding-left': 'padding-top',\n      'padding-right': 'padding-bottom',\n      'marginRight': 'marginBottom',\n    }[property];\n  }\n  function getDirectionPropertyValue(node, label) {\n    return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n  }\n\n  const params = swiper.params;\n\n  const { wrapperEl, slidesEl, size: swiperSize, rtlTranslate: rtl, wrongRTL } = swiper;\n  const isVirtual = swiper.virtual && params.virtual.enabled;\n  const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n  const slides = elementChildren(slidesEl, `.${swiper.params.slideClass}, swiper-slide`);\n  const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n  let snapGrid = [];\n  const slidesGrid = [];\n  const slidesSizesGrid = [];\n\n  let offsetBefore = params.slidesOffsetBefore;\n  if (typeof offsetBefore === 'function') {\n    offsetBefore = params.slidesOffsetBefore.call(swiper);\n  }\n\n  let offsetAfter = params.slidesOffsetAfter;\n  if (typeof offsetAfter === 'function') {\n    offsetAfter = params.slidesOffsetAfter.call(swiper);\n  }\n\n  const previousSnapGridLength = swiper.snapGrid.length;\n  const previousSlidesGridLength = swiper.slidesGrid.length;\n\n  let spaceBetween = params.spaceBetween;\n  let slidePosition = -offsetBefore;\n  let prevSlideSize = 0;\n  let index = 0;\n  if (typeof swiperSize === 'undefined') {\n    return;\n  }\n  if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n    spaceBetween = (parseFloat(spaceBetween.replace('%', '')) / 100) * swiperSize;\n  }\n\n  swiper.virtualSize = -spaceBetween;\n\n  // reset margins\n  slides.forEach((slideEl) => {\n    if (rtl) {\n      slideEl.style.marginLeft = '';\n    } else {\n      slideEl.style.marginRight = '';\n    }\n    slideEl.style.marginBottom = '';\n    slideEl.style.marginTop = '';\n  });\n\n  // reset cssMode offsets\n  if (params.centeredSlides && params.cssMode) {\n    setCSSProperty(wrapperEl, '--swiper-centered-offset-before', '');\n    setCSSProperty(wrapperEl, '--swiper-centered-offset-after', '');\n  }\n\n  const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n  if (gridEnabled) {\n    swiper.grid.initSlides(slidesLength);\n  }\n\n  // Calc slides\n  let slideSize;\n\n  const shouldResetSlideSize =\n    params.slidesPerView === 'auto' &&\n    params.breakpoints &&\n    Object.keys(params.breakpoints).filter((key) => {\n      return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n    }).length > 0;\n\n  for (let i = 0; i < slidesLength; i += 1) {\n    slideSize = 0;\n    let slide;\n    if (slides[i]) slide = slides[i];\n    if (gridEnabled) {\n      swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);\n    }\n    if (slides[i] && elementStyle(slide, 'display') === 'none') continue; // eslint-disable-line\n\n    if (params.slidesPerView === 'auto') {\n      if (shouldResetSlideSize) {\n        slides[i].style[getDirectionLabel('width')] = ``;\n      }\n      const slideStyles = getComputedStyle(slide);\n      const currentTransform = slide.style.transform;\n      const currentWebKitTransform = slide.style.webkitTransform;\n      if (currentTransform) {\n        slide.style.transform = 'none';\n      }\n      if (currentWebKitTransform) {\n        slide.style.webkitTransform = 'none';\n      }\n      if (params.roundLengths) {\n        slideSize = swiper.isHorizontal()\n          ? elementOuterSize(slide, 'width', true)\n          : elementOuterSize(slide, 'height', true);\n      } else {\n        // eslint-disable-next-line\n        const width = getDirectionPropertyValue(slideStyles, 'width');\n        const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n        const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n        const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n        const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n        const boxSizing = slideStyles.getPropertyValue('box-sizing');\n        if (boxSizing && boxSizing === 'border-box') {\n          slideSize = width + marginLeft + marginRight;\n        } else {\n          const { clientWidth, offsetWidth } = slide;\n          slideSize =\n            width +\n            paddingLeft +\n            paddingRight +\n            marginLeft +\n            marginRight +\n            (offsetWidth - clientWidth);\n        }\n      }\n      if (currentTransform) {\n        slide.style.transform = currentTransform;\n      }\n      if (currentWebKitTransform) {\n        slide.style.webkitTransform = currentWebKitTransform;\n      }\n      if (params.roundLengths) slideSize = Math.floor(slideSize);\n    } else {\n      slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n      if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n      if (slides[i]) {\n        slides[i].style[getDirectionLabel('width')] = `${slideSize}px`;\n      }\n    }\n    if (slides[i]) {\n      slides[i].swiperSlideSize = slideSize;\n    }\n    slidesSizesGrid.push(slideSize);\n\n    if (params.centeredSlides) {\n      slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n      if (prevSlideSize === 0 && i !== 0)\n        slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n      if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n      if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n      if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n      if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n      slidesGrid.push(slidePosition);\n    } else {\n      if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n      if (\n        (index - Math.min(swiper.params.slidesPerGroupSkip, index)) %\n          swiper.params.slidesPerGroup ===\n        0\n      )\n        snapGrid.push(slidePosition);\n      slidesGrid.push(slidePosition);\n      slidePosition = slidePosition + slideSize + spaceBetween;\n    }\n\n    swiper.virtualSize += slideSize + spaceBetween;\n\n    prevSlideSize = slideSize;\n\n    index += 1;\n  }\n\n  swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n\n  if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n    wrapperEl.style.width = `${swiper.virtualSize + params.spaceBetween}px`;\n  }\n  if (params.setWrapperSize) {\n    wrapperEl.style[getDirectionLabel('width')] = `${swiper.virtualSize + params.spaceBetween}px`;\n  }\n\n  if (gridEnabled) {\n    swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\n  }\n\n  // Remove last grid elements depending on width\n  if (!params.centeredSlides) {\n    const newSlidesGrid = [];\n    for (let i = 0; i < snapGrid.length; i += 1) {\n      let slidesGridItem = snapGrid[i];\n      if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n      if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n        newSlidesGrid.push(slidesGridItem);\n      }\n    }\n    snapGrid = newSlidesGrid;\n\n    if (\n      Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) >\n      1\n    ) {\n      snapGrid.push(swiper.virtualSize - swiperSize);\n    }\n  }\n  if (isVirtual && params.loop) {\n    const size = slidesSizesGrid[0] + spaceBetween;\n    if (params.slidesPerGroup > 1) {\n      const groups = Math.ceil(\n        (swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup,\n      );\n      const groupSize = size * params.slidesPerGroup;\n      for (let i = 0; i < groups; i += 1) {\n        snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize);\n      }\n    }\n    for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) {\n      if (params.slidesPerGroup === 1) {\n        snapGrid.push(snapGrid[snapGrid.length - 1] + size);\n      }\n      slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size);\n      swiper.virtualSize += size;\n    }\n  }\n  if (snapGrid.length === 0) snapGrid = [0];\n\n  if (params.spaceBetween !== 0) {\n    const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n    slides\n      .filter((_, slideIndex) => {\n        if (!params.cssMode || params.loop) return true;\n        if (slideIndex === slides.length - 1) {\n          return false;\n        }\n        return true;\n      })\n      .forEach((slideEl) => {\n        slideEl.style[key] = `${spaceBetween}px`;\n      });\n  }\n\n  if (params.centeredSlides && params.centeredSlidesBounds) {\n    let allSlidesSize = 0;\n    slidesSizesGrid.forEach((slideSizeValue) => {\n      allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n    });\n    allSlidesSize -= params.spaceBetween;\n    const maxSnap = allSlidesSize - swiperSize;\n    snapGrid = snapGrid.map((snap) => {\n      if (snap < 0) return -offsetBefore;\n      if (snap > maxSnap) return maxSnap + offsetAfter;\n      return snap;\n    });\n  }\n\n  if (params.centerInsufficientSlides) {\n    let allSlidesSize = 0;\n    slidesSizesGrid.forEach((slideSizeValue) => {\n      allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n    });\n    allSlidesSize -= params.spaceBetween;\n    if (allSlidesSize < swiperSize) {\n      const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n      snapGrid.forEach((snap, snapIndex) => {\n        snapGrid[snapIndex] = snap - allSlidesOffset;\n      });\n      slidesGrid.forEach((snap, snapIndex) => {\n        slidesGrid[snapIndex] = snap + allSlidesOffset;\n      });\n    }\n  }\n\n  Object.assign(swiper, {\n    slides,\n    snapGrid,\n    slidesGrid,\n    slidesSizesGrid,\n  });\n\n  if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n    setCSSProperty(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n    setCSSProperty(\n      wrapperEl,\n      '--swiper-centered-offset-after',\n      `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`,\n    );\n    const addToSnapGrid = -swiper.snapGrid[0];\n    const addToSlidesGrid = -swiper.slidesGrid[0];\n    swiper.snapGrid = swiper.snapGrid.map((v) => v + addToSnapGrid);\n    swiper.slidesGrid = swiper.slidesGrid.map((v) => v + addToSlidesGrid);\n  }\n\n  if (slidesLength !== previousSlidesLength) {\n    swiper.emit('slidesLengthChange');\n  }\n  if (snapGrid.length !== previousSnapGridLength) {\n    if (swiper.params.watchOverflow) swiper.checkOverflow();\n    swiper.emit('snapGridLengthChange');\n  }\n  if (slidesGrid.length !== previousSlidesGridLength) {\n    swiper.emit('slidesGridLengthChange');\n  }\n\n  if (params.watchSlidesProgress) {\n    swiper.updateSlidesOffset();\n  }\n\n  if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n    const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n    const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass);\n    if (slidesLength <= params.maxBackfaceHiddenSlides) {\n      if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass);\n    } else if (hasClassBackfaceClassAdded) {\n      swiper.el.classList.remove(backFaceHiddenClass);\n    }\n  }\n}\n","export default function updateAutoHeight(speed) {\n  const swiper = this;\n  const activeSlides = [];\n  const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n  let newHeight = 0;\n  let i;\n  if (typeof speed === 'number') {\n    swiper.setTransition(speed);\n  } else if (speed === true) {\n    swiper.setTransition(swiper.params.speed);\n  }\n\n  const getSlideByIndex = (index) => {\n    if (isVirtual) {\n      return swiper.slides.filter(\n        (el) => parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index,\n      )[0];\n    }\n    return swiper.slides[index];\n  };\n  // Find slides currently in view\n  if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n    if (swiper.params.centeredSlides) {\n      (swiper.visibleSlides || []).forEach((slide) => {\n        activeSlides.push(slide);\n      });\n    } else {\n      for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n        const index = swiper.activeIndex + i;\n        if (index > swiper.slides.length && !isVirtual) break;\n        activeSlides.push(getSlideByIndex(index));\n      }\n    }\n  } else {\n    activeSlides.push(getSlideByIndex(swiper.activeIndex));\n  }\n\n  // Find new height from highest slide in view\n  for (i = 0; i < activeSlides.length; i += 1) {\n    if (typeof activeSlides[i] !== 'undefined') {\n      const height = activeSlides[i].offsetHeight;\n      newHeight = height > newHeight ? height : newHeight;\n    }\n  }\n\n  // Update Height\n  if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`;\n}\n","export default function updateSlidesOffset() {\r\n  const swiper = this;\r\n  const slides = swiper.slides;\r\n  for (let i = 0; i < slides.length; i += 1) {\r\n    slides[i].swiperSlideOffset = swiper.isHorizontal()\r\n      ? slides[i].offsetLeft\r\n      : slides[i].offsetTop;\r\n  }\r\n}\r\n","export default function updateSlidesProgress(translate = (this && this.translate) || 0) {\n  const swiper = this;\n  const params = swiper.params;\n\n  const { slides, rtlTranslate: rtl, snapGrid } = swiper;\n\n  if (slides.length === 0) return;\n  if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n\n  let offsetCenter = -translate;\n  if (rtl) offsetCenter = translate;\n\n  // Visible Slides\n  slides.forEach((slideEl) => {\n    slideEl.classList.remove(params.slideVisibleClass);\n  });\n\n  swiper.visibleSlidesIndexes = [];\n  swiper.visibleSlides = [];\n\n  for (let i = 0; i < slides.length; i += 1) {\n    const slide = slides[i];\n    let slideOffset = slide.swiperSlideOffset;\n    if (params.cssMode && params.centeredSlides) {\n      slideOffset -= slides[0].swiperSlideOffset;\n    }\n\n    const slideProgress =\n      (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) /\n      (slide.swiperSlideSize + params.spaceBetween);\n    const originalSlideProgress =\n      (offsetCenter -\n        snapGrid[0] +\n        (params.centeredSlides ? swiper.minTranslate() : 0) -\n        slideOffset) /\n      (slide.swiperSlideSize + params.spaceBetween);\n    const slideBefore = -(offsetCenter - slideOffset);\n    const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n    const isVisible =\n      (slideBefore >= 0 && slideBefore < swiper.size - 1) ||\n      (slideAfter > 1 && slideAfter <= swiper.size) ||\n      (slideBefore <= 0 && slideAfter >= swiper.size);\n    if (isVisible) {\n      swiper.visibleSlides.push(slide);\n      swiper.visibleSlidesIndexes.push(i);\n      slides[i].classList.add(params.slideVisibleClass);\n    }\n    slide.progress = rtl ? -slideProgress : slideProgress;\n    slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n  }\n}\n","import { elementIndex } from '../../shared/utils.js';\n\nexport default function updateProgress(translate) {\n  const swiper = this;\n  if (typeof translate === 'undefined') {\n    const multiplier = swiper.rtlTranslate ? -1 : 1;\n    // eslint-disable-next-line\n    translate = (swiper && swiper.translate && swiper.translate * multiplier) || 0;\n  }\n  const params = swiper.params;\n  const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n  let { progress, isBeginning, isEnd, progressLoop } = swiper;\n  const wasBeginning = isBeginning;\n  const wasEnd = isEnd;\n  if (translatesDiff === 0) {\n    progress = 0;\n    isBeginning = true;\n    isEnd = true;\n  } else {\n    progress = (translate - swiper.minTranslate()) / translatesDiff;\n    isBeginning = progress <= 0;\n    isEnd = progress >= 1;\n  }\n\n  if (params.loop) {\n    const firstSlideIndex = elementIndex(\n      swiper.slides.filter((el) => el.getAttribute('data-swiper-slide-index') === '0')[0],\n    );\n    const lastSlideIndex = elementIndex(\n      swiper.slides.filter(\n        (el) => el.getAttribute('data-swiper-slide-index') * 1 === swiper.slides.length - 1,\n      )[0],\n    );\n    const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex];\n    const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex];\n    const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1];\n    const translateAbs = Math.abs(translate);\n    if (translateAbs >= firstSlideTranslate) {\n      progressLoop = (translateAbs - firstSlideTranslate) / translateMax;\n    } else {\n      progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax;\n    }\n    if (progressLoop > 1) progressLoop -= 1;\n  }\n\n  Object.assign(swiper, {\n    progress,\n    progressLoop,\n    isBeginning,\n    isEnd,\n  });\n\n  if (params.watchSlidesProgress || (params.centeredSlides && params.autoHeight))\n    swiper.updateSlidesProgress(translate);\n\n  if (isBeginning && !wasBeginning) {\n    swiper.emit('reachBeginning toEdge');\n  }\n  if (isEnd && !wasEnd) {\n    swiper.emit('reachEnd toEdge');\n  }\n  if ((wasBeginning && !isBeginning) || (wasEnd && !isEnd)) {\n    swiper.emit('fromEdge');\n  }\n\n  swiper.emit('progress', progress);\n}\n","import { elementChildren, elementNextAll, elementPrevAll } from '../../shared/utils.js';\n\nexport default function updateSlidesClasses() {\n  const swiper = this;\n\n  const { slides, params, slidesEl, activeIndex } = swiper;\n  const isVirtual = swiper.virtual && params.virtual.enabled;\n\n  const getFilteredSlide = (selector) => {\n    return elementChildren(\n      slidesEl,\n      `.${params.slideClass}${selector}, swiper-slide${selector}`,\n    )[0];\n  };\n  slides.forEach((slideEl) => {\n    slideEl.classList.remove(params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n  });\n\n  let activeSlide;\n  if (isVirtual) {\n    if (params.loop) {\n      let slideIndex = activeIndex - swiper.virtual.slidesBefore;\n      if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex;\n      if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length;\n      activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${slideIndex}\"]`);\n    } else {\n      activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${activeIndex}\"]`);\n    }\n  } else {\n    activeSlide = slides[activeIndex];\n  }\n\n  if (activeSlide) {\n    // Active classes\n    activeSlide.classList.add(params.slideActiveClass);\n\n    // Next Slide\n    let nextSlide = elementNextAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n    if (params.loop && !nextSlide) {\n      nextSlide = slides[0];\n    }\n    if (nextSlide) {\n      nextSlide.classList.add(params.slideNextClass);\n    }\n    // Prev Slide\n    let prevSlide = elementPrevAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n    if (params.loop && !prevSlide === 0) {\n      prevSlide = slides[slides.length - 1];\n    }\n    if (prevSlide) {\n      prevSlide.classList.add(params.slidePrevClass);\n    }\n  }\n\n  swiper.emitSlidesClasses();\n}\n","export function getActiveIndexByTranslate(swiper) {\n  const { slidesGrid, params } = swiper;\n  const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n  let activeIndex;\n  for (let i = 0; i < slidesGrid.length; i += 1) {\n    if (typeof slidesGrid[i + 1] !== 'undefined') {\n      if (\n        translate >= slidesGrid[i] &&\n        translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2\n      ) {\n        activeIndex = i;\n      } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n        activeIndex = i + 1;\n      }\n    } else if (translate >= slidesGrid[i]) {\n      activeIndex = i;\n    }\n  }\n  // Normalize slideIndex\n  if (params.normalizeSlideIndex) {\n    if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n  }\n  return activeIndex;\n}\nexport default function updateActiveIndex(newActiveIndex) {\n  const swiper = this;\n  const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n  const {\n    snapGrid,\n    params,\n    activeIndex: previousIndex,\n    realIndex: previousRealIndex,\n    snapIndex: previousSnapIndex,\n  } = swiper;\n  let activeIndex = newActiveIndex;\n  let snapIndex;\n\n  const getVirtualRealIndex = (aIndex) => {\n    let realIndex = aIndex - swiper.virtual.slidesBefore;\n    if (realIndex < 0) {\n      realIndex = swiper.virtual.slides.length + realIndex;\n    }\n    if (realIndex >= swiper.virtual.slides.length) {\n      realIndex -= swiper.virtual.slides.length;\n    }\n    return realIndex;\n  };\n  if (typeof activeIndex === 'undefined') {\n    activeIndex = getActiveIndexByTranslate(swiper);\n  }\n  if (snapGrid.indexOf(translate) >= 0) {\n    snapIndex = snapGrid.indexOf(translate);\n  } else {\n    const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n    snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n  }\n  if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n  if (activeIndex === previousIndex) {\n    if (snapIndex !== previousSnapIndex) {\n      swiper.snapIndex = snapIndex;\n      swiper.emit('snapIndexChange');\n    }\n    if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n      swiper.realIndex = getVirtualRealIndex(activeIndex);\n    }\n    return;\n  }\n  // Get real index\n  let realIndex;\n  if (swiper.virtual && params.virtual.enabled && params.loop) {\n    realIndex = getVirtualRealIndex(activeIndex);\n  } else if (swiper.slides[activeIndex]) {\n    realIndex = parseInt(\n      swiper.slides[activeIndex].getAttribute('data-swiper-slide-index') || activeIndex,\n      10,\n    );\n  } else {\n    realIndex = activeIndex;\n  }\n\n  Object.assign(swiper, {\n    snapIndex,\n    realIndex,\n    previousIndex,\n    activeIndex,\n  });\n  swiper.emit('activeIndexChange');\n  swiper.emit('snapIndexChange');\n  if (previousRealIndex !== realIndex) {\n    swiper.emit('realIndexChange');\n  }\n  if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n    swiper.emit('slideChange');\n  }\n}\n","export default function updateClickedSlide(e) {\n  const swiper = this;\n  const params = swiper.params;\n  const slide = e.closest(`.${params.slideClass}, swiper-slide`);\n  let slideFound = false;\n  let slideIndex;\n\n  if (slide) {\n    for (let i = 0; i < swiper.slides.length; i += 1) {\n      if (swiper.slides[i] === slide) {\n        slideFound = true;\n        slideIndex = i;\n        break;\n      }\n    }\n  }\n\n  if (slide && slideFound) {\n    swiper.clickedSlide = slide;\n    if (swiper.virtual && swiper.params.virtual.enabled) {\n      swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10);\n    } else {\n      swiper.clickedIndex = slideIndex;\n    }\n  } else {\n    swiper.clickedSlide = undefined;\n    swiper.clickedIndex = undefined;\n    return;\n  }\n  if (\n    params.slideToClickedSlide &&\n    swiper.clickedIndex !== undefined &&\n    swiper.clickedIndex !== swiper.activeIndex\n  ) {\n    swiper.slideToClickedSlide();\n  }\n}\n","import updateSize from './updateSize.js';\r\nimport updateSlides from './updateSlides.js';\r\nimport updateAutoHeight from './updateAutoHeight.js';\r\nimport updateSlidesOffset from './updateSlidesOffset.js';\r\nimport updateSlidesProgress from './updateSlidesProgress.js';\r\nimport updateProgress from './updateProgress.js';\r\nimport updateSlidesClasses from './updateSlidesClasses.js';\r\nimport updateActiveIndex from './updateActiveIndex.js';\r\nimport updateClickedSlide from './updateClickedSlide.js';\r\n\r\nexport default {\r\n  updateSize,\r\n  updateSlides,\r\n  updateAutoHeight,\r\n  updateSlidesOffset,\r\n  updateSlidesProgress,\r\n  updateProgress,\r\n  updateSlidesClasses,\r\n  updateActiveIndex,\r\n  updateClickedSlide,\r\n};\r\n","import { getTranslate } from '../../shared/utils.js';\n\nexport default function getSwiperTranslate(axis = this.isHorizontal() ? 'x' : 'y') {\n  const swiper = this;\n\n  const { params, rtlTranslate: rtl, translate, wrapperEl } = swiper;\n\n  if (params.virtualTranslate) {\n    return rtl ? -translate : translate;\n  }\n  if (params.cssMode) {\n    return translate;\n  }\n\n  let currentTranslate = getTranslate(wrapperEl, axis);\n  if (rtl) currentTranslate = -currentTranslate;\n\n  return currentTranslate || 0;\n}\n","export default function setTranslate(translate, byController) {\n  const swiper = this;\n  const { rtlTranslate: rtl, params, wrapperEl, progress } = swiper;\n  let x = 0;\n  let y = 0;\n  const z = 0;\n\n  if (swiper.isHorizontal()) {\n    x = rtl ? -translate : translate;\n  } else {\n    y = translate;\n  }\n\n  if (params.roundLengths) {\n    x = Math.floor(x);\n    y = Math.floor(y);\n  }\n\n  if (params.cssMode) {\n    wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n  } else if (!params.virtualTranslate) {\n    wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`;\n  }\n  swiper.previousTranslate = swiper.translate;\n  swiper.translate = swiper.isHorizontal() ? x : y;\n\n  // Check if we need to update progress\n  let newProgress;\n  const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n  if (translatesDiff === 0) {\n    newProgress = 0;\n  } else {\n    newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n  }\n  if (newProgress !== progress) {\n    swiper.updateProgress(translate);\n  }\n\n  swiper.emit('setTranslate', swiper.translate, byController);\n}\n","export default function minTranslate() {\r\n  return -this.snapGrid[0];\r\n}\r\n","export default function maxTranslate() {\r\n  return -this.snapGrid[this.snapGrid.length - 1];\r\n}\r\n","import { animateCSSModeScroll } from '../../shared/utils.js';\n\nexport default function translateTo(\n  translate = 0,\n  speed = this.params.speed,\n  runCallbacks = true,\n  translateBounds = true,\n  internal,\n) {\n  const swiper = this;\n\n  const { params, wrapperEl } = swiper;\n\n  if (swiper.animating && params.preventInteractionOnTransition) {\n    return false;\n  }\n\n  const minTranslate = swiper.minTranslate();\n  const maxTranslate = swiper.maxTranslate();\n  let newTranslate;\n  if (translateBounds && translate > minTranslate) newTranslate = minTranslate;\n  else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;\n  else newTranslate = translate;\n\n  // Update progress\n  swiper.updateProgress(newTranslate);\n\n  if (params.cssMode) {\n    const isH = swiper.isHorizontal();\n    if (speed === 0) {\n      wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n    } else {\n      if (!swiper.support.smoothScroll) {\n        animateCSSModeScroll({ swiper, targetPosition: -newTranslate, side: isH ? 'left' : 'top' });\n        return true;\n      }\n      wrapperEl.scrollTo({\n        [isH ? 'left' : 'top']: -newTranslate,\n        behavior: 'smooth',\n      });\n    }\n    return true;\n  }\n\n  if (speed === 0) {\n    swiper.setTransition(0);\n    swiper.setTranslate(newTranslate);\n    if (runCallbacks) {\n      swiper.emit('beforeTransitionStart', speed, internal);\n      swiper.emit('transitionEnd');\n    }\n  } else {\n    swiper.setTransition(speed);\n    swiper.setTranslate(newTranslate);\n    if (runCallbacks) {\n      swiper.emit('beforeTransitionStart', speed, internal);\n      swiper.emit('transitionStart');\n    }\n    if (!swiper.animating) {\n      swiper.animating = true;\n      if (!swiper.onTranslateToWrapperTransitionEnd) {\n        swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n          if (!swiper || swiper.destroyed) return;\n          if (e.target !== this) return;\n          swiper.wrapperEl.removeEventListener(\n            'transitionend',\n            swiper.onTranslateToWrapperTransitionEnd,\n          );\n          swiper.wrapperEl.removeEventListener(\n            'webkitTransitionEnd',\n            swiper.onTranslateToWrapperTransitionEnd,\n          );\n          swiper.onTranslateToWrapperTransitionEnd = null;\n          delete swiper.onTranslateToWrapperTransitionEnd;\n          if (runCallbacks) {\n            swiper.emit('transitionEnd');\n          }\n        };\n      }\n      swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n      swiper.wrapperEl.addEventListener(\n        'webkitTransitionEnd',\n        swiper.onTranslateToWrapperTransitionEnd,\n      );\n    }\n  }\n\n  return true;\n}\n","import getTranslate from './getTranslate.js';\r\nimport setTranslate from './setTranslate.js';\r\nimport minTranslate from './minTranslate.js';\r\nimport maxTranslate from './maxTranslate.js';\r\nimport translateTo from './translateTo.js';\r\n\r\nexport default {\r\n  getTranslate,\r\n  setTranslate,\r\n  minTranslate,\r\n  maxTranslate,\r\n  translateTo,\r\n};\r\n","export default function setTransition(duration, byController) {\n  const swiper = this;\n\n  if (!swiper.params.cssMode) {\n    swiper.wrapperEl.style.transitionDuration = `${duration}ms`;\n  }\n\n  swiper.emit('setTransition', duration, byController);\n}\n","export default function transitionEmit({ swiper, runCallbacks, direction, step }) {\r\n  const { activeIndex, previousIndex } = swiper;\r\n  let dir = direction;\r\n  if (!dir) {\r\n    if (activeIndex > previousIndex) dir = 'next';\r\n    else if (activeIndex < previousIndex) dir = 'prev';\r\n    else dir = 'reset';\r\n  }\r\n\r\n  swiper.emit(`transition${step}`);\r\n\r\n  if (runCallbacks && activeIndex !== previousIndex) {\r\n    if (dir === 'reset') {\r\n      swiper.emit(`slideResetTransition${step}`);\r\n      return;\r\n    }\r\n    swiper.emit(`slideChangeTransition${step}`);\r\n    if (dir === 'next') {\r\n      swiper.emit(`slideNextTransition${step}`);\r\n    } else {\r\n      swiper.emit(`slidePrevTransition${step}`);\r\n    }\r\n  }\r\n}\r\n","import transitionEmit from './transitionEmit.js';\r\n\r\nexport default function transitionStart(runCallbacks = true, direction) {\r\n  const swiper = this;\r\n  const { params } = swiper;\r\n  if (params.cssMode) return;\r\n  if (params.autoHeight) {\r\n    swiper.updateAutoHeight();\r\n  }\r\n\r\n  transitionEmit({ swiper, runCallbacks, direction, step: 'Start' });\r\n}\r\n","import transitionEmit from './transitionEmit.js';\r\n\r\nexport default function transitionEnd(runCallbacks = true, direction) {\r\n  const swiper = this;\r\n  const { params } = swiper;\r\n  swiper.animating = false;\r\n  if (params.cssMode) return;\r\n  swiper.setTransition(0);\r\n\r\n  transitionEmit({ swiper, runCallbacks, direction, step: 'End' });\r\n}\r\n","import setTransition from './setTransition.js';\r\nimport transitionStart from './transitionStart.js';\r\nimport transitionEnd from './transitionEnd.js';\r\n\r\nexport default {\r\n  setTransition,\r\n  transitionStart,\r\n  transitionEnd,\r\n};\r\n","import { animateCSSModeScroll } from '../../shared/utils.js';\n\nexport default function slideTo(\n  index = 0,\n  speed = this.params.speed,\n  runCallbacks = true,\n  internal,\n  initial,\n) {\n  if (typeof index === 'string') {\n    index = parseInt(index, 10);\n  }\n\n  const swiper = this;\n  let slideIndex = index;\n  if (slideIndex < 0) slideIndex = 0;\n\n  const {\n    params,\n    snapGrid,\n    slidesGrid,\n    previousIndex,\n    activeIndex,\n    rtlTranslate: rtl,\n    wrapperEl,\n    enabled,\n  } = swiper;\n\n  if (\n    (swiper.animating && params.preventInteractionOnTransition) ||\n    (!enabled && !internal && !initial)\n  ) {\n    return false;\n  }\n\n  const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n  let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n  if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n  const translate = -snapGrid[snapIndex];\n  // Normalize slideIndex\n  if (params.normalizeSlideIndex) {\n    for (let i = 0; i < slidesGrid.length; i += 1) {\n      const normalizedTranslate = -Math.floor(translate * 100);\n      const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n      const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n      if (typeof slidesGrid[i + 1] !== 'undefined') {\n        if (\n          normalizedTranslate >= normalizedGrid &&\n          normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2\n        ) {\n          slideIndex = i;\n        } else if (\n          normalizedTranslate >= normalizedGrid &&\n          normalizedTranslate < normalizedGridNext\n        ) {\n          slideIndex = i + 1;\n        }\n      } else if (normalizedTranslate >= normalizedGrid) {\n        slideIndex = i;\n      }\n    }\n  }\n  // Directions locks\n  if (swiper.initialized && slideIndex !== activeIndex) {\n    if (\n      !swiper.allowSlideNext &&\n      translate < swiper.translate &&\n      translate < swiper.minTranslate()\n    ) {\n      return false;\n    }\n    if (\n      !swiper.allowSlidePrev &&\n      translate > swiper.translate &&\n      translate > swiper.maxTranslate()\n    ) {\n      if ((activeIndex || 0) !== slideIndex) {\n        return false;\n      }\n    }\n  }\n\n  if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n    swiper.emit('beforeSlideChangeStart');\n  }\n\n  // Update progress\n  swiper.updateProgress(translate);\n\n  let direction;\n  if (slideIndex > activeIndex) direction = 'next';\n  else if (slideIndex < activeIndex) direction = 'prev';\n  else direction = 'reset';\n\n  // Update Index\n  if ((rtl && -translate === swiper.translate) || (!rtl && translate === swiper.translate)) {\n    swiper.updateActiveIndex(slideIndex);\n    // Update Height\n    if (params.autoHeight) {\n      swiper.updateAutoHeight();\n    }\n    swiper.updateSlidesClasses();\n    if (params.effect !== 'slide') {\n      swiper.setTranslate(translate);\n    }\n    if (direction !== 'reset') {\n      swiper.transitionStart(runCallbacks, direction);\n      swiper.transitionEnd(runCallbacks, direction);\n    }\n    return false;\n  }\n  if (params.cssMode) {\n    const isH = swiper.isHorizontal();\n    const t = rtl ? translate : -translate;\n    if (speed === 0) {\n      const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n      if (isVirtual) {\n        swiper.wrapperEl.style.scrollSnapType = 'none';\n        swiper._immediateVirtual = true;\n      }\n      wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n      if (isVirtual) {\n        requestAnimationFrame(() => {\n          swiper.wrapperEl.style.scrollSnapType = '';\n          swiper._swiperImmediateVirtual = false;\n        });\n      }\n    } else {\n      if (!swiper.support.smoothScroll) {\n        animateCSSModeScroll({ swiper, targetPosition: t, side: isH ? 'left' : 'top' });\n        return true;\n      }\n      wrapperEl.scrollTo({\n        [isH ? 'left' : 'top']: t,\n        behavior: 'smooth',\n      });\n    }\n    return true;\n  }\n  swiper.setTransition(speed);\n  swiper.setTranslate(translate);\n  swiper.updateActiveIndex(slideIndex);\n  swiper.updateSlidesClasses();\n  swiper.emit('beforeTransitionStart', speed, internal);\n  swiper.transitionStart(runCallbacks, direction);\n\n  if (speed === 0) {\n    swiper.transitionEnd(runCallbacks, direction);\n  } else if (!swiper.animating) {\n    swiper.animating = true;\n    if (!swiper.onSlideToWrapperTransitionEnd) {\n      swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n        if (!swiper || swiper.destroyed) return;\n        if (e.target !== this) return;\n        swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n        swiper.wrapperEl.removeEventListener(\n          'webkitTransitionEnd',\n          swiper.onSlideToWrapperTransitionEnd,\n        );\n        swiper.onSlideToWrapperTransitionEnd = null;\n        delete swiper.onSlideToWrapperTransitionEnd;\n        swiper.transitionEnd(runCallbacks, direction);\n      };\n    }\n    swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n    swiper.wrapperEl.addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n  }\n\n  return true;\n}\n","import { elementIndex } from '../../shared/utils.js';\n\nexport default function slideToLoop(\n  index = 0,\n  speed = this.params.speed,\n  runCallbacks = true,\n  internal,\n) {\n  if (typeof index === 'string') {\n    const indexAsNumber = parseInt(index, 10);\n\n    index = indexAsNumber;\n  }\n\n  const swiper = this;\n  let newIndex = index;\n  if (swiper.params.loop) {\n    if (swiper.virtual && swiper.params.virtual.enabled) {\n      // eslint-disable-next-line\n      newIndex = newIndex + swiper.virtual.slidesBefore;\n    } else {\n      newIndex = elementIndex(\n        swiper.slides.filter(\n          (slideEl) => slideEl.getAttribute('data-swiper-slide-index') * 1 === newIndex,\n        )[0],\n      );\n    }\n  }\n\n  return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}\n","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed = this.params.speed, runCallbacks = true, internal) {\n  const swiper = this;\n  const { enabled, params } = swiper;\n  if (!enabled) return swiper;\n  let perGroup = params.slidesPerGroup;\n  if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n    perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n  }\n  const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n  if (params.loop) {\n    swiper.loopFix();\n    // eslint-disable-next-line\n    swiper._clientLeft = swiper.wrapperEl.clientLeft;\n  }\n  if (params.rewind && swiper.isEnd) {\n    return swiper.slideTo(0, speed, runCallbacks, internal);\n  }\n  return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}\n","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed = this.params.speed, runCallbacks = true, internal) {\n  const swiper = this;\n  const { params, snapGrid, slidesGrid, rtlTranslate, enabled } = swiper;\n  if (!enabled) return swiper;\n\n  if (params.loop) {\n    swiper.loopFix();\n    // eslint-disable-next-line\n    swiper._clientLeft = swiper.wrapperEl.clientLeft;\n  }\n  const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n  function normalize(val) {\n    if (val < 0) return -Math.floor(Math.abs(val));\n    return Math.floor(val);\n  }\n  const normalizedTranslate = normalize(translate);\n  const normalizedSnapGrid = snapGrid.map((val) => normalize(val));\n\n  let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n  if (typeof prevSnap === 'undefined' && params.cssMode) {\n    let prevSnapIndex;\n    snapGrid.forEach((snap, snapIndex) => {\n      if (normalizedTranslate >= snap) {\n        // prevSnap = snap;\n        prevSnapIndex = snapIndex;\n      }\n    });\n    if (typeof prevSnapIndex !== 'undefined') {\n      prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n    }\n  }\n  let prevIndex = 0;\n  if (typeof prevSnap !== 'undefined') {\n    prevIndex = slidesGrid.indexOf(prevSnap);\n    if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n    if (\n      params.slidesPerView === 'auto' &&\n      params.slidesPerGroup === 1 &&\n      params.slidesPerGroupAuto\n    ) {\n      prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n      prevIndex = Math.max(prevIndex, 0);\n    }\n  }\n  if (params.rewind && swiper.isBeginning) {\n    const lastIndex =\n      swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual\n        ? swiper.virtual.slides.length - 1\n        : swiper.slides.length - 1;\n    return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n  }\n  return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}\n","/* eslint no-unused-vars: \"off\" */\r\nexport default function slideReset(speed = this.params.speed, runCallbacks = true, internal) {\r\n  const swiper = this;\r\n  return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\r\n}\r\n","/* eslint no-unused-vars: \"off\" */\r\nexport default function slideToClosest(\r\n  speed = this.params.speed,\r\n  runCallbacks = true,\r\n  internal,\r\n  threshold = 0.5,\r\n) {\r\n  const swiper = this;\r\n  let index = swiper.activeIndex;\r\n  const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\r\n  const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\r\n\r\n  const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\r\n\r\n  if (translate >= swiper.snapGrid[snapIndex]) {\r\n    // The current translate is on or after the current snap index, so the choice\r\n    // is between the current index and the one after it.\r\n    const currentSnap = swiper.snapGrid[snapIndex];\r\n    const nextSnap = swiper.snapGrid[snapIndex + 1];\r\n    if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\r\n      index += swiper.params.slidesPerGroup;\r\n    }\r\n  } else {\r\n    // The current translate is before the current snap index, so the choice\r\n    // is between the current index and the one before it.\r\n    const prevSnap = swiper.snapGrid[snapIndex - 1];\r\n    const currentSnap = swiper.snapGrid[snapIndex];\r\n    if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\r\n      index -= swiper.params.slidesPerGroup;\r\n    }\r\n  }\r\n  index = Math.max(index, 0);\r\n  index = Math.min(index, swiper.slidesGrid.length - 1);\r\n\r\n  return swiper.slideTo(index, speed, runCallbacks, internal);\r\n}\r\n","import { elementChildren, elementIndex, nextTick } from '../../shared/utils.js';\n\nexport default function slideToClickedSlide() {\n  const swiper = this;\n  const { params, slidesEl } = swiper;\n\n  const slidesPerView =\n    params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n  let slideToIndex = swiper.clickedIndex;\n  let realIndex;\n  const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`;\n  if (params.loop) {\n    if (swiper.animating) return;\n    realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n    if (params.centeredSlides) {\n      if (\n        slideToIndex < swiper.loopedSlides - slidesPerView / 2 ||\n        slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2\n      ) {\n        swiper.loopFix();\n        slideToIndex = elementIndex(\n          elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0],\n        );\n\n        nextTick(() => {\n          swiper.slideTo(slideToIndex);\n        });\n      } else {\n        swiper.slideTo(slideToIndex);\n      }\n    } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n      swiper.loopFix();\n      slideToIndex = elementIndex(\n        elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0],\n      );\n\n      nextTick(() => {\n        swiper.slideTo(slideToIndex);\n      });\n    } else {\n      swiper.slideTo(slideToIndex);\n    }\n  } else {\n    swiper.slideTo(slideToIndex);\n  }\n}\n","import slideTo from './slideTo.js';\r\nimport slideToLoop from './slideToLoop.js';\r\nimport slideNext from './slideNext.js';\r\nimport slidePrev from './slidePrev.js';\r\nimport slideReset from './slideReset.js';\r\nimport slideToClosest from './slideToClosest.js';\r\nimport slideToClickedSlide from './slideToClickedSlide.js';\r\n\r\nexport default {\r\n  slideTo,\r\n  slideToLoop,\r\n  slideNext,\r\n  slidePrev,\r\n  slideReset,\r\n  slideToClosest,\r\n  slideToClickedSlide,\r\n};\r\n","import { elementChildren } from '../../shared/utils.js';\n\nexport default function loopCreate(slideRealIndex) {\n  const swiper = this;\n  const { params, slidesEl } = swiper;\n  if (!params.loop || (swiper.virtual && swiper.params.virtual.enabled)) return;\n\n  const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n\n  slides.forEach((el, index) => {\n    el.setAttribute('data-swiper-slide-index', index);\n  });\n\n  swiper.loopFix(slideRealIndex);\n}\n","import { elementIndex } from '../../shared/utils.js';\n\nexport default function loopFix(slideRealIndex, slideTo = true) {\n  const swiper = this;\n  if (!swiper.params.loop) return;\n  swiper.emit('beforeLoopFix');\n\n  const { slides, allowSlidePrev, allowSlideNext, slidesEl, params } = swiper;\n\n  swiper.allowSlidePrev = true;\n  swiper.allowSlideNext = true;\n\n  if (swiper.virtual && params.virtual.enabled) {\n    if (slideTo) {\n      if (!params.centeredSlides && swiper.snapIndex === 0) {\n        swiper.slideTo(swiper.virtual.slides.length, 0, false, true);\n      } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) {\n        swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true);\n      } else if (swiper.snapIndex === swiper.snapGrid.length - 1) {\n        swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true);\n      }\n    }\n    swiper.allowSlidePrev = allowSlidePrev;\n    swiper.allowSlideNext = allowSlideNext;\n    swiper.emit('loopFix');\n    return;\n  }\n\n  const slidesPerView =\n    params.slidesPerView === 'auto'\n      ? swiper.slidesPerViewDynamic()\n      : Math.ceil(parseFloat(params.slidesPerView, 10));\n  let loopedSlides = slidesPerView;\n  if (loopedSlides % params.slidesPerGroup !== 0) {\n    loopedSlides += params.slidesPerGroup - (loopedSlides % params.slidesPerGroup);\n  }\n  swiper.loopedSlides = loopedSlides;\n\n  const prependSlidesIndexes = [];\n  const appendSlidesIndexes = [];\n\n  const activeSlideIndex = elementIndex(\n    swiper.slides.filter((el) => el.classList.contains('swiper-slide-active'))[0],\n  );\n\n  let slidesPrepended = 0;\n  let slidesAppended = 0;\n  // prepend last slides before start\n  if (activeSlideIndex < loopedSlides) {\n    slidesPrepended = loopedSlides - activeSlideIndex;\n    for (let i = 0; i < loopedSlides - activeSlideIndex; i += 1) {\n      const index = i - Math.floor(i / slides.length) * slides.length;\n      prependSlidesIndexes.push(slides.length - index - 1);\n    }\n  } else if (activeSlideIndex /* + slidesPerView */ > swiper.slides.length - loopedSlides * 2) {\n    slidesAppended = activeSlideIndex - (swiper.slides.length - loopedSlides * 2);\n    for (let i = 0; i < slidesAppended; i += 1) {\n      const index = i - Math.floor(i / slides.length) * slides.length;\n      appendSlidesIndexes.push(index);\n    }\n  }\n\n  prependSlidesIndexes.forEach((index) => {\n    slidesEl.prepend(swiper.slides[index]);\n  });\n  appendSlidesIndexes.forEach((index) => {\n    slidesEl.append(swiper.slides[index]);\n  });\n  swiper.recalcSlides();\n  if (params.watchSlidesProgress) {\n    swiper.updateSlidesOffset();\n  }\n\n  if (slideTo) {\n    if (prependSlidesIndexes.length > 0) {\n      if (typeof slideRealIndex === 'undefined') {\n        swiper.slideTo(swiper.activeIndex + slidesPrepended, 0, false, true);\n      } else {\n        swiper.slideToLoop(slideRealIndex, 0, false, true);\n      }\n    } else if (appendSlidesIndexes.length > 0) {\n      if (typeof slideRealIndex === 'undefined') {\n        swiper.slideTo(swiper.activeIndex - slidesAppended, 0, false, true);\n      } else {\n        swiper.slideToLoop(slideRealIndex, 0, false, true);\n      }\n    }\n  }\n\n  swiper.allowSlidePrev = allowSlidePrev;\n  swiper.allowSlideNext = allowSlideNext;\n\n  swiper.emit('loopFix');\n}\n","export default function loopDestroy() {\n  const swiper = this;\n  const { slides, params, slidesEl } = swiper;\n  if (!params.loop || (swiper.virtual && swiper.params.virtual.enabled)) return;\n  swiper.recalcSlides();\n\n  const newSlidesOrder = [];\n  slides.forEach((slideEl) => {\n    const index =\n      typeof slideEl.swiperSlideIndex === 'undefined'\n        ? slideEl.getAttribute('data-swiper-slide-index') * 1\n        : slideEl.swiperSlideIndex;\n    newSlidesOrder[index] = slideEl;\n  });\n  slides.removeAttr('data-swiper-slide-index');\n  newSlidesOrder.forEach((slideEl) => {\n    slidesEl.append(slideEl);\n  });\n  swiper.recalcSlides();\n  swiper.slideTo(swiper.realIndex, 0);\n}\n","import loopCreate from './loopCreate.js';\r\nimport loopFix from './loopFix.js';\r\nimport loopDestroy from './loopDestroy.js';\r\n\r\nexport default {\r\n  loopCreate,\r\n  loopFix,\r\n  loopDestroy,\r\n};\r\n","export default function setGrabCursor(moving) {\r\n  const swiper = this;\r\n  if (\r\n    !swiper.params.simulateTouch ||\r\n    (swiper.params.watchOverflow && swiper.isLocked) ||\r\n    swiper.params.cssMode\r\n  )\r\n    return;\r\n  const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\r\n  el.style.cursor = 'move';\r\n  el.style.cursor = moving ? 'grabbing' : 'grab';\r\n}\r\n","export default function unsetGrabCursor() {\r\n  const swiper = this;\r\n  if ((swiper.params.watchOverflow && swiper.isLocked) || swiper.params.cssMode) {\r\n    return;\r\n  }\r\n  swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\r\n}\r\n","import setGrabCursor from './setGrabCursor.js';\r\nimport unsetGrabCursor from './unsetGrabCursor.js';\r\n\r\nexport default {\r\n  setGrabCursor,\r\n  unsetGrabCursor,\r\n};\r\n","import { getWindow, getDocument } from 'ssr-window';\nimport { now } from '../../shared/utils.js';\n\n// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\nfunction closestElement(selector, base = this) {\n  function __closestFrom(el) {\n    if (!el || el === getDocument() || el === getWindow()) return null;\n    if (el.assignedSlot) el = el.assignedSlot;\n    const found = el.closest(selector);\n    if (!found && !el.getRootNode) {\n      return null;\n    }\n    return found || __closestFrom(el.getRootNode().host);\n  }\n  return __closestFrom(base);\n}\n\nexport default function onTouchStart(event) {\n  const swiper = this;\n  const document = getDocument();\n  const window = getWindow();\n\n  const data = swiper.touchEventsData;\n  data.evCache.push(event);\n  const { params, touches, enabled } = swiper;\n  if (!enabled) return;\n  if (!params.simulateTouch && event.pointerType === 'mouse') return;\n\n  if (swiper.animating && params.preventInteractionOnTransition) {\n    return;\n  }\n  if (!swiper.animating && params.cssMode && params.loop) {\n    swiper.loopFix();\n  }\n  let e = event;\n  if (e.originalEvent) e = e.originalEvent;\n  let targetEl = e.target;\n\n  if (params.touchEventsTarget === 'wrapper') {\n    if (!swiper.wrapperEl.contains(targetEl)) return;\n  }\n  if ('which' in e && e.which === 3) return;\n  if ('button' in e && e.button > 0) return;\n  if (data.isTouched && data.isMoved) return;\n\n  // change target el for shadow root component\n  const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n  // eslint-disable-next-line\n  const eventPath = event.composedPath ? event.composedPath() : event.path;\n  if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n    targetEl = eventPath[0];\n  }\n\n  const noSwipingSelector = params.noSwipingSelector\n    ? params.noSwipingSelector\n    : `.${params.noSwipingClass}`;\n  const isTargetShadow = !!(e.target && e.target.shadowRoot);\n\n  // use closestElement for shadow root element to get the actual closest for nested shadow root element\n  if (\n    params.noSwiping &&\n    (isTargetShadow\n      ? closestElement(noSwipingSelector, targetEl)\n      : targetEl.closest(noSwipingSelector))\n  ) {\n    swiper.allowClick = true;\n    return;\n  }\n\n  if (params.swipeHandler) {\n    if (!targetEl.closest(params.swipeHandler)) return;\n  }\n\n  touches.currentX = e.pageX;\n  touches.currentY = e.pageY;\n  const startX = touches.currentX;\n  const startY = touches.currentY;\n\n  // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n  const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n  const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n  if (\n    edgeSwipeDetection &&\n    (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)\n  ) {\n    if (edgeSwipeDetection === 'prevent') {\n      event.preventDefault();\n    } else {\n      return;\n    }\n  }\n\n  Object.assign(data, {\n    isTouched: true,\n    isMoved: false,\n    allowTouchCallbacks: true,\n    isScrolling: undefined,\n    startMoving: undefined,\n  });\n\n  touches.startX = startX;\n  touches.startY = startY;\n  data.touchStartTime = now();\n  swiper.allowClick = true;\n  swiper.updateSize();\n  swiper.swipeDirection = undefined;\n  if (params.threshold > 0) data.allowThresholdMove = false;\n  let preventDefault = true;\n  if (targetEl.matches(data.focusableElements)) {\n    preventDefault = false;\n    if (targetEl.nodeName === 'SELECT') {\n      data.isTouched = false;\n    }\n  }\n  if (\n    document.activeElement &&\n    document.activeElement.matches(data.focusableElements) &&\n    document.activeElement !== targetEl\n  ) {\n    document.activeElement.blur();\n  }\n\n  const shouldPreventDefault =\n    preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n  if (\n    (params.touchStartForcePreventDefault || shouldPreventDefault) &&\n    !targetEl.isContentEditable\n  ) {\n    e.preventDefault();\n  }\n  if (\n    swiper.params.freeMode &&\n    swiper.params.freeMode.enabled &&\n    swiper.freeMode &&\n    swiper.animating &&\n    !params.cssMode\n  ) {\n    swiper.freeMode.onTouchStart();\n  }\n  swiper.emit('touchStart', e);\n}\n","import { getDocument } from 'ssr-window';\nimport { now } from '../../shared/utils.js';\n\nexport default function onTouchMove(event) {\n  const document = getDocument();\n  const swiper = this;\n  const data = swiper.touchEventsData;\n  const { params, touches, rtlTranslate: rtl, enabled } = swiper;\n  if (!enabled) return;\n  if (!params.simulateTouch && event.pointerType === 'mouse') return;\n\n  let e = event;\n  if (e.originalEvent) e = e.originalEvent;\n  if (!data.isTouched) {\n    if (data.startMoving && data.isScrolling) {\n      swiper.emit('touchMoveOpposite', e);\n    }\n    return;\n  }\n\n  const pointerIndex = data.evCache.findIndex((cachedEv) => cachedEv.pointerId === e.pointerId);\n  if (pointerIndex >= 0) data.evCache[pointerIndex] = e;\n  const targetTouch = data.evCache.length > 1 ? data.evCache[0] : e;\n  const pageX = targetTouch.pageX;\n  const pageY = targetTouch.pageY;\n\n  if (e.preventedByNestedSwiper) {\n    touches.startX = pageX;\n    touches.startY = pageY;\n    return;\n  }\n  if (!swiper.allowTouchMove) {\n    if (!e.target.matches(data.focusableElements)) {\n      swiper.allowClick = false;\n    }\n    if (data.isTouched) {\n      Object.assign(touches, {\n        startX: pageX,\n        startY: pageY,\n        currentX: pageX,\n        currentY: pageY,\n      });\n      data.touchStartTime = now();\n    }\n    return;\n  }\n  if (params.touchReleaseOnEdges && !params.loop) {\n    if (swiper.isVertical()) {\n      // Vertical\n      if (\n        (pageY < touches.startY && swiper.translate <= swiper.maxTranslate()) ||\n        (pageY > touches.startY && swiper.translate >= swiper.minTranslate())\n      ) {\n        data.isTouched = false;\n        data.isMoved = false;\n        return;\n      }\n    } else if (\n      (pageX < touches.startX && swiper.translate <= swiper.maxTranslate()) ||\n      (pageX > touches.startX && swiper.translate >= swiper.minTranslate())\n    ) {\n      return;\n    }\n  }\n  if (document.activeElement) {\n    if (e.target === document.activeElement && e.target.matches(data.focusableElements)) {\n      data.isMoved = true;\n      swiper.allowClick = false;\n      return;\n    }\n  }\n  if (data.allowTouchCallbacks) {\n    swiper.emit('touchMove', e);\n  }\n  if (e.targetTouches && e.targetTouches.length > 1) return;\n\n  touches.currentX = pageX;\n  touches.currentY = pageY;\n\n  const diffX = touches.currentX - touches.startX;\n  const diffY = touches.currentY - touches.startY;\n  if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold)\n    return;\n\n  if (typeof data.isScrolling === 'undefined') {\n    let touchAngle;\n    if (\n      (swiper.isHorizontal() && touches.currentY === touches.startY) ||\n      (swiper.isVertical() && touches.currentX === touches.startX)\n    ) {\n      data.isScrolling = false;\n    } else {\n      // eslint-disable-next-line\n      if (diffX * diffX + diffY * diffY >= 25) {\n        touchAngle = (Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180) / Math.PI;\n        data.isScrolling = swiper.isHorizontal()\n          ? touchAngle > params.touchAngle\n          : 90 - touchAngle > params.touchAngle;\n      }\n    }\n  }\n  if (data.isScrolling) {\n    swiper.emit('touchMoveOpposite', e);\n  }\n  if (typeof data.startMoving === 'undefined') {\n    if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n      data.startMoving = true;\n    }\n  }\n  if (\n    data.isScrolling ||\n    (swiper.zoom && swiper.params.zoom && swiper.params.zoom.enabled && data.evCache.length > 1)\n  ) {\n    data.isTouched = false;\n    return;\n  }\n  if (!data.startMoving) {\n    return;\n  }\n  swiper.allowClick = false;\n  if (!params.cssMode && e.cancelable) {\n    e.preventDefault();\n  }\n  if (params.touchMoveStopPropagation && !params.nested) {\n    e.stopPropagation();\n  }\n\n  if (!data.isMoved) {\n    if (params.loop && !params.cssMode) {\n      swiper.loopFix();\n    }\n    data.startTranslate = swiper.getTranslate();\n    swiper.setTransition(0);\n    if (swiper.animating) {\n      ['webkitTransitionEnd', 'transitionend'].forEach((eventName) => {\n        const evt = new window.CustomEvent(eventName, {\n          bubbles: true,\n          cancelable: true,\n        });\n        swiper.wrapperEl.dispatchEvent(evt);\n      });\n    }\n    data.allowMomentumBounce = false;\n    // Grab Cursor\n    if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n      swiper.setGrabCursor(true);\n    }\n    swiper.emit('sliderFirstMove', e);\n  }\n  swiper.emit('sliderMove', e);\n  data.isMoved = true;\n\n  let diff = swiper.isHorizontal() ? diffX : diffY;\n  touches.diff = diff;\n\n  diff *= params.touchRatio;\n  if (rtl) diff = -diff;\n\n  swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n  data.currentTranslate = diff + data.startTranslate;\n\n  let disableParentSwiper = true;\n  let resistanceRatio = params.resistanceRatio;\n  if (params.touchReleaseOnEdges) {\n    resistanceRatio = 0;\n  }\n  if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n    disableParentSwiper = false;\n    if (params.resistance)\n      data.currentTranslate =\n        swiper.minTranslate() -\n        1 +\n        (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n  } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n    disableParentSwiper = false;\n    if (params.resistance)\n      data.currentTranslate =\n        swiper.maxTranslate() +\n        1 -\n        (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n  }\n\n  if (disableParentSwiper) {\n    e.preventedByNestedSwiper = true;\n  }\n\n  // Directions locks\n  if (\n    !swiper.allowSlideNext &&\n    swiper.swipeDirection === 'next' &&\n    data.currentTranslate < data.startTranslate\n  ) {\n    data.currentTranslate = data.startTranslate;\n  }\n  if (\n    !swiper.allowSlidePrev &&\n    swiper.swipeDirection === 'prev' &&\n    data.currentTranslate > data.startTranslate\n  ) {\n    data.currentTranslate = data.startTranslate;\n  }\n  if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n    data.currentTranslate = data.startTranslate;\n  }\n\n  // Threshold\n  if (params.threshold > 0) {\n    if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n      if (!data.allowThresholdMove) {\n        data.allowThresholdMove = true;\n        touches.startX = touches.currentX;\n        touches.startY = touches.currentY;\n        data.currentTranslate = data.startTranslate;\n        touches.diff = swiper.isHorizontal()\n          ? touches.currentX - touches.startX\n          : touches.currentY - touches.startY;\n        return;\n      }\n    } else {\n      data.currentTranslate = data.startTranslate;\n      return;\n    }\n  }\n\n  if (!params.followFinger || params.cssMode) return;\n\n  // Update active index in free mode\n  if (\n    (params.freeMode && params.freeMode.enabled && swiper.freeMode) ||\n    params.watchSlidesProgress\n  ) {\n    swiper.updateActiveIndex();\n    swiper.updateSlidesClasses();\n  }\n  if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n    swiper.freeMode.onTouchMove();\n  }\n  // Update progress\n  swiper.updateProgress(data.currentTranslate);\n  // Update translate\n  swiper.setTranslate(data.currentTranslate);\n}\n","import { now, nextTick } from '../../shared/utils.js';\n\nexport default function onTouchEnd(event) {\n  const swiper = this;\n  const data = swiper.touchEventsData;\n  const pointerIndex = data.evCache.findIndex((cachedEv) => cachedEv.pointerId === event.pointerId);\n  if (pointerIndex >= 0) {\n    data.evCache.splice(pointerIndex, 1);\n  }\n  if (['pointercancel', 'pointerout', 'pointerleave'].includes(event.type)) return;\n\n  const { params, touches, rtlTranslate: rtl, slidesGrid, enabled } = swiper;\n  if (!enabled) return;\n  if (!params.simulateTouch && event.pointerType === 'mouse') return;\n\n  let e = event;\n  if (e.originalEvent) e = e.originalEvent;\n  if (data.allowTouchCallbacks) {\n    swiper.emit('touchEnd', e);\n  }\n  data.allowTouchCallbacks = false;\n  if (!data.isTouched) {\n    if (data.isMoved && params.grabCursor) {\n      swiper.setGrabCursor(false);\n    }\n    data.isMoved = false;\n    data.startMoving = false;\n    return;\n  }\n  // Return Grab Cursor\n  if (\n    params.grabCursor &&\n    data.isMoved &&\n    data.isTouched &&\n    (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)\n  ) {\n    swiper.setGrabCursor(false);\n  }\n\n  // Time diff\n  const touchEndTime = now();\n  const timeDiff = touchEndTime - data.touchStartTime;\n\n  // Tap, doubleTap, Click\n  if (swiper.allowClick) {\n    const pathTree = e.path || (e.composedPath && e.composedPath());\n    swiper.updateClickedSlide((pathTree && pathTree[0]) || e.target);\n    swiper.emit('tap click', e);\n    if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n      swiper.emit('doubleTap doubleClick', e);\n    }\n  }\n\n  data.lastClickTime = now();\n  nextTick(() => {\n    if (!swiper.destroyed) swiper.allowClick = true;\n  });\n\n  if (\n    !data.isTouched ||\n    !data.isMoved ||\n    !swiper.swipeDirection ||\n    touches.diff === 0 ||\n    data.currentTranslate === data.startTranslate\n  ) {\n    data.isTouched = false;\n    data.isMoved = false;\n    data.startMoving = false;\n    return;\n  }\n  data.isTouched = false;\n  data.isMoved = false;\n  data.startMoving = false;\n\n  let currentPos;\n  if (params.followFinger) {\n    currentPos = rtl ? swiper.translate : -swiper.translate;\n  } else {\n    currentPos = -data.currentTranslate;\n  }\n\n  if (params.cssMode) {\n    return;\n  }\n\n  if (swiper.params.freeMode && params.freeMode.enabled) {\n    swiper.freeMode.onTouchEnd({ currentPos });\n    return;\n  }\n\n  // Find current slide\n  let stopIndex = 0;\n  let groupSize = swiper.slidesSizesGrid[0];\n  for (\n    let i = 0;\n    i < slidesGrid.length;\n    i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup\n  ) {\n    const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n    if (typeof slidesGrid[i + increment] !== 'undefined') {\n      if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n        stopIndex = i;\n        groupSize = slidesGrid[i + increment] - slidesGrid[i];\n      }\n    } else if (currentPos >= slidesGrid[i]) {\n      stopIndex = i;\n      groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n    }\n  }\n\n  let rewindFirstIndex = null;\n  let rewindLastIndex = null;\n  if (params.rewind) {\n    if (swiper.isBeginning) {\n      rewindLastIndex =\n        swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual\n          ? swiper.virtual.slides.length - 1\n          : swiper.slides.length - 1;\n    } else if (swiper.isEnd) {\n      rewindFirstIndex = 0;\n    }\n  }\n  // Find current slide size\n  const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n  const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n  if (timeDiff > params.longSwipesMs) {\n    // Long touches\n    if (!params.longSwipes) {\n      swiper.slideTo(swiper.activeIndex);\n      return;\n    }\n    if (swiper.swipeDirection === 'next') {\n      if (ratio >= params.longSwipesRatio)\n        swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);\n      else swiper.slideTo(stopIndex);\n    }\n    if (swiper.swipeDirection === 'prev') {\n      if (ratio > 1 - params.longSwipesRatio) {\n        swiper.slideTo(stopIndex + increment);\n      } else if (\n        rewindLastIndex !== null &&\n        ratio < 0 &&\n        Math.abs(ratio) > params.longSwipesRatio\n      ) {\n        swiper.slideTo(rewindLastIndex);\n      } else {\n        swiper.slideTo(stopIndex);\n      }\n    }\n  } else {\n    // Short swipes\n    if (!params.shortSwipes) {\n      swiper.slideTo(swiper.activeIndex);\n      return;\n    }\n    const isNavButtonTarget =\n      swiper.navigation &&\n      (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n    if (!isNavButtonTarget) {\n      if (swiper.swipeDirection === 'next') {\n        swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n      }\n      if (swiper.swipeDirection === 'prev') {\n        swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n      }\n    } else if (e.target === swiper.navigation.nextEl) {\n      swiper.slideTo(stopIndex + increment);\n    } else {\n      swiper.slideTo(stopIndex);\n    }\n  }\n}\n","let timeout;\nexport default function onResize() {\n  const swiper = this;\n\n  const { params, el } = swiper;\n\n  if (el && el.offsetWidth === 0) return;\n\n  // Breakpoints\n  if (params.breakpoints) {\n    swiper.setBreakpoint();\n  }\n\n  // Save locks\n  const { allowSlideNext, allowSlidePrev, snapGrid } = swiper;\n\n  const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n  // Disable locks on resize\n  swiper.allowSlideNext = true;\n  swiper.allowSlidePrev = true;\n\n  swiper.updateSize();\n  swiper.updateSlides();\n\n  swiper.updateSlidesClasses();\n  const isVirtualLoop = isVirtual && params.loop;\n  if (\n    (params.slidesPerView === 'auto' || params.slidesPerView > 1) &&\n    swiper.isEnd &&\n    !swiper.isBeginning &&\n    !swiper.params.centeredSlides &&\n    !isVirtualLoop\n  ) {\n    swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n  } else {\n    if (swiper.params.loop && !isVirtual) {\n      swiper.slideToLoop(swiper.realIndex, 0, false, true);\n    } else {\n      swiper.slideTo(swiper.activeIndex, 0, false, true);\n    }\n  }\n\n  if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n    clearTimeout(timeout);\n    timeout = setTimeout(() => {\n      swiper.autoplay.resume();\n    }, 500);\n  }\n  // Return locks after resize\n  swiper.allowSlidePrev = allowSlidePrev;\n  swiper.allowSlideNext = allowSlideNext;\n\n  if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n    swiper.checkOverflow();\n  }\n}\n","export default function onClick(e) {\r\n  const swiper = this;\r\n  if (!swiper.enabled) return;\r\n  if (!swiper.allowClick) {\r\n    if (swiper.params.preventClicks) e.preventDefault();\r\n    if (swiper.params.preventClicksPropagation && swiper.animating) {\r\n      e.stopPropagation();\r\n      e.stopImmediatePropagation();\r\n    }\r\n  }\r\n}\r\n","export default function onScroll() {\r\n  const swiper = this;\r\n  const { wrapperEl, rtlTranslate, enabled } = swiper;\r\n  if (!enabled) return;\r\n  swiper.previousTranslate = swiper.translate;\r\n  if (swiper.isHorizontal()) {\r\n    swiper.translate = -wrapperEl.scrollLeft;\r\n  } else {\r\n    swiper.translate = -wrapperEl.scrollTop;\r\n  }\r\n  // eslint-disable-next-line\r\n  if (swiper.translate === 0) swiper.translate = 0;\r\n\r\n  swiper.updateActiveIndex();\r\n  swiper.updateSlidesClasses();\r\n\r\n  let newProgress;\r\n  const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\r\n  if (translatesDiff === 0) {\r\n    newProgress = 0;\r\n  } else {\r\n    newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\r\n  }\r\n  if (newProgress !== swiper.progress) {\r\n    swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\r\n  }\r\n\r\n  swiper.emit('setTranslate', swiper.translate, false);\r\n}\r\n","export default function onLoad(e) {\n  const swiper = this;\n  const slideSelector = () => (swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`);\n  const slideEl = e.target.closest(slideSelector());\n  if (slideEl) {\n    const lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n    if (lazyEl) lazyEl.remove();\n  }\n  swiper.update();\n}\n","import { getDocument } from 'ssr-window';\r\n\r\nimport onTouchStart from './onTouchStart.js';\r\nimport onTouchMove from './onTouchMove.js';\r\nimport onTouchEnd from './onTouchEnd.js';\r\nimport onResize from './onResize.js';\r\nimport onClick from './onClick.js';\r\nimport onScroll from './onScroll.js';\r\nimport onLoad from './onLoad.js';\r\n\r\nlet dummyEventAttached = false;\r\nfunction dummyEventListener() {}\r\n\r\nconst events = (swiper, method) => {\r\n  const document = getDocument();\r\n  const { params, el, wrapperEl, device } = swiper;\r\n  const capture = !!params.nested;\r\n  const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\r\n  const swiperMethod = method;\r\n\r\n  // Touch Events\r\n  el[domMethod]('pointerdown', swiper.onTouchStart, { passive: false });\r\n  document[domMethod]('pointermove', swiper.onTouchMove, { passive: false, capture });\r\n  document[domMethod]('pointerup', swiper.onTouchEnd, { passive: true });\r\n  document[domMethod]('pointercancel', swiper.onTouchEnd, { passive: true });\r\n  document[domMethod]('pointerout', swiper.onTouchEnd, { passive: true });\r\n  document[domMethod]('pointerleave', swiper.onTouchEnd, { passive: true });\r\n\r\n  // Prevent Links Clicks\r\n  if (params.preventClicks || params.preventClicksPropagation) {\r\n    el[domMethod]('click', swiper.onClick, true);\r\n  }\r\n  if (params.cssMode) {\r\n    wrapperEl[domMethod]('scroll', swiper.onScroll);\r\n  }\r\n\r\n  // Resize handler\r\n  if (params.updateOnWindowResize) {\r\n    swiper[swiperMethod](\r\n      device.ios || device.android\r\n        ? 'resize orientationchange observerUpdate'\r\n        : 'resize observerUpdate',\r\n      onResize,\r\n      true,\r\n    );\r\n  } else {\r\n    swiper[swiperMethod]('observerUpdate', onResize, true);\r\n  }\r\n\r\n  // Images loader\r\n  el[domMethod]('load', swiper.onLoad, { capture: true });\r\n};\r\n\r\nfunction attachEvents() {\r\n  const swiper = this;\r\n  const document = getDocument();\r\n  const { params } = swiper;\r\n\r\n  swiper.onTouchStart = onTouchStart.bind(swiper);\r\n  swiper.onTouchMove = onTouchMove.bind(swiper);\r\n  swiper.onTouchEnd = onTouchEnd.bind(swiper);\r\n\r\n  if (params.cssMode) {\r\n    swiper.onScroll = onScroll.bind(swiper);\r\n  }\r\n\r\n  swiper.onClick = onClick.bind(swiper);\r\n  swiper.onLoad = onLoad.bind(swiper);\r\n\r\n  if (!dummyEventAttached) {\r\n    document.addEventListener('touchstart', dummyEventListener);\r\n    dummyEventAttached = true;\r\n  }\r\n\r\n  events(swiper, 'on');\r\n}\r\n\r\nfunction detachEvents() {\r\n  const swiper = this;\r\n  events(swiper, 'off');\r\n}\r\n\r\nexport default {\r\n  attachEvents,\r\n  detachEvents,\r\n};\r\n","import { extend } from '../../shared/utils.js';\n\nconst isGridEnabled = (swiper, params) => {\n  return swiper.grid && params.grid && params.grid.rows > 1;\n};\n\nexport default function setBreakpoint() {\n  const swiper = this;\n  const { realIndex, initialized, params, el } = swiper;\n  const breakpoints = params.breakpoints;\n  if (!breakpoints || (breakpoints && Object.keys(breakpoints).length === 0)) return;\n\n  // Get breakpoint for window width and update parameters\n  const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n\n  if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n\n  const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n  const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n  const wasMultiRow = isGridEnabled(swiper, params);\n  const isMultiRow = isGridEnabled(swiper, breakpointParams);\n\n  const wasEnabled = params.enabled;\n\n  if (wasMultiRow && !isMultiRow) {\n    el.classList.remove(\n      `${params.containerModifierClass}grid ${params.containerModifierClass}grid-column`,\n    );\n    swiper.emitContainerClasses();\n  } else if (!wasMultiRow && isMultiRow) {\n    el.classList.add(`${params.containerModifierClass}grid`);\n    if (\n      (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column') ||\n      (!breakpointParams.grid.fill && params.grid.fill === 'column')\n    ) {\n      el.classList.add(`${params.containerModifierClass}grid-column`);\n    }\n    swiper.emitContainerClasses();\n  }\n\n  // Toggle navigation, pagination, scrollbar\n  ['navigation', 'pagination', 'scrollbar'].forEach((prop) => {\n    const wasModuleEnabled = params[prop] && params[prop].enabled;\n    const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n    if (wasModuleEnabled && !isModuleEnabled) {\n      swiper[prop].disable();\n    }\n    if (!wasModuleEnabled && isModuleEnabled) {\n      swiper[prop].enable();\n    }\n  });\n\n  const directionChanged =\n    breakpointParams.direction && breakpointParams.direction !== params.direction;\n  const needsReLoop =\n    params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n  if (directionChanged && initialized) {\n    swiper.changeDirection();\n  }\n  extend(swiper.params, breakpointParams);\n\n  const isEnabled = swiper.params.enabled;\n\n  Object.assign(swiper, {\n    allowTouchMove: swiper.params.allowTouchMove,\n    allowSlideNext: swiper.params.allowSlideNext,\n    allowSlidePrev: swiper.params.allowSlidePrev,\n  });\n\n  if (wasEnabled && !isEnabled) {\n    swiper.disable();\n  } else if (!wasEnabled && isEnabled) {\n    swiper.enable();\n  }\n\n  swiper.currentBreakpoint = breakpoint;\n\n  swiper.emit('_beforeBreakpoint', breakpointParams);\n\n  if (needsReLoop && initialized) {\n    swiper.loopDestroy();\n    swiper.loopCreate(realIndex);\n    swiper.updateSlides();\n  }\n\n  swiper.emit('breakpoint', breakpointParams);\n}\n","import { getWindow } from 'ssr-window';\r\n\r\nexport default function getBreakpoint(breakpoints, base = 'window', containerEl) {\r\n  if (!breakpoints || (base === 'container' && !containerEl)) return undefined;\r\n  let breakpoint = false;\r\n\r\n  const window = getWindow();\r\n  const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\r\n\r\n  const points = Object.keys(breakpoints).map((point) => {\r\n    if (typeof point === 'string' && point.indexOf('@') === 0) {\r\n      const minRatio = parseFloat(point.substr(1));\r\n      const value = currentHeight * minRatio;\r\n      return { value, point };\r\n    }\r\n    return { value: point, point };\r\n  });\r\n\r\n  points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\r\n  for (let i = 0; i < points.length; i += 1) {\r\n    const { point, value } = points[i];\r\n    if (base === 'window') {\r\n      if (window.matchMedia(`(min-width: ${value}px)`).matches) {\r\n        breakpoint = point;\r\n      }\r\n    } else if (value <= containerEl.clientWidth) {\r\n      breakpoint = point;\r\n    }\r\n  }\r\n  return breakpoint || 'max';\r\n}\r\n","import setBreakpoint from './setBreakpoint.js';\r\nimport getBreakpoint from './getBreakpoint.js';\r\n\r\nexport default { setBreakpoint, getBreakpoint };\r\n","function prepareClasses(entries, prefix) {\n  const resultClasses = [];\n  entries.forEach((item) => {\n    if (typeof item === 'object') {\n      Object.keys(item).forEach((classNames) => {\n        if (item[classNames]) {\n          resultClasses.push(prefix + classNames);\n        }\n      });\n    } else if (typeof item === 'string') {\n      resultClasses.push(prefix + item);\n    }\n  });\n  return resultClasses;\n}\n\nexport default function addClasses() {\n  const swiper = this;\n  const { classNames, params, rtl, el, device } = swiper;\n  // prettier-ignore\n  const suffixes = prepareClasses([\n    'initialized',\n    params.direction,\n    { 'free-mode': swiper.params.freeMode && params.freeMode.enabled },\n    { 'autoheight': params.autoHeight },\n    { 'rtl': rtl },\n    { 'grid': params.grid && params.grid.rows > 1 },\n    { 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column' },\n    { 'android': device.android },\n    { 'ios': device.ios },\n    { 'css-mode': params.cssMode },\n    { 'centered': params.cssMode && params.centeredSlides },\n    { 'watch-progress': params.watchSlidesProgress },\n  ], params.containerModifierClass);\n  classNames.push(...suffixes);\n  el.classList.add(...classNames);\n  swiper.emitContainerClasses();\n}\n","export default function removeClasses() {\n  const swiper = this;\n  const { el, classNames } = swiper;\n\n  el.classList.remove(...classNames);\n  swiper.emitContainerClasses();\n}\n","import addClasses from './addClasses.js';\r\nimport removeClasses from './removeClasses.js';\r\n\r\nexport default { addClasses, removeClasses };\r\n","function checkOverflow() {\r\n  const swiper = this;\r\n  const { isLocked: wasLocked, params } = swiper;\r\n  const { slidesOffsetBefore } = params;\r\n\r\n  if (slidesOffsetBefore) {\r\n    const lastSlideIndex = swiper.slides.length - 1;\r\n    const lastSlideRightEdge =\r\n      swiper.slidesGrid[lastSlideIndex] +\r\n      swiper.slidesSizesGrid[lastSlideIndex] +\r\n      slidesOffsetBefore * 2;\r\n    swiper.isLocked = swiper.size > lastSlideRightEdge;\r\n  } else {\r\n    swiper.isLocked = swiper.snapGrid.length === 1;\r\n  }\r\n  if (params.allowSlideNext === true) {\r\n    swiper.allowSlideNext = !swiper.isLocked;\r\n  }\r\n  if (params.allowSlidePrev === true) {\r\n    swiper.allowSlidePrev = !swiper.isLocked;\r\n  }\r\n\r\n  if (wasLocked && wasLocked !== swiper.isLocked) {\r\n    swiper.isEnd = false;\r\n  }\r\n  if (wasLocked !== swiper.isLocked) {\r\n    swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\r\n  }\r\n}\r\n\r\nexport default { checkOverflow };\r\n","export default {\n  init: true,\n  direction: 'horizontal',\n  touchEventsTarget: 'wrapper',\n  initialSlide: 0,\n  speed: 300,\n  cssMode: false,\n  updateOnWindowResize: true,\n  resizeObserver: true,\n  nested: false,\n  createElements: false,\n  enabled: true,\n  focusableElements: 'input, select, option, textarea, button, video, label',\n\n  // Overrides\n  width: null,\n  height: null,\n\n  //\n  preventInteractionOnTransition: false,\n\n  // ssr\n  userAgent: null,\n  url: null,\n\n  // To support iOS's swipe-to-go-back gesture (when being used in-app).\n  edgeSwipeDetection: false,\n  edgeSwipeThreshold: 20,\n\n  // Autoheight\n  autoHeight: false,\n\n  // Set wrapper width\n  setWrapperSize: false,\n\n  // Virtual Translate\n  virtualTranslate: false,\n\n  // Effects\n  effect: 'slide', // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n  // Breakpoints\n  breakpoints: undefined,\n  breakpointsBase: 'window',\n\n  // Slides grid\n  spaceBetween: 0,\n  slidesPerView: 1,\n  slidesPerGroup: 1,\n  slidesPerGroupSkip: 0,\n  slidesPerGroupAuto: false,\n  centeredSlides: false,\n  centeredSlidesBounds: false,\n  slidesOffsetBefore: 0, // in px\n  slidesOffsetAfter: 0, // in px\n  normalizeSlideIndex: true,\n  centerInsufficientSlides: false,\n\n  // Disable swiper and hide navigation when container not overflow\n  watchOverflow: true,\n\n  // Round length\n  roundLengths: false,\n\n  // Touches\n  touchRatio: 1,\n  touchAngle: 45,\n  simulateTouch: true,\n  shortSwipes: true,\n  longSwipes: true,\n  longSwipesRatio: 0.5,\n  longSwipesMs: 300,\n  followFinger: true,\n  allowTouchMove: true,\n  threshold: 5,\n  touchMoveStopPropagation: false,\n  touchStartPreventDefault: true,\n  touchStartForcePreventDefault: false,\n  touchReleaseOnEdges: false,\n\n  // Unique Navigation Elements\n  uniqueNavElements: true,\n\n  // Resistance\n  resistance: true,\n  resistanceRatio: 0.85,\n\n  // Progress\n  watchSlidesProgress: false,\n\n  // Cursor\n  grabCursor: false,\n\n  // Clicks\n  preventClicks: true,\n  preventClicksPropagation: true,\n  slideToClickedSlide: false,\n\n  // loop\n  loop: false,\n\n  // rewind\n  rewind: false,\n\n  // Swiping/no swiping\n  allowSlidePrev: true,\n  allowSlideNext: true,\n  swipeHandler: null, // '.swipe-handler',\n  noSwiping: true,\n  noSwipingClass: 'swiper-no-swiping',\n  noSwipingSelector: null,\n\n  // Passive Listeners\n  passiveListeners: true,\n\n  maxBackfaceHiddenSlides: 10,\n\n  // NS\n  containerModifierClass: 'swiper-', // NEW\n  slideClass: 'swiper-slide',\n  slideActiveClass: 'swiper-slide-active',\n  slideVisibleClass: 'swiper-slide-visible',\n  slideNextClass: 'swiper-slide-next',\n  slidePrevClass: 'swiper-slide-prev',\n  wrapperClass: 'swiper-wrapper',\n  lazyPreloaderClass: 'swiper-lazy-preloader',\n\n  // Callbacks\n  runCallbacksOnInit: true,\n\n  // Internals\n  _emitClasses: false,\n};\n","import { extend } from '../shared/utils.js';\r\n\r\nexport default function moduleExtendParams(params, allModulesParams) {\r\n  return function extendParams(obj = {}) {\r\n    const moduleParamName = Object.keys(obj)[0];\r\n    const moduleParams = obj[moduleParamName];\r\n    if (typeof moduleParams !== 'object' || moduleParams === null) {\r\n      extend(allModulesParams, obj);\r\n      return;\r\n    }\r\n    if (\r\n      ['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 &&\r\n      params[moduleParamName] === true\r\n    ) {\r\n      params[moduleParamName] = { auto: true };\r\n    }\r\n    if (!(moduleParamName in params && 'enabled' in moduleParams)) {\r\n      extend(allModulesParams, obj);\r\n      return;\r\n    }\r\n    if (params[moduleParamName] === true) {\r\n      params[moduleParamName] = { enabled: true };\r\n    }\r\n    if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\r\n      params[moduleParamName].enabled = true;\r\n    }\r\n    if (!params[moduleParamName]) params[moduleParamName] = { enabled: false };\r\n    extend(allModulesParams, obj);\r\n  };\r\n}\r\n","/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport {\n  extend,\n  now,\n  deleteProps,\n  createElement,\n  elementChildren,\n  elementStyle,\n} from '../shared/utils.js';\nimport { getSupport } from '../shared/get-support.js';\nimport { getDevice } from '../shared/get-device.js';\nimport { getBrowser } from '../shared/get-browser.js';\n\nimport Resize from './modules/resize/resize.js';\nimport Observer from './modules/observer/observer.js';\n\nimport eventsEmitter from './events-emitter.js';\n\nimport update from './update/index.js';\nimport translate from './translate/index.js';\nimport transition from './transition/index.js';\nimport slide from './slide/index.js';\nimport loop from './loop/index.js';\nimport grabCursor from './grab-cursor/index.js';\nimport events from './events/index.js';\nimport breakpoints from './breakpoints/index.js';\nimport classes from './classes/index.js';\nimport checkOverflow from './check-overflow/index.js';\n\nimport defaults from './defaults.js';\nimport moduleExtendParams from './moduleExtendParams.js';\n\nconst prototypes = {\n  eventsEmitter,\n  update,\n  translate,\n  transition,\n  slide,\n  loop,\n  grabCursor,\n  events,\n  breakpoints,\n  checkOverflow,\n  classes,\n};\n\nconst extendedDefaults = {};\n\nclass Swiper {\n  constructor(...args) {\n    let el;\n    let params;\n    if (\n      args.length === 1 &&\n      args[0].constructor &&\n      Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object'\n    ) {\n      params = args[0];\n    } else {\n      [el, params] = args;\n    }\n    if (!params) params = {};\n\n    params = extend({}, params);\n    if (el && !params.el) params.el = el;\n\n    const document = getDocument();\n\n    if (\n      params.el &&\n      typeof params.el === 'string' &&\n      document.querySelectorAll(params.el).length > 1\n    ) {\n      const swipers = [];\n      document.querySelectorAll(params.el).forEach((containerEl) => {\n        const newParams = extend({}, params, { el: containerEl });\n        swipers.push(new Swiper(newParams));\n      });\n      // eslint-disable-next-line no-constructor-return\n      return swipers;\n    }\n\n    // Swiper Instance\n    const swiper = this;\n    swiper.__swiper__ = true;\n    swiper.support = getSupport();\n    swiper.device = getDevice({ userAgent: params.userAgent });\n    swiper.browser = getBrowser();\n\n    swiper.eventsListeners = {};\n    swiper.eventsAnyListeners = [];\n    swiper.modules = [...swiper.__modules__];\n    if (params.modules && Array.isArray(params.modules)) {\n      swiper.modules.push(...params.modules);\n    }\n\n    const allModulesParams = {};\n    swiper.modules.forEach((mod) => {\n      mod({\n        params,\n        swiper,\n        extendParams: moduleExtendParams(params, allModulesParams),\n        on: swiper.on.bind(swiper),\n        once: swiper.once.bind(swiper),\n        off: swiper.off.bind(swiper),\n        emit: swiper.emit.bind(swiper),\n      });\n    });\n\n    // Extend defaults with modules params\n    const swiperParams = extend({}, defaults, allModulesParams);\n\n    // Extend defaults with passed params\n    swiper.params = extend({}, swiperParams, extendedDefaults, params);\n    swiper.originalParams = extend({}, swiper.params);\n    swiper.passedParams = extend({}, params);\n\n    // add event listeners\n    if (swiper.params && swiper.params.on) {\n      Object.keys(swiper.params.on).forEach((eventName) => {\n        swiper.on(eventName, swiper.params.on[eventName]);\n      });\n    }\n    if (swiper.params && swiper.params.onAny) {\n      swiper.onAny(swiper.params.onAny);\n    }\n\n    // Extend Swiper\n    Object.assign(swiper, {\n      enabled: swiper.params.enabled,\n      el,\n\n      // Classes\n      classNames: [],\n\n      // Slides\n      slides: [],\n      slidesGrid: [],\n      snapGrid: [],\n      slidesSizesGrid: [],\n\n      // isDirection\n      isHorizontal() {\n        return swiper.params.direction === 'horizontal';\n      },\n      isVertical() {\n        return swiper.params.direction === 'vertical';\n      },\n\n      // Indexes\n      activeIndex: 0,\n      realIndex: 0,\n\n      //\n      isBeginning: true,\n      isEnd: false,\n\n      // Props\n      translate: 0,\n      previousTranslate: 0,\n      progress: 0,\n      velocity: 0,\n      animating: false,\n\n      // Locks\n      allowSlideNext: swiper.params.allowSlideNext,\n      allowSlidePrev: swiper.params.allowSlidePrev,\n\n      // Touch Events\n      touchEventsData: {\n        isTouched: undefined,\n        isMoved: undefined,\n        allowTouchCallbacks: undefined,\n        touchStartTime: undefined,\n        isScrolling: undefined,\n        currentTranslate: undefined,\n        startTranslate: undefined,\n        allowThresholdMove: undefined,\n        // Form elements to match\n        focusableElements: swiper.params.focusableElements,\n        // Last click time\n        lastClickTime: now(),\n        clickTimeout: undefined,\n        // Velocities\n        velocities: [],\n        allowMomentumBounce: undefined,\n        startMoving: undefined,\n        evCache: [],\n      },\n\n      // Clicks\n      allowClick: true,\n\n      // Touches\n      allowTouchMove: swiper.params.allowTouchMove,\n\n      touches: {\n        startX: 0,\n        startY: 0,\n        currentX: 0,\n        currentY: 0,\n        diff: 0,\n      },\n\n      // Images\n      imagesToLoad: [],\n      imagesLoaded: 0,\n    });\n\n    swiper.emit('_swiper');\n\n    // Init\n    if (swiper.params.init) {\n      swiper.init();\n    }\n\n    // Return app instance\n    // eslint-disable-next-line no-constructor-return\n    return swiper;\n  }\n\n  recalcSlides() {\n    const swiper = this;\n    const { slidesEl, params } = swiper;\n    swiper.slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n  }\n\n  enable() {\n    const swiper = this;\n    if (swiper.enabled) return;\n    swiper.enabled = true;\n    if (swiper.params.grabCursor) {\n      swiper.setGrabCursor();\n    }\n    swiper.emit('enable');\n  }\n\n  disable() {\n    const swiper = this;\n    if (!swiper.enabled) return;\n    swiper.enabled = false;\n    if (swiper.params.grabCursor) {\n      swiper.unsetGrabCursor();\n    }\n    swiper.emit('disable');\n  }\n\n  setProgress(progress, speed) {\n    const swiper = this;\n    progress = Math.min(Math.max(progress, 0), 1);\n    const min = swiper.minTranslate();\n    const max = swiper.maxTranslate();\n    const current = (max - min) * progress + min;\n    swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n    swiper.updateActiveIndex();\n    swiper.updateSlidesClasses();\n  }\n\n  emitContainerClasses() {\n    const swiper = this;\n    if (!swiper.params._emitClasses || !swiper.el) return;\n    const cls = swiper.el.className.split(' ').filter((className) => {\n      return (\n        className.indexOf('swiper') === 0 ||\n        className.indexOf(swiper.params.containerModifierClass) === 0\n      );\n    });\n    swiper.emit('_containerClasses', cls.join(' '));\n  }\n\n  getSlideClasses(slideEl) {\n    const swiper = this;\n    if (swiper.destroyed) return '';\n\n    return slideEl.className\n      .split(' ')\n      .filter((className) => {\n        return (\n          className.indexOf('swiper-slide') === 0 ||\n          className.indexOf(swiper.params.slideClass) === 0\n        );\n      })\n      .join(' ');\n  }\n\n  emitSlidesClasses() {\n    const swiper = this;\n    if (!swiper.params._emitClasses || !swiper.el) return;\n    const updates = [];\n    swiper.slides.forEach((slideEl) => {\n      const classNames = swiper.getSlideClasses(slideEl);\n      updates.push({ slideEl, classNames });\n      swiper.emit('_slideClass', slideEl, classNames);\n    });\n    swiper.emit('_slideClasses', updates);\n  }\n\n  slidesPerViewDynamic(view = 'current', exact = false) {\n    const swiper = this;\n    const { params, slides, slidesGrid, slidesSizesGrid, size: swiperSize, activeIndex } = swiper;\n    let spv = 1;\n    if (params.centeredSlides) {\n      let slideSize = slides[activeIndex].swiperSlideSize;\n      let breakLoop;\n      for (let i = activeIndex + 1; i < slides.length; i += 1) {\n        if (slides[i] && !breakLoop) {\n          slideSize += slides[i].swiperSlideSize;\n          spv += 1;\n          if (slideSize > swiperSize) breakLoop = true;\n        }\n      }\n      for (let i = activeIndex - 1; i >= 0; i -= 1) {\n        if (slides[i] && !breakLoop) {\n          slideSize += slides[i].swiperSlideSize;\n          spv += 1;\n          if (slideSize > swiperSize) breakLoop = true;\n        }\n      }\n    } else {\n      // eslint-disable-next-line\n      if (view === 'current') {\n        for (let i = activeIndex + 1; i < slides.length; i += 1) {\n          const slideInView = exact\n            ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize\n            : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n          if (slideInView) {\n            spv += 1;\n          }\n        }\n      } else {\n        // previous\n        for (let i = activeIndex - 1; i >= 0; i -= 1) {\n          const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n          if (slideInView) {\n            spv += 1;\n          }\n        }\n      }\n    }\n    return spv;\n  }\n\n  update() {\n    const swiper = this;\n    if (!swiper || swiper.destroyed) return;\n    const { snapGrid, params } = swiper;\n    // Breakpoints\n    if (params.breakpoints) {\n      swiper.setBreakpoint();\n    }\n    swiper.updateSize();\n    swiper.updateSlides();\n    swiper.updateProgress();\n    swiper.updateSlidesClasses();\n\n    function setTranslate() {\n      const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n      const newTranslate = Math.min(\n        Math.max(translateValue, swiper.maxTranslate()),\n        swiper.minTranslate(),\n      );\n      swiper.setTranslate(newTranslate);\n      swiper.updateActiveIndex();\n      swiper.updateSlidesClasses();\n    }\n    let translated;\n    if (swiper.params.freeMode && swiper.params.freeMode.enabled) {\n      setTranslate();\n      if (swiper.params.autoHeight) {\n        swiper.updateAutoHeight();\n      }\n    } else {\n      if (\n        (swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) &&\n        swiper.isEnd &&\n        !swiper.params.centeredSlides\n      ) {\n        translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n      } else {\n        translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n      }\n      if (!translated) {\n        setTranslate();\n      }\n    }\n    if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n      swiper.checkOverflow();\n    }\n    swiper.emit('update');\n  }\n\n  changeDirection(newDirection, needUpdate = true) {\n    const swiper = this;\n    const currentDirection = swiper.params.direction;\n    if (!newDirection) {\n      // eslint-disable-next-line\n      newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n    }\n    if (\n      newDirection === currentDirection ||\n      (newDirection !== 'horizontal' && newDirection !== 'vertical')\n    ) {\n      return swiper;\n    }\n\n    swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`);\n    swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`);\n    swiper.emitContainerClasses();\n\n    swiper.params.direction = newDirection;\n\n    swiper.slides.forEach((slideEl) => {\n      if (newDirection === 'vertical') {\n        slideEl.style.width = '';\n      } else {\n        slideEl.style.height = '';\n      }\n    });\n\n    swiper.emit('changeDirection');\n    if (needUpdate) swiper.update();\n\n    return swiper;\n  }\n\n  changeLanguageDirection(direction) {\n    const swiper = this;\n    if ((swiper.rtl && direction === 'rtl') || (!swiper.rtl && direction === 'ltr')) return;\n    swiper.rtl = direction === 'rtl';\n    swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n    if (swiper.rtl) {\n      swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`);\n      swiper.el.dir = 'rtl';\n    } else {\n      swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`);\n      swiper.el.dir = 'ltr';\n    }\n    swiper.update();\n  }\n\n  mount(element) {\n    const swiper = this;\n    if (swiper.mounted) return true;\n\n    // Find el\n    let el = element || swiper.params.el;\n    if (typeof el === 'string') {\n      el = document.querySelector(el);\n    }\n    if (!el) {\n      return false;\n    }\n\n    el.swiper = swiper;\n    if (el.shadowEl) {\n      swiper.isElement = true;\n    }\n\n    const getWrapperSelector = () => {\n      return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n    };\n\n    const getWrapper = () => {\n      if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n        const res = el.shadowRoot.querySelector(getWrapperSelector());\n        // Children needs to return slot items\n        return res;\n      }\n      return elementChildren(el, getWrapperSelector())[0];\n    };\n    // Find Wrapper\n    let wrapperEl = getWrapper();\n    if (!wrapperEl && swiper.params.createElements) {\n      wrapperEl = createElement('div', swiper.params.wrapperClass);\n      el.append(wrapperEl);\n      elementChildren(el, `.${swiper.params.slideClass}`).forEach((slideEl) => {\n        wrapperEl.append(slideEl);\n      });\n    }\n\n    Object.assign(swiper, {\n      el,\n      wrapperEl,\n      slidesEl: swiper.isElement ? el : wrapperEl,\n      mounted: true,\n\n      // RTL\n      rtl: el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl',\n      rtlTranslate:\n        swiper.params.direction === 'horizontal' &&\n        (el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl'),\n      wrongRTL: elementStyle(wrapperEl, 'display') === '-webkit-box',\n    });\n\n    return true;\n  }\n\n  init(el) {\n    const swiper = this;\n    if (swiper.initialized) return swiper;\n\n    const mounted = swiper.mount(el);\n    if (mounted === false) return swiper;\n\n    swiper.emit('beforeInit');\n\n    // Set breakpoint\n    if (swiper.params.breakpoints) {\n      swiper.setBreakpoint();\n    }\n\n    // Add Classes\n    swiper.addClasses();\n\n    // Update size\n    swiper.updateSize();\n\n    // Update slides\n    swiper.updateSlides();\n\n    if (swiper.params.watchOverflow) {\n      swiper.checkOverflow();\n    }\n\n    // Set Grab Cursor\n    if (swiper.params.grabCursor && swiper.enabled) {\n      swiper.setGrabCursor();\n    }\n\n    // Slide To Initial Slide\n    if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n      swiper.slideTo(\n        swiper.params.initialSlide + swiper.virtual.slidesBefore,\n        0,\n        swiper.params.runCallbacksOnInit,\n        false,\n        true,\n      );\n    } else {\n      swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n    }\n\n    // Create loop\n    if (swiper.params.loop) {\n      swiper.loopCreate();\n    }\n\n    // Attach events\n    swiper.attachEvents();\n\n    // Init Flag\n    swiper.initialized = true;\n\n    // Emit\n    swiper.emit('init');\n    swiper.emit('afterInit');\n\n    return swiper;\n  }\n\n  destroy(deleteInstance = true, cleanStyles = true) {\n    const swiper = this;\n    const { params, el, wrapperEl, slides } = swiper;\n\n    if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n      return null;\n    }\n\n    swiper.emit('beforeDestroy');\n\n    // Init Flag\n    swiper.initialized = false;\n\n    // Detach events\n    swiper.detachEvents();\n\n    // Destroy loop\n    if (params.loop) {\n      swiper.loopDestroy();\n    }\n\n    // Cleanup styles\n    if (cleanStyles) {\n      swiper.removeClasses();\n      el.removeAttribute('style');\n      wrapperEl.removeAttribute('style');\n      if (slides && slides.length) {\n        slides.forEach((slideEl) => {\n          slideEl.classList.remove(\n            params.slideVisibleClass,\n            params.slideActiveClass,\n            params.slideNextClass,\n            params.slidePrevClass,\n          );\n          slideEl.removeAttribute('style');\n          slideEl.removeAttribute('data-swiper-slide-index');\n        });\n      }\n    }\n\n    swiper.emit('destroy');\n\n    // Detach emitter events\n    Object.keys(swiper.eventsListeners).forEach((eventName) => {\n      swiper.off(eventName);\n    });\n\n    if (deleteInstance !== false) {\n      swiper.el.swiper = null;\n      deleteProps(swiper);\n    }\n    swiper.destroyed = true;\n\n    return null;\n  }\n\n  static extendDefaults(newDefaults) {\n    extend(extendedDefaults, newDefaults);\n  }\n\n  static get extendedDefaults() {\n    return extendedDefaults;\n  }\n\n  static get defaults() {\n    return defaults;\n  }\n\n  static installModule(mod) {\n    if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n    const modules = Swiper.prototype.__modules__;\n\n    if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n      modules.push(mod);\n    }\n  }\n\n  static use(module) {\n    if (Array.isArray(module)) {\n      module.forEach((m) => Swiper.installModule(m));\n      return Swiper;\n    }\n    Swiper.installModule(module);\n    return Swiper;\n  }\n}\n\nObject.keys(prototypes).forEach((prototypeGroup) => {\n  Object.keys(prototypes[prototypeGroup]).forEach((protoMethod) => {\n    Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n  });\n});\n\nSwiper.use([Resize, Observer]);\n\nexport default Swiper;\n","import { createElement, elementChildren, setCSSProperty } from '../../shared/utils.js';\n\nexport default function Virtual({ swiper, extendParams, on, emit }) {\n  extendParams({\n    virtual: {\n      enabled: false,\n      slides: [],\n      cache: true,\n      renderSlide: null,\n      renderExternal: null,\n      renderExternalUpdate: true,\n      addSlidesBefore: 0,\n      addSlidesAfter: 0,\n    },\n  });\n\n  let cssModeTimeout;\n\n  swiper.virtual = {\n    cache: {},\n    from: undefined,\n    to: undefined,\n    slides: [],\n    offset: 0,\n    slidesGrid: [],\n  };\n\n  const tempDOM = document.createElement('div');\n\n  function renderSlide(slide, index) {\n    const params = swiper.params.virtual;\n    if (params.cache && swiper.virtual.cache[index]) {\n      return swiper.virtual.cache[index];\n    }\n    // eslint-disable-next-line\n    let slideEl;\n    if (params.renderSlide) {\n      slideEl = params.renderSlide.call(swiper, slide, index);\n      if (typeof slideEl === 'string') {\n        tempDOM.innerHTML = slideEl;\n        slideEl = tempDOM.children[0];\n      }\n    } else if (swiper.isElement) {\n      slideEl = createElement('swiper-slide');\n    } else {\n      slideEl = createElement('div', swiper.params.slideClass);\n    }\n    slideEl.setAttribute('data-swiper-slide-index', index);\n    if (!params.renderSlide) {\n      slideEl.textContent = slide;\n    }\n\n    if (params.cache) swiper.virtual.cache[index] = slideEl;\n    return slideEl;\n  }\n\n  function update(force) {\n    const { slidesPerView, slidesPerGroup, centeredSlides, loop: isLoop } = swiper.params;\n    const { addSlidesBefore, addSlidesAfter } = swiper.params.virtual;\n    const {\n      from: previousFrom,\n      to: previousTo,\n      slides,\n      slidesGrid: previousSlidesGrid,\n      offset: previousOffset,\n    } = swiper.virtual;\n    if (!swiper.params.cssMode) {\n      swiper.updateActiveIndex();\n    }\n\n    const activeIndex = swiper.activeIndex || 0;\n\n    let offsetProp;\n    if (swiper.rtlTranslate) offsetProp = 'right';\n    else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\n\n    let slidesAfter;\n    let slidesBefore;\n    if (centeredSlides) {\n      slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\n      slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\n    } else {\n      slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter;\n      slidesBefore = (isLoop ? slidesPerView : slidesPerGroup) + addSlidesBefore;\n    }\n    let from = activeIndex - slidesBefore;\n    let to = activeIndex + slidesAfter;\n    if (!isLoop) {\n      from = Math.max(from, 0);\n      to = Math.min(to, slides.length - 1);\n    }\n    let offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n    if (isLoop && activeIndex >= slidesBefore) {\n      from -= slidesBefore;\n      if (!centeredSlides) offset += swiper.slidesGrid[0];\n    } else if (isLoop && activeIndex < slidesBefore) {\n      from = -slidesBefore;\n      if (centeredSlides) offset += swiper.slidesGrid[0];\n    }\n\n    Object.assign(swiper.virtual, {\n      from,\n      to,\n      offset,\n      slidesGrid: swiper.slidesGrid,\n      slidesBefore,\n      slidesAfter,\n    });\n\n    function onRendered() {\n      swiper.updateSlides();\n      swiper.updateProgress();\n      swiper.updateSlidesClasses();\n      emit('virtualUpdate');\n    }\n\n    if (previousFrom === from && previousTo === to && !force) {\n      if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\n        swiper.slides.forEach((slideEl) => {\n          slideEl.style[offsetProp] = `${offset}px`;\n        });\n      }\n      swiper.updateProgress();\n      emit('virtualUpdate');\n      return;\n    }\n    if (swiper.params.virtual.renderExternal) {\n      swiper.params.virtual.renderExternal.call(swiper, {\n        offset,\n        from,\n        to,\n        slides: (function getSlides() {\n          const slidesToRender = [];\n          for (let i = from; i <= to; i += 1) {\n            slidesToRender.push(slides[i]);\n          }\n          return slidesToRender;\n        })(),\n      });\n      if (swiper.params.virtual.renderExternalUpdate) {\n        onRendered();\n      } else {\n        emit('virtualUpdate');\n      }\n      return;\n    }\n    const prependIndexes = [];\n    const appendIndexes = [];\n\n    const getSlideIndex = (index) => {\n      let slideIndex = index;\n      if (index < 0) {\n        slideIndex = slides.length + index;\n      } else if (slideIndex >= slides.length) {\n        // eslint-disable-next-line\n        slideIndex = slideIndex - slides.length;\n      }\n      return slideIndex;\n    };\n\n    if (force) {\n      swiper.slidesEl\n        .querySelectorAll(`.${swiper.params.slideClass}, swiper-slide`)\n        .forEach((slideEl) => {\n          slideEl.remove();\n        });\n    } else {\n      for (let i = previousFrom; i <= previousTo; i += 1) {\n        if (i < from || i > to) {\n          const slideIndex = getSlideIndex(i);\n          swiper.slidesEl\n            .querySelectorAll(\n              `.${swiper.params.slideClass}[data-swiper-slide-index=\"${slideIndex}\"], swiper-slide[data-swiper-slide-index=\"${slideIndex}\"]`,\n            )\n            .forEach((slideEl) => {\n              slideEl.remove();\n            });\n        }\n      }\n    }\n\n    const loopFrom = isLoop ? -slides.length : 0;\n    const loopTo = isLoop ? slides.length * 2 : slides.length;\n    for (let i = loopFrom; i < loopTo; i += 1) {\n      if (i >= from && i <= to) {\n        const slideIndex = getSlideIndex(i);\n        if (typeof previousTo === 'undefined' || force) {\n          appendIndexes.push(slideIndex);\n        } else {\n          if (i > previousTo) appendIndexes.push(slideIndex);\n          if (i < previousFrom) prependIndexes.push(slideIndex);\n        }\n      }\n    }\n    appendIndexes.forEach((index) => {\n      swiper.slidesEl.append(renderSlide(slides[index], index));\n    });\n    if (isLoop) {\n      for (let i = prependIndexes.length - 1; i >= 0; i -= 1) {\n        const index = prependIndexes[i];\n        swiper.slidesEl.prepend(renderSlide(slides[index], index));\n      }\n    } else {\n      prependIndexes.sort((a, b) => b - a);\n      prependIndexes.forEach((index) => {\n        swiper.slidesEl.prepend(renderSlide(slides[index], index));\n      });\n    }\n    elementChildren(swiper.slidesEl, '.swiper-slide, swiper-slide').forEach((slideEl) => {\n      slideEl.style[offsetProp] = `${offset}px`;\n    });\n    onRendered();\n  }\n\n  function appendSlide(slides) {\n    if (typeof slides === 'object' && 'length' in slides) {\n      for (let i = 0; i < slides.length; i += 1) {\n        if (slides[i]) swiper.virtual.slides.push(slides[i]);\n      }\n    } else {\n      swiper.virtual.slides.push(slides);\n    }\n    update(true);\n  }\n  function prependSlide(slides) {\n    const activeIndex = swiper.activeIndex;\n    let newActiveIndex = activeIndex + 1;\n    let numberOfNewSlides = 1;\n\n    if (Array.isArray(slides)) {\n      for (let i = 0; i < slides.length; i += 1) {\n        if (slides[i]) swiper.virtual.slides.unshift(slides[i]);\n      }\n      newActiveIndex = activeIndex + slides.length;\n      numberOfNewSlides = slides.length;\n    } else {\n      swiper.virtual.slides.unshift(slides);\n    }\n    if (swiper.params.virtual.cache) {\n      const cache = swiper.virtual.cache;\n      const newCache = {};\n      Object.keys(cache).forEach((cachedIndex) => {\n        const cachedEl = cache[cachedIndex];\n        const cachedElIndex = cachedEl.getAttribute('data-swiper-slide-index');\n        if (cachedElIndex) {\n          cachedEl.setAttribute(\n            'data-swiper-slide-index',\n            parseInt(cachedElIndex, 10) + numberOfNewSlides,\n          );\n        }\n        newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = cachedEl;\n      });\n      swiper.virtual.cache = newCache;\n    }\n    update(true);\n    swiper.slideTo(newActiveIndex, 0);\n  }\n  function removeSlide(slidesIndexes) {\n    if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;\n    let activeIndex = swiper.activeIndex;\n    if (Array.isArray(slidesIndexes)) {\n      for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) {\n        swiper.virtual.slides.splice(slidesIndexes[i], 1);\n        if (swiper.params.virtual.cache) {\n          delete swiper.virtual.cache[slidesIndexes[i]];\n        }\n        if (slidesIndexes[i] < activeIndex) activeIndex -= 1;\n        activeIndex = Math.max(activeIndex, 0);\n      }\n    } else {\n      swiper.virtual.slides.splice(slidesIndexes, 1);\n      if (swiper.params.virtual.cache) {\n        delete swiper.virtual.cache[slidesIndexes];\n      }\n      if (slidesIndexes < activeIndex) activeIndex -= 1;\n      activeIndex = Math.max(activeIndex, 0);\n    }\n    update(true);\n    swiper.slideTo(activeIndex, 0);\n  }\n  function removeAllSlides() {\n    swiper.virtual.slides = [];\n    if (swiper.params.virtual.cache) {\n      swiper.virtual.cache = {};\n    }\n    update(true);\n    swiper.slideTo(0, 0);\n  }\n\n  on('beforeInit', () => {\n    if (!swiper.params.virtual.enabled) return;\n    let domSlidesAssigned;\n    if (typeof swiper.passedParams.virtual.slides === 'undefined') {\n      const slides = swiper.slidesEl.querySelectorAll(`.${swiper.params.slideClass}, swiper-slide`);\n      if (slides && slides.length) {\n        swiper.virtual.slides = [...slides];\n        domSlidesAssigned = true;\n        slides.forEach((slideEl, slideIndex) => {\n          slideEl.setAttribute('data-swiper-slide-index', slideIndex);\n          swiper.virtual.cache[slideIndex] = slideEl;\n          slideEl.remove();\n        });\n      }\n    }\n    if (!domSlidesAssigned) {\n      swiper.virtual.slides = swiper.params.virtual.slides;\n    }\n\n    swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);\n\n    swiper.params.watchSlidesProgress = true;\n    swiper.originalParams.watchSlidesProgress = true;\n\n    if (!swiper.params.initialSlide) {\n      update();\n    }\n  });\n  on('setTranslate', () => {\n    if (!swiper.params.virtual.enabled) return;\n    if (swiper.params.cssMode && !swiper._immediateVirtual) {\n      clearTimeout(cssModeTimeout);\n      cssModeTimeout = setTimeout(() => {\n        update();\n      }, 100);\n    } else {\n      update();\n    }\n  });\n  on('init update resize', () => {\n    if (!swiper.params.virtual.enabled) return;\n    if (swiper.params.cssMode) {\n      setCSSProperty(swiper.wrapperEl, '--swiper-virtual-size', `${swiper.virtualSize}px`);\n    }\n  });\n\n  Object.assign(swiper.virtual, {\n    appendSlide,\n    prependSlide,\n    removeSlide,\n    removeAllSlides,\n    update,\n  });\n}\n","/* eslint-disable consistent-return */\nimport { getWindow, getDocument } from 'ssr-window';\nimport { elementOffset, elementParents } from '../../shared/utils.js';\n\nexport default function Keyboard({ swiper, extendParams, on, emit }) {\n  const document = getDocument();\n  const window = getWindow();\n  swiper.keyboard = {\n    enabled: false,\n  };\n  extendParams({\n    keyboard: {\n      enabled: false,\n      onlyInViewport: true,\n      pageUpDown: true,\n    },\n  });\n\n  function handle(event) {\n    if (!swiper.enabled) return;\n\n    const { rtlTranslate: rtl } = swiper;\n    let e = event;\n    if (e.originalEvent) e = e.originalEvent; // jquery fix\n    const kc = e.keyCode || e.charCode;\n    const pageUpDown = swiper.params.keyboard.pageUpDown;\n    const isPageUp = pageUpDown && kc === 33;\n    const isPageDown = pageUpDown && kc === 34;\n    const isArrowLeft = kc === 37;\n    const isArrowRight = kc === 39;\n    const isArrowUp = kc === 38;\n    const isArrowDown = kc === 40;\n    // Directions locks\n    if (\n      !swiper.allowSlideNext &&\n      ((swiper.isHorizontal() && isArrowRight) ||\n        (swiper.isVertical() && isArrowDown) ||\n        isPageDown)\n    ) {\n      return false;\n    }\n    if (\n      !swiper.allowSlidePrev &&\n      ((swiper.isHorizontal() && isArrowLeft) || (swiper.isVertical() && isArrowUp) || isPageUp)\n    ) {\n      return false;\n    }\n    if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n      return undefined;\n    }\n    if (\n      document.activeElement &&\n      document.activeElement.nodeName &&\n      (document.activeElement.nodeName.toLowerCase() === 'input' ||\n        document.activeElement.nodeName.toLowerCase() === 'textarea')\n    ) {\n      return undefined;\n    }\n    if (\n      swiper.params.keyboard.onlyInViewport &&\n      (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)\n    ) {\n      let inView = false;\n      // Check that swiper should be inside of visible area of window\n      if (\n        elementParents(swiper.el, `.${swiper.params.slideClass}, swiper-slide`).length > 0 &&\n        elementParents(swiper.el, `.${swiper.params.slideActiveClass}`).length === 0\n      ) {\n        return undefined;\n      }\n\n      const el = swiper.el;\n      const swiperWidth = el.clientWidth;\n      const swiperHeight = el.clientHeight;\n      const windowWidth = window.innerWidth;\n      const windowHeight = window.innerHeight;\n      const swiperOffset = elementOffset(el);\n      if (rtl) swiperOffset.left -= el.scrollLeft;\n      const swiperCoord = [\n        [swiperOffset.left, swiperOffset.top],\n        [swiperOffset.left + swiperWidth, swiperOffset.top],\n        [swiperOffset.left, swiperOffset.top + swiperHeight],\n        [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight],\n      ];\n      for (let i = 0; i < swiperCoord.length; i += 1) {\n        const point = swiperCoord[i];\n        if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {\n          if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n          inView = true;\n        }\n      }\n      if (!inView) return undefined;\n    }\n    if (swiper.isHorizontal()) {\n      if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\n        if (e.preventDefault) e.preventDefault();\n        else e.returnValue = false;\n      }\n      if (((isPageDown || isArrowRight) && !rtl) || ((isPageUp || isArrowLeft) && rtl))\n        swiper.slideNext();\n      if (((isPageUp || isArrowLeft) && !rtl) || ((isPageDown || isArrowRight) && rtl))\n        swiper.slidePrev();\n    } else {\n      if (isPageUp || isPageDown || isArrowUp || isArrowDown) {\n        if (e.preventDefault) e.preventDefault();\n        else e.returnValue = false;\n      }\n      if (isPageDown || isArrowDown) swiper.slideNext();\n      if (isPageUp || isArrowUp) swiper.slidePrev();\n    }\n    emit('keyPress', kc);\n    return undefined;\n  }\n  function enable() {\n    if (swiper.keyboard.enabled) return;\n    document.addEventListener('keydown', handle);\n    swiper.keyboard.enabled = true;\n  }\n  function disable() {\n    if (!swiper.keyboard.enabled) return;\n    document.removeEventListener('keydown', handle);\n    swiper.keyboard.enabled = false;\n  }\n\n  on('init', () => {\n    if (swiper.params.keyboard.enabled) {\n      enable();\n    }\n  });\n  on('destroy', () => {\n    if (swiper.keyboard.enabled) {\n      disable();\n    }\n  });\n\n  Object.assign(swiper.keyboard, {\n    enable,\n    disable,\n  });\n}\n","/* eslint-disable consistent-return */\nimport { getWindow } from 'ssr-window';\nimport { now, nextTick } from '../../shared/utils.js';\n\nexport default function Mousewheel({ swiper, extendParams, on, emit }) {\n  const window = getWindow();\n\n  extendParams({\n    mousewheel: {\n      enabled: false,\n      releaseOnEdges: false,\n      invert: false,\n      forceToAxis: false,\n      sensitivity: 1,\n      eventsTarget: 'container',\n      thresholdDelta: null,\n      thresholdTime: null,\n    },\n  });\n\n  swiper.mousewheel = {\n    enabled: false,\n  };\n\n  let timeout;\n  let lastScrollTime = now();\n  let lastEventBeforeSnap;\n  const recentWheelEvents = [];\n\n  function normalize(e) {\n    // Reasonable defaults\n    const PIXEL_STEP = 10;\n    const LINE_HEIGHT = 40;\n    const PAGE_HEIGHT = 800;\n\n    let sX = 0;\n    let sY = 0; // spinX, spinY\n    let pX = 0;\n    let pY = 0; // pixelX, pixelY\n\n    // Legacy\n    if ('detail' in e) {\n      sY = e.detail;\n    }\n    if ('wheelDelta' in e) {\n      sY = -e.wheelDelta / 120;\n    }\n    if ('wheelDeltaY' in e) {\n      sY = -e.wheelDeltaY / 120;\n    }\n    if ('wheelDeltaX' in e) {\n      sX = -e.wheelDeltaX / 120;\n    }\n\n    // side scrolling on FF with DOMMouseScroll\n    if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n      sX = sY;\n      sY = 0;\n    }\n\n    pX = sX * PIXEL_STEP;\n    pY = sY * PIXEL_STEP;\n\n    if ('deltaY' in e) {\n      pY = e.deltaY;\n    }\n    if ('deltaX' in e) {\n      pX = e.deltaX;\n    }\n\n    if (e.shiftKey && !pX) {\n      // if user scrolls with shift he wants horizontal scroll\n      pX = pY;\n      pY = 0;\n    }\n\n    if ((pX || pY) && e.deltaMode) {\n      if (e.deltaMode === 1) {\n        // delta in LINE units\n        pX *= LINE_HEIGHT;\n        pY *= LINE_HEIGHT;\n      } else {\n        // delta in PAGE units\n        pX *= PAGE_HEIGHT;\n        pY *= PAGE_HEIGHT;\n      }\n    }\n\n    // Fall-back if spin cannot be determined\n    if (pX && !sX) {\n      sX = pX < 1 ? -1 : 1;\n    }\n    if (pY && !sY) {\n      sY = pY < 1 ? -1 : 1;\n    }\n\n    return {\n      spinX: sX,\n      spinY: sY,\n      pixelX: pX,\n      pixelY: pY,\n    };\n  }\n  function handleMouseEnter() {\n    if (!swiper.enabled) return;\n    swiper.mouseEntered = true;\n  }\n  function handleMouseLeave() {\n    if (!swiper.enabled) return;\n    swiper.mouseEntered = false;\n  }\n  function animateSlider(newEvent) {\n    if (\n      swiper.params.mousewheel.thresholdDelta &&\n      newEvent.delta < swiper.params.mousewheel.thresholdDelta\n    ) {\n      // Prevent if delta of wheel scroll delta is below configured threshold\n      return false;\n    }\n\n    if (\n      swiper.params.mousewheel.thresholdTime &&\n      now() - lastScrollTime < swiper.params.mousewheel.thresholdTime\n    ) {\n      // Prevent if time between scrolls is below configured threshold\n      return false;\n    }\n\n    // If the movement is NOT big enough and\n    // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n    //   Don't go any further (avoid insignificant scroll movement).\n    if (newEvent.delta >= 6 && now() - lastScrollTime < 60) {\n      // Return false as a default\n      return true;\n    }\n    // If user is scrolling towards the end:\n    //   If the slider hasn't hit the latest slide or\n    //   if the slider is a loop and\n    //   if the slider isn't moving right now:\n    //     Go to next slide and\n    //     emit a scroll event.\n    // Else (the user is scrolling towards the beginning) and\n    // if the slider hasn't hit the first slide or\n    // if the slider is a loop and\n    // if the slider isn't moving right now:\n    //   Go to prev slide and\n    //   emit a scroll event.\n    if (newEvent.direction < 0) {\n      if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n        swiper.slideNext();\n        emit('scroll', newEvent.raw);\n      }\n    } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n      swiper.slidePrev();\n      emit('scroll', newEvent.raw);\n    }\n    // If you got here is because an animation has been triggered so store the current time\n    lastScrollTime = new window.Date().getTime();\n    // Return false as a default\n    return false;\n  }\n  function releaseScroll(newEvent) {\n    const params = swiper.params.mousewheel;\n    if (newEvent.direction < 0) {\n      if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n        // Return true to animate scroll on edges\n        return true;\n      }\n    } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n      // Return true to animate scroll on edges\n      return true;\n    }\n    return false;\n  }\n  function handle(event) {\n    let e = event;\n    let disableParentSwiper = true;\n    if (!swiper.enabled) return;\n    const params = swiper.params.mousewheel;\n\n    if (swiper.params.cssMode) {\n      e.preventDefault();\n    }\n\n    let targetEl = swiper.el;\n    if (swiper.params.mousewheel.eventsTarget !== 'container') {\n      targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);\n    }\n    const targetElContainsTarget = targetEl && targetEl.contains(e.target);\n    if (!swiper.mouseEntered && !targetElContainsTarget && !params.releaseOnEdges) return true;\n\n    if (e.originalEvent) e = e.originalEvent; // jquery fix\n    let delta = 0;\n    const rtlFactor = swiper.rtlTranslate ? -1 : 1;\n\n    const data = normalize(e);\n\n    if (params.forceToAxis) {\n      if (swiper.isHorizontal()) {\n        if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;\n        else return true;\n      } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;\n      else return true;\n    } else {\n      delta =\n        Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n    }\n\n    if (delta === 0) return true;\n\n    if (params.invert) delta = -delta;\n\n    // Get the scroll positions\n    let positions = swiper.getTranslate() + delta * params.sensitivity;\n\n    if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();\n    if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate();\n\n    // When loop is true:\n    //     the disableParentSwiper will be true.\n    // When loop is false:\n    //     if the scroll positions is not on edge,\n    //     then the disableParentSwiper will be true.\n    //     if the scroll on edge positions,\n    //     then the disableParentSwiper will be false.\n    disableParentSwiper = swiper.params.loop\n      ? true\n      : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());\n\n    if (disableParentSwiper && swiper.params.nested) e.stopPropagation();\n\n    if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) {\n      // Register the new event in a variable which stores the relevant data\n      const newEvent = {\n        time: now(),\n        delta: Math.abs(delta),\n        direction: Math.sign(delta),\n        raw: event,\n      };\n\n      // Keep the most recent events\n      if (recentWheelEvents.length >= 2) {\n        recentWheelEvents.shift(); // only store the last N events\n      }\n      const prevEvent = recentWheelEvents.length\n        ? recentWheelEvents[recentWheelEvents.length - 1]\n        : undefined;\n      recentWheelEvents.push(newEvent);\n\n      // If there is at least one previous recorded event:\n      //   If direction has changed or\n      //   if the scroll is quicker than the previous one:\n      //     Animate the slider.\n      // Else (this is the first time the wheel is moved):\n      //     Animate the slider.\n      if (prevEvent) {\n        if (\n          newEvent.direction !== prevEvent.direction ||\n          newEvent.delta > prevEvent.delta ||\n          newEvent.time > prevEvent.time + 150\n        ) {\n          animateSlider(newEvent);\n        }\n      } else {\n        animateSlider(newEvent);\n      }\n\n      // If it's time to release the scroll:\n      //   Return now so you don't hit the preventDefault.\n      if (releaseScroll(newEvent)) {\n        return true;\n      }\n    } else {\n      // Freemode or scrollContainer:\n\n      // If we recently snapped after a momentum scroll, then ignore wheel events\n      // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n      // or if it's a new scroll (larger delta or inverse sign as last event before\n      // an end-of-momentum snap).\n      const newEvent = {\n        time: now(),\n        delta: Math.abs(delta),\n        direction: Math.sign(delta),\n      };\n      const ignoreWheelEvents =\n        lastEventBeforeSnap &&\n        newEvent.time < lastEventBeforeSnap.time + 500 &&\n        newEvent.delta <= lastEventBeforeSnap.delta &&\n        newEvent.direction === lastEventBeforeSnap.direction;\n      if (!ignoreWheelEvents) {\n        lastEventBeforeSnap = undefined;\n\n        if (swiper.params.loop) {\n          swiper.loopFix();\n        }\n        let position = swiper.getTranslate() + delta * params.sensitivity;\n        const wasBeginning = swiper.isBeginning;\n        const wasEnd = swiper.isEnd;\n\n        if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n        if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n\n        swiper.setTransition(0);\n        swiper.setTranslate(position);\n        swiper.updateProgress();\n        swiper.updateActiveIndex();\n        swiper.updateSlidesClasses();\n\n        if ((!wasBeginning && swiper.isBeginning) || (!wasEnd && swiper.isEnd)) {\n          swiper.updateSlidesClasses();\n        }\n\n        if (swiper.params.freeMode.sticky) {\n          // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n          // the end of a momentum scroll by storing recent (N=15?) wheel events.\n          // 1. do all N events have decreasing or same (absolute value) delta?\n          // 2. did all N events arrive in the last M (M=500?) msecs?\n          // 3. does the earliest event have an (absolute value) delta that's\n          //    at least P (P=1?) larger than the most recent event's delta?\n          // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n          // If 1-4 are \"yes\" then we're near the end of a momentum scroll deceleration.\n          // Snap immediately and ignore remaining wheel events in this scroll.\n          // See comment above for \"remaining wheel events in this scroll\" determination.\n          // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n          clearTimeout(timeout);\n          timeout = undefined;\n          if (recentWheelEvents.length >= 15) {\n            recentWheelEvents.shift(); // only store the last N events\n          }\n          const prevEvent = recentWheelEvents.length\n            ? recentWheelEvents[recentWheelEvents.length - 1]\n            : undefined;\n          const firstEvent = recentWheelEvents[0];\n          recentWheelEvents.push(newEvent);\n          if (\n            prevEvent &&\n            (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)\n          ) {\n            // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n            recentWheelEvents.splice(0);\n          } else if (\n            recentWheelEvents.length >= 15 &&\n            newEvent.time - firstEvent.time < 500 &&\n            firstEvent.delta - newEvent.delta >= 1 &&\n            newEvent.delta <= 6\n          ) {\n            // We're at the end of the deceleration of a momentum scroll, so there's no need\n            // to wait for more events. Snap ASAP on the next tick.\n            // Also, because there's some remaining momentum we'll bias the snap in the\n            // direction of the ongoing scroll because it's better UX for the scroll to snap\n            // in the same direction as the scroll instead of reversing to snap.  Therefore,\n            // if it's already scrolled more than 20% in the current direction, keep going.\n            const snapToThreshold = delta > 0 ? 0.8 : 0.2;\n            lastEventBeforeSnap = newEvent;\n            recentWheelEvents.splice(0);\n            timeout = nextTick(() => {\n              swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n            }, 0); // no delay; move on next tick\n          }\n          if (!timeout) {\n            // if we get here, then we haven't detected the end of a momentum scroll, so\n            // we'll consider a scroll \"complete\" when there haven't been any wheel events\n            // for 500ms.\n            timeout = nextTick(() => {\n              const snapToThreshold = 0.5;\n              lastEventBeforeSnap = newEvent;\n              recentWheelEvents.splice(0);\n              swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n            }, 500);\n          }\n        }\n\n        // Emit event\n        if (!ignoreWheelEvents) emit('scroll', e);\n\n        // Stop autoplay\n        if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction)\n          swiper.autoplay.stop();\n        // Return page scroll on edge positions\n        if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\n      }\n    }\n\n    if (e.preventDefault) e.preventDefault();\n    else e.returnValue = false;\n    return false;\n  }\n\n  function events(method) {\n    let targetEl = swiper.el;\n    if (swiper.params.mousewheel.eventsTarget !== 'container') {\n      targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);\n    }\n    targetEl[method]('mouseenter', handleMouseEnter);\n    targetEl[method]('mouseleave', handleMouseLeave);\n    targetEl[method]('wheel', handle);\n  }\n\n  function enable() {\n    if (swiper.params.cssMode) {\n      swiper.wrapperEl.removeEventListener('wheel', handle);\n      return true;\n    }\n    if (swiper.mousewheel.enabled) return false;\n    events('addEventListener');\n    swiper.mousewheel.enabled = true;\n    return true;\n  }\n  function disable() {\n    if (swiper.params.cssMode) {\n      swiper.wrapperEl.addEventListener(event, handle);\n      return true;\n    }\n    if (!swiper.mousewheel.enabled) return false;\n    events('removeEventListener');\n    swiper.mousewheel.enabled = false;\n    return true;\n  }\n\n  on('init', () => {\n    if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n      disable();\n    }\n    if (swiper.params.mousewheel.enabled) enable();\n  });\n  on('destroy', () => {\n    if (swiper.params.cssMode) {\n      enable();\n    }\n    if (swiper.mousewheel.enabled) disable();\n  });\n\n  Object.assign(swiper.mousewheel, {\n    enable,\n    disable,\n  });\n}\n","import { createElement, elementChildren } from './utils.js';\n\nexport default function createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n  if (swiper.params.createElements) {\n    Object.keys(checkProps).forEach((key) => {\n      if (!params[key] && params.auto === true) {\n        let element = elementChildren(swiper.el, `.${checkProps[key]}`)[0];\n        if (!element) {\n          element = createElement('div', checkProps[key]);\n          element.className = checkProps[key];\n          swiper.el.append(element);\n        }\n        params[key] = element;\n        originalParams[key] = element;\n      }\n    });\n  }\n  return params;\n}\n","import createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\n\nexport default function Navigation({ swiper, extendParams, on, emit }) {\n  extendParams({\n    navigation: {\n      nextEl: null,\n      prevEl: null,\n\n      hideOnClick: false,\n      disabledClass: 'swiper-button-disabled',\n      hiddenClass: 'swiper-button-hidden',\n      lockClass: 'swiper-button-lock',\n      navigationDisabledClass: 'swiper-navigation-disabled',\n    },\n  });\n\n  swiper.navigation = {\n    nextEl: null,\n    prevEl: null,\n  };\n\n  const makeElementsArray = (el) => {\n    if (!Array.isArray(el)) el = [el].filter((e) => !!e);\n    return el;\n  };\n\n  function getEl(el) {\n    let res;\n    if (el && typeof el === 'string' && swiper.isElement) {\n      res = swiper.el.shadowRoot.querySelector(el);\n      if (res) return res;\n    }\n    if (el) {\n      if (typeof el === 'string') res = [...document.querySelectorAll(el)];\n      if (\n        swiper.params.uniqueNavElements &&\n        typeof el === 'string' &&\n        res.length > 1 &&\n        swiper.el.querySelectorAll(el).length === 1\n      ) {\n        res = swiper.el.querySelector(el);\n      }\n    }\n    // if (Array.isArray(res) && res.length === 1) res = res[0];\n    return res;\n  }\n\n  function toggleEl(el, disabled) {\n    const params = swiper.params.navigation;\n    el = makeElementsArray(el);\n    el.forEach((subEl) => {\n      if (subEl) {\n        subEl.classList[disabled ? 'add' : 'remove'](params.disabledClass);\n        if (subEl.tagName === 'BUTTON') subEl.disabled = disabled;\n        if (swiper.params.watchOverflow && swiper.enabled) {\n          subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n        }\n      }\n    });\n  }\n  function update() {\n    // Update Navigation Buttons\n    const { nextEl, prevEl } = swiper.navigation;\n    if (swiper.params.loop) {\n      toggleEl(prevEl, false);\n      toggleEl(nextEl, false);\n      return;\n    }\n\n    toggleEl(prevEl, swiper.isBeginning && !swiper.params.rewind);\n    toggleEl(nextEl, swiper.isEnd && !swiper.params.rewind);\n  }\n  function onPrevClick(e) {\n    e.preventDefault();\n    if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n    swiper.slidePrev();\n    emit('navigationPrev');\n  }\n  function onNextClick(e) {\n    e.preventDefault();\n    if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n    swiper.slideNext();\n    emit('navigationNext');\n  }\n  function init() {\n    const params = swiper.params.navigation;\n\n    swiper.params.navigation = createElementIfNotDefined(\n      swiper,\n      swiper.originalParams.navigation,\n      swiper.params.navigation,\n      {\n        nextEl: 'swiper-button-next',\n        prevEl: 'swiper-button-prev',\n      },\n    );\n    if (!(params.nextEl || params.prevEl)) return;\n\n    let nextEl = getEl(params.nextEl);\n    let prevEl = getEl(params.prevEl);\n\n    Object.assign(swiper.navigation, {\n      nextEl,\n      prevEl,\n    });\n    nextEl = makeElementsArray(nextEl);\n    prevEl = makeElementsArray(prevEl);\n\n    const initButton = (el, dir) => {\n      if (el) {\n        el.addEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n      }\n      if (!swiper.enabled && el) {\n        el.classList.add(params.lockClass);\n      }\n    };\n\n    nextEl.forEach((el) => initButton(el, 'next'));\n    prevEl.forEach((el) => initButton(el, 'prev'));\n  }\n  function destroy() {\n    let { nextEl, prevEl } = swiper.navigation;\n    nextEl = makeElementsArray(nextEl);\n    prevEl = makeElementsArray(prevEl);\n    const destroyButton = (el, dir) => {\n      el.removeEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n      el.classList.remove(swiper.params.navigation.disabledClass);\n    };\n    nextEl.forEach((el) => destroyButton(el, 'next'));\n    prevEl.forEach((el) => destroyButton(el, 'prev'));\n  }\n\n  on('init', () => {\n    if (swiper.params.navigation.enabled === false) {\n      // eslint-disable-next-line\n      disable();\n    } else {\n      init();\n      update();\n    }\n  });\n  on('toEdge fromEdge lock unlock', () => {\n    update();\n  });\n  on('destroy', () => {\n    destroy();\n  });\n  on('enable disable', () => {\n    let { nextEl, prevEl } = swiper.navigation;\n    nextEl = makeElementsArray(nextEl);\n    prevEl = makeElementsArray(prevEl);\n    [...nextEl, ...prevEl]\n      .filter((el) => !!el)\n      .forEach((el) =>\n        el.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.navigation.lockClass),\n      );\n  });\n  on('click', (_s, e) => {\n    let { nextEl, prevEl } = swiper.navigation;\n    nextEl = makeElementsArray(nextEl);\n    prevEl = makeElementsArray(prevEl);\n    const targetEl = e.target;\n    if (\n      swiper.params.navigation.hideOnClick &&\n      !prevEl.includes(targetEl) &&\n      !nextEl.includes(targetEl)\n    ) {\n      if (\n        swiper.pagination &&\n        swiper.params.pagination &&\n        swiper.params.pagination.clickable &&\n        (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))\n      )\n        return;\n      let isHidden;\n      if (nextEl.length) {\n        isHidden = nextEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n      } else if (prevEl.length) {\n        isHidden = prevEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n      }\n      if (isHidden === true) {\n        emit('navigationShow');\n      } else {\n        emit('navigationHide');\n      }\n      [...nextEl, ...prevEl]\n        .filter((el) => !!el)\n        .forEach((el) => el.classList.toggle(swiper.params.navigation.hiddenClass));\n    }\n  });\n\n  const enable = () => {\n    swiper.el.classList.remove(swiper.params.navigation.navigationDisabledClass);\n    init();\n    update();\n  };\n\n  const disable = () => {\n    swiper.el.classList.add(swiper.params.navigation.navigationDisabledClass);\n    destroy();\n  };\n\n  Object.assign(swiper.navigation, {\n    enable,\n    disable,\n    update,\n    init,\n    destroy,\n  });\n}\n","export default function classesToSelector(classes = '') {\r\n  return `.${classes\r\n    .trim()\r\n    .replace(/([\\.:!\\/])/g, '\\\\$1') // eslint-disable-line\r\n    .replace(/ /g, '.')}`;\r\n}\r\n","import classesToSelector from '../../shared/classes-to-selector.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nimport { elementIndex, elementOuterSize, elementParents } from '../../shared/utils.js';\n\nexport default function Pagination({ swiper, extendParams, on, emit }) {\n  const pfx = 'swiper-pagination';\n  extendParams({\n    pagination: {\n      el: null,\n      bulletElement: 'span',\n      clickable: false,\n      hideOnClick: false,\n      renderBullet: null,\n      renderProgressbar: null,\n      renderFraction: null,\n      renderCustom: null,\n      progressbarOpposite: false,\n      type: 'bullets', // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n      dynamicBullets: false,\n      dynamicMainBullets: 1,\n      formatFractionCurrent: (number) => number,\n      formatFractionTotal: (number) => number,\n      bulletClass: `${pfx}-bullet`,\n      bulletActiveClass: `${pfx}-bullet-active`,\n      modifierClass: `${pfx}-`,\n      currentClass: `${pfx}-current`,\n      totalClass: `${pfx}-total`,\n      hiddenClass: `${pfx}-hidden`,\n      progressbarFillClass: `${pfx}-progressbar-fill`,\n      progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n      clickableClass: `${pfx}-clickable`,\n      lockClass: `${pfx}-lock`,\n      horizontalClass: `${pfx}-horizontal`,\n      verticalClass: `${pfx}-vertical`,\n      paginationDisabledClass: `${pfx}-disabled`,\n    },\n  });\n\n  swiper.pagination = {\n    el: null,\n    bullets: [],\n  };\n\n  let bulletSize;\n  let dynamicBulletIndex = 0;\n\n  const makeElementsArray = (el) => {\n    if (!Array.isArray(el)) el = [el].filter((e) => !!e);\n    return el;\n  };\n\n  function isPaginationDisabled() {\n    return (\n      !swiper.params.pagination.el ||\n      !swiper.pagination.el ||\n      (Array.isArray(swiper.pagination.el) && swiper.pagination.el.length === 0)\n    );\n  }\n\n  function setSideBullets(bulletEl, position) {\n    const { bulletActiveClass } = swiper.params.pagination;\n    bulletEl = bulletEl.nextElementSibling;\n    if (bulletEl) {\n      bulletEl.classList.add(`${bulletActiveClass}-${position}`);\n      bulletEl = bulletEl.nextElementSibling;\n      if (bulletEl) {\n        bulletEl.classList.add(`${bulletActiveClass}-${position}-${position}`);\n      }\n    }\n  }\n\n  function onBulletClick(e) {\n    const isBullet = e.target.matches(classesToSelector(swiper.params.pagination.bulletClass));\n    if (!isBullet) return;\n    e.preventDefault();\n    const index = elementIndex(e.target) * swiper.params.slidesPerGroup;\n    if (swiper.params.loop) {\n      swiper.slideToLoop(index);\n    } else {\n      swiper.slideTo(index);\n    }\n  }\n\n  function update() {\n    // Render || Update Pagination bullets/items\n    const rtl = swiper.rtl;\n    const params = swiper.params.pagination;\n    if (isPaginationDisabled()) return;\n\n    let el = swiper.pagination.el;\n    el = makeElementsArray(el);\n    // Current/Total\n    let current;\n    const slidesLength =\n      swiper.virtual && swiper.params.virtual.enabled\n        ? swiper.virtual.slides.length\n        : swiper.slides.length;\n    const total = swiper.params.loop\n      ? Math.ceil(slidesLength / swiper.params.slidesPerGroup)\n      : swiper.snapGrid.length;\n    if (swiper.params.loop) {\n      current =\n        swiper.params.slidesPerGroup > 1\n          ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup)\n          : swiper.realIndex;\n    } else if (typeof swiper.snapIndex !== 'undefined') {\n      current = swiper.snapIndex;\n    } else {\n      current = swiper.activeIndex || 0;\n    }\n    // Types\n    if (\n      params.type === 'bullets' &&\n      swiper.pagination.bullets &&\n      swiper.pagination.bullets.length > 0\n    ) {\n      const bullets = swiper.pagination.bullets;\n      let firstIndex;\n      let lastIndex;\n      let midIndex;\n      if (params.dynamicBullets) {\n        bulletSize = elementOuterSize(bullets[0], swiper.isHorizontal() ? 'width' : 'height', true);\n        el.forEach((subEl) => {\n          subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = `${\n            bulletSize * (params.dynamicMainBullets + 4)\n          }px`;\n        });\n\n        if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n          dynamicBulletIndex += current - (swiper.previousIndex || 0);\n          if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n            dynamicBulletIndex = params.dynamicMainBullets - 1;\n          } else if (dynamicBulletIndex < 0) {\n            dynamicBulletIndex = 0;\n          }\n        }\n        firstIndex = Math.max(current - dynamicBulletIndex, 0);\n        lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n        midIndex = (lastIndex + firstIndex) / 2;\n      }\n      bullets.forEach((bulletEl) => {\n        bulletEl.classList.remove(\n          ...['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(\n            (suffix) => `${params.bulletActiveClass}${suffix}`,\n          ),\n        );\n      });\n\n      if (el.length > 1) {\n        bullets.forEach((bullet) => {\n          const bulletIndex = elementIndex(bullet);\n          if (bulletIndex === current) {\n            bullet.classList.add(params.bulletActiveClass);\n          }\n          if (params.dynamicBullets) {\n            if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n              bullet.classList.add(`${params.bulletActiveClass}-main`);\n            }\n            if (bulletIndex === firstIndex) {\n              setSideBullets(bullet, 'prev');\n            }\n            if (bulletIndex === lastIndex) {\n              setSideBullets(bullet, 'next');\n            }\n          }\n        });\n      } else {\n        const bullet = bullets[current];\n        bullet.classList.add(params.bulletActiveClass);\n        if (params.dynamicBullets) {\n          const firstDisplayedBullet = bullets[firstIndex];\n          const lastDisplayedBullet = bullets[lastIndex];\n          for (let i = firstIndex; i <= lastIndex; i += 1) {\n            bullets[i].classList.add(`${params.bulletActiveClass}-main`);\n          }\n\n          setSideBullets(firstDisplayedBullet, 'prev');\n          setSideBullets(lastDisplayedBullet, 'next');\n        }\n      }\n      if (params.dynamicBullets) {\n        const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n        const bulletsOffset =\n          (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n        const offsetProp = rtl ? 'right' : 'left';\n        bullets.forEach((bullet) => {\n          bullet.style[swiper.isHorizontal() ? offsetProp : 'top'] = `${bulletsOffset}px`;\n        });\n      }\n    }\n    el.forEach((subEl, subElIndex) => {\n      if (params.type === 'fraction') {\n        subEl.querySelectorAll(classesToSelector(params.currentClass)).forEach((fractionEl) => {\n          fractionEl.textContent = params.formatFractionCurrent(current + 1);\n        });\n        subEl.querySelectorAll(classesToSelector(params.totalClass)).forEach((totalEl) => {\n          totalEl.textContent = params.formatFractionTotal(total);\n        });\n      }\n      if (params.type === 'progressbar') {\n        let progressbarDirection;\n        if (params.progressbarOpposite) {\n          progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n        } else {\n          progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n        }\n        const scale = (current + 1) / total;\n        let scaleX = 1;\n        let scaleY = 1;\n        if (progressbarDirection === 'horizontal') {\n          scaleX = scale;\n        } else {\n          scaleY = scale;\n        }\n        subEl\n          .querySelectorAll(classesToSelector(params.progressbarFillClass))\n          .forEach((progressEl) => {\n            progressEl.style.transform = `translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`;\n            progressEl.style.transitionDuration = `${swiper.params.speed}ms`;\n          });\n      }\n      if (params.type === 'custom' && params.renderCustom) {\n        subEl.innerHTML = params.renderCustom(swiper, current + 1, total);\n        if (subElIndex === 0) emit('paginationRender', subEl);\n      } else {\n        if (subElIndex === 0) emit('paginationRender', subEl);\n        emit('paginationUpdate', subEl);\n      }\n      if (swiper.params.watchOverflow && swiper.enabled) {\n        subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n      }\n    });\n  }\n  function render() {\n    // Render Container\n    const params = swiper.params.pagination;\n    if (isPaginationDisabled()) return;\n    const slidesLength =\n      swiper.virtual && swiper.params.virtual.enabled\n        ? swiper.virtual.slides.length\n        : swiper.slides.length;\n\n    let el = swiper.pagination.el;\n    el = makeElementsArray(el);\n    let paginationHTML = '';\n    if (params.type === 'bullets') {\n      let numberOfBullets = swiper.params.loop\n        ? Math.ceil(slidesLength / swiper.params.slidesPerGroup)\n        : swiper.snapGrid.length;\n      if (\n        swiper.params.freeMode &&\n        swiper.params.freeMode.enabled &&\n        numberOfBullets > slidesLength\n      ) {\n        numberOfBullets = slidesLength;\n      }\n      for (let i = 0; i < numberOfBullets; i += 1) {\n        if (params.renderBullet) {\n          paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n        } else {\n          paginationHTML += `<${params.bulletElement} class=\"${params.bulletClass}\"></${params.bulletElement}>`;\n        }\n      }\n    }\n    if (params.type === 'fraction') {\n      if (params.renderFraction) {\n        paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n      } else {\n        paginationHTML =\n          `<span class=\"${params.currentClass}\"></span>` +\n          ' / ' +\n          `<span class=\"${params.totalClass}\"></span>`;\n      }\n    }\n    if (params.type === 'progressbar') {\n      if (params.renderProgressbar) {\n        paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n      } else {\n        paginationHTML = `<span class=\"${params.progressbarFillClass}\"></span>`;\n      }\n    }\n\n    el.forEach((subEl) => {\n      if (params.type !== 'custom') {\n        subEl.innerHTML = paginationHTML || '';\n      }\n      if (params.type === 'bullets') {\n        swiper.pagination.bullets = [\n          ...subEl.querySelectorAll(classesToSelector(params.bulletClass)),\n        ];\n      }\n    });\n    if (params.type !== 'custom') {\n      emit('paginationRender', el[0]);\n    }\n  }\n  function init() {\n    swiper.params.pagination = createElementIfNotDefined(\n      swiper,\n      swiper.originalParams.pagination,\n      swiper.params.pagination,\n      { el: 'swiper-pagination' },\n    );\n    const params = swiper.params.pagination;\n    if (!params.el) return;\n    let el;\n    if (typeof params.el === 'string' && swiper.isElement) {\n      el = swiper.el.shadowRoot.querySelector(params.el);\n    }\n    if (!el && typeof params.el === 'string') {\n      el = [...document.querySelectorAll(params.el)];\n    }\n    if (!el) {\n      el = params.el;\n    }\n    if (!el || el.length === 0) return;\n\n    if (\n      swiper.params.uniqueNavElements &&\n      typeof params.el === 'string' &&\n      Array.isArray(el) &&\n      el.length > 1\n    ) {\n      el = [...swiper.el.querySelectorAll(params.el)];\n      // check if it belongs to another nested Swiper\n      if (el.length > 1) {\n        el = el.filter((subEl) => {\n          if (elementParents(subEl, '.swiper')[0] !== swiper.el) return false;\n          return true;\n        })[0];\n      }\n    }\n    if (Array.isArray(el) && el.length === 1) el = el[0];\n\n    Object.assign(swiper.pagination, {\n      el,\n    });\n\n    el = makeElementsArray(el);\n    el.forEach((subEl) => {\n      if (params.type === 'bullets' && params.clickable) {\n        subEl.classList.add(params.clickableClass);\n      }\n\n      subEl.classList.add(params.modifierClass + params.type);\n      subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n\n      if (params.type === 'bullets' && params.dynamicBullets) {\n        subEl.classList.add(`${params.modifierClass}${params.type}-dynamic`);\n        dynamicBulletIndex = 0;\n        if (params.dynamicMainBullets < 1) {\n          params.dynamicMainBullets = 1;\n        }\n      }\n      if (params.type === 'progressbar' && params.progressbarOpposite) {\n        subEl.classList.add(params.progressbarOppositeClass);\n      }\n\n      if (params.clickable) {\n        subEl.addEventListener('click', onBulletClick);\n      }\n\n      if (!swiper.enabled) {\n        subEl.classList.add(params.lockClass);\n      }\n    });\n  }\n\n  function destroy() {\n    const params = swiper.params.pagination;\n    if (isPaginationDisabled()) return;\n    let el = swiper.pagination.el;\n    if (el) {\n      el = makeElementsArray(el);\n      el.forEach((subEl) => {\n        subEl.classList.remove(params.hiddenClass);\n        subEl.classList.remove(params.modifierClass + params.type);\n        subEl.classList.remove(\n          swiper.isHorizontal() ? params.horizontalClass : params.verticalClass,\n        );\n        if (params.clickable) {\n          subEl.removeEventListener('click', onBulletClick);\n        }\n      });\n    }\n\n    if (swiper.pagination.bullets)\n      swiper.pagination.bullets.forEach((subEl) =>\n        subEl.classList.remove(params.bulletActiveClass),\n      );\n  }\n\n  on('init', () => {\n    if (swiper.params.pagination.enabled === false) {\n      // eslint-disable-next-line\n      disable();\n    } else {\n      init();\n      render();\n      update();\n    }\n  });\n  on('activeIndexChange', () => {\n    if (typeof swiper.snapIndex === 'undefined') {\n      update();\n    }\n  });\n  on('snapIndexChange', () => {\n    update();\n  });\n  on('snapGridLengthChange', () => {\n    render();\n    update();\n  });\n  on('destroy', () => {\n    destroy();\n  });\n  on('enable disable', () => {\n    let { el } = swiper.pagination;\n    if (el) {\n      el = makeElementsArray(el);\n      el.forEach((subEl) =>\n        subEl.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.pagination.lockClass),\n      );\n    }\n  });\n  on('lock unlock', () => {\n    update();\n  });\n  on('click', (_s, e) => {\n    const targetEl = e.target;\n    let { el } = swiper.pagination;\n    if (!Array.isArray(el)) el = [el].filter((element) => !!element);\n    if (\n      swiper.params.pagination.el &&\n      swiper.params.pagination.hideOnClick &&\n      el &&\n      el.length > 0 &&\n      !targetEl.classList.contains(swiper.params.pagination.bulletClass)\n    ) {\n      if (\n        swiper.navigation &&\n        ((swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl) ||\n          (swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl))\n      )\n        return;\n      const isHidden = el[0].classList.contains(swiper.params.pagination.hiddenClass);\n      if (isHidden === true) {\n        emit('paginationShow');\n      } else {\n        emit('paginationHide');\n      }\n      el.forEach((subEl) => subEl.classList.toggle(swiper.params.pagination.hiddenClass));\n    }\n  });\n\n  const enable = () => {\n    swiper.el.classList.remove(swiper.params.pagination.paginationDisabledClass);\n    let { el } = swiper.pagination;\n    if (el) {\n      el = makeElementsArray(el);\n      el.forEach((subEl) =>\n        subEl.classList.remove(swiper.params.pagination.paginationDisabledClass),\n      );\n    }\n    init();\n    render();\n    update();\n  };\n\n  const disable = () => {\n    swiper.el.classList.add(swiper.params.pagination.paginationDisabledClass);\n    let { el } = swiper.pagination;\n    if (el) {\n      el = makeElementsArray(el);\n      el.forEach((subEl) => subEl.classList.add(swiper.params.pagination.paginationDisabledClass));\n    }\n    destroy();\n  };\n\n  Object.assign(swiper.pagination, {\n    enable,\n    disable,\n    render,\n    update,\n    init,\n    destroy,\n  });\n}\n","import { getDocument } from 'ssr-window';\nimport { createElement, elementOffset, nextTick } from '../../shared/utils.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\n\nexport default function Scrollbar({ swiper, extendParams, on, emit }) {\n  const document = getDocument();\n\n  let isTouched = false;\n  let timeout = null;\n  let dragTimeout = null;\n  let dragStartPos;\n  let dragSize;\n  let trackSize;\n  let divider;\n\n  extendParams({\n    scrollbar: {\n      el: null,\n      dragSize: 'auto',\n      hide: false,\n      draggable: false,\n      snapOnRelease: true,\n      lockClass: 'swiper-scrollbar-lock',\n      dragClass: 'swiper-scrollbar-drag',\n      scrollbarDisabledClass: 'swiper-scrollbar-disabled',\n      horizontalClass: `swiper-scrollbar-horizontal`,\n      verticalClass: `swiper-scrollbar-vertical`,\n    },\n  });\n\n  swiper.scrollbar = {\n    el: null,\n    dragEl: null,\n  };\n\n  function setTranslate() {\n    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n    const { scrollbar, rtlTranslate: rtl } = swiper;\n    const { dragEl, el } = scrollbar;\n    const params = swiper.params.scrollbar;\n    const progress = swiper.params.loop ? swiper.progressLoop : swiper.progress;\n\n    let newSize = dragSize;\n    let newPos = (trackSize - dragSize) * progress;\n    if (rtl) {\n      newPos = -newPos;\n      if (newPos > 0) {\n        newSize = dragSize - newPos;\n        newPos = 0;\n      } else if (-newPos + dragSize > trackSize) {\n        newSize = trackSize + newPos;\n      }\n    } else if (newPos < 0) {\n      newSize = dragSize + newPos;\n      newPos = 0;\n    } else if (newPos + dragSize > trackSize) {\n      newSize = trackSize - newPos;\n    }\n    if (swiper.isHorizontal()) {\n      dragEl.style.transform = `translate3d(${newPos}px, 0, 0)`;\n      dragEl.style.width = `${newSize}px`;\n    } else {\n      dragEl.style.transform = `translate3d(0px, ${newPos}px, 0)`;\n      dragEl.style.height = `${newSize}px`;\n    }\n    if (params.hide) {\n      clearTimeout(timeout);\n      el.style.opacity = 1;\n      timeout = setTimeout(() => {\n        el.style.opacity = 0;\n        el.style.transition = '400ms';\n      }, 1000);\n    }\n  }\n  function setTransition(duration) {\n    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n    swiper.scrollbar.dragEl.style.transition = `${duration}ms`;\n  }\n  function updateSize() {\n    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n\n    const { scrollbar } = swiper;\n    const { dragEl, el } = scrollbar;\n\n    dragEl.style.width = '';\n    dragEl.style.height = '';\n    trackSize = swiper.isHorizontal() ? el.offsetWidth : el.offsetHeight;\n\n    divider =\n      swiper.size /\n      (swiper.virtualSize +\n        swiper.params.slidesOffsetBefore -\n        (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0));\n    if (swiper.params.scrollbar.dragSize === 'auto') {\n      dragSize = trackSize * divider;\n    } else {\n      dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n    }\n\n    if (swiper.isHorizontal()) {\n      dragEl.style.width = `${dragSize}px`;\n    } else {\n      dragEl.style.height = `${dragSize}px`;\n    }\n\n    if (divider >= 1) {\n      el.style.display = 'none';\n    } else {\n      el.style.display = '';\n    }\n    if (swiper.params.scrollbar.hide) {\n      el.style.opacity = 0;\n    }\n\n    if (swiper.params.watchOverflow && swiper.enabled) {\n      scrollbar.el.classList[swiper.isLocked ? 'add' : 'remove'](swiper.params.scrollbar.lockClass);\n    }\n  }\n  function getPointerPosition(e) {\n    return swiper.isHorizontal() ? e.clientX : e.clientY;\n  }\n  function setDragPosition(e) {\n    const { scrollbar, rtlTranslate: rtl } = swiper;\n    const { el } = scrollbar;\n\n    let positionRatio;\n    positionRatio =\n      (getPointerPosition(e) -\n        elementOffset(el)[swiper.isHorizontal() ? 'left' : 'top'] -\n        (dragStartPos !== null ? dragStartPos : dragSize / 2)) /\n      (trackSize - dragSize);\n    positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n    if (rtl) {\n      positionRatio = 1 - positionRatio;\n    }\n\n    const position =\n      swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\n\n    swiper.updateProgress(position);\n    swiper.setTranslate(position);\n    swiper.updateActiveIndex();\n    swiper.updateSlidesClasses();\n  }\n  function onDragStart(e) {\n    const params = swiper.params.scrollbar;\n    const { scrollbar, wrapperEl } = swiper;\n    const { el, dragEl } = scrollbar;\n    isTouched = true;\n    dragStartPos =\n      e.target === dragEl\n        ? getPointerPosition(e) -\n          e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top']\n        : null;\n    e.preventDefault();\n    e.stopPropagation();\n\n    wrapperEl.style.transition = '100ms';\n    dragEl.style.transition = '100ms';\n    setDragPosition(e);\n\n    clearTimeout(dragTimeout);\n\n    el.style.transition = '0ms';\n    if (params.hide) {\n      el.style.opacity = 1;\n    }\n    if (swiper.params.cssMode) {\n      swiper.wrapperEl.style['scroll-snap-type'] = 'none';\n    }\n    emit('scrollbarDragStart', e);\n  }\n  function onDragMove(e) {\n    const { scrollbar, wrapperEl } = swiper;\n    const { el, dragEl } = scrollbar;\n\n    if (!isTouched) return;\n    if (e.preventDefault) e.preventDefault();\n    else e.returnValue = false;\n    setDragPosition(e);\n    wrapperEl.style.transition = '0ms';\n    el.style.transition = '0ms';\n    dragEl.style.transition = '0ms';\n    emit('scrollbarDragMove', e);\n  }\n  function onDragEnd(e) {\n    const params = swiper.params.scrollbar;\n    const { scrollbar, wrapperEl } = swiper;\n    const { el } = scrollbar;\n\n    if (!isTouched) return;\n    isTouched = false;\n    if (swiper.params.cssMode) {\n      swiper.wrapperEl.style['scroll-snap-type'] = '';\n      wrapperEl.style.transition = '';\n    }\n    if (params.hide) {\n      clearTimeout(dragTimeout);\n      dragTimeout = nextTick(() => {\n        el.style.opacity = 0;\n        el.style.transition = '400ms';\n      }, 1000);\n    }\n    emit('scrollbarDragEnd', e);\n    if (params.snapOnRelease) {\n      swiper.slideToClosest();\n    }\n  }\n\n  function events(method) {\n    const { scrollbar, params } = swiper;\n    const el = scrollbar.el;\n    if (!el) return;\n    const target = el;\n    const activeListener = params.passiveListeners ? { passive: false, capture: false } : false;\n    const passiveListener = params.passiveListeners ? { passive: true, capture: false } : false;\n    if (!target) return;\n    const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n    target[eventMethod]('pointerdown', onDragStart, activeListener);\n    document[eventMethod]('pointermove', onDragMove, activeListener);\n    document[eventMethod]('pointerup', onDragEnd, passiveListener);\n  }\n\n  function enableDraggable() {\n    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n    events('on');\n  }\n  function disableDraggable() {\n    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n    events('off');\n  }\n  function init() {\n    const { scrollbar, el: swiperEl } = swiper;\n    swiper.params.scrollbar = createElementIfNotDefined(\n      swiper,\n      swiper.originalParams.scrollbar,\n      swiper.params.scrollbar,\n      { el: 'swiper-scrollbar' },\n    );\n    const params = swiper.params.scrollbar;\n    if (!params.el) return;\n\n    let el;\n    if (typeof params.el === 'string' && swiper.isElement) {\n      el = swiper.el.shadowRoot.querySelector(params.el);\n    }\n    if (!el) {\n      el = document.querySelectorAll(params.el);\n    }\n\n    if (\n      swiper.params.uniqueNavElements &&\n      typeof params.el === 'string' &&\n      el.length > 1 &&\n      swiperEl.querySelectorAll(params.el).length === 1\n    ) {\n      el = swiperEl.querySelector(params.el);\n    }\n    if (el.length > 0) el = el[0];\n\n    el.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n\n    let dragEl;\n    if (el) {\n      el.querySelector(`.${swiper.params.scrollbar.dragClass}`);\n      if (!dragEl) {\n        dragEl = createElement('div', swiper.params.scrollbar.dragClass);\n        el.append(dragEl);\n      }\n    }\n\n    Object.assign(scrollbar, {\n      el,\n      dragEl,\n    });\n\n    if (params.draggable) {\n      enableDraggable();\n    }\n\n    if (el) {\n      el.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.scrollbar.lockClass);\n    }\n  }\n  function destroy() {\n    const params = swiper.params.scrollbar;\n    const el = swiper.scrollbar.el;\n    if (el) {\n      el.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n    }\n\n    disableDraggable();\n  }\n\n  on('init', () => {\n    if (swiper.params.scrollbar.enabled === false) {\n      // eslint-disable-next-line\n      disable();\n    } else {\n      init();\n      updateSize();\n      setTranslate();\n    }\n  });\n  on('update resize observerUpdate lock unlock', () => {\n    updateSize();\n  });\n  on('setTranslate', () => {\n    setTranslate();\n  });\n  on('setTransition', (_s, duration) => {\n    setTransition(duration);\n  });\n  on('enable disable', () => {\n    const { el } = swiper.scrollbar;\n    if (el) {\n      el.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.scrollbar.lockClass);\n    }\n  });\n  on('destroy', () => {\n    destroy();\n  });\n\n  const enable = () => {\n    swiper.el.classList.remove(swiper.params.scrollbar.scrollbarDisabledClass);\n    if (swiper.scrollbar.el) {\n      swiper.scrollbar.el.classList.remove(swiper.params.scrollbar.scrollbarDisabledClass);\n    }\n    init();\n    updateSize();\n    setTranslate();\n  };\n\n  const disable = () => {\n    swiper.el.classList.add(swiper.params.scrollbar.scrollbarDisabledClass);\n    if (swiper.scrollbar.el) {\n      swiper.scrollbar.el.classList.add(swiper.params.scrollbar.scrollbarDisabledClass);\n    }\n    destroy();\n  };\n\n  Object.assign(swiper.scrollbar, {\n    enable,\n    disable,\n    updateSize,\n    setTranslate,\n    init,\n    destroy,\n  });\n}\n","import { elementChildren } from '../../shared/utils.js';\n\nexport default function Parallax({ swiper, extendParams, on }) {\n  extendParams({\n    parallax: {\n      enabled: false,\n    },\n  });\n\n  const setTransform = (el, progress) => {\n    const { rtl } = swiper;\n\n    const rtlFactor = rtl ? -1 : 1;\n\n    const p = el.getAttribute('data-swiper-parallax') || '0';\n    let x = el.getAttribute('data-swiper-parallax-x');\n    let y = el.getAttribute('data-swiper-parallax-y');\n    const scale = el.getAttribute('data-swiper-parallax-scale');\n    const opacity = el.getAttribute('data-swiper-parallax-opacity');\n\n    if (x || y) {\n      x = x || '0';\n      y = y || '0';\n    } else if (swiper.isHorizontal()) {\n      x = p;\n      y = '0';\n    } else {\n      y = p;\n      x = '0';\n    }\n\n    if (x.indexOf('%') >= 0) {\n      x = `${parseInt(x, 10) * progress * rtlFactor}%`;\n    } else {\n      x = `${x * progress * rtlFactor}px`;\n    }\n    if (y.indexOf('%') >= 0) {\n      y = `${parseInt(y, 10) * progress}%`;\n    } else {\n      y = `${y * progress}px`;\n    }\n\n    if (typeof opacity !== 'undefined' && opacity !== null) {\n      const currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));\n      el.style.opacity = currentOpacity;\n    }\n    if (typeof scale === 'undefined' || scale === null) {\n      el.style.transform = `translate3d(${x}, ${y}, 0px)`;\n    } else {\n      const currentScale = scale - (scale - 1) * (1 - Math.abs(progress));\n      el.style.transform = `translate3d(${x}, ${y}, 0px) scale(${currentScale})`;\n    }\n  };\n\n  const setTranslate = () => {\n    const { el, slides, progress, snapGrid } = swiper;\n    elementChildren(\n      el,\n      '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]',\n    ).forEach((subEl) => {\n      setTransform(subEl, progress);\n    });\n\n    slides.forEach((slideEl, slideIndex) => {\n      let slideProgress = slideEl.progress;\n      if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n        slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);\n      }\n      slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n      slideEl\n        .querySelectorAll(\n          '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]',\n        )\n        .forEach((subEl) => {\n          setTransform(subEl, slideProgress);\n        });\n    });\n  };\n\n  const setTransition = (duration = swiper.params.speed) => {\n    const { el } = swiper;\n    el.querySelectorAll(\n      '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]',\n    ).forEach((parallaxEl) => {\n      let parallaxDuration =\n        parseInt(parallaxEl.getAttribute('data-swiper-parallax-duration'), 10) || duration;\n      if (duration === 0) parallaxDuration = 0;\n      parallaxEl.style.transition = `${parallaxDuration}ms`;\n    });\n  };\n\n  on('beforeInit', () => {\n    if (!swiper.params.parallax.enabled) return;\n    swiper.params.watchSlidesProgress = true;\n    swiper.originalParams.watchSlidesProgress = true;\n  });\n  on('init', () => {\n    if (!swiper.params.parallax.enabled) return;\n    setTranslate();\n  });\n  on('setTranslate', () => {\n    if (!swiper.params.parallax.enabled) return;\n    setTranslate();\n  });\n  on('setTransition', (_swiper, duration) => {\n    if (!swiper.params.parallax.enabled) return;\n    setTransition(duration);\n  });\n}\n","import { getWindow } from 'ssr-window';\nimport {\n  elementChildren,\n  elementOffset,\n  elementParents,\n  getTranslate,\n} from '../../shared/utils.js';\n\nexport default function Zoom({ swiper, extendParams, on, emit }) {\n  const window = getWindow();\n  extendParams({\n    zoom: {\n      enabled: false,\n      maxRatio: 3,\n      minRatio: 1,\n      toggle: true,\n      containerClass: 'swiper-zoom-container',\n      zoomedSlideClass: 'swiper-slide-zoomed',\n    },\n  });\n\n  swiper.zoom = {\n    enabled: false,\n  };\n\n  let currentScale = 1;\n  let isScaling = false;\n  let fakeGestureTouched;\n  let fakeGestureMoved;\n  const evCache = [];\n  const gesture = {\n    slideEl: undefined,\n    slideWidth: undefined,\n    slideHeight: undefined,\n    imageEl: undefined,\n    imageWrapEl: undefined,\n    maxRatio: 3,\n  };\n  const image = {\n    isTouched: undefined,\n    isMoved: undefined,\n    currentX: undefined,\n    currentY: undefined,\n    minX: undefined,\n    minY: undefined,\n    maxX: undefined,\n    maxY: undefined,\n    width: undefined,\n    height: undefined,\n    startX: undefined,\n    startY: undefined,\n    touchesStart: {},\n    touchesCurrent: {},\n  };\n  const velocity = {\n    x: undefined,\n    y: undefined,\n    prevPositionX: undefined,\n    prevPositionY: undefined,\n    prevTime: undefined,\n  };\n\n  let scale = 1;\n  Object.defineProperty(swiper.zoom, 'scale', {\n    get() {\n      return scale;\n    },\n    set(value) {\n      if (scale !== value) {\n        const imageEl = gesture.imageEl;\n        const slideEl = gesture.slideEl;\n        emit('zoomChange', value, imageEl, slideEl);\n      }\n      scale = value;\n    },\n  });\n\n  function getDistanceBetweenTouches() {\n    if (evCache.length < 2) return 1;\n    const x1 = evCache[0].pageX;\n    const y1 = evCache[0].pageY;\n    const x2 = evCache[1].pageX;\n    const y2 = evCache[1].pageY;\n    const distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2);\n    return distance;\n  }\n\n  function getSlideSelector() {\n    return swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;\n  }\n\n  function eventWithinSlide(e) {\n    const slideSelector = getSlideSelector();\n    if (e.target.matches(slideSelector)) return true;\n    if (swiper.slides.filter((slideEl) => slideEl.contains(e.target)).length > 0) return true;\n    return false;\n  }\n\n  function eventWithinZoomContainer(e) {\n    const selector = `.${swiper.params.zoom.containerClass}`;\n    if (e.target.matches(selector)) return true;\n    if (\n      [...swiper.el.querySelectorAll(selector)].filter((containerEl) =>\n        containerEl.contains(e.target),\n      ).length > 0\n    )\n      return true;\n    return false;\n  }\n\n  // Events\n  function onGestureStart(e) {\n    if (!eventWithinSlide(e)) return;\n    const params = swiper.params.zoom;\n    fakeGestureTouched = false;\n    fakeGestureMoved = false;\n    evCache.push(e);\n    if (evCache.length < 2) {\n      return;\n    }\n    fakeGestureTouched = true;\n    gesture.scaleStart = getDistanceBetweenTouches();\n    if (!gesture.slideEl) {\n      gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);\n      if (!gesture.slideEl) gesture.slideEl = swiper.slides[swiper.activeIndex];\n\n      let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);\n      if (imageEl) {\n        imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];\n      }\n      gesture.imageEl = imageEl;\n      if (imageEl) {\n        gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0];\n      } else {\n        gesture.imageWrapEl = undefined;\n      }\n\n      if (!gesture.imageWrapEl) {\n        gesture.imageEl = undefined;\n        return;\n      }\n\n      gesture.maxRatio = gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio;\n    }\n    if (gesture.imageEl) {\n      gesture.imageEl.style.transitionDuration = '0ms';\n    }\n    isScaling = true;\n  }\n  function onGestureChange(e) {\n    if (!eventWithinSlide(e)) return;\n    const params = swiper.params.zoom;\n    const zoom = swiper.zoom;\n    const pointerIndex = evCache.findIndex((cachedEv) => cachedEv.pointerId === e.pointerId);\n    if (pointerIndex >= 0) evCache[pointerIndex] = e;\n\n    if (evCache.length < 2) {\n      return;\n    }\n    fakeGestureMoved = true;\n    gesture.scaleMove = getDistanceBetweenTouches();\n\n    if (!gesture.imageEl) {\n      return;\n    }\n\n    zoom.scale = (gesture.scaleMove / gesture.scaleStart) * currentScale;\n    if (zoom.scale > gesture.maxRatio) {\n      zoom.scale = gesture.maxRatio - 1 + (zoom.scale - gesture.maxRatio + 1) ** 0.5;\n    }\n    if (zoom.scale < params.minRatio) {\n      zoom.scale = params.minRatio + 1 - (params.minRatio - zoom.scale + 1) ** 0.5;\n    }\n\n    gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;\n  }\n  function onGestureEnd(e) {\n    if (!eventWithinSlide(e)) return;\n    const params = swiper.params.zoom;\n    const zoom = swiper.zoom;\n    const pointerIndex = evCache.findIndex((cachedEv) => cachedEv.pointerId === e.pointerId);\n    if (pointerIndex >= 0) evCache.splice(pointerIndex, 1);\n    if (!fakeGestureTouched || !fakeGestureMoved) {\n      return;\n    }\n    fakeGestureTouched = false;\n    fakeGestureMoved = false;\n    if (!gesture.imageE) return;\n    zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n    gesture.imageEl.style.transitionDuration = `${swiper.params.speed}ms`;\n    gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;\n    currentScale = zoom.scale;\n    isScaling = false;\n    if (zoom.scale === 1) gesture.slideEl = undefined;\n  }\n  function onTouchStart(e) {\n    const device = swiper.device;\n    if (!gesture.imageEl) return;\n    if (image.isTouched) return;\n    if (device.android && e.cancelable) e.preventDefault();\n    image.isTouched = true;\n    image.touchesStart.x = e.pageX;\n    image.touchesStart.y = e.pageY;\n  }\n  function onTouchMove(e) {\n    if (!eventWithinSlide(e) || !eventWithinZoomContainer(e)) return;\n    const zoom = swiper.zoom;\n    if (!gesture.imageEl) return;\n    swiper.allowClick = false;\n    if (!image.isTouched || !gesture.slideEl) return;\n\n    if (!image.isMoved) {\n      image.width = gesture.imageEl.offsetWidth;\n      image.height = gesture.imageEl.offsetHeight;\n      image.startX = getTranslate(gesture.imageWrapEl, 'x') || 0;\n      image.startY = getTranslate(gesture.imageWrapEl, 'y') || 0;\n      gesture.slideWidth = gesture.slideEl.offsetWidth;\n      gesture.slideHeight = gesture.slideEl.offsetHeight;\n      gesture.imageWrapEl.style.transitionDuration = '0ms';\n    }\n    // Define if we need image drag\n    const scaledWidth = image.width * zoom.scale;\n    const scaledHeight = image.height * zoom.scale;\n\n    if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return;\n\n    image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n    image.maxX = -image.minX;\n    image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n    image.maxY = -image.minY;\n\n    image.touchesCurrent.x = evCache.length > 0 ? evCache[0].pageX : e.pageX;\n    image.touchesCurrent.y = evCache.length > 0 ? evCache[0].pageY : e.pageY;\n\n    if (!image.isMoved && !isScaling) {\n      if (\n        swiper.isHorizontal() &&\n        ((Math.floor(image.minX) === Math.floor(image.startX) &&\n          image.touchesCurrent.x < image.touchesStart.x) ||\n          (Math.floor(image.maxX) === Math.floor(image.startX) &&\n            image.touchesCurrent.x > image.touchesStart.x))\n      ) {\n        image.isTouched = false;\n        return;\n      }\n      if (\n        !swiper.isHorizontal() &&\n        ((Math.floor(image.minY) === Math.floor(image.startY) &&\n          image.touchesCurrent.y < image.touchesStart.y) ||\n          (Math.floor(image.maxY) === Math.floor(image.startY) &&\n            image.touchesCurrent.y > image.touchesStart.y))\n      ) {\n        image.isTouched = false;\n        return;\n      }\n    }\n    if (e.cancelable) {\n      e.preventDefault();\n    }\n    e.stopPropagation();\n\n    image.isMoved = true;\n    image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX;\n    image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY;\n\n    if (image.currentX < image.minX) {\n      image.currentX = image.minX + 1 - (image.minX - image.currentX + 1) ** 0.8;\n    }\n    if (image.currentX > image.maxX) {\n      image.currentX = image.maxX - 1 + (image.currentX - image.maxX + 1) ** 0.8;\n    }\n\n    if (image.currentY < image.minY) {\n      image.currentY = image.minY + 1 - (image.minY - image.currentY + 1) ** 0.8;\n    }\n    if (image.currentY > image.maxY) {\n      image.currentY = image.maxY - 1 + (image.currentY - image.maxY + 1) ** 0.8;\n    }\n\n    // Velocity\n    if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;\n    if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;\n    if (!velocity.prevTime) velocity.prevTime = Date.now();\n    velocity.x =\n      (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n    velocity.y =\n      (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n    if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;\n    if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;\n    velocity.prevPositionX = image.touchesCurrent.x;\n    velocity.prevPositionY = image.touchesCurrent.y;\n    velocity.prevTime = Date.now();\n\n    gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`;\n  }\n  function onTouchEnd() {\n    const zoom = swiper.zoom;\n    if (!gesture.imageEl) return;\n    if (!image.isTouched || !image.isMoved) {\n      image.isTouched = false;\n      image.isMoved = false;\n      return;\n    }\n    image.isTouched = false;\n    image.isMoved = false;\n    let momentumDurationX = 300;\n    let momentumDurationY = 300;\n    const momentumDistanceX = velocity.x * momentumDurationX;\n    const newPositionX = image.currentX + momentumDistanceX;\n    const momentumDistanceY = velocity.y * momentumDurationY;\n    const newPositionY = image.currentY + momentumDistanceY;\n\n    // Fix duration\n    if (velocity.x !== 0)\n      momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\n    if (velocity.y !== 0)\n      momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\n    const momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n\n    image.currentX = newPositionX;\n    image.currentY = newPositionY;\n\n    // Define if we need image drag\n    const scaledWidth = image.width * zoom.scale;\n    const scaledHeight = image.height * zoom.scale;\n    image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n    image.maxX = -image.minX;\n    image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n    image.maxY = -image.minY;\n    image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n    image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n\n    gesture.imageWrapEl.style.transitionDuration = `${momentumDuration}ms`;\n    gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`;\n  }\n  function onTransitionEnd() {\n    const zoom = swiper.zoom;\n    if (gesture.slideEl && swiper.previousIndex !== swiper.activeIndex) {\n      if (gesture.imageEl) {\n        gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)';\n      }\n      if (gesture.imageWrapEl) {\n        gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)';\n      }\n\n      zoom.scale = 1;\n      currentScale = 1;\n\n      gesture.slideEl = undefined;\n      gesture.imageEl = undefined;\n      gesture.imageWrapEl = undefined;\n    }\n  }\n\n  function zoomIn(e) {\n    const zoom = swiper.zoom;\n    const params = swiper.params.zoom;\n\n    if (!gesture.slideEl) {\n      if (e && e.target) {\n        gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);\n      }\n      if (!gesture.slideEl) {\n        if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n          gesture.slideEl = elementChildren(\n            swiper.slidesEl,\n            `.${swiper.params.slideActiveClass}`,\n          )[0];\n        } else {\n          gesture.slideEl = swiper.slides[swiper.activeIndex];\n        }\n      }\n      let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);\n      if (imageEl) {\n        imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];\n      }\n      gesture.imageEl = imageEl;\n      if (imageEl) {\n        gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0];\n      } else {\n        gesture.imageWrapEl = undefined;\n      }\n    }\n    if (!gesture.imageEl || !gesture.imageWrapEl) return;\n    if (swiper.params.cssMode) {\n      swiper.wrapperEl.style.overflow = 'hidden';\n      swiper.wrapperEl.style.touchAction = 'none';\n    }\n\n    gesture.slideEl.classList.add(`${params.zoomedSlideClass}`);\n\n    let touchX;\n    let touchY;\n    let offsetX;\n    let offsetY;\n    let diffX;\n    let diffY;\n    let translateX;\n    let translateY;\n    let imageWidth;\n    let imageHeight;\n    let scaledWidth;\n    let scaledHeight;\n    let translateMinX;\n    let translateMinY;\n    let translateMaxX;\n    let translateMaxY;\n    let slideWidth;\n    let slideHeight;\n\n    if (typeof image.touchesStart.x === 'undefined' && e) {\n      touchX = e.pageX;\n      touchY = e.pageY;\n    } else {\n      touchX = image.touchesStart.x;\n      touchY = image.touchesStart.y;\n    }\n\n    zoom.scale = gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio;\n    currentScale = gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio;\n    if (e) {\n      slideWidth = gesture.slideEl.offsetWidth;\n      slideHeight = gesture.slideEl.offsetHeight;\n      offsetX = elementOffset(gesture.slideEl).left + window.scrollX;\n      offsetY = elementOffset(gesture.slideEl).top + window.scrollY;\n      diffX = offsetX + slideWidth / 2 - touchX;\n      diffY = offsetY + slideHeight / 2 - touchY;\n\n      imageWidth = gesture.imageEl.offsetWidth;\n      imageHeight = gesture.imageEl.offsetHeight;\n      scaledWidth = imageWidth * zoom.scale;\n      scaledHeight = imageHeight * zoom.scale;\n\n      translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);\n      translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);\n      translateMaxX = -translateMinX;\n      translateMaxY = -translateMinY;\n\n      translateX = diffX * zoom.scale;\n      translateY = diffY * zoom.scale;\n\n      if (translateX < translateMinX) {\n        translateX = translateMinX;\n      }\n      if (translateX > translateMaxX) {\n        translateX = translateMaxX;\n      }\n\n      if (translateY < translateMinY) {\n        translateY = translateMinY;\n      }\n      if (translateY > translateMaxY) {\n        translateY = translateMaxY;\n      }\n    } else {\n      translateX = 0;\n      translateY = 0;\n    }\n    gesture.imageWrapEl.style.transitionDuration = '300ms';\n    gesture.imageWrapEl.style.transform = `translate3d(${translateX}px, ${translateY}px,0)`;\n    gesture.imageEl.style.transitionDuration = '300ms';\n    gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;\n  }\n  function zoomOut() {\n    const zoom = swiper.zoom;\n    const params = swiper.params.zoom;\n\n    if (!gesture.slideEl) {\n      if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n        gesture.slideEl = elementChildren(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0];\n      } else {\n        gesture.slideEl = swiper.slides[swiper.activeIndex];\n      }\n      let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);\n      if (imageEl) {\n        imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];\n      }\n      gesture.imageEl = imageEl;\n      if (imageEl) {\n        gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0];\n      } else {\n        gesture.imageWrapEl = undefined;\n      }\n    }\n    if (!gesture.imageEl || !gesture.imageWrapEl) return;\n    if (swiper.params.cssMode) {\n      swiper.wrapperEl.style.overflow = '';\n      swiper.wrapperEl.style.touchAction = '';\n    }\n    zoom.scale = 1;\n    currentScale = 1;\n    gesture.imageWrapEl.style.transitionDuration = '300ms';\n    gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)';\n    gesture.imageEl.style.transitionDuration = '300ms';\n    gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)';\n\n    gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`);\n    gesture.slideEl = undefined;\n  }\n\n  // Toggle Zoom\n  function zoomToggle(e) {\n    const zoom = swiper.zoom;\n\n    if (zoom.scale && zoom.scale !== 1) {\n      // Zoom Out\n      zoomOut();\n    } else {\n      // Zoom In\n      zoomIn(e);\n    }\n  }\n\n  function getListeners() {\n    const passiveListener = swiper.params.passiveListeners\n      ? { passive: true, capture: false }\n      : false;\n    const activeListenerWithCapture = swiper.params.passiveListeners\n      ? { passive: false, capture: true }\n      : true;\n    return { passiveListener, activeListenerWithCapture };\n  }\n\n  // Attach/Detach Events\n  function enable() {\n    const zoom = swiper.zoom;\n    if (zoom.enabled) return;\n    zoom.enabled = true;\n    const { passiveListener, activeListenerWithCapture } = getListeners();\n\n    // Scale image\n\n    swiper.wrapperEl.addEventListener('pointerdown', onGestureStart, passiveListener);\n    swiper.wrapperEl.addEventListener('pointermove', onGestureChange, activeListenerWithCapture);\n    ['pointerup', 'pointercancel'].forEach((eventName) => {\n      swiper.wrapperEl.addEventListener(eventName, onGestureEnd, passiveListener);\n    });\n\n    // Move image\n    swiper.wrapperEl.addEventListener('pointermove', onTouchMove, activeListenerWithCapture);\n  }\n  function disable() {\n    const zoom = swiper.zoom;\n    if (!zoom.enabled) return;\n    zoom.enabled = false;\n\n    const { passiveListener, activeListenerWithCapture } = getListeners();\n\n    // Scale image\n    swiper.wrapperEl.removeEventListener('pointerdown', onGestureStart, passiveListener);\n    swiper.wrapperEl.removeEventListener('pointermove', onGestureChange, activeListenerWithCapture);\n    ['pointerup', 'pointercancel'].forEach((eventName) => {\n      swiper.wrapperEl.removeEventListener(eventName, onGestureEnd, passiveListener);\n    });\n\n    // Move image\n    swiper.wrapperEl.removeEventListener('pointermove', onTouchMove, activeListenerWithCapture);\n  }\n\n  on('init', () => {\n    if (swiper.params.zoom.enabled) {\n      enable();\n    }\n  });\n  on('destroy', () => {\n    disable();\n  });\n  on('touchStart', (_s, e) => {\n    if (!swiper.zoom.enabled) return;\n    onTouchStart(e);\n  });\n  on('touchEnd', (_s, e) => {\n    if (!swiper.zoom.enabled) return;\n    onTouchEnd(e);\n  });\n  on('doubleTap', (_s, e) => {\n    if (\n      !swiper.animating &&\n      swiper.params.zoom.enabled &&\n      swiper.zoom.enabled &&\n      swiper.params.zoom.toggle\n    ) {\n      zoomToggle(e);\n    }\n  });\n  on('transitionEnd', () => {\n    if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n      onTransitionEnd();\n    }\n  });\n  on('slideChange', () => {\n    if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {\n      onTransitionEnd();\n    }\n  });\n\n  Object.assign(swiper.zoom, {\n    enable,\n    disable,\n    in: zoomIn,\n    out: zoomOut,\n    toggle: zoomToggle,\n  });\n}\n","/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\nimport { elementTransitionEnd, nextTick } from '../../shared/utils.js';\n\nexport default function Controller({ swiper, extendParams, on }) {\n  extendParams({\n    controller: {\n      control: undefined,\n      inverse: false,\n      by: 'slide', // or 'container'\n    },\n  });\n\n  swiper.controller = {\n    control: undefined,\n  };\n\n  function LinearSpline(x, y) {\n    const binarySearch = (function search() {\n      let maxIndex;\n      let minIndex;\n      let guess;\n      return (array, val) => {\n        minIndex = -1;\n        maxIndex = array.length;\n        while (maxIndex - minIndex > 1) {\n          guess = (maxIndex + minIndex) >> 1;\n          if (array[guess] <= val) {\n            minIndex = guess;\n          } else {\n            maxIndex = guess;\n          }\n        }\n        return maxIndex;\n      };\n    })();\n    this.x = x;\n    this.y = y;\n    this.lastIndex = x.length - 1;\n    // Given an x value (x2), return the expected y2 value:\n    // (x1,y1) is the known point before given value,\n    // (x3,y3) is the known point after given value.\n    let i1;\n    let i3;\n\n    this.interpolate = function interpolate(x2) {\n      if (!x2) return 0;\n\n      // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n      i3 = binarySearch(this.x, x2);\n      i1 = i3 - 1;\n\n      // We have our indexes i1 & i3, so we can calculate already:\n      // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n      return (\n        ((x2 - this.x[i1]) * (this.y[i3] - this.y[i1])) / (this.x[i3] - this.x[i1]) + this.y[i1]\n      );\n    };\n    return this;\n  }\n  // xxx: for now i will just save one spline function to to\n  function getInterpolateFunction(c) {\n    if (!swiper.controller.spline) {\n      swiper.controller.spline = swiper.params.loop\n        ? new LinearSpline(swiper.slidesGrid, c.slidesGrid)\n        : new LinearSpline(swiper.snapGrid, c.snapGrid);\n    }\n  }\n  function setTranslate(_t, byController) {\n    const controlled = swiper.controller.control;\n    let multiplier;\n    let controlledTranslate;\n    const Swiper = swiper.constructor;\n    function setControlledTranslate(c) {\n      // this will create an Interpolate function based on the snapGrids\n      // x is the Grid of the scrolled scroller and y will be the controlled scroller\n      // it makes sense to create this only once and recall it for the interpolation\n      // the function does a lot of value caching for performance\n      const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n      if (swiper.params.controller.by === 'slide') {\n        getInterpolateFunction(c);\n        // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n        // but it did not work out\n        controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n      }\n\n      if (!controlledTranslate || swiper.params.controller.by === 'container') {\n        multiplier =\n          (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n        controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();\n      }\n\n      if (swiper.params.controller.inverse) {\n        controlledTranslate = c.maxTranslate() - controlledTranslate;\n      }\n      c.updateProgress(controlledTranslate);\n      c.setTranslate(controlledTranslate, swiper);\n      c.updateActiveIndex();\n      c.updateSlidesClasses();\n    }\n    if (Array.isArray(controlled)) {\n      for (let i = 0; i < controlled.length; i += 1) {\n        if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n          setControlledTranslate(controlled[i]);\n        }\n      }\n    } else if (controlled instanceof Swiper && byController !== controlled) {\n      setControlledTranslate(controlled);\n    }\n  }\n  function setTransition(duration, byController) {\n    const Swiper = swiper.constructor;\n    const controlled = swiper.controller.control;\n    let i;\n    function setControlledTransition(c) {\n      c.setTransition(duration, swiper);\n      if (duration !== 0) {\n        c.transitionStart();\n        if (c.params.autoHeight) {\n          nextTick(() => {\n            c.updateAutoHeight();\n          });\n        }\n        elementTransitionEnd(c.wrapperEl, () => {\n          if (!controlled) return;\n          if (swiper.params.loop) swiper.loopFix(undefined, false);\n          if (c.params.loop && swiper.params.controller.by === 'slide') {\n            c.loopFix();\n          }\n          c.transitionEnd();\n        });\n      }\n    }\n    if (Array.isArray(controlled)) {\n      for (i = 0; i < controlled.length; i += 1) {\n        if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n          setControlledTransition(controlled[i]);\n        }\n      }\n    } else if (controlled instanceof Swiper && byController !== controlled) {\n      setControlledTransition(controlled);\n    }\n  }\n\n  function removeSpline() {\n    if (!swiper.controller.control) return;\n    if (swiper.controller.spline) {\n      swiper.controller.spline = undefined;\n      delete swiper.controller.spline;\n    }\n  }\n  on('beforeInit', () => {\n    if (\n      typeof window !== 'undefined' && // eslint-disable-line\n      (typeof swiper.params.controller.control === 'string' ||\n        swiper.params.controller.control instanceof HTMLElement)\n    ) {\n      const controlElement = document.querySelector(swiper.params.controller.control);\n      if (controlElement && controlElement.swiper) {\n        swiper.controller.control = controlElement.swiper;\n      } else if (controlElement) {\n        const onControllerSwiper = (e) => {\n          swiper.controller.control = e.detail[0];\n          swiper.update();\n          controlElement.removeEventListener('init', onControllerSwiper);\n        };\n        controlElement.addEventListener('init', onControllerSwiper);\n      }\n      return;\n    }\n    swiper.controller.control = swiper.params.controller.control;\n  });\n  on('update', () => {\n    removeSpline();\n  });\n  on('resize', () => {\n    removeSpline();\n  });\n  on('observerUpdate', () => {\n    removeSpline();\n  });\n  on('setTranslate', (_s, translate, byController) => {\n    if (!swiper.controller.control) return;\n    swiper.controller.setTranslate(translate, byController);\n  });\n  on('setTransition', (_s, duration, byController) => {\n    if (!swiper.controller.control) return;\n    swiper.controller.setTransition(duration, byController);\n  });\n\n  Object.assign(swiper.controller, {\n    setTranslate,\n    setTransition,\n  });\n}\n","import classesToSelector from '../../shared/classes-to-selector.js';\nimport { createElement, elementIndex } from '../../shared/utils.js';\n\nexport default function A11y({ swiper, extendParams, on }) {\n  extendParams({\n    a11y: {\n      enabled: true,\n      notificationClass: 'swiper-notification',\n      prevSlideMessage: 'Previous slide',\n      nextSlideMessage: 'Next slide',\n      firstSlideMessage: 'This is the first slide',\n      lastSlideMessage: 'This is the last slide',\n      paginationBulletMessage: 'Go to slide {{index}}',\n      slideLabelMessage: '{{index}} / {{slidesLength}}',\n      containerMessage: null,\n      containerRoleDescriptionMessage: null,\n      itemRoleDescriptionMessage: null,\n      slideRole: 'group',\n      id: null,\n    },\n  });\n\n  swiper.a11y = {\n    clicked: false,\n  };\n\n  let liveRegion = null;\n\n  function notify(message) {\n    const notification = liveRegion;\n    if (notification.length === 0) return;\n    notification.innerHTML = '';\n    notification.innerHTML = message;\n  }\n\n  const makeElementsArray = (el) => {\n    if (!Array.isArray(el)) el = [el].filter((e) => !!e);\n    return el;\n  };\n\n  function getRandomNumber(size = 16) {\n    const randomChar = () => Math.round(16 * Math.random()).toString(16);\n    return 'x'.repeat(size).replace(/x/g, randomChar);\n  }\n  function makeElFocusable(el) {\n    el = makeElementsArray(el);\n    el.forEach((subEl) => {\n      subEl.setAttribute('tabIndex', '0');\n    });\n  }\n  function makeElNotFocusable(el) {\n    el = makeElementsArray(el);\n    el.forEach((subEl) => {\n      subEl.setAttribute('tabIndex', '-1');\n    });\n  }\n  function addElRole(el, role) {\n    el = makeElementsArray(el);\n    el.forEach((subEl) => {\n      subEl.setAttribute('role', role);\n    });\n  }\n  function addElRoleDescription(el, description) {\n    el = makeElementsArray(el);\n    el.forEach((subEl) => {\n      subEl.setAttribute('aria-roledescription', description);\n    });\n  }\n  function addElControls(el, controls) {\n    el = makeElementsArray(el);\n    el.forEach((subEl) => {\n      subEl.setAttribute('aria-controls', controls);\n    });\n  }\n  function addElLabel(el, label) {\n    el = makeElementsArray(el);\n    el.forEach((subEl) => {\n      subEl.setAttribute('aria-label', label);\n    });\n  }\n  function addElId(el, id) {\n    el = makeElementsArray(el);\n    el.forEach((subEl) => {\n      subEl.setAttribute('id', id);\n    });\n  }\n  function addElLive(el, live) {\n    el = makeElementsArray(el);\n    el.forEach((subEl) => {\n      subEl.setAttribute('aria-live', live);\n    });\n  }\n  function disableEl(el) {\n    el = makeElementsArray(el);\n    el.forEach((subEl) => {\n      subEl.setAttribute('aria-disabled', true);\n    });\n  }\n  function enableEl(el) {\n    el = makeElementsArray(el);\n    el.forEach((subEl) => {\n      subEl.setAttribute('aria-disabled', false);\n    });\n  }\n\n  function onEnterOrSpaceKey(e) {\n    if (e.keyCode !== 13 && e.keyCode !== 32) return;\n    const params = swiper.params.a11y;\n    const targetEl = e.target;\n    if (\n      swiper.pagination &&\n      swiper.pagination.el &&\n      (targetEl === swiper.pagination.el || swiper.pagination.el.contains(e.target))\n    ) {\n      if (!e.target.matches(classesToSelector(swiper.params.pagination.bulletClass))) return;\n    }\n    if (swiper.navigation && swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl) {\n      if (!(swiper.isEnd && !swiper.params.loop)) {\n        swiper.slideNext();\n      }\n      if (swiper.isEnd) {\n        notify(params.lastSlideMessage);\n      } else {\n        notify(params.nextSlideMessage);\n      }\n    }\n    if (swiper.navigation && swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl) {\n      if (!(swiper.isBeginning && !swiper.params.loop)) {\n        swiper.slidePrev();\n      }\n      if (swiper.isBeginning) {\n        notify(params.firstSlideMessage);\n      } else {\n        notify(params.prevSlideMessage);\n      }\n    }\n\n    if (\n      swiper.pagination &&\n      targetEl.matches(classesToSelector(swiper.params.pagination.bulletClass))\n    ) {\n      targetEl.click();\n    }\n  }\n\n  function updateNavigation() {\n    if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return;\n    const { nextEl, prevEl } = swiper.navigation;\n\n    if (prevEl) {\n      if (swiper.isBeginning) {\n        disableEl(prevEl);\n        makeElNotFocusable(prevEl);\n      } else {\n        enableEl(prevEl);\n        makeElFocusable(prevEl);\n      }\n    }\n    if (nextEl) {\n      if (swiper.isEnd) {\n        disableEl(nextEl);\n        makeElNotFocusable(nextEl);\n      } else {\n        enableEl(nextEl);\n        makeElFocusable(nextEl);\n      }\n    }\n  }\n\n  function hasPagination() {\n    return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length;\n  }\n\n  function hasClickablePagination() {\n    return hasPagination() && swiper.params.pagination.clickable;\n  }\n\n  function updatePagination() {\n    const params = swiper.params.a11y;\n    if (!hasPagination()) return;\n    swiper.pagination.bullets.forEach((bulletEl) => {\n      if (swiper.params.pagination.clickable) {\n        makeElFocusable(bulletEl);\n        if (!swiper.params.pagination.renderBullet) {\n          addElRole(bulletEl, 'button');\n          addElLabel(\n            bulletEl,\n            params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, elementIndex(bulletEl) + 1),\n          );\n        }\n      }\n      if (bulletEl.matches(`.${swiper.params.pagination.bulletActiveClass}`)) {\n        bulletEl.setAttribute('aria-current', 'true');\n      } else {\n        bulletEl.removeAttribute('aria-current');\n      }\n    });\n  }\n\n  const initNavEl = (el, wrapperId, message) => {\n    makeElFocusable(el);\n    if (el.tagName !== 'BUTTON') {\n      addElRole(el, 'button');\n      el.addEventListener('keydown', onEnterOrSpaceKey);\n    }\n    addElLabel(el, message);\n    addElControls(el, wrapperId);\n  };\n  const handlePointerDown = () => {\n    swiper.a11y.clicked = true;\n  };\n  const handlePointerUp = () => {\n    requestAnimationFrame(() => {\n      requestAnimationFrame(() => {\n        if (!swiper.destroyed) {\n          swiper.a11y.clicked = false;\n        }\n      });\n    });\n  };\n\n  const handleFocus = (e) => {\n    if (swiper.a11y.clicked) return;\n    const slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);\n    if (!slideEl || !swiper.slides.includes(slideEl)) return;\n    const isActive = swiper.slides.indexOf(slideEl) === swiper.activeIndex;\n    const isVisible =\n      swiper.params.watchSlidesProgress &&\n      swiper.visibleSlides &&\n      swiper.visibleSlides.includes(slideEl);\n    if (isActive || isVisible) return;\n    if (e.sourceCapabilities && e.sourceCapabilities.firesTouchEvents) return;\n    if (swiper.isHorizontal()) {\n      swiper.el.scrollLeft = 0;\n    } else {\n      swiper.el.scrollTop = 0;\n    }\n    swiper.slideTo(swiper.slides.indexOf(slideEl), 0);\n  };\n\n  const initSlides = () => {\n    const params = swiper.params.a11y;\n    if (params.itemRoleDescriptionMessage) {\n      addElRoleDescription(swiper.slides, params.itemRoleDescriptionMessage);\n    }\n    if (params.slideRole) {\n      addElRole(swiper.slides, params.slideRole);\n    }\n\n    const slidesLength = swiper.slides.length;\n    if (params.slideLabelMessage) {\n      swiper.slides.forEach((slideEl, index) => {\n        const slideIndex = swiper.params.loop\n          ? parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10)\n          : index;\n        const ariaLabelMessage = params.slideLabelMessage\n          .replace(/\\{\\{index\\}\\}/, slideIndex + 1)\n          .replace(/\\{\\{slidesLength\\}\\}/, slidesLength);\n        addElLabel(slideEl, ariaLabelMessage);\n      });\n    }\n  };\n\n  const init = () => {\n    const params = swiper.params.a11y;\n\n    swiper.el.append(liveRegion);\n\n    // Container\n    const containerEl = swiper.el;\n    if (params.containerRoleDescriptionMessage) {\n      addElRoleDescription(containerEl, params.containerRoleDescriptionMessage);\n    }\n    if (params.containerMessage) {\n      addElLabel(containerEl, params.containerMessage);\n    }\n\n    // Wrapper\n    const wrapperEl = swiper.wrapperEl;\n    const wrapperId =\n      params.id || wrapperEl.getAttribute('id') || `swiper-wrapper-${getRandomNumber(16)}`;\n    const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';\n    addElId(wrapperEl, wrapperId);\n    addElLive(wrapperEl, live);\n\n    // Slide\n    initSlides();\n\n    // Navigation\n    let { nextEl, prevEl } = swiper.navigation ? swiper.navigation : {};\n    nextEl = makeElementsArray(nextEl);\n    prevEl = makeElementsArray(prevEl);\n\n    if (nextEl) {\n      nextEl.forEach((el) => initNavEl(el, wrapperId, params.nextSlideMessage));\n    }\n    if (prevEl) {\n      prevEl.forEach((el) => initNavEl(el, wrapperId, params.prevSlideMessage));\n    }\n\n    // Pagination\n    if (hasClickablePagination()) {\n      swiper.pagination.el.addEventListener('keydown', onEnterOrSpaceKey);\n    }\n\n    // Tab focus\n    swiper.el.addEventListener('focus', handleFocus, true);\n    swiper.el.addEventListener('pointerdown', handlePointerDown, true);\n    swiper.el.addEventListener('pointerup', handlePointerUp, true);\n  };\n  function destroy() {\n    if (liveRegion && liveRegion.length > 0) liveRegion.remove();\n    let { nextEl, prevEl } = swiper.navigation ? swiper.navigation : {};\n    nextEl = makeElementsArray(nextEl);\n    prevEl = makeElementsArray(prevEl);\n    if (nextEl) {\n      nextEl.forEach((el) => el.removeEventListener('keydown', onEnterOrSpaceKey));\n    }\n    if (prevEl) {\n      prevEl.forEach((el) => el.removeEventListener('keydown', onEnterOrSpaceKey));\n    }\n\n    // Pagination\n    if (hasClickablePagination()) {\n      swiper.pagination.el.off('keydown', onEnterOrSpaceKey);\n    }\n\n    // Tab focus\n    swiper.el.removeEventListener('focus', handleFocus, true);\n    swiper.el.removeEventListener('pointerdown', handlePointerDown, true);\n    swiper.el.removeEventListener('pointerup', handlePointerUp, true);\n  }\n\n  on('beforeInit', () => {\n    liveRegion = createElement('span', swiper.params.a11y.notificationClass);\n    liveRegion.setAttribute('aria-live', 'assertive');\n    liveRegion.setAttribute('aria-atomic', 'true');\n    if (swiper.isElement) {\n      liveRegion.setAttribute('slot', 'container-end');\n    }\n  });\n\n  on('afterInit', () => {\n    if (!swiper.params.a11y.enabled) return;\n    init();\n  });\n  on('slidesLengthChange snapGridLengthChange slidesGridLengthChange', () => {\n    if (!swiper.params.a11y.enabled) return;\n    initSlides();\n  });\n  on('fromEdge toEdge afterInit lock unlock', () => {\n    if (!swiper.params.a11y.enabled) return;\n    updateNavigation();\n  });\n  on('paginationUpdate', () => {\n    if (!swiper.params.a11y.enabled) return;\n    updatePagination();\n  });\n  on('destroy', () => {\n    if (!swiper.params.a11y.enabled) return;\n    destroy();\n  });\n}\n","import { getWindow } from 'ssr-window';\nimport { elementIndex } from '../../shared/utils.js';\n\nexport default function History({ swiper, extendParams, on }) {\n  extendParams({\n    history: {\n      enabled: false,\n      root: '',\n      replaceState: false,\n      key: 'slides',\n      keepQuery: false,\n    },\n  });\n\n  let initialized = false;\n  let paths = {};\n\n  const slugify = (text) => {\n    return text\n      .toString()\n      .replace(/\\s+/g, '-')\n      .replace(/[^\\w-]+/g, '')\n      .replace(/--+/g, '-')\n      .replace(/^-+/, '')\n      .replace(/-+$/, '');\n  };\n\n  const getPathValues = (urlOverride) => {\n    const window = getWindow();\n    let location;\n    if (urlOverride) {\n      location = new URL(urlOverride);\n    } else {\n      location = window.location;\n    }\n    const pathArray = location.pathname\n      .slice(1)\n      .split('/')\n      .filter((part) => part !== '');\n    const total = pathArray.length;\n    const key = pathArray[total - 2];\n    const value = pathArray[total - 1];\n    return { key, value };\n  };\n  const setHistory = (key, index) => {\n    const window = getWindow();\n    if (!initialized || !swiper.params.history.enabled) return;\n    let location;\n    if (swiper.params.url) {\n      location = new URL(swiper.params.url);\n    } else {\n      location = window.location;\n    }\n    const slide = swiper.slides[index];\n    let value = slugify(slide.getAttribute('data-history'));\n    if (swiper.params.history.root.length > 0) {\n      let root = swiper.params.history.root;\n      if (root[root.length - 1] === '/') root = root.slice(0, root.length - 1);\n      value = `${root}/${key}/${value}`;\n    } else if (!location.pathname.includes(key)) {\n      value = `${key}/${value}`;\n    }\n    if (swiper.params.history.keepQuery) {\n      value += location.search;\n    }\n    const currentState = window.history.state;\n    if (currentState && currentState.value === value) {\n      return;\n    }\n    if (swiper.params.history.replaceState) {\n      window.history.replaceState({ value }, null, value);\n    } else {\n      window.history.pushState({ value }, null, value);\n    }\n  };\n\n  const scrollToSlide = (speed, value, runCallbacks) => {\n    if (value) {\n      for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n        const slide = swiper.slides[i];\n        const slideHistory = slugify(slide.getAttribute('data-history'));\n        if (slideHistory === value) {\n          const index = elementIndex(slide);\n          swiper.slideTo(index, speed, runCallbacks);\n        }\n      }\n    } else {\n      swiper.slideTo(0, speed, runCallbacks);\n    }\n  };\n\n  const setHistoryPopState = () => {\n    paths = getPathValues(swiper.params.url);\n    scrollToSlide(swiper.params.speed, paths.value, false);\n  };\n\n  const init = () => {\n    const window = getWindow();\n    if (!swiper.params.history) return;\n    if (!window.history || !window.history.pushState) {\n      swiper.params.history.enabled = false;\n      swiper.params.hashNavigation.enabled = true;\n      return;\n    }\n    initialized = true;\n    paths = getPathValues(swiper.params.url);\n    if (!paths.key && !paths.value) return;\n    scrollToSlide(0, paths.value, swiper.params.runCallbacksOnInit);\n    if (!swiper.params.history.replaceState) {\n      window.addEventListener('popstate', setHistoryPopState);\n    }\n  };\n  const destroy = () => {\n    const window = getWindow();\n    if (!swiper.params.history.replaceState) {\n      window.removeEventListener('popstate', setHistoryPopState);\n    }\n  };\n\n  on('init', () => {\n    if (swiper.params.history.enabled) {\n      init();\n    }\n  });\n  on('destroy', () => {\n    if (swiper.params.history.enabled) {\n      destroy();\n    }\n  });\n  on('transitionEnd _freeModeNoMomentumRelease', () => {\n    if (initialized) {\n      setHistory(swiper.params.history.key, swiper.activeIndex);\n    }\n  });\n  on('slideChange', () => {\n    if (initialized && swiper.params.cssMode) {\n      setHistory(swiper.params.history.key, swiper.activeIndex);\n    }\n  });\n}\n","import { getWindow, getDocument } from 'ssr-window';\nimport { elementChildren, elementIndex } from '../../shared/utils.js';\n\nexport default function HashNavigation({ swiper, extendParams, emit, on }) {\n  let initialized = false;\n  const document = getDocument();\n  const window = getWindow();\n  extendParams({\n    hashNavigation: {\n      enabled: false,\n      replaceState: false,\n      watchState: false,\n    },\n  });\n  const onHashChange = () => {\n    emit('hashChange');\n    const newHash = document.location.hash.replace('#', '');\n    const activeSlideHash = swiper.slides[swiper.activeIndex].getAttribute('data-hash');\n    if (newHash !== activeSlideHash) {\n      const newIndex = elementIndex(\n        elementChildren(\n          swiper.slidesEl,\n          `.${swiper.params.slideClass}[data-hash=\"${newHash}\"], swiper-slide[data-hash=\"${newHash}\"]`,\n        )[0],\n      );\n      if (typeof newIndex === 'undefined') return;\n      swiper.slideTo(newIndex);\n    }\n  };\n  const setHash = () => {\n    if (!initialized || !swiper.params.hashNavigation.enabled) return;\n    if (\n      swiper.params.hashNavigation.replaceState &&\n      window.history &&\n      window.history.replaceState\n    ) {\n      window.history.replaceState(\n        null,\n        null,\n        `#${swiper.slides[swiper.activeIndex].getAttribute('data-hash')}` || '',\n      );\n      emit('hashSet');\n    } else {\n      const slide = swiper.slides[swiper.activeIndex];\n      const hash = slide.getAttribute('data-hash') || slide.getAttribute('data-history');\n      document.location.hash = hash || '';\n      emit('hashSet');\n    }\n  };\n  const init = () => {\n    if (\n      !swiper.params.hashNavigation.enabled ||\n      (swiper.params.history && swiper.params.history.enabled)\n    )\n      return;\n    initialized = true;\n    const hash = document.location.hash.replace('#', '');\n    if (hash) {\n      const speed = 0;\n      for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n        const slide = swiper.slides[i];\n        const slideHash = slide.getAttribute('data-hash') || slide.getAttribute('data-history');\n        if (slideHash === hash) {\n          const index = elementIndex(slide);\n          swiper.slideTo(index, speed, swiper.params.runCallbacksOnInit, true);\n        }\n      }\n    }\n    if (swiper.params.hashNavigation.watchState) {\n      window.addEventListener('hashchange', onHashChange);\n    }\n  };\n  const destroy = () => {\n    if (swiper.params.hashNavigation.watchState) {\n      window.removeEventListener('hashchange', onHashChange);\n    }\n  };\n\n  on('init', () => {\n    if (swiper.params.hashNavigation.enabled) {\n      init();\n    }\n  });\n  on('destroy', () => {\n    if (swiper.params.hashNavigation.enabled) {\n      destroy();\n    }\n  });\n  on('transitionEnd _freeModeNoMomentumRelease', () => {\n    if (initialized) {\n      setHash();\n    }\n  });\n  on('slideChange', () => {\n    if (initialized && swiper.params.cssMode) {\n      setHash();\n    }\n  });\n}\n","/* eslint no-underscore-dangle: \"off\" */\n/* eslint no-use-before-define: \"off\" */\nimport { getDocument } from 'ssr-window';\n\nexport default function Autoplay({ swiper, extendParams, on, emit, params }) {\n  swiper.autoplay = {\n    running: false,\n    paused: false,\n    timeLeft: 0,\n  };\n\n  extendParams({\n    autoplay: {\n      enabled: false,\n      delay: 3000,\n      waitForTransition: true,\n      disableOnInteraction: true,\n      stopOnLastSlide: false,\n      reverseDirection: false,\n      pauseOnMouseEnter: false,\n    },\n  });\n  let timeout;\n  let raf;\n  let autoplayDelayTotal = params && params.autoplay ? params.autoplay.delay : 3000;\n  let autoplayDelayCurrent = params && params.autoplay ? params.autoplay.delay : 3000;\n  let autoplayTimeLeft;\n  let autoplayStartTime = new Date().getTime;\n  let wasPaused;\n  let isTouched;\n  let pausedByTouch;\n  let touchStartTimeout;\n  let slideChanged;\n  let pausedByInteraction;\n\n  function onTransitionEnd(e) {\n    if (!swiper || swiper.destroyed || !swiper.wrapperEl) return;\n    if (e.target !== swiper.wrapperEl) return;\n    swiper.wrapperEl.removeEventListener('transitionend', onTransitionEnd);\n    resume();\n  }\n\n  const calcTimeLeft = () => {\n    if (swiper.destroyed || !swiper.autoplay.running) return;\n    if (swiper.autoplay.paused) {\n      wasPaused = true;\n    } else if (wasPaused) {\n      autoplayDelayCurrent = autoplayTimeLeft;\n      wasPaused = false;\n    }\n    const timeLeft = swiper.autoplay.paused\n      ? autoplayTimeLeft\n      : autoplayStartTime + autoplayDelayCurrent - new Date().getTime();\n    swiper.autoplay.timeLeft = timeLeft;\n    emit('autoplayTimeLeft', timeLeft, timeLeft / autoplayDelayTotal);\n    raf = requestAnimationFrame(() => {\n      calcTimeLeft();\n    });\n  };\n\n  const getSlideDelay = () => {\n    let activeSlideEl;\n    if (swiper.virtual && swiper.params.virtual.enabled) {\n      activeSlideEl = swiper.slides.filter((slideEl) =>\n        slideEl.classList.contains('swiper-slide-active'),\n      )[0];\n    } else {\n      activeSlideEl = swiper.slides[swiper.activeIndex];\n    }\n    if (!activeSlideEl) return undefined;\n    const currentSlideDelay = parseInt(activeSlideEl.getAttribute('data-swiper-autoplay'), 10);\n    return currentSlideDelay;\n  };\n\n  const run = (delayForce) => {\n    if (swiper.destroyed || !swiper.autoplay.running) return;\n    cancelAnimationFrame(raf);\n    calcTimeLeft();\n\n    let delay = typeof delayForce === 'undefined' ? swiper.params.autoplay.delay : delayForce;\n    autoplayDelayTotal = swiper.params.autoplay.delay;\n    autoplayDelayCurrent = swiper.params.autoplay.delay;\n    const currentSlideDelay = getSlideDelay();\n    if (\n      !Number.isNaN(currentSlideDelay) &&\n      currentSlideDelay > 0 &&\n      typeof delayForce === 'undefined'\n    ) {\n      delay = currentSlideDelay;\n      autoplayDelayTotal = currentSlideDelay;\n      autoplayDelayCurrent = currentSlideDelay;\n    }\n    autoplayTimeLeft = delay;\n    const speed = swiper.params.speed;\n    const proceed = () => {\n      if (swiper.params.autoplay.reverseDirection) {\n        if (!swiper.isBeginning || swiper.params.loop || swiper.params.rewind) {\n          swiper.slidePrev(speed, true, true);\n          emit('autoplay');\n        } else if (!swiper.params.autoplay.stopOnLastSlide) {\n          swiper.slideTo(swiper.slides.length - 1, speed, true, true);\n          emit('autoplay');\n        }\n      } else {\n        if (!swiper.isEnd || swiper.params.loop || swiper.params.rewind) {\n          swiper.slideNext(speed, true, true);\n          emit('autoplay');\n        } else if (!swiper.params.autoplay.stopOnLastSlide) {\n          swiper.slideTo(0, speed, true, true);\n          emit('autoplay');\n        }\n      }\n      if (swiper.params.cssMode) {\n        autoplayStartTime = new Date().getTime();\n        requestAnimationFrame(() => {\n          run();\n        });\n      }\n    };\n    if (delay > 0) {\n      clearTimeout(timeout);\n      timeout = setTimeout(() => {\n        proceed();\n      }, delay);\n    } else {\n      requestAnimationFrame(() => {\n        proceed();\n      });\n    }\n\n    // eslint-disable-next-line\n    return delay;\n  };\n\n  const start = () => {\n    swiper.autoplay.running = true;\n    run();\n    emit('autoplayStart');\n  };\n\n  const stop = () => {\n    swiper.autoplay.running = false;\n    clearTimeout(timeout);\n    cancelAnimationFrame(raf);\n    emit('autoplayStop');\n  };\n  const pause = (internal, reset) => {\n    if (swiper.destroyed || !swiper.autoplay.running) return;\n    clearTimeout(timeout);\n    if (!internal) {\n      pausedByInteraction = true;\n    }\n\n    const proceed = () => {\n      emit('autoplayPause');\n      if (swiper.params.autoplay.waitForTransition) {\n        swiper.wrapperEl.addEventListener('transitionend', onTransitionEnd);\n      } else {\n        resume();\n      }\n    };\n\n    swiper.autoplay.paused = true;\n    if (reset) {\n      if (slideChanged) {\n        autoplayTimeLeft = swiper.params.autoplay.delay;\n      }\n      slideChanged = false;\n      proceed();\n      return;\n    }\n    const delay = autoplayTimeLeft || swiper.params.autoplay.delay;\n    autoplayTimeLeft = delay - (new Date().getTime() - autoplayStartTime);\n    if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop) return;\n    if (autoplayTimeLeft < 0) autoplayTimeLeft = 0;\n    proceed();\n  };\n\n  const resume = () => {\n    if (\n      (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop) ||\n      swiper.destroyed ||\n      !swiper.autoplay.running\n    )\n      return;\n    autoplayStartTime = new Date().getTime();\n    if (pausedByInteraction) {\n      pausedByInteraction = false;\n      run(autoplayTimeLeft);\n    } else {\n      run();\n    }\n    swiper.autoplay.paused = false;\n    emit('autoplayResume');\n  };\n\n  const onVisibilityChange = () => {\n    if (swiper.destroyed || !swiper.autoplay.running) return;\n    const document = getDocument();\n    if (document.visibilityState === 'hidden') {\n      pausedByInteraction = true;\n      pause(true);\n    }\n    if (document.visibilityState === 'visible') {\n      resume();\n    }\n  };\n\n  const onPointerEnter = (e) => {\n    if (e.pointerType !== 'mouse') return;\n    pausedByInteraction = true;\n    pause(true);\n  };\n\n  const onPointerLeave = (e) => {\n    if (e.pointerType !== 'mouse') return;\n    if (swiper.autoplay.paused) {\n      resume();\n    }\n  };\n\n  const attachMouseEvents = () => {\n    if (swiper.params.autoplay.pauseOnMouseEnter) {\n      swiper.el.addEventListener('pointerenter', onPointerEnter);\n      swiper.el.addEventListener('pointerleave', onPointerLeave);\n    }\n  };\n\n  const detachMouseEvents = () => {\n    swiper.el.removeEventListener('pointerenter', onPointerEnter);\n    swiper.el.removeEventListener('pointerleave', onPointerLeave);\n  };\n\n  const attachDocumentEvents = () => {\n    const document = getDocument();\n    document.addEventListener('visibilitychange', onVisibilityChange);\n  };\n\n  const detachDocumentEvents = () => {\n    const document = getDocument();\n    document.removeEventListener('visibilitychange', onVisibilityChange);\n  };\n\n  on('init', () => {\n    if (swiper.params.autoplay.enabled) {\n      attachMouseEvents();\n      attachDocumentEvents();\n      autoplayStartTime = new Date().getTime();\n      start();\n    }\n  });\n\n  on('destroy', () => {\n    detachMouseEvents();\n    detachDocumentEvents();\n    if (swiper.autoplay.running) {\n      stop();\n    }\n  });\n\n  on('beforeTransitionStart', (_s, speed, internal) => {\n    if (swiper.destroyed || !swiper.autoplay.running) return;\n    if (internal || !swiper.params.autoplay.disableOnInteraction) {\n      pause(true, true);\n    } else {\n      stop();\n    }\n  });\n\n  on('sliderFirstMove', () => {\n    if (swiper.destroyed || !swiper.autoplay.running) return;\n\n    if (swiper.params.autoplay.disableOnInteraction) {\n      stop();\n      return;\n    }\n    isTouched = true;\n    pausedByTouch = false;\n    pausedByInteraction = false;\n    touchStartTimeout = setTimeout(() => {\n      pausedByInteraction = true;\n      pausedByTouch = true;\n      pause(true);\n    }, 200);\n  });\n\n  on('touchEnd', () => {\n    if (swiper.destroyed || !swiper.autoplay.running || !isTouched) return;\n    clearTimeout(touchStartTimeout);\n    clearTimeout(timeout);\n\n    if (swiper.params.autoplay.disableOnInteraction) {\n      pausedByTouch = false;\n      isTouched = false;\n      return;\n    }\n\n    if (pausedByTouch && swiper.params.cssMode) resume();\n    pausedByTouch = false;\n    isTouched = false;\n  });\n\n  on('slideChange', () => {\n    if (swiper.destroyed || !swiper.autoplay.running) return;\n    slideChanged = true;\n  });\n\n  Object.assign(swiper.autoplay, {\n    start,\n    stop,\n    pause,\n    resume,\n  });\n}\n","import { getDocument } from 'ssr-window';\nimport { elementChildren, isObject, elementNextAll, elementPrevAll } from '../../shared/utils.js';\n\nexport default function Thumb({ swiper, extendParams, on }) {\n  extendParams({\n    thumbs: {\n      swiper: null,\n      multipleActiveThumbs: true,\n      autoScrollOffset: 0,\n      slideThumbActiveClass: 'swiper-slide-thumb-active',\n      thumbsContainerClass: 'swiper-thumbs',\n    },\n  });\n\n  let initialized = false;\n  let swiperCreated = false;\n\n  swiper.thumbs = {\n    swiper: null,\n  };\n\n  function onThumbClick() {\n    const thumbsSwiper = swiper.thumbs.swiper;\n    if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n\n    const clickedIndex = thumbsSwiper.clickedIndex;\n    const clickedSlide = thumbsSwiper.clickedSlide;\n    if (clickedSlide && clickedSlide.classList.contains(swiper.params.thumbs.slideThumbActiveClass))\n      return;\n    if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n    let slideToIndex;\n    if (thumbsSwiper.params.loop) {\n      slideToIndex = parseInt(\n        thumbsSwiper.clickedSlide.getAttribute('data-swiper-slide-index'),\n        10,\n      );\n    } else {\n      slideToIndex = clickedIndex;\n    }\n    if (swiper.params.loop) {\n      const currentIndex = swiper.activeIndex;\n\n      const prevIndex = swiper.slides.indexOf(\n        elementPrevAll(\n          swiper.slides[currentIndex],\n          `[data-swiper-slide-index=\"${slideToIndex}\"]`,\n        )[0],\n      );\n      const nextIndex = swiper.slides.indexOf(\n        elementNextAll(\n          swiper.slides[currentIndex],\n          `[data-swiper-slide-index=\"${slideToIndex}\"]`,\n        )[0],\n      );\n\n      if (typeof prevIndex === 'undefined') slideToIndex = nextIndex;\n      else if (typeof nextIndex === 'undefined') slideToIndex = prevIndex;\n      else if (nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex = nextIndex;\n      else slideToIndex = prevIndex;\n    }\n    swiper.slideTo(slideToIndex);\n  }\n\n  function init() {\n    const { thumbs: thumbsParams } = swiper.params;\n    if (initialized) return false;\n    initialized = true;\n    const SwiperClass = swiper.constructor;\n    if (thumbsParams.swiper instanceof SwiperClass) {\n      swiper.thumbs.swiper = thumbsParams.swiper;\n      Object.assign(swiper.thumbs.swiper.originalParams, {\n        watchSlidesProgress: true,\n        slideToClickedSlide: false,\n      });\n      Object.assign(swiper.thumbs.swiper.params, {\n        watchSlidesProgress: true,\n        slideToClickedSlide: false,\n      });\n      swiper.thumbs.swiper.update();\n    } else if (isObject(thumbsParams.swiper)) {\n      const thumbsSwiperParams = Object.assign({}, thumbsParams.swiper);\n      Object.assign(thumbsSwiperParams, {\n        watchSlidesProgress: true,\n        slideToClickedSlide: false,\n      });\n      swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams);\n      swiperCreated = true;\n    }\n    swiper.thumbs.swiper.el.classList.add(swiper.params.thumbs.thumbsContainerClass);\n    swiper.thumbs.swiper.on('tap', onThumbClick);\n    return true;\n  }\n\n  function update(initial) {\n    const thumbsSwiper = swiper.thumbs.swiper;\n    if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n\n    const slidesPerView =\n      thumbsSwiper.params.slidesPerView === 'auto'\n        ? thumbsSwiper.slidesPerViewDynamic()\n        : thumbsSwiper.params.slidesPerView;\n\n    // Activate thumbs\n    let thumbsToActivate = 1;\n    const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n\n    if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n      thumbsToActivate = swiper.params.slidesPerView;\n    }\n\n    if (!swiper.params.thumbs.multipleActiveThumbs) {\n      thumbsToActivate = 1;\n    }\n\n    thumbsToActivate = Math.floor(thumbsToActivate);\n\n    thumbsSwiper.slides.forEach((slideEl) => slideEl.classList.remove(thumbActiveClass));\n    if (\n      thumbsSwiper.params.loop ||\n      (thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled)\n    ) {\n      for (let i = 0; i < thumbsToActivate; i += 1) {\n        elementChildren(\n          thumbsSwiper.slidesEl,\n          `[data-swiper-slide-index=\"${swiper.realIndex + i}\"]`,\n        ).forEach((slideEl) => {\n          slideEl.classList.add(thumbActiveClass);\n        });\n      }\n    } else {\n      for (let i = 0; i < thumbsToActivate; i += 1) {\n        thumbsSwiper.slides[swiper.realIndex + i].classList.add(thumbActiveClass);\n      }\n    }\n\n    const autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n    const useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n    if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n      const currentThumbsIndex = thumbsSwiper.activeIndex;\n      let newThumbsIndex;\n      let direction;\n      if (thumbsSwiper.params.loop) {\n        // Find actual thumbs index to slide to\n        const prevThumbsIndex = thumbsSwiper.slides.indexOf(\n          elementPrevAll(\n            thumbsSwiper.slides[currentThumbsIndex],\n            `[data-swiper-slide-index=\"${swiper.realIndex}\"]`,\n          )[0],\n        );\n        const nextThumbsIndex = thumbsSwiper.slides.indexOf(\n          elementNextAll(\n            thumbsSwiper.slides[currentThumbsIndex],\n            `[data-swiper-slide-index=\"${swiper.realIndex}\"]`,\n          )[0],\n        );\n\n        if (typeof prevThumbsIndex === 'undefined') {\n          newThumbsIndex = nextThumbsIndex;\n        } else if (typeof nextThumbsIndex === 'undefined') {\n          newThumbsIndex = prevThumbsIndex;\n        } else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) {\n          newThumbsIndex =\n            thumbsSwiper.params.slidesPerGroup > 1 ? nextThumbsIndex : currentThumbsIndex;\n        } else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) {\n          newThumbsIndex = nextThumbsIndex;\n        } else {\n          newThumbsIndex = prevThumbsIndex;\n        }\n        direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n      } else {\n        newThumbsIndex = swiper.realIndex;\n        direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\n      }\n      if (useOffset) {\n        newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\n      }\n\n      if (\n        thumbsSwiper.visibleSlidesIndexes &&\n        thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0\n      ) {\n        if (thumbsSwiper.params.centeredSlides) {\n          if (newThumbsIndex > currentThumbsIndex) {\n            newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n          } else {\n            newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n          }\n        } else if (\n          newThumbsIndex > currentThumbsIndex &&\n          thumbsSwiper.params.slidesPerGroup === 1\n        ) {\n          // newThumbsIndex = newThumbsIndex - slidesPerView + 1;\n        }\n        thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n      }\n    }\n  }\n\n  on('beforeInit', () => {\n    const { thumbs } = swiper.params;\n    if (!thumbs || !thumbs.swiper) return;\n    if (typeof thumbs.swiper === 'string' || thumbs.swiper instanceof HTMLElement) {\n      const document = getDocument();\n      const thumbsElement =\n        typeof thumbs.swiper === 'string' ? document.querySelector(thumbs.swiper) : thumbs.swiper;\n      if (thumbsElement && thumbsElement.swiper) {\n        thumbs.swiper = swiper;\n      } else if (thumbsElement) {\n        const onThumbsSwiper = (e) => {\n          thumbs.swiper = e.detail[0];\n          thumbsElement.removeEventListener('init', onThumbsSwiper);\n          init();\n          update(true);\n          thumbs.swiper.update();\n          swiper.update();\n        };\n        thumbsElement.addEventListener('init', onThumbsSwiper);\n        return;\n      }\n    }\n    init();\n    update(true);\n  });\n  on('slideChange update resize observerUpdate', () => {\n    update();\n  });\n  on('setTransition', (_s, duration) => {\n    const thumbsSwiper = swiper.thumbs.swiper;\n    if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n    thumbsSwiper.setTransition(duration);\n  });\n  on('beforeDestroy', () => {\n    const thumbsSwiper = swiper.thumbs.swiper;\n    if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n    if (swiperCreated) {\n      thumbsSwiper.destroy();\n    }\n  });\n\n  Object.assign(swiper.thumbs, {\n    init,\n    update,\n  });\n}\n","import { elementTransitionEnd, now } from '../../shared/utils.js';\n\nexport default function freeMode({ swiper, extendParams, emit, once }) {\n  extendParams({\n    freeMode: {\n      enabled: false,\n      momentum: true,\n      momentumRatio: 1,\n      momentumBounce: true,\n      momentumBounceRatio: 1,\n      momentumVelocityRatio: 1,\n      sticky: false,\n      minimumVelocity: 0.02,\n    },\n  });\n\n  function onTouchStart() {\n    const translate = swiper.getTranslate();\n    swiper.setTranslate(translate);\n    swiper.setTransition(0);\n    swiper.touchEventsData.velocities.length = 0;\n    swiper.freeMode.onTouchEnd({ currentPos: swiper.rtl ? swiper.translate : -swiper.translate });\n  }\n\n  function onTouchMove() {\n    const { touchEventsData: data, touches } = swiper;\n    // Velocity\n    if (data.velocities.length === 0) {\n      data.velocities.push({\n        position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n        time: data.touchStartTime,\n      });\n    }\n    data.velocities.push({\n      position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n      time: now(),\n    });\n  }\n\n  function onTouchEnd({ currentPos }) {\n    const { params, wrapperEl, rtlTranslate: rtl, snapGrid, touchEventsData: data } = swiper;\n    // Time diff\n    const touchEndTime = now();\n    const timeDiff = touchEndTime - data.touchStartTime;\n\n    if (currentPos < -swiper.minTranslate()) {\n      swiper.slideTo(swiper.activeIndex);\n      return;\n    }\n    if (currentPos > -swiper.maxTranslate()) {\n      if (swiper.slides.length < snapGrid.length) {\n        swiper.slideTo(snapGrid.length - 1);\n      } else {\n        swiper.slideTo(swiper.slides.length - 1);\n      }\n      return;\n    }\n\n    if (params.freeMode.momentum) {\n      if (data.velocities.length > 1) {\n        const lastMoveEvent = data.velocities.pop();\n        const velocityEvent = data.velocities.pop();\n\n        const distance = lastMoveEvent.position - velocityEvent.position;\n        const time = lastMoveEvent.time - velocityEvent.time;\n        swiper.velocity = distance / time;\n        swiper.velocity /= 2;\n        if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) {\n          swiper.velocity = 0;\n        }\n        // this implies that the user stopped moving a finger then released.\n        // There would be no events with distance zero, so the last event is stale.\n        if (time > 150 || now() - lastMoveEvent.time > 300) {\n          swiper.velocity = 0;\n        }\n      } else {\n        swiper.velocity = 0;\n      }\n      swiper.velocity *= params.freeMode.momentumVelocityRatio;\n\n      data.velocities.length = 0;\n      let momentumDuration = 1000 * params.freeMode.momentumRatio;\n      const momentumDistance = swiper.velocity * momentumDuration;\n\n      let newPosition = swiper.translate + momentumDistance;\n      if (rtl) newPosition = -newPosition;\n\n      let doBounce = false;\n      let afterBouncePosition;\n      const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio;\n      let needsLoopFix;\n      if (newPosition < swiper.maxTranslate()) {\n        if (params.freeMode.momentumBounce) {\n          if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n            newPosition = swiper.maxTranslate() - bounceAmount;\n          }\n          afterBouncePosition = swiper.maxTranslate();\n          doBounce = true;\n          data.allowMomentumBounce = true;\n        } else {\n          newPosition = swiper.maxTranslate();\n        }\n        if (params.loop && params.centeredSlides) needsLoopFix = true;\n      } else if (newPosition > swiper.minTranslate()) {\n        if (params.freeMode.momentumBounce) {\n          if (newPosition - swiper.minTranslate() > bounceAmount) {\n            newPosition = swiper.minTranslate() + bounceAmount;\n          }\n          afterBouncePosition = swiper.minTranslate();\n          doBounce = true;\n          data.allowMomentumBounce = true;\n        } else {\n          newPosition = swiper.minTranslate();\n        }\n        if (params.loop && params.centeredSlides) needsLoopFix = true;\n      } else if (params.freeMode.sticky) {\n        let nextSlide;\n        for (let j = 0; j < snapGrid.length; j += 1) {\n          if (snapGrid[j] > -newPosition) {\n            nextSlide = j;\n            break;\n          }\n        }\n\n        if (\n          Math.abs(snapGrid[nextSlide] - newPosition) <\n            Math.abs(snapGrid[nextSlide - 1] - newPosition) ||\n          swiper.swipeDirection === 'next'\n        ) {\n          newPosition = snapGrid[nextSlide];\n        } else {\n          newPosition = snapGrid[nextSlide - 1];\n        }\n        newPosition = -newPosition;\n      }\n      if (needsLoopFix) {\n        once('transitionEnd', () => {\n          swiper.loopFix();\n        });\n      }\n      // Fix duration\n      if (swiper.velocity !== 0) {\n        if (rtl) {\n          momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n        } else {\n          momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n        }\n        if (params.freeMode.sticky) {\n          // If freeMode.sticky is active and the user ends a swipe with a slow-velocity\n          // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n          // It's easy to see this when simulating touch with mouse events. To fix this,\n          // limit single-slide swipes to the default slide duration. This also has the\n          // nice side effect of matching slide speed if the user stopped moving before\n          // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n          // For faster swipes, also apply limits (albeit higher ones).\n          const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n          const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n          if (moveDistance < currentSlideSize) {\n            momentumDuration = params.speed;\n          } else if (moveDistance < 2 * currentSlideSize) {\n            momentumDuration = params.speed * 1.5;\n          } else {\n            momentumDuration = params.speed * 2.5;\n          }\n        }\n      } else if (params.freeMode.sticky) {\n        swiper.slideToClosest();\n        return;\n      }\n\n      if (params.freeMode.momentumBounce && doBounce) {\n        swiper.updateProgress(afterBouncePosition);\n        swiper.setTransition(momentumDuration);\n        swiper.setTranslate(newPosition);\n        swiper.transitionStart(true, swiper.swipeDirection);\n        swiper.animating = true;\n        elementTransitionEnd(wrapperEl, () => {\n          if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n          emit('momentumBounce');\n          swiper.setTransition(params.speed);\n          setTimeout(() => {\n            swiper.setTranslate(afterBouncePosition);\n            elementTransitionEnd(wrapperEl, () => {\n              if (!swiper || swiper.destroyed) return;\n              swiper.transitionEnd();\n            });\n          }, 0);\n        });\n      } else if (swiper.velocity) {\n        emit('_freeModeNoMomentumRelease');\n        swiper.updateProgress(newPosition);\n        swiper.setTransition(momentumDuration);\n        swiper.setTranslate(newPosition);\n        swiper.transitionStart(true, swiper.swipeDirection);\n        if (!swiper.animating) {\n          swiper.animating = true;\n          elementTransitionEnd(wrapperEl, () => {\n            if (!swiper || swiper.destroyed) return;\n            swiper.transitionEnd();\n          });\n        }\n      } else {\n        swiper.updateProgress(newPosition);\n      }\n\n      swiper.updateActiveIndex();\n      swiper.updateSlidesClasses();\n    } else if (params.freeMode.sticky) {\n      swiper.slideToClosest();\n      return;\n    } else if (params.freeMode) {\n      emit('_freeModeNoMomentumRelease');\n    }\n\n    if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) {\n      swiper.updateProgress();\n      swiper.updateActiveIndex();\n      swiper.updateSlidesClasses();\n    }\n  }\n\n  Object.assign(swiper, {\n    freeMode: {\n      onTouchStart,\n      onTouchMove,\n      onTouchEnd,\n    },\n  });\n}\n","export default function Grid({ swiper, extendParams }) {\n  extendParams({\n    grid: {\n      rows: 1,\n      fill: 'column',\n    },\n  });\n\n  let slidesNumberEvenToRows;\n  let slidesPerRow;\n  let numFullColumns;\n\n  const initSlides = (slidesLength) => {\n    const { slidesPerView } = swiper.params;\n    const { rows, fill } = swiper.params.grid;\n    slidesPerRow = slidesNumberEvenToRows / rows;\n    numFullColumns = Math.floor(slidesLength / rows);\n    if (Math.floor(slidesLength / rows) === slidesLength / rows) {\n      slidesNumberEvenToRows = slidesLength;\n    } else {\n      slidesNumberEvenToRows = Math.ceil(slidesLength / rows) * rows;\n    }\n    if (slidesPerView !== 'auto' && fill === 'row') {\n      slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows);\n    }\n  };\n\n  const updateSlide = (i, slide, slidesLength, getDirectionLabel) => {\n    const { slidesPerGroup, spaceBetween } = swiper.params;\n    const { rows, fill } = swiper.params.grid;\n    // Set slides order\n    let newSlideOrderIndex;\n    let column;\n    let row;\n    if (fill === 'row' && slidesPerGroup > 1) {\n      const groupIndex = Math.floor(i / (slidesPerGroup * rows));\n      const slideIndexInGroup = i - rows * slidesPerGroup * groupIndex;\n      const columnsInGroup =\n        groupIndex === 0\n          ? slidesPerGroup\n          : Math.min(\n              Math.ceil((slidesLength - groupIndex * rows * slidesPerGroup) / rows),\n              slidesPerGroup,\n            );\n      row = Math.floor(slideIndexInGroup / columnsInGroup);\n      column = slideIndexInGroup - row * columnsInGroup + groupIndex * slidesPerGroup;\n\n      newSlideOrderIndex = column + (row * slidesNumberEvenToRows) / rows;\n      slide.style.order = newSlideOrderIndex;\n    } else if (fill === 'column') {\n      column = Math.floor(i / rows);\n      row = i - column * rows;\n      if (column > numFullColumns || (column === numFullColumns && row === rows - 1)) {\n        row += 1;\n        if (row >= rows) {\n          row = 0;\n          column += 1;\n        }\n      }\n    } else {\n      row = Math.floor(i / slidesPerRow);\n      column = i - row * slidesPerRow;\n    }\n    slide.style[getDirectionLabel('margin-top')] =\n      row !== 0 ? spaceBetween && `${spaceBetween}px` : '';\n  };\n\n  const updateWrapperSize = (slideSize, snapGrid, getDirectionLabel) => {\n    const { spaceBetween, centeredSlides, roundLengths } = swiper.params;\n    const { rows } = swiper.params.grid;\n    swiper.virtualSize = (slideSize + spaceBetween) * slidesNumberEvenToRows;\n    swiper.virtualSize = Math.ceil(swiper.virtualSize / rows) - spaceBetween;\n    swiper.wrapperEl.style[getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n    if (centeredSlides) {\n      const newSlidesGrid = [];\n      for (let i = 0; i < snapGrid.length; i += 1) {\n        let slidesGridItem = snapGrid[i];\n        if (roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n        if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n      }\n      snapGrid.splice(0, snapGrid.length);\n      snapGrid.push(...newSlidesGrid);\n    }\n  };\n\n  swiper.grid = {\n    initSlides,\n    updateSlide,\n    updateWrapperSize,\n  };\n}\n","export default function appendSlide(slides) {\n  const swiper = this;\n  const { params, slidesEl } = swiper;\n\n  if (params.loop) {\n    swiper.loopDestroy();\n  }\n\n  const appendElement = (slideEl) => {\n    if (typeof slideEl === 'string') {\n      const tempDOM = document.createElement('div');\n      tempDOM.innerHTML = slideEl;\n      slidesEl.append(tempDOM.children[0]);\n      tempDOM.innerHTML = '';\n    } else {\n      slidesEl.append(slideEl);\n    }\n  };\n\n  if (typeof slides === 'object' && 'length' in slides) {\n    for (let i = 0; i < slides.length; i += 1) {\n      if (slides[i]) appendElement(slides[i]);\n    }\n  } else {\n    appendElement(slides);\n  }\n  swiper.recalcSlides();\n  if (params.loop) {\n    swiper.loopCreate();\n  }\n  if (!params.observer) {\n    swiper.update();\n  }\n}\n","export default function prependSlide(slides) {\n  const swiper = this;\n  const { params, activeIndex, slidesEl } = swiper;\n\n  if (params.loop) {\n    swiper.loopDestroy();\n  }\n  let newActiveIndex = activeIndex + 1;\n  const prependElement = (slideEl) => {\n    if (typeof slideEl === 'string') {\n      const tempDOM = document.createElement('div');\n      tempDOM.innerHTML = slideEl;\n      slidesEl.prepend(tempDOM.children[0]);\n      tempDOM.innerHTML = '';\n    } else {\n      slidesEl.prepend(slideEl);\n    }\n  };\n  if (typeof slides === 'object' && 'length' in slides) {\n    for (let i = 0; i < slides.length; i += 1) {\n      if (slides[i]) prependElement(slides[i]);\n    }\n    newActiveIndex = activeIndex + slides.length;\n  } else {\n    prependElement(slides);\n  }\n  swiper.recalcSlides();\n  if (params.loop) {\n    swiper.loopCreate();\n  }\n  if (!params.observer) {\n    swiper.update();\n  }\n  swiper.slideTo(newActiveIndex, 0, false);\n}\n","export default function addSlide(index, slides) {\n  const swiper = this;\n  const { params, activeIndex, slidesEl } = swiper;\n  let activeIndexBuffer = activeIndex;\n  if (params.loop) {\n    activeIndexBuffer -= swiper.loopedSlides;\n    swiper.loopDestroy();\n    swiper.recalcSlides();\n  }\n  const baseLength = swiper.slides.length;\n  if (index <= 0) {\n    swiper.prependSlide(slides);\n    return;\n  }\n  if (index >= baseLength) {\n    swiper.appendSlide(slides);\n    return;\n  }\n  let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n\n  const slidesBuffer = [];\n  for (let i = baseLength - 1; i >= index; i -= 1) {\n    const currentSlide = swiper.slides[i];\n    currentSlide.remove();\n    slidesBuffer.unshift(currentSlide);\n  }\n\n  if (typeof slides === 'object' && 'length' in slides) {\n    for (let i = 0; i < slides.length; i += 1) {\n      if (slides[i]) slidesEl.append(slides[i]);\n    }\n    newActiveIndex =\n      activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n  } else {\n    slidesEl.append(slides);\n  }\n\n  for (let i = 0; i < slidesBuffer.length; i += 1) {\n    slidesEl.append(slidesBuffer[i]);\n  }\n\n  swiper.recalcSlides();\n\n  if (params.loop) {\n    swiper.loopCreate();\n  }\n  if (!params.observer) {\n    swiper.update();\n  }\n  if (params.loop) {\n    swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n  } else {\n    swiper.slideTo(newActiveIndex, 0, false);\n  }\n}\n","export default function removeSlide(slidesIndexes) {\n  const swiper = this;\n  const { params, activeIndex } = swiper;\n\n  let activeIndexBuffer = activeIndex;\n  if (params.loop) {\n    activeIndexBuffer -= swiper.loopedSlides;\n    swiper.loopDestroy();\n  }\n  let newActiveIndex = activeIndexBuffer;\n  let indexToRemove;\n\n  if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n    for (let i = 0; i < slidesIndexes.length; i += 1) {\n      indexToRemove = slidesIndexes[i];\n      if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove();\n      if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n    }\n    newActiveIndex = Math.max(newActiveIndex, 0);\n  } else {\n    indexToRemove = slidesIndexes;\n    if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove();\n    if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n    newActiveIndex = Math.max(newActiveIndex, 0);\n  }\n\n  swiper.recalcSlides();\n  if (params.loop) {\n    swiper.loopCreate();\n  }\n\n  if (!params.observer) {\n    swiper.update();\n  }\n  if (params.loop) {\n    swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n  } else {\n    swiper.slideTo(newActiveIndex, 0, false);\n  }\n}\n","export default function removeAllSlides() {\r\n  const swiper = this;\r\n\r\n  const slidesIndexes = [];\r\n  for (let i = 0; i < swiper.slides.length; i += 1) {\r\n    slidesIndexes.push(i);\r\n  }\r\n  swiper.removeSlide(slidesIndexes);\r\n}\r\n","import appendSlide from './methods/appendSlide.js';\r\nimport prependSlide from './methods/prependSlide.js';\r\nimport addSlide from './methods/addSlide.js';\r\nimport removeSlide from './methods/removeSlide.js';\r\nimport removeAllSlides from './methods/removeAllSlides.js';\r\n\r\nexport default function Manipulation({ swiper }) {\r\n  Object.assign(swiper, {\r\n    appendSlide: appendSlide.bind(swiper),\r\n    prependSlide: prependSlide.bind(swiper),\r\n    addSlide: addSlide.bind(swiper),\r\n    removeSlide: removeSlide.bind(swiper),\r\n    removeAllSlides: removeAllSlides.bind(swiper),\r\n  });\r\n}\r\n","export default function effectInit(params) {\n  const {\n    effect,\n    swiper,\n    on,\n    setTranslate,\n    setTransition,\n    overwriteParams,\n    perspective,\n    recreateShadows,\n    getEffectParams,\n  } = params;\n\n  on('beforeInit', () => {\n    if (swiper.params.effect !== effect) return;\n    swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`);\n    if (perspective && perspective()) {\n      swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n    }\n\n    const overwriteParamsResult = overwriteParams ? overwriteParams() : {};\n\n    Object.assign(swiper.params, overwriteParamsResult);\n    Object.assign(swiper.originalParams, overwriteParamsResult);\n  });\n  on('setTranslate', () => {\n    if (swiper.params.effect !== effect) return;\n    setTranslate();\n  });\n  on('setTransition', (_s, duration) => {\n    if (swiper.params.effect !== effect) return;\n    setTransition(duration);\n  });\n\n  on('transitionEnd', () => {\n    if (swiper.params.effect !== effect) return;\n    if (recreateShadows) {\n      if (!getEffectParams || !getEffectParams().slideShadows) return;\n      // remove shadows\n      swiper.slides.forEach((slideEl) => {\n        slideEl\n          .querySelectorAll(\n            '.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left',\n          )\n          .forEach((shadowEl) => shadowEl.remove());\n      });\n      // create new one\n      recreateShadows();\n    }\n  });\n\n  let requireUpdateOnVirtual;\n  on('virtualUpdate', () => {\n    if (swiper.params.effect !== effect) return;\n    if (!swiper.slides.length) {\n      requireUpdateOnVirtual = true;\n    }\n    requestAnimationFrame(() => {\n      if (requireUpdateOnVirtual && swiper.slides && swiper.slides.length) {\n        setTranslate();\n        requireUpdateOnVirtual = false;\n      }\n    });\n  });\n}\n","import { getSlideTransformEl } from './utils.js';\n\nexport default function effectTarget(effectParams, slideEl) {\n  const transformEl = getSlideTransformEl(slideEl);\n  if (transformEl !== slideEl) {\n    transformEl.style.backfaceVisibility = 'hidden';\n    transformEl.style['-webkit-backface-visibility'] = 'hidden';\n  }\n  return transformEl;\n}\n","import { elementIndex, elementTransitionEnd } from './utils.js';\n\nexport default function effectVirtualTransitionEnd({\n  swiper,\n  duration,\n  transformElements,\n  allSlides,\n}) {\n  const { activeIndex } = swiper;\n  const getSlide = (el) => {\n    if (!el.parentElement) {\n      // assume shadow root\n      const slide = swiper.slides.filter(\n        (slideEl) => slideEl.shadowEl && slideEl.shadowEl === el.parentNode,\n      )[0];\n      return slide;\n    }\n    return el.parentElement;\n  };\n  if (swiper.params.virtualTranslate && duration !== 0) {\n    let eventTriggered = false;\n    let transitionEndTarget;\n    if (allSlides) {\n      transitionEndTarget = transformElements;\n    } else {\n      transitionEndTarget = transformElements.filter((transformEl) => {\n        const el = transformEl.classList.contains('swiper-slide-transform')\n          ? getSlide(transformEl)\n          : transformEl;\n        return elementIndex(el) === activeIndex;\n      });\n    }\n    transitionEndTarget.forEach((el) => {\n      elementTransitionEnd(el, () => {\n        if (eventTriggered) return;\n        if (!swiper || swiper.destroyed) return;\n        eventTriggered = true;\n        swiper.animating = false;\n        const triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n        triggerEvents.forEach((eventName) => {\n          const evt = new window.CustomEvent(eventName, {\n            bubbles: true,\n            cancelable: true,\n          });\n          swiper.wrapperEl.dispatchEvent(evt);\n        });\n      });\n    });\n  }\n}\n","import effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nimport { getSlideTransformEl } from '../../shared/utils.js';\n\nexport default function EffectFade({ swiper, extendParams, on }) {\n  extendParams({\n    fadeEffect: {\n      crossFade: false,\n    },\n  });\n\n  const setTranslate = () => {\n    const { slides } = swiper;\n    const params = swiper.params.fadeEffect;\n    for (let i = 0; i < slides.length; i += 1) {\n      const slideEl = swiper.slides[i];\n      const offset = slideEl.swiperSlideOffset;\n      let tx = -offset;\n      if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n      let ty = 0;\n      if (!swiper.isHorizontal()) {\n        ty = tx;\n        tx = 0;\n      }\n      const slideOpacity = swiper.params.fadeEffect.crossFade\n        ? Math.max(1 - Math.abs(slideEl.progress), 0)\n        : 1 + Math.min(Math.max(slideEl.progress, -1), 0);\n\n      const targetEl = effectTarget(params, slideEl);\n      targetEl.style.opacity = slideOpacity;\n      targetEl.style.transform = `translate3d(${tx}px, ${ty}px, 0px)`;\n    }\n  };\n  const setTransition = (duration) => {\n    const transformElements = swiper.slides.map((slideEl) => getSlideTransformEl(slideEl));\n    transformElements.forEach((el) => {\n      el.style.transition = `${duration}ms`;\n    });\n\n    effectVirtualTransitionEnd({ swiper, duration, transformElements, allSlides: true });\n  };\n\n  effectInit({\n    effect: 'fade',\n    swiper,\n    on,\n    setTranslate,\n    setTransition,\n    overwriteParams: () => ({\n      slidesPerView: 1,\n      slidesPerGroup: 1,\n      watchSlidesProgress: true,\n      spaceBetween: 0,\n      virtualTranslate: !swiper.params.cssMode,\n    }),\n  });\n}\n","import effectInit from '../../shared/effect-init.js';\nimport { createElement } from '../../shared/utils.js';\n\nexport default function EffectCube({ swiper, extendParams, on }) {\n  extendParams({\n    cubeEffect: {\n      slideShadows: true,\n      shadow: true,\n      shadowOffset: 20,\n      shadowScale: 0.94,\n    },\n  });\n\n  const createSlideShadows = (slideEl, progress, isHorizontal) => {\n    let shadowBefore = isHorizontal\n      ? slideEl.querySelector('.swiper-slide-shadow-left')\n      : slideEl.querySelector('.swiper-slide-shadow-top');\n    let shadowAfter = isHorizontal\n      ? slideEl.querySelector('.swiper-slide-shadow-right')\n      : slideEl.querySelector('.swiper-slide-shadow-bottom');\n    if (!shadowBefore) {\n      shadowBefore = createElement('div', `swiper-slide-shadow-${isHorizontal ? 'left' : 'top'}`);\n      slideEl.append(shadowBefore);\n    }\n    if (!shadowAfter) {\n      shadowAfter = createElement(\n        'div',\n        `swiper-slide-shadow-${isHorizontal ? 'right' : 'bottom'}`,\n      );\n      slideEl.append(shadowAfter);\n    }\n    if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0);\n    if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0);\n  };\n\n  const recreateShadows = () => {\n    // create new ones\n    const isHorizontal = swiper.isHorizontal();\n    swiper.slides.forEach((slideEl) => {\n      const progress = Math.max(Math.min(slideEl.progress, 1), -1);\n      createSlideShadows(slideEl, progress, isHorizontal);\n    });\n  };\n\n  const setTranslate = () => {\n    const {\n      el,\n      wrapperEl,\n      slides,\n      width: swiperWidth,\n      height: swiperHeight,\n      rtlTranslate: rtl,\n      size: swiperSize,\n      browser,\n    } = swiper;\n    const params = swiper.params.cubeEffect;\n    const isHorizontal = swiper.isHorizontal();\n    const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n    let wrapperRotate = 0;\n    let cubeShadowEl;\n\n    if (params.shadow) {\n      if (isHorizontal) {\n        cubeShadowEl = swiper.slidesEl.querySelector('.swiper-cube-shadow');\n        if (!cubeShadowEl) {\n          cubeShadowEl = createElement('div', 'swiper-cube-shadow');\n          swiper.slidesEl.append(cubeShadowEl);\n        }\n        cubeShadowEl.style.height = `${swiperWidth}px`;\n      } else {\n        cubeShadowEl = el.querySelector('.swiper-cube-shadow');\n        if (!cubeShadowEl) {\n          cubeShadowEl = createElement('div', 'swiper-cube-shadow');\n          el.append(cubeShadowEl);\n        }\n      }\n    }\n    for (let i = 0; i < slides.length; i += 1) {\n      const slideEl = slides[i];\n      let slideIndex = i;\n      if (isVirtual) {\n        slideIndex = parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10);\n      }\n      let slideAngle = slideIndex * 90;\n      let round = Math.floor(slideAngle / 360);\n      if (rtl) {\n        slideAngle = -slideAngle;\n        round = Math.floor(-slideAngle / 360);\n      }\n      const progress = Math.max(Math.min(slideEl.progress, 1), -1);\n      let tx = 0;\n      let ty = 0;\n      let tz = 0;\n      if (slideIndex % 4 === 0) {\n        tx = -round * 4 * swiperSize;\n        tz = 0;\n      } else if ((slideIndex - 1) % 4 === 0) {\n        tx = 0;\n        tz = -round * 4 * swiperSize;\n      } else if ((slideIndex - 2) % 4 === 0) {\n        tx = swiperSize + round * 4 * swiperSize;\n        tz = swiperSize;\n      } else if ((slideIndex - 3) % 4 === 0) {\n        tx = -swiperSize;\n        tz = 3 * swiperSize + swiperSize * 4 * round;\n      }\n      if (rtl) {\n        tx = -tx;\n      }\n\n      if (!isHorizontal) {\n        ty = tx;\n        tx = 0;\n      }\n\n      const transform = `rotateX(${isHorizontal ? 0 : -slideAngle}deg) rotateY(${\n        isHorizontal ? slideAngle : 0\n      }deg) translate3d(${tx}px, ${ty}px, ${tz}px)`;\n      if (progress <= 1 && progress > -1) {\n        wrapperRotate = slideIndex * 90 + progress * 90;\n        if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90;\n      }\n      slideEl.style.transform = transform;\n      if (params.slideShadows) {\n        createSlideShadows(slideEl, progress, isHorizontal);\n      }\n    }\n    wrapperEl.style.transformOrigin = `50% 50% -${swiperSize / 2}px`;\n    wrapperEl.style['-webkit-transform-origin'] = `50% 50% -${swiperSize / 2}px`;\n\n    if (params.shadow) {\n      if (isHorizontal) {\n        cubeShadowEl.style.transform = `translate3d(0px, ${\n          swiperWidth / 2 + params.shadowOffset\n        }px, ${-swiperWidth / 2}px) rotateX(90deg) rotateZ(0deg) scale(${params.shadowScale})`;\n      } else {\n        const shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;\n        const multiplier =\n          1.5 -\n          (Math.sin((shadowAngle * 2 * Math.PI) / 360) / 2 +\n            Math.cos((shadowAngle * 2 * Math.PI) / 360) / 2);\n        const scale1 = params.shadowScale;\n        const scale2 = params.shadowScale / multiplier;\n        const offset = params.shadowOffset;\n        cubeShadowEl.style.transform = `scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${\n          swiperHeight / 2 + offset\n        }px, ${-swiperHeight / 2 / scale2}px) rotateX(-90deg)`;\n      }\n    }\n    const zFactor = browser.isSafari || browser.isWebView ? -swiperSize / 2 : 0;\n    wrapperEl.style.transform = `translate3d(0px,0,${zFactor}px) rotateX(${\n      swiper.isHorizontal() ? 0 : wrapperRotate\n    }deg) rotateY(${swiper.isHorizontal() ? -wrapperRotate : 0}deg)`;\n\n    wrapperEl.style.setProperty('--swiper-cube-translate-z', `${zFactor}px`);\n  };\n  const setTransition = (duration) => {\n    const { el, slides } = swiper;\n    slides.forEach((slideEl) => {\n      slideEl.style.transitionDuration = `${duration}ms`;\n      slideEl\n        .querySelectorAll(\n          '.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left',\n        )\n        .forEach((subEl) => {\n          subEl.style.transitionDuration = `${duration}ms`;\n        });\n    });\n\n    if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n      const shadowEl = el.querySelector('.swiper-cube-shadow');\n      if (shadowEl) shadowEl.style.transitionDuration = `${duration}ms`;\n    }\n  };\n\n  effectInit({\n    effect: 'cube',\n    swiper,\n    on,\n    setTranslate,\n    setTransition,\n    recreateShadows,\n    getEffectParams: () => swiper.params.cubeEffect,\n    perspective: () => true,\n    overwriteParams: () => ({\n      slidesPerView: 1,\n      slidesPerGroup: 1,\n      watchSlidesProgress: true,\n      resistanceRatio: 0,\n      spaceBetween: 0,\n      centeredSlides: false,\n      virtualTranslate: true,\n    }),\n  });\n}\n","import { createElement, getSlideTransformEl } from './utils.js';\n\nexport default function createShadow(params, slideEl, side) {\n  const shadowClass = `swiper-slide-shadow${side ? `-${side}` : ''}`;\n  const shadowContainer = getSlideTransformEl(slideEl);\n  let shadowEl = shadowContainer.querySelector(`.${shadowClass}`);\n\n  if (!shadowEl) {\n    shadowEl = createElement('div', `swiper-slide-shadow${side ? `-${side}` : ''}`);\n    shadowContainer.append(shadowEl);\n  }\n  return shadowEl;\n}\n","import createShadow from '../../shared/create-shadow.js';\nimport effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nimport { getSlideTransformEl } from '../../shared/utils.js';\n\nexport default function EffectFlip({ swiper, extendParams, on }) {\n  extendParams({\n    flipEffect: {\n      slideShadows: true,\n      limitRotation: true,\n    },\n  });\n\n  const createSlideShadows = (slideEl, progress, params) => {\n    let shadowBefore = swiper.isHorizontal()\n      ? slideEl.querySelector('.swiper-slide-shadow-left')\n      : slideEl.querySelector('.swiper-slide-shadow-top');\n    let shadowAfter = swiper.isHorizontal()\n      ? slideEl.querySelector('.swiper-slide-shadow-right')\n      : slideEl.querySelector('.swiper-slide-shadow-bottom');\n    if (!shadowBefore) {\n      shadowBefore = createShadow(params, slideEl, swiper.isHorizontal() ? 'left' : 'top');\n    }\n    if (!shadowAfter) {\n      shadowAfter = createShadow(params, slideEl, swiper.isHorizontal() ? 'right' : 'bottom');\n    }\n    if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0);\n    if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0);\n  };\n\n  const recreateShadows = () => {\n    // Set shadows\n    const params = swiper.params.flipEffect;\n    swiper.slides.forEach((slideEl) => {\n      let progress = slideEl.progress;\n      if (swiper.params.flipEffect.limitRotation) {\n        progress = Math.max(Math.min(slideEl.progress, 1), -1);\n      }\n      createSlideShadows(slideEl, progress, params);\n    });\n  };\n\n  const setTranslate = () => {\n    const { slides, rtlTranslate: rtl } = swiper;\n    const params = swiper.params.flipEffect;\n    for (let i = 0; i < slides.length; i += 1) {\n      const slideEl = slides[i];\n      let progress = slideEl.progress;\n      if (swiper.params.flipEffect.limitRotation) {\n        progress = Math.max(Math.min(slideEl.progress, 1), -1);\n      }\n      const offset = slideEl.swiperSlideOffset;\n      const rotate = -180 * progress;\n      let rotateY = rotate;\n      let rotateX = 0;\n      let tx = swiper.params.cssMode ? -offset - swiper.translate : -offset;\n      let ty = 0;\n      if (!swiper.isHorizontal()) {\n        ty = tx;\n        tx = 0;\n        rotateX = -rotateY;\n        rotateY = 0;\n      } else if (rtl) {\n        rotateY = -rotateY;\n      }\n\n      slideEl.style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\n\n      if (params.slideShadows) {\n        createSlideShadows(slideEl, progress, params);\n      }\n      const transform = `translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`;\n      const targetEl = effectTarget(params, slideEl);\n      targetEl.style.transform = transform;\n    }\n  };\n\n  const setTransition = (duration) => {\n    const transformElements = swiper.slides.map((slideEl) => getSlideTransformEl(slideEl));\n\n    transformElements.forEach((el) => {\n      el.style.transition = `${duration}ms`;\n      el.querySelectorAll(\n        '.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left',\n      ).forEach((shadowEl) => {\n        shadowEl.style.transition = `${duration}ms`;\n      });\n    });\n\n    effectVirtualTransitionEnd({ swiper, duration, transformElements });\n  };\n\n  effectInit({\n    effect: 'flip',\n    swiper,\n    on,\n    setTranslate,\n    setTransition,\n    recreateShadows,\n    getEffectParams: () => swiper.params.flipEffect,\n    perspective: () => true,\n    overwriteParams: () => ({\n      slidesPerView: 1,\n      slidesPerGroup: 1,\n      watchSlidesProgress: true,\n      spaceBetween: 0,\n      virtualTranslate: !swiper.params.cssMode,\n    }),\n  });\n}\n","import createShadow from '../../shared/create-shadow.js';\nimport effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport { getSlideTransformEl } from '../../shared/utils.js';\n\nexport default function EffectCoverflow({ swiper, extendParams, on }) {\n  extendParams({\n    coverflowEffect: {\n      rotate: 50,\n      stretch: 0,\n      depth: 100,\n      scale: 1,\n      modifier: 1,\n      slideShadows: true,\n    },\n  });\n\n  const setTranslate = () => {\n    const { width: swiperWidth, height: swiperHeight, slides, slidesSizesGrid } = swiper;\n    const params = swiper.params.coverflowEffect;\n    const isHorizontal = swiper.isHorizontal();\n    const transform = swiper.translate;\n    const center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;\n    const rotate = isHorizontal ? params.rotate : -params.rotate;\n    const translate = params.depth;\n    // Each slide offset from center\n    for (let i = 0, length = slides.length; i < length; i += 1) {\n      const slideEl = slides[i];\n      const slideSize = slidesSizesGrid[i];\n      const slideOffset = slideEl.swiperSlideOffset;\n      const centerOffset = (center - slideOffset - slideSize / 2) / slideSize;\n      const offsetMultiplier =\n        typeof params.modifier === 'function'\n          ? params.modifier(centerOffset)\n          : centerOffset * params.modifier;\n\n      let rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n      let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier;\n      // var rotateZ = 0\n      let translateZ = -translate * Math.abs(offsetMultiplier);\n\n      let stretch = params.stretch;\n      // Allow percentage to make a relative stretch for responsive sliders\n      if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {\n        stretch = (parseFloat(params.stretch) / 100) * slideSize;\n      }\n      let translateY = isHorizontal ? 0 : stretch * offsetMultiplier;\n      let translateX = isHorizontal ? stretch * offsetMultiplier : 0;\n\n      let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier);\n\n      // Fix for ultra small values\n      if (Math.abs(translateX) < 0.001) translateX = 0;\n      if (Math.abs(translateY) < 0.001) translateY = 0;\n      if (Math.abs(translateZ) < 0.001) translateZ = 0;\n      if (Math.abs(rotateY) < 0.001) rotateY = 0;\n      if (Math.abs(rotateX) < 0.001) rotateX = 0;\n      if (Math.abs(scale) < 0.001) scale = 0;\n\n      const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px)  rotateX(${rotateX}deg) rotateY(${rotateY}deg) scale(${scale})`;\n      const targetEl = effectTarget(params, slideEl);\n      targetEl.style.transform = slideTransform;\n\n      slideEl.style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n\n      if (params.slideShadows) {\n        // Set shadows\n        let shadowBeforeEl = isHorizontal\n          ? slideEl.querySelector('.swiper-slide-shadow-left')\n          : slideEl.querySelector('.swiper-slide-shadow-top');\n        let shadowAfterEl = isHorizontal\n          ? slideEl.querySelector('.swiper-slide-shadow-right')\n          : slideEl.querySelector('.swiper-slide-shadow-bottom');\n        if (!shadowBeforeEl) {\n          shadowBeforeEl = createShadow(params, slideEl, isHorizontal ? 'left' : 'top');\n        }\n        if (!shadowAfterEl) {\n          shadowAfterEl = createShadow(params, slideEl, isHorizontal ? 'right' : 'bottom');\n        }\n        if (shadowBeforeEl)\n          shadowBeforeEl.style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n        if (shadowAfterEl)\n          shadowAfterEl.style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;\n      }\n    }\n  };\n  const setTransition = (duration) => {\n    const transformElements = swiper.slides.map((slideEl) => getSlideTransformEl(slideEl));\n\n    transformElements.forEach((el) => {\n      el.style.transition = `${duration}ms`;\n      el.querySelectorAll(\n        '.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left',\n      ).forEach((shadowEl) => {\n        shadowEl.style.transition = `${duration}ms`;\n      });\n    });\n  };\n\n  effectInit({\n    effect: 'coverflow',\n    swiper,\n    on,\n    setTranslate,\n    setTransition,\n    perspective: () => true,\n    overwriteParams: () => ({\n      watchSlidesProgress: true,\n    }),\n  });\n}\n","import createShadow from '../../shared/create-shadow.js';\nimport effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nimport { getSlideTransformEl } from '../../shared/utils.js';\n\nexport default function EffectCreative({ swiper, extendParams, on }) {\n  extendParams({\n    creativeEffect: {\n      limitProgress: 1,\n      shadowPerProgress: false,\n      progressMultiplier: 1,\n      perspective: true,\n      prev: {\n        translate: [0, 0, 0],\n        rotate: [0, 0, 0],\n        opacity: 1,\n        scale: 1,\n      },\n      next: {\n        translate: [0, 0, 0],\n        rotate: [0, 0, 0],\n        opacity: 1,\n        scale: 1,\n      },\n    },\n  });\n\n  const getTranslateValue = (value) => {\n    if (typeof value === 'string') return value;\n    return `${value}px`;\n  };\n\n  const setTranslate = () => {\n    const { slides, wrapperEl, slidesSizesGrid } = swiper;\n    const params = swiper.params.creativeEffect;\n    const { progressMultiplier: multiplier } = params;\n\n    const isCenteredSlides = swiper.params.centeredSlides;\n\n    if (isCenteredSlides) {\n      const margin = slidesSizesGrid[0] / 2 - swiper.params.slidesOffsetBefore || 0;\n      wrapperEl.style.transform = `translateX(calc(50% - ${margin}px))`;\n    }\n\n    for (let i = 0; i < slides.length; i += 1) {\n      const slideEl = slides[i];\n      const slideProgress = slideEl.progress;\n      const progress = Math.min(\n        Math.max(slideEl.progress, -params.limitProgress),\n        params.limitProgress,\n      );\n      let originalProgress = progress;\n\n      if (!isCenteredSlides) {\n        originalProgress = Math.min(\n          Math.max(slideEl.originalProgress, -params.limitProgress),\n          params.limitProgress,\n        );\n      }\n\n      const offset = slideEl.swiperSlideOffset;\n      const t = [swiper.params.cssMode ? -offset - swiper.translate : -offset, 0, 0];\n      const r = [0, 0, 0];\n      let custom = false;\n      if (!swiper.isHorizontal()) {\n        t[1] = t[0];\n        t[0] = 0;\n      }\n      let data = {\n        translate: [0, 0, 0],\n        rotate: [0, 0, 0],\n        scale: 1,\n        opacity: 1,\n      };\n      if (progress < 0) {\n        data = params.next;\n        custom = true;\n      } else if (progress > 0) {\n        data = params.prev;\n        custom = true;\n      }\n      // set translate\n      t.forEach((value, index) => {\n        t[index] = `calc(${value}px + (${getTranslateValue(data.translate[index])} * ${Math.abs(\n          progress * multiplier,\n        )}))`;\n      });\n      // set rotates\n      r.forEach((value, index) => {\n        r[index] = data.rotate[index] * Math.abs(progress * multiplier);\n      });\n\n      slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n\n      const translateString = t.join(', ');\n      const rotateString = `rotateX(${r[0]}deg) rotateY(${r[1]}deg) rotateZ(${r[2]}deg)`;\n      const scaleString =\n        originalProgress < 0\n          ? `scale(${1 + (1 - data.scale) * originalProgress * multiplier})`\n          : `scale(${1 - (1 - data.scale) * originalProgress * multiplier})`;\n      const opacityString =\n        originalProgress < 0\n          ? 1 + (1 - data.opacity) * originalProgress * multiplier\n          : 1 - (1 - data.opacity) * originalProgress * multiplier;\n      const transform = `translate3d(${translateString}) ${rotateString} ${scaleString}`;\n\n      // Set shadows\n      if ((custom && data.shadow) || !custom) {\n        let shadowEl = slideEl.querySelector('.swiper-slide-shadow');\n        if (!shadowEl && data.shadow) {\n          shadowEl = createShadow(params, slideEl);\n        }\n        if (shadowEl) {\n          const shadowOpacity = params.shadowPerProgress\n            ? progress * (1 / params.limitProgress)\n            : progress;\n          shadowEl.style.opacity = Math.min(Math.max(Math.abs(shadowOpacity), 0), 1);\n        }\n      }\n\n      const targetEl = effectTarget(params, slideEl);\n      targetEl.style.transform = transform;\n      targetEl.style.opacity = opacityString;\n      if (data.origin) {\n        targetEl.style.transformOrigin = opacityString;\n      }\n    }\n  };\n\n  const setTransition = (duration) => {\n    const transformElements = swiper.slides.map((slideEl) => getSlideTransformEl(slideEl));\n\n    transformElements.forEach((el) => {\n      el.style.transition = `${duration}ms`;\n      el.querySelectorAll('.swiper-slide-shadow').forEach((shadowEl) => {\n        shadowEl.style.transition = `${duration}ms`;\n      });\n    });\n\n    effectVirtualTransitionEnd({ swiper, duration, transformElements, allSlides: true });\n  };\n\n  effectInit({\n    effect: 'creative',\n    swiper,\n    on,\n    setTranslate,\n    setTransition,\n    perspective: () => swiper.params.creativeEffect.perspective,\n    overwriteParams: () => ({\n      watchSlidesProgress: true,\n      virtualTranslate: !swiper.params.cssMode,\n    }),\n  });\n}\n","import createShadow from '../../shared/create-shadow.js';\nimport effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nimport { getSlideTransformEl } from '../../shared/utils.js';\n\nexport default function EffectCards({ swiper, extendParams, on }) {\n  extendParams({\n    cardsEffect: {\n      slideShadows: true,\n      rotate: true,\n      perSlideRotate: 2,\n      perSlideOffset: 8,\n    },\n  });\n\n  const setTranslate = () => {\n    const { slides, activeIndex } = swiper;\n    const params = swiper.params.cardsEffect;\n    const { startTranslate, isTouched } = swiper.touchEventsData;\n    const currentTranslate = swiper.translate;\n    for (let i = 0; i < slides.length; i += 1) {\n      const slideEl = slides[i];\n      const slideProgress = slideEl.progress;\n      const progress = Math.min(Math.max(slideProgress, -4), 4);\n      let offset = slideEl.swiperSlideOffset;\n      if (swiper.params.centeredSlides && !swiper.params.cssMode) {\n        swiper.wrapperEl.style.transform = `translateX(${swiper.minTranslate()}px)`;\n      }\n      if (swiper.params.centeredSlides && swiper.params.cssMode) {\n        offset -= slides[0].swiperSlideOffset;\n      }\n      let tX = swiper.params.cssMode ? -offset - swiper.translate : -offset;\n      let tY = 0;\n      const tZ = -100 * Math.abs(progress);\n      let scale = 1;\n      let rotate = -params.perSlideRotate * progress;\n\n      let tXAdd = params.perSlideOffset - Math.abs(progress) * 0.75;\n\n      const slideIndex =\n        swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.from + i : i;\n\n      const isSwipeToNext =\n        (slideIndex === activeIndex || slideIndex === activeIndex - 1) &&\n        progress > 0 &&\n        progress < 1 &&\n        (isTouched || swiper.params.cssMode) &&\n        currentTranslate < startTranslate;\n      const isSwipeToPrev =\n        (slideIndex === activeIndex || slideIndex === activeIndex + 1) &&\n        progress < 0 &&\n        progress > -1 &&\n        (isTouched || swiper.params.cssMode) &&\n        currentTranslate > startTranslate;\n\n      if (isSwipeToNext || isSwipeToPrev) {\n        const subProgress = (1 - Math.abs((Math.abs(progress) - 0.5) / 0.5)) ** 0.5;\n        rotate += -28 * progress * subProgress;\n        scale += -0.5 * subProgress;\n        tXAdd += 96 * subProgress;\n        tY = `${-25 * subProgress * Math.abs(progress)}%`;\n      }\n\n      if (progress < 0) {\n        // next\n        tX = `calc(${tX}px + (${tXAdd * Math.abs(progress)}%))`;\n      } else if (progress > 0) {\n        // prev\n        tX = `calc(${tX}px + (-${tXAdd * Math.abs(progress)}%))`;\n      } else {\n        tX = `${tX}px`;\n      }\n      if (!swiper.isHorizontal()) {\n        const prevY = tY;\n        tY = tX;\n        tX = prevY;\n      }\n\n      const scaleString =\n        progress < 0 ? `${1 + (1 - scale) * progress}` : `${1 - (1 - scale) * progress}`;\n\n      const transform = `\n        translate3d(${tX}, ${tY}, ${tZ}px)\n        rotateZ(${params.rotate ? rotate : 0}deg)\n        scale(${scaleString})\n      `;\n\n      if (params.slideShadows) {\n        // Set shadows\n        let shadowEl = slideEl.querySelector('.swiper-slide-shadow');\n        if (!shadowEl) {\n          shadowEl = createShadow(params, slideEl);\n        }\n        if (shadowEl)\n          shadowEl.style.opacity = Math.min(Math.max((Math.abs(progress) - 0.5) / 0.5, 0), 1);\n      }\n\n      slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n      const targetEl = effectTarget(params, slideEl);\n      targetEl.style.transform = transform;\n    }\n  };\n\n  const setTransition = (duration) => {\n    const transformElements = swiper.slides.map((slideEl) => getSlideTransformEl(slideEl));\n    transformElements.forEach((el) => {\n      el.style.transition = `${duration}ms`;\n      el.querySelectorAll('.swiper-slide-shadow').forEach((shadowEl) => {\n        shadowEl.style.transition = `${duration}ms`;\n      });\n    });\n\n    effectVirtualTransitionEnd({ swiper, duration, transformElements });\n  };\n\n  effectInit({\n    effect: 'cards',\n    swiper,\n    on,\n    setTranslate,\n    setTransition,\n    perspective: () => true,\n    overwriteParams: () => ({\n      watchSlidesProgress: true,\n      virtualTranslate: !swiper.params.cssMode,\n    }),\n  });\n}\n","// Swiper Class\r\nimport Swiper from './core/core.js';\r\n\r\n//IMPORT_MODULES\r\n\r\nconst modules = [\r\n  //INSTALL_MODULES\r\n];\r\n\r\nSwiper.use(modules);\r\n\r\n//EXPORT\r\n"],"names":["isObject","obj","constructor","Object","extend","target","src","keys","forEach","key","length","ssrDocument","body","addEventListener","removeEventListener","activeElement","blur","nodeName","querySelector","querySelectorAll","getElementById","createEvent","initEvent","createElement","children","childNodes","style","setAttribute","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","getDocument","doc","document","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","getComputedStyle","getPropertyValue","Image","Date","screen","setTimeout","clearTimeout","matchMedia","requestAnimationFrame","callback","cancelAnimationFrame","id","getWindow","win","window","deleteProps","object","e","nextTick","delay","now","el","currentStyle","getTranslate","axis","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","transform","webkitTransform","split","map","a","replace","join","MozTransform","OTransform","MsTransform","msTransform","toString","m41","parseFloat","m42","o","prototype","call","slice","isNode","node","HTMLElement","nodeType","to","noExtend","i","nextSource","undefined","keysArray","filter","indexOf","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","enumerable","__swiper__","setCSSProperty","varName","varValue","setProperty","animateCSSModeScroll","swiper","targetPosition","side","startPosition","translate","startTime","time","duration","params","speed","wrapperEl","scrollSnapType","cssModeFrameID","dir","isOutOfBound","current","animate","getTime","progress","Math","max","min","easeProgress","cos","PI","currentPosition","scrollTo","overflow","getSlideTransformEl","slideEl","shadowEl","elementChildren","element","selector","matches","tag","classes","classList","add","Array","isArray","elementOffset","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","elementPrevAll","prevEls","previousElementSibling","prev","push","elementNextAll","nextEls","nextElementSibling","next","elementStyle","prop","elementIndex","child","previousSibling","elementParents","parents","parent","parentElement","elementTransitionEnd","fireCallBack","elementOuterSize","size","includeMargins","offsetWidth","support","calcSupport","smoothScroll","documentElement","touch","DocumentTouch","getSupport","deviceCached","calcDevice","platform","ua","device","ios","android","screenWidth","width","screenHeight","height","match","ipad","ipod","iphone","windows","macos","iPadScreens","os","getDevice","overrides","browser","calcBrowser","isSafari","toLowerCase","isWebView","test","getBrowser","Resize","on","emit","observer","animationFrame","resizeHandler","destroyed","initialized","createObserver","ResizeObserver","entries","newWidth","newHeight","contentBoxSize","contentRect","inlineSize","blockSize","observe","removeObserver","unobserve","orientationChangeHandler","resizeObserver","Observer","extendParams","observers","attach","options","ObserverFunc","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","attributes","childList","characterData","init","observeParents","containerParents","observeSlideChildren","destroy","disconnect","splice","events","handler","priority","self","eventsListeners","method","event","once","onceHandler","off","__emitterProxy","args","apply","onAny","eventsAnyListeners","offAny","index","eventHandler","data","context","unshift","eventsArray","updateSize","clientWidth","clientHeight","isHorizontal","isVertical","parseInt","Number","isNaN","assign","updateSlides","getDirectionLabel","property","getDirectionPropertyValue","label","slidesEl","swiperSize","rtlTranslate","rtl","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slides","slideClass","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","marginLeft","marginRight","marginBottom","marginTop","centeredSlides","cssMode","gridEnabled","grid","rows","initSlides","slideSize","shouldResetSlideSize","slidesPerView","breakpoints","slide","updateSlide","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","floor","swiperSlideSize","abs","slidesPerGroup","slidesPerGroupSkip","effect","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","loop","groups","ceil","slidesBefore","slidesAfter","groupSize","_","slideIndex","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","v","watchOverflow","checkOverflow","watchSlidesProgress","updateSlidesOffset","backFaceHiddenClass","containerModifierClass","hasClassBackfaceClassAdded","contains","maxBackfaceHiddenSlides","remove","updateAutoHeight","activeSlides","setTransition","getSlideByIndex","getAttribute","visibleSlides","activeIndex","offsetHeight","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","offsetCenter","slideVisibleClass","visibleSlidesIndexes","slideOffset","slideProgress","minTranslate","originalSlideProgress","slideBefore","slideAfter","isVisible","originalProgress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","progressLoop","wasBeginning","wasEnd","firstSlideIndex","lastSlideIndex","firstSlideTranslate","lastSlideTranslate","translateMax","translateAbs","autoHeight","updateSlidesClasses","getFilteredSlide","slideActiveClass","slideNextClass","slidePrevClass","activeSlide","nextSlide","prevSlide","emitSlidesClasses","getActiveIndexByTranslate","normalizeSlideIndex","updateActiveIndex","newActiveIndex","previousIndex","realIndex","previousRealIndex","previousSnapIndex","getVirtualRealIndex","aIndex","skip","runCallbacksOnInit","updateClickedSlide","closest","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","getSwiperTranslate","virtualTranslate","currentTranslate","setTranslate","byController","x","y","z","previousTranslate","newProgress","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","isH","behavior","onTranslateToWrapperTransitionEnd","transitionEnd","transitionDuration","transitionEmit","direction","step","transitionStart","slideTo","initial","normalizedTranslate","normalizedGrid","normalizedGridNext","allowSlideNext","allowSlidePrev","t","_immediateVirtual","_swiperImmediateVirtual","onSlideToWrapperTransitionEnd","slideToLoop","indexAsNumber","newIndex","slideNext","perGroup","slidesPerGroupAuto","slidesPerViewDynamic","increment","loopFix","_clientLeft","rewind","slidePrev","normalize","val","normalizedSnapGrid","prevSnap","prevSnapIndex","prevIndex","lastIndex","slideReset","slideToClosest","threshold","currentSnap","nextSnap","slideToIndex","slideSelector","isElement","loopedSlides","loopCreate","slideRealIndex","prependSlidesIndexes","appendSlidesIndexes","activeSlideIndex","slidesPrepended","slidesAppended","prepend","append","recalcSlides","loopDestroy","newSlidesOrder","swiperSlideIndex","removeAttr","setGrabCursor","moving","simulateTouch","isLocked","touchEventsTarget","cursor","unsetGrabCursor","closestElement","base","__closestFrom","assignedSlot","found","getRootNode","onTouchStart","touchEventsData","evCache","touches","pointerType","originalEvent","targetEl","which","button","isTouched","isMoved","swipingClassHasValue","noSwipingClass","eventPath","composedPath","path","shadowRoot","noSwipingSelector","isTargetShadow","noSwiping","allowClick","swipeHandler","currentX","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","innerWidth","preventDefault","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","freeMode","onTouchMove","pointerIndex","findIndex","cachedEv","pointerId","targetTouch","preventedByNestedSwiper","touchReleaseOnEdges","targetTouches","diffX","diffY","sqrt","touchAngle","atan2","zoom","cancelable","touchMoveStopPropagation","nested","stopPropagation","startTranslate","eventName","evt","bubbles","dispatchEvent","allowMomentumBounce","grabCursor","diff","touchRatio","disableParentSwiper","resistanceRatio","resistance","followFinger","onTouchEnd","includes","type","touchEndTime","timeDiff","pathTree","lastClickTime","currentPos","stopIndex","rewindFirstIndex","rewindLastIndex","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","isNavButtonTarget","navigation","nextEl","prevEl","timeout","onResize","setBreakpoint","isVirtualLoop","autoplay","running","paused","resume","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","onLoad","lazyEl","lazyPreloaderClass","update","dummyEventAttached","dummyEventListener","capture","domMethod","swiperMethod","passive","updateOnWindowResize","attachEvents","bind","detachEvents","isGridEnabled","breakpoint","getBreakpoint","breakpointsBase","currentBreakpoint","breakpointOnlyParams","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","fill","wasModuleEnabled","isModuleEnabled","disable","enable","directionChanged","needsReLoop","changeDirection","isEnabled","containerEl","currentHeight","innerHeight","points","point","minRatio","substr","value","sort","b","prepareClasses","prefix","resultClasses","item","classNames","addClasses","suffixes","removeClasses","wasLocked","lastSlideRightEdge","initialSlide","createElements","url","uniqueNavElements","passiveListeners","wrapperClass","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","auto","prototypes","eventsEmitter","transition","extendedDefaults","Swiper","swipers","newParams","modules","__modules__","mod","swiperParams","defaults","passedParams","velocity","clickTimeout","velocities","imagesToLoad","imagesLoaded","setProgress","cls","className","getSlideClasses","updates","view","exact","spv","breakLoop","slideInView","translateValue","translated","newDirection","needUpdate","currentDirection","changeLanguageDirection","mount","mounted","getWrapperSelector","trim","getWrapper","res","deleteInstance","cleanStyles","removeAttribute","extendDefaults","newDefaults","installModule","use","module","m","prototypeGroup","protoMethod","Virtual","cache","renderSlide","renderExternal","renderExternalUpdate","addSlidesBefore","addSlidesAfter","cssModeTimeout","from","offset","tempDOM","innerHTML","textContent","force","isLoop","previousFrom","previousTo","previousSlidesGrid","previousOffset","offsetProp","onRendered","getSlides","slidesToRender","prependIndexes","appendIndexes","getSlideIndex","loopFrom","loopTo","appendSlide","prependSlide","numberOfNewSlides","newCache","cachedIndex","cachedEl","cachedElIndex","removeSlide","slidesIndexes","removeAllSlides","domSlidesAssigned","Keyboard","keyboard","onlyInViewport","pageUpDown","handle","kc","keyCode","charCode","isPageUp","isPageDown","isArrowLeft","isArrowRight","isArrowUp","isArrowDown","shiftKey","altKey","ctrlKey","metaKey","inView","swiperWidth","swiperHeight","windowWidth","windowHeight","swiperOffset","swiperCoord","returnValue","Mousewheel","mousewheel","releaseOnEdges","invert","forceToAxis","sensitivity","eventsTarget","thresholdDelta","thresholdTime","lastScrollTime","lastEventBeforeSnap","recentWheelEvents","PIXEL_STEP","LINE_HEIGHT","PAGE_HEIGHT","sX","sY","pX","pY","detail","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaY","deltaX","deltaMode","spinX","spinY","pixelX","pixelY","handleMouseEnter","mouseEntered","handleMouseLeave","animateSlider","newEvent","delta","raw","releaseScroll","targetElContainsTarget","rtlFactor","positions","sign","shift","prevEvent","ignoreWheelEvents","position","sticky","firstEvent","snapToThreshold","autoplayDisableOnInteraction","stop","createElementIfNotDefined","checkProps","Navigation","hideOnClick","disabledClass","hiddenClass","lockClass","navigationDisabledClass","makeElementsArray","getEl","toggleEl","disabled","subEl","tagName","onPrevClick","onNextClick","initButton","destroyButton","_s","pagination","clickable","isHidden","toggle","classesToSelector","Pagination","pfx","bulletElement","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","number","formatFractionTotal","bulletClass","bulletActiveClass","modifierClass","currentClass","totalClass","progressbarFillClass","progressbarOppositeClass","clickableClass","horizontalClass","verticalClass","paginationDisabledClass","bullets","bulletSize","dynamicBulletIndex","isPaginationDisabled","setSideBullets","bulletEl","onBulletClick","isBullet","total","firstIndex","midIndex","suffix","bullet","bulletIndex","firstDisplayedBullet","lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","subElIndex","fractionEl","totalEl","progressbarDirection","scale","scaleX","scaleY","progressEl","render","paginationHTML","numberOfBullets","Scrollbar","dragTimeout","dragStartPos","dragSize","trackSize","divider","scrollbar","hide","draggable","snapOnRelease","dragClass","scrollbarDisabledClass","dragEl","newSize","newPos","opacity","display","getPointerPosition","clientX","clientY","setDragPosition","positionRatio","onDragStart","onDragMove","onDragEnd","activeListener","passiveListener","eventMethod","enableDraggable","disableDraggable","swiperEl","Parallax","parallax","setTransform","p","currentOpacity","currentScale","parallaxEl","parallaxDuration","_swiper","Zoom","maxRatio","containerClass","zoomedSlideClass","isScaling","fakeGestureTouched","fakeGestureMoved","gesture","slideWidth","slideHeight","imageEl","imageWrapEl","image","minX","minY","maxX","maxY","touchesStart","touchesCurrent","prevPositionX","prevPositionY","prevTime","defineProperty","get","set","getDistanceBetweenTouches","x1","y1","x2","y2","distance","getSlideSelector","eventWithinSlide","eventWithinZoomContainer","onGestureStart","scaleStart","onGestureChange","scaleMove","onGestureEnd","imageE","scaledWidth","scaledHeight","momentumDurationX","momentumDurationY","momentumDistanceX","newPositionX","momentumDistanceY","newPositionY","momentumDuration","onTransitionEnd","zoomIn","touchAction","touchX","touchY","offsetX","offsetY","translateX","translateY","imageWidth","imageHeight","translateMinX","translateMinY","translateMaxX","translateMaxY","zoomOut","zoomToggle","getListeners","activeListenerWithCapture","in","out","Controller","controller","control","inverse","by","LinearSpline","binarySearch","maxIndex","minIndex","guess","array","i1","i3","interpolate","getInterpolateFunction","c","spline","_t","controlled","controlledTranslate","setControlledTranslate","setControlledTransition","removeSpline","controlElement","onControllerSwiper","A11y","a11y","notificationClass","prevSlideMessage","nextSlideMessage","firstSlideMessage","lastSlideMessage","paginationBulletMessage","slideLabelMessage","containerMessage","containerRoleDescriptionMessage","itemRoleDescriptionMessage","slideRole","clicked","liveRegion","notify","message","notification","getRandomNumber","randomChar","round","random","repeat","makeElFocusable","makeElNotFocusable","addElRole","role","addElRoleDescription","description","addElControls","controls","addElLabel","addElId","addElLive","live","disableEl","enableEl","onEnterOrSpaceKey","click","updateNavigation","hasPagination","hasClickablePagination","updatePagination","initNavEl","wrapperId","handlePointerDown","handlePointerUp","handleFocus","isActive","sourceCapabilities","firesTouchEvents","ariaLabelMessage","History","root","keepQuery","paths","slugify","text","getPathValues","urlOverride","URL","pathArray","part","setHistory","currentState","state","scrollToSlide","slideHistory","setHistoryPopState","hashNavigation","HashNavigation","watchState","onHashChange","newHash","activeSlideHash","setHash","slideHash","Autoplay","timeLeft","waitForTransition","disableOnInteraction","stopOnLastSlide","reverseDirection","pauseOnMouseEnter","raf","autoplayDelayTotal","autoplayDelayCurrent","autoplayTimeLeft","autoplayStartTime","wasPaused","pausedByTouch","touchStartTimeout","slideChanged","pausedByInteraction","calcTimeLeft","getSlideDelay","activeSlideEl","currentSlideDelay","run","delayForce","proceed","start","pause","reset","onVisibilityChange","visibilityState","onPointerEnter","onPointerLeave","attachMouseEvents","detachMouseEvents","attachDocumentEvents","detachDocumentEvents","Thumb","thumbs","multipleActiveThumbs","autoScrollOffset","slideThumbActiveClass","thumbsContainerClass","swiperCreated","onThumbClick","thumbsSwiper","currentIndex","thumbsParams","SwiperClass","thumbsSwiperParams","thumbsToActivate","thumbActiveClass","useOffset","currentThumbsIndex","newThumbsIndex","prevThumbsIndex","nextThumbsIndex","thumbsElement","onThumbsSwiper","momentum","momentumRatio","momentumBounce","momentumBounceRatio","momentumVelocityRatio","minimumVelocity","lastMoveEvent","pop","velocityEvent","momentumDistance","newPosition","doBounce","afterBouncePosition","bounceAmount","needsLoopFix","j","moveDistance","currentSlideSize","Grid","slidesNumberEvenToRows","slidesPerRow","numFullColumns","newSlideOrderIndex","column","row","groupIndex","slideIndexInGroup","columnsInGroup","order","appendElement","prependElement","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","indexToRemove","Manipulation","effectInit","overwriteParams","perspective","recreateShadows","getEffectParams","overwriteParamsResult","slideShadows","requireUpdateOnVirtual","effectTarget","effectParams","transformEl","backfaceVisibility","effectVirtualTransitionEnd","transformElements","allSlides","getSlide","parentNode","eventTriggered","transitionEndTarget","triggerEvents","EffectFade","fadeEffect","crossFade","tx","ty","slideOpacity","EffectCube","cubeEffect","shadow","shadowOffset","shadowScale","createSlideShadows","shadowBefore","shadowAfter","wrapperRotate","cubeShadowEl","slideAngle","tz","transformOrigin","shadowAngle","sin","scale1","scale2","zFactor","createShadow","shadowClass","shadowContainer","EffectFlip","flipEffect","limitRotation","rotate","rotateY","rotateX","zIndex","EffectCoverflow","coverflowEffect","stretch","depth","modifier","center","centerOffset","offsetMultiplier","translateZ","slideTransform","shadowBeforeEl","shadowAfterEl","EffectCreative","creativeEffect","limitProgress","shadowPerProgress","progressMultiplier","getTranslateValue","isCenteredSlides","margin","r","custom","translateString","rotateString","scaleString","opacityString","shadowOpacity","EffectCards","cardsEffect","perSlideRotate","perSlideOffset","tX","tY","tZ","tXAdd","isSwipeToNext","isSwipeToPrev","subProgress","prevY"],"mappings":";;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA,SAASA,UAAT,CAAkBC,GAAlB,EAAuB;AACnB,EAAA,OAAQA,GAAG,KAAK,IAAR,IACJ,OAAOA,GAAP,KAAe,QADX,IAEJ,aAAA,IAAiBA,GAFb,IAGJA,GAAG,CAACC,WAAJ,KAAoBC,MAHxB,CAAA;AAIH,CAAA;;AACD,SAASC,QAAT,CAAgBC,MAAhB,EAA6BC,GAA7B,EAAuC;AAAA,EAAA,IAAvBD,MAAuB,KAAA,KAAA,CAAA,EAAA;AAAvBA,IAAAA,MAAuB,GAAd,EAAc,CAAA;AAAA,GAAA;;AAAA,EAAA,IAAVC,GAAU,KAAA,KAAA,CAAA,EAAA;AAAVA,IAAAA,GAAU,GAAJ,EAAI,CAAA;AAAA,GAAA;;EACnCH,MAAM,CAACI,IAAP,CAAYD,GAAZ,EAAiBE,OAAjB,CAA0BC,GAAD,IAAS;IAC9B,IAAI,OAAOJ,MAAM,CAACI,GAAD,CAAb,KAAuB,WAA3B,EACIJ,MAAM,CAACI,GAAD,CAAN,GAAcH,GAAG,CAACG,GAAD,CAAjB,CADJ,KAEK,IAAIT,UAAQ,CAACM,GAAG,CAACG,GAAD,CAAJ,CAAR,IACLT,UAAQ,CAACK,MAAM,CAACI,GAAD,CAAP,CADH,IAELN,MAAM,CAACI,IAAP,CAAYD,GAAG,CAACG,GAAD,CAAf,CAAsBC,CAAAA,MAAtB,GAA+B,CAF9B,EAEiC;MAClCN,QAAM,CAACC,MAAM,CAACI,GAAD,CAAP,EAAcH,GAAG,CAACG,GAAD,CAAjB,CAAN,CAAA;AACH,KAAA;GAPL,CAAA,CAAA;AASH,CAAA;;AAED,MAAME,WAAW,GAAG;AAChBC,EAAAA,IAAI,EAAE,EADU;;EAEhBC,gBAAgB,GAAG,EAFH;;EAGhBC,mBAAmB,GAAG,EAHN;;AAIhBC,EAAAA,aAAa,EAAE;IACXC,IAAI,GAAG,EADI;;AAEXC,IAAAA,QAAQ,EAAE,EAAA;GANE;;AAQhBC,EAAAA,aAAa,GAAG;AACZ,IAAA,OAAO,IAAP,CAAA;GATY;;AAWhBC,EAAAA,gBAAgB,GAAG;AACf,IAAA,OAAO,EAAP,CAAA;GAZY;;AAchBC,EAAAA,cAAc,GAAG;AACb,IAAA,OAAO,IAAP,CAAA;GAfY;;AAiBhBC,EAAAA,WAAW,GAAG;IACV,OAAO;AACHC,MAAAA,SAAS,GAAG,EAAG;;KADnB,CAAA;GAlBY;;AAsBhBC,EAAAA,aAAa,GAAG;IACZ,OAAO;AACHC,MAAAA,QAAQ,EAAE,EADP;AAEHC,MAAAA,UAAU,EAAE,EAFT;AAGHC,MAAAA,KAAK,EAAE,EAHJ;;MAIHC,YAAY,GAAG,EAJZ;;AAKHC,MAAAA,oBAAoB,GAAG;AACnB,QAAA,OAAO,EAAP,CAAA;AACH,OAAA;;KAPL,CAAA;GAvBY;;AAiChBC,EAAAA,eAAe,GAAG;AACd,IAAA,OAAO,EAAP,CAAA;GAlCY;;AAoChBC,EAAAA,UAAU,GAAG;AACT,IAAA,OAAO,IAAP,CAAA;GArCY;;AAuChBC,EAAAA,QAAQ,EAAE;AACNC,IAAAA,IAAI,EAAE,EADA;AAENC,IAAAA,IAAI,EAAE,EAFA;AAGNC,IAAAA,QAAQ,EAAE,EAHJ;AAINC,IAAAA,IAAI,EAAE,EAJA;AAKNC,IAAAA,MAAM,EAAE,EALF;AAMNC,IAAAA,QAAQ,EAAE,EANJ;AAONC,IAAAA,QAAQ,EAAE,EAPJ;AAQNC,IAAAA,MAAM,EAAE,EAAA;AARF,GAAA;AAvCM,CAApB,CAAA;;AAkDA,SAASC,WAAT,GAAuB;EACnB,MAAMC,GAAG,GAAG,OAAOC,QAAP,KAAoB,WAApB,GAAkCA,QAAlC,GAA6C,EAAzD,CAAA;AACAtC,EAAAA,QAAM,CAACqC,GAAD,EAAM9B,WAAN,CAAN,CAAA;AACA,EAAA,OAAO8B,GAAP,CAAA;AACH,CAAA;;AAED,MAAME,SAAS,GAAG;AACdD,EAAAA,QAAQ,EAAE/B,WADI;AAEdiC,EAAAA,SAAS,EAAE;AACPC,IAAAA,SAAS,EAAE,EAAA;GAHD;AAKdd,EAAAA,QAAQ,EAAE;AACNC,IAAAA,IAAI,EAAE,EADA;AAENC,IAAAA,IAAI,EAAE,EAFA;AAGNC,IAAAA,QAAQ,EAAE,EAHJ;AAINC,IAAAA,IAAI,EAAE,EAJA;AAKNC,IAAAA,MAAM,EAAE,EALF;AAMNC,IAAAA,QAAQ,EAAE,EANJ;AAONC,IAAAA,QAAQ,EAAE,EAPJ;AAQNC,IAAAA,MAAM,EAAE,EAAA;GAbE;AAedO,EAAAA,OAAO,EAAE;IACLC,YAAY,GAAG,EADV;;IAELC,SAAS,GAAG,EAFP;;IAGLC,EAAE,GAAG,EAHA;;AAILC,IAAAA,IAAI,GAAG,EAAG;;GAnBA;EAqBdC,WAAW,EAAE,SAASA,WAAT,GAAuB;AAChC,IAAA,OAAO,IAAP,CAAA;GAtBU;;EAwBdtC,gBAAgB,GAAG,EAxBL;;EAyBdC,mBAAmB,GAAG,EAzBR;;AA0BdsC,EAAAA,gBAAgB,GAAG;IACf,OAAO;AACHC,MAAAA,gBAAgB,GAAG;AACf,QAAA,OAAO,EAAP,CAAA;AACH,OAAA;;KAHL,CAAA;GA3BU;;EAiCdC,KAAK,GAAG,EAjCM;;EAkCdC,IAAI,GAAG,EAlCO;;AAmCdC,EAAAA,MAAM,EAAE,EAnCM;;EAoCdC,UAAU,GAAG,EApCC;;EAqCdC,YAAY,GAAG,EArCD;;AAsCdC,EAAAA,UAAU,GAAG;AACT,IAAA,OAAO,EAAP,CAAA;GAvCU;;EAyCdC,qBAAqB,CAACC,QAAD,EAAW;AAC5B,IAAA,IAAI,OAAOJ,UAAP,KAAsB,WAA1B,EAAuC;MACnCI,QAAQ,EAAA,CAAA;AACR,MAAA,OAAO,IAAP,CAAA;AACH,KAAA;;AACD,IAAA,OAAOJ,UAAU,CAACI,QAAD,EAAW,CAAX,CAAjB,CAAA;GA9CU;;EAgDdC,oBAAoB,CAACC,EAAD,EAAK;AACrB,IAAA,IAAI,OAAON,UAAP,KAAsB,WAA1B,EAAuC;AACnC,MAAA,OAAA;AACH,KAAA;;IACDC,YAAY,CAACK,EAAD,CAAZ,CAAA;AACH,GAAA;;AArDa,CAAlB,CAAA;;AAuDA,SAASC,SAAT,GAAqB;EACjB,MAAMC,GAAG,GAAG,OAAOC,MAAP,KAAkB,WAAlB,GAAgCA,MAAhC,GAAyC,EAArD,CAAA;AACA9D,EAAAA,QAAM,CAAC6D,GAAD,EAAMtB,SAAN,CAAN,CAAA;AACA,EAAA,OAAOsB,GAAP,CAAA;AACH;;AC/ID,SAASE,WAAT,CAAqBlE,GAArB,EAA0B;EACxB,MAAMmE,MAAM,GAAGnE,GAAf,CAAA;EACAE,MAAM,CAACI,IAAP,CAAY6D,MAAZ,EAAoB5D,OAApB,CAA6BC,GAAD,IAAS;IACnC,IAAI;AACF2D,MAAAA,MAAM,CAAC3D,GAAD,CAAN,GAAc,IAAd,CAAA;AACD,KAFD,CAEE,OAAO4D,CAAP,EAAU;AAEX,KAAA;;IACD,IAAI;MACF,OAAOD,MAAM,CAAC3D,GAAD,CAAb,CAAA;AACD,KAFD,CAEE,OAAO4D,CAAP,EAAU;AAEX,KAAA;GAVH,CAAA,CAAA;AAYD,CAAA;;AACD,SAASC,QAAT,CAAkBT,QAAlB,EAA4BU,KAA5B,EAAuC;AAAA,EAAA,IAAXA,KAAW,KAAA,KAAA,CAAA,EAAA;AAAXA,IAAAA,KAAW,GAAH,CAAG,CAAA;AAAA,GAAA;;AACrC,EAAA,OAAOd,UAAU,CAACI,QAAD,EAAWU,KAAX,CAAjB,CAAA;AACD,CAAA;;AACD,SAASC,GAAT,GAAe;EACb,OAAOjB,IAAI,CAACiB,GAAL,EAAP,CAAA;AACD,CAAA;;AACD,SAASpB,kBAAT,CAA0BqB,EAA1B,EAA8B;EAC5B,MAAMP,MAAM,GAAGF,SAAS,EAAxB,CAAA;AACA,EAAA,IAAItC,KAAJ,CAAA;;EACA,IAAIwC,MAAM,CAACd,gBAAX,EAA6B;IAC3B1B,KAAK,GAAGwC,MAAM,CAACd,gBAAP,CAAwBqB,EAAxB,EAA4B,IAA5B,CAAR,CAAA;AACD,GAAA;;AACD,EAAA,IAAI,CAAC/C,KAAD,IAAU+C,EAAE,CAACC,YAAjB,EAA+B;IAC7BhD,KAAK,GAAG+C,EAAE,CAACC,YAAX,CAAA;AACD,GAAA;;EACD,IAAI,CAAChD,KAAL,EAAY;IACVA,KAAK,GAAG+C,EAAE,CAAC/C,KAAX,CAAA;AACD,GAAA;;AAED,EAAA,OAAOA,KAAP,CAAA;AACD,CAAA;;AACD,SAASiD,YAAT,CAAsBF,EAAtB,EAA0BG,IAA1B,EAAsC;AAAA,EAAA,IAAZA,IAAY,KAAA,KAAA,CAAA,EAAA;AAAZA,IAAAA,IAAY,GAAL,GAAK,CAAA;AAAA,GAAA;;EACpC,MAAMV,MAAM,GAAGF,SAAS,EAAxB,CAAA;AACA,EAAA,IAAIa,MAAJ,CAAA;AACA,EAAA,IAAIC,YAAJ,CAAA;AACA,EAAA,IAAIC,eAAJ,CAAA;AAEA,EAAA,MAAMC,QAAQ,GAAG5B,kBAAgB,CAACqB,EAAD,CAAjC,CAAA;;EAEA,IAAIP,MAAM,CAACe,eAAX,EAA4B;AAC1BH,IAAAA,YAAY,GAAGE,QAAQ,CAACE,SAAT,IAAsBF,QAAQ,CAACG,eAA9C,CAAA;;IACA,IAAIL,YAAY,CAACM,KAAb,CAAmB,GAAnB,CAAwB1E,CAAAA,MAAxB,GAAiC,CAArC,EAAwC;MACtCoE,YAAY,GAAGA,YAAY,CACxBM,KADY,CACN,IADM,CAAA,CAEZC,GAFY,CAEPC,CAAD,IAAOA,CAAC,CAACC,OAAF,CAAU,GAAV,EAAe,GAAf,CAFC,CAGZC,CAAAA,IAHY,CAGP,IAHO,CAAf,CAAA;AAID,KAPyB;AAS1B;;;AACAT,IAAAA,eAAe,GAAG,IAAIb,MAAM,CAACe,eAAX,CAA2BH,YAAY,KAAK,MAAjB,GAA0B,EAA1B,GAA+BA,YAA1D,CAAlB,CAAA;AACD,GAXD,MAWO;AACLC,IAAAA,eAAe,GACbC,QAAQ,CAACS,YAAT,IACAT,QAAQ,CAACU,UADT,IAEAV,QAAQ,CAACW,WAFT,IAGAX,QAAQ,CAACY,WAHT,IAIAZ,QAAQ,CAACE,SAJT,IAKAF,QAAQ,CAAC3B,gBAAT,CAA0B,WAA1B,CAAA,CAAuCkC,OAAvC,CAA+C,YAA/C,EAA6D,oBAA7D,CANF,CAAA;IAOAV,MAAM,GAAGE,eAAe,CAACc,QAAhB,GAA2BT,KAA3B,CAAiC,GAAjC,CAAT,CAAA;AACD,GAAA;;EAED,IAAIR,IAAI,KAAK,GAAb,EAAkB;AAChB;IACA,IAAIV,MAAM,CAACe,eAAX,EAA4BH,YAAY,GAAGC,eAAe,CAACe,GAA/B,CAA5B;AAAA,SAEK,IAAIjB,MAAM,CAACnE,MAAP,KAAkB,EAAtB,EAA0BoE,YAAY,GAAGiB,UAAU,CAAClB,MAAM,CAAC,EAAD,CAAP,CAAzB,CAA1B;SAEAC,YAAY,GAAGiB,UAAU,CAAClB,MAAM,CAAC,CAAD,CAAP,CAAzB,CAAA;AACN,GAAA;;EACD,IAAID,IAAI,KAAK,GAAb,EAAkB;AAChB;IACA,IAAIV,MAAM,CAACe,eAAX,EAA4BH,YAAY,GAAGC,eAAe,CAACiB,GAA/B,CAA5B;AAAA,SAEK,IAAInB,MAAM,CAACnE,MAAP,KAAkB,EAAtB,EAA0BoE,YAAY,GAAGiB,UAAU,CAAClB,MAAM,CAAC,EAAD,CAAP,CAAzB,CAA1B;SAEAC,YAAY,GAAGiB,UAAU,CAAClB,MAAM,CAAC,CAAD,CAAP,CAAzB,CAAA;AACN,GAAA;;EACD,OAAOC,YAAY,IAAI,CAAvB,CAAA;AACD,CAAA;;AACD,SAAS9E,QAAT,CAAkBiG,CAAlB,EAAqB;AACnB,EAAA,OACE,OAAOA,CAAP,KAAa,QAAb,IACAA,CAAC,KAAK,IADN,IAEAA,CAAC,CAAC/F,WAFF,IAGAC,MAAM,CAAC+F,SAAP,CAAiBL,QAAjB,CAA0BM,IAA1B,CAA+BF,CAA/B,CAAA,CAAkCG,KAAlC,CAAwC,CAAxC,EAA2C,CAAC,CAA5C,MAAmD,QAJrD,CAAA;AAMD,CAAA;;AACD,SAASC,MAAT,CAAgBC,IAAhB,EAAsB;AACpB;EACA,IAAI,OAAOpC,MAAP,KAAkB,WAAlB,IAAiC,OAAOA,MAAM,CAACqC,WAAd,KAA8B,WAAnE,EAAgF;IAC9E,OAAOD,IAAI,YAAYC,WAAvB,CAAA;AACD,GAAA;;AACD,EAAA,OAAOD,IAAI,KAAKA,IAAI,CAACE,QAAL,KAAkB,CAAlB,IAAuBF,IAAI,CAACE,QAAL,KAAkB,EAA9C,CAAX,CAAA;AACD,CAAA;;AACD,SAASpG,MAAT,GAAyB;EACvB,MAAMqG,EAAE,GAAGtG,MAAM,CAAjB,SAAA,CAAA,MAAA,IAAA,CAAA,GAAA,SAAA,GAAA,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACA,MAAMuG,QAAQ,GAAG,CAAC,WAAD,EAAc,aAAd,EAA6B,WAA7B,CAAjB,CAAA;;AACA,EAAA,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,SAAA,CAAKjG,MAAzB,EAAiCiG,CAAC,IAAI,CAAtC,EAAyC;AACvC,IAAA,MAAMC,UAAU,GAAQD,CAAR,4BAAQA,CAAR,GAAA,SAAA,GAAA,SAAA,CAAQA,CAAR,CAAhB,CAAA;;AACA,IAAA,IAAIC,UAAU,KAAKC,SAAf,IAA4BD,UAAU,KAAK,IAA3C,IAAmD,CAACP,MAAM,CAACO,UAAD,CAA9D,EAA4E;MAC1E,MAAME,SAAS,GAAG3G,MAAM,CAACI,IAAP,CAAYJ,MAAM,CAACyG,UAAD,CAAlB,CAAA,CAAgCG,MAAhC,CAAwCtG,GAAD,IAASiG,QAAQ,CAACM,OAAT,CAAiBvG,GAAjB,CAAwB,GAAA,CAAxE,CAAlB,CAAA;;AACA,MAAA,KAAK,IAAIwG,SAAS,GAAG,CAAhB,EAAmBC,GAAG,GAAGJ,SAAS,CAACpG,MAAxC,EAAgDuG,SAAS,GAAGC,GAA5D,EAAiED,SAAS,IAAI,CAA9E,EAAiF;AAC/E,QAAA,MAAME,OAAO,GAAGL,SAAS,CAACG,SAAD,CAAzB,CAAA;QACA,MAAMG,IAAI,GAAGjH,MAAM,CAACkH,wBAAP,CAAgCT,UAAhC,EAA4CO,OAA5C,CAAb,CAAA;;AACA,QAAA,IAAIC,IAAI,KAAKP,SAAT,IAAsBO,IAAI,CAACE,UAA/B,EAA2C;AACzC,UAAA,IAAItH,QAAQ,CAACyG,EAAE,CAACU,OAAD,CAAH,CAAR,IAAyBnH,QAAQ,CAAC4G,UAAU,CAACO,OAAD,CAAX,CAArC,EAA4D;AAC1D,YAAA,IAAIP,UAAU,CAACO,OAAD,CAAV,CAAoBI,UAAxB,EAAoC;AAClCd,cAAAA,EAAE,CAACU,OAAD,CAAF,GAAcP,UAAU,CAACO,OAAD,CAAxB,CAAA;AACD,aAFD,MAEO;cACL/G,MAAM,CAACqG,EAAE,CAACU,OAAD,CAAH,EAAcP,UAAU,CAACO,OAAD,CAAxB,CAAN,CAAA;AACD,aAAA;AACF,WAND,MAMO,IAAI,CAACnH,QAAQ,CAACyG,EAAE,CAACU,OAAD,CAAH,CAAT,IAA0BnH,QAAQ,CAAC4G,UAAU,CAACO,OAAD,CAAX,CAAtC,EAA6D;AAClEV,YAAAA,EAAE,CAACU,OAAD,CAAF,GAAc,EAAd,CAAA;;AACA,YAAA,IAAIP,UAAU,CAACO,OAAD,CAAV,CAAoBI,UAAxB,EAAoC;AAClCd,cAAAA,EAAE,CAACU,OAAD,CAAF,GAAcP,UAAU,CAACO,OAAD,CAAxB,CAAA;AACD,aAFD,MAEO;cACL/G,MAAM,CAACqG,EAAE,CAACU,OAAD,CAAH,EAAcP,UAAU,CAACO,OAAD,CAAxB,CAAN,CAAA;AACD,aAAA;AACF,WAPM,MAOA;AACLV,YAAAA,EAAE,CAACU,OAAD,CAAF,GAAcP,UAAU,CAACO,OAAD,CAAxB,CAAA;AACD,WAAA;AACF,SAAA;AACF,OAAA;AACF,KAAA;AACF,GAAA;;AACD,EAAA,OAAOV,EAAP,CAAA;AACD,CAAA;;AAED,SAASe,cAAT,CAAwB/C,EAAxB,EAA4BgD,OAA5B,EAAqCC,QAArC,EAA+C;AAC7CjD,EAAAA,EAAE,CAAC/C,KAAH,CAASiG,WAAT,CAAqBF,OAArB,EAA8BC,QAA9B,CAAA,CAAA;AACD,CAAA;;AAED,SAASE,oBAAT,CAAgE,IAAA,EAAA;EAAA,IAAlC;IAAEC,MAAF;IAAUC,cAAV;AAA0BC,IAAAA,IAAAA;GAAQ,GAAA,IAAA,CAAA;EAC9D,MAAM7D,MAAM,GAAGF,SAAS,EAAxB,CAAA;AACA,EAAA,MAAMgE,aAAa,GAAG,CAACH,MAAM,CAACI,SAA9B,CAAA;EACA,IAAIC,SAAS,GAAG,IAAhB,CAAA;AACA,EAAA,IAAIC,IAAJ,CAAA;AACA,EAAA,MAAMC,QAAQ,GAAGP,MAAM,CAACQ,MAAP,CAAcC,KAA/B,CAAA;AAEAT,EAAAA,MAAM,CAACU,SAAP,CAAiB7G,KAAjB,CAAuB8G,cAAvB,GAAwC,MAAxC,CAAA;AACAtE,EAAAA,MAAM,CAACJ,oBAAP,CAA4B+D,MAAM,CAACY,cAAnC,CAAA,CAAA;EAEA,MAAMC,GAAG,GAAGZ,cAAc,GAAGE,aAAjB,GAAiC,MAAjC,GAA0C,MAAtD,CAAA;;AAEA,EAAA,MAAMW,YAAY,GAAG,CAACC,OAAD,EAAUvI,MAAV,KAAqB;AACxC,IAAA,OAAQqI,GAAG,KAAK,MAAR,IAAkBE,OAAO,IAAIvI,MAA9B,IAA0CqI,GAAG,KAAK,MAAR,IAAkBE,OAAO,IAAIvI,MAA9E,CAAA;GADF,CAAA;;EAIA,MAAMwI,OAAO,GAAG,MAAM;AACpBV,IAAAA,IAAI,GAAG,IAAI5E,IAAJ,EAAA,CAAWuF,OAAX,EAAP,CAAA;;IACA,IAAIZ,SAAS,KAAK,IAAlB,EAAwB;AACtBA,MAAAA,SAAS,GAAGC,IAAZ,CAAA;AACD,KAAA;;IAED,MAAMY,QAAQ,GAAGC,IAAI,CAACC,GAAL,CAASD,IAAI,CAACE,GAAL,CAAS,CAACf,IAAI,GAAGD,SAAR,IAAqBE,QAA9B,EAAwC,CAAxC,CAAT,EAAqD,CAArD,CAAjB,CAAA;AACA,IAAA,MAAMe,YAAY,GAAG,GAAMH,GAAAA,IAAI,CAACI,GAAL,CAASL,QAAQ,GAAGC,IAAI,CAACK,EAAzB,IAA+B,CAA1D,CAAA;IACA,IAAIC,eAAe,GAAGtB,aAAa,GAAGmB,YAAY,IAAIrB,cAAc,GAAGE,aAArB,CAAlD,CAAA;;AAEA,IAAA,IAAIW,YAAY,CAACW,eAAD,EAAkBxB,cAAlB,CAAhB,EAAmD;AACjDwB,MAAAA,eAAe,GAAGxB,cAAlB,CAAA;AACD,KAAA;;AACDD,IAAAA,MAAM,CAACU,SAAP,CAAiBgB,QAAjB,CAA0B;AACxB,MAAA,CAACxB,IAAD,GAAQuB,eAAAA;KADV,CAAA,CAAA;;AAGA,IAAA,IAAIX,YAAY,CAACW,eAAD,EAAkBxB,cAAlB,CAAhB,EAAmD;AACjDD,MAAAA,MAAM,CAACU,SAAP,CAAiB7G,KAAjB,CAAuB8H,QAAvB,GAAkC,QAAlC,CAAA;AACA3B,MAAAA,MAAM,CAACU,SAAP,CAAiB7G,KAAjB,CAAuB8G,cAAvB,GAAwC,EAAxC,CAAA;AACA/E,MAAAA,UAAU,CAAC,MAAM;AACfoE,QAAAA,MAAM,CAACU,SAAP,CAAiB7G,KAAjB,CAAuB8H,QAAvB,GAAkC,EAAlC,CAAA;AACA3B,QAAAA,MAAM,CAACU,SAAP,CAAiBgB,QAAjB,CAA0B;AACxB,UAAA,CAACxB,IAAD,GAAQuB,eAAAA;SADV,CAAA,CAAA;AAGD,OALS,CAAV,CAAA;AAMApF,MAAAA,MAAM,CAACJ,oBAAP,CAA4B+D,MAAM,CAACY,cAAnC,CAAA,CAAA;AACA,MAAA,OAAA;AACD,KAAA;;IACDZ,MAAM,CAACY,cAAP,GAAwBvE,MAAM,CAACN,qBAAP,CAA6BiF,OAA7B,CAAxB,CAAA;GA5BF,CAAA;;EA8BAA,OAAO,EAAA,CAAA;AACR,CAAA;;AAED,SAASY,mBAAT,CAA6BC,OAA7B,EAAsC;AACpC,EAAA,OACEA,OAAO,CAACxI,aAAR,CAAsB,yBAAtB,CAAA,IACCwI,OAAO,CAACC,QAAR,IAAoBD,OAAO,CAACC,QAAR,CAAiBzI,aAAjB,CAA+B,yBAA/B,CADrB,IAEAwI,OAHF,CAAA;AAKD,CAAA;;AASD,SAASE,eAAT,CAAyBC,OAAzB,EAAkCC,QAAlC,EAAiD;AAAA,EAAA,IAAfA,QAAe,KAAA,KAAA,CAAA,EAAA;AAAfA,IAAAA,QAAe,GAAJ,EAAI,CAAA;AAAA,GAAA;;AAC/C,EAAA,OAAO,CAAC,GAAGD,OAAO,CAACrI,QAAZ,EAAsBuF,MAAtB,CAA8BtC,EAAD,IAAQA,EAAE,CAACsF,OAAH,CAAWD,QAAX,CAArC,CAAP,CAAA;AACD,CAAA;;AAED,SAASvI,aAAT,CAAuByI,GAAvB,EAA4BC,OAA5B,EAA0C;AAAA,EAAA,IAAdA,OAAc,KAAA,KAAA,CAAA,EAAA;AAAdA,IAAAA,OAAc,GAAJ,EAAI,CAAA;AAAA,GAAA;;AACxC,EAAA,MAAMxF,EAAE,GAAG/B,QAAQ,CAACnB,aAAT,CAAuByI,GAAvB,CAAX,CAAA;AACAvF,EAAAA,EAAE,CAACyF,SAAH,CAAaC,GAAb,CAAiB,IAAIC,KAAK,CAACC,OAAN,CAAcJ,OAAd,CAAyBA,GAAAA,OAAzB,GAAmC,CAACA,OAAD,CAAvC,CAAjB,CAAA,CAAA;AACA,EAAA,OAAOxF,EAAP,CAAA;AACD,CAAA;;AACD,SAAS6F,aAAT,CAAuB7F,EAAvB,EAA2B;EACzB,MAAMP,MAAM,GAAGF,SAAS,EAAxB,CAAA;EACA,MAAMtB,QAAQ,GAAGF,WAAW,EAA5B,CAAA;AACA,EAAA,MAAM+H,GAAG,GAAG9F,EAAE,CAAC+F,qBAAH,EAAZ,CAAA;AACA,EAAA,MAAM5J,IAAI,GAAG8B,QAAQ,CAAC9B,IAAtB,CAAA;EACA,MAAM6J,SAAS,GAAGhG,EAAE,CAACgG,SAAH,IAAgB7J,IAAI,CAAC6J,SAArB,IAAkC,CAApD,CAAA;EACA,MAAMC,UAAU,GAAGjG,EAAE,CAACiG,UAAH,IAAiB9J,IAAI,CAAC8J,UAAtB,IAAoC,CAAvD,CAAA;AACA,EAAA,MAAMC,SAAS,GAAGlG,EAAE,KAAKP,MAAP,GAAgBA,MAAM,CAAC0G,OAAvB,GAAiCnG,EAAE,CAACkG,SAAtD,CAAA;AACA,EAAA,MAAME,UAAU,GAAGpG,EAAE,KAAKP,MAAP,GAAgBA,MAAM,CAAC4G,OAAvB,GAAiCrG,EAAE,CAACoG,UAAvD,CAAA;EACA,OAAO;AACLE,IAAAA,GAAG,EAAER,GAAG,CAACQ,GAAJ,GAAUJ,SAAV,GAAsBF,SADtB;AAELO,IAAAA,IAAI,EAAET,GAAG,CAACS,IAAJ,GAAWH,UAAX,GAAwBH,UAAAA;GAFhC,CAAA;AAID,CAAA;;AACD,SAASO,cAAT,CAAwBxG,EAAxB,EAA4BqF,QAA5B,EAAsC;EACpC,MAAMoB,OAAO,GAAG,EAAhB,CAAA;;EACA,OAAOzG,EAAE,CAAC0G,sBAAV,EAAkC;AAChC,IAAA,MAAMC,IAAI,GAAG3G,EAAE,CAAC0G,sBAAhB,CADgC;;AAEhC,IAAA,IAAIrB,QAAJ,EAAc;MACZ,IAAIsB,IAAI,CAACrB,OAAL,CAAaD,QAAb,CAAJ,EAA4BoB,OAAO,CAACG,IAAR,CAAaD,IAAb,CAAA,CAAA;AAC7B,KAFD,MAEOF,OAAO,CAACG,IAAR,CAAaD,IAAb,CAAA,CAAA;;AACP3G,IAAAA,EAAE,GAAG2G,IAAL,CAAA;AACD,GAAA;;AACD,EAAA,OAAOF,OAAP,CAAA;AACD,CAAA;;AACD,SAASI,cAAT,CAAwB7G,EAAxB,EAA4BqF,QAA5B,EAAsC;EACpC,MAAMyB,OAAO,GAAG,EAAhB,CAAA;;EACA,OAAO9G,EAAE,CAAC+G,kBAAV,EAA8B;AAC5B,IAAA,MAAMC,IAAI,GAAGhH,EAAE,CAAC+G,kBAAhB,CAD4B;;AAE5B,IAAA,IAAI1B,QAAJ,EAAc;MACZ,IAAI2B,IAAI,CAAC1B,OAAL,CAAaD,QAAb,CAAJ,EAA4ByB,OAAO,CAACF,IAAR,CAAaI,IAAb,CAAA,CAAA;AAC7B,KAFD,MAEOF,OAAO,CAACF,IAAR,CAAaI,IAAb,CAAA,CAAA;;AACPhH,IAAAA,EAAE,GAAGgH,IAAL,CAAA;AACD,GAAA;;AACD,EAAA,OAAOF,OAAP,CAAA;AACD,CAAA;;AACD,SAASG,YAAT,CAAsBjH,EAAtB,EAA0BkH,IAA1B,EAAgC;EAC9B,MAAMzH,MAAM,GAAGF,SAAS,EAAxB,CAAA;EACA,OAAOE,MAAM,CAACd,gBAAP,CAAwBqB,EAAxB,EAA4B,IAA5B,CAAkCpB,CAAAA,gBAAlC,CAAmDsI,IAAnD,CAAP,CAAA;AACD,CAAA;;AACD,SAASC,YAAT,CAAsBnH,EAAtB,EAA0B;EACxB,IAAIoH,KAAK,GAAGpH,EAAZ,CAAA;AACA,EAAA,IAAIkC,CAAJ,CAAA;;AACA,EAAA,IAAIkF,KAAJ,EAAW;IACTlF,CAAC,GAAG,CAAJ,CADS;;IAGT,OAAO,CAACkF,KAAK,GAAGA,KAAK,CAACC,eAAf,MAAoC,IAA3C,EAAiD;MAC/C,IAAID,KAAK,CAACrF,QAAN,KAAmB,CAAvB,EAA0BG,CAAC,IAAI,CAAL,CAAA;AAC3B,KAAA;;AACD,IAAA,OAAOA,CAAP,CAAA;AACD,GAAA;;AACD,EAAA,OAAOE,SAAP,CAAA;AACD,CAAA;;AAED,SAASkF,cAAT,CAAwBtH,EAAxB,EAA4BqF,QAA5B,EAAsC;AACpC,EAAA,MAAMkC,OAAO,GAAG,EAAhB,CADoC;;AAEpC,EAAA,IAAIC,MAAM,GAAGxH,EAAE,CAACyH,aAAhB,CAFoC;;AAGpC,EAAA,OAAOD,MAAP,EAAe;AACb,IAAA,IAAInC,QAAJ,EAAc;MACZ,IAAImC,MAAM,CAAClC,OAAP,CAAeD,QAAf,CAAJ,EAA8BkC,OAAO,CAACX,IAAR,CAAaY,MAAb,CAAA,CAAA;AAC/B,KAFD,MAEO;MACLD,OAAO,CAACX,IAAR,CAAaY,MAAb,CAAA,CAAA;AACD,KAAA;;IACDA,MAAM,GAAGA,MAAM,CAACC,aAAhB,CAAA;AACD,GAAA;;AACD,EAAA,OAAOF,OAAP,CAAA;AACD,CAAA;;AAED,SAASG,oBAAT,CAA8B1H,EAA9B,EAAkCZ,QAAlC,EAA4C;EAC1C,SAASuI,YAAT,CAAsB/H,CAAtB,EAAyB;AACvB,IAAA,IAAIA,CAAC,CAAChE,MAAF,KAAaoE,EAAjB,EAAqB,OAAA;AACrBZ,IAAAA,QAAQ,CAACsC,IAAT,CAAc1B,EAAd,EAAkBJ,CAAlB,CAAA,CAAA;AACAI,IAAAA,EAAE,CAAC3D,mBAAH,CAAuB,eAAvB,EAAwCsL,YAAxC,CAAA,CAAA;AACD,GAAA;;AACD,EAAA,IAAIvI,QAAJ,EAAc;AACZY,IAAAA,EAAE,CAAC5D,gBAAH,CAAoB,eAApB,EAAqCuL,YAArC,CAAA,CAAA;AACD,GAAA;AACF,CAAA;;AAED,SAASC,gBAAT,CAA0B5H,EAA1B,EAA8B6H,IAA9B,EAAoCC,cAApC,EAAoD;EAClD,MAAMrI,MAAM,GAAGF,SAAS,EAAxB,CAAA;;AACA,EAAA,IAAIuI,cAAJ,EAAoB;IAClB,OACE9H,EAAE,CAAC6H,IAAI,KAAK,OAAT,GAAmB,aAAnB,GAAmC,cAApC,CAAF,GACAvG,UAAU,CACR7B,MAAM,CACHd,gBADH,CACoBqB,EADpB,EACwB,IADxB,CAEGpB,CAAAA,gBAFH,CAEoBiJ,IAAI,KAAK,OAAT,GAAmB,cAAnB,GAAoC,YAFxD,CADQ,CADV,GAMAvG,UAAU,CACR7B,MAAM,CACHd,gBADH,CACoBqB,EADpB,EACwB,IADxB,CAAA,CAEGpB,gBAFH,CAEoBiJ,IAAI,KAAK,OAAT,GAAmB,aAAnB,GAAmC,eAFvD,CADQ,CAPZ,CAAA;AAaD,GAAA;;EACD,OAAO7H,EAAE,CAAC+H,WAAV,CAAA;AACD;;ACnTD,IAAIC,OAAJ,CAAA;;AAEA,SAASC,WAAT,GAAuB;EACrB,MAAMxI,MAAM,GAAGF,SAAS,EAAxB,CAAA;EACA,MAAMtB,QAAQ,GAAGF,WAAW,EAA5B,CAAA;EAEA,OAAO;IACLmK,YAAY,EAAEjK,QAAQ,CAACkK,eAAT,IAA4B,oBAAoBlK,QAAQ,CAACkK,eAAT,CAAyBlL,KADlF;AAGLmL,IAAAA,KAAK,EAAE,CAAC,EACN,cAAA,IAAkB3I,MAAlB,IACCA,MAAM,CAAC4I,aAAP,IAAwBpK,QAAQ,YAAYwB,MAAM,CAAC4I,aAF9C,CAAA;GAHV,CAAA;AAQD,CAAA;;AAED,SAASC,UAAT,GAAsB;EACpB,IAAI,CAACN,OAAL,EAAc;IACZA,OAAO,GAAGC,WAAW,EAArB,CAAA;AACD,GAAA;;AACD,EAAA,OAAOD,OAAP,CAAA;AACD;;ACpBD,IAAIO,YAAJ,CAAA;;AAEA,SAASC,UAAT,CAAwC,KAAA,EAAA;EAAA,IAApB;AAAEpK,IAAAA,SAAAA;AAAF,GAAoB,sBAAJ,EAAI,GAAA,KAAA,CAAA;EACtC,MAAM4J,OAAO,GAAGM,UAAU,EAA1B,CAAA;EACA,MAAM7I,MAAM,GAAGF,SAAS,EAAxB,CAAA;AACA,EAAA,MAAMkJ,QAAQ,GAAGhJ,MAAM,CAACtB,SAAP,CAAiBsK,QAAlC,CAAA;EACA,MAAMC,EAAE,GAAGtK,SAAS,IAAIqB,MAAM,CAACtB,SAAP,CAAiBC,SAAzC,CAAA;AAEA,EAAA,MAAMuK,MAAM,GAAG;AACbC,IAAAA,GAAG,EAAE,KADQ;AAEbC,IAAAA,OAAO,EAAE,KAAA;GAFX,CAAA;AAKA,EAAA,MAAMC,WAAW,GAAGrJ,MAAM,CAACV,MAAP,CAAcgK,KAAlC,CAAA;AACA,EAAA,MAAMC,YAAY,GAAGvJ,MAAM,CAACV,MAAP,CAAckK,MAAnC,CAAA;EAEA,MAAMJ,OAAO,GAAGH,EAAE,CAACQ,KAAH,CAAS,6BAAT,CAAhB,CAdsC;;AAetC,EAAA,IAAIC,IAAI,GAAGT,EAAE,CAACQ,KAAH,CAAS,sBAAT,CAAX,CAAA;AACA,EAAA,MAAME,IAAI,GAAGV,EAAE,CAACQ,KAAH,CAAS,yBAAT,CAAb,CAAA;EACA,MAAMG,MAAM,GAAG,CAACF,IAAD,IAAST,EAAE,CAACQ,KAAH,CAAS,4BAAT,CAAxB,CAAA;AACA,EAAA,MAAMI,OAAO,GAAGb,QAAQ,KAAK,OAA7B,CAAA;AACA,EAAA,IAAIc,KAAK,GAAGd,QAAQ,KAAK,UAAzB,CAnBsC;;EAsBtC,MAAMe,WAAW,GAAG,CAClB,WADkB,EAElB,WAFkB,EAGlB,UAHkB,EAIlB,UAJkB,EAKlB,UALkB,EAMlB,UANkB,EAOlB,UAPkB,EAQlB,UARkB,EASlB,UATkB,EAUlB,UAVkB,EAWlB,UAXkB,EAYlB,UAZkB,CAApB,CAAA;;EAcA,IACE,CAACL,IAAD,IACAI,KADA,IAEAvB,OAAO,CAACI,KAFR,IAGAoB,WAAW,CAACjH,OAAZ,CAAqB,GAAEuG,WAAY,CAAA,CAAA,EAAGE,YAAa,CAAnD,CAAA,CAAA,IAAyD,CAJ3D,EAKE;AACAG,IAAAA,IAAI,GAAGT,EAAE,CAACQ,KAAH,CAAS,qBAAT,CAAP,CAAA;IACA,IAAI,CAACC,IAAL,EAAWA,IAAI,GAAG,CAAC,CAAD,EAAI,CAAJ,EAAO,QAAP,CAAP,CAAA;AACXI,IAAAA,KAAK,GAAG,KAAR,CAAA;AACD,GA7CqC;;;AAgDtC,EAAA,IAAIV,OAAO,IAAI,CAACS,OAAhB,EAAyB;IACvBX,MAAM,CAACc,EAAP,GAAY,SAAZ,CAAA;IACAd,MAAM,CAACE,OAAP,GAAiB,IAAjB,CAAA;AACD,GAAA;;AACD,EAAA,IAAIM,IAAI,IAAIE,MAAR,IAAkBD,IAAtB,EAA4B;IAC1BT,MAAM,CAACc,EAAP,GAAY,KAAZ,CAAA;IACAd,MAAM,CAACC,GAAP,GAAa,IAAb,CAAA;AACD,GAvDqC;;;AA0DtC,EAAA,OAAOD,MAAP,CAAA;AACD,CAAA;;AAED,SAASe,SAAT,CAAmBC,SAAnB,EAAmC;AAAA,EAAA,IAAhBA,SAAgB,KAAA,KAAA,CAAA,EAAA;AAAhBA,IAAAA,SAAgB,GAAJ,EAAI,CAAA;AAAA,GAAA;;EACjC,IAAI,CAACpB,YAAL,EAAmB;AACjBA,IAAAA,YAAY,GAAGC,UAAU,CAACmB,SAAD,CAAzB,CAAA;AACD,GAAA;;AACD,EAAA,OAAOpB,YAAP,CAAA;AACD;;ACrED,IAAIqB,OAAJ,CAAA;;AAEA,SAASC,WAAT,GAAuB;EACrB,MAAMpK,MAAM,GAAGF,SAAS,EAAxB,CAAA;;AACA,EAAA,SAASuK,QAAT,GAAoB;IAClB,MAAMpB,EAAE,GAAGjJ,MAAM,CAACtB,SAAP,CAAiBC,SAAjB,CAA2B2L,WAA3B,EAAX,CAAA;IACA,OAAOrB,EAAE,CAACnG,OAAH,CAAW,QAAX,CAAwB,IAAA,CAAxB,IAA6BmG,EAAE,CAACnG,OAAH,CAAW,QAAX,CAAA,GAAuB,CAApD,IAAyDmG,EAAE,CAACnG,OAAH,CAAW,SAAX,CAAA,GAAwB,CAAxF,CAAA;AACD,GAAA;;EACD,OAAO;IACLuH,QAAQ,EAAEA,QAAQ,EADb;IAELE,SAAS,EAAE,+CAA+CC,IAA/C,CAAoDxK,MAAM,CAACtB,SAAP,CAAiBC,SAArE,CAAA;GAFb,CAAA;AAID,CAAA;;AAED,SAAS8L,UAAT,GAAsB;EACpB,IAAI,CAACN,OAAL,EAAc;IACZA,OAAO,GAAGC,WAAW,EAArB,CAAA;AACD,GAAA;;AACD,EAAA,OAAOD,OAAP,CAAA;AACD;;ACnBc,SAASO,MAAT,CAAsC,IAAA,EAAA;EAAA,IAAtB;IAAE/G,MAAF;IAAUgH,EAAV;AAAcC,IAAAA,IAAAA;GAAQ,GAAA,IAAA,CAAA;EACnD,MAAM5K,MAAM,GAAGF,SAAS,EAAxB,CAAA;EACA,IAAI+K,QAAQ,GAAG,IAAf,CAAA;EACA,IAAIC,cAAc,GAAG,IAArB,CAAA;;EAEA,MAAMC,aAAa,GAAG,MAAM;IAC1B,IAAI,CAACpH,MAAD,IAAWA,MAAM,CAACqH,SAAlB,IAA+B,CAACrH,MAAM,CAACsH,WAA3C,EAAwD,OAAA;IACxDL,IAAI,CAAC,cAAD,CAAJ,CAAA;IACAA,IAAI,CAAC,QAAD,CAAJ,CAAA;GAHF,CAAA;;EAMA,MAAMM,cAAc,GAAG,MAAM;IAC3B,IAAI,CAACvH,MAAD,IAAWA,MAAM,CAACqH,SAAlB,IAA+B,CAACrH,MAAM,CAACsH,WAA3C,EAAwD,OAAA;AACxDJ,IAAAA,QAAQ,GAAG,IAAIM,cAAJ,CAAoBC,OAAD,IAAa;AACzCN,MAAAA,cAAc,GAAG9K,MAAM,CAACN,qBAAP,CAA6B,MAAM;QAClD,MAAM;UAAE4J,KAAF;AAASE,UAAAA,MAAAA;AAAT,SAAA,GAAoB7F,MAA1B,CAAA;QACA,IAAI0H,QAAQ,GAAG/B,KAAf,CAAA;QACA,IAAIgC,SAAS,GAAG9B,MAAhB,CAAA;QACA4B,OAAO,CAAC9O,OAAR,CAAgB,KAA6C,IAAA;UAAA,IAA5C;YAAEiP,cAAF;YAAkBC,WAAlB;AAA+BrP,YAAAA,MAAAA;WAAa,GAAA,KAAA,CAAA;AAC3D,UAAA,IAAIA,MAAM,IAAIA,MAAM,KAAKwH,MAAM,CAACpD,EAAhC,EAAoC,OAAA;AACpC8K,UAAAA,QAAQ,GAAGG,WAAW,GAClBA,WAAW,CAAClC,KADM,GAElB,CAACiC,cAAc,CAAC,CAAD,CAAd,IAAqBA,cAAtB,EAAsCE,UAF1C,CAAA;AAGAH,UAAAA,SAAS,GAAGE,WAAW,GACnBA,WAAW,CAAChC,MADO,GAEnB,CAAC+B,cAAc,CAAC,CAAD,CAAd,IAAqBA,cAAtB,EAAsCG,SAF1C,CAAA;SALF,CAAA,CAAA;;AASA,QAAA,IAAIL,QAAQ,KAAK/B,KAAb,IAAsBgC,SAAS,KAAK9B,MAAxC,EAAgD;UAC9CuB,aAAa,EAAA,CAAA;AACd,SAAA;AACF,OAhBgB,CAAjB,CAAA;AAiBD,KAlBU,CAAX,CAAA;AAmBAF,IAAAA,QAAQ,CAACc,OAAT,CAAiBhI,MAAM,CAACpD,EAAxB,CAAA,CAAA;GArBF,CAAA;;EAwBA,MAAMqL,cAAc,GAAG,MAAM;AAC3B,IAAA,IAAId,cAAJ,EAAoB;MAClB9K,MAAM,CAACJ,oBAAP,CAA4BkL,cAA5B,CAAA,CAAA;AACD,KAAA;;IACD,IAAID,QAAQ,IAAIA,QAAQ,CAACgB,SAArB,IAAkClI,MAAM,CAACpD,EAA7C,EAAiD;AAC/CsK,MAAAA,QAAQ,CAACgB,SAAT,CAAmBlI,MAAM,CAACpD,EAA1B,CAAA,CAAA;AACAsK,MAAAA,QAAQ,GAAG,IAAX,CAAA;AACD,KAAA;GAPH,CAAA;;EAUA,MAAMiB,wBAAwB,GAAG,MAAM;IACrC,IAAI,CAACnI,MAAD,IAAWA,MAAM,CAACqH,SAAlB,IAA+B,CAACrH,MAAM,CAACsH,WAA3C,EAAwD,OAAA;IACxDL,IAAI,CAAC,mBAAD,CAAJ,CAAA;GAFF,CAAA;;EAKAD,EAAE,CAAC,MAAD,EAAS,MAAM;AACf,IAAA,IAAIhH,MAAM,CAACQ,MAAP,CAAc4H,cAAd,IAAgC,OAAO/L,MAAM,CAACmL,cAAd,KAAiC,WAArE,EAAkF;MAChFD,cAAc,EAAA,CAAA;AACd,MAAA,OAAA;AACD,KAAA;;AACDlL,IAAAA,MAAM,CAACrD,gBAAP,CAAwB,QAAxB,EAAkCoO,aAAlC,CAAA,CAAA;AACA/K,IAAAA,MAAM,CAACrD,gBAAP,CAAwB,mBAAxB,EAA6CmP,wBAA7C,CAAA,CAAA;AACD,GAPC,CAAF,CAAA;EASAnB,EAAE,CAAC,SAAD,EAAY,MAAM;IAClBiB,cAAc,EAAA,CAAA;AACd5L,IAAAA,MAAM,CAACpD,mBAAP,CAA2B,QAA3B,EAAqCmO,aAArC,CAAA,CAAA;AACA/K,IAAAA,MAAM,CAACpD,mBAAP,CAA2B,mBAA3B,EAAgDkP,wBAAhD,CAAA,CAAA;AACD,GAJC,CAAF,CAAA;AAKD;;AC/Dc,SAASE,QAAT,CAAsD,IAAA,EAAA;EAAA,IAApC;IAAErI,MAAF;IAAUsI,YAAV;IAAwBtB,EAAxB;AAA4BC,IAAAA,IAAAA;GAAQ,GAAA,IAAA,CAAA;EACnE,MAAMsB,SAAS,GAAG,EAAlB,CAAA;EACA,MAAMlM,MAAM,GAAGF,SAAS,EAAxB,CAAA;;AACA,EAAA,MAAMqM,MAAM,GAAG,UAAChQ,MAAD,EAASiQ,OAAT,EAA0B;AAAA,IAAA,IAAjBA,OAAiB,KAAA,KAAA,CAAA,EAAA;AAAjBA,MAAAA,OAAiB,GAAP,EAAO,CAAA;AAAA,KAAA;;IACvC,MAAMC,YAAY,GAAGrM,MAAM,CAACsM,gBAAP,IAA2BtM,MAAM,CAACuM,sBAAvD,CAAA;AACA,IAAA,MAAM1B,QAAQ,GAAG,IAAIwB,YAAJ,CAAkBG,SAAD,IAAe;AAC/C;AACA;AACA;AACA,MAAA,IAAIA,SAAS,CAAChQ,MAAV,KAAqB,CAAzB,EAA4B;AAC1BoO,QAAAA,IAAI,CAAC,gBAAD,EAAmB4B,SAAS,CAAC,CAAD,CAA5B,CAAJ,CAAA;AACA,QAAA,OAAA;AACD,OAAA;;AACD,MAAA,MAAMC,cAAc,GAAG,SAASA,cAAT,GAA0B;AAC/C7B,QAAAA,IAAI,CAAC,gBAAD,EAAmB4B,SAAS,CAAC,CAAD,CAA5B,CAAJ,CAAA;OADF,CAAA;;MAIA,IAAIxM,MAAM,CAACN,qBAAX,EAAkC;QAChCM,MAAM,CAACN,qBAAP,CAA6B+M,cAA7B,CAAA,CAAA;AACD,OAFD,MAEO;AACLzM,QAAAA,MAAM,CAACT,UAAP,CAAkBkN,cAAlB,EAAkC,CAAlC,CAAA,CAAA;AACD,OAAA;AACF,KAjBgB,CAAjB,CAAA;AAmBA5B,IAAAA,QAAQ,CAACc,OAAT,CAAiBxP,MAAjB,EAAyB;AACvBuQ,MAAAA,UAAU,EAAE,OAAON,OAAO,CAACM,UAAf,KAA8B,WAA9B,GAA4C,IAA5C,GAAmDN,OAAO,CAACM,UADhD;AAEvBC,MAAAA,SAAS,EAAE,OAAOP,OAAO,CAACO,SAAf,KAA6B,WAA7B,GAA2C,IAA3C,GAAkDP,OAAO,CAACO,SAF9C;MAGvBC,aAAa,EAAE,OAAOR,OAAO,CAACQ,aAAf,KAAiC,WAAjC,GAA+C,IAA/C,GAAsDR,OAAO,CAACQ,aAAAA;KAH/E,CAAA,CAAA;IAMAV,SAAS,CAAC/E,IAAV,CAAe0D,QAAf,CAAA,CAAA;GA3BF,CAAA;;EA6BA,MAAMgC,IAAI,GAAG,MAAM;AACjB,IAAA,IAAI,CAAClJ,MAAM,CAACQ,MAAP,CAAc0G,QAAnB,EAA6B,OAAA;;AAC7B,IAAA,IAAIlH,MAAM,CAACQ,MAAP,CAAc2I,cAAlB,EAAkC;AAChC,MAAA,MAAMC,gBAAgB,GAAGlF,cAAc,CAAClE,MAAM,CAACpD,EAAR,CAAvC,CAAA;;AACA,MAAA,KAAK,IAAIkC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsK,gBAAgB,CAACvQ,MAArC,EAA6CiG,CAAC,IAAI,CAAlD,EAAqD;AACnD0J,QAAAA,MAAM,CAACY,gBAAgB,CAACtK,CAAD,CAAjB,CAAN,CAAA;AACD,OAAA;AACF,KAPgB;;;AASjB0J,IAAAA,MAAM,CAACxI,MAAM,CAACpD,EAAR,EAAY;AAChBoM,MAAAA,SAAS,EAAEhJ,MAAM,CAACQ,MAAP,CAAc6I,oBAAAA;KADrB,CAAN,CATiB;;AAcjBb,IAAAA,MAAM,CAACxI,MAAM,CAACU,SAAR,EAAmB;AAAEqI,MAAAA,UAAU,EAAE,KAAA;AAAd,KAAnB,CAAN,CAAA;GAdF,CAAA;;EAgBA,MAAMO,OAAO,GAAG,MAAM;AACpBf,IAAAA,SAAS,CAAC5P,OAAV,CAAmBuO,QAAD,IAAc;AAC9BA,MAAAA,QAAQ,CAACqC,UAAT,EAAA,CAAA;KADF,CAAA,CAAA;AAGAhB,IAAAA,SAAS,CAACiB,MAAV,CAAiB,CAAjB,EAAoBjB,SAAS,CAAC1P,MAA9B,CAAA,CAAA;GAJF,CAAA;;AAOAyP,EAAAA,YAAY,CAAC;AACXpB,IAAAA,QAAQ,EAAE,KADC;AAEXiC,IAAAA,cAAc,EAAE,KAFL;AAGXE,IAAAA,oBAAoB,EAAE,KAAA;AAHX,GAAD,CAAZ,CAAA;AAKArC,EAAAA,EAAE,CAAC,MAAD,EAASkC,IAAT,CAAF,CAAA;AACAlC,EAAAA,EAAE,CAAC,SAAD,EAAYsC,OAAZ,CAAF,CAAA;AACD;;ACjED;AAEA,oBAAe;AACbtC,EAAAA,EAAE,CAACyC,MAAD,EAASC,OAAT,EAAkBC,QAAlB,EAA4B;IAC5B,MAAMC,IAAI,GAAG,IAAb,CAAA;IACA,IAAI,CAACA,IAAI,CAACC,eAAN,IAAyBD,IAAI,CAACvC,SAAlC,EAA6C,OAAOuC,IAAP,CAAA;AAC7C,IAAA,IAAI,OAAOF,OAAP,KAAmB,UAAvB,EAAmC,OAAOE,IAAP,CAAA;AACnC,IAAA,MAAME,MAAM,GAAGH,QAAQ,GAAG,SAAH,GAAe,MAAtC,CAAA;IACAF,MAAM,CAAClM,KAAP,CAAa,GAAb,EAAkB5E,OAAlB,CAA2BoR,KAAD,IAAW;AACnC,MAAA,IAAI,CAACH,IAAI,CAACC,eAAL,CAAqBE,KAArB,CAAL,EAAkCH,IAAI,CAACC,eAAL,CAAqBE,KAArB,IAA8B,EAA9B,CAAA;AAClCH,MAAAA,IAAI,CAACC,eAAL,CAAqBE,KAArB,CAA4BD,CAAAA,MAA5B,EAAoCJ,OAApC,CAAA,CAAA;KAFF,CAAA,CAAA;AAIA,IAAA,OAAOE,IAAP,CAAA;GAVW;;AAabI,EAAAA,IAAI,CAACP,MAAD,EAASC,OAAT,EAAkBC,QAAlB,EAA4B;IAC9B,MAAMC,IAAI,GAAG,IAAb,CAAA;IACA,IAAI,CAACA,IAAI,CAACC,eAAN,IAAyBD,IAAI,CAACvC,SAAlC,EAA6C,OAAOuC,IAAP,CAAA;AAC7C,IAAA,IAAI,OAAOF,OAAP,KAAmB,UAAvB,EAAmC,OAAOE,IAAP,CAAA;;AACnC,IAAA,SAASK,WAAT,GAA8B;AAC5BL,MAAAA,IAAI,CAACM,GAAL,CAAST,MAAT,EAAiBQ,WAAjB,CAAA,CAAA;;MACA,IAAIA,WAAW,CAACE,cAAhB,EAAgC;QAC9B,OAAOF,WAAW,CAACE,cAAnB,CAAA;AACD,OAAA;;AAJ2B,MAAA,KAAA,IAAA,IAAA,GAAA,SAAA,CAAA,MAAA,EAANC,IAAM,GAAA,IAAA,KAAA,CAAA,IAAA,CAAA,EAAA,IAAA,GAAA,CAAA,EAAA,IAAA,GAAA,IAAA,EAAA,IAAA,EAAA,EAAA;QAANA,IAAM,CAAA,IAAA,CAAA,GAAA,SAAA,CAAA,IAAA,CAAA,CAAA;AAAA,OAAA;;AAK5BV,MAAAA,OAAO,CAACW,KAAR,CAAcT,IAAd,EAAoBQ,IAApB,CAAA,CAAA;AACD,KAAA;;IACDH,WAAW,CAACE,cAAZ,GAA6BT,OAA7B,CAAA;IACA,OAAOE,IAAI,CAAC5C,EAAL,CAAQyC,MAAR,EAAgBQ,WAAhB,EAA6BN,QAA7B,CAAP,CAAA;GAzBW;;AA4BbW,EAAAA,KAAK,CAACZ,OAAD,EAAUC,QAAV,EAAoB;IACvB,MAAMC,IAAI,GAAG,IAAb,CAAA;IACA,IAAI,CAACA,IAAI,CAACC,eAAN,IAAyBD,IAAI,CAACvC,SAAlC,EAA6C,OAAOuC,IAAP,CAAA;AAC7C,IAAA,IAAI,OAAOF,OAAP,KAAmB,UAAvB,EAAmC,OAAOE,IAAP,CAAA;AACnC,IAAA,MAAME,MAAM,GAAGH,QAAQ,GAAG,SAAH,GAAe,MAAtC,CAAA;;IACA,IAAIC,IAAI,CAACW,kBAAL,CAAwBpL,OAAxB,CAAgCuK,OAAhC,CAA2C,GAAA,CAA/C,EAAkD;AAChDE,MAAAA,IAAI,CAACW,kBAAL,CAAwBT,MAAxB,EAAgCJ,OAAhC,CAAA,CAAA;AACD,KAAA;;AACD,IAAA,OAAOE,IAAP,CAAA;GApCW;;EAuCbY,MAAM,CAACd,OAAD,EAAU;IACd,MAAME,IAAI,GAAG,IAAb,CAAA;IACA,IAAI,CAACA,IAAI,CAACC,eAAN,IAAyBD,IAAI,CAACvC,SAAlC,EAA6C,OAAOuC,IAAP,CAAA;AAC7C,IAAA,IAAI,CAACA,IAAI,CAACW,kBAAV,EAA8B,OAAOX,IAAP,CAAA;IAC9B,MAAMa,KAAK,GAAGb,IAAI,CAACW,kBAAL,CAAwBpL,OAAxB,CAAgCuK,OAAhC,CAAd,CAAA;;IACA,IAAIe,KAAK,IAAI,CAAb,EAAgB;AACdb,MAAAA,IAAI,CAACW,kBAAL,CAAwBf,MAAxB,CAA+BiB,KAA/B,EAAsC,CAAtC,CAAA,CAAA;AACD,KAAA;;AACD,IAAA,OAAOb,IAAP,CAAA;GA/CW;;AAkDbM,EAAAA,GAAG,CAACT,MAAD,EAASC,OAAT,EAAkB;IACnB,MAAME,IAAI,GAAG,IAAb,CAAA;IACA,IAAI,CAACA,IAAI,CAACC,eAAN,IAAyBD,IAAI,CAACvC,SAAlC,EAA6C,OAAOuC,IAAP,CAAA;AAC7C,IAAA,IAAI,CAACA,IAAI,CAACC,eAAV,EAA2B,OAAOD,IAAP,CAAA;IAC3BH,MAAM,CAAClM,KAAP,CAAa,GAAb,EAAkB5E,OAAlB,CAA2BoR,KAAD,IAAW;AACnC,MAAA,IAAI,OAAOL,OAAP,KAAmB,WAAvB,EAAoC;AAClCE,QAAAA,IAAI,CAACC,eAAL,CAAqBE,KAArB,IAA8B,EAA9B,CAAA;OADF,MAEO,IAAIH,IAAI,CAACC,eAAL,CAAqBE,KAArB,CAAJ,EAAiC;QACtCH,IAAI,CAACC,eAAL,CAAqBE,KAArB,CAAA,CAA4BpR,OAA5B,CAAoC,CAAC+R,YAAD,EAAeD,KAAf,KAAyB;AAC3D,UAAA,IACEC,YAAY,KAAKhB,OAAjB,IACCgB,YAAY,CAACP,cAAb,IAA+BO,YAAY,CAACP,cAAb,KAAgCT,OAFlE,EAGE;YACAE,IAAI,CAACC,eAAL,CAAqBE,KAArB,EAA4BP,MAA5B,CAAmCiB,KAAnC,EAA0C,CAA1C,CAAA,CAAA;AACD,WAAA;SANH,CAAA,CAAA;AAQD,OAAA;KAZH,CAAA,CAAA;AAcA,IAAA,OAAOb,IAAP,CAAA;GApEW;;AAuEb3C,EAAAA,IAAI,GAAU;IACZ,MAAM2C,IAAI,GAAG,IAAb,CAAA;IACA,IAAI,CAACA,IAAI,CAACC,eAAN,IAAyBD,IAAI,CAACvC,SAAlC,EAA6C,OAAOuC,IAAP,CAAA;AAC7C,IAAA,IAAI,CAACA,IAAI,CAACC,eAAV,EAA2B,OAAOD,IAAP,CAAA;AAC3B,IAAA,IAAIH,MAAJ,CAAA;AACA,IAAA,IAAIkB,IAAJ,CAAA;AACA,IAAA,IAAIC,OAAJ,CAAA;;AANY,IAAA,KAAA,IAAA,KAAA,GAAA,SAAA,CAAA,MAAA,EAANR,IAAM,GAAA,IAAA,KAAA,CAAA,KAAA,CAAA,EAAA,KAAA,GAAA,CAAA,EAAA,KAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA;MAANA,IAAM,CAAA,KAAA,CAAA,GAAA,SAAA,CAAA,KAAA,CAAA,CAAA;AAAA,KAAA;;AAOZ,IAAA,IAAI,OAAOA,IAAI,CAAC,CAAD,CAAX,KAAmB,QAAnB,IAA+B7H,KAAK,CAACC,OAAN,CAAc4H,IAAI,CAAC,CAAD,CAAlB,CAAnC,EAA2D;AACzDX,MAAAA,MAAM,GAAGW,IAAI,CAAC,CAAD,CAAb,CAAA;MACAO,IAAI,GAAGP,IAAI,CAAC7L,KAAL,CAAW,CAAX,EAAc6L,IAAI,CAACvR,MAAnB,CAAP,CAAA;AACA+R,MAAAA,OAAO,GAAGhB,IAAV,CAAA;AACD,KAJD,MAIO;AACLH,MAAAA,MAAM,GAAGW,IAAI,CAAC,CAAD,CAAJ,CAAQX,MAAjB,CAAA;AACAkB,MAAAA,IAAI,GAAGP,IAAI,CAAC,CAAD,CAAJ,CAAQO,IAAf,CAAA;MACAC,OAAO,GAAGR,IAAI,CAAC,CAAD,CAAJ,CAAQQ,OAAR,IAAmBhB,IAA7B,CAAA;AACD,KAAA;;IACDe,IAAI,CAACE,OAAL,CAAaD,OAAb,CAAA,CAAA;AACA,IAAA,MAAME,WAAW,GAAGvI,KAAK,CAACC,OAAN,CAAciH,MAAd,CAAwBA,GAAAA,MAAxB,GAAiCA,MAAM,CAAClM,KAAP,CAAa,GAAb,CAArD,CAAA;AAEAuN,IAAAA,WAAW,CAACnS,OAAZ,CAAqBoR,KAAD,IAAW;MAC7B,IAAIH,IAAI,CAACW,kBAAL,IAA2BX,IAAI,CAACW,kBAAL,CAAwB1R,MAAvD,EAA+D;AAC7D+Q,QAAAA,IAAI,CAACW,kBAAL,CAAwB5R,OAAxB,CAAiC+R,YAAD,IAAkB;UAChDA,YAAY,CAACL,KAAb,CAAmBO,OAAnB,EAA4B,CAACb,KAAD,EAAQ,GAAGY,IAAX,CAA5B,CAAA,CAAA;SADF,CAAA,CAAA;AAGD,OAAA;;MACD,IAAIf,IAAI,CAACC,eAAL,IAAwBD,IAAI,CAACC,eAAL,CAAqBE,KAArB,CAA5B,EAAyD;QACvDH,IAAI,CAACC,eAAL,CAAqBE,KAArB,EAA4BpR,OAA5B,CAAqC+R,YAAD,IAAkB;AACpDA,UAAAA,YAAY,CAACL,KAAb,CAAmBO,OAAnB,EAA4BD,IAA5B,CAAA,CAAA;SADF,CAAA,CAAA;AAGD,OAAA;KAVH,CAAA,CAAA;AAYA,IAAA,OAAOf,IAAP,CAAA;AACD,GAAA;;AAvGY,CAAf;;ACAe,SAASmB,UAAT,GAAsB;EACnC,MAAM/K,MAAM,GAAG,IAAf,CAAA;AACA,EAAA,IAAI2F,KAAJ,CAAA;AACA,EAAA,IAAIE,MAAJ,CAAA;AACA,EAAA,MAAMjJ,EAAE,GAAGoD,MAAM,CAACpD,EAAlB,CAAA;;AACA,EAAA,IAAI,OAAOoD,MAAM,CAACQ,MAAP,CAAcmF,KAArB,KAA+B,WAA/B,IAA8C3F,MAAM,CAACQ,MAAP,CAAcmF,KAAd,KAAwB,IAA1E,EAAgF;AAC9EA,IAAAA,KAAK,GAAG3F,MAAM,CAACQ,MAAP,CAAcmF,KAAtB,CAAA;AACD,GAFD,MAEO;IACLA,KAAK,GAAG/I,EAAE,CAACoO,WAAX,CAAA;AACD,GAAA;;AACD,EAAA,IAAI,OAAOhL,MAAM,CAACQ,MAAP,CAAcqF,MAArB,KAAgC,WAAhC,IAA+C7F,MAAM,CAACQ,MAAP,CAAcqF,MAAd,KAAyB,IAA5E,EAAkF;AAChFA,IAAAA,MAAM,GAAG7F,MAAM,CAACQ,MAAP,CAAcqF,MAAvB,CAAA;AACD,GAFD,MAEO;IACLA,MAAM,GAAGjJ,EAAE,CAACqO,YAAZ,CAAA;AACD,GAAA;;AACD,EAAA,IAAKtF,KAAK,KAAK,CAAV,IAAe3F,MAAM,CAACkL,YAAP,EAAhB,IAA2CrF,MAAM,KAAK,CAAX,IAAgB7F,MAAM,CAACmL,UAAP,EAA/D,EAAqF;AACnF,IAAA,OAAA;AACD,GAjBkC;;;AAoBnCxF,EAAAA,KAAK,GACHA,KAAK,GACLyF,QAAQ,CAACvH,YAAY,CAACjH,EAAD,EAAK,cAAL,CAAZ,IAAoC,CAArC,EAAwC,EAAxC,CADR,GAEAwO,QAAQ,CAACvH,YAAY,CAACjH,EAAD,EAAK,eAAL,CAAZ,IAAqC,CAAtC,EAAyC,EAAzC,CAHV,CAAA;AAIAiJ,EAAAA,MAAM,GACJA,MAAM,GACNuF,QAAQ,CAACvH,YAAY,CAACjH,EAAD,EAAK,aAAL,CAAZ,IAAmC,CAApC,EAAuC,EAAvC,CADR,GAEAwO,QAAQ,CAACvH,YAAY,CAACjH,EAAD,EAAK,gBAAL,CAAZ,IAAsC,CAAvC,EAA0C,EAA1C,CAHV,CAAA;EAKA,IAAIyO,MAAM,CAACC,KAAP,CAAa3F,KAAb,CAAJ,EAAyBA,KAAK,GAAG,CAAR,CAAA;EACzB,IAAI0F,MAAM,CAACC,KAAP,CAAazF,MAAb,CAAJ,EAA0BA,MAAM,GAAG,CAAT,CAAA;AAE1BvN,EAAAA,MAAM,CAACiT,MAAP,CAAcvL,MAAd,EAAsB;IACpB2F,KADoB;IAEpBE,MAFoB;AAGpBpB,IAAAA,IAAI,EAAEzE,MAAM,CAACkL,YAAP,EAAA,GAAwBvF,KAAxB,GAAgCE,MAAAA;GAHxC,CAAA,CAAA;AAKD;;AChCc,SAAS2F,YAAT,GAAwB;EACrC,MAAMxL,MAAM,GAAG,IAAf,CAAA;;EACA,SAASyL,iBAAT,CAA2BC,QAA3B,EAAqC;AACnC,IAAA,IAAI1L,MAAM,CAACkL,YAAP,EAAJ,EAA2B;AACzB,MAAA,OAAOQ,QAAP,CAAA;AACD,KAHkC;;;IAKnC,OAAO;AACL,MAAA,OAAA,EAAS,QADJ;AAEL,MAAA,YAAA,EAAc,aAFT;AAGL,MAAA,gBAAA,EAAkB,cAHb;AAIL,MAAA,aAAA,EAAe,YAJV;AAKL,MAAA,cAAA,EAAgB,eALX;AAML,MAAA,cAAA,EAAgB,aANX;AAOL,MAAA,eAAA,EAAiB,gBAPZ;MAQL,aAAe,EAAA,cAAA;AARV,KAAA,CASLA,QATK,CAAP,CAAA;AAUD,GAAA;;AACD,EAAA,SAASC,yBAAT,CAAmClN,IAAnC,EAAyCmN,KAAzC,EAAgD;AAC9C,IAAA,OAAO1N,UAAU,CAACO,IAAI,CAACjD,gBAAL,CAAsBiQ,iBAAiB,CAACG,KAAD,CAAvC,CAAmD,IAAA,CAApD,CAAjB,CAAA;AACD,GAAA;;AAED,EAAA,MAAMpL,MAAM,GAAGR,MAAM,CAACQ,MAAtB,CAAA;EAEA,MAAM;IAAEE,SAAF;IAAamL,QAAb;AAAuBpH,IAAAA,IAAI,EAAEqH,UAA7B;AAAyCC,IAAAA,YAAY,EAAEC,GAAvD;AAA4DC,IAAAA,QAAAA;AAA5D,GAAA,GAAyEjM,MAA/E,CAAA;EACA,MAAMkM,SAAS,GAAGlM,MAAM,CAACmM,OAAP,IAAkB3L,MAAM,CAAC2L,OAAP,CAAeC,OAAnD,CAAA;AACA,EAAA,MAAMC,oBAAoB,GAAGH,SAAS,GAAGlM,MAAM,CAACmM,OAAP,CAAeG,MAAf,CAAsBzT,MAAzB,GAAkCmH,MAAM,CAACsM,MAAP,CAAczT,MAAtF,CAAA;AACA,EAAA,MAAMyT,MAAM,GAAGvK,eAAe,CAAC8J,QAAD,EAAY,CAAG7L,CAAAA,EAAAA,MAAM,CAACQ,MAAP,CAAc+L,UAAW,gBAAxC,CAA9B,CAAA;AACA,EAAA,MAAMC,YAAY,GAAGN,SAAS,GAAGlM,MAAM,CAACmM,OAAP,CAAeG,MAAf,CAAsBzT,MAAzB,GAAkCyT,MAAM,CAACzT,MAAvE,CAAA;EACA,IAAI4T,QAAQ,GAAG,EAAf,CAAA;EACA,MAAMC,UAAU,GAAG,EAAnB,CAAA;EACA,MAAMC,eAAe,GAAG,EAAxB,CAAA;AAEA,EAAA,IAAIC,YAAY,GAAGpM,MAAM,CAACqM,kBAA1B,CAAA;;AACA,EAAA,IAAI,OAAOD,YAAP,KAAwB,UAA5B,EAAwC;IACtCA,YAAY,GAAGpM,MAAM,CAACqM,kBAAP,CAA0BvO,IAA1B,CAA+B0B,MAA/B,CAAf,CAAA;AACD,GAAA;;AAED,EAAA,IAAI8M,WAAW,GAAGtM,MAAM,CAACuM,iBAAzB,CAAA;;AACA,EAAA,IAAI,OAAOD,WAAP,KAAuB,UAA3B,EAAuC;IACrCA,WAAW,GAAGtM,MAAM,CAACuM,iBAAP,CAAyBzO,IAAzB,CAA8B0B,MAA9B,CAAd,CAAA;AACD,GAAA;;AAED,EAAA,MAAMgN,sBAAsB,GAAGhN,MAAM,CAACyM,QAAP,CAAgB5T,MAA/C,CAAA;AACA,EAAA,MAAMoU,wBAAwB,GAAGjN,MAAM,CAAC0M,UAAP,CAAkB7T,MAAnD,CAAA;AAEA,EAAA,IAAIqU,YAAY,GAAG1M,MAAM,CAAC0M,YAA1B,CAAA;EACA,IAAIC,aAAa,GAAG,CAACP,YAArB,CAAA;EACA,IAAIQ,aAAa,GAAG,CAApB,CAAA;EACA,IAAI3C,KAAK,GAAG,CAAZ,CAAA;;AACA,EAAA,IAAI,OAAOqB,UAAP,KAAsB,WAA1B,EAAuC;AACrC,IAAA,OAAA;AACD,GAAA;;AACD,EAAA,IAAI,OAAOoB,YAAP,KAAwB,QAAxB,IAAoCA,YAAY,CAAC/N,OAAb,CAAqB,GAArB,CAA6B,IAAA,CAArE,EAAwE;AACtE+N,IAAAA,YAAY,GAAIhP,UAAU,CAACgP,YAAY,CAACxP,OAAb,CAAqB,GAArB,EAA0B,EAA1B,CAAD,CAAV,GAA4C,GAA7C,GAAoDoO,UAAnE,CAAA;AACD,GAAA;;AAED9L,EAAAA,MAAM,CAACqN,WAAP,GAAqB,CAACH,YAAtB,CAzDqC;;AA4DrCZ,EAAAA,MAAM,CAAC3T,OAAP,CAAgBkJ,OAAD,IAAa;AAC1B,IAAA,IAAImK,GAAJ,EAAS;AACPnK,MAAAA,OAAO,CAAChI,KAAR,CAAcyT,UAAd,GAA2B,EAA3B,CAAA;AACD,KAFD,MAEO;AACLzL,MAAAA,OAAO,CAAChI,KAAR,CAAc0T,WAAd,GAA4B,EAA5B,CAAA;AACD,KAAA;;AACD1L,IAAAA,OAAO,CAAChI,KAAR,CAAc2T,YAAd,GAA6B,EAA7B,CAAA;AACA3L,IAAAA,OAAO,CAAChI,KAAR,CAAc4T,SAAd,GAA0B,EAA1B,CAAA;AACD,GARD,EA5DqC;;AAuErC,EAAA,IAAIjN,MAAM,CAACkN,cAAP,IAAyBlN,MAAM,CAACmN,OAApC,EAA6C;AAC3ChO,IAAAA,cAAc,CAACe,SAAD,EAAY,iCAAZ,EAA+C,EAA/C,CAAd,CAAA;AACAf,IAAAA,cAAc,CAACe,SAAD,EAAY,gCAAZ,EAA8C,EAA9C,CAAd,CAAA;AACD,GAAA;;AAED,EAAA,MAAMkN,WAAW,GAAGpN,MAAM,CAACqN,IAAP,IAAerN,MAAM,CAACqN,IAAP,CAAYC,IAAZ,GAAmB,CAAlC,IAAuC9N,MAAM,CAAC6N,IAAlE,CAAA;;AACA,EAAA,IAAID,WAAJ,EAAiB;AACf5N,IAAAA,MAAM,CAAC6N,IAAP,CAAYE,UAAZ,CAAuBvB,YAAvB,CAAA,CAAA;AACD,GA/EoC;;;AAkFrC,EAAA,IAAIwB,SAAJ,CAAA;EAEA,MAAMC,oBAAoB,GACxBzN,MAAM,CAAC0N,aAAP,KAAyB,MAAzB,IACA1N,MAAM,CAAC2N,WADP,IAEA7V,MAAM,CAACI,IAAP,CAAY8H,MAAM,CAAC2N,WAAnB,CAAgCjP,CAAAA,MAAhC,CAAwCtG,GAAD,IAAS;IAC9C,OAAO,OAAO4H,MAAM,CAAC2N,WAAP,CAAmBvV,GAAnB,CAAA,CAAwBsV,aAA/B,KAAiD,WAAxD,CAAA;GADF,CAAA,CAEGrV,MAFH,GAEY,CALd,CAAA;;AAOA,EAAA,KAAK,IAAIiG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG0N,YAApB,EAAkC1N,CAAC,IAAI,CAAvC,EAA0C;AACxCkP,IAAAA,SAAS,GAAG,CAAZ,CAAA;AACA,IAAA,IAAII,KAAJ,CAAA;IACA,IAAI9B,MAAM,CAACxN,CAAD,CAAV,EAAesP,KAAK,GAAG9B,MAAM,CAACxN,CAAD,CAAd,CAAA;;AACf,IAAA,IAAI8O,WAAJ,EAAiB;MACf5N,MAAM,CAAC6N,IAAP,CAAYQ,WAAZ,CAAwBvP,CAAxB,EAA2BsP,KAA3B,EAAkC5B,YAAlC,EAAgDf,iBAAhD,CAAA,CAAA;AACD,KAAA;;AACD,IAAA,IAAIa,MAAM,CAACxN,CAAD,CAAN,IAAa+E,YAAY,CAACuK,KAAD,EAAQ,SAAR,CAAZ,KAAmC,MAApD,EAA4D,SAPpB;;AASxC,IAAA,IAAI5N,MAAM,CAAC0N,aAAP,KAAyB,MAA7B,EAAqC;AACnC,MAAA,IAAID,oBAAJ,EAA0B;QACxB3B,MAAM,CAACxN,CAAD,CAAN,CAAUjF,KAAV,CAAgB4R,iBAAiB,CAAC,OAAD,CAAjC,CAAA,GAA+C,CAA/C,CAAA,CAAA;AACD,OAAA;;AACD,MAAA,MAAM6C,WAAW,GAAG/S,gBAAgB,CAAC6S,KAAD,CAApC,CAAA;AACA,MAAA,MAAMG,gBAAgB,GAAGH,KAAK,CAACvU,KAAN,CAAYwD,SAArC,CAAA;AACA,MAAA,MAAMmR,sBAAsB,GAAGJ,KAAK,CAACvU,KAAN,CAAYyD,eAA3C,CAAA;;AACA,MAAA,IAAIiR,gBAAJ,EAAsB;AACpBH,QAAAA,KAAK,CAACvU,KAAN,CAAYwD,SAAZ,GAAwB,MAAxB,CAAA;AACD,OAAA;;AACD,MAAA,IAAImR,sBAAJ,EAA4B;AAC1BJ,QAAAA,KAAK,CAACvU,KAAN,CAAYyD,eAAZ,GAA8B,MAA9B,CAAA;AACD,OAAA;;MACD,IAAIkD,MAAM,CAACiO,YAAX,EAAyB;QACvBT,SAAS,GAAGhO,MAAM,CAACkL,YAAP,KACR1G,gBAAgB,CAAC4J,KAAD,EAAQ,OAAR,EAAiB,IAAjB,CADR,GAER5J,gBAAgB,CAAC4J,KAAD,EAAQ,QAAR,EAAkB,IAAlB,CAFpB,CAAA;AAGD,OAJD,MAIO;AACL;AACA,QAAA,MAAMzI,KAAK,GAAGgG,yBAAyB,CAAC2C,WAAD,EAAc,OAAd,CAAvC,CAAA;AACA,QAAA,MAAMI,WAAW,GAAG/C,yBAAyB,CAAC2C,WAAD,EAAc,cAAd,CAA7C,CAAA;AACA,QAAA,MAAMK,YAAY,GAAGhD,yBAAyB,CAAC2C,WAAD,EAAc,eAAd,CAA9C,CAAA;AACA,QAAA,MAAMhB,UAAU,GAAG3B,yBAAyB,CAAC2C,WAAD,EAAc,aAAd,CAA5C,CAAA;AACA,QAAA,MAAMf,WAAW,GAAG5B,yBAAyB,CAAC2C,WAAD,EAAc,cAAd,CAA7C,CAAA;AACA,QAAA,MAAMM,SAAS,GAAGN,WAAW,CAAC9S,gBAAZ,CAA6B,YAA7B,CAAlB,CAAA;;AACA,QAAA,IAAIoT,SAAS,IAAIA,SAAS,KAAK,YAA/B,EAA6C;AAC3CZ,UAAAA,SAAS,GAAGrI,KAAK,GAAG2H,UAAR,GAAqBC,WAAjC,CAAA;AACD,SAFD,MAEO;UACL,MAAM;YAAEvC,WAAF;AAAerG,YAAAA,WAAAA;AAAf,WAAA,GAA+ByJ,KAArC,CAAA;AACAJ,UAAAA,SAAS,GACPrI,KAAK,GACL+I,WADA,GAEAC,YAFA,GAGArB,UAHA,GAIAC,WAJA,IAKC5I,WAAW,GAAGqG,WALf,CADF,CAAA;AAOD,SAAA;AACF,OAAA;;AACD,MAAA,IAAIuD,gBAAJ,EAAsB;AACpBH,QAAAA,KAAK,CAACvU,KAAN,CAAYwD,SAAZ,GAAwBkR,gBAAxB,CAAA;AACD,OAAA;;AACD,MAAA,IAAIC,sBAAJ,EAA4B;AAC1BJ,QAAAA,KAAK,CAACvU,KAAN,CAAYyD,eAAZ,GAA8BkR,sBAA9B,CAAA;AACD,OAAA;;MACD,IAAIhO,MAAM,CAACiO,YAAX,EAAyBT,SAAS,GAAG7M,IAAI,CAAC0N,KAAL,CAAWb,SAAX,CAAZ,CAAA;AAC1B,KA7CD,MA6CO;AACLA,MAAAA,SAAS,GAAG,CAAClC,UAAU,GAAG,CAACtL,MAAM,CAAC0N,aAAP,GAAuB,CAAxB,IAA6BhB,YAA3C,IAA2D1M,MAAM,CAAC0N,aAA9E,CAAA;MACA,IAAI1N,MAAM,CAACiO,YAAX,EAAyBT,SAAS,GAAG7M,IAAI,CAAC0N,KAAL,CAAWb,SAAX,CAAZ,CAAA;;AAEzB,MAAA,IAAI1B,MAAM,CAACxN,CAAD,CAAV,EAAe;AACbwN,QAAAA,MAAM,CAACxN,CAAD,CAAN,CAAUjF,KAAV,CAAgB4R,iBAAiB,CAAC,OAAD,CAAjC,CAA+C,GAAA,CAAA,EAAEuC,SAAU,CAA3D,EAAA,CAAA,CAAA;AACD,OAAA;AACF,KAAA;;AACD,IAAA,IAAI1B,MAAM,CAACxN,CAAD,CAAV,EAAe;AACbwN,MAAAA,MAAM,CAACxN,CAAD,CAAN,CAAUgQ,eAAV,GAA4Bd,SAA5B,CAAA;AACD,KAAA;;IACDrB,eAAe,CAACnJ,IAAhB,CAAqBwK,SAArB,CAAA,CAAA;;IAEA,IAAIxN,MAAM,CAACkN,cAAX,EAA2B;MACzBP,aAAa,GAAGA,aAAa,GAAGa,SAAS,GAAG,CAA5B,GAAgCZ,aAAa,GAAG,CAAhD,GAAoDF,YAApE,CAAA;AACA,MAAA,IAAIE,aAAa,KAAK,CAAlB,IAAuBtO,CAAC,KAAK,CAAjC,EACEqO,aAAa,GAAGA,aAAa,GAAGrB,UAAU,GAAG,CAA7B,GAAiCoB,YAAjD,CAAA;AACF,MAAA,IAAIpO,CAAC,KAAK,CAAV,EAAaqO,aAAa,GAAGA,aAAa,GAAGrB,UAAU,GAAG,CAA7B,GAAiCoB,YAAjD,CAAA;MACb,IAAI/L,IAAI,CAAC4N,GAAL,CAAS5B,aAAT,CAA0B,GAAA,CAAA,GAAI,IAAlC,EAAwCA,aAAa,GAAG,CAAhB,CAAA;MACxC,IAAI3M,MAAM,CAACiO,YAAX,EAAyBtB,aAAa,GAAGhM,IAAI,CAAC0N,KAAL,CAAW1B,aAAX,CAAhB,CAAA;AACzB,MAAA,IAAI1C,KAAK,GAAGjK,MAAM,CAACwO,cAAf,KAAkC,CAAtC,EAAyCvC,QAAQ,CAACjJ,IAAT,CAAc2J,aAAd,CAAA,CAAA;MACzCT,UAAU,CAAClJ,IAAX,CAAgB2J,aAAhB,CAAA,CAAA;AACD,KATD,MASO;MACL,IAAI3M,MAAM,CAACiO,YAAX,EAAyBtB,aAAa,GAAGhM,IAAI,CAAC0N,KAAL,CAAW1B,aAAX,CAAhB,CAAA;AACzB,MAAA,IACE,CAAC1C,KAAK,GAAGtJ,IAAI,CAACE,GAAL,CAASrB,MAAM,CAACQ,MAAP,CAAcyO,kBAAvB,EAA2CxE,KAA3C,CAAT,IACEzK,MAAM,CAACQ,MAAP,CAAcwO,cADhB,KAEA,CAHF,EAKEvC,QAAQ,CAACjJ,IAAT,CAAc2J,aAAd,CAAA,CAAA;MACFT,UAAU,CAAClJ,IAAX,CAAgB2J,aAAhB,CAAA,CAAA;AACAA,MAAAA,aAAa,GAAGA,aAAa,GAAGa,SAAhB,GAA4Bd,YAA5C,CAAA;AACD,KAAA;;AAEDlN,IAAAA,MAAM,CAACqN,WAAP,IAAsBW,SAAS,GAAGd,YAAlC,CAAA;AAEAE,IAAAA,aAAa,GAAGY,SAAhB,CAAA;AAEAvD,IAAAA,KAAK,IAAI,CAAT,CAAA;AACD,GAAA;;AAEDzK,EAAAA,MAAM,CAACqN,WAAP,GAAqBlM,IAAI,CAACC,GAAL,CAASpB,MAAM,CAACqN,WAAhB,EAA6BvB,UAA7B,IAA2CgB,WAAhE,CAAA;;AAEA,EAAA,IAAId,GAAG,IAAIC,QAAP,KAAoBzL,MAAM,CAAC0O,MAAP,KAAkB,OAAlB,IAA6B1O,MAAM,CAAC0O,MAAP,KAAkB,WAAnE,CAAJ,EAAqF;AACnFxO,IAAAA,SAAS,CAAC7G,KAAV,CAAgB8L,KAAhB,GAAyB,CAAA,EAAE3F,MAAM,CAACqN,WAAP,GAAqB7M,MAAM,CAAC0M,YAAa,CAApE,EAAA,CAAA,CAAA;AACD,GAAA;;EACD,IAAI1M,MAAM,CAAC2O,cAAX,EAA2B;AACzBzO,IAAAA,SAAS,CAAC7G,KAAV,CAAgB4R,iBAAiB,CAAC,OAAD,CAAjC,CAAA,GAA+C,CAAEzL,EAAAA,MAAM,CAACqN,WAAP,GAAqB7M,MAAM,CAAC0M,YAAa,CAA1F,EAAA,CAAA,CAAA;AACD,GAAA;;AAED,EAAA,IAAIU,WAAJ,EAAiB;IACf5N,MAAM,CAAC6N,IAAP,CAAYuB,iBAAZ,CAA8BpB,SAA9B,EAAyCvB,QAAzC,EAAmDhB,iBAAnD,CAAA,CAAA;AACD,GArMoC;;;AAwMrC,EAAA,IAAI,CAACjL,MAAM,CAACkN,cAAZ,EAA4B;IAC1B,MAAM2B,aAAa,GAAG,EAAtB,CAAA;;AACA,IAAA,KAAK,IAAIvQ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG2N,QAAQ,CAAC5T,MAA7B,EAAqCiG,CAAC,IAAI,CAA1C,EAA6C;AAC3C,MAAA,IAAIwQ,cAAc,GAAG7C,QAAQ,CAAC3N,CAAD,CAA7B,CAAA;MACA,IAAI0B,MAAM,CAACiO,YAAX,EAAyBa,cAAc,GAAGnO,IAAI,CAAC0N,KAAL,CAAWS,cAAX,CAAjB,CAAA;;MACzB,IAAI7C,QAAQ,CAAC3N,CAAD,CAAR,IAAekB,MAAM,CAACqN,WAAP,GAAqBvB,UAAxC,EAAoD;QAClDuD,aAAa,CAAC7L,IAAd,CAAmB8L,cAAnB,CAAA,CAAA;AACD,OAAA;AACF,KAAA;;AACD7C,IAAAA,QAAQ,GAAG4C,aAAX,CAAA;;IAEA,IACElO,IAAI,CAAC0N,KAAL,CAAW7O,MAAM,CAACqN,WAAP,GAAqBvB,UAAhC,CAAA,GAA8C3K,IAAI,CAAC0N,KAAL,CAAWpC,QAAQ,CAACA,QAAQ,CAAC5T,MAAT,GAAkB,CAAnB,CAAnB,CAA9C,GACA,CAFF,EAGE;AACA4T,MAAAA,QAAQ,CAACjJ,IAAT,CAAcxD,MAAM,CAACqN,WAAP,GAAqBvB,UAAnC,CAAA,CAAA;AACD,KAAA;AACF,GAAA;;AACD,EAAA,IAAII,SAAS,IAAI1L,MAAM,CAAC+O,IAAxB,EAA8B;AAC5B,IAAA,MAAM9K,IAAI,GAAGkI,eAAe,CAAC,CAAD,CAAf,GAAqBO,YAAlC,CAAA;;AACA,IAAA,IAAI1M,MAAM,CAACwO,cAAP,GAAwB,CAA5B,EAA+B;MAC7B,MAAMQ,MAAM,GAAGrO,IAAI,CAACsO,IAAL,CACb,CAACzP,MAAM,CAACmM,OAAP,CAAeuD,YAAf,GAA8B1P,MAAM,CAACmM,OAAP,CAAewD,WAA9C,IAA6DnP,MAAM,CAACwO,cADvD,CAAf,CAAA;AAGA,MAAA,MAAMY,SAAS,GAAGnL,IAAI,GAAGjE,MAAM,CAACwO,cAAhC,CAAA;;AACA,MAAA,KAAK,IAAIlQ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG0Q,MAApB,EAA4B1Q,CAAC,IAAI,CAAjC,EAAoC;AAClC2N,QAAAA,QAAQ,CAACjJ,IAAT,CAAciJ,QAAQ,CAACA,QAAQ,CAAC5T,MAAT,GAAkB,CAAnB,CAAR,GAAgC+W,SAA9C,CAAA,CAAA;AACD,OAAA;AACF,KAAA;;IACD,KAAK,IAAI9Q,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGkB,MAAM,CAACmM,OAAP,CAAeuD,YAAf,GAA8B1P,MAAM,CAACmM,OAAP,CAAewD,WAAjE,EAA8E7Q,CAAC,IAAI,CAAnF,EAAsF;AACpF,MAAA,IAAI0B,MAAM,CAACwO,cAAP,KAA0B,CAA9B,EAAiC;AAC/BvC,QAAAA,QAAQ,CAACjJ,IAAT,CAAciJ,QAAQ,CAACA,QAAQ,CAAC5T,MAAT,GAAkB,CAAnB,CAAR,GAAgC4L,IAA9C,CAAA,CAAA;AACD,OAAA;;AACDiI,MAAAA,UAAU,CAAClJ,IAAX,CAAgBkJ,UAAU,CAACA,UAAU,CAAC7T,MAAX,GAAoB,CAArB,CAAV,GAAoC4L,IAApD,CAAA,CAAA;MACAzE,MAAM,CAACqN,WAAP,IAAsB5I,IAAtB,CAAA;AACD,KAAA;AACF,GAAA;;EACD,IAAIgI,QAAQ,CAAC5T,MAAT,KAAoB,CAAxB,EAA2B4T,QAAQ,GAAG,CAAC,CAAD,CAAX,CAAA;;AAE3B,EAAA,IAAIjM,MAAM,CAAC0M,YAAP,KAAwB,CAA5B,EAA+B;AAC7B,IAAA,MAAMtU,GAAG,GAAGoH,MAAM,CAACkL,YAAP,EAAA,IAAyBc,GAAzB,GAA+B,YAA/B,GAA8CP,iBAAiB,CAAC,aAAD,CAA3E,CAAA;AACAa,IAAAA,MAAM,CACHpN,MADH,CACU,CAAC2Q,CAAD,EAAIC,UAAJ,KAAmB;MACzB,IAAI,CAACtP,MAAM,CAACmN,OAAR,IAAmBnN,MAAM,CAAC+O,IAA9B,EAAoC,OAAO,IAAP,CAAA;;AACpC,MAAA,IAAIO,UAAU,KAAKxD,MAAM,CAACzT,MAAP,GAAgB,CAAnC,EAAsC;AACpC,QAAA,OAAO,KAAP,CAAA;AACD,OAAA;;AACD,MAAA,OAAO,IAAP,CAAA;AACD,KAPH,CAQGF,CAAAA,OARH,CAQYkJ,OAAD,IAAa;AACpBA,MAAAA,OAAO,CAAChI,KAAR,CAAcjB,GAAd,CAAsB,GAAA,CAAA,EAAEsU,YAAa,CAArC,EAAA,CAAA,CAAA;KATJ,CAAA,CAAA;AAWD,GAAA;;AAED,EAAA,IAAI1M,MAAM,CAACkN,cAAP,IAAyBlN,MAAM,CAACuP,oBAApC,EAA0D;IACxD,IAAIC,aAAa,GAAG,CAApB,CAAA;AACArD,IAAAA,eAAe,CAAChU,OAAhB,CAAyBsX,cAAD,IAAoB;AAC1CD,MAAAA,aAAa,IAAIC,cAAc,IAAIzP,MAAM,CAAC0M,YAAP,GAAsB1M,MAAM,CAAC0M,YAA7B,GAA4C,CAAhD,CAA/B,CAAA;KADF,CAAA,CAAA;IAGA8C,aAAa,IAAIxP,MAAM,CAAC0M,YAAxB,CAAA;AACA,IAAA,MAAMgD,OAAO,GAAGF,aAAa,GAAGlE,UAAhC,CAAA;AACAW,IAAAA,QAAQ,GAAGA,QAAQ,CAACjP,GAAT,CAAc2S,IAAD,IAAU;AAChC,MAAA,IAAIA,IAAI,GAAG,CAAX,EAAc,OAAO,CAACvD,YAAR,CAAA;AACd,MAAA,IAAIuD,IAAI,GAAGD,OAAX,EAAoB,OAAOA,OAAO,GAAGpD,WAAjB,CAAA;AACpB,MAAA,OAAOqD,IAAP,CAAA;AACD,KAJU,CAAX,CAAA;AAKD,GAAA;;EAED,IAAI3P,MAAM,CAAC4P,wBAAX,EAAqC;IACnC,IAAIJ,aAAa,GAAG,CAApB,CAAA;AACArD,IAAAA,eAAe,CAAChU,OAAhB,CAAyBsX,cAAD,IAAoB;AAC1CD,MAAAA,aAAa,IAAIC,cAAc,IAAIzP,MAAM,CAAC0M,YAAP,GAAsB1M,MAAM,CAAC0M,YAA7B,GAA4C,CAAhD,CAA/B,CAAA;KADF,CAAA,CAAA;IAGA8C,aAAa,IAAIxP,MAAM,CAAC0M,YAAxB,CAAA;;IACA,IAAI8C,aAAa,GAAGlE,UAApB,EAAgC;AAC9B,MAAA,MAAMuE,eAAe,GAAG,CAACvE,UAAU,GAAGkE,aAAd,IAA+B,CAAvD,CAAA;AACAvD,MAAAA,QAAQ,CAAC9T,OAAT,CAAiB,CAACwX,IAAD,EAAOG,SAAP,KAAqB;AACpC7D,QAAAA,QAAQ,CAAC6D,SAAD,CAAR,GAAsBH,IAAI,GAAGE,eAA7B,CAAA;OADF,CAAA,CAAA;AAGA3D,MAAAA,UAAU,CAAC/T,OAAX,CAAmB,CAACwX,IAAD,EAAOG,SAAP,KAAqB;AACtC5D,QAAAA,UAAU,CAAC4D,SAAD,CAAV,GAAwBH,IAAI,GAAGE,eAA/B,CAAA;OADF,CAAA,CAAA;AAGD,KAAA;AACF,GAAA;;AAED/X,EAAAA,MAAM,CAACiT,MAAP,CAAcvL,MAAd,EAAsB;IACpBsM,MADoB;IAEpBG,QAFoB;IAGpBC,UAHoB;AAIpBC,IAAAA,eAAAA;GAJF,CAAA,CAAA;;AAOA,EAAA,IAAInM,MAAM,CAACkN,cAAP,IAAyBlN,MAAM,CAACmN,OAAhC,IAA2C,CAACnN,MAAM,CAACuP,oBAAvD,EAA6E;AAC3EpQ,IAAAA,cAAc,CAACe,SAAD,EAAY,iCAAZ,EAAgD,CAAA,EAAE,CAAC+L,QAAQ,CAAC,CAAD,CAAI,CAAA,EAAA,CAA/D,CAAd,CAAA;IACA9M,cAAc,CACZe,SADY,EAEZ,gCAFY,EAGX,CAAEV,EAAAA,MAAM,CAACyE,IAAP,GAAc,CAAd,GAAkBkI,eAAe,CAACA,eAAe,CAAC9T,MAAhB,GAAyB,CAA1B,CAAf,GAA8C,CAAE,CAAA,EAAA,CAHzD,CAAd,CAAA;IAKA,MAAM0X,aAAa,GAAG,CAACvQ,MAAM,CAACyM,QAAP,CAAgB,CAAhB,CAAvB,CAAA;IACA,MAAM+D,eAAe,GAAG,CAACxQ,MAAM,CAAC0M,UAAP,CAAkB,CAAlB,CAAzB,CAAA;AACA1M,IAAAA,MAAM,CAACyM,QAAP,GAAkBzM,MAAM,CAACyM,QAAP,CAAgBjP,GAAhB,CAAqBiT,CAAD,IAAOA,CAAC,GAAGF,aAA/B,CAAlB,CAAA;AACAvQ,IAAAA,MAAM,CAAC0M,UAAP,GAAoB1M,MAAM,CAAC0M,UAAP,CAAkBlP,GAAlB,CAAuBiT,CAAD,IAAOA,CAAC,GAAGD,eAAjC,CAApB,CAAA;AACD,GAAA;;EAED,IAAIhE,YAAY,KAAKH,oBAArB,EAA2C;IACzCrM,MAAM,CAACiH,IAAP,CAAY,oBAAZ,CAAA,CAAA;AACD,GAAA;;AACD,EAAA,IAAIwF,QAAQ,CAAC5T,MAAT,KAAoBmU,sBAAxB,EAAgD;IAC9C,IAAIhN,MAAM,CAACQ,MAAP,CAAckQ,aAAlB,EAAiC1Q,MAAM,CAAC2Q,aAAP,EAAA,CAAA;IACjC3Q,MAAM,CAACiH,IAAP,CAAY,sBAAZ,CAAA,CAAA;AACD,GAAA;;AACD,EAAA,IAAIyF,UAAU,CAAC7T,MAAX,KAAsBoU,wBAA1B,EAAoD;IAClDjN,MAAM,CAACiH,IAAP,CAAY,wBAAZ,CAAA,CAAA;AACD,GAAA;;EAED,IAAIzG,MAAM,CAACoQ,mBAAX,EAAgC;AAC9B5Q,IAAAA,MAAM,CAAC6Q,kBAAP,EAAA,CAAA;AACD,GAAA;;EAED,IAAI,CAAC3E,SAAD,IAAc,CAAC1L,MAAM,CAACmN,OAAtB,KAAkCnN,MAAM,CAAC0O,MAAP,KAAkB,OAAlB,IAA6B1O,MAAM,CAAC0O,MAAP,KAAkB,MAAjF,CAAJ,EAA8F;AAC5F,IAAA,MAAM4B,mBAAmB,GAAI,CAAA,EAAEtQ,MAAM,CAACuQ,sBAAuB,CAA7D,eAAA,CAAA,CAAA;IACA,MAAMC,0BAA0B,GAAGhR,MAAM,CAACpD,EAAP,CAAUyF,SAAV,CAAoB4O,QAApB,CAA6BH,mBAA7B,CAAnC,CAAA;;AACA,IAAA,IAAItE,YAAY,IAAIhM,MAAM,CAAC0Q,uBAA3B,EAAoD;MAClD,IAAI,CAACF,0BAAL,EAAiChR,MAAM,CAACpD,EAAP,CAAUyF,SAAV,CAAoBC,GAApB,CAAwBwO,mBAAxB,CAAA,CAAA;KADnC,MAEO,IAAIE,0BAAJ,EAAgC;AACrChR,MAAAA,MAAM,CAACpD,EAAP,CAAUyF,SAAV,CAAoB8O,MAApB,CAA2BL,mBAA3B,CAAA,CAAA;AACD,KAAA;AACF,GAAA;AACF;;AChVc,SAASM,gBAAT,CAA0B3Q,KAA1B,EAAiC;EAC9C,MAAMT,MAAM,GAAG,IAAf,CAAA;EACA,MAAMqR,YAAY,GAAG,EAArB,CAAA;AACA,EAAA,MAAMnF,SAAS,GAAGlM,MAAM,CAACmM,OAAP,IAAkBnM,MAAM,CAACQ,MAAP,CAAc2L,OAAd,CAAsBC,OAA1D,CAAA;EACA,IAAIzE,SAAS,GAAG,CAAhB,CAAA;AACA,EAAA,IAAI7I,CAAJ,CAAA;;AACA,EAAA,IAAI,OAAO2B,KAAP,KAAiB,QAArB,EAA+B;IAC7BT,MAAM,CAACsR,aAAP,CAAqB7Q,KAArB,CAAA,CAAA;AACD,GAFD,MAEO,IAAIA,KAAK,KAAK,IAAd,EAAoB;AACzBT,IAAAA,MAAM,CAACsR,aAAP,CAAqBtR,MAAM,CAACQ,MAAP,CAAcC,KAAnC,CAAA,CAAA;AACD,GAAA;;EAED,MAAM8Q,eAAe,GAAI9G,KAAD,IAAW;AACjC,IAAA,IAAIyB,SAAJ,EAAe;MACb,OAAOlM,MAAM,CAACsM,MAAP,CAAcpN,MAAd,CACJtC,EAAD,IAAQwO,QAAQ,CAACxO,EAAE,CAAC4U,YAAH,CAAgB,yBAAhB,CAAD,EAA6C,EAA7C,CAAR,KAA6D/G,KADhE,CAEL,CAAA,CAFK,CAAP,CAAA;AAGD,KAAA;;AACD,IAAA,OAAOzK,MAAM,CAACsM,MAAP,CAAc7B,KAAd,CAAP,CAAA;AACD,GAPD,CAZ8C;;;AAqB9C,EAAA,IAAIzK,MAAM,CAACQ,MAAP,CAAc0N,aAAd,KAAgC,MAAhC,IAA0ClO,MAAM,CAACQ,MAAP,CAAc0N,aAAd,GAA8B,CAA5E,EAA+E;AAC7E,IAAA,IAAIlO,MAAM,CAACQ,MAAP,CAAckN,cAAlB,EAAkC;MAChC,CAAC1N,MAAM,CAACyR,aAAP,IAAwB,EAAzB,EAA6B9Y,OAA7B,CAAsCyV,KAAD,IAAW;QAC9CiD,YAAY,CAAC7N,IAAb,CAAkB4K,KAAlB,CAAA,CAAA;OADF,CAAA,CAAA;AAGD,KAJD,MAIO;MACL,KAAKtP,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGqC,IAAI,CAACsO,IAAL,CAAUzP,MAAM,CAACQ,MAAP,CAAc0N,aAAxB,CAAhB,EAAwDpP,CAAC,IAAI,CAA7D,EAAgE;AAC9D,QAAA,MAAM2L,KAAK,GAAGzK,MAAM,CAAC0R,WAAP,GAAqB5S,CAAnC,CAAA;QACA,IAAI2L,KAAK,GAAGzK,MAAM,CAACsM,MAAP,CAAczT,MAAtB,IAAgC,CAACqT,SAArC,EAAgD,MAAA;AAChDmF,QAAAA,YAAY,CAAC7N,IAAb,CAAkB+N,eAAe,CAAC9G,KAAD,CAAjC,CAAA,CAAA;AACD,OAAA;AACF,KAAA;AACF,GAZD,MAYO;IACL4G,YAAY,CAAC7N,IAAb,CAAkB+N,eAAe,CAACvR,MAAM,CAAC0R,WAAR,CAAjC,CAAA,CAAA;AACD,GAnC6C;;;AAsC9C,EAAA,KAAK5S,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGuS,YAAY,CAACxY,MAA7B,EAAqCiG,CAAC,IAAI,CAA1C,EAA6C;AAC3C,IAAA,IAAI,OAAOuS,YAAY,CAACvS,CAAD,CAAnB,KAA2B,WAA/B,EAA4C;AAC1C,MAAA,MAAM+G,MAAM,GAAGwL,YAAY,CAACvS,CAAD,CAAZ,CAAgB6S,YAA/B,CAAA;AACAhK,MAAAA,SAAS,GAAG9B,MAAM,GAAG8B,SAAT,GAAqB9B,MAArB,GAA8B8B,SAA1C,CAAA;AACD,KAAA;AACF,GA3C6C;;;AA8C9C,EAAA,IAAIA,SAAS,IAAIA,SAAS,KAAK,CAA/B,EAAkC3H,MAAM,CAACU,SAAP,CAAiB7G,KAAjB,CAAuBgM,MAAvB,GAAiC,CAAA,EAAE8B,SAAU,CAA7C,EAAA,CAAA,CAAA;AACnC;;AC/Cc,SAASkJ,kBAAT,GAA8B;EAC3C,MAAM7Q,MAAM,GAAG,IAAf,CAAA;AACA,EAAA,MAAMsM,MAAM,GAAGtM,MAAM,CAACsM,MAAtB,CAAA;;AACA,EAAA,KAAK,IAAIxN,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwN,MAAM,CAACzT,MAA3B,EAAmCiG,CAAC,IAAI,CAAxC,EAA2C;IACzCwN,MAAM,CAACxN,CAAD,CAAN,CAAU8S,iBAAV,GAA8B5R,MAAM,CAACkL,YAAP,EAC1BoB,GAAAA,MAAM,CAACxN,CAAD,CAAN,CAAU+S,UADgB,GAE1BvF,MAAM,CAACxN,CAAD,CAAN,CAAUgT,SAFd,CAAA;AAGD,GAAA;AACF;;ACRc,SAASC,oBAAT,CAA8B3R,SAA9B,EAAyE;AAAA,EAAA,IAA3CA,SAA2C,KAAA,KAAA,CAAA,EAAA;AAA3CA,IAAAA,SAA2C,GAA9B,IAAA,IAAQ,IAAKA,CAAAA,SAAd,IAA4B,CAAG,CAAA;AAAA,GAAA;;EACtF,MAAMJ,MAAM,GAAG,IAAf,CAAA;AACA,EAAA,MAAMQ,MAAM,GAAGR,MAAM,CAACQ,MAAtB,CAAA;EAEA,MAAM;IAAE8L,MAAF;AAAUP,IAAAA,YAAY,EAAEC,GAAxB;AAA6BS,IAAAA,QAAAA;AAA7B,GAAA,GAA0CzM,MAAhD,CAAA;AAEA,EAAA,IAAIsM,MAAM,CAACzT,MAAP,KAAkB,CAAtB,EAAyB,OAAA;AACzB,EAAA,IAAI,OAAOyT,MAAM,CAAC,CAAD,CAAN,CAAUsF,iBAAjB,KAAuC,WAA3C,EAAwD5R,MAAM,CAAC6Q,kBAAP,EAAA,CAAA;EAExD,IAAImB,YAAY,GAAG,CAAC5R,SAApB,CAAA;AACA,EAAA,IAAI4L,GAAJ,EAASgG,YAAY,GAAG5R,SAAf,CAV6E;;AAatFkM,EAAAA,MAAM,CAAC3T,OAAP,CAAgBkJ,OAAD,IAAa;AAC1BA,IAAAA,OAAO,CAACQ,SAAR,CAAkB8O,MAAlB,CAAyB3Q,MAAM,CAACyR,iBAAhC,CAAA,CAAA;GADF,CAAA,CAAA;EAIAjS,MAAM,CAACkS,oBAAP,GAA8B,EAA9B,CAAA;EACAlS,MAAM,CAACyR,aAAP,GAAuB,EAAvB,CAAA;;AAEA,EAAA,KAAK,IAAI3S,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwN,MAAM,CAACzT,MAA3B,EAAmCiG,CAAC,IAAI,CAAxC,EAA2C;AACzC,IAAA,MAAMsP,KAAK,GAAG9B,MAAM,CAACxN,CAAD,CAApB,CAAA;AACA,IAAA,IAAIqT,WAAW,GAAG/D,KAAK,CAACwD,iBAAxB,CAAA;;AACA,IAAA,IAAIpR,MAAM,CAACmN,OAAP,IAAkBnN,MAAM,CAACkN,cAA7B,EAA6C;AAC3CyE,MAAAA,WAAW,IAAI7F,MAAM,CAAC,CAAD,CAAN,CAAUsF,iBAAzB,CAAA;AACD,KAAA;;IAED,MAAMQ,aAAa,GACjB,CAACJ,YAAY,IAAIxR,MAAM,CAACkN,cAAP,GAAwB1N,MAAM,CAACqS,YAAP,EAAxB,GAAgD,CAApD,CAAZ,GAAqEF,WAAtE,KACC/D,KAAK,CAACU,eAAN,GAAwBtO,MAAM,CAAC0M,YADhC,CADF,CAAA;AAGA,IAAA,MAAMoF,qBAAqB,GACzB,CAACN,YAAY,GACXvF,QAAQ,CAAC,CAAD,CADT,IAEEjM,MAAM,CAACkN,cAAP,GAAwB1N,MAAM,CAACqS,YAAP,EAAxB,GAAgD,CAFlD,CAAA,GAGCF,WAHF,KAIC/D,KAAK,CAACU,eAAN,GAAwBtO,MAAM,CAAC0M,YAJhC,CADF,CAAA;AAMA,IAAA,MAAMqF,WAAW,GAAG,EAAEP,YAAY,GAAGG,WAAjB,CAApB,CAAA;IACA,MAAMK,UAAU,GAAGD,WAAW,GAAGvS,MAAM,CAAC2M,eAAP,CAAuB7N,CAAvB,CAAjC,CAAA;AACA,IAAA,MAAM2T,SAAS,GACZF,WAAW,IAAI,CAAf,IAAoBA,WAAW,GAAGvS,MAAM,CAACyE,IAAP,GAAc,CAAjD,IACC+N,UAAU,GAAG,CAAb,IAAkBA,UAAU,IAAIxS,MAAM,CAACyE,IADxC,IAEC8N,WAAW,IAAI,CAAf,IAAoBC,UAAU,IAAIxS,MAAM,CAACyE,IAH5C,CAAA;;AAIA,IAAA,IAAIgO,SAAJ,EAAe;AACbzS,MAAAA,MAAM,CAACyR,aAAP,CAAqBjO,IAArB,CAA0B4K,KAA1B,CAAA,CAAA;AACApO,MAAAA,MAAM,CAACkS,oBAAP,CAA4B1O,IAA5B,CAAiC1E,CAAjC,CAAA,CAAA;MACAwN,MAAM,CAACxN,CAAD,CAAN,CAAUuD,SAAV,CAAoBC,GAApB,CAAwB9B,MAAM,CAACyR,iBAA/B,CAAA,CAAA;AACD,KAAA;;IACD7D,KAAK,CAAClN,QAAN,GAAiB8K,GAAG,GAAG,CAACoG,aAAJ,GAAoBA,aAAxC,CAAA;IACAhE,KAAK,CAACsE,gBAAN,GAAyB1G,GAAG,GAAG,CAACsG,qBAAJ,GAA4BA,qBAAxD,CAAA;AACD,GAAA;AACF;;AChDc,SAASK,cAAT,CAAwBvS,SAAxB,EAAmC;EAChD,MAAMJ,MAAM,GAAG,IAAf,CAAA;;AACA,EAAA,IAAI,OAAOI,SAAP,KAAqB,WAAzB,EAAsC;IACpC,MAAMwS,UAAU,GAAG5S,MAAM,CAAC+L,YAAP,GAAsB,CAAC,CAAvB,GAA2B,CAA9C,CADoC;;AAGpC3L,IAAAA,SAAS,GAAIJ,MAAM,IAAIA,MAAM,CAACI,SAAjB,IAA8BJ,MAAM,CAACI,SAAP,GAAmBwS,UAAlD,IAAiE,CAA7E,CAAA;AACD,GAAA;;AACD,EAAA,MAAMpS,MAAM,GAAGR,MAAM,CAACQ,MAAtB,CAAA;EACA,MAAMqS,cAAc,GAAG7S,MAAM,CAAC8S,YAAP,EAAwB9S,GAAAA,MAAM,CAACqS,YAAP,EAA/C,CAAA;EACA,IAAI;IAAEnR,QAAF;IAAY6R,WAAZ;IAAyBC,KAAzB;AAAgCC,IAAAA,YAAAA;AAAhC,GAAA,GAAiDjT,MAArD,CAAA;EACA,MAAMkT,YAAY,GAAGH,WAArB,CAAA;EACA,MAAMI,MAAM,GAAGH,KAAf,CAAA;;EACA,IAAIH,cAAc,KAAK,CAAvB,EAA0B;AACxB3R,IAAAA,QAAQ,GAAG,CAAX,CAAA;AACA6R,IAAAA,WAAW,GAAG,IAAd,CAAA;AACAC,IAAAA,KAAK,GAAG,IAAR,CAAA;AACD,GAJD,MAIO;IACL9R,QAAQ,GAAG,CAACd,SAAS,GAAGJ,MAAM,CAACqS,YAAP,EAAb,IAAsCQ,cAAjD,CAAA;IACAE,WAAW,GAAG7R,QAAQ,IAAI,CAA1B,CAAA;IACA8R,KAAK,GAAG9R,QAAQ,IAAI,CAApB,CAAA;AACD,GAAA;;EAED,IAAIV,MAAM,CAAC+O,IAAX,EAAiB;IACf,MAAM6D,eAAe,GAAGrP,YAAY,CAClC/D,MAAM,CAACsM,MAAP,CAAcpN,MAAd,CAAsBtC,EAAD,IAAQA,EAAE,CAAC4U,YAAH,CAAgB,yBAAhB,MAA+C,GAA5E,CAAA,CAAiF,CAAjF,CADkC,CAApC,CAAA;AAGA,IAAA,MAAM6B,cAAc,GAAGtP,YAAY,CACjC/D,MAAM,CAACsM,MAAP,CAAcpN,MAAd,CACGtC,EAAD,IAAQA,EAAE,CAAC4U,YAAH,CAAgB,yBAAhB,CAA6C,GAAA,CAA7C,KAAmDxR,MAAM,CAACsM,MAAP,CAAczT,MAAd,GAAuB,CADpF,CAEE,CAAA,CAFF,CADiC,CAAnC,CAAA;AAKA,IAAA,MAAMya,mBAAmB,GAAGtT,MAAM,CAAC0M,UAAP,CAAkB0G,eAAlB,CAA5B,CAAA;AACA,IAAA,MAAMG,kBAAkB,GAAGvT,MAAM,CAAC0M,UAAP,CAAkB2G,cAAlB,CAA3B,CAAA;AACA,IAAA,MAAMG,YAAY,GAAGxT,MAAM,CAAC0M,UAAP,CAAkB1M,MAAM,CAAC0M,UAAP,CAAkB7T,MAAlB,GAA2B,CAA7C,CAArB,CAAA;AACA,IAAA,MAAM4a,YAAY,GAAGtS,IAAI,CAAC4N,GAAL,CAAS3O,SAAT,CAArB,CAAA;;IACA,IAAIqT,YAAY,IAAIH,mBAApB,EAAyC;AACvCL,MAAAA,YAAY,GAAG,CAACQ,YAAY,GAAGH,mBAAhB,IAAuCE,YAAtD,CAAA;AACD,KAFD,MAEO;MACLP,YAAY,GAAG,CAACQ,YAAY,GAAGD,YAAf,GAA8BD,kBAA/B,IAAqDC,YAApE,CAAA;AACD,KAAA;;AACD,IAAA,IAAIP,YAAY,GAAG,CAAnB,EAAsBA,YAAY,IAAI,CAAhB,CAAA;AACvB,GAAA;;AAED3a,EAAAA,MAAM,CAACiT,MAAP,CAAcvL,MAAd,EAAsB;IACpBkB,QADoB;IAEpB+R,YAFoB;IAGpBF,WAHoB;AAIpBC,IAAAA,KAAAA;GAJF,CAAA,CAAA;AAOA,EAAA,IAAIxS,MAAM,CAACoQ,mBAAP,IAA+BpQ,MAAM,CAACkN,cAAP,IAAyBlN,MAAM,CAACkT,UAAnE,EACE1T,MAAM,CAAC+R,oBAAP,CAA4B3R,SAA5B,CAAA,CAAA;;AAEF,EAAA,IAAI2S,WAAW,IAAI,CAACG,YAApB,EAAkC;IAChClT,MAAM,CAACiH,IAAP,CAAY,uBAAZ,CAAA,CAAA;AACD,GAAA;;AACD,EAAA,IAAI+L,KAAK,IAAI,CAACG,MAAd,EAAsB;IACpBnT,MAAM,CAACiH,IAAP,CAAY,iBAAZ,CAAA,CAAA;AACD,GAAA;;EACD,IAAKiM,YAAY,IAAI,CAACH,WAAlB,IAAmCI,MAAM,IAAI,CAACH,KAAlD,EAA0D;IACxDhT,MAAM,CAACiH,IAAP,CAAY,UAAZ,CAAA,CAAA;AACD,GAAA;;AAEDjH,EAAAA,MAAM,CAACiH,IAAP,CAAY,UAAZ,EAAwB/F,QAAxB,CAAA,CAAA;AACD;;AChEc,SAASyS,mBAAT,GAA+B;EAC5C,MAAM3T,MAAM,GAAG,IAAf,CAAA;EAEA,MAAM;IAAEsM,MAAF;IAAU9L,MAAV;IAAkBqL,QAAlB;AAA4B6F,IAAAA,WAAAA;AAA5B,GAAA,GAA4C1R,MAAlD,CAAA;EACA,MAAMkM,SAAS,GAAGlM,MAAM,CAACmM,OAAP,IAAkB3L,MAAM,CAAC2L,OAAP,CAAeC,OAAnD,CAAA;;EAEA,MAAMwH,gBAAgB,GAAI3R,QAAD,IAAc;AACrC,IAAA,OAAOF,eAAe,CACpB8J,QADoB,EAEnB,CAAA,CAAA,EAAGrL,MAAM,CAAC+L,UAAW,CAAEtK,EAAAA,QAAS,iBAAgBA,QAAS,CAAA,CAFtC,CAAf,CAGL,CAHK,CAAP,CAAA;GADF,CAAA;;AAMAqK,EAAAA,MAAM,CAAC3T,OAAP,CAAgBkJ,OAAD,IAAa;AAC1BA,IAAAA,OAAO,CAACQ,SAAR,CAAkB8O,MAAlB,CAAyB3Q,MAAM,CAACqT,gBAAhC,EAAkDrT,MAAM,CAACsT,cAAzD,EAAyEtT,MAAM,CAACuT,cAAhF,CAAA,CAAA;GADF,CAAA,CAAA;AAIA,EAAA,IAAIC,WAAJ,CAAA;;AACA,EAAA,IAAI9H,SAAJ,EAAe;IACb,IAAI1L,MAAM,CAAC+O,IAAX,EAAiB;MACf,IAAIO,UAAU,GAAG4B,WAAW,GAAG1R,MAAM,CAACmM,OAAP,CAAeuD,YAA9C,CAAA;AACA,MAAA,IAAII,UAAU,GAAG,CAAjB,EAAoBA,UAAU,GAAG9P,MAAM,CAACmM,OAAP,CAAeG,MAAf,CAAsBzT,MAAtB,GAA+BiX,UAA5C,CAAA;AACpB,MAAA,IAAIA,UAAU,IAAI9P,MAAM,CAACmM,OAAP,CAAeG,MAAf,CAAsBzT,MAAxC,EAAgDiX,UAAU,IAAI9P,MAAM,CAACmM,OAAP,CAAeG,MAAf,CAAsBzT,MAApC,CAAA;AAChDmb,MAAAA,WAAW,GAAGJ,gBAAgB,CAAE,CAA4B9D,0BAAAA,EAAAA,UAAW,IAAzC,CAA9B,CAAA;AACD,KALD,MAKO;AACLkE,MAAAA,WAAW,GAAGJ,gBAAgB,CAAE,CAA4BlC,0BAAAA,EAAAA,WAAY,IAA1C,CAA9B,CAAA;AACD,KAAA;AACF,GATD,MASO;AACLsC,IAAAA,WAAW,GAAG1H,MAAM,CAACoF,WAAD,CAApB,CAAA;AACD,GAAA;;AAED,EAAA,IAAIsC,WAAJ,EAAiB;AACf;IACAA,WAAW,CAAC3R,SAAZ,CAAsBC,GAAtB,CAA0B9B,MAAM,CAACqT,gBAAjC,CAAA,CAFe;;AAKf,IAAA,IAAII,SAAS,GAAGxQ,cAAc,CAACuQ,WAAD,EAAe,CAAA,CAAA,EAAGxT,MAAM,CAAC+L,UAAW,CAAA,cAAA,CAApC,CAAd,CAAmE,CAAnE,CAAhB,CAAA;;AACA,IAAA,IAAI/L,MAAM,CAAC+O,IAAP,IAAe,CAAC0E,SAApB,EAA+B;AAC7BA,MAAAA,SAAS,GAAG3H,MAAM,CAAC,CAAD,CAAlB,CAAA;AACD,KAAA;;AACD,IAAA,IAAI2H,SAAJ,EAAe;AACbA,MAAAA,SAAS,CAAC5R,SAAV,CAAoBC,GAApB,CAAwB9B,MAAM,CAACsT,cAA/B,CAAA,CAAA;AACD,KAXc;;;AAaf,IAAA,IAAII,SAAS,GAAG9Q,cAAc,CAAC4Q,WAAD,EAAe,CAAA,CAAA,EAAGxT,MAAM,CAAC+L,UAAW,CAAA,cAAA,CAApC,CAAd,CAAmE,CAAnE,CAAhB,CAAA;;IACA,IAAI/L,MAAM,CAAC+O,IAAP,IAAe,CAAC2E,SAAD,KAAe,CAAlC,EAAqC;MACnCA,SAAS,GAAG5H,MAAM,CAACA,MAAM,CAACzT,MAAP,GAAgB,CAAjB,CAAlB,CAAA;AACD,KAAA;;AACD,IAAA,IAAIqb,SAAJ,EAAe;AACbA,MAAAA,SAAS,CAAC7R,SAAV,CAAoBC,GAApB,CAAwB9B,MAAM,CAACuT,cAA/B,CAAA,CAAA;AACD,KAAA;AACF,GAAA;;AAED/T,EAAAA,MAAM,CAACmU,iBAAP,EAAA,CAAA;AACD;;ACvDM,SAASC,yBAAT,CAAmCpU,MAAnC,EAA2C;EAChD,MAAM;IAAE0M,UAAF;AAAclM,IAAAA,MAAAA;AAAd,GAAA,GAAyBR,MAA/B,CAAA;AACA,EAAA,MAAMI,SAAS,GAAGJ,MAAM,CAAC+L,YAAP,GAAsB/L,MAAM,CAACI,SAA7B,GAAyC,CAACJ,MAAM,CAACI,SAAnE,CAAA;AACA,EAAA,IAAIsR,WAAJ,CAAA;;AACA,EAAA,KAAK,IAAI5S,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4N,UAAU,CAAC7T,MAA/B,EAAuCiG,CAAC,IAAI,CAA5C,EAA+C;IAC7C,IAAI,OAAO4N,UAAU,CAAC5N,CAAC,GAAG,CAAL,CAAjB,KAA6B,WAAjC,EAA8C;AAC5C,MAAA,IACEsB,SAAS,IAAIsM,UAAU,CAAC5N,CAAD,CAAvB,IACAsB,SAAS,GAAGsM,UAAU,CAAC5N,CAAC,GAAG,CAAL,CAAV,GAAoB,CAAC4N,UAAU,CAAC5N,CAAC,GAAG,CAAL,CAAV,GAAoB4N,UAAU,CAAC5N,CAAD,CAA/B,IAAsC,CAFxE,EAGE;AACA4S,QAAAA,WAAW,GAAG5S,CAAd,CAAA;AACD,OALD,MAKO,IAAIsB,SAAS,IAAIsM,UAAU,CAAC5N,CAAD,CAAvB,IAA8BsB,SAAS,GAAGsM,UAAU,CAAC5N,CAAC,GAAG,CAAL,CAAxD,EAAiE;QACtE4S,WAAW,GAAG5S,CAAC,GAAG,CAAlB,CAAA;AACD,OAAA;KARH,MASO,IAAIsB,SAAS,IAAIsM,UAAU,CAAC5N,CAAD,CAA3B,EAAgC;AACrC4S,MAAAA,WAAW,GAAG5S,CAAd,CAAA;AACD,KAAA;AACF,GAjB+C;;;EAmBhD,IAAI0B,MAAM,CAAC6T,mBAAX,EAAgC;IAC9B,IAAI3C,WAAW,GAAG,CAAd,IAAmB,OAAOA,WAAP,KAAuB,WAA9C,EAA2DA,WAAW,GAAG,CAAd,CAAA;AAC5D,GAAA;;AACD,EAAA,OAAOA,WAAP,CAAA;AACD,CAAA;AACc,SAAS4C,iBAAT,CAA2BC,cAA3B,EAA2C;EACxD,MAAMvU,MAAM,GAAG,IAAf,CAAA;AACA,EAAA,MAAMI,SAAS,GAAGJ,MAAM,CAAC+L,YAAP,GAAsB/L,MAAM,CAACI,SAA7B,GAAyC,CAACJ,MAAM,CAACI,SAAnE,CAAA;EACA,MAAM;IACJqM,QADI;IAEJjM,MAFI;AAGJkR,IAAAA,WAAW,EAAE8C,aAHT;AAIJC,IAAAA,SAAS,EAAEC,iBAJP;AAKJpE,IAAAA,SAAS,EAAEqE,iBAAAA;AALP,GAAA,GAMF3U,MANJ,CAAA;EAOA,IAAI0R,WAAW,GAAG6C,cAAlB,CAAA;AACA,EAAA,IAAIjE,SAAJ,CAAA;;EAEA,MAAMsE,mBAAmB,GAAIC,MAAD,IAAY;IACtC,IAAIJ,SAAS,GAAGI,MAAM,GAAG7U,MAAM,CAACmM,OAAP,CAAeuD,YAAxC,CAAA;;IACA,IAAI+E,SAAS,GAAG,CAAhB,EAAmB;MACjBA,SAAS,GAAGzU,MAAM,CAACmM,OAAP,CAAeG,MAAf,CAAsBzT,MAAtB,GAA+B4b,SAA3C,CAAA;AACD,KAAA;;IACD,IAAIA,SAAS,IAAIzU,MAAM,CAACmM,OAAP,CAAeG,MAAf,CAAsBzT,MAAvC,EAA+C;AAC7C4b,MAAAA,SAAS,IAAIzU,MAAM,CAACmM,OAAP,CAAeG,MAAf,CAAsBzT,MAAnC,CAAA;AACD,KAAA;;AACD,IAAA,OAAO4b,SAAP,CAAA;GARF,CAAA;;AAUA,EAAA,IAAI,OAAO/C,WAAP,KAAuB,WAA3B,EAAwC;AACtCA,IAAAA,WAAW,GAAG0C,yBAAyB,CAACpU,MAAD,CAAvC,CAAA;AACD,GAAA;;AACD,EAAA,IAAIyM,QAAQ,CAACtN,OAAT,CAAiBiB,SAAjB,CAAA,IAA+B,CAAnC,EAAsC;AACpCkQ,IAAAA,SAAS,GAAG7D,QAAQ,CAACtN,OAAT,CAAiBiB,SAAjB,CAAZ,CAAA;AACD,GAFD,MAEO;IACL,MAAM0U,IAAI,GAAG3T,IAAI,CAACE,GAAL,CAASb,MAAM,CAACyO,kBAAhB,EAAoCyC,WAApC,CAAb,CAAA;AACApB,IAAAA,SAAS,GAAGwE,IAAI,GAAG3T,IAAI,CAAC0N,KAAL,CAAW,CAAC6C,WAAW,GAAGoD,IAAf,IAAuBtU,MAAM,CAACwO,cAAzC,CAAnB,CAAA;AACD,GAAA;;AACD,EAAA,IAAIsB,SAAS,IAAI7D,QAAQ,CAAC5T,MAA1B,EAAkCyX,SAAS,GAAG7D,QAAQ,CAAC5T,MAAT,GAAkB,CAA9B,CAAA;;EAClC,IAAI6Y,WAAW,KAAK8C,aAApB,EAAmC;IACjC,IAAIlE,SAAS,KAAKqE,iBAAlB,EAAqC;MACnC3U,MAAM,CAACsQ,SAAP,GAAmBA,SAAnB,CAAA;MACAtQ,MAAM,CAACiH,IAAP,CAAY,iBAAZ,CAAA,CAAA;AACD,KAAA;;AACD,IAAA,IAAIjH,MAAM,CAACQ,MAAP,CAAc+O,IAAd,IAAsBvP,MAAM,CAACmM,OAA7B,IAAwCnM,MAAM,CAACQ,MAAP,CAAc2L,OAAd,CAAsBC,OAAlE,EAA2E;AACzEpM,MAAAA,MAAM,CAACyU,SAAP,GAAmBG,mBAAmB,CAAClD,WAAD,CAAtC,CAAA;AACD,KAAA;;AACD,IAAA,OAAA;AACD,GA1CuD;;;AA4CxD,EAAA,IAAI+C,SAAJ,CAAA;;AACA,EAAA,IAAIzU,MAAM,CAACmM,OAAP,IAAkB3L,MAAM,CAAC2L,OAAP,CAAeC,OAAjC,IAA4C5L,MAAM,CAAC+O,IAAvD,EAA6D;AAC3DkF,IAAAA,SAAS,GAAGG,mBAAmB,CAAClD,WAAD,CAA/B,CAAA;GADF,MAEO,IAAI1R,MAAM,CAACsM,MAAP,CAAcoF,WAAd,CAAJ,EAAgC;AACrC+C,IAAAA,SAAS,GAAGrJ,QAAQ,CAClBpL,MAAM,CAACsM,MAAP,CAAcoF,WAAd,CAA2BF,CAAAA,YAA3B,CAAwC,yBAAxC,CAAA,IAAsEE,WADpD,EAElB,EAFkB,CAApB,CAAA;AAID,GALM,MAKA;AACL+C,IAAAA,SAAS,GAAG/C,WAAZ,CAAA;AACD,GAAA;;AAEDpZ,EAAAA,MAAM,CAACiT,MAAP,CAAcvL,MAAd,EAAsB;IACpBsQ,SADoB;IAEpBmE,SAFoB;IAGpBD,aAHoB;AAIpB9C,IAAAA,WAAAA;GAJF,CAAA,CAAA;EAMA1R,MAAM,CAACiH,IAAP,CAAY,mBAAZ,CAAA,CAAA;EACAjH,MAAM,CAACiH,IAAP,CAAY,iBAAZ,CAAA,CAAA;;EACA,IAAIyN,iBAAiB,KAAKD,SAA1B,EAAqC;IACnCzU,MAAM,CAACiH,IAAP,CAAY,iBAAZ,CAAA,CAAA;AACD,GAAA;;EACD,IAAIjH,MAAM,CAACsH,WAAP,IAAsBtH,MAAM,CAACQ,MAAP,CAAcuU,kBAAxC,EAA4D;IAC1D/U,MAAM,CAACiH,IAAP,CAAY,aAAZ,CAAA,CAAA;AACD,GAAA;AACF;;AC9Fc,SAAS+N,kBAAT,CAA4BxY,CAA5B,EAA+B;EAC5C,MAAMwD,MAAM,GAAG,IAAf,CAAA;AACA,EAAA,MAAMQ,MAAM,GAAGR,MAAM,CAACQ,MAAtB,CAAA;EACA,MAAM4N,KAAK,GAAG5R,CAAC,CAACyY,OAAF,CAAW,CAAA,CAAA,EAAGzU,MAAM,CAAC+L,UAAW,CAAA,cAAA,CAAhC,CAAd,CAAA;EACA,IAAI2I,UAAU,GAAG,KAAjB,CAAA;AACA,EAAA,IAAIpF,UAAJ,CAAA;;AAEA,EAAA,IAAI1B,KAAJ,EAAW;AACT,IAAA,KAAK,IAAItP,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGkB,MAAM,CAACsM,MAAP,CAAczT,MAAlC,EAA0CiG,CAAC,IAAI,CAA/C,EAAkD;AAChD,MAAA,IAAIkB,MAAM,CAACsM,MAAP,CAAcxN,CAAd,CAAA,KAAqBsP,KAAzB,EAAgC;AAC9B8G,QAAAA,UAAU,GAAG,IAAb,CAAA;AACApF,QAAAA,UAAU,GAAGhR,CAAb,CAAA;AACA,QAAA,MAAA;AACD,OAAA;AACF,KAAA;AACF,GAAA;;EAED,IAAIsP,KAAK,IAAI8G,UAAb,EAAyB;IACvBlV,MAAM,CAACmV,YAAP,GAAsB/G,KAAtB,CAAA;;IACA,IAAIpO,MAAM,CAACmM,OAAP,IAAkBnM,MAAM,CAACQ,MAAP,CAAc2L,OAAd,CAAsBC,OAA5C,EAAqD;AACnDpM,MAAAA,MAAM,CAACoV,YAAP,GAAsBhK,QAAQ,CAACgD,KAAK,CAACoD,YAAN,CAAmB,yBAAnB,CAAD,EAAgD,EAAhD,CAA9B,CAAA;AACD,KAFD,MAEO;MACLxR,MAAM,CAACoV,YAAP,GAAsBtF,UAAtB,CAAA;AACD,KAAA;AACF,GAPD,MAOO;IACL9P,MAAM,CAACmV,YAAP,GAAsBnW,SAAtB,CAAA;IACAgB,MAAM,CAACoV,YAAP,GAAsBpW,SAAtB,CAAA;AACA,IAAA,OAAA;AACD,GAAA;;AACD,EAAA,IACEwB,MAAM,CAAC6U,mBAAP,IACArV,MAAM,CAACoV,YAAP,KAAwBpW,SADxB,IAEAgB,MAAM,CAACoV,YAAP,KAAwBpV,MAAM,CAAC0R,WAHjC,EAIE;AACA1R,IAAAA,MAAM,CAACqV,mBAAP,EAAA,CAAA;AACD,GAAA;AACF;;AC1BD,aAAe;EACbtK,UADa;EAEbS,YAFa;EAGb4F,gBAHa;EAIbP,kBAJa;EAKbkB,oBALa;EAMbY,cANa;EAObgB,mBAPa;EAQbW,iBARa;AASbU,EAAAA,kBAAAA;AATa,CAAf;;ACRe,SAASM,kBAAT,CAA4BvY,IAA5B,EAAoE;AAAA,EAAA,IAAxCA,IAAwC,KAAA,KAAA,CAAA,EAAA;AAAxCA,IAAAA,IAAwC,GAAjC,IAAKmO,CAAAA,YAAL,EAAsB,GAAA,GAAtB,GAA4B,GAAK,CAAA;AAAA,GAAA;;EACjF,MAAMlL,MAAM,GAAG,IAAf,CAAA;EAEA,MAAM;IAAEQ,MAAF;AAAUuL,IAAAA,YAAY,EAAEC,GAAxB;IAA6B5L,SAA7B;AAAwCM,IAAAA,SAAAA;AAAxC,GAAA,GAAsDV,MAA5D,CAAA;;EAEA,IAAIQ,MAAM,CAAC+U,gBAAX,EAA6B;AAC3B,IAAA,OAAOvJ,GAAG,GAAG,CAAC5L,SAAJ,GAAgBA,SAA1B,CAAA;AACD,GAAA;;EACD,IAAII,MAAM,CAACmN,OAAX,EAAoB;AAClB,IAAA,OAAOvN,SAAP,CAAA;AACD,GAAA;;AAED,EAAA,IAAIoV,gBAAgB,GAAG1Y,YAAY,CAAC4D,SAAD,EAAY3D,IAAZ,CAAnC,CAAA;AACA,EAAA,IAAIiP,GAAJ,EAASwJ,gBAAgB,GAAG,CAACA,gBAApB,CAAA;EAET,OAAOA,gBAAgB,IAAI,CAA3B,CAAA;AACD;;AClBc,SAASC,YAAT,CAAsBrV,SAAtB,EAAiCsV,YAAjC,EAA+C;EAC5D,MAAM1V,MAAM,GAAG,IAAf,CAAA;EACA,MAAM;AAAE+L,IAAAA,YAAY,EAAEC,GAAhB;IAAqBxL,MAArB;IAA6BE,SAA7B;AAAwCQ,IAAAA,QAAAA;AAAxC,GAAA,GAAqDlB,MAA3D,CAAA;EACA,IAAI2V,CAAC,GAAG,CAAR,CAAA;EACA,IAAIC,CAAC,GAAG,CAAR,CAAA;EACA,MAAMC,CAAC,GAAG,CAAV,CAAA;;AAEA,EAAA,IAAI7V,MAAM,CAACkL,YAAP,EAAJ,EAA2B;AACzByK,IAAAA,CAAC,GAAG3J,GAAG,GAAG,CAAC5L,SAAJ,GAAgBA,SAAvB,CAAA;AACD,GAFD,MAEO;AACLwV,IAAAA,CAAC,GAAGxV,SAAJ,CAAA;AACD,GAAA;;EAED,IAAII,MAAM,CAACiO,YAAX,EAAyB;AACvBkH,IAAAA,CAAC,GAAGxU,IAAI,CAAC0N,KAAL,CAAW8G,CAAX,CAAJ,CAAA;AACAC,IAAAA,CAAC,GAAGzU,IAAI,CAAC0N,KAAL,CAAW+G,CAAX,CAAJ,CAAA;AACD,GAAA;;EAED,IAAIpV,MAAM,CAACmN,OAAX,EAAoB;AAClBjN,IAAAA,SAAS,CAACV,MAAM,CAACkL,YAAP,EAAwB,GAAA,YAAxB,GAAuC,WAAxC,CAAT,GAAgElL,MAAM,CAACkL,YAAP,EAAA,GAAwB,CAACyK,CAAzB,GAA6B,CAACC,CAA9F,CAAA;AACD,GAFD,MAEO,IAAI,CAACpV,MAAM,CAAC+U,gBAAZ,EAA8B;IACnC7U,SAAS,CAAC7G,KAAV,CAAgBwD,SAAhB,GAA6B,CAAcsY,YAAAA,EAAAA,CAAE,CAAMC,IAAAA,EAAAA,CAAE,CAAMC,IAAAA,EAAAA,CAAE,CAA7D,GAAA,CAAA,CAAA;AACD,GAAA;;AACD7V,EAAAA,MAAM,CAAC8V,iBAAP,GAA2B9V,MAAM,CAACI,SAAlC,CAAA;EACAJ,MAAM,CAACI,SAAP,GAAmBJ,MAAM,CAACkL,YAAP,EAAA,GAAwByK,CAAxB,GAA4BC,CAA/C,CAxB4D;;AA2B5D,EAAA,IAAIG,WAAJ,CAAA;EACA,MAAMlD,cAAc,GAAG7S,MAAM,CAAC8S,YAAP,EAAwB9S,GAAAA,MAAM,CAACqS,YAAP,EAA/C,CAAA;;EACA,IAAIQ,cAAc,KAAK,CAAvB,EAA0B;AACxBkD,IAAAA,WAAW,GAAG,CAAd,CAAA;AACD,GAFD,MAEO;IACLA,WAAW,GAAG,CAAC3V,SAAS,GAAGJ,MAAM,CAACqS,YAAP,EAAb,IAAsCQ,cAApD,CAAA;AACD,GAAA;;EACD,IAAIkD,WAAW,KAAK7U,QAApB,EAA8B;IAC5BlB,MAAM,CAAC2S,cAAP,CAAsBvS,SAAtB,CAAA,CAAA;AACD,GAAA;;EAEDJ,MAAM,CAACiH,IAAP,CAAY,cAAZ,EAA4BjH,MAAM,CAACI,SAAnC,EAA8CsV,YAA9C,CAAA,CAAA;AACD;;ACvCc,SAASrD,YAAT,GAAwB;AACrC,EAAA,OAAO,CAAC,IAAA,CAAK5F,QAAL,CAAc,CAAd,CAAR,CAAA;AACD;;ACFc,SAASqG,YAAT,GAAwB;EACrC,OAAO,CAAC,IAAKrG,CAAAA,QAAL,CAAc,IAAA,CAAKA,QAAL,CAAc5T,MAAd,GAAuB,CAArC,CAAR,CAAA;AACD;;ACAc,SAASmd,WAAT,CACb5V,SADa,EAEbK,KAFa,EAGbwV,YAHa,EAIbC,eAJa,EAKbC,QALa,EAMb;AAAA,EAAA,IALA/V,SAKA,KAAA,KAAA,CAAA,EAAA;AALAA,IAAAA,SAKA,GALY,CAKZ,CAAA;AAAA,GAAA;;AAAA,EAAA,IAJAK,KAIA,KAAA,KAAA,CAAA,EAAA;AAJAA,IAAAA,KAIA,GAJQ,IAAA,CAAKD,MAAL,CAAYC,KAIpB,CAAA;AAAA,GAAA;;AAAA,EAAA,IAHAwV,YAGA,KAAA,KAAA,CAAA,EAAA;AAHAA,IAAAA,YAGA,GAHe,IAGf,CAAA;AAAA,GAAA;;AAAA,EAAA,IAFAC,eAEA,KAAA,KAAA,CAAA,EAAA;AAFAA,IAAAA,eAEA,GAFkB,IAElB,CAAA;AAAA,GAAA;;EACA,MAAMlW,MAAM,GAAG,IAAf,CAAA;EAEA,MAAM;IAAEQ,MAAF;AAAUE,IAAAA,SAAAA;AAAV,GAAA,GAAwBV,MAA9B,CAAA;;AAEA,EAAA,IAAIA,MAAM,CAACoW,SAAP,IAAoB5V,MAAM,CAAC6V,8BAA/B,EAA+D;AAC7D,IAAA,OAAO,KAAP,CAAA;AACD,GAAA;;AAED,EAAA,MAAMhE,YAAY,GAAGrS,MAAM,CAACqS,YAAP,EAArB,CAAA;AACA,EAAA,MAAMS,YAAY,GAAG9S,MAAM,CAAC8S,YAAP,EAArB,CAAA;AACA,EAAA,IAAIwD,YAAJ,CAAA;EACA,IAAIJ,eAAe,IAAI9V,SAAS,GAAGiS,YAAnC,EAAiDiE,YAAY,GAAGjE,YAAf,CAAjD,KACK,IAAI6D,eAAe,IAAI9V,SAAS,GAAG0S,YAAnC,EAAiDwD,YAAY,GAAGxD,YAAf,CAAjD,KACAwD,YAAY,GAAGlW,SAAf,CAdL;;EAiBAJ,MAAM,CAAC2S,cAAP,CAAsB2D,YAAtB,CAAA,CAAA;;EAEA,IAAI9V,MAAM,CAACmN,OAAX,EAAoB;AAClB,IAAA,MAAM4I,GAAG,GAAGvW,MAAM,CAACkL,YAAP,EAAZ,CAAA;;IACA,IAAIzK,KAAK,KAAK,CAAd,EAAiB;MACfC,SAAS,CAAC6V,GAAG,GAAG,YAAH,GAAkB,WAAtB,CAAT,GAA8C,CAACD,YAA/C,CAAA;AACD,KAFD,MAEO;AACL,MAAA,IAAI,CAACtW,MAAM,CAAC4E,OAAP,CAAeE,YAApB,EAAkC;AAChC/E,QAAAA,oBAAoB,CAAC;UAAEC,MAAF;UAAUC,cAAc,EAAE,CAACqW,YAA3B;AAAyCpW,UAAAA,IAAI,EAAEqW,GAAG,GAAG,MAAH,GAAY,KAAA;AAA9D,SAAD,CAApB,CAAA;AACA,QAAA,OAAO,IAAP,CAAA;AACD,OAAA;;MACD7V,SAAS,CAACgB,QAAV,CAAmB;AACjB,QAAA,CAAC6U,GAAG,GAAG,MAAH,GAAY,KAAhB,GAAwB,CAACD,YADR;AAEjBE,QAAAA,QAAQ,EAAE,QAAA;OAFZ,CAAA,CAAA;AAID,KAAA;;AACD,IAAA,OAAO,IAAP,CAAA;AACD,GAAA;;EAED,IAAI/V,KAAK,KAAK,CAAd,EAAiB;IACfT,MAAM,CAACsR,aAAP,CAAqB,CAArB,CAAA,CAAA;IACAtR,MAAM,CAACyV,YAAP,CAAoBa,YAApB,CAAA,CAAA;;AACA,IAAA,IAAIL,YAAJ,EAAkB;AAChBjW,MAAAA,MAAM,CAACiH,IAAP,CAAY,uBAAZ,EAAqCxG,KAArC,EAA4C0V,QAA5C,CAAA,CAAA;MACAnW,MAAM,CAACiH,IAAP,CAAY,eAAZ,CAAA,CAAA;AACD,KAAA;AACF,GAPD,MAOO;IACLjH,MAAM,CAACsR,aAAP,CAAqB7Q,KAArB,CAAA,CAAA;IACAT,MAAM,CAACyV,YAAP,CAAoBa,YAApB,CAAA,CAAA;;AACA,IAAA,IAAIL,YAAJ,EAAkB;AAChBjW,MAAAA,MAAM,CAACiH,IAAP,CAAY,uBAAZ,EAAqCxG,KAArC,EAA4C0V,QAA5C,CAAA,CAAA;MACAnW,MAAM,CAACiH,IAAP,CAAY,iBAAZ,CAAA,CAAA;AACD,KAAA;;AACD,IAAA,IAAI,CAACjH,MAAM,CAACoW,SAAZ,EAAuB;MACrBpW,MAAM,CAACoW,SAAP,GAAmB,IAAnB,CAAA;;AACA,MAAA,IAAI,CAACpW,MAAM,CAACyW,iCAAZ,EAA+C;AAC7CzW,QAAAA,MAAM,CAACyW,iCAAP,GAA2C,SAASC,aAAT,CAAuBla,CAAvB,EAA0B;AACnE,UAAA,IAAI,CAACwD,MAAD,IAAWA,MAAM,CAACqH,SAAtB,EAAiC,OAAA;AACjC,UAAA,IAAI7K,CAAC,CAAChE,MAAF,KAAa,IAAjB,EAAuB,OAAA;UACvBwH,MAAM,CAACU,SAAP,CAAiBzH,mBAAjB,CACE,eADF,EAEE+G,MAAM,CAACyW,iCAFT,CAAA,CAAA;UAIAzW,MAAM,CAACU,SAAP,CAAiBzH,mBAAjB,CACE,qBADF,EAEE+G,MAAM,CAACyW,iCAFT,CAAA,CAAA;UAIAzW,MAAM,CAACyW,iCAAP,GAA2C,IAA3C,CAAA;UACA,OAAOzW,MAAM,CAACyW,iCAAd,CAAA;;AACA,UAAA,IAAIR,YAAJ,EAAkB;YAChBjW,MAAM,CAACiH,IAAP,CAAY,eAAZ,CAAA,CAAA;AACD,WAAA;SAfH,CAAA;AAiBD,OAAA;;MACDjH,MAAM,CAACU,SAAP,CAAiB1H,gBAAjB,CAAkC,eAAlC,EAAmDgH,MAAM,CAACyW,iCAA1D,CAAA,CAAA;MACAzW,MAAM,CAACU,SAAP,CAAiB1H,gBAAjB,CACE,qBADF,EAEEgH,MAAM,CAACyW,iCAFT,CAAA,CAAA;AAID,KAAA;AACF,GAAA;;AAED,EAAA,OAAO,IAAP,CAAA;AACD;;AClFD,gBAAe;gBACb3Z,kBADa;EAEb2Y,YAFa;EAGbpD,YAHa;EAIbS,YAJa;AAKbkD,EAAAA,WAAAA;AALa,CAAf;;ACNe,SAAS1E,aAAT,CAAuB/Q,QAAvB,EAAiCmV,YAAjC,EAA+C;EAC5D,MAAM1V,MAAM,GAAG,IAAf,CAAA;;AAEA,EAAA,IAAI,CAACA,MAAM,CAACQ,MAAP,CAAcmN,OAAnB,EAA4B;IAC1B3N,MAAM,CAACU,SAAP,CAAiB7G,KAAjB,CAAuB8c,kBAAvB,GAA6C,CAAEpW,EAAAA,QAAS,CAAxD,EAAA,CAAA,CAAA;AACD,GAAA;;AAEDP,EAAAA,MAAM,CAACiH,IAAP,CAAY,eAAZ,EAA6B1G,QAA7B,EAAuCmV,YAAvC,CAAA,CAAA;AACD;;ACRc,SAASkB,cAAT,CAAmE,IAAA,EAAA;EAAA,IAA3C;IAAE5W,MAAF;IAAUiW,YAAV;IAAwBY,SAAxB;AAAmCC,IAAAA,IAAAA;GAAQ,GAAA,IAAA,CAAA;EAChF,MAAM;IAAEpF,WAAF;AAAe8C,IAAAA,aAAAA;AAAf,GAAA,GAAiCxU,MAAvC,CAAA;EACA,IAAIa,GAAG,GAAGgW,SAAV,CAAA;;EACA,IAAI,CAAChW,GAAL,EAAU;IACR,IAAI6Q,WAAW,GAAG8C,aAAlB,EAAiC3T,GAAG,GAAG,MAAN,CAAjC,KACK,IAAI6Q,WAAW,GAAG8C,aAAlB,EAAiC3T,GAAG,GAAG,MAAN,CAAjC,KACAA,GAAG,GAAG,OAAN,CAAA;AACN,GAAA;;AAEDb,EAAAA,MAAM,CAACiH,IAAP,CAAa,CAAA,UAAA,EAAY6P,IAAK,CAA9B,CAAA,CAAA,CAAA;;AAEA,EAAA,IAAIb,YAAY,IAAIvE,WAAW,KAAK8C,aAApC,EAAmD;IACjD,IAAI3T,GAAG,KAAK,OAAZ,EAAqB;AACnBb,MAAAA,MAAM,CAACiH,IAAP,CAAa,CAAA,oBAAA,EAAsB6P,IAAK,CAAxC,CAAA,CAAA,CAAA;AACA,MAAA,OAAA;AACD,KAAA;;AACD9W,IAAAA,MAAM,CAACiH,IAAP,CAAa,CAAA,qBAAA,EAAuB6P,IAAK,CAAzC,CAAA,CAAA,CAAA;;IACA,IAAIjW,GAAG,KAAK,MAAZ,EAAoB;AAClBb,MAAAA,MAAM,CAACiH,IAAP,CAAa,CAAA,mBAAA,EAAqB6P,IAAK,CAAvC,CAAA,CAAA,CAAA;AACD,KAFD,MAEO;AACL9W,MAAAA,MAAM,CAACiH,IAAP,CAAa,CAAA,mBAAA,EAAqB6P,IAAK,CAAvC,CAAA,CAAA,CAAA;AACD,KAAA;AACF,GAAA;AACF;;ACrBc,SAASC,eAAT,CAAyBd,YAAzB,EAA8CY,SAA9C,EAAyD;AAAA,EAAA,IAAhCZ,YAAgC,KAAA,KAAA,CAAA,EAAA;AAAhCA,IAAAA,YAAgC,GAAjB,IAAiB,CAAA;AAAA,GAAA;;EACtE,MAAMjW,MAAM,GAAG,IAAf,CAAA;EACA,MAAM;AAAEQ,IAAAA,MAAAA;AAAF,GAAA,GAAaR,MAAnB,CAAA;EACA,IAAIQ,MAAM,CAACmN,OAAX,EAAoB,OAAA;;EACpB,IAAInN,MAAM,CAACkT,UAAX,EAAuB;AACrB1T,IAAAA,MAAM,CAACoR,gBAAP,EAAA,CAAA;AACD,GAAA;;AAEDwF,EAAAA,cAAc,CAAC;IAAE5W,MAAF;IAAUiW,YAAV;IAAwBY,SAAxB;AAAmCC,IAAAA,IAAI,EAAE,OAAA;AAAzC,GAAD,CAAd,CAAA;AACD;;ACTc,SAASJ,aAAT,CAAuBT,YAAvB,EAA4CY,SAA5C,EAAuD;AAAA,EAAA,IAAhCZ,YAAgC,KAAA,KAAA,CAAA,EAAA;AAAhCA,IAAAA,YAAgC,GAAjB,IAAiB,CAAA;AAAA,GAAA;;EACpE,MAAMjW,MAAM,GAAG,IAAf,CAAA;EACA,MAAM;AAAEQ,IAAAA,MAAAA;AAAF,GAAA,GAAaR,MAAnB,CAAA;EACAA,MAAM,CAACoW,SAAP,GAAmB,KAAnB,CAAA;EACA,IAAI5V,MAAM,CAACmN,OAAX,EAAoB,OAAA;EACpB3N,MAAM,CAACsR,aAAP,CAAqB,CAArB,CAAA,CAAA;AAEAsF,EAAAA,cAAc,CAAC;IAAE5W,MAAF;IAAUiW,YAAV;IAAwBY,SAAxB;AAAmCC,IAAAA,IAAI,EAAE,KAAA;AAAzC,GAAD,CAAd,CAAA;AACD;;ACND,iBAAe;EACbxF,aADa;EAEbyF,eAFa;AAGbL,EAAAA,aAAAA;AAHa,CAAf;;ACFe,SAASM,OAAT,CACbvM,KADa,EAEbhK,KAFa,EAGbwV,YAHa,EAIbE,QAJa,EAKbc,OALa,EAMb;AAAA,EAAA,IALAxM,KAKA,KAAA,KAAA,CAAA,EAAA;AALAA,IAAAA,KAKA,GALQ,CAKR,CAAA;AAAA,GAAA;;AAAA,EAAA,IAJAhK,KAIA,KAAA,KAAA,CAAA,EAAA;AAJAA,IAAAA,KAIA,GAJQ,IAAA,CAAKD,MAAL,CAAYC,KAIpB,CAAA;AAAA,GAAA;;AAAA,EAAA,IAHAwV,YAGA,KAAA,KAAA,CAAA,EAAA;AAHAA,IAAAA,YAGA,GAHe,IAGf,CAAA;AAAA,GAAA;;AACA,EAAA,IAAI,OAAOxL,KAAP,KAAiB,QAArB,EAA+B;AAC7BA,IAAAA,KAAK,GAAGW,QAAQ,CAACX,KAAD,EAAQ,EAAR,CAAhB,CAAA;AACD,GAAA;;EAED,MAAMzK,MAAM,GAAG,IAAf,CAAA;EACA,IAAI8P,UAAU,GAAGrF,KAAjB,CAAA;AACA,EAAA,IAAIqF,UAAU,GAAG,CAAjB,EAAoBA,UAAU,GAAG,CAAb,CAAA;EAEpB,MAAM;IACJtP,MADI;IAEJiM,QAFI;IAGJC,UAHI;IAIJ8H,aAJI;IAKJ9C,WALI;AAMJ3F,IAAAA,YAAY,EAAEC,GANV;IAOJtL,SAPI;AAQJ0L,IAAAA,OAAAA;AARI,GAAA,GASFpM,MATJ,CAAA;;AAWA,EAAA,IACGA,MAAM,CAACoW,SAAP,IAAoB5V,MAAM,CAAC6V,8BAA5B,IACC,CAACjK,OAAD,IAAY,CAAC+J,QAAb,IAAyB,CAACc,OAF7B,EAGE;AACA,IAAA,OAAO,KAAP,CAAA;AACD,GAAA;;AAED,EAAA,MAAMnC,IAAI,GAAG3T,IAAI,CAACE,GAAL,CAASrB,MAAM,CAACQ,MAAP,CAAcyO,kBAAvB,EAA2Ca,UAA3C,CAAb,CAAA;AACA,EAAA,IAAIQ,SAAS,GAAGwE,IAAI,GAAG3T,IAAI,CAAC0N,KAAL,CAAW,CAACiB,UAAU,GAAGgF,IAAd,IAAsB9U,MAAM,CAACQ,MAAP,CAAcwO,cAA/C,CAAvB,CAAA;AACA,EAAA,IAAIsB,SAAS,IAAI7D,QAAQ,CAAC5T,MAA1B,EAAkCyX,SAAS,GAAG7D,QAAQ,CAAC5T,MAAT,GAAkB,CAA9B,CAAA;EAElC,MAAMuH,SAAS,GAAG,CAACqM,QAAQ,CAAC6D,SAAD,CAA3B,CA/BA;;EAiCA,IAAI9P,MAAM,CAAC6T,mBAAX,EAAgC;AAC9B,IAAA,KAAK,IAAIvV,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4N,UAAU,CAAC7T,MAA/B,EAAuCiG,CAAC,IAAI,CAA5C,EAA+C;MAC7C,MAAMoY,mBAAmB,GAAG,CAAC/V,IAAI,CAAC0N,KAAL,CAAWzO,SAAS,GAAG,GAAvB,CAA7B,CAAA;AACA,MAAA,MAAM+W,cAAc,GAAGhW,IAAI,CAAC0N,KAAL,CAAWnC,UAAU,CAAC5N,CAAD,CAAV,GAAgB,GAA3B,CAAvB,CAAA;AACA,MAAA,MAAMsY,kBAAkB,GAAGjW,IAAI,CAAC0N,KAAL,CAAWnC,UAAU,CAAC5N,CAAC,GAAG,CAAL,CAAV,GAAoB,GAA/B,CAA3B,CAAA;;MACA,IAAI,OAAO4N,UAAU,CAAC5N,CAAC,GAAG,CAAL,CAAjB,KAA6B,WAAjC,EAA8C;AAC5C,QAAA,IACEoY,mBAAmB,IAAIC,cAAvB,IACAD,mBAAmB,GAAGE,kBAAkB,GAAG,CAACA,kBAAkB,GAAGD,cAAtB,IAAwC,CAFrF,EAGE;AACArH,UAAAA,UAAU,GAAGhR,CAAb,CAAA;SAJF,MAKO,IACLoY,mBAAmB,IAAIC,cAAvB,IACAD,mBAAmB,GAAGE,kBAFjB,EAGL;UACAtH,UAAU,GAAGhR,CAAC,GAAG,CAAjB,CAAA;AACD,SAAA;AACF,OAZD,MAYO,IAAIoY,mBAAmB,IAAIC,cAA3B,EAA2C;AAChDrH,QAAAA,UAAU,GAAGhR,CAAb,CAAA;AACD,OAAA;AACF,KAAA;AACF,GAtDD;;;AAwDA,EAAA,IAAIkB,MAAM,CAACsH,WAAP,IAAsBwI,UAAU,KAAK4B,WAAzC,EAAsD;AACpD,IAAA,IACE,CAAC1R,MAAM,CAACqX,cAAR,IACAjX,SAAS,GAAGJ,MAAM,CAACI,SADnB,IAEAA,SAAS,GAAGJ,MAAM,CAACqS,YAAP,EAHd,EAIE;AACA,MAAA,OAAO,KAAP,CAAA;AACD,KAAA;;AACD,IAAA,IACE,CAACrS,MAAM,CAACsX,cAAR,IACAlX,SAAS,GAAGJ,MAAM,CAACI,SADnB,IAEAA,SAAS,GAAGJ,MAAM,CAAC8S,YAAP,EAHd,EAIE;AACA,MAAA,IAAI,CAACpB,WAAW,IAAI,CAAhB,MAAuB5B,UAA3B,EAAuC;AACrC,QAAA,OAAO,KAAP,CAAA;AACD,OAAA;AACF,KAAA;AACF,GAAA;;EAED,IAAIA,UAAU,MAAM0E,aAAa,IAAI,CAAvB,CAAV,IAAuCyB,YAA3C,EAAyD;IACvDjW,MAAM,CAACiH,IAAP,CAAY,wBAAZ,CAAA,CAAA;AACD,GA7ED;;;EAgFAjH,MAAM,CAAC2S,cAAP,CAAsBvS,SAAtB,CAAA,CAAA;AAEA,EAAA,IAAIyW,SAAJ,CAAA;EACA,IAAI/G,UAAU,GAAG4B,WAAjB,EAA8BmF,SAAS,GAAG,MAAZ,CAA9B,KACK,IAAI/G,UAAU,GAAG4B,WAAjB,EAA8BmF,SAAS,GAAG,MAAZ,CAA9B,KACAA,SAAS,GAAG,OAAZ,CArFL;;AAwFA,EAAA,IAAK7K,GAAG,IAAI,CAAC5L,SAAD,KAAeJ,MAAM,CAACI,SAA9B,IAA6C,CAAC4L,GAAD,IAAQ5L,SAAS,KAAKJ,MAAM,CAACI,SAA9E,EAA0F;AACxFJ,IAAAA,MAAM,CAACsU,iBAAP,CAAyBxE,UAAzB,EADwF;;IAGxF,IAAItP,MAAM,CAACkT,UAAX,EAAuB;AACrB1T,MAAAA,MAAM,CAACoR,gBAAP,EAAA,CAAA;AACD,KAAA;;AACDpR,IAAAA,MAAM,CAAC2T,mBAAP,EAAA,CAAA;;AACA,IAAA,IAAInT,MAAM,CAAC0O,MAAP,KAAkB,OAAtB,EAA+B;MAC7BlP,MAAM,CAACyV,YAAP,CAAoBrV,SAApB,CAAA,CAAA;AACD,KAAA;;IACD,IAAIyW,SAAS,KAAK,OAAlB,EAA2B;AACzB7W,MAAAA,MAAM,CAAC+W,eAAP,CAAuBd,YAAvB,EAAqCY,SAArC,CAAA,CAAA;AACA7W,MAAAA,MAAM,CAAC0W,aAAP,CAAqBT,YAArB,EAAmCY,SAAnC,CAAA,CAAA;AACD,KAAA;;AACD,IAAA,OAAO,KAAP,CAAA;AACD,GAAA;;EACD,IAAIrW,MAAM,CAACmN,OAAX,EAAoB;AAClB,IAAA,MAAM4I,GAAG,GAAGvW,MAAM,CAACkL,YAAP,EAAZ,CAAA;AACA,IAAA,MAAMqM,CAAC,GAAGvL,GAAG,GAAG5L,SAAH,GAAe,CAACA,SAA7B,CAAA;;IACA,IAAIK,KAAK,KAAK,CAAd,EAAiB;AACf,MAAA,MAAMyL,SAAS,GAAGlM,MAAM,CAACmM,OAAP,IAAkBnM,MAAM,CAACQ,MAAP,CAAc2L,OAAd,CAAsBC,OAA1D,CAAA;;AACA,MAAA,IAAIF,SAAJ,EAAe;AACblM,QAAAA,MAAM,CAACU,SAAP,CAAiB7G,KAAjB,CAAuB8G,cAAvB,GAAwC,MAAxC,CAAA;QACAX,MAAM,CAACwX,iBAAP,GAA2B,IAA3B,CAAA;AACD,OAAA;;MACD9W,SAAS,CAAC6V,GAAG,GAAG,YAAH,GAAkB,WAAtB,CAAT,GAA8CgB,CAA9C,CAAA;;AACA,MAAA,IAAIrL,SAAJ,EAAe;AACbnQ,QAAAA,qBAAqB,CAAC,MAAM;AAC1BiE,UAAAA,MAAM,CAACU,SAAP,CAAiB7G,KAAjB,CAAuB8G,cAAvB,GAAwC,EAAxC,CAAA;UACAX,MAAM,CAACyX,uBAAP,GAAiC,KAAjC,CAAA;AACD,SAHoB,CAArB,CAAA;AAID,OAAA;AACF,KAbD,MAaO;AACL,MAAA,IAAI,CAACzX,MAAM,CAAC4E,OAAP,CAAeE,YAApB,EAAkC;AAChC/E,QAAAA,oBAAoB,CAAC;UAAEC,MAAF;AAAUC,UAAAA,cAAc,EAAEsX,CAA1B;AAA6BrX,UAAAA,IAAI,EAAEqW,GAAG,GAAG,MAAH,GAAY,KAAA;AAAlD,SAAD,CAApB,CAAA;AACA,QAAA,OAAO,IAAP,CAAA;AACD,OAAA;;MACD7V,SAAS,CAACgB,QAAV,CAAmB;AACjB,QAAA,CAAC6U,GAAG,GAAG,MAAH,GAAY,KAAhB,GAAwBgB,CADP;AAEjBf,QAAAA,QAAQ,EAAE,QAAA;OAFZ,CAAA,CAAA;AAID,KAAA;;AACD,IAAA,OAAO,IAAP,CAAA;AACD,GAAA;;EACDxW,MAAM,CAACsR,aAAP,CAAqB7Q,KAArB,CAAA,CAAA;EACAT,MAAM,CAACyV,YAAP,CAAoBrV,SAApB,CAAA,CAAA;EACAJ,MAAM,CAACsU,iBAAP,CAAyBxE,UAAzB,CAAA,CAAA;AACA9P,EAAAA,MAAM,CAAC2T,mBAAP,EAAA,CAAA;AACA3T,EAAAA,MAAM,CAACiH,IAAP,CAAY,uBAAZ,EAAqCxG,KAArC,EAA4C0V,QAA5C,CAAA,CAAA;AACAnW,EAAAA,MAAM,CAAC+W,eAAP,CAAuBd,YAAvB,EAAqCY,SAArC,CAAA,CAAA;;EAEA,IAAIpW,KAAK,KAAK,CAAd,EAAiB;AACfT,IAAAA,MAAM,CAAC0W,aAAP,CAAqBT,YAArB,EAAmCY,SAAnC,CAAA,CAAA;AACD,GAFD,MAEO,IAAI,CAAC7W,MAAM,CAACoW,SAAZ,EAAuB;IAC5BpW,MAAM,CAACoW,SAAP,GAAmB,IAAnB,CAAA;;AACA,IAAA,IAAI,CAACpW,MAAM,CAAC0X,6BAAZ,EAA2C;AACzC1X,MAAAA,MAAM,CAAC0X,6BAAP,GAAuC,SAAShB,aAAT,CAAuBla,CAAvB,EAA0B;AAC/D,QAAA,IAAI,CAACwD,MAAD,IAAWA,MAAM,CAACqH,SAAtB,EAAiC,OAAA;AACjC,QAAA,IAAI7K,CAAC,CAAChE,MAAF,KAAa,IAAjB,EAAuB,OAAA;QACvBwH,MAAM,CAACU,SAAP,CAAiBzH,mBAAjB,CAAqC,eAArC,EAAsD+G,MAAM,CAAC0X,6BAA7D,CAAA,CAAA;QACA1X,MAAM,CAACU,SAAP,CAAiBzH,mBAAjB,CACE,qBADF,EAEE+G,MAAM,CAAC0X,6BAFT,CAAA,CAAA;QAIA1X,MAAM,CAAC0X,6BAAP,GAAuC,IAAvC,CAAA;QACA,OAAO1X,MAAM,CAAC0X,6BAAd,CAAA;AACA1X,QAAAA,MAAM,CAAC0W,aAAP,CAAqBT,YAArB,EAAmCY,SAAnC,CAAA,CAAA;OAVF,CAAA;AAYD,KAAA;;IACD7W,MAAM,CAACU,SAAP,CAAiB1H,gBAAjB,CAAkC,eAAlC,EAAmDgH,MAAM,CAAC0X,6BAA1D,CAAA,CAAA;IACA1X,MAAM,CAACU,SAAP,CAAiB1H,gBAAjB,CAAkC,qBAAlC,EAAyDgH,MAAM,CAAC0X,6BAAhE,CAAA,CAAA;AACD,GAAA;;AAED,EAAA,OAAO,IAAP,CAAA;AACD;;ACxKc,SAASC,WAAT,CACblN,KADa,EAEbhK,KAFa,EAGbwV,YAHa,EAIbE,QAJa,EAKb;AAAA,EAAA,IAJA1L,KAIA,KAAA,KAAA,CAAA,EAAA;AAJAA,IAAAA,KAIA,GAJQ,CAIR,CAAA;AAAA,GAAA;;AAAA,EAAA,IAHAhK,KAGA,KAAA,KAAA,CAAA,EAAA;AAHAA,IAAAA,KAGA,GAHQ,IAAA,CAAKD,MAAL,CAAYC,KAGpB,CAAA;AAAA,GAAA;;AAAA,EAAA,IAFAwV,YAEA,KAAA,KAAA,CAAA,EAAA;AAFAA,IAAAA,YAEA,GAFe,IAEf,CAAA;AAAA,GAAA;;AACA,EAAA,IAAI,OAAOxL,KAAP,KAAiB,QAArB,EAA+B;AAC7B,IAAA,MAAMmN,aAAa,GAAGxM,QAAQ,CAACX,KAAD,EAAQ,EAAR,CAA9B,CAAA;AAEAA,IAAAA,KAAK,GAAGmN,aAAR,CAAA;AACD,GAAA;;EAED,MAAM5X,MAAM,GAAG,IAAf,CAAA;EACA,IAAI6X,QAAQ,GAAGpN,KAAf,CAAA;;AACA,EAAA,IAAIzK,MAAM,CAACQ,MAAP,CAAc+O,IAAlB,EAAwB;IACtB,IAAIvP,MAAM,CAACmM,OAAP,IAAkBnM,MAAM,CAACQ,MAAP,CAAc2L,OAAd,CAAsBC,OAA5C,EAAqD;AACnD;AACAyL,MAAAA,QAAQ,GAAGA,QAAQ,GAAG7X,MAAM,CAACmM,OAAP,CAAeuD,YAArC,CAAA;AACD,KAHD,MAGO;MACLmI,QAAQ,GAAG9T,YAAY,CACrB/D,MAAM,CAACsM,MAAP,CAAcpN,MAAd,CACG2C,OAAD,IAAaA,OAAO,CAAC2P,YAAR,CAAqB,yBAArB,CAAkD,GAAA,CAAlD,KAAwDqG,QADvE,CAAA,CAEE,CAFF,CADqB,CAAvB,CAAA;AAKD,KAAA;AACF,GAAA;;EAED,OAAO7X,MAAM,CAACgX,OAAP,CAAea,QAAf,EAAyBpX,KAAzB,EAAgCwV,YAAhC,EAA8CE,QAA9C,CAAP,CAAA;AACD;;AC9BD;AACe,SAAS2B,SAAT,CAAmBrX,KAAnB,EAA8CwV,YAA9C,EAAmEE,QAAnE,EAA6E;AAAA,EAAA,IAA1D1V,KAA0D,KAAA,KAAA,CAAA,EAAA;AAA1DA,IAAAA,KAA0D,GAAlD,IAAA,CAAKD,MAAL,CAAYC,KAAsC,CAAA;AAAA,GAAA;;AAAA,EAAA,IAA/BwV,YAA+B,KAAA,KAAA,CAAA,EAAA;AAA/BA,IAAAA,YAA+B,GAAhB,IAAgB,CAAA;AAAA,GAAA;;EAC1F,MAAMjW,MAAM,GAAG,IAAf,CAAA;EACA,MAAM;IAAEoM,OAAF;AAAW5L,IAAAA,MAAAA;AAAX,GAAA,GAAsBR,MAA5B,CAAA;AACA,EAAA,IAAI,CAACoM,OAAL,EAAc,OAAOpM,MAAP,CAAA;AACd,EAAA,IAAI+X,QAAQ,GAAGvX,MAAM,CAACwO,cAAtB,CAAA;;AACA,EAAA,IAAIxO,MAAM,CAAC0N,aAAP,KAAyB,MAAzB,IAAmC1N,MAAM,CAACwO,cAAP,KAA0B,CAA7D,IAAkExO,MAAM,CAACwX,kBAA7E,EAAiG;AAC/FD,IAAAA,QAAQ,GAAG5W,IAAI,CAACC,GAAL,CAASpB,MAAM,CAACiY,oBAAP,CAA4B,SAA5B,EAAuC,IAAvC,CAAT,EAAuD,CAAvD,CAAX,CAAA;AACD,GAAA;;AACD,EAAA,MAAMC,SAAS,GAAGlY,MAAM,CAAC0R,WAAP,GAAqBlR,MAAM,CAACyO,kBAA5B,GAAiD,CAAjD,GAAqD8I,QAAvE,CAAA;;EACA,IAAIvX,MAAM,CAAC+O,IAAX,EAAiB;IACfvP,MAAM,CAACmY,OAAP,EAAA,CADe;;AAGfnY,IAAAA,MAAM,CAACoY,WAAP,GAAqBpY,MAAM,CAACU,SAAP,CAAiBmC,UAAtC,CAAA;AACD,GAAA;;AACD,EAAA,IAAIrC,MAAM,CAAC6X,MAAP,IAAiBrY,MAAM,CAACgT,KAA5B,EAAmC;IACjC,OAAOhT,MAAM,CAACgX,OAAP,CAAe,CAAf,EAAkBvW,KAAlB,EAAyBwV,YAAzB,EAAuCE,QAAvC,CAAP,CAAA;AACD,GAAA;;AACD,EAAA,OAAOnW,MAAM,CAACgX,OAAP,CAAehX,MAAM,CAAC0R,WAAP,GAAqBwG,SAApC,EAA+CzX,KAA/C,EAAsDwV,YAAtD,EAAoEE,QAApE,CAAP,CAAA;AACD;;ACnBD;AACe,SAASmC,SAAT,CAAmB7X,KAAnB,EAA8CwV,YAA9C,EAAmEE,QAAnE,EAA6E;AAAA,EAAA,IAA1D1V,KAA0D,KAAA,KAAA,CAAA,EAAA;AAA1DA,IAAAA,KAA0D,GAAlD,IAAA,CAAKD,MAAL,CAAYC,KAAsC,CAAA;AAAA,GAAA;;AAAA,EAAA,IAA/BwV,YAA+B,KAAA,KAAA,CAAA,EAAA;AAA/BA,IAAAA,YAA+B,GAAhB,IAAgB,CAAA;AAAA,GAAA;;EAC1F,MAAMjW,MAAM,GAAG,IAAf,CAAA;EACA,MAAM;IAAEQ,MAAF;IAAUiM,QAAV;IAAoBC,UAApB;IAAgCX,YAAhC;AAA8CK,IAAAA,OAAAA;AAA9C,GAAA,GAA0DpM,MAAhE,CAAA;AACA,EAAA,IAAI,CAACoM,OAAL,EAAc,OAAOpM,MAAP,CAAA;;EAEd,IAAIQ,MAAM,CAAC+O,IAAX,EAAiB;IACfvP,MAAM,CAACmY,OAAP,EAAA,CADe;;AAGfnY,IAAAA,MAAM,CAACoY,WAAP,GAAqBpY,MAAM,CAACU,SAAP,CAAiBmC,UAAtC,CAAA;AACD,GAAA;;EACD,MAAMzC,SAAS,GAAG2L,YAAY,GAAG/L,MAAM,CAACI,SAAV,GAAsB,CAACJ,MAAM,CAACI,SAA5D,CAAA;;EAEA,SAASmY,SAAT,CAAmBC,GAAnB,EAAwB;AACtB,IAAA,IAAIA,GAAG,GAAG,CAAV,EAAa,OAAO,CAACrX,IAAI,CAAC0N,KAAL,CAAW1N,IAAI,CAAC4N,GAAL,CAASyJ,GAAT,CAAX,CAAR,CAAA;AACb,IAAA,OAAOrX,IAAI,CAAC0N,KAAL,CAAW2J,GAAX,CAAP,CAAA;AACD,GAAA;;AACD,EAAA,MAAMtB,mBAAmB,GAAGqB,SAAS,CAACnY,SAAD,CAArC,CAAA;AACA,EAAA,MAAMqY,kBAAkB,GAAGhM,QAAQ,CAACjP,GAAT,CAAcgb,GAAD,IAASD,SAAS,CAACC,GAAD,CAA/B,CAA3B,CAAA;EAEA,IAAIE,QAAQ,GAAGjM,QAAQ,CAACgM,kBAAkB,CAACtZ,OAAnB,CAA2B+X,mBAA3B,CAAkD,GAAA,CAAnD,CAAvB,CAAA;;EACA,IAAI,OAAOwB,QAAP,KAAoB,WAApB,IAAmClY,MAAM,CAACmN,OAA9C,EAAuD;AACrD,IAAA,IAAIgL,aAAJ,CAAA;AACAlM,IAAAA,QAAQ,CAAC9T,OAAT,CAAiB,CAACwX,IAAD,EAAOG,SAAP,KAAqB;MACpC,IAAI4G,mBAAmB,IAAI/G,IAA3B,EAAiC;AAC/B;AACAwI,QAAAA,aAAa,GAAGrI,SAAhB,CAAA;AACD,OAAA;KAJH,CAAA,CAAA;;AAMA,IAAA,IAAI,OAAOqI,aAAP,KAAyB,WAA7B,EAA0C;AACxCD,MAAAA,QAAQ,GAAGjM,QAAQ,CAACkM,aAAa,GAAG,CAAhB,GAAoBA,aAAa,GAAG,CAApC,GAAwCA,aAAzC,CAAnB,CAAA;AACD,KAAA;AACF,GAAA;;EACD,IAAIC,SAAS,GAAG,CAAhB,CAAA;;AACA,EAAA,IAAI,OAAOF,QAAP,KAAoB,WAAxB,EAAqC;AACnCE,IAAAA,SAAS,GAAGlM,UAAU,CAACvN,OAAX,CAAmBuZ,QAAnB,CAAZ,CAAA;IACA,IAAIE,SAAS,GAAG,CAAhB,EAAmBA,SAAS,GAAG5Y,MAAM,CAAC0R,WAAP,GAAqB,CAAjC,CAAA;;AACnB,IAAA,IACElR,MAAM,CAAC0N,aAAP,KAAyB,MAAzB,IACA1N,MAAM,CAACwO,cAAP,KAA0B,CAD1B,IAEAxO,MAAM,CAACwX,kBAHT,EAIE;AACAY,MAAAA,SAAS,GAAGA,SAAS,GAAG5Y,MAAM,CAACiY,oBAAP,CAA4B,UAA5B,EAAwC,IAAxC,CAAZ,GAA4D,CAAxE,CAAA;MACAW,SAAS,GAAGzX,IAAI,CAACC,GAAL,CAASwX,SAAT,EAAoB,CAApB,CAAZ,CAAA;AACD,KAAA;AACF,GAAA;;AACD,EAAA,IAAIpY,MAAM,CAAC6X,MAAP,IAAiBrY,MAAM,CAAC+S,WAA5B,EAAyC;AACvC,IAAA,MAAM8F,SAAS,GACb7Y,MAAM,CAACQ,MAAP,CAAc2L,OAAd,IAAyBnM,MAAM,CAACQ,MAAP,CAAc2L,OAAd,CAAsBC,OAA/C,IAA0DpM,MAAM,CAACmM,OAAjE,GACInM,MAAM,CAACmM,OAAP,CAAeG,MAAf,CAAsBzT,MAAtB,GAA+B,CADnC,GAEImH,MAAM,CAACsM,MAAP,CAAczT,MAAd,GAAuB,CAH7B,CAAA;IAIA,OAAOmH,MAAM,CAACgX,OAAP,CAAe6B,SAAf,EAA0BpY,KAA1B,EAAiCwV,YAAjC,EAA+CE,QAA/C,CAAP,CAAA;AACD,GAAA;;EACD,OAAOnW,MAAM,CAACgX,OAAP,CAAe4B,SAAf,EAA0BnY,KAA1B,EAAiCwV,YAAjC,EAA+CE,QAA/C,CAAP,CAAA;AACD;;ACtDD;AACe,SAAS2C,UAAT,CAAoBrY,KAApB,EAA+CwV,YAA/C,EAAoEE,QAApE,EAA8E;AAAA,EAAA,IAA1D1V,KAA0D,KAAA,KAAA,CAAA,EAAA;AAA1DA,IAAAA,KAA0D,GAAlD,IAAA,CAAKD,MAAL,CAAYC,KAAsC,CAAA;AAAA,GAAA;;AAAA,EAAA,IAA/BwV,YAA+B,KAAA,KAAA,CAAA,EAAA;AAA/BA,IAAAA,YAA+B,GAAhB,IAAgB,CAAA;AAAA,GAAA;;EAC3F,MAAMjW,MAAM,GAAG,IAAf,CAAA;AACA,EAAA,OAAOA,MAAM,CAACgX,OAAP,CAAehX,MAAM,CAAC0R,WAAtB,EAAmCjR,KAAnC,EAA0CwV,YAA1C,EAAwDE,QAAxD,CAAP,CAAA;AACD;;ACJD;AACe,SAAS4C,cAAT,CACbtY,KADa,EAEbwV,YAFa,EAGbE,QAHa,EAIb6C,SAJa,EAKb;AAAA,EAAA,IAJAvY,KAIA,KAAA,KAAA,CAAA,EAAA;AAJAA,IAAAA,KAIA,GAJQ,IAAA,CAAKD,MAAL,CAAYC,KAIpB,CAAA;AAAA,GAAA;;AAAA,EAAA,IAHAwV,YAGA,KAAA,KAAA,CAAA,EAAA;AAHAA,IAAAA,YAGA,GAHe,IAGf,CAAA;AAAA,GAAA;;AAAA,EAAA,IADA+C,SACA,KAAA,KAAA,CAAA,EAAA;AADAA,IAAAA,SACA,GADY,GACZ,CAAA;AAAA,GAAA;;EACA,MAAMhZ,MAAM,GAAG,IAAf,CAAA;AACA,EAAA,IAAIyK,KAAK,GAAGzK,MAAM,CAAC0R,WAAnB,CAAA;AACA,EAAA,MAAMoD,IAAI,GAAG3T,IAAI,CAACE,GAAL,CAASrB,MAAM,CAACQ,MAAP,CAAcyO,kBAAvB,EAA2CxE,KAA3C,CAAb,CAAA;AACA,EAAA,MAAM6F,SAAS,GAAGwE,IAAI,GAAG3T,IAAI,CAAC0N,KAAL,CAAW,CAACpE,KAAK,GAAGqK,IAAT,IAAiB9U,MAAM,CAACQ,MAAP,CAAcwO,cAA1C,CAAzB,CAAA;AAEA,EAAA,MAAM5O,SAAS,GAAGJ,MAAM,CAAC+L,YAAP,GAAsB/L,MAAM,CAACI,SAA7B,GAAyC,CAACJ,MAAM,CAACI,SAAnE,CAAA;;EAEA,IAAIA,SAAS,IAAIJ,MAAM,CAACyM,QAAP,CAAgB6D,SAAhB,CAAjB,EAA6C;AAC3C;AACA;AACA,IAAA,MAAM2I,WAAW,GAAGjZ,MAAM,CAACyM,QAAP,CAAgB6D,SAAhB,CAApB,CAAA;IACA,MAAM4I,QAAQ,GAAGlZ,MAAM,CAACyM,QAAP,CAAgB6D,SAAS,GAAG,CAA5B,CAAjB,CAAA;;IACA,IAAIlQ,SAAS,GAAG6Y,WAAZ,GAA0B,CAACC,QAAQ,GAAGD,WAAZ,IAA2BD,SAAzD,EAAoE;AAClEvO,MAAAA,KAAK,IAAIzK,MAAM,CAACQ,MAAP,CAAcwO,cAAvB,CAAA;AACD,KAAA;AACF,GARD,MAQO;AACL;AACA;IACA,MAAM0J,QAAQ,GAAG1Y,MAAM,CAACyM,QAAP,CAAgB6D,SAAS,GAAG,CAA5B,CAAjB,CAAA;AACA,IAAA,MAAM2I,WAAW,GAAGjZ,MAAM,CAACyM,QAAP,CAAgB6D,SAAhB,CAApB,CAAA;;IACA,IAAIlQ,SAAS,GAAGsY,QAAZ,IAAwB,CAACO,WAAW,GAAGP,QAAf,IAA2BM,SAAvD,EAAkE;AAChEvO,MAAAA,KAAK,IAAIzK,MAAM,CAACQ,MAAP,CAAcwO,cAAvB,CAAA;AACD,KAAA;AACF,GAAA;;EACDvE,KAAK,GAAGtJ,IAAI,CAACC,GAAL,CAASqJ,KAAT,EAAgB,CAAhB,CAAR,CAAA;AACAA,EAAAA,KAAK,GAAGtJ,IAAI,CAACE,GAAL,CAASoJ,KAAT,EAAgBzK,MAAM,CAAC0M,UAAP,CAAkB7T,MAAlB,GAA2B,CAA3C,CAAR,CAAA;EAEA,OAAOmH,MAAM,CAACgX,OAAP,CAAevM,KAAf,EAAsBhK,KAAtB,EAA6BwV,YAA7B,EAA2CE,QAA3C,CAAP,CAAA;AACD;;ACjCc,SAASd,mBAAT,GAA+B;EAC5C,MAAMrV,MAAM,GAAG,IAAf,CAAA;EACA,MAAM;IAAEQ,MAAF;AAAUqL,IAAAA,QAAAA;AAAV,GAAA,GAAuB7L,MAA7B,CAAA;AAEA,EAAA,MAAMkO,aAAa,GACjB1N,MAAM,CAAC0N,aAAP,KAAyB,MAAzB,GAAkClO,MAAM,CAACiY,oBAAP,EAAlC,GAAkEzX,MAAM,CAAC0N,aAD3E,CAAA;AAEA,EAAA,IAAIiL,YAAY,GAAGnZ,MAAM,CAACoV,YAA1B,CAAA;AACA,EAAA,IAAIX,SAAJ,CAAA;AACA,EAAA,MAAM2E,aAAa,GAAGpZ,MAAM,CAACqZ,SAAP,GAAoB,CAApB,YAAA,CAAA,GAAqC,CAAG7Y,CAAAA,EAAAA,MAAM,CAAC+L,UAAW,CAAhF,CAAA,CAAA;;EACA,IAAI/L,MAAM,CAAC+O,IAAX,EAAiB;IACf,IAAIvP,MAAM,CAACoW,SAAX,EAAsB,OAAA;AACtB3B,IAAAA,SAAS,GAAGrJ,QAAQ,CAACpL,MAAM,CAACmV,YAAP,CAAoB3D,YAApB,CAAiC,yBAAjC,CAAD,EAA8D,EAA9D,CAApB,CAAA;;IACA,IAAIhR,MAAM,CAACkN,cAAX,EAA2B;MACzB,IACEyL,YAAY,GAAGnZ,MAAM,CAACsZ,YAAP,GAAsBpL,aAAa,GAAG,CAArD,IACAiL,YAAY,GAAGnZ,MAAM,CAACsM,MAAP,CAAczT,MAAd,GAAuBmH,MAAM,CAACsZ,YAA9B,GAA6CpL,aAAa,GAAG,CAF9E,EAGE;AACAlO,QAAAA,MAAM,CAACmY,OAAP,EAAA,CAAA;AACAgB,QAAAA,YAAY,GAAGpV,YAAY,CACzBhC,eAAe,CAAC8J,QAAD,EAAY,CAAA,EAAEuN,aAAc,CAAA,0BAAA,EAA4B3E,SAAU,CAAlE,EAAA,CAAA,CAAf,CAAsF,CAAtF,CADyB,CAA3B,CAAA;AAIAhY,QAAAA,QAAQ,CAAC,MAAM;UACbuD,MAAM,CAACgX,OAAP,CAAemC,YAAf,CAAA,CAAA;AACD,SAFO,CAAR,CAAA;AAGD,OAZD,MAYO;QACLnZ,MAAM,CAACgX,OAAP,CAAemC,YAAf,CAAA,CAAA;AACD,OAAA;KAfH,MAgBO,IAAIA,YAAY,GAAGnZ,MAAM,CAACsM,MAAP,CAAczT,MAAd,GAAuBqV,aAA1C,EAAyD;AAC9DlO,MAAAA,MAAM,CAACmY,OAAP,EAAA,CAAA;AACAgB,MAAAA,YAAY,GAAGpV,YAAY,CACzBhC,eAAe,CAAC8J,QAAD,EAAY,CAAA,EAAEuN,aAAc,CAAA,0BAAA,EAA4B3E,SAAU,CAAlE,EAAA,CAAA,CAAf,CAAsF,CAAtF,CADyB,CAA3B,CAAA;AAIAhY,MAAAA,QAAQ,CAAC,MAAM;QACbuD,MAAM,CAACgX,OAAP,CAAemC,YAAf,CAAA,CAAA;AACD,OAFO,CAAR,CAAA;AAGD,KATM,MASA;MACLnZ,MAAM,CAACgX,OAAP,CAAemC,YAAf,CAAA,CAAA;AACD,KAAA;AACF,GA/BD,MA+BO;IACLnZ,MAAM,CAACgX,OAAP,CAAemC,YAAf,CAAA,CAAA;AACD,GAAA;AACF;;ACrCD,YAAe;EACbnC,OADa;EAEbW,WAFa;EAGbG,SAHa;EAIbQ,SAJa;EAKbQ,UALa;EAMbC,cANa;AAOb1D,EAAAA,mBAAAA;AAPa,CAAf;;ACNe,SAASkE,UAAT,CAAoBC,cAApB,EAAoC;EACjD,MAAMxZ,MAAM,GAAG,IAAf,CAAA;EACA,MAAM;IAAEQ,MAAF;AAAUqL,IAAAA,QAAAA;AAAV,GAAA,GAAuB7L,MAA7B,CAAA;AACA,EAAA,IAAI,CAACQ,MAAM,CAAC+O,IAAR,IAAiBvP,MAAM,CAACmM,OAAP,IAAkBnM,MAAM,CAACQ,MAAP,CAAc2L,OAAd,CAAsBC,OAA7D,EAAuE,OAAA;EAEvE,MAAME,MAAM,GAAGvK,eAAe,CAAC8J,QAAD,EAAY,CAAA,CAAA,EAAGrL,MAAM,CAAC+L,UAAW,CAAA,cAAA,CAAjC,CAA9B,CAAA;AAEAD,EAAAA,MAAM,CAAC3T,OAAP,CAAe,CAACiE,EAAD,EAAK6N,KAAL,KAAe;AAC5B7N,IAAAA,EAAE,CAAC9C,YAAH,CAAgB,yBAAhB,EAA2C2Q,KAA3C,CAAA,CAAA;GADF,CAAA,CAAA;EAIAzK,MAAM,CAACmY,OAAP,CAAeqB,cAAf,CAAA,CAAA;AACD;;ACZc,SAASrB,OAAT,CAAiBqB,cAAjB,EAAiCxC,OAAjC,EAAiD;AAAA,EAAA,IAAhBA,OAAgB,KAAA,KAAA,CAAA,EAAA;AAAhBA,IAAAA,OAAgB,GAAN,IAAM,CAAA;AAAA,GAAA;;EAC9D,MAAMhX,MAAM,GAAG,IAAf,CAAA;AACA,EAAA,IAAI,CAACA,MAAM,CAACQ,MAAP,CAAc+O,IAAnB,EAAyB,OAAA;EACzBvP,MAAM,CAACiH,IAAP,CAAY,eAAZ,CAAA,CAAA;EAEA,MAAM;IAAEqF,MAAF;IAAUgL,cAAV;IAA0BD,cAA1B;IAA0CxL,QAA1C;AAAoDrL,IAAAA,MAAAA;AAApD,GAAA,GAA+DR,MAArE,CAAA;EAEAA,MAAM,CAACsX,cAAP,GAAwB,IAAxB,CAAA;EACAtX,MAAM,CAACqX,cAAP,GAAwB,IAAxB,CAAA;;EAEA,IAAIrX,MAAM,CAACmM,OAAP,IAAkB3L,MAAM,CAAC2L,OAAP,CAAeC,OAArC,EAA8C;AAC5C,IAAA,IAAI4K,OAAJ,EAAa;MACX,IAAI,CAACxW,MAAM,CAACkN,cAAR,IAA0B1N,MAAM,CAACsQ,SAAP,KAAqB,CAAnD,EAAsD;AACpDtQ,QAAAA,MAAM,CAACgX,OAAP,CAAehX,MAAM,CAACmM,OAAP,CAAeG,MAAf,CAAsBzT,MAArC,EAA6C,CAA7C,EAAgD,KAAhD,EAAuD,IAAvD,CAAA,CAAA;AACD,OAFD,MAEO,IAAI2H,MAAM,CAACkN,cAAP,IAAyB1N,MAAM,CAACsQ,SAAP,GAAmB9P,MAAM,CAAC0N,aAAvD,EAAsE;AAC3ElO,QAAAA,MAAM,CAACgX,OAAP,CAAehX,MAAM,CAACmM,OAAP,CAAeG,MAAf,CAAsBzT,MAAtB,GAA+BmH,MAAM,CAACsQ,SAArD,EAAgE,CAAhE,EAAmE,KAAnE,EAA0E,IAA1E,CAAA,CAAA;AACD,OAFM,MAEA,IAAItQ,MAAM,CAACsQ,SAAP,KAAqBtQ,MAAM,CAACyM,QAAP,CAAgB5T,MAAhB,GAAyB,CAAlD,EAAqD;AAC1DmH,QAAAA,MAAM,CAACgX,OAAP,CAAehX,MAAM,CAACmM,OAAP,CAAeuD,YAA9B,EAA4C,CAA5C,EAA+C,KAA/C,EAAsD,IAAtD,CAAA,CAAA;AACD,OAAA;AACF,KAAA;;IACD1P,MAAM,CAACsX,cAAP,GAAwBA,cAAxB,CAAA;IACAtX,MAAM,CAACqX,cAAP,GAAwBA,cAAxB,CAAA;IACArX,MAAM,CAACiH,IAAP,CAAY,SAAZ,CAAA,CAAA;AACA,IAAA,OAAA;AACD,GAAA;;EAED,MAAMiH,aAAa,GACjB1N,MAAM,CAAC0N,aAAP,KAAyB,MAAzB,GACIlO,MAAM,CAACiY,oBAAP,EADJ,GAEI9W,IAAI,CAACsO,IAAL,CAAUvR,UAAU,CAACsC,MAAM,CAAC0N,aAAR,EAAuB,EAAvB,CAApB,CAHN,CAAA;EAIA,IAAIoL,YAAY,GAAGpL,aAAnB,CAAA;;AACA,EAAA,IAAIoL,YAAY,GAAG9Y,MAAM,CAACwO,cAAtB,KAAyC,CAA7C,EAAgD;IAC9CsK,YAAY,IAAI9Y,MAAM,CAACwO,cAAP,GAAyBsK,YAAY,GAAG9Y,MAAM,CAACwO,cAA/D,CAAA;AACD,GAAA;;EACDhP,MAAM,CAACsZ,YAAP,GAAsBA,YAAtB,CAAA;EAEA,MAAMG,oBAAoB,GAAG,EAA7B,CAAA;EACA,MAAMC,mBAAmB,GAAG,EAA5B,CAAA;EAEA,MAAMC,gBAAgB,GAAG5V,YAAY,CACnC/D,MAAM,CAACsM,MAAP,CAAcpN,MAAd,CAAsBtC,EAAD,IAAQA,EAAE,CAACyF,SAAH,CAAa4O,QAAb,CAAsB,qBAAtB,CAA7B,CAAA,CAA2E,CAA3E,CADmC,CAArC,CAAA;EAIA,IAAI2I,eAAe,GAAG,CAAtB,CAAA;AACA,EAAA,IAAIC,cAAc,GAAG,CAArB,CA5C8D;;EA8C9D,IAAIF,gBAAgB,GAAGL,YAAvB,EAAqC;IACnCM,eAAe,GAAGN,YAAY,GAAGK,gBAAjC,CAAA;;AACA,IAAA,KAAK,IAAI7a,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwa,YAAY,GAAGK,gBAAnC,EAAqD7a,CAAC,IAAI,CAA1D,EAA6D;AAC3D,MAAA,MAAM2L,KAAK,GAAG3L,CAAC,GAAGqC,IAAI,CAAC0N,KAAL,CAAW/P,CAAC,GAAGwN,MAAM,CAACzT,MAAtB,CAAgCyT,GAAAA,MAAM,CAACzT,MAAzD,CAAA;MACA4gB,oBAAoB,CAACjW,IAArB,CAA0B8I,MAAM,CAACzT,MAAP,GAAgB4R,KAAhB,GAAwB,CAAlD,CAAA,CAAA;AACD,KAAA;AACF,GAND,MAMO,IAAIkP,gBAAAA;AAAiB;IAAwB3Z,MAAM,CAACsM,MAAP,CAAczT,MAAd,GAAuBygB,YAAY,GAAG,CAAnF,EAAsF;AAC3FO,IAAAA,cAAc,GAAGF,gBAAgB,IAAI3Z,MAAM,CAACsM,MAAP,CAAczT,MAAd,GAAuBygB,YAAY,GAAG,CAA1C,CAAjC,CAAA;;AACA,IAAA,KAAK,IAAIxa,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+a,cAApB,EAAoC/a,CAAC,IAAI,CAAzC,EAA4C;AAC1C,MAAA,MAAM2L,KAAK,GAAG3L,CAAC,GAAGqC,IAAI,CAAC0N,KAAL,CAAW/P,CAAC,GAAGwN,MAAM,CAACzT,MAAtB,CAAgCyT,GAAAA,MAAM,CAACzT,MAAzD,CAAA;MACA6gB,mBAAmB,CAAClW,IAApB,CAAyBiH,KAAzB,CAAA,CAAA;AACD,KAAA;AACF,GAAA;;AAEDgP,EAAAA,oBAAoB,CAAC9gB,OAArB,CAA8B8R,KAAD,IAAW;IACtCoB,QAAQ,CAACiO,OAAT,CAAiB9Z,MAAM,CAACsM,MAAP,CAAc7B,KAAd,CAAjB,CAAA,CAAA;GADF,CAAA,CAAA;AAGAiP,EAAAA,mBAAmB,CAAC/gB,OAApB,CAA6B8R,KAAD,IAAW;IACrCoB,QAAQ,CAACkO,MAAT,CAAgB/Z,MAAM,CAACsM,MAAP,CAAc7B,KAAd,CAAhB,CAAA,CAAA;GADF,CAAA,CAAA;AAGAzK,EAAAA,MAAM,CAACga,YAAP,EAAA,CAAA;;EACA,IAAIxZ,MAAM,CAACoQ,mBAAX,EAAgC;AAC9B5Q,IAAAA,MAAM,CAAC6Q,kBAAP,EAAA,CAAA;AACD,GAAA;;AAED,EAAA,IAAImG,OAAJ,EAAa;AACX,IAAA,IAAIyC,oBAAoB,CAAC5gB,MAArB,GAA8B,CAAlC,EAAqC;AACnC,MAAA,IAAI,OAAO2gB,cAAP,KAA0B,WAA9B,EAA2C;AACzCxZ,QAAAA,MAAM,CAACgX,OAAP,CAAehX,MAAM,CAAC0R,WAAP,GAAqBkI,eAApC,EAAqD,CAArD,EAAwD,KAAxD,EAA+D,IAA/D,CAAA,CAAA;AACD,OAFD,MAEO;QACL5Z,MAAM,CAAC2X,WAAP,CAAmB6B,cAAnB,EAAmC,CAAnC,EAAsC,KAAtC,EAA6C,IAA7C,CAAA,CAAA;AACD,OAAA;AACF,KAND,MAMO,IAAIE,mBAAmB,CAAC7gB,MAApB,GAA6B,CAAjC,EAAoC;AACzC,MAAA,IAAI,OAAO2gB,cAAP,KAA0B,WAA9B,EAA2C;AACzCxZ,QAAAA,MAAM,CAACgX,OAAP,CAAehX,MAAM,CAAC0R,WAAP,GAAqBmI,cAApC,EAAoD,CAApD,EAAuD,KAAvD,EAA8D,IAA9D,CAAA,CAAA;AACD,OAFD,MAEO;QACL7Z,MAAM,CAAC2X,WAAP,CAAmB6B,cAAnB,EAAmC,CAAnC,EAAsC,KAAtC,EAA6C,IAA7C,CAAA,CAAA;AACD,OAAA;AACF,KAAA;AACF,GAAA;;EAEDxZ,MAAM,CAACsX,cAAP,GAAwBA,cAAxB,CAAA;EACAtX,MAAM,CAACqX,cAAP,GAAwBA,cAAxB,CAAA;EAEArX,MAAM,CAACiH,IAAP,CAAY,SAAZ,CAAA,CAAA;AACD;;AC7Fc,SAASgT,WAAT,GAAuB;EACpC,MAAMja,MAAM,GAAG,IAAf,CAAA;EACA,MAAM;IAAEsM,MAAF;IAAU9L,MAAV;AAAkBqL,IAAAA,QAAAA;AAAlB,GAAA,GAA+B7L,MAArC,CAAA;AACA,EAAA,IAAI,CAACQ,MAAM,CAAC+O,IAAR,IAAiBvP,MAAM,CAACmM,OAAP,IAAkBnM,MAAM,CAACQ,MAAP,CAAc2L,OAAd,CAAsBC,OAA7D,EAAuE,OAAA;AACvEpM,EAAAA,MAAM,CAACga,YAAP,EAAA,CAAA;EAEA,MAAME,cAAc,GAAG,EAAvB,CAAA;AACA5N,EAAAA,MAAM,CAAC3T,OAAP,CAAgBkJ,OAAD,IAAa;AAC1B,IAAA,MAAM4I,KAAK,GACT,OAAO5I,OAAO,CAACsY,gBAAf,KAAoC,WAApC,GACItY,OAAO,CAAC2P,YAAR,CAAqB,yBAArB,CAAA,GAAkD,CADtD,GAEI3P,OAAO,CAACsY,gBAHd,CAAA;AAIAD,IAAAA,cAAc,CAACzP,KAAD,CAAd,GAAwB5I,OAAxB,CAAA;GALF,CAAA,CAAA;EAOAyK,MAAM,CAAC8N,UAAP,CAAkB,yBAAlB,CAAA,CAAA;AACAF,EAAAA,cAAc,CAACvhB,OAAf,CAAwBkJ,OAAD,IAAa;IAClCgK,QAAQ,CAACkO,MAAT,CAAgBlY,OAAhB,CAAA,CAAA;GADF,CAAA,CAAA;AAGA7B,EAAAA,MAAM,CAACga,YAAP,EAAA,CAAA;AACAha,EAAAA,MAAM,CAACgX,OAAP,CAAehX,MAAM,CAACyU,SAAtB,EAAiC,CAAjC,CAAA,CAAA;AACD;;AChBD,WAAe;EACb8E,UADa;EAEbpB,OAFa;AAGb8B,EAAAA,WAAAA;AAHa,CAAf;;ACJe,SAASI,aAAT,CAAuBC,MAAvB,EAA+B;EAC5C,MAAMta,MAAM,GAAG,IAAf,CAAA;EACA,IACE,CAACA,MAAM,CAACQ,MAAP,CAAc+Z,aAAf,IACCva,MAAM,CAACQ,MAAP,CAAckQ,aAAd,IAA+B1Q,MAAM,CAACwa,QADvC,IAEAxa,MAAM,CAACQ,MAAP,CAAcmN,OAHhB,EAKE,OAAA;AACF,EAAA,MAAM/Q,EAAE,GAAGoD,MAAM,CAACQ,MAAP,CAAcia,iBAAd,KAAoC,WAApC,GAAkDza,MAAM,CAACpD,EAAzD,GAA8DoD,MAAM,CAACU,SAAhF,CAAA;AACA9D,EAAAA,EAAE,CAAC/C,KAAH,CAAS6gB,MAAT,GAAkB,MAAlB,CAAA;EACA9d,EAAE,CAAC/C,KAAH,CAAS6gB,MAAT,GAAkBJ,MAAM,GAAG,UAAH,GAAgB,MAAxC,CAAA;AACD;;ACXc,SAASK,eAAT,GAA2B;EACxC,MAAM3a,MAAM,GAAG,IAAf,CAAA;;AACA,EAAA,IAAKA,MAAM,CAACQ,MAAP,CAAckQ,aAAd,IAA+B1Q,MAAM,CAACwa,QAAvC,IAAoDxa,MAAM,CAACQ,MAAP,CAAcmN,OAAtE,EAA+E;AAC7E,IAAA,OAAA;AACD,GAAA;;AACD3N,EAAAA,MAAM,CAACA,MAAM,CAACQ,MAAP,CAAcia,iBAAd,KAAoC,WAApC,GAAkD,IAAlD,GAAyD,WAA1D,CAAN,CAA6E5gB,KAA7E,CAAmF6gB,MAAnF,GAA4F,EAA5F,CAAA;AACD;;ACHD,iBAAe;EACbL,aADa;AAEbM,EAAAA,eAAAA;AAFa,CAAf;;ACCA,SAASC,cAAT,CAAwB3Y,QAAxB,EAAkC4Y,IAAlC,EAA+C;AAAA,EAAA,IAAbA,IAAa,KAAA,KAAA,CAAA,EAAA;AAAbA,IAAAA,IAAa,GAAN,IAAM,CAAA;AAAA,GAAA;;EAC7C,SAASC,aAAT,CAAuBle,EAAvB,EAA2B;AACzB,IAAA,IAAI,CAACA,EAAD,IAAOA,EAAE,KAAKjC,WAAW,EAAzB,IAA+BiC,EAAE,KAAKT,SAAS,EAAnD,EAAuD,OAAO,IAAP,CAAA;IACvD,IAAIS,EAAE,CAACme,YAAP,EAAqBne,EAAE,GAAGA,EAAE,CAACme,YAAR,CAAA;AACrB,IAAA,MAAMC,KAAK,GAAGpe,EAAE,CAACqY,OAAH,CAAWhT,QAAX,CAAd,CAAA;;AACA,IAAA,IAAI,CAAC+Y,KAAD,IAAU,CAACpe,EAAE,CAACqe,WAAlB,EAA+B;AAC7B,MAAA,OAAO,IAAP,CAAA;AACD,KAAA;;IACD,OAAOD,KAAK,IAAIF,aAAa,CAACle,EAAE,CAACqe,WAAH,EAAiB7gB,CAAAA,IAAlB,CAA7B,CAAA;AACD,GAAA;;EACD,OAAO0gB,aAAa,CAACD,IAAD,CAApB,CAAA;AACD,CAAA;;AAEc,SAASK,YAAT,CAAsBnR,KAAtB,EAA6B;EAC1C,MAAM/J,MAAM,GAAG,IAAf,CAAA;EACA,MAAMnF,QAAQ,GAAGF,WAAW,EAA5B,CAAA;EACA,MAAM0B,MAAM,GAAGF,SAAS,EAAxB,CAAA;AAEA,EAAA,MAAMwO,IAAI,GAAG3K,MAAM,CAACmb,eAApB,CAAA;AACAxQ,EAAAA,IAAI,CAACyQ,OAAL,CAAa5X,IAAb,CAAkBuG,KAAlB,CAAA,CAAA;EACA,MAAM;IAAEvJ,MAAF;IAAU6a,OAAV;AAAmBjP,IAAAA,OAAAA;AAAnB,GAAA,GAA+BpM,MAArC,CAAA;EACA,IAAI,CAACoM,OAAL,EAAc,OAAA;EACd,IAAI,CAAC5L,MAAM,CAAC+Z,aAAR,IAAyBxQ,KAAK,CAACuR,WAAN,KAAsB,OAAnD,EAA4D,OAAA;;AAE5D,EAAA,IAAItb,MAAM,CAACoW,SAAP,IAAoB5V,MAAM,CAAC6V,8BAA/B,EAA+D;AAC7D,IAAA,OAAA;AACD,GAAA;;AACD,EAAA,IAAI,CAACrW,MAAM,CAACoW,SAAR,IAAqB5V,MAAM,CAACmN,OAA5B,IAAuCnN,MAAM,CAAC+O,IAAlD,EAAwD;AACtDvP,IAAAA,MAAM,CAACmY,OAAP,EAAA,CAAA;AACD,GAAA;;EACD,IAAI3b,CAAC,GAAGuN,KAAR,CAAA;EACA,IAAIvN,CAAC,CAAC+e,aAAN,EAAqB/e,CAAC,GAAGA,CAAC,CAAC+e,aAAN,CAAA;AACrB,EAAA,IAAIC,QAAQ,GAAGhf,CAAC,CAAChE,MAAjB,CAAA;;AAEA,EAAA,IAAIgI,MAAM,CAACia,iBAAP,KAA6B,SAAjC,EAA4C;IAC1C,IAAI,CAACza,MAAM,CAACU,SAAP,CAAiBuQ,QAAjB,CAA0BuK,QAA1B,CAAL,EAA0C,OAAA;AAC3C,GAAA;;EACD,IAAI,OAAA,IAAWhf,CAAX,IAAgBA,CAAC,CAACif,KAAF,KAAY,CAAhC,EAAmC,OAAA;EACnC,IAAI,QAAA,IAAYjf,CAAZ,IAAiBA,CAAC,CAACkf,MAAF,GAAW,CAAhC,EAAmC,OAAA;EACnC,IAAI/Q,IAAI,CAACgR,SAAL,IAAkBhR,IAAI,CAACiR,OAA3B,EAAoC,OA1BM;;AA6B1C,EAAA,MAAMC,oBAAoB,GAAG,CAAC,CAACrb,MAAM,CAACsb,cAAT,IAA2Btb,MAAM,CAACsb,cAAP,KAA0B,EAAlF,CA7B0C;;AA+B1C,EAAA,MAAMC,SAAS,GAAGhS,KAAK,CAACiS,YAAN,GAAqBjS,KAAK,CAACiS,YAAN,EAArB,GAA4CjS,KAAK,CAACkS,IAApE,CAAA;;AACA,EAAA,IAAIJ,oBAAoB,IAAIrf,CAAC,CAAChE,MAA1B,IAAoCgE,CAAC,CAAChE,MAAF,CAAS0jB,UAA7C,IAA2DH,SAA/D,EAA0E;AACxEP,IAAAA,QAAQ,GAAGO,SAAS,CAAC,CAAD,CAApB,CAAA;AACD,GAAA;;AAED,EAAA,MAAMI,iBAAiB,GAAG3b,MAAM,CAAC2b,iBAAP,GACtB3b,MAAM,CAAC2b,iBADe,GAErB,CAAA,CAAA,EAAG3b,MAAM,CAACsb,cAAe,CAF9B,CAAA,CAAA;AAGA,EAAA,MAAMM,cAAc,GAAG,CAAC,EAAE5f,CAAC,CAAChE,MAAF,IAAYgE,CAAC,CAAChE,MAAF,CAAS0jB,UAAvB,CAAxB,CAvC0C;;EA0C1C,IACE1b,MAAM,CAAC6b,SAAP,KACCD,cAAc,GACXxB,cAAc,CAACuB,iBAAD,EAAoBX,QAApB,CADH,GAEXA,QAAQ,CAACvG,OAAT,CAAiBkH,iBAAjB,CAHJ,CADF,EAKE;IACAnc,MAAM,CAACsc,UAAP,GAAoB,IAApB,CAAA;AACA,IAAA,OAAA;AACD,GAAA;;EAED,IAAI9b,MAAM,CAAC+b,YAAX,EAAyB;IACvB,IAAI,CAACf,QAAQ,CAACvG,OAAT,CAAiBzU,MAAM,CAAC+b,YAAxB,CAAL,EAA4C,OAAA;AAC7C,GAAA;;AAEDlB,EAAAA,OAAO,CAACmB,QAAR,GAAmBhgB,CAAC,CAACigB,KAArB,CAAA;AACApB,EAAAA,OAAO,CAACqB,QAAR,GAAmBlgB,CAAC,CAACmgB,KAArB,CAAA;AACA,EAAA,MAAMC,MAAM,GAAGvB,OAAO,CAACmB,QAAvB,CAAA;AACA,EAAA,MAAMK,MAAM,GAAGxB,OAAO,CAACqB,QAAvB,CA3D0C;;EA+D1C,MAAMI,kBAAkB,GAAGtc,MAAM,CAACsc,kBAAP,IAA6Btc,MAAM,CAACuc,qBAA/D,CAAA;EACA,MAAMC,kBAAkB,GAAGxc,MAAM,CAACwc,kBAAP,IAA6Bxc,MAAM,CAACyc,qBAA/D,CAAA;;AACA,EAAA,IACEH,kBAAkB,KACjBF,MAAM,IAAII,kBAAV,IAAgCJ,MAAM,IAAIvgB,MAAM,CAAC6gB,UAAP,GAAoBF,kBAD7C,CADpB,EAGE;IACA,IAAIF,kBAAkB,KAAK,SAA3B,EAAsC;AACpC/S,MAAAA,KAAK,CAACoT,cAAN,EAAA,CAAA;AACD,KAFD,MAEO;AACL,MAAA,OAAA;AACD,KAAA;AACF,GAAA;;AAED7kB,EAAAA,MAAM,CAACiT,MAAP,CAAcZ,IAAd,EAAoB;AAClBgR,IAAAA,SAAS,EAAE,IADO;AAElBC,IAAAA,OAAO,EAAE,KAFS;AAGlBwB,IAAAA,mBAAmB,EAAE,IAHH;AAIlBC,IAAAA,WAAW,EAAEre,SAJK;AAKlBse,IAAAA,WAAW,EAAEte,SAAAA;GALf,CAAA,CAAA;EAQAqc,OAAO,CAACuB,MAAR,GAAiBA,MAAjB,CAAA;EACAvB,OAAO,CAACwB,MAAR,GAAiBA,MAAjB,CAAA;AACAlS,EAAAA,IAAI,CAAC4S,cAAL,GAAsB5gB,GAAG,EAAzB,CAAA;EACAqD,MAAM,CAACsc,UAAP,GAAoB,IAApB,CAAA;AACAtc,EAAAA,MAAM,CAAC+K,UAAP,EAAA,CAAA;EACA/K,MAAM,CAACwd,cAAP,GAAwBxe,SAAxB,CAAA;EACA,IAAIwB,MAAM,CAACwY,SAAP,GAAmB,CAAvB,EAA0BrO,IAAI,CAAC8S,kBAAL,GAA0B,KAA1B,CAAA;EAC1B,IAAIN,cAAc,GAAG,IAArB,CAAA;;EACA,IAAI3B,QAAQ,CAACtZ,OAAT,CAAiByI,IAAI,CAAC+S,iBAAtB,CAAJ,EAA8C;AAC5CP,IAAAA,cAAc,GAAG,KAAjB,CAAA;;AACA,IAAA,IAAI3B,QAAQ,CAACpiB,QAAT,KAAsB,QAA1B,EAAoC;MAClCuR,IAAI,CAACgR,SAAL,GAAiB,KAAjB,CAAA;AACD,KAAA;AACF,GAAA;;EACD,IACE9gB,QAAQ,CAAC3B,aAAT,IACA2B,QAAQ,CAAC3B,aAAT,CAAuBgJ,OAAvB,CAA+ByI,IAAI,CAAC+S,iBAApC,CADA,IAEA7iB,QAAQ,CAAC3B,aAAT,KAA2BsiB,QAH7B,EAIE;IACA3gB,QAAQ,CAAC3B,aAAT,CAAuBC,IAAvB,EAAA,CAAA;AACD,GAAA;;EAED,MAAMwkB,oBAAoB,GACxBR,cAAc,IAAInd,MAAM,CAAC4d,cAAzB,IAA2Cpd,MAAM,CAACqd,wBADpD,CAAA;;EAEA,IACE,CAACrd,MAAM,CAACsd,6BAAP,IAAwCH,oBAAzC,KACA,CAACnC,QAAQ,CAACuC,iBAFZ,EAGE;AACAvhB,IAAAA,CAAC,CAAC2gB,cAAF,EAAA,CAAA;AACD,GAAA;;EACD,IACEnd,MAAM,CAACQ,MAAP,CAAcwd,QAAd,IACAhe,MAAM,CAACQ,MAAP,CAAcwd,QAAd,CAAuB5R,OADvB,IAEApM,MAAM,CAACge,QAFP,IAGAhe,MAAM,CAACoW,SAHP,IAIA,CAAC5V,MAAM,CAACmN,OALV,EAME;IACA3N,MAAM,CAACge,QAAP,CAAgB9C,YAAhB,EAAA,CAAA;AACD,GAAA;;AACDlb,EAAAA,MAAM,CAACiH,IAAP,CAAY,YAAZ,EAA0BzK,CAA1B,CAAA,CAAA;AACD;;AC1Ic,SAASyhB,WAAT,CAAqBlU,KAArB,EAA4B;EACzC,MAAMlP,QAAQ,GAAGF,WAAW,EAA5B,CAAA;EACA,MAAMqF,MAAM,GAAG,IAAf,CAAA;AACA,EAAA,MAAM2K,IAAI,GAAG3K,MAAM,CAACmb,eAApB,CAAA;EACA,MAAM;IAAE3a,MAAF;IAAU6a,OAAV;AAAmBtP,IAAAA,YAAY,EAAEC,GAAjC;AAAsCI,IAAAA,OAAAA;AAAtC,GAAA,GAAkDpM,MAAxD,CAAA;EACA,IAAI,CAACoM,OAAL,EAAc,OAAA;EACd,IAAI,CAAC5L,MAAM,CAAC+Z,aAAR,IAAyBxQ,KAAK,CAACuR,WAAN,KAAsB,OAAnD,EAA4D,OAAA;EAE5D,IAAI9e,CAAC,GAAGuN,KAAR,CAAA;EACA,IAAIvN,CAAC,CAAC+e,aAAN,EAAqB/e,CAAC,GAAGA,CAAC,CAAC+e,aAAN,CAAA;;AACrB,EAAA,IAAI,CAAC5Q,IAAI,CAACgR,SAAV,EAAqB;AACnB,IAAA,IAAIhR,IAAI,CAAC2S,WAAL,IAAoB3S,IAAI,CAAC0S,WAA7B,EAA0C;AACxCrd,MAAAA,MAAM,CAACiH,IAAP,CAAY,mBAAZ,EAAiCzK,CAAjC,CAAA,CAAA;AACD,KAAA;;AACD,IAAA,OAAA;AACD,GAAA;;AAED,EAAA,MAAM0hB,YAAY,GAAGvT,IAAI,CAACyQ,OAAL,CAAa+C,SAAb,CAAwBC,QAAD,IAAcA,QAAQ,CAACC,SAAT,KAAuB7hB,CAAC,CAAC6hB,SAA9D,CAArB,CAAA;EACA,IAAIH,YAAY,IAAI,CAApB,EAAuBvT,IAAI,CAACyQ,OAAL,CAAa8C,YAAb,CAAA,GAA6B1hB,CAA7B,CAAA;AACvB,EAAA,MAAM8hB,WAAW,GAAG3T,IAAI,CAACyQ,OAAL,CAAaviB,MAAb,GAAsB,CAAtB,GAA0B8R,IAAI,CAACyQ,OAAL,CAAa,CAAb,CAA1B,GAA4C5e,CAAhE,CAAA;AACA,EAAA,MAAMigB,KAAK,GAAG6B,WAAW,CAAC7B,KAA1B,CAAA;AACA,EAAA,MAAME,KAAK,GAAG2B,WAAW,CAAC3B,KAA1B,CAAA;;EAEA,IAAIngB,CAAC,CAAC+hB,uBAAN,EAA+B;IAC7BlD,OAAO,CAACuB,MAAR,GAAiBH,KAAjB,CAAA;IACApB,OAAO,CAACwB,MAAR,GAAiBF,KAAjB,CAAA;AACA,IAAA,OAAA;AACD,GAAA;;AACD,EAAA,IAAI,CAAC3c,MAAM,CAAC4d,cAAZ,EAA4B;IAC1B,IAAI,CAACphB,CAAC,CAAChE,MAAF,CAAS0J,OAAT,CAAiByI,IAAI,CAAC+S,iBAAtB,CAAL,EAA+C;MAC7C1d,MAAM,CAACsc,UAAP,GAAoB,KAApB,CAAA;AACD,KAAA;;IACD,IAAI3R,IAAI,CAACgR,SAAT,EAAoB;AAClBrjB,MAAAA,MAAM,CAACiT,MAAP,CAAc8P,OAAd,EAAuB;AACrBuB,QAAAA,MAAM,EAAEH,KADa;AAErBI,QAAAA,MAAM,EAAEF,KAFa;AAGrBH,QAAAA,QAAQ,EAAEC,KAHW;AAIrBC,QAAAA,QAAQ,EAAEC,KAAAA;OAJZ,CAAA,CAAA;AAMAhS,MAAAA,IAAI,CAAC4S,cAAL,GAAsB5gB,GAAG,EAAzB,CAAA;AACD,KAAA;;AACD,IAAA,OAAA;AACD,GAAA;;EACD,IAAI6D,MAAM,CAACge,mBAAP,IAA8B,CAAChe,MAAM,CAAC+O,IAA1C,EAAgD;AAC9C,IAAA,IAAIvP,MAAM,CAACmL,UAAP,EAAJ,EAAyB;AACvB;AACA,MAAA,IACGwR,KAAK,GAAGtB,OAAO,CAACwB,MAAhB,IAA0B7c,MAAM,CAACI,SAAP,IAAoBJ,MAAM,CAAC8S,YAAP,EAA/C,IACC6J,KAAK,GAAGtB,OAAO,CAACwB,MAAhB,IAA0B7c,MAAM,CAACI,SAAP,IAAoBJ,MAAM,CAACqS,YAAP,EAFjD,EAGE;QACA1H,IAAI,CAACgR,SAAL,GAAiB,KAAjB,CAAA;QACAhR,IAAI,CAACiR,OAAL,GAAe,KAAf,CAAA;AACA,QAAA,OAAA;AACD,OAAA;AACF,KAVD,MAUO,IACJa,KAAK,GAAGpB,OAAO,CAACuB,MAAhB,IAA0B5c,MAAM,CAACI,SAAP,IAAoBJ,MAAM,CAAC8S,YAAP,EAA/C,IACC2J,KAAK,GAAGpB,OAAO,CAACuB,MAAhB,IAA0B5c,MAAM,CAACI,SAAP,IAAoBJ,MAAM,CAACqS,YAAP,EAF1C,EAGL;AACA,MAAA,OAAA;AACD,KAAA;AACF,GAAA;;EACD,IAAIxX,QAAQ,CAAC3B,aAAb,EAA4B;AAC1B,IAAA,IAAIsD,CAAC,CAAChE,MAAF,KAAaqC,QAAQ,CAAC3B,aAAtB,IAAuCsD,CAAC,CAAChE,MAAF,CAAS0J,OAAT,CAAiByI,IAAI,CAAC+S,iBAAtB,CAA3C,EAAqF;MACnF/S,IAAI,CAACiR,OAAL,GAAe,IAAf,CAAA;MACA5b,MAAM,CAACsc,UAAP,GAAoB,KAApB,CAAA;AACA,MAAA,OAAA;AACD,KAAA;AACF,GAAA;;EACD,IAAI3R,IAAI,CAACyS,mBAAT,EAA8B;AAC5Bpd,IAAAA,MAAM,CAACiH,IAAP,CAAY,WAAZ,EAAyBzK,CAAzB,CAAA,CAAA;AACD,GAAA;;EACD,IAAIA,CAAC,CAACiiB,aAAF,IAAmBjiB,CAAC,CAACiiB,aAAF,CAAgB5lB,MAAhB,GAAyB,CAAhD,EAAmD,OAAA;EAEnDwiB,OAAO,CAACmB,QAAR,GAAmBC,KAAnB,CAAA;EACApB,OAAO,CAACqB,QAAR,GAAmBC,KAAnB,CAAA;EAEA,MAAM+B,KAAK,GAAGrD,OAAO,CAACmB,QAAR,GAAmBnB,OAAO,CAACuB,MAAzC,CAAA;EACA,MAAM+B,KAAK,GAAGtD,OAAO,CAACqB,QAAR,GAAmBrB,OAAO,CAACwB,MAAzC,CAAA;EACA,IAAI7c,MAAM,CAACQ,MAAP,CAAcwY,SAAd,IAA2B7X,IAAI,CAACyd,IAAL,CAAUF,KAAK,IAAI,CAAT,GAAaC,KAAK,IAAI,CAAhC,CAAA,GAAqC3e,MAAM,CAACQ,MAAP,CAAcwY,SAAlF,EACE,OAAA;;AAEF,EAAA,IAAI,OAAOrO,IAAI,CAAC0S,WAAZ,KAA4B,WAAhC,EAA6C;AAC3C,IAAA,IAAIwB,UAAJ,CAAA;;IACA,IACG7e,MAAM,CAACkL,YAAP,EAAA,IAAyBmQ,OAAO,CAACqB,QAAR,KAAqBrB,OAAO,CAACwB,MAAvD,IACC7c,MAAM,CAACmL,UAAP,EAAA,IAAuBkQ,OAAO,CAACmB,QAAR,KAAqBnB,OAAO,CAACuB,MAFvD,EAGE;MACAjS,IAAI,CAAC0S,WAAL,GAAmB,KAAnB,CAAA;AACD,KALD,MAKO;AACL;MACA,IAAIqB,KAAK,GAAGA,KAAR,GAAgBC,KAAK,GAAGA,KAAxB,IAAiC,EAArC,EAAyC;QACvCE,UAAU,GAAI1d,IAAI,CAAC2d,KAAL,CAAW3d,IAAI,CAAC4N,GAAL,CAAS4P,KAAT,CAAX,EAA4Bxd,IAAI,CAAC4N,GAAL,CAAS2P,KAAT,CAA5B,IAA+C,GAAhD,GAAuDvd,IAAI,CAACK,EAAzE,CAAA;AACAmJ,QAAAA,IAAI,CAAC0S,WAAL,GAAmBrd,MAAM,CAACkL,YAAP,KACf2T,UAAU,GAAGre,MAAM,CAACqe,UADL,GAEf,EAAA,GAAKA,UAAL,GAAkBre,MAAM,CAACqe,UAF7B,CAAA;AAGD,OAAA;AACF,KAAA;AACF,GAAA;;EACD,IAAIlU,IAAI,CAAC0S,WAAT,EAAsB;AACpBrd,IAAAA,MAAM,CAACiH,IAAP,CAAY,mBAAZ,EAAiCzK,CAAjC,CAAA,CAAA;AACD,GAAA;;AACD,EAAA,IAAI,OAAOmO,IAAI,CAAC2S,WAAZ,KAA4B,WAAhC,EAA6C;AAC3C,IAAA,IAAIjC,OAAO,CAACmB,QAAR,KAAqBnB,OAAO,CAACuB,MAA7B,IAAuCvB,OAAO,CAACqB,QAAR,KAAqBrB,OAAO,CAACwB,MAAxE,EAAgF;MAC9ElS,IAAI,CAAC2S,WAAL,GAAmB,IAAnB,CAAA;AACD,KAAA;AACF,GAAA;;AACD,EAAA,IACE3S,IAAI,CAAC0S,WAAL,IACCrd,MAAM,CAAC+e,IAAP,IAAe/e,MAAM,CAACQ,MAAP,CAAcue,IAA7B,IAAqC/e,MAAM,CAACQ,MAAP,CAAcue,IAAd,CAAmB3S,OAAxD,IAAmEzB,IAAI,CAACyQ,OAAL,CAAaviB,MAAb,GAAsB,CAF5F,EAGE;IACA8R,IAAI,CAACgR,SAAL,GAAiB,KAAjB,CAAA;AACA,IAAA,OAAA;AACD,GAAA;;AACD,EAAA,IAAI,CAAChR,IAAI,CAAC2S,WAAV,EAAuB;AACrB,IAAA,OAAA;AACD,GAAA;;EACDtd,MAAM,CAACsc,UAAP,GAAoB,KAApB,CAAA;;EACA,IAAI,CAAC9b,MAAM,CAACmN,OAAR,IAAmBnR,CAAC,CAACwiB,UAAzB,EAAqC;AACnCxiB,IAAAA,CAAC,CAAC2gB,cAAF,EAAA,CAAA;AACD,GAAA;;EACD,IAAI3c,MAAM,CAACye,wBAAP,IAAmC,CAACze,MAAM,CAAC0e,MAA/C,EAAuD;AACrD1iB,IAAAA,CAAC,CAAC2iB,eAAF,EAAA,CAAA;AACD,GAAA;;AAED,EAAA,IAAI,CAACxU,IAAI,CAACiR,OAAV,EAAmB;IACjB,IAAIpb,MAAM,CAAC+O,IAAP,IAAe,CAAC/O,MAAM,CAACmN,OAA3B,EAAoC;AAClC3N,MAAAA,MAAM,CAACmY,OAAP,EAAA,CAAA;AACD,KAAA;;AACDxN,IAAAA,IAAI,CAACyU,cAAL,GAAsBpf,MAAM,CAAClD,YAAP,EAAtB,CAAA;IACAkD,MAAM,CAACsR,aAAP,CAAqB,CAArB,CAAA,CAAA;;IACA,IAAItR,MAAM,CAACoW,SAAX,EAAsB;AACpB,MAAA,CAAC,qBAAD,EAAwB,eAAxB,EAAyCzd,OAAzC,CAAkD0mB,SAAD,IAAe;QAC9D,MAAMC,GAAG,GAAG,IAAIjjB,MAAM,CAACf,WAAX,CAAuB+jB,SAAvB,EAAkC;AAC5CE,UAAAA,OAAO,EAAE,IADmC;AAE5CP,UAAAA,UAAU,EAAE,IAAA;AAFgC,SAAlC,CAAZ,CAAA;AAIAhf,QAAAA,MAAM,CAACU,SAAP,CAAiB8e,aAAjB,CAA+BF,GAA/B,CAAA,CAAA;OALF,CAAA,CAAA;AAOD,KAAA;;AACD3U,IAAAA,IAAI,CAAC8U,mBAAL,GAA2B,KAA3B,CAfiB;;AAiBjB,IAAA,IAAIjf,MAAM,CAACkf,UAAP,KAAsB1f,MAAM,CAACqX,cAAP,KAA0B,IAA1B,IAAkCrX,MAAM,CAACsX,cAAP,KAA0B,IAAlF,CAAJ,EAA6F;MAC3FtX,MAAM,CAACqa,aAAP,CAAqB,IAArB,CAAA,CAAA;AACD,KAAA;;AACDra,IAAAA,MAAM,CAACiH,IAAP,CAAY,iBAAZ,EAA+BzK,CAA/B,CAAA,CAAA;AACD,GAAA;;AACDwD,EAAAA,MAAM,CAACiH,IAAP,CAAY,YAAZ,EAA0BzK,CAA1B,CAAA,CAAA;EACAmO,IAAI,CAACiR,OAAL,GAAe,IAAf,CAAA;EAEA,IAAI+D,IAAI,GAAG3f,MAAM,CAACkL,YAAP,EAAwBwT,GAAAA,KAAxB,GAAgCC,KAA3C,CAAA;EACAtD,OAAO,CAACsE,IAAR,GAAeA,IAAf,CAAA;EAEAA,IAAI,IAAInf,MAAM,CAACof,UAAf,CAAA;AACA,EAAA,IAAI5T,GAAJ,EAAS2T,IAAI,GAAG,CAACA,IAAR,CAAA;EAET3f,MAAM,CAACwd,cAAP,GAAwBmC,IAAI,GAAG,CAAP,GAAW,MAAX,GAAoB,MAA5C,CAAA;AACAhV,EAAAA,IAAI,CAAC6K,gBAAL,GAAwBmK,IAAI,GAAGhV,IAAI,CAACyU,cAApC,CAAA;EAEA,IAAIS,mBAAmB,GAAG,IAA1B,CAAA;AACA,EAAA,IAAIC,eAAe,GAAGtf,MAAM,CAACsf,eAA7B,CAAA;;EACA,IAAItf,MAAM,CAACge,mBAAX,EAAgC;AAC9BsB,IAAAA,eAAe,GAAG,CAAlB,CAAA;AACD,GAAA;;AACD,EAAA,IAAIH,IAAI,GAAG,CAAP,IAAYhV,IAAI,CAAC6K,gBAAL,GAAwBxV,MAAM,CAACqS,YAAP,EAAxC,EAA+D;AAC7DwN,IAAAA,mBAAmB,GAAG,KAAtB,CAAA;IACA,IAAIrf,MAAM,CAACuf,UAAX,EACEpV,IAAI,CAAC6K,gBAAL,GACExV,MAAM,CAACqS,YAAP,EACA,GAAA,CADA,GAEA,CAAC,CAACrS,MAAM,CAACqS,YAAP,EAAD,GAAyB1H,IAAI,CAACyU,cAA9B,GAA+CO,IAAhD,KAAyDG,eAH3D,CAAA;AAIH,GAPD,MAOO,IAAIH,IAAI,GAAG,CAAP,IAAYhV,IAAI,CAAC6K,gBAAL,GAAwBxV,MAAM,CAAC8S,YAAP,EAAxC,EAA+D;AACpE+M,IAAAA,mBAAmB,GAAG,KAAtB,CAAA;IACA,IAAIrf,MAAM,CAACuf,UAAX,EACEpV,IAAI,CAAC6K,gBAAL,GACExV,MAAM,CAAC8S,YAAP,EAAA,GACA,CADA,GAEA,CAAC9S,MAAM,CAAC8S,YAAP,EAAA,GAAwBnI,IAAI,CAACyU,cAA7B,GAA8CO,IAA/C,KAAwDG,eAH1D,CAAA;AAIH,GAAA;;AAED,EAAA,IAAID,mBAAJ,EAAyB;IACvBrjB,CAAC,CAAC+hB,uBAAF,GAA4B,IAA5B,CAAA;AACD,GArLwC;;;AAwLzC,EAAA,IACE,CAACve,MAAM,CAACqX,cAAR,IACArX,MAAM,CAACwd,cAAP,KAA0B,MAD1B,IAEA7S,IAAI,CAAC6K,gBAAL,GAAwB7K,IAAI,CAACyU,cAH/B,EAIE;AACAzU,IAAAA,IAAI,CAAC6K,gBAAL,GAAwB7K,IAAI,CAACyU,cAA7B,CAAA;AACD,GAAA;;AACD,EAAA,IACE,CAACpf,MAAM,CAACsX,cAAR,IACAtX,MAAM,CAACwd,cAAP,KAA0B,MAD1B,IAEA7S,IAAI,CAAC6K,gBAAL,GAAwB7K,IAAI,CAACyU,cAH/B,EAIE;AACAzU,IAAAA,IAAI,CAAC6K,gBAAL,GAAwB7K,IAAI,CAACyU,cAA7B,CAAA;AACD,GAAA;;EACD,IAAI,CAACpf,MAAM,CAACsX,cAAR,IAA0B,CAACtX,MAAM,CAACqX,cAAtC,EAAsD;AACpD1M,IAAAA,IAAI,CAAC6K,gBAAL,GAAwB7K,IAAI,CAACyU,cAA7B,CAAA;AACD,GAxMwC;;;AA2MzC,EAAA,IAAI5e,MAAM,CAACwY,SAAP,GAAmB,CAAvB,EAA0B;AACxB,IAAA,IAAI7X,IAAI,CAAC4N,GAAL,CAAS4Q,IAAT,CAAA,GAAiBnf,MAAM,CAACwY,SAAxB,IAAqCrO,IAAI,CAAC8S,kBAA9C,EAAkE;AAChE,MAAA,IAAI,CAAC9S,IAAI,CAAC8S,kBAAV,EAA8B;QAC5B9S,IAAI,CAAC8S,kBAAL,GAA0B,IAA1B,CAAA;AACApC,QAAAA,OAAO,CAACuB,MAAR,GAAiBvB,OAAO,CAACmB,QAAzB,CAAA;AACAnB,QAAAA,OAAO,CAACwB,MAAR,GAAiBxB,OAAO,CAACqB,QAAzB,CAAA;AACA/R,QAAAA,IAAI,CAAC6K,gBAAL,GAAwB7K,IAAI,CAACyU,cAA7B,CAAA;QACA/D,OAAO,CAACsE,IAAR,GAAe3f,MAAM,CAACkL,YAAP,EAAA,GACXmQ,OAAO,CAACmB,QAAR,GAAmBnB,OAAO,CAACuB,MADhB,GAEXvB,OAAO,CAACqB,QAAR,GAAmBrB,OAAO,CAACwB,MAF/B,CAAA;AAGA,QAAA,OAAA;AACD,OAAA;AACF,KAXD,MAWO;AACLlS,MAAAA,IAAI,CAAC6K,gBAAL,GAAwB7K,IAAI,CAACyU,cAA7B,CAAA;AACA,MAAA,OAAA;AACD,KAAA;AACF,GAAA;;EAED,IAAI,CAAC5e,MAAM,CAACwf,YAAR,IAAwBxf,MAAM,CAACmN,OAAnC,EAA4C,OA7NH;;AAgOzC,EAAA,IACGnN,MAAM,CAACwd,QAAP,IAAmBxd,MAAM,CAACwd,QAAP,CAAgB5R,OAAnC,IAA8CpM,MAAM,CAACge,QAAtD,IACAxd,MAAM,CAACoQ,mBAFT,EAGE;AACA5Q,IAAAA,MAAM,CAACsU,iBAAP,EAAA,CAAA;AACAtU,IAAAA,MAAM,CAAC2T,mBAAP,EAAA,CAAA;AACD,GAAA;;AACD,EAAA,IAAI3T,MAAM,CAACQ,MAAP,CAAcwd,QAAd,IAA0Bxd,MAAM,CAACwd,QAAP,CAAgB5R,OAA1C,IAAqDpM,MAAM,CAACge,QAAhE,EAA0E;IACxEhe,MAAM,CAACge,QAAP,CAAgBC,WAAhB,EAAA,CAAA;AACD,GAzOwC;;;AA2OzCje,EAAAA,MAAM,CAAC2S,cAAP,CAAsBhI,IAAI,CAAC6K,gBAA3B,EA3OyC;;AA6OzCxV,EAAAA,MAAM,CAACyV,YAAP,CAAoB9K,IAAI,CAAC6K,gBAAzB,CAAA,CAAA;AACD;;AC/Oc,SAASyK,UAAT,CAAoBlW,KAApB,EAA2B;EACxC,MAAM/J,MAAM,GAAG,IAAf,CAAA;AACA,EAAA,MAAM2K,IAAI,GAAG3K,MAAM,CAACmb,eAApB,CAAA;AACA,EAAA,MAAM+C,YAAY,GAAGvT,IAAI,CAACyQ,OAAL,CAAa+C,SAAb,CAAwBC,QAAD,IAAcA,QAAQ,CAACC,SAAT,KAAuBtU,KAAK,CAACsU,SAAlE,CAArB,CAAA;;EACA,IAAIH,YAAY,IAAI,CAApB,EAAuB;AACrBvT,IAAAA,IAAI,CAACyQ,OAAL,CAAa5R,MAAb,CAAoB0U,YAApB,EAAkC,CAAlC,CAAA,CAAA;AACD,GAAA;;AACD,EAAA,IAAI,CAAC,eAAD,EAAkB,YAAlB,EAAgC,cAAhC,CAAgDgC,CAAAA,QAAhD,CAAyDnW,KAAK,CAACoW,IAA/D,CAAJ,EAA0E,OAAA;EAE1E,MAAM;IAAE3f,MAAF;IAAU6a,OAAV;AAAmBtP,IAAAA,YAAY,EAAEC,GAAjC;IAAsCU,UAAtC;AAAkDN,IAAAA,OAAAA;AAAlD,GAAA,GAA8DpM,MAApE,CAAA;EACA,IAAI,CAACoM,OAAL,EAAc,OAAA;EACd,IAAI,CAAC5L,MAAM,CAAC+Z,aAAR,IAAyBxQ,KAAK,CAACuR,WAAN,KAAsB,OAAnD,EAA4D,OAAA;EAE5D,IAAI9e,CAAC,GAAGuN,KAAR,CAAA;EACA,IAAIvN,CAAC,CAAC+e,aAAN,EAAqB/e,CAAC,GAAGA,CAAC,CAAC+e,aAAN,CAAA;;EACrB,IAAI5Q,IAAI,CAACyS,mBAAT,EAA8B;AAC5Bpd,IAAAA,MAAM,CAACiH,IAAP,CAAY,UAAZ,EAAwBzK,CAAxB,CAAA,CAAA;AACD,GAAA;;EACDmO,IAAI,CAACyS,mBAAL,GAA2B,KAA3B,CAAA;;AACA,EAAA,IAAI,CAACzS,IAAI,CAACgR,SAAV,EAAqB;AACnB,IAAA,IAAIhR,IAAI,CAACiR,OAAL,IAAgBpb,MAAM,CAACkf,UAA3B,EAAuC;MACrC1f,MAAM,CAACqa,aAAP,CAAqB,KAArB,CAAA,CAAA;AACD,KAAA;;IACD1P,IAAI,CAACiR,OAAL,GAAe,KAAf,CAAA;IACAjR,IAAI,CAAC2S,WAAL,GAAmB,KAAnB,CAAA;AACA,IAAA,OAAA;AACD,GA1BuC;;;EA4BxC,IACE9c,MAAM,CAACkf,UAAP,IACA/U,IAAI,CAACiR,OADL,IAEAjR,IAAI,CAACgR,SAFL,KAGC3b,MAAM,CAACqX,cAAP,KAA0B,IAA1B,IAAkCrX,MAAM,CAACsX,cAAP,KAA0B,IAH7D,CADF,EAKE;IACAtX,MAAM,CAACqa,aAAP,CAAqB,KAArB,CAAA,CAAA;AACD,GAnCuC;;;EAsCxC,MAAM+F,YAAY,GAAGzjB,GAAG,EAAxB,CAAA;EACA,MAAM0jB,QAAQ,GAAGD,YAAY,GAAGzV,IAAI,CAAC4S,cAArC,CAvCwC;;EA0CxC,IAAIvd,MAAM,CAACsc,UAAX,EAAuB;AACrB,IAAA,MAAMgE,QAAQ,GAAG9jB,CAAC,CAACyf,IAAF,IAAWzf,CAAC,CAACwf,YAAF,IAAkBxf,CAAC,CAACwf,YAAF,EAA9C,CAAA;AACAhc,IAAAA,MAAM,CAACgV,kBAAP,CAA2BsL,QAAQ,IAAIA,QAAQ,CAAC,CAAD,CAArB,IAA6B9jB,CAAC,CAAChE,MAAzD,CAAA,CAAA;AACAwH,IAAAA,MAAM,CAACiH,IAAP,CAAY,WAAZ,EAAyBzK,CAAzB,CAAA,CAAA;;IACA,IAAI6jB,QAAQ,GAAG,GAAX,IAAkBD,YAAY,GAAGzV,IAAI,CAAC4V,aAApB,GAAoC,GAA1D,EAA+D;AAC7DvgB,MAAAA,MAAM,CAACiH,IAAP,CAAY,uBAAZ,EAAqCzK,CAArC,CAAA,CAAA;AACD,KAAA;AACF,GAAA;;AAEDmO,EAAAA,IAAI,CAAC4V,aAAL,GAAqB5jB,GAAG,EAAxB,CAAA;AACAF,EAAAA,QAAQ,CAAC,MAAM;IACb,IAAI,CAACuD,MAAM,CAACqH,SAAZ,EAAuBrH,MAAM,CAACsc,UAAP,GAAoB,IAApB,CAAA;AACxB,GAFO,CAAR,CAAA;;AAIA,EAAA,IACE,CAAC3R,IAAI,CAACgR,SAAN,IACA,CAAChR,IAAI,CAACiR,OADN,IAEA,CAAC5b,MAAM,CAACwd,cAFR,IAGAnC,OAAO,CAACsE,IAAR,KAAiB,CAHjB,IAIAhV,IAAI,CAAC6K,gBAAL,KAA0B7K,IAAI,CAACyU,cALjC,EAME;IACAzU,IAAI,CAACgR,SAAL,GAAiB,KAAjB,CAAA;IACAhR,IAAI,CAACiR,OAAL,GAAe,KAAf,CAAA;IACAjR,IAAI,CAAC2S,WAAL,GAAmB,KAAnB,CAAA;AACA,IAAA,OAAA;AACD,GAAA;;EACD3S,IAAI,CAACgR,SAAL,GAAiB,KAAjB,CAAA;EACAhR,IAAI,CAACiR,OAAL,GAAe,KAAf,CAAA;EACAjR,IAAI,CAAC2S,WAAL,GAAmB,KAAnB,CAAA;AAEA,EAAA,IAAIkD,UAAJ,CAAA;;EACA,IAAIhgB,MAAM,CAACwf,YAAX,EAAyB;IACvBQ,UAAU,GAAGxU,GAAG,GAAGhM,MAAM,CAACI,SAAV,GAAsB,CAACJ,MAAM,CAACI,SAA9C,CAAA;AACD,GAFD,MAEO;AACLogB,IAAAA,UAAU,GAAG,CAAC7V,IAAI,CAAC6K,gBAAnB,CAAA;AACD,GAAA;;EAED,IAAIhV,MAAM,CAACmN,OAAX,EAAoB;AAClB,IAAA,OAAA;AACD,GAAA;;EAED,IAAI3N,MAAM,CAACQ,MAAP,CAAcwd,QAAd,IAA0Bxd,MAAM,CAACwd,QAAP,CAAgB5R,OAA9C,EAAuD;AACrDpM,IAAAA,MAAM,CAACge,QAAP,CAAgBiC,UAAhB,CAA2B;AAAEO,MAAAA,UAAAA;KAA7B,CAAA,CAAA;AACA,IAAA,OAAA;AACD,GAtFuC;;;EAyFxC,IAAIC,SAAS,GAAG,CAAhB,CAAA;AACA,EAAA,IAAI7Q,SAAS,GAAG5P,MAAM,CAAC2M,eAAP,CAAuB,CAAvB,CAAhB,CAAA;;EACA,KACE,IAAI7N,CAAC,GAAG,CADV,EAEEA,CAAC,GAAG4N,UAAU,CAAC7T,MAFjB,EAGEiG,CAAC,IAAIA,CAAC,GAAG0B,MAAM,CAACyO,kBAAX,GAAgC,CAAhC,GAAoCzO,MAAM,CAACwO,cAHlD,EAIE;AACA,IAAA,MAAMkJ,SAAS,GAAGpZ,CAAC,GAAG0B,MAAM,CAACyO,kBAAP,GAA4B,CAAhC,GAAoC,CAApC,GAAwCzO,MAAM,CAACwO,cAAjE,CAAA;;IACA,IAAI,OAAOtC,UAAU,CAAC5N,CAAC,GAAGoZ,SAAL,CAAjB,KAAqC,WAAzC,EAAsD;AACpD,MAAA,IAAIsI,UAAU,IAAI9T,UAAU,CAAC5N,CAAD,CAAxB,IAA+B0hB,UAAU,GAAG9T,UAAU,CAAC5N,CAAC,GAAGoZ,SAAL,CAA1D,EAA2E;AACzEuI,QAAAA,SAAS,GAAG3hB,CAAZ,CAAA;QACA8Q,SAAS,GAAGlD,UAAU,CAAC5N,CAAC,GAAGoZ,SAAL,CAAV,GAA4BxL,UAAU,CAAC5N,CAAD,CAAlD,CAAA;AACD,OAAA;KAJH,MAKO,IAAI0hB,UAAU,IAAI9T,UAAU,CAAC5N,CAAD,CAA5B,EAAiC;AACtC2hB,MAAAA,SAAS,GAAG3hB,CAAZ,CAAA;AACA8Q,MAAAA,SAAS,GAAGlD,UAAU,CAACA,UAAU,CAAC7T,MAAX,GAAoB,CAArB,CAAV,GAAoC6T,UAAU,CAACA,UAAU,CAAC7T,MAAX,GAAoB,CAArB,CAA1D,CAAA;AACD,KAAA;AACF,GAAA;;EAED,IAAI6nB,gBAAgB,GAAG,IAAvB,CAAA;EACA,IAAIC,eAAe,GAAG,IAAtB,CAAA;;EACA,IAAIngB,MAAM,CAAC6X,MAAX,EAAmB;IACjB,IAAIrY,MAAM,CAAC+S,WAAX,EAAwB;AACtB4N,MAAAA,eAAe,GACb3gB,MAAM,CAACQ,MAAP,CAAc2L,OAAd,IAAyBnM,MAAM,CAACQ,MAAP,CAAc2L,OAAd,CAAsBC,OAA/C,IAA0DpM,MAAM,CAACmM,OAAjE,GACInM,MAAM,CAACmM,OAAP,CAAeG,MAAf,CAAsBzT,MAAtB,GAA+B,CADnC,GAEImH,MAAM,CAACsM,MAAP,CAAczT,MAAd,GAAuB,CAH7B,CAAA;AAID,KALD,MAKO,IAAImH,MAAM,CAACgT,KAAX,EAAkB;AACvB0N,MAAAA,gBAAgB,GAAG,CAAnB,CAAA;AACD,KAAA;AACF,GAvHuC;;;EAyHxC,MAAME,KAAK,GAAG,CAACJ,UAAU,GAAG9T,UAAU,CAAC+T,SAAD,CAAxB,IAAuC7Q,SAArD,CAAA;AACA,EAAA,MAAMsI,SAAS,GAAGuI,SAAS,GAAGjgB,MAAM,CAACyO,kBAAP,GAA4B,CAAxC,GAA4C,CAA5C,GAAgDzO,MAAM,CAACwO,cAAzE,CAAA;;AACA,EAAA,IAAIqR,QAAQ,GAAG7f,MAAM,CAACqgB,YAAtB,EAAoC;AAClC;AACA,IAAA,IAAI,CAACrgB,MAAM,CAACsgB,UAAZ,EAAwB;AACtB9gB,MAAAA,MAAM,CAACgX,OAAP,CAAehX,MAAM,CAAC0R,WAAtB,CAAA,CAAA;AACA,MAAA,OAAA;AACD,KAAA;;AACD,IAAA,IAAI1R,MAAM,CAACwd,cAAP,KAA0B,MAA9B,EAAsC;AACpC,MAAA,IAAIoD,KAAK,IAAIpgB,MAAM,CAACugB,eAApB,EACE/gB,MAAM,CAACgX,OAAP,CAAexW,MAAM,CAAC6X,MAAP,IAAiBrY,MAAM,CAACgT,KAAxB,GAAgC0N,gBAAhC,GAAmDD,SAAS,GAAGvI,SAA9E,CAAA,CADF,KAEKlY,MAAM,CAACgX,OAAP,CAAeyJ,SAAf,CAAA,CAAA;AACN,KAAA;;AACD,IAAA,IAAIzgB,MAAM,CAACwd,cAAP,KAA0B,MAA9B,EAAsC;AACpC,MAAA,IAAIoD,KAAK,GAAG,CAAA,GAAIpgB,MAAM,CAACugB,eAAvB,EAAwC;AACtC/gB,QAAAA,MAAM,CAACgX,OAAP,CAAeyJ,SAAS,GAAGvI,SAA3B,CAAA,CAAA;AACD,OAFD,MAEO,IACLyI,eAAe,KAAK,IAApB,IACAC,KAAK,GAAG,CADR,IAEAzf,IAAI,CAAC4N,GAAL,CAAS6R,KAAT,IAAkBpgB,MAAM,CAACugB,eAHpB,EAIL;QACA/gB,MAAM,CAACgX,OAAP,CAAe2J,eAAf,CAAA,CAAA;AACD,OANM,MAMA;QACL3gB,MAAM,CAACgX,OAAP,CAAeyJ,SAAf,CAAA,CAAA;AACD,OAAA;AACF,KAAA;AACF,GAxBD,MAwBO;AACL;AACA,IAAA,IAAI,CAACjgB,MAAM,CAACwgB,WAAZ,EAAyB;AACvBhhB,MAAAA,MAAM,CAACgX,OAAP,CAAehX,MAAM,CAAC0R,WAAtB,CAAA,CAAA;AACA,MAAA,OAAA;AACD,KAAA;;IACD,MAAMuP,iBAAiB,GACrBjhB,MAAM,CAACkhB,UAAP,KACC1kB,CAAC,CAAChE,MAAF,KAAawH,MAAM,CAACkhB,UAAP,CAAkBC,MAA/B,IAAyC3kB,CAAC,CAAChE,MAAF,KAAawH,MAAM,CAACkhB,UAAP,CAAkBE,MADzE,CADF,CAAA;;IAGA,IAAI,CAACH,iBAAL,EAAwB;AACtB,MAAA,IAAIjhB,MAAM,CAACwd,cAAP,KAA0B,MAA9B,EAAsC;QACpCxd,MAAM,CAACgX,OAAP,CAAe0J,gBAAgB,KAAK,IAArB,GAA4BA,gBAA5B,GAA+CD,SAAS,GAAGvI,SAA1E,CAAA,CAAA;AACD,OAAA;;AACD,MAAA,IAAIlY,MAAM,CAACwd,cAAP,KAA0B,MAA9B,EAAsC;QACpCxd,MAAM,CAACgX,OAAP,CAAe2J,eAAe,KAAK,IAApB,GAA2BA,eAA3B,GAA6CF,SAA5D,CAAA,CAAA;AACD,OAAA;KANH,MAOO,IAAIjkB,CAAC,CAAChE,MAAF,KAAawH,MAAM,CAACkhB,UAAP,CAAkBC,MAAnC,EAA2C;AAChDnhB,MAAAA,MAAM,CAACgX,OAAP,CAAeyJ,SAAS,GAAGvI,SAA3B,CAAA,CAAA;AACD,KAFM,MAEA;MACLlY,MAAM,CAACgX,OAAP,CAAeyJ,SAAf,CAAA,CAAA;AACD,KAAA;AACF,GAAA;AACF;;AC3KD,IAAIY,OAAJ,CAAA;AACe,SAASC,QAAT,GAAoB;EACjC,MAAMthB,MAAM,GAAG,IAAf,CAAA;EAEA,MAAM;IAAEQ,MAAF;AAAU5D,IAAAA,EAAAA;AAAV,GAAA,GAAiBoD,MAAvB,CAAA;EAEA,IAAIpD,EAAE,IAAIA,EAAE,CAAC+H,WAAH,KAAmB,CAA7B,EAAgC,OALC;;EAQjC,IAAInE,MAAM,CAAC2N,WAAX,EAAwB;AACtBnO,IAAAA,MAAM,CAACuhB,aAAP,EAAA,CAAA;AACD,GAVgC;;;EAajC,MAAM;IAAElK,cAAF;IAAkBC,cAAlB;AAAkC7K,IAAAA,QAAAA;AAAlC,GAAA,GAA+CzM,MAArD,CAAA;AAEA,EAAA,MAAMkM,SAAS,GAAGlM,MAAM,CAACmM,OAAP,IAAkBnM,MAAM,CAACQ,MAAP,CAAc2L,OAAd,CAAsBC,OAA1D,CAfiC;;EAkBjCpM,MAAM,CAACqX,cAAP,GAAwB,IAAxB,CAAA;EACArX,MAAM,CAACsX,cAAP,GAAwB,IAAxB,CAAA;AAEAtX,EAAAA,MAAM,CAAC+K,UAAP,EAAA,CAAA;AACA/K,EAAAA,MAAM,CAACwL,YAAP,EAAA,CAAA;AAEAxL,EAAAA,MAAM,CAAC2T,mBAAP,EAAA,CAAA;AACA,EAAA,MAAM6N,aAAa,GAAGtV,SAAS,IAAI1L,MAAM,CAAC+O,IAA1C,CAAA;;AACA,EAAA,IACE,CAAC/O,MAAM,CAAC0N,aAAP,KAAyB,MAAzB,IAAmC1N,MAAM,CAAC0N,aAAP,GAAuB,CAA3D,KACAlO,MAAM,CAACgT,KADP,IAEA,CAAChT,MAAM,CAAC+S,WAFR,IAGA,CAAC/S,MAAM,CAACQ,MAAP,CAAckN,cAHf,IAIA,CAAC8T,aALH,EAME;AACAxhB,IAAAA,MAAM,CAACgX,OAAP,CAAehX,MAAM,CAACsM,MAAP,CAAczT,MAAd,GAAuB,CAAtC,EAAyC,CAAzC,EAA4C,KAA5C,EAAmD,IAAnD,CAAA,CAAA;AACD,GARD,MAQO;IACL,IAAImH,MAAM,CAACQ,MAAP,CAAc+O,IAAd,IAAsB,CAACrD,SAA3B,EAAsC;MACpClM,MAAM,CAAC2X,WAAP,CAAmB3X,MAAM,CAACyU,SAA1B,EAAqC,CAArC,EAAwC,KAAxC,EAA+C,IAA/C,CAAA,CAAA;AACD,KAFD,MAEO;MACLzU,MAAM,CAACgX,OAAP,CAAehX,MAAM,CAAC0R,WAAtB,EAAmC,CAAnC,EAAsC,KAAtC,EAA6C,IAA7C,CAAA,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,IAAI1R,MAAM,CAACyhB,QAAP,IAAmBzhB,MAAM,CAACyhB,QAAP,CAAgBC,OAAnC,IAA8C1hB,MAAM,CAACyhB,QAAP,CAAgBE,MAAlE,EAA0E;IACxE9lB,YAAY,CAACwlB,OAAD,CAAZ,CAAA;IACAA,OAAO,GAAGzlB,UAAU,CAAC,MAAM;MACzBoE,MAAM,CAACyhB,QAAP,CAAgBG,MAAhB,EAAA,CAAA;KADkB,EAEjB,GAFiB,CAApB,CAAA;AAGD,GA/CgC;;;EAiDjC5hB,MAAM,CAACsX,cAAP,GAAwBA,cAAxB,CAAA;EACAtX,MAAM,CAACqX,cAAP,GAAwBA,cAAxB,CAAA;;EAEA,IAAIrX,MAAM,CAACQ,MAAP,CAAckQ,aAAd,IAA+BjE,QAAQ,KAAKzM,MAAM,CAACyM,QAAvD,EAAiE;AAC/DzM,IAAAA,MAAM,CAAC2Q,aAAP,EAAA,CAAA;AACD,GAAA;AACF;;ACxDc,SAASkR,OAAT,CAAiBrlB,CAAjB,EAAoB;EACjC,MAAMwD,MAAM,GAAG,IAAf,CAAA;AACA,EAAA,IAAI,CAACA,MAAM,CAACoM,OAAZ,EAAqB,OAAA;;AACrB,EAAA,IAAI,CAACpM,MAAM,CAACsc,UAAZ,EAAwB;IACtB,IAAItc,MAAM,CAACQ,MAAP,CAAcshB,aAAlB,EAAiCtlB,CAAC,CAAC2gB,cAAF,EAAA,CAAA;;IACjC,IAAInd,MAAM,CAACQ,MAAP,CAAcuhB,wBAAd,IAA0C/hB,MAAM,CAACoW,SAArD,EAAgE;AAC9D5Z,MAAAA,CAAC,CAAC2iB,eAAF,EAAA,CAAA;AACA3iB,MAAAA,CAAC,CAACwlB,wBAAF,EAAA,CAAA;AACD,KAAA;AACF,GAAA;AACF;;ACVc,SAASC,QAAT,GAAoB;EACjC,MAAMjiB,MAAM,GAAG,IAAf,CAAA;EACA,MAAM;IAAEU,SAAF;IAAaqL,YAAb;AAA2BK,IAAAA,OAAAA;AAA3B,GAAA,GAAuCpM,MAA7C,CAAA;EACA,IAAI,CAACoM,OAAL,EAAc,OAAA;AACdpM,EAAAA,MAAM,CAAC8V,iBAAP,GAA2B9V,MAAM,CAACI,SAAlC,CAAA;;AACA,EAAA,IAAIJ,MAAM,CAACkL,YAAP,EAAJ,EAA2B;AACzBlL,IAAAA,MAAM,CAACI,SAAP,GAAmB,CAACM,SAAS,CAACsC,UAA9B,CAAA;AACD,GAFD,MAEO;AACLhD,IAAAA,MAAM,CAACI,SAAP,GAAmB,CAACM,SAAS,CAACoC,SAA9B,CAAA;AACD,GATgC;;;EAWjC,IAAI9C,MAAM,CAACI,SAAP,KAAqB,CAAzB,EAA4BJ,MAAM,CAACI,SAAP,GAAmB,CAAnB,CAAA;AAE5BJ,EAAAA,MAAM,CAACsU,iBAAP,EAAA,CAAA;AACAtU,EAAAA,MAAM,CAAC2T,mBAAP,EAAA,CAAA;AAEA,EAAA,IAAIoC,WAAJ,CAAA;EACA,MAAMlD,cAAc,GAAG7S,MAAM,CAAC8S,YAAP,EAAwB9S,GAAAA,MAAM,CAACqS,YAAP,EAA/C,CAAA;;EACA,IAAIQ,cAAc,KAAK,CAAvB,EAA0B;AACxBkD,IAAAA,WAAW,GAAG,CAAd,CAAA;AACD,GAFD,MAEO;IACLA,WAAW,GAAG,CAAC/V,MAAM,CAACI,SAAP,GAAmBJ,MAAM,CAACqS,YAAP,EAApB,IAA6CQ,cAA3D,CAAA;AACD,GAAA;;AACD,EAAA,IAAIkD,WAAW,KAAK/V,MAAM,CAACkB,QAA3B,EAAqC;AACnClB,IAAAA,MAAM,CAAC2S,cAAP,CAAsB5G,YAAY,GAAG,CAAC/L,MAAM,CAACI,SAAX,GAAuBJ,MAAM,CAACI,SAAhE,CAAA,CAAA;AACD,GAAA;;EAEDJ,MAAM,CAACiH,IAAP,CAAY,cAAZ,EAA4BjH,MAAM,CAACI,SAAnC,EAA8C,KAA9C,CAAA,CAAA;AACD;;AC5Bc,SAAS8hB,MAAT,CAAgB1lB,CAAhB,EAAmB;EAChC,MAAMwD,MAAM,GAAG,IAAf,CAAA;;AACA,EAAA,MAAMoZ,aAAa,GAAG,MAAOpZ,MAAM,CAACqZ,SAAP,GAAoB,CAApB,YAAA,CAAA,GAAqC,IAAGrZ,MAAM,CAACQ,MAAP,CAAc+L,UAAW,CAA9F,CAAA,CAAA;;EACA,MAAM1K,OAAO,GAAGrF,CAAC,CAAChE,MAAF,CAASyc,OAAT,CAAiBmE,aAAa,EAA9B,CAAhB,CAAA;;AACA,EAAA,IAAIvX,OAAJ,EAAa;AACX,IAAA,MAAMsgB,MAAM,GAAGtgB,OAAO,CAACxI,aAAR,CAAuB,CAAG2G,CAAAA,EAAAA,MAAM,CAACQ,MAAP,CAAc4hB,kBAAmB,EAA3D,CAAf,CAAA;AACA,IAAA,IAAID,MAAJ,EAAYA,MAAM,CAAChR,MAAP,EAAA,CAAA;AACb,GAAA;;AACDnR,EAAAA,MAAM,CAACqiB,MAAP,EAAA,CAAA;AACD;;ACCD,IAAIC,kBAAkB,GAAG,KAAzB,CAAA;;AACA,SAASC,kBAAT,GAA8B,EAAE;;AAEhC,MAAM9Y,MAAM,GAAG,CAACzJ,MAAD,EAAS8J,MAAT,KAAoB;EACjC,MAAMjP,QAAQ,GAAGF,WAAW,EAA5B,CAAA;EACA,MAAM;IAAE6F,MAAF;IAAU5D,EAAV;IAAc8D,SAAd;AAAyB6E,IAAAA,MAAAA;AAAzB,GAAA,GAAoCvF,MAA1C,CAAA;AACA,EAAA,MAAMwiB,OAAO,GAAG,CAAC,CAAChiB,MAAM,CAAC0e,MAAzB,CAAA;EACA,MAAMuD,SAAS,GAAG3Y,MAAM,KAAK,IAAX,GAAkB,kBAAlB,GAAuC,qBAAzD,CAAA;AACA,EAAA,MAAM4Y,YAAY,GAAG5Y,MAArB,CALiC;;EAQjClN,EAAE,CAAC6lB,SAAD,CAAF,CAAc,aAAd,EAA6BziB,MAAM,CAACkb,YAApC,EAAkD;AAAEyH,IAAAA,OAAO,EAAE,KAAA;GAA7D,CAAA,CAAA;EACA9nB,QAAQ,CAAC4nB,SAAD,CAAR,CAAoB,aAApB,EAAmCziB,MAAM,CAACie,WAA1C,EAAuD;AAAE0E,IAAAA,OAAO,EAAE,KAAX;AAAkBH,IAAAA,OAAAA;GAAzE,CAAA,CAAA;EACA3nB,QAAQ,CAAC4nB,SAAD,CAAR,CAAoB,WAApB,EAAiCziB,MAAM,CAACigB,UAAxC,EAAoD;AAAE0C,IAAAA,OAAO,EAAE,IAAA;GAA/D,CAAA,CAAA;EACA9nB,QAAQ,CAAC4nB,SAAD,CAAR,CAAoB,eAApB,EAAqCziB,MAAM,CAACigB,UAA5C,EAAwD;AAAE0C,IAAAA,OAAO,EAAE,IAAA;GAAnE,CAAA,CAAA;EACA9nB,QAAQ,CAAC4nB,SAAD,CAAR,CAAoB,YAApB,EAAkCziB,MAAM,CAACigB,UAAzC,EAAqD;AAAE0C,IAAAA,OAAO,EAAE,IAAA;GAAhE,CAAA,CAAA;EACA9nB,QAAQ,CAAC4nB,SAAD,CAAR,CAAoB,cAApB,EAAoCziB,MAAM,CAACigB,UAA3C,EAAuD;AAAE0C,IAAAA,OAAO,EAAE,IAAA;AAAX,GAAvD,EAbiC;;AAgBjC,EAAA,IAAIniB,MAAM,CAACshB,aAAP,IAAwBthB,MAAM,CAACuhB,wBAAnC,EAA6D;IAC3DnlB,EAAE,CAAC6lB,SAAD,CAAF,CAAc,OAAd,EAAuBziB,MAAM,CAAC6hB,OAA9B,EAAuC,IAAvC,CAAA,CAAA;AACD,GAAA;;EACD,IAAIrhB,MAAM,CAACmN,OAAX,EAAoB;IAClBjN,SAAS,CAAC+hB,SAAD,CAAT,CAAqB,QAArB,EAA+BziB,MAAM,CAACiiB,QAAtC,CAAA,CAAA;AACD,GArBgC;;;EAwBjC,IAAIzhB,MAAM,CAACoiB,oBAAX,EAAiC;AAC/B5iB,IAAAA,MAAM,CAAC0iB,YAAD,CAAN,CACEnd,MAAM,CAACC,GAAP,IAAcD,MAAM,CAACE,OAArB,GACI,yCADJ,GAEI,uBAHN,EAIE6b,QAJF,EAKE,IALF,CAAA,CAAA;AAOD,GARD,MAQO;IACLthB,MAAM,CAAC0iB,YAAD,CAAN,CAAqB,gBAArB,EAAuCpB,QAAvC,EAAiD,IAAjD,CAAA,CAAA;AACD,GAlCgC;;;EAqCjC1kB,EAAE,CAAC6lB,SAAD,CAAF,CAAc,MAAd,EAAsBziB,MAAM,CAACkiB,MAA7B,EAAqC;AAAEM,IAAAA,OAAO,EAAE,IAAA;GAAhD,CAAA,CAAA;AACD,CAtCD,CAAA;;AAwCA,SAASK,YAAT,GAAwB;EACtB,MAAM7iB,MAAM,GAAG,IAAf,CAAA;EACA,MAAMnF,QAAQ,GAAGF,WAAW,EAA5B,CAAA;EACA,MAAM;AAAE6F,IAAAA,MAAAA;AAAF,GAAA,GAAaR,MAAnB,CAAA;EAEAA,MAAM,CAACkb,YAAP,GAAsBA,YAAY,CAAC4H,IAAb,CAAkB9iB,MAAlB,CAAtB,CAAA;EACAA,MAAM,CAACie,WAAP,GAAqBA,WAAW,CAAC6E,IAAZ,CAAiB9iB,MAAjB,CAArB,CAAA;EACAA,MAAM,CAACigB,UAAP,GAAoBA,UAAU,CAAC6C,IAAX,CAAgB9iB,MAAhB,CAApB,CAAA;;EAEA,IAAIQ,MAAM,CAACmN,OAAX,EAAoB;IAClB3N,MAAM,CAACiiB,QAAP,GAAkBA,QAAQ,CAACa,IAAT,CAAc9iB,MAAd,CAAlB,CAAA;AACD,GAAA;;EAEDA,MAAM,CAAC6hB,OAAP,GAAiBA,OAAO,CAACiB,IAAR,CAAa9iB,MAAb,CAAjB,CAAA;EACAA,MAAM,CAACkiB,MAAP,GAAgBA,MAAM,CAACY,IAAP,CAAY9iB,MAAZ,CAAhB,CAAA;;EAEA,IAAI,CAACsiB,kBAAL,EAAyB;AACvBznB,IAAAA,QAAQ,CAAC7B,gBAAT,CAA0B,YAA1B,EAAwCupB,kBAAxC,CAAA,CAAA;AACAD,IAAAA,kBAAkB,GAAG,IAArB,CAAA;AACD,GAAA;;AAED7Y,EAAAA,MAAM,CAACzJ,MAAD,EAAS,IAAT,CAAN,CAAA;AACD,CAAA;;AAED,SAAS+iB,YAAT,GAAwB;EACtB,MAAM/iB,MAAM,GAAG,IAAf,CAAA;AACAyJ,EAAAA,MAAM,CAACzJ,MAAD,EAAS,KAAT,CAAN,CAAA;AACD,CAAA;;AAED,eAAe;EACb6iB,YADa;AAEbE,EAAAA,YAAAA;AAFa,CAAf;;AChFA,MAAMC,aAAa,GAAG,CAAChjB,MAAD,EAASQ,MAAT,KAAoB;AACxC,EAAA,OAAOR,MAAM,CAAC6N,IAAP,IAAerN,MAAM,CAACqN,IAAtB,IAA8BrN,MAAM,CAACqN,IAAP,CAAYC,IAAZ,GAAmB,CAAxD,CAAA;AACD,CAFD,CAAA;;AAIe,SAASyT,aAAT,GAAyB;EACtC,MAAMvhB,MAAM,GAAG,IAAf,CAAA;EACA,MAAM;IAAEyU,SAAF;IAAanN,WAAb;IAA0B9G,MAA1B;AAAkC5D,IAAAA,EAAAA;AAAlC,GAAA,GAAyCoD,MAA/C,CAAA;AACA,EAAA,MAAMmO,WAAW,GAAG3N,MAAM,CAAC2N,WAA3B,CAAA;AACA,EAAA,IAAI,CAACA,WAAD,IAAiBA,WAAW,IAAI7V,MAAM,CAACI,IAAP,CAAYyV,WAAZ,EAAyBtV,MAAzB,KAAoC,CAAxE,EAA4E,OAJtC;;AAOtC,EAAA,MAAMoqB,UAAU,GAAGjjB,MAAM,CAACkjB,aAAP,CAAqB/U,WAArB,EAAkCnO,MAAM,CAACQ,MAAP,CAAc2iB,eAAhD,EAAiEnjB,MAAM,CAACpD,EAAxE,CAAnB,CAAA;EAEA,IAAI,CAACqmB,UAAD,IAAejjB,MAAM,CAACojB,iBAAP,KAA6BH,UAAhD,EAA4D,OAAA;EAE5D,MAAMI,oBAAoB,GAAGJ,UAAU,IAAI9U,WAAd,GAA4BA,WAAW,CAAC8U,UAAD,CAAvC,GAAsDjkB,SAAnF,CAAA;AACA,EAAA,MAAMskB,gBAAgB,GAAGD,oBAAoB,IAAIrjB,MAAM,CAACujB,cAAxD,CAAA;AACA,EAAA,MAAMC,WAAW,GAAGR,aAAa,CAAChjB,MAAD,EAASQ,MAAT,CAAjC,CAAA;AACA,EAAA,MAAMijB,UAAU,GAAGT,aAAa,CAAChjB,MAAD,EAASsjB,gBAAT,CAAhC,CAAA;AAEA,EAAA,MAAMI,UAAU,GAAGljB,MAAM,CAAC4L,OAA1B,CAAA;;AAEA,EAAA,IAAIoX,WAAW,IAAI,CAACC,UAApB,EAAgC;AAC9B7mB,IAAAA,EAAE,CAACyF,SAAH,CAAa8O,MAAb,CACG,CAAA,EAAE3Q,MAAM,CAACuQ,sBAAuB,CAAA,KAAA,EAAOvQ,MAAM,CAACuQ,sBAAuB,CADxE,WAAA,CAAA,CAAA,CAAA;AAGA/Q,IAAAA,MAAM,CAAC2jB,oBAAP,EAAA,CAAA;AACD,GALD,MAKO,IAAI,CAACH,WAAD,IAAgBC,UAApB,EAAgC;IACrC7mB,EAAE,CAACyF,SAAH,CAAaC,GAAb,CAAkB,CAAE9B,EAAAA,MAAM,CAACuQ,sBAAuB,CAAlD,IAAA,CAAA,CAAA,CAAA;;AACA,IAAA,IACGuS,gBAAgB,CAACzV,IAAjB,CAAsB+V,IAAtB,IAA8BN,gBAAgB,CAACzV,IAAjB,CAAsB+V,IAAtB,KAA+B,QAA9D,IACC,CAACN,gBAAgB,CAACzV,IAAjB,CAAsB+V,IAAvB,IAA+BpjB,MAAM,CAACqN,IAAP,CAAY+V,IAAZ,KAAqB,QAFvD,EAGE;MACAhnB,EAAE,CAACyF,SAAH,CAAaC,GAAb,CAAkB,CAAE9B,EAAAA,MAAM,CAACuQ,sBAAuB,CAAlD,WAAA,CAAA,CAAA,CAAA;AACD,KAAA;;AACD/Q,IAAAA,MAAM,CAAC2jB,oBAAP,EAAA,CAAA;AACD,GAhCqC;;;EAmCtC,CAAC,YAAD,EAAe,YAAf,EAA6B,WAA7B,CAA0ChrB,CAAAA,OAA1C,CAAmDmL,IAAD,IAAU;AAC1D,IAAA,MAAM+f,gBAAgB,GAAGrjB,MAAM,CAACsD,IAAD,CAAN,IAAgBtD,MAAM,CAACsD,IAAD,CAAN,CAAasI,OAAtD,CAAA;AACA,IAAA,MAAM0X,eAAe,GAAGR,gBAAgB,CAACxf,IAAD,CAAhB,IAA0Bwf,gBAAgB,CAACxf,IAAD,CAAhB,CAAuBsI,OAAzE,CAAA;;AACA,IAAA,IAAIyX,gBAAgB,IAAI,CAACC,eAAzB,EAA0C;AACxC9jB,MAAAA,MAAM,CAAC8D,IAAD,CAAN,CAAaigB,OAAb,EAAA,CAAA;AACD,KAAA;;AACD,IAAA,IAAI,CAACF,gBAAD,IAAqBC,eAAzB,EAA0C;AACxC9jB,MAAAA,MAAM,CAAC8D,IAAD,CAAN,CAAakgB,MAAb,EAAA,CAAA;AACD,KAAA;GARH,CAAA,CAAA;AAWA,EAAA,MAAMC,gBAAgB,GACpBX,gBAAgB,CAACzM,SAAjB,IAA8ByM,gBAAgB,CAACzM,SAAjB,KAA+BrW,MAAM,CAACqW,SADtE,CAAA;AAEA,EAAA,MAAMqN,WAAW,GACf1jB,MAAM,CAAC+O,IAAP,KAAgB+T,gBAAgB,CAACpV,aAAjB,KAAmC1N,MAAM,CAAC0N,aAA1C,IAA2D+V,gBAA3E,CADF,CAAA;;EAGA,IAAIA,gBAAgB,IAAI3c,WAAxB,EAAqC;AACnCtH,IAAAA,MAAM,CAACmkB,eAAP,EAAA,CAAA;AACD,GAAA;;AACD5rB,EAAAA,MAAM,CAACyH,MAAM,CAACQ,MAAR,EAAgB8iB,gBAAhB,CAAN,CAAA;AAEA,EAAA,MAAMc,SAAS,GAAGpkB,MAAM,CAACQ,MAAP,CAAc4L,OAAhC,CAAA;AAEA9T,EAAAA,MAAM,CAACiT,MAAP,CAAcvL,MAAd,EAAsB;AACpB4d,IAAAA,cAAc,EAAE5d,MAAM,CAACQ,MAAP,CAAcod,cADV;AAEpBvG,IAAAA,cAAc,EAAErX,MAAM,CAACQ,MAAP,CAAc6W,cAFV;AAGpBC,IAAAA,cAAc,EAAEtX,MAAM,CAACQ,MAAP,CAAc8W,cAAAA;GAHhC,CAAA,CAAA;;AAMA,EAAA,IAAIoM,UAAU,IAAI,CAACU,SAAnB,EAA8B;AAC5BpkB,IAAAA,MAAM,CAAC+jB,OAAP,EAAA,CAAA;AACD,GAFD,MAEO,IAAI,CAACL,UAAD,IAAeU,SAAnB,EAA8B;AACnCpkB,IAAAA,MAAM,CAACgkB,MAAP,EAAA,CAAA;AACD,GAAA;;EAEDhkB,MAAM,CAACojB,iBAAP,GAA2BH,UAA3B,CAAA;AAEAjjB,EAAAA,MAAM,CAACiH,IAAP,CAAY,mBAAZ,EAAiCqc,gBAAjC,CAAA,CAAA;;EAEA,IAAIY,WAAW,IAAI5c,WAAnB,EAAgC;AAC9BtH,IAAAA,MAAM,CAACia,WAAP,EAAA,CAAA;IACAja,MAAM,CAACuZ,UAAP,CAAkB9E,SAAlB,CAAA,CAAA;AACAzU,IAAAA,MAAM,CAACwL,YAAP,EAAA,CAAA;AACD,GAAA;;AAEDxL,EAAAA,MAAM,CAACiH,IAAP,CAAY,YAAZ,EAA0Bqc,gBAA1B,CAAA,CAAA;AACD;;ACrFc,SAASJ,aAAT,CAAuB/U,WAAvB,EAAoC0M,IAApC,EAAqDwJ,WAArD,EAAkE;AAAA,EAAA,IAA9BxJ,IAA8B,KAAA,KAAA,CAAA,EAAA;AAA9BA,IAAAA,IAA8B,GAAvB,QAAuB,CAAA;AAAA,GAAA;;EAC/E,IAAI,CAAC1M,WAAD,IAAiB0M,IAAI,KAAK,WAAT,IAAwB,CAACwJ,WAA9C,EAA4D,OAAOrlB,SAAP,CAAA;EAC5D,IAAIikB,UAAU,GAAG,KAAjB,CAAA;EAEA,MAAM5mB,MAAM,GAAGF,SAAS,EAAxB,CAAA;AACA,EAAA,MAAMmoB,aAAa,GAAGzJ,IAAI,KAAK,QAAT,GAAoBxe,MAAM,CAACkoB,WAA3B,GAAyCF,WAAW,CAACpZ,YAA3E,CAAA;EAEA,MAAMuZ,MAAM,GAAGlsB,MAAM,CAACI,IAAP,CAAYyV,WAAZ,CAAyB3Q,CAAAA,GAAzB,CAA8BinB,KAAD,IAAW;AACrD,IAAA,IAAI,OAAOA,KAAP,KAAiB,QAAjB,IAA6BA,KAAK,CAACtlB,OAAN,CAAc,GAAd,CAAuB,KAAA,CAAxD,EAA2D;MACzD,MAAMulB,QAAQ,GAAGxmB,UAAU,CAACumB,KAAK,CAACE,MAAN,CAAa,CAAb,CAAD,CAA3B,CAAA;AACA,MAAA,MAAMC,KAAK,GAAGN,aAAa,GAAGI,QAA9B,CAAA;MACA,OAAO;QAAEE,KAAF;AAASH,QAAAA,KAAAA;OAAhB,CAAA;AACD,KAAA;;IACD,OAAO;AAAEG,MAAAA,KAAK,EAAEH,KAAT;AAAgBA,MAAAA,KAAAA;KAAvB,CAAA;AACD,GAPc,CAAf,CAAA;EASAD,MAAM,CAACK,IAAP,CAAY,CAACpnB,CAAD,EAAIqnB,CAAJ,KAAU1Z,QAAQ,CAAC3N,CAAC,CAACmnB,KAAH,EAAU,EAAV,CAAR,GAAwBxZ,QAAQ,CAAC0Z,CAAC,CAACF,KAAH,EAAU,EAAV,CAAtD,CAAA,CAAA;;AACA,EAAA,KAAK,IAAI9lB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG0lB,MAAM,CAAC3rB,MAA3B,EAAmCiG,CAAC,IAAI,CAAxC,EAA2C;IACzC,MAAM;MAAE2lB,KAAF;AAASG,MAAAA,KAAAA;KAAUJ,GAAAA,MAAM,CAAC1lB,CAAD,CAA/B,CAAA;;IACA,IAAI+b,IAAI,KAAK,QAAb,EAAuB;MACrB,IAAIxe,MAAM,CAACP,UAAP,CAAmB,eAAc8oB,KAAM,CAAA,GAAA,CAAvC,CAA6C1iB,CAAAA,OAAjD,EAA0D;AACxD+gB,QAAAA,UAAU,GAAGwB,KAAb,CAAA;AACD,OAAA;AACF,KAJD,MAIO,IAAIG,KAAK,IAAIP,WAAW,CAACrZ,WAAzB,EAAsC;AAC3CiY,MAAAA,UAAU,GAAGwB,KAAb,CAAA;AACD,KAAA;AACF,GAAA;;EACD,OAAOxB,UAAU,IAAI,KAArB,CAAA;AACD;;AC3BD,kBAAe;EAAE1B,aAAF;AAAiB2B,EAAAA,aAAAA;AAAjB,CAAf;;ACHA,SAAS6B,cAAT,CAAwBtd,OAAxB,EAAiCud,MAAjC,EAAyC;EACvC,MAAMC,aAAa,GAAG,EAAtB,CAAA;AACAxd,EAAAA,OAAO,CAAC9O,OAAR,CAAiBusB,IAAD,IAAU;AACxB,IAAA,IAAI,OAAOA,IAAP,KAAgB,QAApB,EAA8B;MAC5B5sB,MAAM,CAACI,IAAP,CAAYwsB,IAAZ,EAAkBvsB,OAAlB,CAA2BwsB,UAAD,IAAgB;AACxC,QAAA,IAAID,IAAI,CAACC,UAAD,CAAR,EAAsB;AACpBF,UAAAA,aAAa,CAACzhB,IAAd,CAAmBwhB,MAAM,GAAGG,UAA5B,CAAA,CAAA;AACD,SAAA;OAHH,CAAA,CAAA;AAKD,KAND,MAMO,IAAI,OAAOD,IAAP,KAAgB,QAApB,EAA8B;AACnCD,MAAAA,aAAa,CAACzhB,IAAd,CAAmBwhB,MAAM,GAAGE,IAA5B,CAAA,CAAA;AACD,KAAA;GATH,CAAA,CAAA;AAWA,EAAA,OAAOD,aAAP,CAAA;AACD,CAAA;;AAEc,SAASG,UAAT,GAAsB;EACnC,MAAMplB,MAAM,GAAG,IAAf,CAAA;EACA,MAAM;IAAEmlB,UAAF;IAAc3kB,MAAd;IAAsBwL,GAAtB;IAA2BpP,EAA3B;AAA+B2I,IAAAA,MAAAA;GAAWvF,GAAAA,MAAhD,CAFmC;;EAInC,MAAMqlB,QAAQ,GAAGN,cAAc,CAAC,CAC9B,aAD8B,EAE9BvkB,MAAM,CAACqW,SAFuB,EAG9B;IAAE,WAAa7W,EAAAA,MAAM,CAACQ,MAAP,CAAcwd,QAAd,IAA0Bxd,MAAM,CAACwd,QAAP,CAAgB5R,OAAAA;AAAzD,GAH8B,EAI9B;AAAE,IAAA,YAAA,EAAc5L,MAAM,CAACkT,UAAAA;AAAvB,GAJ8B,EAK9B;IAAE,KAAO1H,EAAAA,GAAAA;AAAT,GAL8B,EAM9B;IAAE,MAAQxL,EAAAA,MAAM,CAACqN,IAAP,IAAerN,MAAM,CAACqN,IAAP,CAAYC,IAAZ,GAAmB,CAAA;AAA5C,GAN8B,EAO9B;AAAE,IAAA,aAAA,EAAetN,MAAM,CAACqN,IAAP,IAAerN,MAAM,CAACqN,IAAP,CAAYC,IAAZ,GAAmB,CAAlC,IAAuCtN,MAAM,CAACqN,IAAP,CAAY+V,IAAZ,KAAqB,QAAA;AAA7E,GAP8B,EAQ9B;AAAE,IAAA,SAAA,EAAWre,MAAM,CAACE,OAAAA;AAApB,GAR8B,EAS9B;AAAE,IAAA,KAAA,EAAOF,MAAM,CAACC,GAAAA;AAAhB,GAT8B,EAU9B;AAAE,IAAA,UAAA,EAAYhF,MAAM,CAACmN,OAAAA;AAArB,GAV8B,EAW9B;AAAE,IAAA,UAAA,EAAYnN,MAAM,CAACmN,OAAP,IAAkBnN,MAAM,CAACkN,cAAAA;AAAvC,GAX8B,EAY9B;AAAE,IAAA,gBAAA,EAAkBlN,MAAM,CAACoQ,mBAAAA;AAA3B,GAZ8B,CAAD,EAa5BpQ,MAAM,CAACuQ,sBAbqB,CAA/B,CAAA;AAcAoU,EAAAA,UAAU,CAAC3hB,IAAX,CAAgB,GAAG6hB,QAAnB,CAAA,CAAA;AACAzoB,EAAAA,EAAE,CAACyF,SAAH,CAAaC,GAAb,CAAiB,GAAG6iB,UAApB,CAAA,CAAA;AACAnlB,EAAAA,MAAM,CAAC2jB,oBAAP,EAAA,CAAA;AACD;;ACrCc,SAAS2B,aAAT,GAAyB;EACtC,MAAMtlB,MAAM,GAAG,IAAf,CAAA;EACA,MAAM;IAAEpD,EAAF;AAAMuoB,IAAAA,UAAAA;AAAN,GAAA,GAAqBnlB,MAA3B,CAAA;AAEApD,EAAAA,EAAE,CAACyF,SAAH,CAAa8O,MAAb,CAAoB,GAAGgU,UAAvB,CAAA,CAAA;AACAnlB,EAAAA,MAAM,CAAC2jB,oBAAP,EAAA,CAAA;AACD;;ACHD,cAAe;EAAEyB,UAAF;AAAcE,EAAAA,aAAAA;AAAd,CAAf;;ACHA,SAAS3U,aAAT,GAAyB;EACvB,MAAM3Q,MAAM,GAAG,IAAf,CAAA;EACA,MAAM;AAAEwa,IAAAA,QAAQ,EAAE+K,SAAZ;AAAuB/kB,IAAAA,MAAAA;AAAvB,GAAA,GAAkCR,MAAxC,CAAA;EACA,MAAM;AAAE6M,IAAAA,kBAAAA;AAAF,GAAA,GAAyBrM,MAA/B,CAAA;;AAEA,EAAA,IAAIqM,kBAAJ,EAAwB;IACtB,MAAMwG,cAAc,GAAGrT,MAAM,CAACsM,MAAP,CAAczT,MAAd,GAAuB,CAA9C,CAAA;AACA,IAAA,MAAM2sB,kBAAkB,GACtBxlB,MAAM,CAAC0M,UAAP,CAAkB2G,cAAlB,CAAA,GACArT,MAAM,CAAC2M,eAAP,CAAuB0G,cAAvB,CADA,GAEAxG,kBAAkB,GAAG,CAHvB,CAAA;AAIA7M,IAAAA,MAAM,CAACwa,QAAP,GAAkBxa,MAAM,CAACyE,IAAP,GAAc+gB,kBAAhC,CAAA;AACD,GAPD,MAOO;IACLxlB,MAAM,CAACwa,QAAP,GAAkBxa,MAAM,CAACyM,QAAP,CAAgB5T,MAAhB,KAA2B,CAA7C,CAAA;AACD,GAAA;;AACD,EAAA,IAAI2H,MAAM,CAAC6W,cAAP,KAA0B,IAA9B,EAAoC;AAClCrX,IAAAA,MAAM,CAACqX,cAAP,GAAwB,CAACrX,MAAM,CAACwa,QAAhC,CAAA;AACD,GAAA;;AACD,EAAA,IAAIha,MAAM,CAAC8W,cAAP,KAA0B,IAA9B,EAAoC;AAClCtX,IAAAA,MAAM,CAACsX,cAAP,GAAwB,CAACtX,MAAM,CAACwa,QAAhC,CAAA;AACD,GAAA;;AAED,EAAA,IAAI+K,SAAS,IAAIA,SAAS,KAAKvlB,MAAM,CAACwa,QAAtC,EAAgD;IAC9Cxa,MAAM,CAACgT,KAAP,GAAe,KAAf,CAAA;AACD,GAAA;;AACD,EAAA,IAAIuS,SAAS,KAAKvlB,MAAM,CAACwa,QAAzB,EAAmC;IACjCxa,MAAM,CAACiH,IAAP,CAAYjH,MAAM,CAACwa,QAAP,GAAkB,MAAlB,GAA2B,QAAvC,CAAA,CAAA;AACD,GAAA;AACF,CAAA;;AAED,sBAAe;AAAE7J,EAAAA,aAAAA;AAAF,CAAf;;AC9BA,eAAe;AACbzH,EAAAA,IAAI,EAAE,IADO;AAEb2N,EAAAA,SAAS,EAAE,YAFE;AAGb4D,EAAAA,iBAAiB,EAAE,SAHN;AAIbgL,EAAAA,YAAY,EAAE,CAJD;AAKbhlB,EAAAA,KAAK,EAAE,GALM;AAMbkN,EAAAA,OAAO,EAAE,KANI;AAObiV,EAAAA,oBAAoB,EAAE,IAPT;AAQbxa,EAAAA,cAAc,EAAE,IARH;AASb8W,EAAAA,MAAM,EAAE,KATK;AAUbwG,EAAAA,cAAc,EAAE,KAVH;AAWbtZ,EAAAA,OAAO,EAAE,IAXI;AAYbsR,EAAAA,iBAAiB,EAAE,uDAZN;AAcb;AACA/X,EAAAA,KAAK,EAAE,IAfM;AAgBbE,EAAAA,MAAM,EAAE,IAhBK;AAkBb;AACAwQ,EAAAA,8BAA8B,EAAE,KAnBnB;AAqBb;AACArb,EAAAA,SAAS,EAAE,IAtBE;AAuBb2qB,EAAAA,GAAG,EAAE,IAvBQ;AAyBb;AACA7I,EAAAA,kBAAkB,EAAE,KA1BP;AA2BbE,EAAAA,kBAAkB,EAAE,EA3BP;AA6Bb;AACAtJ,EAAAA,UAAU,EAAE,KA9BC;AAgCb;AACAvE,EAAAA,cAAc,EAAE,KAjCH;AAmCb;AACAoG,EAAAA,gBAAgB,EAAE,KApCL;AAsCb;AACArG,EAAAA,MAAM,EAAE,OAvCK;AAuCI;AAEjB;AACAf,EAAAA,WAAW,EAAEnP,SA1CA;AA2CbmkB,EAAAA,eAAe,EAAE,QA3CJ;AA6Cb;AACAjW,EAAAA,YAAY,EAAE,CA9CD;AA+CbgB,EAAAA,aAAa,EAAE,CA/CF;AAgDbc,EAAAA,cAAc,EAAE,CAhDH;AAiDbC,EAAAA,kBAAkB,EAAE,CAjDP;AAkDb+I,EAAAA,kBAAkB,EAAE,KAlDP;AAmDbtK,EAAAA,cAAc,EAAE,KAnDH;AAoDbqC,EAAAA,oBAAoB,EAAE,KApDT;AAqDblD,EAAAA,kBAAkB,EAAE,CArDP;AAqDU;AACvBE,EAAAA,iBAAiB,EAAE,CAtDN;AAsDS;AACtBsH,EAAAA,mBAAmB,EAAE,IAvDR;AAwDbjE,EAAAA,wBAAwB,EAAE,KAxDb;AA0Db;AACAM,EAAAA,aAAa,EAAE,IA3DF;AA6Db;AACAjC,EAAAA,YAAY,EAAE,KA9DD;AAgEb;AACAmR,EAAAA,UAAU,EAAE,CAjEC;AAkEbf,EAAAA,UAAU,EAAE,EAlEC;AAmEbtE,EAAAA,aAAa,EAAE,IAnEF;AAoEbyG,EAAAA,WAAW,EAAE,IApEA;AAqEbF,EAAAA,UAAU,EAAE,IArEC;AAsEbC,EAAAA,eAAe,EAAE,GAtEJ;AAuEbF,EAAAA,YAAY,EAAE,GAvED;AAwEbb,EAAAA,YAAY,EAAE,IAxED;AAyEbpC,EAAAA,cAAc,EAAE,IAzEH;AA0Eb5E,EAAAA,SAAS,EAAE,CA1EE;AA2EbiG,EAAAA,wBAAwB,EAAE,KA3Eb;AA4EbpB,EAAAA,wBAAwB,EAAE,IA5Eb;AA6EbC,EAAAA,6BAA6B,EAAE,KA7ElB;AA8EbU,EAAAA,mBAAmB,EAAE,KA9ER;AAgFb;AACAoH,EAAAA,iBAAiB,EAAE,IAjFN;AAmFb;AACA7F,EAAAA,UAAU,EAAE,IApFC;AAqFbD,EAAAA,eAAe,EAAE,IArFJ;AAuFb;AACAlP,EAAAA,mBAAmB,EAAE,KAxFR;AA0Fb;AACA8O,EAAAA,UAAU,EAAE,KA3FC;AA6Fb;AACAoC,EAAAA,aAAa,EAAE,IA9FF;AA+FbC,EAAAA,wBAAwB,EAAE,IA/Fb;AAgGb1M,EAAAA,mBAAmB,EAAE,KAhGR;AAkGb;AACA9F,EAAAA,IAAI,EAAE,KAnGO;AAqGb;AACA8I,EAAAA,MAAM,EAAE,KAtGK;AAwGb;AACAf,EAAAA,cAAc,EAAE,IAzGH;AA0GbD,EAAAA,cAAc,EAAE,IA1GH;AA2GbkF,EAAAA,YAAY,EAAE,IA3GD;AA2GO;AACpBF,EAAAA,SAAS,EAAE,IA5GE;AA6GbP,EAAAA,cAAc,EAAE,mBA7GH;AA8GbK,EAAAA,iBAAiB,EAAE,IA9GN;AAgHb;AACA0J,EAAAA,gBAAgB,EAAE,IAjHL;AAmHb3U,EAAAA,uBAAuB,EAAE,EAnHZ;AAqHb;AACAH,EAAAA,sBAAsB,EAAE,SAtHX;AAsHsB;AACnCxE,EAAAA,UAAU,EAAE,cAvHC;AAwHbsH,EAAAA,gBAAgB,EAAE,qBAxHL;AAyHb5B,EAAAA,iBAAiB,EAAE,sBAzHN;AA0Hb6B,EAAAA,cAAc,EAAE,mBA1HH;AA2HbC,EAAAA,cAAc,EAAE,mBA3HH;AA4Hb+R,EAAAA,YAAY,EAAE,gBA5HD;AA6Hb1D,EAAAA,kBAAkB,EAAE,uBA7HP;AA+Hb;AACArN,EAAAA,kBAAkB,EAAE,IAhIP;AAkIb;AACAgR,EAAAA,YAAY,EAAE,KAAA;AAnID,CAAf;;ACEe,SAASC,kBAAT,CAA4BxlB,MAA5B,EAAoCylB,gBAApC,EAAsD;AACnE,EAAA,OAAO,SAAS3d,YAAT,CAAsBlQ,GAAtB,EAAgC;AAAA,IAAA,IAAVA,GAAU,KAAA,KAAA,CAAA,EAAA;AAAVA,MAAAA,GAAU,GAAJ,EAAI,CAAA;AAAA,KAAA;;IACrC,MAAM8tB,eAAe,GAAG5tB,MAAM,CAACI,IAAP,CAAYN,GAAZ,CAAiB,CAAA,CAAjB,CAAxB,CAAA;AACA,IAAA,MAAM+tB,YAAY,GAAG/tB,GAAG,CAAC8tB,eAAD,CAAxB,CAAA;;IACA,IAAI,OAAOC,YAAP,KAAwB,QAAxB,IAAoCA,YAAY,KAAK,IAAzD,EAA+D;AAC7D5tB,MAAAA,MAAM,CAAC0tB,gBAAD,EAAmB7tB,GAAnB,CAAN,CAAA;AACA,MAAA,OAAA;AACD,KAAA;;AACD,IAAA,IACE,CAAC,YAAD,EAAe,YAAf,EAA6B,WAA7B,EAA0C+G,OAA1C,CAAkD+mB,eAAlD,CAAsE,IAAA,CAAtE,IACA1lB,MAAM,CAAC0lB,eAAD,CAAN,KAA4B,IAF9B,EAGE;MACA1lB,MAAM,CAAC0lB,eAAD,CAAN,GAA0B;AAAEE,QAAAA,IAAI,EAAE,IAAA;OAAlC,CAAA;AACD,KAAA;;IACD,IAAI,EAAEF,eAAe,IAAI1lB,MAAnB,IAA6B,SAAa2lB,IAAAA,YAA5C,CAAJ,EAA+D;AAC7D5tB,MAAAA,MAAM,CAAC0tB,gBAAD,EAAmB7tB,GAAnB,CAAN,CAAA;AACA,MAAA,OAAA;AACD,KAAA;;AACD,IAAA,IAAIoI,MAAM,CAAC0lB,eAAD,CAAN,KAA4B,IAAhC,EAAsC;MACpC1lB,MAAM,CAAC0lB,eAAD,CAAN,GAA0B;AAAE9Z,QAAAA,OAAO,EAAE,IAAA;OAArC,CAAA;AACD,KAAA;;AACD,IAAA,IAAI,OAAO5L,MAAM,CAAC0lB,eAAD,CAAb,KAAmC,QAAnC,IAA+C,EAAE,aAAa1lB,MAAM,CAAC0lB,eAAD,CAArB,CAAnD,EAA4F;AAC1F1lB,MAAAA,MAAM,CAAC0lB,eAAD,CAAN,CAAwB9Z,OAAxB,GAAkC,IAAlC,CAAA;AACD,KAAA;;IACD,IAAI,CAAC5L,MAAM,CAAC0lB,eAAD,CAAX,EAA8B1lB,MAAM,CAAC0lB,eAAD,CAAN,GAA0B;AAAE9Z,MAAAA,OAAO,EAAE,KAAA;KAArC,CAAA;AAC9B7T,IAAAA,MAAM,CAAC0tB,gBAAD,EAAmB7tB,GAAnB,CAAN,CAAA;GAxBF,CAAA;AA0BD;;AC7BD;AAiCA,MAAMiuB,UAAU,GAAG;EACjBC,aADiB;EAEjBjE,MAFiB;EAGjBjiB,SAHiB;EAIjBmmB,UAJiB;EAKjBnY,KALiB;EAMjBmB,IANiB;EAOjBmQ,UAPiB;UAQjBjW,QARiB;EASjB0E,WATiB;iBAUjBwC,eAViB;AAWjBvO,EAAAA,OAAAA;AAXiB,CAAnB,CAAA;AAcA,MAAMokB,gBAAgB,GAAG,EAAzB,CAAA;;AAEA,MAAMC,MAAN,CAAa;AACXpuB,EAAAA,WAAW,GAAU;AACnB,IAAA,IAAIuE,EAAJ,CAAA;AACA,IAAA,IAAI4D,MAAJ,CAAA;;AAFmB,IAAA,KAAA,IAAA,IAAA,GAAA,SAAA,CAAA,MAAA,EAAN4J,IAAM,GAAA,IAAA,KAAA,CAAA,IAAA,CAAA,EAAA,IAAA,GAAA,CAAA,EAAA,IAAA,GAAA,IAAA,EAAA,IAAA,EAAA,EAAA;MAANA,IAAM,CAAA,IAAA,CAAA,GAAA,SAAA,CAAA,IAAA,CAAA,CAAA;AAAA,KAAA;;AAGnB,IAAA,IACEA,IAAI,CAACvR,MAAL,KAAgB,CAAhB,IACAuR,IAAI,CAAC,CAAD,CAAJ,CAAQ/R,WADR,IAEAC,MAAM,CAAC+F,SAAP,CAAiBL,QAAjB,CAA0BM,IAA1B,CAA+B8L,IAAI,CAAC,CAAD,CAAnC,CAAA,CAAwC7L,KAAxC,CAA8C,CAA9C,EAAiD,CAAC,CAAlD,CAAA,KAAyD,QAH3D,EAIE;AACAiC,MAAAA,MAAM,GAAG4J,IAAI,CAAC,CAAD,CAAb,CAAA;AACD,KAND,MAMO;AACL,MAAA,CAACxN,EAAD,EAAK4D,MAAL,CAAA,GAAe4J,IAAf,CAAA;AACD,KAAA;;AACD,IAAA,IAAI,CAAC5J,MAAL,EAAaA,MAAM,GAAG,EAAT,CAAA;AAEbA,IAAAA,MAAM,GAAGjI,MAAM,CAAC,EAAD,EAAKiI,MAAL,CAAf,CAAA;IACA,IAAI5D,EAAE,IAAI,CAAC4D,MAAM,CAAC5D,EAAlB,EAAsB4D,MAAM,CAAC5D,EAAP,GAAYA,EAAZ,CAAA;IAEtB,MAAM/B,QAAQ,GAAGF,WAAW,EAA5B,CAAA;;IAEA,IACE6F,MAAM,CAAC5D,EAAP,IACA,OAAO4D,MAAM,CAAC5D,EAAd,KAAqB,QADrB,IAEA/B,QAAQ,CAACvB,gBAAT,CAA0BkH,MAAM,CAAC5D,EAAjC,CAAqC/D,CAAAA,MAArC,GAA8C,CAHhD,EAIE;MACA,MAAM6tB,OAAO,GAAG,EAAhB,CAAA;MACA7rB,QAAQ,CAACvB,gBAAT,CAA0BkH,MAAM,CAAC5D,EAAjC,CAAqCjE,CAAAA,OAArC,CAA8C0rB,WAAD,IAAiB;AAC5D,QAAA,MAAMsC,SAAS,GAAGpuB,MAAM,CAAC,EAAD,EAAKiI,MAAL,EAAa;AAAE5D,UAAAA,EAAE,EAAEynB,WAAAA;AAAN,SAAb,CAAxB,CAAA;AACAqC,QAAAA,OAAO,CAACljB,IAAR,CAAa,IAAIijB,MAAJ,CAAWE,SAAX,CAAb,CAAA,CAAA;AACD,OAHD,EAFA;;AAOA,MAAA,OAAOD,OAAP,CAAA;AACD,KA/BkB;;;IAkCnB,MAAM1mB,MAAM,GAAG,IAAf,CAAA;IACAA,MAAM,CAACN,UAAP,GAAoB,IAApB,CAAA;AACAM,IAAAA,MAAM,CAAC4E,OAAP,GAAiBM,UAAU,EAA3B,CAAA;AACAlF,IAAAA,MAAM,CAACuF,MAAP,GAAgBe,SAAS,CAAC;MAAEtL,SAAS,EAAEwF,MAAM,CAACxF,SAAAA;AAApB,KAAD,CAAzB,CAAA;AACAgF,IAAAA,MAAM,CAACwG,OAAP,GAAiBM,UAAU,EAA3B,CAAA;IAEA9G,MAAM,CAAC6J,eAAP,GAAyB,EAAzB,CAAA;IACA7J,MAAM,CAACuK,kBAAP,GAA4B,EAA5B,CAAA;IACAvK,MAAM,CAAC4mB,OAAP,GAAiB,CAAC,GAAG5mB,MAAM,CAAC6mB,WAAX,CAAjB,CAAA;;AACA,IAAA,IAAIrmB,MAAM,CAAComB,OAAP,IAAkBrkB,KAAK,CAACC,OAAN,CAAchC,MAAM,CAAComB,OAArB,CAAtB,EAAqD;MACnD5mB,MAAM,CAAC4mB,OAAP,CAAepjB,IAAf,CAAoB,GAAGhD,MAAM,CAAComB,OAA9B,CAAA,CAAA;AACD,KAAA;;IAED,MAAMX,gBAAgB,GAAG,EAAzB,CAAA;AACAjmB,IAAAA,MAAM,CAAC4mB,OAAP,CAAejuB,OAAf,CAAwBmuB,GAAD,IAAS;AAC9BA,MAAAA,GAAG,CAAC;QACFtmB,MADE;QAEFR,MAFE;AAGFsI,QAAAA,YAAY,EAAE0d,kBAAkB,CAACxlB,MAAD,EAASylB,gBAAT,CAH9B;QAIFjf,EAAE,EAAEhH,MAAM,CAACgH,EAAP,CAAU8b,IAAV,CAAe9iB,MAAf,CAJF;QAKFgK,IAAI,EAAEhK,MAAM,CAACgK,IAAP,CAAY8Y,IAAZ,CAAiB9iB,MAAjB,CALJ;QAMFkK,GAAG,EAAElK,MAAM,CAACkK,GAAP,CAAW4Y,IAAX,CAAgB9iB,MAAhB,CANH;AAOFiH,QAAAA,IAAI,EAAEjH,MAAM,CAACiH,IAAP,CAAY6b,IAAZ,CAAiB9iB,MAAjB,CAAA;AAPJ,OAAD,CAAH,CAAA;AASD,KAVD,EAhDmB;;IA6DnB,MAAM+mB,YAAY,GAAGxuB,MAAM,CAAC,EAAD,EAAKyuB,QAAL,EAAef,gBAAf,CAA3B,CA7DmB;;AAgEnBjmB,IAAAA,MAAM,CAACQ,MAAP,GAAgBjI,MAAM,CAAC,EAAD,EAAKwuB,YAAL,EAAmBP,gBAAnB,EAAqChmB,MAArC,CAAtB,CAAA;IACAR,MAAM,CAACujB,cAAP,GAAwBhrB,MAAM,CAAC,EAAD,EAAKyH,MAAM,CAACQ,MAAZ,CAA9B,CAAA;IACAR,MAAM,CAACinB,YAAP,GAAsB1uB,MAAM,CAAC,EAAD,EAAKiI,MAAL,CAA5B,CAlEmB;;IAqEnB,IAAIR,MAAM,CAACQ,MAAP,IAAiBR,MAAM,CAACQ,MAAP,CAAcwG,EAAnC,EAAuC;AACrC1O,MAAAA,MAAM,CAACI,IAAP,CAAYsH,MAAM,CAACQ,MAAP,CAAcwG,EAA1B,CAA8BrO,CAAAA,OAA9B,CAAuC0mB,SAAD,IAAe;AACnDrf,QAAAA,MAAM,CAACgH,EAAP,CAAUqY,SAAV,EAAqBrf,MAAM,CAACQ,MAAP,CAAcwG,EAAd,CAAiBqY,SAAjB,CAArB,CAAA,CAAA;OADF,CAAA,CAAA;AAGD,KAAA;;IACD,IAAIrf,MAAM,CAACQ,MAAP,IAAiBR,MAAM,CAACQ,MAAP,CAAc8J,KAAnC,EAA0C;AACxCtK,MAAAA,MAAM,CAACsK,KAAP,CAAatK,MAAM,CAACQ,MAAP,CAAc8J,KAA3B,CAAA,CAAA;AACD,KA5EkB;;;AA+EnBhS,IAAAA,MAAM,CAACiT,MAAP,CAAcvL,MAAd,EAAsB;AACpBoM,MAAAA,OAAO,EAAEpM,MAAM,CAACQ,MAAP,CAAc4L,OADH;MAEpBxP,EAFoB;AAIpB;AACAuoB,MAAAA,UAAU,EAAE,EALQ;AAOpB;AACA7Y,MAAAA,MAAM,EAAE,EARY;AASpBI,MAAAA,UAAU,EAAE,EATQ;AAUpBD,MAAAA,QAAQ,EAAE,EAVU;AAWpBE,MAAAA,eAAe,EAAE,EAXG;;AAapB;AACAzB,MAAAA,YAAY,GAAG;AACb,QAAA,OAAOlL,MAAM,CAACQ,MAAP,CAAcqW,SAAd,KAA4B,YAAnC,CAAA;OAfkB;;AAiBpB1L,MAAAA,UAAU,GAAG;AACX,QAAA,OAAOnL,MAAM,CAACQ,MAAP,CAAcqW,SAAd,KAA4B,UAAnC,CAAA;OAlBkB;;AAqBpB;AACAnF,MAAAA,WAAW,EAAE,CAtBO;AAuBpB+C,MAAAA,SAAS,EAAE,CAvBS;AAyBpB;AACA1B,MAAAA,WAAW,EAAE,IA1BO;AA2BpBC,MAAAA,KAAK,EAAE,KA3Ba;AA6BpB;AACA5S,MAAAA,SAAS,EAAE,CA9BS;AA+BpB0V,MAAAA,iBAAiB,EAAE,CA/BC;AAgCpB5U,MAAAA,QAAQ,EAAE,CAhCU;AAiCpBgmB,MAAAA,QAAQ,EAAE,CAjCU;AAkCpB9Q,MAAAA,SAAS,EAAE,KAlCS;AAoCpB;AACAiB,MAAAA,cAAc,EAAErX,MAAM,CAACQ,MAAP,CAAc6W,cArCV;AAsCpBC,MAAAA,cAAc,EAAEtX,MAAM,CAACQ,MAAP,CAAc8W,cAtCV;AAwCpB;AACA6D,MAAAA,eAAe,EAAE;AACfQ,QAAAA,SAAS,EAAE3c,SADI;AAEf4c,QAAAA,OAAO,EAAE5c,SAFM;AAGfoe,QAAAA,mBAAmB,EAAEpe,SAHN;AAIfue,QAAAA,cAAc,EAAEve,SAJD;AAKfqe,QAAAA,WAAW,EAAEre,SALE;AAMfwW,QAAAA,gBAAgB,EAAExW,SANH;AAOfogB,QAAAA,cAAc,EAAEpgB,SAPD;AAQfye,QAAAA,kBAAkB,EAAEze,SARL;AASf;AACA0e,QAAAA,iBAAiB,EAAE1d,MAAM,CAACQ,MAAP,CAAckd,iBAVlB;AAWf;QACA6C,aAAa,EAAE5jB,GAAG,EAZH;AAafwqB,QAAAA,YAAY,EAAEnoB,SAbC;AAcf;AACAooB,QAAAA,UAAU,EAAE,EAfG;AAgBf3H,QAAAA,mBAAmB,EAAEzgB,SAhBN;AAiBfse,QAAAA,WAAW,EAAEte,SAjBE;AAkBfoc,QAAAA,OAAO,EAAE,EAAA;OA3DS;AA8DpB;AACAkB,MAAAA,UAAU,EAAE,IA/DQ;AAiEpB;AACAsB,MAAAA,cAAc,EAAE5d,MAAM,CAACQ,MAAP,CAAcod,cAlEV;AAoEpBvC,MAAAA,OAAO,EAAE;AACPuB,QAAAA,MAAM,EAAE,CADD;AAEPC,QAAAA,MAAM,EAAE,CAFD;AAGPL,QAAAA,QAAQ,EAAE,CAHH;AAIPE,QAAAA,QAAQ,EAAE,CAJH;AAKPiD,QAAAA,IAAI,EAAE,CAAA;OAzEY;AA4EpB;AACA0H,MAAAA,YAAY,EAAE,EA7EM;AA8EpBC,MAAAA,YAAY,EAAE,CAAA;KA9EhB,CAAA,CAAA;AAiFAtnB,IAAAA,MAAM,CAACiH,IAAP,CAAY,SAAZ,EAhKmB;;AAmKnB,IAAA,IAAIjH,MAAM,CAACQ,MAAP,CAAc0I,IAAlB,EAAwB;AACtBlJ,MAAAA,MAAM,CAACkJ,IAAP,EAAA,CAAA;AACD,KArKkB;AAwKnB;;;AACA,IAAA,OAAOlJ,MAAP,CAAA;AACD,GAAA;;AAEDga,EAAAA,YAAY,GAAG;IACb,MAAMha,MAAM,GAAG,IAAf,CAAA;IACA,MAAM;MAAE6L,QAAF;AAAYrL,MAAAA,MAAAA;AAAZ,KAAA,GAAuBR,MAA7B,CAAA;AACAA,IAAAA,MAAM,CAACsM,MAAP,GAAgBvK,eAAe,CAAC8J,QAAD,EAAY,CAAA,CAAA,EAAGrL,MAAM,CAAC+L,UAAW,CAAA,cAAA,CAAjC,CAA/B,CAAA;AACD,GAAA;;AAEDyX,EAAAA,MAAM,GAAG;IACP,MAAMhkB,MAAM,GAAG,IAAf,CAAA;IACA,IAAIA,MAAM,CAACoM,OAAX,EAAoB,OAAA;IACpBpM,MAAM,CAACoM,OAAP,GAAiB,IAAjB,CAAA;;AACA,IAAA,IAAIpM,MAAM,CAACQ,MAAP,CAAckf,UAAlB,EAA8B;AAC5B1f,MAAAA,MAAM,CAACqa,aAAP,EAAA,CAAA;AACD,KAAA;;IACDra,MAAM,CAACiH,IAAP,CAAY,QAAZ,CAAA,CAAA;AACD,GAAA;;AAED8c,EAAAA,OAAO,GAAG;IACR,MAAM/jB,MAAM,GAAG,IAAf,CAAA;AACA,IAAA,IAAI,CAACA,MAAM,CAACoM,OAAZ,EAAqB,OAAA;IACrBpM,MAAM,CAACoM,OAAP,GAAiB,KAAjB,CAAA;;AACA,IAAA,IAAIpM,MAAM,CAACQ,MAAP,CAAckf,UAAlB,EAA8B;AAC5B1f,MAAAA,MAAM,CAAC2a,eAAP,EAAA,CAAA;AACD,KAAA;;IACD3a,MAAM,CAACiH,IAAP,CAAY,SAAZ,CAAA,CAAA;AACD,GAAA;;AAEDsgB,EAAAA,WAAW,CAACrmB,QAAD,EAAWT,KAAX,EAAkB;IAC3B,MAAMT,MAAM,GAAG,IAAf,CAAA;AACAkB,IAAAA,QAAQ,GAAGC,IAAI,CAACE,GAAL,CAASF,IAAI,CAACC,GAAL,CAASF,QAAT,EAAmB,CAAnB,CAAT,EAAgC,CAAhC,CAAX,CAAA;AACA,IAAA,MAAMG,GAAG,GAAGrB,MAAM,CAACqS,YAAP,EAAZ,CAAA;AACA,IAAA,MAAMjR,GAAG,GAAGpB,MAAM,CAAC8S,YAAP,EAAZ,CAAA;IACA,MAAM/R,OAAO,GAAG,CAACK,GAAG,GAAGC,GAAP,IAAcH,QAAd,GAAyBG,GAAzC,CAAA;AACArB,IAAAA,MAAM,CAACgW,WAAP,CAAmBjV,OAAnB,EAA4B,OAAON,KAAP,KAAiB,WAAjB,GAA+B,CAA/B,GAAmCA,KAA/D,CAAA,CAAA;AACAT,IAAAA,MAAM,CAACsU,iBAAP,EAAA,CAAA;AACAtU,IAAAA,MAAM,CAAC2T,mBAAP,EAAA,CAAA;AACD,GAAA;;AAEDgQ,EAAAA,oBAAoB,GAAG;IACrB,MAAM3jB,MAAM,GAAG,IAAf,CAAA;IACA,IAAI,CAACA,MAAM,CAACQ,MAAP,CAAculB,YAAf,IAA+B,CAAC/lB,MAAM,CAACpD,EAA3C,EAA+C,OAAA;AAC/C,IAAA,MAAM4qB,GAAG,GAAGxnB,MAAM,CAACpD,EAAP,CAAU6qB,SAAV,CAAoBlqB,KAApB,CAA0B,GAA1B,CAAA,CAA+B2B,MAA/B,CAAuCuoB,SAAD,IAAe;AAC/D,MAAA,OACEA,SAAS,CAACtoB,OAAV,CAAkB,QAAlB,CAAA,KAAgC,CAAhC,IACAsoB,SAAS,CAACtoB,OAAV,CAAkBa,MAAM,CAACQ,MAAP,CAAcuQ,sBAAhC,MAA4D,CAF9D,CAAA;AAID,KALW,CAAZ,CAAA;IAMA/Q,MAAM,CAACiH,IAAP,CAAY,mBAAZ,EAAiCugB,GAAG,CAAC7pB,IAAJ,CAAS,GAAT,CAAjC,CAAA,CAAA;AACD,GAAA;;EAED+pB,eAAe,CAAC7lB,OAAD,EAAU;IACvB,MAAM7B,MAAM,GAAG,IAAf,CAAA;AACA,IAAA,IAAIA,MAAM,CAACqH,SAAX,EAAsB,OAAO,EAAP,CAAA;IAEtB,OAAOxF,OAAO,CAAC4lB,SAAR,CACJlqB,KADI,CACE,GADF,CAEJ2B,CAAAA,MAFI,CAEIuoB,SAAD,IAAe;AACrB,MAAA,OACEA,SAAS,CAACtoB,OAAV,CAAkB,cAAlB,CAAA,KAAsC,CAAtC,IACAsoB,SAAS,CAACtoB,OAAV,CAAkBa,MAAM,CAACQ,MAAP,CAAc+L,UAAhC,MAAgD,CAFlD,CAAA;AAID,KAPI,CAQJ5O,CAAAA,IARI,CAQC,GARD,CAAP,CAAA;AASD,GAAA;;AAEDwW,EAAAA,iBAAiB,GAAG;IAClB,MAAMnU,MAAM,GAAG,IAAf,CAAA;IACA,IAAI,CAACA,MAAM,CAACQ,MAAP,CAAculB,YAAf,IAA+B,CAAC/lB,MAAM,CAACpD,EAA3C,EAA+C,OAAA;IAC/C,MAAM+qB,OAAO,GAAG,EAAhB,CAAA;AACA3nB,IAAAA,MAAM,CAACsM,MAAP,CAAc3T,OAAd,CAAuBkJ,OAAD,IAAa;AACjC,MAAA,MAAMsjB,UAAU,GAAGnlB,MAAM,CAAC0nB,eAAP,CAAuB7lB,OAAvB,CAAnB,CAAA;MACA8lB,OAAO,CAACnkB,IAAR,CAAa;QAAE3B,OAAF;AAAWsjB,QAAAA,UAAAA;OAAxB,CAAA,CAAA;AACAnlB,MAAAA,MAAM,CAACiH,IAAP,CAAY,aAAZ,EAA2BpF,OAA3B,EAAoCsjB,UAApC,CAAA,CAAA;KAHF,CAAA,CAAA;AAKAnlB,IAAAA,MAAM,CAACiH,IAAP,CAAY,eAAZ,EAA6B0gB,OAA7B,CAAA,CAAA;AACD,GAAA;;AAED1P,EAAAA,oBAAoB,CAAC2P,IAAD,EAAmBC,KAAnB,EAAkC;AAAA,IAAA,IAAjCD,IAAiC,KAAA,KAAA,CAAA,EAAA;AAAjCA,MAAAA,IAAiC,GAA1B,SAA0B,CAAA;AAAA,KAAA;;AAAA,IAAA,IAAfC,KAAe,KAAA,KAAA,CAAA,EAAA;AAAfA,MAAAA,KAAe,GAAP,KAAO,CAAA;AAAA,KAAA;;IACpD,MAAM7nB,MAAM,GAAG,IAAf,CAAA;IACA,MAAM;MAAEQ,MAAF;MAAU8L,MAAV;MAAkBI,UAAlB;MAA8BC,eAA9B;AAA+ClI,MAAAA,IAAI,EAAEqH,UAArD;AAAiE4F,MAAAA,WAAAA;AAAjE,KAAA,GAAiF1R,MAAvF,CAAA;IACA,IAAI8nB,GAAG,GAAG,CAAV,CAAA;;IACA,IAAItnB,MAAM,CAACkN,cAAX,EAA2B;AACzB,MAAA,IAAIM,SAAS,GAAG1B,MAAM,CAACoF,WAAD,CAAN,CAAoB5C,eAApC,CAAA;AACA,MAAA,IAAIiZ,SAAJ,CAAA;;AACA,MAAA,KAAK,IAAIjpB,CAAC,GAAG4S,WAAW,GAAG,CAA3B,EAA8B5S,CAAC,GAAGwN,MAAM,CAACzT,MAAzC,EAAiDiG,CAAC,IAAI,CAAtD,EAAyD;AACvD,QAAA,IAAIwN,MAAM,CAACxN,CAAD,CAAN,IAAa,CAACipB,SAAlB,EAA6B;AAC3B/Z,UAAAA,SAAS,IAAI1B,MAAM,CAACxN,CAAD,CAAN,CAAUgQ,eAAvB,CAAA;AACAgZ,UAAAA,GAAG,IAAI,CAAP,CAAA;AACA,UAAA,IAAI9Z,SAAS,GAAGlC,UAAhB,EAA4Bic,SAAS,GAAG,IAAZ,CAAA;AAC7B,SAAA;AACF,OAAA;;AACD,MAAA,KAAK,IAAIjpB,CAAC,GAAG4S,WAAW,GAAG,CAA3B,EAA8B5S,CAAC,IAAI,CAAnC,EAAsCA,CAAC,IAAI,CAA3C,EAA8C;AAC5C,QAAA,IAAIwN,MAAM,CAACxN,CAAD,CAAN,IAAa,CAACipB,SAAlB,EAA6B;AAC3B/Z,UAAAA,SAAS,IAAI1B,MAAM,CAACxN,CAAD,CAAN,CAAUgQ,eAAvB,CAAA;AACAgZ,UAAAA,GAAG,IAAI,CAAP,CAAA;AACA,UAAA,IAAI9Z,SAAS,GAAGlC,UAAhB,EAA4Bic,SAAS,GAAG,IAAZ,CAAA;AAC7B,SAAA;AACF,OAAA;AACF,KAjBD,MAiBO;AACL;MACA,IAAIH,IAAI,KAAK,SAAb,EAAwB;AACtB,QAAA,KAAK,IAAI9oB,CAAC,GAAG4S,WAAW,GAAG,CAA3B,EAA8B5S,CAAC,GAAGwN,MAAM,CAACzT,MAAzC,EAAiDiG,CAAC,IAAI,CAAtD,EAAyD;AACvD,UAAA,MAAMkpB,WAAW,GAAGH,KAAK,GACrBnb,UAAU,CAAC5N,CAAD,CAAV,GAAgB6N,eAAe,CAAC7N,CAAD,CAA/B,GAAqC4N,UAAU,CAACgF,WAAD,CAA/C,GAA+D5F,UAD1C,GAErBY,UAAU,CAAC5N,CAAD,CAAV,GAAgB4N,UAAU,CAACgF,WAAD,CAA1B,GAA0C5F,UAF9C,CAAA;;AAGA,UAAA,IAAIkc,WAAJ,EAAiB;AACfF,YAAAA,GAAG,IAAI,CAAP,CAAA;AACD,WAAA;AACF,SAAA;AACF,OATD,MASO;AACL;AACA,QAAA,KAAK,IAAIhpB,CAAC,GAAG4S,WAAW,GAAG,CAA3B,EAA8B5S,CAAC,IAAI,CAAnC,EAAsCA,CAAC,IAAI,CAA3C,EAA8C;AAC5C,UAAA,MAAMkpB,WAAW,GAAGtb,UAAU,CAACgF,WAAD,CAAV,GAA0BhF,UAAU,CAAC5N,CAAD,CAApC,GAA0CgN,UAA9D,CAAA;;AACA,UAAA,IAAIkc,WAAJ,EAAiB;AACfF,YAAAA,GAAG,IAAI,CAAP,CAAA;AACD,WAAA;AACF,SAAA;AACF,OAAA;AACF,KAAA;;AACD,IAAA,OAAOA,GAAP,CAAA;AACD,GAAA;;AAEDzF,EAAAA,MAAM,GAAG;IACP,MAAMriB,MAAM,GAAG,IAAf,CAAA;AACA,IAAA,IAAI,CAACA,MAAD,IAAWA,MAAM,CAACqH,SAAtB,EAAiC,OAAA;IACjC,MAAM;MAAEoF,QAAF;AAAYjM,MAAAA,MAAAA;KAAWR,GAAAA,MAA7B,CAHO;;IAKP,IAAIQ,MAAM,CAAC2N,WAAX,EAAwB;AACtBnO,MAAAA,MAAM,CAACuhB,aAAP,EAAA,CAAA;AACD,KAAA;;AACDvhB,IAAAA,MAAM,CAAC+K,UAAP,EAAA,CAAA;AACA/K,IAAAA,MAAM,CAACwL,YAAP,EAAA,CAAA;AACAxL,IAAAA,MAAM,CAAC2S,cAAP,EAAA,CAAA;AACA3S,IAAAA,MAAM,CAAC2T,mBAAP,EAAA,CAAA;;AAEA,IAAA,SAAS8B,YAAT,GAAwB;AACtB,MAAA,MAAMwS,cAAc,GAAGjoB,MAAM,CAAC+L,YAAP,GAAsB/L,MAAM,CAACI,SAAP,GAAmB,CAAC,CAA1C,GAA8CJ,MAAM,CAACI,SAA5E,CAAA;MACA,MAAMkW,YAAY,GAAGnV,IAAI,CAACE,GAAL,CACnBF,IAAI,CAACC,GAAL,CAAS6mB,cAAT,EAAyBjoB,MAAM,CAAC8S,YAAP,EAAzB,CADmB,EAEnB9S,MAAM,CAACqS,YAAP,EAFmB,CAArB,CAAA;MAIArS,MAAM,CAACyV,YAAP,CAAoBa,YAApB,CAAA,CAAA;AACAtW,MAAAA,MAAM,CAACsU,iBAAP,EAAA,CAAA;AACAtU,MAAAA,MAAM,CAAC2T,mBAAP,EAAA,CAAA;AACD,KAAA;;AACD,IAAA,IAAIuU,UAAJ,CAAA;;AACA,IAAA,IAAIloB,MAAM,CAACQ,MAAP,CAAcwd,QAAd,IAA0Bhe,MAAM,CAACQ,MAAP,CAAcwd,QAAd,CAAuB5R,OAArD,EAA8D;MAC5DqJ,YAAY,EAAA,CAAA;;AACZ,MAAA,IAAIzV,MAAM,CAACQ,MAAP,CAAckT,UAAlB,EAA8B;AAC5B1T,QAAAA,MAAM,CAACoR,gBAAP,EAAA,CAAA;AACD,OAAA;AACF,KALD,MAKO;MACL,IACE,CAACpR,MAAM,CAACQ,MAAP,CAAc0N,aAAd,KAAgC,MAAhC,IAA0ClO,MAAM,CAACQ,MAAP,CAAc0N,aAAd,GAA8B,CAAzE,KACAlO,MAAM,CAACgT,KADP,IAEA,CAAChT,MAAM,CAACQ,MAAP,CAAckN,cAHjB,EAIE;AACAwa,QAAAA,UAAU,GAAGloB,MAAM,CAACgX,OAAP,CAAehX,MAAM,CAACsM,MAAP,CAAczT,MAAd,GAAuB,CAAtC,EAAyC,CAAzC,EAA4C,KAA5C,EAAmD,IAAnD,CAAb,CAAA;AACD,OAND,MAMO;AACLqvB,QAAAA,UAAU,GAAGloB,MAAM,CAACgX,OAAP,CAAehX,MAAM,CAAC0R,WAAtB,EAAmC,CAAnC,EAAsC,KAAtC,EAA6C,IAA7C,CAAb,CAAA;AACD,OAAA;;MACD,IAAI,CAACwW,UAAL,EAAiB;QACfzS,YAAY,EAAA,CAAA;AACb,OAAA;AACF,KAAA;;IACD,IAAIjV,MAAM,CAACkQ,aAAP,IAAwBjE,QAAQ,KAAKzM,MAAM,CAACyM,QAAhD,EAA0D;AACxDzM,MAAAA,MAAM,CAAC2Q,aAAP,EAAA,CAAA;AACD,KAAA;;IACD3Q,MAAM,CAACiH,IAAP,CAAY,QAAZ,CAAA,CAAA;AACD,GAAA;;AAEDkd,EAAAA,eAAe,CAACgE,YAAD,EAAeC,UAAf,EAAkC;AAAA,IAAA,IAAnBA,UAAmB,KAAA,KAAA,CAAA,EAAA;AAAnBA,MAAAA,UAAmB,GAAN,IAAM,CAAA;AAAA,KAAA;;IAC/C,MAAMpoB,MAAM,GAAG,IAAf,CAAA;AACA,IAAA,MAAMqoB,gBAAgB,GAAGroB,MAAM,CAACQ,MAAP,CAAcqW,SAAvC,CAAA;;IACA,IAAI,CAACsR,YAAL,EAAmB;AACjB;AACAA,MAAAA,YAAY,GAAGE,gBAAgB,KAAK,YAArB,GAAoC,UAApC,GAAiD,YAAhE,CAAA;AACD,KAAA;;IACD,IACEF,YAAY,KAAKE,gBAAjB,IACCF,YAAY,KAAK,YAAjB,IAAiCA,YAAY,KAAK,UAFrD,EAGE;AACA,MAAA,OAAOnoB,MAAP,CAAA;AACD,KAAA;;AAEDA,IAAAA,MAAM,CAACpD,EAAP,CAAUyF,SAAV,CAAoB8O,MAApB,CAA4B,CAAEnR,EAAAA,MAAM,CAACQ,MAAP,CAAcuQ,sBAAuB,CAAA,EAAEsX,gBAAiB,CAAtF,CAAA,CAAA,CAAA;AACAroB,IAAAA,MAAM,CAACpD,EAAP,CAAUyF,SAAV,CAAoBC,GAApB,CAAyB,CAAEtC,EAAAA,MAAM,CAACQ,MAAP,CAAcuQ,sBAAuB,CAAA,EAAEoX,YAAa,CAA/E,CAAA,CAAA,CAAA;AACAnoB,IAAAA,MAAM,CAAC2jB,oBAAP,EAAA,CAAA;AAEA3jB,IAAAA,MAAM,CAACQ,MAAP,CAAcqW,SAAd,GAA0BsR,YAA1B,CAAA;AAEAnoB,IAAAA,MAAM,CAACsM,MAAP,CAAc3T,OAAd,CAAuBkJ,OAAD,IAAa;MACjC,IAAIsmB,YAAY,KAAK,UAArB,EAAiC;AAC/BtmB,QAAAA,OAAO,CAAChI,KAAR,CAAc8L,KAAd,GAAsB,EAAtB,CAAA;AACD,OAFD,MAEO;AACL9D,QAAAA,OAAO,CAAChI,KAAR,CAAcgM,MAAd,GAAuB,EAAvB,CAAA;AACD,OAAA;KALH,CAAA,CAAA;IAQA7F,MAAM,CAACiH,IAAP,CAAY,iBAAZ,CAAA,CAAA;AACA,IAAA,IAAImhB,UAAJ,EAAgBpoB,MAAM,CAACqiB,MAAP,EAAA,CAAA;AAEhB,IAAA,OAAOriB,MAAP,CAAA;AACD,GAAA;;EAEDsoB,uBAAuB,CAACzR,SAAD,EAAY;IACjC,MAAM7W,MAAM,GAAG,IAAf,CAAA;AACA,IAAA,IAAKA,MAAM,CAACgM,GAAP,IAAc6K,SAAS,KAAK,KAA7B,IAAwC,CAAC7W,MAAM,CAACgM,GAAR,IAAe6K,SAAS,KAAK,KAAzE,EAAiF,OAAA;AACjF7W,IAAAA,MAAM,CAACgM,GAAP,GAAa6K,SAAS,KAAK,KAA3B,CAAA;AACA7W,IAAAA,MAAM,CAAC+L,YAAP,GAAsB/L,MAAM,CAACQ,MAAP,CAAcqW,SAAd,KAA4B,YAA5B,IAA4C7W,MAAM,CAACgM,GAAzE,CAAA;;IACA,IAAIhM,MAAM,CAACgM,GAAX,EAAgB;AACdhM,MAAAA,MAAM,CAACpD,EAAP,CAAUyF,SAAV,CAAoBC,GAApB,CAAyB,CAAA,EAAEtC,MAAM,CAACQ,MAAP,CAAcuQ,sBAAuB,CAAhE,GAAA,CAAA,CAAA,CAAA;AACA/Q,MAAAA,MAAM,CAACpD,EAAP,CAAUiE,GAAV,GAAgB,KAAhB,CAAA;AACD,KAHD,MAGO;AACLb,MAAAA,MAAM,CAACpD,EAAP,CAAUyF,SAAV,CAAoB8O,MAApB,CAA4B,CAAA,EAAEnR,MAAM,CAACQ,MAAP,CAAcuQ,sBAAuB,CAAnE,GAAA,CAAA,CAAA,CAAA;AACA/Q,MAAAA,MAAM,CAACpD,EAAP,CAAUiE,GAAV,GAAgB,KAAhB,CAAA;AACD,KAAA;;AACDb,IAAAA,MAAM,CAACqiB,MAAP,EAAA,CAAA;AACD,GAAA;;EAEDkG,KAAK,CAACvmB,OAAD,EAAU;IACb,MAAMhC,MAAM,GAAG,IAAf,CAAA;AACA,IAAA,IAAIA,MAAM,CAACwoB,OAAX,EAAoB,OAAO,IAAP,CAFP;;IAKb,IAAI5rB,EAAE,GAAGoF,OAAO,IAAIhC,MAAM,CAACQ,MAAP,CAAc5D,EAAlC,CAAA;;AACA,IAAA,IAAI,OAAOA,EAAP,KAAc,QAAlB,EAA4B;AAC1BA,MAAAA,EAAE,GAAG/B,QAAQ,CAACxB,aAAT,CAAuBuD,EAAvB,CAAL,CAAA;AACD,KAAA;;IACD,IAAI,CAACA,EAAL,EAAS;AACP,MAAA,OAAO,KAAP,CAAA;AACD,KAAA;;IAEDA,EAAE,CAACoD,MAAH,GAAYA,MAAZ,CAAA;;IACA,IAAIpD,EAAE,CAACkF,QAAP,EAAiB;MACf9B,MAAM,CAACqZ,SAAP,GAAmB,IAAnB,CAAA;AACD,KAAA;;IAED,MAAMoP,kBAAkB,GAAG,MAAM;MAC/B,OAAQ,CAAA,CAAA,EAAG,CAACzoB,MAAM,CAACQ,MAAP,CAAcslB,YAAd,IAA8B,EAA/B,EAAmC4C,IAAnC,EAA0CnrB,CAAAA,KAA1C,CAAgD,GAAhD,CAAA,CAAqDI,IAArD,CAA0D,GAA1D,CAA+D,CAA1E,CAAA,CAAA;KADF,CAAA;;IAIA,MAAMgrB,UAAU,GAAG,MAAM;MACvB,IAAI/rB,EAAE,IAAIA,EAAE,CAACsf,UAAT,IAAuBtf,EAAE,CAACsf,UAAH,CAAc7iB,aAAzC,EAAwD;AACtD,QAAA,MAAMuvB,GAAG,GAAGhsB,EAAE,CAACsf,UAAH,CAAc7iB,aAAd,CAA4BovB,kBAAkB,EAA9C,CAAZ,CADsD;;AAGtD,QAAA,OAAOG,GAAP,CAAA;AACD,OAAA;;MACD,OAAO7mB,eAAe,CAACnF,EAAD,EAAK6rB,kBAAkB,EAAvB,CAAf,CAA0C,CAA1C,CAAP,CAAA;AACD,KAPD,CAtBa;;;IA+Bb,IAAI/nB,SAAS,GAAGioB,UAAU,EAA1B,CAAA;;IACA,IAAI,CAACjoB,SAAD,IAAcV,MAAM,CAACQ,MAAP,CAAcklB,cAAhC,EAAgD;MAC9ChlB,SAAS,GAAGhH,aAAa,CAAC,KAAD,EAAQsG,MAAM,CAACQ,MAAP,CAAcslB,YAAtB,CAAzB,CAAA;MACAlpB,EAAE,CAACmd,MAAH,CAAUrZ,SAAV,CAAA,CAAA;AACAqB,MAAAA,eAAe,CAACnF,EAAD,EAAM,CAAA,CAAA,EAAGoD,MAAM,CAACQ,MAAP,CAAc+L,UAAW,EAAlC,CAAf,CAAoD5T,OAApD,CAA6DkJ,OAAD,IAAa;QACvEnB,SAAS,CAACqZ,MAAV,CAAiBlY,OAAjB,CAAA,CAAA;OADF,CAAA,CAAA;AAGD,KAAA;;AAEDvJ,IAAAA,MAAM,CAACiT,MAAP,CAAcvL,MAAd,EAAsB;MACpBpD,EADoB;MAEpB8D,SAFoB;AAGpBmL,MAAAA,QAAQ,EAAE7L,MAAM,CAACqZ,SAAP,GAAmBzc,EAAnB,GAAwB8D,SAHd;AAIpB8nB,MAAAA,OAAO,EAAE,IAJW;AAMpB;AACAxc,MAAAA,GAAG,EAAEpP,EAAE,CAACiE,GAAH,CAAO8F,WAAP,EAAyB,KAAA,KAAzB,IAAkC9C,YAAY,CAACjH,EAAD,EAAK,WAAL,CAAZ,KAAkC,KAPrD;MAQpBmP,YAAY,EACV/L,MAAM,CAACQ,MAAP,CAAcqW,SAAd,KAA4B,YAA5B,KACCja,EAAE,CAACiE,GAAH,CAAO8F,WAAP,EAAA,KAAyB,KAAzB,IAAkC9C,YAAY,CAACjH,EAAD,EAAK,WAAL,CAAZ,KAAkC,KADrE,CATkB;AAWpBqP,MAAAA,QAAQ,EAAEpI,YAAY,CAACnD,SAAD,EAAY,SAAZ,CAAZ,KAAuC,aAAA;KAXnD,CAAA,CAAA;AAcA,IAAA,OAAO,IAAP,CAAA;AACD,GAAA;;EAEDwI,IAAI,CAACtM,EAAD,EAAK;IACP,MAAMoD,MAAM,GAAG,IAAf,CAAA;AACA,IAAA,IAAIA,MAAM,CAACsH,WAAX,EAAwB,OAAOtH,MAAP,CAAA;AAExB,IAAA,MAAMwoB,OAAO,GAAGxoB,MAAM,CAACuoB,KAAP,CAAa3rB,EAAb,CAAhB,CAAA;AACA,IAAA,IAAI4rB,OAAO,KAAK,KAAhB,EAAuB,OAAOxoB,MAAP,CAAA;AAEvBA,IAAAA,MAAM,CAACiH,IAAP,CAAY,YAAZ,EAPO;;AAUP,IAAA,IAAIjH,MAAM,CAACQ,MAAP,CAAc2N,WAAlB,EAA+B;AAC7BnO,MAAAA,MAAM,CAACuhB,aAAP,EAAA,CAAA;AACD,KAZM;;;IAePvhB,MAAM,CAAColB,UAAP,EAAA,CAfO;;IAkBPplB,MAAM,CAAC+K,UAAP,EAAA,CAlBO;;AAqBP/K,IAAAA,MAAM,CAACwL,YAAP,EAAA,CAAA;;AAEA,IAAA,IAAIxL,MAAM,CAACQ,MAAP,CAAckQ,aAAlB,EAAiC;AAC/B1Q,MAAAA,MAAM,CAAC2Q,aAAP,EAAA,CAAA;AACD,KAzBM;;;IA4BP,IAAI3Q,MAAM,CAACQ,MAAP,CAAckf,UAAd,IAA4B1f,MAAM,CAACoM,OAAvC,EAAgD;AAC9CpM,MAAAA,MAAM,CAACqa,aAAP,EAAA,CAAA;AACD,KA9BM;;;AAiCP,IAAA,IAAIra,MAAM,CAACQ,MAAP,CAAc+O,IAAd,IAAsBvP,MAAM,CAACmM,OAA7B,IAAwCnM,MAAM,CAACQ,MAAP,CAAc2L,OAAd,CAAsBC,OAAlE,EAA2E;MACzEpM,MAAM,CAACgX,OAAP,CACEhX,MAAM,CAACQ,MAAP,CAAcilB,YAAd,GAA6BzlB,MAAM,CAACmM,OAAP,CAAeuD,YAD9C,EAEE,CAFF,EAGE1P,MAAM,CAACQ,MAAP,CAAcuU,kBAHhB,EAIE,KAJF,EAKE,IALF,CAAA,CAAA;AAOD,KARD,MAQO;AACL/U,MAAAA,MAAM,CAACgX,OAAP,CAAehX,MAAM,CAACQ,MAAP,CAAcilB,YAA7B,EAA2C,CAA3C,EAA8CzlB,MAAM,CAACQ,MAAP,CAAcuU,kBAA5D,EAAgF,KAAhF,EAAuF,IAAvF,CAAA,CAAA;AACD,KA3CM;;;AA8CP,IAAA,IAAI/U,MAAM,CAACQ,MAAP,CAAc+O,IAAlB,EAAwB;AACtBvP,MAAAA,MAAM,CAACuZ,UAAP,EAAA,CAAA;AACD,KAhDM;;;IAmDPvZ,MAAM,CAAC6iB,YAAP,EAAA,CAnDO;;AAsDP7iB,IAAAA,MAAM,CAACsH,WAAP,GAAqB,IAArB,CAtDO;;IAyDPtH,MAAM,CAACiH,IAAP,CAAY,MAAZ,CAAA,CAAA;IACAjH,MAAM,CAACiH,IAAP,CAAY,WAAZ,CAAA,CAAA;AAEA,IAAA,OAAOjH,MAAP,CAAA;AACD,GAAA;;AAEDsJ,EAAAA,OAAO,CAACuf,cAAD,EAAwBC,WAAxB,EAA4C;AAAA,IAAA,IAA3CD,cAA2C,KAAA,KAAA,CAAA,EAAA;AAA3CA,MAAAA,cAA2C,GAA1B,IAA0B,CAAA;AAAA,KAAA;;AAAA,IAAA,IAApBC,WAAoB,KAAA,KAAA,CAAA,EAAA;AAApBA,MAAAA,WAAoB,GAAN,IAAM,CAAA;AAAA,KAAA;;IACjD,MAAM9oB,MAAM,GAAG,IAAf,CAAA;IACA,MAAM;MAAEQ,MAAF;MAAU5D,EAAV;MAAc8D,SAAd;AAAyB4L,MAAAA,MAAAA;AAAzB,KAAA,GAAoCtM,MAA1C,CAAA;;IAEA,IAAI,OAAOA,MAAM,CAACQ,MAAd,KAAyB,WAAzB,IAAwCR,MAAM,CAACqH,SAAnD,EAA8D;AAC5D,MAAA,OAAO,IAAP,CAAA;AACD,KAAA;;AAEDrH,IAAAA,MAAM,CAACiH,IAAP,CAAY,eAAZ,EARiD;;AAWjDjH,IAAAA,MAAM,CAACsH,WAAP,GAAqB,KAArB,CAXiD;;IAcjDtH,MAAM,CAAC+iB,YAAP,EAAA,CAdiD;;IAiBjD,IAAIviB,MAAM,CAAC+O,IAAX,EAAiB;AACfvP,MAAAA,MAAM,CAACia,WAAP,EAAA,CAAA;AACD,KAnBgD;;;AAsBjD,IAAA,IAAI6O,WAAJ,EAAiB;AACf9oB,MAAAA,MAAM,CAACslB,aAAP,EAAA,CAAA;MACA1oB,EAAE,CAACmsB,eAAH,CAAmB,OAAnB,CAAA,CAAA;MACAroB,SAAS,CAACqoB,eAAV,CAA0B,OAA1B,CAAA,CAAA;;AACA,MAAA,IAAIzc,MAAM,IAAIA,MAAM,CAACzT,MAArB,EAA6B;AAC3ByT,QAAAA,MAAM,CAAC3T,OAAP,CAAgBkJ,OAAD,IAAa;AAC1BA,UAAAA,OAAO,CAACQ,SAAR,CAAkB8O,MAAlB,CACE3Q,MAAM,CAACyR,iBADT,EAEEzR,MAAM,CAACqT,gBAFT,EAGErT,MAAM,CAACsT,cAHT,EAIEtT,MAAM,CAACuT,cAJT,CAAA,CAAA;UAMAlS,OAAO,CAACknB,eAAR,CAAwB,OAAxB,CAAA,CAAA;UACAlnB,OAAO,CAACknB,eAAR,CAAwB,yBAAxB,CAAA,CAAA;SARF,CAAA,CAAA;AAUD,OAAA;AACF,KAAA;;AAED/oB,IAAAA,MAAM,CAACiH,IAAP,CAAY,SAAZ,EAxCiD;;IA2CjD3O,MAAM,CAACI,IAAP,CAAYsH,MAAM,CAAC6J,eAAnB,CAAoClR,CAAAA,OAApC,CAA6C0mB,SAAD,IAAe;MACzDrf,MAAM,CAACkK,GAAP,CAAWmV,SAAX,CAAA,CAAA;KADF,CAAA,CAAA;;IAIA,IAAIwJ,cAAc,KAAK,KAAvB,EAA8B;AAC5B7oB,MAAAA,MAAM,CAACpD,EAAP,CAAUoD,MAAV,GAAmB,IAAnB,CAAA;MACA1D,WAAW,CAAC0D,MAAD,CAAX,CAAA;AACD,KAAA;;IACDA,MAAM,CAACqH,SAAP,GAAmB,IAAnB,CAAA;AAEA,IAAA,OAAO,IAAP,CAAA;AACD,GAAA;;EAEoB,OAAd2hB,cAAc,CAACC,WAAD,EAAc;AACjC1wB,IAAAA,MAAM,CAACiuB,gBAAD,EAAmByC,WAAnB,CAAN,CAAA;AACD,GAAA;;AAE0B,EAAA,WAAhBzC,gBAAgB,GAAG;AAC5B,IAAA,OAAOA,gBAAP,CAAA;AACD,GAAA;;AAEkB,EAAA,WAARQ,QAAQ,GAAG;AACpB,IAAA,OAAOA,QAAP,CAAA;AACD,GAAA;;EAEmB,OAAbkC,aAAa,CAACpC,GAAD,EAAM;AACxB,IAAA,IAAI,CAACL,MAAM,CAACpoB,SAAP,CAAiBwoB,WAAtB,EAAmCJ,MAAM,CAACpoB,SAAP,CAAiBwoB,WAAjB,GAA+B,EAA/B,CAAA;AACnC,IAAA,MAAMD,OAAO,GAAGH,MAAM,CAACpoB,SAAP,CAAiBwoB,WAAjC,CAAA;;AAEA,IAAA,IAAI,OAAOC,GAAP,KAAe,UAAf,IAA6BF,OAAO,CAACznB,OAAR,CAAgB2nB,GAAhB,CAAuB,GAAA,CAAxD,EAA2D;MACzDF,OAAO,CAACpjB,IAAR,CAAasjB,GAAb,CAAA,CAAA;AACD,KAAA;AACF,GAAA;;EAES,OAAHqC,GAAG,CAACC,MAAD,EAAS;AACjB,IAAA,IAAI7mB,KAAK,CAACC,OAAN,CAAc4mB,MAAd,CAAJ,EAA2B;MACzBA,MAAM,CAACzwB,OAAP,CAAgB0wB,CAAD,IAAO5C,MAAM,CAACyC,aAAP,CAAqBG,CAArB,CAAtB,CAAA,CAAA;AACA,MAAA,OAAO5C,MAAP,CAAA;AACD,KAAA;;IACDA,MAAM,CAACyC,aAAP,CAAqBE,MAArB,CAAA,CAAA;AACA,IAAA,OAAO3C,MAAP,CAAA;AACD,GAAA;;AAplBU,CAAA;;AAulBbnuB,MAAM,CAACI,IAAP,CAAY2tB,UAAZ,EAAwB1tB,OAAxB,CAAiC2wB,cAAD,IAAoB;EAClDhxB,MAAM,CAACI,IAAP,CAAY2tB,UAAU,CAACiD,cAAD,CAAtB,CAAwC3wB,CAAAA,OAAxC,CAAiD4wB,WAAD,IAAiB;IAC/D9C,MAAM,CAACpoB,SAAP,CAAiBkrB,WAAjB,CAAA,GAAgClD,UAAU,CAACiD,cAAD,CAAV,CAA2BC,WAA3B,CAAhC,CAAA;GADF,CAAA,CAAA;AAGD,CAJD,CAAA,CAAA;AAMA9C,MAAM,CAAC0C,GAAP,CAAW,CAACpiB,MAAD,EAASsB,QAAT,CAAX,CAAA;;AC5oBe,SAASmhB,OAAT,CAAqD,IAAA,EAAA;EAAA,IAApC;IAAExpB,MAAF;IAAUsI,YAAV;IAAwBtB,EAAxB;AAA4BC,IAAAA,IAAAA;GAAQ,GAAA,IAAA,CAAA;AAClEqB,EAAAA,YAAY,CAAC;AACX6D,IAAAA,OAAO,EAAE;AACPC,MAAAA,OAAO,EAAE,KADF;AAEPE,MAAAA,MAAM,EAAE,EAFD;AAGPmd,MAAAA,KAAK,EAAE,IAHA;AAIPC,MAAAA,WAAW,EAAE,IAJN;AAKPC,MAAAA,cAAc,EAAE,IALT;AAMPC,MAAAA,oBAAoB,EAAE,IANf;AAOPC,MAAAA,eAAe,EAAE,CAPV;AAQPC,MAAAA,cAAc,EAAE,CAAA;AART,KAAA;AADE,GAAD,CAAZ,CAAA;AAaA,EAAA,IAAIC,cAAJ,CAAA;EAEA/pB,MAAM,CAACmM,OAAP,GAAiB;AACfsd,IAAAA,KAAK,EAAE,EADQ;AAEfO,IAAAA,IAAI,EAAEhrB,SAFS;AAGfJ,IAAAA,EAAE,EAAEI,SAHW;AAIfsN,IAAAA,MAAM,EAAE,EAJO;AAKf2d,IAAAA,MAAM,EAAE,CALO;AAMfvd,IAAAA,UAAU,EAAE,EAAA;GANd,CAAA;AASA,EAAA,MAAMwd,OAAO,GAAGrvB,QAAQ,CAACnB,aAAT,CAAuB,KAAvB,CAAhB,CAAA;;AAEA,EAAA,SAASgwB,WAAT,CAAqBtb,KAArB,EAA4B3D,KAA5B,EAAmC;AACjC,IAAA,MAAMjK,MAAM,GAAGR,MAAM,CAACQ,MAAP,CAAc2L,OAA7B,CAAA;;AACA,IAAA,IAAI3L,MAAM,CAACipB,KAAP,IAAgBzpB,MAAM,CAACmM,OAAP,CAAesd,KAAf,CAAqBhf,KAArB,CAApB,EAAiD;AAC/C,MAAA,OAAOzK,MAAM,CAACmM,OAAP,CAAesd,KAAf,CAAqBhf,KAArB,CAAP,CAAA;AACD,KAJgC;;;AAMjC,IAAA,IAAI5I,OAAJ,CAAA;;IACA,IAAIrB,MAAM,CAACkpB,WAAX,EAAwB;AACtB7nB,MAAAA,OAAO,GAAGrB,MAAM,CAACkpB,WAAP,CAAmBprB,IAAnB,CAAwB0B,MAAxB,EAAgCoO,KAAhC,EAAuC3D,KAAvC,CAAV,CAAA;;AACA,MAAA,IAAI,OAAO5I,OAAP,KAAmB,QAAvB,EAAiC;QAC/BqoB,OAAO,CAACC,SAAR,GAAoBtoB,OAApB,CAAA;AACAA,QAAAA,OAAO,GAAGqoB,OAAO,CAACvwB,QAAR,CAAiB,CAAjB,CAAV,CAAA;AACD,OAAA;AACF,KAND,MAMO,IAAIqG,MAAM,CAACqZ,SAAX,EAAsB;AAC3BxX,MAAAA,OAAO,GAAGnI,aAAa,CAAC,cAAD,CAAvB,CAAA;AACD,KAFM,MAEA;MACLmI,OAAO,GAAGnI,aAAa,CAAC,KAAD,EAAQsG,MAAM,CAACQ,MAAP,CAAc+L,UAAtB,CAAvB,CAAA;AACD,KAAA;;AACD1K,IAAAA,OAAO,CAAC/H,YAAR,CAAqB,yBAArB,EAAgD2Q,KAAhD,CAAA,CAAA;;AACA,IAAA,IAAI,CAACjK,MAAM,CAACkpB,WAAZ,EAAyB;MACvB7nB,OAAO,CAACuoB,WAAR,GAAsBhc,KAAtB,CAAA;AACD,KAAA;;AAED,IAAA,IAAI5N,MAAM,CAACipB,KAAX,EAAkBzpB,MAAM,CAACmM,OAAP,CAAesd,KAAf,CAAqBhf,KAArB,CAAA,GAA8B5I,OAA9B,CAAA;AAClB,IAAA,OAAOA,OAAP,CAAA;AACD,GAAA;;EAED,SAASwgB,MAAT,CAAgBgI,KAAhB,EAAuB;IACrB,MAAM;MAAEnc,aAAF;MAAiBc,cAAjB;MAAiCtB,cAAjC;AAAiD6B,MAAAA,IAAI,EAAE+a,MAAAA;KAAWtqB,GAAAA,MAAM,CAACQ,MAA/E,CAAA;IACA,MAAM;MAAEqpB,eAAF;AAAmBC,MAAAA,cAAAA;AAAnB,KAAA,GAAsC9pB,MAAM,CAACQ,MAAP,CAAc2L,OAA1D,CAAA;IACA,MAAM;AACJ6d,MAAAA,IAAI,EAAEO,YADF;AAEJ3rB,MAAAA,EAAE,EAAE4rB,UAFA;MAGJle,MAHI;AAIJI,MAAAA,UAAU,EAAE+d,kBAJR;AAKJR,MAAAA,MAAM,EAAES,cAAAA;KACN1qB,GAAAA,MAAM,CAACmM,OANX,CAAA;;AAOA,IAAA,IAAI,CAACnM,MAAM,CAACQ,MAAP,CAAcmN,OAAnB,EAA4B;AAC1B3N,MAAAA,MAAM,CAACsU,iBAAP,EAAA,CAAA;AACD,KAAA;;AAED,IAAA,MAAM5C,WAAW,GAAG1R,MAAM,CAAC0R,WAAP,IAAsB,CAA1C,CAAA;AAEA,IAAA,IAAIiZ,UAAJ,CAAA;AACA,IAAA,IAAI3qB,MAAM,CAAC+L,YAAX,EAAyB4e,UAAU,GAAG,OAAb,CAAzB,KACKA,UAAU,GAAG3qB,MAAM,CAACkL,YAAP,EAAwB,GAAA,MAAxB,GAAiC,KAA9C,CAAA;AAEL,IAAA,IAAIyE,WAAJ,CAAA;AACA,IAAA,IAAID,YAAJ,CAAA;;AACA,IAAA,IAAIhC,cAAJ,EAAoB;MAClBiC,WAAW,GAAGxO,IAAI,CAAC0N,KAAL,CAAWX,aAAa,GAAG,CAA3B,CAAA,GAAgCc,cAAhC,GAAiD8a,cAA/D,CAAA;MACApa,YAAY,GAAGvO,IAAI,CAAC0N,KAAL,CAAWX,aAAa,GAAG,CAA3B,CAAA,GAAgCc,cAAhC,GAAiD6a,eAAhE,CAAA;AACD,KAHD,MAGO;MACLla,WAAW,GAAGzB,aAAa,IAAIc,cAAc,GAAG,CAArB,CAAb,GAAuC8a,cAArD,CAAA;MACApa,YAAY,GAAG,CAAC4a,MAAM,GAAGpc,aAAH,GAAmBc,cAA1B,IAA4C6a,eAA3D,CAAA;AACD,KAAA;;AACD,IAAA,IAAIG,IAAI,GAAGtY,WAAW,GAAGhC,YAAzB,CAAA;AACA,IAAA,IAAI9Q,EAAE,GAAG8S,WAAW,GAAG/B,WAAvB,CAAA;;IACA,IAAI,CAAC2a,MAAL,EAAa;MACXN,IAAI,GAAG7oB,IAAI,CAACC,GAAL,CAAS4oB,IAAT,EAAe,CAAf,CAAP,CAAA;AACAprB,MAAAA,EAAE,GAAGuC,IAAI,CAACE,GAAL,CAASzC,EAAT,EAAa0N,MAAM,CAACzT,MAAP,GAAgB,CAA7B,CAAL,CAAA;AACD,KAAA;;AACD,IAAA,IAAIoxB,MAAM,GAAG,CAACjqB,MAAM,CAAC0M,UAAP,CAAkBsd,IAAlB,CAAA,IAA2B,CAA5B,KAAkChqB,MAAM,CAAC0M,UAAP,CAAkB,CAAlB,CAAA,IAAwB,CAA1D,CAAb,CAAA;;AACA,IAAA,IAAI4d,MAAM,IAAI5Y,WAAW,IAAIhC,YAA7B,EAA2C;AACzCsa,MAAAA,IAAI,IAAIta,YAAR,CAAA;MACA,IAAI,CAAChC,cAAL,EAAqBuc,MAAM,IAAIjqB,MAAM,CAAC0M,UAAP,CAAkB,CAAlB,CAAV,CAAA;AACtB,KAHD,MAGO,IAAI4d,MAAM,IAAI5Y,WAAW,GAAGhC,YAA5B,EAA0C;MAC/Csa,IAAI,GAAG,CAACta,YAAR,CAAA;MACA,IAAIhC,cAAJ,EAAoBuc,MAAM,IAAIjqB,MAAM,CAAC0M,UAAP,CAAkB,CAAlB,CAAV,CAAA;AACrB,KAAA;;AAEDpU,IAAAA,MAAM,CAACiT,MAAP,CAAcvL,MAAM,CAACmM,OAArB,EAA8B;MAC5B6d,IAD4B;MAE5BprB,EAF4B;MAG5BqrB,MAH4B;MAI5Bvd,UAAU,EAAE1M,MAAM,CAAC0M,UAJS;MAK5BgD,YAL4B;AAM5BC,MAAAA,WAAAA;KANF,CAAA,CAAA;;AASA,IAAA,SAASib,UAAT,GAAsB;AACpB5qB,MAAAA,MAAM,CAACwL,YAAP,EAAA,CAAA;AACAxL,MAAAA,MAAM,CAAC2S,cAAP,EAAA,CAAA;AACA3S,MAAAA,MAAM,CAAC2T,mBAAP,EAAA,CAAA;MACA1M,IAAI,CAAC,eAAD,CAAJ,CAAA;AACD,KAAA;;IAED,IAAIsjB,YAAY,KAAKP,IAAjB,IAAyBQ,UAAU,KAAK5rB,EAAxC,IAA8C,CAACyrB,KAAnD,EAA0D;MACxD,IAAIrqB,MAAM,CAAC0M,UAAP,KAAsB+d,kBAAtB,IAA4CR,MAAM,KAAKS,cAA3D,EAA2E;AACzE1qB,QAAAA,MAAM,CAACsM,MAAP,CAAc3T,OAAd,CAAuBkJ,OAAD,IAAa;AACjCA,UAAAA,OAAO,CAAChI,KAAR,CAAc8wB,UAAd,CAA6B,GAAA,CAAA,EAAEV,MAAO,CAAtC,EAAA,CAAA,CAAA;SADF,CAAA,CAAA;AAGD,OAAA;;AACDjqB,MAAAA,MAAM,CAAC2S,cAAP,EAAA,CAAA;MACA1L,IAAI,CAAC,eAAD,CAAJ,CAAA;AACA,MAAA,OAAA;AACD,KAAA;;AACD,IAAA,IAAIjH,MAAM,CAACQ,MAAP,CAAc2L,OAAd,CAAsBwd,cAA1B,EAA0C;MACxC3pB,MAAM,CAACQ,MAAP,CAAc2L,OAAd,CAAsBwd,cAAtB,CAAqCrrB,IAArC,CAA0C0B,MAA1C,EAAkD;QAChDiqB,MADgD;QAEhDD,IAFgD;QAGhDprB,EAHgD;QAIhD0N,MAAM,EAAG,SAASue,SAAT,GAAqB;UAC5B,MAAMC,cAAc,GAAG,EAAvB,CAAA;;AACA,UAAA,KAAK,IAAIhsB,CAAC,GAAGkrB,IAAb,EAAmBlrB,CAAC,IAAIF,EAAxB,EAA4BE,CAAC,IAAI,CAAjC,EAAoC;AAClCgsB,YAAAA,cAAc,CAACtnB,IAAf,CAAoB8I,MAAM,CAACxN,CAAD,CAA1B,CAAA,CAAA;AACD,WAAA;;AACD,UAAA,OAAOgsB,cAAP,CAAA;SALM,EAAA;OAJV,CAAA,CAAA;;AAYA,MAAA,IAAI9qB,MAAM,CAACQ,MAAP,CAAc2L,OAAd,CAAsByd,oBAA1B,EAAgD;QAC9CgB,UAAU,EAAA,CAAA;AACX,OAFD,MAEO;QACL3jB,IAAI,CAAC,eAAD,CAAJ,CAAA;AACD,OAAA;;AACD,MAAA,OAAA;AACD,KAAA;;IACD,MAAM8jB,cAAc,GAAG,EAAvB,CAAA;IACA,MAAMC,aAAa,GAAG,EAAtB,CAAA;;IAEA,MAAMC,aAAa,GAAIxgB,KAAD,IAAW;MAC/B,IAAIqF,UAAU,GAAGrF,KAAjB,CAAA;;MACA,IAAIA,KAAK,GAAG,CAAZ,EAAe;AACbqF,QAAAA,UAAU,GAAGxD,MAAM,CAACzT,MAAP,GAAgB4R,KAA7B,CAAA;AACD,OAFD,MAEO,IAAIqF,UAAU,IAAIxD,MAAM,CAACzT,MAAzB,EAAiC;AACtC;AACAiX,QAAAA,UAAU,GAAGA,UAAU,GAAGxD,MAAM,CAACzT,MAAjC,CAAA;AACD,OAAA;;AACD,MAAA,OAAOiX,UAAP,CAAA;KARF,CAAA;;AAWA,IAAA,IAAIua,KAAJ,EAAW;AACTrqB,MAAAA,MAAM,CAAC6L,QAAP,CACGvS,gBADH,CACqB,IAAG0G,MAAM,CAACQ,MAAP,CAAc+L,UAAW,CADjD,cAAA,CAAA,CAAA,CAEG5T,OAFH,CAEYkJ,OAAD,IAAa;AACpBA,QAAAA,OAAO,CAACsP,MAAR,EAAA,CAAA;OAHJ,CAAA,CAAA;AAKD,KAND,MAMO;AACL,MAAA,KAAK,IAAIrS,CAAC,GAAGyrB,YAAb,EAA2BzrB,CAAC,IAAI0rB,UAAhC,EAA4C1rB,CAAC,IAAI,CAAjD,EAAoD;AAClD,QAAA,IAAIA,CAAC,GAAGkrB,IAAJ,IAAYlrB,CAAC,GAAGF,EAApB,EAAwB;AACtB,UAAA,MAAMkR,UAAU,GAAGmb,aAAa,CAACnsB,CAAD,CAAhC,CAAA;UACAkB,MAAM,CAAC6L,QAAP,CACGvS,gBADH,CAEK,CAAG0G,CAAAA,EAAAA,MAAM,CAACQ,MAAP,CAAc+L,UAAW,CAA4BuD,0BAAAA,EAAAA,UAAW,6CAA4CA,UAAW,CAAA,EAAA,CAF/H,EAIGnX,OAJH,CAIYkJ,OAAD,IAAa;AACpBA,YAAAA,OAAO,CAACsP,MAAR,EAAA,CAAA;WALJ,CAAA,CAAA;AAOD,SAAA;AACF,OAAA;AACF,KAAA;;IAED,MAAM+Z,QAAQ,GAAGZ,MAAM,GAAG,CAAChe,MAAM,CAACzT,MAAX,GAAoB,CAA3C,CAAA;AACA,IAAA,MAAMsyB,MAAM,GAAGb,MAAM,GAAGhe,MAAM,CAACzT,MAAP,GAAgB,CAAnB,GAAuByT,MAAM,CAACzT,MAAnD,CAAA;;AACA,IAAA,KAAK,IAAIiG,CAAC,GAAGosB,QAAb,EAAuBpsB,CAAC,GAAGqsB,MAA3B,EAAmCrsB,CAAC,IAAI,CAAxC,EAA2C;AACzC,MAAA,IAAIA,CAAC,IAAIkrB,IAAL,IAAalrB,CAAC,IAAIF,EAAtB,EAA0B;AACxB,QAAA,MAAMkR,UAAU,GAAGmb,aAAa,CAACnsB,CAAD,CAAhC,CAAA;;AACA,QAAA,IAAI,OAAO0rB,UAAP,KAAsB,WAAtB,IAAqCH,KAAzC,EAAgD;UAC9CW,aAAa,CAACxnB,IAAd,CAAmBsM,UAAnB,CAAA,CAAA;AACD,SAFD,MAEO;UACL,IAAIhR,CAAC,GAAG0rB,UAAR,EAAoBQ,aAAa,CAACxnB,IAAd,CAAmBsM,UAAnB,CAAA,CAAA;UACpB,IAAIhR,CAAC,GAAGyrB,YAAR,EAAsBQ,cAAc,CAACvnB,IAAf,CAAoBsM,UAApB,CAAA,CAAA;AACvB,SAAA;AACF,OAAA;AACF,KAAA;;AACDkb,IAAAA,aAAa,CAACryB,OAAd,CAAuB8R,KAAD,IAAW;AAC/BzK,MAAAA,MAAM,CAAC6L,QAAP,CAAgBkO,MAAhB,CAAuB2P,WAAW,CAACpd,MAAM,CAAC7B,KAAD,CAAP,EAAgBA,KAAhB,CAAlC,CAAA,CAAA;KADF,CAAA,CAAA;;AAGA,IAAA,IAAI6f,MAAJ,EAAY;AACV,MAAA,KAAK,IAAIxrB,CAAC,GAAGisB,cAAc,CAAClyB,MAAf,GAAwB,CAArC,EAAwCiG,CAAC,IAAI,CAA7C,EAAgDA,CAAC,IAAI,CAArD,EAAwD;AACtD,QAAA,MAAM2L,KAAK,GAAGsgB,cAAc,CAACjsB,CAAD,CAA5B,CAAA;AACAkB,QAAAA,MAAM,CAAC6L,QAAP,CAAgBiO,OAAhB,CAAwB4P,WAAW,CAACpd,MAAM,CAAC7B,KAAD,CAAP,EAAgBA,KAAhB,CAAnC,CAAA,CAAA;AACD,OAAA;AACF,KALD,MAKO;MACLsgB,cAAc,CAAClG,IAAf,CAAoB,CAACpnB,CAAD,EAAIqnB,CAAJ,KAAUA,CAAC,GAAGrnB,CAAlC,CAAA,CAAA;AACAstB,MAAAA,cAAc,CAACpyB,OAAf,CAAwB8R,KAAD,IAAW;AAChCzK,QAAAA,MAAM,CAAC6L,QAAP,CAAgBiO,OAAhB,CAAwB4P,WAAW,CAACpd,MAAM,CAAC7B,KAAD,CAAP,EAAgBA,KAAhB,CAAnC,CAAA,CAAA;OADF,CAAA,CAAA;AAGD,KAAA;;IACD1I,eAAe,CAAC/B,MAAM,CAAC6L,QAAR,EAAkB,6BAAlB,CAAf,CAAgElT,OAAhE,CAAyEkJ,OAAD,IAAa;AACnFA,MAAAA,OAAO,CAAChI,KAAR,CAAc8wB,UAAd,CAA6B,GAAA,CAAA,EAAEV,MAAO,CAAtC,EAAA,CAAA,CAAA;KADF,CAAA,CAAA;IAGAW,UAAU,EAAA,CAAA;AACX,GAAA;;EAED,SAASQ,WAAT,CAAqB9e,MAArB,EAA6B;AAC3B,IAAA,IAAI,OAAOA,MAAP,KAAkB,QAAlB,IAA8B,QAAA,IAAYA,MAA9C,EAAsD;AACpD,MAAA,KAAK,IAAIxN,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwN,MAAM,CAACzT,MAA3B,EAAmCiG,CAAC,IAAI,CAAxC,EAA2C;AACzC,QAAA,IAAIwN,MAAM,CAACxN,CAAD,CAAV,EAAekB,MAAM,CAACmM,OAAP,CAAeG,MAAf,CAAsB9I,IAAtB,CAA2B8I,MAAM,CAACxN,CAAD,CAAjC,CAAA,CAAA;AAChB,OAAA;AACF,KAJD,MAIO;AACLkB,MAAAA,MAAM,CAACmM,OAAP,CAAeG,MAAf,CAAsB9I,IAAtB,CAA2B8I,MAA3B,CAAA,CAAA;AACD,KAAA;;IACD+V,MAAM,CAAC,IAAD,CAAN,CAAA;AACD,GAAA;;EACD,SAASgJ,YAAT,CAAsB/e,MAAtB,EAA8B;AAC5B,IAAA,MAAMoF,WAAW,GAAG1R,MAAM,CAAC0R,WAA3B,CAAA;AACA,IAAA,IAAI6C,cAAc,GAAG7C,WAAW,GAAG,CAAnC,CAAA;IACA,IAAI4Z,iBAAiB,GAAG,CAAxB,CAAA;;AAEA,IAAA,IAAI/oB,KAAK,CAACC,OAAN,CAAc8J,MAAd,CAAJ,EAA2B;AACzB,MAAA,KAAK,IAAIxN,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwN,MAAM,CAACzT,MAA3B,EAAmCiG,CAAC,IAAI,CAAxC,EAA2C;AACzC,QAAA,IAAIwN,MAAM,CAACxN,CAAD,CAAV,EAAekB,MAAM,CAACmM,OAAP,CAAeG,MAAf,CAAsBzB,OAAtB,CAA8ByB,MAAM,CAACxN,CAAD,CAApC,CAAA,CAAA;AAChB,OAAA;;AACDyV,MAAAA,cAAc,GAAG7C,WAAW,GAAGpF,MAAM,CAACzT,MAAtC,CAAA;MACAyyB,iBAAiB,GAAGhf,MAAM,CAACzT,MAA3B,CAAA;AACD,KAND,MAMO;AACLmH,MAAAA,MAAM,CAACmM,OAAP,CAAeG,MAAf,CAAsBzB,OAAtB,CAA8ByB,MAA9B,CAAA,CAAA;AACD,KAAA;;AACD,IAAA,IAAItM,MAAM,CAACQ,MAAP,CAAc2L,OAAd,CAAsBsd,KAA1B,EAAiC;AAC/B,MAAA,MAAMA,KAAK,GAAGzpB,MAAM,CAACmM,OAAP,CAAesd,KAA7B,CAAA;MACA,MAAM8B,QAAQ,GAAG,EAAjB,CAAA;MACAjzB,MAAM,CAACI,IAAP,CAAY+wB,KAAZ,EAAmB9wB,OAAnB,CAA4B6yB,WAAD,IAAiB;AAC1C,QAAA,MAAMC,QAAQ,GAAGhC,KAAK,CAAC+B,WAAD,CAAtB,CAAA;AACA,QAAA,MAAME,aAAa,GAAGD,QAAQ,CAACja,YAAT,CAAsB,yBAAtB,CAAtB,CAAA;;AACA,QAAA,IAAIka,aAAJ,EAAmB;AACjBD,UAAAA,QAAQ,CAAC3xB,YAAT,CACE,yBADF,EAEEsR,QAAQ,CAACsgB,aAAD,EAAgB,EAAhB,CAAR,GAA8BJ,iBAFhC,CAAA,CAAA;AAID,SAAA;;QACDC,QAAQ,CAACngB,QAAQ,CAACogB,WAAD,EAAc,EAAd,CAAR,GAA4BF,iBAA7B,CAAR,GAA0DG,QAA1D,CAAA;OATF,CAAA,CAAA;AAWAzrB,MAAAA,MAAM,CAACmM,OAAP,CAAesd,KAAf,GAAuB8B,QAAvB,CAAA;AACD,KAAA;;IACDlJ,MAAM,CAAC,IAAD,CAAN,CAAA;AACAriB,IAAAA,MAAM,CAACgX,OAAP,CAAezC,cAAf,EAA+B,CAA/B,CAAA,CAAA;AACD,GAAA;;EACD,SAASoX,WAAT,CAAqBC,aAArB,EAAoC;IAClC,IAAI,OAAOA,aAAP,KAAyB,WAAzB,IAAwCA,aAAa,KAAK,IAA9D,EAAoE,OAAA;AACpE,IAAA,IAAIla,WAAW,GAAG1R,MAAM,CAAC0R,WAAzB,CAAA;;AACA,IAAA,IAAInP,KAAK,CAACC,OAAN,CAAcopB,aAAd,CAAJ,EAAkC;AAChC,MAAA,KAAK,IAAI9sB,CAAC,GAAG8sB,aAAa,CAAC/yB,MAAd,GAAuB,CAApC,EAAuCiG,CAAC,IAAI,CAA5C,EAA+CA,CAAC,IAAI,CAApD,EAAuD;AACrDkB,QAAAA,MAAM,CAACmM,OAAP,CAAeG,MAAf,CAAsB9C,MAAtB,CAA6BoiB,aAAa,CAAC9sB,CAAD,CAA1C,EAA+C,CAA/C,CAAA,CAAA;;AACA,QAAA,IAAIkB,MAAM,CAACQ,MAAP,CAAc2L,OAAd,CAAsBsd,KAA1B,EAAiC;UAC/B,OAAOzpB,MAAM,CAACmM,OAAP,CAAesd,KAAf,CAAqBmC,aAAa,CAAC9sB,CAAD,CAAlC,CAAP,CAAA;AACD,SAAA;;QACD,IAAI8sB,aAAa,CAAC9sB,CAAD,CAAb,GAAmB4S,WAAvB,EAAoCA,WAAW,IAAI,CAAf,CAAA;QACpCA,WAAW,GAAGvQ,IAAI,CAACC,GAAL,CAASsQ,WAAT,EAAsB,CAAtB,CAAd,CAAA;AACD,OAAA;AACF,KATD,MASO;MACL1R,MAAM,CAACmM,OAAP,CAAeG,MAAf,CAAsB9C,MAAtB,CAA6BoiB,aAA7B,EAA4C,CAA5C,CAAA,CAAA;;AACA,MAAA,IAAI5rB,MAAM,CAACQ,MAAP,CAAc2L,OAAd,CAAsBsd,KAA1B,EAAiC;AAC/B,QAAA,OAAOzpB,MAAM,CAACmM,OAAP,CAAesd,KAAf,CAAqBmC,aAArB,CAAP,CAAA;AACD,OAAA;;AACD,MAAA,IAAIA,aAAa,GAAGla,WAApB,EAAiCA,WAAW,IAAI,CAAf,CAAA;MACjCA,WAAW,GAAGvQ,IAAI,CAACC,GAAL,CAASsQ,WAAT,EAAsB,CAAtB,CAAd,CAAA;AACD,KAAA;;IACD2Q,MAAM,CAAC,IAAD,CAAN,CAAA;AACAriB,IAAAA,MAAM,CAACgX,OAAP,CAAetF,WAAf,EAA4B,CAA5B,CAAA,CAAA;AACD,GAAA;;AACD,EAAA,SAASma,eAAT,GAA2B;AACzB7rB,IAAAA,MAAM,CAACmM,OAAP,CAAeG,MAAf,GAAwB,EAAxB,CAAA;;AACA,IAAA,IAAItM,MAAM,CAACQ,MAAP,CAAc2L,OAAd,CAAsBsd,KAA1B,EAAiC;AAC/BzpB,MAAAA,MAAM,CAACmM,OAAP,CAAesd,KAAf,GAAuB,EAAvB,CAAA;AACD,KAAA;;IACDpH,MAAM,CAAC,IAAD,CAAN,CAAA;AACAriB,IAAAA,MAAM,CAACgX,OAAP,CAAe,CAAf,EAAkB,CAAlB,CAAA,CAAA;AACD,GAAA;;EAEDhQ,EAAE,CAAC,YAAD,EAAe,MAAM;IACrB,IAAI,CAAChH,MAAM,CAACQ,MAAP,CAAc2L,OAAd,CAAsBC,OAA3B,EAAoC,OAAA;AACpC,IAAA,IAAI0f,iBAAJ,CAAA;;IACA,IAAI,OAAO9rB,MAAM,CAACinB,YAAP,CAAoB9a,OAApB,CAA4BG,MAAnC,KAA8C,WAAlD,EAA+D;AAC7D,MAAA,MAAMA,MAAM,GAAGtM,MAAM,CAAC6L,QAAP,CAAgBvS,gBAAhB,CAAkC,CAAA,CAAA,EAAG0G,MAAM,CAACQ,MAAP,CAAc+L,UAAW,gBAA9D,CAAf,CAAA;;AACA,MAAA,IAAID,MAAM,IAAIA,MAAM,CAACzT,MAArB,EAA6B;QAC3BmH,MAAM,CAACmM,OAAP,CAAeG,MAAf,GAAwB,CAAC,GAAGA,MAAJ,CAAxB,CAAA;AACAwf,QAAAA,iBAAiB,GAAG,IAApB,CAAA;AACAxf,QAAAA,MAAM,CAAC3T,OAAP,CAAe,CAACkJ,OAAD,EAAUiO,UAAV,KAAyB;AACtCjO,UAAAA,OAAO,CAAC/H,YAAR,CAAqB,yBAArB,EAAgDgW,UAAhD,CAAA,CAAA;AACA9P,UAAAA,MAAM,CAACmM,OAAP,CAAesd,KAAf,CAAqB3Z,UAArB,IAAmCjO,OAAnC,CAAA;AACAA,UAAAA,OAAO,CAACsP,MAAR,EAAA,CAAA;SAHF,CAAA,CAAA;AAKD,OAAA;AACF,KAAA;;IACD,IAAI,CAAC2a,iBAAL,EAAwB;MACtB9rB,MAAM,CAACmM,OAAP,CAAeG,MAAf,GAAwBtM,MAAM,CAACQ,MAAP,CAAc2L,OAAd,CAAsBG,MAA9C,CAAA;AACD,KAAA;;IAEDtM,MAAM,CAACmlB,UAAP,CAAkB3hB,IAAlB,CAAwB,CAAExD,EAAAA,MAAM,CAACQ,MAAP,CAAcuQ,sBAAuB,CAA/D,OAAA,CAAA,CAAA,CAAA;AAEA/Q,IAAAA,MAAM,CAACQ,MAAP,CAAcoQ,mBAAd,GAAoC,IAApC,CAAA;AACA5Q,IAAAA,MAAM,CAACujB,cAAP,CAAsB3S,mBAAtB,GAA4C,IAA5C,CAAA;;AAEA,IAAA,IAAI,CAAC5Q,MAAM,CAACQ,MAAP,CAAcilB,YAAnB,EAAiC;MAC/BpD,MAAM,EAAA,CAAA;AACP,KAAA;AACF,GA3BC,CAAF,CAAA;EA4BArb,EAAE,CAAC,cAAD,EAAiB,MAAM;IACvB,IAAI,CAAChH,MAAM,CAACQ,MAAP,CAAc2L,OAAd,CAAsBC,OAA3B,EAAoC,OAAA;;IACpC,IAAIpM,MAAM,CAACQ,MAAP,CAAcmN,OAAd,IAAyB,CAAC3N,MAAM,CAACwX,iBAArC,EAAwD;MACtD3b,YAAY,CAACkuB,cAAD,CAAZ,CAAA;MACAA,cAAc,GAAGnuB,UAAU,CAAC,MAAM;QAChCymB,MAAM,EAAA,CAAA;OADmB,EAExB,GAFwB,CAA3B,CAAA;AAGD,KALD,MAKO;MACLA,MAAM,EAAA,CAAA;AACP,KAAA;AACF,GAVC,CAAF,CAAA;EAWArb,EAAE,CAAC,oBAAD,EAAuB,MAAM;IAC7B,IAAI,CAAChH,MAAM,CAACQ,MAAP,CAAc2L,OAAd,CAAsBC,OAA3B,EAAoC,OAAA;;AACpC,IAAA,IAAIpM,MAAM,CAACQ,MAAP,CAAcmN,OAAlB,EAA2B;AACzBhO,MAAAA,cAAc,CAACK,MAAM,CAACU,SAAR,EAAmB,uBAAnB,EAA6C,CAAA,EAAEV,MAAM,CAACqN,WAAY,CAAA,EAAA,CAAlE,CAAd,CAAA;AACD,KAAA;AACF,GALC,CAAF,CAAA;AAOA/U,EAAAA,MAAM,CAACiT,MAAP,CAAcvL,MAAM,CAACmM,OAArB,EAA8B;IAC5Bif,WAD4B;IAE5BC,YAF4B;IAG5BM,WAH4B;IAI5BE,eAJ4B;AAK5BxJ,IAAAA,MAAAA;GALF,CAAA,CAAA;AAOD;;ACtVD;AAIe,SAAS0J,QAAT,CAAsD,IAAA,EAAA;EAAA,IAApC;IAAE/rB,MAAF;IAAUsI,YAAV;IAAwBtB,EAAxB;AAA4BC,IAAAA,IAAAA;GAAQ,GAAA,IAAA,CAAA;EACnE,MAAMpM,QAAQ,GAAGF,WAAW,EAA5B,CAAA;EACA,MAAM0B,MAAM,GAAGF,SAAS,EAAxB,CAAA;EACA6D,MAAM,CAACgsB,QAAP,GAAkB;AAChB5f,IAAAA,OAAO,EAAE,KAAA;GADX,CAAA;AAGA9D,EAAAA,YAAY,CAAC;AACX0jB,IAAAA,QAAQ,EAAE;AACR5f,MAAAA,OAAO,EAAE,KADD;AAER6f,MAAAA,cAAc,EAAE,IAFR;AAGRC,MAAAA,UAAU,EAAE,IAAA;AAHJ,KAAA;AADC,GAAD,CAAZ,CAAA;;EAQA,SAASC,MAAT,CAAgBpiB,KAAhB,EAAuB;AACrB,IAAA,IAAI,CAAC/J,MAAM,CAACoM,OAAZ,EAAqB,OAAA;IAErB,MAAM;AAAEL,MAAAA,YAAY,EAAEC,GAAAA;AAAhB,KAAA,GAAwBhM,MAA9B,CAAA;IACA,IAAIxD,CAAC,GAAGuN,KAAR,CAAA;IACA,IAAIvN,CAAC,CAAC+e,aAAN,EAAqB/e,CAAC,GAAGA,CAAC,CAAC+e,aAAN,CALA;;IAMrB,MAAM6Q,EAAE,GAAG5vB,CAAC,CAAC6vB,OAAF,IAAa7vB,CAAC,CAAC8vB,QAA1B,CAAA;IACA,MAAMJ,UAAU,GAAGlsB,MAAM,CAACQ,MAAP,CAAcwrB,QAAd,CAAuBE,UAA1C,CAAA;AACA,IAAA,MAAMK,QAAQ,GAAGL,UAAU,IAAIE,EAAE,KAAK,EAAtC,CAAA;AACA,IAAA,MAAMI,UAAU,GAAGN,UAAU,IAAIE,EAAE,KAAK,EAAxC,CAAA;AACA,IAAA,MAAMK,WAAW,GAAGL,EAAE,KAAK,EAA3B,CAAA;AACA,IAAA,MAAMM,YAAY,GAAGN,EAAE,KAAK,EAA5B,CAAA;AACA,IAAA,MAAMO,SAAS,GAAGP,EAAE,KAAK,EAAzB,CAAA;AACA,IAAA,MAAMQ,WAAW,GAAGR,EAAE,KAAK,EAA3B,CAbqB;;AAerB,IAAA,IACE,CAACpsB,MAAM,CAACqX,cAAR,KACErX,MAAM,CAACkL,YAAP,EAAA,IAAyBwhB,YAA1B,IACE1sB,MAAM,CAACmL,UAAP,EAAA,IAAuByhB,WADzB,IAECJ,UAHF,CADF,EAKE;AACA,MAAA,OAAO,KAAP,CAAA;AACD,KAAA;;AACD,IAAA,IACE,CAACxsB,MAAM,CAACsX,cAAR,KACEtX,MAAM,CAACkL,YAAP,EAAA,IAAyBuhB,WAA1B,IAA2CzsB,MAAM,CAACmL,UAAP,EAAA,IAAuBwhB,SAAlE,IAAgFJ,QADjF,CADF,EAGE;AACA,MAAA,OAAO,KAAP,CAAA;AACD,KAAA;;AACD,IAAA,IAAI/vB,CAAC,CAACqwB,QAAF,IAAcrwB,CAAC,CAACswB,MAAhB,IAA0BtwB,CAAC,CAACuwB,OAA5B,IAAuCvwB,CAAC,CAACwwB,OAA7C,EAAsD;AACpD,MAAA,OAAOhuB,SAAP,CAAA;AACD,KAAA;;AACD,IAAA,IACEnE,QAAQ,CAAC3B,aAAT,IACA2B,QAAQ,CAAC3B,aAAT,CAAuBE,QADvB,KAECyB,QAAQ,CAAC3B,aAAT,CAAuBE,QAAvB,CAAgCuN,WAAhC,EAAkD,KAAA,OAAlD,IACC9L,QAAQ,CAAC3B,aAAT,CAAuBE,QAAvB,CAAgCuN,WAAhC,EAAkD,KAAA,UAHpD,CADF,EAKE;AACA,MAAA,OAAO3H,SAAP,CAAA;AACD,KAAA;;IACD,IACEgB,MAAM,CAACQ,MAAP,CAAcwrB,QAAd,CAAuBC,cAAvB,KACCM,QAAQ,IAAIC,UAAZ,IAA0BC,WAA1B,IAAyCC,YAAzC,IAAyDC,SAAzD,IAAsEC,WADvE,CADF,EAGE;AACA,MAAA,IAAIK,MAAM,GAAG,KAAb,CADA;;AAGA,MAAA,IACE/oB,cAAc,CAAClE,MAAM,CAACpD,EAAR,EAAa,CAAGoD,CAAAA,EAAAA,MAAM,CAACQ,MAAP,CAAc+L,UAAW,CAAA,cAAA,CAAzC,CAAd,CAAwE1T,MAAxE,GAAiF,CAAjF,IACAqL,cAAc,CAAClE,MAAM,CAACpD,EAAR,EAAa,IAAGoD,MAAM,CAACQ,MAAP,CAAcqT,gBAAiB,CAA/C,CAAA,CAAd,CAAgEhb,MAAhE,KAA2E,CAF7E,EAGE;AACA,QAAA,OAAOmG,SAAP,CAAA;AACD,OAAA;;AAED,MAAA,MAAMpC,EAAE,GAAGoD,MAAM,CAACpD,EAAlB,CAAA;AACA,MAAA,MAAMswB,WAAW,GAAGtwB,EAAE,CAACoO,WAAvB,CAAA;AACA,MAAA,MAAMmiB,YAAY,GAAGvwB,EAAE,CAACqO,YAAxB,CAAA;AACA,MAAA,MAAMmiB,WAAW,GAAG/wB,MAAM,CAAC6gB,UAA3B,CAAA;AACA,MAAA,MAAMmQ,YAAY,GAAGhxB,MAAM,CAACkoB,WAA5B,CAAA;AACA,MAAA,MAAM+I,YAAY,GAAG7qB,aAAa,CAAC7F,EAAD,CAAlC,CAAA;MACA,IAAIoP,GAAJ,EAASshB,YAAY,CAACnqB,IAAb,IAAqBvG,EAAE,CAACoG,UAAxB,CAAA;MACT,MAAMuqB,WAAW,GAAG,CAClB,CAACD,YAAY,CAACnqB,IAAd,EAAoBmqB,YAAY,CAACpqB,GAAjC,CADkB,EAElB,CAACoqB,YAAY,CAACnqB,IAAb,GAAoB+pB,WAArB,EAAkCI,YAAY,CAACpqB,GAA/C,CAFkB,EAGlB,CAACoqB,YAAY,CAACnqB,IAAd,EAAoBmqB,YAAY,CAACpqB,GAAb,GAAmBiqB,YAAvC,CAHkB,EAIlB,CAACG,YAAY,CAACnqB,IAAb,GAAoB+pB,WAArB,EAAkCI,YAAY,CAACpqB,GAAb,GAAmBiqB,YAArD,CAJkB,CAApB,CAAA;;AAMA,MAAA,KAAK,IAAIruB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGyuB,WAAW,CAAC10B,MAAhC,EAAwCiG,CAAC,IAAI,CAA7C,EAAgD;AAC9C,QAAA,MAAM2lB,KAAK,GAAG8I,WAAW,CAACzuB,CAAD,CAAzB,CAAA;;QACA,IAAI2lB,KAAK,CAAC,CAAD,CAAL,IAAY,CAAZ,IAAiBA,KAAK,CAAC,CAAD,CAAL,IAAY2I,WAA7B,IAA4C3I,KAAK,CAAC,CAAD,CAAL,IAAY,CAAxD,IAA6DA,KAAK,CAAC,CAAD,CAAL,IAAY4I,YAA7E,EAA2F;AACzF,UAAA,IAAI5I,KAAK,CAAC,CAAD,CAAL,KAAa,CAAb,IAAkBA,KAAK,CAAC,CAAD,CAAL,KAAa,CAAnC,EAAsC,SADmD;;AAEzFwI,UAAAA,MAAM,GAAG,IAAT,CAAA;AACD,SAAA;AACF,OAAA;;AACD,MAAA,IAAI,CAACA,MAAL,EAAa,OAAOjuB,SAAP,CAAA;AACd,KAAA;;AACD,IAAA,IAAIgB,MAAM,CAACkL,YAAP,EAAJ,EAA2B;AACzB,MAAA,IAAIqhB,QAAQ,IAAIC,UAAZ,IAA0BC,WAA1B,IAAyCC,YAA7C,EAA2D;AACzD,QAAA,IAAIlwB,CAAC,CAAC2gB,cAAN,EAAsB3gB,CAAC,CAAC2gB,cAAF,EAAA,CAAtB,KACK3gB,CAAC,CAACgxB,WAAF,GAAgB,KAAhB,CAAA;AACN,OAAA;;AACD,MAAA,IAAK,CAAChB,UAAU,IAAIE,YAAf,KAAgC,CAAC1gB,GAAlC,IAA2C,CAACugB,QAAQ,IAAIE,WAAb,KAA6BzgB,GAA5E,EACEhM,MAAM,CAAC8X,SAAP,EAAA,CAAA;AACF,MAAA,IAAK,CAACyU,QAAQ,IAAIE,WAAb,KAA6B,CAACzgB,GAA/B,IAAwC,CAACwgB,UAAU,IAAIE,YAAf,KAAgC1gB,GAA5E,EACEhM,MAAM,CAACsY,SAAP,EAAA,CAAA;AACH,KATD,MASO;AACL,MAAA,IAAIiU,QAAQ,IAAIC,UAAZ,IAA0BG,SAA1B,IAAuCC,WAA3C,EAAwD;AACtD,QAAA,IAAIpwB,CAAC,CAAC2gB,cAAN,EAAsB3gB,CAAC,CAAC2gB,cAAF,EAAA,CAAtB,KACK3gB,CAAC,CAACgxB,WAAF,GAAgB,KAAhB,CAAA;AACN,OAAA;;AACD,MAAA,IAAIhB,UAAU,IAAII,WAAlB,EAA+B5sB,MAAM,CAAC8X,SAAP,EAAA,CAAA;AAC/B,MAAA,IAAIyU,QAAQ,IAAII,SAAhB,EAA2B3sB,MAAM,CAACsY,SAAP,EAAA,CAAA;AAC5B,KAAA;;AACDrR,IAAAA,IAAI,CAAC,UAAD,EAAamlB,EAAb,CAAJ,CAAA;AACA,IAAA,OAAOptB,SAAP,CAAA;AACD,GAAA;;AACD,EAAA,SAASglB,MAAT,GAAkB;AAChB,IAAA,IAAIhkB,MAAM,CAACgsB,QAAP,CAAgB5f,OAApB,EAA6B,OAAA;AAC7BvR,IAAAA,QAAQ,CAAC7B,gBAAT,CAA0B,SAA1B,EAAqCmzB,MAArC,CAAA,CAAA;AACAnsB,IAAAA,MAAM,CAACgsB,QAAP,CAAgB5f,OAAhB,GAA0B,IAA1B,CAAA;AACD,GAAA;;AACD,EAAA,SAAS2X,OAAT,GAAmB;AACjB,IAAA,IAAI,CAAC/jB,MAAM,CAACgsB,QAAP,CAAgB5f,OAArB,EAA8B,OAAA;AAC9BvR,IAAAA,QAAQ,CAAC5B,mBAAT,CAA6B,SAA7B,EAAwCkzB,MAAxC,CAAA,CAAA;AACAnsB,IAAAA,MAAM,CAACgsB,QAAP,CAAgB5f,OAAhB,GAA0B,KAA1B,CAAA;AACD,GAAA;;EAEDpF,EAAE,CAAC,MAAD,EAAS,MAAM;AACf,IAAA,IAAIhH,MAAM,CAACQ,MAAP,CAAcwrB,QAAd,CAAuB5f,OAA3B,EAAoC;MAClC4X,MAAM,EAAA,CAAA;AACP,KAAA;AACF,GAJC,CAAF,CAAA;EAKAhd,EAAE,CAAC,SAAD,EAAY,MAAM;AAClB,IAAA,IAAIhH,MAAM,CAACgsB,QAAP,CAAgB5f,OAApB,EAA6B;MAC3B2X,OAAO,EAAA,CAAA;AACR,KAAA;AACF,GAJC,CAAF,CAAA;AAMAzrB,EAAAA,MAAM,CAACiT,MAAP,CAAcvL,MAAM,CAACgsB,QAArB,EAA+B;IAC7BhI,MAD6B;AAE7BD,IAAAA,OAAAA;GAFF,CAAA,CAAA;AAID;;AC3ID;AAIe,SAAS0J,UAAT,CAAwD,IAAA,EAAA;EAAA,IAApC;IAAEztB,MAAF;IAAUsI,YAAV;IAAwBtB,EAAxB;AAA4BC,IAAAA,IAAAA;GAAQ,GAAA,IAAA,CAAA;EACrE,MAAM5K,MAAM,GAAGF,SAAS,EAAxB,CAAA;AAEAmM,EAAAA,YAAY,CAAC;AACXolB,IAAAA,UAAU,EAAE;AACVthB,MAAAA,OAAO,EAAE,KADC;AAEVuhB,MAAAA,cAAc,EAAE,KAFN;AAGVC,MAAAA,MAAM,EAAE,KAHE;AAIVC,MAAAA,WAAW,EAAE,KAJH;AAKVC,MAAAA,WAAW,EAAE,CALH;AAMVC,MAAAA,YAAY,EAAE,WANJ;AAOVC,MAAAA,cAAc,EAAE,IAPN;AAQVC,MAAAA,aAAa,EAAE,IAAA;AARL,KAAA;AADD,GAAD,CAAZ,CAAA;EAaAjuB,MAAM,CAAC0tB,UAAP,GAAoB;AAClBthB,IAAAA,OAAO,EAAE,KAAA;GADX,CAAA;AAIA,EAAA,IAAIiV,OAAJ,CAAA;EACA,IAAI6M,cAAc,GAAGvxB,GAAG,EAAxB,CAAA;AACA,EAAA,IAAIwxB,mBAAJ,CAAA;EACA,MAAMC,iBAAiB,GAAG,EAA1B,CAAA;;EAEA,SAAS7V,SAAT,CAAmB/b,CAAnB,EAAsB;AACpB;IACA,MAAM6xB,UAAU,GAAG,EAAnB,CAAA;IACA,MAAMC,WAAW,GAAG,EAApB,CAAA;IACA,MAAMC,WAAW,GAAG,GAApB,CAAA;IAEA,IAAIC,EAAE,GAAG,CAAT,CAAA;AACA,IAAA,IAAIC,EAAE,GAAG,CAAT,CAPoB;;IAQpB,IAAIC,EAAE,GAAG,CAAT,CAAA;AACA,IAAA,IAAIC,EAAE,GAAG,CAAT,CAToB;AAWpB;;IACA,IAAI,QAAA,IAAYnyB,CAAhB,EAAmB;MACjBiyB,EAAE,GAAGjyB,CAAC,CAACoyB,MAAP,CAAA;AACD,KAAA;;IACD,IAAI,YAAA,IAAgBpyB,CAApB,EAAuB;AACrBiyB,MAAAA,EAAE,GAAG,CAACjyB,CAAC,CAACqyB,UAAH,GAAgB,GAArB,CAAA;AACD,KAAA;;IACD,IAAI,aAAA,IAAiBryB,CAArB,EAAwB;AACtBiyB,MAAAA,EAAE,GAAG,CAACjyB,CAAC,CAACsyB,WAAH,GAAiB,GAAtB,CAAA;AACD,KAAA;;IACD,IAAI,aAAA,IAAiBtyB,CAArB,EAAwB;AACtBgyB,MAAAA,EAAE,GAAG,CAAChyB,CAAC,CAACuyB,WAAH,GAAiB,GAAtB,CAAA;AACD,KAvBmB;;;IA0BpB,IAAI,MAAA,IAAUvyB,CAAV,IAAeA,CAAC,CAACO,IAAF,KAAWP,CAAC,CAACwyB,eAAhC,EAAiD;AAC/CR,MAAAA,EAAE,GAAGC,EAAL,CAAA;AACAA,MAAAA,EAAE,GAAG,CAAL,CAAA;AACD,KAAA;;IAEDC,EAAE,GAAGF,EAAE,GAAGH,UAAV,CAAA;IACAM,EAAE,GAAGF,EAAE,GAAGJ,UAAV,CAAA;;IAEA,IAAI,QAAA,IAAY7xB,CAAhB,EAAmB;MACjBmyB,EAAE,GAAGnyB,CAAC,CAACyyB,MAAP,CAAA;AACD,KAAA;;IACD,IAAI,QAAA,IAAYzyB,CAAhB,EAAmB;MACjBkyB,EAAE,GAAGlyB,CAAC,CAAC0yB,MAAP,CAAA;AACD,KAAA;;AAED,IAAA,IAAI1yB,CAAC,CAACqwB,QAAF,IAAc,CAAC6B,EAAnB,EAAuB;AACrB;AACAA,MAAAA,EAAE,GAAGC,EAAL,CAAA;AACAA,MAAAA,EAAE,GAAG,CAAL,CAAA;AACD,KAAA;;IAED,IAAI,CAACD,EAAE,IAAIC,EAAP,KAAcnyB,CAAC,CAAC2yB,SAApB,EAA+B;AAC7B,MAAA,IAAI3yB,CAAC,CAAC2yB,SAAF,KAAgB,CAApB,EAAuB;AACrB;AACAT,QAAAA,EAAE,IAAIJ,WAAN,CAAA;AACAK,QAAAA,EAAE,IAAIL,WAAN,CAAA;AACD,OAJD,MAIO;AACL;AACAI,QAAAA,EAAE,IAAIH,WAAN,CAAA;AACAI,QAAAA,EAAE,IAAIJ,WAAN,CAAA;AACD,OAAA;AACF,KAzDmB;;;AA4DpB,IAAA,IAAIG,EAAE,IAAI,CAACF,EAAX,EAAe;MACbA,EAAE,GAAGE,EAAE,GAAG,CAAL,GAAS,CAAC,CAAV,GAAc,CAAnB,CAAA;AACD,KAAA;;AACD,IAAA,IAAIC,EAAE,IAAI,CAACF,EAAX,EAAe;MACbA,EAAE,GAAGE,EAAE,GAAG,CAAL,GAAS,CAAC,CAAV,GAAc,CAAnB,CAAA;AACD,KAAA;;IAED,OAAO;AACLS,MAAAA,KAAK,EAAEZ,EADF;AAELa,MAAAA,KAAK,EAAEZ,EAFF;AAGLa,MAAAA,MAAM,EAAEZ,EAHH;AAILa,MAAAA,MAAM,EAAEZ,EAAAA;KAJV,CAAA;AAMD,GAAA;;AACD,EAAA,SAASa,gBAAT,GAA4B;AAC1B,IAAA,IAAI,CAACxvB,MAAM,CAACoM,OAAZ,EAAqB,OAAA;IACrBpM,MAAM,CAACyvB,YAAP,GAAsB,IAAtB,CAAA;AACD,GAAA;;AACD,EAAA,SAASC,gBAAT,GAA4B;AAC1B,IAAA,IAAI,CAAC1vB,MAAM,CAACoM,OAAZ,EAAqB,OAAA;IACrBpM,MAAM,CAACyvB,YAAP,GAAsB,KAAtB,CAAA;AACD,GAAA;;EACD,SAASE,aAAT,CAAuBC,QAAvB,EAAiC;AAC/B,IAAA,IACE5vB,MAAM,CAACQ,MAAP,CAAcktB,UAAd,CAAyBM,cAAzB,IACA4B,QAAQ,CAACC,KAAT,GAAiB7vB,MAAM,CAACQ,MAAP,CAAcktB,UAAd,CAAyBM,cAF5C,EAGE;AACA;AACA,MAAA,OAAO,KAAP,CAAA;AACD,KAAA;;AAED,IAAA,IACEhuB,MAAM,CAACQ,MAAP,CAAcktB,UAAd,CAAyBO,aAAzB,IACAtxB,GAAG,KAAKuxB,cAAR,GAAyBluB,MAAM,CAACQ,MAAP,CAAcktB,UAAd,CAAyBO,aAFpD,EAGE;AACA;AACA,MAAA,OAAO,KAAP,CAAA;AACD,KAf8B;AAkB/B;AACA;;;IACA,IAAI2B,QAAQ,CAACC,KAAT,IAAkB,CAAlB,IAAuBlzB,GAAG,EAAKuxB,GAAAA,cAAR,GAAyB,EAApD,EAAwD;AACtD;AACA,MAAA,OAAO,IAAP,CAAA;AACD,KAvB8B;AAyB/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAA,IAAI0B,QAAQ,CAAC/Y,SAAT,GAAqB,CAAzB,EAA4B;AAC1B,MAAA,IAAI,CAAC,CAAC7W,MAAM,CAACgT,KAAR,IAAiBhT,MAAM,CAACQ,MAAP,CAAc+O,IAAhC,KAAyC,CAACvP,MAAM,CAACoW,SAArD,EAAgE;AAC9DpW,QAAAA,MAAM,CAAC8X,SAAP,EAAA,CAAA;AACA7Q,QAAAA,IAAI,CAAC,QAAD,EAAW2oB,QAAQ,CAACE,GAApB,CAAJ,CAAA;AACD,OAAA;AACF,KALD,MAKO,IAAI,CAAC,CAAC9vB,MAAM,CAAC+S,WAAR,IAAuB/S,MAAM,CAACQ,MAAP,CAAc+O,IAAtC,KAA+C,CAACvP,MAAM,CAACoW,SAA3D,EAAsE;AAC3EpW,MAAAA,MAAM,CAACsY,SAAP,EAAA,CAAA;AACArR,MAAAA,IAAI,CAAC,QAAD,EAAW2oB,QAAQ,CAACE,GAApB,CAAJ,CAAA;AACD,KA5C8B;;;IA8C/B5B,cAAc,GAAG,IAAI7xB,MAAM,CAACX,IAAX,EAAkBuF,CAAAA,OAAlB,EAAjB,CA9C+B;;AAgD/B,IAAA,OAAO,KAAP,CAAA;AACD,GAAA;;EACD,SAAS8uB,aAAT,CAAuBH,QAAvB,EAAiC;AAC/B,IAAA,MAAMpvB,MAAM,GAAGR,MAAM,CAACQ,MAAP,CAAcktB,UAA7B,CAAA;;AACA,IAAA,IAAIkC,QAAQ,CAAC/Y,SAAT,GAAqB,CAAzB,EAA4B;AAC1B,MAAA,IAAI7W,MAAM,CAACgT,KAAP,IAAgB,CAAChT,MAAM,CAACQ,MAAP,CAAc+O,IAA/B,IAAuC/O,MAAM,CAACmtB,cAAlD,EAAkE;AAChE;AACA,QAAA,OAAO,IAAP,CAAA;AACD,OAAA;AACF,KALD,MAKO,IAAI3tB,MAAM,CAAC+S,WAAP,IAAsB,CAAC/S,MAAM,CAACQ,MAAP,CAAc+O,IAArC,IAA6C/O,MAAM,CAACmtB,cAAxD,EAAwE;AAC7E;AACA,MAAA,OAAO,IAAP,CAAA;AACD,KAAA;;AACD,IAAA,OAAO,KAAP,CAAA;AACD,GAAA;;EACD,SAASxB,MAAT,CAAgBpiB,KAAhB,EAAuB;IACrB,IAAIvN,CAAC,GAAGuN,KAAR,CAAA;IACA,IAAI8V,mBAAmB,GAAG,IAA1B,CAAA;AACA,IAAA,IAAI,CAAC7f,MAAM,CAACoM,OAAZ,EAAqB,OAAA;AACrB,IAAA,MAAM5L,MAAM,GAAGR,MAAM,CAACQ,MAAP,CAAcktB,UAA7B,CAAA;;AAEA,IAAA,IAAI1tB,MAAM,CAACQ,MAAP,CAAcmN,OAAlB,EAA2B;AACzBnR,MAAAA,CAAC,CAAC2gB,cAAF,EAAA,CAAA;AACD,KAAA;;AAED,IAAA,IAAI3B,QAAQ,GAAGxb,MAAM,CAACpD,EAAtB,CAAA;;IACA,IAAIoD,MAAM,CAACQ,MAAP,CAAcktB,UAAd,CAAyBK,YAAzB,KAA0C,WAA9C,EAA2D;AACzDvS,MAAAA,QAAQ,GAAG3gB,QAAQ,CAACxB,aAAT,CAAuB2G,MAAM,CAACQ,MAAP,CAAcktB,UAAd,CAAyBK,YAAhD,CAAX,CAAA;AACD,KAAA;;IACD,MAAMiC,sBAAsB,GAAGxU,QAAQ,IAAIA,QAAQ,CAACvK,QAAT,CAAkBzU,CAAC,CAAChE,MAApB,CAA3C,CAAA;AACA,IAAA,IAAI,CAACwH,MAAM,CAACyvB,YAAR,IAAwB,CAACO,sBAAzB,IAAmD,CAACxvB,MAAM,CAACmtB,cAA/D,EAA+E,OAAO,IAAP,CAAA;IAE/E,IAAInxB,CAAC,CAAC+e,aAAN,EAAqB/e,CAAC,GAAGA,CAAC,CAAC+e,aAAN,CAjBA;;IAkBrB,IAAIsU,KAAK,GAAG,CAAZ,CAAA;IACA,MAAMI,SAAS,GAAGjwB,MAAM,CAAC+L,YAAP,GAAsB,CAAC,CAAvB,GAA2B,CAA7C,CAAA;AAEA,IAAA,MAAMpB,IAAI,GAAG4N,SAAS,CAAC/b,CAAD,CAAtB,CAAA;;IAEA,IAAIgE,MAAM,CAACqtB,WAAX,EAAwB;AACtB,MAAA,IAAI7tB,MAAM,CAACkL,YAAP,EAAJ,EAA2B;AACzB,QAAA,IAAI/J,IAAI,CAAC4N,GAAL,CAASpE,IAAI,CAAC2kB,MAAd,CAAA,GAAwBnuB,IAAI,CAAC4N,GAAL,CAASpE,IAAI,CAAC4kB,MAAd,CAA5B,EAAmDM,KAAK,GAAG,CAACllB,IAAI,CAAC2kB,MAAN,GAAeW,SAAvB,CAAnD,KACK,OAAO,IAAP,CAAA;AACN,OAHD,MAGO,IAAI9uB,IAAI,CAAC4N,GAAL,CAASpE,IAAI,CAAC4kB,MAAd,CAAA,GAAwBpuB,IAAI,CAAC4N,GAAL,CAASpE,IAAI,CAAC2kB,MAAd,CAA5B,EAAmDO,KAAK,GAAG,CAACllB,IAAI,CAAC4kB,MAAd,CAAnD,KACF,OAAO,IAAP,CAAA;AACN,KAND,MAMO;AACLM,MAAAA,KAAK,GACH1uB,IAAI,CAAC4N,GAAL,CAASpE,IAAI,CAAC2kB,MAAd,CAAwBnuB,GAAAA,IAAI,CAAC4N,GAAL,CAASpE,IAAI,CAAC4kB,MAAd,CAAxB,GAAgD,CAAC5kB,IAAI,CAAC2kB,MAAN,GAAeW,SAA/D,GAA2E,CAACtlB,IAAI,CAAC4kB,MADnF,CAAA;AAED,KAAA;;AAED,IAAA,IAAIM,KAAK,KAAK,CAAd,EAAiB,OAAO,IAAP,CAAA;IAEjB,IAAIrvB,MAAM,CAACotB,MAAX,EAAmBiC,KAAK,GAAG,CAACA,KAAT,CApCE;;IAuCrB,IAAIK,SAAS,GAAGlwB,MAAM,CAAClD,YAAP,KAAwB+yB,KAAK,GAAGrvB,MAAM,CAACstB,WAAvD,CAAA;AAEA,IAAA,IAAIoC,SAAS,IAAIlwB,MAAM,CAACqS,YAAP,EAAjB,EAAwC6d,SAAS,GAAGlwB,MAAM,CAACqS,YAAP,EAAZ,CAAA;AACxC,IAAA,IAAI6d,SAAS,IAAIlwB,MAAM,CAAC8S,YAAP,EAAjB,EAAwCod,SAAS,GAAGlwB,MAAM,CAAC8S,YAAP,EAAZ,CA1CnB;AA6CrB;AACA;AACA;AACA;AACA;AACA;;IACA+M,mBAAmB,GAAG7f,MAAM,CAACQ,MAAP,CAAc+O,IAAd,GAClB,IADkB,GAElB,EAAE2gB,SAAS,KAAKlwB,MAAM,CAACqS,YAAP,EAAd,IAAuC6d,SAAS,KAAKlwB,MAAM,CAAC8S,YAAP,EAAvD,CAFJ,CAAA;IAIA,IAAI+M,mBAAmB,IAAI7f,MAAM,CAACQ,MAAP,CAAc0e,MAAzC,EAAiD1iB,CAAC,CAAC2iB,eAAF,EAAA,CAAA;;AAEjD,IAAA,IAAI,CAACnf,MAAM,CAACQ,MAAP,CAAcwd,QAAf,IAA2B,CAAChe,MAAM,CAACQ,MAAP,CAAcwd,QAAd,CAAuB5R,OAAvD,EAAgE;AAC9D;AACA,MAAA,MAAMwjB,QAAQ,GAAG;QACftvB,IAAI,EAAE3D,GAAG,EADM;AAEfkzB,QAAAA,KAAK,EAAE1uB,IAAI,CAAC4N,GAAL,CAAS8gB,KAAT,CAFQ;AAGfhZ,QAAAA,SAAS,EAAE1V,IAAI,CAACgvB,IAAL,CAAUN,KAAV,CAHI;AAIfC,QAAAA,GAAG,EAAE/lB,KAAAA;AAJU,OAAjB,CAF8D;;AAU9D,MAAA,IAAIqkB,iBAAiB,CAACv1B,MAAlB,IAA4B,CAAhC,EAAmC;QACjCu1B,iBAAiB,CAACgC,KAAlB,EAAA,CADiC;AAElC,OAAA;;AACD,MAAA,MAAMC,SAAS,GAAGjC,iBAAiB,CAACv1B,MAAlB,GACdu1B,iBAAiB,CAACA,iBAAiB,CAACv1B,MAAlB,GAA2B,CAA5B,CADH,GAEdmG,SAFJ,CAAA;AAGAovB,MAAAA,iBAAiB,CAAC5qB,IAAlB,CAAuBosB,QAAvB,EAhB8D;AAmB9D;AACA;AACA;AACA;AACA;;AACA,MAAA,IAAIS,SAAJ,EAAe;QACb,IACET,QAAQ,CAAC/Y,SAAT,KAAuBwZ,SAAS,CAACxZ,SAAjC,IACA+Y,QAAQ,CAACC,KAAT,GAAiBQ,SAAS,CAACR,KAD3B,IAEAD,QAAQ,CAACtvB,IAAT,GAAgB+vB,SAAS,CAAC/vB,IAAV,GAAiB,GAHnC,EAIE;UACAqvB,aAAa,CAACC,QAAD,CAAb,CAAA;AACD,SAAA;AACF,OARD,MAQO;QACLD,aAAa,CAACC,QAAD,CAAb,CAAA;AACD,OAlC6D;AAqC9D;;;AACA,MAAA,IAAIG,aAAa,CAACH,QAAD,CAAjB,EAA6B;AAC3B,QAAA,OAAO,IAAP,CAAA;AACD,OAAA;AACF,KAzCD,MAyCO;AACL;AAEA;AACA;AACA;AACA;AACA,MAAA,MAAMA,QAAQ,GAAG;QACftvB,IAAI,EAAE3D,GAAG,EADM;AAEfkzB,QAAAA,KAAK,EAAE1uB,IAAI,CAAC4N,GAAL,CAAS8gB,KAAT,CAFQ;AAGfhZ,QAAAA,SAAS,EAAE1V,IAAI,CAACgvB,IAAL,CAAUN,KAAV,CAAA;OAHb,CAAA;AAKA,MAAA,MAAMS,iBAAiB,GACrBnC,mBAAmB,IACnByB,QAAQ,CAACtvB,IAAT,GAAgB6tB,mBAAmB,CAAC7tB,IAApB,GAA2B,GAD3C,IAEAsvB,QAAQ,CAACC,KAAT,IAAkB1B,mBAAmB,CAAC0B,KAFtC,IAGAD,QAAQ,CAAC/Y,SAAT,KAAuBsX,mBAAmB,CAACtX,SAJ7C,CAAA;;MAKA,IAAI,CAACyZ,iBAAL,EAAwB;AACtBnC,QAAAA,mBAAmB,GAAGnvB,SAAtB,CAAA;;AAEA,QAAA,IAAIgB,MAAM,CAACQ,MAAP,CAAc+O,IAAlB,EAAwB;AACtBvP,UAAAA,MAAM,CAACmY,OAAP,EAAA,CAAA;AACD,SAAA;;QACD,IAAIoY,QAAQ,GAAGvwB,MAAM,CAAClD,YAAP,KAAwB+yB,KAAK,GAAGrvB,MAAM,CAACstB,WAAtD,CAAA;AACA,QAAA,MAAM5a,YAAY,GAAGlT,MAAM,CAAC+S,WAA5B,CAAA;AACA,QAAA,MAAMI,MAAM,GAAGnT,MAAM,CAACgT,KAAtB,CAAA;AAEA,QAAA,IAAIud,QAAQ,IAAIvwB,MAAM,CAACqS,YAAP,EAAhB,EAAuCke,QAAQ,GAAGvwB,MAAM,CAACqS,YAAP,EAAX,CAAA;AACvC,QAAA,IAAIke,QAAQ,IAAIvwB,MAAM,CAAC8S,YAAP,EAAhB,EAAuCyd,QAAQ,GAAGvwB,MAAM,CAAC8S,YAAP,EAAX,CAAA;QAEvC9S,MAAM,CAACsR,aAAP,CAAqB,CAArB,CAAA,CAAA;QACAtR,MAAM,CAACyV,YAAP,CAAoB8a,QAApB,CAAA,CAAA;AACAvwB,QAAAA,MAAM,CAAC2S,cAAP,EAAA,CAAA;AACA3S,QAAAA,MAAM,CAACsU,iBAAP,EAAA,CAAA;AACAtU,QAAAA,MAAM,CAAC2T,mBAAP,EAAA,CAAA;;AAEA,QAAA,IAAK,CAACT,YAAD,IAAiBlT,MAAM,CAAC+S,WAAzB,IAA0C,CAACI,MAAD,IAAWnT,MAAM,CAACgT,KAAhE,EAAwE;AACtEhT,UAAAA,MAAM,CAAC2T,mBAAP,EAAA,CAAA;AACD,SAAA;;AAED,QAAA,IAAI3T,MAAM,CAACQ,MAAP,CAAcwd,QAAd,CAAuBwS,MAA3B,EAAmC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;UACA30B,YAAY,CAACwlB,OAAD,CAAZ,CAAA;AACAA,UAAAA,OAAO,GAAGriB,SAAV,CAAA;;AACA,UAAA,IAAIovB,iBAAiB,CAACv1B,MAAlB,IAA4B,EAAhC,EAAoC;YAClCu1B,iBAAiB,CAACgC,KAAlB,EAAA,CADkC;AAEnC,WAAA;;AACD,UAAA,MAAMC,SAAS,GAAGjC,iBAAiB,CAACv1B,MAAlB,GACdu1B,iBAAiB,CAACA,iBAAiB,CAACv1B,MAAlB,GAA2B,CAA5B,CADH,GAEdmG,SAFJ,CAAA;AAGA,UAAA,MAAMyxB,UAAU,GAAGrC,iBAAiB,CAAC,CAAD,CAApC,CAAA;UACAA,iBAAiB,CAAC5qB,IAAlB,CAAuBosB,QAAvB,CAAA,CAAA;;AACA,UAAA,IACES,SAAS,KACRT,QAAQ,CAACC,KAAT,GAAiBQ,SAAS,CAACR,KAA3B,IAAoCD,QAAQ,CAAC/Y,SAAT,KAAuBwZ,SAAS,CAACxZ,SAD7D,CADX,EAGE;AACA;YACAuX,iBAAiB,CAAC5kB,MAAlB,CAAyB,CAAzB,CAAA,CAAA;AACD,WAND,MAMO,IACL4kB,iBAAiB,CAACv1B,MAAlB,IAA4B,EAA5B,IACA+2B,QAAQ,CAACtvB,IAAT,GAAgBmwB,UAAU,CAACnwB,IAA3B,GAAkC,GADlC,IAEAmwB,UAAU,CAACZ,KAAX,GAAmBD,QAAQ,CAACC,KAA5B,IAAqC,CAFrC,IAGAD,QAAQ,CAACC,KAAT,IAAkB,CAJb,EAKL;AACA;AACA;AACA;AACA;AACA;AACA;YACA,MAAMa,eAAe,GAAGb,KAAK,GAAG,CAAR,GAAY,GAAZ,GAAkB,GAA1C,CAAA;AACA1B,YAAAA,mBAAmB,GAAGyB,QAAtB,CAAA;YACAxB,iBAAiB,CAAC5kB,MAAlB,CAAyB,CAAzB,CAAA,CAAA;YACA6X,OAAO,GAAG5kB,QAAQ,CAAC,MAAM;AACvBuD,cAAAA,MAAM,CAAC+Y,cAAP,CAAsB/Y,MAAM,CAACQ,MAAP,CAAcC,KAApC,EAA2C,IAA3C,EAAiDzB,SAAjD,EAA4D0xB,eAA5D,CAAA,CAAA;AACD,aAFiB,EAEf,CAFe,CAAlB,CAVA;AAaD,WAAA;;UACD,IAAI,CAACrP,OAAL,EAAc;AACZ;AACA;AACA;YACAA,OAAO,GAAG5kB,QAAQ,CAAC,MAAM;cACvB,MAAMi0B,eAAe,GAAG,GAAxB,CAAA;AACAvC,cAAAA,mBAAmB,GAAGyB,QAAtB,CAAA;cACAxB,iBAAiB,CAAC5kB,MAAlB,CAAyB,CAAzB,CAAA,CAAA;AACAxJ,cAAAA,MAAM,CAAC+Y,cAAP,CAAsB/Y,MAAM,CAACQ,MAAP,CAAcC,KAApC,EAA2C,IAA3C,EAAiDzB,SAAjD,EAA4D0xB,eAA5D,CAAA,CAAA;aAJgB,EAKf,GALe,CAAlB,CAAA;AAMD,WAAA;AACF,SAjFqB;;;QAoFtB,IAAI,CAACJ,iBAAL,EAAwBrpB,IAAI,CAAC,QAAD,EAAWzK,CAAX,CAAJ,CApFF;;AAuFtB,QAAA,IAAIwD,MAAM,CAACQ,MAAP,CAAcihB,QAAd,IAA0BzhB,MAAM,CAACQ,MAAP,CAAcmwB,4BAA5C,EACE3wB,MAAM,CAACyhB,QAAP,CAAgBmP,IAAhB,GAxFoB;;AA0FtB,QAAA,IAAIL,QAAQ,KAAKvwB,MAAM,CAACqS,YAAP,EAAb,IAAsCke,QAAQ,KAAKvwB,MAAM,CAAC8S,YAAP,EAAvD,EAA8E,OAAO,IAAP,CAAA;AAC/E,OAAA;AACF,KAAA;;AAED,IAAA,IAAItW,CAAC,CAAC2gB,cAAN,EAAsB3gB,CAAC,CAAC2gB,cAAF,EAAA,CAAtB,KACK3gB,CAAC,CAACgxB,WAAF,GAAgB,KAAhB,CAAA;AACL,IAAA,OAAO,KAAP,CAAA;AACD,GAAA;;EAED,SAAS/jB,MAAT,CAAgBK,MAAhB,EAAwB;AACtB,IAAA,IAAI0R,QAAQ,GAAGxb,MAAM,CAACpD,EAAtB,CAAA;;IACA,IAAIoD,MAAM,CAACQ,MAAP,CAAcktB,UAAd,CAAyBK,YAAzB,KAA0C,WAA9C,EAA2D;AACzDvS,MAAAA,QAAQ,GAAG3gB,QAAQ,CAACxB,aAAT,CAAuB2G,MAAM,CAACQ,MAAP,CAAcktB,UAAd,CAAyBK,YAAhD,CAAX,CAAA;AACD,KAAA;;AACDvS,IAAAA,QAAQ,CAAC1R,MAAD,CAAR,CAAiB,YAAjB,EAA+B0lB,gBAA/B,CAAA,CAAA;AACAhU,IAAAA,QAAQ,CAAC1R,MAAD,CAAR,CAAiB,YAAjB,EAA+B4lB,gBAA/B,CAAA,CAAA;AACAlU,IAAAA,QAAQ,CAAC1R,MAAD,CAAR,CAAiB,OAAjB,EAA0BqiB,MAA1B,CAAA,CAAA;AACD,GAAA;;AAED,EAAA,SAASnI,MAAT,GAAkB;AAChB,IAAA,IAAIhkB,MAAM,CAACQ,MAAP,CAAcmN,OAAlB,EAA2B;AACzB3N,MAAAA,MAAM,CAACU,SAAP,CAAiBzH,mBAAjB,CAAqC,OAArC,EAA8CkzB,MAA9C,CAAA,CAAA;AACA,MAAA,OAAO,IAAP,CAAA;AACD,KAAA;;AACD,IAAA,IAAInsB,MAAM,CAAC0tB,UAAP,CAAkBthB,OAAtB,EAA+B,OAAO,KAAP,CAAA;IAC/B3C,MAAM,CAAC,kBAAD,CAAN,CAAA;AACAzJ,IAAAA,MAAM,CAAC0tB,UAAP,CAAkBthB,OAAlB,GAA4B,IAA5B,CAAA;AACA,IAAA,OAAO,IAAP,CAAA;AACD,GAAA;;AACD,EAAA,SAAS2X,OAAT,GAAmB;AACjB,IAAA,IAAI/jB,MAAM,CAACQ,MAAP,CAAcmN,OAAlB,EAA2B;AACzB3N,MAAAA,MAAM,CAACU,SAAP,CAAiB1H,gBAAjB,CAAkC+Q,KAAlC,EAAyCoiB,MAAzC,CAAA,CAAA;AACA,MAAA,OAAO,IAAP,CAAA;AACD,KAAA;;IACD,IAAI,CAACnsB,MAAM,CAAC0tB,UAAP,CAAkBthB,OAAvB,EAAgC,OAAO,KAAP,CAAA;IAChC3C,MAAM,CAAC,qBAAD,CAAN,CAAA;AACAzJ,IAAAA,MAAM,CAAC0tB,UAAP,CAAkBthB,OAAlB,GAA4B,KAA5B,CAAA;AACA,IAAA,OAAO,IAAP,CAAA;AACD,GAAA;;EAEDpF,EAAE,CAAC,MAAD,EAAS,MAAM;AACf,IAAA,IAAI,CAAChH,MAAM,CAACQ,MAAP,CAAcktB,UAAd,CAAyBthB,OAA1B,IAAqCpM,MAAM,CAACQ,MAAP,CAAcmN,OAAvD,EAAgE;MAC9DoW,OAAO,EAAA,CAAA;AACR,KAAA;;IACD,IAAI/jB,MAAM,CAACQ,MAAP,CAAcktB,UAAd,CAAyBthB,OAA7B,EAAsC4X,MAAM,EAAA,CAAA;AAC7C,GALC,CAAF,CAAA;EAMAhd,EAAE,CAAC,SAAD,EAAY,MAAM;AAClB,IAAA,IAAIhH,MAAM,CAACQ,MAAP,CAAcmN,OAAlB,EAA2B;MACzBqW,MAAM,EAAA,CAAA;AACP,KAAA;;AACD,IAAA,IAAIhkB,MAAM,CAAC0tB,UAAP,CAAkBthB,OAAtB,EAA+B2X,OAAO,EAAA,CAAA;AACvC,GALC,CAAF,CAAA;AAOAzrB,EAAAA,MAAM,CAACiT,MAAP,CAAcvL,MAAM,CAAC0tB,UAArB,EAAiC;IAC/B1J,MAD+B;AAE/BD,IAAAA,OAAAA;GAFF,CAAA,CAAA;AAID;;AClbc,SAAS8M,yBAAT,CAAmC7wB,MAAnC,EAA2CujB,cAA3C,EAA2D/iB,MAA3D,EAAmEswB,UAAnE,EAA+E;AAC5F,EAAA,IAAI9wB,MAAM,CAACQ,MAAP,CAAcklB,cAAlB,EAAkC;IAChCptB,MAAM,CAACI,IAAP,CAAYo4B,UAAZ,EAAwBn4B,OAAxB,CAAiCC,GAAD,IAAS;MACvC,IAAI,CAAC4H,MAAM,CAAC5H,GAAD,CAAP,IAAgB4H,MAAM,CAAC4lB,IAAP,KAAgB,IAApC,EAA0C;AACxC,QAAA,IAAIpkB,OAAO,GAAGD,eAAe,CAAC/B,MAAM,CAACpD,EAAR,EAAa,CAAGk0B,CAAAA,EAAAA,UAAU,CAACl4B,GAAD,CAAM,EAAhC,CAAf,CAAkD,CAAlD,CAAd,CAAA;;QACA,IAAI,CAACoJ,OAAL,EAAc;UACZA,OAAO,GAAGtI,aAAa,CAAC,KAAD,EAAQo3B,UAAU,CAACl4B,GAAD,CAAlB,CAAvB,CAAA;AACAoJ,UAAAA,OAAO,CAACylB,SAAR,GAAoBqJ,UAAU,CAACl4B,GAAD,CAA9B,CAAA;AACAoH,UAAAA,MAAM,CAACpD,EAAP,CAAUmd,MAAV,CAAiB/X,OAAjB,CAAA,CAAA;AACD,SAAA;;AACDxB,QAAAA,MAAM,CAAC5H,GAAD,CAAN,GAAcoJ,OAAd,CAAA;AACAuhB,QAAAA,cAAc,CAAC3qB,GAAD,CAAd,GAAsBoJ,OAAtB,CAAA;AACD,OAAA;KAVH,CAAA,CAAA;AAYD,GAAA;;AACD,EAAA,OAAOxB,MAAP,CAAA;AACD;;AChBc,SAASuwB,UAAT,CAAwD,IAAA,EAAA;EAAA,IAApC;IAAE/wB,MAAF;IAAUsI,YAAV;IAAwBtB,EAAxB;AAA4BC,IAAAA,IAAAA;GAAQ,GAAA,IAAA,CAAA;AACrEqB,EAAAA,YAAY,CAAC;AACX4Y,IAAAA,UAAU,EAAE;AACVC,MAAAA,MAAM,EAAE,IADE;AAEVC,MAAAA,MAAM,EAAE,IAFE;AAIV4P,MAAAA,WAAW,EAAE,KAJH;AAKVC,MAAAA,aAAa,EAAE,wBALL;AAMVC,MAAAA,WAAW,EAAE,sBANH;AAOVC,MAAAA,SAAS,EAAE,oBAPD;AAQVC,MAAAA,uBAAuB,EAAE,4BAAA;AARf,KAAA;AADD,GAAD,CAAZ,CAAA;EAaApxB,MAAM,CAACkhB,UAAP,GAAoB;AAClBC,IAAAA,MAAM,EAAE,IADU;AAElBC,IAAAA,MAAM,EAAE,IAAA;GAFV,CAAA;;EAKA,MAAMiQ,iBAAiB,GAAIz0B,EAAD,IAAQ;IAChC,IAAI,CAAC2F,KAAK,CAACC,OAAN,CAAc5F,EAAd,CAAL,EAAwBA,EAAE,GAAG,CAACA,EAAD,CAAA,CAAKsC,MAAL,CAAa1C,CAAD,IAAO,CAAC,CAACA,CAArB,CAAL,CAAA;AACxB,IAAA,OAAOI,EAAP,CAAA;GAFF,CAAA;;EAKA,SAAS00B,KAAT,CAAe10B,EAAf,EAAmB;AACjB,IAAA,IAAIgsB,GAAJ,CAAA;;IACA,IAAIhsB,EAAE,IAAI,OAAOA,EAAP,KAAc,QAApB,IAAgCoD,MAAM,CAACqZ,SAA3C,EAAsD;MACpDuP,GAAG,GAAG5oB,MAAM,CAACpD,EAAP,CAAUsf,UAAV,CAAqB7iB,aAArB,CAAmCuD,EAAnC,CAAN,CAAA;MACA,IAAIgsB,GAAJ,EAAS,OAAOA,GAAP,CAAA;AACV,KAAA;;AACD,IAAA,IAAIhsB,EAAJ,EAAQ;AACN,MAAA,IAAI,OAAOA,EAAP,KAAc,QAAlB,EAA4BgsB,GAAG,GAAG,CAAC,GAAG/tB,QAAQ,CAACvB,gBAAT,CAA0BsD,EAA1B,CAAJ,CAAN,CAAA;;AAC5B,MAAA,IACEoD,MAAM,CAACQ,MAAP,CAAcolB,iBAAd,IACA,OAAOhpB,EAAP,KAAc,QADd,IAEAgsB,GAAG,CAAC/vB,MAAJ,GAAa,CAFb,IAGAmH,MAAM,CAACpD,EAAP,CAAUtD,gBAAV,CAA2BsD,EAA3B,CAA+B/D,CAAAA,MAA/B,KAA0C,CAJ5C,EAKE;QACA+vB,GAAG,GAAG5oB,MAAM,CAACpD,EAAP,CAAUvD,aAAV,CAAwBuD,EAAxB,CAAN,CAAA;AACD,OAAA;AACF,KAhBgB;;;AAkBjB,IAAA,OAAOgsB,GAAP,CAAA;AACD,GAAA;;AAED,EAAA,SAAS2I,QAAT,CAAkB30B,EAAlB,EAAsB40B,QAAtB,EAAgC;AAC9B,IAAA,MAAMhxB,MAAM,GAAGR,MAAM,CAACQ,MAAP,CAAc0gB,UAA7B,CAAA;AACAtkB,IAAAA,EAAE,GAAGy0B,iBAAiB,CAACz0B,EAAD,CAAtB,CAAA;AACAA,IAAAA,EAAE,CAACjE,OAAH,CAAY84B,KAAD,IAAW;AACpB,MAAA,IAAIA,KAAJ,EAAW;QACTA,KAAK,CAACpvB,SAAN,CAAgBmvB,QAAQ,GAAG,KAAH,GAAW,QAAnC,CAAA,CAA6ChxB,MAAM,CAACywB,aAApD,CAAA,CAAA;QACA,IAAIQ,KAAK,CAACC,OAAN,KAAkB,QAAtB,EAAgCD,KAAK,CAACD,QAAN,GAAiBA,QAAjB,CAAA;;QAChC,IAAIxxB,MAAM,CAACQ,MAAP,CAAckQ,aAAd,IAA+B1Q,MAAM,CAACoM,OAA1C,EAAmD;AACjDqlB,UAAAA,KAAK,CAACpvB,SAAN,CAAgBrC,MAAM,CAACwa,QAAP,GAAkB,KAAlB,GAA0B,QAA1C,CAAoDha,CAAAA,MAAM,CAAC2wB,SAA3D,CAAA,CAAA;AACD,SAAA;AACF,OAAA;KAPH,CAAA,CAAA;AASD,GAAA;;AACD,EAAA,SAAS9O,MAAT,GAAkB;AAChB;IACA,MAAM;MAAElB,MAAF;AAAUC,MAAAA,MAAAA;KAAWphB,GAAAA,MAAM,CAACkhB,UAAlC,CAAA;;AACA,IAAA,IAAIlhB,MAAM,CAACQ,MAAP,CAAc+O,IAAlB,EAAwB;AACtBgiB,MAAAA,QAAQ,CAACnQ,MAAD,EAAS,KAAT,CAAR,CAAA;AACAmQ,MAAAA,QAAQ,CAACpQ,MAAD,EAAS,KAAT,CAAR,CAAA;AACA,MAAA,OAAA;AACD,KAAA;;AAEDoQ,IAAAA,QAAQ,CAACnQ,MAAD,EAASphB,MAAM,CAAC+S,WAAP,IAAsB,CAAC/S,MAAM,CAACQ,MAAP,CAAc6X,MAA9C,CAAR,CAAA;AACAkZ,IAAAA,QAAQ,CAACpQ,MAAD,EAASnhB,MAAM,CAACgT,KAAP,IAAgB,CAAChT,MAAM,CAACQ,MAAP,CAAc6X,MAAxC,CAAR,CAAA;AACD,GAAA;;EACD,SAASsZ,WAAT,CAAqBn1B,CAArB,EAAwB;AACtBA,IAAAA,CAAC,CAAC2gB,cAAF,EAAA,CAAA;AACA,IAAA,IAAInd,MAAM,CAAC+S,WAAP,IAAsB,CAAC/S,MAAM,CAACQ,MAAP,CAAc+O,IAArC,IAA6C,CAACvP,MAAM,CAACQ,MAAP,CAAc6X,MAAhE,EAAwE,OAAA;AACxErY,IAAAA,MAAM,CAACsY,SAAP,EAAA,CAAA;IACArR,IAAI,CAAC,gBAAD,CAAJ,CAAA;AACD,GAAA;;EACD,SAAS2qB,WAAT,CAAqBp1B,CAArB,EAAwB;AACtBA,IAAAA,CAAC,CAAC2gB,cAAF,EAAA,CAAA;AACA,IAAA,IAAInd,MAAM,CAACgT,KAAP,IAAgB,CAAChT,MAAM,CAACQ,MAAP,CAAc+O,IAA/B,IAAuC,CAACvP,MAAM,CAACQ,MAAP,CAAc6X,MAA1D,EAAkE,OAAA;AAClErY,IAAAA,MAAM,CAAC8X,SAAP,EAAA,CAAA;IACA7Q,IAAI,CAAC,gBAAD,CAAJ,CAAA;AACD,GAAA;;AACD,EAAA,SAASiC,IAAT,GAAgB;AACd,IAAA,MAAM1I,MAAM,GAAGR,MAAM,CAACQ,MAAP,CAAc0gB,UAA7B,CAAA;IAEAlhB,MAAM,CAACQ,MAAP,CAAc0gB,UAAd,GAA2B2P,yBAAyB,CAClD7wB,MADkD,EAElDA,MAAM,CAACujB,cAAP,CAAsBrC,UAF4B,EAGlDlhB,MAAM,CAACQ,MAAP,CAAc0gB,UAHoC,EAIlD;AACEC,MAAAA,MAAM,EAAE,oBADV;AAEEC,MAAAA,MAAM,EAAE,oBAAA;AAFV,KAJkD,CAApD,CAAA;IASA,IAAI,EAAE5gB,MAAM,CAAC2gB,MAAP,IAAiB3gB,MAAM,CAAC4gB,MAA1B,CAAJ,EAAuC,OAAA;AAEvC,IAAA,IAAID,MAAM,GAAGmQ,KAAK,CAAC9wB,MAAM,CAAC2gB,MAAR,CAAlB,CAAA;AACA,IAAA,IAAIC,MAAM,GAAGkQ,KAAK,CAAC9wB,MAAM,CAAC4gB,MAAR,CAAlB,CAAA;AAEA9oB,IAAAA,MAAM,CAACiT,MAAP,CAAcvL,MAAM,CAACkhB,UAArB,EAAiC;MAC/BC,MAD+B;AAE/BC,MAAAA,MAAAA;KAFF,CAAA,CAAA;AAIAD,IAAAA,MAAM,GAAGkQ,iBAAiB,CAAClQ,MAAD,CAA1B,CAAA;AACAC,IAAAA,MAAM,GAAGiQ,iBAAiB,CAACjQ,MAAD,CAA1B,CAAA;;AAEA,IAAA,MAAMyQ,UAAU,GAAG,CAACj1B,EAAD,EAAKiE,GAAL,KAAa;AAC9B,MAAA,IAAIjE,EAAJ,EAAQ;QACNA,EAAE,CAAC5D,gBAAH,CAAoB,OAApB,EAA6B6H,GAAG,KAAK,MAAR,GAAiB+wB,WAAjB,GAA+BD,WAA5D,CAAA,CAAA;AACD,OAAA;;AACD,MAAA,IAAI,CAAC3xB,MAAM,CAACoM,OAAR,IAAmBxP,EAAvB,EAA2B;AACzBA,QAAAA,EAAE,CAACyF,SAAH,CAAaC,GAAb,CAAiB9B,MAAM,CAAC2wB,SAAxB,CAAA,CAAA;AACD,OAAA;KANH,CAAA;;IASAhQ,MAAM,CAACxoB,OAAP,CAAgBiE,EAAD,IAAQi1B,UAAU,CAACj1B,EAAD,EAAK,MAAL,CAAjC,CAAA,CAAA;IACAwkB,MAAM,CAACzoB,OAAP,CAAgBiE,EAAD,IAAQi1B,UAAU,CAACj1B,EAAD,EAAK,MAAL,CAAjC,CAAA,CAAA;AACD,GAAA;;AACD,EAAA,SAAS0M,OAAT,GAAmB;IACjB,IAAI;MAAE6X,MAAF;AAAUC,MAAAA,MAAAA;KAAWphB,GAAAA,MAAM,CAACkhB,UAAhC,CAAA;AACAC,IAAAA,MAAM,GAAGkQ,iBAAiB,CAAClQ,MAAD,CAA1B,CAAA;AACAC,IAAAA,MAAM,GAAGiQ,iBAAiB,CAACjQ,MAAD,CAA1B,CAAA;;AACA,IAAA,MAAM0Q,aAAa,GAAG,CAACl1B,EAAD,EAAKiE,GAAL,KAAa;MACjCjE,EAAE,CAAC3D,mBAAH,CAAuB,OAAvB,EAAgC4H,GAAG,KAAK,MAAR,GAAiB+wB,WAAjB,GAA+BD,WAA/D,CAAA,CAAA;MACA/0B,EAAE,CAACyF,SAAH,CAAa8O,MAAb,CAAoBnR,MAAM,CAACQ,MAAP,CAAc0gB,UAAd,CAAyB+P,aAA7C,CAAA,CAAA;KAFF,CAAA;;IAIA9P,MAAM,CAACxoB,OAAP,CAAgBiE,EAAD,IAAQk1B,aAAa,CAACl1B,EAAD,EAAK,MAAL,CAApC,CAAA,CAAA;IACAwkB,MAAM,CAACzoB,OAAP,CAAgBiE,EAAD,IAAQk1B,aAAa,CAACl1B,EAAD,EAAK,MAAL,CAApC,CAAA,CAAA;AACD,GAAA;;EAEDoK,EAAE,CAAC,MAAD,EAAS,MAAM;IACf,IAAIhH,MAAM,CAACQ,MAAP,CAAc0gB,UAAd,CAAyB9U,OAAzB,KAAqC,KAAzC,EAAgD;AAC9C;MACA2X,OAAO,EAAA,CAAA;AACR,KAHD,MAGO;MACL7a,IAAI,EAAA,CAAA;MACJmZ,MAAM,EAAA,CAAA;AACP,KAAA;AACF,GARC,CAAF,CAAA;EASArb,EAAE,CAAC,6BAAD,EAAgC,MAAM;IACtCqb,MAAM,EAAA,CAAA;AACP,GAFC,CAAF,CAAA;EAGArb,EAAE,CAAC,SAAD,EAAY,MAAM;IAClBsC,OAAO,EAAA,CAAA;AACR,GAFC,CAAF,CAAA;EAGAtC,EAAE,CAAC,gBAAD,EAAmB,MAAM;IACzB,IAAI;MAAEma,MAAF;AAAUC,MAAAA,MAAAA;KAAWphB,GAAAA,MAAM,CAACkhB,UAAhC,CAAA;AACAC,IAAAA,MAAM,GAAGkQ,iBAAiB,CAAClQ,MAAD,CAA1B,CAAA;AACAC,IAAAA,MAAM,GAAGiQ,iBAAiB,CAACjQ,MAAD,CAA1B,CAAA;AACA,IAAA,CAAC,GAAGD,MAAJ,EAAY,GAAGC,MAAf,EACGliB,MADH,CACWtC,EAAD,IAAQ,CAAC,CAACA,EADpB,CAEGjE,CAAAA,OAFH,CAEYiE,EAAD,IACPA,EAAE,CAACyF,SAAH,CAAarC,MAAM,CAACoM,OAAP,GAAiB,QAAjB,GAA4B,KAAzC,CAAA,CAAgDpM,MAAM,CAACQ,MAAP,CAAc0gB,UAAd,CAAyBiQ,SAAzE,CAHJ,CAAA,CAAA;AAKD,GATC,CAAF,CAAA;AAUAnqB,EAAAA,EAAE,CAAC,OAAD,EAAU,CAAC+qB,EAAD,EAAKv1B,CAAL,KAAW;IACrB,IAAI;MAAE2kB,MAAF;AAAUC,MAAAA,MAAAA;KAAWphB,GAAAA,MAAM,CAACkhB,UAAhC,CAAA;AACAC,IAAAA,MAAM,GAAGkQ,iBAAiB,CAAClQ,MAAD,CAA1B,CAAA;AACAC,IAAAA,MAAM,GAAGiQ,iBAAiB,CAACjQ,MAAD,CAA1B,CAAA;AACA,IAAA,MAAM5F,QAAQ,GAAGhf,CAAC,CAAChE,MAAnB,CAAA;;IACA,IACEwH,MAAM,CAACQ,MAAP,CAAc0gB,UAAd,CAAyB8P,WAAzB,IACA,CAAC5P,MAAM,CAAClB,QAAP,CAAgB1E,QAAhB,CADD,IAEA,CAAC2F,MAAM,CAACjB,QAAP,CAAgB1E,QAAhB,CAHH,EAIE;AACA,MAAA,IACExb,MAAM,CAACgyB,UAAP,IACAhyB,MAAM,CAACQ,MAAP,CAAcwxB,UADd,IAEAhyB,MAAM,CAACQ,MAAP,CAAcwxB,UAAd,CAAyBC,SAFzB,KAGCjyB,MAAM,CAACgyB,UAAP,CAAkBp1B,EAAlB,KAAyB4e,QAAzB,IAAqCxb,MAAM,CAACgyB,UAAP,CAAkBp1B,EAAlB,CAAqBqU,QAArB,CAA8BuK,QAA9B,CAHtC,CADF,EAME,OAAA;AACF,MAAA,IAAI0W,QAAJ,CAAA;;MACA,IAAI/Q,MAAM,CAACtoB,MAAX,EAAmB;AACjBq5B,QAAAA,QAAQ,GAAG/Q,MAAM,CAAC,CAAD,CAAN,CAAU9e,SAAV,CAAoB4O,QAApB,CAA6BjR,MAAM,CAACQ,MAAP,CAAc0gB,UAAd,CAAyBgQ,WAAtD,CAAX,CAAA;AACD,OAFD,MAEO,IAAI9P,MAAM,CAACvoB,MAAX,EAAmB;AACxBq5B,QAAAA,QAAQ,GAAG9Q,MAAM,CAAC,CAAD,CAAN,CAAU/e,SAAV,CAAoB4O,QAApB,CAA6BjR,MAAM,CAACQ,MAAP,CAAc0gB,UAAd,CAAyBgQ,WAAtD,CAAX,CAAA;AACD,OAAA;;MACD,IAAIgB,QAAQ,KAAK,IAAjB,EAAuB;QACrBjrB,IAAI,CAAC,gBAAD,CAAJ,CAAA;AACD,OAFD,MAEO;QACLA,IAAI,CAAC,gBAAD,CAAJ,CAAA;AACD,OAAA;;AACD,MAAA,CAAC,GAAGka,MAAJ,EAAY,GAAGC,MAAf,CAAA,CACGliB,MADH,CACWtC,EAAD,IAAQ,CAAC,CAACA,EADpB,CAEGjE,CAAAA,OAFH,CAEYiE,EAAD,IAAQA,EAAE,CAACyF,SAAH,CAAa8vB,MAAb,CAAoBnyB,MAAM,CAACQ,MAAP,CAAc0gB,UAAd,CAAyBgQ,WAA7C,CAFnB,CAAA,CAAA;AAGD,KAAA;AACF,GAhCC,CAAF,CAAA;;EAkCA,MAAMlN,MAAM,GAAG,MAAM;AACnBhkB,IAAAA,MAAM,CAACpD,EAAP,CAAUyF,SAAV,CAAoB8O,MAApB,CAA2BnR,MAAM,CAACQ,MAAP,CAAc0gB,UAAd,CAAyBkQ,uBAApD,CAAA,CAAA;IACAloB,IAAI,EAAA,CAAA;IACJmZ,MAAM,EAAA,CAAA;GAHR,CAAA;;EAMA,MAAM0B,OAAO,GAAG,MAAM;AACpB/jB,IAAAA,MAAM,CAACpD,EAAP,CAAUyF,SAAV,CAAoBC,GAApB,CAAwBtC,MAAM,CAACQ,MAAP,CAAc0gB,UAAd,CAAyBkQ,uBAAjD,CAAA,CAAA;IACA9nB,OAAO,EAAA,CAAA;GAFT,CAAA;;AAKAhR,EAAAA,MAAM,CAACiT,MAAP,CAAcvL,MAAM,CAACkhB,UAArB,EAAiC;IAC/B8C,MAD+B;IAE/BD,OAF+B;IAG/B1B,MAH+B;IAI/BnZ,IAJ+B;AAK/BI,IAAAA,OAAAA;GALF,CAAA,CAAA;AAOD;;ACjNc,SAAS8oB,iBAAT,CAA2BhwB,OAA3B,EAAyC;AAAA,EAAA,IAAdA,OAAc,KAAA,KAAA,CAAA,EAAA;AAAdA,IAAAA,OAAc,GAAJ,EAAI,CAAA;AAAA,GAAA;;EACtD,OAAQ,CAAA,CAAA,EAAGA,OAAO,CACfsmB,IADQ,EAAA,CAERhrB,OAFQ,CAEA,aAFA,EAEe,MAFf,CAEuB;AAFvB,GAGRA,OAHQ,CAGA,IAHA,EAGM,GAHN,CAGW,CAHtB,CAAA,CAAA;AAID;;ACDc,SAAS20B,UAAT,CAAwD,IAAA,EAAA;EAAA,IAApC;IAAEryB,MAAF;IAAUsI,YAAV;IAAwBtB,EAAxB;AAA4BC,IAAAA,IAAAA;GAAQ,GAAA,IAAA,CAAA;EACrE,MAAMqrB,GAAG,GAAG,mBAAZ,CAAA;AACAhqB,EAAAA,YAAY,CAAC;AACX0pB,IAAAA,UAAU,EAAE;AACVp1B,MAAAA,EAAE,EAAE,IADM;AAEV21B,MAAAA,aAAa,EAAE,MAFL;AAGVN,MAAAA,SAAS,EAAE,KAHD;AAIVjB,MAAAA,WAAW,EAAE,KAJH;AAKVwB,MAAAA,YAAY,EAAE,IALJ;AAMVC,MAAAA,iBAAiB,EAAE,IANT;AAOVC,MAAAA,cAAc,EAAE,IAPN;AAQVC,MAAAA,YAAY,EAAE,IARJ;AASVC,MAAAA,mBAAmB,EAAE,KATX;AAUVzS,MAAAA,IAAI,EAAE,SAVI;AAUO;AACjB0S,MAAAA,cAAc,EAAE,KAXN;AAYVC,MAAAA,kBAAkB,EAAE,CAZV;MAaVC,qBAAqB,EAAGC,MAAD,IAAYA,MAbzB;MAcVC,mBAAmB,EAAGD,MAAD,IAAYA,MAdvB;MAeVE,WAAW,EAAG,CAAEZ,EAAAA,GAAI,CAfV,OAAA,CAAA;MAgBVa,iBAAiB,EAAG,CAAEb,EAAAA,GAAI,CAhBhB,cAAA,CAAA;MAiBVc,aAAa,EAAG,CAAEd,EAAAA,GAAI,CAjBZ,CAAA,CAAA;MAkBVe,YAAY,EAAG,CAAEf,EAAAA,GAAI,CAlBX,QAAA,CAAA;MAmBVgB,UAAU,EAAG,CAAEhB,EAAAA,GAAI,CAnBT,MAAA,CAAA;MAoBVpB,WAAW,EAAG,CAAEoB,EAAAA,GAAI,CApBV,OAAA,CAAA;MAqBViB,oBAAoB,EAAG,CAAEjB,EAAAA,GAAI,CArBnB,iBAAA,CAAA;MAsBVkB,wBAAwB,EAAG,CAAElB,EAAAA,GAAI,CAtBvB,qBAAA,CAAA;MAuBVmB,cAAc,EAAG,CAAEnB,EAAAA,GAAI,CAvBb,UAAA,CAAA;MAwBVnB,SAAS,EAAG,CAAEmB,EAAAA,GAAI,CAxBR,KAAA,CAAA;MAyBVoB,eAAe,EAAG,CAAEpB,EAAAA,GAAI,CAzBd,WAAA,CAAA;MA0BVqB,aAAa,EAAG,CAAErB,EAAAA,GAAI,CA1BZ,SAAA,CAAA;MA2BVsB,uBAAuB,EAAG,GAAEtB,GAAI,CAAA,SAAA,CAAA;AA3BtB,KAAA;AADD,GAAD,CAAZ,CAAA;EAgCAtyB,MAAM,CAACgyB,UAAP,GAAoB;AAClBp1B,IAAAA,EAAE,EAAE,IADc;AAElBi3B,IAAAA,OAAO,EAAE,EAAA;GAFX,CAAA;AAKA,EAAA,IAAIC,UAAJ,CAAA;EACA,IAAIC,kBAAkB,GAAG,CAAzB,CAAA;;EAEA,MAAM1C,iBAAiB,GAAIz0B,EAAD,IAAQ;IAChC,IAAI,CAAC2F,KAAK,CAACC,OAAN,CAAc5F,EAAd,CAAL,EAAwBA,EAAE,GAAG,CAACA,EAAD,CAAA,CAAKsC,MAAL,CAAa1C,CAAD,IAAO,CAAC,CAACA,CAArB,CAAL,CAAA;AACxB,IAAA,OAAOI,EAAP,CAAA;GAFF,CAAA;;AAKA,EAAA,SAASo3B,oBAAT,GAAgC;AAC9B,IAAA,OACE,CAACh0B,MAAM,CAACQ,MAAP,CAAcwxB,UAAd,CAAyBp1B,EAA1B,IACA,CAACoD,MAAM,CAACgyB,UAAP,CAAkBp1B,EADnB,IAEC2F,KAAK,CAACC,OAAN,CAAcxC,MAAM,CAACgyB,UAAP,CAAkBp1B,EAAhC,CAAA,IAAuCoD,MAAM,CAACgyB,UAAP,CAAkBp1B,EAAlB,CAAqB/D,MAArB,KAAgC,CAH1E,CAAA;AAKD,GAAA;;AAED,EAAA,SAASo7B,cAAT,CAAwBC,QAAxB,EAAkC3D,QAAlC,EAA4C;IAC1C,MAAM;AAAE4C,MAAAA,iBAAAA;AAAF,KAAA,GAAwBnzB,MAAM,CAACQ,MAAP,CAAcwxB,UAA5C,CAAA;IACAkC,QAAQ,GAAGA,QAAQ,CAACvwB,kBAApB,CAAA;;AACA,IAAA,IAAIuwB,QAAJ,EAAc;MACZA,QAAQ,CAAC7xB,SAAT,CAAmBC,GAAnB,CAAwB,CAAE6wB,EAAAA,iBAAkB,CAAG5C,CAAAA,EAAAA,QAAS,CAAxD,CAAA,CAAA,CAAA;MACA2D,QAAQ,GAAGA,QAAQ,CAACvwB,kBAApB,CAAA;;AACA,MAAA,IAAIuwB,QAAJ,EAAc;QACZA,QAAQ,CAAC7xB,SAAT,CAAmBC,GAAnB,CAAwB,CAAE6wB,EAAAA,iBAAkB,CAAG5C,CAAAA,EAAAA,QAAS,CAAGA,CAAAA,EAAAA,QAAS,CAApE,CAAA,CAAA,CAAA;AACD,OAAA;AACF,KAAA;AACF,GAAA;;EAED,SAAS4D,aAAT,CAAuB33B,CAAvB,EAA0B;AACxB,IAAA,MAAM43B,QAAQ,GAAG53B,CAAC,CAAChE,MAAF,CAAS0J,OAAT,CAAiBkwB,iBAAiB,CAACpyB,MAAM,CAACQ,MAAP,CAAcwxB,UAAd,CAAyBkB,WAA1B,CAAlC,CAAjB,CAAA;IACA,IAAI,CAACkB,QAAL,EAAe,OAAA;AACf53B,IAAAA,CAAC,CAAC2gB,cAAF,EAAA,CAAA;AACA,IAAA,MAAM1S,KAAK,GAAG1G,YAAY,CAACvH,CAAC,CAAChE,MAAH,CAAZ,GAAyBwH,MAAM,CAACQ,MAAP,CAAcwO,cAArD,CAAA;;AACA,IAAA,IAAIhP,MAAM,CAACQ,MAAP,CAAc+O,IAAlB,EAAwB;MACtBvP,MAAM,CAAC2X,WAAP,CAAmBlN,KAAnB,CAAA,CAAA;AACD,KAFD,MAEO;MACLzK,MAAM,CAACgX,OAAP,CAAevM,KAAf,CAAA,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,SAAS4X,MAAT,GAAkB;AAChB;AACA,IAAA,MAAMrW,GAAG,GAAGhM,MAAM,CAACgM,GAAnB,CAAA;AACA,IAAA,MAAMxL,MAAM,GAAGR,MAAM,CAACQ,MAAP,CAAcwxB,UAA7B,CAAA;IACA,IAAIgC,oBAAoB,EAAxB,EAA4B,OAAA;AAE5B,IAAA,IAAIp3B,EAAE,GAAGoD,MAAM,CAACgyB,UAAP,CAAkBp1B,EAA3B,CAAA;AACAA,IAAAA,EAAE,GAAGy0B,iBAAiB,CAACz0B,EAAD,CAAtB,CAPgB;;AAShB,IAAA,IAAImE,OAAJ,CAAA;IACA,MAAMyL,YAAY,GAChBxM,MAAM,CAACmM,OAAP,IAAkBnM,MAAM,CAACQ,MAAP,CAAc2L,OAAd,CAAsBC,OAAxC,GACIpM,MAAM,CAACmM,OAAP,CAAeG,MAAf,CAAsBzT,MAD1B,GAEImH,MAAM,CAACsM,MAAP,CAAczT,MAHpB,CAAA;IAIA,MAAMw7B,KAAK,GAAGr0B,MAAM,CAACQ,MAAP,CAAc+O,IAAd,GACVpO,IAAI,CAACsO,IAAL,CAAUjD,YAAY,GAAGxM,MAAM,CAACQ,MAAP,CAAcwO,cAAvC,CADU,GAEVhP,MAAM,CAACyM,QAAP,CAAgB5T,MAFpB,CAAA;;AAGA,IAAA,IAAImH,MAAM,CAACQ,MAAP,CAAc+O,IAAlB,EAAwB;MACtBxO,OAAO,GACLf,MAAM,CAACQ,MAAP,CAAcwO,cAAd,GAA+B,CAA/B,GACI7N,IAAI,CAAC0N,KAAL,CAAW7O,MAAM,CAACyU,SAAP,GAAmBzU,MAAM,CAACQ,MAAP,CAAcwO,cAA5C,CADJ,GAEIhP,MAAM,CAACyU,SAHb,CAAA;KADF,MAKO,IAAI,OAAOzU,MAAM,CAACsQ,SAAd,KAA4B,WAAhC,EAA6C;MAClDvP,OAAO,GAAGf,MAAM,CAACsQ,SAAjB,CAAA;AACD,KAFM,MAEA;AACLvP,MAAAA,OAAO,GAAGf,MAAM,CAAC0R,WAAP,IAAsB,CAAhC,CAAA;AACD,KA1Be;;;IA4BhB,IACElR,MAAM,CAAC2f,IAAP,KAAgB,SAAhB,IACAngB,MAAM,CAACgyB,UAAP,CAAkB6B,OADlB,IAEA7zB,MAAM,CAACgyB,UAAP,CAAkB6B,OAAlB,CAA0Bh7B,MAA1B,GAAmC,CAHrC,EAIE;AACA,MAAA,MAAMg7B,OAAO,GAAG7zB,MAAM,CAACgyB,UAAP,CAAkB6B,OAAlC,CAAA;AACA,MAAA,IAAIS,UAAJ,CAAA;AACA,MAAA,IAAIzb,SAAJ,CAAA;AACA,MAAA,IAAI0b,QAAJ,CAAA;;MACA,IAAI/zB,MAAM,CAACqyB,cAAX,EAA2B;AACzBiB,QAAAA,UAAU,GAAGtvB,gBAAgB,CAACqvB,OAAO,CAAC,CAAD,CAAR,EAAa7zB,MAAM,CAACkL,YAAP,EAAwB,GAAA,OAAxB,GAAkC,QAA/C,EAAyD,IAAzD,CAA7B,CAAA;AACAtO,QAAAA,EAAE,CAACjE,OAAH,CAAY84B,KAAD,IAAW;UACpBA,KAAK,CAAC53B,KAAN,CAAYmG,MAAM,CAACkL,YAAP,EAAA,GAAwB,OAAxB,GAAkC,QAA9C,IAA2D,CACzD4oB,EAAAA,UAAU,IAAItzB,MAAM,CAACsyB,kBAAP,GAA4B,CAAhC,CACX,CAFD,EAAA,CAAA,CAAA;SADF,CAAA,CAAA;;QAMA,IAAItyB,MAAM,CAACsyB,kBAAP,GAA4B,CAA5B,IAAiC9yB,MAAM,CAACwU,aAAP,KAAyBxV,SAA9D,EAAyE;UACvE+0B,kBAAkB,IAAIhzB,OAAO,IAAIf,MAAM,CAACwU,aAAP,IAAwB,CAA5B,CAA7B,CAAA;;AACA,UAAA,IAAIuf,kBAAkB,GAAGvzB,MAAM,CAACsyB,kBAAP,GAA4B,CAArD,EAAwD;AACtDiB,YAAAA,kBAAkB,GAAGvzB,MAAM,CAACsyB,kBAAP,GAA4B,CAAjD,CAAA;AACD,WAFD,MAEO,IAAIiB,kBAAkB,GAAG,CAAzB,EAA4B;AACjCA,YAAAA,kBAAkB,GAAG,CAArB,CAAA;AACD,WAAA;AACF,SAAA;;QACDO,UAAU,GAAGnzB,IAAI,CAACC,GAAL,CAASL,OAAO,GAAGgzB,kBAAnB,EAAuC,CAAvC,CAAb,CAAA;AACAlb,QAAAA,SAAS,GAAGyb,UAAU,IAAInzB,IAAI,CAACE,GAAL,CAASwyB,OAAO,CAACh7B,MAAjB,EAAyB2H,MAAM,CAACsyB,kBAAhC,CAAA,GAAsD,CAA1D,CAAtB,CAAA;AACAyB,QAAAA,QAAQ,GAAG,CAAC1b,SAAS,GAAGyb,UAAb,IAA2B,CAAtC,CAAA;AACD,OAAA;;AACDT,MAAAA,OAAO,CAACl7B,OAAR,CAAiBu7B,QAAD,IAAc;AAC5BA,QAAAA,QAAQ,CAAC7xB,SAAT,CAAmB8O,MAAnB,CACE,GAAG,CAAC,EAAD,EAAK,OAAL,EAAc,YAAd,EAA4B,OAA5B,EAAqC,YAArC,EAAmD,OAAnD,CAAA,CAA4D3T,GAA5D,CACAg3B,MAAD,IAAa,CAAEh0B,EAAAA,MAAM,CAAC2yB,iBAAkB,CAAEqB,EAAAA,MAAO,EADhD,CADL,CAAA,CAAA;OADF,CAAA,CAAA;;AAQA,MAAA,IAAI53B,EAAE,CAAC/D,MAAH,GAAY,CAAhB,EAAmB;AACjBg7B,QAAAA,OAAO,CAACl7B,OAAR,CAAiB87B,MAAD,IAAY;AAC1B,UAAA,MAAMC,WAAW,GAAG3wB,YAAY,CAAC0wB,MAAD,CAAhC,CAAA;;UACA,IAAIC,WAAW,KAAK3zB,OAApB,EAA6B;AAC3B0zB,YAAAA,MAAM,CAACpyB,SAAP,CAAiBC,GAAjB,CAAqB9B,MAAM,CAAC2yB,iBAA5B,CAAA,CAAA;AACD,WAAA;;UACD,IAAI3yB,MAAM,CAACqyB,cAAX,EAA2B;AACzB,YAAA,IAAI6B,WAAW,IAAIJ,UAAf,IAA6BI,WAAW,IAAI7b,SAAhD,EAA2D;cACzD4b,MAAM,CAACpyB,SAAP,CAAiBC,GAAjB,CAAsB,CAAE9B,EAAAA,MAAM,CAAC2yB,iBAAkB,CAAjD,KAAA,CAAA,CAAA,CAAA;AACD,aAAA;;YACD,IAAIuB,WAAW,KAAKJ,UAApB,EAAgC;AAC9BL,cAAAA,cAAc,CAACQ,MAAD,EAAS,MAAT,CAAd,CAAA;AACD,aAAA;;YACD,IAAIC,WAAW,KAAK7b,SAApB,EAA+B;AAC7Bob,cAAAA,cAAc,CAACQ,MAAD,EAAS,MAAT,CAAd,CAAA;AACD,aAAA;AACF,WAAA;SAfH,CAAA,CAAA;AAiBD,OAlBD,MAkBO;AACL,QAAA,MAAMA,MAAM,GAAGZ,OAAO,CAAC9yB,OAAD,CAAtB,CAAA;AACA0zB,QAAAA,MAAM,CAACpyB,SAAP,CAAiBC,GAAjB,CAAqB9B,MAAM,CAAC2yB,iBAA5B,CAAA,CAAA;;QACA,IAAI3yB,MAAM,CAACqyB,cAAX,EAA2B;AACzB,UAAA,MAAM8B,oBAAoB,GAAGd,OAAO,CAACS,UAAD,CAApC,CAAA;AACA,UAAA,MAAMM,mBAAmB,GAAGf,OAAO,CAAChb,SAAD,CAAnC,CAAA;;AACA,UAAA,KAAK,IAAI/Z,CAAC,GAAGw1B,UAAb,EAAyBx1B,CAAC,IAAI+Z,SAA9B,EAAyC/Z,CAAC,IAAI,CAA9C,EAAiD;AAC/C+0B,YAAAA,OAAO,CAAC/0B,CAAD,CAAP,CAAWuD,SAAX,CAAqBC,GAArB,CAA0B,CAAE9B,EAAAA,MAAM,CAAC2yB,iBAAkB,CAArD,KAAA,CAAA,CAAA,CAAA;AACD,WAAA;;AAEDc,UAAAA,cAAc,CAACU,oBAAD,EAAuB,MAAvB,CAAd,CAAA;AACAV,UAAAA,cAAc,CAACW,mBAAD,EAAsB,MAAtB,CAAd,CAAA;AACD,SAAA;AACF,OAAA;;MACD,IAAIp0B,MAAM,CAACqyB,cAAX,EAA2B;AACzB,QAAA,MAAMgC,oBAAoB,GAAG1zB,IAAI,CAACE,GAAL,CAASwyB,OAAO,CAACh7B,MAAjB,EAAyB2H,MAAM,CAACsyB,kBAAP,GAA4B,CAArD,CAA7B,CAAA;AACA,QAAA,MAAMgC,aAAa,GACjB,CAAChB,UAAU,GAAGe,oBAAb,GAAoCf,UAArC,IAAmD,CAAnD,GAAuDS,QAAQ,GAAGT,UADpE,CAAA;AAEA,QAAA,MAAMnJ,UAAU,GAAG3e,GAAG,GAAG,OAAH,GAAa,MAAnC,CAAA;AACA6nB,QAAAA,OAAO,CAACl7B,OAAR,CAAiB87B,MAAD,IAAY;AAC1BA,UAAAA,MAAM,CAAC56B,KAAP,CAAamG,MAAM,CAACkL,YAAP,EAAwByf,GAAAA,UAAxB,GAAqC,KAAlD,CAA4D,GAAA,CAAA,EAAEmK,aAAc,CAA5E,EAAA,CAAA,CAAA;SADF,CAAA,CAAA;AAGD,OAAA;AACF,KAAA;;AACDl4B,IAAAA,EAAE,CAACjE,OAAH,CAAW,CAAC84B,KAAD,EAAQsD,UAAR,KAAuB;AAChC,MAAA,IAAIv0B,MAAM,CAAC2f,IAAP,KAAgB,UAApB,EAAgC;AAC9BsR,QAAAA,KAAK,CAACn4B,gBAAN,CAAuB84B,iBAAiB,CAAC5xB,MAAM,CAAC6yB,YAAR,CAAxC,CAAA,CAA+D16B,OAA/D,CAAwEq8B,UAAD,IAAgB;UACrFA,UAAU,CAAC5K,WAAX,GAAyB5pB,MAAM,CAACuyB,qBAAP,CAA6BhyB,OAAO,GAAG,CAAvC,CAAzB,CAAA;SADF,CAAA,CAAA;AAGA0wB,QAAAA,KAAK,CAACn4B,gBAAN,CAAuB84B,iBAAiB,CAAC5xB,MAAM,CAAC8yB,UAAR,CAAxC,CAAA,CAA6D36B,OAA7D,CAAsEs8B,OAAD,IAAa;UAChFA,OAAO,CAAC7K,WAAR,GAAsB5pB,MAAM,CAACyyB,mBAAP,CAA2BoB,KAA3B,CAAtB,CAAA;SADF,CAAA,CAAA;AAGD,OAAA;;AACD,MAAA,IAAI7zB,MAAM,CAAC2f,IAAP,KAAgB,aAApB,EAAmC;AACjC,QAAA,IAAI+U,oBAAJ,CAAA;;QACA,IAAI10B,MAAM,CAACoyB,mBAAX,EAAgC;AAC9BsC,UAAAA,oBAAoB,GAAGl1B,MAAM,CAACkL,YAAP,EAAwB,GAAA,UAAxB,GAAqC,YAA5D,CAAA;AACD,SAFD,MAEO;AACLgqB,UAAAA,oBAAoB,GAAGl1B,MAAM,CAACkL,YAAP,EAAwB,GAAA,YAAxB,GAAuC,UAA9D,CAAA;AACD,SAAA;;AACD,QAAA,MAAMiqB,KAAK,GAAG,CAACp0B,OAAO,GAAG,CAAX,IAAgBszB,KAA9B,CAAA;QACA,IAAIe,MAAM,GAAG,CAAb,CAAA;QACA,IAAIC,MAAM,GAAG,CAAb,CAAA;;QACA,IAAIH,oBAAoB,KAAK,YAA7B,EAA2C;AACzCE,UAAAA,MAAM,GAAGD,KAAT,CAAA;AACD,SAFD,MAEO;AACLE,UAAAA,MAAM,GAAGF,KAAT,CAAA;AACD,SAAA;;AACD1D,QAAAA,KAAK,CACFn4B,gBADH,CACoB84B,iBAAiB,CAAC5xB,MAAM,CAAC+yB,oBAAR,CADrC,CAAA,CAEG56B,OAFH,CAEY28B,UAAD,IAAgB;UACvBA,UAAU,CAACz7B,KAAX,CAAiBwD,SAAjB,GAA8B,CAA4B+3B,0BAAAA,EAAAA,MAAO,CAAWC,SAAAA,EAAAA,MAAO,CAAnF,CAAA,CAAA,CAAA;UACAC,UAAU,CAACz7B,KAAX,CAAiB8c,kBAAjB,GAAuC,CAAE3W,EAAAA,MAAM,CAACQ,MAAP,CAAcC,KAAM,CAA7D,EAAA,CAAA,CAAA;SAJJ,CAAA,CAAA;AAMD,OAAA;;MACD,IAAID,MAAM,CAAC2f,IAAP,KAAgB,QAAhB,IAA4B3f,MAAM,CAACmyB,YAAvC,EAAqD;AACnDlB,QAAAA,KAAK,CAACtH,SAAN,GAAkB3pB,MAAM,CAACmyB,YAAP,CAAoB3yB,MAApB,EAA4Be,OAAO,GAAG,CAAtC,EAAyCszB,KAAzC,CAAlB,CAAA;QACA,IAAIU,UAAU,KAAK,CAAnB,EAAsB9tB,IAAI,CAAC,kBAAD,EAAqBwqB,KAArB,CAAJ,CAAA;AACvB,OAHD,MAGO;QACL,IAAIsD,UAAU,KAAK,CAAnB,EAAsB9tB,IAAI,CAAC,kBAAD,EAAqBwqB,KAArB,CAAJ,CAAA;AACtBxqB,QAAAA,IAAI,CAAC,kBAAD,EAAqBwqB,KAArB,CAAJ,CAAA;AACD,OAAA;;MACD,IAAIzxB,MAAM,CAACQ,MAAP,CAAckQ,aAAd,IAA+B1Q,MAAM,CAACoM,OAA1C,EAAmD;AACjDqlB,QAAAA,KAAK,CAACpvB,SAAN,CAAgBrC,MAAM,CAACwa,QAAP,GAAkB,KAAlB,GAA0B,QAA1C,CAAoDha,CAAAA,MAAM,CAAC2wB,SAA3D,CAAA,CAAA;AACD,OAAA;KAxCH,CAAA,CAAA;AA0CD,GAAA;;AACD,EAAA,SAASoE,MAAT,GAAkB;AAChB;AACA,IAAA,MAAM/0B,MAAM,GAAGR,MAAM,CAACQ,MAAP,CAAcwxB,UAA7B,CAAA;IACA,IAAIgC,oBAAoB,EAAxB,EAA4B,OAAA;IAC5B,MAAMxnB,YAAY,GAChBxM,MAAM,CAACmM,OAAP,IAAkBnM,MAAM,CAACQ,MAAP,CAAc2L,OAAd,CAAsBC,OAAxC,GACIpM,MAAM,CAACmM,OAAP,CAAeG,MAAf,CAAsBzT,MAD1B,GAEImH,MAAM,CAACsM,MAAP,CAAczT,MAHpB,CAAA;AAKA,IAAA,IAAI+D,EAAE,GAAGoD,MAAM,CAACgyB,UAAP,CAAkBp1B,EAA3B,CAAA;AACAA,IAAAA,EAAE,GAAGy0B,iBAAiB,CAACz0B,EAAD,CAAtB,CAAA;IACA,IAAI44B,cAAc,GAAG,EAArB,CAAA;;AACA,IAAA,IAAIh1B,MAAM,CAAC2f,IAAP,KAAgB,SAApB,EAA+B;MAC7B,IAAIsV,eAAe,GAAGz1B,MAAM,CAACQ,MAAP,CAAc+O,IAAd,GAClBpO,IAAI,CAACsO,IAAL,CAAUjD,YAAY,GAAGxM,MAAM,CAACQ,MAAP,CAAcwO,cAAvC,CADkB,GAElBhP,MAAM,CAACyM,QAAP,CAAgB5T,MAFpB,CAAA;;AAGA,MAAA,IACEmH,MAAM,CAACQ,MAAP,CAAcwd,QAAd,IACAhe,MAAM,CAACQ,MAAP,CAAcwd,QAAd,CAAuB5R,OADvB,IAEAqpB,eAAe,GAAGjpB,YAHpB,EAIE;AACAipB,QAAAA,eAAe,GAAGjpB,YAAlB,CAAA;AACD,OAAA;;AACD,MAAA,KAAK,IAAI1N,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG22B,eAApB,EAAqC32B,CAAC,IAAI,CAA1C,EAA6C;QAC3C,IAAI0B,MAAM,CAACgyB,YAAX,EAAyB;AACvBgD,UAAAA,cAAc,IAAIh1B,MAAM,CAACgyB,YAAP,CAAoBl0B,IAApB,CAAyB0B,MAAzB,EAAiClB,CAAjC,EAAoC0B,MAAM,CAAC0yB,WAA3C,CAAlB,CAAA;AACD,SAFD,MAEO;AACLsC,UAAAA,cAAc,IAAK,CAAA,CAAA,EAAGh1B,MAAM,CAAC+xB,aAAc,CAAA,QAAA,EAAU/xB,MAAM,CAAC0yB,WAAY,CAAA,IAAA,EAAM1yB,MAAM,CAAC+xB,aAAc,CAAnG,CAAA,CAAA,CAAA;AACD,SAAA;AACF,OAAA;AACF,KAAA;;AACD,IAAA,IAAI/xB,MAAM,CAAC2f,IAAP,KAAgB,UAApB,EAAgC;MAC9B,IAAI3f,MAAM,CAACkyB,cAAX,EAA2B;AACzB8C,QAAAA,cAAc,GAAGh1B,MAAM,CAACkyB,cAAP,CAAsBp0B,IAAtB,CAA2B0B,MAA3B,EAAmCQ,MAAM,CAAC6yB,YAA1C,EAAwD7yB,MAAM,CAAC8yB,UAA/D,CAAjB,CAAA;AACD,OAFD,MAEO;AACLkC,QAAAA,cAAc,GACX,CAAA,aAAA,EAAeh1B,MAAM,CAAC6yB,YAAa,CAAA,SAAA,CAApC,GACA,KADA,GAEC,CAAA,aAAA,EAAe7yB,MAAM,CAAC8yB,UAAW,CAHpC,SAAA,CAAA,CAAA;AAID,OAAA;AACF,KAAA;;AACD,IAAA,IAAI9yB,MAAM,CAAC2f,IAAP,KAAgB,aAApB,EAAmC;MACjC,IAAI3f,MAAM,CAACiyB,iBAAX,EAA8B;AAC5B+C,QAAAA,cAAc,GAAGh1B,MAAM,CAACiyB,iBAAP,CAAyBn0B,IAAzB,CAA8B0B,MAA9B,EAAsCQ,MAAM,CAAC+yB,oBAA7C,CAAjB,CAAA;AACD,OAFD,MAEO;AACLiC,QAAAA,cAAc,GAAI,CAAA,aAAA,EAAeh1B,MAAM,CAAC+yB,oBAAqB,CAA7D,SAAA,CAAA,CAAA;AACD,OAAA;AACF,KAAA;;AAED32B,IAAAA,EAAE,CAACjE,OAAH,CAAY84B,KAAD,IAAW;AACpB,MAAA,IAAIjxB,MAAM,CAAC2f,IAAP,KAAgB,QAApB,EAA8B;AAC5BsR,QAAAA,KAAK,CAACtH,SAAN,GAAkBqL,cAAc,IAAI,EAApC,CAAA;AACD,OAAA;;AACD,MAAA,IAAIh1B,MAAM,CAAC2f,IAAP,KAAgB,SAApB,EAA+B;AAC7BngB,QAAAA,MAAM,CAACgyB,UAAP,CAAkB6B,OAAlB,GAA4B,CAC1B,GAAGpC,KAAK,CAACn4B,gBAAN,CAAuB84B,iBAAiB,CAAC5xB,MAAM,CAAC0yB,WAAR,CAAxC,CADuB,CAA5B,CAAA;AAGD,OAAA;KARH,CAAA,CAAA;;AAUA,IAAA,IAAI1yB,MAAM,CAAC2f,IAAP,KAAgB,QAApB,EAA8B;AAC5BlZ,MAAAA,IAAI,CAAC,kBAAD,EAAqBrK,EAAE,CAAC,CAAD,CAAvB,CAAJ,CAAA;AACD,KAAA;AACF,GAAA;;AACD,EAAA,SAASsM,IAAT,GAAgB;IACdlJ,MAAM,CAACQ,MAAP,CAAcwxB,UAAd,GAA2BnB,yBAAyB,CAClD7wB,MADkD,EAElDA,MAAM,CAACujB,cAAP,CAAsByO,UAF4B,EAGlDhyB,MAAM,CAACQ,MAAP,CAAcwxB,UAHoC,EAIlD;AAAEp1B,MAAAA,EAAE,EAAE,mBAAA;AAAN,KAJkD,CAApD,CAAA;AAMA,IAAA,MAAM4D,MAAM,GAAGR,MAAM,CAACQ,MAAP,CAAcwxB,UAA7B,CAAA;AACA,IAAA,IAAI,CAACxxB,MAAM,CAAC5D,EAAZ,EAAgB,OAAA;AAChB,IAAA,IAAIA,EAAJ,CAAA;;IACA,IAAI,OAAO4D,MAAM,CAAC5D,EAAd,KAAqB,QAArB,IAAiCoD,MAAM,CAACqZ,SAA5C,EAAuD;AACrDzc,MAAAA,EAAE,GAAGoD,MAAM,CAACpD,EAAP,CAAUsf,UAAV,CAAqB7iB,aAArB,CAAmCmH,MAAM,CAAC5D,EAA1C,CAAL,CAAA;AACD,KAAA;;IACD,IAAI,CAACA,EAAD,IAAO,OAAO4D,MAAM,CAAC5D,EAAd,KAAqB,QAAhC,EAA0C;MACxCA,EAAE,GAAG,CAAC,GAAG/B,QAAQ,CAACvB,gBAAT,CAA0BkH,MAAM,CAAC5D,EAAjC,CAAJ,CAAL,CAAA;AACD,KAAA;;IACD,IAAI,CAACA,EAAL,EAAS;MACPA,EAAE,GAAG4D,MAAM,CAAC5D,EAAZ,CAAA;AACD,KAAA;;IACD,IAAI,CAACA,EAAD,IAAOA,EAAE,CAAC/D,MAAH,KAAc,CAAzB,EAA4B,OAAA;;IAE5B,IACEmH,MAAM,CAACQ,MAAP,CAAcolB,iBAAd,IACA,OAAOplB,MAAM,CAAC5D,EAAd,KAAqB,QADrB,IAEA2F,KAAK,CAACC,OAAN,CAAc5F,EAAd,CAFA,IAGAA,EAAE,CAAC/D,MAAH,GAAY,CAJd,EAKE;AACA+D,MAAAA,EAAE,GAAG,CAAC,GAAGoD,MAAM,CAACpD,EAAP,CAAUtD,gBAAV,CAA2BkH,MAAM,CAAC5D,EAAlC,CAAJ,CAAL,CADA;;AAGA,MAAA,IAAIA,EAAE,CAAC/D,MAAH,GAAY,CAAhB,EAAmB;AACjB+D,QAAAA,EAAE,GAAGA,EAAE,CAACsC,MAAH,CAAWuyB,KAAD,IAAW;AACxB,UAAA,IAAIvtB,cAAc,CAACutB,KAAD,EAAQ,SAAR,CAAd,CAAiC,CAAjC,CAAA,KAAwCzxB,MAAM,CAACpD,EAAnD,EAAuD,OAAO,KAAP,CAAA;AACvD,UAAA,OAAO,IAAP,CAAA;SAFG,CAAA,CAGF,CAHE,CAAL,CAAA;AAID,OAAA;AACF,KAAA;;AACD,IAAA,IAAI2F,KAAK,CAACC,OAAN,CAAc5F,EAAd,KAAqBA,EAAE,CAAC/D,MAAH,KAAc,CAAvC,EAA0C+D,EAAE,GAAGA,EAAE,CAAC,CAAD,CAAP,CAAA;AAE1CtE,IAAAA,MAAM,CAACiT,MAAP,CAAcvL,MAAM,CAACgyB,UAArB,EAAiC;AAC/Bp1B,MAAAA,EAAAA;KADF,CAAA,CAAA;AAIAA,IAAAA,EAAE,GAAGy0B,iBAAiB,CAACz0B,EAAD,CAAtB,CAAA;AACAA,IAAAA,EAAE,CAACjE,OAAH,CAAY84B,KAAD,IAAW;MACpB,IAAIjxB,MAAM,CAAC2f,IAAP,KAAgB,SAAhB,IAA6B3f,MAAM,CAACyxB,SAAxC,EAAmD;AACjDR,QAAAA,KAAK,CAACpvB,SAAN,CAAgBC,GAAhB,CAAoB9B,MAAM,CAACizB,cAA3B,CAAA,CAAA;AACD,OAAA;;MAEDhC,KAAK,CAACpvB,SAAN,CAAgBC,GAAhB,CAAoB9B,MAAM,CAAC4yB,aAAP,GAAuB5yB,MAAM,CAAC2f,IAAlD,CAAA,CAAA;AACAsR,MAAAA,KAAK,CAACpvB,SAAN,CAAgBC,GAAhB,CAAoBtC,MAAM,CAACkL,YAAP,EAAA,GAAwB1K,MAAM,CAACkzB,eAA/B,GAAiDlzB,MAAM,CAACmzB,aAA5E,CAAA,CAAA;;MAEA,IAAInzB,MAAM,CAAC2f,IAAP,KAAgB,SAAhB,IAA6B3f,MAAM,CAACqyB,cAAxC,EAAwD;AACtDpB,QAAAA,KAAK,CAACpvB,SAAN,CAAgBC,GAAhB,CAAqB,CAAA,EAAE9B,MAAM,CAAC4yB,aAAc,CAAA,EAAE5yB,MAAM,CAAC2f,IAAK,CAA1D,QAAA,CAAA,CAAA,CAAA;AACA4T,QAAAA,kBAAkB,GAAG,CAArB,CAAA;;AACA,QAAA,IAAIvzB,MAAM,CAACsyB,kBAAP,GAA4B,CAAhC,EAAmC;UACjCtyB,MAAM,CAACsyB,kBAAP,GAA4B,CAA5B,CAAA;AACD,SAAA;AACF,OAAA;;MACD,IAAItyB,MAAM,CAAC2f,IAAP,KAAgB,aAAhB,IAAiC3f,MAAM,CAACoyB,mBAA5C,EAAiE;AAC/DnB,QAAAA,KAAK,CAACpvB,SAAN,CAAgBC,GAAhB,CAAoB9B,MAAM,CAACgzB,wBAA3B,CAAA,CAAA;AACD,OAAA;;MAED,IAAIhzB,MAAM,CAACyxB,SAAX,EAAsB;AACpBR,QAAAA,KAAK,CAACz4B,gBAAN,CAAuB,OAAvB,EAAgCm7B,aAAhC,CAAA,CAAA;AACD,OAAA;;AAED,MAAA,IAAI,CAACn0B,MAAM,CAACoM,OAAZ,EAAqB;AACnBqlB,QAAAA,KAAK,CAACpvB,SAAN,CAAgBC,GAAhB,CAAoB9B,MAAM,CAAC2wB,SAA3B,CAAA,CAAA;AACD,OAAA;KAzBH,CAAA,CAAA;AA2BD,GAAA;;AAED,EAAA,SAAS7nB,OAAT,GAAmB;AACjB,IAAA,MAAM9I,MAAM,GAAGR,MAAM,CAACQ,MAAP,CAAcwxB,UAA7B,CAAA;IACA,IAAIgC,oBAAoB,EAAxB,EAA4B,OAAA;AAC5B,IAAA,IAAIp3B,EAAE,GAAGoD,MAAM,CAACgyB,UAAP,CAAkBp1B,EAA3B,CAAA;;AACA,IAAA,IAAIA,EAAJ,EAAQ;AACNA,MAAAA,EAAE,GAAGy0B,iBAAiB,CAACz0B,EAAD,CAAtB,CAAA;AACAA,MAAAA,EAAE,CAACjE,OAAH,CAAY84B,KAAD,IAAW;AACpBA,QAAAA,KAAK,CAACpvB,SAAN,CAAgB8O,MAAhB,CAAuB3Q,MAAM,CAAC0wB,WAA9B,CAAA,CAAA;QACAO,KAAK,CAACpvB,SAAN,CAAgB8O,MAAhB,CAAuB3Q,MAAM,CAAC4yB,aAAP,GAAuB5yB,MAAM,CAAC2f,IAArD,CAAA,CAAA;AACAsR,QAAAA,KAAK,CAACpvB,SAAN,CAAgB8O,MAAhB,CACEnR,MAAM,CAACkL,YAAP,EAAA,GAAwB1K,MAAM,CAACkzB,eAA/B,GAAiDlzB,MAAM,CAACmzB,aAD1D,CAAA,CAAA;;QAGA,IAAInzB,MAAM,CAACyxB,SAAX,EAAsB;AACpBR,UAAAA,KAAK,CAACx4B,mBAAN,CAA0B,OAA1B,EAAmCk7B,aAAnC,CAAA,CAAA;AACD,SAAA;OARH,CAAA,CAAA;AAUD,KAAA;;IAED,IAAIn0B,MAAM,CAACgyB,UAAP,CAAkB6B,OAAtB,EACE7zB,MAAM,CAACgyB,UAAP,CAAkB6B,OAAlB,CAA0Bl7B,OAA1B,CAAmC84B,KAAD,IAChCA,KAAK,CAACpvB,SAAN,CAAgB8O,MAAhB,CAAuB3Q,MAAM,CAAC2yB,iBAA9B,CADF,CAAA,CAAA;AAGH,GAAA;;EAEDnsB,EAAE,CAAC,MAAD,EAAS,MAAM;IACf,IAAIhH,MAAM,CAACQ,MAAP,CAAcwxB,UAAd,CAAyB5lB,OAAzB,KAAqC,KAAzC,EAAgD;AAC9C;MACA2X,OAAO,EAAA,CAAA;AACR,KAHD,MAGO;MACL7a,IAAI,EAAA,CAAA;MACJqsB,MAAM,EAAA,CAAA;MACNlT,MAAM,EAAA,CAAA;AACP,KAAA;AACF,GATC,CAAF,CAAA;EAUArb,EAAE,CAAC,mBAAD,EAAsB,MAAM;AAC5B,IAAA,IAAI,OAAOhH,MAAM,CAACsQ,SAAd,KAA4B,WAAhC,EAA6C;MAC3C+R,MAAM,EAAA,CAAA;AACP,KAAA;AACF,GAJC,CAAF,CAAA;EAKArb,EAAE,CAAC,iBAAD,EAAoB,MAAM;IAC1Bqb,MAAM,EAAA,CAAA;AACP,GAFC,CAAF,CAAA;EAGArb,EAAE,CAAC,sBAAD,EAAyB,MAAM;IAC/BuuB,MAAM,EAAA,CAAA;IACNlT,MAAM,EAAA,CAAA;AACP,GAHC,CAAF,CAAA;EAIArb,EAAE,CAAC,SAAD,EAAY,MAAM;IAClBsC,OAAO,EAAA,CAAA;AACR,GAFC,CAAF,CAAA;EAGAtC,EAAE,CAAC,gBAAD,EAAmB,MAAM;IACzB,IAAI;AAAEpK,MAAAA,EAAAA;KAAOoD,GAAAA,MAAM,CAACgyB,UAApB,CAAA;;AACA,IAAA,IAAIp1B,EAAJ,EAAQ;AACNA,MAAAA,EAAE,GAAGy0B,iBAAiB,CAACz0B,EAAD,CAAtB,CAAA;MACAA,EAAE,CAACjE,OAAH,CAAY84B,KAAD,IACTA,KAAK,CAACpvB,SAAN,CAAgBrC,MAAM,CAACoM,OAAP,GAAiB,QAAjB,GAA4B,KAA5C,CAAA,CAAmDpM,MAAM,CAACQ,MAAP,CAAcwxB,UAAd,CAAyBb,SAA5E,CADF,CAAA,CAAA;AAGD,KAAA;AACF,GARC,CAAF,CAAA;EASAnqB,EAAE,CAAC,aAAD,EAAgB,MAAM;IACtBqb,MAAM,EAAA,CAAA;AACP,GAFC,CAAF,CAAA;AAGArb,EAAAA,EAAE,CAAC,OAAD,EAAU,CAAC+qB,EAAD,EAAKv1B,CAAL,KAAW;AACrB,IAAA,MAAMgf,QAAQ,GAAGhf,CAAC,CAAChE,MAAnB,CAAA;IACA,IAAI;AAAEoE,MAAAA,EAAAA;KAAOoD,GAAAA,MAAM,CAACgyB,UAApB,CAAA;IACA,IAAI,CAACzvB,KAAK,CAACC,OAAN,CAAc5F,EAAd,CAAL,EAAwBA,EAAE,GAAG,CAACA,EAAD,CAAA,CAAKsC,MAAL,CAAa8C,OAAD,IAAa,CAAC,CAACA,OAA3B,CAAL,CAAA;;AACxB,IAAA,IACEhC,MAAM,CAACQ,MAAP,CAAcwxB,UAAd,CAAyBp1B,EAAzB,IACAoD,MAAM,CAACQ,MAAP,CAAcwxB,UAAd,CAAyBhB,WADzB,IAEAp0B,EAFA,IAGAA,EAAE,CAAC/D,MAAH,GAAY,CAHZ,IAIA,CAAC2iB,QAAQ,CAACnZ,SAAT,CAAmB4O,QAAnB,CAA4BjR,MAAM,CAACQ,MAAP,CAAcwxB,UAAd,CAAyBkB,WAArD,CALH,EAME;AACA,MAAA,IACElzB,MAAM,CAACkhB,UAAP,KACElhB,MAAM,CAACkhB,UAAP,CAAkBC,MAAlB,IAA4B3F,QAAQ,KAAKxb,MAAM,CAACkhB,UAAP,CAAkBC,MAA5D,IACEnhB,MAAM,CAACkhB,UAAP,CAAkBE,MAAlB,IAA4B5F,QAAQ,KAAKxb,MAAM,CAACkhB,UAAP,CAAkBE,MAF9D,CADF,EAKE,OAAA;AACF,MAAA,MAAM8Q,QAAQ,GAAGt1B,EAAE,CAAC,CAAD,CAAF,CAAMyF,SAAN,CAAgB4O,QAAhB,CAAyBjR,MAAM,CAACQ,MAAP,CAAcwxB,UAAd,CAAyBd,WAAlD,CAAjB,CAAA;;MACA,IAAIgB,QAAQ,KAAK,IAAjB,EAAuB;QACrBjrB,IAAI,CAAC,gBAAD,CAAJ,CAAA;AACD,OAFD,MAEO;QACLA,IAAI,CAAC,gBAAD,CAAJ,CAAA;AACD,OAAA;;AACDrK,MAAAA,EAAE,CAACjE,OAAH,CAAY84B,KAAD,IAAWA,KAAK,CAACpvB,SAAN,CAAgB8vB,MAAhB,CAAuBnyB,MAAM,CAACQ,MAAP,CAAcwxB,UAAd,CAAyBd,WAAhD,CAAtB,CAAA,CAAA;AACD,KAAA;AACF,GAzBC,CAAF,CAAA;;EA2BA,MAAMlN,MAAM,GAAG,MAAM;AACnBhkB,IAAAA,MAAM,CAACpD,EAAP,CAAUyF,SAAV,CAAoB8O,MAApB,CAA2BnR,MAAM,CAACQ,MAAP,CAAcwxB,UAAd,CAAyB4B,uBAApD,CAAA,CAAA;IACA,IAAI;AAAEh3B,MAAAA,EAAAA;KAAOoD,GAAAA,MAAM,CAACgyB,UAApB,CAAA;;AACA,IAAA,IAAIp1B,EAAJ,EAAQ;AACNA,MAAAA,EAAE,GAAGy0B,iBAAiB,CAACz0B,EAAD,CAAtB,CAAA;AACAA,MAAAA,EAAE,CAACjE,OAAH,CAAY84B,KAAD,IACTA,KAAK,CAACpvB,SAAN,CAAgB8O,MAAhB,CAAuBnR,MAAM,CAACQ,MAAP,CAAcwxB,UAAd,CAAyB4B,uBAAhD,CADF,CAAA,CAAA;AAGD,KAAA;;IACD1qB,IAAI,EAAA,CAAA;IACJqsB,MAAM,EAAA,CAAA;IACNlT,MAAM,EAAA,CAAA;GAXR,CAAA;;EAcA,MAAM0B,OAAO,GAAG,MAAM;AACpB/jB,IAAAA,MAAM,CAACpD,EAAP,CAAUyF,SAAV,CAAoBC,GAApB,CAAwBtC,MAAM,CAACQ,MAAP,CAAcwxB,UAAd,CAAyB4B,uBAAjD,CAAA,CAAA;IACA,IAAI;AAAEh3B,MAAAA,EAAAA;KAAOoD,GAAAA,MAAM,CAACgyB,UAApB,CAAA;;AACA,IAAA,IAAIp1B,EAAJ,EAAQ;AACNA,MAAAA,EAAE,GAAGy0B,iBAAiB,CAACz0B,EAAD,CAAtB,CAAA;AACAA,MAAAA,EAAE,CAACjE,OAAH,CAAY84B,KAAD,IAAWA,KAAK,CAACpvB,SAAN,CAAgBC,GAAhB,CAAoBtC,MAAM,CAACQ,MAAP,CAAcwxB,UAAd,CAAyB4B,uBAA7C,CAAtB,CAAA,CAAA;AACD,KAAA;;IACDtqB,OAAO,EAAA,CAAA;GAPT,CAAA;;AAUAhR,EAAAA,MAAM,CAACiT,MAAP,CAAcvL,MAAM,CAACgyB,UAArB,EAAiC;IAC/BhO,MAD+B;IAE/BD,OAF+B;IAG/BwR,MAH+B;IAI/BlT,MAJ+B;IAK/BnZ,IAL+B;AAM/BI,IAAAA,OAAAA;GANF,CAAA,CAAA;AAQD;;ACpec,SAASosB,SAAT,CAAuD,IAAA,EAAA;EAAA,IAApC;IAAE11B,MAAF;IAAUsI,YAAV;IAAwBtB,EAAxB;AAA4BC,IAAAA,IAAAA;GAAQ,GAAA,IAAA,CAAA;EACpE,MAAMpM,QAAQ,GAAGF,WAAW,EAA5B,CAAA;EAEA,IAAIghB,SAAS,GAAG,KAAhB,CAAA;EACA,IAAI0F,OAAO,GAAG,IAAd,CAAA;EACA,IAAIsU,WAAW,GAAG,IAAlB,CAAA;AACA,EAAA,IAAIC,YAAJ,CAAA;AACA,EAAA,IAAIC,QAAJ,CAAA;AACA,EAAA,IAAIC,SAAJ,CAAA;AACA,EAAA,IAAIC,OAAJ,CAAA;AAEAztB,EAAAA,YAAY,CAAC;AACX0tB,IAAAA,SAAS,EAAE;AACTp5B,MAAAA,EAAE,EAAE,IADK;AAETi5B,MAAAA,QAAQ,EAAE,MAFD;AAGTI,MAAAA,IAAI,EAAE,KAHG;AAITC,MAAAA,SAAS,EAAE,KAJF;AAKTC,MAAAA,aAAa,EAAE,IALN;AAMThF,MAAAA,SAAS,EAAE,uBANF;AAOTiF,MAAAA,SAAS,EAAE,uBAPF;AAQTC,MAAAA,sBAAsB,EAAE,2BARf;AAST3C,MAAAA,eAAe,EAAG,CATT,2BAAA,CAAA;AAUTC,MAAAA,aAAa,EAAG,CAAA,yBAAA,CAAA;AAVP,KAAA;AADA,GAAD,CAAZ,CAAA;EAeA3zB,MAAM,CAACg2B,SAAP,GAAmB;AACjBp5B,IAAAA,EAAE,EAAE,IADa;AAEjB05B,IAAAA,MAAM,EAAE,IAAA;GAFV,CAAA;;AAKA,EAAA,SAAS7gB,YAAT,GAAwB;AACtB,IAAA,IAAI,CAACzV,MAAM,CAACQ,MAAP,CAAcw1B,SAAd,CAAwBp5B,EAAzB,IAA+B,CAACoD,MAAM,CAACg2B,SAAP,CAAiBp5B,EAArD,EAAyD,OAAA;IACzD,MAAM;MAAEo5B,SAAF;AAAajqB,MAAAA,YAAY,EAAEC,GAAAA;AAA3B,KAAA,GAAmChM,MAAzC,CAAA;IACA,MAAM;MAAEs2B,MAAF;AAAU15B,MAAAA,EAAAA;AAAV,KAAA,GAAiBo5B,SAAvB,CAAA;AACA,IAAA,MAAMx1B,MAAM,GAAGR,MAAM,CAACQ,MAAP,CAAcw1B,SAA7B,CAAA;AACA,IAAA,MAAM90B,QAAQ,GAAGlB,MAAM,CAACQ,MAAP,CAAc+O,IAAd,GAAqBvP,MAAM,CAACiT,YAA5B,GAA2CjT,MAAM,CAACkB,QAAnE,CAAA;IAEA,IAAIq1B,OAAO,GAAGV,QAAd,CAAA;AACA,IAAA,IAAIW,MAAM,GAAG,CAACV,SAAS,GAAGD,QAAb,IAAyB30B,QAAtC,CAAA;;AACA,IAAA,IAAI8K,GAAJ,EAAS;MACPwqB,MAAM,GAAG,CAACA,MAAV,CAAA;;MACA,IAAIA,MAAM,GAAG,CAAb,EAAgB;QACdD,OAAO,GAAGV,QAAQ,GAAGW,MAArB,CAAA;AACAA,QAAAA,MAAM,GAAG,CAAT,CAAA;OAFF,MAGO,IAAI,CAACA,MAAD,GAAUX,QAAV,GAAqBC,SAAzB,EAAoC;QACzCS,OAAO,GAAGT,SAAS,GAAGU,MAAtB,CAAA;AACD,OAAA;AACF,KARD,MAQO,IAAIA,MAAM,GAAG,CAAb,EAAgB;MACrBD,OAAO,GAAGV,QAAQ,GAAGW,MAArB,CAAA;AACAA,MAAAA,MAAM,GAAG,CAAT,CAAA;AACD,KAHM,MAGA,IAAIA,MAAM,GAAGX,QAAT,GAAoBC,SAAxB,EAAmC;MACxCS,OAAO,GAAGT,SAAS,GAAGU,MAAtB,CAAA;AACD,KAAA;;AACD,IAAA,IAAIx2B,MAAM,CAACkL,YAAP,EAAJ,EAA2B;AACzBorB,MAAAA,MAAM,CAACz8B,KAAP,CAAawD,SAAb,GAA0B,CAAA,YAAA,EAAcm5B,MAAO,CAA/C,SAAA,CAAA,CAAA;AACAF,MAAAA,MAAM,CAACz8B,KAAP,CAAa8L,KAAb,GAAsB,CAAA,EAAE4wB,OAAQ,CAAhC,EAAA,CAAA,CAAA;AACD,KAHD,MAGO;AACLD,MAAAA,MAAM,CAACz8B,KAAP,CAAawD,SAAb,GAA0B,CAAA,iBAAA,EAAmBm5B,MAAO,CAApD,MAAA,CAAA,CAAA;AACAF,MAAAA,MAAM,CAACz8B,KAAP,CAAagM,MAAb,GAAuB,CAAA,EAAE0wB,OAAQ,CAAjC,EAAA,CAAA,CAAA;AACD,KAAA;;IACD,IAAI/1B,MAAM,CAACy1B,IAAX,EAAiB;MACfp6B,YAAY,CAACwlB,OAAD,CAAZ,CAAA;AACAzkB,MAAAA,EAAE,CAAC/C,KAAH,CAAS48B,OAAT,GAAmB,CAAnB,CAAA;MACApV,OAAO,GAAGzlB,UAAU,CAAC,MAAM;AACzBgB,QAAAA,EAAE,CAAC/C,KAAH,CAAS48B,OAAT,GAAmB,CAAnB,CAAA;AACA75B,QAAAA,EAAE,CAAC/C,KAAH,CAAS0sB,UAAT,GAAsB,OAAtB,CAAA;OAFkB,EAGjB,IAHiB,CAApB,CAAA;AAID,KAAA;AACF,GAAA;;EACD,SAASjV,aAAT,CAAuB/Q,QAAvB,EAAiC;AAC/B,IAAA,IAAI,CAACP,MAAM,CAACQ,MAAP,CAAcw1B,SAAd,CAAwBp5B,EAAzB,IAA+B,CAACoD,MAAM,CAACg2B,SAAP,CAAiBp5B,EAArD,EAAyD,OAAA;IACzDoD,MAAM,CAACg2B,SAAP,CAAiBM,MAAjB,CAAwBz8B,KAAxB,CAA8B0sB,UAA9B,GAA4C,CAAEhmB,EAAAA,QAAS,CAAvD,EAAA,CAAA,CAAA;AACD,GAAA;;AACD,EAAA,SAASwK,UAAT,GAAsB;AACpB,IAAA,IAAI,CAAC/K,MAAM,CAACQ,MAAP,CAAcw1B,SAAd,CAAwBp5B,EAAzB,IAA+B,CAACoD,MAAM,CAACg2B,SAAP,CAAiBp5B,EAArD,EAAyD,OAAA;IAEzD,MAAM;AAAEo5B,MAAAA,SAAAA;AAAF,KAAA,GAAgBh2B,MAAtB,CAAA;IACA,MAAM;MAAEs2B,MAAF;AAAU15B,MAAAA,EAAAA;AAAV,KAAA,GAAiBo5B,SAAvB,CAAA;AAEAM,IAAAA,MAAM,CAACz8B,KAAP,CAAa8L,KAAb,GAAqB,EAArB,CAAA;AACA2wB,IAAAA,MAAM,CAACz8B,KAAP,CAAagM,MAAb,GAAsB,EAAtB,CAAA;IACAiwB,SAAS,GAAG91B,MAAM,CAACkL,YAAP,EAAA,GAAwBtO,EAAE,CAAC+H,WAA3B,GAAyC/H,EAAE,CAAC+U,YAAxD,CAAA;AAEAokB,IAAAA,OAAO,GACL/1B,MAAM,CAACyE,IAAP,IACCzE,MAAM,CAACqN,WAAP,GACCrN,MAAM,CAACQ,MAAP,CAAcqM,kBADf,IAEE7M,MAAM,CAACQ,MAAP,CAAckN,cAAd,GAA+B1N,MAAM,CAACyM,QAAP,CAAgB,CAAhB,CAA/B,GAAoD,CAFtD,CADD,CADF,CAAA;;IAKA,IAAIzM,MAAM,CAACQ,MAAP,CAAcw1B,SAAd,CAAwBH,QAAxB,KAAqC,MAAzC,EAAiD;MAC/CA,QAAQ,GAAGC,SAAS,GAAGC,OAAvB,CAAA;AACD,KAFD,MAEO;AACLF,MAAAA,QAAQ,GAAGzqB,QAAQ,CAACpL,MAAM,CAACQ,MAAP,CAAcw1B,SAAd,CAAwBH,QAAzB,EAAmC,EAAnC,CAAnB,CAAA;AACD,KAAA;;AAED,IAAA,IAAI71B,MAAM,CAACkL,YAAP,EAAJ,EAA2B;AACzBorB,MAAAA,MAAM,CAACz8B,KAAP,CAAa8L,KAAb,GAAsB,CAAA,EAAEkwB,QAAS,CAAjC,EAAA,CAAA,CAAA;AACD,KAFD,MAEO;AACLS,MAAAA,MAAM,CAACz8B,KAAP,CAAagM,MAAb,GAAuB,CAAA,EAAEgwB,QAAS,CAAlC,EAAA,CAAA,CAAA;AACD,KAAA;;IAED,IAAIE,OAAO,IAAI,CAAf,EAAkB;AAChBn5B,MAAAA,EAAE,CAAC/C,KAAH,CAAS68B,OAAT,GAAmB,MAAnB,CAAA;AACD,KAFD,MAEO;AACL95B,MAAAA,EAAE,CAAC/C,KAAH,CAAS68B,OAAT,GAAmB,EAAnB,CAAA;AACD,KAAA;;AACD,IAAA,IAAI12B,MAAM,CAACQ,MAAP,CAAcw1B,SAAd,CAAwBC,IAA5B,EAAkC;AAChCr5B,MAAAA,EAAE,CAAC/C,KAAH,CAAS48B,OAAT,GAAmB,CAAnB,CAAA;AACD,KAAA;;IAED,IAAIz2B,MAAM,CAACQ,MAAP,CAAckQ,aAAd,IAA+B1Q,MAAM,CAACoM,OAA1C,EAAmD;AACjD4pB,MAAAA,SAAS,CAACp5B,EAAV,CAAayF,SAAb,CAAuBrC,MAAM,CAACwa,QAAP,GAAkB,KAAlB,GAA0B,QAAjD,EAA2Dxa,MAAM,CAACQ,MAAP,CAAcw1B,SAAd,CAAwB7E,SAAnF,CAAA,CAAA;AACD,KAAA;AACF,GAAA;;EACD,SAASwF,kBAAT,CAA4Bn6B,CAA5B,EAA+B;IAC7B,OAAOwD,MAAM,CAACkL,YAAP,EAAwB1O,GAAAA,CAAC,CAACo6B,OAA1B,GAAoCp6B,CAAC,CAACq6B,OAA7C,CAAA;AACD,GAAA;;EACD,SAASC,eAAT,CAAyBt6B,CAAzB,EAA4B;IAC1B,MAAM;MAAEw5B,SAAF;AAAajqB,MAAAA,YAAY,EAAEC,GAAAA;AAA3B,KAAA,GAAmChM,MAAzC,CAAA;IACA,MAAM;AAAEpD,MAAAA,EAAAA;AAAF,KAAA,GAASo5B,SAAf,CAAA;AAEA,IAAA,IAAIe,aAAJ,CAAA;AACAA,IAAAA,aAAa,GACX,CAACJ,kBAAkB,CAACn6B,CAAD,CAAlB,GACCiG,aAAa,CAAC7F,EAAD,CAAb,CAAkBoD,MAAM,CAACkL,YAAP,EAAwB,GAAA,MAAxB,GAAiC,KAAnD,CADD,IAEE0qB,YAAY,KAAK,IAAjB,GAAwBA,YAAxB,GAAuCC,QAAQ,GAAG,CAFpD,CAAD,KAGCC,SAAS,GAAGD,QAHb,CADF,CAAA;AAKAkB,IAAAA,aAAa,GAAG51B,IAAI,CAACC,GAAL,CAASD,IAAI,CAACE,GAAL,CAAS01B,aAAT,EAAwB,CAAxB,CAAT,EAAqC,CAArC,CAAhB,CAAA;;AACA,IAAA,IAAI/qB,GAAJ,EAAS;MACP+qB,aAAa,GAAG,IAAIA,aAApB,CAAA;AACD,KAAA;;AAED,IAAA,MAAMxG,QAAQ,GACZvwB,MAAM,CAACqS,YAAP,KAAwB,CAACrS,MAAM,CAAC8S,YAAP,KAAwB9S,MAAM,CAACqS,YAAP,EAAzB,IAAkD0kB,aAD5E,CAAA;IAGA/2B,MAAM,CAAC2S,cAAP,CAAsB4d,QAAtB,CAAA,CAAA;IACAvwB,MAAM,CAACyV,YAAP,CAAoB8a,QAApB,CAAA,CAAA;AACAvwB,IAAAA,MAAM,CAACsU,iBAAP,EAAA,CAAA;AACAtU,IAAAA,MAAM,CAAC2T,mBAAP,EAAA,CAAA;AACD,GAAA;;EACD,SAASqjB,WAAT,CAAqBx6B,CAArB,EAAwB;AACtB,IAAA,MAAMgE,MAAM,GAAGR,MAAM,CAACQ,MAAP,CAAcw1B,SAA7B,CAAA;IACA,MAAM;MAAEA,SAAF;AAAat1B,MAAAA,SAAAA;AAAb,KAAA,GAA2BV,MAAjC,CAAA;IACA,MAAM;MAAEpD,EAAF;AAAM05B,MAAAA,MAAAA;AAAN,KAAA,GAAiBN,SAAvB,CAAA;AACAra,IAAAA,SAAS,GAAG,IAAZ,CAAA;IACAia,YAAY,GACVp5B,CAAC,CAAChE,MAAF,KAAa89B,MAAb,GACIK,kBAAkB,CAACn6B,CAAD,CAAlB,GACAA,CAAC,CAAChE,MAAF,CAASmK,qBAAT,EAAiC3C,CAAAA,MAAM,CAACkL,YAAP,EAAwB,GAAA,MAAxB,GAAiC,KAAlE,CAFJ,GAGI,IAJN,CAAA;AAKA1O,IAAAA,CAAC,CAAC2gB,cAAF,EAAA,CAAA;AACA3gB,IAAAA,CAAC,CAAC2iB,eAAF,EAAA,CAAA;AAEAze,IAAAA,SAAS,CAAC7G,KAAV,CAAgB0sB,UAAhB,GAA6B,OAA7B,CAAA;AACA+P,IAAAA,MAAM,CAACz8B,KAAP,CAAa0sB,UAAb,GAA0B,OAA1B,CAAA;IACAuQ,eAAe,CAACt6B,CAAD,CAAf,CAAA;IAEAX,YAAY,CAAC85B,WAAD,CAAZ,CAAA;AAEA/4B,IAAAA,EAAE,CAAC/C,KAAH,CAAS0sB,UAAT,GAAsB,KAAtB,CAAA;;IACA,IAAI/lB,MAAM,CAACy1B,IAAX,EAAiB;AACfr5B,MAAAA,EAAE,CAAC/C,KAAH,CAAS48B,OAAT,GAAmB,CAAnB,CAAA;AACD,KAAA;;AACD,IAAA,IAAIz2B,MAAM,CAACQ,MAAP,CAAcmN,OAAlB,EAA2B;AACzB3N,MAAAA,MAAM,CAACU,SAAP,CAAiB7G,KAAjB,CAAuB,kBAAvB,IAA6C,MAA7C,CAAA;AACD,KAAA;;AACDoN,IAAAA,IAAI,CAAC,oBAAD,EAAuBzK,CAAvB,CAAJ,CAAA;AACD,GAAA;;EACD,SAASy6B,UAAT,CAAoBz6B,CAApB,EAAuB;IACrB,MAAM;MAAEw5B,SAAF;AAAat1B,MAAAA,SAAAA;AAAb,KAAA,GAA2BV,MAAjC,CAAA;IACA,MAAM;MAAEpD,EAAF;AAAM05B,MAAAA,MAAAA;AAAN,KAAA,GAAiBN,SAAvB,CAAA;IAEA,IAAI,CAACra,SAAL,EAAgB,OAAA;AAChB,IAAA,IAAInf,CAAC,CAAC2gB,cAAN,EAAsB3gB,CAAC,CAAC2gB,cAAF,EAAA,CAAtB,KACK3gB,CAAC,CAACgxB,WAAF,GAAgB,KAAhB,CAAA;IACLsJ,eAAe,CAACt6B,CAAD,CAAf,CAAA;AACAkE,IAAAA,SAAS,CAAC7G,KAAV,CAAgB0sB,UAAhB,GAA6B,KAA7B,CAAA;AACA3pB,IAAAA,EAAE,CAAC/C,KAAH,CAAS0sB,UAAT,GAAsB,KAAtB,CAAA;AACA+P,IAAAA,MAAM,CAACz8B,KAAP,CAAa0sB,UAAb,GAA0B,KAA1B,CAAA;AACAtf,IAAAA,IAAI,CAAC,mBAAD,EAAsBzK,CAAtB,CAAJ,CAAA;AACD,GAAA;;EACD,SAAS06B,SAAT,CAAmB16B,CAAnB,EAAsB;AACpB,IAAA,MAAMgE,MAAM,GAAGR,MAAM,CAACQ,MAAP,CAAcw1B,SAA7B,CAAA;IACA,MAAM;MAAEA,SAAF;AAAat1B,MAAAA,SAAAA;AAAb,KAAA,GAA2BV,MAAjC,CAAA;IACA,MAAM;AAAEpD,MAAAA,EAAAA;AAAF,KAAA,GAASo5B,SAAf,CAAA;IAEA,IAAI,CAACra,SAAL,EAAgB,OAAA;AAChBA,IAAAA,SAAS,GAAG,KAAZ,CAAA;;AACA,IAAA,IAAI3b,MAAM,CAACQ,MAAP,CAAcmN,OAAlB,EAA2B;AACzB3N,MAAAA,MAAM,CAACU,SAAP,CAAiB7G,KAAjB,CAAuB,kBAAvB,IAA6C,EAA7C,CAAA;AACA6G,MAAAA,SAAS,CAAC7G,KAAV,CAAgB0sB,UAAhB,GAA6B,EAA7B,CAAA;AACD,KAAA;;IACD,IAAI/lB,MAAM,CAACy1B,IAAX,EAAiB;MACfp6B,YAAY,CAAC85B,WAAD,CAAZ,CAAA;MACAA,WAAW,GAAGl5B,QAAQ,CAAC,MAAM;AAC3BG,QAAAA,EAAE,CAAC/C,KAAH,CAAS48B,OAAT,GAAmB,CAAnB,CAAA;AACA75B,QAAAA,EAAE,CAAC/C,KAAH,CAAS0sB,UAAT,GAAsB,OAAtB,CAAA;OAFoB,EAGnB,IAHmB,CAAtB,CAAA;AAID,KAAA;;AACDtf,IAAAA,IAAI,CAAC,kBAAD,EAAqBzK,CAArB,CAAJ,CAAA;;IACA,IAAIgE,MAAM,CAAC21B,aAAX,EAA0B;AACxBn2B,MAAAA,MAAM,CAAC+Y,cAAP,EAAA,CAAA;AACD,KAAA;AACF,GAAA;;EAED,SAAStP,MAAT,CAAgBK,MAAhB,EAAwB;IACtB,MAAM;MAAEksB,SAAF;AAAax1B,MAAAA,MAAAA;AAAb,KAAA,GAAwBR,MAA9B,CAAA;AACA,IAAA,MAAMpD,EAAE,GAAGo5B,SAAS,CAACp5B,EAArB,CAAA;IACA,IAAI,CAACA,EAAL,EAAS,OAAA;IACT,MAAMpE,MAAM,GAAGoE,EAAf,CAAA;AACA,IAAA,MAAMu6B,cAAc,GAAG32B,MAAM,CAACqlB,gBAAP,GAA0B;AAAElD,MAAAA,OAAO,EAAE,KAAX;AAAkBH,MAAAA,OAAO,EAAE,KAAA;AAA3B,KAA1B,GAA+D,KAAtF,CAAA;AACA,IAAA,MAAM4U,eAAe,GAAG52B,MAAM,CAACqlB,gBAAP,GAA0B;AAAElD,MAAAA,OAAO,EAAE,IAAX;AAAiBH,MAAAA,OAAO,EAAE,KAAA;AAA1B,KAA1B,GAA8D,KAAtF,CAAA;IACA,IAAI,CAAChqB,MAAL,EAAa,OAAA;IACb,MAAM6+B,WAAW,GAAGvtB,MAAM,KAAK,IAAX,GAAkB,kBAAlB,GAAuC,qBAA3D,CAAA;IACAtR,MAAM,CAAC6+B,WAAD,CAAN,CAAoB,aAApB,EAAmCL,WAAnC,EAAgDG,cAAhD,CAAA,CAAA;IACAt8B,QAAQ,CAACw8B,WAAD,CAAR,CAAsB,aAAtB,EAAqCJ,UAArC,EAAiDE,cAAjD,CAAA,CAAA;IACAt8B,QAAQ,CAACw8B,WAAD,CAAR,CAAsB,WAAtB,EAAmCH,SAAnC,EAA8CE,eAA9C,CAAA,CAAA;AACD,GAAA;;AAED,EAAA,SAASE,eAAT,GAA2B;AACzB,IAAA,IAAI,CAACt3B,MAAM,CAACQ,MAAP,CAAcw1B,SAAd,CAAwBp5B,EAAzB,IAA+B,CAACoD,MAAM,CAACg2B,SAAP,CAAiBp5B,EAArD,EAAyD,OAAA;IACzD6M,MAAM,CAAC,IAAD,CAAN,CAAA;AACD,GAAA;;AACD,EAAA,SAAS8tB,gBAAT,GAA4B;AAC1B,IAAA,IAAI,CAACv3B,MAAM,CAACQ,MAAP,CAAcw1B,SAAd,CAAwBp5B,EAAzB,IAA+B,CAACoD,MAAM,CAACg2B,SAAP,CAAiBp5B,EAArD,EAAyD,OAAA;IACzD6M,MAAM,CAAC,KAAD,CAAN,CAAA;AACD,GAAA;;AACD,EAAA,SAASP,IAAT,GAAgB;IACd,MAAM;MAAE8sB,SAAF;AAAap5B,MAAAA,EAAE,EAAE46B,QAAAA;AAAjB,KAAA,GAA8Bx3B,MAApC,CAAA;IACAA,MAAM,CAACQ,MAAP,CAAcw1B,SAAd,GAA0BnF,yBAAyB,CACjD7wB,MADiD,EAEjDA,MAAM,CAACujB,cAAP,CAAsByS,SAF2B,EAGjDh2B,MAAM,CAACQ,MAAP,CAAcw1B,SAHmC,EAIjD;AAAEp5B,MAAAA,EAAE,EAAE,kBAAA;AAAN,KAJiD,CAAnD,CAAA;AAMA,IAAA,MAAM4D,MAAM,GAAGR,MAAM,CAACQ,MAAP,CAAcw1B,SAA7B,CAAA;AACA,IAAA,IAAI,CAACx1B,MAAM,CAAC5D,EAAZ,EAAgB,OAAA;AAEhB,IAAA,IAAIA,EAAJ,CAAA;;IACA,IAAI,OAAO4D,MAAM,CAAC5D,EAAd,KAAqB,QAArB,IAAiCoD,MAAM,CAACqZ,SAA5C,EAAuD;AACrDzc,MAAAA,EAAE,GAAGoD,MAAM,CAACpD,EAAP,CAAUsf,UAAV,CAAqB7iB,aAArB,CAAmCmH,MAAM,CAAC5D,EAA1C,CAAL,CAAA;AACD,KAAA;;IACD,IAAI,CAACA,EAAL,EAAS;MACPA,EAAE,GAAG/B,QAAQ,CAACvB,gBAAT,CAA0BkH,MAAM,CAAC5D,EAAjC,CAAL,CAAA;AACD,KAAA;;AAED,IAAA,IACEoD,MAAM,CAACQ,MAAP,CAAcolB,iBAAd,IACA,OAAOplB,MAAM,CAAC5D,EAAd,KAAqB,QADrB,IAEAA,EAAE,CAAC/D,MAAH,GAAY,CAFZ,IAGA2+B,QAAQ,CAACl+B,gBAAT,CAA0BkH,MAAM,CAAC5D,EAAjC,CAAA,CAAqC/D,MAArC,KAAgD,CAJlD,EAKE;MACA+D,EAAE,GAAG46B,QAAQ,CAACn+B,aAAT,CAAuBmH,MAAM,CAAC5D,EAA9B,CAAL,CAAA;AACD,KAAA;;IACD,IAAIA,EAAE,CAAC/D,MAAH,GAAY,CAAhB,EAAmB+D,EAAE,GAAGA,EAAE,CAAC,CAAD,CAAP,CAAA;AAEnBA,IAAAA,EAAE,CAACyF,SAAH,CAAaC,GAAb,CAAiBtC,MAAM,CAACkL,YAAP,EAAA,GAAwB1K,MAAM,CAACkzB,eAA/B,GAAiDlzB,MAAM,CAACmzB,aAAzE,CAAA,CAAA;AAEA,IAAA,IAAI2C,MAAJ,CAAA;;AACA,IAAA,IAAI15B,EAAJ,EAAQ;MACNA,EAAE,CAACvD,aAAH,CAAkB,CAAG2G,CAAAA,EAAAA,MAAM,CAACQ,MAAP,CAAcw1B,SAAd,CAAwBI,SAAU,CAAvD,CAAA,CAAA,CAAA;;MACA,IAAI,CAACE,MAAL,EAAa;AACXA,QAAAA,MAAM,GAAG58B,aAAa,CAAC,KAAD,EAAQsG,MAAM,CAACQ,MAAP,CAAcw1B,SAAd,CAAwBI,SAAhC,CAAtB,CAAA;QACAx5B,EAAE,CAACmd,MAAH,CAAUuc,MAAV,CAAA,CAAA;AACD,OAAA;AACF,KAAA;;AAEDh+B,IAAAA,MAAM,CAACiT,MAAP,CAAcyqB,SAAd,EAAyB;MACvBp5B,EADuB;AAEvB05B,MAAAA,MAAAA;KAFF,CAAA,CAAA;;IAKA,IAAI91B,MAAM,CAAC01B,SAAX,EAAsB;MACpBoB,eAAe,EAAA,CAAA;AAChB,KAAA;;AAED,IAAA,IAAI16B,EAAJ,EAAQ;AACNA,MAAAA,EAAE,CAACyF,SAAH,CAAarC,MAAM,CAACoM,OAAP,GAAiB,QAAjB,GAA4B,KAAzC,EAAgDpM,MAAM,CAACQ,MAAP,CAAcw1B,SAAd,CAAwB7E,SAAxE,CAAA,CAAA;AACD,KAAA;AACF,GAAA;;AACD,EAAA,SAAS7nB,OAAT,GAAmB;AACjB,IAAA,MAAM9I,MAAM,GAAGR,MAAM,CAACQ,MAAP,CAAcw1B,SAA7B,CAAA;AACA,IAAA,MAAMp5B,EAAE,GAAGoD,MAAM,CAACg2B,SAAP,CAAiBp5B,EAA5B,CAAA;;AACA,IAAA,IAAIA,EAAJ,EAAQ;AACNA,MAAAA,EAAE,CAACyF,SAAH,CAAa8O,MAAb,CAAoBnR,MAAM,CAACkL,YAAP,EAAA,GAAwB1K,MAAM,CAACkzB,eAA/B,GAAiDlzB,MAAM,CAACmzB,aAA5E,CAAA,CAAA;AACD,KAAA;;IAED4D,gBAAgB,EAAA,CAAA;AACjB,GAAA;;EAEDvwB,EAAE,CAAC,MAAD,EAAS,MAAM;IACf,IAAIhH,MAAM,CAACQ,MAAP,CAAcw1B,SAAd,CAAwB5pB,OAAxB,KAAoC,KAAxC,EAA+C;AAC7C;MACA2X,OAAO,EAAA,CAAA;AACR,KAHD,MAGO;MACL7a,IAAI,EAAA,CAAA;MACJ6B,UAAU,EAAA,CAAA;MACV0K,YAAY,EAAA,CAAA;AACb,KAAA;AACF,GATC,CAAF,CAAA;EAUAzO,EAAE,CAAC,0CAAD,EAA6C,MAAM;IACnD+D,UAAU,EAAA,CAAA;AACX,GAFC,CAAF,CAAA;EAGA/D,EAAE,CAAC,cAAD,EAAiB,MAAM;IACvByO,YAAY,EAAA,CAAA;AACb,GAFC,CAAF,CAAA;AAGAzO,EAAAA,EAAE,CAAC,eAAD,EAAkB,CAAC+qB,EAAD,EAAKxxB,QAAL,KAAkB;IACpC+Q,aAAa,CAAC/Q,QAAD,CAAb,CAAA;AACD,GAFC,CAAF,CAAA;EAGAyG,EAAE,CAAC,gBAAD,EAAmB,MAAM;IACzB,MAAM;AAAEpK,MAAAA,EAAAA;KAAOoD,GAAAA,MAAM,CAACg2B,SAAtB,CAAA;;AACA,IAAA,IAAIp5B,EAAJ,EAAQ;AACNA,MAAAA,EAAE,CAACyF,SAAH,CAAarC,MAAM,CAACoM,OAAP,GAAiB,QAAjB,GAA4B,KAAzC,EAAgDpM,MAAM,CAACQ,MAAP,CAAcw1B,SAAd,CAAwB7E,SAAxE,CAAA,CAAA;AACD,KAAA;AACF,GALC,CAAF,CAAA;EAMAnqB,EAAE,CAAC,SAAD,EAAY,MAAM;IAClBsC,OAAO,EAAA,CAAA;AACR,GAFC,CAAF,CAAA;;EAIA,MAAM0a,MAAM,GAAG,MAAM;AACnBhkB,IAAAA,MAAM,CAACpD,EAAP,CAAUyF,SAAV,CAAoB8O,MAApB,CAA2BnR,MAAM,CAACQ,MAAP,CAAcw1B,SAAd,CAAwBK,sBAAnD,CAAA,CAAA;;AACA,IAAA,IAAIr2B,MAAM,CAACg2B,SAAP,CAAiBp5B,EAArB,EAAyB;AACvBoD,MAAAA,MAAM,CAACg2B,SAAP,CAAiBp5B,EAAjB,CAAoByF,SAApB,CAA8B8O,MAA9B,CAAqCnR,MAAM,CAACQ,MAAP,CAAcw1B,SAAd,CAAwBK,sBAA7D,CAAA,CAAA;AACD,KAAA;;IACDntB,IAAI,EAAA,CAAA;IACJ6B,UAAU,EAAA,CAAA;IACV0K,YAAY,EAAA,CAAA;GAPd,CAAA;;EAUA,MAAMsO,OAAO,GAAG,MAAM;AACpB/jB,IAAAA,MAAM,CAACpD,EAAP,CAAUyF,SAAV,CAAoBC,GAApB,CAAwBtC,MAAM,CAACQ,MAAP,CAAcw1B,SAAd,CAAwBK,sBAAhD,CAAA,CAAA;;AACA,IAAA,IAAIr2B,MAAM,CAACg2B,SAAP,CAAiBp5B,EAArB,EAAyB;AACvBoD,MAAAA,MAAM,CAACg2B,SAAP,CAAiBp5B,EAAjB,CAAoByF,SAApB,CAA8BC,GAA9B,CAAkCtC,MAAM,CAACQ,MAAP,CAAcw1B,SAAd,CAAwBK,sBAA1D,CAAA,CAAA;AACD,KAAA;;IACD/sB,OAAO,EAAA,CAAA;GALT,CAAA;;AAQAhR,EAAAA,MAAM,CAACiT,MAAP,CAAcvL,MAAM,CAACg2B,SAArB,EAAgC;IAC9BhS,MAD8B;IAE9BD,OAF8B;IAG9BhZ,UAH8B;IAI9B0K,YAJ8B;IAK9BvM,IAL8B;AAM9BI,IAAAA,OAAAA;GANF,CAAA,CAAA;AAQD;;AC3Vc,SAASmuB,QAAT,CAAgD,IAAA,EAAA;EAAA,IAA9B;IAAEz3B,MAAF;IAAUsI,YAAV;AAAwBtB,IAAAA,EAAAA;GAAM,GAAA,IAAA,CAAA;AAC7DsB,EAAAA,YAAY,CAAC;AACXovB,IAAAA,QAAQ,EAAE;AACRtrB,MAAAA,OAAO,EAAE,KAAA;AADD,KAAA;AADC,GAAD,CAAZ,CAAA;;AAMA,EAAA,MAAMurB,YAAY,GAAG,CAAC/6B,EAAD,EAAKsE,QAAL,KAAkB;IACrC,MAAM;AAAE8K,MAAAA,GAAAA;AAAF,KAAA,GAAUhM,MAAhB,CAAA;AAEA,IAAA,MAAMiwB,SAAS,GAAGjkB,GAAG,GAAG,CAAC,CAAJ,GAAQ,CAA7B,CAAA;IAEA,MAAM4rB,CAAC,GAAGh7B,EAAE,CAAC4U,YAAH,CAAgB,sBAAhB,KAA2C,GAArD,CAAA;AACA,IAAA,IAAImE,CAAC,GAAG/Y,EAAE,CAAC4U,YAAH,CAAgB,wBAAhB,CAAR,CAAA;AACA,IAAA,IAAIoE,CAAC,GAAGhZ,EAAE,CAAC4U,YAAH,CAAgB,wBAAhB,CAAR,CAAA;AACA,IAAA,MAAM2jB,KAAK,GAAGv4B,EAAE,CAAC4U,YAAH,CAAgB,4BAAhB,CAAd,CAAA;AACA,IAAA,MAAMilB,OAAO,GAAG75B,EAAE,CAAC4U,YAAH,CAAgB,8BAAhB,CAAhB,CAAA;;IAEA,IAAImE,CAAC,IAAIC,CAAT,EAAY;MACVD,CAAC,GAAGA,CAAC,IAAI,GAAT,CAAA;MACAC,CAAC,GAAGA,CAAC,IAAI,GAAT,CAAA;AACD,KAHD,MAGO,IAAI5V,MAAM,CAACkL,YAAP,EAAJ,EAA2B;AAChCyK,MAAAA,CAAC,GAAGiiB,CAAJ,CAAA;AACAhiB,MAAAA,CAAC,GAAG,GAAJ,CAAA;AACD,KAHM,MAGA;AACLA,MAAAA,CAAC,GAAGgiB,CAAJ,CAAA;AACAjiB,MAAAA,CAAC,GAAG,GAAJ,CAAA;AACD,KAAA;;AAED,IAAA,IAAIA,CAAC,CAACxW,OAAF,CAAU,GAAV,CAAA,IAAkB,CAAtB,EAAyB;AACvBwW,MAAAA,CAAC,GAAI,CAAA,EAAEvK,QAAQ,CAACuK,CAAD,EAAI,EAAJ,CAAR,GAAkBzU,QAAlB,GAA6B+uB,SAAU,CAA9C,CAAA,CAAA,CAAA;AACD,KAFD,MAEO;AACLta,MAAAA,CAAC,GAAI,CAAEA,EAAAA,CAAC,GAAGzU,QAAJ,GAAe+uB,SAAU,CAAhC,EAAA,CAAA,CAAA;AACD,KAAA;;AACD,IAAA,IAAIra,CAAC,CAACzW,OAAF,CAAU,GAAV,CAAA,IAAkB,CAAtB,EAAyB;MACvByW,CAAC,GAAI,CAAExK,EAAAA,QAAQ,CAACwK,CAAD,EAAI,EAAJ,CAAR,GAAkB1U,QAAS,CAAlC,CAAA,CAAA,CAAA;AACD,KAFD,MAEO;AACL0U,MAAAA,CAAC,GAAI,CAAA,EAAEA,CAAC,GAAG1U,QAAS,CAApB,EAAA,CAAA,CAAA;AACD,KAAA;;IAED,IAAI,OAAOu1B,OAAP,KAAmB,WAAnB,IAAkCA,OAAO,KAAK,IAAlD,EAAwD;AACtD,MAAA,MAAMoB,cAAc,GAAGpB,OAAO,GAAG,CAACA,OAAO,GAAG,CAAX,KAAiB,CAAA,GAAIt1B,IAAI,CAAC4N,GAAL,CAAS7N,QAAT,CAArB,CAAjC,CAAA;AACAtE,MAAAA,EAAE,CAAC/C,KAAH,CAAS48B,OAAT,GAAmBoB,cAAnB,CAAA;AACD,KAAA;;IACD,IAAI,OAAO1C,KAAP,KAAiB,WAAjB,IAAgCA,KAAK,KAAK,IAA9C,EAAoD;MAClDv4B,EAAE,CAAC/C,KAAH,CAASwD,SAAT,GAAsB,CAAcsY,YAAAA,EAAAA,CAAE,CAAIC,EAAAA,EAAAA,CAAE,CAA5C,MAAA,CAAA,CAAA;AACD,KAFD,MAEO;AACL,MAAA,MAAMkiB,YAAY,GAAG3C,KAAK,GAAG,CAACA,KAAK,GAAG,CAAT,KAAe,CAAA,GAAIh0B,IAAI,CAAC4N,GAAL,CAAS7N,QAAT,CAAnB,CAA7B,CAAA;MACAtE,EAAE,CAAC/C,KAAH,CAASwD,SAAT,GAAsB,CAAcsY,YAAAA,EAAAA,CAAE,CAAIC,EAAAA,EAAAA,CAAE,CAAekiB,aAAAA,EAAAA,YAAa,CAAxE,CAAA,CAAA,CAAA;AACD,KAAA;GA1CH,CAAA;;EA6CA,MAAMriB,YAAY,GAAG,MAAM;IACzB,MAAM;MAAE7Y,EAAF;MAAM0P,MAAN;MAAcpL,QAAd;AAAwBuL,MAAAA,QAAAA;AAAxB,KAAA,GAAqCzM,MAA3C,CAAA;IACA+B,eAAe,CACbnF,EADa,EAEb,0IAFa,CAAf,CAGEjE,OAHF,CAGW84B,KAAD,IAAW;AACnBkG,MAAAA,YAAY,CAAClG,KAAD,EAAQvwB,QAAR,CAAZ,CAAA;KAJF,CAAA,CAAA;AAOAoL,IAAAA,MAAM,CAAC3T,OAAP,CAAe,CAACkJ,OAAD,EAAUiO,UAAV,KAAyB;AACtC,MAAA,IAAIsC,aAAa,GAAGvQ,OAAO,CAACX,QAA5B,CAAA;;AACA,MAAA,IAAIlB,MAAM,CAACQ,MAAP,CAAcwO,cAAd,GAA+B,CAA/B,IAAoChP,MAAM,CAACQ,MAAP,CAAc0N,aAAd,KAAgC,MAAxE,EAAgF;AAC9EkE,QAAAA,aAAa,IAAIjR,IAAI,CAACsO,IAAL,CAAUK,UAAU,GAAG,CAAvB,CAA4B5O,GAAAA,QAAQ,IAAIuL,QAAQ,CAAC5T,MAAT,GAAkB,CAAtB,CAArD,CAAA;AACD,OAAA;;AACDuZ,MAAAA,aAAa,GAAGjR,IAAI,CAACE,GAAL,CAASF,IAAI,CAACC,GAAL,CAASgR,aAAT,EAAwB,CAAC,CAAzB,CAAT,EAAsC,CAAtC,CAAhB,CAAA;MACAvQ,OAAO,CACJvI,gBADH,CAEI,0IAFJ,EAIGX,OAJH,CAIY84B,KAAD,IAAW;AAClBkG,QAAAA,YAAY,CAAClG,KAAD,EAAQrf,aAAR,CAAZ,CAAA;OALJ,CAAA,CAAA;KANF,CAAA,CAAA;GATF,CAAA;;AAyBA,EAAA,MAAMd,aAAa,GAAG,UAAC/Q,QAAD,EAAoC;AAAA,IAAA,IAAnCA,QAAmC,KAAA,KAAA,CAAA,EAAA;AAAnCA,MAAAA,QAAmC,GAAxBP,MAAM,CAACQ,MAAP,CAAcC,KAAU,CAAA;AAAA,KAAA;;IACxD,MAAM;AAAE7D,MAAAA,EAAAA;AAAF,KAAA,GAASoD,MAAf,CAAA;IACApD,EAAE,CAACtD,gBAAH,CACE,0IADF,EAEEX,OAFF,CAEWo/B,UAAD,IAAgB;AACxB,MAAA,IAAIC,gBAAgB,GAClB5sB,QAAQ,CAAC2sB,UAAU,CAACvmB,YAAX,CAAwB,+BAAxB,CAAD,EAA2D,EAA3D,CAAR,IAA0EjR,QAD5E,CAAA;AAEA,MAAA,IAAIA,QAAQ,KAAK,CAAjB,EAAoBy3B,gBAAgB,GAAG,CAAnB,CAAA;AACpBD,MAAAA,UAAU,CAACl+B,KAAX,CAAiB0sB,UAAjB,GAA+B,CAAA,EAAEyR,gBAAiB,CAAlD,EAAA,CAAA,CAAA;KANF,CAAA,CAAA;GAFF,CAAA;;EAYAhxB,EAAE,CAAC,YAAD,EAAe,MAAM;IACrB,IAAI,CAAChH,MAAM,CAACQ,MAAP,CAAck3B,QAAd,CAAuBtrB,OAA5B,EAAqC,OAAA;AACrCpM,IAAAA,MAAM,CAACQ,MAAP,CAAcoQ,mBAAd,GAAoC,IAApC,CAAA;AACA5Q,IAAAA,MAAM,CAACujB,cAAP,CAAsB3S,mBAAtB,GAA4C,IAA5C,CAAA;AACD,GAJC,CAAF,CAAA;EAKA5J,EAAE,CAAC,MAAD,EAAS,MAAM;IACf,IAAI,CAAChH,MAAM,CAACQ,MAAP,CAAck3B,QAAd,CAAuBtrB,OAA5B,EAAqC,OAAA;IACrCqJ,YAAY,EAAA,CAAA;AACb,GAHC,CAAF,CAAA;EAIAzO,EAAE,CAAC,cAAD,EAAiB,MAAM;IACvB,IAAI,CAAChH,MAAM,CAACQ,MAAP,CAAck3B,QAAd,CAAuBtrB,OAA5B,EAAqC,OAAA;IACrCqJ,YAAY,EAAA,CAAA;AACb,GAHC,CAAF,CAAA;AAIAzO,EAAAA,EAAE,CAAC,eAAD,EAAkB,CAACixB,OAAD,EAAU13B,QAAV,KAAuB;IACzC,IAAI,CAACP,MAAM,CAACQ,MAAP,CAAck3B,QAAd,CAAuBtrB,OAA5B,EAAqC,OAAA;IACrCkF,aAAa,CAAC/Q,QAAD,CAAb,CAAA;AACD,GAHC,CAAF,CAAA;AAID;;ACpGc,SAAS23B,IAAT,CAAkD,IAAA,EAAA;EAAA,IAApC;IAAEl4B,MAAF;IAAUsI,YAAV;IAAwBtB,EAAxB;AAA4BC,IAAAA,IAAAA;GAAQ,GAAA,IAAA,CAAA;EAC/D,MAAM5K,MAAM,GAAGF,SAAS,EAAxB,CAAA;AACAmM,EAAAA,YAAY,CAAC;AACXyW,IAAAA,IAAI,EAAE;AACJ3S,MAAAA,OAAO,EAAE,KADL;AAEJ+rB,MAAAA,QAAQ,EAAE,CAFN;AAGJzT,MAAAA,QAAQ,EAAE,CAHN;AAIJyN,MAAAA,MAAM,EAAE,IAJJ;AAKJiG,MAAAA,cAAc,EAAE,uBALZ;AAMJC,MAAAA,gBAAgB,EAAE,qBAAA;AANd,KAAA;AADK,GAAD,CAAZ,CAAA;EAWAr4B,MAAM,CAAC+e,IAAP,GAAc;AACZ3S,IAAAA,OAAO,EAAE,KAAA;GADX,CAAA;EAIA,IAAI0rB,YAAY,GAAG,CAAnB,CAAA;EACA,IAAIQ,SAAS,GAAG,KAAhB,CAAA;AACA,EAAA,IAAIC,kBAAJ,CAAA;AACA,EAAA,IAAIC,gBAAJ,CAAA;EACA,MAAMpd,OAAO,GAAG,EAAhB,CAAA;AACA,EAAA,MAAMqd,OAAO,GAAG;AACd52B,IAAAA,OAAO,EAAE7C,SADK;AAEd05B,IAAAA,UAAU,EAAE15B,SAFE;AAGd25B,IAAAA,WAAW,EAAE35B,SAHC;AAId45B,IAAAA,OAAO,EAAE55B,SAJK;AAKd65B,IAAAA,WAAW,EAAE75B,SALC;AAMdm5B,IAAAA,QAAQ,EAAE,CAAA;GANZ,CAAA;AAQA,EAAA,MAAMW,KAAK,GAAG;AACZnd,IAAAA,SAAS,EAAE3c,SADC;AAEZ4c,IAAAA,OAAO,EAAE5c,SAFG;AAGZwd,IAAAA,QAAQ,EAAExd,SAHE;AAIZ0d,IAAAA,QAAQ,EAAE1d,SAJE;AAKZ+5B,IAAAA,IAAI,EAAE/5B,SALM;AAMZg6B,IAAAA,IAAI,EAAEh6B,SANM;AAOZi6B,IAAAA,IAAI,EAAEj6B,SAPM;AAQZk6B,IAAAA,IAAI,EAAEl6B,SARM;AASZ2G,IAAAA,KAAK,EAAE3G,SATK;AAUZ6G,IAAAA,MAAM,EAAE7G,SAVI;AAWZ4d,IAAAA,MAAM,EAAE5d,SAXI;AAYZ6d,IAAAA,MAAM,EAAE7d,SAZI;AAaZm6B,IAAAA,YAAY,EAAE,EAbF;AAcZC,IAAAA,cAAc,EAAE,EAAA;GAdlB,CAAA;AAgBA,EAAA,MAAMlS,QAAQ,GAAG;AACfvR,IAAAA,CAAC,EAAE3W,SADY;AAEf4W,IAAAA,CAAC,EAAE5W,SAFY;AAGfq6B,IAAAA,aAAa,EAAEr6B,SAHA;AAIfs6B,IAAAA,aAAa,EAAEt6B,SAJA;AAKfu6B,IAAAA,QAAQ,EAAEv6B,SAAAA;GALZ,CAAA;EAQA,IAAIm2B,KAAK,GAAG,CAAZ,CAAA;EACA78B,MAAM,CAACkhC,cAAP,CAAsBx5B,MAAM,CAAC+e,IAA7B,EAAmC,OAAnC,EAA4C;AAC1C0a,IAAAA,GAAG,GAAG;AACJ,MAAA,OAAOtE,KAAP,CAAA;KAFwC;;IAI1CuE,GAAG,CAAC9U,KAAD,EAAQ;MACT,IAAIuQ,KAAK,KAAKvQ,KAAd,EAAqB;AACnB,QAAA,MAAMgU,OAAO,GAAGH,OAAO,CAACG,OAAxB,CAAA;AACA,QAAA,MAAM/2B,OAAO,GAAG42B,OAAO,CAAC52B,OAAxB,CAAA;QACAoF,IAAI,CAAC,YAAD,EAAe2d,KAAf,EAAsBgU,OAAtB,EAA+B/2B,OAA/B,CAAJ,CAAA;AACD,OAAA;;AACDszB,MAAAA,KAAK,GAAGvQ,KAAR,CAAA;AACD,KAAA;;GAXH,CAAA,CAAA;;AAcA,EAAA,SAAS+U,yBAAT,GAAqC;AACnC,IAAA,IAAIve,OAAO,CAACviB,MAAR,GAAiB,CAArB,EAAwB,OAAO,CAAP,CAAA;AACxB,IAAA,MAAM+gC,EAAE,GAAGxe,OAAO,CAAC,CAAD,CAAP,CAAWqB,KAAtB,CAAA;AACA,IAAA,MAAMod,EAAE,GAAGze,OAAO,CAAC,CAAD,CAAP,CAAWuB,KAAtB,CAAA;AACA,IAAA,MAAMmd,EAAE,GAAG1e,OAAO,CAAC,CAAD,CAAP,CAAWqB,KAAtB,CAAA;AACA,IAAA,MAAMsd,EAAE,GAAG3e,OAAO,CAAC,CAAD,CAAP,CAAWuB,KAAtB,CAAA;AACA,IAAA,MAAMqd,QAAQ,GAAG74B,IAAI,CAACyd,IAAL,CAAU,CAACkb,EAAE,GAAGF,EAAN,KAAa,CAAb,GAAiB,CAACG,EAAE,GAAGF,EAAN,KAAa,CAAxC,CAAjB,CAAA;AACA,IAAA,OAAOG,QAAP,CAAA;AACD,GAAA;;AAED,EAAA,SAASC,gBAAT,GAA4B;AAC1B,IAAA,OAAOj6B,MAAM,CAACqZ,SAAP,GAAoB,CAApB,YAAA,CAAA,GAAqC,CAAGrZ,CAAAA,EAAAA,MAAM,CAACQ,MAAP,CAAc+L,UAAW,CAAxE,CAAA,CAAA;AACD,GAAA;;EAED,SAAS2tB,gBAAT,CAA0B19B,CAA1B,EAA6B;IAC3B,MAAM4c,aAAa,GAAG6gB,gBAAgB,EAAtC,CAAA;IACA,IAAIz9B,CAAC,CAAChE,MAAF,CAAS0J,OAAT,CAAiBkX,aAAjB,CAAJ,EAAqC,OAAO,IAAP,CAAA;IACrC,IAAIpZ,MAAM,CAACsM,MAAP,CAAcpN,MAAd,CAAsB2C,OAAD,IAAaA,OAAO,CAACoP,QAAR,CAAiBzU,CAAC,CAAChE,MAAnB,CAAlC,CAAA,CAA8DK,MAA9D,GAAuE,CAA3E,EAA8E,OAAO,IAAP,CAAA;AAC9E,IAAA,OAAO,KAAP,CAAA;AACD,GAAA;;EAED,SAASshC,wBAAT,CAAkC39B,CAAlC,EAAqC;IACnC,MAAMyF,QAAQ,GAAI,CAAA,CAAA,EAAGjC,MAAM,CAACQ,MAAP,CAAcue,IAAd,CAAmBqZ,cAAe,CAAvD,CAAA,CAAA;IACA,IAAI57B,CAAC,CAAChE,MAAF,CAAS0J,OAAT,CAAiBD,QAAjB,CAAJ,EAAgC,OAAO,IAAP,CAAA;AAChC,IAAA,IACE,CAAC,GAAGjC,MAAM,CAACpD,EAAP,CAAUtD,gBAAV,CAA2B2I,QAA3B,CAAJ,CAA0C/C,CAAAA,MAA1C,CAAkDmlB,WAAD,IAC/CA,WAAW,CAACpT,QAAZ,CAAqBzU,CAAC,CAAChE,MAAvB,CADF,CAAA,CAEEK,MAFF,GAEW,CAHb,EAKE,OAAO,IAAP,CAAA;AACF,IAAA,OAAO,KAAP,CAAA;AACD,GApG8D;;;EAuG/D,SAASuhC,cAAT,CAAwB59B,CAAxB,EAA2B;AACzB,IAAA,IAAI,CAAC09B,gBAAgB,CAAC19B,CAAD,CAArB,EAA0B,OAAA;AAC1B,IAAA,MAAMgE,MAAM,GAAGR,MAAM,CAACQ,MAAP,CAAcue,IAA7B,CAAA;AACAwZ,IAAAA,kBAAkB,GAAG,KAArB,CAAA;AACAC,IAAAA,gBAAgB,GAAG,KAAnB,CAAA;IACApd,OAAO,CAAC5X,IAAR,CAAahH,CAAb,CAAA,CAAA;;AACA,IAAA,IAAI4e,OAAO,CAACviB,MAAR,GAAiB,CAArB,EAAwB;AACtB,MAAA,OAAA;AACD,KAAA;;AACD0/B,IAAAA,kBAAkB,GAAG,IAArB,CAAA;AACAE,IAAAA,OAAO,CAAC4B,UAAR,GAAqBV,yBAAyB,EAA9C,CAAA;;AACA,IAAA,IAAI,CAAClB,OAAO,CAAC52B,OAAb,EAAsB;AACpB42B,MAAAA,OAAO,CAAC52B,OAAR,GAAkBrF,CAAC,CAAChE,MAAF,CAASyc,OAAT,CAAkB,CAAA,CAAA,EAAGjV,MAAM,CAACQ,MAAP,CAAc+L,UAAW,gBAA9C,CAAlB,CAAA;AACA,MAAA,IAAI,CAACksB,OAAO,CAAC52B,OAAb,EAAsB42B,OAAO,CAAC52B,OAAR,GAAkB7B,MAAM,CAACsM,MAAP,CAActM,MAAM,CAAC0R,WAArB,CAAlB,CAAA;AAEtB,MAAA,IAAIknB,OAAO,GAAGH,OAAO,CAAC52B,OAAR,CAAgBxI,aAAhB,CAA+B,CAAGmH,CAAAA,EAAAA,MAAM,CAAC43B,cAAe,EAAxD,CAAd,CAAA;;AACA,MAAA,IAAIQ,OAAJ,EAAa;QACXA,OAAO,GAAGA,OAAO,CAACt/B,gBAAR,CAAyB,gDAAzB,CAAA,CAA2E,CAA3E,CAAV,CAAA;AACD,OAAA;;MACDm/B,OAAO,CAACG,OAAR,GAAkBA,OAAlB,CAAA;;AACA,MAAA,IAAIA,OAAJ,EAAa;AACXH,QAAAA,OAAO,CAACI,WAAR,GAAsB30B,cAAc,CAACu0B,OAAO,CAACG,OAAT,EAAmB,CAAA,CAAA,EAAGp4B,MAAM,CAAC43B,cAAe,EAA5C,CAAd,CAA6D,CAA7D,CAAtB,CAAA;AACD,OAFD,MAEO;QACLK,OAAO,CAACI,WAAR,GAAsB75B,SAAtB,CAAA;AACD,OAAA;;AAED,MAAA,IAAI,CAACy5B,OAAO,CAACI,WAAb,EAA0B;QACxBJ,OAAO,CAACG,OAAR,GAAkB55B,SAAlB,CAAA;AACA,QAAA,OAAA;AACD,OAAA;;AAEDy5B,MAAAA,OAAO,CAACN,QAAR,GAAmBM,OAAO,CAACI,WAAR,CAAoBrnB,YAApB,CAAiC,kBAAjC,CAAwDhR,IAAAA,MAAM,CAAC23B,QAAlF,CAAA;AACD,KAAA;;IACD,IAAIM,OAAO,CAACG,OAAZ,EAAqB;AACnBH,MAAAA,OAAO,CAACG,OAAR,CAAgB/+B,KAAhB,CAAsB8c,kBAAtB,GAA2C,KAA3C,CAAA;AACD,KAAA;;AACD2hB,IAAAA,SAAS,GAAG,IAAZ,CAAA;AACD,GAAA;;EACD,SAASgC,eAAT,CAAyB99B,CAAzB,EAA4B;AAC1B,IAAA,IAAI,CAAC09B,gBAAgB,CAAC19B,CAAD,CAArB,EAA0B,OAAA;AAC1B,IAAA,MAAMgE,MAAM,GAAGR,MAAM,CAACQ,MAAP,CAAcue,IAA7B,CAAA;AACA,IAAA,MAAMA,IAAI,GAAG/e,MAAM,CAAC+e,IAApB,CAAA;AACA,IAAA,MAAMb,YAAY,GAAG9C,OAAO,CAAC+C,SAAR,CAAmBC,QAAD,IAAcA,QAAQ,CAACC,SAAT,KAAuB7hB,CAAC,CAAC6hB,SAAzD,CAArB,CAAA;IACA,IAAIH,YAAY,IAAI,CAApB,EAAuB9C,OAAO,CAAC8C,YAAD,CAAP,GAAwB1hB,CAAxB,CAAA;;AAEvB,IAAA,IAAI4e,OAAO,CAACviB,MAAR,GAAiB,CAArB,EAAwB;AACtB,MAAA,OAAA;AACD,KAAA;;AACD2/B,IAAAA,gBAAgB,GAAG,IAAnB,CAAA;AACAC,IAAAA,OAAO,CAAC8B,SAAR,GAAoBZ,yBAAyB,EAA7C,CAAA;;AAEA,IAAA,IAAI,CAAClB,OAAO,CAACG,OAAb,EAAsB;AACpB,MAAA,OAAA;AACD,KAAA;;IAED7Z,IAAI,CAACoW,KAAL,GAAcsD,OAAO,CAAC8B,SAAR,GAAoB9B,OAAO,CAAC4B,UAA7B,GAA2CvC,YAAxD,CAAA;;AACA,IAAA,IAAI/Y,IAAI,CAACoW,KAAL,GAAasD,OAAO,CAACN,QAAzB,EAAmC;MACjCpZ,IAAI,CAACoW,KAAL,GAAasD,OAAO,CAACN,QAAR,GAAmB,CAAnB,GAAuB,CAACpZ,IAAI,CAACoW,KAAL,GAAasD,OAAO,CAACN,QAArB,GAAgC,CAAjC,KAAuC,GAA3E,CAAA;AACD,KAAA;;AACD,IAAA,IAAIpZ,IAAI,CAACoW,KAAL,GAAa30B,MAAM,CAACkkB,QAAxB,EAAkC;MAChC3F,IAAI,CAACoW,KAAL,GAAa30B,MAAM,CAACkkB,QAAP,GAAkB,CAAlB,GAAsB,CAAClkB,MAAM,CAACkkB,QAAP,GAAkB3F,IAAI,CAACoW,KAAvB,GAA+B,CAAhC,KAAsC,GAAzE,CAAA;AACD,KAAA;;IAEDsD,OAAO,CAACG,OAAR,CAAgB/+B,KAAhB,CAAsBwD,SAAtB,GAAmC,CAA2B0hB,yBAAAA,EAAAA,IAAI,CAACoW,KAAM,CAAzE,CAAA,CAAA,CAAA;AACD,GAAA;;EACD,SAASqF,YAAT,CAAsBh+B,CAAtB,EAAyB;AACvB,IAAA,IAAI,CAAC09B,gBAAgB,CAAC19B,CAAD,CAArB,EAA0B,OAAA;AAC1B,IAAA,MAAMgE,MAAM,GAAGR,MAAM,CAACQ,MAAP,CAAcue,IAA7B,CAAA;AACA,IAAA,MAAMA,IAAI,GAAG/e,MAAM,CAAC+e,IAApB,CAAA;AACA,IAAA,MAAMb,YAAY,GAAG9C,OAAO,CAAC+C,SAAR,CAAmBC,QAAD,IAAcA,QAAQ,CAACC,SAAT,KAAuB7hB,CAAC,CAAC6hB,SAAzD,CAArB,CAAA;IACA,IAAIH,YAAY,IAAI,CAApB,EAAuB9C,OAAO,CAAC5R,MAAR,CAAe0U,YAAf,EAA6B,CAA7B,CAAA,CAAA;;AACvB,IAAA,IAAI,CAACqa,kBAAD,IAAuB,CAACC,gBAA5B,EAA8C;AAC5C,MAAA,OAAA;AACD,KAAA;;AACDD,IAAAA,kBAAkB,GAAG,KAArB,CAAA;AACAC,IAAAA,gBAAgB,GAAG,KAAnB,CAAA;AACA,IAAA,IAAI,CAACC,OAAO,CAACgC,MAAb,EAAqB,OAAA;IACrB1b,IAAI,CAACoW,KAAL,GAAah0B,IAAI,CAACC,GAAL,CAASD,IAAI,CAACE,GAAL,CAAS0d,IAAI,CAACoW,KAAd,EAAqBsD,OAAO,CAACN,QAA7B,CAAT,EAAiD33B,MAAM,CAACkkB,QAAxD,CAAb,CAAA;AACA+T,IAAAA,OAAO,CAACG,OAAR,CAAgB/+B,KAAhB,CAAsB8c,kBAAtB,GAA4C,CAAA,EAAE3W,MAAM,CAACQ,MAAP,CAAcC,KAAM,CAAlE,EAAA,CAAA,CAAA;IACAg4B,OAAO,CAACG,OAAR,CAAgB/+B,KAAhB,CAAsBwD,SAAtB,GAAmC,CAA2B0hB,yBAAAA,EAAAA,IAAI,CAACoW,KAAM,CAAzE,CAAA,CAAA,CAAA;IACA2C,YAAY,GAAG/Y,IAAI,CAACoW,KAApB,CAAA;AACAmD,IAAAA,SAAS,GAAG,KAAZ,CAAA;IACA,IAAIvZ,IAAI,CAACoW,KAAL,KAAe,CAAnB,EAAsBsD,OAAO,CAAC52B,OAAR,GAAkB7C,SAAlB,CAAA;AACvB,GAAA;;EACD,SAASkc,YAAT,CAAsB1e,CAAtB,EAAyB;AACvB,IAAA,MAAM+I,MAAM,GAAGvF,MAAM,CAACuF,MAAtB,CAAA;AACA,IAAA,IAAI,CAACkzB,OAAO,CAACG,OAAb,EAAsB,OAAA;IACtB,IAAIE,KAAK,CAACnd,SAAV,EAAqB,OAAA;IACrB,IAAIpW,MAAM,CAACE,OAAP,IAAkBjJ,CAAC,CAACwiB,UAAxB,EAAoCxiB,CAAC,CAAC2gB,cAAF,EAAA,CAAA;IACpC2b,KAAK,CAACnd,SAAN,GAAkB,IAAlB,CAAA;AACAmd,IAAAA,KAAK,CAACK,YAAN,CAAmBxjB,CAAnB,GAAuBnZ,CAAC,CAACigB,KAAzB,CAAA;AACAqc,IAAAA,KAAK,CAACK,YAAN,CAAmBvjB,CAAnB,GAAuBpZ,CAAC,CAACmgB,KAAzB,CAAA;AACD,GAAA;;EACD,SAASsB,WAAT,CAAqBzhB,CAArB,EAAwB;IACtB,IAAI,CAAC09B,gBAAgB,CAAC19B,CAAD,CAAjB,IAAwB,CAAC29B,wBAAwB,CAAC39B,CAAD,CAArD,EAA0D,OAAA;AAC1D,IAAA,MAAMuiB,IAAI,GAAG/e,MAAM,CAAC+e,IAApB,CAAA;AACA,IAAA,IAAI,CAAC0Z,OAAO,CAACG,OAAb,EAAsB,OAAA;IACtB54B,MAAM,CAACsc,UAAP,GAAoB,KAApB,CAAA;IACA,IAAI,CAACwc,KAAK,CAACnd,SAAP,IAAoB,CAAC8c,OAAO,CAAC52B,OAAjC,EAA0C,OAAA;;AAE1C,IAAA,IAAI,CAACi3B,KAAK,CAACld,OAAX,EAAoB;AAClBkd,MAAAA,KAAK,CAACnzB,KAAN,GAAc8yB,OAAO,CAACG,OAAR,CAAgBj0B,WAA9B,CAAA;AACAm0B,MAAAA,KAAK,CAACjzB,MAAN,GAAe4yB,OAAO,CAACG,OAAR,CAAgBjnB,YAA/B,CAAA;AACAmnB,MAAAA,KAAK,CAAClc,MAAN,GAAe9f,YAAY,CAAC27B,OAAO,CAACI,WAAT,EAAsB,GAAtB,CAAZ,IAA0C,CAAzD,CAAA;AACAC,MAAAA,KAAK,CAACjc,MAAN,GAAe/f,YAAY,CAAC27B,OAAO,CAACI,WAAT,EAAsB,GAAtB,CAAZ,IAA0C,CAAzD,CAAA;AACAJ,MAAAA,OAAO,CAACC,UAAR,GAAqBD,OAAO,CAAC52B,OAAR,CAAgB8C,WAArC,CAAA;AACA8zB,MAAAA,OAAO,CAACE,WAAR,GAAsBF,OAAO,CAAC52B,OAAR,CAAgB8P,YAAtC,CAAA;AACA8mB,MAAAA,OAAO,CAACI,WAAR,CAAoBh/B,KAApB,CAA0B8c,kBAA1B,GAA+C,KAA/C,CAAA;AACD,KAfqB;;;IAiBtB,MAAM+jB,WAAW,GAAG5B,KAAK,CAACnzB,KAAN,GAAcoZ,IAAI,CAACoW,KAAvC,CAAA;IACA,MAAMwF,YAAY,GAAG7B,KAAK,CAACjzB,MAAN,GAAekZ,IAAI,CAACoW,KAAzC,CAAA;IAEA,IAAIuF,WAAW,GAAGjC,OAAO,CAACC,UAAtB,IAAoCiC,YAAY,GAAGlC,OAAO,CAACE,WAA/D,EAA4E,OAAA;AAE5EG,IAAAA,KAAK,CAACC,IAAN,GAAa53B,IAAI,CAACE,GAAL,CAASo3B,OAAO,CAACC,UAAR,GAAqB,CAArB,GAAyBgC,WAAW,GAAG,CAAhD,EAAmD,CAAnD,CAAb,CAAA;AACA5B,IAAAA,KAAK,CAACG,IAAN,GAAa,CAACH,KAAK,CAACC,IAApB,CAAA;AACAD,IAAAA,KAAK,CAACE,IAAN,GAAa73B,IAAI,CAACE,GAAL,CAASo3B,OAAO,CAACE,WAAR,GAAsB,CAAtB,GAA0BgC,YAAY,GAAG,CAAlD,EAAqD,CAArD,CAAb,CAAA;AACA7B,IAAAA,KAAK,CAACI,IAAN,GAAa,CAACJ,KAAK,CAACE,IAApB,CAAA;IAEAF,KAAK,CAACM,cAAN,CAAqBzjB,CAArB,GAAyByF,OAAO,CAACviB,MAAR,GAAiB,CAAjB,GAAqBuiB,OAAO,CAAC,CAAD,CAAP,CAAWqB,KAAhC,GAAwCjgB,CAAC,CAACigB,KAAnE,CAAA;IACAqc,KAAK,CAACM,cAAN,CAAqBxjB,CAArB,GAAyBwF,OAAO,CAACviB,MAAR,GAAiB,CAAjB,GAAqBuiB,OAAO,CAAC,CAAD,CAAP,CAAWuB,KAAhC,GAAwCngB,CAAC,CAACmgB,KAAnE,CAAA;;AAEA,IAAA,IAAI,CAACmc,KAAK,CAACld,OAAP,IAAkB,CAAC0c,SAAvB,EAAkC;AAChC,MAAA,IACEt4B,MAAM,CAACkL,YAAP,EAAA,KACE/J,IAAI,CAAC0N,KAAL,CAAWiqB,KAAK,CAACC,IAAjB,CAAA,KAA2B53B,IAAI,CAAC0N,KAAL,CAAWiqB,KAAK,CAAClc,MAAjB,CAA3B,IACAkc,KAAK,CAACM,cAAN,CAAqBzjB,CAArB,GAAyBmjB,KAAK,CAACK,YAAN,CAAmBxjB,CAD7C,IAEExU,IAAI,CAAC0N,KAAL,CAAWiqB,KAAK,CAACG,IAAjB,CAAA,KAA2B93B,IAAI,CAAC0N,KAAL,CAAWiqB,KAAK,CAAClc,MAAjB,CAA3B,IACCkc,KAAK,CAACM,cAAN,CAAqBzjB,CAArB,GAAyBmjB,KAAK,CAACK,YAAN,CAAmBxjB,CAJhD,CADF,EAME;QACAmjB,KAAK,CAACnd,SAAN,GAAkB,KAAlB,CAAA;AACA,QAAA,OAAA;AACD,OAAA;;AACD,MAAA,IACE,CAAC3b,MAAM,CAACkL,YAAP,EAAD,KACE/J,IAAI,CAAC0N,KAAL,CAAWiqB,KAAK,CAACE,IAAjB,CAA2B73B,KAAAA,IAAI,CAAC0N,KAAL,CAAWiqB,KAAK,CAACjc,MAAjB,CAA3B,IACAic,KAAK,CAACM,cAAN,CAAqBxjB,CAArB,GAAyBkjB,KAAK,CAACK,YAAN,CAAmBvjB,CAD7C,IAEEzU,IAAI,CAAC0N,KAAL,CAAWiqB,KAAK,CAACI,IAAjB,CAA2B/3B,KAAAA,IAAI,CAAC0N,KAAL,CAAWiqB,KAAK,CAACjc,MAAjB,CAA3B,IACCic,KAAK,CAACM,cAAN,CAAqBxjB,CAArB,GAAyBkjB,KAAK,CAACK,YAAN,CAAmBvjB,CAJhD,CADF,EAME;QACAkjB,KAAK,CAACnd,SAAN,GAAkB,KAAlB,CAAA;AACA,QAAA,OAAA;AACD,OAAA;AACF,KAAA;;IACD,IAAInf,CAAC,CAACwiB,UAAN,EAAkB;AAChBxiB,MAAAA,CAAC,CAAC2gB,cAAF,EAAA,CAAA;AACD,KAAA;;AACD3gB,IAAAA,CAAC,CAAC2iB,eAAF,EAAA,CAAA;IAEA2Z,KAAK,CAACld,OAAN,GAAgB,IAAhB,CAAA;AACAkd,IAAAA,KAAK,CAACtc,QAAN,GAAiBsc,KAAK,CAACM,cAAN,CAAqBzjB,CAArB,GAAyBmjB,KAAK,CAACK,YAAN,CAAmBxjB,CAA5C,GAAgDmjB,KAAK,CAAClc,MAAvE,CAAA;AACAkc,IAAAA,KAAK,CAACpc,QAAN,GAAiBoc,KAAK,CAACM,cAAN,CAAqBxjB,CAArB,GAAyBkjB,KAAK,CAACK,YAAN,CAAmBvjB,CAA5C,GAAgDkjB,KAAK,CAACjc,MAAvE,CAAA;;AAEA,IAAA,IAAIic,KAAK,CAACtc,QAAN,GAAiBsc,KAAK,CAACC,IAA3B,EAAiC;MAC/BD,KAAK,CAACtc,QAAN,GAAiBsc,KAAK,CAACC,IAAN,GAAa,CAAb,GAAiB,CAACD,KAAK,CAACC,IAAN,GAAaD,KAAK,CAACtc,QAAnB,GAA8B,CAA/B,KAAqC,GAAvE,CAAA;AACD,KAAA;;AACD,IAAA,IAAIsc,KAAK,CAACtc,QAAN,GAAiBsc,KAAK,CAACG,IAA3B,EAAiC;MAC/BH,KAAK,CAACtc,QAAN,GAAiBsc,KAAK,CAACG,IAAN,GAAa,CAAb,GAAiB,CAACH,KAAK,CAACtc,QAAN,GAAiBsc,KAAK,CAACG,IAAvB,GAA8B,CAA/B,KAAqC,GAAvE,CAAA;AACD,KAAA;;AAED,IAAA,IAAIH,KAAK,CAACpc,QAAN,GAAiBoc,KAAK,CAACE,IAA3B,EAAiC;MAC/BF,KAAK,CAACpc,QAAN,GAAiBoc,KAAK,CAACE,IAAN,GAAa,CAAb,GAAiB,CAACF,KAAK,CAACE,IAAN,GAAaF,KAAK,CAACpc,QAAnB,GAA8B,CAA/B,KAAqC,GAAvE,CAAA;AACD,KAAA;;AACD,IAAA,IAAIoc,KAAK,CAACpc,QAAN,GAAiBoc,KAAK,CAACI,IAA3B,EAAiC;MAC/BJ,KAAK,CAACpc,QAAN,GAAiBoc,KAAK,CAACI,IAAN,GAAa,CAAb,GAAiB,CAACJ,KAAK,CAACpc,QAAN,GAAiBoc,KAAK,CAACI,IAAvB,GAA8B,CAA/B,KAAqC,GAAvE,CAAA;AACD,KAzEqB;;;AA4EtB,IAAA,IAAI,CAAChS,QAAQ,CAACmS,aAAd,EAA6BnS,QAAQ,CAACmS,aAAT,GAAyBP,KAAK,CAACM,cAAN,CAAqBzjB,CAA9C,CAAA;AAC7B,IAAA,IAAI,CAACuR,QAAQ,CAACoS,aAAd,EAA6BpS,QAAQ,CAACoS,aAAT,GAAyBR,KAAK,CAACM,cAAN,CAAqBxjB,CAA9C,CAAA;AAC7B,IAAA,IAAI,CAACsR,QAAQ,CAACqS,QAAd,EAAwBrS,QAAQ,CAACqS,QAAT,GAAoB79B,IAAI,CAACiB,GAAL,EAApB,CAAA;IACxBuqB,QAAQ,CAACvR,CAAT,GACE,CAACmjB,KAAK,CAACM,cAAN,CAAqBzjB,CAArB,GAAyBuR,QAAQ,CAACmS,aAAnC,KAAqD39B,IAAI,CAACiB,GAAL,KAAauqB,QAAQ,CAACqS,QAA3E,CAAA,GAAuF,CADzF,CAAA;IAEArS,QAAQ,CAACtR,CAAT,GACE,CAACkjB,KAAK,CAACM,cAAN,CAAqBxjB,CAArB,GAAyBsR,QAAQ,CAACoS,aAAnC,KAAqD59B,IAAI,CAACiB,GAAL,KAAauqB,QAAQ,CAACqS,QAA3E,CAAA,GAAuF,CADzF,CAAA;IAEA,IAAIp4B,IAAI,CAAC4N,GAAL,CAAS+pB,KAAK,CAACM,cAAN,CAAqBzjB,CAArB,GAAyBuR,QAAQ,CAACmS,aAA3C,IAA4D,CAAhE,EAAmEnS,QAAQ,CAACvR,CAAT,GAAa,CAAb,CAAA;IACnE,IAAIxU,IAAI,CAAC4N,GAAL,CAAS+pB,KAAK,CAACM,cAAN,CAAqBxjB,CAArB,GAAyBsR,QAAQ,CAACoS,aAA3C,IAA4D,CAAhE,EAAmEpS,QAAQ,CAACtR,CAAT,GAAa,CAAb,CAAA;AACnEsR,IAAAA,QAAQ,CAACmS,aAAT,GAAyBP,KAAK,CAACM,cAAN,CAAqBzjB,CAA9C,CAAA;AACAuR,IAAAA,QAAQ,CAACoS,aAAT,GAAyBR,KAAK,CAACM,cAAN,CAAqBxjB,CAA9C,CAAA;AACAsR,IAAAA,QAAQ,CAACqS,QAAT,GAAoB79B,IAAI,CAACiB,GAAL,EAApB,CAAA;AAEA87B,IAAAA,OAAO,CAACI,WAAR,CAAoBh/B,KAApB,CAA0BwD,SAA1B,GAAuC,CAAcy7B,YAAAA,EAAAA,KAAK,CAACtc,QAAS,CAAA,IAAA,EAAMsc,KAAK,CAACpc,QAAS,CAAzF,KAAA,CAAA,CAAA;AACD,GAAA;;AACD,EAAA,SAASuD,UAAT,GAAsB;AACpB,IAAA,MAAMlB,IAAI,GAAG/e,MAAM,CAAC+e,IAApB,CAAA;AACA,IAAA,IAAI,CAAC0Z,OAAO,CAACG,OAAb,EAAsB,OAAA;;IACtB,IAAI,CAACE,KAAK,CAACnd,SAAP,IAAoB,CAACmd,KAAK,CAACld,OAA/B,EAAwC;MACtCkd,KAAK,CAACnd,SAAN,GAAkB,KAAlB,CAAA;MACAmd,KAAK,CAACld,OAAN,GAAgB,KAAhB,CAAA;AACA,MAAA,OAAA;AACD,KAAA;;IACDkd,KAAK,CAACnd,SAAN,GAAkB,KAAlB,CAAA;IACAmd,KAAK,CAACld,OAAN,GAAgB,KAAhB,CAAA;IACA,IAAIgf,iBAAiB,GAAG,GAAxB,CAAA;IACA,IAAIC,iBAAiB,GAAG,GAAxB,CAAA;AACA,IAAA,MAAMC,iBAAiB,GAAG5T,QAAQ,CAACvR,CAAT,GAAailB,iBAAvC,CAAA;AACA,IAAA,MAAMG,YAAY,GAAGjC,KAAK,CAACtc,QAAN,GAAiBse,iBAAtC,CAAA;AACA,IAAA,MAAME,iBAAiB,GAAG9T,QAAQ,CAACtR,CAAT,GAAailB,iBAAvC,CAAA;IACA,MAAMI,YAAY,GAAGnC,KAAK,CAACpc,QAAN,GAAiBse,iBAAtC,CAfoB;;IAkBpB,IAAI9T,QAAQ,CAACvR,CAAT,KAAe,CAAnB,EACEilB,iBAAiB,GAAGz5B,IAAI,CAAC4N,GAAL,CAAS,CAACgsB,YAAY,GAAGjC,KAAK,CAACtc,QAAtB,IAAkC0K,QAAQ,CAACvR,CAApD,CAApB,CAAA;IACF,IAAIuR,QAAQ,CAACtR,CAAT,KAAe,CAAnB,EACEilB,iBAAiB,GAAG15B,IAAI,CAAC4N,GAAL,CAAS,CAACksB,YAAY,GAAGnC,KAAK,CAACpc,QAAtB,IAAkCwK,QAAQ,CAACtR,CAApD,CAApB,CAAA;IACF,MAAMslB,gBAAgB,GAAG/5B,IAAI,CAACC,GAAL,CAASw5B,iBAAT,EAA4BC,iBAA5B,CAAzB,CAAA;IAEA/B,KAAK,CAACtc,QAAN,GAAiBue,YAAjB,CAAA;AACAjC,IAAAA,KAAK,CAACpc,QAAN,GAAiBue,YAAjB,CAzBoB;;IA4BpB,MAAMP,WAAW,GAAG5B,KAAK,CAACnzB,KAAN,GAAcoZ,IAAI,CAACoW,KAAvC,CAAA;IACA,MAAMwF,YAAY,GAAG7B,KAAK,CAACjzB,MAAN,GAAekZ,IAAI,CAACoW,KAAzC,CAAA;AACA2D,IAAAA,KAAK,CAACC,IAAN,GAAa53B,IAAI,CAACE,GAAL,CAASo3B,OAAO,CAACC,UAAR,GAAqB,CAArB,GAAyBgC,WAAW,GAAG,CAAhD,EAAmD,CAAnD,CAAb,CAAA;AACA5B,IAAAA,KAAK,CAACG,IAAN,GAAa,CAACH,KAAK,CAACC,IAApB,CAAA;AACAD,IAAAA,KAAK,CAACE,IAAN,GAAa73B,IAAI,CAACE,GAAL,CAASo3B,OAAO,CAACE,WAAR,GAAsB,CAAtB,GAA0BgC,YAAY,GAAG,CAAlD,EAAqD,CAArD,CAAb,CAAA;AACA7B,IAAAA,KAAK,CAACI,IAAN,GAAa,CAACJ,KAAK,CAACE,IAApB,CAAA;IACAF,KAAK,CAACtc,QAAN,GAAiBrb,IAAI,CAACC,GAAL,CAASD,IAAI,CAACE,GAAL,CAASy3B,KAAK,CAACtc,QAAf,EAAyBsc,KAAK,CAACG,IAA/B,CAAT,EAA+CH,KAAK,CAACC,IAArD,CAAjB,CAAA;IACAD,KAAK,CAACpc,QAAN,GAAiBvb,IAAI,CAACC,GAAL,CAASD,IAAI,CAACE,GAAL,CAASy3B,KAAK,CAACpc,QAAf,EAAyBoc,KAAK,CAACI,IAA/B,CAAT,EAA+CJ,KAAK,CAACE,IAArD,CAAjB,CAAA;IAEAP,OAAO,CAACI,WAAR,CAAoBh/B,KAApB,CAA0B8c,kBAA1B,GAAgD,CAAEukB,EAAAA,gBAAiB,CAAnE,EAAA,CAAA,CAAA;AACAzC,IAAAA,OAAO,CAACI,WAAR,CAAoBh/B,KAApB,CAA0BwD,SAA1B,GAAuC,CAAcy7B,YAAAA,EAAAA,KAAK,CAACtc,QAAS,CAAA,IAAA,EAAMsc,KAAK,CAACpc,QAAS,CAAzF,KAAA,CAAA,CAAA;AACD,GAAA;;AACD,EAAA,SAASye,eAAT,GAA2B;AACzB,IAAA,MAAMpc,IAAI,GAAG/e,MAAM,CAAC+e,IAApB,CAAA;;IACA,IAAI0Z,OAAO,CAAC52B,OAAR,IAAmB7B,MAAM,CAACwU,aAAP,KAAyBxU,MAAM,CAAC0R,WAAvD,EAAoE;MAClE,IAAI+mB,OAAO,CAACG,OAAZ,EAAqB;AACnBH,QAAAA,OAAO,CAACG,OAAR,CAAgB/+B,KAAhB,CAAsBwD,SAAtB,GAAkC,6BAAlC,CAAA;AACD,OAAA;;MACD,IAAIo7B,OAAO,CAACI,WAAZ,EAAyB;AACvBJ,QAAAA,OAAO,CAACI,WAAR,CAAoBh/B,KAApB,CAA0BwD,SAA1B,GAAsC,oBAAtC,CAAA;AACD,OAAA;;MAED0hB,IAAI,CAACoW,KAAL,GAAa,CAAb,CAAA;AACA2C,MAAAA,YAAY,GAAG,CAAf,CAAA;MAEAW,OAAO,CAAC52B,OAAR,GAAkB7C,SAAlB,CAAA;MACAy5B,OAAO,CAACG,OAAR,GAAkB55B,SAAlB,CAAA;MACAy5B,OAAO,CAACI,WAAR,GAAsB75B,SAAtB,CAAA;AACD,KAAA;AACF,GAAA;;EAED,SAASo8B,MAAT,CAAgB5+B,CAAhB,EAAmB;AACjB,IAAA,MAAMuiB,IAAI,GAAG/e,MAAM,CAAC+e,IAApB,CAAA;AACA,IAAA,MAAMve,MAAM,GAAGR,MAAM,CAACQ,MAAP,CAAcue,IAA7B,CAAA;;AAEA,IAAA,IAAI,CAAC0Z,OAAO,CAAC52B,OAAb,EAAsB;AACpB,MAAA,IAAIrF,CAAC,IAAIA,CAAC,CAAChE,MAAX,EAAmB;AACjBigC,QAAAA,OAAO,CAAC52B,OAAR,GAAkBrF,CAAC,CAAChE,MAAF,CAASyc,OAAT,CAAkB,CAAA,CAAA,EAAGjV,MAAM,CAACQ,MAAP,CAAc+L,UAAW,gBAA9C,CAAlB,CAAA;AACD,OAAA;;AACD,MAAA,IAAI,CAACksB,OAAO,CAAC52B,OAAb,EAAsB;AACpB,QAAA,IAAI7B,MAAM,CAACQ,MAAP,CAAc2L,OAAd,IAAyBnM,MAAM,CAACQ,MAAP,CAAc2L,OAAd,CAAsBC,OAA/C,IAA0DpM,MAAM,CAACmM,OAArE,EAA8E;AAC5EssB,UAAAA,OAAO,CAAC52B,OAAR,GAAkBE,eAAe,CAC/B/B,MAAM,CAAC6L,QADwB,EAE9B,IAAG7L,MAAM,CAACQ,MAAP,CAAcqT,gBAAiB,EAFJ,CAAf,CAGhB,CAHgB,CAAlB,CAAA;AAID,SALD,MAKO;UACL4kB,OAAO,CAAC52B,OAAR,GAAkB7B,MAAM,CAACsM,MAAP,CAActM,MAAM,CAAC0R,WAArB,CAAlB,CAAA;AACD,SAAA;AACF,OAAA;;AACD,MAAA,IAAIknB,OAAO,GAAGH,OAAO,CAAC52B,OAAR,CAAgBxI,aAAhB,CAA+B,CAAGmH,CAAAA,EAAAA,MAAM,CAAC43B,cAAe,EAAxD,CAAd,CAAA;;AACA,MAAA,IAAIQ,OAAJ,EAAa;QACXA,OAAO,GAAGA,OAAO,CAACt/B,gBAAR,CAAyB,gDAAzB,CAAA,CAA2E,CAA3E,CAAV,CAAA;AACD,OAAA;;MACDm/B,OAAO,CAACG,OAAR,GAAkBA,OAAlB,CAAA;;AACA,MAAA,IAAIA,OAAJ,EAAa;AACXH,QAAAA,OAAO,CAACI,WAAR,GAAsB30B,cAAc,CAACu0B,OAAO,CAACG,OAAT,EAAmB,CAAA,CAAA,EAAGp4B,MAAM,CAAC43B,cAAe,EAA5C,CAAd,CAA6D,CAA7D,CAAtB,CAAA;AACD,OAFD,MAEO;QACLK,OAAO,CAACI,WAAR,GAAsB75B,SAAtB,CAAA;AACD,OAAA;AACF,KAAA;;IACD,IAAI,CAACy5B,OAAO,CAACG,OAAT,IAAoB,CAACH,OAAO,CAACI,WAAjC,EAA8C,OAAA;;AAC9C,IAAA,IAAI74B,MAAM,CAACQ,MAAP,CAAcmN,OAAlB,EAA2B;AACzB3N,MAAAA,MAAM,CAACU,SAAP,CAAiB7G,KAAjB,CAAuB8H,QAAvB,GAAkC,QAAlC,CAAA;AACA3B,MAAAA,MAAM,CAACU,SAAP,CAAiB7G,KAAjB,CAAuBwhC,WAAvB,GAAqC,MAArC,CAAA;AACD,KAAA;;IAED5C,OAAO,CAAC52B,OAAR,CAAgBQ,SAAhB,CAA0BC,GAA1B,CAA+B,CAAE9B,EAAAA,MAAM,CAAC63B,gBAAiB,CAAzD,CAAA,CAAA,CAAA;AAEA,IAAA,IAAIiD,MAAJ,CAAA;AACA,IAAA,IAAIC,MAAJ,CAAA;AACA,IAAA,IAAIC,OAAJ,CAAA;AACA,IAAA,IAAIC,OAAJ,CAAA;AACA,IAAA,IAAI/c,KAAJ,CAAA;AACA,IAAA,IAAIC,KAAJ,CAAA;AACA,IAAA,IAAI+c,UAAJ,CAAA;AACA,IAAA,IAAIC,UAAJ,CAAA;AACA,IAAA,IAAIC,UAAJ,CAAA;AACA,IAAA,IAAIC,WAAJ,CAAA;AACA,IAAA,IAAInB,WAAJ,CAAA;AACA,IAAA,IAAIC,YAAJ,CAAA;AACA,IAAA,IAAImB,aAAJ,CAAA;AACA,IAAA,IAAIC,aAAJ,CAAA;AACA,IAAA,IAAIC,aAAJ,CAAA;AACA,IAAA,IAAIC,aAAJ,CAAA;AACA,IAAA,IAAIvD,UAAJ,CAAA;AACA,IAAA,IAAIC,WAAJ,CAAA;;IAEA,IAAI,OAAOG,KAAK,CAACK,YAAN,CAAmBxjB,CAA1B,KAAgC,WAAhC,IAA+CnZ,CAAnD,EAAsD;MACpD8+B,MAAM,GAAG9+B,CAAC,CAACigB,KAAX,CAAA;MACA8e,MAAM,GAAG/+B,CAAC,CAACmgB,KAAX,CAAA;AACD,KAHD,MAGO;AACL2e,MAAAA,MAAM,GAAGxC,KAAK,CAACK,YAAN,CAAmBxjB,CAA5B,CAAA;AACA4lB,MAAAA,MAAM,GAAGzC,KAAK,CAACK,YAAN,CAAmBvjB,CAA5B,CAAA;AACD,KAAA;;AAEDmJ,IAAAA,IAAI,CAACoW,KAAL,GAAasD,OAAO,CAACI,WAAR,CAAoBrnB,YAApB,CAAiC,kBAAjC,CAAwDhR,IAAAA,MAAM,CAAC23B,QAA5E,CAAA;IACAL,YAAY,GAAGW,OAAO,CAACI,WAAR,CAAoBrnB,YAApB,CAAiC,kBAAjC,CAAA,IAAwDhR,MAAM,CAAC23B,QAA9E,CAAA;;AACA,IAAA,IAAI37B,CAAJ,EAAO;AACLk8B,MAAAA,UAAU,GAAGD,OAAO,CAAC52B,OAAR,CAAgB8C,WAA7B,CAAA;AACAg0B,MAAAA,WAAW,GAAGF,OAAO,CAAC52B,OAAR,CAAgB8P,YAA9B,CAAA;AACA6pB,MAAAA,OAAO,GAAG/4B,aAAa,CAACg2B,OAAO,CAAC52B,OAAT,CAAb,CAA+BsB,IAA/B,GAAsC9G,MAAM,CAAC4G,OAAvD,CAAA;AACAw4B,MAAAA,OAAO,GAAGh5B,aAAa,CAACg2B,OAAO,CAAC52B,OAAT,CAAb,CAA+BqB,GAA/B,GAAqC7G,MAAM,CAAC0G,OAAtD,CAAA;AACA2b,MAAAA,KAAK,GAAG8c,OAAO,GAAG9C,UAAU,GAAG,CAAvB,GAA2B4C,MAAnC,CAAA;AACA3c,MAAAA,KAAK,GAAG8c,OAAO,GAAG9C,WAAW,GAAG,CAAxB,GAA4B4C,MAApC,CAAA;AAEAK,MAAAA,UAAU,GAAGnD,OAAO,CAACG,OAAR,CAAgBj0B,WAA7B,CAAA;AACAk3B,MAAAA,WAAW,GAAGpD,OAAO,CAACG,OAAR,CAAgBjnB,YAA9B,CAAA;AACA+oB,MAAAA,WAAW,GAAGkB,UAAU,GAAG7c,IAAI,CAACoW,KAAhC,CAAA;AACAwF,MAAAA,YAAY,GAAGkB,WAAW,GAAG9c,IAAI,CAACoW,KAAlC,CAAA;AAEA2G,MAAAA,aAAa,GAAG36B,IAAI,CAACE,GAAL,CAASq3B,UAAU,GAAG,CAAb,GAAiBgC,WAAW,GAAG,CAAxC,EAA2C,CAA3C,CAAhB,CAAA;AACAqB,MAAAA,aAAa,GAAG56B,IAAI,CAACE,GAAL,CAASs3B,WAAW,GAAG,CAAd,GAAkBgC,YAAY,GAAG,CAA1C,EAA6C,CAA7C,CAAhB,CAAA;MACAqB,aAAa,GAAG,CAACF,aAAjB,CAAA;MACAG,aAAa,GAAG,CAACF,aAAjB,CAAA;AAEAL,MAAAA,UAAU,GAAGhd,KAAK,GAAGK,IAAI,CAACoW,KAA1B,CAAA;AACAwG,MAAAA,UAAU,GAAGhd,KAAK,GAAGI,IAAI,CAACoW,KAA1B,CAAA;;MAEA,IAAIuG,UAAU,GAAGI,aAAjB,EAAgC;AAC9BJ,QAAAA,UAAU,GAAGI,aAAb,CAAA;AACD,OAAA;;MACD,IAAIJ,UAAU,GAAGM,aAAjB,EAAgC;AAC9BN,QAAAA,UAAU,GAAGM,aAAb,CAAA;AACD,OAAA;;MAED,IAAIL,UAAU,GAAGI,aAAjB,EAAgC;AAC9BJ,QAAAA,UAAU,GAAGI,aAAb,CAAA;AACD,OAAA;;MACD,IAAIJ,UAAU,GAAGM,aAAjB,EAAgC;AAC9BN,QAAAA,UAAU,GAAGM,aAAb,CAAA;AACD,OAAA;AACF,KAlCD,MAkCO;AACLP,MAAAA,UAAU,GAAG,CAAb,CAAA;AACAC,MAAAA,UAAU,GAAG,CAAb,CAAA;AACD,KAAA;;AACDlD,IAAAA,OAAO,CAACI,WAAR,CAAoBh/B,KAApB,CAA0B8c,kBAA1B,GAA+C,OAA/C,CAAA;IACA8hB,OAAO,CAACI,WAAR,CAAoBh/B,KAApB,CAA0BwD,SAA1B,GAAuC,CAAcq+B,YAAAA,EAAAA,UAAW,CAAMC,IAAAA,EAAAA,UAAW,CAAjF,KAAA,CAAA,CAAA;AACAlD,IAAAA,OAAO,CAACG,OAAR,CAAgB/+B,KAAhB,CAAsB8c,kBAAtB,GAA2C,OAA3C,CAAA;IACA8hB,OAAO,CAACG,OAAR,CAAgB/+B,KAAhB,CAAsBwD,SAAtB,GAAmC,CAA2B0hB,yBAAAA,EAAAA,IAAI,CAACoW,KAAM,CAAzE,CAAA,CAAA,CAAA;AACD,GAAA;;AACD,EAAA,SAAS+G,OAAT,GAAmB;AACjB,IAAA,MAAMnd,IAAI,GAAG/e,MAAM,CAAC+e,IAApB,CAAA;AACA,IAAA,MAAMve,MAAM,GAAGR,MAAM,CAACQ,MAAP,CAAcue,IAA7B,CAAA;;AAEA,IAAA,IAAI,CAAC0Z,OAAO,CAAC52B,OAAb,EAAsB;AACpB,MAAA,IAAI7B,MAAM,CAACQ,MAAP,CAAc2L,OAAd,IAAyBnM,MAAM,CAACQ,MAAP,CAAc2L,OAAd,CAAsBC,OAA/C,IAA0DpM,MAAM,CAACmM,OAArE,EAA8E;AAC5EssB,QAAAA,OAAO,CAAC52B,OAAR,GAAkBE,eAAe,CAAC/B,MAAM,CAAC6L,QAAR,EAAmB,IAAG7L,MAAM,CAACQ,MAAP,CAAcqT,gBAAiB,EAArD,CAAf,CAAuE,CAAvE,CAAlB,CAAA;AACD,OAFD,MAEO;QACL4kB,OAAO,CAAC52B,OAAR,GAAkB7B,MAAM,CAACsM,MAAP,CAActM,MAAM,CAAC0R,WAArB,CAAlB,CAAA;AACD,OAAA;;AACD,MAAA,IAAIknB,OAAO,GAAGH,OAAO,CAAC52B,OAAR,CAAgBxI,aAAhB,CAA+B,CAAGmH,CAAAA,EAAAA,MAAM,CAAC43B,cAAe,EAAxD,CAAd,CAAA;;AACA,MAAA,IAAIQ,OAAJ,EAAa;QACXA,OAAO,GAAGA,OAAO,CAACt/B,gBAAR,CAAyB,gDAAzB,CAAA,CAA2E,CAA3E,CAAV,CAAA;AACD,OAAA;;MACDm/B,OAAO,CAACG,OAAR,GAAkBA,OAAlB,CAAA;;AACA,MAAA,IAAIA,OAAJ,EAAa;AACXH,QAAAA,OAAO,CAACI,WAAR,GAAsB30B,cAAc,CAACu0B,OAAO,CAACG,OAAT,EAAmB,CAAA,CAAA,EAAGp4B,MAAM,CAAC43B,cAAe,EAA5C,CAAd,CAA6D,CAA7D,CAAtB,CAAA;AACD,OAFD,MAEO;QACLK,OAAO,CAACI,WAAR,GAAsB75B,SAAtB,CAAA;AACD,OAAA;AACF,KAAA;;IACD,IAAI,CAACy5B,OAAO,CAACG,OAAT,IAAoB,CAACH,OAAO,CAACI,WAAjC,EAA8C,OAAA;;AAC9C,IAAA,IAAI74B,MAAM,CAACQ,MAAP,CAAcmN,OAAlB,EAA2B;AACzB3N,MAAAA,MAAM,CAACU,SAAP,CAAiB7G,KAAjB,CAAuB8H,QAAvB,GAAkC,EAAlC,CAAA;AACA3B,MAAAA,MAAM,CAACU,SAAP,CAAiB7G,KAAjB,CAAuBwhC,WAAvB,GAAqC,EAArC,CAAA;AACD,KAAA;;IACDtc,IAAI,CAACoW,KAAL,GAAa,CAAb,CAAA;AACA2C,IAAAA,YAAY,GAAG,CAAf,CAAA;AACAW,IAAAA,OAAO,CAACI,WAAR,CAAoBh/B,KAApB,CAA0B8c,kBAA1B,GAA+C,OAA/C,CAAA;AACA8hB,IAAAA,OAAO,CAACI,WAAR,CAAoBh/B,KAApB,CAA0BwD,SAA1B,GAAsC,oBAAtC,CAAA;AACAo7B,IAAAA,OAAO,CAACG,OAAR,CAAgB/+B,KAAhB,CAAsB8c,kBAAtB,GAA2C,OAA3C,CAAA;AACA8hB,IAAAA,OAAO,CAACG,OAAR,CAAgB/+B,KAAhB,CAAsBwD,SAAtB,GAAkC,6BAAlC,CAAA;IAEAo7B,OAAO,CAAC52B,OAAR,CAAgBQ,SAAhB,CAA0B8O,MAA1B,CAAkC,CAAE3Q,EAAAA,MAAM,CAAC63B,gBAAiB,CAA5D,CAAA,CAAA,CAAA;IACAI,OAAO,CAAC52B,OAAR,GAAkB7C,SAAlB,CAAA;AACD,GA1e8D;;;EA6e/D,SAASm9B,UAAT,CAAoB3/B,CAApB,EAAuB;AACrB,IAAA,MAAMuiB,IAAI,GAAG/e,MAAM,CAAC+e,IAApB,CAAA;;IAEA,IAAIA,IAAI,CAACoW,KAAL,IAAcpW,IAAI,CAACoW,KAAL,KAAe,CAAjC,EAAoC;AAClC;MACA+G,OAAO,EAAA,CAAA;AACR,KAHD,MAGO;AACL;MACAd,MAAM,CAAC5+B,CAAD,CAAN,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,SAAS4/B,YAAT,GAAwB;AACtB,IAAA,MAAMhF,eAAe,GAAGp3B,MAAM,CAACQ,MAAP,CAAcqlB,gBAAd,GACpB;AAAElD,MAAAA,OAAO,EAAE,IAAX;AAAiBH,MAAAA,OAAO,EAAE,KAAA;AAA1B,KADoB,GAEpB,KAFJ,CAAA;AAGA,IAAA,MAAM6Z,yBAAyB,GAAGr8B,MAAM,CAACQ,MAAP,CAAcqlB,gBAAd,GAC9B;AAAElD,MAAAA,OAAO,EAAE,KAAX;AAAkBH,MAAAA,OAAO,EAAE,IAAA;AAA3B,KAD8B,GAE9B,IAFJ,CAAA;IAGA,OAAO;MAAE4U,eAAF;AAAmBiF,MAAAA,yBAAAA;KAA1B,CAAA;AACD,GAjgB8D;;;AAogB/D,EAAA,SAASrY,MAAT,GAAkB;AAChB,IAAA,MAAMjF,IAAI,GAAG/e,MAAM,CAAC+e,IAApB,CAAA;IACA,IAAIA,IAAI,CAAC3S,OAAT,EAAkB,OAAA;IAClB2S,IAAI,CAAC3S,OAAL,GAAe,IAAf,CAAA;IACA,MAAM;MAAEgrB,eAAF;AAAmBiF,MAAAA,yBAAAA;KAA8BD,GAAAA,YAAY,EAAnE,CAJgB;;IAQhBp8B,MAAM,CAACU,SAAP,CAAiB1H,gBAAjB,CAAkC,aAAlC,EAAiDohC,cAAjD,EAAiEhD,eAAjE,CAAA,CAAA;IACAp3B,MAAM,CAACU,SAAP,CAAiB1H,gBAAjB,CAAkC,aAAlC,EAAiDshC,eAAjD,EAAkE+B,yBAAlE,CAAA,CAAA;AACA,IAAA,CAAC,WAAD,EAAc,eAAd,EAA+B1jC,OAA/B,CAAwC0mB,SAAD,IAAe;MACpDrf,MAAM,CAACU,SAAP,CAAiB1H,gBAAjB,CAAkCqmB,SAAlC,EAA6Cmb,YAA7C,EAA2DpD,eAA3D,CAAA,CAAA;AACD,KAFD,EAVgB;;IAehBp3B,MAAM,CAACU,SAAP,CAAiB1H,gBAAjB,CAAkC,aAAlC,EAAiDilB,WAAjD,EAA8Doe,yBAA9D,CAAA,CAAA;AACD,GAAA;;AACD,EAAA,SAAStY,OAAT,GAAmB;AACjB,IAAA,MAAMhF,IAAI,GAAG/e,MAAM,CAAC+e,IAApB,CAAA;AACA,IAAA,IAAI,CAACA,IAAI,CAAC3S,OAAV,EAAmB,OAAA;IACnB2S,IAAI,CAAC3S,OAAL,GAAe,KAAf,CAAA;IAEA,MAAM;MAAEgrB,eAAF;AAAmBiF,MAAAA,yBAAAA;KAA8BD,GAAAA,YAAY,EAAnE,CALiB;;IAQjBp8B,MAAM,CAACU,SAAP,CAAiBzH,mBAAjB,CAAqC,aAArC,EAAoDmhC,cAApD,EAAoEhD,eAApE,CAAA,CAAA;IACAp3B,MAAM,CAACU,SAAP,CAAiBzH,mBAAjB,CAAqC,aAArC,EAAoDqhC,eAApD,EAAqE+B,yBAArE,CAAA,CAAA;AACA,IAAA,CAAC,WAAD,EAAc,eAAd,EAA+B1jC,OAA/B,CAAwC0mB,SAAD,IAAe;MACpDrf,MAAM,CAACU,SAAP,CAAiBzH,mBAAjB,CAAqComB,SAArC,EAAgDmb,YAAhD,EAA8DpD,eAA9D,CAAA,CAAA;AACD,KAFD,EAViB;;IAejBp3B,MAAM,CAACU,SAAP,CAAiBzH,mBAAjB,CAAqC,aAArC,EAAoDglB,WAApD,EAAiEoe,yBAAjE,CAAA,CAAA;AACD,GAAA;;EAEDr1B,EAAE,CAAC,MAAD,EAAS,MAAM;AACf,IAAA,IAAIhH,MAAM,CAACQ,MAAP,CAAcue,IAAd,CAAmB3S,OAAvB,EAAgC;MAC9B4X,MAAM,EAAA,CAAA;AACP,KAAA;AACF,GAJC,CAAF,CAAA;EAKAhd,EAAE,CAAC,SAAD,EAAY,MAAM;IAClB+c,OAAO,EAAA,CAAA;AACR,GAFC,CAAF,CAAA;AAGA/c,EAAAA,EAAE,CAAC,YAAD,EAAe,CAAC+qB,EAAD,EAAKv1B,CAAL,KAAW;AAC1B,IAAA,IAAI,CAACwD,MAAM,CAAC+e,IAAP,CAAY3S,OAAjB,EAA0B,OAAA;IAC1B8O,YAAY,CAAC1e,CAAD,CAAZ,CAAA;AACD,GAHC,CAAF,CAAA;AAIAwK,EAAAA,EAAE,CAAC,UAAD,EAAa,CAAC+qB,EAAD,EAAKv1B,CAAL,KAAW;AACxB,IAAA,IAAI,CAACwD,MAAM,CAAC+e,IAAP,CAAY3S,OAAjB,EAA0B,OAAA;IAC1B6T,UAAU,CAAA,CAAV,CAAA;AACD,GAHC,CAAF,CAAA;AAIAjZ,EAAAA,EAAE,CAAC,WAAD,EAAc,CAAC+qB,EAAD,EAAKv1B,CAAL,KAAW;IACzB,IACE,CAACwD,MAAM,CAACoW,SAAR,IACApW,MAAM,CAACQ,MAAP,CAAcue,IAAd,CAAmB3S,OADnB,IAEApM,MAAM,CAAC+e,IAAP,CAAY3S,OAFZ,IAGApM,MAAM,CAACQ,MAAP,CAAcue,IAAd,CAAmBoT,MAJrB,EAKE;MACAgK,UAAU,CAAC3/B,CAAD,CAAV,CAAA;AACD,KAAA;AACF,GATC,CAAF,CAAA;EAUAwK,EAAE,CAAC,eAAD,EAAkB,MAAM;AACxB,IAAA,IAAIhH,MAAM,CAAC+e,IAAP,CAAY3S,OAAZ,IAAuBpM,MAAM,CAACQ,MAAP,CAAcue,IAAd,CAAmB3S,OAA9C,EAAuD;MACrD+uB,eAAe,EAAA,CAAA;AAChB,KAAA;AACF,GAJC,CAAF,CAAA;EAKAn0B,EAAE,CAAC,aAAD,EAAgB,MAAM;AACtB,IAAA,IAAIhH,MAAM,CAAC+e,IAAP,CAAY3S,OAAZ,IAAuBpM,MAAM,CAACQ,MAAP,CAAcue,IAAd,CAAmB3S,OAA1C,IAAqDpM,MAAM,CAACQ,MAAP,CAAcmN,OAAvE,EAAgF;MAC9EwtB,eAAe,EAAA,CAAA;AAChB,KAAA;AACF,GAJC,CAAF,CAAA;AAMA7iC,EAAAA,MAAM,CAACiT,MAAP,CAAcvL,MAAM,CAAC+e,IAArB,EAA2B;IACzBiF,MADyB;IAEzBD,OAFyB;AAGzBuY,IAAAA,EAAE,EAAElB,MAHqB;AAIzBmB,IAAAA,GAAG,EAAEL,OAJoB;AAKzB/J,IAAAA,MAAM,EAAEgK,UAAAA;GALV,CAAA,CAAA;AAOD;;AC3lBD;AAGe,SAASK,UAAT,CAAkD,IAAA,EAAA;EAAA,IAA9B;IAAEx8B,MAAF;IAAUsI,YAAV;AAAwBtB,IAAAA,EAAAA;GAAM,GAAA,IAAA,CAAA;AAC/DsB,EAAAA,YAAY,CAAC;AACXm0B,IAAAA,UAAU,EAAE;AACVC,MAAAA,OAAO,EAAE19B,SADC;AAEV29B,MAAAA,OAAO,EAAE,KAFC;MAGVC,EAAE,EAAE,OAHM;;AAAA,KAAA;AADD,GAAD,CAAZ,CAAA;EAQA58B,MAAM,CAACy8B,UAAP,GAAoB;AAClBC,IAAAA,OAAO,EAAE19B,SAAAA;GADX,CAAA;;AAIA,EAAA,SAAS69B,YAAT,CAAsBlnB,CAAtB,EAAyBC,CAAzB,EAA4B;AAC1B,IAAA,MAAMknB,YAAY,GAAI,SAASpiC,MAAT,GAAkB;AACtC,MAAA,IAAIqiC,QAAJ,CAAA;AACA,MAAA,IAAIC,QAAJ,CAAA;AACA,MAAA,IAAIC,KAAJ,CAAA;AACA,MAAA,OAAO,CAACC,KAAD,EAAQ1kB,GAAR,KAAgB;QACrBwkB,QAAQ,GAAG,CAAC,CAAZ,CAAA;QACAD,QAAQ,GAAGG,KAAK,CAACrkC,MAAjB,CAAA;;AACA,QAAA,OAAOkkC,QAAQ,GAAGC,QAAX,GAAsB,CAA7B,EAAgC;AAC9BC,UAAAA,KAAK,GAAIF,QAAQ,GAAGC,QAAZ,IAAyB,CAAjC,CAAA;;AACA,UAAA,IAAIE,KAAK,CAACD,KAAD,CAAL,IAAgBzkB,GAApB,EAAyB;AACvBwkB,YAAAA,QAAQ,GAAGC,KAAX,CAAA;AACD,WAFD,MAEO;AACLF,YAAAA,QAAQ,GAAGE,KAAX,CAAA;AACD,WAAA;AACF,SAAA;;AACD,QAAA,OAAOF,QAAP,CAAA;OAXF,CAAA;AAaD,KAjBoB,EAArB,CAAA;;IAkBA,IAAKpnB,CAAAA,CAAL,GAASA,CAAT,CAAA;IACA,IAAKC,CAAAA,CAAL,GAASA,CAAT,CAAA;IACA,IAAKiD,CAAAA,SAAL,GAAiBlD,CAAC,CAAC9c,MAAF,GAAW,CAA5B,CArB0B;AAuB1B;AACA;;AACA,IAAA,IAAIskC,EAAJ,CAAA;AACA,IAAA,IAAIC,EAAJ,CAAA;;AAEA,IAAA,IAAA,CAAKC,WAAL,GAAmB,SAASA,WAAT,CAAqBvD,EAArB,EAAyB;AAC1C,MAAA,IAAI,CAACA,EAAL,EAAS,OAAO,CAAP,CADiC;;AAI1CsD,MAAAA,EAAE,GAAGN,YAAY,CAAC,KAAKnnB,CAAN,EAASmkB,EAAT,CAAjB,CAAA;AACAqD,MAAAA,EAAE,GAAGC,EAAE,GAAG,CAAV,CAL0C;AAQ1C;;AACA,MAAA,OACG,CAACtD,EAAE,GAAG,IAAKnkB,CAAAA,CAAL,CAAOwnB,EAAP,CAAN,KAAqB,IAAA,CAAKvnB,CAAL,CAAOwnB,EAAP,CAAa,GAAA,IAAA,CAAKxnB,CAAL,CAAOunB,EAAP,CAAlC,CAAD,IAAmD,IAAKxnB,CAAAA,CAAL,CAAOynB,EAAP,IAAa,IAAKznB,CAAAA,CAAL,CAAOwnB,EAAP,CAAhE,CAA8E,GAAA,IAAA,CAAKvnB,CAAL,CAAOunB,EAAP,CADhF,CAAA;KATF,CAAA;;AAaA,IAAA,OAAO,IAAP,CAAA;AACD,GAvD8D;;;EAyD/D,SAASG,sBAAT,CAAgCC,CAAhC,EAAmC;AACjC,IAAA,IAAI,CAACv9B,MAAM,CAACy8B,UAAP,CAAkBe,MAAvB,EAA+B;AAC7Bx9B,MAAAA,MAAM,CAACy8B,UAAP,CAAkBe,MAAlB,GAA2Bx9B,MAAM,CAACQ,MAAP,CAAc+O,IAAd,GACvB,IAAIstB,YAAJ,CAAiB78B,MAAM,CAAC0M,UAAxB,EAAoC6wB,CAAC,CAAC7wB,UAAtC,CADuB,GAEvB,IAAImwB,YAAJ,CAAiB78B,MAAM,CAACyM,QAAxB,EAAkC8wB,CAAC,CAAC9wB,QAApC,CAFJ,CAAA;AAGD,KAAA;AACF,GAAA;;AACD,EAAA,SAASgJ,YAAT,CAAsBgoB,EAAtB,EAA0B/nB,YAA1B,EAAwC;AACtC,IAAA,MAAMgoB,UAAU,GAAG19B,MAAM,CAACy8B,UAAP,CAAkBC,OAArC,CAAA;AACA,IAAA,IAAI9pB,UAAJ,CAAA;AACA,IAAA,IAAI+qB,mBAAJ,CAAA;AACA,IAAA,MAAMlX,MAAM,GAAGzmB,MAAM,CAAC3H,WAAtB,CAAA;;IACA,SAASulC,sBAAT,CAAgCL,CAAhC,EAAmC;AACjC;AACA;AACA;AACA;AACA,MAAA,MAAMn9B,SAAS,GAAGJ,MAAM,CAAC+L,YAAP,GAAsB,CAAC/L,MAAM,CAACI,SAA9B,GAA0CJ,MAAM,CAACI,SAAnE,CAAA;;MACA,IAAIJ,MAAM,CAACQ,MAAP,CAAci8B,UAAd,CAAyBG,EAAzB,KAAgC,OAApC,EAA6C;AAC3CU,QAAAA,sBAAsB,CAACC,CAAD,CAAtB,CAD2C;AAG3C;;AACAI,QAAAA,mBAAmB,GAAG,CAAC39B,MAAM,CAACy8B,UAAP,CAAkBe,MAAlB,CAAyBH,WAAzB,CAAqC,CAACj9B,SAAtC,CAAvB,CAAA;AACD,OAAA;;AAED,MAAA,IAAI,CAACu9B,mBAAD,IAAwB39B,MAAM,CAACQ,MAAP,CAAci8B,UAAd,CAAyBG,EAAzB,KAAgC,WAA5D,EAAyE;AACvEhqB,QAAAA,UAAU,GACR,CAAC2qB,CAAC,CAACzqB,YAAF,EAAA,GAAmByqB,CAAC,CAAClrB,YAAF,EAApB,KAAyCrS,MAAM,CAAC8S,YAAP,EAAA,GAAwB9S,MAAM,CAACqS,YAAP,EAAjE,CADF,CAAA;AAEAsrB,QAAAA,mBAAmB,GAAG,CAACv9B,SAAS,GAAGJ,MAAM,CAACqS,YAAP,EAAb,IAAsCO,UAAtC,GAAmD2qB,CAAC,CAAClrB,YAAF,EAAzE,CAAA;AACD,OAAA;;AAED,MAAA,IAAIrS,MAAM,CAACQ,MAAP,CAAci8B,UAAd,CAAyBE,OAA7B,EAAsC;AACpCgB,QAAAA,mBAAmB,GAAGJ,CAAC,CAACzqB,YAAF,KAAmB6qB,mBAAzC,CAAA;AACD,OAAA;;MACDJ,CAAC,CAAC5qB,cAAF,CAAiBgrB,mBAAjB,CAAA,CAAA;AACAJ,MAAAA,CAAC,CAAC9nB,YAAF,CAAekoB,mBAAf,EAAoC39B,MAApC,CAAA,CAAA;AACAu9B,MAAAA,CAAC,CAACjpB,iBAAF,EAAA,CAAA;AACAipB,MAAAA,CAAC,CAAC5pB,mBAAF,EAAA,CAAA;AACD,KAAA;;AACD,IAAA,IAAIpR,KAAK,CAACC,OAAN,CAAck7B,UAAd,CAAJ,EAA+B;AAC7B,MAAA,KAAK,IAAI5+B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4+B,UAAU,CAAC7kC,MAA/B,EAAuCiG,CAAC,IAAI,CAA5C,EAA+C;AAC7C,QAAA,IAAI4+B,UAAU,CAAC5+B,CAAD,CAAV,KAAkB4W,YAAlB,IAAkCgoB,UAAU,CAAC5+B,CAAD,CAAV,YAAyB2nB,MAA/D,EAAuE;AACrEmX,UAAAA,sBAAsB,CAACF,UAAU,CAAC5+B,CAAD,CAAX,CAAtB,CAAA;AACD,SAAA;AACF,OAAA;KALH,MAMO,IAAI4+B,UAAU,YAAYjX,MAAtB,IAAgC/Q,YAAY,KAAKgoB,UAArD,EAAiE;MACtEE,sBAAsB,CAACF,UAAD,CAAtB,CAAA;AACD,KAAA;AACF,GAAA;;AACD,EAAA,SAASpsB,aAAT,CAAuB/Q,QAAvB,EAAiCmV,YAAjC,EAA+C;AAC7C,IAAA,MAAM+Q,MAAM,GAAGzmB,MAAM,CAAC3H,WAAtB,CAAA;AACA,IAAA,MAAMqlC,UAAU,GAAG19B,MAAM,CAACy8B,UAAP,CAAkBC,OAArC,CAAA;AACA,IAAA,IAAI59B,CAAJ,CAAA;;IACA,SAAS++B,uBAAT,CAAiCN,CAAjC,EAAoC;AAClCA,MAAAA,CAAC,CAACjsB,aAAF,CAAgB/Q,QAAhB,EAA0BP,MAA1B,CAAA,CAAA;;MACA,IAAIO,QAAQ,KAAK,CAAjB,EAAoB;AAClBg9B,QAAAA,CAAC,CAACxmB,eAAF,EAAA,CAAA;;AACA,QAAA,IAAIwmB,CAAC,CAAC/8B,MAAF,CAASkT,UAAb,EAAyB;AACvBjX,UAAAA,QAAQ,CAAC,MAAM;AACb8gC,YAAAA,CAAC,CAACnsB,gBAAF,EAAA,CAAA;AACD,WAFO,CAAR,CAAA;AAGD,SAAA;;AACD9M,QAAAA,oBAAoB,CAACi5B,CAAC,CAAC78B,SAAH,EAAc,MAAM;UACtC,IAAI,CAACg9B,UAAL,EAAiB,OAAA;AACjB,UAAA,IAAI19B,MAAM,CAACQ,MAAP,CAAc+O,IAAlB,EAAwBvP,MAAM,CAACmY,OAAP,CAAenZ,SAAf,EAA0B,KAA1B,CAAA,CAAA;;AACxB,UAAA,IAAIu+B,CAAC,CAAC/8B,MAAF,CAAS+O,IAAT,IAAiBvP,MAAM,CAACQ,MAAP,CAAci8B,UAAd,CAAyBG,EAAzB,KAAgC,OAArD,EAA8D;AAC5DW,YAAAA,CAAC,CAACplB,OAAF,EAAA,CAAA;AACD,WAAA;;AACDolB,UAAAA,CAAC,CAAC7mB,aAAF,EAAA,CAAA;AACD,SAPmB,CAApB,CAAA;AAQD,OAAA;AACF,KAAA;;AACD,IAAA,IAAInU,KAAK,CAACC,OAAN,CAAck7B,UAAd,CAAJ,EAA+B;AAC7B,MAAA,KAAK5+B,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG4+B,UAAU,CAAC7kC,MAA3B,EAAmCiG,CAAC,IAAI,CAAxC,EAA2C;AACzC,QAAA,IAAI4+B,UAAU,CAAC5+B,CAAD,CAAV,KAAkB4W,YAAlB,IAAkCgoB,UAAU,CAAC5+B,CAAD,CAAV,YAAyB2nB,MAA/D,EAAuE;AACrEoX,UAAAA,uBAAuB,CAACH,UAAU,CAAC5+B,CAAD,CAAX,CAAvB,CAAA;AACD,SAAA;AACF,OAAA;KALH,MAMO,IAAI4+B,UAAU,YAAYjX,MAAtB,IAAgC/Q,YAAY,KAAKgoB,UAArD,EAAiE;MACtEG,uBAAuB,CAACH,UAAD,CAAvB,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,SAASI,YAAT,GAAwB;AACtB,IAAA,IAAI,CAAC99B,MAAM,CAACy8B,UAAP,CAAkBC,OAAvB,EAAgC,OAAA;;AAChC,IAAA,IAAI18B,MAAM,CAACy8B,UAAP,CAAkBe,MAAtB,EAA8B;AAC5Bx9B,MAAAA,MAAM,CAACy8B,UAAP,CAAkBe,MAAlB,GAA2Bx+B,SAA3B,CAAA;AACA,MAAA,OAAOgB,MAAM,CAACy8B,UAAP,CAAkBe,MAAzB,CAAA;AACD,KAAA;AACF,GAAA;;EACDx2B,EAAE,CAAC,YAAD,EAAe,MAAM;AACrB,IAAA,IACE,OAAO3K,MAAP,KAAkB,WAAlB;IACC,OAAO2D,MAAM,CAACQ,MAAP,CAAci8B,UAAd,CAAyBC,OAAhC,KAA4C,QAA5C,IACC18B,MAAM,CAACQ,MAAP,CAAci8B,UAAd,CAAyBC,OAAzB,YAA4Ch+B,WAF9C,CADF,EAIE;AACA,MAAA,MAAMq/B,cAAc,GAAGljC,QAAQ,CAACxB,aAAT,CAAuB2G,MAAM,CAACQ,MAAP,CAAci8B,UAAd,CAAyBC,OAAhD,CAAvB,CAAA;;AACA,MAAA,IAAIqB,cAAc,IAAIA,cAAc,CAAC/9B,MAArC,EAA6C;AAC3CA,QAAAA,MAAM,CAACy8B,UAAP,CAAkBC,OAAlB,GAA4BqB,cAAc,CAAC/9B,MAA3C,CAAA;OADF,MAEO,IAAI+9B,cAAJ,EAAoB;QACzB,MAAMC,kBAAkB,GAAIxhC,CAAD,IAAO;UAChCwD,MAAM,CAACy8B,UAAP,CAAkBC,OAAlB,GAA4BlgC,CAAC,CAACoyB,MAAF,CAAS,CAAT,CAA5B,CAAA;AACA5uB,UAAAA,MAAM,CAACqiB,MAAP,EAAA,CAAA;AACA0b,UAAAA,cAAc,CAAC9kC,mBAAf,CAAmC,MAAnC,EAA2C+kC,kBAA3C,CAAA,CAAA;SAHF,CAAA;;AAKAD,QAAAA,cAAc,CAAC/kC,gBAAf,CAAgC,MAAhC,EAAwCglC,kBAAxC,CAAA,CAAA;AACD,OAAA;;AACD,MAAA,OAAA;AACD,KAAA;;IACDh+B,MAAM,CAACy8B,UAAP,CAAkBC,OAAlB,GAA4B18B,MAAM,CAACQ,MAAP,CAAci8B,UAAd,CAAyBC,OAArD,CAAA;AACD,GApBC,CAAF,CAAA;EAqBA11B,EAAE,CAAC,QAAD,EAAW,MAAM;IACjB82B,YAAY,EAAA,CAAA;AACb,GAFC,CAAF,CAAA;EAGA92B,EAAE,CAAC,QAAD,EAAW,MAAM;IACjB82B,YAAY,EAAA,CAAA;AACb,GAFC,CAAF,CAAA;EAGA92B,EAAE,CAAC,gBAAD,EAAmB,MAAM;IACzB82B,YAAY,EAAA,CAAA;AACb,GAFC,CAAF,CAAA;EAGA92B,EAAE,CAAC,cAAD,EAAiB,CAAC+qB,EAAD,EAAK3xB,SAAL,EAAgBsV,YAAhB,KAAiC;AAClD,IAAA,IAAI,CAAC1V,MAAM,CAACy8B,UAAP,CAAkBC,OAAvB,EAAgC,OAAA;AAChC18B,IAAAA,MAAM,CAACy8B,UAAP,CAAkBhnB,YAAlB,CAA+BrV,SAA/B,EAA0CsV,YAA1C,CAAA,CAAA;AACD,GAHC,CAAF,CAAA;EAIA1O,EAAE,CAAC,eAAD,EAAkB,CAAC+qB,EAAD,EAAKxxB,QAAL,EAAemV,YAAf,KAAgC;AAClD,IAAA,IAAI,CAAC1V,MAAM,CAACy8B,UAAP,CAAkBC,OAAvB,EAAgC,OAAA;AAChC18B,IAAAA,MAAM,CAACy8B,UAAP,CAAkBnrB,aAAlB,CAAgC/Q,QAAhC,EAA0CmV,YAA1C,CAAA,CAAA;AACD,GAHC,CAAF,CAAA;AAKApd,EAAAA,MAAM,CAACiT,MAAP,CAAcvL,MAAM,CAACy8B,UAArB,EAAiC;IAC/BhnB,YAD+B;AAE/BnE,IAAAA,aAAAA;GAFF,CAAA,CAAA;AAID;;AC9Lc,SAAS2sB,IAAT,CAA4C,IAAA,EAAA;EAAA,IAA9B;IAAEj+B,MAAF;IAAUsI,YAAV;AAAwBtB,IAAAA,EAAAA;GAAM,GAAA,IAAA,CAAA;AACzDsB,EAAAA,YAAY,CAAC;AACX41B,IAAAA,IAAI,EAAE;AACJ9xB,MAAAA,OAAO,EAAE,IADL;AAEJ+xB,MAAAA,iBAAiB,EAAE,qBAFf;AAGJC,MAAAA,gBAAgB,EAAE,gBAHd;AAIJC,MAAAA,gBAAgB,EAAE,YAJd;AAKJC,MAAAA,iBAAiB,EAAE,yBALf;AAMJC,MAAAA,gBAAgB,EAAE,wBANd;AAOJC,MAAAA,uBAAuB,EAAE,uBAPrB;AAQJC,MAAAA,iBAAiB,EAAE,8BARf;AASJC,MAAAA,gBAAgB,EAAE,IATd;AAUJC,MAAAA,+BAA+B,EAAE,IAV7B;AAWJC,MAAAA,0BAA0B,EAAE,IAXxB;AAYJC,MAAAA,SAAS,EAAE,OAZP;AAaJ3iC,MAAAA,EAAE,EAAE,IAAA;AAbA,KAAA;AADK,GAAD,CAAZ,CAAA;EAkBA8D,MAAM,CAACk+B,IAAP,GAAc;AACZY,IAAAA,OAAO,EAAE,KAAA;GADX,CAAA;EAIA,IAAIC,UAAU,GAAG,IAAjB,CAAA;;EAEA,SAASC,MAAT,CAAgBC,OAAhB,EAAyB;IACvB,MAAMC,YAAY,GAAGH,UAArB,CAAA;AACA,IAAA,IAAIG,YAAY,CAACrmC,MAAb,KAAwB,CAA5B,EAA+B,OAAA;IAC/BqmC,YAAY,CAAC/U,SAAb,GAAyB,EAAzB,CAAA;IACA+U,YAAY,CAAC/U,SAAb,GAAyB8U,OAAzB,CAAA;AACD,GAAA;;EAED,MAAM5N,iBAAiB,GAAIz0B,EAAD,IAAQ;IAChC,IAAI,CAAC2F,KAAK,CAACC,OAAN,CAAc5F,EAAd,CAAL,EAAwBA,EAAE,GAAG,CAACA,EAAD,CAAA,CAAKsC,MAAL,CAAa1C,CAAD,IAAO,CAAC,CAACA,CAArB,CAAL,CAAA;AACxB,IAAA,OAAOI,EAAP,CAAA;GAFF,CAAA;;EAKA,SAASuiC,eAAT,CAAyB16B,IAAzB,EAAoC;AAAA,IAAA,IAAXA,IAAW,KAAA,KAAA,CAAA,EAAA;AAAXA,MAAAA,IAAW,GAAJ,EAAI,CAAA;AAAA,KAAA;;AAClC,IAAA,MAAM26B,UAAU,GAAG,MAAMj+B,IAAI,CAACk+B,KAAL,CAAW,EAAA,GAAKl+B,IAAI,CAACm+B,MAAL,EAAhB,CAAA,CAA+BthC,QAA/B,CAAwC,EAAxC,CAAzB,CAAA;;IACA,OAAO,GAAA,CAAIuhC,MAAJ,CAAW96B,IAAX,CAAA,CAAiB/G,OAAjB,CAAyB,IAAzB,EAA+B0hC,UAA/B,CAAP,CAAA;AACD,GAAA;;EACD,SAASI,eAAT,CAAyB5iC,EAAzB,EAA6B;AAC3BA,IAAAA,EAAE,GAAGy0B,iBAAiB,CAACz0B,EAAD,CAAtB,CAAA;AACAA,IAAAA,EAAE,CAACjE,OAAH,CAAY84B,KAAD,IAAW;AACpBA,MAAAA,KAAK,CAAC33B,YAAN,CAAmB,UAAnB,EAA+B,GAA/B,CAAA,CAAA;KADF,CAAA,CAAA;AAGD,GAAA;;EACD,SAAS2lC,kBAAT,CAA4B7iC,EAA5B,EAAgC;AAC9BA,IAAAA,EAAE,GAAGy0B,iBAAiB,CAACz0B,EAAD,CAAtB,CAAA;AACAA,IAAAA,EAAE,CAACjE,OAAH,CAAY84B,KAAD,IAAW;AACpBA,MAAAA,KAAK,CAAC33B,YAAN,CAAmB,UAAnB,EAA+B,IAA/B,CAAA,CAAA;KADF,CAAA,CAAA;AAGD,GAAA;;AACD,EAAA,SAAS4lC,SAAT,CAAmB9iC,EAAnB,EAAuB+iC,IAAvB,EAA6B;AAC3B/iC,IAAAA,EAAE,GAAGy0B,iBAAiB,CAACz0B,EAAD,CAAtB,CAAA;AACAA,IAAAA,EAAE,CAACjE,OAAH,CAAY84B,KAAD,IAAW;AACpBA,MAAAA,KAAK,CAAC33B,YAAN,CAAmB,MAAnB,EAA2B6lC,IAA3B,CAAA,CAAA;KADF,CAAA,CAAA;AAGD,GAAA;;AACD,EAAA,SAASC,oBAAT,CAA8BhjC,EAA9B,EAAkCijC,WAAlC,EAA+C;AAC7CjjC,IAAAA,EAAE,GAAGy0B,iBAAiB,CAACz0B,EAAD,CAAtB,CAAA;AACAA,IAAAA,EAAE,CAACjE,OAAH,CAAY84B,KAAD,IAAW;AACpBA,MAAAA,KAAK,CAAC33B,YAAN,CAAmB,sBAAnB,EAA2C+lC,WAA3C,CAAA,CAAA;KADF,CAAA,CAAA;AAGD,GAAA;;AACD,EAAA,SAASC,aAAT,CAAuBljC,EAAvB,EAA2BmjC,QAA3B,EAAqC;AACnCnjC,IAAAA,EAAE,GAAGy0B,iBAAiB,CAACz0B,EAAD,CAAtB,CAAA;AACAA,IAAAA,EAAE,CAACjE,OAAH,CAAY84B,KAAD,IAAW;AACpBA,MAAAA,KAAK,CAAC33B,YAAN,CAAmB,eAAnB,EAAoCimC,QAApC,CAAA,CAAA;KADF,CAAA,CAAA;AAGD,GAAA;;AACD,EAAA,SAASC,UAAT,CAAoBpjC,EAApB,EAAwBgP,KAAxB,EAA+B;AAC7BhP,IAAAA,EAAE,GAAGy0B,iBAAiB,CAACz0B,EAAD,CAAtB,CAAA;AACAA,IAAAA,EAAE,CAACjE,OAAH,CAAY84B,KAAD,IAAW;AACpBA,MAAAA,KAAK,CAAC33B,YAAN,CAAmB,YAAnB,EAAiC8R,KAAjC,CAAA,CAAA;KADF,CAAA,CAAA;AAGD,GAAA;;AACD,EAAA,SAASq0B,OAAT,CAAiBrjC,EAAjB,EAAqBV,EAArB,EAAyB;AACvBU,IAAAA,EAAE,GAAGy0B,iBAAiB,CAACz0B,EAAD,CAAtB,CAAA;AACAA,IAAAA,EAAE,CAACjE,OAAH,CAAY84B,KAAD,IAAW;AACpBA,MAAAA,KAAK,CAAC33B,YAAN,CAAmB,IAAnB,EAAyBoC,EAAzB,CAAA,CAAA;KADF,CAAA,CAAA;AAGD,GAAA;;AACD,EAAA,SAASgkC,SAAT,CAAmBtjC,EAAnB,EAAuBujC,IAAvB,EAA6B;AAC3BvjC,IAAAA,EAAE,GAAGy0B,iBAAiB,CAACz0B,EAAD,CAAtB,CAAA;AACAA,IAAAA,EAAE,CAACjE,OAAH,CAAY84B,KAAD,IAAW;AACpBA,MAAAA,KAAK,CAAC33B,YAAN,CAAmB,WAAnB,EAAgCqmC,IAAhC,CAAA,CAAA;KADF,CAAA,CAAA;AAGD,GAAA;;EACD,SAASC,SAAT,CAAmBxjC,EAAnB,EAAuB;AACrBA,IAAAA,EAAE,GAAGy0B,iBAAiB,CAACz0B,EAAD,CAAtB,CAAA;AACAA,IAAAA,EAAE,CAACjE,OAAH,CAAY84B,KAAD,IAAW;AACpBA,MAAAA,KAAK,CAAC33B,YAAN,CAAmB,eAAnB,EAAoC,IAApC,CAAA,CAAA;KADF,CAAA,CAAA;AAGD,GAAA;;EACD,SAASumC,QAAT,CAAkBzjC,EAAlB,EAAsB;AACpBA,IAAAA,EAAE,GAAGy0B,iBAAiB,CAACz0B,EAAD,CAAtB,CAAA;AACAA,IAAAA,EAAE,CAACjE,OAAH,CAAY84B,KAAD,IAAW;AACpBA,MAAAA,KAAK,CAAC33B,YAAN,CAAmB,eAAnB,EAAoC,KAApC,CAAA,CAAA;KADF,CAAA,CAAA;AAGD,GAAA;;EAED,SAASwmC,iBAAT,CAA2B9jC,CAA3B,EAA8B;IAC5B,IAAIA,CAAC,CAAC6vB,OAAF,KAAc,EAAd,IAAoB7vB,CAAC,CAAC6vB,OAAF,KAAc,EAAtC,EAA0C,OAAA;AAC1C,IAAA,MAAM7rB,MAAM,GAAGR,MAAM,CAACQ,MAAP,CAAc09B,IAA7B,CAAA;AACA,IAAA,MAAM1iB,QAAQ,GAAGhf,CAAC,CAAChE,MAAnB,CAAA;;AACA,IAAA,IACEwH,MAAM,CAACgyB,UAAP,IACAhyB,MAAM,CAACgyB,UAAP,CAAkBp1B,EADlB,KAEC4e,QAAQ,KAAKxb,MAAM,CAACgyB,UAAP,CAAkBp1B,EAA/B,IAAqCoD,MAAM,CAACgyB,UAAP,CAAkBp1B,EAAlB,CAAqBqU,QAArB,CAA8BzU,CAAC,CAAChE,MAAhC,CAFtC,CADF,EAIE;AACA,MAAA,IAAI,CAACgE,CAAC,CAAChE,MAAF,CAAS0J,OAAT,CAAiBkwB,iBAAiB,CAACpyB,MAAM,CAACQ,MAAP,CAAcwxB,UAAd,CAAyBkB,WAA1B,CAAlC,CAAL,EAAgF,OAAA;AACjF,KAAA;;AACD,IAAA,IAAIlzB,MAAM,CAACkhB,UAAP,IAAqBlhB,MAAM,CAACkhB,UAAP,CAAkBC,MAAvC,IAAiD3F,QAAQ,KAAKxb,MAAM,CAACkhB,UAAP,CAAkBC,MAApF,EAA4F;AAC1F,MAAA,IAAI,EAAEnhB,MAAM,CAACgT,KAAP,IAAgB,CAAChT,MAAM,CAACQ,MAAP,CAAc+O,IAAjC,CAAJ,EAA4C;AAC1CvP,QAAAA,MAAM,CAAC8X,SAAP,EAAA,CAAA;AACD,OAAA;;MACD,IAAI9X,MAAM,CAACgT,KAAX,EAAkB;AAChBgsB,QAAAA,MAAM,CAACx+B,MAAM,CAAC+9B,gBAAR,CAAN,CAAA;AACD,OAFD,MAEO;AACLS,QAAAA,MAAM,CAACx+B,MAAM,CAAC69B,gBAAR,CAAN,CAAA;AACD,OAAA;AACF,KAAA;;AACD,IAAA,IAAIr+B,MAAM,CAACkhB,UAAP,IAAqBlhB,MAAM,CAACkhB,UAAP,CAAkBE,MAAvC,IAAiD5F,QAAQ,KAAKxb,MAAM,CAACkhB,UAAP,CAAkBE,MAApF,EAA4F;AAC1F,MAAA,IAAI,EAAEphB,MAAM,CAAC+S,WAAP,IAAsB,CAAC/S,MAAM,CAACQ,MAAP,CAAc+O,IAAvC,CAAJ,EAAkD;AAChDvP,QAAAA,MAAM,CAACsY,SAAP,EAAA,CAAA;AACD,OAAA;;MACD,IAAItY,MAAM,CAAC+S,WAAX,EAAwB;AACtBisB,QAAAA,MAAM,CAACx+B,MAAM,CAAC89B,iBAAR,CAAN,CAAA;AACD,OAFD,MAEO;AACLU,QAAAA,MAAM,CAACx+B,MAAM,CAAC49B,gBAAR,CAAN,CAAA;AACD,OAAA;AACF,KAAA;;AAED,IAAA,IACEp+B,MAAM,CAACgyB,UAAP,IACAxW,QAAQ,CAACtZ,OAAT,CAAiBkwB,iBAAiB,CAACpyB,MAAM,CAACQ,MAAP,CAAcwxB,UAAd,CAAyBkB,WAA1B,CAAlC,CAFF,EAGE;AACA1X,MAAAA,QAAQ,CAAC+kB,KAAT,EAAA,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,SAASC,gBAAT,GAA4B;AAC1B,IAAA,IAAIxgC,MAAM,CAACQ,MAAP,CAAc+O,IAAd,IAAsBvP,MAAM,CAACQ,MAAP,CAAc6X,MAApC,IAA8C,CAACrY,MAAM,CAACkhB,UAA1D,EAAsE,OAAA;IACtE,MAAM;MAAEC,MAAF;AAAUC,MAAAA,MAAAA;KAAWphB,GAAAA,MAAM,CAACkhB,UAAlC,CAAA;;AAEA,IAAA,IAAIE,MAAJ,EAAY;MACV,IAAIphB,MAAM,CAAC+S,WAAX,EAAwB;QACtBqtB,SAAS,CAAChf,MAAD,CAAT,CAAA;QACAqe,kBAAkB,CAACre,MAAD,CAAlB,CAAA;AACD,OAHD,MAGO;QACLif,QAAQ,CAACjf,MAAD,CAAR,CAAA;QACAoe,eAAe,CAACpe,MAAD,CAAf,CAAA;AACD,OAAA;AACF,KAAA;;AACD,IAAA,IAAID,MAAJ,EAAY;MACV,IAAInhB,MAAM,CAACgT,KAAX,EAAkB;QAChBotB,SAAS,CAACjf,MAAD,CAAT,CAAA;QACAse,kBAAkB,CAACte,MAAD,CAAlB,CAAA;AACD,OAHD,MAGO;QACLkf,QAAQ,CAAClf,MAAD,CAAR,CAAA;QACAqe,eAAe,CAACre,MAAD,CAAf,CAAA;AACD,OAAA;AACF,KAAA;AACF,GAAA;;AAED,EAAA,SAASsf,aAAT,GAAyB;AACvB,IAAA,OAAOzgC,MAAM,CAACgyB,UAAP,IAAqBhyB,MAAM,CAACgyB,UAAP,CAAkB6B,OAAvC,IAAkD7zB,MAAM,CAACgyB,UAAP,CAAkB6B,OAAlB,CAA0Bh7B,MAAnF,CAAA;AACD,GAAA;;AAED,EAAA,SAAS6nC,sBAAT,GAAkC;IAChC,OAAOD,aAAa,MAAMzgC,MAAM,CAACQ,MAAP,CAAcwxB,UAAd,CAAyBC,SAAnD,CAAA;AACD,GAAA;;AAED,EAAA,SAAS0O,gBAAT,GAA4B;AAC1B,IAAA,MAAMngC,MAAM,GAAGR,MAAM,CAACQ,MAAP,CAAc09B,IAA7B,CAAA;IACA,IAAI,CAACuC,aAAa,EAAlB,EAAsB,OAAA;IACtBzgC,MAAM,CAACgyB,UAAP,CAAkB6B,OAAlB,CAA0Bl7B,OAA1B,CAAmCu7B,QAAD,IAAc;AAC9C,MAAA,IAAIl0B,MAAM,CAACQ,MAAP,CAAcwxB,UAAd,CAAyBC,SAA7B,EAAwC;QACtCuN,eAAe,CAACtL,QAAD,CAAf,CAAA;;QACA,IAAI,CAACl0B,MAAM,CAACQ,MAAP,CAAcwxB,UAAd,CAAyBQ,YAA9B,EAA4C;AAC1CkN,UAAAA,SAAS,CAACxL,QAAD,EAAW,QAAX,CAAT,CAAA;AACA8L,UAAAA,UAAU,CACR9L,QADQ,EAER1zB,MAAM,CAACg+B,uBAAP,CAA+B9gC,OAA/B,CAAuC,eAAvC,EAAwDqG,YAAY,CAACmwB,QAAD,CAAZ,GAAyB,CAAjF,CAFQ,CAAV,CAAA;AAID,SAAA;AACF,OAAA;;AACD,MAAA,IAAIA,QAAQ,CAAChyB,OAAT,CAAkB,IAAGlC,MAAM,CAACQ,MAAP,CAAcwxB,UAAd,CAAyBmB,iBAAkB,CAAA,CAAhE,CAAJ,EAAwE;AACtEe,QAAAA,QAAQ,CAACp6B,YAAT,CAAsB,cAAtB,EAAsC,MAAtC,CAAA,CAAA;AACD,OAFD,MAEO;QACLo6B,QAAQ,CAACnL,eAAT,CAAyB,cAAzB,CAAA,CAAA;AACD,OAAA;KAfH,CAAA,CAAA;AAiBD,GAAA;;EAED,MAAM6X,SAAS,GAAG,CAAChkC,EAAD,EAAKikC,SAAL,EAAgB5B,OAAhB,KAA4B;IAC5CO,eAAe,CAAC5iC,EAAD,CAAf,CAAA;;AACA,IAAA,IAAIA,EAAE,CAAC80B,OAAH,KAAe,QAAnB,EAA6B;AAC3BgO,MAAAA,SAAS,CAAC9iC,EAAD,EAAK,QAAL,CAAT,CAAA;AACAA,MAAAA,EAAE,CAAC5D,gBAAH,CAAoB,SAApB,EAA+BsnC,iBAA/B,CAAA,CAAA;AACD,KAAA;;AACDN,IAAAA,UAAU,CAACpjC,EAAD,EAAKqiC,OAAL,CAAV,CAAA;AACAa,IAAAA,aAAa,CAACljC,EAAD,EAAKikC,SAAL,CAAb,CAAA;GAPF,CAAA;;EASA,MAAMC,iBAAiB,GAAG,MAAM;AAC9B9gC,IAAAA,MAAM,CAACk+B,IAAP,CAAYY,OAAZ,GAAsB,IAAtB,CAAA;GADF,CAAA;;EAGA,MAAMiC,eAAe,GAAG,MAAM;AAC5BhlC,IAAAA,qBAAqB,CAAC,MAAM;AAC1BA,MAAAA,qBAAqB,CAAC,MAAM;AAC1B,QAAA,IAAI,CAACiE,MAAM,CAACqH,SAAZ,EAAuB;AACrBrH,UAAAA,MAAM,CAACk+B,IAAP,CAAYY,OAAZ,GAAsB,KAAtB,CAAA;AACD,SAAA;AACF,OAJoB,CAArB,CAAA;AAKD,KANoB,CAArB,CAAA;GADF,CAAA;;EAUA,MAAMkC,WAAW,GAAIxkC,CAAD,IAAO;AACzB,IAAA,IAAIwD,MAAM,CAACk+B,IAAP,CAAYY,OAAhB,EAAyB,OAAA;AACzB,IAAA,MAAMj9B,OAAO,GAAGrF,CAAC,CAAChE,MAAF,CAASyc,OAAT,CAAkB,CAAA,CAAA,EAAGjV,MAAM,CAACQ,MAAP,CAAc+L,UAAW,gBAA9C,CAAhB,CAAA;AACA,IAAA,IAAI,CAAC1K,OAAD,IAAY,CAAC7B,MAAM,CAACsM,MAAP,CAAc4T,QAAd,CAAuBre,OAAvB,CAAjB,EAAkD,OAAA;AAClD,IAAA,MAAMo/B,QAAQ,GAAGjhC,MAAM,CAACsM,MAAP,CAAcnN,OAAd,CAAsB0C,OAAtB,CAAA,KAAmC7B,MAAM,CAAC0R,WAA3D,CAAA;AACA,IAAA,MAAMe,SAAS,GACbzS,MAAM,CAACQ,MAAP,CAAcoQ,mBAAd,IACA5Q,MAAM,CAACyR,aADP,IAEAzR,MAAM,CAACyR,aAAP,CAAqByO,QAArB,CAA8Bre,OAA9B,CAHF,CAAA;IAIA,IAAIo/B,QAAQ,IAAIxuB,SAAhB,EAA2B,OAAA;IAC3B,IAAIjW,CAAC,CAAC0kC,kBAAF,IAAwB1kC,CAAC,CAAC0kC,kBAAF,CAAqBC,gBAAjD,EAAmE,OAAA;;AACnE,IAAA,IAAInhC,MAAM,CAACkL,YAAP,EAAJ,EAA2B;AACzBlL,MAAAA,MAAM,CAACpD,EAAP,CAAUoG,UAAV,GAAuB,CAAvB,CAAA;AACD,KAFD,MAEO;AACLhD,MAAAA,MAAM,CAACpD,EAAP,CAAUkG,SAAV,GAAsB,CAAtB,CAAA;AACD,KAAA;;AACD9C,IAAAA,MAAM,CAACgX,OAAP,CAAehX,MAAM,CAACsM,MAAP,CAAcnN,OAAd,CAAsB0C,OAAtB,CAAf,EAA+C,CAA/C,CAAA,CAAA;GAhBF,CAAA;;EAmBA,MAAMkM,UAAU,GAAG,MAAM;AACvB,IAAA,MAAMvN,MAAM,GAAGR,MAAM,CAACQ,MAAP,CAAc09B,IAA7B,CAAA;;IACA,IAAI19B,MAAM,CAACo+B,0BAAX,EAAuC;MACrCgB,oBAAoB,CAAC5/B,MAAM,CAACsM,MAAR,EAAgB9L,MAAM,CAACo+B,0BAAvB,CAApB,CAAA;AACD,KAAA;;IACD,IAAIp+B,MAAM,CAACq+B,SAAX,EAAsB;MACpBa,SAAS,CAAC1/B,MAAM,CAACsM,MAAR,EAAgB9L,MAAM,CAACq+B,SAAvB,CAAT,CAAA;AACD,KAAA;;AAED,IAAA,MAAMryB,YAAY,GAAGxM,MAAM,CAACsM,MAAP,CAAczT,MAAnC,CAAA;;IACA,IAAI2H,MAAM,CAACi+B,iBAAX,EAA8B;MAC5Bz+B,MAAM,CAACsM,MAAP,CAAc3T,OAAd,CAAsB,CAACkJ,OAAD,EAAU4I,KAAV,KAAoB;QACxC,MAAMqF,UAAU,GAAG9P,MAAM,CAACQ,MAAP,CAAc+O,IAAd,GACfnE,QAAQ,CAACvJ,OAAO,CAAC2P,YAAR,CAAqB,yBAArB,CAAD,EAAkD,EAAlD,CADO,GAEf/G,KAFJ,CAAA;AAGA,QAAA,MAAM22B,gBAAgB,GAAG5gC,MAAM,CAACi+B,iBAAP,CACtB/gC,OADsB,CACd,eADc,EACGoS,UAAU,GAAG,CADhB,CAEtBpS,CAAAA,OAFsB,CAEd,sBAFc,EAEU8O,YAFV,CAAzB,CAAA;AAGAwzB,QAAAA,UAAU,CAACn+B,OAAD,EAAUu/B,gBAAV,CAAV,CAAA;OAPF,CAAA,CAAA;AASD,KAAA;GApBH,CAAA;;EAuBA,MAAMl4B,IAAI,GAAG,MAAM;AACjB,IAAA,MAAM1I,MAAM,GAAGR,MAAM,CAACQ,MAAP,CAAc09B,IAA7B,CAAA;AAEAl+B,IAAAA,MAAM,CAACpD,EAAP,CAAUmd,MAAV,CAAiBglB,UAAjB,EAHiB;;AAMjB,IAAA,MAAM1a,WAAW,GAAGrkB,MAAM,CAACpD,EAA3B,CAAA;;IACA,IAAI4D,MAAM,CAACm+B,+BAAX,EAA4C;AAC1CiB,MAAAA,oBAAoB,CAACvb,WAAD,EAAc7jB,MAAM,CAACm+B,+BAArB,CAApB,CAAA;AACD,KAAA;;IACD,IAAIn+B,MAAM,CAACk+B,gBAAX,EAA6B;AAC3BsB,MAAAA,UAAU,CAAC3b,WAAD,EAAc7jB,MAAM,CAACk+B,gBAArB,CAAV,CAAA;AACD,KAZgB;;;AAejB,IAAA,MAAMh+B,SAAS,GAAGV,MAAM,CAACU,SAAzB,CAAA;AACA,IAAA,MAAMmgC,SAAS,GACbrgC,MAAM,CAACtE,EAAP,IAAawE,SAAS,CAAC8Q,YAAV,CAAuB,IAAvB,CAAb,IAA8C,CAAA,eAAA,EAAiB2tB,eAAe,CAAC,EAAD,CAAK,CADrF,CAAA,CAAA;AAEA,IAAA,MAAMgB,IAAI,GAAGngC,MAAM,CAACQ,MAAP,CAAcihB,QAAd,IAA0BzhB,MAAM,CAACQ,MAAP,CAAcihB,QAAd,CAAuBrV,OAAjD,GAA2D,KAA3D,GAAmE,QAAhF,CAAA;AACA6zB,IAAAA,OAAO,CAACv/B,SAAD,EAAYmgC,SAAZ,CAAP,CAAA;AACAX,IAAAA,SAAS,CAACx/B,SAAD,EAAYy/B,IAAZ,CAAT,CApBiB;;AAuBjBpyB,IAAAA,UAAU,GAvBO;;IA0BjB,IAAI;MAAEoT,MAAF;AAAUC,MAAAA,MAAAA;KAAWphB,GAAAA,MAAM,CAACkhB,UAAP,GAAoBlhB,MAAM,CAACkhB,UAA3B,GAAwC,EAAjE,CAAA;AACAC,IAAAA,MAAM,GAAGkQ,iBAAiB,CAAClQ,MAAD,CAA1B,CAAA;AACAC,IAAAA,MAAM,GAAGiQ,iBAAiB,CAACjQ,MAAD,CAA1B,CAAA;;AAEA,IAAA,IAAID,MAAJ,EAAY;AACVA,MAAAA,MAAM,CAACxoB,OAAP,CAAgBiE,EAAD,IAAQgkC,SAAS,CAAChkC,EAAD,EAAKikC,SAAL,EAAgBrgC,MAAM,CAAC69B,gBAAvB,CAAhC,CAAA,CAAA;AACD,KAAA;;AACD,IAAA,IAAIjd,MAAJ,EAAY;AACVA,MAAAA,MAAM,CAACzoB,OAAP,CAAgBiE,EAAD,IAAQgkC,SAAS,CAAChkC,EAAD,EAAKikC,SAAL,EAAgBrgC,MAAM,CAAC49B,gBAAvB,CAAhC,CAAA,CAAA;AACD,KAnCgB;;;IAsCjB,IAAIsC,sBAAsB,EAA1B,EAA8B;MAC5B1gC,MAAM,CAACgyB,UAAP,CAAkBp1B,EAAlB,CAAqB5D,gBAArB,CAAsC,SAAtC,EAAiDsnC,iBAAjD,CAAA,CAAA;AACD,KAxCgB;;;IA2CjBtgC,MAAM,CAACpD,EAAP,CAAU5D,gBAAV,CAA2B,OAA3B,EAAoCgoC,WAApC,EAAiD,IAAjD,CAAA,CAAA;IACAhhC,MAAM,CAACpD,EAAP,CAAU5D,gBAAV,CAA2B,aAA3B,EAA0C8nC,iBAA1C,EAA6D,IAA7D,CAAA,CAAA;IACA9gC,MAAM,CAACpD,EAAP,CAAU5D,gBAAV,CAA2B,WAA3B,EAAwC+nC,eAAxC,EAAyD,IAAzD,CAAA,CAAA;GA7CF,CAAA;;AA+CA,EAAA,SAASz3B,OAAT,GAAmB;IACjB,IAAIy1B,UAAU,IAAIA,UAAU,CAAClmC,MAAX,GAAoB,CAAtC,EAAyCkmC,UAAU,CAAC5tB,MAAX,EAAA,CAAA;IACzC,IAAI;MAAEgQ,MAAF;AAAUC,MAAAA,MAAAA;KAAWphB,GAAAA,MAAM,CAACkhB,UAAP,GAAoBlhB,MAAM,CAACkhB,UAA3B,GAAwC,EAAjE,CAAA;AACAC,IAAAA,MAAM,GAAGkQ,iBAAiB,CAAClQ,MAAD,CAA1B,CAAA;AACAC,IAAAA,MAAM,GAAGiQ,iBAAiB,CAACjQ,MAAD,CAA1B,CAAA;;AACA,IAAA,IAAID,MAAJ,EAAY;AACVA,MAAAA,MAAM,CAACxoB,OAAP,CAAgBiE,EAAD,IAAQA,EAAE,CAAC3D,mBAAH,CAAuB,SAAvB,EAAkCqnC,iBAAlC,CAAvB,CAAA,CAAA;AACD,KAAA;;AACD,IAAA,IAAIlf,MAAJ,EAAY;AACVA,MAAAA,MAAM,CAACzoB,OAAP,CAAgBiE,EAAD,IAAQA,EAAE,CAAC3D,mBAAH,CAAuB,SAAvB,EAAkCqnC,iBAAlC,CAAvB,CAAA,CAAA;AACD,KAVgB;;;IAajB,IAAII,sBAAsB,EAA1B,EAA8B;MAC5B1gC,MAAM,CAACgyB,UAAP,CAAkBp1B,EAAlB,CAAqBsN,GAArB,CAAyB,SAAzB,EAAoCo2B,iBAApC,CAAA,CAAA;AACD,KAfgB;;;IAkBjBtgC,MAAM,CAACpD,EAAP,CAAU3D,mBAAV,CAA8B,OAA9B,EAAuC+nC,WAAvC,EAAoD,IAApD,CAAA,CAAA;IACAhhC,MAAM,CAACpD,EAAP,CAAU3D,mBAAV,CAA8B,aAA9B,EAA6C6nC,iBAA7C,EAAgE,IAAhE,CAAA,CAAA;IACA9gC,MAAM,CAACpD,EAAP,CAAU3D,mBAAV,CAA8B,WAA9B,EAA2C8nC,eAA3C,EAA4D,IAA5D,CAAA,CAAA;AACD,GAAA;;EAED/5B,EAAE,CAAC,YAAD,EAAe,MAAM;AACrB+3B,IAAAA,UAAU,GAAGrlC,aAAa,CAAC,MAAD,EAASsG,MAAM,CAACQ,MAAP,CAAc09B,IAAd,CAAmBC,iBAA5B,CAA1B,CAAA;AACAY,IAAAA,UAAU,CAACjlC,YAAX,CAAwB,WAAxB,EAAqC,WAArC,CAAA,CAAA;AACAilC,IAAAA,UAAU,CAACjlC,YAAX,CAAwB,aAAxB,EAAuC,MAAvC,CAAA,CAAA;;IACA,IAAIkG,MAAM,CAACqZ,SAAX,EAAsB;AACpB0lB,MAAAA,UAAU,CAACjlC,YAAX,CAAwB,MAAxB,EAAgC,eAAhC,CAAA,CAAA;AACD,KAAA;AACF,GAPC,CAAF,CAAA;EASAkN,EAAE,CAAC,WAAD,EAAc,MAAM;IACpB,IAAI,CAAChH,MAAM,CAACQ,MAAP,CAAc09B,IAAd,CAAmB9xB,OAAxB,EAAiC,OAAA;IACjClD,IAAI,EAAA,CAAA;AACL,GAHC,CAAF,CAAA;EAIAlC,EAAE,CAAC,gEAAD,EAAmE,MAAM;IACzE,IAAI,CAAChH,MAAM,CAACQ,MAAP,CAAc09B,IAAd,CAAmB9xB,OAAxB,EAAiC,OAAA;IACjC2B,UAAU,EAAA,CAAA;AACX,GAHC,CAAF,CAAA;EAIA/G,EAAE,CAAC,uCAAD,EAA0C,MAAM;IAChD,IAAI,CAAChH,MAAM,CAACQ,MAAP,CAAc09B,IAAd,CAAmB9xB,OAAxB,EAAiC,OAAA;IACjCo0B,gBAAgB,EAAA,CAAA;AACjB,GAHC,CAAF,CAAA;EAIAx5B,EAAE,CAAC,kBAAD,EAAqB,MAAM;IAC3B,IAAI,CAAChH,MAAM,CAACQ,MAAP,CAAc09B,IAAd,CAAmB9xB,OAAxB,EAAiC,OAAA;IACjCu0B,gBAAgB,EAAA,CAAA;AACjB,GAHC,CAAF,CAAA;EAIA35B,EAAE,CAAC,SAAD,EAAY,MAAM;IAClB,IAAI,CAAChH,MAAM,CAACQ,MAAP,CAAc09B,IAAd,CAAmB9xB,OAAxB,EAAiC,OAAA;IACjC9C,OAAO,EAAA,CAAA;AACR,GAHC,CAAF,CAAA;AAID;;ACvWc,SAAS+3B,OAAT,CAA+C,IAAA,EAAA;EAAA,IAA9B;IAAErhC,MAAF;IAAUsI,YAAV;AAAwBtB,IAAAA,EAAAA;GAAM,GAAA,IAAA,CAAA;AAC5DsB,EAAAA,YAAY,CAAC;AACXrN,IAAAA,OAAO,EAAE;AACPmR,MAAAA,OAAO,EAAE,KADF;AAEPk1B,MAAAA,IAAI,EAAE,EAFC;AAGPpmC,MAAAA,YAAY,EAAE,KAHP;AAIPtC,MAAAA,GAAG,EAAE,QAJE;AAKP2oC,MAAAA,SAAS,EAAE,KAAA;AALJ,KAAA;AADE,GAAD,CAAZ,CAAA;EAUA,IAAIj6B,WAAW,GAAG,KAAlB,CAAA;EACA,IAAIk6B,KAAK,GAAG,EAAZ,CAAA;;EAEA,MAAMC,OAAO,GAAIC,IAAD,IAAU;AACxB,IAAA,OAAOA,IAAI,CACR1jC,QADI,EAAA,CAEJN,OAFI,CAEI,MAFJ,EAEY,GAFZ,CAGJA,CAAAA,OAHI,CAGI,UAHJ,EAGgB,EAHhB,CAAA,CAIJA,OAJI,CAII,MAJJ,EAIY,GAJZ,CAAA,CAKJA,OALI,CAKI,KALJ,EAKW,EALX,EAMJA,OANI,CAMI,KANJ,EAMW,EANX,CAAP,CAAA;GADF,CAAA;;EAUA,MAAMikC,aAAa,GAAIC,WAAD,IAAiB;IACrC,MAAMvlC,MAAM,GAAGF,SAAS,EAAxB,CAAA;AACA,IAAA,IAAIjC,QAAJ,CAAA;;AACA,IAAA,IAAI0nC,WAAJ,EAAiB;AACf1nC,MAAAA,QAAQ,GAAG,IAAI2nC,GAAJ,CAAQD,WAAR,CAAX,CAAA;AACD,KAFD,MAEO;MACL1nC,QAAQ,GAAGmC,MAAM,CAACnC,QAAlB,CAAA;AACD,KAAA;;IACD,MAAM4nC,SAAS,GAAG5nC,QAAQ,CAACM,QAAT,CACf+D,KADe,CACT,CADS,CAAA,CAEfhB,KAFe,CAET,GAFS,EAGf2B,MAHe,CAGP6iC,IAAD,IAAUA,IAAI,KAAK,EAHX,CAAlB,CAAA;AAIA,IAAA,MAAM1N,KAAK,GAAGyN,SAAS,CAACjpC,MAAxB,CAAA;AACA,IAAA,MAAMD,GAAG,GAAGkpC,SAAS,CAACzN,KAAK,GAAG,CAAT,CAArB,CAAA;AACA,IAAA,MAAMzP,KAAK,GAAGkd,SAAS,CAACzN,KAAK,GAAG,CAAT,CAAvB,CAAA;IACA,OAAO;MAAEz7B,GAAF;AAAOgsB,MAAAA,KAAAA;KAAd,CAAA;GAfF,CAAA;;AAiBA,EAAA,MAAMod,UAAU,GAAG,CAACppC,GAAD,EAAM6R,KAAN,KAAgB;IACjC,MAAMpO,MAAM,GAAGF,SAAS,EAAxB,CAAA;IACA,IAAI,CAACmL,WAAD,IAAgB,CAACtH,MAAM,CAACQ,MAAP,CAAcvF,OAAd,CAAsBmR,OAA3C,EAAoD,OAAA;AACpD,IAAA,IAAIlS,QAAJ,CAAA;;AACA,IAAA,IAAI8F,MAAM,CAACQ,MAAP,CAAcmlB,GAAlB,EAAuB;MACrBzrB,QAAQ,GAAG,IAAI2nC,GAAJ,CAAQ7hC,MAAM,CAACQ,MAAP,CAAcmlB,GAAtB,CAAX,CAAA;AACD,KAFD,MAEO;MACLzrB,QAAQ,GAAGmC,MAAM,CAACnC,QAAlB,CAAA;AACD,KAAA;;AACD,IAAA,MAAMkU,KAAK,GAAGpO,MAAM,CAACsM,MAAP,CAAc7B,KAAd,CAAd,CAAA;IACA,IAAIma,KAAK,GAAG6c,OAAO,CAACrzB,KAAK,CAACoD,YAAN,CAAmB,cAAnB,CAAD,CAAnB,CAAA;;IACA,IAAIxR,MAAM,CAACQ,MAAP,CAAcvF,OAAd,CAAsBqmC,IAAtB,CAA2BzoC,MAA3B,GAAoC,CAAxC,EAA2C;MACzC,IAAIyoC,IAAI,GAAGthC,MAAM,CAACQ,MAAP,CAAcvF,OAAd,CAAsBqmC,IAAjC,CAAA;MACA,IAAIA,IAAI,CAACA,IAAI,CAACzoC,MAAL,GAAc,CAAf,CAAJ,KAA0B,GAA9B,EAAmCyoC,IAAI,GAAGA,IAAI,CAAC/iC,KAAL,CAAW,CAAX,EAAc+iC,IAAI,CAACzoC,MAAL,GAAc,CAA5B,CAAP,CAAA;AACnC+rB,MAAAA,KAAK,GAAI,CAAE0c,EAAAA,IAAK,IAAG1oC,GAAI,CAAA,CAAA,EAAGgsB,KAAM,CAAhC,CAAA,CAAA;KAHF,MAIO,IAAI,CAAC1qB,QAAQ,CAACM,QAAT,CAAkB0lB,QAAlB,CAA2BtnB,GAA3B,CAAL,EAAsC;AAC3CgsB,MAAAA,KAAK,GAAI,CAAA,EAAEhsB,GAAI,CAAA,CAAA,EAAGgsB,KAAM,CAAxB,CAAA,CAAA;AACD,KAAA;;AACD,IAAA,IAAI5kB,MAAM,CAACQ,MAAP,CAAcvF,OAAd,CAAsBsmC,SAA1B,EAAqC;MACnC3c,KAAK,IAAI1qB,QAAQ,CAACQ,MAAlB,CAAA;AACD,KAAA;;AACD,IAAA,MAAMunC,YAAY,GAAG5lC,MAAM,CAACpB,OAAP,CAAeinC,KAApC,CAAA;;AACA,IAAA,IAAID,YAAY,IAAIA,YAAY,CAACrd,KAAb,KAAuBA,KAA3C,EAAkD;AAChD,MAAA,OAAA;AACD,KAAA;;AACD,IAAA,IAAI5kB,MAAM,CAACQ,MAAP,CAAcvF,OAAd,CAAsBC,YAA1B,EAAwC;AACtCmB,MAAAA,MAAM,CAACpB,OAAP,CAAeC,YAAf,CAA4B;AAAE0pB,QAAAA,KAAAA;OAA9B,EAAuC,IAAvC,EAA6CA,KAA7C,CAAA,CAAA;AACD,KAFD,MAEO;AACLvoB,MAAAA,MAAM,CAACpB,OAAP,CAAeE,SAAf,CAAyB;AAAEypB,QAAAA,KAAAA;OAA3B,EAAoC,IAApC,EAA0CA,KAA1C,CAAA,CAAA;AACD,KAAA;GA7BH,CAAA;;EAgCA,MAAMud,aAAa,GAAG,CAAC1hC,KAAD,EAAQmkB,KAAR,EAAe3O,YAAf,KAAgC;AACpD,IAAA,IAAI2O,KAAJ,EAAW;MACT,KAAK,IAAI9lB,CAAC,GAAG,CAAR,EAAWjG,MAAM,GAAGmH,MAAM,CAACsM,MAAP,CAAczT,MAAvC,EAA+CiG,CAAC,GAAGjG,MAAnD,EAA2DiG,CAAC,IAAI,CAAhE,EAAmE;AACjE,QAAA,MAAMsP,KAAK,GAAGpO,MAAM,CAACsM,MAAP,CAAcxN,CAAd,CAAd,CAAA;QACA,MAAMsjC,YAAY,GAAGX,OAAO,CAACrzB,KAAK,CAACoD,YAAN,CAAmB,cAAnB,CAAD,CAA5B,CAAA;;QACA,IAAI4wB,YAAY,KAAKxd,KAArB,EAA4B;AAC1B,UAAA,MAAMna,KAAK,GAAG1G,YAAY,CAACqK,KAAD,CAA1B,CAAA;AACApO,UAAAA,MAAM,CAACgX,OAAP,CAAevM,KAAf,EAAsBhK,KAAtB,EAA6BwV,YAA7B,CAAA,CAAA;AACD,SAAA;AACF,OAAA;AACF,KATD,MASO;AACLjW,MAAAA,MAAM,CAACgX,OAAP,CAAe,CAAf,EAAkBvW,KAAlB,EAAyBwV,YAAzB,CAAA,CAAA;AACD,KAAA;GAZH,CAAA;;EAeA,MAAMosB,kBAAkB,GAAG,MAAM;IAC/Bb,KAAK,GAAGG,aAAa,CAAC3hC,MAAM,CAACQ,MAAP,CAAcmlB,GAAf,CAArB,CAAA;AACAwc,IAAAA,aAAa,CAACniC,MAAM,CAACQ,MAAP,CAAcC,KAAf,EAAsB+gC,KAAK,CAAC5c,KAA5B,EAAmC,KAAnC,CAAb,CAAA;GAFF,CAAA;;EAKA,MAAM1b,IAAI,GAAG,MAAM;IACjB,MAAM7M,MAAM,GAAGF,SAAS,EAAxB,CAAA;AACA,IAAA,IAAI,CAAC6D,MAAM,CAACQ,MAAP,CAAcvF,OAAnB,EAA4B,OAAA;;IAC5B,IAAI,CAACoB,MAAM,CAACpB,OAAR,IAAmB,CAACoB,MAAM,CAACpB,OAAP,CAAeE,SAAvC,EAAkD;AAChD6E,MAAAA,MAAM,CAACQ,MAAP,CAAcvF,OAAd,CAAsBmR,OAAtB,GAAgC,KAAhC,CAAA;AACApM,MAAAA,MAAM,CAACQ,MAAP,CAAc8hC,cAAd,CAA6Bl2B,OAA7B,GAAuC,IAAvC,CAAA;AACA,MAAA,OAAA;AACD,KAAA;;AACD9E,IAAAA,WAAW,GAAG,IAAd,CAAA;IACAk6B,KAAK,GAAGG,aAAa,CAAC3hC,MAAM,CAACQ,MAAP,CAAcmlB,GAAf,CAArB,CAAA;IACA,IAAI,CAAC6b,KAAK,CAAC5oC,GAAP,IAAc,CAAC4oC,KAAK,CAAC5c,KAAzB,EAAgC,OAAA;AAChCud,IAAAA,aAAa,CAAC,CAAD,EAAIX,KAAK,CAAC5c,KAAV,EAAiB5kB,MAAM,CAACQ,MAAP,CAAcuU,kBAA/B,CAAb,CAAA;;IACA,IAAI,CAAC/U,MAAM,CAACQ,MAAP,CAAcvF,OAAd,CAAsBC,YAA3B,EAAyC;AACvCmB,MAAAA,MAAM,CAACrD,gBAAP,CAAwB,UAAxB,EAAoCqpC,kBAApC,CAAA,CAAA;AACD,KAAA;GAdH,CAAA;;EAgBA,MAAM/4B,OAAO,GAAG,MAAM;IACpB,MAAMjN,MAAM,GAAGF,SAAS,EAAxB,CAAA;;IACA,IAAI,CAAC6D,MAAM,CAACQ,MAAP,CAAcvF,OAAd,CAAsBC,YAA3B,EAAyC;AACvCmB,MAAAA,MAAM,CAACpD,mBAAP,CAA2B,UAA3B,EAAuCopC,kBAAvC,CAAA,CAAA;AACD,KAAA;GAJH,CAAA;;EAOAr7B,EAAE,CAAC,MAAD,EAAS,MAAM;AACf,IAAA,IAAIhH,MAAM,CAACQ,MAAP,CAAcvF,OAAd,CAAsBmR,OAA1B,EAAmC;MACjClD,IAAI,EAAA,CAAA;AACL,KAAA;AACF,GAJC,CAAF,CAAA;EAKAlC,EAAE,CAAC,SAAD,EAAY,MAAM;AAClB,IAAA,IAAIhH,MAAM,CAACQ,MAAP,CAAcvF,OAAd,CAAsBmR,OAA1B,EAAmC;MACjC9C,OAAO,EAAA,CAAA;AACR,KAAA;AACF,GAJC,CAAF,CAAA;EAKAtC,EAAE,CAAC,0CAAD,EAA6C,MAAM;AACnD,IAAA,IAAIM,WAAJ,EAAiB;AACf06B,MAAAA,UAAU,CAAChiC,MAAM,CAACQ,MAAP,CAAcvF,OAAd,CAAsBrC,GAAvB,EAA4BoH,MAAM,CAAC0R,WAAnC,CAAV,CAAA;AACD,KAAA;AACF,GAJC,CAAF,CAAA;EAKA1K,EAAE,CAAC,aAAD,EAAgB,MAAM;AACtB,IAAA,IAAIM,WAAW,IAAItH,MAAM,CAACQ,MAAP,CAAcmN,OAAjC,EAA0C;AACxCq0B,MAAAA,UAAU,CAAChiC,MAAM,CAACQ,MAAP,CAAcvF,OAAd,CAAsBrC,GAAvB,EAA4BoH,MAAM,CAAC0R,WAAnC,CAAV,CAAA;AACD,KAAA;AACF,GAJC,CAAF,CAAA;AAKD;;ACxIc,SAAS6wB,cAAT,CAA4D,IAAA,EAAA;EAAA,IAApC;IAAEviC,MAAF;IAAUsI,YAAV;IAAwBrB,IAAxB;AAA8BD,IAAAA,EAAAA;GAAM,GAAA,IAAA,CAAA;EACzE,IAAIM,WAAW,GAAG,KAAlB,CAAA;EACA,MAAMzM,QAAQ,GAAGF,WAAW,EAA5B,CAAA;EACA,MAAM0B,MAAM,GAAGF,SAAS,EAAxB,CAAA;AACAmM,EAAAA,YAAY,CAAC;AACXg6B,IAAAA,cAAc,EAAE;AACdl2B,MAAAA,OAAO,EAAE,KADK;AAEdlR,MAAAA,YAAY,EAAE,KAFA;AAGdsnC,MAAAA,UAAU,EAAE,KAAA;AAHE,KAAA;AADL,GAAD,CAAZ,CAAA;;EAOA,MAAMC,YAAY,GAAG,MAAM;IACzBx7B,IAAI,CAAC,YAAD,CAAJ,CAAA;AACA,IAAA,MAAMy7B,OAAO,GAAG7nC,QAAQ,CAACX,QAAT,CAAkBC,IAAlB,CAAuBuD,OAAvB,CAA+B,GAA/B,EAAoC,EAApC,CAAhB,CAAA;AACA,IAAA,MAAMilC,eAAe,GAAG3iC,MAAM,CAACsM,MAAP,CAActM,MAAM,CAAC0R,WAArB,CAAA,CAAkCF,YAAlC,CAA+C,WAA/C,CAAxB,CAAA;;IACA,IAAIkxB,OAAO,KAAKC,eAAhB,EAAiC;MAC/B,MAAM9qB,QAAQ,GAAG9T,YAAY,CAC3BhC,eAAe,CACb/B,MAAM,CAAC6L,QADM,EAEZ,CAAG7L,CAAAA,EAAAA,MAAM,CAACQ,MAAP,CAAc+L,UAAW,CAAA,YAAA,EAAcm2B,OAAQ,CAAA,4BAAA,EAA8BA,OAAQ,CAAA,EAAA,CAF5E,CAAf,CAGE,CAHF,CAD2B,CAA7B,CAAA;AAMA,MAAA,IAAI,OAAO7qB,QAAP,KAAoB,WAAxB,EAAqC,OAAA;MACrC7X,MAAM,CAACgX,OAAP,CAAea,QAAf,CAAA,CAAA;AACD,KAAA;GAbH,CAAA;;EAeA,MAAM+qB,OAAO,GAAG,MAAM;IACpB,IAAI,CAACt7B,WAAD,IAAgB,CAACtH,MAAM,CAACQ,MAAP,CAAc8hC,cAAd,CAA6Bl2B,OAAlD,EAA2D,OAAA;;AAC3D,IAAA,IACEpM,MAAM,CAACQ,MAAP,CAAc8hC,cAAd,CAA6BpnC,YAA7B,IACAmB,MAAM,CAACpB,OADP,IAEAoB,MAAM,CAACpB,OAAP,CAAeC,YAHjB,EAIE;MACAmB,MAAM,CAACpB,OAAP,CAAeC,YAAf,CACE,IADF,EAEE,IAFF,EAGG,CAAA,CAAA,EAAG8E,MAAM,CAACsM,MAAP,CAActM,MAAM,CAAC0R,WAArB,CAAkCF,CAAAA,YAAlC,CAA+C,WAA/C,CAA4D,CAAhE,CAAA,IAAqE,EAHvE,CAAA,CAAA;MAKAvK,IAAI,CAAC,SAAD,CAAJ,CAAA;AACD,KAXD,MAWO;MACL,MAAMmH,KAAK,GAAGpO,MAAM,CAACsM,MAAP,CAActM,MAAM,CAAC0R,WAArB,CAAd,CAAA;AACA,MAAA,MAAMvX,IAAI,GAAGiU,KAAK,CAACoD,YAAN,CAAmB,WAAnB,CAAA,IAAmCpD,KAAK,CAACoD,YAAN,CAAmB,cAAnB,CAAhD,CAAA;AACA3W,MAAAA,QAAQ,CAACX,QAAT,CAAkBC,IAAlB,GAAyBA,IAAI,IAAI,EAAjC,CAAA;MACA8M,IAAI,CAAC,SAAD,CAAJ,CAAA;AACD,KAAA;GAlBH,CAAA;;EAoBA,MAAMiC,IAAI,GAAG,MAAM;IACjB,IACE,CAAClJ,MAAM,CAACQ,MAAP,CAAc8hC,cAAd,CAA6Bl2B,OAA9B,IACCpM,MAAM,CAACQ,MAAP,CAAcvF,OAAd,IAAyB+E,MAAM,CAACQ,MAAP,CAAcvF,OAAd,CAAsBmR,OAFlD,EAIE,OAAA;AACF9E,IAAAA,WAAW,GAAG,IAAd,CAAA;AACA,IAAA,MAAMnN,IAAI,GAAGU,QAAQ,CAACX,QAAT,CAAkBC,IAAlB,CAAuBuD,OAAvB,CAA+B,GAA/B,EAAoC,EAApC,CAAb,CAAA;;AACA,IAAA,IAAIvD,IAAJ,EAAU;MACR,MAAMsG,KAAK,GAAG,CAAd,CAAA;;MACA,KAAK,IAAI3B,CAAC,GAAG,CAAR,EAAWjG,MAAM,GAAGmH,MAAM,CAACsM,MAAP,CAAczT,MAAvC,EAA+CiG,CAAC,GAAGjG,MAAnD,EAA2DiG,CAAC,IAAI,CAAhE,EAAmE;AACjE,QAAA,MAAMsP,KAAK,GAAGpO,MAAM,CAACsM,MAAP,CAAcxN,CAAd,CAAd,CAAA;AACA,QAAA,MAAM+jC,SAAS,GAAGz0B,KAAK,CAACoD,YAAN,CAAmB,WAAnB,CAAA,IAAmCpD,KAAK,CAACoD,YAAN,CAAmB,cAAnB,CAArD,CAAA;;QACA,IAAIqxB,SAAS,KAAK1oC,IAAlB,EAAwB;AACtB,UAAA,MAAMsQ,KAAK,GAAG1G,YAAY,CAACqK,KAAD,CAA1B,CAAA;AACApO,UAAAA,MAAM,CAACgX,OAAP,CAAevM,KAAf,EAAsBhK,KAAtB,EAA6BT,MAAM,CAACQ,MAAP,CAAcuU,kBAA3C,EAA+D,IAA/D,CAAA,CAAA;AACD,SAAA;AACF,OAAA;AACF,KAAA;;AACD,IAAA,IAAI/U,MAAM,CAACQ,MAAP,CAAc8hC,cAAd,CAA6BE,UAAjC,EAA6C;AAC3CnmC,MAAAA,MAAM,CAACrD,gBAAP,CAAwB,YAAxB,EAAsCypC,YAAtC,CAAA,CAAA;AACD,KAAA;GArBH,CAAA;;EAuBA,MAAMn5B,OAAO,GAAG,MAAM;AACpB,IAAA,IAAItJ,MAAM,CAACQ,MAAP,CAAc8hC,cAAd,CAA6BE,UAAjC,EAA6C;AAC3CnmC,MAAAA,MAAM,CAACpD,mBAAP,CAA2B,YAA3B,EAAyCwpC,YAAzC,CAAA,CAAA;AACD,KAAA;GAHH,CAAA;;EAMAz7B,EAAE,CAAC,MAAD,EAAS,MAAM;AACf,IAAA,IAAIhH,MAAM,CAACQ,MAAP,CAAc8hC,cAAd,CAA6Bl2B,OAAjC,EAA0C;MACxClD,IAAI,EAAA,CAAA;AACL,KAAA;AACF,GAJC,CAAF,CAAA;EAKAlC,EAAE,CAAC,SAAD,EAAY,MAAM;AAClB,IAAA,IAAIhH,MAAM,CAACQ,MAAP,CAAc8hC,cAAd,CAA6Bl2B,OAAjC,EAA0C;MACxC9C,OAAO,EAAA,CAAA;AACR,KAAA;AACF,GAJC,CAAF,CAAA;EAKAtC,EAAE,CAAC,0CAAD,EAA6C,MAAM;AACnD,IAAA,IAAIM,WAAJ,EAAiB;MACfs7B,OAAO,EAAA,CAAA;AACR,KAAA;AACF,GAJC,CAAF,CAAA;EAKA57B,EAAE,CAAC,aAAD,EAAgB,MAAM;AACtB,IAAA,IAAIM,WAAW,IAAItH,MAAM,CAACQ,MAAP,CAAcmN,OAAjC,EAA0C;MACxCi1B,OAAO,EAAA,CAAA;AACR,KAAA;AACF,GAJC,CAAF,CAAA;AAKD;;AClGD;AAIe,SAASE,QAAT,CAA8D,IAAA,EAAA;EAAA,IAA5C;IAAE9iC,MAAF;IAAUsI,YAAV;IAAwBtB,EAAxB;IAA4BC,IAA5B;AAAkCzG,IAAAA,MAAAA;GAAU,GAAA,IAAA,CAAA;EAC3ER,MAAM,CAACyhB,QAAP,GAAkB;AAChBC,IAAAA,OAAO,EAAE,KADO;AAEhBC,IAAAA,MAAM,EAAE,KAFQ;AAGhBohB,IAAAA,QAAQ,EAAE,CAAA;GAHZ,CAAA;AAMAz6B,EAAAA,YAAY,CAAC;AACXmZ,IAAAA,QAAQ,EAAE;AACRrV,MAAAA,OAAO,EAAE,KADD;AAER1P,MAAAA,KAAK,EAAE,IAFC;AAGRsmC,MAAAA,iBAAiB,EAAE,IAHX;AAIRC,MAAAA,oBAAoB,EAAE,IAJd;AAKRC,MAAAA,eAAe,EAAE,KALT;AAMRC,MAAAA,gBAAgB,EAAE,KANV;AAORC,MAAAA,iBAAiB,EAAE,KAAA;AAPX,KAAA;AADC,GAAD,CAAZ,CAAA;AAWA,EAAA,IAAI/hB,OAAJ,CAAA;AACA,EAAA,IAAIgiB,GAAJ,CAAA;AACA,EAAA,IAAIC,kBAAkB,GAAG9iC,MAAM,IAAIA,MAAM,CAACihB,QAAjB,GAA4BjhB,MAAM,CAACihB,QAAP,CAAgB/kB,KAA5C,GAAoD,IAA7E,CAAA;AACA,EAAA,IAAI6mC,oBAAoB,GAAG/iC,MAAM,IAAIA,MAAM,CAACihB,QAAjB,GAA4BjhB,MAAM,CAACihB,QAAP,CAAgB/kB,KAA5C,GAAoD,IAA/E,CAAA;AACA,EAAA,IAAI8mC,gBAAJ,CAAA;AACA,EAAA,IAAIC,iBAAiB,GAAG,IAAI/nC,IAAJ,GAAWuF,OAAnC,CAAA;AACA,EAAA,IAAIyiC,SAAJ,CAAA;AACA,EAAA,IAAI/nB,SAAJ,CAAA;AACA,EAAA,IAAIgoB,aAAJ,CAAA;AACA,EAAA,IAAIC,iBAAJ,CAAA;AACA,EAAA,IAAIC,YAAJ,CAAA;AACA,EAAA,IAAIC,mBAAJ,CAAA;;EAEA,SAAS3I,eAAT,CAAyB3+B,CAAzB,EAA4B;IAC1B,IAAI,CAACwD,MAAD,IAAWA,MAAM,CAACqH,SAAlB,IAA+B,CAACrH,MAAM,CAACU,SAA3C,EAAsD,OAAA;AACtD,IAAA,IAAIlE,CAAC,CAAChE,MAAF,KAAawH,MAAM,CAACU,SAAxB,EAAmC,OAAA;AACnCV,IAAAA,MAAM,CAACU,SAAP,CAAiBzH,mBAAjB,CAAqC,eAArC,EAAsDkiC,eAAtD,CAAA,CAAA;IACAvZ,MAAM,EAAA,CAAA;AACP,GAAA;;EAED,MAAMmiB,YAAY,GAAG,MAAM;IACzB,IAAI/jC,MAAM,CAACqH,SAAP,IAAoB,CAACrH,MAAM,CAACyhB,QAAP,CAAgBC,OAAzC,EAAkD,OAAA;;AAClD,IAAA,IAAI1hB,MAAM,CAACyhB,QAAP,CAAgBE,MAApB,EAA4B;AAC1B+hB,MAAAA,SAAS,GAAG,IAAZ,CAAA;KADF,MAEO,IAAIA,SAAJ,EAAe;AACpBH,MAAAA,oBAAoB,GAAGC,gBAAvB,CAAA;AACAE,MAAAA,SAAS,GAAG,KAAZ,CAAA;AACD,KAAA;;AACD,IAAA,MAAMX,QAAQ,GAAG/iC,MAAM,CAACyhB,QAAP,CAAgBE,MAAhB,GACb6hB,gBADa,GAEbC,iBAAiB,GAAGF,oBAApB,GAA2C,IAAI7nC,IAAJ,EAAA,CAAWuF,OAAX,EAF/C,CAAA;AAGAjB,IAAAA,MAAM,CAACyhB,QAAP,CAAgBshB,QAAhB,GAA2BA,QAA3B,CAAA;IACA97B,IAAI,CAAC,kBAAD,EAAqB87B,QAArB,EAA+BA,QAAQ,GAAGO,kBAA1C,CAAJ,CAAA;IACAD,GAAG,GAAGtnC,qBAAqB,CAAC,MAAM;MAChCgoC,YAAY,EAAA,CAAA;AACb,KAF0B,CAA3B,CAAA;GAbF,CAAA;;EAkBA,MAAMC,aAAa,GAAG,MAAM;AAC1B,IAAA,IAAIC,aAAJ,CAAA;;IACA,IAAIjkC,MAAM,CAACmM,OAAP,IAAkBnM,MAAM,CAACQ,MAAP,CAAc2L,OAAd,CAAsBC,OAA5C,EAAqD;AACnD63B,MAAAA,aAAa,GAAGjkC,MAAM,CAACsM,MAAP,CAAcpN,MAAd,CAAsB2C,OAAD,IACnCA,OAAO,CAACQ,SAAR,CAAkB4O,QAAlB,CAA2B,qBAA3B,CADc,CAAA,CAEd,CAFc,CAAhB,CAAA;AAGD,KAJD,MAIO;MACLgzB,aAAa,GAAGjkC,MAAM,CAACsM,MAAP,CAActM,MAAM,CAAC0R,WAArB,CAAhB,CAAA;AACD,KAAA;;AACD,IAAA,IAAI,CAACuyB,aAAL,EAAoB,OAAOjlC,SAAP,CAAA;AACpB,IAAA,MAAMklC,iBAAiB,GAAG94B,QAAQ,CAAC64B,aAAa,CAACzyB,YAAd,CAA2B,sBAA3B,CAAD,EAAqD,EAArD,CAAlC,CAAA;AACA,IAAA,OAAO0yB,iBAAP,CAAA;GAXF,CAAA;;EAcA,MAAMC,GAAG,GAAIC,UAAD,IAAgB;IAC1B,IAAIpkC,MAAM,CAACqH,SAAP,IAAoB,CAACrH,MAAM,CAACyhB,QAAP,CAAgBC,OAAzC,EAAkD,OAAA;IAClDzlB,oBAAoB,CAAConC,GAAD,CAApB,CAAA;IACAU,YAAY,EAAA,CAAA;AAEZ,IAAA,IAAIrnC,KAAK,GAAG,OAAO0nC,UAAP,KAAsB,WAAtB,GAAoCpkC,MAAM,CAACQ,MAAP,CAAcihB,QAAd,CAAuB/kB,KAA3D,GAAmE0nC,UAA/E,CAAA;AACAd,IAAAA,kBAAkB,GAAGtjC,MAAM,CAACQ,MAAP,CAAcihB,QAAd,CAAuB/kB,KAA5C,CAAA;AACA6mC,IAAAA,oBAAoB,GAAGvjC,MAAM,CAACQ,MAAP,CAAcihB,QAAd,CAAuB/kB,KAA9C,CAAA;IACA,MAAMwnC,iBAAiB,GAAGF,aAAa,EAAvC,CAAA;;AACA,IAAA,IACE,CAAC34B,MAAM,CAACC,KAAP,CAAa44B,iBAAb,CAAD,IACAA,iBAAiB,GAAG,CADpB,IAEA,OAAOE,UAAP,KAAsB,WAHxB,EAIE;AACA1nC,MAAAA,KAAK,GAAGwnC,iBAAR,CAAA;AACAZ,MAAAA,kBAAkB,GAAGY,iBAArB,CAAA;AACAX,MAAAA,oBAAoB,GAAGW,iBAAvB,CAAA;AACD,KAAA;;AACDV,IAAAA,gBAAgB,GAAG9mC,KAAnB,CAAA;AACA,IAAA,MAAM+D,KAAK,GAAGT,MAAM,CAACQ,MAAP,CAAcC,KAA5B,CAAA;;IACA,MAAM4jC,OAAO,GAAG,MAAM;AACpB,MAAA,IAAIrkC,MAAM,CAACQ,MAAP,CAAcihB,QAAd,CAAuB0hB,gBAA3B,EAA6C;AAC3C,QAAA,IAAI,CAACnjC,MAAM,CAAC+S,WAAR,IAAuB/S,MAAM,CAACQ,MAAP,CAAc+O,IAArC,IAA6CvP,MAAM,CAACQ,MAAP,CAAc6X,MAA/D,EAAuE;AACrErY,UAAAA,MAAM,CAACsY,SAAP,CAAiB7X,KAAjB,EAAwB,IAAxB,EAA8B,IAA9B,CAAA,CAAA;UACAwG,IAAI,CAAC,UAAD,CAAJ,CAAA;SAFF,MAGO,IAAI,CAACjH,MAAM,CAACQ,MAAP,CAAcihB,QAAd,CAAuByhB,eAA5B,EAA6C;AAClDljC,UAAAA,MAAM,CAACgX,OAAP,CAAehX,MAAM,CAACsM,MAAP,CAAczT,MAAd,GAAuB,CAAtC,EAAyC4H,KAAzC,EAAgD,IAAhD,EAAsD,IAAtD,CAAA,CAAA;UACAwG,IAAI,CAAC,UAAD,CAAJ,CAAA;AACD,SAAA;AACF,OARD,MAQO;AACL,QAAA,IAAI,CAACjH,MAAM,CAACgT,KAAR,IAAiBhT,MAAM,CAACQ,MAAP,CAAc+O,IAA/B,IAAuCvP,MAAM,CAACQ,MAAP,CAAc6X,MAAzD,EAAiE;AAC/DrY,UAAAA,MAAM,CAAC8X,SAAP,CAAiBrX,KAAjB,EAAwB,IAAxB,EAA8B,IAA9B,CAAA,CAAA;UACAwG,IAAI,CAAC,UAAD,CAAJ,CAAA;SAFF,MAGO,IAAI,CAACjH,MAAM,CAACQ,MAAP,CAAcihB,QAAd,CAAuByhB,eAA5B,EAA6C;UAClDljC,MAAM,CAACgX,OAAP,CAAe,CAAf,EAAkBvW,KAAlB,EAAyB,IAAzB,EAA+B,IAA/B,CAAA,CAAA;UACAwG,IAAI,CAAC,UAAD,CAAJ,CAAA;AACD,SAAA;AACF,OAAA;;AACD,MAAA,IAAIjH,MAAM,CAACQ,MAAP,CAAcmN,OAAlB,EAA2B;AACzB81B,QAAAA,iBAAiB,GAAG,IAAI/nC,IAAJ,EAAA,CAAWuF,OAAX,EAApB,CAAA;AACAlF,QAAAA,qBAAqB,CAAC,MAAM;UAC1BooC,GAAG,EAAA,CAAA;AACJ,SAFoB,CAArB,CAAA;AAGD,OAAA;KAvBH,CAAA;;IAyBA,IAAIznC,KAAK,GAAG,CAAZ,EAAe;MACbb,YAAY,CAACwlB,OAAD,CAAZ,CAAA;MACAA,OAAO,GAAGzlB,UAAU,CAAC,MAAM;QACzByoC,OAAO,EAAA,CAAA;OADW,EAEjB3nC,KAFiB,CAApB,CAAA;AAGD,KALD,MAKO;AACLX,MAAAA,qBAAqB,CAAC,MAAM;QAC1BsoC,OAAO,EAAA,CAAA;AACR,OAFoB,CAArB,CAAA;AAGD,KAtDyB;;;AAyD1B,IAAA,OAAO3nC,KAAP,CAAA;GAzDF,CAAA;;EA4DA,MAAM4nC,KAAK,GAAG,MAAM;AAClBtkC,IAAAA,MAAM,CAACyhB,QAAP,CAAgBC,OAAhB,GAA0B,IAA1B,CAAA;IACAyiB,GAAG,EAAA,CAAA;IACHl9B,IAAI,CAAC,eAAD,CAAJ,CAAA;GAHF,CAAA;;EAMA,MAAM2pB,IAAI,GAAG,MAAM;AACjB5wB,IAAAA,MAAM,CAACyhB,QAAP,CAAgBC,OAAhB,GAA0B,KAA1B,CAAA;IACA7lB,YAAY,CAACwlB,OAAD,CAAZ,CAAA;IACAplB,oBAAoB,CAAConC,GAAD,CAApB,CAAA;IACAp8B,IAAI,CAAC,cAAD,CAAJ,CAAA;GAJF,CAAA;;AAMA,EAAA,MAAMs9B,KAAK,GAAG,CAACpuB,QAAD,EAAWquB,KAAX,KAAqB;IACjC,IAAIxkC,MAAM,CAACqH,SAAP,IAAoB,CAACrH,MAAM,CAACyhB,QAAP,CAAgBC,OAAzC,EAAkD,OAAA;IAClD7lB,YAAY,CAACwlB,OAAD,CAAZ,CAAA;;IACA,IAAI,CAAClL,QAAL,EAAe;AACb2tB,MAAAA,mBAAmB,GAAG,IAAtB,CAAA;AACD,KAAA;;IAED,MAAMO,OAAO,GAAG,MAAM;MACpBp9B,IAAI,CAAC,eAAD,CAAJ,CAAA;;AACA,MAAA,IAAIjH,MAAM,CAACQ,MAAP,CAAcihB,QAAd,CAAuBuhB,iBAA3B,EAA8C;AAC5ChjC,QAAAA,MAAM,CAACU,SAAP,CAAiB1H,gBAAjB,CAAkC,eAAlC,EAAmDmiC,eAAnD,CAAA,CAAA;AACD,OAFD,MAEO;QACLvZ,MAAM,EAAA,CAAA;AACP,OAAA;KANH,CAAA;;AASA5hB,IAAAA,MAAM,CAACyhB,QAAP,CAAgBE,MAAhB,GAAyB,IAAzB,CAAA;;AACA,IAAA,IAAI6iB,KAAJ,EAAW;AACT,MAAA,IAAIX,YAAJ,EAAkB;AAChBL,QAAAA,gBAAgB,GAAGxjC,MAAM,CAACQ,MAAP,CAAcihB,QAAd,CAAuB/kB,KAA1C,CAAA;AACD,OAAA;;AACDmnC,MAAAA,YAAY,GAAG,KAAf,CAAA;MACAQ,OAAO,EAAA,CAAA;AACP,MAAA,OAAA;AACD,KAAA;;IACD,MAAM3nC,KAAK,GAAG8mC,gBAAgB,IAAIxjC,MAAM,CAACQ,MAAP,CAAcihB,QAAd,CAAuB/kB,KAAzD,CAAA;IACA8mC,gBAAgB,GAAG9mC,KAAK,IAAI,IAAIhB,IAAJ,EAAWuF,CAAAA,OAAX,EAAuBwiC,GAAAA,iBAA3B,CAAxB,CAAA;AACA,IAAA,IAAIzjC,MAAM,CAACgT,KAAP,IAAgBwwB,gBAAgB,GAAG,CAAnC,IAAwC,CAACxjC,MAAM,CAACQ,MAAP,CAAc+O,IAA3D,EAAiE,OAAA;AACjE,IAAA,IAAIi0B,gBAAgB,GAAG,CAAvB,EAA0BA,gBAAgB,GAAG,CAAnB,CAAA;IAC1Ba,OAAO,EAAA,CAAA;GA7BT,CAAA;;EAgCA,MAAMziB,MAAM,GAAG,MAAM;IACnB,IACG5hB,MAAM,CAACgT,KAAP,IAAgBwwB,gBAAgB,GAAG,CAAnC,IAAwC,CAACxjC,MAAM,CAACQ,MAAP,CAAc+O,IAAxD,IACAvP,MAAM,CAACqH,SADP,IAEA,CAACrH,MAAM,CAACyhB,QAAP,CAAgBC,OAHnB,EAKE,OAAA;AACF+hB,IAAAA,iBAAiB,GAAG,IAAI/nC,IAAJ,EAAA,CAAWuF,OAAX,EAApB,CAAA;;AACA,IAAA,IAAI6iC,mBAAJ,EAAyB;AACvBA,MAAAA,mBAAmB,GAAG,KAAtB,CAAA;MACAK,GAAG,CAACX,gBAAD,CAAH,CAAA;AACD,KAHD,MAGO;MACLW,GAAG,EAAA,CAAA;AACJ,KAAA;;AACDnkC,IAAAA,MAAM,CAACyhB,QAAP,CAAgBE,MAAhB,GAAyB,KAAzB,CAAA;IACA1a,IAAI,CAAC,gBAAD,CAAJ,CAAA;GAfF,CAAA;;EAkBA,MAAMw9B,kBAAkB,GAAG,MAAM;IAC/B,IAAIzkC,MAAM,CAACqH,SAAP,IAAoB,CAACrH,MAAM,CAACyhB,QAAP,CAAgBC,OAAzC,EAAkD,OAAA;IAClD,MAAM7mB,QAAQ,GAAGF,WAAW,EAA5B,CAAA;;AACA,IAAA,IAAIE,QAAQ,CAAC6pC,eAAT,KAA6B,QAAjC,EAA2C;AACzCZ,MAAAA,mBAAmB,GAAG,IAAtB,CAAA;MACAS,KAAK,CAAC,IAAD,CAAL,CAAA;AACD,KAAA;;AACD,IAAA,IAAI1pC,QAAQ,CAAC6pC,eAAT,KAA6B,SAAjC,EAA4C;MAC1C9iB,MAAM,EAAA,CAAA;AACP,KAAA;GATH,CAAA;;EAYA,MAAM+iB,cAAc,GAAInoC,CAAD,IAAO;AAC5B,IAAA,IAAIA,CAAC,CAAC8e,WAAF,KAAkB,OAAtB,EAA+B,OAAA;AAC/BwoB,IAAAA,mBAAmB,GAAG,IAAtB,CAAA;IACAS,KAAK,CAAC,IAAD,CAAL,CAAA;GAHF,CAAA;;EAMA,MAAMK,cAAc,GAAIpoC,CAAD,IAAO;AAC5B,IAAA,IAAIA,CAAC,CAAC8e,WAAF,KAAkB,OAAtB,EAA+B,OAAA;;AAC/B,IAAA,IAAItb,MAAM,CAACyhB,QAAP,CAAgBE,MAApB,EAA4B;MAC1BC,MAAM,EAAA,CAAA;AACP,KAAA;GAJH,CAAA;;EAOA,MAAMijB,iBAAiB,GAAG,MAAM;AAC9B,IAAA,IAAI7kC,MAAM,CAACQ,MAAP,CAAcihB,QAAd,CAAuB2hB,iBAA3B,EAA8C;AAC5CpjC,MAAAA,MAAM,CAACpD,EAAP,CAAU5D,gBAAV,CAA2B,cAA3B,EAA2C2rC,cAA3C,CAAA,CAAA;AACA3kC,MAAAA,MAAM,CAACpD,EAAP,CAAU5D,gBAAV,CAA2B,cAA3B,EAA2C4rC,cAA3C,CAAA,CAAA;AACD,KAAA;GAJH,CAAA;;EAOA,MAAME,iBAAiB,GAAG,MAAM;AAC9B9kC,IAAAA,MAAM,CAACpD,EAAP,CAAU3D,mBAAV,CAA8B,cAA9B,EAA8C0rC,cAA9C,CAAA,CAAA;AACA3kC,IAAAA,MAAM,CAACpD,EAAP,CAAU3D,mBAAV,CAA8B,cAA9B,EAA8C2rC,cAA9C,CAAA,CAAA;GAFF,CAAA;;EAKA,MAAMG,oBAAoB,GAAG,MAAM;IACjC,MAAMlqC,QAAQ,GAAGF,WAAW,EAA5B,CAAA;AACAE,IAAAA,QAAQ,CAAC7B,gBAAT,CAA0B,kBAA1B,EAA8CyrC,kBAA9C,CAAA,CAAA;GAFF,CAAA;;EAKA,MAAMO,oBAAoB,GAAG,MAAM;IACjC,MAAMnqC,QAAQ,GAAGF,WAAW,EAA5B,CAAA;AACAE,IAAAA,QAAQ,CAAC5B,mBAAT,CAA6B,kBAA7B,EAAiDwrC,kBAAjD,CAAA,CAAA;GAFF,CAAA;;EAKAz9B,EAAE,CAAC,MAAD,EAAS,MAAM;AACf,IAAA,IAAIhH,MAAM,CAACQ,MAAP,CAAcihB,QAAd,CAAuBrV,OAA3B,EAAoC;MAClCy4B,iBAAiB,EAAA,CAAA;MACjBE,oBAAoB,EAAA,CAAA;AACpBtB,MAAAA,iBAAiB,GAAG,IAAI/nC,IAAJ,EAAA,CAAWuF,OAAX,EAApB,CAAA;MACAqjC,KAAK,EAAA,CAAA;AACN,KAAA;AACF,GAPC,CAAF,CAAA;EASAt9B,EAAE,CAAC,SAAD,EAAY,MAAM;IAClB89B,iBAAiB,EAAA,CAAA;IACjBE,oBAAoB,EAAA,CAAA;;AACpB,IAAA,IAAIhlC,MAAM,CAACyhB,QAAP,CAAgBC,OAApB,EAA6B;MAC3BkP,IAAI,EAAA,CAAA;AACL,KAAA;AACF,GANC,CAAF,CAAA;EAQA5pB,EAAE,CAAC,uBAAD,EAA0B,CAAC+qB,EAAD,EAAKtxB,KAAL,EAAY0V,QAAZ,KAAyB;IACnD,IAAInW,MAAM,CAACqH,SAAP,IAAoB,CAACrH,MAAM,CAACyhB,QAAP,CAAgBC,OAAzC,EAAkD,OAAA;;IAClD,IAAIvL,QAAQ,IAAI,CAACnW,MAAM,CAACQ,MAAP,CAAcihB,QAAd,CAAuBwhB,oBAAxC,EAA8D;AAC5DsB,MAAAA,KAAK,CAAC,IAAD,EAAO,IAAP,CAAL,CAAA;AACD,KAFD,MAEO;MACL3T,IAAI,EAAA,CAAA;AACL,KAAA;AACF,GAPC,CAAF,CAAA;EASA5pB,EAAE,CAAC,iBAAD,EAAoB,MAAM;IAC1B,IAAIhH,MAAM,CAACqH,SAAP,IAAoB,CAACrH,MAAM,CAACyhB,QAAP,CAAgBC,OAAzC,EAAkD,OAAA;;AAElD,IAAA,IAAI1hB,MAAM,CAACQ,MAAP,CAAcihB,QAAd,CAAuBwhB,oBAA3B,EAAiD;MAC/CrS,IAAI,EAAA,CAAA;AACJ,MAAA,OAAA;AACD,KAAA;;AACDjV,IAAAA,SAAS,GAAG,IAAZ,CAAA;AACAgoB,IAAAA,aAAa,GAAG,KAAhB,CAAA;AACAG,IAAAA,mBAAmB,GAAG,KAAtB,CAAA;IACAF,iBAAiB,GAAGhoC,UAAU,CAAC,MAAM;AACnCkoC,MAAAA,mBAAmB,GAAG,IAAtB,CAAA;AACAH,MAAAA,aAAa,GAAG,IAAhB,CAAA;MACAY,KAAK,CAAC,IAAD,CAAL,CAAA;KAH4B,EAI3B,GAJ2B,CAA9B,CAAA;AAKD,GAfC,CAAF,CAAA;EAiBAv9B,EAAE,CAAC,UAAD,EAAa,MAAM;AACnB,IAAA,IAAIhH,MAAM,CAACqH,SAAP,IAAoB,CAACrH,MAAM,CAACyhB,QAAP,CAAgBC,OAArC,IAAgD,CAAC/F,SAArD,EAAgE,OAAA;IAChE9f,YAAY,CAAC+nC,iBAAD,CAAZ,CAAA;IACA/nC,YAAY,CAACwlB,OAAD,CAAZ,CAAA;;AAEA,IAAA,IAAIrhB,MAAM,CAACQ,MAAP,CAAcihB,QAAd,CAAuBwhB,oBAA3B,EAAiD;AAC/CU,MAAAA,aAAa,GAAG,KAAhB,CAAA;AACAhoB,MAAAA,SAAS,GAAG,KAAZ,CAAA;AACA,MAAA,OAAA;AACD,KAAA;;IAED,IAAIgoB,aAAa,IAAI3jC,MAAM,CAACQ,MAAP,CAAcmN,OAAnC,EAA4CiU,MAAM,EAAA,CAAA;AAClD+hB,IAAAA,aAAa,GAAG,KAAhB,CAAA;AACAhoB,IAAAA,SAAS,GAAG,KAAZ,CAAA;AACD,GAdC,CAAF,CAAA;EAgBA3U,EAAE,CAAC,aAAD,EAAgB,MAAM;IACtB,IAAIhH,MAAM,CAACqH,SAAP,IAAoB,CAACrH,MAAM,CAACyhB,QAAP,CAAgBC,OAAzC,EAAkD,OAAA;AAClDmiB,IAAAA,YAAY,GAAG,IAAf,CAAA;AACD,GAHC,CAAF,CAAA;AAKAvrC,EAAAA,MAAM,CAACiT,MAAP,CAAcvL,MAAM,CAACyhB,QAArB,EAA+B;IAC7B6iB,KAD6B;IAE7B1T,IAF6B;IAG7B2T,KAH6B;AAI7B3iB,IAAAA,MAAAA;GAJF,CAAA,CAAA;AAMD;;ACtTc,SAASqjB,KAAT,CAA6C,IAAA,EAAA;EAAA,IAA9B;IAAEjlC,MAAF;IAAUsI,YAAV;AAAwBtB,IAAAA,EAAAA;GAAM,GAAA,IAAA,CAAA;AAC1DsB,EAAAA,YAAY,CAAC;AACX48B,IAAAA,MAAM,EAAE;AACNllC,MAAAA,MAAM,EAAE,IADF;AAENmlC,MAAAA,oBAAoB,EAAE,IAFhB;AAGNC,MAAAA,gBAAgB,EAAE,CAHZ;AAINC,MAAAA,qBAAqB,EAAE,2BAJjB;AAKNC,MAAAA,oBAAoB,EAAE,eAAA;AALhB,KAAA;AADG,GAAD,CAAZ,CAAA;EAUA,IAAIh+B,WAAW,GAAG,KAAlB,CAAA;EACA,IAAIi+B,aAAa,GAAG,KAApB,CAAA;EAEAvlC,MAAM,CAACklC,MAAP,GAAgB;AACdllC,IAAAA,MAAM,EAAE,IAAA;GADV,CAAA;;AAIA,EAAA,SAASwlC,YAAT,GAAwB;AACtB,IAAA,MAAMC,YAAY,GAAGzlC,MAAM,CAACklC,MAAP,CAAcllC,MAAnC,CAAA;AACA,IAAA,IAAI,CAACylC,YAAD,IAAiBA,YAAY,CAACp+B,SAAlC,EAA6C,OAAA;AAE7C,IAAA,MAAM+N,YAAY,GAAGqwB,YAAY,CAACrwB,YAAlC,CAAA;AACA,IAAA,MAAMD,YAAY,GAAGswB,YAAY,CAACtwB,YAAlC,CAAA;AACA,IAAA,IAAIA,YAAY,IAAIA,YAAY,CAAC9S,SAAb,CAAuB4O,QAAvB,CAAgCjR,MAAM,CAACQ,MAAP,CAAc0kC,MAAd,CAAqBG,qBAArD,CAApB,EACE,OAAA;IACF,IAAI,OAAOjwB,YAAP,KAAwB,WAAxB,IAAuCA,YAAY,KAAK,IAA5D,EAAkE,OAAA;AAClE,IAAA,IAAI+D,YAAJ,CAAA;;AACA,IAAA,IAAIssB,YAAY,CAACjlC,MAAb,CAAoB+O,IAAxB,EAA8B;AAC5B4J,MAAAA,YAAY,GAAG/N,QAAQ,CACrBq6B,YAAY,CAACtwB,YAAb,CAA0B3D,YAA1B,CAAuC,yBAAvC,CADqB,EAErB,EAFqB,CAAvB,CAAA;AAID,KALD,MAKO;AACL2H,MAAAA,YAAY,GAAG/D,YAAf,CAAA;AACD,KAAA;;AACD,IAAA,IAAIpV,MAAM,CAACQ,MAAP,CAAc+O,IAAlB,EAAwB;AACtB,MAAA,MAAMm2B,YAAY,GAAG1lC,MAAM,CAAC0R,WAA5B,CAAA;MAEA,MAAMkH,SAAS,GAAG5Y,MAAM,CAACsM,MAAP,CAAcnN,OAAd,CAChBiE,cAAc,CACZpD,MAAM,CAACsM,MAAP,CAAco5B,YAAd,CADY,EAEX,CAA4BvsB,0BAAAA,EAAAA,YAAa,IAF9B,CAAd,CAGE,CAHF,CADgB,CAAlB,CAAA;MAMA,MAAM/Z,SAAS,GAAGY,MAAM,CAACsM,MAAP,CAAcnN,OAAd,CAChBsE,cAAc,CACZzD,MAAM,CAACsM,MAAP,CAAco5B,YAAd,CADY,EAEX,CAA4BvsB,0BAAAA,EAAAA,YAAa,IAF9B,CAAd,CAGE,CAHF,CADgB,CAAlB,CAAA;AAOA,MAAA,IAAI,OAAOP,SAAP,KAAqB,WAAzB,EAAsCO,YAAY,GAAG/Z,SAAf,CAAtC,KACK,IAAI,OAAOA,SAAP,KAAqB,WAAzB,EAAsC+Z,YAAY,GAAGP,SAAf,CAAtC,KACA,IAAIxZ,SAAS,GAAGsmC,YAAZ,GAA2BA,YAAY,GAAG9sB,SAA9C,EAAyDO,YAAY,GAAG/Z,SAAf,CAAzD,KACA+Z,YAAY,GAAGP,SAAf,CAAA;AACN,KAAA;;IACD5Y,MAAM,CAACgX,OAAP,CAAemC,YAAf,CAAA,CAAA;AACD,GAAA;;AAED,EAAA,SAASjQ,IAAT,GAAgB;IACd,MAAM;AAAEg8B,MAAAA,MAAM,EAAES,YAAAA;KAAiB3lC,GAAAA,MAAM,CAACQ,MAAxC,CAAA;IACA,IAAI8G,WAAJ,EAAiB,OAAO,KAAP,CAAA;AACjBA,IAAAA,WAAW,GAAG,IAAd,CAAA;AACA,IAAA,MAAMs+B,WAAW,GAAG5lC,MAAM,CAAC3H,WAA3B,CAAA;;AACA,IAAA,IAAIstC,YAAY,CAAC3lC,MAAb,YAA+B4lC,WAAnC,EAAgD;AAC9C5lC,MAAAA,MAAM,CAACklC,MAAP,CAAcllC,MAAd,GAAuB2lC,YAAY,CAAC3lC,MAApC,CAAA;MACA1H,MAAM,CAACiT,MAAP,CAAcvL,MAAM,CAACklC,MAAP,CAAcllC,MAAd,CAAqBujB,cAAnC,EAAmD;AACjD3S,QAAAA,mBAAmB,EAAE,IAD4B;AAEjDyE,QAAAA,mBAAmB,EAAE,KAAA;OAFvB,CAAA,CAAA;MAIA/c,MAAM,CAACiT,MAAP,CAAcvL,MAAM,CAACklC,MAAP,CAAcllC,MAAd,CAAqBQ,MAAnC,EAA2C;AACzCoQ,QAAAA,mBAAmB,EAAE,IADoB;AAEzCyE,QAAAA,mBAAmB,EAAE,KAAA;OAFvB,CAAA,CAAA;AAIArV,MAAAA,MAAM,CAACklC,MAAP,CAAcllC,MAAd,CAAqBqiB,MAArB,EAAA,CAAA;KAVF,MAWO,IAAIlqB,QAAQ,CAACwtC,YAAY,CAAC3lC,MAAd,CAAZ,EAAmC;MACxC,MAAM6lC,kBAAkB,GAAGvtC,MAAM,CAACiT,MAAP,CAAc,EAAd,EAAkBo6B,YAAY,CAAC3lC,MAA/B,CAA3B,CAAA;AACA1H,MAAAA,MAAM,CAACiT,MAAP,CAAcs6B,kBAAd,EAAkC;AAChCj1B,QAAAA,mBAAmB,EAAE,IADW;AAEhCyE,QAAAA,mBAAmB,EAAE,KAAA;OAFvB,CAAA,CAAA;MAIArV,MAAM,CAACklC,MAAP,CAAcllC,MAAd,GAAuB,IAAI4lC,WAAJ,CAAgBC,kBAAhB,CAAvB,CAAA;AACAN,MAAAA,aAAa,GAAG,IAAhB,CAAA;AACD,KAAA;;AACDvlC,IAAAA,MAAM,CAACklC,MAAP,CAAcllC,MAAd,CAAqBpD,EAArB,CAAwByF,SAAxB,CAAkCC,GAAlC,CAAsCtC,MAAM,CAACQ,MAAP,CAAc0kC,MAAd,CAAqBI,oBAA3D,CAAA,CAAA;IACAtlC,MAAM,CAACklC,MAAP,CAAcllC,MAAd,CAAqBgH,EAArB,CAAwB,KAAxB,EAA+Bw+B,YAA/B,CAAA,CAAA;AACA,IAAA,OAAO,IAAP,CAAA;AACD,GAAA;;EAED,SAASnjB,MAAT,CAAgBpL,OAAhB,EAAyB;AACvB,IAAA,MAAMwuB,YAAY,GAAGzlC,MAAM,CAACklC,MAAP,CAAcllC,MAAnC,CAAA;AACA,IAAA,IAAI,CAACylC,YAAD,IAAiBA,YAAY,CAACp+B,SAAlC,EAA6C,OAAA;IAE7C,MAAM6G,aAAa,GACjBu3B,YAAY,CAACjlC,MAAb,CAAoB0N,aAApB,KAAsC,MAAtC,GACIu3B,YAAY,CAACxtB,oBAAb,EADJ,GAEIwtB,YAAY,CAACjlC,MAAb,CAAoB0N,aAH1B,CAJuB;;IAUvB,IAAI43B,gBAAgB,GAAG,CAAvB,CAAA;IACA,MAAMC,gBAAgB,GAAG/lC,MAAM,CAACQ,MAAP,CAAc0kC,MAAd,CAAqBG,qBAA9C,CAAA;;AAEA,IAAA,IAAIrlC,MAAM,CAACQ,MAAP,CAAc0N,aAAd,GAA8B,CAA9B,IAAmC,CAAClO,MAAM,CAACQ,MAAP,CAAckN,cAAtD,EAAsE;AACpEo4B,MAAAA,gBAAgB,GAAG9lC,MAAM,CAACQ,MAAP,CAAc0N,aAAjC,CAAA;AACD,KAAA;;IAED,IAAI,CAAClO,MAAM,CAACQ,MAAP,CAAc0kC,MAAd,CAAqBC,oBAA1B,EAAgD;AAC9CW,MAAAA,gBAAgB,GAAG,CAAnB,CAAA;AACD,KAAA;;AAEDA,IAAAA,gBAAgB,GAAG3kC,IAAI,CAAC0N,KAAL,CAAWi3B,gBAAX,CAAnB,CAAA;AAEAL,IAAAA,YAAY,CAACn5B,MAAb,CAAoB3T,OAApB,CAA6BkJ,OAAD,IAAaA,OAAO,CAACQ,SAAR,CAAkB8O,MAAlB,CAAyB40B,gBAAzB,CAAzC,CAAA,CAAA;;AACA,IAAA,IACEN,YAAY,CAACjlC,MAAb,CAAoB+O,IAApB,IACCk2B,YAAY,CAACjlC,MAAb,CAAoB2L,OAApB,IAA+Bs5B,YAAY,CAACjlC,MAAb,CAAoB2L,OAApB,CAA4BC,OAF9D,EAGE;AACA,MAAA,KAAK,IAAItN,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgnC,gBAApB,EAAsChnC,CAAC,IAAI,CAA3C,EAA8C;AAC5CiD,QAAAA,eAAe,CACb0jC,YAAY,CAAC55B,QADA,EAEZ,6BAA4B7L,MAAM,CAACyU,SAAP,GAAmB3V,CAAE,CAFrC,EAAA,CAAA,CAAf,CAGEnG,OAHF,CAGWkJ,OAAD,IAAa;AACrBA,UAAAA,OAAO,CAACQ,SAAR,CAAkBC,GAAlB,CAAsByjC,gBAAtB,CAAA,CAAA;SAJF,CAAA,CAAA;AAMD,OAAA;AACF,KAZD,MAYO;AACL,MAAA,KAAK,IAAIjnC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgnC,gBAApB,EAAsChnC,CAAC,IAAI,CAA3C,EAA8C;AAC5C2mC,QAAAA,YAAY,CAACn5B,MAAb,CAAoBtM,MAAM,CAACyU,SAAP,GAAmB3V,CAAvC,CAA0CuD,CAAAA,SAA1C,CAAoDC,GAApD,CAAwDyjC,gBAAxD,CAAA,CAAA;AACD,OAAA;AACF,KAAA;;IAED,MAAMX,gBAAgB,GAAGplC,MAAM,CAACQ,MAAP,CAAc0kC,MAAd,CAAqBE,gBAA9C,CAAA;IACA,MAAMY,SAAS,GAAGZ,gBAAgB,IAAI,CAACK,YAAY,CAACjlC,MAAb,CAAoB+O,IAA3D,CAAA;;IACA,IAAIvP,MAAM,CAACyU,SAAP,KAAqBgxB,YAAY,CAAChxB,SAAlC,IAA+CuxB,SAAnD,EAA8D;AAC5D,MAAA,MAAMC,kBAAkB,GAAGR,YAAY,CAAC/zB,WAAxC,CAAA;AACA,MAAA,IAAIw0B,cAAJ,CAAA;AACA,MAAA,IAAIrvB,SAAJ,CAAA;;AACA,MAAA,IAAI4uB,YAAY,CAACjlC,MAAb,CAAoB+O,IAAxB,EAA8B;AAC5B;QACA,MAAM42B,eAAe,GAAGV,YAAY,CAACn5B,MAAb,CAAoBnN,OAApB,CACtBiE,cAAc,CACZqiC,YAAY,CAACn5B,MAAb,CAAoB25B,kBAApB,CADY,EAEX,CAAA,0BAAA,EAA4BjmC,MAAM,CAACyU,SAAU,CAAA,EAAA,CAFlC,CAAd,CAGE,CAHF,CADsB,CAAxB,CAAA;QAMA,MAAM2xB,eAAe,GAAGX,YAAY,CAACn5B,MAAb,CAAoBnN,OAApB,CACtBsE,cAAc,CACZgiC,YAAY,CAACn5B,MAAb,CAAoB25B,kBAApB,CADY,EAEX,CAAA,0BAAA,EAA4BjmC,MAAM,CAACyU,SAAU,CAAA,EAAA,CAFlC,CAAd,CAGE,CAHF,CADsB,CAAxB,CAAA;;AAOA,QAAA,IAAI,OAAO0xB,eAAP,KAA2B,WAA/B,EAA4C;AAC1CD,UAAAA,cAAc,GAAGE,eAAjB,CAAA;AACD,SAFD,MAEO,IAAI,OAAOA,eAAP,KAA2B,WAA/B,EAA4C;AACjDF,UAAAA,cAAc,GAAGC,eAAjB,CAAA;SADK,MAEA,IAAIC,eAAe,GAAGH,kBAAlB,KAAyCA,kBAAkB,GAAGE,eAAlE,EAAmF;UACxFD,cAAc,GACZT,YAAY,CAACjlC,MAAb,CAAoBwO,cAApB,GAAqC,CAArC,GAAyCo3B,eAAzC,GAA2DH,kBAD7D,CAAA;SADK,MAGA,IAAIG,eAAe,GAAGH,kBAAlB,GAAuCA,kBAAkB,GAAGE,eAAhE,EAAiF;AACtFD,UAAAA,cAAc,GAAGE,eAAjB,CAAA;AACD,SAFM,MAEA;AACLF,UAAAA,cAAc,GAAGC,eAAjB,CAAA;AACD,SAAA;;QACDtvB,SAAS,GAAG7W,MAAM,CAAC0R,WAAP,GAAqB1R,MAAM,CAACwU,aAA5B,GAA4C,MAA5C,GAAqD,MAAjE,CAAA;AACD,OA5BD,MA4BO;QACL0xB,cAAc,GAAGlmC,MAAM,CAACyU,SAAxB,CAAA;QACAoC,SAAS,GAAGqvB,cAAc,GAAGlmC,MAAM,CAACwU,aAAxB,GAAwC,MAAxC,GAAiD,MAA7D,CAAA;AACD,OAAA;;AACD,MAAA,IAAIwxB,SAAJ,EAAe;QACbE,cAAc,IAAIrvB,SAAS,KAAK,MAAd,GAAuBuuB,gBAAvB,GAA0C,CAAC,CAAD,GAAKA,gBAAjE,CAAA;AACD,OAAA;;AAED,MAAA,IACEK,YAAY,CAACvzB,oBAAb,IACAuzB,YAAY,CAACvzB,oBAAb,CAAkC/S,OAAlC,CAA0C+mC,cAA1C,CAAA,GAA4D,CAF9D,EAGE;AACA,QAAA,IAAIT,YAAY,CAACjlC,MAAb,CAAoBkN,cAAxB,EAAwC;UACtC,IAAIw4B,cAAc,GAAGD,kBAArB,EAAyC;AACvCC,YAAAA,cAAc,GAAGA,cAAc,GAAG/kC,IAAI,CAAC0N,KAAL,CAAWX,aAAa,GAAG,CAA3B,CAAjB,GAAiD,CAAlE,CAAA;AACD,WAFD,MAEO;AACLg4B,YAAAA,cAAc,GAAGA,cAAc,GAAG/kC,IAAI,CAAC0N,KAAL,CAAWX,aAAa,GAAG,CAA3B,CAAjB,GAAiD,CAAlE,CAAA;AACD,WAAA;AACF,SAND,MAMO,IACLg4B,cAAc,GAAGD,kBAAjB,IACAR,YAAY,CAACjlC,MAAb,CAAoBwO,cAApB,KAAuC,CAFlC,EAGL,CAED;;QACDy2B,YAAY,CAACzuB,OAAb,CAAqBkvB,cAArB,EAAqCjvB,OAAO,GAAG,CAAH,GAAOjY,SAAnD,CAAA,CAAA;AACD,OAAA;AACF,KAAA;AACF,GAAA;;EAEDgI,EAAE,CAAC,YAAD,EAAe,MAAM;IACrB,MAAM;AAAEk+B,MAAAA,MAAAA;KAAWllC,GAAAA,MAAM,CAACQ,MAA1B,CAAA;AACA,IAAA,IAAI,CAAC0kC,MAAD,IAAW,CAACA,MAAM,CAACllC,MAAvB,EAA+B,OAAA;;AAC/B,IAAA,IAAI,OAAOklC,MAAM,CAACllC,MAAd,KAAyB,QAAzB,IAAqCklC,MAAM,CAACllC,MAAP,YAAyBtB,WAAlE,EAA+E;MAC7E,MAAM7D,QAAQ,GAAGF,WAAW,EAA5B,CAAA;MACA,MAAM0rC,aAAa,GACjB,OAAOnB,MAAM,CAACllC,MAAd,KAAyB,QAAzB,GAAoCnF,QAAQ,CAACxB,aAAT,CAAuB6rC,MAAM,CAACllC,MAA9B,CAApC,GAA4EklC,MAAM,CAACllC,MADrF,CAAA;;AAEA,MAAA,IAAIqmC,aAAa,IAAIA,aAAa,CAACrmC,MAAnC,EAA2C;QACzCklC,MAAM,CAACllC,MAAP,GAAgBA,MAAhB,CAAA;OADF,MAEO,IAAIqmC,aAAJ,EAAmB;QACxB,MAAMC,cAAc,GAAI9pC,CAAD,IAAO;UAC5B0oC,MAAM,CAACllC,MAAP,GAAgBxD,CAAC,CAACoyB,MAAF,CAAS,CAAT,CAAhB,CAAA;AACAyX,UAAAA,aAAa,CAACptC,mBAAd,CAAkC,MAAlC,EAA0CqtC,cAA1C,CAAA,CAAA;UACAp9B,IAAI,EAAA,CAAA;UACJmZ,MAAM,CAAC,IAAD,CAAN,CAAA;UACA6iB,MAAM,CAACllC,MAAP,CAAcqiB,MAAd,EAAA,CAAA;AACAriB,UAAAA,MAAM,CAACqiB,MAAP,EAAA,CAAA;SANF,CAAA;;AAQAgkB,QAAAA,aAAa,CAACrtC,gBAAd,CAA+B,MAA/B,EAAuCstC,cAAvC,CAAA,CAAA;AACA,QAAA,OAAA;AACD,OAAA;AACF,KAAA;;IACDp9B,IAAI,EAAA,CAAA;IACJmZ,MAAM,CAAC,IAAD,CAAN,CAAA;AACD,GAxBC,CAAF,CAAA;EAyBArb,EAAE,CAAC,0CAAD,EAA6C,MAAM;IACnDqb,MAAM,EAAA,CAAA;AACP,GAFC,CAAF,CAAA;AAGArb,EAAAA,EAAE,CAAC,eAAD,EAAkB,CAAC+qB,EAAD,EAAKxxB,QAAL,KAAkB;AACpC,IAAA,MAAMklC,YAAY,GAAGzlC,MAAM,CAACklC,MAAP,CAAcllC,MAAnC,CAAA;AACA,IAAA,IAAI,CAACylC,YAAD,IAAiBA,YAAY,CAACp+B,SAAlC,EAA6C,OAAA;IAC7Co+B,YAAY,CAACn0B,aAAb,CAA2B/Q,QAA3B,CAAA,CAAA;AACD,GAJC,CAAF,CAAA;EAKAyG,EAAE,CAAC,eAAD,EAAkB,MAAM;AACxB,IAAA,MAAMy+B,YAAY,GAAGzlC,MAAM,CAACklC,MAAP,CAAcllC,MAAnC,CAAA;AACA,IAAA,IAAI,CAACylC,YAAD,IAAiBA,YAAY,CAACp+B,SAAlC,EAA6C,OAAA;;AAC7C,IAAA,IAAIk+B,aAAJ,EAAmB;AACjBE,MAAAA,YAAY,CAACn8B,OAAb,EAAA,CAAA;AACD,KAAA;AACF,GANC,CAAF,CAAA;AAQAhR,EAAAA,MAAM,CAACiT,MAAP,CAAcvL,MAAM,CAACklC,MAArB,EAA6B;IAC3Bh8B,IAD2B;AAE3BmZ,IAAAA,MAAAA;GAFF,CAAA,CAAA;AAID;;ACjPc,SAASrE,QAAT,CAAwD,IAAA,EAAA;EAAA,IAAtC;IAAEhe,MAAF;IAAUsI,YAAV;IAAwBrB,IAAxB;AAA8B+C,IAAAA,IAAAA;GAAQ,GAAA,IAAA,CAAA;AACrE1B,EAAAA,YAAY,CAAC;AACX0V,IAAAA,QAAQ,EAAE;AACR5R,MAAAA,OAAO,EAAE,KADD;AAERm6B,MAAAA,QAAQ,EAAE,IAFF;AAGRC,MAAAA,aAAa,EAAE,CAHP;AAIRC,MAAAA,cAAc,EAAE,IAJR;AAKRC,MAAAA,mBAAmB,EAAE,CALb;AAMRC,MAAAA,qBAAqB,EAAE,CANf;AAORnW,MAAAA,MAAM,EAAE,KAPA;AAQRoW,MAAAA,eAAe,EAAE,IAAA;AART,KAAA;AADC,GAAD,CAAZ,CAAA;;AAaA,EAAA,SAAS1rB,YAAT,GAAwB;AACtB,IAAA,MAAM9a,SAAS,GAAGJ,MAAM,CAAClD,YAAP,EAAlB,CAAA;IACAkD,MAAM,CAACyV,YAAP,CAAoBrV,SAApB,CAAA,CAAA;IACAJ,MAAM,CAACsR,aAAP,CAAqB,CAArB,CAAA,CAAA;AACAtR,IAAAA,MAAM,CAACmb,eAAP,CAAuBiM,UAAvB,CAAkCvuB,MAAlC,GAA2C,CAA3C,CAAA;AACAmH,IAAAA,MAAM,CAACge,QAAP,CAAgBiC,UAAhB,CAA2B;MAAEO,UAAU,EAAExgB,MAAM,CAACgM,GAAP,GAAahM,MAAM,CAACI,SAApB,GAAgC,CAACJ,MAAM,CAACI,SAAAA;KAAjF,CAAA,CAAA;AACD,GAAA;;AAED,EAAA,SAAS6d,WAAT,GAAuB;IACrB,MAAM;AAAE9C,MAAAA,eAAe,EAAExQ,IAAnB;AAAyB0Q,MAAAA,OAAAA;KAAYrb,GAAAA,MAA3C,CADqB;;AAGrB,IAAA,IAAI2K,IAAI,CAACyc,UAAL,CAAgBvuB,MAAhB,KAA2B,CAA/B,EAAkC;AAChC8R,MAAAA,IAAI,CAACyc,UAAL,CAAgB5jB,IAAhB,CAAqB;QACnB+sB,QAAQ,EAAElV,OAAO,CAACrb,MAAM,CAACkL,YAAP,EAAwB,GAAA,QAAxB,GAAmC,QAApC,CADE;QAEnB5K,IAAI,EAAEqK,IAAI,CAAC4S,cAAAA;OAFb,CAAA,CAAA;AAID,KAAA;;AACD5S,IAAAA,IAAI,CAACyc,UAAL,CAAgB5jB,IAAhB,CAAqB;MACnB+sB,QAAQ,EAAElV,OAAO,CAACrb,MAAM,CAACkL,YAAP,EAAwB,GAAA,UAAxB,GAAqC,UAAtC,CADE;AAEnB5K,MAAAA,IAAI,EAAE3D,GAAG,EAAA;KAFX,CAAA,CAAA;AAID,GAAA;;AAED,EAAA,SAASsjB,UAAT,CAAoC,KAAA,EAAA;IAAA,IAAhB;AAAEO,MAAAA,UAAAA;KAAc,GAAA,KAAA,CAAA;IAClC,MAAM;MAAEhgB,MAAF;MAAUE,SAAV;AAAqBqL,MAAAA,YAAY,EAAEC,GAAnC;MAAwCS,QAAxC;AAAkD0O,MAAAA,eAAe,EAAExQ,IAAAA;KAAS3K,GAAAA,MAAlF,CADkC;;IAGlC,MAAMogB,YAAY,GAAGzjB,GAAG,EAAxB,CAAA;AACA,IAAA,MAAM0jB,QAAQ,GAAGD,YAAY,GAAGzV,IAAI,CAAC4S,cAArC,CAAA;;AAEA,IAAA,IAAIiD,UAAU,GAAG,CAACxgB,MAAM,CAACqS,YAAP,EAAlB,EAAyC;AACvCrS,MAAAA,MAAM,CAACgX,OAAP,CAAehX,MAAM,CAAC0R,WAAtB,CAAA,CAAA;AACA,MAAA,OAAA;AACD,KAAA;;AACD,IAAA,IAAI8O,UAAU,GAAG,CAACxgB,MAAM,CAAC8S,YAAP,EAAlB,EAAyC;MACvC,IAAI9S,MAAM,CAACsM,MAAP,CAAczT,MAAd,GAAuB4T,QAAQ,CAAC5T,MAApC,EAA4C;AAC1CmH,QAAAA,MAAM,CAACgX,OAAP,CAAevK,QAAQ,CAAC5T,MAAT,GAAkB,CAAjC,CAAA,CAAA;AACD,OAFD,MAEO;QACLmH,MAAM,CAACgX,OAAP,CAAehX,MAAM,CAACsM,MAAP,CAAczT,MAAd,GAAuB,CAAtC,CAAA,CAAA;AACD,OAAA;;AACD,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAI2H,MAAM,CAACwd,QAAP,CAAgBuoB,QAApB,EAA8B;AAC5B,MAAA,IAAI57B,IAAI,CAACyc,UAAL,CAAgBvuB,MAAhB,GAAyB,CAA7B,EAAgC;AAC9B,QAAA,MAAMguC,aAAa,GAAGl8B,IAAI,CAACyc,UAAL,CAAgB0f,GAAhB,EAAtB,CAAA;AACA,QAAA,MAAMC,aAAa,GAAGp8B,IAAI,CAACyc,UAAL,CAAgB0f,GAAhB,EAAtB,CAAA;QAEA,MAAM9M,QAAQ,GAAG6M,aAAa,CAACtW,QAAd,GAAyBwW,aAAa,CAACxW,QAAxD,CAAA;QACA,MAAMjwB,IAAI,GAAGumC,aAAa,CAACvmC,IAAd,GAAqBymC,aAAa,CAACzmC,IAAhD,CAAA;AACAN,QAAAA,MAAM,CAACknB,QAAP,GAAkB8S,QAAQ,GAAG15B,IAA7B,CAAA;QACAN,MAAM,CAACknB,QAAP,IAAmB,CAAnB,CAAA;;AACA,QAAA,IAAI/lB,IAAI,CAAC4N,GAAL,CAAS/O,MAAM,CAACknB,QAAhB,CAAA,GAA4B1mB,MAAM,CAACwd,QAAP,CAAgB4oB,eAAhD,EAAiE;UAC/D5mC,MAAM,CAACknB,QAAP,GAAkB,CAAlB,CAAA;AACD,SAV6B;AAY9B;;;QACA,IAAI5mB,IAAI,GAAG,GAAP,IAAc3D,GAAG,EAAKkqC,GAAAA,aAAa,CAACvmC,IAAtB,GAA6B,GAA/C,EAAoD;UAClDN,MAAM,CAACknB,QAAP,GAAkB,CAAlB,CAAA;AACD,SAAA;AACF,OAhBD,MAgBO;QACLlnB,MAAM,CAACknB,QAAP,GAAkB,CAAlB,CAAA;AACD,OAAA;;AACDlnB,MAAAA,MAAM,CAACknB,QAAP,IAAmB1mB,MAAM,CAACwd,QAAP,CAAgB2oB,qBAAnC,CAAA;AAEAh8B,MAAAA,IAAI,CAACyc,UAAL,CAAgBvuB,MAAhB,GAAyB,CAAzB,CAAA;AACA,MAAA,IAAIqiC,gBAAgB,GAAG,IAAA,GAAO16B,MAAM,CAACwd,QAAP,CAAgBwoB,aAA9C,CAAA;AACA,MAAA,MAAMQ,gBAAgB,GAAGhnC,MAAM,CAACknB,QAAP,GAAkBgU,gBAA3C,CAAA;AAEA,MAAA,IAAI+L,WAAW,GAAGjnC,MAAM,CAACI,SAAP,GAAmB4mC,gBAArC,CAAA;AACA,MAAA,IAAIh7B,GAAJ,EAASi7B,WAAW,GAAG,CAACA,WAAf,CAAA;MAET,IAAIC,QAAQ,GAAG,KAAf,CAAA;AACA,MAAA,IAAIC,mBAAJ,CAAA;AACA,MAAA,MAAMC,YAAY,GAAGjmC,IAAI,CAAC4N,GAAL,CAAS/O,MAAM,CAACknB,QAAhB,CAAA,GAA4B,EAA5B,GAAiC1mB,MAAM,CAACwd,QAAP,CAAgB0oB,mBAAtE,CAAA;AACA,MAAA,IAAIW,YAAJ,CAAA;;AACA,MAAA,IAAIJ,WAAW,GAAGjnC,MAAM,CAAC8S,YAAP,EAAlB,EAAyC;AACvC,QAAA,IAAItS,MAAM,CAACwd,QAAP,CAAgByoB,cAApB,EAAoC;UAClC,IAAIQ,WAAW,GAAGjnC,MAAM,CAAC8S,YAAP,EAAd,GAAsC,CAACs0B,YAA3C,EAAyD;AACvDH,YAAAA,WAAW,GAAGjnC,MAAM,CAAC8S,YAAP,KAAwBs0B,YAAtC,CAAA;AACD,WAAA;;AACDD,UAAAA,mBAAmB,GAAGnnC,MAAM,CAAC8S,YAAP,EAAtB,CAAA;AACAo0B,UAAAA,QAAQ,GAAG,IAAX,CAAA;UACAv8B,IAAI,CAAC8U,mBAAL,GAA2B,IAA3B,CAAA;AACD,SAPD,MAOO;AACLwnB,UAAAA,WAAW,GAAGjnC,MAAM,CAAC8S,YAAP,EAAd,CAAA;AACD,SAAA;;QACD,IAAItS,MAAM,CAAC+O,IAAP,IAAe/O,MAAM,CAACkN,cAA1B,EAA0C25B,YAAY,GAAG,IAAf,CAAA;OAX5C,MAYO,IAAIJ,WAAW,GAAGjnC,MAAM,CAACqS,YAAP,EAAlB,EAAyC;AAC9C,QAAA,IAAI7R,MAAM,CAACwd,QAAP,CAAgByoB,cAApB,EAAoC;UAClC,IAAIQ,WAAW,GAAGjnC,MAAM,CAACqS,YAAP,EAAd,GAAsC+0B,YAA1C,EAAwD;AACtDH,YAAAA,WAAW,GAAGjnC,MAAM,CAACqS,YAAP,KAAwB+0B,YAAtC,CAAA;AACD,WAAA;;AACDD,UAAAA,mBAAmB,GAAGnnC,MAAM,CAACqS,YAAP,EAAtB,CAAA;AACA60B,UAAAA,QAAQ,GAAG,IAAX,CAAA;UACAv8B,IAAI,CAAC8U,mBAAL,GAA2B,IAA3B,CAAA;AACD,SAPD,MAOO;AACLwnB,UAAAA,WAAW,GAAGjnC,MAAM,CAACqS,YAAP,EAAd,CAAA;AACD,SAAA;;QACD,IAAI7R,MAAM,CAAC+O,IAAP,IAAe/O,MAAM,CAACkN,cAA1B,EAA0C25B,YAAY,GAAG,IAAf,CAAA;AAC3C,OAZM,MAYA,IAAI7mC,MAAM,CAACwd,QAAP,CAAgBwS,MAApB,EAA4B;AACjC,QAAA,IAAIvc,SAAJ,CAAA;;AACA,QAAA,KAAK,IAAIqzB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG76B,QAAQ,CAAC5T,MAA7B,EAAqCyuC,CAAC,IAAI,CAA1C,EAA6C;AAC3C,UAAA,IAAI76B,QAAQ,CAAC66B,CAAD,CAAR,GAAc,CAACL,WAAnB,EAAgC;AAC9BhzB,YAAAA,SAAS,GAAGqzB,CAAZ,CAAA;AACA,YAAA,MAAA;AACD,WAAA;AACF,SAAA;;AAED,QAAA,IACEnmC,IAAI,CAAC4N,GAAL,CAAStC,QAAQ,CAACwH,SAAD,CAAR,GAAsBgzB,WAA/B,CACE9lC,GAAAA,IAAI,CAAC4N,GAAL,CAAStC,QAAQ,CAACwH,SAAS,GAAG,CAAb,CAAR,GAA0BgzB,WAAnC,CADF,IAEAjnC,MAAM,CAACwd,cAAP,KAA0B,MAH5B,EAIE;AACAypB,UAAAA,WAAW,GAAGx6B,QAAQ,CAACwH,SAAD,CAAtB,CAAA;AACD,SAND,MAMO;AACLgzB,UAAAA,WAAW,GAAGx6B,QAAQ,CAACwH,SAAS,GAAG,CAAb,CAAtB,CAAA;AACD,SAAA;;QACDgzB,WAAW,GAAG,CAACA,WAAf,CAAA;AACD,OAAA;;AACD,MAAA,IAAII,YAAJ,EAAkB;QAChBr9B,IAAI,CAAC,eAAD,EAAkB,MAAM;AAC1BhK,UAAAA,MAAM,CAACmY,OAAP,EAAA,CAAA;AACD,SAFG,CAAJ,CAAA;AAGD,OAjF2B;;;AAmF5B,MAAA,IAAInY,MAAM,CAACknB,QAAP,KAAoB,CAAxB,EAA2B;AACzB,QAAA,IAAIlb,GAAJ,EAAS;AACPkvB,UAAAA,gBAAgB,GAAG/5B,IAAI,CAAC4N,GAAL,CAAS,CAAC,CAACk4B,WAAD,GAAejnC,MAAM,CAACI,SAAvB,IAAoCJ,MAAM,CAACknB,QAApD,CAAnB,CAAA;AACD,SAFD,MAEO;AACLgU,UAAAA,gBAAgB,GAAG/5B,IAAI,CAAC4N,GAAL,CAAS,CAACk4B,WAAW,GAAGjnC,MAAM,CAACI,SAAtB,IAAmCJ,MAAM,CAACknB,QAAnD,CAAnB,CAAA;AACD,SAAA;;AACD,QAAA,IAAI1mB,MAAM,CAACwd,QAAP,CAAgBwS,MAApB,EAA4B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAA,MAAM+W,YAAY,GAAGpmC,IAAI,CAAC4N,GAAL,CAAS,CAAC/C,GAAG,GAAG,CAACi7B,WAAJ,GAAkBA,WAAtB,IAAqCjnC,MAAM,CAACI,SAArD,CAArB,CAAA;UACA,MAAMonC,gBAAgB,GAAGxnC,MAAM,CAAC2M,eAAP,CAAuB3M,MAAM,CAAC0R,WAA9B,CAAzB,CAAA;;UACA,IAAI61B,YAAY,GAAGC,gBAAnB,EAAqC;YACnCtM,gBAAgB,GAAG16B,MAAM,CAACC,KAA1B,CAAA;AACD,WAFD,MAEO,IAAI8mC,YAAY,GAAG,CAAA,GAAIC,gBAAvB,EAAyC;AAC9CtM,YAAAA,gBAAgB,GAAG16B,MAAM,CAACC,KAAP,GAAe,GAAlC,CAAA;AACD,WAFM,MAEA;AACLy6B,YAAAA,gBAAgB,GAAG16B,MAAM,CAACC,KAAP,GAAe,GAAlC,CAAA;AACD,WAAA;AACF,SAAA;AACF,OAxBD,MAwBO,IAAID,MAAM,CAACwd,QAAP,CAAgBwS,MAApB,EAA4B;AACjCxwB,QAAAA,MAAM,CAAC+Y,cAAP,EAAA,CAAA;AACA,QAAA,OAAA;AACD,OAAA;;AAED,MAAA,IAAIvY,MAAM,CAACwd,QAAP,CAAgByoB,cAAhB,IAAkCS,QAAtC,EAAgD;QAC9ClnC,MAAM,CAAC2S,cAAP,CAAsBw0B,mBAAtB,CAAA,CAAA;QACAnnC,MAAM,CAACsR,aAAP,CAAqB4pB,gBAArB,CAAA,CAAA;QACAl7B,MAAM,CAACyV,YAAP,CAAoBwxB,WAApB,CAAA,CAAA;AACAjnC,QAAAA,MAAM,CAAC+W,eAAP,CAAuB,IAAvB,EAA6B/W,MAAM,CAACwd,cAApC,CAAA,CAAA;QACAxd,MAAM,CAACoW,SAAP,GAAmB,IAAnB,CAAA;QACA9R,oBAAoB,CAAC5D,SAAD,EAAY,MAAM;UACpC,IAAI,CAACV,MAAD,IAAWA,MAAM,CAACqH,SAAlB,IAA+B,CAACsD,IAAI,CAAC8U,mBAAzC,EAA8D,OAAA;UAC9DxY,IAAI,CAAC,gBAAD,CAAJ,CAAA;AACAjH,UAAAA,MAAM,CAACsR,aAAP,CAAqB9Q,MAAM,CAACC,KAA5B,CAAA,CAAA;AACA7E,UAAAA,UAAU,CAAC,MAAM;YACfoE,MAAM,CAACyV,YAAP,CAAoB0xB,mBAApB,CAAA,CAAA;YACA7iC,oBAAoB,CAAC5D,SAAD,EAAY,MAAM;AACpC,cAAA,IAAI,CAACV,MAAD,IAAWA,MAAM,CAACqH,SAAtB,EAAiC,OAAA;AACjCrH,cAAAA,MAAM,CAAC0W,aAAP,EAAA,CAAA;AACD,aAHmB,CAApB,CAAA;WAFQ,EAMP,CANO,CAAV,CAAA;AAOD,SAXmB,CAApB,CAAA;AAYD,OAlBD,MAkBO,IAAI1W,MAAM,CAACknB,QAAX,EAAqB;QAC1BjgB,IAAI,CAAC,4BAAD,CAAJ,CAAA;QACAjH,MAAM,CAAC2S,cAAP,CAAsBs0B,WAAtB,CAAA,CAAA;QACAjnC,MAAM,CAACsR,aAAP,CAAqB4pB,gBAArB,CAAA,CAAA;QACAl7B,MAAM,CAACyV,YAAP,CAAoBwxB,WAApB,CAAA,CAAA;AACAjnC,QAAAA,MAAM,CAAC+W,eAAP,CAAuB,IAAvB,EAA6B/W,MAAM,CAACwd,cAApC,CAAA,CAAA;;AACA,QAAA,IAAI,CAACxd,MAAM,CAACoW,SAAZ,EAAuB;UACrBpW,MAAM,CAACoW,SAAP,GAAmB,IAAnB,CAAA;UACA9R,oBAAoB,CAAC5D,SAAD,EAAY,MAAM;AACpC,YAAA,IAAI,CAACV,MAAD,IAAWA,MAAM,CAACqH,SAAtB,EAAiC,OAAA;AACjCrH,YAAAA,MAAM,CAAC0W,aAAP,EAAA,CAAA;AACD,WAHmB,CAApB,CAAA;AAID,SAAA;AACF,OAbM,MAaA;QACL1W,MAAM,CAAC2S,cAAP,CAAsBs0B,WAAtB,CAAA,CAAA;AACD,OAAA;;AAEDjnC,MAAAA,MAAM,CAACsU,iBAAP,EAAA,CAAA;AACAtU,MAAAA,MAAM,CAAC2T,mBAAP,EAAA,CAAA;AACD,KArJD,MAqJO,IAAInT,MAAM,CAACwd,QAAP,CAAgBwS,MAApB,EAA4B;AACjCxwB,MAAAA,MAAM,CAAC+Y,cAAP,EAAA,CAAA;AACA,MAAA,OAAA;AACD,KAHM,MAGA,IAAIvY,MAAM,CAACwd,QAAX,EAAqB;MAC1B/W,IAAI,CAAC,4BAAD,CAAJ,CAAA;AACD,KAAA;;AAED,IAAA,IAAI,CAACzG,MAAM,CAACwd,QAAP,CAAgBuoB,QAAjB,IAA6BlmB,QAAQ,IAAI7f,MAAM,CAACqgB,YAApD,EAAkE;AAChE7gB,MAAAA,MAAM,CAAC2S,cAAP,EAAA,CAAA;AACA3S,MAAAA,MAAM,CAACsU,iBAAP,EAAA,CAAA;AACAtU,MAAAA,MAAM,CAAC2T,mBAAP,EAAA,CAAA;AACD,KAAA;AACF,GAAA;;AAEDrb,EAAAA,MAAM,CAACiT,MAAP,CAAcvL,MAAd,EAAsB;AACpBge,IAAAA,QAAQ,EAAE;MACR9C,YADQ;MAER+C,WAFQ;AAGRgC,MAAAA,UAAAA;AAHQ,KAAA;GADZ,CAAA,CAAA;AAOD;;ACpOc,SAASwnB,IAAT,CAAwC,IAAA,EAAA;EAAA,IAA1B;IAAEznC,MAAF;AAAUsI,IAAAA,YAAAA;GAAgB,GAAA,IAAA,CAAA;AACrDA,EAAAA,YAAY,CAAC;AACXuF,IAAAA,IAAI,EAAE;AACJC,MAAAA,IAAI,EAAE,CADF;AAEJ8V,MAAAA,IAAI,EAAE,QAAA;AAFF,KAAA;AADK,GAAD,CAAZ,CAAA;AAOA,EAAA,IAAI8jB,sBAAJ,CAAA;AACA,EAAA,IAAIC,YAAJ,CAAA;AACA,EAAA,IAAIC,cAAJ,CAAA;;EAEA,MAAM75B,UAAU,GAAIvB,YAAD,IAAkB;IACnC,MAAM;AAAE0B,MAAAA,aAAAA;KAAkBlO,GAAAA,MAAM,CAACQ,MAAjC,CAAA;IACA,MAAM;MAAEsN,IAAF;AAAQ8V,MAAAA,IAAAA;AAAR,KAAA,GAAiB5jB,MAAM,CAACQ,MAAP,CAAcqN,IAArC,CAAA;IACA85B,YAAY,GAAGD,sBAAsB,GAAG55B,IAAxC,CAAA;IACA85B,cAAc,GAAGzmC,IAAI,CAAC0N,KAAL,CAAWrC,YAAY,GAAGsB,IAA1B,CAAjB,CAAA;;IACA,IAAI3M,IAAI,CAAC0N,KAAL,CAAWrC,YAAY,GAAGsB,IAA1B,CAAoCtB,KAAAA,YAAY,GAAGsB,IAAvD,EAA6D;AAC3D45B,MAAAA,sBAAsB,GAAGl7B,YAAzB,CAAA;AACD,KAFD,MAEO;MACLk7B,sBAAsB,GAAGvmC,IAAI,CAACsO,IAAL,CAAUjD,YAAY,GAAGsB,IAAzB,CAAA,GAAiCA,IAA1D,CAAA;AACD,KAAA;;AACD,IAAA,IAAII,aAAa,KAAK,MAAlB,IAA4B0V,IAAI,KAAK,KAAzC,EAAgD;MAC9C8jB,sBAAsB,GAAGvmC,IAAI,CAACC,GAAL,CAASsmC,sBAAT,EAAiCx5B,aAAa,GAAGJ,IAAjD,CAAzB,CAAA;AACD,KAAA;GAZH,CAAA;;EAeA,MAAMO,WAAW,GAAG,CAACvP,CAAD,EAAIsP,KAAJ,EAAW5B,YAAX,EAAyBf,iBAAzB,KAA+C;IACjE,MAAM;MAAEuD,cAAF;AAAkB9B,MAAAA,YAAAA;KAAiBlN,GAAAA,MAAM,CAACQ,MAAhD,CAAA;IACA,MAAM;MAAEsN,IAAF;AAAQ8V,MAAAA,IAAAA;AAAR,KAAA,GAAiB5jB,MAAM,CAACQ,MAAP,CAAcqN,IAArC,CAFiE;;AAIjE,IAAA,IAAIg6B,kBAAJ,CAAA;AACA,IAAA,IAAIC,MAAJ,CAAA;AACA,IAAA,IAAIC,GAAJ,CAAA;;AACA,IAAA,IAAInkB,IAAI,KAAK,KAAT,IAAkB5U,cAAc,GAAG,CAAvC,EAA0C;AACxC,MAAA,MAAMg5B,UAAU,GAAG7mC,IAAI,CAAC0N,KAAL,CAAW/P,CAAC,IAAIkQ,cAAc,GAAGlB,IAArB,CAAZ,CAAnB,CAAA;MACA,MAAMm6B,iBAAiB,GAAGnpC,CAAC,GAAGgP,IAAI,GAAGkB,cAAP,GAAwBg5B,UAAtD,CAAA;AACA,MAAA,MAAME,cAAc,GAClBF,UAAU,KAAK,CAAf,GACIh5B,cADJ,GAEI7N,IAAI,CAACE,GAAL,CACEF,IAAI,CAACsO,IAAL,CAAU,CAACjD,YAAY,GAAGw7B,UAAU,GAAGl6B,IAAb,GAAoBkB,cAApC,IAAsDlB,IAAhE,CADF,EAEEkB,cAFF,CAHN,CAAA;MAOA+4B,GAAG,GAAG5mC,IAAI,CAAC0N,KAAL,CAAWo5B,iBAAiB,GAAGC,cAA/B,CAAN,CAAA;MACAJ,MAAM,GAAGG,iBAAiB,GAAGF,GAAG,GAAGG,cAA1B,GAA2CF,UAAU,GAAGh5B,cAAjE,CAAA;AAEA64B,MAAAA,kBAAkB,GAAGC,MAAM,GAAIC,GAAG,GAAGL,sBAAP,GAAiC55B,IAA/D,CAAA;AACAM,MAAAA,KAAK,CAACvU,KAAN,CAAYsuC,KAAZ,GAAoBN,kBAApB,CAAA;AACD,KAfD,MAeO,IAAIjkB,IAAI,KAAK,QAAb,EAAuB;MAC5BkkB,MAAM,GAAG3mC,IAAI,CAAC0N,KAAL,CAAW/P,CAAC,GAAGgP,IAAf,CAAT,CAAA;AACAi6B,MAAAA,GAAG,GAAGjpC,CAAC,GAAGgpC,MAAM,GAAGh6B,IAAnB,CAAA;;AACA,MAAA,IAAIg6B,MAAM,GAAGF,cAAT,IAA4BE,MAAM,KAAKF,cAAX,IAA6BG,GAAG,KAAKj6B,IAAI,GAAG,CAA5E,EAAgF;AAC9Ei6B,QAAAA,GAAG,IAAI,CAAP,CAAA;;QACA,IAAIA,GAAG,IAAIj6B,IAAX,EAAiB;AACfi6B,UAAAA,GAAG,GAAG,CAAN,CAAA;AACAD,UAAAA,MAAM,IAAI,CAAV,CAAA;AACD,SAAA;AACF,OAAA;AACF,KAVM,MAUA;MACLC,GAAG,GAAG5mC,IAAI,CAAC0N,KAAL,CAAW/P,CAAC,GAAG6oC,YAAf,CAAN,CAAA;AACAG,MAAAA,MAAM,GAAGhpC,CAAC,GAAGipC,GAAG,GAAGJ,YAAnB,CAAA;AACD,KAAA;;AACDv5B,IAAAA,KAAK,CAACvU,KAAN,CAAY4R,iBAAiB,CAAC,YAAD,CAA7B,CACEs8B,GAAAA,GAAG,KAAK,CAAR,GAAY76B,YAAY,IAAK,GAAEA,YAAa,CAAA,EAAA,CAA5C,GAAkD,EADpD,CAAA;GApCF,CAAA;;EAwCA,MAAMkC,iBAAiB,GAAG,CAACpB,SAAD,EAAYvB,QAAZ,EAAsBhB,iBAAtB,KAA4C;IACpE,MAAM;MAAEyB,YAAF;MAAgBQ,cAAhB;AAAgCe,MAAAA,YAAAA;KAAiBzO,GAAAA,MAAM,CAACQ,MAA9D,CAAA;IACA,MAAM;AAAEsN,MAAAA,IAAAA;AAAF,KAAA,GAAW9N,MAAM,CAACQ,MAAP,CAAcqN,IAA/B,CAAA;IACA7N,MAAM,CAACqN,WAAP,GAAqB,CAACW,SAAS,GAAGd,YAAb,IAA6Bw6B,sBAAlD,CAAA;AACA1nC,IAAAA,MAAM,CAACqN,WAAP,GAAqBlM,IAAI,CAACsO,IAAL,CAAUzP,MAAM,CAACqN,WAAP,GAAqBS,IAA/B,IAAuCZ,YAA5D,CAAA;AACAlN,IAAAA,MAAM,CAACU,SAAP,CAAiB7G,KAAjB,CAAuB4R,iBAAiB,CAAC,OAAD,CAAxC,CAAA,GAAsD,GAAEzL,MAAM,CAACqN,WAAP,GAAqBH,YAAa,CAA1F,EAAA,CAAA,CAAA;;AACA,IAAA,IAAIQ,cAAJ,EAAoB;MAClB,MAAM2B,aAAa,GAAG,EAAtB,CAAA;;AACA,MAAA,KAAK,IAAIvQ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG2N,QAAQ,CAAC5T,MAA7B,EAAqCiG,CAAC,IAAI,CAA1C,EAA6C;AAC3C,QAAA,IAAIwQ,cAAc,GAAG7C,QAAQ,CAAC3N,CAAD,CAA7B,CAAA;QACA,IAAI2P,YAAJ,EAAkBa,cAAc,GAAGnO,IAAI,CAAC0N,KAAL,CAAWS,cAAX,CAAjB,CAAA;AAClB,QAAA,IAAI7C,QAAQ,CAAC3N,CAAD,CAAR,GAAckB,MAAM,CAACqN,WAAP,GAAqBZ,QAAQ,CAAC,CAAD,CAA/C,EAAoD4C,aAAa,CAAC7L,IAAd,CAAmB8L,cAAnB,CAAA,CAAA;AACrD,OAAA;;AACD7C,MAAAA,QAAQ,CAACjD,MAAT,CAAgB,CAAhB,EAAmBiD,QAAQ,CAAC5T,MAA5B,CAAA,CAAA;AACA4T,MAAAA,QAAQ,CAACjJ,IAAT,CAAc,GAAG6L,aAAjB,CAAA,CAAA;AACD,KAAA;GAfH,CAAA;;EAkBArP,MAAM,CAAC6N,IAAP,GAAc;IACZE,UADY;IAEZM,WAFY;AAGZe,IAAAA,iBAAAA;GAHF,CAAA;AAKD;;AC1Fc,SAASgc,WAAT,CAAqB9e,MAArB,EAA6B;EAC1C,MAAMtM,MAAM,GAAG,IAAf,CAAA;EACA,MAAM;IAAEQ,MAAF;AAAUqL,IAAAA,QAAAA;AAAV,GAAA,GAAuB7L,MAA7B,CAAA;;EAEA,IAAIQ,MAAM,CAAC+O,IAAX,EAAiB;AACfvP,IAAAA,MAAM,CAACia,WAAP,EAAA,CAAA;AACD,GAAA;;EAED,MAAMmuB,aAAa,GAAIvmC,OAAD,IAAa;AACjC,IAAA,IAAI,OAAOA,OAAP,KAAmB,QAAvB,EAAiC;AAC/B,MAAA,MAAMqoB,OAAO,GAAGrvB,QAAQ,CAACnB,aAAT,CAAuB,KAAvB,CAAhB,CAAA;MACAwwB,OAAO,CAACC,SAAR,GAAoBtoB,OAApB,CAAA;MACAgK,QAAQ,CAACkO,MAAT,CAAgBmQ,OAAO,CAACvwB,QAAR,CAAiB,CAAjB,CAAhB,CAAA,CAAA;MACAuwB,OAAO,CAACC,SAAR,GAAoB,EAApB,CAAA;AACD,KALD,MAKO;MACLte,QAAQ,CAACkO,MAAT,CAAgBlY,OAAhB,CAAA,CAAA;AACD,KAAA;GARH,CAAA;;AAWA,EAAA,IAAI,OAAOyK,MAAP,KAAkB,QAAlB,IAA8B,QAAA,IAAYA,MAA9C,EAAsD;AACpD,IAAA,KAAK,IAAIxN,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwN,MAAM,CAACzT,MAA3B,EAAmCiG,CAAC,IAAI,CAAxC,EAA2C;MACzC,IAAIwN,MAAM,CAACxN,CAAD,CAAV,EAAespC,aAAa,CAAC97B,MAAM,CAACxN,CAAD,CAAP,CAAb,CAAA;AAChB,KAAA;AACF,GAJD,MAIO;IACLspC,aAAa,CAAC97B,MAAD,CAAb,CAAA;AACD,GAAA;;AACDtM,EAAAA,MAAM,CAACga,YAAP,EAAA,CAAA;;EACA,IAAIxZ,MAAM,CAAC+O,IAAX,EAAiB;AACfvP,IAAAA,MAAM,CAACuZ,UAAP,EAAA,CAAA;AACD,GAAA;;AACD,EAAA,IAAI,CAAC/Y,MAAM,CAAC0G,QAAZ,EAAsB;AACpBlH,IAAAA,MAAM,CAACqiB,MAAP,EAAA,CAAA;AACD,GAAA;AACF;;ACjCc,SAASgJ,YAAT,CAAsB/e,MAAtB,EAA8B;EAC3C,MAAMtM,MAAM,GAAG,IAAf,CAAA;EACA,MAAM;IAAEQ,MAAF;IAAUkR,WAAV;AAAuB7F,IAAAA,QAAAA;AAAvB,GAAA,GAAoC7L,MAA1C,CAAA;;EAEA,IAAIQ,MAAM,CAAC+O,IAAX,EAAiB;AACfvP,IAAAA,MAAM,CAACia,WAAP,EAAA,CAAA;AACD,GAAA;;AACD,EAAA,IAAI1F,cAAc,GAAG7C,WAAW,GAAG,CAAnC,CAAA;;EACA,MAAM22B,cAAc,GAAIxmC,OAAD,IAAa;AAClC,IAAA,IAAI,OAAOA,OAAP,KAAmB,QAAvB,EAAiC;AAC/B,MAAA,MAAMqoB,OAAO,GAAGrvB,QAAQ,CAACnB,aAAT,CAAuB,KAAvB,CAAhB,CAAA;MACAwwB,OAAO,CAACC,SAAR,GAAoBtoB,OAApB,CAAA;MACAgK,QAAQ,CAACiO,OAAT,CAAiBoQ,OAAO,CAACvwB,QAAR,CAAiB,CAAjB,CAAjB,CAAA,CAAA;MACAuwB,OAAO,CAACC,SAAR,GAAoB,EAApB,CAAA;AACD,KALD,MAKO;MACLte,QAAQ,CAACiO,OAAT,CAAiBjY,OAAjB,CAAA,CAAA;AACD,KAAA;GARH,CAAA;;AAUA,EAAA,IAAI,OAAOyK,MAAP,KAAkB,QAAlB,IAA8B,QAAA,IAAYA,MAA9C,EAAsD;AACpD,IAAA,KAAK,IAAIxN,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwN,MAAM,CAACzT,MAA3B,EAAmCiG,CAAC,IAAI,CAAxC,EAA2C;MACzC,IAAIwN,MAAM,CAACxN,CAAD,CAAV,EAAeupC,cAAc,CAAC/7B,MAAM,CAACxN,CAAD,CAAP,CAAd,CAAA;AAChB,KAAA;;AACDyV,IAAAA,cAAc,GAAG7C,WAAW,GAAGpF,MAAM,CAACzT,MAAtC,CAAA;AACD,GALD,MAKO;IACLwvC,cAAc,CAAC/7B,MAAD,CAAd,CAAA;AACD,GAAA;;AACDtM,EAAAA,MAAM,CAACga,YAAP,EAAA,CAAA;;EACA,IAAIxZ,MAAM,CAAC+O,IAAX,EAAiB;AACfvP,IAAAA,MAAM,CAACuZ,UAAP,EAAA,CAAA;AACD,GAAA;;AACD,EAAA,IAAI,CAAC/Y,MAAM,CAAC0G,QAAZ,EAAsB;AACpBlH,IAAAA,MAAM,CAACqiB,MAAP,EAAA,CAAA;AACD,GAAA;;AACDriB,EAAAA,MAAM,CAACgX,OAAP,CAAezC,cAAf,EAA+B,CAA/B,EAAkC,KAAlC,CAAA,CAAA;AACD;;AClCc,SAAS+zB,QAAT,CAAkB79B,KAAlB,EAAyB6B,MAAzB,EAAiC;EAC9C,MAAMtM,MAAM,GAAG,IAAf,CAAA;EACA,MAAM;IAAEQ,MAAF;IAAUkR,WAAV;AAAuB7F,IAAAA,QAAAA;AAAvB,GAAA,GAAoC7L,MAA1C,CAAA;EACA,IAAIuoC,iBAAiB,GAAG72B,WAAxB,CAAA;;EACA,IAAIlR,MAAM,CAAC+O,IAAX,EAAiB;IACfg5B,iBAAiB,IAAIvoC,MAAM,CAACsZ,YAA5B,CAAA;AACAtZ,IAAAA,MAAM,CAACia,WAAP,EAAA,CAAA;AACAja,IAAAA,MAAM,CAACga,YAAP,EAAA,CAAA;AACD,GAAA;;AACD,EAAA,MAAMwuB,UAAU,GAAGxoC,MAAM,CAACsM,MAAP,CAAczT,MAAjC,CAAA;;EACA,IAAI4R,KAAK,IAAI,CAAb,EAAgB;IACdzK,MAAM,CAACqrB,YAAP,CAAoB/e,MAApB,CAAA,CAAA;AACA,IAAA,OAAA;AACD,GAAA;;EACD,IAAI7B,KAAK,IAAI+9B,UAAb,EAAyB;IACvBxoC,MAAM,CAACorB,WAAP,CAAmB9e,MAAnB,CAAA,CAAA;AACA,IAAA,OAAA;AACD,GAAA;;EACD,IAAIiI,cAAc,GAAGg0B,iBAAiB,GAAG99B,KAApB,GAA4B89B,iBAAiB,GAAG,CAAhD,GAAoDA,iBAAzE,CAAA;EAEA,MAAME,YAAY,GAAG,EAArB,CAAA;;AACA,EAAA,KAAK,IAAI3pC,CAAC,GAAG0pC,UAAU,GAAG,CAA1B,EAA6B1pC,CAAC,IAAI2L,KAAlC,EAAyC3L,CAAC,IAAI,CAA9C,EAAiD;AAC/C,IAAA,MAAM4pC,YAAY,GAAG1oC,MAAM,CAACsM,MAAP,CAAcxN,CAAd,CAArB,CAAA;AACA4pC,IAAAA,YAAY,CAACv3B,MAAb,EAAA,CAAA;IACAs3B,YAAY,CAAC59B,OAAb,CAAqB69B,YAArB,CAAA,CAAA;AACD,GAAA;;AAED,EAAA,IAAI,OAAOp8B,MAAP,KAAkB,QAAlB,IAA8B,QAAA,IAAYA,MAA9C,EAAsD;AACpD,IAAA,KAAK,IAAIxN,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwN,MAAM,CAACzT,MAA3B,EAAmCiG,CAAC,IAAI,CAAxC,EAA2C;AACzC,MAAA,IAAIwN,MAAM,CAACxN,CAAD,CAAV,EAAe+M,QAAQ,CAACkO,MAAT,CAAgBzN,MAAM,CAACxN,CAAD,CAAtB,CAAA,CAAA;AAChB,KAAA;;IACDyV,cAAc,GACZg0B,iBAAiB,GAAG99B,KAApB,GAA4B89B,iBAAiB,GAAGj8B,MAAM,CAACzT,MAAvD,GAAgE0vC,iBADlE,CAAA;AAED,GAND,MAMO;IACL18B,QAAQ,CAACkO,MAAT,CAAgBzN,MAAhB,CAAA,CAAA;AACD,GAAA;;AAED,EAAA,KAAK,IAAIxN,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG2pC,YAAY,CAAC5vC,MAAjC,EAAyCiG,CAAC,IAAI,CAA9C,EAAiD;AAC/C+M,IAAAA,QAAQ,CAACkO,MAAT,CAAgB0uB,YAAY,CAAC3pC,CAAD,CAA5B,CAAA,CAAA;AACD,GAAA;;AAEDkB,EAAAA,MAAM,CAACga,YAAP,EAAA,CAAA;;EAEA,IAAIxZ,MAAM,CAAC+O,IAAX,EAAiB;AACfvP,IAAAA,MAAM,CAACuZ,UAAP,EAAA,CAAA;AACD,GAAA;;AACD,EAAA,IAAI,CAAC/Y,MAAM,CAAC0G,QAAZ,EAAsB;AACpBlH,IAAAA,MAAM,CAACqiB,MAAP,EAAA,CAAA;AACD,GAAA;;EACD,IAAI7hB,MAAM,CAAC+O,IAAX,EAAiB;IACfvP,MAAM,CAACgX,OAAP,CAAezC,cAAc,GAAGvU,MAAM,CAACsZ,YAAvC,EAAqD,CAArD,EAAwD,KAAxD,CAAA,CAAA;AACD,GAFD,MAEO;AACLtZ,IAAAA,MAAM,CAACgX,OAAP,CAAezC,cAAf,EAA+B,CAA/B,EAAkC,KAAlC,CAAA,CAAA;AACD,GAAA;AACF;;ACtDc,SAASoX,WAAT,CAAqBC,aAArB,EAAoC;EACjD,MAAM5rB,MAAM,GAAG,IAAf,CAAA;EACA,MAAM;IAAEQ,MAAF;AAAUkR,IAAAA,WAAAA;AAAV,GAAA,GAA0B1R,MAAhC,CAAA;EAEA,IAAIuoC,iBAAiB,GAAG72B,WAAxB,CAAA;;EACA,IAAIlR,MAAM,CAAC+O,IAAX,EAAiB;IACfg5B,iBAAiB,IAAIvoC,MAAM,CAACsZ,YAA5B,CAAA;AACAtZ,IAAAA,MAAM,CAACia,WAAP,EAAA,CAAA;AACD,GAAA;;EACD,IAAI1F,cAAc,GAAGg0B,iBAArB,CAAA;AACA,EAAA,IAAII,aAAJ,CAAA;;AAEA,EAAA,IAAI,OAAO/c,aAAP,KAAyB,QAAzB,IAAqC,QAAA,IAAYA,aAArD,EAAoE;AAClE,IAAA,KAAK,IAAI9sB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG8sB,aAAa,CAAC/yB,MAAlC,EAA0CiG,CAAC,IAAI,CAA/C,EAAkD;AAChD6pC,MAAAA,aAAa,GAAG/c,aAAa,CAAC9sB,CAAD,CAA7B,CAAA;AACA,MAAA,IAAIkB,MAAM,CAACsM,MAAP,CAAcq8B,aAAd,CAAJ,EAAkC3oC,MAAM,CAACsM,MAAP,CAAcq8B,aAAd,EAA6Bx3B,MAA7B,EAAA,CAAA;AAClC,MAAA,IAAIw3B,aAAa,GAAGp0B,cAApB,EAAoCA,cAAc,IAAI,CAAlB,CAAA;AACrC,KAAA;;IACDA,cAAc,GAAGpT,IAAI,CAACC,GAAL,CAASmT,cAAT,EAAyB,CAAzB,CAAjB,CAAA;AACD,GAPD,MAOO;AACLo0B,IAAAA,aAAa,GAAG/c,aAAhB,CAAA;AACA,IAAA,IAAI5rB,MAAM,CAACsM,MAAP,CAAcq8B,aAAd,CAAJ,EAAkC3oC,MAAM,CAACsM,MAAP,CAAcq8B,aAAd,EAA6Bx3B,MAA7B,EAAA,CAAA;AAClC,IAAA,IAAIw3B,aAAa,GAAGp0B,cAApB,EAAoCA,cAAc,IAAI,CAAlB,CAAA;IACpCA,cAAc,GAAGpT,IAAI,CAACC,GAAL,CAASmT,cAAT,EAAyB,CAAzB,CAAjB,CAAA;AACD,GAAA;;AAEDvU,EAAAA,MAAM,CAACga,YAAP,EAAA,CAAA;;EACA,IAAIxZ,MAAM,CAAC+O,IAAX,EAAiB;AACfvP,IAAAA,MAAM,CAACuZ,UAAP,EAAA,CAAA;AACD,GAAA;;AAED,EAAA,IAAI,CAAC/Y,MAAM,CAAC0G,QAAZ,EAAsB;AACpBlH,IAAAA,MAAM,CAACqiB,MAAP,EAAA,CAAA;AACD,GAAA;;EACD,IAAI7hB,MAAM,CAAC+O,IAAX,EAAiB;IACfvP,MAAM,CAACgX,OAAP,CAAezC,cAAc,GAAGvU,MAAM,CAACsZ,YAAvC,EAAqD,CAArD,EAAwD,KAAxD,CAAA,CAAA;AACD,GAFD,MAEO;AACLtZ,IAAAA,MAAM,CAACgX,OAAP,CAAezC,cAAf,EAA+B,CAA/B,EAAkC,KAAlC,CAAA,CAAA;AACD,GAAA;AACF;;ACvCc,SAASsX,eAAT,GAA2B;EACxC,MAAM7rB,MAAM,GAAG,IAAf,CAAA;EAEA,MAAM4rB,aAAa,GAAG,EAAtB,CAAA;;AACA,EAAA,KAAK,IAAI9sB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGkB,MAAM,CAACsM,MAAP,CAAczT,MAAlC,EAA0CiG,CAAC,IAAI,CAA/C,EAAkD;IAChD8sB,aAAa,CAACpoB,IAAd,CAAmB1E,CAAnB,CAAA,CAAA;AACD,GAAA;;EACDkB,MAAM,CAAC2rB,WAAP,CAAmBC,aAAnB,CAAA,CAAA;AACD;;ACFc,SAASgd,YAAT,CAAkC,IAAA,EAAA;EAAA,IAAZ;AAAE5oC,IAAAA,MAAAA;GAAU,GAAA,IAAA,CAAA;AAC/C1H,EAAAA,MAAM,CAACiT,MAAP,CAAcvL,MAAd,EAAsB;AACpBorB,IAAAA,WAAW,EAAEA,WAAW,CAACtI,IAAZ,CAAiB9iB,MAAjB,CADO;AAEpBqrB,IAAAA,YAAY,EAAEA,YAAY,CAACvI,IAAb,CAAkB9iB,MAAlB,CAFM;AAGpBsoC,IAAAA,QAAQ,EAAEA,QAAQ,CAACxlB,IAAT,CAAc9iB,MAAd,CAHU;AAIpB2rB,IAAAA,WAAW,EAAEA,WAAW,CAAC7I,IAAZ,CAAiB9iB,MAAjB,CAJO;AAKpB6rB,IAAAA,eAAe,EAAEA,eAAe,CAAC/I,IAAhB,CAAqB9iB,MAArB,CAAA;GALnB,CAAA,CAAA;AAOD;;ACdc,SAAS6oC,UAAT,CAAoBroC,MAApB,EAA4B;EACzC,MAAM;IACJ0O,MADI;IAEJlP,MAFI;IAGJgH,EAHI;IAIJyO,YAJI;IAKJnE,aALI;IAMJw3B,eANI;IAOJC,WAPI;IAQJC,eARI;AASJC,IAAAA,eAAAA;AATI,GAAA,GAUFzoC,MAVJ,CAAA;EAYAwG,EAAE,CAAC,YAAD,EAAe,MAAM;AACrB,IAAA,IAAIhH,MAAM,CAACQ,MAAP,CAAc0O,MAAd,KAAyBA,MAA7B,EAAqC,OAAA;AACrClP,IAAAA,MAAM,CAACmlB,UAAP,CAAkB3hB,IAAlB,CAAwB,CAAA,EAAExD,MAAM,CAACQ,MAAP,CAAcuQ,sBAAuB,CAAA,EAAE7B,MAAO,CAAxE,CAAA,CAAA,CAAA;;AACA,IAAA,IAAI65B,WAAW,IAAIA,WAAW,EAA9B,EAAkC;MAChC/oC,MAAM,CAACmlB,UAAP,CAAkB3hB,IAAlB,CAAwB,CAAExD,EAAAA,MAAM,CAACQ,MAAP,CAAcuQ,sBAAuB,CAA/D,EAAA,CAAA,CAAA,CAAA;AACD,KAAA;;AAED,IAAA,MAAMm4B,qBAAqB,GAAGJ,eAAe,GAAGA,eAAe,EAAlB,GAAuB,EAApE,CAAA;AAEAxwC,IAAAA,MAAM,CAACiT,MAAP,CAAcvL,MAAM,CAACQ,MAArB,EAA6B0oC,qBAA7B,CAAA,CAAA;AACA5wC,IAAAA,MAAM,CAACiT,MAAP,CAAcvL,MAAM,CAACujB,cAArB,EAAqC2lB,qBAArC,CAAA,CAAA;AACD,GAXC,CAAF,CAAA;EAYAliC,EAAE,CAAC,cAAD,EAAiB,MAAM;AACvB,IAAA,IAAIhH,MAAM,CAACQ,MAAP,CAAc0O,MAAd,KAAyBA,MAA7B,EAAqC,OAAA;IACrCuG,YAAY,EAAA,CAAA;AACb,GAHC,CAAF,CAAA;AAIAzO,EAAAA,EAAE,CAAC,eAAD,EAAkB,CAAC+qB,EAAD,EAAKxxB,QAAL,KAAkB;AACpC,IAAA,IAAIP,MAAM,CAACQ,MAAP,CAAc0O,MAAd,KAAyBA,MAA7B,EAAqC,OAAA;IACrCoC,aAAa,CAAC/Q,QAAD,CAAb,CAAA;AACD,GAHC,CAAF,CAAA;EAKAyG,EAAE,CAAC,eAAD,EAAkB,MAAM;AACxB,IAAA,IAAIhH,MAAM,CAACQ,MAAP,CAAc0O,MAAd,KAAyBA,MAA7B,EAAqC,OAAA;;AACrC,IAAA,IAAI85B,eAAJ,EAAqB;MACnB,IAAI,CAACC,eAAD,IAAoB,CAACA,eAAe,EAAGE,CAAAA,YAA3C,EAAyD,OADtC;;AAGnBnpC,MAAAA,MAAM,CAACsM,MAAP,CAAc3T,OAAd,CAAuBkJ,OAAD,IAAa;AACjCA,QAAAA,OAAO,CACJvI,gBADH,CAEI,8GAFJ,CAIGX,CAAAA,OAJH,CAIYmJ,QAAD,IAAcA,QAAQ,CAACqP,MAAT,EAJzB,CAAA,CAAA;AAKD,OAND,EAHmB;;MAWnB63B,eAAe,EAAA,CAAA;AAChB,KAAA;AACF,GAfC,CAAF,CAAA;AAiBA,EAAA,IAAII,sBAAJ,CAAA;EACApiC,EAAE,CAAC,eAAD,EAAkB,MAAM;AACxB,IAAA,IAAIhH,MAAM,CAACQ,MAAP,CAAc0O,MAAd,KAAyBA,MAA7B,EAAqC,OAAA;;AACrC,IAAA,IAAI,CAAClP,MAAM,CAACsM,MAAP,CAAczT,MAAnB,EAA2B;AACzBuwC,MAAAA,sBAAsB,GAAG,IAAzB,CAAA;AACD,KAAA;;AACDrtC,IAAAA,qBAAqB,CAAC,MAAM;MAC1B,IAAIqtC,sBAAsB,IAAIppC,MAAM,CAACsM,MAAjC,IAA2CtM,MAAM,CAACsM,MAAP,CAAczT,MAA7D,EAAqE;QACnE4c,YAAY,EAAA,CAAA;AACZ2zB,QAAAA,sBAAsB,GAAG,KAAzB,CAAA;AACD,OAAA;AACF,KALoB,CAArB,CAAA;AAMD,GAXC,CAAF,CAAA;AAYD;;AC9Dc,SAASC,YAAT,CAAsBC,YAAtB,EAAoCznC,OAApC,EAA6C;AAC1D,EAAA,MAAM0nC,WAAW,GAAG3nC,mBAAmB,CAACC,OAAD,CAAvC,CAAA;;EACA,IAAI0nC,WAAW,KAAK1nC,OAApB,EAA6B;AAC3B0nC,IAAAA,WAAW,CAAC1vC,KAAZ,CAAkB2vC,kBAAlB,GAAuC,QAAvC,CAAA;AACAD,IAAAA,WAAW,CAAC1vC,KAAZ,CAAkB,6BAAlB,IAAmD,QAAnD,CAAA;AACD,GAAA;;AACD,EAAA,OAAO0vC,WAAP,CAAA;AACD;;ACPc,SAASE,0BAAT,CAKZ,IAAA,EAAA;EAAA,IALgD;IACjDzpC,MADiD;IAEjDO,QAFiD;IAGjDmpC,iBAHiD;AAIjDC,IAAAA,SAAAA;GACC,GAAA,IAAA,CAAA;EACD,MAAM;AAAEj4B,IAAAA,WAAAA;AAAF,GAAA,GAAkB1R,MAAxB,CAAA;;EACA,MAAM4pC,QAAQ,GAAIhtC,EAAD,IAAQ;AACvB,IAAA,IAAI,CAACA,EAAE,CAACyH,aAAR,EAAuB;AACrB;MACA,MAAM+J,KAAK,GAAGpO,MAAM,CAACsM,MAAP,CAAcpN,MAAd,CACX2C,OAAD,IAAaA,OAAO,CAACC,QAAR,IAAoBD,OAAO,CAACC,QAAR,KAAqBlF,EAAE,CAACitC,UAD7C,CAEZ,CAAA,CAFY,CAAd,CAAA;AAGA,MAAA,OAAOz7B,KAAP,CAAA;AACD,KAAA;;IACD,OAAOxR,EAAE,CAACyH,aAAV,CAAA;GARF,CAAA;;EAUA,IAAIrE,MAAM,CAACQ,MAAP,CAAc+U,gBAAd,IAAkChV,QAAQ,KAAK,CAAnD,EAAsD;IACpD,IAAIupC,cAAc,GAAG,KAArB,CAAA;AACA,IAAA,IAAIC,mBAAJ,CAAA;;AACA,IAAA,IAAIJ,SAAJ,EAAe;AACbI,MAAAA,mBAAmB,GAAGL,iBAAtB,CAAA;AACD,KAFD,MAEO;AACLK,MAAAA,mBAAmB,GAAGL,iBAAiB,CAACxqC,MAAlB,CAA0BqqC,WAAD,IAAiB;AAC9D,QAAA,MAAM3sC,EAAE,GAAG2sC,WAAW,CAAClnC,SAAZ,CAAsB4O,QAAtB,CAA+B,wBAA/B,IACP24B,QAAQ,CAACL,WAAD,CADD,GAEPA,WAFJ,CAAA;AAGA,QAAA,OAAOxlC,YAAY,CAACnH,EAAD,CAAZ,KAAqB8U,WAA5B,CAAA;AACD,OALqB,CAAtB,CAAA;AAMD,KAAA;;AACDq4B,IAAAA,mBAAmB,CAACpxC,OAApB,CAA6BiE,EAAD,IAAQ;MAClC0H,oBAAoB,CAAC1H,EAAD,EAAK,MAAM;AAC7B,QAAA,IAAIktC,cAAJ,EAAoB,OAAA;AACpB,QAAA,IAAI,CAAC9pC,MAAD,IAAWA,MAAM,CAACqH,SAAtB,EAAiC,OAAA;AACjCyiC,QAAAA,cAAc,GAAG,IAAjB,CAAA;QACA9pC,MAAM,CAACoW,SAAP,GAAmB,KAAnB,CAAA;AACA,QAAA,MAAM4zB,aAAa,GAAG,CAAC,qBAAD,EAAwB,eAAxB,CAAtB,CAAA;AACAA,QAAAA,aAAa,CAACrxC,OAAd,CAAuB0mB,SAAD,IAAe;UACnC,MAAMC,GAAG,GAAG,IAAIjjB,MAAM,CAACf,WAAX,CAAuB+jB,SAAvB,EAAkC;AAC5CE,YAAAA,OAAO,EAAE,IADmC;AAE5CP,YAAAA,UAAU,EAAE,IAAA;AAFgC,WAAlC,CAAZ,CAAA;AAIAhf,UAAAA,MAAM,CAACU,SAAP,CAAiB8e,aAAjB,CAA+BF,GAA/B,CAAA,CAAA;SALF,CAAA,CAAA;AAOD,OAbmB,CAApB,CAAA;KADF,CAAA,CAAA;AAgBD,GAAA;AACF;;AC5Cc,SAAS2qB,UAAT,CAAkD,IAAA,EAAA;EAAA,IAA9B;IAAEjqC,MAAF;IAAUsI,YAAV;AAAwBtB,IAAAA,EAAAA;GAAM,GAAA,IAAA,CAAA;AAC/DsB,EAAAA,YAAY,CAAC;AACX4hC,IAAAA,UAAU,EAAE;AACVC,MAAAA,SAAS,EAAE,KAAA;AADD,KAAA;AADD,GAAD,CAAZ,CAAA;;EAMA,MAAM10B,YAAY,GAAG,MAAM;IACzB,MAAM;AAAEnJ,MAAAA,MAAAA;AAAF,KAAA,GAAatM,MAAnB,CAAA;AACA,IAAA,MAAMQ,MAAM,GAAGR,MAAM,CAACQ,MAAP,CAAc0pC,UAA7B,CAAA;;AACA,IAAA,KAAK,IAAIprC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwN,MAAM,CAACzT,MAA3B,EAAmCiG,CAAC,IAAI,CAAxC,EAA2C;AACzC,MAAA,MAAM+C,OAAO,GAAG7B,MAAM,CAACsM,MAAP,CAAcxN,CAAd,CAAhB,CAAA;AACA,MAAA,MAAMmrB,MAAM,GAAGpoB,OAAO,CAAC+P,iBAAvB,CAAA;MACA,IAAIw4B,EAAE,GAAG,CAACngB,MAAV,CAAA;MACA,IAAI,CAACjqB,MAAM,CAACQ,MAAP,CAAc+U,gBAAnB,EAAqC60B,EAAE,IAAIpqC,MAAM,CAACI,SAAb,CAAA;MACrC,IAAIiqC,EAAE,GAAG,CAAT,CAAA;;AACA,MAAA,IAAI,CAACrqC,MAAM,CAACkL,YAAP,EAAL,EAA4B;AAC1Bm/B,QAAAA,EAAE,GAAGD,EAAL,CAAA;AACAA,QAAAA,EAAE,GAAG,CAAL,CAAA;AACD,OAAA;;MACD,MAAME,YAAY,GAAGtqC,MAAM,CAACQ,MAAP,CAAc0pC,UAAd,CAAyBC,SAAzB,GACjBhpC,IAAI,CAACC,GAAL,CAAS,CAAID,GAAAA,IAAI,CAAC4N,GAAL,CAASlN,OAAO,CAACX,QAAjB,CAAb,EAAyC,CAAzC,CADiB,GAEjB,CAAA,GAAIC,IAAI,CAACE,GAAL,CAASF,IAAI,CAACC,GAAL,CAASS,OAAO,CAACX,QAAjB,EAA2B,CAAC,CAA5B,CAAT,EAAyC,CAAzC,CAFR,CAAA;AAIA,MAAA,MAAMsa,QAAQ,GAAG6tB,YAAY,CAAC7oC,MAAD,EAASqB,OAAT,CAA7B,CAAA;AACA2Z,MAAAA,QAAQ,CAAC3hB,KAAT,CAAe48B,OAAf,GAAyB6T,YAAzB,CAAA;MACA9uB,QAAQ,CAAC3hB,KAAT,CAAewD,SAAf,GAA4B,CAAc+sC,YAAAA,EAAAA,EAAG,CAAMC,IAAAA,EAAAA,EAAG,CAAtD,QAAA,CAAA,CAAA;AACD,KAAA;GApBH,CAAA;;EAsBA,MAAM/4B,aAAa,GAAI/Q,QAAD,IAAc;AAClC,IAAA,MAAMmpC,iBAAiB,GAAG1pC,MAAM,CAACsM,MAAP,CAAc9O,GAAd,CAAmBqE,OAAD,IAAaD,mBAAmB,CAACC,OAAD,CAAlD,CAA1B,CAAA;AACA6nC,IAAAA,iBAAiB,CAAC/wC,OAAlB,CAA2BiE,EAAD,IAAQ;AAChCA,MAAAA,EAAE,CAAC/C,KAAH,CAAS0sB,UAAT,GAAuB,CAAA,EAAEhmB,QAAS,CAAlC,EAAA,CAAA,CAAA;KADF,CAAA,CAAA;AAIAkpC,IAAAA,0BAA0B,CAAC;MAAEzpC,MAAF;MAAUO,QAAV;MAAoBmpC,iBAApB;AAAuCC,MAAAA,SAAS,EAAE,IAAA;AAAlD,KAAD,CAA1B,CAAA;GANF,CAAA;;AASAd,EAAAA,UAAU,CAAC;AACT35B,IAAAA,MAAM,EAAE,MADC;IAETlP,MAFS;IAGTgH,EAHS;IAITyO,YAJS;IAKTnE,aALS;AAMTw3B,IAAAA,eAAe,EAAE,OAAO;AACtB56B,MAAAA,aAAa,EAAE,CADO;AAEtBc,MAAAA,cAAc,EAAE,CAFM;AAGtB4B,MAAAA,mBAAmB,EAAE,IAHC;AAItB1D,MAAAA,YAAY,EAAE,CAJQ;AAKtBqI,MAAAA,gBAAgB,EAAE,CAACvV,MAAM,CAACQ,MAAP,CAAcmN,OAAAA;KALlB,CAAA;AANR,GAAD,CAAV,CAAA;AAcD;;ACtDc,SAAS48B,UAAT,CAAkD,IAAA,EAAA;EAAA,IAA9B;IAAEvqC,MAAF;IAAUsI,YAAV;AAAwBtB,IAAAA,EAAAA;GAAM,GAAA,IAAA,CAAA;AAC/DsB,EAAAA,YAAY,CAAC;AACXkiC,IAAAA,UAAU,EAAE;AACVrB,MAAAA,YAAY,EAAE,IADJ;AAEVsB,MAAAA,MAAM,EAAE,IAFE;AAGVC,MAAAA,YAAY,EAAE,EAHJ;AAIVC,MAAAA,WAAW,EAAE,IAAA;AAJH,KAAA;AADD,GAAD,CAAZ,CAAA;;EASA,MAAMC,kBAAkB,GAAG,CAAC/oC,OAAD,EAAUX,QAAV,EAAoBgK,YAApB,KAAqC;AAC9D,IAAA,IAAI2/B,YAAY,GAAG3/B,YAAY,GAC3BrJ,OAAO,CAACxI,aAAR,CAAsB,2BAAtB,CAD2B,GAE3BwI,OAAO,CAACxI,aAAR,CAAsB,0BAAtB,CAFJ,CAAA;AAGA,IAAA,IAAIyxC,WAAW,GAAG5/B,YAAY,GAC1BrJ,OAAO,CAACxI,aAAR,CAAsB,4BAAtB,CAD0B,GAE1BwI,OAAO,CAACxI,aAAR,CAAsB,6BAAtB,CAFJ,CAAA;;IAGA,IAAI,CAACwxC,YAAL,EAAmB;AACjBA,MAAAA,YAAY,GAAGnxC,aAAa,CAAC,KAAD,EAAS,CAAA,oBAAA,EAAsBwR,YAAY,GAAG,MAAH,GAAY,KAAM,CAAA,CAA7D,CAA5B,CAAA;MACArJ,OAAO,CAACkY,MAAR,CAAe8wB,YAAf,CAAA,CAAA;AACD,KAAA;;IACD,IAAI,CAACC,WAAL,EAAkB;AAChBA,MAAAA,WAAW,GAAGpxC,aAAa,CACzB,KADyB,EAExB,CAAA,oBAAA,EAAsBwR,YAAY,GAAG,OAAH,GAAa,QAAS,CAAA,CAFhC,CAA3B,CAAA;MAIArJ,OAAO,CAACkY,MAAR,CAAe+wB,WAAf,CAAA,CAAA;AACD,KAAA;;AACD,IAAA,IAAID,YAAJ,EAAkBA,YAAY,CAAChxC,KAAb,CAAmB48B,OAAnB,GAA6Bt1B,IAAI,CAACC,GAAL,CAAS,CAACF,QAAV,EAAoB,CAApB,CAA7B,CAAA;AAClB,IAAA,IAAI4pC,WAAJ,EAAiBA,WAAW,CAACjxC,KAAZ,CAAkB48B,OAAlB,GAA4Bt1B,IAAI,CAACC,GAAL,CAASF,QAAT,EAAmB,CAAnB,CAA5B,CAAA;GAnBnB,CAAA;;EAsBA,MAAM8nC,eAAe,GAAG,MAAM;AAC5B;AACA,IAAA,MAAM99B,YAAY,GAAGlL,MAAM,CAACkL,YAAP,EAArB,CAAA;AACAlL,IAAAA,MAAM,CAACsM,MAAP,CAAc3T,OAAd,CAAuBkJ,OAAD,IAAa;AACjC,MAAA,MAAMX,QAAQ,GAAGC,IAAI,CAACC,GAAL,CAASD,IAAI,CAACE,GAAL,CAASQ,OAAO,CAACX,QAAjB,EAA2B,CAA3B,CAAT,EAAwC,CAAC,CAAzC,CAAjB,CAAA;AACA0pC,MAAAA,kBAAkB,CAAC/oC,OAAD,EAAUX,QAAV,EAAoBgK,YAApB,CAAlB,CAAA;KAFF,CAAA,CAAA;GAHF,CAAA;;EASA,MAAMuK,YAAY,GAAG,MAAM;IACzB,MAAM;MACJ7Y,EADI;MAEJ8D,SAFI;MAGJ4L,MAHI;AAIJ3G,MAAAA,KAAK,EAAEunB,WAJH;AAKJrnB,MAAAA,MAAM,EAAEsnB,YALJ;AAMJphB,MAAAA,YAAY,EAAEC,GANV;AAOJvH,MAAAA,IAAI,EAAEqH,UAPF;AAQJtF,MAAAA,OAAAA;AARI,KAAA,GASFxG,MATJ,CAAA;AAUA,IAAA,MAAMQ,MAAM,GAAGR,MAAM,CAACQ,MAAP,CAAcgqC,UAA7B,CAAA;AACA,IAAA,MAAMt/B,YAAY,GAAGlL,MAAM,CAACkL,YAAP,EAArB,CAAA;AACA,IAAA,MAAMgB,SAAS,GAAGlM,MAAM,CAACmM,OAAP,IAAkBnM,MAAM,CAACQ,MAAP,CAAc2L,OAAd,CAAsBC,OAA1D,CAAA;IACA,IAAI2+B,aAAa,GAAG,CAApB,CAAA;AACA,IAAA,IAAIC,YAAJ,CAAA;;IAEA,IAAIxqC,MAAM,CAACiqC,MAAX,EAAmB;AACjB,MAAA,IAAIv/B,YAAJ,EAAkB;QAChB8/B,YAAY,GAAGhrC,MAAM,CAAC6L,QAAP,CAAgBxS,aAAhB,CAA8B,qBAA9B,CAAf,CAAA;;QACA,IAAI,CAAC2xC,YAAL,EAAmB;AACjBA,UAAAA,YAAY,GAAGtxC,aAAa,CAAC,KAAD,EAAQ,oBAAR,CAA5B,CAAA;AACAsG,UAAAA,MAAM,CAAC6L,QAAP,CAAgBkO,MAAhB,CAAuBixB,YAAvB,CAAA,CAAA;AACD,SAAA;;AACDA,QAAAA,YAAY,CAACnxC,KAAb,CAAmBgM,MAAnB,GAA6B,CAAA,EAAEqnB,WAAY,CAA3C,EAAA,CAAA,CAAA;AACD,OAPD,MAOO;AACL8d,QAAAA,YAAY,GAAGpuC,EAAE,CAACvD,aAAH,CAAiB,qBAAjB,CAAf,CAAA;;QACA,IAAI,CAAC2xC,YAAL,EAAmB;AACjBA,UAAAA,YAAY,GAAGtxC,aAAa,CAAC,KAAD,EAAQ,oBAAR,CAA5B,CAAA;UACAkD,EAAE,CAACmd,MAAH,CAAUixB,YAAV,CAAA,CAAA;AACD,SAAA;AACF,OAAA;AACF,KAAA;;AACD,IAAA,KAAK,IAAIlsC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwN,MAAM,CAACzT,MAA3B,EAAmCiG,CAAC,IAAI,CAAxC,EAA2C;AACzC,MAAA,MAAM+C,OAAO,GAAGyK,MAAM,CAACxN,CAAD,CAAtB,CAAA;MACA,IAAIgR,UAAU,GAAGhR,CAAjB,CAAA;;AACA,MAAA,IAAIoN,SAAJ,EAAe;QACb4D,UAAU,GAAG1E,QAAQ,CAACvJ,OAAO,CAAC2P,YAAR,CAAqB,yBAArB,CAAD,EAAkD,EAAlD,CAArB,CAAA;AACD,OAAA;;AACD,MAAA,IAAIy5B,UAAU,GAAGn7B,UAAU,GAAG,EAA9B,CAAA;MACA,IAAIuvB,KAAK,GAAGl+B,IAAI,CAAC0N,KAAL,CAAWo8B,UAAU,GAAG,GAAxB,CAAZ,CAAA;;AACA,MAAA,IAAIj/B,GAAJ,EAAS;QACPi/B,UAAU,GAAG,CAACA,UAAd,CAAA;QACA5L,KAAK,GAAGl+B,IAAI,CAAC0N,KAAL,CAAW,CAACo8B,UAAD,GAAc,GAAzB,CAAR,CAAA;AACD,OAAA;;AACD,MAAA,MAAM/pC,QAAQ,GAAGC,IAAI,CAACC,GAAL,CAASD,IAAI,CAACE,GAAL,CAASQ,OAAO,CAACX,QAAjB,EAA2B,CAA3B,CAAT,EAAwC,CAAC,CAAzC,CAAjB,CAAA;MACA,IAAIkpC,EAAE,GAAG,CAAT,CAAA;MACA,IAAIC,EAAE,GAAG,CAAT,CAAA;MACA,IAAIa,EAAE,GAAG,CAAT,CAAA;;AACA,MAAA,IAAIp7B,UAAU,GAAG,CAAb,KAAmB,CAAvB,EAA0B;AACxBs6B,QAAAA,EAAE,GAAG,CAAC/K,KAAD,GAAS,CAAT,GAAavzB,UAAlB,CAAA;AACAo/B,QAAAA,EAAE,GAAG,CAAL,CAAA;OAFF,MAGO,IAAI,CAACp7B,UAAU,GAAG,CAAd,IAAmB,CAAnB,KAAyB,CAA7B,EAAgC;AACrCs6B,QAAAA,EAAE,GAAG,CAAL,CAAA;AACAc,QAAAA,EAAE,GAAG,CAAC7L,KAAD,GAAS,CAAT,GAAavzB,UAAlB,CAAA;OAFK,MAGA,IAAI,CAACgE,UAAU,GAAG,CAAd,IAAmB,CAAnB,KAAyB,CAA7B,EAAgC;AACrCs6B,QAAAA,EAAE,GAAGt+B,UAAU,GAAGuzB,KAAK,GAAG,CAAR,GAAYvzB,UAA9B,CAAA;AACAo/B,QAAAA,EAAE,GAAGp/B,UAAL,CAAA;OAFK,MAGA,IAAI,CAACgE,UAAU,GAAG,CAAd,IAAmB,CAAnB,KAAyB,CAA7B,EAAgC;QACrCs6B,EAAE,GAAG,CAACt+B,UAAN,CAAA;QACAo/B,EAAE,GAAG,IAAIp/B,UAAJ,GAAiBA,UAAU,GAAG,CAAb,GAAiBuzB,KAAvC,CAAA;AACD,OAAA;;AACD,MAAA,IAAIrzB,GAAJ,EAAS;QACPo+B,EAAE,GAAG,CAACA,EAAN,CAAA;AACD,OAAA;;MAED,IAAI,CAACl/B,YAAL,EAAmB;AACjBm/B,QAAAA,EAAE,GAAGD,EAAL,CAAA;AACAA,QAAAA,EAAE,GAAG,CAAL,CAAA;AACD,OAAA;;MAED,MAAM/sC,SAAS,GAAI,CAAU6N,QAAAA,EAAAA,YAAY,GAAG,CAAH,GAAO,CAAC+/B,UAAW,CAAA,aAAA,EAC1D//B,YAAY,GAAG+/B,UAAH,GAAgB,CAC7B,CAAA,iBAAA,EAAmBb,EAAG,CAAMC,IAAAA,EAAAA,EAAG,CAAMa,IAAAA,EAAAA,EAAG,CAFzC,GAAA,CAAA,CAAA;;MAGA,IAAIhqC,QAAQ,IAAI,CAAZ,IAAiBA,QAAQ,GAAG,CAAC,CAAjC,EAAoC;AAClC6pC,QAAAA,aAAa,GAAGj7B,UAAU,GAAG,EAAb,GAAkB5O,QAAQ,GAAG,EAA7C,CAAA;QACA,IAAI8K,GAAJ,EAAS++B,aAAa,GAAG,CAACj7B,UAAD,GAAc,EAAd,GAAmB5O,QAAQ,GAAG,EAA9C,CAAA;AACV,OAAA;;AACDW,MAAAA,OAAO,CAAChI,KAAR,CAAcwD,SAAd,GAA0BA,SAA1B,CAAA;;MACA,IAAImD,MAAM,CAAC2oC,YAAX,EAAyB;AACvByB,QAAAA,kBAAkB,CAAC/oC,OAAD,EAAUX,QAAV,EAAoBgK,YAApB,CAAlB,CAAA;AACD,OAAA;AACF,KAAA;;IACDxK,SAAS,CAAC7G,KAAV,CAAgBsxC,eAAhB,GAAmC,CAAWr/B,SAAAA,EAAAA,UAAU,GAAG,CAAE,CAA7D,EAAA,CAAA,CAAA;IACApL,SAAS,CAAC7G,KAAV,CAAgB,0BAAhB,IAA+C,CAAWiS,SAAAA,EAAAA,UAAU,GAAG,CAAE,CAAzE,EAAA,CAAA,CAAA;;IAEA,IAAItL,MAAM,CAACiqC,MAAX,EAAmB;AACjB,MAAA,IAAIv/B,YAAJ,EAAkB;QAChB8/B,YAAY,CAACnxC,KAAb,CAAmBwD,SAAnB,GAAgC,CAC9B6vB,iBAAAA,EAAAA,WAAW,GAAG,CAAd,GAAkB1sB,MAAM,CAACkqC,YAC1B,CAAA,IAAA,EAAM,CAACxd,WAAD,GAAe,CAAE,CAAyC1sB,uCAAAA,EAAAA,MAAM,CAACmqC,WAAY,CAFpF,CAAA,CAAA,CAAA;AAGD,OAJD,MAIO;QACL,MAAMS,WAAW,GAAGjqC,IAAI,CAAC4N,GAAL,CAASg8B,aAAT,IAA0B5pC,IAAI,CAAC0N,KAAL,CAAW1N,IAAI,CAAC4N,GAAL,CAASg8B,aAAT,CAA0B,GAAA,EAArC,IAA2C,EAAzF,CAAA;AACA,QAAA,MAAMn4B,UAAU,GACd,GACCzR,IAAAA,IAAI,CAACkqC,GAAL,CAAUD,WAAW,GAAG,CAAd,GAAkBjqC,IAAI,CAACK,EAAxB,GAA8B,GAAvC,CAAA,GAA8C,CAA9C,GACCL,IAAI,CAACI,GAAL,CAAU6pC,WAAW,GAAG,CAAd,GAAkBjqC,IAAI,CAACK,EAAxB,GAA8B,GAAvC,CAAA,GAA8C,CAFhD,CADF,CAAA;AAIA,QAAA,MAAM8pC,MAAM,GAAG9qC,MAAM,CAACmqC,WAAtB,CAAA;AACA,QAAA,MAAMY,MAAM,GAAG/qC,MAAM,CAACmqC,WAAP,GAAqB/3B,UAApC,CAAA;AACA,QAAA,MAAMqX,MAAM,GAAGzpB,MAAM,CAACkqC,YAAtB,CAAA;QACAM,YAAY,CAACnxC,KAAb,CAAmBwD,SAAnB,GAAgC,CAAUiuC,QAAAA,EAAAA,MAAO,CAAOC,KAAAA,EAAAA,MAAO,CAC7Dpe,mBAAAA,EAAAA,YAAY,GAAG,CAAf,GAAmBlD,MACpB,CAAM,IAAA,EAAA,CAACkD,YAAD,GAAgB,CAAhB,GAAoBoe,MAAO,CAFlC,mBAAA,CAAA,CAAA;AAGD,OAAA;AACF,KAAA;;AACD,IAAA,MAAMC,OAAO,GAAGhlC,OAAO,CAACE,QAAR,IAAoBF,OAAO,CAACI,SAA5B,GAAwC,CAACkF,UAAD,GAAc,CAAtD,GAA0D,CAA1E,CAAA;IACApL,SAAS,CAAC7G,KAAV,CAAgBwD,SAAhB,GAA6B,qBAAoBmuC,OAAQ,CAAA,YAAA,EACvDxrC,MAAM,CAACkL,YAAP,EAAA,GAAwB,CAAxB,GAA4B6/B,aAC7B,CAAe/qC,aAAAA,EAAAA,MAAM,CAACkL,YAAP,KAAwB,CAAC6/B,aAAzB,GAAyC,CAAE,CAF3D,IAAA,CAAA,CAAA;IAIArqC,SAAS,CAAC7G,KAAV,CAAgBiG,WAAhB,CAA4B,2BAA5B,EAA0D,CAAE0rC,EAAAA,OAAQ,CAApE,EAAA,CAAA,CAAA,CAAA;GA9GF,CAAA;;EAgHA,MAAMl6B,aAAa,GAAI/Q,QAAD,IAAc;IAClC,MAAM;MAAE3D,EAAF;AAAM0P,MAAAA,MAAAA;AAAN,KAAA,GAAiBtM,MAAvB,CAAA;AACAsM,IAAAA,MAAM,CAAC3T,OAAP,CAAgBkJ,OAAD,IAAa;AAC1BA,MAAAA,OAAO,CAAChI,KAAR,CAAc8c,kBAAd,GAAoC,CAAA,EAAEpW,QAAS,CAA/C,EAAA,CAAA,CAAA;MACAsB,OAAO,CACJvI,gBADH,CAEI,8GAFJ,EAIGX,OAJH,CAIY84B,KAAD,IAAW;AAClBA,QAAAA,KAAK,CAAC53B,KAAN,CAAY8c,kBAAZ,GAAkC,CAAA,EAAEpW,QAAS,CAA7C,EAAA,CAAA,CAAA;OALJ,CAAA,CAAA;KAFF,CAAA,CAAA;;AAWA,IAAA,IAAIP,MAAM,CAACQ,MAAP,CAAcgqC,UAAd,CAAyBC,MAAzB,IAAmC,CAACzqC,MAAM,CAACkL,YAAP,EAAxC,EAA+D;AAC7D,MAAA,MAAMpJ,QAAQ,GAAGlF,EAAE,CAACvD,aAAH,CAAiB,qBAAjB,CAAjB,CAAA;MACA,IAAIyI,QAAJ,EAAcA,QAAQ,CAACjI,KAAT,CAAe8c,kBAAf,GAAqC,CAAEpW,EAAAA,QAAS,CAAhD,EAAA,CAAA,CAAA;AACf,KAAA;GAhBH,CAAA;;AAmBAsoC,EAAAA,UAAU,CAAC;AACT35B,IAAAA,MAAM,EAAE,MADC;IAETlP,MAFS;IAGTgH,EAHS;IAITyO,YAJS;IAKTnE,aALS;IAMT03B,eANS;AAOTC,IAAAA,eAAe,EAAE,MAAMjpC,MAAM,CAACQ,MAAP,CAAcgqC,UAP5B;IAQTzB,WAAW,EAAE,MAAM,IARV;AASTD,IAAAA,eAAe,EAAE,OAAO;AACtB56B,MAAAA,aAAa,EAAE,CADO;AAEtBc,MAAAA,cAAc,EAAE,CAFM;AAGtB4B,MAAAA,mBAAmB,EAAE,IAHC;AAItBkP,MAAAA,eAAe,EAAE,CAJK;AAKtB5S,MAAAA,YAAY,EAAE,CALQ;AAMtBQ,MAAAA,cAAc,EAAE,KANM;AAOtB6H,MAAAA,gBAAgB,EAAE,IAAA;KAPH,CAAA;AATR,GAAD,CAAV,CAAA;AAmBD;;AChMc,SAASk2B,YAAT,CAAsBjrC,MAAtB,EAA8BqB,OAA9B,EAAuC3B,IAAvC,EAA6C;EAC1D,MAAMwrC,WAAW,GAAI,CAAA,mBAAA,EAAqBxrC,IAAI,GAAI,IAAGA,IAAK,CAAA,CAAZ,GAAgB,EAAG,CAAjE,CAAA,CAAA;AACA,EAAA,MAAMyrC,eAAe,GAAG/pC,mBAAmB,CAACC,OAAD,CAA3C,CAAA;EACA,IAAIC,QAAQ,GAAG6pC,eAAe,CAACtyC,aAAhB,CAA+B,CAAA,CAAA,EAAGqyC,WAAY,CAAA,CAA9C,CAAf,CAAA;;EAEA,IAAI,CAAC5pC,QAAL,EAAe;AACbA,IAAAA,QAAQ,GAAGpI,aAAa,CAAC,KAAD,EAAS,CAAqBwG,mBAAAA,EAAAA,IAAI,GAAI,CAAA,CAAA,EAAGA,IAAK,CAAA,CAAZ,GAAgB,EAAG,EAArD,CAAxB,CAAA;IACAyrC,eAAe,CAAC5xB,MAAhB,CAAuBjY,QAAvB,CAAA,CAAA;AACD,GAAA;;AACD,EAAA,OAAOA,QAAP,CAAA;AACD;;ACNc,SAAS8pC,UAAT,CAAkD,IAAA,EAAA;EAAA,IAA9B;IAAE5rC,MAAF;IAAUsI,YAAV;AAAwBtB,IAAAA,EAAAA;GAAM,GAAA,IAAA,CAAA;AAC/DsB,EAAAA,YAAY,CAAC;AACXujC,IAAAA,UAAU,EAAE;AACV1C,MAAAA,YAAY,EAAE,IADJ;AAEV2C,MAAAA,aAAa,EAAE,IAAA;AAFL,KAAA;AADD,GAAD,CAAZ,CAAA;;EAOA,MAAMlB,kBAAkB,GAAG,CAAC/oC,OAAD,EAAUX,QAAV,EAAoBV,MAApB,KAA+B;AACxD,IAAA,IAAIqqC,YAAY,GAAG7qC,MAAM,CAACkL,YAAP,EAAA,GACfrJ,OAAO,CAACxI,aAAR,CAAsB,2BAAtB,CADe,GAEfwI,OAAO,CAACxI,aAAR,CAAsB,0BAAtB,CAFJ,CAAA;AAGA,IAAA,IAAIyxC,WAAW,GAAG9qC,MAAM,CAACkL,YAAP,EAAA,GACdrJ,OAAO,CAACxI,aAAR,CAAsB,4BAAtB,CADc,GAEdwI,OAAO,CAACxI,aAAR,CAAsB,6BAAtB,CAFJ,CAAA;;IAGA,IAAI,CAACwxC,YAAL,EAAmB;AACjBA,MAAAA,YAAY,GAAGY,YAAY,CAACjrC,MAAD,EAASqB,OAAT,EAAkB7B,MAAM,CAACkL,YAAP,EAAA,GAAwB,MAAxB,GAAiC,KAAnD,CAA3B,CAAA;AACD,KAAA;;IACD,IAAI,CAAC4/B,WAAL,EAAkB;AAChBA,MAAAA,WAAW,GAAGW,YAAY,CAACjrC,MAAD,EAASqB,OAAT,EAAkB7B,MAAM,CAACkL,YAAP,EAAA,GAAwB,OAAxB,GAAkC,QAApD,CAA1B,CAAA;AACD,KAAA;;AACD,IAAA,IAAI2/B,YAAJ,EAAkBA,YAAY,CAAChxC,KAAb,CAAmB48B,OAAnB,GAA6Bt1B,IAAI,CAACC,GAAL,CAAS,CAACF,QAAV,EAAoB,CAApB,CAA7B,CAAA;AAClB,IAAA,IAAI4pC,WAAJ,EAAiBA,WAAW,CAACjxC,KAAZ,CAAkB48B,OAAlB,GAA4Bt1B,IAAI,CAACC,GAAL,CAASF,QAAT,EAAmB,CAAnB,CAA5B,CAAA;GAdnB,CAAA;;EAiBA,MAAM8nC,eAAe,GAAG,MAAM;AAC5B;AACA,IAAA,MAAMxoC,MAAM,GAAGR,MAAM,CAACQ,MAAP,CAAcqrC,UAA7B,CAAA;AACA7rC,IAAAA,MAAM,CAACsM,MAAP,CAAc3T,OAAd,CAAuBkJ,OAAD,IAAa;AACjC,MAAA,IAAIX,QAAQ,GAAGW,OAAO,CAACX,QAAvB,CAAA;;AACA,MAAA,IAAIlB,MAAM,CAACQ,MAAP,CAAcqrC,UAAd,CAAyBC,aAA7B,EAA4C;AAC1C5qC,QAAAA,QAAQ,GAAGC,IAAI,CAACC,GAAL,CAASD,IAAI,CAACE,GAAL,CAASQ,OAAO,CAACX,QAAjB,EAA2B,CAA3B,CAAT,EAAwC,CAAC,CAAzC,CAAX,CAAA;AACD,OAAA;;AACD0pC,MAAAA,kBAAkB,CAAC/oC,OAAD,EAAUX,QAAV,EAAoBV,MAApB,CAAlB,CAAA;KALF,CAAA,CAAA;GAHF,CAAA;;EAYA,MAAMiV,YAAY,GAAG,MAAM;IACzB,MAAM;MAAEnJ,MAAF;AAAUP,MAAAA,YAAY,EAAEC,GAAAA;AAAxB,KAAA,GAAgChM,MAAtC,CAAA;AACA,IAAA,MAAMQ,MAAM,GAAGR,MAAM,CAACQ,MAAP,CAAcqrC,UAA7B,CAAA;;AACA,IAAA,KAAK,IAAI/sC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwN,MAAM,CAACzT,MAA3B,EAAmCiG,CAAC,IAAI,CAAxC,EAA2C;AACzC,MAAA,MAAM+C,OAAO,GAAGyK,MAAM,CAACxN,CAAD,CAAtB,CAAA;AACA,MAAA,IAAIoC,QAAQ,GAAGW,OAAO,CAACX,QAAvB,CAAA;;AACA,MAAA,IAAIlB,MAAM,CAACQ,MAAP,CAAcqrC,UAAd,CAAyBC,aAA7B,EAA4C;AAC1C5qC,QAAAA,QAAQ,GAAGC,IAAI,CAACC,GAAL,CAASD,IAAI,CAACE,GAAL,CAASQ,OAAO,CAACX,QAAjB,EAA2B,CAA3B,CAAT,EAAwC,CAAC,CAAzC,CAAX,CAAA;AACD,OAAA;;AACD,MAAA,MAAM+oB,MAAM,GAAGpoB,OAAO,CAAC+P,iBAAvB,CAAA;AACA,MAAA,MAAMm6B,MAAM,GAAG,CAAC,GAAD,GAAO7qC,QAAtB,CAAA;MACA,IAAI8qC,OAAO,GAAGD,MAAd,CAAA;MACA,IAAIE,OAAO,GAAG,CAAd,CAAA;AACA,MAAA,IAAI7B,EAAE,GAAGpqC,MAAM,CAACQ,MAAP,CAAcmN,OAAd,GAAwB,CAACsc,MAAD,GAAUjqB,MAAM,CAACI,SAAzC,GAAqD,CAAC6pB,MAA/D,CAAA;MACA,IAAIogB,EAAE,GAAG,CAAT,CAAA;;AACA,MAAA,IAAI,CAACrqC,MAAM,CAACkL,YAAP,EAAL,EAA4B;AAC1Bm/B,QAAAA,EAAE,GAAGD,EAAL,CAAA;AACAA,QAAAA,EAAE,GAAG,CAAL,CAAA;QACA6B,OAAO,GAAG,CAACD,OAAX,CAAA;AACAA,QAAAA,OAAO,GAAG,CAAV,CAAA;OAJF,MAKO,IAAIhgC,GAAJ,EAAS;QACdggC,OAAO,GAAG,CAACA,OAAX,CAAA;AACD,OAAA;;MAEDnqC,OAAO,CAAChI,KAAR,CAAcqyC,MAAd,GAAuB,CAAC/qC,IAAI,CAAC4N,GAAL,CAAS5N,IAAI,CAACk+B,KAAL,CAAWn+B,QAAX,CAAT,CAAD,GAAkCoL,MAAM,CAACzT,MAAhE,CAAA;;MAEA,IAAI2H,MAAM,CAAC2oC,YAAX,EAAyB;AACvByB,QAAAA,kBAAkB,CAAC/oC,OAAD,EAAUX,QAAV,EAAoBV,MAApB,CAAlB,CAAA;AACD,OAAA;;MACD,MAAMnD,SAAS,GAAI,CAAA,YAAA,EAAc+sC,EAAG,CAAA,IAAA,EAAMC,EAAG,CAAmB4B,iBAAAA,EAAAA,OAAQ,CAAeD,aAAAA,EAAAA,OAAQ,CAA/F,IAAA,CAAA,CAAA;AACA,MAAA,MAAMxwB,QAAQ,GAAG6tB,YAAY,CAAC7oC,MAAD,EAASqB,OAAT,CAA7B,CAAA;AACA2Z,MAAAA,QAAQ,CAAC3hB,KAAT,CAAewD,SAAf,GAA2BA,SAA3B,CAAA;AACD,KAAA;GAhCH,CAAA;;EAmCA,MAAMiU,aAAa,GAAI/Q,QAAD,IAAc;AAClC,IAAA,MAAMmpC,iBAAiB,GAAG1pC,MAAM,CAACsM,MAAP,CAAc9O,GAAd,CAAmBqE,OAAD,IAAaD,mBAAmB,CAACC,OAAD,CAAlD,CAA1B,CAAA;AAEA6nC,IAAAA,iBAAiB,CAAC/wC,OAAlB,CAA2BiE,EAAD,IAAQ;AAChCA,MAAAA,EAAE,CAAC/C,KAAH,CAAS0sB,UAAT,GAAuB,CAAA,EAAEhmB,QAAS,CAAlC,EAAA,CAAA,CAAA;MACA3D,EAAE,CAACtD,gBAAH,CACE,8GADF,EAEEX,OAFF,CAEWmJ,QAAD,IAAc;AACtBA,QAAAA,QAAQ,CAACjI,KAAT,CAAe0sB,UAAf,GAA6B,CAAA,EAAEhmB,QAAS,CAAxC,EAAA,CAAA,CAAA;OAHF,CAAA,CAAA;KAFF,CAAA,CAAA;AASAkpC,IAAAA,0BAA0B,CAAC;MAAEzpC,MAAF;MAAUO,QAAV;AAAoBmpC,MAAAA,iBAAAA;AAApB,KAAD,CAA1B,CAAA;GAZF,CAAA;;AAeAb,EAAAA,UAAU,CAAC;AACT35B,IAAAA,MAAM,EAAE,MADC;IAETlP,MAFS;IAGTgH,EAHS;IAITyO,YAJS;IAKTnE,aALS;IAMT03B,eANS;AAOTC,IAAAA,eAAe,EAAE,MAAMjpC,MAAM,CAACQ,MAAP,CAAcqrC,UAP5B;IAQT9C,WAAW,EAAE,MAAM,IARV;AASTD,IAAAA,eAAe,EAAE,OAAO;AACtB56B,MAAAA,aAAa,EAAE,CADO;AAEtBc,MAAAA,cAAc,EAAE,CAFM;AAGtB4B,MAAAA,mBAAmB,EAAE,IAHC;AAItB1D,MAAAA,YAAY,EAAE,CAJQ;AAKtBqI,MAAAA,gBAAgB,EAAE,CAACvV,MAAM,CAACQ,MAAP,CAAcmN,OAAAA;KALlB,CAAA;AATR,GAAD,CAAV,CAAA;AAiBD;;ACzGc,SAASw+B,eAAT,CAAuD,IAAA,EAAA;EAAA,IAA9B;IAAEnsC,MAAF;IAAUsI,YAAV;AAAwBtB,IAAAA,EAAAA;GAAM,GAAA,IAAA,CAAA;AACpEsB,EAAAA,YAAY,CAAC;AACX8jC,IAAAA,eAAe,EAAE;AACfL,MAAAA,MAAM,EAAE,EADO;AAEfM,MAAAA,OAAO,EAAE,CAFM;AAGfC,MAAAA,KAAK,EAAE,GAHQ;AAIfnX,MAAAA,KAAK,EAAE,CAJQ;AAKfoX,MAAAA,QAAQ,EAAE,CALK;AAMfpD,MAAAA,YAAY,EAAE,IAAA;AANC,KAAA;AADN,GAAD,CAAZ,CAAA;;EAWA,MAAM1zB,YAAY,GAAG,MAAM;IACzB,MAAM;AAAE9P,MAAAA,KAAK,EAAEunB,WAAT;AAAsBrnB,MAAAA,MAAM,EAAEsnB,YAA9B;MAA4C7gB,MAA5C;AAAoDK,MAAAA,eAAAA;AAApD,KAAA,GAAwE3M,MAA9E,CAAA;AACA,IAAA,MAAMQ,MAAM,GAAGR,MAAM,CAACQ,MAAP,CAAc4rC,eAA7B,CAAA;AACA,IAAA,MAAMlhC,YAAY,GAAGlL,MAAM,CAACkL,YAAP,EAArB,CAAA;AACA,IAAA,MAAM7N,SAAS,GAAG2C,MAAM,CAACI,SAAzB,CAAA;AACA,IAAA,MAAMosC,MAAM,GAAGthC,YAAY,GAAG,CAAC7N,SAAD,GAAa6vB,WAAW,GAAG,CAA9B,GAAkC,CAAC7vB,SAAD,GAAa8vB,YAAY,GAAG,CAAzF,CAAA;IACA,MAAM4e,MAAM,GAAG7gC,YAAY,GAAG1K,MAAM,CAACurC,MAAV,GAAmB,CAACvrC,MAAM,CAACurC,MAAtD,CAAA;AACA,IAAA,MAAM3rC,SAAS,GAAGI,MAAM,CAAC8rC,KAAzB,CAPyB;;AASzB,IAAA,KAAK,IAAIxtC,CAAC,GAAG,CAAR,EAAWjG,MAAM,GAAGyT,MAAM,CAACzT,MAAhC,EAAwCiG,CAAC,GAAGjG,MAA5C,EAAoDiG,CAAC,IAAI,CAAzD,EAA4D;AAC1D,MAAA,MAAM+C,OAAO,GAAGyK,MAAM,CAACxN,CAAD,CAAtB,CAAA;AACA,MAAA,MAAMkP,SAAS,GAAGrB,eAAe,CAAC7N,CAAD,CAAjC,CAAA;AACA,MAAA,MAAMqT,WAAW,GAAGtQ,OAAO,CAAC+P,iBAA5B,CAAA;MACA,MAAM66B,YAAY,GAAG,CAACD,MAAM,GAAGr6B,WAAT,GAAuBnE,SAAS,GAAG,CAApC,IAAyCA,SAA9D,CAAA;MACA,MAAM0+B,gBAAgB,GACpB,OAAOlsC,MAAM,CAAC+rC,QAAd,KAA2B,UAA3B,GACI/rC,MAAM,CAAC+rC,QAAP,CAAgBE,YAAhB,CADJ,GAEIA,YAAY,GAAGjsC,MAAM,CAAC+rC,QAH5B,CAAA;MAKA,IAAIP,OAAO,GAAG9gC,YAAY,GAAG6gC,MAAM,GAAGW,gBAAZ,GAA+B,CAAzD,CAAA;MACA,IAAIT,OAAO,GAAG/gC,YAAY,GAAG,CAAH,GAAO6gC,MAAM,GAAGW,gBAA1C,CAX0D;;MAa1D,IAAIC,UAAU,GAAG,CAACvsC,SAAD,GAAae,IAAI,CAAC4N,GAAL,CAAS29B,gBAAT,CAA9B,CAAA;AAEA,MAAA,IAAIL,OAAO,GAAG7rC,MAAM,CAAC6rC,OAArB,CAf0D;;AAiB1D,MAAA,IAAI,OAAOA,OAAP,KAAmB,QAAnB,IAA+BA,OAAO,CAACltC,OAAR,CAAgB,GAAhB,CAAyB,KAAA,CAAC,CAA7D,EAAgE;QAC9DktC,OAAO,GAAInuC,UAAU,CAACsC,MAAM,CAAC6rC,OAAR,CAAV,GAA6B,GAA9B,GAAqCr+B,SAA/C,CAAA;AACD,OAAA;;MACD,IAAI2tB,UAAU,GAAGzwB,YAAY,GAAG,CAAH,GAAOmhC,OAAO,GAAGK,gBAA9C,CAAA;MACA,IAAIhR,UAAU,GAAGxwB,YAAY,GAAGmhC,OAAO,GAAGK,gBAAb,GAAgC,CAA7D,CAAA;AAEA,MAAA,IAAIvX,KAAK,GAAG,CAAA,GAAI,CAAC,CAAA,GAAI30B,MAAM,CAAC20B,KAAZ,IAAqBh0B,IAAI,CAAC4N,GAAL,CAAS29B,gBAAT,CAArC,CAvB0D;;MA0B1D,IAAIvrC,IAAI,CAAC4N,GAAL,CAAS2sB,UAAT,IAAuB,KAA3B,EAAkCA,UAAU,GAAG,CAAb,CAAA;MAClC,IAAIv6B,IAAI,CAAC4N,GAAL,CAAS4sB,UAAT,IAAuB,KAA3B,EAAkCA,UAAU,GAAG,CAAb,CAAA;MAClC,IAAIx6B,IAAI,CAAC4N,GAAL,CAAS49B,UAAT,IAAuB,KAA3B,EAAkCA,UAAU,GAAG,CAAb,CAAA;MAClC,IAAIxrC,IAAI,CAAC4N,GAAL,CAASi9B,OAAT,IAAoB,KAAxB,EAA+BA,OAAO,GAAG,CAAV,CAAA;MAC/B,IAAI7qC,IAAI,CAAC4N,GAAL,CAASk9B,OAAT,IAAoB,KAAxB,EAA+BA,OAAO,GAAG,CAAV,CAAA;MAC/B,IAAI9qC,IAAI,CAAC4N,GAAL,CAASomB,KAAT,IAAkB,KAAtB,EAA6BA,KAAK,GAAG,CAAR,CAAA;AAE7B,MAAA,MAAMyX,cAAc,GAAI,CAAclR,YAAAA,EAAAA,UAAW,MAAKC,UAAW,CAAA,GAAA,EAAKgR,UAAW,CAAA,aAAA,EAAeV,OAAQ,CAAA,aAAA,EAAeD,OAAQ,CAAA,WAAA,EAAa7W,KAAM,CAAlJ,CAAA,CAAA,CAAA;AACA,MAAA,MAAM3Z,QAAQ,GAAG6tB,YAAY,CAAC7oC,MAAD,EAASqB,OAAT,CAA7B,CAAA;AACA2Z,MAAAA,QAAQ,CAAC3hB,KAAT,CAAewD,SAAf,GAA2BuvC,cAA3B,CAAA;AAEA/qC,MAAAA,OAAO,CAAChI,KAAR,CAAcqyC,MAAd,GAAuB,CAAC/qC,IAAI,CAAC4N,GAAL,CAAS5N,IAAI,CAACk+B,KAAL,CAAWqN,gBAAX,CAAT,CAAD,GAA0C,CAAjE,CAAA;;MAEA,IAAIlsC,MAAM,CAAC2oC,YAAX,EAAyB;AACvB;AACA,QAAA,IAAI0D,cAAc,GAAG3hC,YAAY,GAC7BrJ,OAAO,CAACxI,aAAR,CAAsB,2BAAtB,CAD6B,GAE7BwI,OAAO,CAACxI,aAAR,CAAsB,0BAAtB,CAFJ,CAAA;AAGA,QAAA,IAAIyzC,aAAa,GAAG5hC,YAAY,GAC5BrJ,OAAO,CAACxI,aAAR,CAAsB,4BAAtB,CAD4B,GAE5BwI,OAAO,CAACxI,aAAR,CAAsB,6BAAtB,CAFJ,CAAA;;QAGA,IAAI,CAACwzC,cAAL,EAAqB;AACnBA,UAAAA,cAAc,GAAGpB,YAAY,CAACjrC,MAAD,EAASqB,OAAT,EAAkBqJ,YAAY,GAAG,MAAH,GAAY,KAA1C,CAA7B,CAAA;AACD,SAAA;;QACD,IAAI,CAAC4hC,aAAL,EAAoB;AAClBA,UAAAA,aAAa,GAAGrB,YAAY,CAACjrC,MAAD,EAASqB,OAAT,EAAkBqJ,YAAY,GAAG,OAAH,GAAa,QAA3C,CAA5B,CAAA;AACD,SAAA;;AACD,QAAA,IAAI2hC,cAAJ,EACEA,cAAc,CAAChzC,KAAf,CAAqB48B,OAArB,GAA+BiW,gBAAgB,GAAG,CAAnB,GAAuBA,gBAAvB,GAA0C,CAAzE,CAAA;AACF,QAAA,IAAII,aAAJ,EACEA,aAAa,CAACjzC,KAAd,CAAoB48B,OAApB,GAA8B,CAACiW,gBAAD,GAAoB,CAApB,GAAwB,CAACA,gBAAzB,GAA4C,CAA1E,CAAA;AACH,OAAA;AACF,KAAA;GAnEH,CAAA;;EAqEA,MAAMp7B,aAAa,GAAI/Q,QAAD,IAAc;AAClC,IAAA,MAAMmpC,iBAAiB,GAAG1pC,MAAM,CAACsM,MAAP,CAAc9O,GAAd,CAAmBqE,OAAD,IAAaD,mBAAmB,CAACC,OAAD,CAAlD,CAA1B,CAAA;AAEA6nC,IAAAA,iBAAiB,CAAC/wC,OAAlB,CAA2BiE,EAAD,IAAQ;AAChCA,MAAAA,EAAE,CAAC/C,KAAH,CAAS0sB,UAAT,GAAuB,CAAA,EAAEhmB,QAAS,CAAlC,EAAA,CAAA,CAAA;MACA3D,EAAE,CAACtD,gBAAH,CACE,8GADF,EAEEX,OAFF,CAEWmJ,QAAD,IAAc;AACtBA,QAAAA,QAAQ,CAACjI,KAAT,CAAe0sB,UAAf,GAA6B,CAAA,EAAEhmB,QAAS,CAAxC,EAAA,CAAA,CAAA;OAHF,CAAA,CAAA;KAFF,CAAA,CAAA;GAHF,CAAA;;AAaAsoC,EAAAA,UAAU,CAAC;AACT35B,IAAAA,MAAM,EAAE,WADC;IAETlP,MAFS;IAGTgH,EAHS;IAITyO,YAJS;IAKTnE,aALS;IAMTy3B,WAAW,EAAE,MAAM,IANV;AAOTD,IAAAA,eAAe,EAAE,OAAO;AACtBl4B,MAAAA,mBAAmB,EAAE,IAAA;KADN,CAAA;AAPR,GAAD,CAAV,CAAA;AAWD;;ACxGc,SAASm8B,cAAT,CAAsD,IAAA,EAAA;EAAA,IAA9B;IAAE/sC,MAAF;IAAUsI,YAAV;AAAwBtB,IAAAA,EAAAA;GAAM,GAAA,IAAA,CAAA;AACnEsB,EAAAA,YAAY,CAAC;AACX0kC,IAAAA,cAAc,EAAE;AACdC,MAAAA,aAAa,EAAE,CADD;AAEdC,MAAAA,iBAAiB,EAAE,KAFL;AAGdC,MAAAA,kBAAkB,EAAE,CAHN;AAIdpE,MAAAA,WAAW,EAAE,IAJC;AAKdxlC,MAAAA,IAAI,EAAE;AACJnD,QAAAA,SAAS,EAAE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CADP;AAEJ2rC,QAAAA,MAAM,EAAE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CAFJ;AAGJtV,QAAAA,OAAO,EAAE,CAHL;AAIJtB,QAAAA,KAAK,EAAE,CAAA;OATK;AAWdvxB,MAAAA,IAAI,EAAE;AACJxD,QAAAA,SAAS,EAAE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CADP;AAEJ2rC,QAAAA,MAAM,EAAE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CAFJ;AAGJtV,QAAAA,OAAO,EAAE,CAHL;AAIJtB,QAAAA,KAAK,EAAE,CAAA;AAJH,OAAA;AAXQ,KAAA;AADL,GAAD,CAAZ,CAAA;;EAqBA,MAAMiY,iBAAiB,GAAIxoB,KAAD,IAAW;AACnC,IAAA,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B,OAAOA,KAAP,CAAA;IAC/B,OAAQ,CAAA,EAAEA,KAAM,CAAhB,EAAA,CAAA,CAAA;GAFF,CAAA;;EAKA,MAAMnP,YAAY,GAAG,MAAM;IACzB,MAAM;MAAEnJ,MAAF;MAAU5L,SAAV;AAAqBiM,MAAAA,eAAAA;AAArB,KAAA,GAAyC3M,MAA/C,CAAA;AACA,IAAA,MAAMQ,MAAM,GAAGR,MAAM,CAACQ,MAAP,CAAcwsC,cAA7B,CAAA;IACA,MAAM;AAAEG,MAAAA,kBAAkB,EAAEv6B,UAAAA;AAAtB,KAAA,GAAqCpS,MAA3C,CAAA;AAEA,IAAA,MAAM6sC,gBAAgB,GAAGrtC,MAAM,CAACQ,MAAP,CAAckN,cAAvC,CAAA;;AAEA,IAAA,IAAI2/B,gBAAJ,EAAsB;AACpB,MAAA,MAAMC,MAAM,GAAG3gC,eAAe,CAAC,CAAD,CAAf,GAAqB,CAArB,GAAyB3M,MAAM,CAACQ,MAAP,CAAcqM,kBAAvC,IAA6D,CAA5E,CAAA;AACAnM,MAAAA,SAAS,CAAC7G,KAAV,CAAgBwD,SAAhB,GAA6B,CAAA,sBAAA,EAAwBiwC,MAAO,CAA5D,IAAA,CAAA,CAAA;AACD,KAAA;;AAED,IAAA,KAAK,IAAIxuC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwN,MAAM,CAACzT,MAA3B,EAAmCiG,CAAC,IAAI,CAAxC,EAA2C;AACzC,MAAA,MAAM+C,OAAO,GAAGyK,MAAM,CAACxN,CAAD,CAAtB,CAAA;AACA,MAAA,MAAMsT,aAAa,GAAGvQ,OAAO,CAACX,QAA9B,CAAA;MACA,MAAMA,QAAQ,GAAGC,IAAI,CAACE,GAAL,CACfF,IAAI,CAACC,GAAL,CAASS,OAAO,CAACX,QAAjB,EAA2B,CAACV,MAAM,CAACysC,aAAnC,CADe,EAEfzsC,MAAM,CAACysC,aAFQ,CAAjB,CAAA;MAIA,IAAIv6B,gBAAgB,GAAGxR,QAAvB,CAAA;;MAEA,IAAI,CAACmsC,gBAAL,EAAuB;QACrB36B,gBAAgB,GAAGvR,IAAI,CAACE,GAAL,CACjBF,IAAI,CAACC,GAAL,CAASS,OAAO,CAAC6Q,gBAAjB,EAAmC,CAAClS,MAAM,CAACysC,aAA3C,CADiB,EAEjBzsC,MAAM,CAACysC,aAFU,CAAnB,CAAA;AAID,OAAA;;AAED,MAAA,MAAMhjB,MAAM,GAAGpoB,OAAO,CAAC+P,iBAAvB,CAAA;MACA,MAAM2F,CAAC,GAAG,CAACvX,MAAM,CAACQ,MAAP,CAAcmN,OAAd,GAAwB,CAACsc,MAAD,GAAUjqB,MAAM,CAACI,SAAzC,GAAqD,CAAC6pB,MAAvD,EAA+D,CAA/D,EAAkE,CAAlE,CAAV,CAAA;MACA,MAAMsjB,CAAC,GAAG,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CAAV,CAAA;MACA,IAAIC,MAAM,GAAG,KAAb,CAAA;;AACA,MAAA,IAAI,CAACxtC,MAAM,CAACkL,YAAP,EAAL,EAA4B;AAC1BqM,QAAAA,CAAC,CAAC,CAAD,CAAD,GAAOA,CAAC,CAAC,CAAD,CAAR,CAAA;AACAA,QAAAA,CAAC,CAAC,CAAD,CAAD,GAAO,CAAP,CAAA;AACD,OAAA;;AACD,MAAA,IAAI5M,IAAI,GAAG;AACTvK,QAAAA,SAAS,EAAE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CADF;AAET2rC,QAAAA,MAAM,EAAE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CAFC;AAGT5W,QAAAA,KAAK,EAAE,CAHE;AAITsB,QAAAA,OAAO,EAAE,CAAA;OAJX,CAAA;;MAMA,IAAIv1B,QAAQ,GAAG,CAAf,EAAkB;QAChByJ,IAAI,GAAGnK,MAAM,CAACoD,IAAd,CAAA;AACA4pC,QAAAA,MAAM,GAAG,IAAT,CAAA;AACD,OAHD,MAGO,IAAItsC,QAAQ,GAAG,CAAf,EAAkB;QACvByJ,IAAI,GAAGnK,MAAM,CAAC+C,IAAd,CAAA;AACAiqC,QAAAA,MAAM,GAAG,IAAT,CAAA;AACD,OApCwC;;;AAsCzCj2B,MAAAA,CAAC,CAAC5e,OAAF,CAAU,CAACisB,KAAD,EAAQna,KAAR,KAAkB;QAC1B8M,CAAC,CAAC9M,KAAD,CAAD,GAAY,CAAA,KAAA,EAAOma,KAAM,CAAQwoB,MAAAA,EAAAA,iBAAiB,CAACziC,IAAI,CAACvK,SAAL,CAAeqK,KAAf,CAAD,CAAwB,CAAA,GAAA,EAAKtJ,IAAI,CAAC4N,GAAL,CAC7E7N,QAAQ,GAAG0R,UADkE,CAE7E,CAFF,EAAA,CAAA,CAAA;AAGD,OAJD,EAtCyC;;AA4CzC26B,MAAAA,CAAC,CAAC50C,OAAF,CAAU,CAACisB,KAAD,EAAQna,KAAR,KAAkB;AAC1B8iC,QAAAA,CAAC,CAAC9iC,KAAD,CAAD,GAAWE,IAAI,CAACohC,MAAL,CAAYthC,KAAZ,CAAA,GAAqBtJ,IAAI,CAAC4N,GAAL,CAAS7N,QAAQ,GAAG0R,UAApB,CAAhC,CAAA;OADF,CAAA,CAAA;MAIA/Q,OAAO,CAAChI,KAAR,CAAcqyC,MAAd,GAAuB,CAAC/qC,IAAI,CAAC4N,GAAL,CAAS5N,IAAI,CAACk+B,KAAL,CAAWjtB,aAAX,CAAT,CAAD,GAAuC9F,MAAM,CAACzT,MAArE,CAAA;AAEA,MAAA,MAAM40C,eAAe,GAAGl2B,CAAC,CAAC5Z,IAAF,CAAO,IAAP,CAAxB,CAAA;AACA,MAAA,MAAM+vC,YAAY,GAAI,CAAA,QAAA,EAAUH,CAAC,CAAC,CAAD,CAAI,CAAA,aAAA,EAAeA,CAAC,CAAC,CAAD,CAAI,CAAA,aAAA,EAAeA,CAAC,CAAC,CAAD,CAAI,CAA7E,IAAA,CAAA,CAAA;AACA,MAAA,MAAMI,WAAW,GACfj7B,gBAAgB,GAAG,CAAnB,GACK,CAAQ,MAAA,EAAA,CAAA,GAAI,CAAC,CAAA,GAAI/H,IAAI,CAACwqB,KAAV,IAAmBziB,gBAAnB,GAAsCE,UAAW,CADlE,CAAA,CAAA,GAEK,CAAQ,MAAA,EAAA,CAAA,GAAI,CAAC,CAAA,GAAIjI,IAAI,CAACwqB,KAAV,IAAmBziB,gBAAnB,GAAsCE,UAAW,CAHpE,CAAA,CAAA,CAAA;MAIA,MAAMg7B,aAAa,GACjBl7B,gBAAgB,GAAG,CAAnB,GACI,CAAA,GAAI,CAAC,CAAA,GAAI/H,IAAI,CAAC8rB,OAAV,IAAqB/jB,gBAArB,GAAwCE,UADhD,GAEI,CAAA,GAAI,CAAC,CAAA,GAAIjI,IAAI,CAAC8rB,OAAV,IAAqB/jB,gBAArB,GAAwCE,UAHlD,CAAA;MAIA,MAAMvV,SAAS,GAAI,CAAA,YAAA,EAAcowC,eAAgB,CAAA,EAAA,EAAIC,YAAa,CAAGC,CAAAA,EAAAA,WAAY,CAAjF,CAAA,CA5DyC;;MA+DzC,IAAKH,MAAM,IAAI7iC,IAAI,CAAC8/B,MAAhB,IAA2B,CAAC+C,MAAhC,EAAwC;AACtC,QAAA,IAAI1rC,QAAQ,GAAGD,OAAO,CAACxI,aAAR,CAAsB,sBAAtB,CAAf,CAAA;;AACA,QAAA,IAAI,CAACyI,QAAD,IAAa6I,IAAI,CAAC8/B,MAAtB,EAA8B;AAC5B3oC,UAAAA,QAAQ,GAAG2pC,YAAY,CAACjrC,MAAD,EAASqB,OAAT,CAAvB,CAAA;AACD,SAAA;;AACD,QAAA,IAAIC,QAAJ,EAAc;AACZ,UAAA,MAAM+rC,aAAa,GAAGrtC,MAAM,CAAC0sC,iBAAP,GAClBhsC,QAAQ,IAAI,CAAA,GAAIV,MAAM,CAACysC,aAAf,CADU,GAElB/rC,QAFJ,CAAA;UAGAY,QAAQ,CAACjI,KAAT,CAAe48B,OAAf,GAAyBt1B,IAAI,CAACE,GAAL,CAASF,IAAI,CAACC,GAAL,CAASD,IAAI,CAAC4N,GAAL,CAAS8+B,aAAT,CAAT,EAAkC,CAAlC,CAAT,EAA+C,CAA/C,CAAzB,CAAA;AACD,SAAA;AACF,OAAA;;AAED,MAAA,MAAMryB,QAAQ,GAAG6tB,YAAY,CAAC7oC,MAAD,EAASqB,OAAT,CAA7B,CAAA;AACA2Z,MAAAA,QAAQ,CAAC3hB,KAAT,CAAewD,SAAf,GAA2BA,SAA3B,CAAA;AACAme,MAAAA,QAAQ,CAAC3hB,KAAT,CAAe48B,OAAf,GAAyBmX,aAAzB,CAAA;;MACA,IAAIjjC,IAAI,CAACpQ,MAAT,EAAiB;AACfihB,QAAAA,QAAQ,CAAC3hB,KAAT,CAAesxC,eAAf,GAAiCyC,aAAjC,CAAA;AACD,OAAA;AACF,KAAA;GA9FH,CAAA;;EAiGA,MAAMt8B,aAAa,GAAI/Q,QAAD,IAAc;AAClC,IAAA,MAAMmpC,iBAAiB,GAAG1pC,MAAM,CAACsM,MAAP,CAAc9O,GAAd,CAAmBqE,OAAD,IAAaD,mBAAmB,CAACC,OAAD,CAAlD,CAA1B,CAAA;AAEA6nC,IAAAA,iBAAiB,CAAC/wC,OAAlB,CAA2BiE,EAAD,IAAQ;AAChCA,MAAAA,EAAE,CAAC/C,KAAH,CAAS0sB,UAAT,GAAuB,CAAA,EAAEhmB,QAAS,CAAlC,EAAA,CAAA,CAAA;MACA3D,EAAE,CAACtD,gBAAH,CAAoB,sBAApB,EAA4CX,OAA5C,CAAqDmJ,QAAD,IAAc;AAChEA,QAAAA,QAAQ,CAACjI,KAAT,CAAe0sB,UAAf,GAA6B,CAAA,EAAEhmB,QAAS,CAAxC,EAAA,CAAA,CAAA;OADF,CAAA,CAAA;KAFF,CAAA,CAAA;AAOAkpC,IAAAA,0BAA0B,CAAC;MAAEzpC,MAAF;MAAUO,QAAV;MAAoBmpC,iBAApB;AAAuCC,MAAAA,SAAS,EAAE,IAAA;AAAlD,KAAD,CAA1B,CAAA;GAVF,CAAA;;AAaAd,EAAAA,UAAU,CAAC;AACT35B,IAAAA,MAAM,EAAE,UADC;IAETlP,MAFS;IAGTgH,EAHS;IAITyO,YAJS;IAKTnE,aALS;IAMTy3B,WAAW,EAAE,MAAM/oC,MAAM,CAACQ,MAAP,CAAcwsC,cAAd,CAA6BjE,WANvC;AAOTD,IAAAA,eAAe,EAAE,OAAO;AACtBl4B,MAAAA,mBAAmB,EAAE,IADC;AAEtB2E,MAAAA,gBAAgB,EAAE,CAACvV,MAAM,CAACQ,MAAP,CAAcmN,OAAAA;KAFlB,CAAA;AAPR,GAAD,CAAV,CAAA;AAYD;;ACrJc,SAASmgC,WAAT,CAAmD,IAAA,EAAA;EAAA,IAA9B;IAAE9tC,MAAF;IAAUsI,YAAV;AAAwBtB,IAAAA,EAAAA;GAAM,GAAA,IAAA,CAAA;AAChEsB,EAAAA,YAAY,CAAC;AACXylC,IAAAA,WAAW,EAAE;AACX5E,MAAAA,YAAY,EAAE,IADH;AAEX4C,MAAAA,MAAM,EAAE,IAFG;AAGXiC,MAAAA,cAAc,EAAE,CAHL;AAIXC,MAAAA,cAAc,EAAE,CAAA;AAJL,KAAA;AADF,GAAD,CAAZ,CAAA;;EASA,MAAMx4B,YAAY,GAAG,MAAM;IACzB,MAAM;MAAEnJ,MAAF;AAAUoF,MAAAA,WAAAA;AAAV,KAAA,GAA0B1R,MAAhC,CAAA;AACA,IAAA,MAAMQ,MAAM,GAAGR,MAAM,CAACQ,MAAP,CAAcutC,WAA7B,CAAA;IACA,MAAM;MAAE3uB,cAAF;AAAkBzD,MAAAA,SAAAA;KAAc3b,GAAAA,MAAM,CAACmb,eAA7C,CAAA;AACA,IAAA,MAAM3F,gBAAgB,GAAGxV,MAAM,CAACI,SAAhC,CAAA;;AACA,IAAA,KAAK,IAAItB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwN,MAAM,CAACzT,MAA3B,EAAmCiG,CAAC,IAAI,CAAxC,EAA2C;AACzC,MAAA,MAAM+C,OAAO,GAAGyK,MAAM,CAACxN,CAAD,CAAtB,CAAA;AACA,MAAA,MAAMsT,aAAa,GAAGvQ,OAAO,CAACX,QAA9B,CAAA;AACA,MAAA,MAAMA,QAAQ,GAAGC,IAAI,CAACE,GAAL,CAASF,IAAI,CAACC,GAAL,CAASgR,aAAT,EAAwB,CAAC,CAAzB,CAAT,EAAsC,CAAtC,CAAjB,CAAA;AACA,MAAA,IAAI6X,MAAM,GAAGpoB,OAAO,CAAC+P,iBAArB,CAAA;;AACA,MAAA,IAAI5R,MAAM,CAACQ,MAAP,CAAckN,cAAd,IAAgC,CAAC1N,MAAM,CAACQ,MAAP,CAAcmN,OAAnD,EAA4D;AAC1D3N,QAAAA,MAAM,CAACU,SAAP,CAAiB7G,KAAjB,CAAuBwD,SAAvB,GAAoC,CAAA,WAAA,EAAa2C,MAAM,CAACqS,YAAP,EAAsB,CAAvE,GAAA,CAAA,CAAA;AACD,OAAA;;MACD,IAAIrS,MAAM,CAACQ,MAAP,CAAckN,cAAd,IAAgC1N,MAAM,CAACQ,MAAP,CAAcmN,OAAlD,EAA2D;AACzDsc,QAAAA,MAAM,IAAI3d,MAAM,CAAC,CAAD,CAAN,CAAUsF,iBAApB,CAAA;AACD,OAAA;;AACD,MAAA,IAAIs8B,EAAE,GAAGluC,MAAM,CAACQ,MAAP,CAAcmN,OAAd,GAAwB,CAACsc,MAAD,GAAUjqB,MAAM,CAACI,SAAzC,GAAqD,CAAC6pB,MAA/D,CAAA;MACA,IAAIkkB,EAAE,GAAG,CAAT,CAAA;MACA,MAAMC,EAAE,GAAG,CAAC,GAAD,GAAOjtC,IAAI,CAAC4N,GAAL,CAAS7N,QAAT,CAAlB,CAAA;MACA,IAAIi0B,KAAK,GAAG,CAAZ,CAAA;AACA,MAAA,IAAI4W,MAAM,GAAG,CAACvrC,MAAM,CAACwtC,cAAR,GAAyB9sC,QAAtC,CAAA;AAEA,MAAA,IAAImtC,KAAK,GAAG7tC,MAAM,CAACytC,cAAP,GAAwB9sC,IAAI,CAAC4N,GAAL,CAAS7N,QAAT,CAAA,GAAqB,IAAzD,CAAA;MAEA,MAAM4O,UAAU,GACd9P,MAAM,CAACmM,OAAP,IAAkBnM,MAAM,CAACQ,MAAP,CAAc2L,OAAd,CAAsBC,OAAxC,GAAkDpM,MAAM,CAACmM,OAAP,CAAe6d,IAAf,GAAsBlrB,CAAxE,GAA4EA,CAD9E,CAAA;AAGA,MAAA,MAAMwvC,aAAa,GACjB,CAACx+B,UAAU,KAAK4B,WAAf,IAA8B5B,UAAU,KAAK4B,WAAW,GAAG,CAA5D,KACAxQ,QAAQ,GAAG,CADX,IAEAA,QAAQ,GAAG,CAFX,KAGCya,SAAS,IAAI3b,MAAM,CAACQ,MAAP,CAAcmN,OAH5B,CAIA6H,IAAAA,gBAAgB,GAAG4J,cALrB,CAAA;AAMA,MAAA,MAAMmvB,aAAa,GACjB,CAACz+B,UAAU,KAAK4B,WAAf,IAA8B5B,UAAU,KAAK4B,WAAW,GAAG,CAA5D,KACAxQ,QAAQ,GAAG,CADX,IAEAA,QAAQ,GAAG,CAAC,CAFZ,KAGCya,SAAS,IAAI3b,MAAM,CAACQ,MAAP,CAAcmN,OAH5B,CAIA6H,IAAAA,gBAAgB,GAAG4J,cALrB,CAAA;;MAOA,IAAIkvB,aAAa,IAAIC,aAArB,EAAoC;QAClC,MAAMC,WAAW,GAAG,CAAC,CAAA,GAAIrtC,IAAI,CAAC4N,GAAL,CAAS,CAAC5N,IAAI,CAAC4N,GAAL,CAAS7N,QAAT,CAAqB,GAAA,GAAtB,IAA6B,GAAtC,CAAL,KAAoD,GAAxE,CAAA;AACA6qC,QAAAA,MAAM,IAAI,CAAC,EAAD,GAAM7qC,QAAN,GAAiBstC,WAA3B,CAAA;AACArZ,QAAAA,KAAK,IAAI,CAAC,GAAD,GAAOqZ,WAAhB,CAAA;QACAH,KAAK,IAAI,KAAKG,WAAd,CAAA;AACAL,QAAAA,EAAE,GAAI,CAAA,EAAE,CAAC,EAAD,GAAMK,WAAN,GAAoBrtC,IAAI,CAAC4N,GAAL,CAAS7N,QAAT,CAAmB,CAA/C,CAAA,CAAA,CAAA;AACD,OAAA;;MAED,IAAIA,QAAQ,GAAG,CAAf,EAAkB;AAChB;AACAgtC,QAAAA,EAAE,GAAI,CAAA,KAAA,EAAOA,EAAG,CAAA,MAAA,EAAQG,KAAK,GAAGltC,IAAI,CAAC4N,GAAL,CAAS7N,QAAT,CAAmB,CAAnD,GAAA,CAAA,CAAA;AACD,OAHD,MAGO,IAAIA,QAAQ,GAAG,CAAf,EAAkB;AACvB;AACAgtC,QAAAA,EAAE,GAAI,CAAA,KAAA,EAAOA,EAAG,CAAA,OAAA,EAASG,KAAK,GAAGltC,IAAI,CAAC4N,GAAL,CAAS7N,QAAT,CAAmB,CAApD,GAAA,CAAA,CAAA;AACD,OAHM,MAGA;QACLgtC,EAAE,GAAI,CAAEA,EAAAA,EAAG,CAAX,EAAA,CAAA,CAAA;AACD,OAAA;;AACD,MAAA,IAAI,CAACluC,MAAM,CAACkL,YAAP,EAAL,EAA4B;QAC1B,MAAMujC,KAAK,GAAGN,EAAd,CAAA;AACAA,QAAAA,EAAE,GAAGD,EAAL,CAAA;AACAA,QAAAA,EAAE,GAAGO,KAAL,CAAA;AACD,OAAA;;MAED,MAAMd,WAAW,GACfzsC,QAAQ,GAAG,CAAX,GAAgB,CAAA,EAAE,CAAI,GAAA,CAAC,CAAIi0B,GAAAA,KAAL,IAAcj0B,QAAS,CAAA,CAA7C,GAAkD,CAAE,EAAA,CAAA,GAAI,CAAC,CAAIi0B,GAAAA,KAAL,IAAcj0B,QAAS,CADjF,CAAA,CAAA;AAGA,MAAA,MAAM7D,SAAS,GAAI,CAAA;AACzB,oBAAA,EAAsB6wC,EAAG,CAAA,EAAA,EAAIC,EAAG,CAAA,EAAA,EAAIC,EAAG,CAAA;AACvC,gBAAA,EAAkB5tC,MAAM,CAACurC,MAAP,GAAgBA,MAAhB,GAAyB,CAAE,CAAA;AAC7C,cAAA,EAAgB4B,WAAY,CAAA;AAC5B,MAJM,CAAA,CAAA;;MAMA,IAAIntC,MAAM,CAAC2oC,YAAX,EAAyB;AACvB;AACA,QAAA,IAAIrnC,QAAQ,GAAGD,OAAO,CAACxI,aAAR,CAAsB,sBAAtB,CAAf,CAAA;;QACA,IAAI,CAACyI,QAAL,EAAe;AACbA,UAAAA,QAAQ,GAAG2pC,YAAY,CAACjrC,MAAD,EAASqB,OAAT,CAAvB,CAAA;AACD,SAAA;;AACD,QAAA,IAAIC,QAAJ,EACEA,QAAQ,CAACjI,KAAT,CAAe48B,OAAf,GAAyBt1B,IAAI,CAACE,GAAL,CAASF,IAAI,CAACC,GAAL,CAAS,CAACD,IAAI,CAAC4N,GAAL,CAAS7N,QAAT,CAAqB,GAAA,GAAtB,IAA6B,GAAtC,EAA2C,CAA3C,CAAT,EAAwD,CAAxD,CAAzB,CAAA;AACH,OAAA;;MAEDW,OAAO,CAAChI,KAAR,CAAcqyC,MAAd,GAAuB,CAAC/qC,IAAI,CAAC4N,GAAL,CAAS5N,IAAI,CAACk+B,KAAL,CAAWjtB,aAAX,CAAT,CAAD,GAAuC9F,MAAM,CAACzT,MAArE,CAAA;AACA,MAAA,MAAM2iB,QAAQ,GAAG6tB,YAAY,CAAC7oC,MAAD,EAASqB,OAAT,CAA7B,CAAA;AACA2Z,MAAAA,QAAQ,CAAC3hB,KAAT,CAAewD,SAAf,GAA2BA,SAA3B,CAAA;AACD,KAAA;GArFH,CAAA;;EAwFA,MAAMiU,aAAa,GAAI/Q,QAAD,IAAc;AAClC,IAAA,MAAMmpC,iBAAiB,GAAG1pC,MAAM,CAACsM,MAAP,CAAc9O,GAAd,CAAmBqE,OAAD,IAAaD,mBAAmB,CAACC,OAAD,CAAlD,CAA1B,CAAA;AACA6nC,IAAAA,iBAAiB,CAAC/wC,OAAlB,CAA2BiE,EAAD,IAAQ;AAChCA,MAAAA,EAAE,CAAC/C,KAAH,CAAS0sB,UAAT,GAAuB,CAAA,EAAEhmB,QAAS,CAAlC,EAAA,CAAA,CAAA;MACA3D,EAAE,CAACtD,gBAAH,CAAoB,sBAApB,EAA4CX,OAA5C,CAAqDmJ,QAAD,IAAc;AAChEA,QAAAA,QAAQ,CAACjI,KAAT,CAAe0sB,UAAf,GAA6B,CAAA,EAAEhmB,QAAS,CAAxC,EAAA,CAAA,CAAA;OADF,CAAA,CAAA;KAFF,CAAA,CAAA;AAOAkpC,IAAAA,0BAA0B,CAAC;MAAEzpC,MAAF;MAAUO,QAAV;AAAoBmpC,MAAAA,iBAAAA;AAApB,KAAD,CAA1B,CAAA;GATF,CAAA;;AAYAb,EAAAA,UAAU,CAAC;AACT35B,IAAAA,MAAM,EAAE,OADC;IAETlP,MAFS;IAGTgH,EAHS;IAITyO,YAJS;IAKTnE,aALS;IAMTy3B,WAAW,EAAE,MAAM,IANV;AAOTD,IAAAA,eAAe,EAAE,OAAO;AACtBl4B,MAAAA,mBAAmB,EAAE,IADC;AAEtB2E,MAAAA,gBAAgB,EAAE,CAACvV,MAAM,CAACQ,MAAP,CAAcmN,OAAAA;KAFlB,CAAA;AAPR,GAAD,CAAV,CAAA;AAYD;;AChID;AAKA,MAAMiZ,OAAO,GAAG,CACd4C,OADc,UAAA,YAAA,YAAA,YAAA,WAAA,UAAA,MAAA,YAAA,MAAA,SAAA,gBAAA,UAAA,OAAA,UAAA,MAAA,cAAA,YAAA,YAAA,YAAA,iBAAA,gBAAA,aAAA,CAAhB,CAAA;AAIA/C,MAAM,CAAC0C,GAAP,CAAWvC,OAAX,CAAA;;;;"}