{"version":3,"file":"ng-devui-utils.mjs","sources":["../../devui/utils/animations/animationParameters.ts","../../devui/utils/animations/backdrop-fade-in-out.ts","../../devui/utils/animations/corner-fade-in-out.ts","../../devui/utils/animations/direction-fade-in-out.ts","../../devui/utils/animations/expand-collapse.ts","../../devui/utils/animations/fade-in-out.ts","../../devui/utils/animations/scale-in-out.ts","../../devui/utils/animations/fly-in-out.ts","../../devui/utils/animations/open-close.ts","../../devui/utils/animations/pop-in-out.ts","../../devui/utils/animations/scrollAnimation.ts","../../devui/utils/animations/wipe-in-out.ts","../../devui/utils/cdk-origin-handler.ts","../../devui/utils/cdk-overlay-config.type.ts","../../devui/utils/date-utils.ts","../../devui/utils/default-date-converter.ts","../../devui/utils/dom-utils.ts","../../devui/utils/fun-utils.ts","../../devui/utils/globalConfig/config.ts","../../devui/utils/globalConfig/config.service.ts","../../devui/utils/highlight/highlight.component.ts","../../devui/utils/highlight/highlight.module.ts","../../devui/utils/is-template.pipe.ts","../../devui/utils/is-template.module.ts","../../devui/utils/lazy-load/lazy-load.directive.ts","../../devui/utils/lazy-load/lazy-load.module.ts","../../devui/utils/observeVisibility/observer-visibility.directive.ts","../../devui/utils/observeVisibility/observer-visibility.module.ts","../../devui/utils/str-tpl-outlet/str-tpl-outlet.directive.ts","../../devui/utils/str-tpl-outlet/str-tpl-outlet.module.ts","../../devui/utils/popper/popper.component.ts","../../devui/utils/popper/popper.component.html","../../devui/utils/popper/popper.module.ts","../../devui/utils/safe.pipe.ts","../../devui/utils/safe-pipe.module.ts","../../devui/utils/tree-utils.ts","../../devui/utils/ng-devui-utils.ts"],"sourcesContent":["\nexport class AnimationDuration {\n  static SLOW = '0.3s';\n  static BASE = '0.2s';\n  static FAST = '0.1s';\n}\n\nexport class AnimationNumberDuration {\n  static SLOW = 300;\n  static BASE = 200;\n  static FAST = 100;\n}\n\nexport class AnimationCurves {\n  static EASE_OUT = 'cubic-bezier(0.16, 0.75, 0.5, 1)';\n  static EASE_IN = 'cubic-bezier(0.5, 0, 0.84, 0.25)';\n  static EASE_IN_OUT = 'cubic-bezier(0.5, 0.05, 0.5, 0.95)';\n  static LINEAR = 'cubic-bezier(0, 0, 1, 1)';\n  /**\n     * @deprecated 'EASE_IN_SMOOTH' does not match the actual bezier curve,replaced with 'EASE_IN_OUT_SMOOTH'\n     */\n  static EASE_IN_SMOOTH = 'cubic-bezier(0.645, 0.045, 0.355, 1)';\n  static EASE_IN_OUT_SMOOTH = 'cubic-bezier(0.645, 0.045, 0.355, 1)';\n}\n","import { animate, AnimationTriggerMetadata, group, state, style, transition, trigger } from '@angular/animations';\nimport { AnimationCurves, AnimationDuration } from './animationParameters';\nconst duration = AnimationDuration.FAST;\nconst linear = AnimationCurves.LINEAR;\n\nexport const backdropFadeInOut: AnimationTriggerMetadata = trigger('backdropAnimation', [\n  state('void', style({ display: 'none', opacity: 0 })),\n  state('in', style({ display: 'block', opacity: 1 })),\n  transition('void => in', [\n    style({ display: 'block' }),\n    animate(`${duration} ${linear}`, style({ opacity: 1 }))\n  ]),\n  transition('in => void', group([\n    animate(`${duration} ${linear}`, style({ opacity: 0 }))\n  ])),\n]);\n","import { animate, AnimationTriggerMetadata, style, transition, trigger } from '@angular/animations';\n\n/**\n * @deprecated\n */\nexport const cornerFadeInOut: AnimationTriggerMetadata = trigger('cornerFadeInOut', [\n  transition('void => bottom', [\n    style({transform: 'scale(0.9)', opacity: 0, transformOrigin: '0% 0%', display: 'inline-block'}),\n    animate('200ms cubic-bezier(0.23, 1, 0.32, 1)',\n      style({transform: 'scale(1)', opacity: 1, transformOrigin: '0% 0%'})),\n  ]),\n  transition('bottom => void', [\n    style({transform: 'scale(1)', opacity: 1, transformOrigin: '0% 0%', display: 'inline-block'}),\n    animate('200ms cubic-bezier(0.755, 0.05, 0.855, 0.06)',\n      style({transform: 'scale(0.9)', opacity: 0, transformOrigin: '0% 0%'}))\n  ]),\n  transition('void => top', [\n    style({transform: 'scale(0.9)', opacity: 0, transformOrigin: '0% 100%', display: 'inline-block'}),\n    animate('200ms cubic-bezier(0.23, 1, 0.32, 1)',\n      style({transform: 'scale(1)', opacity: 1, transformOrigin: '0% 100%'})),\n  ]),\n  transition('top => void', [\n    style({transform: 'scale(1)', opacity: 1, transformOrigin: '0% 100%', display: 'inline-block'}),\n    animate('200ms cubic-bezier(0.755, 0.05, 0.855, 0.06)',\n      style({transform: 'scale(0.9)', opacity: 0, transformOrigin: '0% 100%'}))\n  ]\n  )\n]);\n","import { animate, AnimationTriggerMetadata, state, style, transition, trigger } from '@angular/animations';\nimport { AnimationCurves, AnimationDuration } from './animationParameters';\nconst easeOut = AnimationCurves.EASE_OUT;\nconst easeIn =  AnimationCurves.EASE_IN;\nconst duration = AnimationDuration.FAST;\nconst scaleY = 'scaleY(0.8)';\nconst scaleX = 'scaleX(0.8)';\nconst scaleY1 = 'scaleY(1)';\nconst scaleX1 = 'scaleX(1)';\nconst scaleXToVoid = 'scaleX(0.8)';\nconst scaleYToVoid = 'scaleY(0.8)';\n\nexport const directionFadeInOut: AnimationTriggerMetadata = trigger('directionFadeInOut', [\n  state('void', style({opacity: 0, })),\n  state('bottom', style({opacity: 1, })),\n  state('bottom-left', style({opacity: 1})),\n  state('bottom-right', style({opacity: 1})),\n  state('top', style({opacity: 1})),\n  state('top-left', style({opacity: 1})),\n  state('top-right', style({opacity: 1})),\n  state('left', style({opacity: 1})),\n  state('left-top', style({opacity: 1})),\n  state('left-bottom', style({opacity: 1})),\n  state('right', style({opacity: 1})),\n  state('right-top', style({opacity: 1})),\n  state('right-bottom', style({opacity: 1})),\n  // 下方\n  transition('* => bottom', [\n    style({opacity: 0.8 , transform: `${scaleY}`, transformOrigin: '50% -8px'}),\n    animate(`${duration}  ${easeOut}`, style({opacity: 1, transform: `${scaleY1}` }))\n  ]),\n  transition('bottom => void', [\n    style({  transformOrigin: '50% -8px'}),\n    animate(`${duration}  ${easeIn}`,  style({transform: `${scaleYToVoid}`, opacity: 0.8}))\n  ]),\n  transition('* => bottom-left', [\n    style({opacity: 0.8 , transform: `${scaleY}`, transformOrigin: '50% -8px'}),\n    animate(`${duration}  ${easeOut}`, style({opacity: 1, transform: `${scaleY1}` }))\n  ]),\n  transition('bottom-left => void', [\n    style({ opacity: 1, transformOrigin: '50% -8px'}),\n    animate(`${duration}  ${easeIn}`,  style({transform: `${scaleYToVoid}`, opacity: 0.8}))\n  ]),\n  transition('* => bottom-right', [\n    style({opacity: 0.8 , transform: `${scaleY}`, transformOrigin: '50% -8px'}),\n    animate(`${duration}  ${easeOut}`, style({opacity: 1, transform: `${scaleY1}` }))\n  ]),\n  transition('bottom-right => void', [\n    style({ opacity: 1, transformOrigin: '50% -8px'}),\n    animate(`${duration}  ${easeIn}`,  style({transform: `${scaleYToVoid}`, opacity: 0.8}))\n  ]),\n\n  // 上方\n  transition('* => top', [\n    style({opacity: 0.8 , transform: `${scaleY}`, transformOrigin: '50% calc(100% + 8px)'}),\n    animate(`${duration}  ${easeOut}`, style({opacity: 1, transform: `${scaleY1}`, }))\n  ]),\n  transition('top => void', [\n    style({ opacity: 1, transformOrigin: '50% calc(100% + 8px)'}),\n    animate(`${duration}  ${easeIn}`,  style({transform: `${scaleYToVoid}`, opacity: 0.8}))\n  ]),\n  transition('* => top-left', [\n    style({opacity: 0.8 , transform: `${scaleY}`, transformOrigin: '50% calc(100% + 8px)'}),\n    animate(`${duration}  ${easeOut}`, style({opacity: 1, transform: `${scaleY1}`, }))\n  ]),\n  transition('top-left => void', [\n    style({ opacity: 1, transformOrigin: '50% calc(100% + 8px)'}),\n    animate(`${duration}  ${easeIn}`,  style({transform: `${scaleYToVoid}`, opacity: 0.8}))\n  ]),\n  transition('* => top-right', [\n    style({opacity: 0.8 , transform: `${scaleY}`, transformOrigin: '50% calc(100% + 8px)'}),\n    animate(`${duration}  ${easeOut}`, style({opacity: 1, transform: `${scaleY1}`, }))\n  ]),\n  transition('top-right => void', [\n    style({ opacity: 1, transformOrigin: '50% calc(100% + 8px)'}),\n    animate(`${duration}  ${easeIn}`,  style({transform: `${scaleYToVoid}`, opacity: 0.8}))\n  ]),\n\n  // 左方\n  transition('* => left', [\n    style({opacity: 0.8, transform: `${scaleX}`, transformOrigin: 'calc(100% + 8px)'}),\n    animate(`${duration}  ${easeOut}`, style({opacity: 1, transform: `${scaleX1}` }))\n  ]),\n  transition('left => void', [\n    style({ opacity: 1, transformOrigin: 'calc(100% + 8px)'}),\n    animate(`${duration}  ${easeIn}`,  style({transform: `${scaleXToVoid}`,   opacity: 0.8}))\n  ]),\n  transition('* => left-top', [\n    style({opacity: 0.8, transform: `${scaleX}`, transformOrigin: 'calc(100% + 8px)'}),\n    animate(`${duration}  ${easeOut}`, style({opacity: 1, transform: `${scaleX1}` }))\n  ]),\n  transition('left-top => void', [\n    style({ opacity: 1, transformOrigin: 'calc(100% + 8px)'}),\n    animate(`${duration}  ${easeIn}`,  style({transform: `${scaleXToVoid}`,   opacity: 0.8}))\n  ]),\n  transition('* => left-bottom', [\n    style({opacity: 0.8, transform: `${scaleX}`, transformOrigin: 'calc(100% + 8px)'}),\n    animate(`${duration}  ${easeOut}`, style({opacity: 1, transform: `${scaleX1}` }))\n  ]),\n  transition('left-bottom => void', [\n    style({ opacity: 1, transformOrigin: 'calc(100% + 8px)'}),\n    animate(`${duration}  ${easeIn}`,  style({transform: `${scaleXToVoid}`,   opacity: 0.8}))\n  ]),\n  //  右方\n  transition('* => right', [\n    style({opacity: 0.8, transform: `${scaleX}`, transformOrigin: '-8px 50% '}),\n    animate(`${duration}  ${easeOut}`, style({opacity: 1, transform: `${scaleX1}`}))\n  ]),\n  transition('right => void', [\n    style({ opacity: 1, transformOrigin: '-8px 50% '}),\n    animate(`${duration}  ${easeIn}`,  style({transform: `${scaleXToVoid}`,   opacity: 0}))\n  ]),\n  transition('* => right-top', [\n    style({opacity: 0.8, transform: `${scaleX}`, transformOrigin: '-8px 50% '}),\n    animate(`${duration}  ${easeOut}`, style({opacity: 1, transform: `${scaleX1}`}))\n  ]),\n  transition('right-top => void', [\n    style({ opacity: 1, transformOrigin: '-8px 50% '}),\n    animate(`${duration}  ${easeIn}`,  style({transform: `${scaleXToVoid}`,   opacity: 0.8}))\n  ]),\n  transition('* => right-bottom', [\n    style({opacity: 0.8, transform: `${scaleX}`, transformOrigin: '-8px 50% '}),\n    animate(`${duration}  ${easeOut}`, style({opacity: 1, transform: `${scaleX1}`}))\n  ]),\n  transition('right-bottom => void', [\n    style({ opacity: 1, transformOrigin: '-8px 50% '}),\n    animate(`${duration}  ${easeIn}`,  style({transform: `${scaleXToVoid}`,   opacity: 0.8}))\n  ]),\n]);\n","import { animate, AnimationTriggerMetadata, state, style, transition, trigger } from '@angular/animations';\nimport { AnimationCurves, AnimationDuration } from './animationParameters';\n\nconst easeInOut = AnimationCurves.EASE_IN_OUT;\nconst duration = AnimationDuration.SLOW;\n\nexport const expandCollapse: AnimationTriggerMetadata = trigger('collapse', [\n  state('expanded', style({ opacity: 1, height: '*', overflow: 'hidden' })),\n  state('collapsed', style({ opacity: 0, height: 0, overflow: 'hidden' })),\n  transition('collapsed => expanded', animate(`${duration} ${easeInOut}`)),\n  transition('expanded => collapsed', animate(`${duration} ${easeInOut}`))\n]);\n\nexport const expandCollapseForDomDestroy: AnimationTriggerMetadata = trigger('collapseForDomDestroy', [\n  transition(':enter', [\n    style({ opacity: 0, height: 0, overflow: 'hidden' }),\n    animate(`${duration} ${easeInOut}`, style({ opacity: 1, height: '*', overflow: 'hidden' }))\n  ]),\n  transition(':leave', [\n    style({ opacity: 1, height: '*', overflow: 'hidden' }),\n    animate(`${duration} ${easeInOut}`, style({ opacity: 0, height: 0, overflow: 'hidden' }))\n  ]),\n]);\n\nexport const collapseMotion: AnimationTriggerMetadata = trigger('collapseMotion', [\n  state('expanded', style({ height: '*' })),\n  state('collapsed', style({ height: 0 })), // overflow: 'hidden'\n  transition('expanded => collapsed', animate(`150ms ${AnimationCurves.EASE_IN_OUT}`)),\n  transition('collapsed => expanded', animate(`150ms ${AnimationCurves.EASE_IN_OUT}`)),\n]);\n","import { animate, AnimationTriggerMetadata, state, style, transition, trigger } from '@angular/animations';\nimport { AnimationCurves, AnimationDuration } from './animationParameters';\n\nconst easeIn = AnimationCurves.EASE_IN;\nconst easeOut = AnimationCurves.EASE_OUT;\nconst duration = AnimationDuration.BASE;\nexport const fadeInOut: AnimationTriggerMetadata = trigger('fadeInOut', [\n  state('void', style({ transform: 'scaleY(0) translateY(-4px)', opacity: 0, transformOrigin: '0 0%', display: 'block' })),\n  state('bottom', style({ transform: 'scaleY(0.9999) translateY(0)', opacity: 1, transformOrigin: '0 0%', display: 'block' })),\n  state('top', style({ transform: 'scaleY(0.9999) translateY(0)', opacity: 1, transformOrigin: '0 100%', display: 'block' })),\n  transition('void => bottom', [\n    style({ opacity: 0.8, transform: 'scaleY(0.8) translateY(-4px)' }),\n    animate(`${duration} ${easeOut}`)\n  ]),\n  transition('bottom => void', [\n    animate(`${duration} ${easeIn}`,\n      style({ transform: 'scaleY(0.8) translateY(-4px)', opacity: 0, transformOrigin: '0 0%', display: 'none' })),\n  ]),\n  transition('void => top', [\n    style({ transform: 'scaleY(0.8) translateY(4px)', opacity: 0.8, transformOrigin: '0 100%', display: 'block' }),\n    animate(`${duration} ${easeOut}`)]),\n  transition('top => void', [\n    animate(`${duration} ${easeIn}`,\n      style({ transform: 'scaleY(0.8) translateY(4px)', opacity: 0, transformOrigin: '0 100%', display: 'none' }))\n  ])]);\n","import { animate, AnimationTriggerMetadata, state, style, transition, trigger } from '@angular/animations';\nimport { AnimationCurves, AnimationDuration } from './animationParameters';\n\nconst easeIn = AnimationCurves.EASE_IN;\nconst easeOut = AnimationCurves.EASE_OUT;\nconst duration = AnimationDuration.FAST;\nexport const scaleInOut: AnimationTriggerMetadata = trigger('scaleInOut', [\n  transition(':enter', [\n    style({ opacity: 0, transform: 'scale(0.8)' }),\n    animate(`${duration} ${easeIn}`, style({ opacity: 1, transform: 'scale(1)' })),\n  ]),\n  transition(':leave', [\n    // style({ opacity: 1, transform: 'scale(1)' }),\n    animate(`${duration} ${easeOut}`, style({ opacity: 0, transform: 'scale(0.8)' })),\n  ]),\n]);\n","import { animate, AnimationTriggerMetadata, state, style, transition, trigger } from '@angular/animations';\nimport { AnimationCurves, AnimationDuration } from './animationParameters';\nconst easeIn = AnimationCurves.EASE_IN;\nconst easeOut = AnimationCurves.EASE_OUT;\nconst duration = AnimationDuration.SLOW;\n\nexport const flyInOut: AnimationTriggerMetadata = trigger('flyInOut', [\n  state('left-void', style({ transform: 'translateX(-100%)', opacity: 0 })),\n  state('left-in', style({ transform: 'translateX(0)', opacity: 1 })),\n  state('right-void', style({ transform: 'translateX(100%)', opacity: 0.8 })),\n  state('right-in', style({ transform: 'translateX(0)', opacity: 1 })),\n  // 解决初始化动效为'void'而非'left/right-void'\n  transition('void => left-in', [\n    style({ transform: 'translateX(-100%)', opacity: 0.8 }),\n    animate(`${duration} ${easeOut}`, style({ transform: 'translateX(0)', opacity: 1 })),\n  ]),\n  transition('void => right-in', [\n    style({ transform: 'translateX(100%)', opacity: 0.8 }),\n    animate(`${duration} ${easeOut}`, style({ transform: 'translateX(0)', opacity: 1 })),\n  ]),\n  transition('left-void => left-in', [animate(`${duration} ${easeOut}`)]),\n  transition('right-void => right-in', [animate(`${duration} ${easeOut}`)]),\n  transition('left-in => left-void', [animate(`${duration} ${easeIn}`)]),\n  transition('right-in => right-void', [animate(`${duration} ${easeIn}`)]),\n]);\n","/** @deprecated  use collapseForDomDestroy to replace */\n\nimport {\n  animate,\n  AnimationTriggerMetadata,\n  state,\n  style,\n  transition,\n  trigger\n} from '@angular/animations';\n\nexport const openClose: AnimationTriggerMetadata = trigger('openClose', [\n  state('void', style({ transform: 'scaleY(0)', height: 0, opacity: 0, transformOrigin: '50% 0% 0px' })),\n  state('open', style({ transform: 'scaleY(0.9999)', opacity: 1, transformOrigin: '50% 0% 0px' })),\n  transition('void => open', [animate('300ms ease-in-out')]),\n  transition('open => void', [animate('300ms ease-in-out')]),\n]);\n","/**\n * @deprecated\n */\nimport { animate, AnimationTriggerMetadata, state, style, transition, trigger } from '@angular/animations';\n\nconst isIE = typeof window !== 'undefined' && (window.navigator.userAgent.indexOf('MSIE ') > -1 ||\n  window.navigator.userAgent.indexOf('Trident') > -1);\n\nconst ANIMATION = [\n  state('void', style({transform: 'scale(0)', transformOrigin: '50% 50%'})),\n  state('in', style({transform: 'scale(1)', transformOrigin: '50% 50%'})),\n  transition('void => in', [\n    animate('200ms cubic-bezier(0.23, 1, 0.32, 1)')]),\n  transition('in => void', [\n    animate('200ms cubic-bezier(0.755, 0.05, 0.855, 0.06)')]),\n];\n\nif (isIE) {\n  ANIMATION.splice(2, 2); // remove last two animation transitions\n}\n\nexport const popInOut: AnimationTriggerMetadata = trigger('popInOut', ANIMATION);\n","export function scrollAnimate(target, currentTopValue, targetTopValue, timeGap = 40, scrollTime = 450, callback?) {\n  if (typeof document === 'undefined' || typeof window === 'undefined' || !target) {\n    return;\n  }\n  const startTimeStamp = Date.now();\n  const drawAnimateFrame = () => {\n    const currentTime = Date.now() - startTimeStamp;\n    if (currentTime - timeGap > scrollTime) {\n      target.scrollTop = targetTopValue;\n      if (target === document.documentElement) {\n        // 兼容写法，老浏览器/老API模式需要document.body滚动，新的需要documentElement滚动\n        document.body.scrollTop = targetTopValue;\n      }\n      if (callback) {\n        callback();\n      }\n    } else {\n      const tempTopValue = easeInOutCubic(currentTime, currentTopValue, targetTopValue, scrollTime);\n      target.scrollTop = tempTopValue;\n      if (target === document.documentElement) {\n        document.body.scrollTop = tempTopValue;\n      }\n      setTimeout(() => {\n        requestAnimationFrame(drawAnimateFrame);\n      }, timeGap);\n    }\n  };\n  requestAnimationFrame(drawAnimateFrame);\n}\n\nexport function easeInOutCubic(t: number, b: number, c: number, d: number): number {\n  const cc = c - b;\n  let tt = t / (d / 2);\n  if (tt < 1) {\n    return ((cc / 2) * tt * tt * tt + b);\n  } else {\n    // eslint-disable-next-line no-return-assign\n    return ((cc / 2) * ((tt -= 2) * tt * tt + 2) + b);\n  }\n}\n","import { animate, AnimationTriggerMetadata, group, state, style, transition, trigger } from '@angular/animations';\nimport { AnimationCurves, AnimationDuration } from './animationParameters';\n\nconst easeOut = AnimationCurves.EASE_OUT;\nconst easeIn = AnimationCurves.EASE_IN;\nconst linear = AnimationCurves.LINEAR;\nconst duration = AnimationDuration.FAST;\n\nexport const wipeInOutAnimation: AnimationTriggerMetadata = trigger('wipeInOutAnimation', [\n  state('void', style({ opacity: 0.2, transform: 'translateY(-24px)' })),\n  state('in', style({ opacity: 1, transform: 'unset' })),\n  transition('void => in', group([\n    animate(`${duration} ${easeOut}`, style({ opacity: 1 })),\n    animate(`${duration} ${linear}`, style({ transform: 'unset' }))\n  ])),\n  transition('in => void', group([\n    animate(`${duration} ${easeIn}`, style({ opacity: 0.2 })),\n    animate(`${duration} ${linear}`, style({ transform: 'translateY(-24px)' }))\n  ])),\n]);\n","import { ElementRef } from '@angular/core';\n\nexport function formWithDropDown(ele: ElementRef): ElementRef['nativeElement'] {\n  if (ele) {\n    if (!ele.nativeElement.classList.contains('devui-dropdown-origin')) {\n      const parentEle = ele.nativeElement.parentElement;\n      if (parentEle && parentEle.classList.contains('devui-dropdown-origin')) {\n        return ele.nativeElement.parentElement;\n      } else {\n        return;\n      }\n    } else {\n      return ele.nativeElement;\n    }\n  }\n}\n\nexport function addClassToOrigin(ele: ElementRef): void {\n  const originEle = formWithDropDown(ele);\n  if (originEle && !originEle.classList.contains('devui-dropdown-origin-open')) {\n    originEle.classList.add('devui-dropdown-origin-open');\n  }\n}\n\nexport function removeClassFromOrigin(ele: ElementRef): void {\n  const originEle = formWithDropDown(ele);\n  if (originEle && originEle.classList.contains('devui-dropdown-origin-open')) {\n    originEle.classList.remove('devui-dropdown-origin-open');\n  }\n}\n","import { ConnectedPosition } from '@angular/cdk/overlay';\r\n\r\n// Block application conditions are to be determined and are not open in APIs.\r\nexport type AppendToBodyScrollStrategyType = 'block' | 'close' | 'noop' | 'reposition';\r\nexport type AppendToBodyDirection = 'rightDown' | 'rightUp' | 'leftUp' | 'leftDown' | 'centerDown' | 'centerUp';\r\nexport const AppendToBodyDirectionsConfig: {\r\n  [p in AppendToBodyDirection]: ConnectedPosition;\r\n} = {\r\n  rightDown: {\r\n    originX: 'start',\r\n    originY: 'bottom',\r\n    overlayX: 'start',\r\n    overlayY: 'top',\r\n  },\r\n  rightUp: {\r\n    originX: 'start',\r\n    originY: 'top',\r\n    overlayX: 'start',\r\n    overlayY: 'bottom',\r\n  },\r\n  leftUp: {\r\n    originX: 'end',\r\n    originY: 'top',\r\n    overlayX: 'end',\r\n    overlayY: 'bottom',\r\n  },\r\n  leftDown: {\r\n    originX: 'end',\r\n    originY: 'bottom',\r\n    overlayX: 'end',\r\n    overlayY: 'top',\r\n  },\r\n  centerDown: {\r\n    originX: 'center',\r\n    originY: 'bottom',\r\n    overlayX: 'center',\r\n    overlayY: 'top',\r\n  },\r\n  centerUp: {\r\n    originX: 'center',\r\n    originY: 'top',\r\n    overlayX: 'center',\r\n    overlayY: 'bottom',\r\n  },\r\n};\r\n","import * as datefns from 'date-fns';\n\nexport function isValidDate(date: Date): boolean {\n  return datefns.isDate(date) && !isNaN(date.getTime());\n}\n\nexport function parseDate(date: any, pattern?: string): Date {\n  if (!date) {\n    return null;\n  }\n\n  if (datefns.isDate(date)) {\n    return date;\n  }\n  const parsedDate = pattern ? datefns.parse(date, pattern, new Date())\n    : datefns.parseISO(date);\n  return isValidDate(parsedDate) ? parsedDate : new Date(date);\n}\n\nexport function formatDate(date: Date, pattern = 'y-MM-dd HH:mm:ss'): string {\n  return isValidDate(date) ? datefns.format(date, pattern) : '';\n}\n","import { I18nFormat } from 'ng-devui/i18n';\nimport { DateConverter } from './date-converter';\nimport { parseDate } from './date-utils';\n\nexport class DefaultDateConverter implements DateConverter {\n\n  parse(date: any, pattern?: string, locale?: string): Date {\n    return parseDate(date, pattern);\n  }\n\n  format(date: Date, pattern?: string, locale?: string): string {\n    return I18nFormat.formatDate(date, pattern, locale);\n  }\n\n  formatDateTime(date: Date, pattern?: string, locale?: string): string {\n    return I18nFormat.formatDateTimeWithoutGMT(date, pattern, locale);\n  }\n}\n","import { ElementRef } from '@angular/core';\nimport { WindowRef } from 'ng-devui/window-ref';\n\nexport function centerWindowPosition(elementRef: ElementRef, windowRef: WindowRef): { top?: number; left?: number } {\n  if (!elementRef.nativeElement || !elementRef.nativeElement.getBoundingClientRect) {\n    return {};\n  }\n\n  const rect = elementRef.nativeElement.getBoundingClientRect();\n  const elmHeight = rect.height;\n  const elmWidth = rect.width;\n  const winHeight = windowRef.innerHeight;\n  const winWidth = windowRef.innerWidth;\n\n  return {\n    left: (winWidth - elmWidth) / 2,\n    top: (winHeight - elmHeight) / 2\n  };\n}\n\nexport function stopPropagationIfExist($event?: Event) {\n  if ($event) {\n    $event.stopPropagation();\n  }\n}\n","export function unshiftString(str: string, targetLength: number, addString: string): string {\n  targetLength = targetLength > 0 ? targetLength : 0;\n  addString = String((typeof addString !== 'undefined' && typeof addString !== 'object') ? addString : ' ');\n  str = (str === undefined || str === null) ? '' : String(str);\n  if (str.length >= targetLength) {\n    return String(str);\n  } else {\n    targetLength = targetLength - str.length;\n    if (targetLength > addString.length) {\n      addString += addString.repeat(targetLength / addString.length);\n    }\n    return addString.slice(0, targetLength) + String(str);\n  }\n}\n","import { InjectionToken } from '@angular/core';\r\nimport { AppendToBodyScrollStrategyType } from '../cdk-overlay-config.type';\r\nexport interface IGlobalConfig {\r\n  showAnimation?: boolean;\r\n  showGlowStyle?: boolean;\r\n  bodyScrollable?: boolean;\r\n  styleType?: 'default' | 'gray';\r\n  size?: 'xs' | 'sm' | 'md' | 'lg';\r\n  appendToBodyScrollStrategy?: AppendToBodyScrollStrategyType;\r\n}\r\nexport type GlobalConfig = IGlobalConfig;\r\nexport interface TooltipConfig extends IGlobalConfig {\r\n  mouseEnterDelay?: number;\r\n  mouseLeaveDelay?: number;\r\n}\r\nexport type PanelConfig = IGlobalConfig;\r\nexport type ModalConfig = IGlobalConfig;\r\nexport type DropdownConfig = IGlobalConfig;\r\nexport type AccordionConfig = IGlobalConfig;\r\nexport type TwodatepickerConfig = IGlobalConfig;\r\nexport type PopoverConfig = IGlobalConfig;\r\nexport type SelectConfig = IGlobalConfig;\r\nexport type TreeselectConfig = IGlobalConfig;\r\nexport type PopperConfig = IGlobalConfig;\r\nexport type TreeConfig = IGlobalConfig;\r\nexport type EditableselectConfig = IGlobalConfig;\r\nexport type AutocompleteConfig = IGlobalConfig;\r\nexport type MultiautocompleteConfig = IGlobalConfig;\r\nexport type DatepickerConfig = IGlobalConfig;\r\nexport type CascaderConfig = IGlobalConfig;\r\nexport type TagsinputConfig = IGlobalConfig;\r\nexport type TimepickerConfig = IGlobalConfig;\r\nexport type CheckboxConfig = IGlobalConfig;\r\nexport type TypographyConfig = IGlobalConfig;\r\nexport interface DevUIGlobalConfig {\r\n  tooltip?: TooltipConfig;\r\n  dropdown?: DropdownConfig;\r\n  accordion?: AccordionConfig;\r\n  popover?: PopoverConfig;\r\n  select?: SelectConfig;\r\n  modal?: ModalConfig;\r\n  treeselect?: TreeselectConfig;\r\n  popper?: PopperConfig;\r\n  tree?: TreeConfig;\r\n  editableselect?: EditableselectConfig;\r\n  autocomplete?: AutocompleteConfig;\r\n  multiautocomplete?: MultiautocompleteConfig;\r\n  datepicker?: DatepickerConfig;\r\n  daterangepicker?: DatepickerConfig;\r\n  datepickerappendtobody?: DatepickerConfig;\r\n  twodatepicker?: DatepickerConfig;\r\n  cascader?: CascaderConfig;\r\n  tagsinput?: TagsinputConfig;\r\n  timepicker?: TimepickerConfig;\r\n  checkbox?: CheckboxConfig;\r\n  checkboxgroup?: CheckboxConfig;\r\n  panel?: PanelConfig;\r\n  typography?: TypographyConfig;\r\n  global?: GlobalConfig;\r\n}\r\nexport type DevUIGlobalConfigKey = keyof DevUIGlobalConfig;\r\nexport type DevUIGlobalInsideConfigKey = keyof DevUIGlobalConfig['global'];\r\nexport const DevUIGlobalConfigToken = new InjectionToken<DevUIGlobalConfig>('DevUI_global_config');\r\n","import { Inject, Injectable, Optional } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { filter, mapTo } from 'rxjs/operators';\r\nimport { DevUIGlobalConfig, DevUIGlobalConfigKey, DevUIGlobalConfigToken, DevUIGlobalInsideConfigKey } from './config';\r\n\r\nconst isDefined = function (value?: any): boolean {\r\n  return value !== undefined;\r\n};\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class DevConfigService {\r\n  private configUpdated$ = new Subject<keyof DevUIGlobalConfig>();\r\n  private config: DevUIGlobalConfig;\r\n\r\n  constructor(@Optional() @Inject(DevUIGlobalConfigToken) defaultConfig?: DevUIGlobalConfig) {\r\n    this.config = defaultConfig || {};\r\n  }\r\n\r\n  getConfigForComponent<T extends DevUIGlobalConfigKey>(componentName: T): DevUIGlobalConfig[T] {\r\n    return this.config[componentName];\r\n  }\r\n\r\n  getConfigForApi<T extends DevUIGlobalInsideConfigKey>(api: T): DevUIGlobalConfig['global'][T] {\r\n    const globalConfig = this.config.global || {};\r\n    const apiConfig = globalConfig[api];\r\n    return apiConfig;\r\n  }\r\n\r\n  getConfigChangeEventForComponent(componentName: DevUIGlobalConfigKey): Observable<void> {\r\n    return this.configUpdated$.pipe(\r\n      filter((n) => n === componentName),\r\n      mapTo(undefined)\r\n    );\r\n  }\r\n\r\n  set<T extends DevUIGlobalConfigKey>(componentName: T, value: DevUIGlobalConfig[T]): void {\r\n    this.config[componentName] = { ...this.config[componentName], ...value };\r\n    this.configUpdated$.next(componentName);\r\n  }\r\n}\r\n\r\nexport function WithConfig<T>(propertyKey?: T | string) {\r\n  return function ConfigDecorator(target: any, propName: any, originalDescriptor?: TypedPropertyDescriptor<T>): any {\r\n    const privatePropName = `$$__assignedValue__${propName}`;\r\n    if (Object.prototype.hasOwnProperty.call(target, privatePropName)) {\r\n      console.warn(`The prop \"${privatePropName}\" is already exist, it will be overrided by withConfig decorator.`);\r\n    }\r\n    Object.defineProperty(target, privatePropName, {\r\n      configurable: true,\r\n      writable: true,\r\n      enumerable: false,\r\n    });\r\n    return {\r\n      get(): T | undefined {\r\n        const originalValue = originalDescriptor?.get ? originalDescriptor.get.bind(this)() : this[privatePropName];\r\n        const assignedByUser = ((this.assignmentCount || {})[propName] || 0) > 1;\r\n        if (assignedByUser && isDefined(originalValue)) {\r\n          return originalValue;\r\n        }\r\n        if (JSON.stringify(this.devConfigService.config) === '{}') {\r\n          return originalValue;\r\n        }\r\n\r\n        let name = this.constructor.name;\r\n        name = name.replace('Directive', '');\r\n        name = name.replace('Component', '');\r\n        name = name.toLowerCase();\r\n\r\n        const componentConfig = this.devConfigService.config[name] || {};\r\n        const configValue = componentConfig[propName];\r\n        const globalConfig = this.devConfigService.config.global || {};\r\n        const apiConfig = globalConfig[propName];\r\n        const result = isDefined(apiConfig) ? apiConfig : originalValue;\r\n        const ret = isDefined(configValue) ? configValue : result;\r\n        return ret;\r\n      },\r\n      set(value?: T): void {\r\n        this.assignmentCount = this.assignmentCount || {};\r\n        this.assignmentCount[propName] = (this.assignmentCount[propName] || 0) + 1;\r\n        if (originalDescriptor && originalDescriptor.set) {\r\n          originalDescriptor.set.bind(this)(value);\r\n        }\r\n        this[privatePropName] = value;\r\n      },\r\n      configurable: true,\r\n      enumerable: true,\r\n    };\r\n  };\r\n}\r\n","import { DOCUMENT } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, HostBinding, Inject, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Component({\n  selector: 'd-highlight',\n  template: ``,\n  styleUrls: ['./highlight.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HighlightComponent implements OnChanges {\n  @HostBinding('style.display') display = 'inline';\n  @Input() value: string;\n  @Input() term: string;\n  /**\n   * @deprecated\n   */\n  @Input() highlightClass = 'devui-match-highlight';\n  document: Document;\n\n  constructor(private translateHtml: DomSanitizer, private eleRef: ElementRef, @Inject(DOCUMENT) private doc: any) {\n    this.document = this.doc;\n  }\n  ngOnChanges(changes: SimpleChanges): void {\n    this.addDom(this.value, this.term);\n  }\n  addDom(value: string, term: string): any {\n    if (value && term) {\n      this.highlight(value, term);\n    } else {\n      const container = this.eleRef.nativeElement;\n      this.emptyChildren(container);\n      container.textContent = value;\n    }\n  }\n  emptyChildren(container) {\n    while (container.hasChildNodes()) {\n      container.removeChild(container.firstChild);\n    }\n  }\n\n  highlight(value: string, term: string) {\n    const container = this.eleRef.nativeElement;\n    this.emptyChildren(container);\n    const reg = (str) => str.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n    const regExp = new RegExp('(' + reg(term) + ')', 'gi');\n    const temp = value.split(regExp);\n    const createHighLight = (text) => {\n      const spanDOM = this.document.createElement('span');\n      spanDOM.classList.add('devui-match-highlight');\n      spanDOM.textContent = text;\n      return spanDOM;\n    };\n\n    temp.forEach((element, index) => {\n      if (index % 2 === 0) {\n        container.appendChild(this.document.createTextNode(element));\n      } else {\n        container.appendChild(createHighLight(element));\n      }\n    });\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { HighlightComponent } from './highlight.component';\n\n@NgModule({\n  imports: [CommonModule],\n  declarations: [HighlightComponent],\n  exports: [HighlightComponent]\n})\nexport class HighlightModule { }\n","import { Pipe, PipeTransform, TemplateRef } from '@angular/core';\n\n@Pipe({\n  name: 'dIsTemplatePipe',\n})\nexport class IsTemplatePipe implements PipeTransform {\n  transform(content: string | TemplateRef<any>, defaultTemplate: TemplateRef<any>): TemplateRef<any> {\n    return content instanceof TemplateRef ? content : defaultTemplate;\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { IsTemplatePipe } from './is-template.pipe';\n\n@NgModule({\n  declarations: [IsTemplatePipe],\n  exports: [IsTemplatePipe],\n})\nexport class IsTemplateModule {}\n","import { AfterViewInit, Directive, ElementRef, EventEmitter, Input, OnChanges, OnDestroy, Output, SimpleChanges } from '@angular/core';\r\nimport { Subscription, fromEvent } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\r\n\r\n@Directive({ selector: '[dLazyLoad]' })\r\nexport class LazyLoadDirective implements OnDestroy, OnChanges, AfterViewInit {\r\n  // 启用懒加载，默认不启用\r\n  @Input() enableLazyLoad = false;\r\n  // 懒加载模式，默认列表模式\r\n  @Input() contentMode: 'img' | 'list' = 'list';\r\n  // 滚动监听的目标，默认是宿主，\r\n  @Input() target: HTMLElement | Window;\r\n  // 图片懒加载模式的图片地址\r\n  @Input() imgLoadSrc: string;\r\n  // 懒加载滚动方向\r\n  @Input() direction: 'vertical' | 'horizontal' = 'vertical';\r\n  // 加载更多\r\n  @Output() loadMore = new EventEmitter<any>();\r\n\r\n  scrollSubscription: Subscription;\r\n\r\n  // 触发懒加载的距离\r\n  loadFactor = 5;\r\n\r\n  constructor(private el: ElementRef) {}\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    const element = this.target ? this.target : this.el.nativeElement;\r\n    if (changes?.enableLazyLoad) {\r\n      if (changes.enableLazyLoad.currentValue) {\r\n        const scrollEvent = fromEvent(element, 'scroll');\r\n        let scrollEventFormat = scrollEvent;\r\n        if (this.contentMode === 'list') {\r\n          scrollEventFormat = scrollEvent.pipe(debounceTime(300), distinctUntilChanged());\r\n        }\r\n        this.scrollSubscription = scrollEventFormat.subscribe((event) => this.scrollList(event));\r\n      } else if (this.scrollSubscription) {\r\n        this.scrollSubscription.unsubscribe();\r\n      } else {\r\n        return;\r\n      }\r\n    }\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    if (this.contentMode === 'img') {\r\n      setTimeout(() => {\r\n        const target = this.target ? this.target : this.el.nativeElement;\r\n        const mockEvent = { target };\r\n        this.scrollList(mockEvent);\r\n      });\r\n    }\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    if (this.scrollSubscription) {\r\n      this.scrollSubscription.unsubscribe();\r\n    }\r\n  }\r\n\r\n  scrollList(event) {\r\n    const targetEl = event.target.scrollingElement ? event.target.scrollingElement : event.target;\r\n    const { clientWidth, clientHeight, scrollLeft, scrollTop, scrollWidth, scrollHeight } = targetEl;\r\n    if (this.contentMode === 'img') {\r\n      const rect = this.el.nativeElement.getBoundingClientRect();\r\n      const imgCondition =\r\n        this.direction === 'vertical'\r\n          ? rect.top >= 0 && clientHeight >= rect.top + this.loadFactor\r\n          : rect.left >= 0 && clientWidth >= rect.left + this.loadFactor;\r\n      if (imgCondition) {\r\n        if (this.imgLoadSrc) {\r\n          this.el.nativeElement.src = this.imgLoadSrc;\r\n        }\r\n        this.loadMore.emit(event);\r\n        this.scrollSubscription.unsubscribe();\r\n      }\r\n    } else {\r\n      const etcCondition =\r\n        this.direction === 'vertical'\r\n          ? scrollTop !== 0 && scrollTop + clientHeight + this.loadFactor >= scrollHeight\r\n          : scrollLeft !== 0 && scrollLeft + clientWidth + this.loadFactor >= scrollWidth;\r\n      if (etcCondition) {\r\n        this.loadMore.emit(event);\r\n      }\r\n    }\r\n  }\r\n}\r\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LazyLoadDirective } from './lazy-load.directive';\n\n@NgModule({\n  imports: [CommonModule],\n  declarations: [LazyLoadDirective],\n  exports: [LazyLoadDirective]\n})\nexport class LazyLoadModule { }\n","import { AfterViewInit, Directive, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { delay, filter } from 'rxjs/operators';\n\n@Directive({\n  selector: '[dObserveVisibility]',\n})\nexport class ObserveVisibilityDirective\nimplements OnDestroy, OnInit, AfterViewInit {\n  @Input() debounceTime = 0;\n  @Input() threshold = 1;\n  @Input() root: HTMLElement;\n  @Input() rootMargin = '0px';\n  @Output() show = new EventEmitter<HTMLElement>();\n  @Output() hide = new EventEmitter<HTMLElement>();\n\n  private observer: IntersectionObserver | undefined;\n  private subject$ = new Subject<{\n    entry: IntersectionObserverEntry;\n    observer: IntersectionObserver;\n  }>();\n\n  constructor(private element: ElementRef) { }\n\n  ngOnInit() {\n    this.createObserver();\n  }\n\n  ngAfterViewInit() {\n    this.startObservingElements();\n  }\n\n  ngOnDestroy() {\n    if (this.observer) {\n      this.observer.disconnect();\n      this.observer = undefined;\n    }\n\n    this.subject$.next({entry: null, observer: null});\n    this.subject$.complete();\n  }\n\n  private isVisible(element: HTMLElement) {\n    return new Promise(resolve => {\n      const observer = new IntersectionObserver(([entry]) => {\n        resolve(entry.intersectionRatio === 1);\n        observer.disconnect();\n      });\n\n      observer.observe(element);\n    });\n  }\n\n  private createObserver() {\n    const options = {\n      root: this.root,\n      rootMargin: this.rootMargin,\n      threshold: this.threshold,\n    };\n\n    const isIntersecting = (entry: IntersectionObserverEntry) =>\n      entry.isIntersecting || entry.intersectionRatio > 0;\n\n    this.observer = new IntersectionObserver((entries, observer) => {\n      entries.forEach(entry => {\n        if (isIntersecting(entry)) {\n          this.subject$.next({ entry, observer });\n        }\n      });\n    }, options);\n  }\n\n  private startObservingElements() {\n    if (!this.observer) {\n      return;\n    }\n\n    this.observer.observe(this.element.nativeElement);\n\n    this.subject$\n      .pipe(delay(this.debounceTime), filter(Boolean))\n      .subscribe(async ({ entry, observer }) => {\n        const target = entry.target as HTMLElement;\n        const isStillVisible = await this.isVisible(target);\n\n        if (isStillVisible) {\n          this.show.emit(target);\n        } else {\n          this.hide.emit(target);\n        }\n      });\n  }\n}\n\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ObserveVisibilityDirective } from './observer-visibility.directive';\n\n@NgModule({\n  imports: [CommonModule],\n  declarations: [ObserveVisibilityDirective],\n  exports: [ObserveVisibilityDirective]\n})\nexport class ObserverVisibilityModule { }\n","import { Directive, EmbeddedViewRef, Input, OnChanges, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { isEqual } from 'lodash-es';\n\n@Directive({\n  selector: '[dStrTplOutlet]'\n})\nexport class StrTplOutletDirective<T = Record<string, any>> implements OnChanges {\n  private embeddedViewRef: EmbeddedViewRef<T> | null = null;\n  @Input() dStrTplOutlet: TemplateRef<T> | string;\n  @Input() dStrTplOutletContext: T;\n  constructor(private viewContainer: ViewContainerRef, private templateRef: TemplateRef<T>) { }\n  ngOnChanges(changes: SimpleChanges): void {\n    const { dStrTplOutlet, dStrTplOutletContext } = changes;\n    if (dStrTplOutlet) {\n      this.viewContainer.clear();\n      const template = (this.dStrTplOutlet instanceof TemplateRef) ? this.dStrTplOutlet : this.templateRef;\n      this.embeddedViewRef = this.viewContainer.createEmbeddedView(template, this.dStrTplOutletContext);\n    }\n\n    if (dStrTplOutletContext && !dStrTplOutletContext.firstChange && this.embeddedViewRef) {\n      const isTemplateRef = this.dStrTplOutlet instanceof TemplateRef;\n      const newCtx = isTemplateRef ? this.dStrTplOutletContext : {};\n      const oldCtx = this.embeddedViewRef.context;\n      if (!isEqual(newCtx, oldCtx)) {\n        for (const propName of Object.keys(newCtx)) {\n          oldCtx[propName] = newCtx[propName];\n        }\n      }\n    }\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { StrTplOutletDirective } from './str-tpl-outlet.directive';\n\n@NgModule({\n  declarations: [StrTplOutletDirective],\n  exports: [StrTplOutletDirective]\n  })\nexport class StrTplOutletModule { }\n","import { DOCUMENT } from '@angular/common';\r\nimport {\r\n  AfterViewInit,\r\n  ChangeDetectorRef,\r\n  Component,\r\n  ElementRef,\r\n  EventEmitter,\r\n  Inject,\r\n  Input,\r\n  NgZone,\r\n  OnDestroy,\r\n  Output,\r\n  Renderer2,\r\n  ViewChild\r\n} from '@angular/core';\r\nimport { createPopper } from '@popperjs/core';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { AnimationCurves, AnimationDuration } from '../animations';\r\n\r\ninterface ExtraSetConfig {\r\n  extraWidth?: number;\r\n  offset?: string;\r\n}\r\n\r\n@Component({\r\n  selector: 'd-popper-component',\r\n  templateUrl: './popper.component.html',\r\n  styleUrls: [`./popper.component.scss`],\r\n})\r\nexport class PopperComponent implements AfterViewInit, OnDestroy {\r\n\r\n  get open() {\r\n    return this._isOpen;\r\n  }\r\n\r\n  @Input() set open(value) {\r\n    if (this._isOpen === value) { return; }\r\n    this.animate = true;\r\n    if (value) {\r\n      this.show();\r\n    } else {\r\n      this.close();\r\n    }\r\n    this._isOpen = value;\r\n\r\n    PopperComponent.nextTick(() => {\r\n      this.openChange.emit(value);\r\n      this.setBlurListener();\r\n    });\r\n  }\r\n  @Input() fluidPopper = true;\r\n  @Input() poppoverAppendDirection = 'bottom';\r\n  @Input() appendTo = 'body';\r\n  @Input() extraConfig: ExtraSetConfig;\r\n  @Input() showAnimation = true;\r\n  protected popper = null;\r\n  protected _isOpen: any = false;\r\n  protected animate: boolean;\r\n  protected popperDirection: string;\r\n  protected directionAnimationTransformOrigin = {\r\n    'top': '0 100%',\r\n    'bottom': '0 0'\r\n  };\r\n  protected popperNode;\r\n  protected popperParent;\r\n  private directionSubject = new Subject<string>();\r\n  document: Document;\r\n\r\n  @Output() openChange = new EventEmitter<any>();\r\n  @ViewChild('popperActivator', { static: true }) popperActivator: ElementRef;\r\n  @ViewChild('popperContainer', { static: true }) popperContainer: ElementRef;\r\n\r\n  static nextTick(fn) {\r\n    // Force to run fn after current data changed.\r\n    setTimeout(() => fn.bind(this)());\r\n  }\r\n  onDocumentClick = ($event: MouseEvent) => {\r\n    if (!!this.appendTo && this.popperContainer.nativeElement !== $event.target &&\r\n      !this.popperContainer.nativeElement.contains($event.target)) {\r\n      this.open = false;\r\n    } else if (!this.appendTo && this.open && !this.el.nativeElement.contains($event.target)) {\r\n      this.open = false;\r\n    }\r\n  };\r\n  private blockEvent = ($event: MouseEvent) => {\r\n    $event.preventDefault();\r\n    $event.stopPropagation();\r\n  };\r\n\r\n  constructor(protected el: ElementRef, protected renderer: Renderer2, protected ngZone: NgZone,\r\n              protected changeDetectorRef: ChangeDetectorRef, @Inject(DOCUMENT) private doc: any) {\r\n    this.document = this.doc;\r\n  }\r\n\r\n  show() {\r\n    // Append to selector or original parent.\r\n    if (this.appendTo) {\r\n      if (this.fluidPopper) {\r\n        let popperWidth = this.popperActivator.nativeElement && this.popperActivator.nativeElement.offsetWidth;\r\n        if (this.extraConfig && this.extraConfig.extraWidth) {\r\n          popperWidth = popperWidth + this.extraConfig.extraWidth;\r\n        }\r\n        const firstEle = this.popperContainer.nativeElement.firstElementChild;\r\n        if (firstEle.classList.contains('devui-search-container')) {\r\n          for (const child of this.popperContainer.nativeElement.children) {\r\n            child.style.width = `${popperWidth}px`;\r\n          }\r\n        } else {\r\n          firstEle.style.width = `${popperWidth}px`;\r\n        }\r\n      }\r\n      this.attachPopperContainerToSelector(this.appendTo);\r\n    } else {\r\n      this.attachPopperContainerToNode(this.popperParent);\r\n    }\r\n    this.popper = this.createCustomPopper();\r\n    this.renderer.setStyle(this.popperContainer.nativeElement, 'display', 'block');\r\n  }\r\n\r\n  private close() {\r\n    const popperContainer = this.popperContainer.nativeElement;\r\n    this.setTransition('close');\r\n    // For IE 11/Edge\r\n    if (popperContainer.style.transform.match(/scale3d\\(1, 1, 1\\)/)) {\r\n      // Replace transform open state with close state\r\n      this.renderer.setStyle(popperContainer, 'transform',\r\n        popperContainer.style.transform.replace('scale3d(1, 1, 1)', 'scale3d(1, 0.8, 1)'));\r\n    } else {\r\n      // perspective(1px) solves pixel shift caused by webkit transform\r\n      this.renderer.setStyle(popperContainer, 'transform',\r\n        popperContainer.style.transform + ` scale3d(1, 0.8, 1) perspective(1px)`);\r\n    }\r\n    // Set container to transparent\r\n    this.renderer.setStyle(popperContainer, 'opacity', 0.8);\r\n\r\n    // Can't use bind(this) since it calls itself\r\n    const that = this;\r\n    const handler = (e) => {\r\n      if (!that.open && that.popper) {\r\n        // Set final state of container to invisible\r\n        that.renderer.setStyle(popperContainer, 'display', 'none');\r\n        that.animate = false;\r\n        // Remove transition\r\n        that.setTransition();\r\n        that.popper.destroy();\r\n        that.popper = null;\r\n        that.detachPopperContainer();\r\n      }\r\n      e.currentTarget.removeEventListener(e.type, handler);\r\n    };\r\n    if (this.showAnimation) {\r\n      this.popperContainer.nativeElement.addEventListener('transitionend', handler);\r\n    } else {\r\n      that.renderer.setStyle(popperContainer, 'display', 'none');\r\n      that.animate = false;\r\n      that.popper.destroy();\r\n      that.popper = null;\r\n      that.detachPopperContainer();\r\n    }\r\n  }\r\n\r\n  setBlurListener() {\r\n    this.ngZone.runOutsideAngular(() => {\r\n      if (this.open) {\r\n        this.document.addEventListener('click', this.onDocumentClick);\r\n        this.popperContainer.nativeElement.addEventListener('click', this.blockEvent);\r\n      } else {\r\n        this.document.removeEventListener('click', this.onDocumentClick);\r\n        this.popperContainer.nativeElement.removeEventListener('click', this.blockEvent);\r\n      }\r\n    });\r\n  }\r\n\r\n  private applyTransitionStyle = (data) => {\r\n    const optionsContainer = this.popperContainer.nativeElement;\r\n    this.updateContainerTransitionDirection(data?.state?.modifiersData?.flip?._skip);\r\n    if (this.animate) {\r\n      // perspective(1px) solves pixel shift caused by webkit transform\r\n      this.renderer.setStyle(optionsContainer, 'transform',\r\n        optionsContainer.style.transform +\r\n        ` scale3d(1, 0.8, 1) perspective(1px) ${this.popperDirection === 'bottom' ? 'translateY(-4px)' : 'translateY(4px)'}`);\r\n      // Set container init state to transparent as beginning of the transition.\r\n      this.renderer.setStyle(optionsContainer, 'opacity', 0);\r\n      PopperComponent.nextTick(() => {\r\n        this.setTransition('open');\r\n        const that = this;\r\n        const handler = (e) => {\r\n          // remove transition\r\n          that.setTransition();\r\n          e.currentTarget.removeEventListener(e.type, handler);\r\n        };\r\n\r\n        optionsContainer.addEventListener('transitionend', handler);\r\n        this.renderer.setStyle(optionsContainer, 'transform',\r\n          optionsContainer.style.transform.replace('scale3d(1, 0.8, 1)', 'scale3d(1, 1, 1)'));\r\n        this.popperDirection === 'bottom' ?\r\n          this.renderer.setStyle(optionsContainer, 'transform',\r\n            optionsContainer.style.transform.replace('translateY(-4px)', 'translateY(0)')) :\r\n          this.renderer.setStyle(optionsContainer, 'transform',\r\n            optionsContainer.style.transform.replace('translateY(4px)', 'translateY(0)'));\r\n        this.renderer.setStyle(optionsContainer, 'opacity', 1);\r\n        this.animate = false;\r\n      });\r\n    } else {\r\n      // handle popper re-rendering, incoming transform doesn't have scale info\r\n      this.renderer.setStyle(optionsContainer, 'transform',\r\n        optionsContainer.style.transform + (this.open ? ' scale3d(1, 1, 1)' : ' scale3d(1, 0.8, 1)') + ' perspective(1px)');\r\n    }\r\n  };\r\n\r\n  private updateContainerTransitionDirection(flipped: boolean) {\r\n    const direction = flipped ? 'top' : 'bottom';\r\n    if (this.popperDirection !== direction) {\r\n      this.popperDirection = direction;\r\n      this.setTransitionOrigin();\r\n    }\r\n    this.directionSubject.next(this.popperDirection);\r\n  }\r\n\r\n  private setTransitionOrigin() {\r\n    if (this.popperContainer.nativeElement) {\r\n      this.renderer.setStyle(this.popperContainer.nativeElement, 'transform-origin',\r\n        this.directionAnimationTransformOrigin[this.popperDirection]);\r\n    }\r\n  }\r\n\r\n  private createCustomPopper() {\r\n    return createPopper(this.popperActivator.nativeElement, this.popperContainer.nativeElement, {\r\n      placement: 'bottom-start',\r\n      modifiers: [\r\n        {\r\n          name: 'preventOverflow',\r\n          options: {\r\n            mainAxis: true, // true by default\r\n          },\r\n        },\r\n        {\r\n          name: 'applyReactStyle',\r\n          phase: 'afterWrite',\r\n          enabled: true, // true by default\r\n          fn: this.applyTransitionStyle\r\n        },\r\n        {\r\n          name: 'offset',\r\n          options: {\r\n            offset: this.extraConfig && this.extraConfig.offset\r\n              ? [parseInt(this.extraConfig.offset.split(',')[0], 10), parseInt(this.extraConfig.offset.split(',')[1], 10)]\r\n              : [0, 5], // true by default\r\n          },\r\n        },\r\n        {\r\n          name: 'flip',\r\n          options: {\r\n            flipVariations: true, // true by default\r\n          },\r\n        },\r\n      ],\r\n      strategy: this.appendTo ? 'fixed' : 'absolute',\r\n    });\r\n  }\r\n\r\n  private setTransition(command = null) {\r\n    const popperContainer = this.popperContainer.nativeElement;\r\n    if (this.animate && command) {\r\n      if (command === 'open') {\r\n        this.renderer.setStyle(popperContainer, 'transition', this.showAnimation\r\n          ? `all ${AnimationDuration.BASE} ${AnimationCurves.EASE_OUT}` : 'none');\r\n      } else if (command === 'close') {\r\n        popperContainer.style.transition = this.showAnimation ? `all ${AnimationDuration.BASE} ${AnimationCurves.EASE_IN}` : 'none';\r\n      }\r\n    } else {\r\n      this.renderer.setStyle(popperContainer, 'transition', null);\r\n    }\r\n  }\r\n\r\n  public update() {\r\n    PopperComponent.nextTick(() => {\r\n      if (this.popper) { this.popper.forceUpdate(); }\r\n    });\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    // Close popper\r\n    this.open = false;\r\n  }\r\n\r\n  private detachPopperContainer() {\r\n    // Cache popper's parent and popper node.\r\n    this.popperParent = this.popperContainer.nativeElement.parentNode;\r\n    this.popperNode = this.popperContainer.nativeElement;\r\n    if (this.popperParent && this.popperNode) {\r\n      this.popperParent.removeChild(this.popperNode);\r\n    }\r\n  }\r\n\r\n  private attachPopperContainerToNode(nodeParent) {\r\n    if (nodeParent && this.popperNode) {\r\n      this.popperParent = nodeParent;\r\n      this.popperParent.appendChild(this.popperNode);\r\n    }\r\n  }\r\n\r\n  private attachPopperContainerToSelector(targetSelector) {\r\n    const nodeParent = this.document.querySelector(targetSelector);\r\n    this.attachPopperContainerToNode(nodeParent);\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n    // Detach popper container once view initialized.\r\n    this.detachPopperContainer();\r\n  }\r\n\r\n  public directionChange(): Observable<string> {\r\n    return this.directionSubject.asObservable();\r\n  }\r\n}\r\n","<div class=\"popper\">\n  <div class=\"popper-activator\" #popperActivator>\n    <ng-content select=\"[popper-activator]\"></ng-content>\n  </div>\n\n  <div\n    class=\"popper-container devui-popover-container-{{ poppoverAppendDirection }}\"\n    #popperContainer\n    [ngClass]=\"{ fluid: fluidPopper && !appendTo }\"\n  >\n    <div class=\"devui-dropdown-menu-wrap\">\n      <ng-content select=\"[popper-prepend]\"></ng-content>\n      <div class=\"popper-container-scrollable devui-scrollbar\">\n        <ng-content select=\"[popper-container]\"></ng-content>\n      </div>\n    </div>\n    <div class=\"popper-append-area\">\n      <ng-content select=\"[popper-append]\"></ng-content>\n    </div>\n  </div>\n</div>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {PopperComponent} from './popper.component';\n\n@NgModule({\n  imports: [CommonModule],\n  declarations: [PopperComponent],\n  exports: [PopperComponent]\n})\nexport class PopperModule {\n}\n","import {Pipe, PipeTransform} from '@angular/core';\nimport {DomSanitizer} from '@angular/platform-browser';\n\n@Pipe({name: 'safe'})\nexport class SafePipe implements PipeTransform {\n  private sanitizer: DomSanitizer;\n\n  constructor(sanitizer: DomSanitizer) {\n    this.sanitizer = sanitizer;\n  }\n\n  transform(value, type) {\n    switch (type) {\n    case 'html':\n      return this.sanitizer.bypassSecurityTrustHtml(value);\n    case 'style':\n      return this.sanitizer.bypassSecurityTrustStyle(value);\n    case 'url':\n      return this.sanitizer.bypassSecurityTrustUrl(value);\n    default:\n      throw new Error(`Unable to bypass security for invalid type: ${type}`);\n    }\n  }\n}\n","import {NgModule} from '@angular/core';\nimport {SafePipe} from './safe.pipe';\n\n@NgModule({\n  declarations: [SafePipe],\n  exports: [SafePipe]\n})\nexport class SafePipeModule {}\n","export class TreeUtils {\n  // 动态添加styles\n  public static addElStyles(el: any, styles: any) {\n    if (styles instanceof Object) {\n      for (const s in styles) {\n        if (Object.prototype.hasOwnProperty.call(styles, s)) {\n          if (Array.isArray(styles[s])) {\n            // 用于支持兼容渐退\n            styles[s].forEach(val => {\n              el.style[s] = val;\n            });\n          } else {\n            el.style[s] = styles[s];\n          }\n        }\n      }\n    }\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["duration","linear","easeOut","easeIn","i1"],"mappings":";;;;;;;;;;;;;MACa,iBAAiB,CAAA;aACrB,IAAI,CAAA,IAAA,GAAG,MAAM,CAAC,EAAA;aACd,IAAI,CAAA,IAAA,GAAG,MAAM,CAAC,EAAA;aACd,IAAI,CAAA,IAAA,GAAG,MAAM,CAAC,EAAA;;MAGV,uBAAuB,CAAA;aAC3B,IAAI,CAAA,IAAA,GAAG,GAAG,CAAC,EAAA;aACX,IAAI,CAAA,IAAA,GAAG,GAAG,CAAC,EAAA;aACX,IAAI,CAAA,IAAA,GAAG,GAAG,CAAC,EAAA;;MAGP,eAAe,CAAA;aACnB,IAAQ,CAAA,QAAA,GAAG,kCAAkC,CAAC,EAAA;aAC9C,IAAO,CAAA,OAAA,GAAG,kCAAkC,CAAC,EAAA;aAC7C,IAAW,CAAA,WAAA,GAAG,oCAAoC,CAAC,EAAA;aACnD,IAAM,CAAA,MAAA,GAAG,0BAA0B,CAAC,EAAA;AAC3C;;AAEK;aACE,IAAc,CAAA,cAAA,GAAG,sCAAsC,CAAC,EAAA;aACxD,IAAkB,CAAA,kBAAA,GAAG,sCAAsC,CAAC,EAAA;;;ACpBrE,MAAMA,UAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC;AACxC,MAAMC,QAAM,GAAG,eAAe,CAAC,MAAM,CAAC;AAEzB,MAAA,iBAAiB,GAA6B,OAAO,CAAC,mBAAmB,EAAE;AACtF,IAAA,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AACrD,IAAA,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IACpD,UAAU,CAAC,YAAY,EAAE;AACvB,QAAA,KAAK,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAC3B,QAAA,OAAO,CAAC,CAAA,EAAGD,UAAQ,CAAA,CAAA,EAAIC,QAAM,CAAE,CAAA,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;KACxD,CAAC;AACF,IAAA,UAAU,CAAC,YAAY,EAAE,KAAK,CAAC;AAC7B,QAAA,OAAO,CAAC,CAAA,EAAGD,UAAQ,CAAA,CAAA,EAAIC,QAAM,CAAE,CAAA,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AACxD,KAAA,CAAC,CAAC;AACJ,CAAA;;ACbD;;AAEG;AACU,MAAA,eAAe,GAA6B,OAAO,CAAC,iBAAiB,EAAE;IAClF,UAAU,CAAC,gBAAgB,EAAE;AAC3B,QAAA,KAAK,CAAC,EAAC,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAC,CAAC;AAC/F,QAAA,OAAO,CAAC,sCAAsC,EAC5C,KAAK,CAAC,EAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,OAAO,EAAC,CAAC,CAAC;KACxE,CAAC;IACF,UAAU,CAAC,gBAAgB,EAAE;AAC3B,QAAA,KAAK,CAAC,EAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAC,CAAC;AAC7F,QAAA,OAAO,CAAC,8CAA8C,EACpD,KAAK,CAAC,EAAC,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,OAAO,EAAC,CAAC,CAAC;KAC1E,CAAC;IACF,UAAU,CAAC,aAAa,EAAE;AACxB,QAAA,KAAK,CAAC,EAAC,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,EAAC,CAAC;AACjG,QAAA,OAAO,CAAC,sCAAsC,EAC5C,KAAK,CAAC,EAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,SAAS,EAAC,CAAC,CAAC;KAC1E,CAAC;IACF,UAAU,CAAC,aAAa,EAAE;AACxB,QAAA,KAAK,CAAC,EAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,EAAC,CAAC;AAC/F,QAAA,OAAO,CAAC,8CAA8C,EACpD,KAAK,CAAC,EAAC,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,SAAS,EAAC,CAAC,CAAC;KAC5E,CACA;AACF,CAAA;;ACzBD,MAAMC,SAAO,GAAG,eAAe,CAAC,QAAQ,CAAC;AACzC,MAAMC,QAAM,GAAI,eAAe,CAAC,OAAO,CAAC;AACxC,MAAMH,UAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC;AACxC,MAAM,MAAM,GAAG,aAAa,CAAC;AAC7B,MAAM,MAAM,GAAG,aAAa,CAAC;AAC7B,MAAM,OAAO,GAAG,WAAW,CAAC;AAC5B,MAAM,OAAO,GAAG,WAAW,CAAC;AAC5B,MAAM,YAAY,GAAG,aAAa,CAAC;AACnC,MAAM,YAAY,GAAG,aAAa,CAAC;AAEtB,MAAA,kBAAkB,GAA6B,OAAO,CAAC,oBAAoB,EAAE;IACxF,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;IACpC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;IACtC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,EAAC,OAAO,EAAE,CAAC,EAAC,CAAC,CAAC;IACzC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,EAAC,OAAO,EAAE,CAAC,EAAC,CAAC,CAAC;IAC1C,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,EAAC,OAAO,EAAE,CAAC,EAAC,CAAC,CAAC;IACjC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,EAAC,OAAO,EAAE,CAAC,EAAC,CAAC,CAAC;IACtC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,EAAC,OAAO,EAAE,CAAC,EAAC,CAAC,CAAC;IACvC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAC,OAAO,EAAE,CAAC,EAAC,CAAC,CAAC;IAClC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,EAAC,OAAO,EAAE,CAAC,EAAC,CAAC,CAAC;IACtC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,EAAC,OAAO,EAAE,CAAC,EAAC,CAAC,CAAC;IACzC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,EAAC,OAAO,EAAE,CAAC,EAAC,CAAC,CAAC;IACnC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,EAAC,OAAO,EAAE,CAAC,EAAC,CAAC,CAAC;IACvC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,EAAC,OAAO,EAAE,CAAC,EAAC,CAAC,CAAC;;IAE1C,UAAU,CAAC,aAAa,EAAE;AACxB,QAAA,KAAK,CAAC,EAAC,OAAO,EAAE,GAAG,EAAG,SAAS,EAAE,CAAG,EAAA,MAAM,EAAE,EAAE,eAAe,EAAE,UAAU,EAAC,CAAC;QAC3E,OAAO,CAAC,GAAGA,UAAQ,CAAA,EAAA,EAAKE,SAAO,CAAE,CAAA,EAAE,KAAK,CAAC,EAAC,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA,CAAE,EAAE,CAAC,CAAC;KAClF,CAAC;IACF,UAAU,CAAC,gBAAgB,EAAE;AAC3B,QAAA,KAAK,CAAC,EAAG,eAAe,EAAE,UAAU,EAAC,CAAC;QACtC,OAAO,CAAC,GAAGF,UAAQ,CAAA,EAAA,EAAKG,QAAM,CAAE,CAAA,EAAG,KAAK,CAAC,EAAC,SAAS,EAAE,CAAA,EAAG,YAAY,CAAE,CAAA,EAAE,OAAO,EAAE,GAAG,EAAC,CAAC,CAAC;KACxF,CAAC;IACF,UAAU,CAAC,kBAAkB,EAAE;AAC7B,QAAA,KAAK,CAAC,EAAC,OAAO,EAAE,GAAG,EAAG,SAAS,EAAE,CAAG,EAAA,MAAM,EAAE,EAAE,eAAe,EAAE,UAAU,EAAC,CAAC;QAC3E,OAAO,CAAC,GAAGH,UAAQ,CAAA,EAAA,EAAKE,SAAO,CAAE,CAAA,EAAE,KAAK,CAAC,EAAC,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA,CAAE,EAAE,CAAC,CAAC;KAClF,CAAC;IACF,UAAU,CAAC,qBAAqB,EAAE;QAChC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,UAAU,EAAC,CAAC;QACjD,OAAO,CAAC,GAAGF,UAAQ,CAAA,EAAA,EAAKG,QAAM,CAAE,CAAA,EAAG,KAAK,CAAC,EAAC,SAAS,EAAE,CAAA,EAAG,YAAY,CAAE,CAAA,EAAE,OAAO,EAAE,GAAG,EAAC,CAAC,CAAC;KACxF,CAAC;IACF,UAAU,CAAC,mBAAmB,EAAE;AAC9B,QAAA,KAAK,CAAC,EAAC,OAAO,EAAE,GAAG,EAAG,SAAS,EAAE,CAAG,EAAA,MAAM,EAAE,EAAE,eAAe,EAAE,UAAU,EAAC,CAAC;QAC3E,OAAO,CAAC,GAAGH,UAAQ,CAAA,EAAA,EAAKE,SAAO,CAAE,CAAA,EAAE,KAAK,CAAC,EAAC,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA,CAAE,EAAE,CAAC,CAAC;KAClF,CAAC;IACF,UAAU,CAAC,sBAAsB,EAAE;QACjC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,UAAU,EAAC,CAAC;QACjD,OAAO,CAAC,GAAGF,UAAQ,CAAA,EAAA,EAAKG,QAAM,CAAE,CAAA,EAAG,KAAK,CAAC,EAAC,SAAS,EAAE,CAAA,EAAG,YAAY,CAAE,CAAA,EAAE,OAAO,EAAE,GAAG,EAAC,CAAC,CAAC;KACxF,CAAC;;IAGF,UAAU,CAAC,UAAU,EAAE;AACrB,QAAA,KAAK,CAAC,EAAC,OAAO,EAAE,GAAG,EAAG,SAAS,EAAE,CAAG,EAAA,MAAM,EAAE,EAAE,eAAe,EAAE,sBAAsB,EAAC,CAAC;QACvF,OAAO,CAAC,GAAGH,UAAQ,CAAA,EAAA,EAAKE,SAAO,CAAE,CAAA,EAAE,KAAK,CAAC,EAAC,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA,CAAE,GAAG,CAAC,CAAC;KACnF,CAAC;IACF,UAAU,CAAC,aAAa,EAAE;QACxB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,sBAAsB,EAAC,CAAC;QAC7D,OAAO,CAAC,GAAGF,UAAQ,CAAA,EAAA,EAAKG,QAAM,CAAE,CAAA,EAAG,KAAK,CAAC,EAAC,SAAS,EAAE,CAAA,EAAG,YAAY,CAAE,CAAA,EAAE,OAAO,EAAE,GAAG,EAAC,CAAC,CAAC;KACxF,CAAC;IACF,UAAU,CAAC,eAAe,EAAE;AAC1B,QAAA,KAAK,CAAC,EAAC,OAAO,EAAE,GAAG,EAAG,SAAS,EAAE,CAAG,EAAA,MAAM,EAAE,EAAE,eAAe,EAAE,sBAAsB,EAAC,CAAC;QACvF,OAAO,CAAC,GAAGH,UAAQ,CAAA,EAAA,EAAKE,SAAO,CAAE,CAAA,EAAE,KAAK,CAAC,EAAC,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA,CAAE,GAAG,CAAC,CAAC;KACnF,CAAC;IACF,UAAU,CAAC,kBAAkB,EAAE;QAC7B,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,sBAAsB,EAAC,CAAC;QAC7D,OAAO,CAAC,GAAGF,UAAQ,CAAA,EAAA,EAAKG,QAAM,CAAE,CAAA,EAAG,KAAK,CAAC,EAAC,SAAS,EAAE,CAAA,EAAG,YAAY,CAAE,CAAA,EAAE,OAAO,EAAE,GAAG,EAAC,CAAC,CAAC;KACxF,CAAC;IACF,UAAU,CAAC,gBAAgB,EAAE;AAC3B,QAAA,KAAK,CAAC,EAAC,OAAO,EAAE,GAAG,EAAG,SAAS,EAAE,CAAG,EAAA,MAAM,EAAE,EAAE,eAAe,EAAE,sBAAsB,EAAC,CAAC;QACvF,OAAO,CAAC,GAAGH,UAAQ,CAAA,EAAA,EAAKE,SAAO,CAAE,CAAA,EAAE,KAAK,CAAC,EAAC,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA,CAAE,GAAG,CAAC,CAAC;KACnF,CAAC;IACF,UAAU,CAAC,mBAAmB,EAAE;QAC9B,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,sBAAsB,EAAC,CAAC;QAC7D,OAAO,CAAC,GAAGF,UAAQ,CAAA,EAAA,EAAKG,QAAM,CAAE,CAAA,EAAG,KAAK,CAAC,EAAC,SAAS,EAAE,CAAA,EAAG,YAAY,CAAE,CAAA,EAAE,OAAO,EAAE,GAAG,EAAC,CAAC,CAAC;KACxF,CAAC;;IAGF,UAAU,CAAC,WAAW,EAAE;AACtB,QAAA,KAAK,CAAC,EAAC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,CAAG,EAAA,MAAM,EAAE,EAAE,eAAe,EAAE,kBAAkB,EAAC,CAAC;QAClF,OAAO,CAAC,GAAGH,UAAQ,CAAA,EAAA,EAAKE,SAAO,CAAE,CAAA,EAAE,KAAK,CAAC,EAAC,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA,CAAE,EAAE,CAAC,CAAC;KAClF,CAAC;IACF,UAAU,CAAC,cAAc,EAAE;QACzB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,kBAAkB,EAAC,CAAC;QACzD,OAAO,CAAC,GAAGF,UAAQ,CAAA,EAAA,EAAKG,QAAM,CAAE,CAAA,EAAG,KAAK,CAAC,EAAC,SAAS,EAAE,CAAA,EAAG,YAAY,CAAE,CAAA,EAAI,OAAO,EAAE,GAAG,EAAC,CAAC,CAAC;KAC1F,CAAC;IACF,UAAU,CAAC,eAAe,EAAE;AAC1B,QAAA,KAAK,CAAC,EAAC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,CAAG,EAAA,MAAM,EAAE,EAAE,eAAe,EAAE,kBAAkB,EAAC,CAAC;QAClF,OAAO,CAAC,GAAGH,UAAQ,CAAA,EAAA,EAAKE,SAAO,CAAE,CAAA,EAAE,KAAK,CAAC,EAAC,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA,CAAE,EAAE,CAAC,CAAC;KAClF,CAAC;IACF,UAAU,CAAC,kBAAkB,EAAE;QAC7B,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,kBAAkB,EAAC,CAAC;QACzD,OAAO,CAAC,GAAGF,UAAQ,CAAA,EAAA,EAAKG,QAAM,CAAE,CAAA,EAAG,KAAK,CAAC,EAAC,SAAS,EAAE,CAAA,EAAG,YAAY,CAAE,CAAA,EAAI,OAAO,EAAE,GAAG,EAAC,CAAC,CAAC;KAC1F,CAAC;IACF,UAAU,CAAC,kBAAkB,EAAE;AAC7B,QAAA,KAAK,CAAC,EAAC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,CAAG,EAAA,MAAM,EAAE,EAAE,eAAe,EAAE,kBAAkB,EAAC,CAAC;QAClF,OAAO,CAAC,GAAGH,UAAQ,CAAA,EAAA,EAAKE,SAAO,CAAE,CAAA,EAAE,KAAK,CAAC,EAAC,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA,CAAE,EAAE,CAAC,CAAC;KAClF,CAAC;IACF,UAAU,CAAC,qBAAqB,EAAE;QAChC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,kBAAkB,EAAC,CAAC;QACzD,OAAO,CAAC,GAAGF,UAAQ,CAAA,EAAA,EAAKG,QAAM,CAAE,CAAA,EAAG,KAAK,CAAC,EAAC,SAAS,EAAE,CAAA,EAAG,YAAY,CAAE,CAAA,EAAI,OAAO,EAAE,GAAG,EAAC,CAAC,CAAC;KAC1F,CAAC;;IAEF,UAAU,CAAC,YAAY,EAAE;AACvB,QAAA,KAAK,CAAC,EAAC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,CAAG,EAAA,MAAM,EAAE,EAAE,eAAe,EAAE,WAAW,EAAC,CAAC;QAC3E,OAAO,CAAC,GAAGH,UAAQ,CAAA,EAAA,EAAKE,SAAO,CAAE,CAAA,EAAE,KAAK,CAAC,EAAC,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA,CAAE,EAAC,CAAC,CAAC;KACjF,CAAC;IACF,UAAU,CAAC,eAAe,EAAE;QAC1B,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,WAAW,EAAC,CAAC;QAClD,OAAO,CAAC,GAAGF,UAAQ,CAAA,EAAA,EAAKG,QAAM,CAAE,CAAA,EAAG,KAAK,CAAC,EAAC,SAAS,EAAE,CAAA,EAAG,YAAY,CAAE,CAAA,EAAI,OAAO,EAAE,CAAC,EAAC,CAAC,CAAC;KACxF,CAAC;IACF,UAAU,CAAC,gBAAgB,EAAE;AAC3B,QAAA,KAAK,CAAC,EAAC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,CAAG,EAAA,MAAM,EAAE,EAAE,eAAe,EAAE,WAAW,EAAC,CAAC;QAC3E,OAAO,CAAC,GAAGH,UAAQ,CAAA,EAAA,EAAKE,SAAO,CAAE,CAAA,EAAE,KAAK,CAAC,EAAC,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA,CAAE,EAAC,CAAC,CAAC;KACjF,CAAC;IACF,UAAU,CAAC,mBAAmB,EAAE;QAC9B,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,WAAW,EAAC,CAAC;QAClD,OAAO,CAAC,GAAGF,UAAQ,CAAA,EAAA,EAAKG,QAAM,CAAE,CAAA,EAAG,KAAK,CAAC,EAAC,SAAS,EAAE,CAAA,EAAG,YAAY,CAAE,CAAA,EAAI,OAAO,EAAE,GAAG,EAAC,CAAC,CAAC;KAC1F,CAAC;IACF,UAAU,CAAC,mBAAmB,EAAE;AAC9B,QAAA,KAAK,CAAC,EAAC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,CAAG,EAAA,MAAM,EAAE,EAAE,eAAe,EAAE,WAAW,EAAC,CAAC;QAC3E,OAAO,CAAC,GAAGH,UAAQ,CAAA,EAAA,EAAKE,SAAO,CAAE,CAAA,EAAE,KAAK,CAAC,EAAC,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA,CAAE,EAAC,CAAC,CAAC;KACjF,CAAC;IACF,UAAU,CAAC,sBAAsB,EAAE;QACjC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,WAAW,EAAC,CAAC;QAClD,OAAO,CAAC,GAAGF,UAAQ,CAAA,EAAA,EAAKG,QAAM,CAAE,CAAA,EAAG,KAAK,CAAC,EAAC,SAAS,EAAE,CAAA,EAAG,YAAY,CAAE,CAAA,EAAI,OAAO,EAAE,GAAG,EAAC,CAAC,CAAC;KAC1F,CAAC;AACH,CAAA;;AC7HD,MAAM,SAAS,GAAG,eAAe,CAAC,WAAW,CAAC;AAC9C,MAAMH,UAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC;AAE3B,MAAA,cAAc,GAA6B,OAAO,CAAC,UAAU,EAAE;AAC1E,IAAA,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;AACzE,IAAA,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;IACxE,UAAU,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAG,EAAAA,UAAQ,CAAI,CAAA,EAAA,SAAS,CAAE,CAAA,CAAC,CAAC;IACxE,UAAU,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAG,EAAAA,UAAQ,CAAI,CAAA,EAAA,SAAS,CAAE,CAAA,CAAC,CAAC;AACzE,CAAA,EAAE;AAEU,MAAA,2BAA2B,GAA6B,OAAO,CAAC,uBAAuB,EAAE;IACpG,UAAU,CAAC,QAAQ,EAAE;AACnB,QAAA,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;QACpD,OAAO,CAAC,GAAGA,UAAQ,CAAA,CAAA,EAAI,SAAS,CAAE,CAAA,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;KAC5F,CAAC;IACF,UAAU,CAAC,QAAQ,EAAE;AACnB,QAAA,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;QACtD,OAAO,CAAC,GAAGA,UAAQ,CAAA,CAAA,EAAI,SAAS,CAAE,CAAA,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;KAC1F,CAAC;AACH,CAAA,EAAE;AAEU,MAAA,cAAc,GAA6B,OAAO,CAAC,gBAAgB,EAAE;IAChF,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AACzC,IAAA,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;IACxC,UAAU,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAS,MAAA,EAAA,eAAe,CAAC,WAAW,CAAE,CAAA,CAAC,CAAC;IACpF,UAAU,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAS,MAAA,EAAA,eAAe,CAAC,WAAW,CAAE,CAAA,CAAC,CAAC;AACrF,CAAA;;AC1BD,MAAMG,QAAM,GAAG,eAAe,CAAC,OAAO,CAAC;AACvC,MAAMD,SAAO,GAAG,eAAe,CAAC,QAAQ,CAAC;AACzC,MAAMF,UAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC;AAC3B,MAAA,SAAS,GAA6B,OAAO,CAAC,WAAW,EAAE;IACtE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,4BAA4B,EAAE,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IACxH,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,8BAA8B,EAAE,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAC5H,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,8BAA8B,EAAE,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAC3H,UAAU,CAAC,gBAAgB,EAAE;QAC3B,KAAK,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,8BAA8B,EAAE,CAAC;AAClE,QAAA,OAAO,CAAC,CAAG,EAAAA,UAAQ,CAAI,CAAA,EAAAE,SAAO,EAAE,CAAC;KAClC,CAAC;IACF,UAAU,CAAC,gBAAgB,EAAE;QAC3B,OAAO,CAAC,CAAG,EAAAF,UAAQ,CAAI,CAAA,EAAAG,QAAM,CAAE,CAAA,EAC7B,KAAK,CAAC,EAAE,SAAS,EAAE,8BAA8B,EAAE,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;KAC9G,CAAC;IACF,UAAU,CAAC,aAAa,EAAE;AACxB,QAAA,KAAK,CAAC,EAAE,SAAS,EAAE,6BAA6B,EAAE,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAC9G,QAAA,OAAO,CAAC,CAAG,EAAAH,UAAQ,CAAI,CAAA,EAAAE,SAAO,EAAE,CAAC;KAAC,CAAC;IACrC,UAAU,CAAC,aAAa,EAAE;QACxB,OAAO,CAAC,CAAG,EAAAF,UAAQ,CAAI,CAAA,EAAAG,QAAM,CAAE,CAAA,EAC7B,KAAK,CAAC,EAAE,SAAS,EAAE,6BAA6B,EAAE,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;KAC/G,CAAC;AAAC,CAAA;;ACrBL,MAAMA,QAAM,GAAG,eAAe,CAAC,OAAO,CAAC;AACvC,MAAMD,SAAO,GAAG,eAAe,CAAC,QAAQ,CAAC;AACzC,MAAMF,UAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC;AAC3B,MAAA,UAAU,GAA6B,OAAO,CAAC,YAAY,EAAE;IACxE,UAAU,CAAC,QAAQ,EAAE;QACnB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;AAC9C,QAAA,OAAO,CAAC,CAAG,EAAAA,UAAQ,IAAIG,QAAM,CAAA,CAAE,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;KAC/E,CAAC;IACF,UAAU,CAAC,QAAQ,EAAE;;AAEnB,QAAA,OAAO,CAAC,CAAG,EAAAH,UAAQ,IAAIE,SAAO,CAAA,CAAE,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;KAClF,CAAC;AACH,CAAA;;ACbD,MAAMC,QAAM,GAAG,eAAe,CAAC,OAAO,CAAC;AACvC,MAAMD,SAAO,GAAG,eAAe,CAAC,QAAQ,CAAC;AACzC,MAAMF,UAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC;AAE3B,MAAA,QAAQ,GAA6B,OAAO,CAAC,UAAU,EAAE;AACpE,IAAA,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AACzE,IAAA,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AACnE,IAAA,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;AAC3E,IAAA,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;;IAEpE,UAAU,CAAC,iBAAiB,EAAE;QAC5B,KAAK,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;AACvD,QAAA,OAAO,CAAC,CAAG,EAAAA,UAAQ,IAAIE,SAAO,CAAA,CAAE,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;KACrF,CAAC;IACF,UAAU,CAAC,kBAAkB,EAAE;QAC7B,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;AACtD,QAAA,OAAO,CAAC,CAAG,EAAAF,UAAQ,IAAIE,SAAO,CAAA,CAAE,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;KACrF,CAAC;AACF,IAAA,UAAU,CAAC,sBAAsB,EAAE,CAAC,OAAO,CAAC,CAAG,EAAAF,UAAQ,CAAI,CAAA,EAAAE,SAAO,CAAE,CAAA,CAAC,CAAC,CAAC;AACvE,IAAA,UAAU,CAAC,wBAAwB,EAAE,CAAC,OAAO,CAAC,CAAG,EAAAF,UAAQ,CAAI,CAAA,EAAAE,SAAO,CAAE,CAAA,CAAC,CAAC,CAAC;AACzE,IAAA,UAAU,CAAC,sBAAsB,EAAE,CAAC,OAAO,CAAC,CAAG,EAAAF,UAAQ,CAAI,CAAA,EAAAG,QAAM,CAAE,CAAA,CAAC,CAAC,CAAC;AACtE,IAAA,UAAU,CAAC,wBAAwB,EAAE,CAAC,OAAO,CAAC,CAAG,EAAAH,UAAQ,CAAI,CAAA,EAAAG,QAAM,CAAE,CAAA,CAAC,CAAC,CAAC;AACzE,CAAA;;ACxBD;AAWa,MAAA,SAAS,GAA6B,OAAO,CAAC,WAAW,EAAE;IACtE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC,CAAC;AACtG,IAAA,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC,CAAC;IAChG,UAAU,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC1D,UAAU,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAC3D,CAAA;;AChBD;;AAEG;AAGH,MAAM,IAAI,GAAG,OAAO,MAAM,KAAK,WAAW,KAAK,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC7F,IAAA,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAEtD,MAAM,SAAS,GAAG;AAChB,IAAA,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAC,SAAS,EAAE,UAAU,EAAE,eAAe,EAAE,SAAS,EAAC,CAAC,CAAC;AACzE,IAAA,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAC,SAAS,EAAE,UAAU,EAAE,eAAe,EAAE,SAAS,EAAC,CAAC,CAAC;IACvE,UAAU,CAAC,YAAY,EAAE;QACvB,OAAO,CAAC,sCAAsC,CAAC;KAAC,CAAC;IACnD,UAAU,CAAC,YAAY,EAAE;QACvB,OAAO,CAAC,8CAA8C,CAAC;KAAC,CAAC;CAC5D,CAAC;AAEF,IAAI,IAAI,EAAE;IACR,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACzB,CAAC;AAEY,MAAA,QAAQ,GAA6B,OAAO,CAAC,UAAU,EAAE,SAAS;;SCrB/D,aAAa,CAAC,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,OAAO,GAAG,EAAE,EAAE,UAAU,GAAG,GAAG,EAAE,QAAS,EAAA;AAC9G,IAAA,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,CAAC,MAAM,EAAE;QAC/E,OAAO;KACR;AACD,IAAA,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAClC,MAAM,gBAAgB,GAAG,MAAK;QAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc,CAAC;AAChD,QAAA,IAAI,WAAW,GAAG,OAAO,GAAG,UAAU,EAAE;AACtC,YAAA,MAAM,CAAC,SAAS,GAAG,cAAc,CAAC;AAClC,YAAA,IAAI,MAAM,KAAK,QAAQ,CAAC,eAAe,EAAE;;AAEvC,gBAAA,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,cAAc,CAAC;aAC1C;YACD,IAAI,QAAQ,EAAE;AACZ,gBAAA,QAAQ,EAAE,CAAC;aACZ;SACF;aAAM;AACL,YAAA,MAAM,YAAY,GAAG,cAAc,CAAC,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;AAC9F,YAAA,MAAM,CAAC,SAAS,GAAG,YAAY,CAAC;AAChC,YAAA,IAAI,MAAM,KAAK,QAAQ,CAAC,eAAe,EAAE;AACvC,gBAAA,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC;aACxC;YACD,UAAU,CAAC,MAAK;gBACd,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;aACzC,EAAE,OAAO,CAAC,CAAC;SACb;AACH,KAAC,CAAC;IACF,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;AAC1C,CAAC;AAEK,SAAU,cAAc,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAA;AACvE,IAAA,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IACjB,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACrB,IAAA,IAAI,EAAE,GAAG,CAAC,EAAE;AACV,QAAA,QAAQ,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE;KACtC;SAAM;;QAEL,QAAQ,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE;KACnD;AACH;;ACpCA,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,CAAC;AACzC,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC;AACvC,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC;AACtC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC;AAE3B,MAAA,kBAAkB,GAA6B,OAAO,CAAC,oBAAoB,EAAE;AACxF,IAAA,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,CAAC;AACtE,IAAA,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;AACtD,IAAA,UAAU,CAAC,YAAY,EAAE,KAAK,CAAC;AAC7B,QAAA,OAAO,CAAC,CAAA,EAAG,QAAQ,CAAA,CAAA,EAAI,OAAO,CAAE,CAAA,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AACxD,QAAA,OAAO,CAAC,CAAA,EAAG,QAAQ,CAAA,CAAA,EAAI,MAAM,CAAE,CAAA,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;AAChE,KAAA,CAAC,CAAC;AACH,IAAA,UAAU,CAAC,YAAY,EAAE,KAAK,CAAC;AAC7B,QAAA,OAAO,CAAC,CAAA,EAAG,QAAQ,CAAA,CAAA,EAAI,MAAM,CAAE,CAAA,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;AACzD,QAAA,OAAO,CAAC,CAAA,EAAG,QAAQ,CAAA,CAAA,EAAI,MAAM,CAAE,CAAA,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,CAAC;AAC5E,KAAA,CAAC,CAAC;AACJ,CAAA;;ACjBK,SAAU,gBAAgB,CAAC,GAAe,EAAA;IAC9C,IAAI,GAAG,EAAE;AACP,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE;AAClE,YAAA,MAAM,SAAS,GAAG,GAAG,CAAC,aAAa,CAAC,aAAa,CAAC;YAClD,IAAI,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE;AACtE,gBAAA,OAAO,GAAG,CAAC,aAAa,CAAC,aAAa,CAAC;aACxC;iBAAM;gBACL,OAAO;aACR;SACF;aAAM;YACL,OAAO,GAAG,CAAC,aAAa,CAAC;SAC1B;KACF;AACH,CAAC;AAEK,SAAU,gBAAgB,CAAC,GAAe,EAAA;AAC9C,IAAA,MAAM,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;AACxC,IAAA,IAAI,SAAS,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,4BAA4B,CAAC,EAAE;AAC5E,QAAA,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;KACvD;AACH,CAAC;AAEK,SAAU,qBAAqB,CAAC,GAAe,EAAA;AACnD,IAAA,MAAM,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,4BAA4B,CAAC,EAAE;AAC3E,QAAA,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC;KAC1D;AACH;;ACxBa,MAAA,4BAA4B,GAErC;AACF,IAAA,SAAS,EAAE;AACT,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,QAAQ,EAAE,OAAO;AACjB,QAAA,QAAQ,EAAE,KAAK;AAChB,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,QAAQ,EAAE,OAAO;AACjB,QAAA,QAAQ,EAAE,QAAQ;AACnB,KAAA;AACD,IAAA,MAAM,EAAE;AACN,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,QAAQ,EAAE,QAAQ;AACnB,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,QAAQ,EAAE,KAAK;AAChB,KAAA;AACD,IAAA,UAAU,EAAE;AACV,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,QAAQ,EAAE,KAAK;AAChB,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,QAAQ,EAAE,QAAQ;AACnB,KAAA;;;ACzCG,SAAU,WAAW,CAAC,IAAU,EAAA;AACpC,IAAA,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AACxD,CAAC;AAEe,SAAA,SAAS,CAAC,IAAS,EAAE,OAAgB,EAAA;IACnD,IAAI,CAAC,IAAI,EAAE;AACT,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;AACxB,QAAA,OAAO,IAAI,CAAC;KACb;AACD,IAAA,MAAM,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC;AACnE,UAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC3B,IAAA,OAAO,WAAW,CAAC,UAAU,CAAC,GAAG,UAAU,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/D,CAAC;SAEe,UAAU,CAAC,IAAU,EAAE,OAAO,GAAG,kBAAkB,EAAA;AACjE,IAAA,OAAO,WAAW,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;AAChE;;MCjBa,oBAAoB,CAAA;AAE/B,IAAA,KAAK,CAAC,IAAS,EAAE,OAAgB,EAAE,MAAe,EAAA;AAChD,QAAA,OAAO,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACjC;AAED,IAAA,MAAM,CAAC,IAAU,EAAE,OAAgB,EAAE,MAAe,EAAA;QAClD,OAAO,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;KACrD;AAED,IAAA,cAAc,CAAC,IAAU,EAAE,OAAgB,EAAE,MAAe,EAAA;QAC1D,OAAO,UAAU,CAAC,wBAAwB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;KACnE;AACF;;ACde,SAAA,oBAAoB,CAAC,UAAsB,EAAE,SAAoB,EAAA;AAC/E,IAAA,IAAI,CAAC,UAAU,CAAC,aAAa,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,qBAAqB,EAAE;AAChF,QAAA,OAAO,EAAE,CAAC;KACX;IAED,MAAM,IAAI,GAAG,UAAU,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;AAC9D,IAAA,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;AAC9B,IAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;AAC5B,IAAA,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC;AACxC,IAAA,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC;IAEtC,OAAO;AACL,QAAA,IAAI,EAAE,CAAC,QAAQ,GAAG,QAAQ,IAAI,CAAC;AAC/B,QAAA,GAAG,EAAE,CAAC,SAAS,GAAG,SAAS,IAAI,CAAC;KACjC,CAAC;AACJ,CAAC;AAEK,SAAU,sBAAsB,CAAC,MAAc,EAAA;IACnD,IAAI,MAAM,EAAE;QACV,MAAM,CAAC,eAAe,EAAE,CAAC;KAC1B;AACH;;SCxBgB,aAAa,CAAC,GAAW,EAAE,YAAoB,EAAE,SAAiB,EAAA;AAChF,IAAA,YAAY,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,CAAC;IACnD,SAAS,GAAG,MAAM,CAAC,CAAC,OAAO,SAAS,KAAK,WAAW,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,GAAG,GAAG,CAAC,CAAC;IAC1G,GAAG,GAAG,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,IAAI,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAC7D,IAAA,IAAI,GAAG,CAAC,MAAM,IAAI,YAAY,EAAE;AAC9B,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;KACpB;SAAM;AACL,QAAA,YAAY,GAAG,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC;AACzC,QAAA,IAAI,YAAY,GAAG,SAAS,CAAC,MAAM,EAAE;YACnC,SAAS,IAAI,SAAS,CAAC,MAAM,CAAC,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;SAChE;AACD,QAAA,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;KACvD;AACH;;MCiDa,sBAAsB,GAAG,IAAI,cAAc,CAAoB,qBAAqB;;ACzDjG,MAAM,SAAS,GAAG,UAAU,KAAW,EAAA;IACrC,OAAO,KAAK,KAAK,SAAS,CAAC;AAC7B,CAAC,CAAC;MAKW,gBAAgB,CAAA;AAI3B,IAAA,WAAA,CAAwD,aAAiC,EAAA;AAHjF,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,OAAO,EAA2B,CAAC;AAI9D,QAAA,IAAI,CAAC,MAAM,GAAG,aAAa,IAAI,EAAE,CAAC;KACnC;AAED,IAAA,qBAAqB,CAAiC,aAAgB,EAAA;AACpE,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;KACnC;AAED,IAAA,eAAe,CAAuC,GAAM,EAAA;QAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;AAC9C,QAAA,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;AACpC,QAAA,OAAO,SAAS,CAAC;KAClB;AAED,IAAA,gCAAgC,CAAC,aAAmC,EAAA;QAClE,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAC7B,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,aAAa,CAAC,EAClC,KAAK,CAAC,SAAS,CAAC,CACjB,CAAC;KACH;IAED,GAAG,CAAiC,aAAgB,EAAE,KAA2B,EAAA;AAC/E,QAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;AACzE,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KACzC;AA5BU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,kBAIK,sBAAsB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAJ3C,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFf,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAKc,QAAQ;;0BAAI,MAAM;2BAAC,sBAAsB,CAAA;;AA2BlD,SAAU,UAAU,CAAI,WAAwB,EAAA;AACpD,IAAA,OAAO,SAAS,eAAe,CAAC,MAAW,EAAE,QAAa,EAAE,kBAA+C,EAAA;AACzG,QAAA,MAAM,eAAe,GAAG,CAAsB,mBAAA,EAAA,QAAQ,EAAE,CAAC;AACzD,QAAA,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE;AACjE,YAAA,OAAO,CAAC,IAAI,CAAC,aAAa,eAAe,CAAA,iEAAA,CAAmE,CAAC,CAAC;SAC/G;AACD,QAAA,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,eAAe,EAAE;AAC7C,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,UAAU,EAAE,KAAK;AAClB,SAAA,CAAC,CAAC;QACH,OAAO;YACL,GAAG,GAAA;gBACD,MAAM,aAAa,GAAG,kBAAkB,EAAE,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;AAC5G,gBAAA,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,eAAe,IAAI,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzE,gBAAA,IAAI,cAAc,IAAI,SAAS,CAAC,aAAa,CAAC,EAAE;AAC9C,oBAAA,OAAO,aAAa,CAAC;iBACtB;AACD,gBAAA,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;AACzD,oBAAA,OAAO,aAAa,CAAC;iBACtB;AAED,gBAAA,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;gBACjC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gBACrC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AACrC,gBAAA,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AAE1B,gBAAA,MAAM,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AACjE,gBAAA,MAAM,WAAW,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;gBAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;AAC/D,gBAAA,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;AACzC,gBAAA,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,SAAS,GAAG,aAAa,CAAC;AAChE,gBAAA,MAAM,GAAG,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG,WAAW,GAAG,MAAM,CAAC;AAC1D,gBAAA,OAAO,GAAG,CAAC;aACZ;AACD,YAAA,GAAG,CAAC,KAAS,EAAA;gBACX,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC;AAClD,gBAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3E,gBAAA,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,GAAG,EAAE;oBAChD,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;iBAC1C;AACD,gBAAA,IAAI,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC;aAC/B;AACD,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,UAAU,EAAE,IAAI;SACjB,CAAC;AACJ,KAAC,CAAC;AACJ;;MChFa,kBAAkB,CAAA;AAU7B,IAAA,WAAA,CAAoB,aAA2B,EAAU,MAAkB,EAA4B,GAAQ,EAAA;QAA3F,IAAa,CAAA,aAAA,GAAb,aAAa,CAAc;QAAU,IAAM,CAAA,MAAA,GAAN,MAAM,CAAY;QAA4B,IAAG,CAAA,GAAA,GAAH,GAAG,CAAK;QATjF,IAAO,CAAA,OAAA,GAAG,QAAQ,CAAC;AAGjD;;AAEG;QACM,IAAc,CAAA,cAAA,GAAG,uBAAuB,CAAC;AAIhD,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC;KAC1B;AACD,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;KACpC;IACD,MAAM,CAAC,KAAa,EAAE,IAAY,EAAA;AAChC,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AACjB,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;SAC7B;aAAM;AACL,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;AAC5C,YAAA,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;AAC9B,YAAA,SAAS,CAAC,WAAW,GAAG,KAAK,CAAC;SAC/B;KACF;AACD,IAAA,aAAa,CAAC,SAAS,EAAA;AACrB,QAAA,OAAO,SAAS,CAAC,aAAa,EAAE,EAAE;AAChC,YAAA,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;SAC7C;KACF;IAED,SAAS,CAAC,KAAa,EAAE,IAAY,EAAA;AACnC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;AAC5C,QAAA,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;AAC9B,QAAA,MAAM,GAAG,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,OAAO,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAC;AACrE,QAAA,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC;QACvD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACjC,QAAA,MAAM,eAAe,GAAG,CAAC,IAAI,KAAI;YAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AACpD,YAAA,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;AAC/C,YAAA,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;AAC3B,YAAA,OAAO,OAAO,CAAC;AACjB,SAAC,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,KAAI;AAC9B,YAAA,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,EAAE;AACnB,gBAAA,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;aAC9D;iBAAM;gBACL,SAAS,CAAC,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;aACjD;AACH,SAAC,CAAC,CAAC;KACJ;AAnDU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,wEAUwD,QAAQ,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAVlF,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,+MAJnB,CAAE,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,2DAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAID,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EACb,QAAA,EAAA,CAAA,CAAE,EAEK,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,MAAA,EAAA,CAAA,2DAAA,CAAA,EAAA,CAAA;;0BAY+B,MAAM;2BAAC,QAAQ,CAAA;yCAT/D,OAAO,EAAA,CAAA;sBAApC,WAAW;uBAAC,eAAe,CAAA;gBACnB,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAIG,cAAc,EAAA,CAAA;sBAAtB,KAAK;;;MCRK,eAAe,CAAA;+GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,EAHX,YAAA,EAAA,CAAA,kBAAkB,CADvB,EAAA,OAAA,EAAA,CAAA,YAAY,aAEZ,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YAJhB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIX,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,YAAY,EAAE,CAAC,kBAAkB,CAAC;oBAClC,OAAO,EAAE,CAAC,kBAAkB,CAAC;AAC9B,iBAAA,CAAA;;;MCHY,cAAc,CAAA;IACzB,SAAS,CAAC,OAAkC,EAAE,eAAiC,EAAA;QAC7E,OAAO,OAAO,YAAY,WAAW,GAAG,OAAO,GAAG,eAAe,CAAC;KACnE;+GAHU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAd,cAAc,EAAA,IAAA,EAAA,iBAAA,EAAA,CAAA,CAAA,EAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,iBAAiB;AACxB,iBAAA,CAAA;;;MCGY,gBAAgB,CAAA;+GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAAhB,gBAAgB,EAAA,YAAA,EAAA,CAHZ,cAAc,CAAA,EAAA,OAAA,EAAA,CACnB,cAAc,CAAA,EAAA,CAAA,CAAA,EAAA;gHAEb,gBAAgB,EAAA,CAAA,CAAA,EAAA;;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAJ5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,cAAc,CAAC;oBAC9B,OAAO,EAAE,CAAC,cAAc,CAAC;AAC1B,iBAAA,CAAA;;;MCDY,iBAAiB,CAAA;AAmB5B,IAAA,WAAA,CAAoB,EAAc,EAAA;QAAd,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;;QAjBzB,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;;QAEvB,IAAW,CAAA,WAAA,GAAmB,MAAM,CAAC;;QAMrC,IAAS,CAAA,SAAA,GAA8B,UAAU,CAAC;;AAEjD,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAO,CAAC;;QAK7C,IAAU,CAAA,UAAA,GAAG,CAAC,CAAC;KAEuB;AAEtC,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;AAClE,QAAA,IAAI,OAAO,EAAE,cAAc,EAAE;AAC3B,YAAA,IAAI,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE;gBACvC,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBACjD,IAAI,iBAAiB,GAAG,WAAW,CAAC;AACpC,gBAAA,IAAI,IAAI,CAAC,WAAW,KAAK,MAAM,EAAE;AAC/B,oBAAA,iBAAiB,GAAG,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,oBAAoB,EAAE,CAAC,CAAC;iBACjF;AACD,gBAAA,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;aAC1F;AAAM,iBAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAClC,gBAAA,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC;aACvC;iBAAM;gBACL,OAAO;aACR;SACF;KACF;IAED,eAAe,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE;YAC9B,UAAU,CAAC,MAAK;AACd,gBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;AACjE,gBAAA,MAAM,SAAS,GAAG,EAAE,MAAM,EAAE,CAAC;AAC7B,gBAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AAC7B,aAAC,CAAC,CAAC;SACJ;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC3B,YAAA,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC;SACvC;KACF;AAED,IAAA,UAAU,CAAC,KAAK,EAAA;QACd,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC;AAC9F,QAAA,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC;AACjG,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE;YAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;AAC3D,YAAA,MAAM,YAAY,GAChB,IAAI,CAAC,SAAS,KAAK,UAAU;AAC3B,kBAAE,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,YAAY,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU;AAC7D,kBAAE,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,WAAW,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;YACnE,IAAI,YAAY,EAAE;AAChB,gBAAA,IAAI,IAAI,CAAC,UAAU,EAAE;oBACnB,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC;iBAC7C;AACD,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1B,gBAAA,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC;aACvC;SACF;aAAM;AACL,YAAA,MAAM,YAAY,GAChB,IAAI,CAAC,SAAS,KAAK,UAAU;AAC3B,kBAAE,SAAS,KAAK,CAAC,IAAI,SAAS,GAAG,YAAY,GAAG,IAAI,CAAC,UAAU,IAAI,YAAY;AAC/E,kBAAE,UAAU,KAAK,CAAC,IAAI,UAAU,GAAG,WAAW,GAAG,IAAI,CAAC,UAAU,IAAI,WAAW,CAAC;YACpF,IAAI,YAAY,EAAE;AAChB,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC3B;SACF;KACF;+GAhFU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAjB,iBAAiB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,SAAS;mBAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAA;+EAG3B,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAEG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAEG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAEG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAEG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAEI,QAAQ,EAAA,CAAA;sBAAjB,MAAM;;;MCRI,cAAc,CAAA;+GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,EAHV,YAAA,EAAA,CAAA,iBAAiB,CADtB,EAAA,OAAA,EAAA,CAAA,YAAY,aAEZ,iBAAiB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YAJf,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIX,cAAc,EAAA,UAAA,EAAA,CAAA;kBAL1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,YAAY,EAAE,CAAC,iBAAiB,CAAC;oBACjC,OAAO,EAAE,CAAC,iBAAiB,CAAC;AAC7B,iBAAA,CAAA;;;MCDY,0BAA0B,CAAA;AAerC,IAAA,WAAA,CAAoB,OAAmB,EAAA;QAAnB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;QAb9B,IAAY,CAAA,YAAA,GAAG,CAAC,CAAC;QACjB,IAAS,CAAA,SAAA,GAAG,CAAC,CAAC;QAEd,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;AAClB,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,YAAY,EAAe,CAAC;AACvC,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,YAAY,EAAe,CAAC;AAGzC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAG1B,CAAC;KAEuC;IAE5C,QAAQ,GAAA;QACN,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;IAED,eAAe,GAAA;QACb,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;IAED,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;AAC3B,YAAA,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;SAC3B;AAED,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;AAClD,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAC1B;AAEO,IAAA,SAAS,CAAC,OAAoB,EAAA;AACpC,QAAA,OAAO,IAAI,OAAO,CAAC,OAAO,IAAG;YAC3B,MAAM,QAAQ,GAAG,IAAI,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,KAAI;AACpD,gBAAA,OAAO,CAAC,KAAK,CAAC,iBAAiB,KAAK,CAAC,CAAC,CAAC;gBACvC,QAAQ,CAAC,UAAU,EAAE,CAAC;AACxB,aAAC,CAAC,CAAC;AAEH,YAAA,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC5B,SAAC,CAAC,CAAC;KACJ;IAEO,cAAc,GAAA;AACpB,QAAA,MAAM,OAAO,GAAG;YACd,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC;AAEF,QAAA,MAAM,cAAc,GAAG,CAAC,KAAgC,KACtD,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAEtD,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,CAAC,CAAC,OAAO,EAAE,QAAQ,KAAI;AAC7D,YAAA,OAAO,CAAC,OAAO,CAAC,KAAK,IAAG;AACtB,gBAAA,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE;oBACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;iBACzC;AACH,aAAC,CAAC,CAAC;SACJ,EAAE,OAAO,CAAC,CAAC;KACb;IAEO,sBAAsB,GAAA;AAC5B,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,OAAO;SACR;QAED,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAElD,QAAA,IAAI,CAAC,QAAQ;AACV,aAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;aAC/C,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAI;AACvC,YAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB,CAAC;YAC3C,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAEpD,IAAI,cAAc,EAAE;AAClB,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACxB;iBAAM;AACL,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACxB;AACH,SAAC,CAAC,CAAC;KACN;+GApFU,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAA1B,0BAA0B,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAHtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AACjC,iBAAA,CAAA;+EAGU,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACI,IAAI,EAAA,CAAA;sBAAb,MAAM;gBACG,IAAI,EAAA,CAAA;sBAAb,MAAM;;;MCLI,wBAAwB,CAAA;+GAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,EAHpB,YAAA,EAAA,CAAA,0BAA0B,CAD/B,EAAA,OAAA,EAAA,CAAA,YAAY,aAEZ,0BAA0B,CAAA,EAAA,CAAA,CAAA,EAAA;AAEzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,YAJzB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIX,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,YAAY,EAAE,CAAC,0BAA0B,CAAC;oBAC1C,OAAO,EAAE,CAAC,0BAA0B,CAAC;AACtC,iBAAA,CAAA;;;MCFY,qBAAqB,CAAA;IAIhC,WAAoB,CAAA,aAA+B,EAAU,WAA2B,EAAA;QAApE,IAAa,CAAA,aAAA,GAAb,aAAa,CAAkB;QAAU,IAAW,CAAA,WAAA,GAAX,WAAW,CAAgB;QAHhF,IAAe,CAAA,eAAA,GAA8B,IAAI,CAAC;KAGmC;AAC7F,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,MAAM,EAAE,aAAa,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC;QACxD,IAAI,aAAa,EAAE;AACjB,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,aAAa,YAAY,WAAW,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC;AACrG,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;SACnG;QAED,IAAI,oBAAoB,IAAI,CAAC,oBAAoB,CAAC,WAAW,IAAI,IAAI,CAAC,eAAe,EAAE;AACrF,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,YAAY,WAAW,CAAC;AAChE,YAAA,MAAM,MAAM,GAAG,aAAa,GAAG,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;AAC9D,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;YAC5C,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;gBAC5B,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;oBAC1C,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;iBACrC;aACF;SACF;KACF;+GAvBU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAArB,qBAAqB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC5B,iBAAA,CAAA;+GAGU,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;;;MCFK,kBAAkB,CAAA;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAAlB,kBAAkB,EAAA,YAAA,EAAA,CAHd,qBAAqB,CAAA,EAAA,OAAA,EAAA,CAC1B,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA;gHAEpB,kBAAkB,EAAA,CAAA,CAAA,EAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,qBAAqB,CAAC;oBACrC,OAAO,EAAE,CAAC,qBAAqB,CAAC;AAC/B,iBAAA,CAAA;;;MCuBU,eAAe,CAAA;AAE1B,IAAA,IAAI,IAAI,GAAA;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;KACrB;IAED,IAAa,IAAI,CAAC,KAAK,EAAA;AACrB,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE;YAAE,OAAO;SAAE;AACvC,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;aAAM;YACL,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;AACD,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AAErB,QAAA,eAAe,CAAC,QAAQ,CAAC,MAAK;AAC5B,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5B,IAAI,CAAC,eAAe,EAAE,CAAC;AACzB,SAAC,CAAC,CAAC;KACJ;IAuBD,OAAO,QAAQ,CAAC,EAAE,EAAA;;AAEhB,QAAA,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KACnC;IAcD,WAAsB,CAAA,EAAc,EAAY,QAAmB,EAAY,MAAc,EACvE,iBAAoC,EAA4B,GAAQ,EAAA;QADxE,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;QAAY,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QAAY,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACvE,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QAA4B,IAAG,CAAA,GAAA,GAAH,GAAG,CAAK;QAxCrF,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC;QACnB,IAAuB,CAAA,uBAAA,GAAG,QAAQ,CAAC;QACnC,IAAQ,CAAA,QAAA,GAAG,MAAM,CAAC;QAElB,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC;QACpB,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC;QACd,IAAO,CAAA,OAAA,GAAQ,KAAK,CAAC;AAGrB,QAAA,IAAA,CAAA,iCAAiC,GAAG;AAC5C,YAAA,KAAK,EAAE,QAAQ;AACf,YAAA,QAAQ,EAAE,KAAK;SAChB,CAAC;AAGM,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,OAAO,EAAU,CAAC;AAGvC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAO,CAAC;AAQ/C,QAAA,IAAA,CAAA,eAAe,GAAG,CAAC,MAAkB,KAAI;AACvC,YAAA,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC,aAAa,KAAK,MAAM,CAAC,MAAM;AACzE,gBAAA,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;AAC7D,gBAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;aACnB;iBAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;AACxF,gBAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;aACnB;AACH,SAAC,CAAC;AACM,QAAA,IAAA,CAAA,UAAU,GAAG,CAAC,MAAkB,KAAI;YAC1C,MAAM,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,CAAC,eAAe,EAAE,CAAC;AAC3B,SAAC,CAAC;AAsFM,QAAA,IAAA,CAAA,oBAAoB,GAAG,CAAC,IAAI,KAAI;AACtC,YAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC;AAC5D,YAAA,IAAI,CAAC,kCAAkC,CAAC,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACjF,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE;;AAEhB,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,EAAE,WAAW,EAClD,gBAAgB,CAAC,KAAK,CAAC,SAAS;AAChC,oBAAA,CAAA,qCAAA,EAAwC,IAAI,CAAC,eAAe,KAAK,QAAQ,GAAG,kBAAkB,GAAG,iBAAiB,CAAA,CAAE,CAAC,CAAC;;gBAExH,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;AACvD,gBAAA,eAAe,CAAC,QAAQ,CAAC,MAAK;AAC5B,oBAAA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;oBAC3B,MAAM,IAAI,GAAG,IAAI,CAAC;AAClB,oBAAA,MAAM,OAAO,GAAG,CAAC,CAAC,KAAI;;wBAEpB,IAAI,CAAC,aAAa,EAAE,CAAC;wBACrB,CAAC,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACvD,qBAAC,CAAC;AAEF,oBAAA,gBAAgB,CAAC,gBAAgB,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;oBAC5D,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,EAAE,WAAW,EAClD,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,oBAAoB,EAAE,kBAAkB,CAAC,CAAC,CAAC;AACtF,oBAAA,IAAI,CAAC,eAAe,KAAK,QAAQ;wBAC/B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,EAAE,WAAW,EAClD,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAC;wBAChF,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,EAAE,WAAW,EAClD,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC,CAAC;oBAClF,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;AACvD,oBAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACvB,iBAAC,CAAC,CAAC;aACJ;iBAAM;;AAEL,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,EAAE,WAAW,EAClD,gBAAgB,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,GAAG,mBAAmB,GAAG,qBAAqB,CAAC,GAAG,mBAAmB,CAAC,CAAC;aACvH;AACH,SAAC,CAAC;AArHA,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC;KAC1B;IAED,IAAI,GAAA;;AAEF,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,gBAAA,IAAI,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,IAAI,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,WAAW,CAAC;gBACvG,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE;oBACnD,WAAW,GAAG,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;iBACzD;gBACD,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,iBAAiB,CAAC;gBACtE,IAAI,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE;oBACzD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,QAAQ,EAAE;wBAC/D,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAG,EAAA,WAAW,IAAI,CAAC;qBACxC;iBACF;qBAAM;oBACL,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,CAAG,EAAA,WAAW,IAAI,CAAC;iBAC3C;aACF;AACD,YAAA,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACrD;aAAM;AACL,YAAA,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACrD;AACD,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;AACxC,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;KAChF;IAEO,KAAK,GAAA;AACX,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC;AAC3D,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;;QAE5B,IAAI,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE;;YAE/D,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,eAAe,EAAE,WAAW,EACjD,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,CAAC,CAAC;SACtF;aAAM;;AAEL,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,eAAe,EAAE,WAAW,EACjD,eAAe,CAAC,KAAK,CAAC,SAAS,GAAG,CAAA,oCAAA,CAAsC,CAAC,CAAC;SAC7E;;QAED,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,eAAe,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;;QAGxD,MAAM,IAAI,GAAG,IAAI,CAAC;AAClB,QAAA,MAAM,OAAO,GAAG,CAAC,CAAC,KAAI;YACpB,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;;gBAE7B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,eAAe,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AAC3D,gBAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;;gBAErB,IAAI,CAAC,aAAa,EAAE,CAAC;AACrB,gBAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;AACtB,gBAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACnB,IAAI,CAAC,qBAAqB,EAAE,CAAC;aAC9B;YACD,CAAC,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACvD,SAAC,CAAC;AACF,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,gBAAgB,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;SAC/E;aAAM;YACL,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,eAAe,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AAC3D,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;AACtB,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,qBAAqB,EAAE,CAAC;SAC9B;KACF;IAED,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAK;AACjC,YAAA,IAAI,IAAI,CAAC,IAAI,EAAE;gBACb,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AAC9D,gBAAA,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;aAC/E;iBAAM;gBACL,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AACjE,gBAAA,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;aAClF;AACH,SAAC,CAAC,CAAC;KACJ;AAuCO,IAAA,kCAAkC,CAAC,OAAgB,EAAA;QACzD,MAAM,SAAS,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;AAC7C,QAAA,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE;AACtC,YAAA,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;YACjC,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC5B;QACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;KAClD;IAEO,mBAAmB,GAAA;AACzB,QAAA,IAAI,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE;YACtC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,kBAAkB,EAC3E,IAAI,CAAC,iCAAiC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;SACjE;KACF;IAEO,kBAAkB,GAAA;AACxB,QAAA,OAAO,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE;AAC1F,YAAA,SAAS,EAAE,cAAc;AACzB,YAAA,SAAS,EAAE;AACT,gBAAA;AACE,oBAAA,IAAI,EAAE,iBAAiB;AACvB,oBAAA,OAAO,EAAE;wBACP,QAAQ,EAAE,IAAI;AACf,qBAAA;AACF,iBAAA;AACD,gBAAA;AACE,oBAAA,IAAI,EAAE,iBAAiB;AACvB,oBAAA,KAAK,EAAE,YAAY;oBACnB,OAAO,EAAE,IAAI;oBACb,EAAE,EAAE,IAAI,CAAC,oBAAoB;AAC9B,iBAAA;AACD,gBAAA;AACE,oBAAA,IAAI,EAAE,QAAQ;AACd,oBAAA,OAAO,EAAE;wBACP,MAAM,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM;AACjD,8BAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC5G,8BAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACX,qBAAA;AACF,iBAAA;AACD,gBAAA;AACE,oBAAA,IAAI,EAAE,MAAM;AACZ,oBAAA,OAAO,EAAE;wBACP,cAAc,EAAE,IAAI;AACrB,qBAAA;AACF,iBAAA;AACF,aAAA;YACD,QAAQ,EAAE,IAAI,CAAC,QAAQ,GAAG,OAAO,GAAG,UAAU;AAC/C,SAAA,CAAC,CAAC;KACJ;IAEO,aAAa,CAAC,OAAO,GAAG,IAAI,EAAA;AAClC,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC;AAC3D,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,OAAO,EAAE;AAC3B,YAAA,IAAI,OAAO,KAAK,MAAM,EAAE;gBACtB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,eAAe,EAAE,YAAY,EAAE,IAAI,CAAC,aAAa;AACtE,sBAAE,CAAA,IAAA,EAAO,iBAAiB,CAAC,IAAI,CAAI,CAAA,EAAA,eAAe,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,CAAC;aAC3E;AAAM,iBAAA,IAAI,OAAO,KAAK,OAAO,EAAE;gBAC9B,eAAe,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,GAAG,CAAA,IAAA,EAAO,iBAAiB,CAAC,IAAI,CAAI,CAAA,EAAA,eAAe,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC;aAC7H;SACF;aAAM;YACL,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,eAAe,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;SAC7D;KACF;IAEM,MAAM,GAAA;AACX,QAAA,eAAe,CAAC,QAAQ,CAAC,MAAK;AAC5B,YAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AAAE,gBAAA,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;aAAE;AACjD,SAAC,CAAC,CAAC;KACJ;IAED,WAAW,GAAA;;AAET,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;KACnB;IAEO,qBAAqB,GAAA;;QAE3B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,UAAU,CAAC;QAClE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC;QACrD,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,UAAU,EAAE;YACxC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAChD;KACF;AAEO,IAAA,2BAA2B,CAAC,UAAU,EAAA;AAC5C,QAAA,IAAI,UAAU,IAAI,IAAI,CAAC,UAAU,EAAE;AACjC,YAAA,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC;YAC/B,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAChD;KACF;AAEO,IAAA,+BAA+B,CAAC,cAAc,EAAA;QACpD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;AAC/D,QAAA,IAAI,CAAC,2BAA2B,CAAC,UAAU,CAAC,CAAC;KAC9C;IAED,eAAe,GAAA;;QAEb,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;IAEM,eAAe,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;KAC7C;AA7RU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,4HA6D0C,QAAQ,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AA7DjE,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,khBC7B5B,mtBAqBA,EAAA,MAAA,EAAA,CAAA,42DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDQa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,SAAS;+BACE,oBAAoB,EAAA,QAAA,EAAA,mtBAAA,EAAA,MAAA,EAAA,CAAA,42DAAA,CAAA,EAAA,CAAA;;0BAiE+B,MAAM;2BAAC,QAAQ,CAAA;yCAvD/D,IAAI,EAAA,CAAA;sBAAhB,KAAK;gBAeG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,uBAAuB,EAAA,CAAA;sBAA/B,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAcI,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBACyC,eAAe,EAAA,CAAA;sBAA9D,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,iBAAiB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBACE,eAAe,EAAA,CAAA;sBAA9D,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,iBAAiB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;ME7DnC,YAAY,CAAA;+GAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,EAHR,YAAA,EAAA,CAAA,eAAe,CADpB,EAAA,OAAA,EAAA,CAAA,YAAY,aAEZ,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;AAEd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,YAJb,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIX,YAAY,EAAA,UAAA,EAAA,CAAA;kBALxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,YAAY,EAAE,CAAC,eAAe,CAAC;oBAC/B,OAAO,EAAE,CAAC,eAAe,CAAC;AAC3B,iBAAA,CAAA;;;MCJY,QAAQ,CAAA;AAGnB,IAAA,WAAA,CAAY,SAAuB,EAAA;AACjC,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;KAC5B;IAED,SAAS,CAAC,KAAK,EAAE,IAAI,EAAA;QACnB,QAAQ,IAAI;AACZ,YAAA,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;AACvD,YAAA,KAAK,OAAO;gBACV,OAAO,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;AACxD,YAAA,KAAK,KAAK;gBACR,OAAO,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;AACtD,YAAA;AACE,gBAAA,MAAM,IAAI,KAAK,CAAC,+CAA+C,IAAI,CAAA,CAAE,CAAC,CAAC;SACxE;KACF;+GAlBU,QAAQ,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAR,QAAQ,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAAR,QAAQ,EAAA,UAAA,EAAA,CAAA;kBADpB,IAAI;mBAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAA;;;MCIP,cAAc,CAAA;+GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAAd,cAAc,EAAA,YAAA,EAAA,CAHV,QAAQ,CAAA,EAAA,OAAA,EAAA,CACb,QAAQ,CAAA,EAAA,CAAA,CAAA,EAAA;gHAEP,cAAc,EAAA,CAAA,CAAA,EAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,QAAQ,CAAC;oBACxB,OAAO,EAAE,CAAC,QAAQ,CAAC;AACpB,iBAAA,CAAA;;;MCNY,SAAS,CAAA;;AAEb,IAAA,OAAO,WAAW,CAAC,EAAO,EAAE,MAAW,EAAA;AAC5C,QAAA,IAAI,MAAM,YAAY,MAAM,EAAE;AAC5B,YAAA,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE;AACtB,gBAAA,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE;oBACnD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;;wBAE5B,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,IAAG;AACtB,4BAAA,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACpB,yBAAC,CAAC,CAAC;qBACJ;yBAAM;wBACL,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;qBACzB;iBACF;aACF;SACF;KACF;AACF;;AClBD;;AAEG;;;;"}