| undefined {\n return this.plugins[id];\n }\n\n /**\n * Returns object with all plugins\n */\n getAll() {\n return this.plugins;\n }\n}\n","/**\n * File made for IE/Edge support\n * https://github.com/GrapesJS/grapesjs/issues/214\n */\nimport { hasWin } from './mixins';\n\nexport default () => {\n /**\n * Check if IE/Edge\n * @return {Boolean}\n */\n const isIE = () => {\n let match;\n const agent = window.navigator.userAgent;\n const rules: [string, RegExp][] = [\n ['edge', /Edge\\/([0-9\\._]+)/],\n ['ie', /MSIE\\s(7\\.0)/],\n ['ie', /MSIE\\s([0-9\\.]+);.*Trident\\/[4-7].0/],\n ['ie', /Trident\\/7\\.0.*rv\\:([0-9\\.]+).*\\).*Gecko$/],\n ];\n\n for (let i = 0; i < rules.length; i++) {\n const rule = rules[i];\n match = rule[1].exec(agent);\n if (match) break;\n }\n\n return !!match;\n };\n\n if (hasWin() && isIE()) {\n const originalCreateHTMLDocument = DOMImplementation.prototype.createHTMLDocument;\n DOMImplementation.prototype.createHTMLDocument = title => {\n if (!title) title = '';\n return originalCreateHTMLDocument.apply(document.implementation, [title]);\n };\n }\n};\n","import { isElement } from 'underscore';\nimport Editor from './editor';\nimport { EditorConfig } from './editor/config/config';\nimport PluginManager, { Plugin, getPlugin, logPluginWarn } from './plugin_manager';\nimport $ from './utils/cash-dom';\nimport polyfills from './utils/polyfills';\n\ninterface InitEditorConfig extends EditorConfig {\n grapesjs?: typeof grapesjs;\n}\n\npolyfills();\n\nconst plugins = new PluginManager();\nconst editors: Editor[] = [];\n\nexport const usePlugin = | string>(plugin: P, opts?: P extends Plugin ? C : {}) => {\n let pluginResult = getPlugin(plugin, plugins);\n\n return (editor: Editor) => {\n if (pluginResult) {\n pluginResult(editor, opts || {});\n } else {\n logPluginWarn(editor, plugin as string);\n }\n };\n};\n\nexport const grapesjs = {\n $,\n\n editors,\n\n plugins,\n\n usePlugin,\n\n // @ts-ignore Will be replaced on build\n version: __GJS_VERSION__,\n\n /**\n * Initialize the editor with passed options\n * @param {Object} config Configuration object\n * @param {string|HTMLElement} config.container Selector which indicates where render the editor\n * @param {Boolean} [config.autorender=true] If true, auto-render the content\n * @param {Array} [config.plugins=[]] Array of plugins to execute on start\n * @param {Object} [config.pluginsOpts={}] Custom options for plugins\n * @param {Boolean} [config.headless=false] Init headless editor\n * @return {Editor} Editor instance\n * @example\n * var editor = grapesjs.init({\n * container: '#myeditor',\n * components: 'Hello world',\n * style: '.hello{color: red}',\n * })\n */\n init(config: EditorConfig = {}) {\n const { headless } = config;\n const els = config.container;\n if (!els && !headless) throw new Error(\"'container' is required\");\n const initConfig: InitEditorConfig = {\n autorender: true,\n plugins: [],\n pluginsOpts: {},\n ...config,\n grapesjs: this,\n el: headless ? undefined : isElement(els) ? els : (document.querySelector(els!) as HTMLElement),\n };\n const editor = new Editor(initConfig, { $ });\n const em = editor.getModel();\n\n // Load plugins\n initConfig.plugins!.forEach(pluginId => {\n const plugin = getPlugin(pluginId, plugins);\n const plgOptions = initConfig.pluginsOpts![pluginId as string] || {};\n\n if (plugin) {\n plugin(editor, plgOptions);\n } else {\n logPluginWarn(editor, pluginId as string);\n }\n });\n\n // Execute `onLoad` on modules once all plugins are initialized.\n // A plugin might have extended/added some custom type so this\n // is a good point to load stuff like components, css rules, etc.\n em.loadOnStart();\n initConfig.autorender && !headless && editor.render();\n editors.push(editor);\n\n return editor;\n },\n};\n\n// Exports for TS\nexport type { default as Asset } from './asset_manager/model/Asset';\nexport type { default as Assets } from './asset_manager/model/Assets';\nexport type { default as Block } from './block_manager/model/Block';\nexport type { default as Blocks } from './block_manager/model/Blocks';\nexport type { default as Categories } from './block_manager/model/Categories';\nexport type { default as Category } from './block_manager/model/Category';\nexport type { default as Canvas } from './canvas/model/Canvas';\nexport type { default as Frame } from './canvas/model/Frame';\nexport type { default as Frames } from './canvas/model/Frames';\nexport type { default as CssRule } from './css_composer/model/CssRule';\nexport type { default as CssRules } from './css_composer/model/CssRules';\nexport type { default as Device } from './device_manager/model/Device';\nexport type { default as Devices } from './device_manager/model/Devices';\nexport type { default as ComponentManager } from './dom_components';\nexport type { default as Component } from './dom_components/model/Component';\nexport type { default as Components } from './dom_components/model/Components';\nexport type { default as ComponentView } from './dom_components/view/ComponentView';\nexport type { default as Editor } from './editor';\nexport type { default as Modal } from './modal_dialog/model/Modal';\nexport type { default as Page } from './pages/model/Page';\nexport type { default as Pages } from './pages/model/Pages';\nexport type { default as Button } from './panels/model/Button';\nexport type { default as Buttons } from './panels/model/Buttons';\nexport type { default as Panel } from './panels/model/Panel';\nexport type { default as Panels } from './panels/model/Panels';\nexport type { default as Selector } from './selector_manager/model/Selector';\nexport type { default as Selectors } from './selector_manager/model/Selectors';\nexport type { default as State } from './selector_manager/model/State';\nexport type { default as Properties } from './style_manager/model/Properties';\nexport type { default as Property } from './style_manager/model/Property';\nexport type { default as PropertyRadio } from './style_manager/model/PropertyRadio';\nexport type { default as PropertySelect } from './style_manager/model/PropertySelect';\nexport type { default as PropertyNumber } from './style_manager/model/PropertyNumber';\nexport type { default as PropertySlider } from './style_manager/model/PropertySlider';\nexport type { default as PropertyComposite } from './style_manager/model/PropertyComposite';\nexport type { default as PropertyStack } from './style_manager/model/PropertyStack';\nexport type { default as Sector } from './style_manager/model/Sector';\nexport type { default as Sectors } from './style_manager/model/Sectors';\nexport type { default as Trait } from './trait_manager/model/Trait';\nexport type { default as Traits } from './trait_manager/model/Traits';\n\nexport default grapesjs;\n"],"names":["root","factory","exports","module","define","amd","a","i","globalThis","window","this","_","Backbone","core_slice","Array","prototype","slice","apply","fn","ctx","args","length","call","arr","index","hasKeys","obj","keys","isArray","arguments","all","key","getMagicFusionIndex","callstackWasIndexed","magicFusionIndex","indexCycle","defer","ObjectRegistry","registeredObjects","cidIndexes","onoff","which","objects","l","objectRegistry","register","unregister","isFunction","actionUndoRedo","action","type","undoTypes","object","before","after","options","managerUndoRedo","manager","stack","magic","everything","isCurrentlyUndoRedoing","pointer","actions","isUndo","clone","models","at","where","get","pop","shift","trigger","validateUndoActionCreation","undoTypesType","condition","addToStack","track","res","diff","add","maximumStackLength","isRegistered","cid","contains","push","splice","indexOf","map","concat","UndoTypes","collection","ignore","model","remove","undefined","isEmpty","each","unset","set","unsetData","afterAttributes","changedAttributes","keysAfter","previousAttributes","pick","keysPrevious","val","reset","previousModels","OwnedUndoTypes","manipulateUndoType","manipType","undoType","fns","undoTypesInstance","isObject","extend","Action","Model","defaults","undo","attributes","redo","UndoStack","Collection","Infinity","setMaxLength","UndoManager","initialize","attr","on","value","startTracking","isArguments","stopTracking","isTracking","_addToStack","unregisterAll","undoAll","redoAll","isAvailable","s","merge","undoManager","addUndoType","changeUndoType","removeUndoType","clear","defaultAttributes","self","g","global","$","previousBackbone","VERSION","noConflict","emulateHTTP","emulateJSON","_listening","Events","eventSplitter","eventsApi","iteratee","events","name","callback","opts","names","context","test","split","_events","onApi","listening","_listeners","id","interop","listenTo","_listenId","uniqueId","listeningTo","_listeningTo","Listening","error","tryCatchOn","handlers","count","e","off","offApi","listeners","stopListening","ids","remaining","j","handler","_callback","cleanup","once","onceMap","bind","listenToOnce","offer","Math","max","triggerApi","objEvents","allEvents","triggerEvents","ev","a1","a2","a3","listener","unbind","attrs","preinitialize","cidPrefix","parse","result","changed","validationError","idAttribute","toJSON","sync","escape","has","matches","_validate","silent","changes","changing","_changing","_previousAttributes","current","prev","isEqual","prevId","_pending","hasChanged","old","previous","fetch","success","resp","serverAttrs","wrapError","save","wait","validate","method","isNew","patch","xhr","destroy","url","base","urlError","replace","encodeURIComponent","constructor","isValid","comparator","_reset","setOptions","addOptions","array","insert","min","tail","singular","removed","_removeModels","added","merged","_isModel","toAdd","toMerge","toRemove","modelMap","sort","sortable","sortAttr","isString","existing","_prepareModel","_addReference","orderChanged","some","m","_removeReference","unshift","_byId","modelId","first","findWhere","Error","sortBy","pluck","create","callbackOpts","values","CollectionIterator","ITERATOR_VALUES","ITERATOR_KEYS","entries","ITERATOR_KEYSVALUES","_onModelEvent","event","$$iterator","Symbol","iterator","kind","_collection","_kind","_index","next","done","View","viewOptions","_ensureElement","delegateEventSplitter","tagName","selector","$el","find","render","_removeElement","setElement","element","undelegateEvents","_setElement","delegateEvents","el","match","delegate","eventName","undelegate","_createElement","document","createElement","className","_setAttributes","addMethod","attribute","cb","defaultVal","addUnderscoreMethods","Class","methods","instance","modelMatcher","matcher","collectionMethods","forEach","collect","reduce","foldl","inject","reduceRight","foldr","detect","filter","select","reject","every","any","include","includes","invoke","toArray","size","head","take","initial","rest","drop","last","without","difference","shuffle","lastIndexOf","chain","sample","partition","groupBy","countBy","indexBy","findIndex","findLastIndex","modelMethods","pairs","invert","omit","config","Base","mixin","mappings","functions","memo","methodMap","params","dataType","data","contentType","JSON","stringify","_method","beforeSend","setRequestHeader","processData","textStatus","errorThrown","ajax","Router","routes","_bindRoutes","optionalParam","namedParam","splatParam","escapeRegExp","route","isRegExp","_routeToRegExp","router","history","fragment","_extractParameters","execute","navigate","optional","RegExp","exec","param","decodeURIComponent","History","checkUrl","location","routeStripper","rootStripper","pathStripper","started","interval","atRoot","pathname","getSearch","matchRoot","decodeFragment","decodeURI","href","getHash","getPath","path","charAt","getFragment","_usePushState","_wantsHashChange","start","hashChange","_hasHashChange","documentMode","_useHashChange","_wantsPushState","pushState","_hasPushState","rootPath","iframe","src","style","display","tabIndex","body","iWindow","insertBefore","firstChild","contentWindow","open","close","hash","addEventListener","attachEvent","_checkUrlInterval","setInterval","loadUrl","stop","removeEventListener","detachEvent","removeChild","clearInterval","decodedFragment","title","assign","_updateHash","protoProps","staticProps","child","parent","__super__","CodeMirror","extendMode","commentStart","commentEnd","newlineAfterToken","_type","content","textAfter","state","jsonMode","lexical","inlineElements","inline","configuration","defineExtension","isComment","from","to","cm","curMode","innerMode","getMode","getTokenAt","mode","operation","replaceRange","line","ch","setCursor","selText","getRange","startIndex","endIndex","substr","substring","cmInstance","indentLine","outer","text","copyState","tabSize","getOption","out","lines","atSol","newline","stream","StringStream","eol","inner","token","cur","pos","string","blankLine","end","setSelection","getCursor","mod","userAgent","navigator","platform","gecko","ie_upto10","ie_11up","edge","ie","ie_version","webkit","qtwebkit","chrome","chrome_version","presto","safari","vendor","mac_geMountainLion","phantom","ios","maxTouchPoints","android","mobile","mac","chromeOS","windows","presto_version","Number","flipCtrlCmd","captureRightClick","classTest","cls","range","rmClass","node","removeChildren","childNodes","removeChildrenAndAdd","appendChild","elt","tag","cssText","createTextNode","eltP","setAttribute","nodeType","parentNode","host","activeElt","activeElement","shadowRoot","addClass","joinClasses","b","as","createRange","endNode","r","setEnd","setStart","createTextRange","moveToElementText","collapse","moveEnd","moveStart","selectInput","f","copyObj","target","overwrite","prop","hasOwnProperty","countColumn","startValue","search","n","nextTab","selectionStart","selectionEnd","_e","Delayed","time","onTimeout","Date","setTimeout","ms","clearTimeout","scrollerGap","Pass","toString","sel_dontScroll","scroll","sel_mouse","origin","sel_move","findColumn","goal","col","skipped","spaceStrs","spaceStr","lst","insertSorted","score","priority","nothing","createObj","props","inst","Object","nonASCIISingleCaseWordChar","isWordCharBasic","toUpperCase","toLowerCase","isWordChar","helper","source","extendingChars","isExtendingChar","charCodeAt","skipExtendingChars","str","dir","findFirst","pred","midF","mid","ceil","floor","iterateBidiSections","order","found","part","level","bidiOther","getBidiPartAt","sticky","bidiOrdering","lowTypes","arabicTypes","charType","code","bidiRE","isNeutral","isStrong","countsAsLeft","countsAsNum","BidiSpan","direction","outerType","len","types","i$1","i$2","type$1","i$3","prev$1","type$2","i$4","type$3","i$5","cur$1","type$4","i$6","end$1","replace$1","j$1","i$7","isRTL","j$2","nstart","reverse","getOrder","noHandlers","emitter","_handlers","getHandlers","signal","signalDOMEvent","override","preventDefault","defaultPrevented","e_defaultPrevented","codemirrorIgnore","signalCursorActivity","cursorActivity","curOp","cursorActivityHandlers","hasHandler","eventMixin","ctor","e_preventDefault","returnValue","e_stopPropagation","stopPropagation","cancelBubble","e_stop","e_target","srcElement","e_button","button","ctrlKey","zwspSupported","badBidiRects","dragAndDrop","div","zeroWidthElement","measure","offsetHeight","offsetWidth","hasBadBidiRects","txt","r0","getBoundingClientRect","r1","left","right","splitLinesAuto","nl","rt","hasSelection","getSelection","te","ownerDocument","selection","parentElement","compareEndPoints","hasCopyEvent","oncopy","badZoomedRects","hasBadZoomedRects","normal","fromRange","abs","modes","mimeModes","defineMode","dependencies","defineMIME","mime","spec","resolveMode","mfactory","modeObj","modeExtensions","exts","helperType","modeProps","prop$1","properties","nstate","info","startState","lineOracle","lastColumnPos","lastColumnValue","lineStart","getLine","doc","chunk","children","sz","chunkSize","getBetween","iter","getLines","updateLineHeight","height","lineNo","no","lineAtHeight","h","lh","isLine","lineNumberFor","String","lineNumberFormatter","firstLineNumber","Pos","cmp","equalCursorPos","copyPos","x","maxPos","minPos","clipLine","clipPos","clipToLen","linelen","clipPosArray","sol","peek","eat","eatWhile","eatSpace","skipToEnd","skipTo","backUp","column","indentation","pattern","consume","caseInsensitive","cased","hideFirstChars","lookAhead","oracle","baseToken","SavedContext","Context","maxLookAhead","baseTokens","baseTokenPos","highlightLine","forceToEnd","st","modeGen","lineClasses","runMode","loop","o","overlay","overlays","i_end","opaque","styles","classes","bgClass","textClass","getLineStyles","updateFrontier","getContextBefore","resetState","maxHighlightLength","stateAfter","styleClasses","highlightFrontier","modeFrontier","precise","findStartLine","saved","fromSaved","processLine","viewFrom","viewTo","nextLine","startAt","callBlankLine","readToken","copy","Token","takeToken","asArray","tokens","extractLineClasses","output","lineClass","flattenSpans","curStart","curStyle","addModeClass","mName","minindent","minline","lim","indented","retreatFrontier","sawReadOnlySpans","sawCollapsedSpans","seeReadOnlySpans","seeCollapsedSpans","MarkedSpan","marker","getMarkedSpanFor","spans","span","removeMarkedSpan","addMarkedSpan","op","inThisOp","WeakSet","markedSpans","attachLine","markedSpansBefore","startCh","isInsert","nw","inclusiveLeft","insertLeft","endsAfter","inclusiveRight","markedSpansAfter","endCh","startsBefore","stretchSpansOverChange","change","full","oldFirst","oldLast","sameLine","offset","span$1","clearEmptySpans","newMarkers","gapMarkers","gap","clearWhenEmpty","removeReadOnlyRanges","markers","mark","readOnly","parts","mk","p","newParts","dfrom","dto","detachMarkedSpans","detachLine","attachMarkedSpans","extraLeft","extraRight","compareCollapsedMarkers","lenDiff","aPos","bPos","fromCmp","toCmp","collapsedSpanAtSide","sps","sp","collapsed","collapsedSpanAtStart","collapsedSpanAtEnd","collapsedSpanAround","conflictingCollapsedRange","visualLine","visualLineEnd","visualLineContinued","visualLineNo","lineN","vis","visualLineEndNo","lastLine","lineIsHidden","widgetNode","lineIsHiddenInner","heightAtLine","lineObj","lineLength","found$1","findMaxLine","d","maxLine","maxLineLength","maxLineChanged","Line","estimateHeight","updateLine","estHeight","cleanUpLine","styleToClassCache","styleToClassCacheWithMode","interpretTokenStyle","cache","buildLineContent","lineView","builder","pre","trailingSpace","splitSpaces","addToken","buildToken","buildTokenBadBidi","insertLineContent","externalMeasured","maps","caches","lastChild","querySelector","defaultSpecialCharPlaceholder","startStyle","endStyle","css","displayText","special","specialChars","mustWrap","createDocumentFragment","lastIndex","txt$1","tabWidth","specialCharPlaceholder","fullStyle","trailingBefore","spaceBefore","buildCollapsedSpan","ignoreWidget","widget","input","needsContentAttribute","setUneditable","allText","spanStyle","spanEndStyle","spanStartStyle","nextChange","foundBookmarks","endStyles","upto","tokenText","LineView","hidden","buildViewArray","nextPos","view","operationGroup","pushOperation","ops","ownsGroup","delayedCallbacks","fireCallbacksForOps","group","callbacks","cursorActivityCalled","finishOperation","endCb","orphanDelayedCallbacks","signalLater","list","fireOrphanDelayed","delayed","updateLineForChanges","dims","updateLineText","updateLineGutter","updateLineClasses","updateLineWidgets","ensureLineWrapped","replaceChild","zIndex","updateLineBackground","background","wrap","getLineContent","ext","built","wrapClass","gutter","gutterBackground","gutterClass","fixedGutter","fixedPos","gutterTotalWidth","gutterMarkers","lineNumbers","wrap$1","gutterWrap","lineNumber","gutterLeft","k","gutterSpecs","gutterWidth","alignable","isWidget","nextSibling","insertLineWidgets","buildLineElement","insertLineWidgetsFor","allowAbove","widgets","ws","handleMouseEvents","positionLineWidget","above","noHScroll","width","wrapperWidth","coverGutter","paddingLeft","position","marginLeft","widgetHeight","parentStyle","gutters","wrapper","clientWidth","eventInWidget","getAttribute","sizer","mover","paddingTop","lineSpace","offsetTop","paddingVert","paddingH","cachedPaddingH","getComputedStyle","currentStyle","parseInt","paddingRight","isNaN","scrollGap","nativeBarWidth","displayWidth","scroller","barWidth","displayHeight","clientHeight","barHeight","ensureLineHeights","rect","wrapping","lineWrapping","curWidth","heights","rects","getClientRects","bottom","top","mapFromLineView","updateExternalMeasurement","lineMeasure","measureChar","bias","measureCharPrepared","prepareMeasureForLine","findViewForLine","findViewIndex","getDimensions","forceUpdate","hasHeights","prepared","varHeight","measureCharInner","bogus","rtop","rbottom","measureText","nullRect","nodeAndOffsetInLineMap","mStart","mEnd","coverStart","coverEnd","getUsefulRect","place","maybeUpdateRectForZooming","rSpan","charWidth","rbot","bot","singleCursorHeightPerLine","screen","logicalXDPI","deviceXDPI","scaleX","scaleY","logicalYDPI","deviceYDPI","clearLineMeasurementCacheFor","clearLineMeasurementCache","externalMeasure","clearCaches","cachedCharWidth","cachedTextHeight","lineNumChars","pageScrollX","pageXOffset","documentElement","scrollLeft","pageScrollY","marginTop","pageYOffset","scrollTop","widgetTopHeight","intoCoordSystem","includeWidgets","yOff","viewOffset","lOff","xOff","fromCoordSystem","coords","localBox","lineSpaceBox","charCoords","cursorCoords","preparedMeasure","getBidi","partPos","other","estimateCoords","PosWithInfo","outside","xRel","coordsChar","y","coordsCharInner","rangeEnd","wrappedLineExtent","begin","wrappedLineExtentChar","boxIsAfter","box","ltr","coordsBidiPartWrapped","coordsBidiPart","baseX","chAround","boxAround","atLeft","atStart","_lineNo","ref","closestDist","endX","dist","textHeight","anchor","clientLeft","offsetLeft","compensateForHScroll","th","perLine","widgetsHeight","estimateLineHeights","est","posFromMouse","liberal","forRect","space","clientX","clientY","e$1","colDiff","round","regChange","lendiff","updateLineNumbers","viewChanged","resetView","cut","viewCuttingPoint","cut$1","cutTop","cutBot","regLineChange","oldN","newN","adjustView","countDirtyView","dirty","updateSelection","showSelection","prepareSelection","primary","curFragment","cursors","selFragment","customCursor","$customCursor","sel","ranges","primIndex","empty","drawSelectionCursor","showCursorWhenSelecting","drawSelectionRange","cursor","cursorHeight","getWrapperElement","charPos","defaultCharWidth","otherCursor","cmpCoords","padding","leftSide","rightSide","sizerWidth","docLTR","drawForLine","fromArg","toArg","lineLen","wrapX","side","extent","fromPos","toPos","openStart","openEnd","openRight","topLeft","topRight","botLeft","botRight","sFrom","sTo","fromLine","toLine","singleVLine","leftEnd","rightStart","restartBlink","focused","blinker","cursorDiv","visibility","cursorBlinkRate","hasFocus","onBlur","ensureFocus","focus","onFocus","delayBlurEvent","delayingBlurEvent","draggingText","selForContextMenu","receivedFocus","updateHeightsInViewport","prevBottom","lineDiv","viewTop","oldHeight","mustScroll","updateWidgetHeight","chWidth","w","visibleLines","viewport","ensure","ensureFrom","ensureTo","maybeScrollWindow","doScroll","innerHeight","scrollNode","scrollIntoView","scrollPosIntoView","margin","limit","endCoords","scrollPos","calculateScrollPos","startTop","startLeft","updateScrollTop","setScrollLeft","snapMargin","screentop","docBottom","atTop","atBottom","newTop","gutterSpace","screenleft","screenw","tooWide","addToScrollTop","resolveScrollToPos","ensureCursorVisible","scrollToPos","cursorScrollMargin","scrollToCoords","scrollToRange","scrollToCoordsRange","sPos","updateDisplaySimple","setScrollTop","startWorker","forceScroll","scrollHeight","scrollbars","isScroller","scrollWidth","alignHorizontally","measureForScrollbars","gutterW","docH","viewHeight","viewWidth","barLeft","docHeight","NativeScrollbars","vert","horiz","checkedZeroWidth","minHeight","minWidth","update","needsH","needsV","sWidth","totalHeight","totalWidth","zeroWidthHack","disableHoriz","enableZeroWidthBar","disableVert","bar","delay","maybeDisable","elementFromPoint","NullScrollbars","updateScrollbars","startWidth","startHeight","updateScrollbarsInner","sizes","paddingBottom","heightForcer","borderBottom","scrollbarFiller","coverGutterNextToScrollbar","gutterFiller","scrollbarModel","initScrollbars","scrollbarStyle","axis","nextOpId","startOperation","updateInput","typing","changeObjs","selectionChanged","updateMaxLine","markArrays","endOperation","endOperations","endOperation_R1","endOperation_W1","endOperation_R2","endOperation_W2","endOperation_finish","maybeClipScrollbars","mustUpdate","DisplayUpdate","updatedDisplay","updateDisplayIfNeeded","barMeasure","adjustWidthTo","maxScrollLeft","preparedSelection","takeFocus","setDocumentHeight","postUpdateDisplay","wheelStartX","wheelStartY","maybeHiddenMarkers","unhidden","maybeUnhiddenMarkers","finish","runInOp","methodOp","docMethodOp","highlight","highlightWorker","workTime","changedLines","oldStyles","highlighted","oldCls","newCls","ischange","workDelay","force","visible","editorIsHidden","wrapperHeight","oldDisplayWidth","scrollbarsClipped","marginBottom","borderRightWidth","selectionSnapshot","active","anchorNode","anchorOffset","focusNode","focusOffset","restoreSelection","snapshot","nodeName","removeAllRanges","addRange","renderedView","maybeUpdateLineNumberWidth","viewportMargin","different","lastWrapHeight","lastWrapWidth","toUpdate","selSnapshot","patchDisplay","selectionDiv","reportedViewFrom","reportedViewTo","updateNumbersFrom","container","rm","currentWheelTarget","updateNumber","updateGutterSpace","alignWidgets","comp","align","innerW","lineGutter","lineNumInnerWidth","lineNumWidth","getGutters","sawLineNumbers","renderGutters","specs","gElt","updateGutters","Display","draggable","wheelDX","wheelDY","activeTouch","init","wheelSamples","wheelPixelsPerUnit","wheelEventDelta","dx","wheelDeltaX","dy","wheelDeltaY","detail","HORIZONTAL_AXIS","VERTICAL_AXIS","wheelDelta","wheelEventPixels","delta","onScrollWheel","chromeScrollHack","pointerEvents","pixelsPerUnit","deltaMode","deltaX","deltaY","canScrollX","canScrollY","pixels","movedX","movedY","Selection","equals","here","there","deepCopy","Range","somethingSelected","normalizeSelection","mayTouch","selectionsMayTouch","prim","inv","simpleSelection","changeEnd","adjustForChange","computeSelAfterChange","offsetPos","computeReplacedSel","hint","oldPrev","newPrev","loadMode","modeOption","resetModeState","isWholeLineUpdate","wholeLineUpdateBefore","updateDoc","spansFor","linesFor","firstLine","lastText","lastSpans","nlines","added$1","added$2","linkedDocs","sharedHistOnly","propagate","skip","sharedHist","linked","rel","shared","attachDoc","setDirectionClass","directionChanged","undone","undoDepth","lastModTime","lastSelTime","lastOp","lastSelOp","lastOrigin","lastSelOrigin","generation","maxGeneration","historyChangeFromChange","histChange","attachLocalSpans","clearSelectionEvents","lastChangeEvent","hist","addChangeToHistory","selAfter","opId","historyEventDelay","pushSelectionToHistory","selectionEventCanBeMerged","addSelectionToHistory","clearRedo","dest","removeClearedSpans","explicitlyCleared","getOldSpans","mergeOldSpans","stretched","oldCur","stretchCur","copyHistoryArray","newGroup","instantiateSel","newChanges","extendRange","posBefore","extendSelection","extendSelections","heads","replaceOneSelection","setSimpleSelection","filterSelectionChange","setSelectionReplaceHistory","setSelectionNoUndo","NaN","setSelectionInner","skipAtomicInSelection","reCheckSelection","mayClear","newAnchor","skipAtomic","newHead","skipAtomicInner","oldPos","preventCursorLeft","selectLeft","preventCursorRight","selectRight","atomic","near","movePos","far","cantEdit","selectAll","filterChange","canceled","cancel","makeChange","ignoreReadOnly","suppressEdits","makeChangeInner","makeChangeSingleDoc","rebased","rebaseHist","makeChangeFromHistory","allowSelectionOnly","suppress","antiChanges","returned","v","shiftDoc","distance","makeChangeSingleDocInEditor","recomputeMaxLength","checkWidthStart","changesHandler","changeHandler","splitLines","rebaseHistSelSingle","rebaseHistArray","sub","ok","copied","changeLine","handle","changeType","LeafChunk","BranchChunk","removeInner","insertInner","iterN","leaf","maybeSpill","me","sibling","myIndex","used","LineWidget","opt","adjustScrollWhenAboveVisible","addLineWidget","insertAt","aboveVisible","this$1","oldH","nextMarkerId","TextMarker","markText","markTextShared","replacedWith","addToHistory","curLine","clearOnEnter","clearHistory","withOp","visual","dHeight","SharedTextMarker","cloneNode","isParent","findSharedMarkers","findMarks","copySharedMarkers","mFrom","mTo","subMark","detachSharedMarkers","subMarker","nextDocId","Doc","lineSep","cleanGeneration","getValue","join","lineSeparator","setValue","getLineHandle","getLineNumber","getLineHandleVisualStart","lineCount","listSelections","extendSelectionsBy","setSelections","addSelection","getSelections","replaceSelection","dup","replaceSelections","newSel","undoSelection","redoSelection","setExtending","getExtending","historySize","markClean","changeGeneration","forceSplit","isClean","gen","getHistory","setHistory","histData","setGutterMarker","gutterID","clearGutter","lineInfo","addLineClass","removeLineClass","removeLineWidget","setBookmark","realOpts","findMarksAt","getAllMarks","posFromIndex","sepSize","indexFromPos","copyHistory","linkedDoc","unlinkDoc","splitIds","iterLinkedDocs","getEditor","setDirection","eachLine","lastDrop","onDrop","clearDragCursor","files","dataTransfer","isReadOnly","FileReader","File","read","markAsReadAndPasteIfAllFilesAreRead","t","readTextFromFile","file","allowDropFileTypes","reader","onerror","onload","readAsText","text$1","getData","selected","onDragStart","setData","effectAllowed","setDragImage","img","_top","onDragOver","frag","dragCursor","forEachCodeMirror","getElementsByClassName","byClass","editors","globalsRegistered","ensureGlobalHandlers","registerGlobalHandlers","resizeTimer","onResize","setSize","keyNames","fromCharCode","keyMap","normalizeKeyName","alt","ctrl","cmd","normalizeKeyMap","keymap","keyname","lookupKey","getKeyMap","fallthrough","isModifierKey","keyCode","addModifierNames","noShift","altKey","metaKey","shiftKey","keyName","altGraphKey","deleteNearSelection","compute","kill","toKill","replaced","moveCharLogically","moveLogically","endOfLine","visually","prep","targetTop","moveVisually","bidi","mv","getWrappedLineExtent","moveInStorageOrder","searchInVisualLine","getRes","nextCh","basic","pcDefault","emacsy","macDefault","commands","singleSelection","killLine","deleteLine","delLineLeft","delWrappedLineLeft","delWrappedLineRight","rightPos","goDocStart","goDocEnd","goLineStart","goLineStartSmart","lineStartSmart","goLineEnd","lineEnd","goLineRight","goLineLeft","goLineLeftSmart","goLineUp","moveV","goLineDown","goPageUp","goPageDown","goCharLeft","moveH","goCharRight","goColumnLeft","goColumnRight","goWordLeft","goGroupRight","goGroupLeft","goWordRight","delCharBefore","deleteH","delCharAfter","delWordBefore","delWordAfter","delGroupBefore","delGroupAfter","indentAuto","indentSelection","indentMore","indentLess","insertTab","insertSoftTab","spaces","defaultTab","execCommand","transposeChars","newlineAndIndent","sels","openLine","toggleOverwrite","firstNonWS","inWS","doHandleBinding","bound","dropShift","ensurePolled","prevShift","lookupKeyForEditor","keyMaps","extraKeys","stopSeq","dispatchKey","seq","keySeq","dispatchKeyInner","handleKeyBinding","motion","handleCharBinding","lastStoppedKey","onKeyDown","getField","handled","showCrossHair","up","onKeyUp","onKeyPress","charCode","lastClick","lastDoubleClick","DOUBLECLICK_DELAY","PastClick","clickRepeat","now","compare","onMouseDown","supportsTouch","clickInGutter","repeat","selectingText","handleMappedButton","leftButtonDown","onContextMenu","configureMouse","option","unit","addNew","moveOnDrag","contained","behavior","dragDrop","leftButtonStartDrag","leftButtonSelect","moved","dragEnd","mouseMove","dragStart","preventScroll","e2","rangeForUnit","findWordAt","ourRange","ourIndex","startSel","lastPos","extendTo","startCol","posCol","leftPos","oldRange","ranges$1","bidiSimplify","editorSize","counter","curCount","move","buttons","anchorLine","boundary","headIndex","usePart","gutterEvent","prevent","mX","mY","touches","lineBox","contextMenuInGutter","themeChanged","theme","Init","optionHandlers","defineOptions","deflt","notOnInit","defineOption","newBreaks","refresh","getInputField","spellcheck","autocorrect","autocapitalize","detach","attach","wrappingChanged","integer","blur","readOnlyChanged","screenReaderLabelChanged","dragDropChanged","resetPosition","funcs","dragFunctions","toggle","enter","over","leave","inputStyles","inputStyle","pasteIncoming","cutIncoming","autofocus","registerEventHandlers","finishInit","initHooks","textRendering","word","touchFinished","prevTouch","finishTouch","isMouseLikeTouchEvent","touch","radiusX","radiusY","farAway","pageX","pageY","inp","how","aggressive","indent","curSpace","curSpaceString","indentUnit","indentString","indentWithTabs","pos$1","defineInitHook","lastCopied","setLastCopied","newLastCopied","applyTextInput","inserted","deleted","recent","paste","textLines","multiPaste","pasteLinesPerSelection","lineWise","changeEvent","triggerElectric","handlePaste","pasted","clipboardData","disableInput","electricChars","smartIndent","getModeAt","electricInput","copyableRanges","lineRange","disableBrowserMagic","field","hiddenTextarea","border","addEditorMethods","helpers","setOption","getDoc","addKeyMap","removeKeyMap","addOverlay","modeSpec","removeOverlay","newRanges","getLineTokens","getTokenTypeAt","getHelper","getHelpers","help","_global","getStateAfter","defaultTextHeight","getViewport","addWidget","vspace","hspace","triggerOnKeyDown","triggerOnKeyPress","triggerOnKeyUp","triggerOnMouseDown","findPosH","amount","hitSide","rtlMoveVisually","findPosV","goalColumn","goals","headPos","startChar","check","scrollTo","getScrollInfo","interpret","swapDoc","phrase","phraseText","phrases","getScrollerElement","getGutterElement","registerHelper","registerGlobalHelper","predicate","origDir","lineDir","findNextLine","moveOnce","boundToLine","astral","sawType","pageSize","moveAmount","ContentEditableInput","lastAnchorNode","lastAnchorOffset","lastFocusNode","lastFocusOffset","polling","composing","gracePeriod","readDOMTimeout","posToDOM","isInGutter","scan","badPos","bad","domTextBetween","closing","extraLinebreak","recognizeMarker","addText","walk","cmText","markerID","isBlock","textContent","nodeValue","domToPos","lineNode","locateNodeInLineView","textNode","topNode","curNode","previousSibling","dist$1","belongsToInput","onCopyCut","lineWiseCopyCut","clearData","kludge","hadFocus","showPrimarySelection","contentEditable","updateFromDOM","readFromDOMSoon","forceCompositionEnd","label","removeAttribute","showMultipleSelections","curAnchor","curFocus","rng","rangeCount","getRangeAt","startGracePeriod","rememberSelection","selectionInEditor","commonAncestorContainer","poll","pollSelection","pollInterval","pollContent","fromIndex","fromNode","toNode","toIndex","newText","oldText","cutFront","cutEnd","oldTop","maxCutFront","newBot","oldBot","maxCutEnd","chFrom","chTo","TextareaInput","prevInput","pollingFast","fromTextArea","textarea","tabindex","placeholder","realSubmit","form","leaveSubmitMethodAlone","submit","wrappedSubmit","getTextArea","toTextArea","addLegacyProps","cmpPos","createField","prepareCopyCut","fastPoll","dispatchEvent","Event","_display","moveInputWithCursor","wrapOff","lineOff","teTop","teLeft","drawn","contextMenuPending","slowPoll","missed","same","resetSelectionOnContextMenu","oldScrollY","oldCSS","oldWrapperCSS","wrapperBox","offsetParent","scrollY","rehide","detectingSelectAll","prepareSelectAllHack","mouseup","extval","disabled","dontDelegate","func","defineDocExtension","version","keySet","parserConfig","propertyKeywords","tokenHooks","documentTypes","mediaTypes","mediaFeatures","mediaValueKeywords","nonStandardPropertyKeywords","fontProperties","counterDescriptors","colorKeywords","valueKeywords","allowNested","lineComment","supportsAtComponent","highlightNonStandardPropertyKeywords","ret","tp","tokenBase","tokenize","tokenString","tokenParenthesized","quote","escaped","pushContext","popContext","pass","states","popAndPass","wordAsValue","stateArg","_stream","atBlock","cx","blockCommentStart","blockCommentEnd","blockCommentContinue","fold","documentTypes_","mediaTypes_","mediaFeatures_","mediaValueKeywords_","propertyKeywords_","nonStandardPropertyKeywords_","colorKeywords_","valueKeywords_","allWords","tokenCComment","maybeEnd","defaultTags","script","maybeBackup","pat","attrRegexpCache","getAttrRegexp","regexp","getAttrValue","getTagRegexp","anchored","addTags","findMatchingMode","tagInfo","tagText","htmlMode","multilineTagIndentFactor","multilineTagIndentPastTag","allowMissingTagName","tags","configTags","configScript","scriptTypes","html","htmlState","inTag","endTagA","endTag","localState","localMode","local","statementIndent","jsonldMode","jsonld","json","trackScope","isTS","typescript","wordRE","wordCharacters","keywords","kw","A","B","C","D","operator","atom","isOperatorChar","isJsonldKeyword","readRegexp","inSet","cont","tokenComment","expressionAllowed","tokenQuasi","lastType","propertyIsEnumerable","brackets","findFatArrow","fatArrowAt","arrow","depth","sawSomething","bracket","atomicTypes","JSLexical","inScope","varname","localVars","vars","parseJS","cc","marked","expression","statement","lex","inList","block","newContext","registerVarScoped","Var","globalVars","isModifier","defaultVars","pushcontext","pushblockcontext","popcontext","pushlex","poplex","expect","wanted","exp","vardef","parenExpr","maybeexpression","maybeelse","functiondef","forspec","enumdef","typename","typeexpr","maybelabel","maybeCatchBinding","afterExport","afterImport","funarg","expressionInner","expressionNoComma","noComma","arrowBodyNoComma","arrowBody","commasep","maybeop","maybeoperatorNoComma","maybeoperatorComma","classExpression","arrayLiteral","contCommasep","objprop","quasi","maybeTarget","expr","property","continueQuasi","targetNoComma","maybeTypeArgs","getterSetter","afterprop","maybetype","what","sep","proceed","maybetypeOrIn","mayberettype","isKW","afterType","typeprops","typearg","maybeReturnType","quasiType","typeprop","functiondecl","continueQuasiType","typeparam","maybeTypeDefault","maybeAssign","vardefCont","eltpattern","proppattern","forspec1","forspec2","classNameAfter","classBody","classfield","maybeFrom","exportField","importSpec","maybeMoreImports","maybeAs","enummember","isContinuedStatement","basecolumn","firstChar","c","doubleIndentSwitch","closeBrackets","skipExpression","htmlConfig","autoSelfClosers","implicitlyClosed","contextGrabbers","doNotIndent","allowUnquoted","allowMissing","caseFold","xmlConfig","editorConf","config_","setStyle","inText","parser","inBlock","doctype","baseState","tagStart","inAttribute","stringStartCol","closure","isInAttribute","terminator","lower","startOfLine","noIndent","maybePopContext","nextTagName","parentTagName","tagNameState","closeTagNameState","attrState","matchClosing","closeState","closeStateErr","attrEqState","attrValueState","attrContinuedState","isInText","baseIndent","fullLine","alignCDATA","tagAfter","grabbers","skipAttribute","xmlCurrentTag","xmlCurrentContext","run","ed","DomComponents","CssComposer","bindAll","editor","canvasModel","canvas","getCanvasView","toggleMove","disableDragger","getKeyChar","stopCommand","enableDragger","toggleDragger","enable","em","dragger","methodCls","getCanvas","classList","ppfx","getPosition","setPosition","onStart","onDrag","onEnd","methodEv","methodsEv","defineCommand","def","pfx","stylePrefix","pStylePrefix","hoverClass","badgeClass","plhClass","freezClass","Canvas","onFrameScroll","getElement","getCanvasBody","getBody","getCanvasTools","getToolsEl","callRun","abort","sender","callStop","Commands","toSelect","components","component","getSelectedAll","Boolean","logWarning","evName","getEl","guidesStatic","guidesTarget","setupGuides","getModel","isTran","guidesContainer","getGuidesContainer","getGuidesTarget","getGuidesStatic","drg","toggleDrag","getEventOpts","guides","item","guide","guidesEl","getConfig","elInfoX","elInfoY","guideContent","innerHTML","getGlobalToolsEl","elGuideInfoX","elGuideInfoY","elGuideInfoContentX","elGuideInfoContentY","debounce","updateGuides","debug","renderGuide","getElementGuides","lastEl","getElementPos","getGuidePosUpdate","originRect","un","guideSize","numEl","noScroll","getTranslate","transform","itemStr","trim","parseFloat","setTranslate","getStyle","__p","styleUp","addStyle","avoidStore","Styles","__emitCmpStyleUpdate","getSelected","_getDragData","center","relPos","parentRel","pStyle","getMouseRelativeCanvas","offsetP","guidesInfo","renderGuideInfo","hideGuidesInfo","rectOrigin","isUndefined","isY","origEdge1","origEdge1Raw","origEdge2","origEdge2Raw","elGuideInfo","elGuideInfoCnt","guideInfoStyle","stat","statEdge2","isEdge1","statEdge1","statEdge1Raw","statEdge2Raw","posFirst","posSecond","pos2","sizeRaw","matched","coll","snd","incr","getChildAt","wrappers","Pages","getAllWrappers","flatten","wrp","findType","rules","getAll","rule","mouseover","startDelete","mouseout","stopDelete","click","onDelete","$this","attachBadge","removeClass","badge","removeBadge","clean","updateBadgeLabel","getName","modal","Modal","CodeManager","oHtmlEd","buildEditor","oCsslEd","htmlEditor","cssEditor","class","textViewCode","setContent","getHtml","optsHtml","getCss","optsCss","codeName","createViewer","EditorView","isEnabled","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","requestFullscreen","webkitRequestFullscreen","mozRequestFullScreen","msRequestFullscreen","disable","exitFullscreen","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","fsChanged","targetEl","isElement","getContainer","noSelClass","getBadgeEl","getHighlighterEl","wp","$wrapper","initSorter","toggleClipboard","drag","cacheEl","startSelectPosition","frameEl","contentDocument","sorter","onEndMove","stopSelectComponent","getContentWindow","rollback","initSorterFromModel","onEndMoveFromModel","initSorterFromModels","lastModel","frame","toMove","onMoveClb","onSelect","endMove","$badge","getBadge","$hl","getHighlighter","am","custom","__customData","onceClose","AssetManager","accept","modalTitle","setTarget","onClick","onDblClick","__behaviour","rendered","__trgCustom","assets","uploadEl","bm","appendTo","firstRender","pn","Panels","getPanel","addPanel","Blocks","lm","LayerManager","lmConfig","layers","panels","$cnt","DeviceManager","SelectorManager","StyleManager","trgEvCnt","$cntInner","$cntSlm","$cntSm","append","showDevices","devicePanel","dvEl","slmConfig","sm","smConfig","$header","pnCnt","toggleSm","show","hide","panelC","Config","tm","TraitManager","confTm","$cn","$cn2","toggleTm","clp","lastSelected","addOpts","pasteable","cop","Components","canMove","emitUpdate","cmdOutline","getPanels","preventDrag","tglEffects","mthEv","tlb","getToolbarEl","elP","querySelectorAll","shouldRunSwVisibility","isActive","stopDefault","editorEl","onclick","panel","canvasS","runCommand","runDefault","canvasView","getResizerEl","prefix","posFetcher","mousePosFetcher","getMouseRelativePos","canvasResizer","forceNew","Utils","Resizer","command","Toolbar","mousedown","handleClick","getFrameEl","Editor","onRender","DomainViews","ToolbarView","itemView","showOffsets","frameOff","canvasOff","adjScroll","startSelectComponent","toggleSelectComponent","listenToEl","onFrameUpdated","onContainerChange","onHovered","updateGlobalPos","_upToolbar","updateAttached","getFrames","win","getWindow","onHover","onOut","trg","getViewEl","frameView","_getFrame","currentDoc","setHovered","useValid","updateLocalPos","views","updateToolsLocal","elHovered","toggleToolsEl","currentFrame","getView","elSelected","updateToolsGlobal","initResize","getElSelected","getElHovered","showElementOffset","elPos","hideElementOffset","showFixedElementOffset","hideFixedElementOffset","hideHighlighter","opacity","isEditing","isChildOf","updateBadge","posOnly","icon","getIcon","clsBadge","customeLabel","customBadgeLabel","badgeLabel","bStyle","getTargetToElementFixed","leftOff","showHighlighter","elem","modelToStyle","resizeClass","isTaggableNode","resizable","toggleBodyClass","docs","resizer","keyHeight","keyWidth","currentUnit","keepAutoHeight","keepAutoWidth","getModelToStyle","toggleFramesEvents","computedStyle","modelStyle","currentWidth","autoWidth","currentHeight","autoHeight","startDim","unitHeight","getUnitFromValue","unitWidth","onMove","updateTarget","store","selectedHandler","onlyHeight","onlyWidth","bodyw","getDragMode","finalStyle","updateToolbar","toolbarEl","toolbarStyle","toolbar","showToolbar","toolbarView","updateToolbarPos","getCanvasPosition","updateTools","isCompSelected","isHoverEn","isNewEl","lastHovered","badgeOpts","showOffsetsSelected","toolsEl","canvasRectOffset","topOff","_trgToolUp","targetToElem","canvasOffsetTop","canvasOffsetLeft","refreshCanvas","hideBadge","cleanPrevious","status","hasWin","preserveSelected","setSelected","isPointed","utils","Sorter","placer","getPlacerEl","containerSel","itemSel","wmargin","nested","canvasRelative","scale","getZoomDecimal","startSort","getOffsetDim","stopSelectPosition","posTargetCollection","posIndex","posMethod","cDim","posIsLastEl","posTargetEl","outsideElem","posTargetModel","nearFloat","isLast","getOffsetMethod","zoom","isTextNode","stateVar","offsetViewer","marginT","marginB","marginL","marginR","padT","padB","padL","padR","stateLow","marginName","paddingName","marginV","paddingV","paddingEls","fullMargName","fullPadName","marginLeftSt","marginRightSt","marginRight","marginTopSt","marginBottomSt","mtStyle","mbStyle","mlStyle","mrStyle","ptStyle","pbStyle","plStyle","prStyle","posLeft","widthEl","marginSideH","marginSideT","padTop","padBot","padSideH","padSideT","padRight","toggleVis","cv","mth","_upFrame","_onFramesChange","frames","load","loaded","autoAdd","itemsView","itemType","reuseView","addTo","items","itemViewNotFound","ns","warn","typeField","clearItems","onRemoveBefore","onRemove","xyArr","snapOffset","lastScroll","lastScrollDiff","startPointer","startPosition","globScrollDiff","currentPointer","getDocumentEl","getContainerEl","getWindowEl","keyHandle","handleScroll","actualScroll","scrollDiff","getPointerPos","getStartPosition","currentPos","glDiff","lockedAxis","detectAxisLock","moveDelta","co","deltaPre","snapGuides","newDelta","trgX","trgY","axs","trgPoint","statPoint","deltaPoint","trgGuide","isPointIn","trgValue","setGuideLock","lock","ofst","trgName","cancelled","isEscKey","xPos","yPos","defaultView","parentWindow","getPos","getPointerPosition","pEv","getPointerEvent","relX","relY","absX","absY","_Array$prototype","idRe","classRe","htmlRe","tagRe","getElementsByTagName","Cash","__cash","eles","getElementById","parseHTML","ready","cash","eq","ele","camelCaseRe","camelCaseWhitespaceRe","camelCase","letter","removeProp","guid","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","isNumeric","isFinite","getCompareFunction","is","splitValuesRe","getSplitValues","unique","computeStyle","isVariable","getPropertyValue","computeStyleInt","hasClass","removeAttr","_value","toggleClass","isForce","cssVariableRe","isCSSVariable","prefixedProps","docEl","vendorsPrefixes","getPrefixedProp","propCC","propUC","prefixedProp","numericProps","animationIterationCount","columnCount","flexGrow","flexShrink","fontWeight","lineHeight","orphans","widows","getSuffixedValue","setProperty","dataNamespace","dataAttributeRe","getDataCache","dataset","getExtraSpace","xAxis","hasNamespaces","ns1","ns2","removeEventListeners","_ref","hasData","_this","removeData","boxSizing","includeMargins","eventsNamespace","eventsNamespacesSeparator","getEventsCache","parseEventName","removeEvent","namespaces","eventCache","_ref2","eventFullName","_this2","_parseEventName","_one","_this3","_parseEventName2","finalCallback","namespace","thisArg","addEvent","one","readyState","evt","_parseEventName3","createEvent","initEvent","selectOneRe","selectMultipleRe","selectedIndex","getValueSelectSingle","getValueSelectMultiple","queryEncodeSpaceRe","skippableRe","checkableRe","serialize","query","elements","checked","queryEncode","isMultiple","eleValue","containers","fragmentRe","singleTagRe","table","tr","td","thead","tbody","tfoot","initContainers","$1","insertContent","prepend","isStr","insertAdjacentHTML","insertElement","_this4","outerHTML","insertAfter","_this5","_this6","_this7","_this8","_this9","prependTo","replaceWith","_this10","$eles","replaceAll","docEle","clientTop","contents","nextElementSibling","not","closest","parents","previousElementSibling","siblings","KEY_TAG","KEY_ATTR","motionsEv","isDoc","removeEl","inputs","attrUp","isVisible","oldEl","newEl","appendAtIndex","total","createEl","createText","createCustomEvent","oEvent","err","_parentEvent","keyCodeVal","defineProperty","appendVNodes","vNodes","vnode","getDocumentScroll","isDef","getGlobal","elProt","Element","getUiClass","defCls","appendStyles","stls","link","prepand","shallowDiff","objOrig","objNew","keysNew","origValue","newValue","evs","upFirst","normalizeFloat","step","valueDef","stepDecimals","toFixed","hasDnd","nativeDnD","isCommentNode","escapeNodeContent","deepMerge","targValue","srcValue","__cashData","getElRect","rectText","selectNode","getKeyCode","isEnterKey","isEmptyObj","capitalize","isComponent","toHTML","isRule","toCSS","__gjsv","setViewEl","createId","chars","random","buildBase64UrlFromSvg","svg","base64Str","btoa","Buffer","webpackContext","req","webpackContextResolve","__webpack_require__","resolve","Function","ArrayProto","ObjProto","SymbolProto","supportsArrayBuffer","ArrayBuffer","supportsDataView","DataView","nativeIsArray","nativeKeys","nativeCreate","nativeIsView","isView","_isNaN","_isFinite","hasEnumBug","nonEnumerableProps","MAX_ARRAY_INDEX","pow","restArguments","isNull","isBoolean","tagTester","nodelist","Int8Array","hasStringTagBug","isIE11","Map","isDataView","getInt8","isArrayBuffer","buffer","isSymbol","isNumber","constant","createSizePropertyCheck","getSizeProperty","sizeProperty","shallowProperty","typedArrayPattern","collectNonEnumProps","emulatedSet","nonEnumIdx","proto","isMatch","_keys","_wrapped","toBufferView","bufferSource","Uint8Array","byteOffset","valueOf","tagDataView","aStack","bStack","deepEq","areArrays","aCtor","bCtor","allKeys","ie11fingerprint","weakMapMethods","forEachName","hasName","commonInit","mapTail","mapMethods","setMethods","createAssigner","keysFunc","baseCreate","Ctor","extendOwn","tap","interceptor","toPath","deepGet","defaultValue","identity","optimizeCb","argCount","accumulator","baseIteratee","mapObject","results","currentKey","noop","propertyOf","times","accum","getTime","createEscaper","escaper","testRegexp","replaceRegexp","templateSettings","evaluate","interpolate","noMatch","escapes","escapeChar","bareIdentifier","template","settings","oldSettings","argument","variable","fallback","idCounter","_chain","executeBound","sourceFunc","boundFunc","callingContext","partial","boundArgs","TypeError","callArgs","strict","idx","memoize","hasher","address","throttle","timeout","later","leading","throttled","_now","trailing","immediate","passed","debounced","_args","negate","compose","findKey","createPredicateIndexFinder","sortedIndex","low","high","createIndexFinder","predicateFind","createReduce","reducer","guard","contextPath","computed","lastComputed","reStrSymbol","rand","temp","criteria","keyInObj","compact","otherArrays","uniq","isSorted","seen","arrays","intersection","argsLength","unzip","chainResult","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","definition","enumerable","toStringTag","literals","raw","acc","lit","subst","substs","fromElement","projectData","noticeOnUnload","forceClass","log","baseCss","protectedCss","canvasCss","defaultCommand","devicePreviewMode","mediaCondition","tagVarStart","tagVarEnd","keepEmptyTextNodes","jsInHtml","multipleSelection","avoidInlineStyle","avoidDefaults","clearStyles","cssIcons","icons","plus","caret","delete","arrowUp","chevron","eye","eyeOff","i18n","assetManager","layerManager","storageManager","richTextEditor","domComponents","codeManager","cssComposer","selectorManager","deviceManager","styleManager","blockManager","traitManager","keepUnusedStyles","multiFrames","customUI","getByComponent","getComponent","addComponent","hasComponent","Selectable","lastComponent","allComponents","removeComponent","moduleName","_em","_name","cfgParent","cfg","_disable","_config","postLoad","__logWarn","__appendTo","elTo","private","skipListen","__initListen","getProjectData","storageKey","loadProjectData","onResult","getAllMap","__catchAllEvent","collections","entity","md","__remove","removeBefore","__onAllEvent","renderProps","_createId","ln","allMap","__listenAdd","__listenRemove","__listenUpdate","__destroy","Module","scripts","autoscrollLimit","extHl","frameContent","frameStyle","notTextable","_module","modelConstructor","newModel","keyAutoW","keyAutoH","domc","conf","allRules","Css","idMap","modOpts","Wrapper","getType","selectors","sSel","idSel","changesCount","_undo","_undoexc","changesUp","temporary","noCount","getStyles","getHead","setHead","addHeadItem","getHeadByAttr","removeHeadByAttr","addLink","removeLink","addScript","removeScript","getPage","page","_emitUpdated","fromUndo","loadedItems","itemsToLoad","onReset","itemLoaded","listenToLoadItems","listenToLoad","defFrame","frms","getId","um","setName","getAllFrames","getMainFrame","getMainComponent","evAll","evPfx","evPageSelect","evPageSelectBefore","evPageUpdate","evPageAdd","evPageAddBefore","evPageRemove","evPageRemoveBefore","chnSel","typeMain","selectBefore","addBefore","pages","__onChange","_onPageChange","onLoad","mainPage","getMain","Layers","mainComp","setRoot","pg","pagesMap","ItemManagerModule","default","devices","widthMedia","checkUnit","pr","getWidthMedia","Devices","updateSelect","startAdd","updateDevice","devEl","devicesEl","getDeviceModel","device","getOptions","evSelect","evUpdate","evAdd","evRemove","evRemoveBefore","Device","_onSelect","deviceId","newDevice","getDevices","onZoomChange","_pageUpdated","rulers","getCurrentFrameModel","noUndo","viewCollection","renderView","important","getDeclaration","getBlockId","atRules","addToCollection","fragmentEl","renderStarted","atRule","getAtRule","atRuleEl","styleEl","appendData","clsName","mediaText","defaultBlockId","blockId","getMediaWidth","contRules","sortRules","isMobFirst","prs","rootEl","els","toggleEffects","handleDragEnter","handleDragOver","handleDrop","handleDragLeave","__customTglEff","frameElement","sortOpts","customTarget","startCustom","endCustom","endDrop","dragStop","updateCounter","dt","dragContent","inAbsoluteMode","getWrapper","canvasOffset","getOffset","postLeft","posTop","handleDragEnd","cnt","setDropContent","getContentByData","dragging","lastMaxHeight","tools","frameWrapView","showGlobalTools","cvModel","getCanvasModel","updateHead","renderStyles","allowfullscreen","headEl","attrStr","stl","getJsContainer","jsContainer","elTools","_getTool","getOffsetViewerEl","getRect","getOffsetRect","scrollBottom","scrollRight","_toggleEffects","startAutoscroll","_toggleAutoscrollFx","requestAnimationFrame","autoscroll","lastClientY","actualTop","limitTop","limitBottom","nextTop","updateClientY","stopAutoscroll","mt","renderScripts","evLoad","evOpts","appendScript","scriptEl","renderBody","write","normalize","prevStyles","_isEditor","droppable","_emitUpdate","classAnim","updateOffset","updateSize","frameLoaded","updatePos","setupDragger","dragX","dragY","Dragger","getZoomMultiplier","posOpts","startDrag","__clear","destroyed","updateDim","__handleSize","noChanges","onScroll","onscroll","currW","currH","newW","newH","twrp","toolsWrapper","elTop","elRight","elBottom","elLeft","frameWrapperView","_initFrames","clearOff","checkSelected","updateFrames","_onFramesUpdate","toggleListeners","wheel","_renderFrames","currFrame","onCanvasMove","isInputFocused","onWheel","getZoom","defOpts","mpl","framesArea","timerZoom","isElInViewport","frameRect","getFrameOffset","rTop","rLeft","frmOff","cvsOff","winEl","frEl","getCanvasOffset","frameOffset","canvasEl","elRect","frameTop","avoidFrameOffset","frameLeft","avoidFrameZoom","getElementOffsets","bEl","fo","updateScript","scriptContainer","scriptFn","getScriptString","scriptFnStr","scriptProps","__getScriptProps","scr","getFrameView","mainFrame","setCurrentFrame","$frames","toolsWrp","hlEl","badgeEl","placerEl","ghostEl","resizerEl","offsetEl","fixedOffsetEl","toolsGlobEl","getFrame","getFramesEl","getDocument","_getLocalEl","globalEl","compView","getGhostEl","getFixedOffsetViewerEl","setCustomBadgeLabel","topScroll","leftScroll","getTargetToElementDim","canvasPos","toRight","targetHeight","targetWidth","eventToTrigger","topPos","elementTop","elementLeft","elementWidth","elementHeight","canvasTop","canvasLeft","canvasWidth","canvasHeight","rectOff","getFrameElFromDoc","canvasRect","fullHeight","addTop","addLeft","subWinOffset","yOffset","xOffset","toIgnore","fr","getCurrentFrame","setZoom","setCoords","getCoords","addFrame","draggableComponents","disableTextInnerChilds","processor","voidElements","htmlType","defaultType","modelAttrStart","compTypes","getPropAttribute","attrName","attrValue","valueLen","lastChar","splitPropsFromAttr","propsResult","parseStyle","decls","decl","parseClass","cl","parseNode","nodes","attrsLen","nodePrev","nodeChild","ct","compType","namespaceURI","inSvg","void","comps","allTxt","foundTextNode","ci","cType","textTags","parserCss","cf","optionsHtml","parserHtml","DOMParser","mimeType","strF","parseFromString","BrowserParserHtml","allowScripts","allowUnsafeAttr","__clearUnsafeAttr","styleStr","resHtml","returnArray","extendStyle","propOrig","propNew","newStyle","noEvent","removeStyle","styleToString","imp","propPrv","getSelectors","getSelectorsString","selectorsToString","getFullString","getComponentIds","getComponentsFromDefs","visitedCmps","restAttr","addAttributes","newComponents","cmps","onAdd","resetChildren","newIds","idsToKeep","keepIds","resetFromString","cssc","allByID","allById","parsed","parseString","newCmps","getRules","newRule","__checkInnerChilds","isTemp","prevColl","Selectors","canRemoveStyle","rulesRemoved","it","__postRemove","df","componentTypes","Parser","parseHtml","componentsById","optsToPass","addCollection","isMult","processDef","__firstAdd","mdl","ccid","modelPr","$$typeof","avoidInline","Component","ensureInList","setClassRule","__postAdd","recursive","TYPE_CLASS","TYPE_ID","namePreEsc","escapeName","nameEsc","Selector","protected","isId","isClass","getFullName","getLabel","setLabel","getActive","setActive","objLen","combine","curr","getStyleable","getValid","noDisabled","combination","changeProp","initValue","targetEvent","targetUpdated","locale","getTargetValue","valueOpts","trait","setTargetValue","getDefault","getOptionId","getOptionLabel","optId","propName","fromTarget","getAttributes","valueToSet","valueTrue","valueFalse","setValueFromInput","final","toSet","getInitValue","build","buildFromString","optionsTarget","handleAdd","handleReset","Traits","tmOpts","tf","traits","eventDrag","keySymbols","keySymbol","keySymbolOvrd","keyUpdate","keyUpdateInside","removable","badgable","stylable","unstylable","highlightable","copyable","editable","layerable","selectable","hoverable","locked","dmode","updated","parentAttr","toPropagate","initClasses","initComponents","initTraits","initToolbar","initScriptProps","scriptUpdated","tagUpdated","attrUpdated","_idUpdated","__emitUpdateTlb","__propToParent","avoidUpdateStyle","__isSymbolOrInst","__initSymb","__hasUm","__changesUp","__propSelfToParent","setDragMode","$els","closestType","setClass","attrPrev","setAttributes","noClass","removeAttributes","attrArr","compAttr","optsAdd","getIdRule","setIdRule","noStyle","addId","__getSymbol","__getSymbols","classe","getClasses","classStr","__logSymbol","toUp","symbol","symbols","__symbReady","__upSymbProps","__isSymbol","__isSymbolTop","__isSymbolNested","symbTopSelf","__getSymbTop","symbTop","__getAllById","symb","symbs","__isSymbOvrd","ovrd","prp","__getSymbToUp","fromInstance","noPropagate","propsChanged","__upSymbCls","__upSymbComps","optUp","toUpOpts","addSymb","addedInstances","toAppend","addedInst","addedTop","symbolInv","isSymbNested","toUpFn","symbPrnt","newMods","attrCls","toListen","clsArr","normalizeClasses","addChild","avoidChildren","__loadTraits","prevProps","newProps","prevPropsEv","newPropsEv","__scriptPropsChange","getLastChild","tb","traitsI","getTraits","setTraits","getTrait","updateTrait","getTraitIndex","removeTrait","addTrait","clm","_inner","cloned","newId","defName","nameTag","i18nPfx","i18nName","i18nNameTag","i18nDefName","customName","noCustom","sTag","customAttr","getAttrToHTML","withProps","valueRes","altQuoteAttr","attrString","getInnerHTML","__innerHTML","getChangedProps","setId","getCurrentView","modelProps","scrStr","reg","onAll","clb","forEachChild","rmOpts","sameParent","isInstanceOf","byType","resetId","oldId","_getStyleRule","idS","_getStyleSelector","idUpdate","idPrev","getList","getDefaults","nextId","getIncrementId","getNewId","ilen","uid","dm","checkId","childrenView","sameFrameView","getTypes","viewObject","logError","parentEl","modelOpt","updateStyle","renderAttributes","updateHighlight","updateStatus","updateContent","handleChange","onActive","onDisable","avoidRender","getEvents","dragstart","_clbObj","__isDraggable","handleDragStart","updateClasses","importClasses","renderChildren","chgArr","selectedCls","selectedParentCls","freezedCls","hoveredCls","noPointerCls","selCls","noExtHl","avoidHover","clsStr","isTextable","hl","onAttrUpdate","updateAttributes","textable","defaultAttr","contenteditable","hasComps","getChildrenContainer","prevDef","getChildrenSelector","getTemplate","gtop","gleft","assignRect","isInViewport","elDoc","_setData","postRender","columns","rows","rowsToAdd","columnsToAdd","svgAttrs","ratioDefault","cmdName","hasButtonBool","getSrcResult","isDefaultSrc","srcDef","parseUri","uri","URL","hostname","protocol","port","qrs","pair","getQueryObject","defs","mapUrl","mapType","frameborder","parseFromSrc","updateSrc","getMapUrl","addr","qr","q","z","dblclick","classEmpty","fetchFile","fu","Assets","FileUploader","uploadFile","asset","complete","getSrc","onError","noDrag","getIframe","ifrm","frameBorder","updateContentText","syncContent","rte","RichTextEditor","fromDisable","disableEditing","canActivate","rteEnabled","sameInEdit","getEditing","isInnerText","getContent","lastContent","activeRte","toggleEvents","contentOpt","customRte","parseContent","insertComponent","startContainer","startOffset","onInput","disablePropagation","mixins","setEditing","elDocs","yt","vi","ytnc","hasParam","videoId","provider","ytUrl","ytncUrl","viUrl","poster","muted","autoplay","controls","color","modestbranding","sources","updateTraits","getYoutubeTraits","getVimeoTraits","getSourceTraits","prov","getYoutubeSrc","getYoutubeNoCookieSrc","getVimeoSrc","getProviderTrait","getAutoplayTrait","getLoopTrait","getControlsTrait","isYtProv","isYtncProv","isViProv","isExtProv","updateProvider","updateVideo","renderByProvider","videoEl","renderYoutube","renderYoutubeNoCookie","renderVimeo","renderSource","initVideoEl","scrCnt","scriptCount","svar","svarNext","svarFn","svarNextFn","createElementNS","__escapeContent","createComment","__getSrc","ComponentTableView","ComponentsView","componentHovered","selectAdd","selectRemove","getComponents","componentView","setComponents","addType","extendView","extendFn","extendFnView","extendType","extendViewType","typeToExtend","modelToExt","viewToExt","getExtendedObj","srcToExt","parentFn","removeType","getShallowWrapper","shallow","shallowEm","reason","srcModel","isTargetInside","getById","maxValue","MAX_VALUE","compCls","buildFromModel","codeJson","onlyMatched","matchedRules","mRules","buildFromRule","sortMediaObject","rulesStr","ruleStr","dump","selectorStrNoAdd","skipAdd","selectorsAdd","singleAtRule","__cleanSelector","getQueryLength","mediaQuery","itemsArr","mquery","getKey","CSS","ensureSelectors","atRuleType","typeStr","addSelector","selOpts","stateStr","skipState","allowEmpty","getDevice","deviceDefault","getState","stateValue","getStates","sngl","cmpId","ruleProps","wd","selAdd","a1S","a2S","parseCss","CssRules","slc","singleSel","checkNode","console","sl","newSels","le","selec","modelExists","styleUpdate","addRules","setRule","atRuleParams","addStyles","getRule","optRuleSel","media","getCurrentMedia","getClassRule","getComponentRules","rulesView","blocks","appendOnClick","category","activate","getMedia","getCategoryLabel","ctg","Categories","endDrag","dragend","__getModule","getSorter","validTarget","valid","__currentBlock","setDragHelper","__startDrag","handleDrag","__drag","__endDrag","clsAdd","caretR","caretD","iconClass","activeClass","updateVisibility","getIconEl","getBlocksEl","iconEl","blocksEl","categories","renderedCategories","noCatClass","blockContClass","catsClass","updateConfig","ignoreCategories","catModel","catId","getCategoriesEl","catView","catsEl","evDrag","Block","Category","blocksVisible","bhv","__getBehaviour","_dragBlock","dragResult","oldKey","oldActive","toActive","__getFrameViews","_bhv","fv","blocksView","getAllVisible","getCategories","toRender","external","colls","iconAdd","iconSync","iconTagOn","iconTagOff","iconTagRemove","componentFirst","State","inputProp","getInputEl","inputEl","startEditTag","endEditTag","rename","innerText","changeStatus","removeTag","removeSelected","$chk","stateInputId","stateInputC","componentChanged","checkSync","__handleStateChange","renderClasses","tagRemoved","renderStates","labelInfo","labelHead","syncStyle","getTarget","cssC","getCommonSelectors","ruleComponents","getTargets","ruleComponent","updateStateVis","addToClasses","startNewTag","$addBtn","$input","endNewTag","onInputKeyUp","addNewTag","checkStates","statesEl","targets","trgs","validSelectors","__getCommonSelectors","_commonSelectors","__common","hasStyle","$btnSyncEl","getStatesC","updateSelector","elSel","__getName","selectedName","idRes","stateChanged","addSelected","$states","$statesC","labelStates","tmpOpts","renderRes","$classes","evState","cFirst","__update","__updateSelectedByComponents","__ctn","selTags","selectorTags","cOpts","cname","selModel","getSelector","newName","setState","setStates","__getCommon","duplicateSelected","commonSelectors","styleToApply","suffix","newSelector","getSelectedTargets","setComponentFirst","getComponentFirst","atRuleKeys","singleAtRules","singleAtRulesNames","parseSelector","propValue","getPropertyPriority","parseCondition","conditionText","selectorText","createNode","selLen","lastClass","stateArr","cssRules","keyText","isSingleAtRule","subRules","lens","subRule","selsParsed","selsAdd","selsArr","lastRule","len3","selsAddStr","sheet","parsedNode","classSets","classSet","autosave","autoload","stepsBeforeSave","recovery","onStore","checkLocal","remote","headers","urlStore","urlLoad","contentTypeJson","fetchOptions","credentials","hasLocal","localStorage","setItem","getItem","thr","_typeof","then","AggregateError","errors","message","P","rejectionReasons","catch","ex","setTimeoutFunc","Promise","_state","_handled","_deferreds","doResolve","deferred","_immediateFn","onFulfilled","onRejected","promise","finale","_unhandledRejectionFn","Handler","prom","promiseFinally","allSettled","race","setImmediate","rej","XMLHttpRequest","withCredentials","statusText","responseText","upload","onProgress","onprogress","send","request","__props","parsable","typeJson","fetchOpts","reqHead","typeHead","FormData","eventStart","eventAfter","eventEnd","eventError","STORAGE_LOCAL","STORAGE_REMOTE","storages","setCurrent","isAutosave","setAutosave","getStepsBeforeSave","setStepsBeforeSave","storage","getStorages","getCurrent","currentStorage","getCurrentStorage","getStorageOptions","getCurrentOptions","getRecoveryStorage","recoveryOpts","__exec","recoveryStorage","recoveryData","__askRecovery","getRecovery","confirm","response","toStore","__clearKeys","onAfter","itemKey","canAutoload","appendInput","eventCapture","clsField","onValueChange","removeView","rerender","templateLabel","templateInput","getClbOpts","elInput","getInputElem","onUpdate","onEvent","onChange","getValueForTarget","setInputValue","postUpdate","renderLabel","tpl","createLabel","getModelValue","i18nAttr","getElInput","renderField","createInput","hasLabel","noLabel","tmpl","TraitView","updatedCollection","TraitsView","resultName","valResult","toInit","targetValue","handleModelChange","holderClass","inputClass","elementUpdated","__onInputChange","fromInput","plh","Input","contClass","validateInputValue","deepCheck","validObj","handleUnitChange","getUnitEl","handleKeyDown","upArrowClick","downArrowClick","unitEl","units","normalizeValue","downIncrement","moveIncrement","upIncrement","prValue","defValue","limitlessMax","limitlessMin","fixed","regFixed","valCopy","uN","InputNumber","keydown","inputNumber","$unit","defaultOpts","beforeShow","flat","showInput","showButtons","clickoutFiresChange","showInitial","showPalette","showPaletteOnly","hideAfterPaletteSelect","togglePaletteOnly","showSelectionPalette","localStorageKey","maxSelectionSize","cancelText","chooseText","togglePaletteMoreText","togglePaletteLessText","clearText","noColorSelectedText","preferredFormat","containerClassName","replacerClassName","showAlpha","palette","selectionPalette","spectrums","IE","rgbaSupport","backgroundColor","replaceInput","markup","gradientFix","dataID","spectrum","extra","spect","loadOpts","inputTypeColorSupport","_cachedResult","colorInput","localization","palettes","processNativeColorInputs","colorInputs","trimLeft","trimRight","tinyCounter","math","mathRound","mathMin","mathMax","mathRandom","tinycolor","rgb","format","named","matchers","rgba","hsl","hsla","hsv","hsva","hex8","convertHexToDecimal","parseIntFromHex","hex6","hex3","stringInputToObject","bound01","convertToPercentage","hsvToRgb","hue2rgb","hslToRgb","boundAlpha","inputToRGB","_originalInput","_r","_g","_b","_a","_roundA","_format","_gradientType","gradientType","_ok","_tc_id","isDark","getBrightness","isLight","getOriginalInput","getFormat","getAlpha","toRgb","setAlpha","toHsv","rgbToHsv","toHsvString","toHsl","rgbToHsl","toHslString","toHex","allow3Char","rgbToHex","toHexString","toHex8","rgbaToHex","toHex8String","toRgbString","toPercentageRgb","toPercentageRgbString","toName","hexNames","toFilter","secondColor","hex8String","secondHex8String","formatSet","formattedString","hasAlpha","_applyModification","lighten","brighten","darken","desaturate","saturate","greyscale","spin","_applyCombination","analogous","complement","monochromatic","splitcomplement","triad","tetrad","fromRatio","newColor","color1","color2","mix","w1","rgb1","rgb2","w2","readability","c1","c2","brightnessA","brightnessB","colorDiff","brightness","isReadable","mostReadable","baseColor","colorList","bestColor","bestScore","bestIsReadable","readable","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","flipped","flip","paletteTemplate","tiny","swatchStyle","callbackContext","instanceOptions","resize","reflow","throttler","isDragging","isDefault","dragWidth","dragHeight","dragHelperHeight","slideHeight","alphaWidth","alphaSlideHelperWidth","slideHelperHeight","currentHue","currentSaturation","currentValue","currentAlpha","paletteArray","paletteLookup","draggingClass","shiftMovementDirection","boundElement","pickerContainer","dragHelper","slider","slideHelper","alphaSliderInner","alphaSlider","alphaSlideHelper","textInput","paletteContainer","initialColorContainer","cancelButton","clearButton","chooseButton","toggleButton","isInput","isInputTypeColor","shouldReplace","replacer","offsetElement","previewElement","initialColor","colorOnShow","currentPreferredFormat","applyOptions","updateSelectionPaletteFromStorage","oldPalette","addColorToSelectionPalette","inArray","drawPalette","currentColor","getUniqueSelectionPalette","drawInitial","setFromTextInput","updateOriginalInput","isDefaultPrevented","hideAll","$doc","onkeydown","clickout","updateUI","revert","ignoreFormatChange","newHsv","updateHelperLocations","flatColor","realColor","displayColor","realHex","realRgb","alpha","realAlpha","gradient","alphaX","slideY","fireCallback","picker","extraY","dpWidth","outerWidth","dpHeight","outerHeight","inputHeight","docElem","cW","cH","scL","scT","paletteElementClick","oldDragX","oldDragY","furtherFromX","paletteEvent","optionName","optionValue","coord","onmove","onstart","onstop","maxHeight","maxWidth","hasTouch","duringDragEvents","t0","rightclick","hex","pad2","clamp01","hue","slices","modification","isOnePointZero","processPercent","isPercentage","ColorPicker","getColor","colorEl","getColorEl","tc","valueClr","noneColor","movedColor","cpStyle","elToAppend","colorPickerConfig","colorPicker","noDefault","labelButton","TraitButtonView","typesDef","number","checkbox","upAll","__upSel","__onUp","getTraitsViewer","baseView","hidable","hideTextnode","showWrapper","showHover","scrollCanvas","scrollLayers","highlightHover","onInit","parentView","sortContainer","ignoreViewChildren","created","getSourceModel","forceChange","avoidSelectOnEnd","viewLayer","ItemView","opened","inputNameCls","clsTitleC","clsTitle","clsCaret","clsCount","clsMove","clsChildren","clsNoChild","clsEdit","clsNoEdit","initComponent","clsInput","gut","clsBase","checkChildren","updateOpening","updateLayerable","updateName","__render","getInputName","getVisibilityEl","eyeEl","hClass","toggleVisibility","setVisible","handleEdit","handleEditKey","handleEditEnd","inputName","clsOpen","clsChvOpen","getCaret","isOpen","toggleOpening","stopImmediatePropagation","setOpen","handleSelect","setLayerData","handleHover","hovered","handleHoverOut","_rendered","__clearItems","__isLayerable","evRoot","evComponent","styleOpts","propsToListen","__onRootChange","__onComponent","getRoot","prevDspKey","prevDisplay","updateLayer","setLocked","isLocked","getLayerData","cmpOpts","fromLayers","noAssets","uploadName","multiUpload","customFetch","embedAsBase64","beforeUpload","showUrlInput","dropzone","openAssetsOnDrop","dropzoneContent","getFilename","getExtension","Asset","unitDim","__getBhv","getPreview","getInfo","dim","AssetImageView","TypeableCollection","baseType","getBaseType","typeFound","recognizeType","typeView","isType","ModelInst","ViewInst","extendViewApi","renderAssets","addToAsset","removedAsset","deselectAll","handleSubmit","getAddInput","assetsEl","getAssetsEl","globalCollection","inputUrl","toggleNoAssets","addAsset","fuRendered","AssetsView","uploadId","disableUpload","FileUploaderView","onUploadStart","__propEv","onUploadEnd","onUploadError","onUploadResponse","fetchOptsResult","initDrop","that","uploadForm","ondragover","ondragleave","ondrop","initDropzone","addedCls","edEl","updatedCls","dropzoneCls","cleanEditorElCls","onDragLeave","promises","mimeTypeMatcher","Image","readAsDataURL","evOpen","evClose","evUpload","evUploadStart","evUploadEnd","evUploadError","evUploadRes","assetCmd","uploadStart","uploadEnd","uploadError","uploadResponse","assetsVis","assts","__viewParams","editorView","traitInputAttr","localeFallback","detectLocale","messages","en","addButton","inputPlh","uploadTitle","labels","comment","image","video","row","cell","desktop","tablet","mobileLandscape","mobilePortrait","titles","preview","fullscreen","emptyState","hover","layer","fileButton","sectors","general","layout","typography","decorations","flex","dimension","false","_blank","recover","messagesAdd","addMessages","_localLang","setLocale","evObj","valuePrev","getLocale","getMessages","lang","_debug","setMessages","msg","localeFlb","lFlb","_getMsg","_addParams","nav","language","userLanguage","msgSet","elT","elL","borderOffset","freezeClass","relative","offTop","offLeft","selectOnEnd","getScale","getDocuments","dropModel","dropContent","updateTextViewCursorPosition","targetDoc","caretRangeFromPoint","poiner","rangeParent","rangeOffset","setContentEditable","activeTextModel","toggleSortCursor","clonedEl","moveDragHelper","posY","posX","dragHelperStyle","createPlaceholder","ins","prevTarget","sourceEl","clearSelection","getTargetModel","isTextableActive","tempModel","selectTargetModel","targetModel","dsp","eO","rY","rX","mousePos","eventMove","sourceModel","dimsFromTarget","lastDims","findPosition","disableTextable","movePlaceholder","prevTargetDim","$plh","isInFlow","styleInFlow","$parent","overflow","propFloat","trgModel","dragInfo","dropInfo","targetP","validResult","getDim","cacheDimsP","getChildrenDim","cacheDims","nearBorders","targetParent","getTargetFromEl","targetPrev","nearElBorders","getCurrentPos","offsets","elIndex","dirValue","indexEl","leftLimit","xLimit","yLimit","xCenter","yCenter","dimDown","trgDim","marg","margI","elDim","pT","pL","obj1","obj2","ancester","s1","toMoveArr","dst","modelToDrop","srcEl","warns","targetCollection","srcIndex","sameCollection","onUpdateContainer","minDim","maxDim","silentFrames","avoidContainerUpdate","tl","cr","bl","bc","br","setup","hdl","createHandler","toggleFrames","isHandler","getFocusedEl","getParentEl","getBoundingRect","updateContainer","forceShow","handleMouseDown","mouseFetch","parentRect","handlerAttr","clickedHandler","rectDim","startPos","parentDim","calc","updateRect","getSelectedHandler","elStyle","parentW","parentH","startW","startH","ratioActive","ratio","_mods","_scope","_MODIFIERS","control","_MAP","backspace","tab","return","esc","down","del","home","pageup","pagedown","_downKeys","compareArray","modifierMap","updateModifierKey","clearModifier","assignKey","resetModifiers","scope","mods","getKeys","getMods","shortcut","getScope","mi","setScope","deleteScope","isPressed","getPressedKeyCodes","multipleKeys","modifiersMatch","dispatch","keymaster","keymaps","defKeys","handlerRes","removeAll","backdrop","updateOpen","updateTitle","getCollector","$collector","$content","getTitle","$title","updateAttr","currAttr","_evData","titl","setTitle","onceOpen","getContentEl","swv","expt","osm","otm","ola","obl","ful","prv","togglable","runDefaultCommand","stopDefaultCommand","deactivateAllExceptOne","except","deactivateAll","fromCollection","disableAllButtons","disableAllButtonsExceptOne","Buttons","btn","listen","activeCls","disableCls","btnsVisCls","updateActive","checkActive","updateBtnsVis","updateClassName","updateDisable","fromListen","$buttons","commandName","noStop","clicked","toggleActive","appendContent","toggleVisible","resz","resLen","resBools","forContainer","styleWidth","styleHeight","buttonsView","appendEl","getPanelsEl","PanelsViewObj","removePanel","panelId","removeButton","getButton","disableButtons","optsCodeViewer","htmlOpts","cleanId","beforeEach","mapModel","scrProps","mapJs","autoFormat","autoFormatRange","noRefresh","CodeMirrorEditor","defaultViewer","generators","viewers","defGenerators","js","defViewers","loadDefaultGenerators","loadDefaultViewers","addGenerator","generator","getGenerator","getGenerators","addViewer","viewer","getViewer","getViewers","txtarea","updateViewer","getCode","genId","trackSelection","hasSkip","getChanged","hasUndo","chn","beforeCache","hasRedo","getInstance","getStack","getStackGroup","getGroupedStack","createItem","goToGroup","getPointer","goTo","adjustToolbar","RichTextEditorActionState","RTE_KEY","btnState","isValidTag","parentAnchor","parentFocus","customElAttr","defActions","bold","italic","underline","strikethrough","insertHTML","setEl","updateActiveActions","__onKeydown","__onPaste","acts","actionbar","inactive","isCustom","actionbarCont","actionbarContainer","addAction","styleWithCSS","getActions","currentState","INACTIVE","newState","queryCommandSupported","queryCommandState","ACTIVE","__dbdTrgCustom","enabled","__toggleEffects","actionbarEl","syncActions","textHtml","deleteContents","nd","insertNode","toSel","eventsUp","initRte","globalRte","hideToolbar","actionRes","updatePosition","rteInst","currentView","commandsDef","CommandAbstract","defaultCommands","selAll","nativeDrag","defComOptions","hideTlb","altMode","cmdMove","oldCmd","cmdObj","hideNotStylable","highlightChanged","highlightComputed","showComputed","clearProperties","avoidComputed","functionName","fixedValues","toRequire","requires","requiresParent","parentTarget","__upTargets","Property","callInit","__getParentProp","parentProp","isClear","__getFullValue","kProps","__getClearProps","toProps","applyStyle","__up","__trgEv","propertyUpdate","__upTargetsStyle","addStyleTargets","_up","noTarget","hasValue","getDefaultValue","parentValue","getParentTarget","hasValueParent","noParent","upValue","__parseValue","canClear","getParent","__canClearProp","isFull","parseValue","valueStr","numeric","num","withDefault","getFullValue","fnParameter","skipImportant","__setParentTarget","__parseFn","__checkVisibility","stylableReq","sector","getProperties","callParentInit","skipInit","isNumberType","detached","separator","fromStyle","toStyle","__upProperties","getProperty","getPropertyAt","isDetached","getValues","byName","getSeparator","getSplitSeparator","getJoin","__getJoin","getStyleFromProps","__clearIn","__upTargetsStyleProps","__setProperties","__getSplitValue","__styleHasProps","nameProps","__splitValue","__splitStyleName","props4Nums","__getPropsFromStyle","valuesStr","getIndex","getLayerLabel","isSelected","getSelectedLayer","selectLayer","removeLayer","moveLayer","getStylePreview","hasPreview","upValues","VALUES_REG","PARTS_REG","layerSeparator","layerJoin","layerLabel","selectedLayer","layersColl","__upSelected","__upLayers","getLayers","__getLayers","getLayer","__select","selectLayerAt","currIndex","addLayer","removeLayerAt","getStyleFromLayer","joinLayers","__getJoinLayers","newVal","getLayerSeparator","getStyleFromLayers","layerSelect","__layers","__setLayers","newLayers","layersNew","__parseLayer","parseFn","__getLayersFromStyle","separatorLayers","inLayer","clearProp","__destroyFn","iconClose","_getClbOpts","computedCls","labelEl","clearStyleEl","getClearEl","clearStyle","clearEl","inputValueChanged","emit","__setValueInput","clearCached","__unset","__change","__updateStyle","createdEl","clsType","propsView","iconMove","propertyView","pModel","updateLabel","removeItem","getPropertiesWrapper","propsWrapEl","getPreviewEl","previewEl","getLabelEl","prvEl","wrapEl","iconPlus","layersView","prvBoxEl","backgroundImage","openAssetManager","inputInst","__handleChange","addOption","propId","__onOptionChange","updateOptions","styleAttr","inputH","firstOpt","firstId","itemCls","elId","titleAttr","inputHld","inputIn","getUnits","getUnit","getMin","getMax","getStep","upUnit","valueProp","unitProp","getSliderEl","inputValueChangedSoft","propertyAdd","propertyRemove","builded","buildProperties","buildProps","extendProperties","checkExtend","propsModel","extendBuilded","withValue","withParentValue","addProperty","moProps","pLen","mProps","isolated","mProp","mPProps","buildP","builtIn","sect","typeNumber","typeColor","typeRadio","typeSelect","typeFile","typeSlider","typeComposite","typeStack","unitsSize","unitsSizeNoPerc","unitsTime","unitsAngle","ss","optsFlex","optsFlexAlign","optsBgSize","optsBgAttach","optsBgRepeat","optsWrap","optsOverflow","optsDir","opstDisplay","optsTransitFn","optsCursor","optsFloat","optsPos","optsTextAlign","optsJustCont","optsAlignCont","optsAlignSelf","optsTransitProp","optsBorderStyle","optsBgPos","optsWeight","optsShadowType","optsFonts","font","fixedFontSizes","fixedLetSpace","requireFlex","__sub","propsToCreate","spread","propToUp","fromRes","iconCaret","clsPfx","getPropertiesEl","renderProperties","objs","evSector","evSectorAdd","evSectorRemove","evSectorUpdate","evProp","evPropAdd","evPropRemove","evPropUp","evLayerSelect","evTarget","propDef","sectorAdd","sectorRemove","sectorUpdate","Sector","__clearStateTarget","upProps","__upProps","trgCustom","stateTarget","__getStateTarget","addSector","getSector","_logNoSector","getSectors","removeSector","sectorId","removeProperty","lastTarget","lastTargetParents","getParentRules","getSelectedParents","targetState","getBuiltIn","getBuiltInAll","addBuiltIn","smConf","hasClasses","useClasses","deviceW","cssGen","optsSel","cmpRules","otherRules","createType","SectView","parentStyles","__upProp","sectorVisible","hasVal","isStack","isComposite","canUpdate","parentItem","deps","storableDeps","Window","ar","logs","warning","__skip","defaultRunning","dragMode","toLog","attrsOrig","pageManager","constr","loadModule","loadStorableModule","updateChanges","_checkReady","listenLog","eventFrom","eventTo","editing","clipboard","previousModel","storables","modules","toLoad","loadOnStart","headless","loadData","_storageTimeout","EditorModel","stm","getDirtyCount","updateItr","onbeforeunload","InitModule","Mod","handleUpdates","timedInterval","mltSel","multiple","toggleSelected","selColl","selIndex","getHovered","getJs","avoidProt","avoidProtected","protCss","storeData","Storage","clearDirtyCount","editingCmp","destroyAll","grapesjs","logNs","logInfo","initBaseColorPicker","varName","classNames","contEl","shallowCanvasEl","I18n","Keymaps","addComponents","getSelectedToStyle","selectToggle","setDevice","setCustomRte","setCustomParserCss","onReady","getPlugin","plugin","plugins","pluginId","wplg","getPluginById","logPluginWarn","plg","agent","isIE","DOMImplementation","createHTMLDocument","implementation","polyfills","usePlugin","pluginResult","initConfig","autorender","pluginsOpts","plgOptions"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"grapes.min.js","mappings":";CAAA,SAA2CA,EAAMC,GAChD,GAAsB,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,SACb,GAAqB,mBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,GAAIH,OACP,CACJ,IAAIK,EAAIL,IACR,IAAI,IAAIM,KAAKD,GAAuB,iBAAZJ,QAAuBA,QAAUF,GAAMO,GAAKD,EAAEC,EACvE,CACA,CATD,CASyB,oBAAfC,WAA6BA,WAAgC,oBAAXC,OAAyBA,OAASC,MAAO,I,2BCTrG,UAYK,IAEH,EAAO,CAAC,MAAc,aAAoB,0BAAP,EAWlC,SAAUC,EAAGC,GAEf,IAAIC,EAAaC,MAAMC,UAAUC,MAUjC,SAASC,EAAOC,EAAIC,EAAKC,GACxB,OAAOA,EAAKC,QAAU,EACrBH,EAAGI,KAAKH,EAAKC,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAC7CF,EAAGD,MAAME,EAAKC,EAChB,CASA,SAASJ,EAAOO,EAAKC,GACpB,OAAOX,EAAWS,KAAKC,EAAKC,EAC7B,CAcA,SAASC,EAASC,EAAKC,GACtB,OAAW,MAAPD,IACCf,EAAEiB,QAAQD,KACdA,EAAOX,EAAMa,UAAW,IAElBlB,EAAEmB,IAAIH,GAAM,SAAUI,GAC5B,OAAOA,KAAOL,CACf,IACD,CAQA,IAAIM,EAAsB,WAgBzB,IAAIC,GAAsB,EAAOC,GAAoB,EACrD,SAASC,IACRD,IACAD,GAAsB,EACtBtB,EAAEyB,OAAM,WAIPH,GAAsB,CACvB,GACD,CACA,OAAO,WAIN,OAHKA,GACJE,IAEMD,CACR,CACA,CAjCyB,GAyC1B,SAASG,IAcR3B,KAAK4B,kBAAoB,GAKzB5B,KAAK6B,WAAa,EACnB,CAyEA,SAASC,EAAMC,EAAOC,EAASxB,EAAIC,GAClC,IAAK,IAA+BO,EAA3BnB,EAAI,EAAGoC,EAAID,EAAQrB,OAAad,EAAIoC,EAAGpC,IAE/C,GADAmB,EAAMgB,EAAQnC,GACd,CACA,GAAc,OAAVkC,GACH,IAAKtB,EAAIyB,eAAeC,SAASnB,GAEhC,cAGD,IAAKP,EAAIyB,eAAeE,WAAWpB,GAElC,SAGEf,EAAEoC,WAAWrB,EAAIe,KACpBf,EAAIe,GAAO,MAAOvB,EAAIC,EAbL,CAgBpB,CASA,SAAS6B,EAAgBP,EAAOQ,GAC/B,IAAIC,EAAOD,EAAOC,KAAMC,EAAYF,EAAOE,UAAWjC,GAAMiC,EAAUD,IAASC,EAAUD,GAAMT,GAC3F9B,EAAEoC,WAAW7B,IAChBA,EAAG+B,EAAOG,OAAQH,EAAOI,OAAQJ,EAAOK,MAAOL,EAAOM,QAExD,CAYA,SAASC,EAAiBf,EAAOgB,EAASC,EAAOC,EAAOC,GACvD,KAAIF,EAAMG,wBACE,SAAVpB,IAAuC,IAAnBiB,EAAMI,SAChB,SAAVrB,GAAoBiB,EAAMI,UAAYJ,EAAMrC,OAAS,GAFvD,CAOAqC,EAAMG,wBAAyB,EAC/B,IAAIZ,EAAQc,EAASC,EAAmB,SAAVvB,EAc9B,IAbImB,EAEHG,EAAUC,GAAUN,EAAMI,UAAYJ,EAAMrC,OAAS,IAChD2C,IAA6B,IAAnBN,EAAMI,QACjBnD,EAAEsD,MAAMP,EAAMQ,QACdrD,EAAWI,MAAMyC,EAAMQ,OAAQF,EAAS,CAAC,EAAGN,EAAMI,SAAW,CAACJ,EAAMI,QAASJ,EAAMrC,OAAS,KAGhG4B,EAASS,EAAMS,GAAGH,EAASN,EAAMI,QAAUJ,EAAMI,QAAU,GAC3DC,EAAUJ,EAAQD,EAAMU,MAAM,CAAC,iBAAoBnB,EAAOoB,IAAI,sBAAwB,CAACpB,IAGxFS,EAAMI,UAAYE,GAAU,EAAI,GAAKD,EAAQ1C,OACtC4B,EAASe,EAASD,EAAQO,MAAQP,EAAQQ,SAEhDtB,EAAOR,KAERiB,EAAMG,wBAAyB,EAE/BJ,EAAQe,QAAQ/B,EAAOgB,EAtBvB,CAuBD,CAaA,SAASgB,EAA4BC,EAAetD,GACnD,IAAIuD,EAAYD,EAAcC,UAAWzB,SAAcyB,EACvD,MAAgB,aAATzB,IAAwBjC,EAAM0D,EAAWD,EAAetD,GACrD,YAAT8B,GAAqByB,CACvB,CAWA,SAASC,EAAWlB,EAAOR,EAAM9B,EAAM+B,GACtC,GAAIO,EAAMmB,QAAUnB,EAAMG,wBAA0BX,KAAQC,GAC3DsB,EAA2BtB,EAAUD,GAAO9B,GAAO,CAEnD,IAAI0D,EAAM7D,EAAMkC,EAAUD,GAAM,MAAOC,EAAUD,GAAO9B,GACxD,GAAIK,EAAQqD,EAAK,SAAU,SAAU,SAAU,CAI9C,GAHAA,EAAI5B,KAAOA,EACX4B,EAAI5C,iBAAmBF,IACvB8C,EAAI3B,UAAYA,EACZO,EAAMI,QAAUJ,EAAMrC,OAAS,EAMlC,IADA,IAAI0D,EAAOrB,EAAMrC,OAASqC,EAAMI,QAAU,EACnCiB,KACNrB,EAAMY,MAGRZ,EAAMI,QAAUJ,EAAMrC,OACtBqC,EAAMsB,IAAIF,GACNpB,EAAMrC,OAASqC,EAAMuB,qBACxBvB,EAAMa,QACNb,EAAMI,UAER,CACD,CACD,CA1MAzB,EAAetB,UAAY,CAQ1BmE,aAAc,SAAUxD,GAIvB,OAAOA,GAAOA,EAAIyD,IAAMzE,KAAK4B,kBAAkBZ,EAAIyD,KAAOxE,EAAEyE,SAAS1E,KAAK4B,kBAAmBZ,EAC9F,EAQAmB,SAAU,SAAUnB,GACnB,OAAKhB,KAAKwE,aAAaxD,KAClBA,GAAOA,EAAIyD,KACdzE,KAAK4B,kBAAkBZ,EAAIyD,KAAOzD,EAClChB,KAAK6B,WAAW8C,KAAK3D,EAAIyD,MAEzBzE,KAAK4B,kBAAkB+C,KAAK3D,IAEtB,EAGT,EAQAoB,WAAY,SAAUpB,GACrB,GAAIhB,KAAKwE,aAAaxD,GAAM,CAC3B,GAAIA,GAAOA,EAAIyD,WACPzE,KAAK4B,kBAAkBZ,EAAIyD,KAClCzE,KAAK6B,WAAW+C,OAAO3E,EAAE4E,QAAQ7E,KAAK6B,WAAYb,EAAIyD,KAAM,OACtD,CACN,IAAI5E,EAAII,EAAE4E,QAAQ7E,KAAK4B,kBAAmBZ,GAC1ChB,KAAK4B,kBAAkBgD,OAAO/E,EAAG,EAClC,CACA,OAAO,CACR,CACA,OAAO,CACR,EAMA8D,IAAK,WACJ,OAAQ1D,EAAE6E,IAAI9E,KAAK6B,YAAY,SAAU4C,GAAM,OAAOzE,KAAK4B,kBAAkB6C,EAAK,GAAGzE,MAAO+E,OAAO/E,KAAK4B,kBACzG,GAqJD,IAAIoD,EAAY,CACf,IAAO,CACN,KAAQ,SAAUC,EAAYC,EAAQC,EAAOtC,GAE5CoC,EAAWG,OAAOD,EAAOtC,EAC1B,EACA,KAAQ,SAAUoC,EAAYC,EAAQC,EAAOtC,GAExCA,EAAQ/B,QACX+B,EAAQY,GAAKZ,EAAQ/B,OAEtBmE,EAAWX,IAAIa,EAAOtC,EACvB,EACA,GAAM,SAAUsC,EAAOF,EAAYpC,GAClC,MAAO,CACNH,OAAQuC,EACRtC,YAAQ0C,EACRzC,MAAOuC,EACPtC,QAAS5C,EAAEsD,MAAMV,GAEnB,GAED,OAAU,CACT,KAAQ,SAAUoC,EAAYE,EAAOD,EAAQrC,GACxC,UAAWA,IACdA,EAAQY,GAAKZ,EAAQ/B,OAEtBmE,EAAWX,IAAIa,EAAOtC,EACvB,EACA,KAAQ,SAAUoC,EAAYE,EAAOD,EAAQrC,GAC5CoC,EAAWG,OAAOD,EAAOtC,EAC1B,EACA,GAAM,SAAUsC,EAAOF,EAAYpC,GAClC,MAAO,CACNH,OAAQuC,EACRtC,OAAQwC,EACRvC,WAAOyC,EACPxC,QAAS5C,EAAEsD,MAAMV,GAEnB,GAED,OAAU,CACT,KAAQ,SAAUsC,EAAOxC,EAAQC,EAAOC,GACnC5C,EAAEqF,QAAQ3C,GACb1C,EAAEsF,KAAKtF,EAAEgB,KAAK2B,GAAQuC,EAAMK,MAAOL,IAEnCA,EAAMM,IAAI9C,GACNE,GAAWA,EAAQ6C,WAAa7C,EAAQ6C,UAAU/C,QAAUE,EAAQ6C,UAAU/C,OAAOhC,QACxFV,EAAEsF,KAAK1C,EAAQ6C,UAAU/C,OAAQwC,EAAMK,MAAOL,GAGjD,EACA,KAAQ,SAAUA,EAAOxC,EAAQC,EAAOC,GACnC5C,EAAEqF,QAAQ1C,GACb3C,EAAEsF,KAAKtF,EAAEgB,KAAK0B,GAASwC,EAAMK,MAAOL,IAEpCA,EAAMM,IAAI7C,GACNC,GAAWA,EAAQ6C,WAAa7C,EAAQ6C,UAAU9C,OAASC,EAAQ6C,UAAU9C,MAAMjC,QACtFV,EAAEsF,KAAK1C,EAAQ6C,UAAU9C,MAAOuC,EAAMK,MAAOL,GAGhD,EACA,GAAM,SAAUA,EAAOtC,GACtB,IACA8C,EAAkBR,EAAMS,oBACxBC,EAAY5F,EAAEgB,KAAK0E,GACnBG,EAAqB7F,EAAE8F,KAAKZ,EAAMW,qBAAsBD,GACxDG,EAAe/F,EAAEgB,KAAK6E,GACtBJ,GAAa7C,IAAYA,EAAU,CAAC,IAAI6C,UAAY,CACnD9C,MAAO,GACPD,OAAQ,IAqBT,OAlBIkD,EAAUlF,QAAUqF,EAAarF,SAEhCkF,EAAUlF,OAASqF,EAAarF,OAEnCV,EAAEsF,KAAKM,GAAW,SAAUI,GACrBA,KAAOH,GACZJ,EAAU/C,OAAOgC,KAAKsB,EAExB,GAAGjG,MAGHC,EAAEsF,KAAKS,GAAc,SAAUC,GACxBA,KAAON,GACZD,EAAU9C,MAAM+B,KAAKsB,EAEvB,KAGK,CACNvD,OAAQyC,EACRxC,OAAQmD,EACRlD,MAAO+C,EACP9C,QAAS5C,EAAEsD,MAAMV,GAEnB,GAED,MAAS,CACR,KAAQ,SAAUoC,EAAYtC,EAAQC,GACrCqC,EAAWiB,MAAMvD,EAClB,EACA,KAAQ,SAAUsC,EAAYtC,EAAQC,GACrCqC,EAAWiB,MAAMtD,EAClB,EACA,GAAM,SAAUqC,EAAYpC,GAC3B,MAAO,CACNH,OAAQuC,EACRtC,OAAQE,EAAQsD,eAChBvD,MAAO3C,EAAEsD,MAAM0B,EAAWzB,QAE5B,IAcF,SAAS4C,IAAmB,CAmB5B,SAASC,EAAoBC,EAAWC,EAAUC,EAAKC,GAKtD,GAAwB,iBAAbF,EAEV,OAAOtG,EAAEsF,KAAKgB,GAAU,SAAUN,EAAK5E,GACnB,IAAdiF,EAEHD,EAAoBC,EAAWL,EAAKO,EAAKC,GAGzCJ,EAAoBC,EAAWjF,EAAK4E,EAAKO,EAE3C,IAGF,OAAQF,GACP,KAAK,EACAvF,EAAQyF,EAAK,OAAQ,OAAQ,OAASvG,EAAEmB,IAAInB,EAAE8F,KAAKS,EAAK,OAAQ,OAAQ,MAAOvG,EAAEoC,cACpFoE,EAAkBF,GAAYC,GAEhC,MACA,KAAK,EACAC,EAAkBF,IAAatG,EAAEyG,SAASF,KAO7CC,EAAkBF,GAAYtG,EAAE0G,OAAO,CAAC,EAAGF,EAAkBF,GAAWC,IAE1E,MACA,KAAK,SACGC,EAAkBF,GAG3B,OAAOvG,IACR,CA1DAoG,EAAe/F,UAAY2E,EAkE3B,IAAI4B,EAAS1G,EAAS2G,MAAMF,OAAO,CAClCG,SAAU,CACTtE,KAAM,KACNE,OAAQ,KACRC,OAAQ,KACRC,MAAO,KACPpB,iBAAkB,MAQnBuF,KAAM,SAAUtE,GACfH,EAAe,OAAQtC,KAAKgH,WAC7B,EAMAC,KAAM,SAAUxE,GACfH,EAAe,OAAQtC,KAAKgH,WAC7B,IAMDE,EAAYhH,EAASiH,WAAWR,OAAO,CACtCxB,MAAOyB,EACPxD,SAAU,EACVe,OAAO,EACPhB,wBAAwB,EACxBoB,mBAAoB6C,IACpBC,aAAc,SAAUpB,GACvBjG,KAAKuE,mBAAqB0B,CAC3B,IAMDqB,EAAcpH,EAAS2G,MAAMF,OAAO,CACnCG,SAAU,CACTvC,mBAAoB6C,IACpBjD,OAAO,GASRoD,WAAY,SAAUC,GACrBxH,KAAKgD,MAAQ,IAAIkE,EACjBlH,KAAKkC,eAAiB,IAAIP,EAC1B3B,KAAKyC,UAAY,IAAI2D,EAGrBpG,KAAKgD,MAAMqE,aAAarH,KAAK2D,IAAI,uBACjC3D,KAAKyH,GAAG,6BAA6B,SAAUtC,EAAOuC,GACrD1H,KAAKgD,MAAMqE,aAAaK,EACzB,GAAG1H,MAGCwH,GAAQA,EAAKrD,OAChBnE,KAAK2H,gBAIFH,GAAQA,EAAKrF,WACZlC,EAAEiB,QAAQsG,EAAKrF,WAAalC,EAAE2H,YAAYJ,EAAKrF,UAClD5B,EAAMP,KAAKmC,SAAUnC,KAAMwH,EAAKrF,UAEhCnC,KAAKmC,SAASqF,EAAKrF,UAGtB,EAKAwF,cAAe,WACd3H,KAAKyF,IAAI,SAAS,GAClBzF,KAAKgD,MAAMmB,OAAQ,CACpB,EAKA0D,aAAc,WACb7H,KAAKyF,IAAI,SAAS,GAClBzF,KAAKgD,MAAMmB,OAAQ,CACpB,EAKA2D,WAAY,WACX,OAAO9H,KAAK2D,IAAI,QACjB,EASAoE,YAAa,SAAUvF,GACtB0B,EAAWlE,KAAKgD,MAAOR,EAAMlC,EAAMa,UAAW,GAAInB,KAAKyC,UACxD,EAMAN,SAAU,WACTL,EAAM,KAAMX,UAAWnB,KAAK+H,YAAa/H,KAC1C,EAMAoC,WAAY,WACXN,EAAM,MAAOX,UAAWnB,KAAK+H,YAAa/H,KAC3C,EAKAgI,cAAe,WACdzH,EAAMP,KAAKoC,WAAYpC,KAAMA,KAAKkC,eAAeyB,MAClD,EAMAoD,KAAM,SAAU9D,GACfH,EAAgB,OAAQ9C,KAAMA,KAAKgD,MAAOC,EAC3C,EAMAgF,QAAS,WACRnF,EAAgB,OAAQ9C,KAAMA,KAAKgD,OAAO,GAAO,EAClD,EAOAiE,KAAM,SAAUhE,GACfH,EAAgB,OAAQ9C,KAAMA,KAAKgD,MAAOC,EAC3C,EAMAiF,QAAS,WACRpF,EAAgB,OAAQ9C,KAAMA,KAAKgD,OAAO,GAAO,EAClD,EAMAmF,YAAa,SAAU3F,GACtB,IAAI4F,EAAIpI,KAAKgD,MAAOf,EAAImG,EAAEzH,OAE1B,OAAQ6B,GACP,IAAK,OAAQ,OAAOP,EAAI,GAAKmG,EAAEhF,SAAW,EAC1C,IAAK,OAAQ,OAAOnB,EAAI,GAAKmG,EAAEhF,QAAUnB,EAAI,EAC7C,QAAS,OAAO,EAElB,EAMAoG,MAAO,SAAUC,GAYhB,IADA,IAAoEvF,EAAhErC,EAAOT,EAAEiB,QAAQoH,GAAeA,EAAchI,EAAMa,WACjD4B,EAAUrC,EAAKkD,OACjBb,aAAmBuE,GACtBvE,EAAQC,iBAAiBkE,IAEzBnE,EAAQC,MAAQhD,KAAKgD,MAGxB,EAOAuF,YAAa,SAAU/F,EAAMgE,GAC5BH,EAAmB,EAAG7D,EAAMgE,EAAKxG,KAAKyC,UACvC,EAOA+F,eAAgB,SAAUhG,EAAMgE,GAC/BH,EAAmB,EAAG7D,EAAMgE,EAAKxG,KAAKyC,UACvC,EAMAgG,eAAgB,SAAUjG,GACzB6D,EAAmB,EAAG7D,OAAM6C,EAAWrF,KAAKyC,UAC7C,EAMAiG,MAAO,WACN1I,KAAKgD,MAAMkD,QACXlG,KAAKgD,MAAMI,SAAW,CACvB,IAwCD,OArCAnD,EAAE0G,OAAOW,EAAa,CAMrBR,SAAU,SAAU6B,GACnB1I,EAAE0G,OAAOW,EAAYjH,UAAUyG,SAAU6B,EAC1C,EAOA,YAAe,SAAUnG,EAAMgE,GAC9BH,EAAmB,EAAG7D,EAAMgE,EAAKxB,EAClC,EAOA,eAAkB,SAAUxC,EAAMgE,GACjCH,EAAmB,EAAG7D,EAAMgE,EAAKxB,EAClC,EAMA,eAAkB,SAAUxC,GAC3B6D,EAAmB,EAAG7D,OAAM6C,EAAWL,EACxC,IAGM9E,EAASoH,YAAcA,CAE/B,GAlzB4C,+B,gBCd5C,SAOA,SAAU/H,GAIR,IAAID,EAAsB,iBAARsJ,MAAoBA,KAAKA,OAASA,MAAQA,MACjC,iBAAV,EAAAC,GAAsB,EAAAA,EAAOC,SAAW,EAAAD,GAAU,EAAAA,EAGnE,GAAI,EACF,EAAO,CAAC,MAAc,OAAU,GAAY,EAAF,SAAW5I,EAAG8I,EAAGvJ,GAGzDF,EAAKY,SAcR,SAASZ,EAAMY,EAAUD,EAAG8I,GAO7B,IAAIC,EAAmB1J,EAAKY,SAGxBI,EAAQF,MAAMC,UAAUC,MAG5BJ,EAAS+I,QAAU,QAInB/I,EAAS6I,EAAIA,EAIb7I,EAASgJ,WAAa,WAEpB,OADA5J,EAAKY,SAAW8I,EACThJ,IACT,EAKAE,EAASiJ,aAAc,EAMvBjJ,EAASkJ,aAAc,EAevB,IAMIC,EANAC,EAASpJ,EAASoJ,OAAS,CAAC,EAG5BC,EAAgB,MAQhBC,EAAY,SAASC,EAAUC,EAAQC,EAAMC,EAAUC,GACzD,IAAWC,EAAPjK,EAAI,EACR,GAAI8J,GAAwB,iBAATA,EAAmB,MAEnB,IAAbC,GAAuB,YAAaC,QAAyB,IAAjBA,EAAKE,UAAoBF,EAAKE,QAAUH,GACxF,IAAKE,EAAQ7J,EAAEgB,KAAK0I,GAAO9J,EAAIiK,EAAMnJ,OAASd,IAC5C6J,EAASF,EAAUC,EAAUC,EAAQI,EAAMjK,GAAI8J,EAAKG,EAAMjK,IAAKgK,EAEnE,MAAO,GAAIF,GAAQJ,EAAcS,KAAKL,GAEpC,IAAKG,EAAQH,EAAKM,MAAMV,GAAgB1J,EAAIiK,EAAMnJ,OAAQd,IACxD6J,EAASD,EAASC,EAAQI,EAAMjK,GAAI+J,EAAUC,QAIhDH,EAASD,EAASC,EAAQC,EAAMC,EAAUC,GAE5C,OAAOH,CACT,EAIAJ,EAAO7B,GAAK,SAASkC,EAAMC,EAAUG,IACnC/J,KAAKkK,QAAUV,EAAUW,EAAOnK,KAAKkK,SAAW,CAAC,EAAGP,EAAMC,EAAU,CAClEG,QAASA,EACTtJ,IAAKT,KACLoK,UAAWf,IAGTA,MACcrJ,KAAKqK,aAAerK,KAAKqK,WAAa,CAAC,IAC7ChB,EAAWiB,IAAMjB,EAG3BA,EAAWkB,SAAU,GAGvB,OAAOvK,IACT,EAKAsJ,EAAOkB,SAAW,SAASxJ,EAAK2I,EAAMC,GACpC,IAAK5I,EAAK,OAAOhB,KACjB,IAAIsK,EAAKtJ,EAAIyJ,YAAczJ,EAAIyJ,UAAYxK,EAAEyK,SAAS,MAClDC,EAAc3K,KAAK4K,eAAiB5K,KAAK4K,aAAe,CAAC,GACzDR,EAAYf,EAAasB,EAAYL,GAIpCF,IACHpK,KAAKyK,YAAczK,KAAKyK,UAAYxK,EAAEyK,SAAS,MAC/CN,EAAYf,EAAasB,EAAYL,GAAM,IAAIO,EAAU7K,KAAMgB,IAIjE,IAAI8J,EAAQC,EAAW/J,EAAK2I,EAAMC,EAAU5J,MAG5C,GAFAqJ,OAAa,EAETyB,EAAO,MAAMA,EAIjB,OAFIV,EAAUG,SAASH,EAAU3C,GAAGkC,EAAMC,GAEnC5J,IACT,EAGA,IAAImK,EAAQ,SAAST,EAAQC,EAAMC,EAAU/G,GAC3C,GAAI+G,EAAU,CACZ,IAAIoB,EAAWtB,EAAOC,KAAUD,EAAOC,GAAQ,IAC3CI,EAAUlH,EAAQkH,QAAStJ,EAAMoC,EAAQpC,IAAK2J,EAAYvH,EAAQuH,UAClEA,GAAWA,EAAUa,QAEzBD,EAASrG,KAAK,CAACiF,SAAUA,EAAUG,QAASA,EAAStJ,IAAKsJ,GAAWtJ,EAAK2J,UAAWA,GACvF,CACA,OAAOV,CACT,EAIIqB,EAAa,SAAS/J,EAAK2I,EAAMC,EAAUG,GAC7C,IACE/I,EAAIyG,GAAGkC,EAAMC,EAAUG,EAGzB,CAFE,MAAOmB,GACP,OAAOA,CACT,CACF,EAMA5B,EAAO6B,IAAM,SAASxB,EAAMC,EAAUG,GACpC,OAAK/J,KAAKkK,SACVlK,KAAKkK,QAAUV,EAAU4B,EAAQpL,KAAKkK,QAASP,EAAMC,EAAU,CAC7DG,QAASA,EACTsB,UAAWrL,KAAKqK,aAGXrK,MANmBA,IAO5B,EAIAsJ,EAAOgC,cAAgB,SAAStK,EAAK2I,EAAMC,GACzC,IAAIe,EAAc3K,KAAK4K,aACvB,IAAKD,EAAa,OAAO3K,KAGzB,IADA,IAAIuL,EAAMvK,EAAM,CAACA,EAAIyJ,WAAaxK,EAAEgB,KAAK0J,GAChC9K,EAAI,EAAGA,EAAI0L,EAAI5K,OAAQd,IAAK,CACnC,IAAIuK,EAAYO,EAAYY,EAAI1L,IAIhC,IAAKuK,EAAW,MAEhBA,EAAUpJ,IAAImK,IAAIxB,EAAMC,EAAU5J,MAC9BoK,EAAUG,SAASH,EAAUe,IAAIxB,EAAMC,EAC7C,CAGA,OAFI3J,EAAEqF,QAAQqF,KAAc3K,KAAK4K,kBAAe,GAEzC5K,IACT,EAGA,IAAIoL,EAAS,SAAS1B,EAAQC,EAAMC,EAAU/G,GAC5C,GAAK6G,EAAL,CAEA,IACWI,EADPC,EAAUlH,EAAQkH,QAASsB,EAAYxI,EAAQwI,UAC/CxL,EAAI,EAGR,GAAK8J,GAASI,GAAYH,EAA1B,CAQA,IADAE,EAAQH,EAAO,CAACA,GAAQ1J,EAAEgB,KAAKyI,GACxB7J,EAAIiK,EAAMnJ,OAAQd,IAAK,CAE5B,IAAImL,EAAWtB,EADfC,EAAOG,EAAMjK,IAIb,IAAKmL,EAAU,MAIf,IADA,IAAIQ,EAAY,GACPC,EAAI,EAAGA,EAAIT,EAASrK,OAAQ8K,IAAK,CACxC,IAAIC,EAAUV,EAASS,GACvB,GACE7B,GAAYA,IAAa8B,EAAQ9B,UAC/BA,IAAa8B,EAAQ9B,SAAS+B,WAC5B5B,GAAWA,IAAY2B,EAAQ3B,QAEnCyB,EAAU7G,KAAK+G,OACV,CACL,IAAItB,EAAYsB,EAAQtB,UACpBA,GAAWA,EAAUe,IAAIxB,EAAMC,EACrC,CACF,CAGI4B,EAAU7K,OACZ+I,EAAOC,GAAQ6B,SAER9B,EAAOC,EAElB,CAEA,OAAOD,CAlCP,CAJE,IAAKI,EAAQ7J,EAAEgB,KAAKoK,GAAYxL,EAAIiK,EAAMnJ,OAAQd,IAChDwL,EAAUvB,EAAMjK,IAAI+L,SARL,CA8CrB,EAMAtC,EAAOuC,KAAO,SAASlC,EAAMC,EAAUG,GAErC,IAAIL,EAASF,EAAUsC,EAAS,CAAC,EAAGnC,EAAMC,EAAU5J,KAAKmL,IAAIY,KAAK/L,OAElE,MADoB,iBAAT2J,GAAgC,MAAXI,IAAiBH,OAAW,GACrD5J,KAAKyH,GAAGiC,EAAQE,EAAUG,EACnC,EAGAT,EAAO0C,aAAe,SAAShL,EAAK2I,EAAMC,GAExC,IAAIF,EAASF,EAAUsC,EAAS,CAAC,EAAGnC,EAAMC,EAAU5J,KAAKsL,cAAcS,KAAK/L,KAAMgB,IAClF,OAAOhB,KAAKwK,SAASxJ,EAAK0I,EAC5B,EAIA,IAAIoC,EAAU,SAAShH,EAAK6E,EAAMC,EAAUqC,GAC1C,GAAIrC,EAAU,CACZ,IAAIiC,EAAO/G,EAAI6E,GAAQ1J,EAAE4L,MAAK,WAC5BI,EAAMtC,EAAMkC,GACZjC,EAASrJ,MAAMP,KAAMmB,UACvB,IACA0K,EAAKF,UAAY/B,CACnB,CACA,OAAO9E,CACT,EAMAwE,EAAOxF,QAAU,SAAS6F,GACxB,IAAK3J,KAAKkK,QAAS,OAAOlK,KAI1B,IAFA,IAAIW,EAASuL,KAAKC,IAAI,EAAGhL,UAAUR,OAAS,GACxCD,EAAON,MAAMO,GACRd,EAAI,EAAGA,EAAIc,EAAQd,IAAKa,EAAKb,GAAKsB,UAAUtB,EAAI,GAGzD,OADA2J,EAAU4C,EAAYpM,KAAKkK,QAASP,OAAM,EAAQjJ,GAC3CV,IACT,EAGA,IAAIoM,EAAa,SAASC,EAAW1C,EAAMC,EAAUlJ,GACnD,GAAI2L,EAAW,CACb,IAAI3C,EAAS2C,EAAU1C,GACnB2C,EAAYD,EAAUjL,IACtBsI,GAAU4C,IAAWA,EAAYA,EAAUhM,SAC3CoJ,GAAQ6C,EAAc7C,EAAQhJ,GAC9B4L,GAAWC,EAAcD,EAAW,CAAC3C,GAAM5E,OAAOrE,GACxD,CACA,OAAO2L,CACT,EAKIE,EAAgB,SAAS7C,EAAQhJ,GACnC,IAAI8L,EAAI3M,GAAK,EAAGoC,EAAIyH,EAAO/I,OAAQ8L,EAAK/L,EAAK,GAAIgM,EAAKhM,EAAK,GAAIiM,EAAKjM,EAAK,GACzE,OAAQA,EAAKC,QACX,KAAK,EAAG,OAASd,EAAIoC,IAAIuK,EAAK9C,EAAO7J,IAAI+J,SAAShJ,KAAK4L,EAAG/L,KAAM,OAChE,KAAK,EAAG,OAASZ,EAAIoC,IAAIuK,EAAK9C,EAAO7J,IAAI+J,SAAShJ,KAAK4L,EAAG/L,IAAKgM,GAAK,OACpE,KAAK,EAAG,OAAS5M,EAAIoC,IAAIuK,EAAK9C,EAAO7J,IAAI+J,SAAShJ,KAAK4L,EAAG/L,IAAKgM,EAAIC,GAAK,OACxE,KAAK,EAAG,OAAS7M,EAAIoC,IAAIuK,EAAK9C,EAAO7J,IAAI+J,SAAShJ,KAAK4L,EAAG/L,IAAKgM,EAAIC,EAAIC,GAAK,OAC5E,QAAS,OAAS9M,EAAIoC,IAAIuK,EAAK9C,EAAO7J,IAAI+J,SAASrJ,MAAMiM,EAAG/L,IAAKC,GAAO,OAE5E,EAIImK,EAAY,SAAS+B,EAAU5L,GACjChB,KAAKsK,GAAKsC,EAASnC,UACnBzK,KAAK4M,SAAWA,EAChB5M,KAAKgB,IAAMA,EACXhB,KAAKuK,SAAU,EACfvK,KAAKiL,MAAQ,EACbjL,KAAKkK,aAAU,CACjB,EAEAW,EAAUxK,UAAUoH,GAAK6B,EAAO7B,GAMhCoD,EAAUxK,UAAU8K,IAAM,SAASxB,EAAMC,GACvC,IAAIgC,EACA5L,KAAKuK,SACPvK,KAAKkK,QAAUV,EAAU4B,EAAQpL,KAAKkK,QAASP,EAAMC,EAAU,CAC7DG,aAAS,EACTsB,eAAW,IAEbO,GAAW5L,KAAKkK,UAEhBlK,KAAKiL,QACLW,EAAyB,IAAf5L,KAAKiL,OAEbW,GAAS5L,KAAK4L,SACpB,EAGAf,EAAUxK,UAAUuL,QAAU,kBACrB5L,KAAK4M,SAAShC,aAAa5K,KAAKgB,IAAIyJ,WACtCzK,KAAKuK,gBAAgBvK,KAAKgB,IAAIqJ,WAAWrK,KAAKsK,GACrD,EAGAhB,EAAOyC,KAASzC,EAAO7B,GACvB6B,EAAOuD,OAASvD,EAAO6B,IAIvBlL,EAAE0G,OAAOzG,EAAUoJ,GAYnB,IAAIzC,EAAQ3G,EAAS2G,MAAQ,SAASG,EAAYnE,GAChD,IAAIiK,EAAQ9F,GAAc,CAAC,EAC3BnE,IAAYA,EAAU,CAAC,GACvB7C,KAAK+M,cAAcxM,MAAMP,KAAMmB,WAC/BnB,KAAKyE,IAAMxE,EAAEyK,SAAS1K,KAAKgN,WAC3BhN,KAAKgH,WAAa,CAAC,EACfnE,EAAQoC,aAAYjF,KAAKiF,WAAapC,EAAQoC,YAC9CpC,EAAQoK,QAAOH,EAAQ9M,KAAKiN,MAAMH,EAAOjK,IAAY,CAAC,GAC1D,IAAIiE,EAAW7G,EAAEiN,OAAOlN,KAAM,YAC9B8M,EAAQ7M,EAAE6G,SAAS7G,EAAE0G,OAAO,CAAC,EAAGG,EAAUgG,GAAQhG,GAClD9G,KAAKyF,IAAIqH,EAAOjK,GAChB7C,KAAKmN,QAAU,CAAC,EAChBnN,KAAKuH,WAAWhH,MAAMP,KAAMmB,UAC9B,EAGAlB,EAAE0G,OAAOE,EAAMxG,UAAWiJ,EAAQ,CAGhC6D,QAAS,KAGTC,gBAAiB,KAIjBC,YAAa,KAIbL,UAAW,IAIXD,cAAe,WAAW,EAI1BxF,WAAY,WAAW,EAGvB+F,OAAQ,SAASzK,GACf,OAAO5C,EAAEsD,MAAMvD,KAAKgH,WACtB,EAIAuG,KAAM,WACJ,OAAOrN,EAASqN,KAAKhN,MAAMP,KAAMmB,UACnC,EAGAwC,IAAK,SAAS6D,GACZ,OAAOxH,KAAKgH,WAAWQ,EACzB,EAGAgG,OAAQ,SAAShG,GACf,OAAOvH,EAAEuN,OAAOxN,KAAK2D,IAAI6D,GAC3B,EAIAiG,IAAK,SAASjG,GACZ,OAAyB,MAAlBxH,KAAK2D,IAAI6D,EAClB,EAGAkG,QAAS,SAASZ,GAChB,QAAS7M,EAAEwJ,SAASqD,EAAO9M,KAAlBC,CAAwBD,KAAKgH,WACxC,EAKAvB,IAAK,SAASpE,EAAK4E,EAAKpD,GACtB,GAAW,MAAPxB,EAAa,OAAOrB,KAGxB,IAAI8M,EAWJ,GAVmB,iBAARzL,GACTyL,EAAQzL,EACRwB,EAAUoD,IAET6G,EAAQ,CAAC,GAAGzL,GAAO4E,EAGtBpD,IAAYA,EAAU,CAAC,IAGlB7C,KAAK2N,UAAUb,EAAOjK,GAAU,OAAO,EAG5C,IAAI2C,EAAa3C,EAAQ2C,MACrBoI,EAAa/K,EAAQ+K,OACrBC,EAAa,GACbC,EAAa9N,KAAK+N,UACtB/N,KAAK+N,WAAY,EAEZD,IACH9N,KAAKgO,oBAAsB/N,EAAEsD,MAAMvD,KAAKgH,YACxChH,KAAKmN,QAAU,CAAC,GAGlB,IAAIc,EAAUjO,KAAKgH,WACfmG,EAAUnN,KAAKmN,QACfe,EAAUlO,KAAKgO,oBAGnB,IAAK,IAAIxG,KAAQsF,EACf7G,EAAM6G,EAAMtF,GACPvH,EAAEkO,QAAQF,EAAQzG,GAAOvB,IAAM4H,EAAQlJ,KAAK6C,GAC5CvH,EAAEkO,QAAQD,EAAK1G,GAAOvB,UAGlBkH,EAAQ3F,GAFf2F,EAAQ3F,GAAQvB,EAIlBT,SAAeyI,EAAQzG,GAAQyG,EAAQzG,GAAQvB,EAIjD,GAAIjG,KAAKqN,eAAeP,EAAO,CAC7B,IAAIsB,EAASpO,KAAKsK,GAClBtK,KAAKsK,GAAKtK,KAAK2D,IAAI3D,KAAKqN,aACxBrN,KAAK8D,QAAQ,WAAY9D,KAAMoO,EAAQvL,EACzC,CAGA,IAAK+K,EAAQ,CACPC,EAAQlN,SAAQX,KAAKqO,SAAWxL,GACpC,IAAK,IAAIhD,EAAI,EAAGA,EAAIgO,EAAQlN,OAAQd,IAClCG,KAAK8D,QAAQ,UAAY+J,EAAQhO,GAAIG,KAAMiO,EAAQJ,EAAQhO,IAAKgD,EAEpE,CAIA,GAAIiL,EAAU,OAAO9N,KACrB,IAAK4N,EACH,KAAO5N,KAAKqO,UACVxL,EAAU7C,KAAKqO,SACfrO,KAAKqO,UAAW,EAChBrO,KAAK8D,QAAQ,SAAU9D,KAAM6C,GAKjC,OAFA7C,KAAKqO,UAAW,EAChBrO,KAAK+N,WAAY,EACV/N,IACT,EAIAwF,MAAO,SAASgC,EAAM3E,GACpB,OAAO7C,KAAKyF,IAAI+B,OAAM,EAAQvH,EAAE0G,OAAO,CAAC,EAAG9D,EAAS,CAAC2C,OAAO,IAC9D,EAGAkD,MAAO,SAAS7F,GACd,IAAIiK,EAAQ,CAAC,EACb,IAAK,IAAIzL,KAAOrB,KAAKgH,WAAY8F,EAAMzL,QAAO,EAC9C,OAAOrB,KAAKyF,IAAIqH,EAAO7M,EAAE0G,OAAO,CAAC,EAAG9D,EAAS,CAAC2C,OAAO,IACvD,EAIA8I,WAAY,SAAS9G,GACnB,OAAY,MAARA,GAAsBvH,EAAEqF,QAAQtF,KAAKmN,SAClClN,EAAEwN,IAAIzN,KAAKmN,QAAS3F,EAC7B,EAQA5B,kBAAmB,SAASvB,GAC1B,IAAKA,EAAM,QAAOrE,KAAKsO,cAAerO,EAAEsD,MAAMvD,KAAKmN,SACnD,IAEImB,EAFAC,EAAMvO,KAAK+N,UAAY/N,KAAKgO,oBAAsBhO,KAAKgH,WACvDmG,EAAU,CAAC,EAEf,IAAK,IAAI3F,KAAQnD,EAAM,CACrB,IAAI4B,EAAM5B,EAAKmD,GACXvH,EAAEkO,QAAQI,EAAI/G,GAAOvB,KACzBkH,EAAQ3F,GAAQvB,EAChBqI,GAAa,EACf,CACA,QAAOA,GAAanB,CACtB,EAIAqB,SAAU,SAAShH,GACjB,OAAY,MAARA,GAAiBxH,KAAKgO,oBACnBhO,KAAKgO,oBAAoBxG,GADsB,IAExD,EAIA1B,mBAAoB,WAClB,OAAO7F,EAAEsD,MAAMvD,KAAKgO,oBACtB,EAIAS,MAAO,SAAS5L,GACdA,EAAU5C,EAAE0G,OAAO,CAACsG,OAAO,GAAOpK,GAClC,IAAIsC,EAAQnF,KACR0O,EAAU7L,EAAQ6L,QAQtB,OAPA7L,EAAQ6L,QAAU,SAASC,GACzB,IAAIC,EAAc/L,EAAQoK,MAAQ9H,EAAM8H,MAAM0B,EAAM9L,GAAW8L,EAC/D,IAAKxJ,EAAMM,IAAImJ,EAAa/L,GAAU,OAAO,EACzC6L,GAASA,EAAQ9N,KAAKiC,EAAQkH,QAAS5E,EAAOwJ,EAAM9L,GACxDsC,EAAMrB,QAAQ,OAAQqB,EAAOwJ,EAAM9L,EACrC,EACAgM,EAAU7O,KAAM6C,GACT7C,KAAKuN,KAAK,OAAQvN,KAAM6C,EACjC,EAKAiM,KAAM,SAASzN,EAAK4E,EAAKpD,GAEvB,IAAIiK,EACO,MAAPzL,GAA8B,iBAARA,GACxByL,EAAQzL,EACRwB,EAAUoD,IAET6G,EAAQ,CAAC,GAAGzL,GAAO4E,EAItB,IAAI8I,GADJlM,EAAU5C,EAAE0G,OAAO,CAACqI,UAAU,EAAM/B,OAAO,GAAOpK,IAC/BkM,KAKnB,GAAIjC,IAAUiC,GACZ,IAAK/O,KAAKyF,IAAIqH,EAAOjK,GAAU,OAAO,OACjC,IAAK7C,KAAK2N,UAAUb,EAAOjK,GAChC,OAAO,EAKT,IAAIsC,EAAQnF,KACR0O,EAAU7L,EAAQ6L,QAClB1H,EAAahH,KAAKgH,WACtBnE,EAAQ6L,QAAU,SAASC,GAEzBxJ,EAAM6B,WAAaA,EACnB,IAAI4H,EAAc/L,EAAQoK,MAAQ9H,EAAM8H,MAAM0B,EAAM9L,GAAW8L,EAE/D,GADII,IAAMH,EAAc3O,EAAE0G,OAAO,CAAC,EAAGmG,EAAO8B,IACxCA,IAAgBzJ,EAAMM,IAAImJ,EAAa/L,GAAU,OAAO,EACxD6L,GAASA,EAAQ9N,KAAKiC,EAAQkH,QAAS5E,EAAOwJ,EAAM9L,GACxDsC,EAAMrB,QAAQ,OAAQqB,EAAOwJ,EAAM9L,EACrC,EACAgM,EAAU7O,KAAM6C,GAGZiK,GAASiC,IAAM/O,KAAKgH,WAAa/G,EAAE0G,OAAO,CAAC,EAAGK,EAAY8F,IAE9D,IAAImC,EAASjP,KAAKkP,QAAU,SAAWrM,EAAQsM,MAAQ,QAAU,SAClD,UAAXF,GAAuBpM,EAAQiK,QAAOjK,EAAQiK,MAAQA,GAC1D,IAAIsC,EAAMpP,KAAKuN,KAAK0B,EAAQjP,KAAM6C,GAKlC,OAFA7C,KAAKgH,WAAaA,EAEXoI,CACT,EAKAC,QAAS,SAASxM,GAChBA,EAAUA,EAAU5C,EAAEsD,MAAMV,GAAW,CAAC,EACxC,IAAIsC,EAAQnF,KACR0O,EAAU7L,EAAQ6L,QAClBK,EAAOlM,EAAQkM,KAEfM,EAAU,WACZlK,EAAMmG,gBACNnG,EAAMrB,QAAQ,UAAWqB,EAAOA,EAAMF,WAAYpC,EACpD,EAEAA,EAAQ6L,QAAU,SAASC,GACrBI,GAAMM,IACNX,GAASA,EAAQ9N,KAAKiC,EAAQkH,QAAS5E,EAAOwJ,EAAM9L,GACnDsC,EAAM+J,SAAS/J,EAAMrB,QAAQ,OAAQqB,EAAOwJ,EAAM9L,EACzD,EAEA,IAAIuM,GAAM,EAQV,OAPIpP,KAAKkP,QACPjP,EAAEyB,MAAMmB,EAAQ6L,UAEhBG,EAAU7O,KAAM6C,GAChBuM,EAAMpP,KAAKuN,KAAK,SAAUvN,KAAM6C,IAE7BkM,GAAMM,IACJD,CACT,EAKAE,IAAK,WACH,IAAIC,EACFtP,EAAEiN,OAAOlN,KAAM,YACfC,EAAEiN,OAAOlN,KAAKiF,WAAY,QAC1BuK,IACF,GAAIxP,KAAKkP,QAAS,OAAOK,EACzB,IAAIjF,EAAKtK,KAAK2D,IAAI3D,KAAKqN,aACvB,OAAOkC,EAAKE,QAAQ,SAAU,OAASC,mBAAmBpF,EAC5D,EAIA2C,MAAO,SAAS0B,EAAM9L,GACpB,OAAO8L,CACT,EAGApL,MAAO,WACL,OAAO,IAAIvD,KAAK2P,YAAY3P,KAAKgH,WACnC,EAGAkI,MAAO,WACL,OAAQlP,KAAKyN,IAAIzN,KAAKqN,YACxB,EAGAuC,QAAS,SAAS/M,GAChB,OAAO7C,KAAK2N,UAAU,CAAC,EAAG1N,EAAE0G,OAAO,CAAC,EAAG9D,EAAS,CAACmM,UAAU,IAC7D,EAIArB,UAAW,SAASb,EAAOjK,GACzB,IAAKA,EAAQmM,WAAahP,KAAKgP,SAAU,OAAO,EAChDlC,EAAQ7M,EAAE0G,OAAO,CAAC,EAAG3G,KAAKgH,WAAY8F,GACtC,IAAIhC,EAAQ9K,KAAKoN,gBAAkBpN,KAAKgP,SAASlC,EAAOjK,IAAY,KACpE,OAAKiI,IACL9K,KAAK8D,QAAQ,UAAW9D,KAAM8K,EAAO7K,EAAE0G,OAAO9D,EAAS,CAACuK,gBAAiBtC,MAClE,EACT,IAiBF,IAAI3D,EAAajH,EAASiH,WAAa,SAAS3D,EAAQX,GACtDA,IAAYA,EAAU,CAAC,GACvB7C,KAAK+M,cAAcxM,MAAMP,KAAMmB,WAC3B0B,EAAQsC,QAAOnF,KAAKmF,MAAQtC,EAAQsC,YACb,IAAvBtC,EAAQgN,aAAuB7P,KAAK6P,WAAahN,EAAQgN,YAC7D7P,KAAK8P,SACL9P,KAAKuH,WAAWhH,MAAMP,KAAMmB,WACxBqC,GAAQxD,KAAKkG,MAAM1C,EAAQvD,EAAE0G,OAAO,CAACiH,QAAQ,GAAO/K,GAC1D,EAGIkN,EAAa,CAACzL,KAAK,EAAMc,QAAQ,EAAMiD,OAAO,GAC9C2H,EAAa,CAAC1L,KAAK,EAAMc,QAAQ,GAGjCR,EAAS,SAASqL,EAAOC,EAAQzM,GACnCA,EAAKyI,KAAKiE,IAAIjE,KAAKC,IAAI1I,EAAI,GAAIwM,EAAMtP,QACrC,IAEId,EAFAuQ,EAAOhQ,MAAM6P,EAAMtP,OAAS8C,GAC5B9C,EAASuP,EAAOvP,OAEpB,IAAKd,EAAI,EAAGA,EAAIuQ,EAAKzP,OAAQd,IAAKuQ,EAAKvQ,GAAKoQ,EAAMpQ,EAAI4D,GACtD,IAAK5D,EAAI,EAAGA,EAAIc,EAAQd,IAAKoQ,EAAMpQ,EAAI4D,GAAMyM,EAAOrQ,GACpD,IAAKA,EAAI,EAAGA,EAAIuQ,EAAKzP,OAAQd,IAAKoQ,EAAMpQ,EAAIc,EAAS8C,GAAM2M,EAAKvQ,EAClE,EAGAI,EAAE0G,OAAOQ,EAAW9G,UAAWiJ,EAAQ,CAIrCnE,MAAO0B,EAKPkG,cAAe,WAAW,EAI1BxF,WAAY,WAAW,EAIvB+F,OAAQ,SAASzK,GACf,OAAO7C,KAAK8E,KAAI,SAASK,GAAS,OAAOA,EAAMmI,OAAOzK,EAAU,GAClE,EAGA0K,KAAM,WACJ,OAAOrN,EAASqN,KAAKhN,MAAMP,KAAMmB,UACnC,EAKAmD,IAAK,SAASd,EAAQX,GACpB,OAAO7C,KAAKyF,IAAIjC,EAAQvD,EAAE0G,OAAO,CAAC0B,OAAO,GAAQxF,EAASmN,GAC5D,EAGA5K,OAAQ,SAAS5B,EAAQX,GACvBA,EAAU5C,EAAE0G,OAAO,CAAC,EAAG9D,GACvB,IAAIwN,GAAYpQ,EAAEiB,QAAQsC,GAC1BA,EAAS6M,EAAW,CAAC7M,GAAUA,EAAOlD,QACtC,IAAIgQ,EAAUtQ,KAAKuQ,cAAc/M,EAAQX,GAKzC,OAJKA,EAAQ+K,QAAU0C,EAAQ3P,SAC7BkC,EAAQgL,QAAU,CAAC2C,MAAO,GAAIC,OAAQ,GAAIH,QAASA,GACnDtQ,KAAK8D,QAAQ,SAAU9D,KAAM6C,IAExBwN,EAAWC,EAAQ,GAAKA,CACjC,EAMA7K,IAAK,SAASjC,EAAQX,GACpB,GAAc,MAAVW,EAAJ,EAEAX,EAAU5C,EAAE0G,OAAO,CAAC,EAAGoJ,EAAYlN,IACvBoK,QAAUjN,KAAK0Q,SAASlN,KAClCA,EAASxD,KAAKiN,MAAMzJ,EAAQX,IAAY,IAG1C,IAAIwN,GAAYpQ,EAAEiB,QAAQsC,GAC1BA,EAAS6M,EAAW,CAAC7M,GAAUA,EAAOlD,QAEtC,IAAImD,EAAKZ,EAAQY,GACP,MAANA,IAAYA,GAAMA,GAClBA,EAAKzD,KAAKW,SAAQ8C,EAAKzD,KAAKW,QAC5B8C,EAAK,IAAGA,GAAMzD,KAAKW,OAAS,GAEhC,IAgBIwE,EAAOtF,EAhBP4F,EAAM,GACNkL,EAAQ,GACRC,EAAU,GACVC,EAAW,GACXC,EAAW,CAAC,EAEZxM,EAAMzB,EAAQyB,IACd+D,EAAQxF,EAAQwF,MAChBjD,EAASvC,EAAQuC,OAEjB2L,GAAO,EACPC,EAAWhR,KAAK6P,YAAoB,MAANpM,IAA+B,IAAjBZ,EAAQkO,KACpDE,EAAWhR,EAAEiR,SAASlR,KAAK6P,YAAc7P,KAAK6P,WAAa,KAK/D,IAAKhQ,EAAI,EAAGA,EAAI2D,EAAO7C,OAAQd,IAAK,CAClCsF,EAAQ3B,EAAO3D,GAIf,IAAIsR,EAAWnR,KAAK2D,IAAIwB,GACxB,GAAIgM,EAAU,CACZ,GAAI9I,GAASlD,IAAUgM,EAAU,CAC/B,IAAIrE,EAAQ9M,KAAK0Q,SAASvL,GAASA,EAAM6B,WAAa7B,EAClDtC,EAAQoK,QAAOH,EAAQqE,EAASlE,MAAMH,EAAOjK,IACjDsO,EAAS1L,IAAIqH,EAAOjK,GACpB+N,EAAQjM,KAAKwM,GACTH,IAAaD,IAAMA,EAAOI,EAAS7C,WAAW2C,GACpD,CACKH,EAASK,EAAS1M,OACrBqM,EAASK,EAAS1M,MAAO,EACzBgB,EAAId,KAAKwM,IAEX3N,EAAO3D,GAAKsR,CAGd,MAAW7M,IACTa,EAAQ3B,EAAO3D,GAAKG,KAAKoR,cAAcjM,EAAOtC,MAE5C8N,EAAMhM,KAAKQ,GACXnF,KAAKqR,cAAclM,EAAOtC,GAC1BiO,EAAS3L,EAAMV,MAAO,EACtBgB,EAAId,KAAKQ,GAGf,CAGA,GAAIC,EAAQ,CACV,IAAKvF,EAAI,EAAGA,EAAIG,KAAKW,OAAQd,IAEtBiR,GADL3L,EAAQnF,KAAKwD,OAAO3D,IACA4E,MAAMoM,EAASlM,KAAKQ,GAEtC0L,EAASlQ,QAAQX,KAAKuQ,cAAcM,EAAUhO,EACpD,CAGA,IAAIyO,GAAe,EACf7B,GAAWuB,GAAY1M,GAAOc,EAkBlC,GAjBIK,EAAI9E,QAAU8O,GAChB6B,EAAetR,KAAKW,SAAW8E,EAAI9E,QAAUV,EAAEsR,KAAKvR,KAAKwD,QAAQ,SAASgO,EAAG1Q,GAC3E,OAAO0Q,IAAM/L,EAAI3E,EACnB,IACAd,KAAKwD,OAAO7C,OAAS,EACrBiE,EAAO5E,KAAKwD,OAAQiC,EAAK,GACzBzF,KAAKW,OAASX,KAAKwD,OAAO7C,QACjBgQ,EAAMhQ,SACXqQ,IAAUD,GAAO,GACrBnM,EAAO5E,KAAKwD,OAAQmN,EAAa,MAANlN,EAAazD,KAAKW,OAAS8C,GACtDzD,KAAKW,OAASX,KAAKwD,OAAO7C,QAIxBoQ,GAAM/Q,KAAK+Q,KAAK,CAACnD,QAAQ,KAGxB/K,EAAQ+K,OAAQ,CACnB,IAAK/N,EAAI,EAAGA,EAAI8Q,EAAMhQ,OAAQd,IAClB,MAAN4D,IAAYZ,EAAQ/B,MAAQ2C,EAAK5D,IACrCsF,EAAQwL,EAAM9Q,IACRiE,QAAQ,MAAOqB,EAAOnF,KAAM6C,IAEhCkO,GAAQO,IAActR,KAAK8D,QAAQ,OAAQ9D,KAAM6C,IACjD8N,EAAMhQ,QAAUkQ,EAASlQ,QAAUiQ,EAAQjQ,UAC7CkC,EAAQgL,QAAU,CAChB2C,MAAOG,EACPL,QAASO,EACTJ,OAAQG,GAEV5Q,KAAK8D,QAAQ,SAAU9D,KAAM6C,GAEjC,CAGA,OAAOwN,EAAW7M,EAAO,GAAKA,CA/GJ,CAgH5B,EAMA0C,MAAO,SAAS1C,EAAQX,GACtBA,EAAUA,EAAU5C,EAAEsD,MAAMV,GAAW,CAAC,EACxC,IAAK,IAAIhD,EAAI,EAAGA,EAAIG,KAAKwD,OAAO7C,OAAQd,IACtCG,KAAKyR,iBAAiBzR,KAAKwD,OAAO3D,GAAIgD,GAMxC,OAJAA,EAAQsD,eAAiBnG,KAAKwD,OAC9BxD,KAAK8P,SACLtM,EAASxD,KAAKsE,IAAId,EAAQvD,EAAE0G,OAAO,CAACiH,QAAQ,GAAO/K,IAC9CA,EAAQ+K,QAAQ5N,KAAK8D,QAAQ,QAAS9D,KAAM6C,GAC1CW,CACT,EAGAmB,KAAM,SAASQ,EAAOtC,GACpB,OAAO7C,KAAKsE,IAAIa,EAAOlF,EAAE0G,OAAO,CAAClD,GAAIzD,KAAKW,QAASkC,GACrD,EAGAe,IAAK,SAASf,GACZ,IAAIsC,EAAQnF,KAAKyD,GAAGzD,KAAKW,OAAS,GAClC,OAAOX,KAAKoF,OAAOD,EAAOtC,EAC5B,EAGA6O,QAAS,SAASvM,EAAOtC,GACvB,OAAO7C,KAAKsE,IAAIa,EAAOlF,EAAE0G,OAAO,CAAClD,GAAI,GAAIZ,GAC3C,EAGAgB,MAAO,SAAShB,GACd,IAAIsC,EAAQnF,KAAKyD,GAAG,GACpB,OAAOzD,KAAKoF,OAAOD,EAAOtC,EAC5B,EAGAvC,MAAO,WACL,OAAOA,EAAMC,MAAMP,KAAKwD,OAAQrC,UAClC,EAIAwC,IAAK,SAAS3C,GACZ,GAAW,MAAPA,EACJ,OAAOhB,KAAK2R,MAAM3Q,IAChBhB,KAAK2R,MAAM3R,KAAK4R,QAAQ5R,KAAK0Q,SAAS1P,GAAOA,EAAIgG,WAAahG,EAAKA,EAAIqM,eACvErM,EAAIyD,KAAOzE,KAAK2R,MAAM3Q,EAAIyD,IAC9B,EAGAgJ,IAAK,SAASzM,GACZ,OAAwB,MAAjBhB,KAAK2D,IAAI3C,EAClB,EAGAyC,GAAI,SAAS3C,GAEX,OADIA,EAAQ,IAAGA,GAASd,KAAKW,QACtBX,KAAKwD,OAAO1C,EACrB,EAIA4C,MAAO,SAASoJ,EAAO+E,GACrB,OAAO7R,KAAK6R,EAAQ,OAAS,UAAU/E,EACzC,EAIAgF,UAAW,SAAShF,GAClB,OAAO9M,KAAK0D,MAAMoJ,GAAO,EAC3B,EAKAiE,KAAM,SAASlO,GACb,IAAIgN,EAAa7P,KAAK6P,WACtB,IAAKA,EAAY,MAAM,IAAIkC,MAAM,0CACjClP,IAAYA,EAAU,CAAC,GAEvB,IAAIlC,EAASkP,EAAWlP,OAUxB,OATIV,EAAEoC,WAAWwN,KAAaA,EAAaA,EAAW9D,KAAK/L,OAG5C,IAAXW,GAAgBV,EAAEiR,SAASrB,GAC7B7P,KAAKwD,OAASxD,KAAKgS,OAAOnC,GAE1B7P,KAAKwD,OAAOuN,KAAKlB,GAEdhN,EAAQ+K,QAAQ5N,KAAK8D,QAAQ,OAAQ9D,KAAM6C,GACzC7C,IACT,EAGAiS,MAAO,SAASzK,GACd,OAAOxH,KAAK8E,IAAI0C,EAAO,GACzB,EAKAiH,MAAO,SAAS5L,GAEd,IAAI6L,GADJ7L,EAAU5C,EAAE0G,OAAO,CAACsG,OAAO,GAAOpK,IACZ6L,QAClBzJ,EAAajF,KAQjB,OAPA6C,EAAQ6L,QAAU,SAASC,GACzB,IAAIM,EAASpM,EAAQqD,MAAQ,QAAU,MACvCjB,EAAWgK,GAAQN,EAAM9L,GACrB6L,GAASA,EAAQ9N,KAAKiC,EAAQkH,QAAS9E,EAAY0J,EAAM9L,GAC7DoC,EAAWnB,QAAQ,OAAQmB,EAAY0J,EAAM9L,EAC/C,EACAgM,EAAU7O,KAAM6C,GACT7C,KAAKuN,KAAK,OAAQvN,KAAM6C,EACjC,EAKAqP,OAAQ,SAAS/M,EAAOtC,GAEtB,IAAIkM,GADJlM,EAAUA,EAAU5C,EAAEsD,MAAMV,GAAW,CAAC,GACrBkM,KAEnB,KADA5J,EAAQnF,KAAKoR,cAAcjM,EAAOtC,IACtB,OAAO,EACdkM,GAAM/O,KAAKsE,IAAIa,EAAOtC,GAC3B,IAAIoC,EAAajF,KACb0O,EAAU7L,EAAQ6L,QAMtB,OALA7L,EAAQ6L,QAAU,SAAS8C,EAAG7C,EAAMwD,GAC9BpD,GAAM9J,EAAWX,IAAIkN,EAAGW,GACxBzD,GAASA,EAAQ9N,KAAKuR,EAAapI,QAASyH,EAAG7C,EAAMwD,EAC3D,EACAhN,EAAM2J,KAAK,KAAMjM,GACVsC,CACT,EAIA8H,MAAO,SAAS0B,EAAM9L,GACpB,OAAO8L,CACT,EAGApL,MAAO,WACL,OAAO,IAAIvD,KAAK2P,YAAY3P,KAAKwD,OAAQ,CACvC2B,MAAOnF,KAAKmF,MACZ0K,WAAY7P,KAAK6P,YAErB,EAGA+B,QAAS,SAAS9E,EAAOO,GACvB,OAAOP,EAAMO,GAAerN,KAAKmF,MAAM9E,UAAUgN,aAAe,KAClE,EAGA+E,OAAQ,WACN,OAAO,IAAIC,EAAmBrS,KAAMsS,EACtC,EAGArR,KAAM,WACJ,OAAO,IAAIoR,EAAmBrS,KAAMuS,EACtC,EAGAC,QAAS,WACP,OAAO,IAAIH,EAAmBrS,KAAMyS,EACtC,EAIA3C,OAAQ,WACN9P,KAAKW,OAAS,EACdX,KAAKwD,OAAS,GACdxD,KAAK2R,MAAS,CAAC,CACjB,EAIAP,cAAe,SAAStE,EAAOjK,GAC7B,OAAI7C,KAAK0Q,SAAS5D,IACXA,EAAM7H,aAAY6H,EAAM7H,WAAajF,MACnC8M,KAETjK,EAAUA,EAAU5C,EAAEsD,MAAMV,GAAW,CAAC,GAChCoC,WAAajF,MAInBmF,EADEnF,KAAKmF,MAAM9E,UACL,IAAIL,KAAKmF,MAAM2H,EAAOjK,GAGtB7C,KAAKmF,MAAM2H,EAAOjK,IAGjBuK,iBACXpN,KAAK8D,QAAQ,UAAW9D,KAAMmF,EAAMiI,gBAAiBvK,IAC9C,GAF4BsC,GARnC,IAAIA,CAWN,EAGAoL,cAAe,SAAS/M,EAAQX,GAE9B,IADA,IAAIyN,EAAU,GACLzQ,EAAI,EAAGA,EAAI2D,EAAO7C,OAAQd,IAAK,CACtC,IAAIsF,EAAQnF,KAAK2D,IAAIH,EAAO3D,IAC5B,GAAKsF,EAAL,CAEA,IAAIrE,EAAQd,KAAK6E,QAAQM,GACzBnF,KAAKwD,OAAOoB,OAAO9D,EAAO,GAC1Bd,KAAKW,gBAIEX,KAAK2R,MAAMxM,EAAMV,KACxB,IAAI6F,EAAKtK,KAAK4R,QAAQzM,EAAM6B,WAAY7B,EAAMkI,aACpC,MAAN/C,UAAmBtK,KAAK2R,MAAMrH,GAE7BzH,EAAQ+K,SACX/K,EAAQ/B,MAAQA,EAChBqE,EAAMrB,QAAQ,SAAUqB,EAAOnF,KAAM6C,IAGvCyN,EAAQ3L,KAAKQ,GACbnF,KAAKyR,iBAAiBtM,EAAOtC,EAlBT,CAmBtB,CACA,OAAOyN,CACT,EAIAI,SAAU,SAASvL,GACjB,OAAOA,aAAiB0B,CAC1B,EAGAwK,cAAe,SAASlM,EAAOtC,GAC7B7C,KAAK2R,MAAMxM,EAAMV,KAAOU,EACxB,IAAImF,EAAKtK,KAAK4R,QAAQzM,EAAM6B,WAAY7B,EAAMkI,aACpC,MAAN/C,IAAYtK,KAAK2R,MAAMrH,GAAMnF,GACjCA,EAAMsC,GAAG,MAAOzH,KAAK0S,cAAe1S,KACtC,EAGAyR,iBAAkB,SAAStM,EAAOtC,UACzB7C,KAAK2R,MAAMxM,EAAMV,KACxB,IAAI6F,EAAKtK,KAAK4R,QAAQzM,EAAM6B,WAAY7B,EAAMkI,aACpC,MAAN/C,UAAmBtK,KAAK2R,MAAMrH,GAC9BtK,OAASmF,EAAMF,mBAAmBE,EAAMF,WAC5CE,EAAMgG,IAAI,MAAOnL,KAAK0S,cAAe1S,KACvC,EAMA0S,cAAe,SAASC,EAAOxN,EAAOF,EAAYpC,GAChD,GAAIsC,EAAO,CACT,IAAe,QAAVwN,GAA6B,WAAVA,IAAuB1N,IAAejF,KAAM,OAEpE,GADc,YAAV2S,GAAqB3S,KAAKoF,OAAOD,EAAOtC,GAC9B,aAAV8P,EAAsB,CACxB,IAAIvE,EAASpO,KAAK4R,QAAQzM,EAAMW,qBAAsBX,EAAMkI,aACxD/C,EAAKtK,KAAK4R,QAAQzM,EAAM6B,WAAY7B,EAAMkI,aAChC,MAAVe,UAAuBpO,KAAK2R,MAAMvD,GAC5B,MAAN9D,IAAYtK,KAAK2R,MAAMrH,GAAMnF,EACnC,CACF,CACAnF,KAAK8D,QAAQvD,MAAMP,KAAMmB,UAC3B,IAOF,IAAIyR,EAA+B,mBAAXC,QAAyBA,OAAOC,SACpDF,IACFzL,EAAW9G,UAAUuS,GAAczL,EAAW9G,UAAU+R,QAU1D,IAAIC,EAAqB,SAASpN,EAAY8N,GAC5C/S,KAAKgT,YAAc/N,EACnBjF,KAAKiT,MAAQF,EACb/S,KAAKkT,OAAS,CAChB,EAKIZ,EAAkB,EAClBC,EAAgB,EAChBE,EAAsB,EAGtBG,IACFP,EAAmBhS,UAAUuS,GAAc,WACzC,OAAO5S,IACT,GAGFqS,EAAmBhS,UAAU8S,KAAO,WAClC,GAAInT,KAAKgT,YAAa,CAGpB,GAAIhT,KAAKkT,OAASlT,KAAKgT,YAAYrS,OAAQ,CACzC,IAII+G,EAJAvC,EAAQnF,KAAKgT,YAAYvP,GAAGzD,KAAKkT,QAKrC,GAJAlT,KAAKkT,SAIDlT,KAAKiT,QAAUX,EACjB5K,EAAQvC,MACH,CACL,IAAImF,EAAKtK,KAAKgT,YAAYpB,QAAQzM,EAAM6B,WAAY7B,EAAMkI,aAExD3F,EADE1H,KAAKiT,QAAUV,EACTjI,EAEA,CAACA,EAAInF,EAEjB,CACA,MAAO,CAACuC,MAAOA,EAAO0L,MAAM,EAC9B,CAIApT,KAAKgT,iBAAc,CACrB,CAEA,MAAO,CAACtL,WAAO,EAAQ0L,MAAM,EAC/B,EAeA,IAAIC,EAAOnT,EAASmT,KAAO,SAASxQ,GAClC7C,KAAKyE,IAAMxE,EAAEyK,SAAS,QACtB1K,KAAK+M,cAAcxM,MAAMP,KAAMmB,WAC/BlB,EAAE0G,OAAO3G,KAAMC,EAAE8F,KAAKlD,EAASyQ,IAC/BtT,KAAKuT,iBACLvT,KAAKuH,WAAWhH,MAAMP,KAAMmB,UAC9B,EAGIqS,EAAwB,iBAGxBF,EAAc,CAAC,QAAS,aAAc,KAAM,KAAM,aAAc,YAAa,UAAW,UAG5FrT,EAAE0G,OAAO0M,EAAKhT,UAAWiJ,EAAQ,CAG/BmK,QAAS,MAIT1K,EAAG,SAAS2K,GACV,OAAO1T,KAAK2T,IAAIC,KAAKF,EACvB,EAIA3G,cAAe,WAAW,EAI1BxF,WAAY,WAAW,EAKvBsM,OAAQ,WACN,OAAO7T,IACT,EAIAoF,OAAQ,WAGN,OAFApF,KAAK8T,iBACL9T,KAAKsL,gBACEtL,IACT,EAKA8T,eAAgB,WACd9T,KAAK2T,IAAIvO,QACX,EAIA2O,WAAY,SAASC,GAInB,OAHAhU,KAAKiU,mBACLjU,KAAKkU,YAAYF,GACjBhU,KAAKmU,iBACEnU,IACT,EAOAkU,YAAa,SAASE,GACpBpU,KAAK2T,IAAMS,aAAclU,EAAS6I,EAAIqL,EAAKlU,EAAS6I,EAAEqL,GACtDpU,KAAKoU,GAAKpU,KAAK2T,IAAI,EACrB,EAeAQ,eAAgB,SAASzK,GAEvB,GADAA,IAAWA,EAASzJ,EAAEiN,OAAOlN,KAAM,YAC9B0J,EAAQ,OAAO1J,KAEpB,IAAK,IAAIqB,KADTrB,KAAKiU,mBACWvK,EAAQ,CACtB,IAAIuF,EAASvF,EAAOrI,GAEpB,GADKpB,EAAEoC,WAAW4M,KAASA,EAASjP,KAAKiP,IACpCA,EAAL,CACA,IAAIoF,EAAQhT,EAAIgT,MAAMb,GACtBxT,KAAKsU,SAASD,EAAM,GAAIA,EAAM,GAAIpF,EAAOlD,KAAK/L,MAFzB,CAGvB,CACA,OAAOA,IACT,EAKAsU,SAAU,SAASC,EAAWb,EAAU9G,GAEtC,OADA5M,KAAK2T,IAAIlM,GAAG8M,EAAY,kBAAoBvU,KAAKyE,IAAKiP,EAAU9G,GACzD5M,IACT,EAKAiU,iBAAkB,WAEhB,OADIjU,KAAK2T,KAAK3T,KAAK2T,IAAIxI,IAAI,kBAAoBnL,KAAKyE,KAC7CzE,IACT,EAIAwU,WAAY,SAASD,EAAWb,EAAU9G,GAExC,OADA5M,KAAK2T,IAAIxI,IAAIoJ,EAAY,kBAAoBvU,KAAKyE,IAAKiP,EAAU9G,GAC1D5M,IACT,EAIAyU,eAAgB,SAAShB,GACvB,OAAOiB,SAASC,cAAclB,EAChC,EAMAF,eAAgB,WACd,GAAKvT,KAAKoU,GAORpU,KAAK+T,WAAW9T,EAAEiN,OAAOlN,KAAM,WAPnB,CACZ,IAAI8M,EAAQ7M,EAAE0G,OAAO,CAAC,EAAG1G,EAAEiN,OAAOlN,KAAM,eACpCA,KAAKsK,KAAIwC,EAAMxC,GAAKrK,EAAEiN,OAAOlN,KAAM,OACnCA,KAAK4U,YAAW9H,EAAM,SAAW7M,EAAEiN,OAAOlN,KAAM,cACpDA,KAAK+T,WAAW/T,KAAKyU,eAAexU,EAAEiN,OAAOlN,KAAM,aACnDA,KAAK6U,eAAe/H,EACtB,CAGF,EAIA+H,eAAgB,SAAS7N,GACvBhH,KAAK2T,IAAInM,KAAKR,EAChB,IAWF,IAAI8N,EAAY,SAASvF,EAAM5O,EAAQsO,EAAQ8F,GAC7C,OAAQpU,GACN,KAAK,EAAG,OAAO,WACb,OAAO4O,EAAKN,GAAQjP,KAAK+U,GAC3B,EACA,KAAK,EAAG,OAAO,SAASrN,GACtB,OAAO6H,EAAKN,GAAQjP,KAAK+U,GAAYrN,EACvC,EACA,KAAK,EAAG,OAAO,SAAS+B,EAAUM,GAChC,OAAOwF,EAAKN,GAAQjP,KAAK+U,GAAYC,EAAGvL,EAAUzJ,MAAO+J,EAC3D,EACA,KAAK,EAAG,OAAO,SAASN,EAAUwL,EAAYlL,GAC5C,OAAOwF,EAAKN,GAAQjP,KAAK+U,GAAYC,EAAGvL,EAAUzJ,MAAOiV,EAAYlL,EACvE,EACA,QAAS,OAAO,WACd,IAAIrJ,EAAOJ,EAAMM,KAAKO,WAEtB,OADAT,EAAKgR,QAAQ1R,KAAK+U,IACXxF,EAAKN,GAAQ1O,MAAMgP,EAAM7O,EAClC,EAEJ,EAEIwU,EAAuB,SAASC,EAAO5F,EAAM6F,EAASL,GACxD9U,EAAEsF,KAAK6P,GAAS,SAASzU,EAAQsO,GAC3BM,EAAKN,KAASkG,EAAM9U,UAAU4O,GAAU6F,EAAUvF,EAAM5O,EAAQsO,EAAQ8F,GAC9E,GACF,EAGIC,EAAK,SAASvL,EAAU4L,GAC1B,OAAIpV,EAAEoC,WAAWoH,GAAkBA,EAC/BxJ,EAAEyG,SAAS+C,KAAc4L,EAAS3E,SAASjH,GAAkB6L,EAAa7L,GAC1ExJ,EAAEiR,SAASzH,GAAkB,SAAStE,GAAS,OAAOA,EAAMxB,IAAI8F,EAAW,EACxEA,CACT,EACI6L,EAAe,SAASxI,GAC1B,IAAIyI,EAAUtV,EAAEyN,QAAQZ,GACxB,OAAO,SAAS3H,GACd,OAAOoQ,EAAQpQ,EAAM6B,WACvB,CACF,EAKIwO,EAAoB,CAACC,QAAS,EAAGlQ,KAAM,EAAGT,IAAK,EAAG4Q,QAAS,EAAGC,OAAQ,EACxEC,MAAO,EAAGC,OAAQ,EAAGC,YAAa,EAAGC,MAAO,EAAGnC,KAAM,EAAGoC,OAAQ,EAAGC,OAAQ,EAC3EC,OAAQ,EAAGC,OAAQ,EAAGC,MAAO,EAAGhV,IAAK,EAAGmQ,KAAM,EAAG8E,IAAK,EAAGC,QAAS,EAAGC,SAAU,EAC/E7R,SAAU,EAAG8R,OAAQ,EAAGrK,IAAK,EAAGgE,IAAK,EAAGsG,QAAS,EAAGC,KAAM,EAAG7E,MAAO,EACpE8E,KAAM,EAAGC,KAAM,EAAGC,QAAS,EAAGC,KAAM,EAAG1G,KAAM,EAAG2G,KAAM,EAAGC,KAAM,EAC/DC,QAAS,EAAGC,WAAY,EAAGrS,QAAS,EAAGsS,QAAS,EAAGC,YAAa,EAChE9R,QAAS,EAAG+R,MAAO,EAAGC,OAAQ,EAAGC,UAAW,EAAGC,QAAS,EAAGC,QAAS,EACpEzF,OAAQ,EAAG0F,QAAS,EAAGC,UAAW,EAAGC,cAAe,GAKlDC,EAAe,CAAC5W,KAAM,EAAGmR,OAAQ,EAAG0F,MAAO,EAAGC,OAAQ,EAAGhS,KAAM,EACjEiS,KAAM,EAAGX,MAAO,EAAG/R,QAAS,GAI9BrF,EAAEsF,KAAK,CACL,CAAC4B,EAAYqO,EAAmB,UAChC,CAAC3O,EAAOgR,EAAc,gBACrB,SAASI,GACV,IAAIC,EAAOD,EAAO,GACd7C,EAAU6C,EAAO,GACjBlD,EAAYkD,EAAO,GAEvBC,EAAKC,MAAQ,SAASnX,GACpB,IAAIoX,EAAWnY,EAAE0V,OAAO1V,EAAEoY,UAAUrX,IAAM,SAASsX,EAAM3O,GAEvD,OADA2O,EAAK3O,GAAQ,EACN2O,CACT,GAAG,CAAC,GACJpD,EAAqBgD,EAAMlX,EAAKoX,EAAUrD,EAC5C,EAEAG,EAAqBgD,EAAMjY,EAAGmV,EAASL,EACzC,IAoBA7U,EAASqN,KAAO,SAAS0B,EAAQ9J,EAAOtC,GACtC,IAAIL,EAAO+V,EAAUtJ,GAGrBhP,EAAE6G,SAASjE,IAAYA,EAAU,CAAC,GAAI,CACpCsG,YAAajJ,EAASiJ,YACtBC,YAAalJ,EAASkJ,cAIxB,IAAIoP,EAAS,CAAChW,KAAMA,EAAMiW,SAAU,QAqBpC,GAlBK5V,EAAQyM,MACXkJ,EAAOlJ,IAAMrP,EAAEiN,OAAO/H,EAAO,QAAUqK,KAIrB,MAAhB3M,EAAQ6V,OAAgBvT,GAAqB,WAAX8J,GAAkC,WAAXA,GAAkC,UAAXA,IAClFuJ,EAAOG,YAAc,mBACrBH,EAAOE,KAAOE,KAAKC,UAAUhW,EAAQiK,OAAS3H,EAAMmI,OAAOzK,KAIzDA,EAAQuG,cACVoP,EAAOG,YAAc,oCACrBH,EAAOE,KAAOF,EAAOE,KAAO,CAACvT,MAAOqT,EAAOE,MAAQ,CAAC,GAKlD7V,EAAQsG,cAAyB,QAAT3G,GAA2B,WAATA,GAA8B,UAATA,GAAmB,CACpFgW,EAAOhW,KAAO,OACVK,EAAQuG,cAAaoP,EAAOE,KAAKI,QAAUtW,GAC/C,IAAIuW,EAAalW,EAAQkW,WACzBlW,EAAQkW,WAAa,SAAS3J,GAE5B,GADAA,EAAI4J,iBAAiB,yBAA0BxW,GAC3CuW,EAAY,OAAOA,EAAWxY,MAAMP,KAAMmB,UAChD,CACF,CAGoB,QAAhBqX,EAAOhW,MAAmBK,EAAQuG,cACpCoP,EAAOS,aAAc,GAIvB,IAAInO,EAAQjI,EAAQiI,MACpBjI,EAAQiI,MAAQ,SAASsE,EAAK8J,EAAYC,GACxCtW,EAAQqW,WAAaA,EACrBrW,EAAQsW,YAAcA,EAClBrO,GAAOA,EAAMlK,KAAKiC,EAAQkH,QAASqF,EAAK8J,EAAYC,EAC1D,EAGA,IAAI/J,EAAMvM,EAAQuM,IAAMlP,EAASkZ,KAAKnZ,EAAE0G,OAAO6R,EAAQ3V,IAEvD,OADAsC,EAAMrB,QAAQ,UAAWqB,EAAOiK,EAAKvM,GAC9BuM,CACT,EAGA,IAAImJ,EAAY,CACd,OAAU,OACV,OAAU,MACV,MAAS,QACT,OAAU,SACV,KAAQ,OAKVrY,EAASkZ,KAAO,WACd,OAAOlZ,EAAS6I,EAAEqQ,KAAK7Y,MAAML,EAAS6I,EAAG5H,UAC3C,EAOA,IAAIkY,EAASnZ,EAASmZ,OAAS,SAASxW,GACtCA,IAAYA,EAAU,CAAC,GACvB7C,KAAK+M,cAAcxM,MAAMP,KAAMmB,WAC3B0B,EAAQyW,SAAQtZ,KAAKsZ,OAASzW,EAAQyW,QAC1CtZ,KAAKuZ,cACLvZ,KAAKuH,WAAWhH,MAAMP,KAAMmB,UAC9B,EAIIqY,EAAgB,aAChBC,EAAgB,eAChBC,EAAgB,SAChBC,EAAgB,2BAGpB1Z,EAAE0G,OAAO0S,EAAOhZ,UAAWiJ,EAAQ,CAIjCyD,cAAe,WAAW,EAI1BxF,WAAY,WAAW,EAQvBqS,MAAO,SAASA,EAAOjQ,EAAMC,GACtB3J,EAAE4Z,SAASD,KAAQA,EAAQ5Z,KAAK8Z,eAAeF,IAChD3Z,EAAEoC,WAAWsH,KACfC,EAAWD,EACXA,EAAO,IAEJC,IAAUA,EAAW5J,KAAK2J,IAC/B,IAAIoQ,EAAS/Z,KASb,OARAE,EAAS8Z,QAAQJ,MAAMA,GAAO,SAASK,GACrC,IAAIvZ,EAAOqZ,EAAOG,mBAAmBN,EAAOK,IACC,IAAzCF,EAAOI,QAAQvQ,EAAUlJ,EAAMiJ,KACjCoQ,EAAOjW,QAAQvD,MAAMwZ,EAAQ,CAAC,SAAWpQ,GAAM5E,OAAOrE,IACtDqZ,EAAOjW,QAAQ,QAAS6F,EAAMjJ,GAC9BR,EAAS8Z,QAAQlW,QAAQ,QAASiW,EAAQpQ,EAAMjJ,GAEpD,IACOV,IACT,EAIAma,QAAS,SAASvQ,EAAUlJ,EAAMiJ,GAC5BC,GAAUA,EAASrJ,MAAMP,KAAMU,EACrC,EAGA0Z,SAAU,SAASH,EAAUpX,GAE3B,OADA3C,EAAS8Z,QAAQI,SAASH,EAAUpX,GAC7B7C,IACT,EAKAuZ,YAAa,WACX,GAAKvZ,KAAKsZ,OAAV,CACAtZ,KAAKsZ,OAASrZ,EAAEiN,OAAOlN,KAAM,UAE7B,IADA,IAAI4Z,EAAON,EAASrZ,EAAEgB,KAAKjB,KAAKsZ,QACC,OAAzBM,EAAQN,EAAO1V,QACrB5D,KAAK4Z,MAAMA,EAAO5Z,KAAKsZ,OAAOM,GAJR,CAM1B,EAIAE,eAAgB,SAASF,GAOvB,OANAA,EAAQA,EAAMnK,QAAQkK,EAAc,QACnClK,QAAQ+J,EAAe,WACvB/J,QAAQgK,GAAY,SAASpF,EAAOgG,GACnC,OAAOA,EAAWhG,EAAQ,UAC5B,IACC5E,QAAQiK,EAAY,YACd,IAAIY,OAAO,IAAMV,EAAQ,uBAClC,EAKAM,mBAAoB,SAASN,EAAOK,GAClC,IAAIzB,EAASoB,EAAMW,KAAKN,GAAU3Z,MAAM,GACxC,OAAOL,EAAE6E,IAAI0T,GAAQ,SAASgC,EAAO3a,GAEnC,OAAIA,IAAM2Y,EAAO7X,OAAS,EAAU6Z,GAAS,KACtCA,EAAQC,mBAAmBD,GAAS,IAC7C,GACF,IAYF,IAAIE,EAAUxa,EAASwa,QAAU,WAC/B1a,KAAKgL,SAAW,GAChBhL,KAAK2a,SAAW3a,KAAK2a,SAAS5O,KAAK/L,MAGb,oBAAXD,SACTC,KAAK4a,SAAW7a,OAAO6a,SACvB5a,KAAKga,QAAUja,OAAOia,QAE1B,EAGIa,EAAgB,eAGhBC,EAAe,aAGfC,EAAe,OAGnBL,EAAQM,SAAU,EAGlB/a,EAAE0G,OAAO+T,EAAQra,UAAWiJ,EAAQ,CAIlC2R,SAAU,GAGVC,OAAQ,WAEN,OADWlb,KAAK4a,SAASO,SAAS1L,QAAQ,SAAU,SACpCzP,KAAKV,OAASU,KAAKob,WACrC,EAGAC,UAAW,WAGT,OAFWrb,KAAKsb,eAAetb,KAAK4a,SAASO,UACzB7a,MAAM,EAAGN,KAAKV,KAAKqB,OAAS,GAAK,MACjCX,KAAKV,IAC3B,EAKAgc,eAAgB,SAASrB,GACvB,OAAOsB,UAAUtB,EAASxK,QAAQ,OAAQ,SAC5C,EAIA2L,UAAW,WACT,IAAI/G,EAAQrU,KAAK4a,SAASY,KAAK/L,QAAQ,MAAO,IAAI4E,MAAM,QACxD,OAAOA,EAAQA,EAAM,GAAK,EAC5B,EAIAoH,QAAS,SAAS1b,GAChB,IAAIsU,GAAStU,GAAUC,MAAM4a,SAASY,KAAKnH,MAAM,UACjD,OAAOA,EAAQA,EAAM,GAAK,EAC5B,EAGAqH,QAAS,WACP,IAAIC,EAAO3b,KAAKsb,eACdtb,KAAK4a,SAASO,SAAWnb,KAAKob,aAC9B9a,MAAMN,KAAKV,KAAKqB,OAAS,GAC3B,MAA0B,MAAnBgb,EAAKC,OAAO,GAAaD,EAAKrb,MAAM,GAAKqb,CAClD,EAGAE,YAAa,SAAS5B,GAQpB,OAPgB,MAAZA,IAEAA,EADEja,KAAK8b,gBAAkB9b,KAAK+b,iBACnB/b,KAAK0b,UAEL1b,KAAKyb,WAGbxB,EAASxK,QAAQoL,EAAe,GACzC,EAIAmB,MAAO,SAASnZ,GACd,GAAI6X,EAAQM,QAAS,MAAM,IAAIjJ,MAAM,6CAoBrC,GAnBA2I,EAAQM,SAAU,EAIlBhb,KAAK6C,QAAmB5C,EAAE0G,OAAO,CAACrH,KAAM,KAAMU,KAAK6C,QAASA,GAC5D7C,KAAKV,KAAmBU,KAAK6C,QAAQvD,KACrCU,KAAK+b,kBAA+C,IAA5B/b,KAAK6C,QAAQoZ,WACrCjc,KAAKkc,eAAmB,iBAAkBnc,cAAqC,IAA1B2U,SAASyH,cAA2BzH,SAASyH,aAAe,GACjHnc,KAAKoc,eAAmBpc,KAAK+b,kBAAoB/b,KAAKkc,eACtDlc,KAAKqc,kBAAqBrc,KAAK6C,QAAQyZ,UACvCtc,KAAKuc,iBAAsBvc,KAAKga,UAAWha,KAAKga,QAAQsC,WACxDtc,KAAK8b,cAAmB9b,KAAKqc,iBAAmBrc,KAAKuc,cACrDvc,KAAKia,SAAmBja,KAAK6b,cAG7B7b,KAAKV,MAAQ,IAAMU,KAAKV,KAAO,KAAKmQ,QAAQqL,EAAc,KAItD9a,KAAK+b,kBAAoB/b,KAAKqc,gBAAiB,CAIjD,IAAKrc,KAAKuc,gBAAkBvc,KAAKkb,SAAU,CACzC,IAAIsB,EAAWxc,KAAKV,KAAKgB,MAAM,GAAI,IAAM,IAGzC,OAFAN,KAAK4a,SAASnL,QAAQ+M,EAAW,IAAMxc,KAAK0b,YAErC,CAIT,CAAW1b,KAAKuc,eAAiBvc,KAAKkb,UACpClb,KAAKoa,SAASpa,KAAKyb,UAAW,CAAChM,SAAS,GAG5C,CAKA,IAAKzP,KAAKkc,gBAAkBlc,KAAK+b,mBAAqB/b,KAAK8b,cAAe,CACxE9b,KAAKyc,OAAS/H,SAASC,cAAc,UACrC3U,KAAKyc,OAAOC,IAAM,eAClB1c,KAAKyc,OAAOE,MAAMC,QAAU,OAC5B5c,KAAKyc,OAAOI,UAAY,EACxB,IAAIC,EAAOpI,SAASoI,KAEhBC,EAAUD,EAAKE,aAAahd,KAAKyc,OAAQK,EAAKG,YAAYC,cAC9DH,EAAQrI,SAASyI,OACjBJ,EAAQrI,SAAS0I,QACjBL,EAAQnC,SAASyC,KAAO,IAAMrd,KAAKia,QACrC,CAGA,IAAIqD,EAAmBvd,OAAOud,kBAAoB,SAAS/I,EAAW3H,GACpE,OAAO2Q,YAAY,KAAOhJ,EAAW3H,EACvC,EAYA,GARI5M,KAAK8b,cACPwB,EAAiB,WAAYtd,KAAK2a,UAAU,GACnC3a,KAAKoc,iBAAmBpc,KAAKyc,OACtCa,EAAiB,aAActd,KAAK2a,UAAU,GACrC3a,KAAK+b,mBACd/b,KAAKwd,kBAAoBC,YAAYzd,KAAK2a,SAAU3a,KAAKib,YAGtDjb,KAAK6C,QAAQ+K,OAAQ,OAAO5N,KAAK0d,SACxC,EAIAC,KAAM,WAEJ,IAAIC,EAAsB7d,OAAO6d,qBAAuB,SAASrJ,EAAW3H,GAC1E,OAAOiR,YAAY,KAAOtJ,EAAW3H,EACvC,EAGI5M,KAAK8b,cACP8B,EAAoB,WAAY5d,KAAK2a,UAAU,GACtC3a,KAAKoc,iBAAmBpc,KAAKyc,QACtCmB,EAAoB,aAAc5d,KAAK2a,UAAU,GAI/C3a,KAAKyc,SACP/H,SAASoI,KAAKgB,YAAY9d,KAAKyc,QAC/Bzc,KAAKyc,OAAS,MAIZzc,KAAKwd,mBAAmBO,cAAc/d,KAAKwd,mBAC/C9C,EAAQM,SAAU,CACpB,EAIApB,MAAO,SAASA,EAAOhQ,GACrB5J,KAAKgL,SAAS0G,QAAQ,CAACkI,MAAOA,EAAOhQ,SAAUA,GACjD,EAIA+Q,SAAU,SAASzP,GACjB,IAAI+C,EAAUjO,KAAK6b,cAQnB,GAJI5N,IAAYjO,KAAKia,UAAYja,KAAKyc,SACpCxO,EAAUjO,KAAKyb,QAAQzb,KAAKyc,OAAOS,gBAGjCjP,IAAYjO,KAAKia,SAAU,OAAO,EAClCja,KAAKyc,QAAQzc,KAAKoa,SAASnM,GAC/BjO,KAAK0d,SACP,EAKAA,QAAS,SAASzD,GAEhB,QAAKja,KAAKqb,cACVpB,EAAWja,KAAKia,SAAWja,KAAK6b,YAAY5B,GACrCha,EAAEsR,KAAKvR,KAAKgL,UAAU,SAASU,GACpC,GAAIA,EAAQkO,MAAM5P,KAAKiQ,GAErB,OADAvO,EAAQ9B,SAASqQ,IACV,CAEX,IACF,EASAG,SAAU,SAASH,EAAUpX,GAC3B,IAAK6X,EAAQM,QAAS,OAAO,EACxBnY,IAAuB,IAAZA,IAAkBA,EAAU,CAACiB,UAAWjB,IAGxDoX,EAAWja,KAAK6b,YAAY5B,GAAY,IAGxC,IAAIuC,EAAWxc,KAAKV,KACH,KAAb2a,GAA0C,MAAvBA,EAAS2B,OAAO,KACrCY,EAAWA,EAASlc,MAAM,GAAI,IAAM,KAEtC,IAAIgP,EAAMkN,EAAWvC,EAGrBA,EAAWA,EAASxK,QAAQsL,EAAc,IAG1C,IAAIiD,EAAkBhe,KAAKsb,eAAerB,GAE1C,GAAIja,KAAKia,WAAa+D,EAAtB,CAIA,GAHAhe,KAAKia,SAAW+D,EAGZhe,KAAK8b,cACP9b,KAAKga,QAAQnX,EAAQ4M,QAAU,eAAiB,aAAa,CAAC,EAAGiF,SAASuJ,MAAO3O,OAI5E,KAAItP,KAAK+b,iBAmBd,OAAO/b,KAAK4a,SAASsD,OAAO5O,GAjB5B,GADAtP,KAAKme,YAAYne,KAAK4a,SAAUX,EAAUpX,EAAQ4M,SAC9CzP,KAAKyc,QAAUxC,IAAaja,KAAKyb,QAAQzb,KAAKyc,OAAOS,eAAgB,CACvE,IAAIH,EAAU/c,KAAKyc,OAAOS,cAKrBra,EAAQ4M,UACXsN,EAAQrI,SAASyI,OACjBJ,EAAQrI,SAAS0I,SAGnBpd,KAAKme,YAAYpB,EAAQnC,SAAUX,EAAUpX,EAAQ4M,QACvD,CAMF,CACA,OAAI5M,EAAQiB,QAAgB9D,KAAK0d,QAAQzD,QAAzC,CA9B6C,CA+B/C,EAIAkE,YAAa,SAASvD,EAAUX,EAAUxK,GACxC,GAAIA,EAAS,CACX,IAAI+L,EAAOZ,EAASY,KAAK/L,QAAQ,qBAAsB,IACvDmL,EAASnL,QAAQ+L,EAAO,IAAMvB,EAChC,MAEEW,EAASyC,KAAO,IAAMpD,CAE1B,IAKF/Z,EAAS8Z,QAAU,IAAIU,EAQvB,IAAI/T,EAAS,SAASyX,EAAYC,GAChC,IACIC,EADAC,EAASve,KAwBb,OAjBEse,EADEF,GAAcne,EAAEwN,IAAI2Q,EAAY,eAC1BA,EAAWzO,YAEX,WAAY,OAAO4O,EAAOhe,MAAMP,KAAMmB,UAAY,EAI5DlB,EAAE0G,OAAO2X,EAAOC,EAAQF,GAIxBC,EAAMje,UAAYJ,EAAEiS,OAAOqM,EAAOle,UAAW+d,GAC7CE,EAAMje,UAAUsP,YAAc2O,EAI9BA,EAAME,UAAYD,EAAOle,UAElBie,CACT,EAGAzX,EAAMF,OAASQ,EAAWR,OAAS0S,EAAO1S,OAAS0M,EAAK1M,OAAS+T,EAAQ/T,OAASA,EAGlF,IAAI6I,EAAW,WACb,MAAM,IAAIuC,MAAM,iDAClB,EAGIlD,EAAY,SAAS1J,EAAOtC,GAC9B,IAAIiI,EAAQjI,EAAQiI,MACpBjI,EAAQiI,MAAQ,SAAS6D,GACnB7D,GAAOA,EAAMlK,KAAKiC,EAAQkH,QAAS5E,EAAOwJ,EAAM9L,GACpDsC,EAAMrB,QAAQ,QAASqB,EAAOwJ,EAAM9L,EACtC,CACF,EAEA,OAAO3C,CACT,CAtiEsBX,CAAQD,EAAME,EAASS,EAAG8I,EAC3C,4CAaJ,CA1BD,E,gBCNM,GAMH,SAAS0V,GAEVA,EAAWC,WAAW,MAAO,CAC3BC,aAAc,KACdC,WAAY,KACZC,kBAAmB,SAASC,EAAOC,GACjC,MAAO,UAAU/U,KAAK+U,EACxB,IAGFN,EAAWC,WAAW,aAAc,CAClCC,aAAc,KACdC,WAAY,KAEZC,kBAAmB,SAASC,EAAOC,EAASC,EAAWC,GACrD,OAAIjf,KAAKkf,SACA,WAAWlV,KAAK+U,IAAY,KAAK/U,KAAKgV,IAE9B,KAAXD,IAAkBE,EAAME,SAAiC,KAAtBF,EAAME,QAAQ3c,OAC9C,UAAUwH,KAAK+U,KAAa,KAAK/U,KAAKgV,EAEjD,IAGF,IAAII,EAAiB,kPAErBX,EAAWC,WAAW,MAAO,CAC3BC,aAAc,UACdC,WAAY,SACZC,kBAAmB,SAASrc,EAAMuc,EAASC,EAAWC,GACpD,IAAII,GAAS,EAGb,MAF0B,QAAtBrf,KAAKsf,gBACPD,IAASJ,EAAMlV,SAAUqV,EAAepV,KAAKiV,EAAMlV,QAAQ0J,WACrD4L,IAAoB,OAAR7c,GAAiB,KAAKwH,KAAK+U,IAAYE,EAAMlV,SAC9C,KAAKC,KAAKgV,GAC/B,IAIFP,EAAWc,gBAAgB,gBAAgB,SAAUC,EAAWC,EAAMC,GACpE,IAAIC,EAAK3f,KAAM4f,EAAUnB,EAAWoB,UAAUF,EAAGG,UAAWH,EAAGI,WAAWN,GAAMR,OAAOe,KACvFL,EAAGM,WAAU,WACX,GAAIT,EACFG,EAAGO,aAAaN,EAAQhB,WAAYc,GACpCC,EAAGO,aAAaN,EAAQjB,aAAcc,GAClCA,EAAKU,MAAQT,EAAGS,MAAQV,EAAKW,IAAMV,EAAGU,IACxCT,EAAGU,UAAUZ,EAAKU,KAAMV,EAAKW,GAAKR,EAAQjB,aAAahe,YACpD,CACL,IAAI2f,EAAUX,EAAGY,SAASd,EAAMC,GAC5Bc,EAAaF,EAAQzb,QAAQ+a,EAAQjB,cACrC8B,EAAWH,EAAQlJ,YAAYwI,EAAQhB,YACvC4B,GAAc,GAAKC,GAAY,GAAKA,EAAWD,IAEjDF,EAAUA,EAAQI,OAAO,EAAGF,GAEzBF,EAAQK,UAAUH,EAAaZ,EAAQjB,aAAahe,OAAQ8f,GAE5DH,EAAQI,OAAOD,EAAWb,EAAQhB,WAAWje,SAElDgf,EAAGO,aAAaI,EAASb,EAAMC,EACjC,CACF,GACF,IAGAjB,EAAWc,gBAAgB,mBAAmB,SAAUE,EAAMC,GAC5D,IAAIkB,EAAa5gB,KACjBA,KAAKigB,WAAU,WACb,IAAK,IAAIpgB,EAAI4f,EAAKU,KAAMtgB,GAAK6f,EAAGS,KAAMtgB,IACpC+gB,EAAWC,WAAWhhB,EAAG,QAE7B,GACF,IAGA4e,EAAWc,gBAAgB,mBAAmB,SAAUE,EAAMC,GAC5D,IAAIC,EAAK3f,KACL8gB,EAAQnB,EAAGG,UAAWiB,EAAOpB,EAAGY,SAASd,EAAMC,GAAIzV,MAAM,MACzDgV,EAAQR,EAAWuC,UAAUF,EAAOnB,EAAGI,WAAWN,GAAMR,OACxDgC,EAAUtB,EAAGuB,UAAU,WAEvBC,EAAM,GAAIC,EAAQ,EAAGC,EAAoB,IAAZ5B,EAAKW,GACtC,SAASkB,IACPH,GAAO,KACPE,GAAQ,IACND,CACJ,CAEA,IAAK,IAAIvhB,EAAI,EAAGA,EAAIkhB,EAAKpgB,SAAUd,EAAG,CAEpC,IADA,IAAI0hB,EAAS,IAAI9C,EAAW+C,aAAaT,EAAKlhB,GAAIohB,IAC1CM,EAAOE,OAAO,CACpB,IAAIC,EAAQjD,EAAWoB,UAAUiB,EAAO7B,GACpCtC,EAAQmE,EAAMa,MAAMJ,EAAQtC,GAAQ2C,EAAML,EAAOtT,UACrDsT,EAAOvF,MAAQuF,EAAOM,IACjBR,IAAS,KAAKrX,KAAK4X,KACtBT,GAAOS,EACPP,GAAQ,IAELA,GAASK,EAAM1B,KAAKnB,mBACrB6C,EAAM1B,KAAKnB,kBAAkBlC,EAAOiF,EAAKL,EAAOO,OAAOxhB,MAAMihB,EAAOM,MAAQd,EAAKlhB,EAAE,IAAM,GAAI6hB,EAAMzC,QACrGqC,GACJ,EACKC,EAAOM,KAAOf,EAAMiB,WAAWjB,EAAMiB,UAAU9C,IAC/CoC,GAASxhB,EAAIkhB,EAAKpgB,OAAS,GAAG2gB,GACrC,CAEA3B,EAAGM,WAAU,WACXN,EAAGO,aAAaiB,EAAK1B,EAAMC,GAC3B,IAAK,IAAIkC,EAAMnC,EAAKU,KAAO,EAAG6B,EAAMvC,EAAKU,KAAOiB,EAAOQ,GAAOI,IAAOJ,EACnEjC,EAAGkB,WAAWe,EAAK,SACrBjC,EAAGsC,aAAaxC,EAAME,EAAGuC,WAAU,GACrC,GACF,GACF,CAtHIC,CAAI,EAAQ,K,kBCQd,IAA+D1iB,EAAOD,QAGhE,WAAe,aAIrB,IAAI4iB,EAAYC,UAAUD,UACtBE,EAAWD,UAAUC,SAErBC,EAAQ,aAAavY,KAAKoY,GAC1BI,EAAY,UAAUxY,KAAKoY,GAC3BK,EAAU,wCAAwClI,KAAK6H,GACvDM,EAAO,cAAcnI,KAAK6H,GAC1BO,EAAKH,GAAaC,GAAWC,EAC7BE,EAAaD,IAAOH,EAAY9N,SAASyH,cAAgB,IAAMuG,GAAQD,GAAS,IAChFI,GAAUH,GAAQ,WAAW1Y,KAAKoY,GAClCU,EAAWD,GAAU,eAAe7Y,KAAKoY,GACzCW,GAAUL,GAAQ,gBAAgBnI,KAAK6H,GACvCY,EAAiBD,IAAWA,EAAO,GACnCE,EAAS,UAAUjZ,KAAKoY,GACxBc,EAAS,iBAAiBlZ,KAAKqY,UAAUc,QACzCC,EAAqB,+BAA+BpZ,KAAKoY,GACzDiB,EAAU,YAAYrZ,KAAKoY,GAE3BkB,EAAMJ,IAAW,cAAclZ,KAAKoY,IAAcC,UAAUkB,eAAiB,GAC7EC,EAAU,UAAUxZ,KAAKoY,GAEzBqB,EAASH,GAAOE,GAAW,mDAAmDxZ,KAAKoY,GACnFsB,EAAMJ,GAAO,MAAMtZ,KAAKsY,GACxBqB,EAAW,WAAW3Z,KAAKoY,GAC3BwB,EAAU,OAAO5Z,KAAKsY,GAEtBuB,EAAiBZ,GAAUb,EAAU/N,MAAM,uBAC3CwP,IAAkBA,EAAiBC,OAAOD,EAAe,KACzDA,GAAkBA,GAAkB,KAAMZ,GAAS,EAAOJ,GAAS,GAEvE,IAAIkB,EAAcL,IAAQZ,GAAYG,IAA6B,MAAlBY,GAA0BA,EAAiB,QACxFG,EAAoBzB,GAAUI,GAAMC,GAAc,EAEtD,SAASqB,EAAUC,GAAO,OAAO,IAAI5J,OAAO,UAAY4J,EAAM,gBAAiB,CAE/E,IAkCIC,EAlCAC,EAAU,SAASC,EAAMH,GAC3B,IAAIjW,EAAUoW,EAAKzP,UACfP,EAAQ4P,EAAUC,GAAK3J,KAAKtM,GAChC,GAAIoG,EAAO,CACT,IAAIzR,EAAQqL,EAAQ3N,MAAM+T,EAAMvT,MAAQuT,EAAM,GAAG1T,QACjD0jB,EAAKzP,UAAY3G,EAAQ3N,MAAM,EAAG+T,EAAMvT,QAAU8B,EAAQyR,EAAM,GAAKzR,EAAQ,GAC/E,CACF,EAEA,SAAS0hB,EAAepZ,GACtB,IAAK,IAAID,EAAQC,EAAEqZ,WAAW5jB,OAAQsK,EAAQ,IAAKA,EAC/CC,EAAE4S,YAAY5S,EAAE+R,YACpB,OAAO/R,CACT,CAEA,SAASsZ,EAAqBjG,EAAQrT,GACpC,OAAOoZ,EAAe/F,GAAQkG,YAAYvZ,EAC5C,CAEA,SAASwZ,EAAIC,EAAK5F,EAASnK,EAAW+H,GACpC,IAAIzR,EAAIwJ,SAASC,cAAcgQ,GAG/B,GAFI/P,IAAa1J,EAAE0J,UAAYA,GAC3B+H,IAASzR,EAAEyR,MAAMiI,QAAUjI,GACT,iBAAXoC,EAAuB7T,EAAEuZ,YAAY/P,SAASmQ,eAAe9F,SACnE,GAAIA,EAAW,IAAK,IAAIlf,EAAI,EAAGA,EAAIkf,EAAQpe,SAAUd,EAAKqL,EAAEuZ,YAAY1F,EAAQlf,IACrF,OAAOqL,CACT,CAEA,SAAS4Z,EAAKH,EAAK5F,EAASnK,EAAW+H,GACrC,IAAIzR,EAAIwZ,EAAIC,EAAK5F,EAASnK,EAAW+H,GAErC,OADAzR,EAAE6Z,aAAa,OAAQ,gBAChB7Z,CACT,CAmBA,SAASxG,EAAS6Z,EAAQD,GAGxB,GAFsB,GAAlBA,EAAM0G,WACN1G,EAAQA,EAAM2G,YACd1G,EAAO7Z,SACP,OAAO6Z,EAAO7Z,SAAS4Z,GAC3B,GAEE,GADsB,IAAlBA,EAAM0G,WAAkB1G,EAAQA,EAAM4G,MACtC5G,GAASC,EAAU,OAAO,QACvBD,EAAQA,EAAM2G,WACzB,CAEA,SAASE,IAIP,IAAIC,EACJ,IACEA,EAAgB1Q,SAAS0Q,aAG3B,CAFE,MAAMla,GACNka,EAAgB1Q,SAASoI,MAAQ,IACnC,CACA,KAAOsI,GAAiBA,EAAcC,YAAcD,EAAcC,WAAWD,eACzEA,EAAgBA,EAAcC,WAAWD,cAC7C,OAAOA,CACT,CAEA,SAASE,EAASjB,EAAMH,GACtB,IAAIjW,EAAUoW,EAAKzP,UACdqP,EAAUC,GAAKla,KAAKiE,KAAYoW,EAAKzP,YAAc3G,EAAU,IAAM,IAAMiW,EAChF,CACA,SAASqB,EAAY3lB,EAAG4lB,GAEtB,IADA,IAAIC,EAAK7lB,EAAEqK,MAAM,KACRpK,EAAI,EAAGA,EAAI4lB,EAAG9kB,OAAQd,IACvB4lB,EAAG5lB,KAAOokB,EAAUwB,EAAG5lB,IAAImK,KAAKwb,KAAMA,GAAK,IAAMC,EAAG5lB,IAC5D,OAAO2lB,CACT,CAnD4BrB,EAAxBzP,SAASgR,YAAuB,SAASrB,EAAMrI,EAAOgG,EAAK2D,GAC7D,IAAIC,EAAIlR,SAASgR,cAGjB,OAFAE,EAAEC,OAAOF,GAAWtB,EAAMrC,GAC1B4D,EAAEE,SAASzB,EAAMrI,GACV4J,CACT,EACe,SAASvB,EAAMrI,EAAOgG,GACnC,IAAI4D,EAAIlR,SAASoI,KAAKiJ,kBACtB,IAAMH,EAAEI,kBAAkB3B,EAAKY,WACX,CAApB,MAAM/Z,GAAK,OAAO0a,CAAE,CAIpB,OAHAA,EAAEK,UAAS,GACXL,EAAEM,QAAQ,YAAalE,GACvB4D,EAAEO,UAAU,YAAanK,GAClB4J,CACT,EAuCA,IAAIQ,EAAc,SAAS/B,GAAQA,EAAKnO,QAAU,EAMlD,SAASnK,EAAKsa,GACZ,IAAI3lB,EAAON,MAAMC,UAAUC,MAAMM,KAAKO,UAAW,GACjD,OAAO,WAAW,OAAOklB,EAAE9lB,MAAM,KAAMG,EAAK,CAC9C,CAEA,SAAS4lB,EAAQtlB,EAAKulB,EAAQC,GAE5B,IAAK,IAAIC,KADJF,IAAUA,EAAS,CAAC,GACRvlB,GACTA,EAAI0lB,eAAeD,KAAwB,IAAdD,GAAwBD,EAAOG,eAAeD,KAC7EF,EAAOE,GAAQzlB,EAAIylB,IACzB,OAAOF,CACT,CAIA,SAASI,EAAY7E,EAAQE,EAAKf,EAAST,EAAYoG,GAC1C,MAAP5E,IAEU,IADZA,EAAMF,EAAO+E,OAAO,kBACH7E,EAAMF,EAAOnhB,QAEhC,IAAK,IAAId,EAAI2gB,GAAc,EAAGsG,EAAIF,GAAc,IAAK,CACnD,IAAIG,EAAUjF,EAAOjd,QAAQ,KAAMhF,GACnC,GAAIknB,EAAU,GAAKA,GAAW/E,EAC1B,OAAO8E,GAAK9E,EAAMniB,GACtBinB,GAAKC,EAAUlnB,EACfinB,GAAK7F,EAAW6F,EAAI7F,EACpBphB,EAAIknB,EAAU,CAChB,CACF,CAjCIzD,EACA8C,EAAc,SAAS/B,GAAQA,EAAK2C,eAAiB,EAAG3C,EAAK4C,aAAe5C,EAAK3c,MAAM/G,MAAQ,EAC1FgiB,IACLyD,EAAc,SAAS/B,GAAQ,IAAMA,EAAKnO,QAAuB,CAAX,MAAMgR,GAAK,CAAE,GAgCvE,IAAIC,EAAU,WACZnnB,KAAKsK,GAAK,KACVtK,KAAKqmB,EAAI,KACTrmB,KAAKonB,KAAO,EACZpnB,KAAK0L,QAAUK,EAAK/L,KAAKqnB,UAAWrnB,KACtC,EAmBA,SAAS6E,EAAQoL,EAAOyU,GACtB,IAAK,IAAI7kB,EAAI,EAAGA,EAAIoQ,EAAMtP,SAAUd,EAChC,GAAIoQ,EAAMpQ,IAAM6kB,EAAO,OAAO7kB,EAClC,OAAQ,CACV,CAtBAsnB,EAAQ9mB,UAAUgnB,UAAY,SAAUze,GACtCA,EAAK0B,GAAK,EACN1B,EAAKwe,OAAS,IAAIE,KACpB1e,EAAKyd,IAELkB,WAAW3e,EAAK8C,QAAS9C,EAAKwe,MAAQ,IAAIE,KAE9C,EACAH,EAAQ9mB,UAAUoF,IAAM,SAAU+hB,EAAInB,GACpCrmB,KAAKqmB,EAAIA,EACT,IAAIe,GAAQ,IAAIE,KAAOE,IAClBxnB,KAAKsK,IAAM8c,EAAOpnB,KAAKonB,QAC1BK,aAAaznB,KAAKsK,IAClBtK,KAAKsK,GAAKid,WAAWvnB,KAAK0L,QAAS8b,GACnCxnB,KAAKonB,KAAOA,EAEhB,EASA,IAAIM,EAAc,GAIdC,EAAO,CAACC,SAAU,WAAW,MAAO,iBAAiB,GAGrDC,EAAiB,CAACC,QAAQ,GAAQC,EAAY,CAACC,OAAQ,UAAWC,EAAW,CAACD,OAAQ,SAI1F,SAASE,EAAWpG,EAAQqG,EAAMlH,GAChC,IAAK,IAAIY,EAAM,EAAGuG,EAAM,IAAK,CAC3B,IAAIrB,EAAUjF,EAAOjd,QAAQ,KAAMgd,IACnB,GAAZkF,IAAiBA,EAAUjF,EAAOnhB,QACtC,IAAI0nB,EAAUtB,EAAUlF,EACxB,GAAIkF,GAAWjF,EAAOnhB,QAAUynB,EAAMC,GAAWF,EAC7C,OAAOtG,EAAM3V,KAAKiE,IAAIkY,EAASF,EAAOC,GAI1C,GAHAA,GAAOrB,EAAUlF,EAEjBA,EAAMkF,EAAU,GADhBqB,GAAOnH,EAAWmH,EAAMnH,IAEbkH,EAAQ,OAAOtG,CAC5B,CACF,CAEA,IAAIyG,EAAY,CAAC,IACjB,SAASC,EAASzB,GAChB,KAAOwB,EAAU3nB,QAAUmmB,GACvBwB,EAAU3jB,KAAK6jB,EAAIF,GAAa,KACpC,OAAOA,EAAUxB,EACnB,CAEA,SAAS0B,EAAI3nB,GAAO,OAAOA,EAAIA,EAAIF,OAAO,EAAG,CAE7C,SAASmE,EAAImL,EAAOoW,GAElB,IADA,IAAIlF,EAAM,GACDthB,EAAI,EAAGA,EAAIoQ,EAAMtP,OAAQd,IAAOshB,EAAIthB,GAAKwmB,EAAEpW,EAAMpQ,GAAIA,GAC9D,OAAOshB,CACT,CAEA,SAASsH,EAAaxY,EAAOvI,EAAOghB,GAElC,IADA,IAAI7G,EAAM,EAAG8G,EAAWD,EAAMhhB,GACvBma,EAAM5R,EAAMtP,QAAU+nB,EAAMzY,EAAM4R,KAAS8G,GAAY9G,IAC9D5R,EAAMrL,OAAOid,EAAK,EAAGna,EACvB,CAEA,SAASkhB,IAAW,CAEpB,SAASC,GAAUtZ,EAAMuZ,GACvB,IAAIC,EAQJ,OAPIC,OAAO9W,OACT6W,EAAOC,OAAO9W,OAAO3C,IAErBqZ,EAAQvoB,UAAYkP,EACpBwZ,EAAO,IAAIH,GAETE,GAASxC,EAAQwC,EAAOC,GACrBA,CACT,CAEA,IAAIE,GAA6B,4GACjC,SAASC,GAAgB9I,GACvB,MAAO,KAAKpW,KAAKoW,IAAOA,EAAK,MAC1BA,EAAG+I,eAAiB/I,EAAGgJ,eAAiBH,GAA2Bjf,KAAKoW,GAC7E,CACA,SAASiJ,GAAWjJ,EAAIkJ,GACtB,OAAKA,KACDA,EAAOC,OAAO1kB,QAAQ,QAAU,GAAKqkB,GAAgB9I,KAClDkJ,EAAOtf,KAAKoW,GAFG8I,GAAgB9I,EAGxC,CAEA,SAAS9a,GAAQtE,GACf,IAAK,IAAI8lB,KAAK9lB,EAAO,GAAIA,EAAI0lB,eAAeI,IAAM9lB,EAAI8lB,GAAM,OAAO,EACnE,OAAO,CACT,CAOA,IAAI0C,GAAiB,64DACrB,SAASC,GAAgBrJ,GAAM,OAAOA,EAAGsJ,WAAW,IAAM,KAAOF,GAAexf,KAAKoW,EAAI,CAGzF,SAASuJ,GAAmBC,EAAK/H,EAAKgI,GACpC,MAAQA,EAAM,EAAIhI,EAAM,EAAIA,EAAM+H,EAAIjpB,SAAW8oB,GAAgBG,EAAIhO,OAAOiG,KAASA,GAAOgI,EAC5F,OAAOhI,CACT,CAKA,SAASiI,GAAUC,EAAMtK,EAAMC,GAI7B,IADA,IAAImK,EAAMpK,EAAOC,GAAM,EAAI,IAClB,CACP,GAAID,GAAQC,EAAM,OAAOD,EACzB,IAAIuK,GAAQvK,EAAOC,GAAM,EAAGuK,EAAMJ,EAAM,EAAI3d,KAAKge,KAAKF,GAAQ9d,KAAKie,MAAMH,GACzE,GAAIC,GAAOxK,EAAQ,OAAOsK,EAAKE,GAAOxK,EAAOC,EACzCqK,EAAKE,GAAQvK,EAAKuK,EACfxK,EAAOwK,EAAMJ,CACtB,CACF,CAIA,SAASO,GAAoBC,EAAO5K,EAAMC,EAAI2G,GAC5C,IAAKgE,EAAS,OAAOhE,EAAE5G,EAAMC,EAAI,MAAO,GAExC,IADA,IAAI4K,GAAQ,EACHzqB,EAAI,EAAGA,EAAIwqB,EAAM1pB,SAAUd,EAAG,CACrC,IAAI0qB,EAAOF,EAAMxqB,IACb0qB,EAAK9K,KAAOC,GAAM6K,EAAK7K,GAAKD,GAAQA,GAAQC,GAAM6K,EAAK7K,IAAMD,KAC/D4G,EAAEna,KAAKC,IAAIoe,EAAK9K,KAAMA,GAAOvT,KAAKiE,IAAIoa,EAAK7K,GAAIA,GAAmB,GAAd6K,EAAKC,MAAa,MAAQ,MAAO3qB,GACrFyqB,GAAQ,EAEZ,CACKA,GAASjE,EAAE5G,EAAMC,EAAI,MAC5B,CAEA,IAAI+K,GAAY,KAChB,SAASC,GAAcL,EAAOjK,EAAIuK,GAChC,IAAIL,EACJG,GAAY,KACZ,IAAK,IAAI5qB,EAAI,EAAGA,EAAIwqB,EAAM1pB,SAAUd,EAAG,CACrC,IAAI+hB,EAAMyI,EAAMxqB,GAChB,GAAI+hB,EAAInC,KAAOW,GAAMwB,EAAIlC,GAAKU,EAAM,OAAOvgB,EACvC+hB,EAAIlC,IAAMU,IACRwB,EAAInC,MAAQmC,EAAIlC,IAAgB,UAAViL,EAAsBL,EAAQzqB,EACjD4qB,GAAY5qB,GAEjB+hB,EAAInC,MAAQW,IACVwB,EAAInC,MAAQmC,EAAIlC,IAAgB,UAAViL,EAAsBL,EAAQzqB,EACjD4qB,GAAY5qB,EAEvB,CACA,OAAgB,MAATyqB,EAAgBA,EAAQG,EACjC,CAyBA,IAAIG,GAAe,WAEjB,IAAIC,EAAW,2PAEXC,EAAc,6PAClB,SAASC,EAASC,GAChB,OAAIA,GAAQ,IAAeH,EAASjP,OAAOoP,GAClC,MAASA,GAAQA,GAAQ,KAAgB,IACzC,MAASA,GAAQA,GAAQ,KAAgBF,EAAYlP,OAAOoP,EAAO,MACnE,MAASA,GAAQA,GAAQ,KAAgB,IACzC,MAAUA,GAAQA,GAAQ,KAAiB,IACnC,MAARA,EAAyB,IACpB,GAChB,CAEA,IAAIC,EAAS,4CACTC,EAAY,SAAUC,EAAW,QAASC,EAAe,SAAUC,EAAc,OAErF,SAASC,EAASd,EAAO/K,EAAMC,GAC7B1f,KAAKwqB,MAAQA,EACbxqB,KAAKyf,KAAOA,EAAMzf,KAAK0f,GAAKA,CAC9B,CAEA,OAAO,SAASkK,EAAK2B,GACnB,IAAIC,EAAyB,OAAbD,EAAqB,IAAM,IAE3C,GAAkB,GAAd3B,EAAIjpB,QAA4B,OAAb4qB,IAAuBN,EAAOjhB,KAAK4f,GAAQ,OAAO,EAEzE,IADA,IAAI6B,EAAM7B,EAAIjpB,OAAQ+qB,EAAQ,GACrB7rB,EAAI,EAAGA,EAAI4rB,IAAO5rB,EACvB6rB,EAAM/mB,KAAKomB,EAASnB,EAAIF,WAAW7pB,KAMvC,IAAK,IAAI8rB,EAAM,EAAGzd,EAAOsd,EAAWG,EAAMF,IAAOE,EAAK,CACpD,IAAInpB,EAAOkpB,EAAMC,GACL,KAARnpB,EAAekpB,EAAMC,GAAOzd,EACzBA,EAAO1L,CAChB,CAOA,IAAK,IAAIopB,EAAM,EAAGhK,EAAM4J,EAAWI,EAAMH,IAAOG,EAAK,CACnD,IAAIC,EAASH,EAAME,GACL,KAAVC,GAAwB,KAAPjK,EAAc8J,EAAME,GAAO,IACvCT,EAASnhB,KAAK6hB,KAAWjK,EAAMiK,EAAsB,KAAVA,IAAiBH,EAAME,GAAO,KACpF,CAKA,IAAK,IAAIE,EAAM,EAAGC,EAASL,EAAM,GAAII,EAAML,EAAM,IAAKK,EAAK,CACzD,IAAIE,EAASN,EAAMI,GACL,KAAVE,GAA2B,KAAVD,GAAiC,KAAhBL,EAAMI,EAAI,GAAaJ,EAAMI,GAAO,IACvD,KAAVE,GAAiBD,GAAUL,EAAMI,EAAI,IAC1B,KAAVC,GAA2B,KAAVA,IAAkBL,EAAMI,GAAOC,GAC1DA,EAASC,CACX,CAMA,IAAK,IAAIC,EAAM,EAAGA,EAAMR,IAAOQ,EAAK,CAClC,IAAIC,EAASR,EAAMO,GACnB,GAAc,KAAVC,EAAiBR,EAAMO,GAAO,SAC7B,GAAc,KAAVC,EAAe,CACtB,IAAIlK,OAAM,EACV,IAAKA,EAAMiK,EAAM,EAAGjK,EAAMyJ,GAAqB,KAAdC,EAAM1J,KAAeA,GAEtD,IADA,IAAIvS,EAAWwc,GAAuB,KAAhBP,EAAMO,EAAI,IAAejK,EAAMyJ,GAAqB,KAAdC,EAAM1J,GAAe,IAAM,IAC9EvW,EAAIwgB,EAAKxgB,EAAIuW,IAAOvW,EAAKigB,EAAMjgB,GAAKgE,EAC7Cwc,EAAMjK,EAAM,CACd,CACF,CAKA,IAAK,IAAImK,EAAM,EAAGC,EAAQZ,EAAWW,EAAMV,IAAOU,EAAK,CACrD,IAAIE,EAASX,EAAMS,GACN,KAATC,GAA0B,KAAVC,EAAiBX,EAAMS,GAAO,IACzChB,EAASnhB,KAAKqiB,KAAWD,EAAQC,EAC5C,CAQA,IAAK,IAAIC,EAAM,EAAGA,EAAMb,IAAOa,EAC7B,GAAIpB,EAAUlhB,KAAK0hB,EAAMY,IAAO,CAC9B,IAAIC,OAAQ,EACZ,IAAKA,EAAQD,EAAM,EAAGC,EAAQd,GAAOP,EAAUlhB,KAAK0hB,EAAMa,MAAWA,GAIrE,IAHA,IAAI5pB,EAA6C,MAAnC2pB,EAAMZ,EAAMY,EAAI,GAAKd,GAE/BgB,EAAY7pB,IADwC,MAA3C4pB,EAAQd,EAAMC,EAAMa,GAASf,IACP7oB,EAAS,IAAM,IAAO6oB,EAChDiB,EAAMH,EAAKG,EAAMF,IAASE,EAAOf,EAAMe,GAAOD,EACvDF,EAAMC,EAAQ,CAChB,CASF,IADA,IAAgB/a,EAAZ6Y,EAAQ,GACHqC,EAAM,EAAGA,EAAMjB,GACtB,GAAIL,EAAaphB,KAAK0hB,EAAMgB,IAAO,CACjC,IAAI1Q,EAAQ0Q,EACZ,MAAOA,EAAKA,EAAMjB,GAAOL,EAAaphB,KAAK0hB,EAAMgB,MAASA,GAC1DrC,EAAM1lB,KAAK,IAAI2mB,EAAS,EAAGtP,EAAO0Q,GACpC,KAAO,CACL,IAAI7K,EAAM6K,EAAKjpB,EAAK4mB,EAAM1pB,OAAQgsB,EAAqB,OAAbpB,EAAqB,EAAI,EACnE,MAAOmB,EAAKA,EAAMjB,GAAqB,KAAdC,EAAMgB,KAAeA,GAC9C,IAAK,IAAIE,EAAM/K,EAAK+K,EAAMF,GACxB,GAAIrB,EAAYrhB,KAAK0hB,EAAMkB,IAAO,CAC5B/K,EAAM+K,IAAOvC,EAAMzlB,OAAOnB,EAAI,EAAG,IAAI6nB,EAAS,EAAGzJ,EAAK+K,IAAOnpB,GAAMkpB,GACvE,IAAIE,EAASD,EACb,MAAOA,EAAKA,EAAMF,GAAOrB,EAAYrhB,KAAK0hB,EAAMkB,MAASA,GACzDvC,EAAMzlB,OAAOnB,EAAI,EAAG,IAAI6nB,EAAS,EAAGuB,EAAQD,IAC5CnpB,GAAMkpB,EACN9K,EAAM+K,CACR,OAAWA,EAET/K,EAAM6K,GAAOrC,EAAMzlB,OAAOnB,EAAI,EAAG,IAAI6nB,EAAS,EAAGzJ,EAAK6K,GAC5D,CAaF,MAXiB,OAAbnB,IACoB,GAAlBlB,EAAM,GAAGG,QAAehZ,EAAIoY,EAAIvV,MAAM,WACxCgW,EAAM,GAAG5K,KAAOjO,EAAE,GAAG7Q,OACrB0pB,EAAM3Y,QAAQ,IAAI4Z,EAAS,EAAG,EAAG9Z,EAAE,GAAG7Q,UAEhB,GAApB6nB,EAAI6B,GAAOG,QAAehZ,EAAIoY,EAAIvV,MAAM,WAC1CmU,EAAI6B,GAAO3K,IAAMlO,EAAE,GAAG7Q,OACtB0pB,EAAM1lB,KAAK,IAAI2mB,EAAS,EAAGG,EAAMja,EAAE,GAAG7Q,OAAQ8qB,MAI9B,OAAbF,EAAqBlB,EAAMyC,UAAYzC,CAChD,CACD,CAlJkB,GAuJnB,SAAS0C,GAAS5M,EAAMoL,GACtB,IAAIlB,EAAQlK,EAAKkK,MAEjB,OADa,MAATA,IAAiBA,EAAQlK,EAAKkK,MAAQO,GAAazK,EAAKY,KAAMwK,IAC3DlB,CACT,CAOA,IAAI2C,GAAa,GAEbvlB,GAAK,SAASwlB,EAASzqB,EAAM6jB,GAC/B,GAAI4G,EAAQ3P,iBACV2P,EAAQ3P,iBAAiB9a,EAAM6jB,GAAG,QAC7B,GAAI4G,EAAQ1P,YACjB0P,EAAQ1P,YAAY,KAAO/a,EAAM6jB,OAC5B,CACL,IAAIvhB,EAAMmoB,EAAQC,YAAcD,EAAQC,UAAY,CAAC,GACrDpoB,EAAItC,IAASsC,EAAItC,IAASwqB,IAAYjoB,OAAOshB,EAC/C,CACF,EAEA,SAAS8G,GAAYF,EAASzqB,GAC5B,OAAOyqB,EAAQC,WAAaD,EAAQC,UAAU1qB,IAASwqB,EACzD,CAEA,SAAS7hB,GAAI8hB,EAASzqB,EAAM6jB,GAC1B,GAAI4G,EAAQrP,oBACVqP,EAAQrP,oBAAoBpb,EAAM6jB,GAAG,QAChC,GAAI4G,EAAQpP,YACjBoP,EAAQpP,YAAY,KAAOrb,EAAM6jB,OAC5B,CACL,IAAIvhB,EAAMmoB,EAAQC,UAAWrsB,EAAMiE,GAAOA,EAAItC,GAC9C,GAAI3B,EAAK,CACP,IAAIC,EAAQ+D,EAAQhE,EAAKwlB,GACrBvlB,GAAS,IACTgE,EAAItC,GAAQ3B,EAAIP,MAAM,EAAGQ,GAAOiE,OAAOlE,EAAIP,MAAMQ,EAAQ,IAC/D,CACF,CACF,CAEA,SAASssB,GAAOH,EAASzqB,GACvB,IAAIwI,EAAWmiB,GAAYF,EAASzqB,GACpC,GAAKwI,EAASrK,OAEd,IADA,IAAID,EAAON,MAAMC,UAAUC,MAAMM,KAAKO,UAAW,GACxCtB,EAAI,EAAGA,EAAImL,EAASrK,SAAUd,EAAKmL,EAASnL,GAAGU,MAAM,KAAMG,EACtE,CAKA,SAAS2sB,GAAe1N,EAAIzU,EAAGoiB,GAI7B,MAHgB,iBAALpiB,IACPA,EAAI,CAAC1I,KAAM0I,EAAGqiB,eAAgB,WAAavtB,KAAKwtB,kBAAmB,CAAM,IAC7EJ,GAAOzN,EAAI2N,GAAYpiB,EAAE1I,KAAMmd,EAAIzU,GAC5BuiB,GAAmBviB,IAAMA,EAAEwiB,gBACpC,CAEA,SAASC,GAAqBhO,GAC5B,IAAI9e,EAAM8e,EAAGuN,WAAavN,EAAGuN,UAAUU,eACvC,GAAK/sB,EAEL,IADA,IAAI4E,EAAMka,EAAGkO,MAAMC,yBAA2BnO,EAAGkO,MAAMC,uBAAyB,IACvEjuB,EAAI,EAAGA,EAAIgB,EAAIF,SAAUd,GAAkC,GAAzBgF,EAAQY,EAAK5E,EAAIhB,KACxD4F,EAAId,KAAK9D,EAAIhB,GACnB,CAEA,SAASkuB,GAAWd,EAASzqB,GAC3B,OAAO2qB,GAAYF,EAASzqB,GAAM7B,OAAS,CAC7C,CAIA,SAASqtB,GAAWC,GAClBA,EAAK5tB,UAAUoH,GAAK,SAASjF,EAAM6jB,GAAI5e,GAAGzH,KAAMwC,EAAM6jB,EAAG,EACzD4H,EAAK5tB,UAAU8K,IAAM,SAAS3I,EAAM6jB,GAAIlb,GAAInL,KAAMwC,EAAM6jB,EAAG,CAC7D,CAKA,SAAS6H,GAAiBhjB,GACpBA,EAAEqiB,eAAkBriB,EAAEqiB,iBACnBriB,EAAEijB,aAAc,CACzB,CACA,SAASC,GAAkBljB,GACrBA,EAAEmjB,gBAAmBnjB,EAAEmjB,kBACpBnjB,EAAEojB,cAAe,CAC1B,CACA,SAASb,GAAmBviB,GAC1B,OAA6B,MAAtBA,EAAEsiB,iBAA2BtiB,EAAEsiB,iBAAoC,GAAjBtiB,EAAEijB,WAC7D,CACA,SAASI,GAAOrjB,GAAIgjB,GAAiBhjB,GAAIkjB,GAAkBljB,EAAG,CAE9D,SAASsjB,GAAStjB,GAAI,OAAOA,EAAEqb,QAAUrb,EAAEujB,UAAU,CACrD,SAASC,GAASxjB,GAChB,IAAIsa,EAAIta,EAAEnJ,MAOV,OANS,MAALyjB,IACa,EAAXta,EAAEyjB,OAAcnJ,EAAI,EACJ,EAAXta,EAAEyjB,OAAcnJ,EAAI,EACT,EAAXta,EAAEyjB,SAAcnJ,EAAI,IAE3B9B,GAAOxY,EAAE0jB,SAAgB,GAALpJ,IAAUA,EAAI,GAC/BA,CACT,CAGA,IAQIqJ,GAeAC,GAvBAC,GAAc,WAGhB,GAAIpM,GAAMC,EAAa,EAAK,OAAO,EACnC,IAAIoM,EAAMtK,EAAI,OACd,MAAO,cAAesK,GAAO,aAAcA,CAC7C,CANkB,GASlB,SAASC,GAAiBC,GACxB,GAAqB,MAAjBL,GAAuB,CACzB,IAAI7kB,EAAO0a,EAAI,OAAQ,KACvBF,EAAqB0K,EAASxK,EAAI,OAAQ,CAAC1a,EAAM0K,SAASmQ,eAAe,QAClC,GAAnCqK,EAAQjS,WAAWkS,eACnBN,GAAgB7kB,EAAKolB,aAAe,GAAKplB,EAAKmlB,aAAe,KAAOxM,GAAMC,EAAa,GAC7F,CACA,IAAIyB,EAAOwK,GAAgBnK,EAAI,OAAQ,KACrCA,EAAI,OAAQ,IAAU,KAAM,yDAE9B,OADAL,EAAKU,aAAa,UAAW,IACtBV,CACT,CAIA,SAASgL,GAAgBH,GACvB,GAAoB,MAAhBJ,GAAwB,OAAOA,GACnC,IAAIQ,EAAM9K,EAAqB0K,EAASxa,SAASmQ,eAAe,QAC5D0K,EAAKpL,EAAMmL,EAAK,EAAG,GAAGE,wBACtBC,EAAKtL,EAAMmL,EAAK,EAAG,GAAGE,wBAE1B,OADAlL,EAAe4K,MACVK,GAAMA,EAAGG,MAAQH,EAAGI,SAClBb,GAAgBW,EAAGE,MAAQJ,EAAGI,MAAQ,EAC/C,CAIA,IA8BMzkB,GA9BF0kB,GAA+C,GAA9B,QAAQ3lB,MAAM,MAAMtJ,OAAc,SAAUmhB,GAE/D,IADA,IAAID,EAAM,EAAG3U,EAAS,GAAIjL,EAAI6f,EAAOnhB,OAC9BkhB,GAAO5f,GAAG,CACf,IAAI4tB,EAAK/N,EAAOjd,QAAQ,KAAMgd,IACnB,GAAPgO,IAAYA,EAAK/N,EAAOnhB,QAC5B,IAAIwf,EAAO2B,EAAOxhB,MAAMuhB,EAA8B,MAAzBC,EAAOlG,OAAOiU,EAAK,GAAaA,EAAK,EAAIA,GAClEC,EAAK3P,EAAKtb,QAAQ,OACX,GAAPirB,GACF5iB,EAAOvI,KAAKwb,EAAK7f,MAAM,EAAGwvB,IAC1BjO,GAAOiO,EAAK,IAEZ5iB,EAAOvI,KAAKwb,GACZ0B,EAAMgO,EAAK,EAEf,CACA,OAAO3iB,CACT,EAAI,SAAU4U,GAAU,OAAOA,EAAO7X,MAAM,WAAa,EAErD8lB,GAAehwB,OAAOiwB,aAAe,SAAUC,GACjD,IAAM,OAAOA,EAAGjJ,gBAAkBiJ,EAAGhJ,YACb,CAAxB,MAAM/b,GAAK,OAAO,CAAM,CAC1B,EAAI,SAAU+kB,GACZ,IAAI9L,EACJ,IAAKA,EAAQ8L,EAAGC,cAAcC,UAAUzK,aAC9B,CAAV,MAAMxa,GAAI,CACV,SAAKiZ,GAASA,EAAMiM,iBAAmBH,IACe,GAA/C9L,EAAMkM,iBAAiB,aAAclM,EAC9C,EAEImM,GAEE,WADAplB,GAAIwZ,EAAI,UAEZxZ,GAAE6Z,aAAa,SAAU,WACC,mBAAZ7Z,GAAEqlB,QAGdC,GAAiB,KACrB,SAASC,GAAkBvB,GACzB,GAAsB,MAAlBsB,GAA0B,OAAOA,GACrC,IAAInM,EAAOG,EAAqB0K,EAASxK,EAAI,OAAQ,MACjDgM,EAASrM,EAAKmL,wBACdmB,EAAYxM,EAAME,EAAM,EAAG,GAAGmL,wBAClC,OAAOgB,GAAiBtkB,KAAK0kB,IAAIF,EAAOhB,KAAOiB,EAAUjB,MAAQ,CACnE,CAGA,IAAImB,GAAQ,CAAC,EAAGC,GAAY,CAAC,EAK7B,SAASC,GAAWpnB,EAAMqW,GACpB7e,UAAUR,OAAS,IACnBqf,EAAKgR,aAAe5wB,MAAMC,UAAUC,MAAMM,KAAKO,UAAW,IAC9D0vB,GAAMlnB,GAAQqW,CAChB,CAEA,SAASiR,GAAWC,EAAMC,GACxBL,GAAUI,GAAQC,CACpB,CAIA,SAASC,GAAYD,GACnB,GAAmB,iBAARA,GAAoBL,GAAUpK,eAAeyK,GACtDA,EAAOL,GAAUK,QACZ,GAAIA,GAA4B,iBAAbA,EAAKxnB,MAAoBmnB,GAAUpK,eAAeyK,EAAKxnB,MAAO,CACtF,IAAI2gB,EAAQwG,GAAUK,EAAKxnB,MACP,iBAAT2gB,IAAqBA,EAAQ,CAAC3gB,KAAM2gB,KAC/C6G,EAAOtI,GAAUyB,EAAO6G,IACnBxnB,KAAO2gB,EAAM3gB,IACpB,KAAO,IAAmB,iBAARwnB,GAAoB,0BAA0BnnB,KAAKmnB,GACnE,OAAOC,GAAY,mBACd,GAAmB,iBAARD,GAAoB,2BAA2BnnB,KAAKmnB,GACpE,OAAOC,GAAY,mBACrB,CACA,MAAmB,iBAARD,EAA2B,CAACxnB,KAAMwnB,GAC/BA,GAAQ,CAACxnB,KAAM,OAC/B,CAIA,SAASmW,GAAQjd,EAASsuB,GACxBA,EAAOC,GAAYD,GACnB,IAAIE,EAAWR,GAAMM,EAAKxnB,MAC1B,IAAK0nB,EAAY,OAAOvR,GAAQjd,EAAS,cACzC,IAAIyuB,EAAUD,EAASxuB,EAASsuB,GAChC,GAAII,GAAe7K,eAAeyK,EAAKxnB,MAAO,CAC5C,IAAI6nB,EAAOD,GAAeJ,EAAKxnB,MAC/B,IAAK,IAAI8c,KAAQ+K,EACVA,EAAK9K,eAAeD,KACrB6K,EAAQ5K,eAAeD,KAAS6K,EAAQ,IAAM7K,GAAQ6K,EAAQ7K,IAClE6K,EAAQ7K,GAAQ+K,EAAK/K,GAEzB,CAGA,GAFA6K,EAAQ3nB,KAAOwnB,EAAKxnB,KAChBwnB,EAAKM,aAAcH,EAAQG,WAAaN,EAAKM,YAC7CN,EAAKO,UAAa,IAAK,IAAIC,KAAUR,EAAKO,UAC1CJ,EAAQK,GAAUR,EAAKO,UAAUC,GAErC,OAAOL,CACT,CAIA,IAAIC,GAAiB,CAAC,EACtB,SAAS7S,GAAWsB,EAAM4R,GAExBtL,EAAQsL,EADGL,GAAe7K,eAAe1G,GAAQuR,GAAevR,GAASuR,GAAevR,GAAQ,CAAC,EAEnG,CAEA,SAASgB,GAAUhB,EAAMf,GACvB,IAAc,IAAVA,EAAkB,OAAOA,EAC7B,GAAIe,EAAKgB,UAAa,OAAOhB,EAAKgB,UAAU/B,GAC5C,IAAI4S,EAAS,CAAC,EACd,IAAK,IAAI/K,KAAK7H,EAAO,CACnB,IAAIhZ,EAAMgZ,EAAM6H,GACZ7gB,aAAe7F,QAAS6F,EAAMA,EAAIlB,OAAO,KAC7C8sB,EAAO/K,GAAK7gB,CACd,CACA,OAAO4rB,CACT,CAIA,SAAShS,GAAUG,EAAMf,GAEvB,IADA,IAAI6S,EACG9R,EAAKH,YACViS,EAAO9R,EAAKH,UAAUZ,KACT6S,EAAK9R,MAAQA,GAC1Bf,EAAQ6S,EAAK7S,MACbe,EAAO8R,EAAK9R,KAEd,OAAO8R,GAAQ,CAAC9R,KAAMA,EAAMf,MAAOA,EACrC,CAEA,SAAS8S,GAAW/R,EAAMvT,EAAIC,GAC5B,OAAOsT,EAAK+R,YAAa/R,EAAK+R,WAAWtlB,EAAIC,EAC/C,CAOA,IAAI8U,GAAe,SAASM,EAAQb,EAAS+Q,GAC3ChyB,KAAK6hB,IAAM7hB,KAAKgc,MAAQ,EACxBhc,KAAK8hB,OAASA,EACd9hB,KAAKihB,QAAUA,GAAW,EAC1BjhB,KAAKiyB,cAAgBjyB,KAAKkyB,gBAAkB,EAC5ClyB,KAAKmyB,UAAY,EACjBnyB,KAAKgyB,WAAaA,CACpB,EA0EA,SAASI,GAAQC,EAAKvL,GAEpB,IADAA,GAAKuL,EAAIxgB,OACD,GAAKiV,GAAKuL,EAAI3b,KAAQ,MAAM,IAAI3E,MAAM,qBAAuB+U,EAAIuL,EAAIxgB,OAAS,qBAEtF,IADA,IAAIygB,EAAQD,GACJC,EAAMlR,OACZ,IAAK,IAAIvhB,EAAI,KAAMA,EAAG,CACpB,IAAIye,EAAQgU,EAAMC,SAAS1yB,GAAI2yB,EAAKlU,EAAMmU,YAC1C,GAAI3L,EAAI0L,EAAI,CAAEF,EAAQhU,EAAO,KAAM,CACnCwI,GAAK0L,CACP,CAEF,OAAOF,EAAMlR,MAAM0F,EACrB,CAIA,SAAS4L,GAAWL,EAAKrW,EAAOgG,GAC9B,IAAIb,EAAM,GAAI2F,EAAI9K,EAAMmE,KAQxB,OAPAkS,EAAIM,KAAK3W,EAAMmE,KAAM6B,EAAI7B,KAAO,GAAG,SAAUA,GAC3C,IAAIY,EAAOZ,EAAKY,KACZ+F,GAAK9E,EAAI7B,OAAQY,EAAOA,EAAKzgB,MAAM,EAAG0hB,EAAI5B,KAC1C0G,GAAK9K,EAAMmE,OAAQY,EAAOA,EAAKzgB,MAAM0b,EAAMoE,KAC/Ce,EAAIxc,KAAKoc,KACP+F,CACJ,IACO3F,CACT,CAEA,SAASyR,GAASP,EAAK5S,EAAMC,GAC3B,IAAIyB,EAAM,GAEV,OADAkR,EAAIM,KAAKlT,EAAMC,GAAI,SAAUS,GAAQgB,EAAIxc,KAAKwb,EAAKY,KAAO,IACnDI,CACT,CAIA,SAAS0R,GAAiB1S,EAAM2S,GAC9B,IAAIzuB,EAAOyuB,EAAS3S,EAAK2S,OACzB,GAAIzuB,EAAQ,IAAK,IAAIyiB,EAAI3G,EAAM2G,EAAGA,EAAIA,EAAEvI,OAAUuI,EAAEgM,QAAUzuB,CAChE,CAIA,SAAS0uB,GAAO5S,GACd,GAAmB,MAAfA,EAAK5B,OAAkB,OAAO,KAElC,IADA,IAAIqD,EAAMzB,EAAK5B,OAAQyU,EAAKnuB,EAAQ+c,EAAIR,MAAOjB,GACtCmS,EAAQ1Q,EAAIrD,OAAQ+T,EAAO1Q,EAAM0Q,EAAOA,EAAQA,EAAM/T,OAC7D,IAAK,IAAI1e,EAAI,EACPyyB,EAAMC,SAAS1yB,IAAM+hB,IADR/hB,EAEjBmzB,GAAMV,EAAMC,SAAS1yB,GAAG4yB,YAG5B,OAAOO,EAAKpR,EAAI/P,KAClB,CAIA,SAASohB,GAAaX,EAAOY,GAC3B,IAAIpM,EAAIwL,EAAMzgB,MACdiP,EAAO,EAAG,CACR,IAAK,IAAI6K,EAAM,EAAGA,EAAM2G,EAAMC,SAAS5xB,SAAUgrB,EAAK,CACpD,IAAIrN,EAAQgU,EAAMC,SAAS5G,GAAMvL,EAAK9B,EAAMwU,OAC5C,GAAII,EAAI9S,EAAI,CAAEkS,EAAQhU,EAAO,SAASwC,CAAM,CAC5CoS,GAAK9S,EACL0G,GAAKxI,EAAMmU,WACb,CACA,OAAO3L,CACT,QAAUwL,EAAMlR,OAEhB,IADA,IAAIvhB,EAAI,EACDA,EAAIyyB,EAAMlR,MAAMzgB,SAAUd,EAAG,CAClC,IAA2BszB,EAAhBb,EAAMlR,MAAMvhB,GAAcizB,OACrC,GAAII,EAAIC,EAAM,MACdD,GAAKC,CACP,CACA,OAAOrM,EAAIjnB,CACb,CAEA,SAASuzB,GAAOf,EAAKpwB,GAAI,OAAOA,GAAKowB,EAAIxgB,OAAS5P,EAAIowB,EAAIxgB,MAAQwgB,EAAI3b,IAAI,CAE1E,SAAS2c,GAAcxwB,EAAShD,GAC9B,OAAOyzB,OAAOzwB,EAAQ0wB,oBAAoB1zB,EAAIgD,EAAQ2wB,iBACxD,CAGA,SAASC,GAAItT,EAAMC,EAAIuK,GAGrB,QAFgB,IAAXA,IAAoBA,EAAS,QAE5B3qB,gBAAgByzB,IAAQ,OAAO,IAAIA,GAAItT,EAAMC,EAAIuK,GACvD3qB,KAAKmgB,KAAOA,EACZngB,KAAKogB,GAAKA,EACVpgB,KAAK2qB,OAASA,CAChB,CAIA,SAAS+I,GAAI9zB,EAAG4lB,GAAK,OAAO5lB,EAAEugB,KAAOqF,EAAErF,MAAQvgB,EAAEwgB,GAAKoF,EAAEpF,EAAG,CAE3D,SAASuT,GAAe/zB,EAAG4lB,GAAK,OAAO5lB,EAAE+qB,QAAUnF,EAAEmF,QAAuB,GAAb+I,GAAI9zB,EAAG4lB,EAAQ,CAE9E,SAASoO,GAAQC,GAAI,OAAOJ,GAAII,EAAE1T,KAAM0T,EAAEzT,GAAG,CAC7C,SAAS0T,GAAOl0B,EAAG4lB,GAAK,OAAOkO,GAAI9zB,EAAG4lB,GAAK,EAAIA,EAAI5lB,CAAE,CACrD,SAASm0B,GAAOn0B,EAAG4lB,GAAK,OAAOkO,GAAI9zB,EAAG4lB,GAAK,EAAI5lB,EAAI4lB,CAAE,CAIrD,SAASwO,GAAS3B,EAAKvL,GAAI,OAAO5a,KAAKC,IAAIkmB,EAAIxgB,MAAO3F,KAAKiE,IAAI2W,EAAGuL,EAAIxgB,MAAQwgB,EAAI3b,KAAO,GAAG,CAC5F,SAASud,GAAQ5B,EAAKxQ,GACpB,GAAIA,EAAI1B,KAAOkS,EAAIxgB,MAAS,OAAO4hB,GAAIpB,EAAIxgB,MAAO,GAClD,IAAImF,EAAOqb,EAAIxgB,MAAQwgB,EAAI3b,KAAO,EAClC,OAAImL,EAAI1B,KAAOnJ,EAAeyc,GAAIzc,EAAMob,GAAQC,EAAKrb,GAAM+J,KAAKpgB,QACzDuzB,GAAUrS,EAAKuQ,GAAQC,EAAKxQ,EAAI1B,MAAMY,KAAKpgB,OACpD,CACA,SAASuzB,GAAUrS,EAAKsS,GACtB,IAAI/T,EAAKyB,EAAIzB,GACb,OAAU,MAANA,GAAcA,EAAK+T,EAAkBV,GAAI5R,EAAI1B,KAAMgU,GAC9C/T,EAAK,EAAYqT,GAAI5R,EAAI1B,KAAM,GAC1B0B,CAChB,CACA,SAASuS,GAAa/B,EAAKpiB,GAEzB,IADA,IAAIkR,EAAM,GACDthB,EAAI,EAAGA,EAAIoQ,EAAMtP,OAAQd,IAAOshB,EAAIthB,GAAKo0B,GAAQ5B,EAAKpiB,EAAMpQ,IACrE,OAAOshB,CACT,CAlMAK,GAAanhB,UAAUohB,IAAM,WAAa,OAAOzhB,KAAK6hB,KAAO7hB,KAAK8hB,OAAOnhB,MAAM,EAC/E6gB,GAAanhB,UAAUg0B,IAAM,WAAa,OAAOr0B,KAAK6hB,KAAO7hB,KAAKmyB,SAAS,EAC3E3Q,GAAanhB,UAAUi0B,KAAO,WAAa,OAAOt0B,KAAK8hB,OAAOlG,OAAO5b,KAAK6hB,WAAQxc,CAAS,EAC3Fmc,GAAanhB,UAAU8S,KAAO,WAC5B,GAAInT,KAAK6hB,IAAM7hB,KAAK8hB,OAAOnhB,OACvB,OAAOX,KAAK8hB,OAAOlG,OAAO5b,KAAK6hB,MACrC,EACAL,GAAanhB,UAAUk0B,IAAM,SAAUlgB,GACrC,IAAI+L,EAAKpgB,KAAK8hB,OAAOlG,OAAO5b,KAAK6hB,KAIjC,GAFoB,iBAATxN,EAA0B+L,GAAM/L,EAC/B+L,IAAO/L,EAAMrK,KAAOqK,EAAMrK,KAAKoW,GAAM/L,EAAM+L,IAClC,QAAVpgB,KAAK6hB,IAAYzB,CAC9B,EACAoB,GAAanhB,UAAUm0B,SAAW,SAAUngB,GAE1C,IADA,IAAI2H,EAAQhc,KAAK6hB,IACV7hB,KAAKu0B,IAAIlgB,KAChB,OAAOrU,KAAK6hB,IAAM7F,CACpB,EACAwF,GAAanhB,UAAUo0B,SAAW,WAEhC,IADA,IAAIzY,EAAQhc,KAAK6hB,IACV,aAAa7X,KAAKhK,KAAK8hB,OAAOlG,OAAO5b,KAAK6hB,SAAW7hB,KAAK6hB,IACjE,OAAO7hB,KAAK6hB,IAAM7F,CACpB,EACAwF,GAAanhB,UAAUq0B,UAAY,WAAa10B,KAAK6hB,IAAM7hB,KAAK8hB,OAAOnhB,MAAO,EAC9E6gB,GAAanhB,UAAUs0B,OAAS,SAAUvU,GACxC,IAAIkK,EAAQtqB,KAAK8hB,OAAOjd,QAAQub,EAAIpgB,KAAK6hB,KACzC,GAAIyI,GAAS,EAAsB,OAAlBtqB,KAAK6hB,IAAMyI,GAAc,CAC5C,EACA9I,GAAanhB,UAAUu0B,OAAS,SAAU9N,GAAI9mB,KAAK6hB,KAAOiF,CAAE,EAC5DtF,GAAanhB,UAAUw0B,OAAS,WAK9B,OAJI70B,KAAKiyB,cAAgBjyB,KAAKgc,QAC5Bhc,KAAKkyB,gBAAkBvL,EAAY3mB,KAAK8hB,OAAQ9hB,KAAKgc,MAAOhc,KAAKihB,QAASjhB,KAAKiyB,cAAejyB,KAAKkyB,iBACnGlyB,KAAKiyB,cAAgBjyB,KAAKgc,OAErBhc,KAAKkyB,iBAAmBlyB,KAAKmyB,UAAYxL,EAAY3mB,KAAK8hB,OAAQ9hB,KAAKmyB,UAAWnyB,KAAKihB,SAAW,EAC3G,EACAO,GAAanhB,UAAUy0B,YAAc,WACnC,OAAOnO,EAAY3mB,KAAK8hB,OAAQ,KAAM9hB,KAAKihB,UACxCjhB,KAAKmyB,UAAYxL,EAAY3mB,KAAK8hB,OAAQ9hB,KAAKmyB,UAAWnyB,KAAKihB,SAAW,EAC/E,EACAO,GAAanhB,UAAUgU,MAAQ,SAAU0gB,EAASC,EAASC,GACzD,GAAsB,iBAAXF,EAOJ,CACL,IAAI1gB,EAAQrU,KAAK8hB,OAAOxhB,MAAMN,KAAK6hB,KAAKxN,MAAM0gB,GAC9C,OAAI1gB,GAASA,EAAMvT,MAAQ,EAAY,MACnCuT,IAAqB,IAAZ2gB,IAAqBh1B,KAAK6hB,KAAOxN,EAAM,GAAG1T,QAChD0T,EACT,CAXE,IAAI6gB,EAAQ,SAAUtL,GAAO,OAAOqL,EAAkBrL,EAAIR,cAAgBQ,CAAK,EAE/E,GAAIsL,EADSl1B,KAAK8hB,OAAOpB,OAAO1gB,KAAK6hB,IAAKkT,EAAQp0B,UAC7Bu0B,EAAMH,GAEzB,OADgB,IAAZC,IAAqBh1B,KAAK6hB,KAAOkT,EAAQp0B,SACtC,CAQb,EACA6gB,GAAanhB,UAAU4N,QAAU,WAAY,OAAOjO,KAAK8hB,OAAOxhB,MAAMN,KAAKgc,MAAOhc,KAAK6hB,IAAI,EAC3FL,GAAanhB,UAAU80B,eAAiB,SAAUrO,EAAGpF,GACnD1hB,KAAKmyB,WAAarL,EAClB,IAAM,OAAOpF,GACkB,CAA/B,QAAU1hB,KAAKmyB,WAAarL,CAAG,CACjC,EACAtF,GAAanhB,UAAU+0B,UAAY,SAAUtO,GAC3C,IAAIuO,EAASr1B,KAAKgyB,WAClB,OAAOqD,GAAUA,EAAOD,UAAUtO,EACpC,EACAtF,GAAanhB,UAAUi1B,UAAY,WACjC,IAAID,EAASr1B,KAAKgyB,WAClB,OAAOqD,GAAUA,EAAOC,UAAUt1B,KAAK6hB,IACzC,EA+HA,IAAI0T,GAAe,SAAStW,EAAOmW,GACjCp1B,KAAKif,MAAQA,EACbjf,KAAKo1B,UAAYA,CACnB,EAEII,GAAU,SAASnD,EAAKpT,EAAOkB,EAAMiV,GACvCp1B,KAAKif,MAAQA,EACbjf,KAAKqyB,IAAMA,EACXryB,KAAKmgB,KAAOA,EACZngB,KAAKy1B,aAAeL,GAAa,EACjCp1B,KAAK01B,WAAa,KAClB11B,KAAK21B,aAAe,CACtB,EAuCA,SAASC,GAAcjW,EAAIQ,EAAMpW,EAAS8rB,GAGxC,IAAIC,EAAK,CAACnW,EAAGV,MAAM8W,SAAUC,EAAc,CAAC,EAE5CC,GAAQtW,EAAIQ,EAAKY,KAAMpB,EAAG0S,IAAIrS,KAAMjW,GAAS,SAAUiY,EAAKrF,GAAS,OAAOmZ,EAAGnxB,KAAKqd,EAAKrF,EAAQ,GACzFqZ,EAAaH,GAkCrB,IAjCA,IAAI5W,EAAQlV,EAAQkV,MAGhBiX,EAAO,SAAWC,GACpBpsB,EAAQ2rB,WAAaI,EACrB,IAAIM,EAAUzW,EAAGV,MAAMoX,SAASF,GAAIt2B,EAAI,EAAG4D,EAAK,EAChDsG,EAAQkV,OAAQ,EAChBgX,GAAQtW,EAAIQ,EAAKY,KAAMqV,EAAQpW,KAAMjW,GAAS,SAAUiY,EAAKrF,GAG3D,IAFA,IAAIX,EAAQnc,EAEL4D,EAAKue,GAAK,CACf,IAAIsU,EAAQR,EAAGj2B,GACXy2B,EAAQtU,GACR8T,EAAGlxB,OAAO/E,EAAG,EAAGmiB,EAAK8T,EAAGj2B,EAAE,GAAIy2B,GAClCz2B,GAAK,EACL4D,EAAKyI,KAAKiE,IAAI6R,EAAKsU,EACrB,CACA,GAAK3Z,EACL,GAAIyZ,EAAQG,OACVT,EAAGlxB,OAAOoX,EAAOnc,EAAImc,EAAOgG,EAAK,WAAarF,GAC9C9c,EAAImc,EAAQ,OAEZ,KAAOA,EAAQnc,EAAGmc,GAAS,EAAG,CAC5B,IAAI4F,EAAMkU,EAAG9Z,EAAM,GACnB8Z,EAAG9Z,EAAM,IAAM4F,EAAMA,EAAM,IAAM,IAAM,WAAajF,CACtD,CAEJ,GAAGqZ,GACHjsB,EAAQkV,MAAQA,EAChBlV,EAAQ2rB,WAAa,KACrB3rB,EAAQ4rB,aAAe,CACzB,EAESQ,EAAI,EAAGA,EAAIxW,EAAGV,MAAMoX,SAAS11B,SAAUw1B,EAAGD,EAAMC,GAEzD,MAAO,CAACK,OAAQV,EAAIW,QAAST,EAAYU,SAAWV,EAAYW,UAAYX,EAAc,KAC5F,CAEA,SAASY,GAAcjX,EAAIQ,EAAM0W,GAC/B,IAAK1W,EAAKqW,QAAUrW,EAAKqW,OAAO,IAAM7W,EAAGV,MAAM8W,QAAS,CACtD,IAAIhsB,EAAU+sB,GAAiBnX,EAAIoT,GAAO5S,IACtC4W,EAAa5W,EAAKY,KAAKpgB,OAASgf,EAAG9c,QAAQm0B,oBAAsBhW,GAAUrB,EAAG0S,IAAIrS,KAAMjW,EAAQkV,OAChG/R,EAAS0oB,GAAcjW,EAAIQ,EAAMpW,GACjCgtB,IAAchtB,EAAQkV,MAAQ8X,GAClC5W,EAAK8W,WAAaltB,EAAQ+E,MAAMioB,GAChC5W,EAAKqW,OAAStpB,EAAOspB,OACjBtpB,EAAOupB,QAAWtW,EAAK+W,aAAehqB,EAAOupB,QACxCtW,EAAK+W,eAAgB/W,EAAK+W,aAAe,MAC9CL,IAAmBlX,EAAG0S,IAAI8E,oBAC1BxX,EAAG0S,IAAI+E,aAAelrB,KAAKC,IAAIwT,EAAG0S,IAAI+E,eAAgBzX,EAAG0S,IAAI8E,mBACnE,CACA,OAAOhX,EAAKqW,MACd,CAEA,SAASM,GAAiBnX,EAAImH,EAAGuQ,GAC/B,IAAIhF,EAAM1S,EAAG0S,IAAKzV,EAAU+C,EAAG/C,QAC/B,IAAKyV,EAAIrS,KAAK+R,WAAc,OAAO,IAAIyD,GAAQnD,GAAK,EAAMvL,GAC1D,IAAI9K,EAAQsb,GAAc3X,EAAImH,EAAGuQ,GAC7BE,EAAQvb,EAAQqW,EAAIxgB,OAASugB,GAAQC,EAAKrW,EAAQ,GAAGib,WACrDltB,EAAUwtB,EAAQ/B,GAAQgC,UAAUnF,EAAKkF,EAAOvb,GAAS,IAAIwZ,GAAQnD,EAAKN,GAAWM,EAAIrS,MAAOhE,GASpG,OAPAqW,EAAIM,KAAK3W,EAAO8K,GAAG,SAAU3G,GAC3BsX,GAAY9X,EAAIQ,EAAKY,KAAMhX,GAC3B,IAAI8X,EAAM9X,EAAQoW,KAClBA,EAAK8W,WAAapV,GAAOiF,EAAI,GAAKjF,EAAM,GAAK,GAAKA,GAAOjF,EAAQ8a,UAAY7V,EAAMjF,EAAQ+a,OAAS5tB,EAAQ+E,OAAS,KACrH/E,EAAQ6tB,UACV,IACIP,IAAWhF,EAAI+E,aAAertB,EAAQoW,MACnCpW,CACT,CAKA,SAAS0tB,GAAY9X,EAAIoB,EAAMhX,EAAS8tB,GACtC,IAAI7X,EAAOL,EAAG0S,IAAIrS,KACduB,EAAS,IAAIC,GAAaT,EAAMpB,EAAG9c,QAAQoe,QAASlX,GAGxD,IAFAwX,EAAOvF,MAAQuF,EAAOM,IAAMgW,GAAW,EAC3B,IAAR9W,GAAc+W,GAAc9X,EAAMjW,EAAQkV,QACtCsC,EAAOE,OACbsW,GAAU/X,EAAMuB,EAAQxX,EAAQkV,OAChCsC,EAAOvF,MAAQuF,EAAOM,GAE1B,CAEA,SAASiW,GAAc9X,EAAMf,GAC3B,GAAIe,EAAK+B,UAAa,OAAO/B,EAAK+B,UAAU9C,GAC5C,GAAKe,EAAKH,UAAV,CACA,IAAI6B,EAAQ7B,GAAUG,EAAMf,GAC5B,OAAIyC,EAAM1B,KAAK+B,UAAoBL,EAAM1B,KAAK+B,UAAUL,EAAMzC,YAA9D,CAF8B,CAGhC,CAEA,SAAS8Y,GAAU/X,EAAMuB,EAAQtC,EAAOyC,GACtC,IAAK,IAAI7hB,EAAI,EAAGA,EAAI,GAAIA,IAAK,CACvB6hB,IAASA,EAAM,GAAK7B,GAAUG,EAAMf,GAAOe,MAC/C,IAAIrD,EAAQqD,EAAK2B,MAAMJ,EAAQtC,GAC/B,GAAIsC,EAAOM,IAAMN,EAAOvF,MAAS,OAAOW,CAC1C,CACA,MAAM,IAAI5K,MAAM,QAAUiO,EAAKrW,KAAO,6BACxC,CA/IA6rB,GAAQn1B,UAAU+0B,UAAY,SAAUtO,GACtC,IAAI3G,EAAOngB,KAAKqyB,IAAID,QAAQpyB,KAAKmgB,KAAO2G,GAExC,OADY,MAAR3G,GAAgB2G,EAAI9mB,KAAKy1B,eAAgBz1B,KAAKy1B,aAAe3O,GAC1D3G,CACT,EAEAqV,GAAQn1B,UAAUi1B,UAAY,SAAUxO,GACtC,IAAK9mB,KAAK01B,WAAc,OAAO,KAC/B,KAAO11B,KAAK01B,WAAW11B,KAAK21B,eAAiB7O,GACzC9mB,KAAK21B,cAAgB,EACzB,IAAInzB,EAAOxC,KAAK01B,WAAW11B,KAAK21B,aAAe,GAC/C,MAAO,CAACnzB,KAAMA,GAAQA,EAAKiN,QAAQ,kBAAmB,IAC9CiH,KAAM1W,KAAK01B,WAAW11B,KAAK21B,cAAgB7O,EACrD,EAEA0O,GAAQn1B,UAAUu3B,SAAW,WAC3B53B,KAAKmgB,OACDngB,KAAKy1B,aAAe,GAAKz1B,KAAKy1B,cACpC,EAEAD,GAAQgC,UAAY,SAAUnF,EAAKkF,EAAOpX,GACxC,OAAIoX,aAAiBhC,GACV,IAAIC,GAAQnD,EAAKrR,GAAUqR,EAAIrS,KAAMuX,EAAMtY,OAAQkB,EAAMoX,EAAMnC,WAE/D,IAAII,GAAQnD,EAAKrR,GAAUqR,EAAIrS,KAAMuX,GAAQpX,EAC1D,EAEAqV,GAAQn1B,UAAUyO,KAAO,SAAUkpB,GACjC,IAAI/Y,GAAiB,IAAT+Y,EAAiBhX,GAAUhhB,KAAKqyB,IAAIrS,KAAMhgB,KAAKif,OAASjf,KAAKif,MACzE,OAAOjf,KAAKy1B,aAAe,EAAI,IAAIF,GAAatW,EAAOjf,KAAKy1B,cAAgBxW,CAC9E,EAmHA,IAAIgZ,GAAQ,SAAS1W,EAAQ/e,EAAMyc,GACjCjf,KAAKgc,MAAQuF,EAAOvF,MAAOhc,KAAKgiB,IAAMT,EAAOM,IAC7C7hB,KAAK8hB,OAASP,EAAOtT,UACrBjO,KAAKwC,KAAOA,GAAQ,KACpBxC,KAAKif,MAAQA,CACf,EAGA,SAASiZ,GAAUvY,EAAIkC,EAAKwV,EAASc,GACnC,IAAmCxb,EAGoCyb,EAHnE/F,EAAM1S,EAAG0S,IAAKrS,EAAOqS,EAAIrS,KAEzBG,EAAOiS,GAAQC,GADnBxQ,EAAMoS,GAAQ5B,EAAKxQ,IACS1B,MAAOpW,EAAU+sB,GAAiBnX,EAAIkC,EAAI1B,KAAMkX,GACxE9V,EAAS,IAAIC,GAAarB,EAAKY,KAAMpB,EAAG9c,QAAQoe,QAASlX,GAE7D,IADIouB,IAAWC,EAAS,KAChBD,GAAW5W,EAAOM,IAAMA,EAAIzB,MAAQmB,EAAOE,OACjDF,EAAOvF,MAAQuF,EAAOM,IACtBlF,EAAQob,GAAU/X,EAAMuB,EAAQxX,EAAQkV,OACpCkZ,GAAWC,EAAOzzB,KAAK,IAAIszB,GAAM1W,EAAQ5E,EAAOqE,GAAUqR,EAAIrS,KAAMjW,EAAQkV,SAElF,OAAOkZ,EAAUC,EAAS,IAAIH,GAAM1W,EAAQ5E,EAAO5S,EAAQkV,MAC7D,CAEA,SAASoZ,GAAmB71B,EAAM81B,GAChC,GAAI91B,EAAQ,OAAS,CACnB,IAAI+1B,EAAY/1B,EAAK6R,MAAM,qCAC3B,IAAKkkB,EAAa,MAClB/1B,EAAOA,EAAKlC,MAAM,EAAGi4B,EAAUz3B,OAAS0B,EAAKlC,MAAMi4B,EAAUz3B,MAAQy3B,EAAU,GAAG53B,QAClF,IAAI8lB,EAAO8R,EAAU,GAAK,UAAY,YAClB,MAAhBD,EAAO7R,GACP6R,EAAO7R,GAAQ8R,EAAU,GACnB,IAAKje,OAAO,YAAcie,EAAU,GAAK,aAAcvuB,KAAKsuB,EAAO7R,MACzE6R,EAAO7R,IAAS,IAAM8R,EAAU,GACtC,CACA,OAAO/1B,CACT,CAGA,SAASyzB,GAAQtW,EAAIoB,EAAMf,EAAMjW,EAASsc,EAAG2P,EAAaH,GACxD,IAAI2C,EAAexY,EAAKwY,aACJ,MAAhBA,IAAwBA,EAAe7Y,EAAG9c,QAAQ21B,cACtD,IACkE7b,EAD9D8b,EAAW,EAAGC,EAAW,KACzBnX,EAAS,IAAIC,GAAaT,EAAMpB,EAAG9c,QAAQoe,QAASlX,GACpD2X,EAAQ/B,EAAG9c,QAAQ81B,cAAgB,CAAC,MAExC,IADY,IAAR5X,GAAcsX,GAAmBP,GAAc9X,EAAMjW,EAAQkV,OAAQ+W,IACjEzU,EAAOE,OAAO,CASpB,GARIF,EAAOM,IAAMlC,EAAG9c,QAAQm0B,oBAC1BwB,GAAe,EACX3C,GAAc4B,GAAY9X,EAAIoB,EAAMhX,EAASwX,EAAOM,KACxDN,EAAOM,IAAMd,EAAKpgB,OAClBgc,EAAQ,MAERA,EAAQ0b,GAAmBN,GAAU/X,EAAMuB,EAAQxX,EAAQkV,MAAOyC,GAAQsU,GAExEtU,EAAO,CACT,IAAIkX,EAAQlX,EAAM,GAAG/X,KACjBivB,IAASjc,EAAQ,MAAQA,EAAQic,EAAQ,IAAMjc,EAAQic,GAC7D,CACA,IAAKJ,GAAgBE,GAAY/b,EAAO,CACtC,KAAO8b,EAAWlX,EAAOvF,OAEvBqK,EADAoS,EAAWvsB,KAAKiE,IAAIoR,EAAOvF,MAAOyc,EAAW,KACjCC,GAEdA,EAAW/b,CACb,CACA4E,EAAOvF,MAAQuF,EAAOM,GACxB,CACA,KAAO4W,EAAWlX,EAAOM,KAAK,CAI5B,IAAIA,EAAM3V,KAAKiE,IAAIoR,EAAOM,IAAK4W,EAAW,KAC1CpS,EAAExE,EAAK6W,GACPD,EAAW5W,CACb,CACF,CAOA,SAASyV,GAAc3X,EAAImH,EAAGuQ,GAG5B,IAFA,IAAIwB,EAAWC,EAASzG,EAAM1S,EAAG0S,IAC7B0G,EAAM1B,GAAW,EAAIvQ,GAAKnH,EAAG0S,IAAIrS,KAAKH,UAAY,IAAO,KACpDgH,EAASC,EAAGD,EAASkS,IAAOlS,EAAQ,CAC3C,GAAIA,GAAUwL,EAAIxgB,MAAS,OAAOwgB,EAAIxgB,MACtC,IAAIsO,EAAOiS,GAAQC,EAAKxL,EAAS,GAAIjkB,EAAQud,EAAK8W,WAClD,GAAIr0B,KAAWy0B,GAAWxQ,GAAUjkB,aAAiB2yB,GAAe3yB,EAAMwyB,UAAY,IAAM/C,EAAI+E,cAC5F,OAAOvQ,EACX,IAAImS,EAAWrS,EAAYxG,EAAKY,KAAM,KAAMpB,EAAG9c,QAAQoe,UACxC,MAAX6X,GAAmBD,EAAYG,KACjCF,EAAUjS,EAAS,EACnBgS,EAAYG,EAEhB,CACA,OAAOF,CACT,CAEA,SAASG,GAAgB5G,EAAKvL,GAE5B,GADAuL,EAAI+E,aAAelrB,KAAKiE,IAAIkiB,EAAI+E,aAActQ,KAC1CuL,EAAI8E,kBAAoBrQ,EAAI,IAAhC,CAEA,IADA,IAAI9K,EAAQqW,EAAIxgB,MACPsO,EAAO2G,EAAI,EAAG3G,EAAOnE,EAAOmE,IAAQ,CAC3C,IAAIoX,EAAQnF,GAAQC,EAAKlS,GAAM8W,WAI/B,GAAIM,MAAYA,aAAiBhC,KAAiBpV,EAAOoX,EAAMnC,UAAYtO,GAAI,CAC7E9K,EAAQmE,EAAO,EACf,KACF,CACF,CACAkS,EAAI8E,kBAAoBjrB,KAAKiE,IAAIkiB,EAAI8E,kBAAmBnb,EAZX,CAa/C,CAGA,IAAIkd,IAAmB,EAAOC,IAAoB,EAElD,SAASC,KACPF,IAAmB,CACrB,CAEA,SAASG,KACPF,IAAoB,CACtB,CAIA,SAASG,GAAWC,EAAQ9Z,EAAMC,GAChC1f,KAAKu5B,OAASA,EACdv5B,KAAKyf,KAAOA,EAAMzf,KAAK0f,GAAKA,CAC9B,CAGA,SAAS8Z,GAAiBC,EAAOF,GAC/B,GAAIE,EAAS,IAAK,IAAI55B,EAAI,EAAGA,EAAI45B,EAAM94B,SAAUd,EAAG,CAClD,IAAI65B,EAAOD,EAAM55B,GACjB,GAAI65B,EAAKH,QAAUA,EAAU,OAAOG,CACtC,CACF,CAIA,SAASC,GAAiBF,EAAOC,GAE/B,IADA,IAAI9T,EACK/lB,EAAI,EAAGA,EAAI45B,EAAM94B,SAAUd,EAC5B45B,EAAM55B,IAAM65B,IAAS9T,IAAMA,EAAI,KAAKjhB,KAAK80B,EAAM55B,IACvD,OAAO+lB,CACT,CAGA,SAASgU,GAAczZ,EAAMuZ,EAAMG,GACjC,IAAIC,EAAWD,GAAM95B,OAAOg6B,UAAYF,EAAGG,cAAgBH,EAAGG,YAAc,IAAID,UAC5ED,GAAY3Z,EAAK6Z,aAAeF,EAASrsB,IAAI0S,EAAK6Z,aACpD7Z,EAAK6Z,YAAYr1B,KAAK+0B,IAEtBvZ,EAAK6Z,YAAc7Z,EAAK6Z,YAAc7Z,EAAK6Z,YAAYj1B,OAAO,CAAC20B,IAAS,CAACA,GACrEI,GAAYA,EAASx1B,IAAI6b,EAAK6Z,cAEpCN,EAAKH,OAAOU,WAAW9Z,EACzB,CAMA,SAAS+Z,GAAkB3rB,EAAK4rB,EAASC,GACvC,IAAIC,EACJ,GAAI9rB,EAAO,IAAK,IAAI1O,EAAI,EAAGA,EAAI0O,EAAI5N,SAAUd,EAAG,CAC9C,IAAI65B,EAAOnrB,EAAI1O,GAAI05B,EAASG,EAAKH,OAEjC,GADgC,MAAbG,EAAKja,OAAiB8Z,EAAOe,cAAgBZ,EAAKja,MAAQ0a,EAAUT,EAAKja,KAAO0a,IAC/ET,EAAKja,MAAQ0a,GAA0B,YAAfZ,EAAO/2B,QAAwB43B,IAAaV,EAAKH,OAAOgB,YAAa,CAC/G,IAAIC,EAAuB,MAAXd,EAAKha,KAAe6Z,EAAOkB,eAAiBf,EAAKha,IAAMya,EAAUT,EAAKha,GAAKya,IACzFE,IAAOA,EAAK,KAAK11B,KAAK,IAAI20B,GAAWC,EAAQG,EAAKja,KAAM+a,EAAY,KAAOd,EAAKha,IACpF,CACF,CACA,OAAO2a,CACT,CACA,SAASK,GAAiBnsB,EAAKosB,EAAOP,GACpC,IAAIC,EACJ,GAAI9rB,EAAO,IAAK,IAAI1O,EAAI,EAAGA,EAAI0O,EAAI5N,SAAUd,EAAG,CAC9C,IAAI65B,EAAOnrB,EAAI1O,GAAI05B,EAASG,EAAKH,OAEjC,GAD2B,MAAXG,EAAKha,KAAe6Z,EAAOkB,eAAiBf,EAAKha,IAAMib,EAAQjB,EAAKha,GAAKib,IACxEjB,EAAKja,MAAQkb,GAAwB,YAAfpB,EAAO/2B,QAAwB43B,GAAYV,EAAKH,OAAOgB,YAAa,CACzG,IAAIK,EAA4B,MAAblB,EAAKja,OAAiB8Z,EAAOe,cAAgBZ,EAAKja,MAAQkb,EAAQjB,EAAKja,KAAOkb,IAC/FN,IAAOA,EAAK,KAAK11B,KAAK,IAAI20B,GAAWC,EAAQqB,EAAe,KAAOlB,EAAKja,KAAOkb,EAChC,MAAXjB,EAAKha,GAAa,KAAOga,EAAKha,GAAKib,GAC3E,CACF,CACA,OAAON,CACT,CAQA,SAASQ,GAAuBxI,EAAKyI,GACnC,GAAIA,EAAOC,KAAQ,OAAO,KAC1B,IAAIC,EAAW5H,GAAOf,EAAKyI,EAAOrb,KAAKU,OAASiS,GAAQC,EAAKyI,EAAOrb,KAAKU,MAAM6Z,YAC3EiB,EAAU7H,GAAOf,EAAKyI,EAAOpb,GAAGS,OAASiS,GAAQC,EAAKyI,EAAOpb,GAAGS,MAAM6Z,YAC1E,IAAKgB,IAAaC,EAAW,OAAO,KAEpC,IAAId,EAAUW,EAAOrb,KAAKW,GAAIua,EAAQG,EAAOpb,GAAGU,GAAIga,EAA0C,GAA/B1G,GAAIoH,EAAOrb,KAAMqb,EAAOpb,IAEnF7N,EAAQqoB,GAAkBc,EAAUb,EAASC,GAC7CpjB,EAAO0jB,GAAiBO,EAASN,EAAOP,GAGxCc,EAAiC,GAAtBJ,EAAO/Z,KAAKpgB,OAAaw6B,EAAS3S,EAAIsS,EAAO/Z,MAAMpgB,QAAUu6B,EAAWf,EAAU,GACjG,GAAItoB,EAEF,IAAK,IAAIhS,EAAI,EAAGA,EAAIgS,EAAMlR,SAAUd,EAAG,CACrC,IAAI65B,EAAO7nB,EAAMhS,GACjB,GAAe,MAAX65B,EAAKha,GAAY,CACnB,IAAI4K,EAAQkP,GAAiBxiB,EAAM0iB,EAAKH,QACnCjP,EACI4Q,IAAYxB,EAAKha,GAAiB,MAAZ4K,EAAM5K,GAAa,KAAO4K,EAAM5K,GAAKyb,GADtDzB,EAAKha,GAAKya,CAE1B,CACF,CAEF,GAAInjB,EAEF,IAAK,IAAI2U,EAAM,EAAGA,EAAM3U,EAAKrW,SAAUgrB,EAAK,CAC1C,IAAIyP,EAASpkB,EAAK2U,GACD,MAAbyP,EAAO1b,KAAc0b,EAAO1b,IAAMyb,GACnB,MAAfC,EAAO3b,KACK+Z,GAAiB3nB,EAAOupB,EAAO7B,UAE3C6B,EAAO3b,KAAO0b,EACVD,IAAarpB,IAAUA,EAAQ,KAAKlN,KAAKy2B,KAG/CA,EAAO3b,MAAQ0b,EACXD,IAAarpB,IAAUA,EAAQ,KAAKlN,KAAKy2B,GAEjD,CAGEvpB,IAASA,EAAQwpB,GAAgBxpB,IACjCmF,GAAQA,GAAQnF,IAASmF,EAAOqkB,GAAgBrkB,IAEpD,IAAIskB,EAAa,CAACzpB,GAClB,IAAKqpB,EAAU,CAEb,IAAkCK,EAA9BC,EAAMV,EAAO/Z,KAAKpgB,OAAS,EAC/B,GAAI66B,EAAM,GAAK3pB,EACX,IAAK,IAAI+Z,EAAM,EAAGA,EAAM/Z,EAAMlR,SAAUirB,EACjB,MAAjB/Z,EAAM+Z,GAAKlM,KACZ6b,IAAeA,EAAa,KAAK52B,KAAK,IAAI20B,GAAWznB,EAAM+Z,GAAK2N,OAAQ,KAAM,OACvF,IAAK,IAAIzN,EAAM,EAAGA,EAAM0P,IAAO1P,EAC3BwP,EAAW32B,KAAK42B,GACpBD,EAAW32B,KAAKqS,EAClB,CACA,OAAOskB,CACT,CAIA,SAASD,GAAgB5B,GACvB,IAAK,IAAI55B,EAAI,EAAGA,EAAI45B,EAAM94B,SAAUd,EAAG,CACrC,IAAI65B,EAAOD,EAAM55B,GACA,MAAb65B,EAAKja,MAAgBia,EAAKja,MAAQia,EAAKha,KAAqC,IAA/Bga,EAAKH,OAAOkC,gBACzDhC,EAAM70B,OAAO/E,IAAK,EACxB,CACA,OAAK45B,EAAM94B,OACJ84B,EADqB,IAE9B,CAGA,SAASiC,GAAqBrJ,EAAK5S,EAAMC,GACvC,IAAIic,EAAU,KAQd,GAPAtJ,EAAIM,KAAKlT,EAAKU,KAAMT,EAAGS,KAAO,GAAG,SAAUA,GACzC,GAAIA,EAAK6Z,YAAe,IAAK,IAAIn6B,EAAI,EAAGA,EAAIsgB,EAAK6Z,YAAYr5B,SAAUd,EAAG,CACxE,IAAI+7B,EAAOzb,EAAK6Z,YAAYn6B,GAAG05B,QAC3BqC,EAAKC,UAAcF,IAAsC,GAA3B92B,EAAQ82B,EAASC,KAC9CD,IAAYA,EAAU,KAAKh3B,KAAKi3B,EACvC,CACF,KACKD,EAAW,OAAO,KAEvB,IADA,IAAIG,EAAQ,CAAC,CAACrc,KAAMA,EAAMC,GAAIA,IACrB7f,EAAI,EAAGA,EAAI87B,EAAQh7B,SAAUd,EAEpC,IADA,IAAIk8B,EAAKJ,EAAQ97B,GAAI2R,EAAIuqB,EAAGnoB,KAAK,GACxBnI,EAAI,EAAGA,EAAIqwB,EAAMn7B,SAAU8K,EAAG,CACrC,IAAIuwB,EAAIF,EAAMrwB,GACd,KAAIioB,GAAIsI,EAAEtc,GAAIlO,EAAEiO,MAAQ,GAAKiU,GAAIsI,EAAEvc,KAAMjO,EAAEkO,IAAM,GAAjD,CACA,IAAIuc,EAAW,CAACxwB,EAAG,GAAIywB,EAAQxI,GAAIsI,EAAEvc,KAAMjO,EAAEiO,MAAO0c,EAAMzI,GAAIsI,EAAEtc,GAAIlO,EAAEkO,KAClEwc,EAAQ,IAAMH,EAAGzB,gBAAkB4B,IACnCD,EAASt3B,KAAK,CAAC8a,KAAMuc,EAAEvc,KAAMC,GAAIlO,EAAEiO,QACnC0c,EAAM,IAAMJ,EAAGtB,iBAAmB0B,IAClCF,EAASt3B,KAAK,CAAC8a,KAAMjO,EAAEkO,GAAIA,GAAIsc,EAAEtc,KACrCoc,EAAMl3B,OAAOrE,MAAMu7B,EAAOG,GAC1BxwB,GAAKwwB,EAASt7B,OAAS,CAPwC,CAQjE,CAEF,OAAOm7B,CACT,CAGA,SAASM,GAAkBjc,GACzB,IAAIsZ,EAAQtZ,EAAK6Z,YACjB,GAAKP,EAAL,CACA,IAAK,IAAI55B,EAAI,EAAGA,EAAI45B,EAAM94B,SAAUd,EAChC45B,EAAM55B,GAAG05B,OAAO8C,WAAWlc,GAC/BA,EAAK6Z,YAAc,IAHE,CAIvB,CACA,SAASsC,GAAkBnc,EAAMsZ,GAC/B,GAAKA,EAAL,CACA,IAAK,IAAI55B,EAAI,EAAGA,EAAI45B,EAAM94B,SAAUd,EAChC45B,EAAM55B,GAAG05B,OAAOU,WAAW9Z,GAC/BA,EAAK6Z,YAAcP,CAHE,CAIvB,CAIA,SAAS8C,GAAUhD,GAAU,OAAOA,EAAOe,eAAiB,EAAI,CAAE,CAClE,SAASkC,GAAWjD,GAAU,OAAOA,EAAOkB,eAAiB,EAAI,CAAE,CAKnE,SAASgC,GAAwB78B,EAAG4lB,GAClC,IAAIkX,EAAU98B,EAAEwhB,MAAMzgB,OAAS6kB,EAAEpE,MAAMzgB,OACvC,GAAe,GAAX+7B,EAAgB,OAAOA,EAC3B,IAAIC,EAAO/8B,EAAEgU,OAAQgpB,EAAOpX,EAAE5R,OAC1BipB,EAAUnJ,GAAIiJ,EAAKld,KAAMmd,EAAKnd,OAAS8c,GAAU38B,GAAK28B,GAAU/W,GACpE,GAAIqX,EAAW,OAAQA,EACvB,IAAIC,EAAQpJ,GAAIiJ,EAAKjd,GAAIkd,EAAKld,KAAO8c,GAAW58B,GAAK48B,GAAWhX,GAChE,OAAIsX,GACGtX,EAAElb,GAAK1K,EAAE0K,EAClB,CAIA,SAASyyB,GAAoB5c,EAAMnE,GACjC,IAAiDsO,EAA7C0S,EAAM7D,IAAqBhZ,EAAK6Z,YACpC,GAAIgD,EAAO,IAAK,IAAIC,OAAK,EAAUp9B,EAAI,EAAGA,EAAIm9B,EAAIr8B,SAAUd,GAC1Do9B,EAAKD,EAAIn9B,IACF05B,OAAO2D,WAA0C,OAA5BlhB,EAAQihB,EAAGxd,KAAOwd,EAAGvd,OAC3C4K,GAASmS,GAAwBnS,EAAO2S,EAAG1D,QAAU,KACvDjP,EAAQ2S,EAAG1D,QAEjB,OAAOjP,CACT,CACA,SAAS6S,GAAqBhd,GAAQ,OAAO4c,GAAoB5c,GAAM,EAAM,CAC7E,SAASid,GAAmBjd,GAAQ,OAAO4c,GAAoB5c,GAAM,EAAO,CAE5E,SAASkd,GAAoBld,EAAMC,GACjC,IAAiDkK,EAA7C0S,EAAM7D,IAAqBhZ,EAAK6Z,YACpC,GAAIgD,EAAO,IAAK,IAAIn9B,EAAI,EAAGA,EAAIm9B,EAAIr8B,SAAUd,EAAG,CAC9C,IAAIo9B,EAAKD,EAAIn9B,GACTo9B,EAAG1D,OAAO2D,YAAyB,MAAXD,EAAGxd,MAAgBwd,EAAGxd,KAAOW,KAAiB,MAAT6c,EAAGvd,IAAcud,EAAGvd,GAAKU,MACpFkK,GAASmS,GAAwBnS,EAAO2S,EAAG1D,QAAU,KAAMjP,EAAQ2S,EAAG1D,OAC9E,CACA,OAAOjP,CACT,CAKA,SAASgT,GAA0BjL,EAAKU,EAAQtT,EAAMC,EAAI6Z,GACxD,IAAIpZ,EAAOiS,GAAQC,EAAKU,GACpBiK,EAAM7D,IAAqBhZ,EAAK6Z,YACpC,GAAIgD,EAAO,IAAK,IAAIn9B,EAAI,EAAGA,EAAIm9B,EAAIr8B,SAAUd,EAAG,CAC9C,IAAIo9B,EAAKD,EAAIn9B,GACb,GAAKo9B,EAAG1D,OAAO2D,UAAf,CACA,IAAI5S,EAAQ2S,EAAG1D,OAAO3lB,KAAK,GACvBipB,EAAUnJ,GAAIpJ,EAAM7K,KAAMA,IAAS8c,GAAUU,EAAG1D,QAAUgD,GAAUhD,GACpEuD,EAAQpJ,GAAIpJ,EAAM5K,GAAIA,IAAO8c,GAAWS,EAAG1D,QAAUiD,GAAWjD,GACpE,KAAIsD,GAAW,GAAKC,GAAS,GAAKD,GAAW,GAAKC,GAAS,KACvDD,GAAW,IAAMI,EAAG1D,OAAOkB,gBAAkBlB,EAAOe,cAAgB5G,GAAIpJ,EAAM5K,GAAID,IAAS,EAAIiU,GAAIpJ,EAAM5K,GAAID,GAAQ,IACrHod,GAAW,IAAMI,EAAG1D,OAAOkB,gBAAkBlB,EAAOe,cAAgB5G,GAAIpJ,EAAM7K,KAAMC,IAAO,EAAIgU,GAAIpJ,EAAM7K,KAAMC,GAAM,IACrH,OAAO,CAP0B,CAQvC,CACF,CAMA,SAAS6d,GAAWpd,GAElB,IADA,IAAI1P,EACGA,EAAS0sB,GAAqBhd,IACjCA,EAAO1P,EAAOmD,MAAM,GAAG,GAAMuM,KACjC,OAAOA,CACT,CAEA,SAASqd,GAAcrd,GAErB,IADA,IAAI1P,EACGA,EAAS2sB,GAAmBjd,IAC/BA,EAAO1P,EAAOmD,KAAK,GAAG,GAAMuM,KAChC,OAAOA,CACT,CAIA,SAASsd,GAAoBtd,GAE3B,IADA,IAAI1P,EAAQ2Q,EACL3Q,EAAS2sB,GAAmBjd,IACjCA,EAAO1P,EAAOmD,KAAK,GAAG,GAAMuM,MAC1BiB,IAAUA,EAAQ,KAAKzc,KAAKwb,GAEhC,OAAOiB,CACT,CAIA,SAASsc,GAAarL,EAAKsL,GACzB,IAAIxd,EAAOiS,GAAQC,EAAKsL,GAAQC,EAAML,GAAWpd,GACjD,OAAIA,GAAQyd,EAAcD,EACnB5K,GAAO6K,EAChB,CAIA,SAASC,GAAgBxL,EAAKsL,GAC5B,GAAIA,EAAQtL,EAAIyL,WAAc,OAAOH,EACrC,IAAgCltB,EAA5B0P,EAAOiS,GAAQC,EAAKsL,GACxB,IAAKI,GAAa1L,EAAKlS,GAAS,OAAOwd,EACvC,KAAOltB,EAAS2sB,GAAmBjd,IAC/BA,EAAO1P,EAAOmD,KAAK,GAAG,GAAMuM,KAChC,OAAO4S,GAAO5S,GAAQ,CACxB,CAKA,SAAS4d,GAAa1L,EAAKlS,GACzB,IAAI6c,EAAM7D,IAAqBhZ,EAAK6Z,YACpC,GAAIgD,EAAO,IAAK,IAAIC,OAAK,EAAUp9B,EAAI,EAAGA,EAAIm9B,EAAIr8B,SAAUd,EAE1D,IADAo9B,EAAKD,EAAIn9B,IACD05B,OAAO2D,UAAf,CACA,GAAe,MAAXD,EAAGxd,KAAgB,OAAO,EAC9B,IAAIwd,EAAG1D,OAAOyE,YACC,GAAXf,EAAGxd,MAAawd,EAAG1D,OAAOe,eAAiB2D,GAAkB5L,EAAKlS,EAAM8c,GACxE,OAAO,CAJ0B,CAMzC,CACA,SAASgB,GAAkB5L,EAAKlS,EAAMuZ,GACpC,GAAe,MAAXA,EAAKha,GAAY,CACnB,IAAIsC,EAAM0X,EAAKH,OAAO3lB,KAAK,GAAG,GAC9B,OAAOqqB,GAAkB5L,EAAKrQ,EAAI7B,KAAMqZ,GAAiBxX,EAAI7B,KAAK6Z,YAAaN,EAAKH,QACtF,CACA,GAAIG,EAAKH,OAAOkB,gBAAkBf,EAAKha,IAAMS,EAAKY,KAAKpgB,OACnD,OAAO,EACX,IAAK,IAAIs8B,OAAK,EAAUp9B,EAAI,EAAGA,EAAIsgB,EAAK6Z,YAAYr5B,SAAUd,EAE5D,IADAo9B,EAAK9c,EAAK6Z,YAAYn6B,IACf05B,OAAO2D,YAAcD,EAAG1D,OAAOyE,YAAcf,EAAGxd,MAAQia,EAAKha,KACtD,MAATud,EAAGvd,IAAcud,EAAGvd,IAAMga,EAAKja,QAC/Bwd,EAAG1D,OAAOe,eAAiBZ,EAAKH,OAAOkB,iBACxCwD,GAAkB5L,EAAKlS,EAAM8c,GAAO,OAAO,CAEnD,CAGA,SAASiB,GAAaC,GAIpB,IADA,IAAIjL,EAAI,EAAGZ,GAFX6L,EAAUZ,GAAWY,IAEM5f,OAClB1e,EAAI,EAAGA,EAAIyyB,EAAMlR,MAAMzgB,SAAUd,EAAG,CAC3C,IAAIsgB,EAAOmS,EAAMlR,MAAMvhB,GACvB,GAAIsgB,GAAQge,EAAW,MAChBjL,GAAK/S,EAAK2S,MACnB,CACA,IAAK,IAAIkJ,EAAI1J,EAAM/T,OAAQyd,EAAcA,GAAX1J,EAAQ0J,GAAazd,OACjD,IAAK,IAAIoN,EAAM,EAAGA,EAAMqQ,EAAEzJ,SAAS5xB,SAAUgrB,EAAK,CAChD,IAAI/J,EAAMoa,EAAEzJ,SAAS5G,GACrB,GAAI/J,GAAO0Q,EAAS,MACbY,GAAKtR,EAAIkR,MAClB,CAEF,OAAOI,CACT,CAKA,SAASkL,GAAWje,GAClB,GAAmB,GAAfA,EAAK2S,OAAe,OAAO,EAE/B,IADA,IAA4BriB,EAAxBgb,EAAMtL,EAAKY,KAAKpgB,OAAgBihB,EAAMzB,EACnC1P,EAAS0sB,GAAqBvb,IAAM,CACzC,IAAI0I,EAAQ7Z,EAAOmD,KAAK,GAAG,GAC3BgO,EAAM0I,EAAM7K,KAAKU,KACjBsL,GAAOnB,EAAM7K,KAAKW,GAAKkK,EAAM5K,GAAGU,EAClC,CAEA,IADAwB,EAAMzB,EACC1P,EAAS2sB,GAAmBxb,IAAM,CACvC,IAAIyc,EAAU5tB,EAAOmD,KAAK,GAAG,GAC7B6X,GAAO7J,EAAIb,KAAKpgB,OAAS09B,EAAQ5e,KAAKW,GAEtCqL,IADA7J,EAAMyc,EAAQ3e,GAAGS,MACNY,KAAKpgB,OAAS09B,EAAQ3e,GAAGU,EACtC,CACA,OAAOqL,CACT,CAGA,SAAS6S,GAAY3e,GACnB,IAAI4e,EAAI5e,EAAG/C,QAASyV,EAAM1S,EAAG0S,IAC7BkM,EAAEC,QAAUpM,GAAQC,EAAKA,EAAIxgB,OAC7B0sB,EAAEE,cAAgBL,GAAWG,EAAEC,SAC/BD,EAAEG,gBAAiB,EACnBrM,EAAIM,MAAK,SAAUxS,GACjB,IAAIsL,EAAM2S,GAAWje,GACjBsL,EAAM8S,EAAEE,gBACVF,EAAEE,cAAgBhT,EAClB8S,EAAEC,QAAUre,EAEhB,GACF,CAMA,IAAIwe,GAAO,SAAS5d,EAAMiZ,EAAa4E,GACrC5+B,KAAK+gB,KAAOA,EACZub,GAAkBt8B,KAAMg6B,GACxBh6B,KAAK8yB,OAAS8L,EAAiBA,EAAe5+B,MAAQ,CACxD,EAQA,SAAS6+B,GAAW1e,EAAMY,EAAMiZ,EAAa4E,GAC3Cze,EAAKY,KAAOA,EACRZ,EAAK8W,aAAc9W,EAAK8W,WAAa,MACrC9W,EAAKqW,SAAUrW,EAAKqW,OAAS,MACf,MAAdrW,EAAKkK,QAAiBlK,EAAKkK,MAAQ,MACvC+R,GAAkBjc,GAClBmc,GAAkBnc,EAAM6Z,GACxB,IAAI8E,EAAYF,EAAiBA,EAAeze,GAAQ,EACpD2e,GAAa3e,EAAK2S,QAAUD,GAAiB1S,EAAM2e,EACzD,CAGA,SAASC,GAAY5e,GACnBA,EAAK5B,OAAS,KACd6d,GAAkBjc,EACpB,CArBAwe,GAAKt+B,UAAU0yB,OAAS,WAAc,OAAOA,GAAO/yB,KAAM,EAC1DguB,GAAW2Q,IAyBX,IAAIK,GAAoB,CAAC,EAAGC,GAA4B,CAAC,EACzD,SAASC,GAAoBviB,EAAO9Z,GAClC,IAAK8Z,GAAS,QAAQ3S,KAAK2S,GAAU,OAAO,KAC5C,IAAIwiB,EAAQt8B,EAAQ81B,aAAesG,GAA4BD,GAC/D,OAAOG,EAAMxiB,KACVwiB,EAAMxiB,GAASA,EAAMlN,QAAQ,OAAQ,SAC1C,CAOA,SAAS2vB,GAAiBzf,EAAI0f,GAI5B,IAAItgB,EAAU+F,EAAK,OAAQ,KAAM,KAAMjC,EAAS,sBAAwB,MACpEyc,EAAU,CAACC,IAAKza,EAAK,MAAO,CAAC/F,GAAU,mBAAoBA,QAASA,EACzDqJ,IAAK,EAAGvG,IAAK,EAAGlC,GAAIA,EACpB6f,eAAe,EACfC,YAAa9f,EAAGuB,UAAU,iBACzCme,EAASnQ,QAAU,CAAC,EAGpB,IAAK,IAAIrvB,EAAI,EAAGA,IAAMw/B,EAASvoB,KAAOuoB,EAASvoB,KAAKnW,OAAS,GAAId,IAAK,CACpE,IAAIsgB,EAAOtgB,EAAIw/B,EAASvoB,KAAKjX,EAAI,GAAKw/B,EAASlf,KAAMkK,OAAQ,EAC7DiV,EAAQzd,IAAM,EACdyd,EAAQI,SAAWC,GAGftQ,GAAgB1P,EAAG/C,QAAQsS,WAAa7E,EAAQ0C,GAAS5M,EAAMR,EAAG0S,IAAI9G,cACtE+T,EAAQI,SAAWE,GAAkBN,EAAQI,SAAUrV,IAC3DiV,EAAQx6B,IAAM,GAEd+6B,GAAkB1f,EAAMmf,EAAS1I,GAAcjX,EAAIQ,EADzBkf,GAAY1f,EAAG/C,QAAQkjB,kBAAoB/M,GAAO5S,KAExEA,EAAK+W,eACH/W,EAAK+W,aAAaR,UAClB4I,EAAQ5I,QAAUnR,EAAYpF,EAAK+W,aAAaR,QAAS4I,EAAQ5I,SAAW,KAC5EvW,EAAK+W,aAAaP,YAClB2I,EAAQ3I,UAAYpR,EAAYpF,EAAK+W,aAAaP,UAAW2I,EAAQ3I,WAAa,MAI9D,GAAtB2I,EAAQx6B,IAAInE,QACZ2+B,EAAQx6B,IAAIH,KAAK,EAAG,EAAG26B,EAAQvgB,QAAQ0F,YAAYwK,GAAiBtP,EAAG/C,QAAQsS,WAG1E,GAALrvB,GACFw/B,EAASnQ,QAAQpqB,IAAMw6B,EAAQx6B,IAC/Bu6B,EAASnQ,QAAQiQ,MAAQ,CAAC,KAE/BE,EAASnQ,QAAQ6Q,OAASV,EAASnQ,QAAQ6Q,KAAO,KAAKp7B,KAAK26B,EAAQx6B,MAC7Du6B,EAASnQ,QAAQ8Q,SAAWX,EAASnQ,QAAQ8Q,OAAS,KAAKr7B,KAAK,CAAC,GAEvE,CAGA,GAAIke,EAAQ,CACV,IAAI7L,EAAOsoB,EAAQvgB,QAAQkhB,WACvB,aAAaj2B,KAAKgN,EAAKpC,YAAeoC,EAAKkpB,eAAiBlpB,EAAKkpB,cAAc,cAC/EZ,EAAQvgB,QAAQnK,UAAY,mBAClC,CAMA,OAJAwY,GAAOzN,EAAI,aAAcA,EAAI0f,EAASlf,KAAMmf,EAAQC,KAChDD,EAAQC,IAAI3qB,YACZ0qB,EAAQ3I,UAAYpR,EAAY+Z,EAAQC,IAAI3qB,UAAW0qB,EAAQ3I,WAAa,KAEzE2I,CACT,CAEA,SAASa,GAA8B/f,GACrC,IAAIuB,EAAQ+C,EAAI,OAAQ,IAAU,kBAGlC,OAFA/C,EAAM1D,MAAQ,MAAQmC,EAAGsJ,WAAW,GAAG9B,SAAS,IAChDjG,EAAMoD,aAAa,aAAcpD,EAAM1D,OAChC0D,CACT,CAIA,SAASge,GAAWL,EAASve,EAAMpE,EAAOyjB,EAAYC,EAAUC,EAAKt5B,GACnE,GAAK+Z,EAAL,CACA,IAEIhC,EAFAwhB,EAAcjB,EAAQG,YAAcA,GAAY1e,EAAMue,EAAQE,eAAiBze,EAC/Eyf,EAAUlB,EAAQ3f,GAAGV,MAAMwhB,aAAcC,GAAW,EAExD,GAAKF,EAAQx2B,KAAK+W,GAMX,CACLhC,EAAUrK,SAASisB,yBAEnB,IADA,IAAI9e,EAAM,EACH,GAAM,CACX2e,EAAQI,UAAY/e,EACpB,IAAIrQ,EAAIgvB,EAAQjmB,KAAKwG,GACjBsH,EAAU7W,EAAIA,EAAE1Q,MAAQ+gB,EAAMd,EAAKpgB,OAASkhB,EAChD,GAAIwG,EAAS,CACX,IAAIiH,EAAM5a,SAASmQ,eAAe0b,EAAYjgC,MAAMuhB,EAAKA,EAAMwG,IAC3D1F,GAAMC,EAAa,EAAK7D,EAAQ0F,YAAYC,EAAI,OAAQ,CAAC4K,KACtDvQ,EAAQ0F,YAAY6K,GAC3BgQ,EAAQx6B,IAAIH,KAAK26B,EAAQzd,IAAKyd,EAAQzd,IAAMwG,EAASiH,GACrDgQ,EAAQlX,KAAOC,EACfiX,EAAQzd,KAAOwG,CACjB,CACA,IAAK7W,EAAK,MACVqQ,GAAOwG,EAAU,EACjB,IAAIwY,OAAQ,EACZ,GAAY,MAARrvB,EAAE,GAAY,CAChB,IAAIyP,EAAUqe,EAAQ3f,GAAG9c,QAAQoe,QAAS6f,EAAW7f,EAAUqe,EAAQlX,IAAMnH,GAC7E4f,EAAQ9hB,EAAQ0F,YAAYC,EAAI,OAAQ6D,EAASuY,GAAW,YACtD/b,aAAa,OAAQ,gBAC3B8b,EAAM9b,aAAa,UAAW,MAC9Bua,EAAQlX,KAAO0Y,CACjB,KAAmB,MAARtvB,EAAE,IAAsB,MAARA,EAAE,KAC3BqvB,EAAQ9hB,EAAQ0F,YAAYC,EAAI,OAAgB,MAARlT,EAAE,GAAa,IAAW,IAAU,oBACtEuT,aAAa,UAAWvT,EAAE,IAChC8tB,EAAQlX,KAAO,KAEfyY,EAAQvB,EAAQ3f,GAAG9c,QAAQk+B,uBAAuBvvB,EAAE,KAC9CuT,aAAa,UAAWvT,EAAE,IAC5BmR,GAAMC,EAAa,EAAK7D,EAAQ0F,YAAYC,EAAI,OAAQ,CAACmc,KACtD9hB,EAAQ0F,YAAYoc,GAC3BvB,EAAQlX,KAAO,GAEjBkX,EAAQx6B,IAAIH,KAAK26B,EAAQzd,IAAKyd,EAAQzd,IAAM,EAAGgf,GAC/CvB,EAAQzd,KACV,CACF,MA3CEyd,EAAQlX,KAAOrH,EAAKpgB,OACpBoe,EAAUrK,SAASmQ,eAAe0b,GAClCjB,EAAQx6B,IAAIH,KAAK26B,EAAQzd,IAAKyd,EAAQzd,IAAMd,EAAKpgB,OAAQoe,GACrD4D,GAAMC,EAAa,IAAK8d,GAAW,GACvCpB,EAAQzd,KAAOd,EAAKpgB,OAyCtB,GADA2+B,EAAQE,cAA2D,IAA3Ce,EAAY7W,WAAW3I,EAAKpgB,OAAS,GACzDgc,GAASyjB,GAAcC,GAAYK,GAAYJ,GAAOt5B,EAAY,CACpE,IAAIg6B,EAAYrkB,GAAS,GACrByjB,IAAcY,GAAaZ,GAC3BC,IAAYW,GAAaX,GAC7B,IAAI1e,EAAQ+C,EAAI,OAAQ,CAAC3F,GAAUiiB,EAAWV,GAC9C,GAAIt5B,EACF,IAAK,IAAIQ,KAAQR,EAAkBA,EAAW0f,eAAelf,IAAiB,SAARA,GAA2B,SAARA,GACrFma,EAAMoD,aAAavd,EAAMR,EAAWQ,IAE1C,OAAO83B,EAAQvgB,QAAQ0F,YAAY9C,EACrC,CACA2d,EAAQvgB,QAAQ0F,YAAY1F,EA7DR,CA8DtB,CAIA,SAAS0gB,GAAY1e,EAAMkgB,GACzB,GAAIlgB,EAAKpgB,OAAS,IAAM,KAAKqJ,KAAK+W,GAAS,OAAOA,EAElD,IADA,IAAImgB,EAAcD,EAAgB/zB,EAAS,GAClCrN,EAAI,EAAGA,EAAIkhB,EAAKpgB,OAAQd,IAAK,CACpC,IAAIugB,EAAKW,EAAKnF,OAAO/b,GACX,KAANugB,IAAa8gB,GAAgBrhC,GAAKkhB,EAAKpgB,OAAS,GAA+B,IAA1BogB,EAAK2I,WAAW7pB,EAAI,KACzEugB,EAAK,KACTlT,GAAUkT,EACV8gB,EAAoB,KAAN9gB,CAChB,CACA,OAAOlT,CACT,CAIA,SAAS0yB,GAAkBle,EAAO2I,GAChC,OAAO,SAAUiV,EAASve,EAAMpE,EAAOyjB,EAAYC,EAAUC,EAAKt5B,GAChE2V,EAAQA,EAAQA,EAAQ,mBAAqB,kBAE7C,IADA,IAAIX,EAAQsjB,EAAQzd,IAAKG,EAAMhG,EAAQ+E,EAAKpgB,SACnC,CAGP,IADA,IAAI4pB,OAAO,EACF1qB,EAAI,EAAGA,EAAIwqB,EAAM1pB,WACxB4pB,EAAOF,EAAMxqB,IACJ6f,GAAK1D,GAASuO,EAAK9K,MAAQzD,GAFJnc,KAIlC,GAAI0qB,EAAK7K,IAAMsC,EAAO,OAAON,EAAM4d,EAASve,EAAMpE,EAAOyjB,EAAYC,EAAUC,EAAKt5B,GACpF0a,EAAM4d,EAASve,EAAKzgB,MAAM,EAAGiqB,EAAK7K,GAAK1D,GAAQW,EAAOyjB,EAAY,KAAME,EAAKt5B,GAC7Eo5B,EAAa,KACbrf,EAAOA,EAAKzgB,MAAMiqB,EAAK7K,GAAK1D,GAC5BA,EAAQuO,EAAK7K,EACf,CACF,CACF,CAEA,SAASyhB,GAAmB7B,EAAS5oB,EAAM6iB,EAAQ6H,GACjD,IAAIC,GAAUD,GAAgB7H,EAAOyE,WACjCqD,GAAU/B,EAAQx6B,IAAIH,KAAK26B,EAAQzd,IAAKyd,EAAQzd,IAAMnL,EAAM2qB,IAC3DD,GAAgB9B,EAAQ3f,GAAG/C,QAAQ0kB,MAAMC,wBACvCF,IACDA,EAAS/B,EAAQvgB,QAAQ0F,YAAY/P,SAASC,cAAc,UAChE0sB,EAAOtc,aAAa,YAAawU,EAAOjvB,KAEtC+2B,IACF/B,EAAQ3f,GAAG/C,QAAQ0kB,MAAME,cAAcH,GACvC/B,EAAQvgB,QAAQ0F,YAAY4c,IAE9B/B,EAAQzd,KAAOnL,EACf4oB,EAAQE,eAAgB,CAC1B,CAIA,SAASK,GAAkB1f,EAAMmf,EAAS9I,GACxC,IAAIiD,EAAQtZ,EAAK6Z,YAAayH,EAAUthB,EAAKY,KAAMtd,EAAK,EACxD,GAAKg2B,EAQL,IAFA,IAAqD9c,EAAO2jB,EACxCoB,EAAWC,EAAcC,EAAgB1E,EAAWl2B,EADpEykB,EAAMgW,EAAQ9gC,OAAQkhB,EAAM,EAAGhiB,EAAI,EAAGkhB,EAAO,GAC7C8gB,EAAa,IACR,CACP,GAAIA,GAAchgB,EAAK,CACrB6f,EAAYC,EAAeC,EAAiBtB,EAAM,GAClDt5B,EAAa,KACbk2B,EAAY,KAAM2E,EAAaz6B,IAE/B,IADA,IAAI06B,EAAiB,GAAIC,OAAY,EAC5Bt2B,EAAI,EAAGA,EAAIguB,EAAM94B,SAAU8K,EAAG,CACrC,IAAIwxB,EAAKxD,EAAMhuB,GAAI+F,EAAIyrB,EAAG1D,OAC1B,GAAc,YAAV/nB,EAAEhP,MAAsBy6B,EAAGxd,MAAQoC,GAAOrQ,EAAEwsB,WAC9C8D,EAAen9B,KAAK6M,QACf,GAAIyrB,EAAGxd,MAAQoC,IAAiB,MAATob,EAAGvd,IAAcud,EAAGvd,GAAKmC,GAAOrQ,EAAE0rB,WAAaD,EAAGvd,IAAMmC,GAAOob,EAAGxd,MAAQoC,GAAM,CAY5G,GAXa,MAATob,EAAGvd,IAAcud,EAAGvd,IAAMmC,GAAOggB,EAAa5E,EAAGvd,KACnDmiB,EAAa5E,EAAGvd,GAChBiiB,EAAe,IAEbnwB,EAAEoD,YAAa8sB,GAAa,IAAMlwB,EAAEoD,WACpCpD,EAAE8uB,MAAOA,GAAOA,EAAMA,EAAM,IAAM,IAAM9uB,EAAE8uB,KAC1C9uB,EAAE4uB,YAAcnD,EAAGxd,MAAQoC,IAAO+f,GAAkB,IAAMpwB,EAAE4uB,YAC5D5uB,EAAE6uB,UAAYpD,EAAGvd,IAAMmiB,IAAeE,IAAcA,EAAY,KAAKp9B,KAAK6M,EAAE6uB,SAAUpD,EAAGvd,IAGzFlO,EAAEyM,SAAUjX,IAAeA,EAAa,CAAC,IAAIiX,MAAQzM,EAAEyM,OACvDzM,EAAExK,WACJ,IAAK,IAAIQ,KAAQgK,EAAExK,YACdA,IAAeA,EAAa,CAAC,IAAIQ,GAAQgK,EAAExK,WAAWQ,GAEzDgK,EAAE0rB,aAAeA,GAAaT,GAAwBS,EAAU3D,OAAQ/nB,GAAK,KAC7E0rB,EAAYD,EAClB,MAAWA,EAAGxd,KAAOoC,GAAOggB,EAAa5E,EAAGxd,OAC1CoiB,EAAa5E,EAAGxd,KAEpB,CACA,GAAIsiB,EAAa,IAAK,IAAItV,EAAM,EAAGA,EAAMsV,EAAUphC,OAAQ8rB,GAAO,EAC1DsV,EAAUtV,EAAM,IAAMoV,IAAcF,GAAgB,IAAMI,EAAUtV,IAE5E,IAAKyQ,GAAaA,EAAUzd,MAAQoC,EAAO,IAAK,IAAI+K,EAAM,EAAGA,EAAMkV,EAAenhC,SAAUisB,EACxFuU,GAAmB7B,EAAS,EAAGwC,EAAelV,IAClD,GAAIsQ,IAAcA,EAAUzd,MAAQ,IAAMoC,EAAK,CAG7C,GAFAsf,GAAmB7B,GAA0B,MAAhBpC,EAAUxd,GAAa+L,EAAM,EAAIyR,EAAUxd,IAAMmC,EAC3Dqb,EAAU3D,OAA0B,MAAlB2D,EAAUzd,MAC3B,MAAhByd,EAAUxd,GAAc,OACxBwd,EAAUxd,IAAMmC,IAAOqb,GAAY,EACzC,CACF,CACA,GAAIrb,GAAO4J,EAAO,MAGlB,IADA,IAAIuW,EAAO91B,KAAKiE,IAAIsb,EAAKoW,GAClB,GAAM,CACX,GAAI9gB,EAAM,CACR,IAAIiB,EAAMH,EAAMd,EAAKpgB,OACrB,IAAKu8B,EAAW,CACd,IAAI+E,EAAYjgB,EAAMggB,EAAOjhB,EAAKzgB,MAAM,EAAG0hC,EAAOngB,GAAOd,EACzDue,EAAQI,SAASJ,EAAS2C,EAAWtlB,EAAQA,EAAQ+kB,EAAYA,EAChDE,EAAgB/f,EAAMogB,EAAUthC,QAAUkhC,EAAaF,EAAe,GAAIrB,EAAKt5B,EAClG,CACA,GAAIgb,GAAOggB,EAAM,CAACjhB,EAAOA,EAAKzgB,MAAM0hC,EAAOngB,GAAMA,EAAMmgB,EAAM,KAAK,CAClEngB,EAAMG,EACN4f,EAAiB,EACnB,CACA7gB,EAAO0gB,EAAQnhC,MAAMmD,EAAIA,EAAK+yB,EAAO32B,MACrC8c,EAAQuiB,GAAoB1I,EAAO32B,KAAMy/B,EAAQ3f,GAAG9c,QACtD,CACF,MArEE,IAAK,IAAI8oB,EAAM,EAAGA,EAAM6K,EAAO71B,OAAQgrB,GAAK,EACxC2T,EAAQI,SAASJ,EAASmC,EAAQnhC,MAAMmD,EAAIA,EAAK+yB,EAAO7K,IAAOuT,GAAoB1I,EAAO7K,EAAI,GAAI2T,EAAQ3f,GAAG9c,SAqErH,CAMA,SAASq/B,GAAS7P,EAAKlS,EAAMwd,GAE3B39B,KAAKmgB,KAAOA,EAEZngB,KAAK8W,KAAO2mB,GAAoBtd,GAEhCngB,KAAK0W,KAAO1W,KAAK8W,KAAOic,GAAOvK,EAAIxoB,KAAK8W,OAAS6mB,EAAQ,EAAI,EAC7D39B,KAAKqkB,KAAOrkB,KAAK+gB,KAAO,KACxB/gB,KAAKmiC,OAASpE,GAAa1L,EAAKlS,EAClC,CAGA,SAASiiB,GAAeziB,EAAIF,EAAMC,GAEhC,IADA,IAAgB2iB,EAAZpyB,EAAQ,GACH4R,EAAMpC,EAAMoC,EAAMnC,EAAImC,EAAMwgB,EAAS,CAC5C,IAAIC,EAAO,IAAIJ,GAASviB,EAAG0S,IAAKD,GAAQzS,EAAG0S,IAAKxQ,GAAMA,GACtDwgB,EAAUxgB,EAAMygB,EAAK5rB,KACrBzG,EAAMtL,KAAK29B,EACb,CACA,OAAOryB,CACT,CAEA,IAAIsyB,GAAiB,KAErB,SAASC,GAAc3I,GACjB0I,GACFA,GAAeE,IAAI99B,KAAKk1B,GAExBA,EAAG6I,UAAYH,GAAiB,CAC9BE,IAAK,CAAC5I,GACN8I,iBAAkB,GAGxB,CAEA,SAASC,GAAoBC,GAG3B,IAAIC,EAAYD,EAAMF,iBAAkB9iC,EAAI,EAC5C,EAAG,CACD,KAAOA,EAAIijC,EAAUniC,OAAQd,IACzBijC,EAAUjjC,GAAGe,KAAK,MACtB,IAAK,IAAI6K,EAAI,EAAGA,EAAIo3B,EAAMJ,IAAI9hC,OAAQ8K,IAAK,CACzC,IAAIouB,EAAKgJ,EAAMJ,IAAIh3B,GACnB,GAAIouB,EAAG/L,uBACH,KAAO+L,EAAGkJ,qBAAuBlJ,EAAG/L,uBAAuBntB,QACzDk5B,EAAG/L,uBAAuB+L,EAAGkJ,wBAAwBniC,KAAK,KAAMi5B,EAAGla,GAC3E,CACF,OAAS9f,EAAIijC,EAAUniC,OACzB,CAEA,SAASqiC,GAAgBnJ,EAAIoJ,GAC3B,IAAIJ,EAAQhJ,EAAG6I,UACf,GAAKG,EAEL,IAAMD,GAAoBC,EAI1B,CAHA,QACEN,GAAiB,KACjBU,EAAMJ,EACR,CACF,CAEA,IAAIK,GAAyB,KAS7B,SAASC,GAAYlW,EAASzqB,GAC5B,IAAI3B,EAAMssB,GAAYF,EAASzqB,GAC/B,GAAK3B,EAAIF,OAAT,CACA,IAAqDyiC,EAAjD1iC,EAAON,MAAMC,UAAUC,MAAMM,KAAKO,UAAW,GAC7CohC,GACFa,EAAOb,GAAeI,iBACbO,GACTE,EAAOF,IAEPE,EAAOF,GAAyB,GAChC3b,WAAW8b,GAAmB,IAMhC,IAJA,IAAInN,EAAO,SAAWr2B,GACpBujC,EAAKz+B,MAAK,WAAc,OAAO9D,EAAIhB,GAAGU,MAAM,KAAMG,EAAO,GAC3D,EAESb,EAAI,EAAGA,EAAIgB,EAAIF,SAAUd,EAChCq2B,EAAMr2B,EAfkB,CAgB5B,CAEA,SAASwjC,KACP,IAAIC,EAAUJ,GACdA,GAAyB,KACzB,IAAK,IAAIrjC,EAAI,EAAGA,EAAIyjC,EAAQ3iC,SAAUd,EAAKyjC,EAAQzjC,IACrD,CAKA,SAAS0jC,GAAqB5jB,EAAI0f,EAAU1B,EAAO6F,GACjD,IAAK,IAAI/3B,EAAI,EAAGA,EAAI4zB,EAASxxB,QAAQlN,OAAQ8K,IAAK,CAChD,IAAIjJ,EAAO68B,EAASxxB,QAAQpC,GAChB,QAARjJ,EAAkBihC,GAAe9jB,EAAI0f,GACxB,UAAR78B,EAAoBkhC,GAAiB/jB,EAAI0f,EAAU1B,EAAO6F,GAClD,SAARhhC,EAAmBmhC,GAAkBhkB,EAAI0f,GACjC,UAAR78B,GAAoBohC,GAAkBjkB,EAAI0f,EAAUmE,EAC/D,CACAnE,EAASxxB,QAAU,IACrB,CAIA,SAASg2B,GAAkBxE,GAQzB,OAPIA,EAAShb,MAAQgb,EAASte,OAC5Bse,EAAShb,KAAOK,EAAI,MAAO,KAAM,KAAM,sBACnC2a,EAASte,KAAKkE,YACdoa,EAASte,KAAKkE,WAAW6e,aAAazE,EAAShb,KAAMgb,EAASte,MAClEse,EAAShb,KAAKI,YAAY4a,EAASte,MAC/B4B,GAAMC,EAAa,IAAKyc,EAAShb,KAAK1H,MAAMonB,OAAS,IAEpD1E,EAAShb,IAClB,CAEA,SAAS2f,GAAqBrkB,EAAI0f,GAChC,IAAInb,EAAMmb,EAAS3I,QAAU2I,EAAS3I,QAAU,KAAO2I,EAASlf,KAAKuW,SAAW,IAAM2I,EAASlf,KAAKuW,QAEpG,GADIxS,IAAOA,GAAO,8BACdmb,EAAS4E,WACP/f,EAAOmb,EAAS4E,WAAWrvB,UAAYsP,GACpCmb,EAAS4E,WAAWhf,WAAWnH,YAAYuhB,EAAS4E,YAAa5E,EAAS4E,WAAa,WACzF,GAAI/f,EAAK,CACd,IAAIggB,EAAOL,GAAkBxE,GAC7BA,EAAS4E,WAAaC,EAAKlnB,aAAa0H,EAAI,MAAO,KAAMR,GAAMggB,EAAKjnB,YACpE0C,EAAG/C,QAAQ0kB,MAAME,cAAcnC,EAAS4E,WAC1C,CACF,CAIA,SAASE,GAAexkB,EAAI0f,GAC1B,IAAI+E,EAAMzkB,EAAG/C,QAAQkjB,iBACrB,OAAIsE,GAAOA,EAAIjkB,MAAQkf,EAASlf,MAC9BR,EAAG/C,QAAQkjB,iBAAmB,KAC9BT,EAASnQ,QAAUkV,EAAIlV,QAChBkV,EAAIC,OAENjF,GAAiBzf,EAAI0f,EAC9B,CAKA,SAASoE,GAAe9jB,EAAI0f,GAC1B,IAAInb,EAAMmb,EAASte,KAAKnM,UACpByvB,EAAQF,GAAexkB,EAAI0f,GAC3BA,EAASte,MAAQse,EAAShb,OAAQgb,EAAShb,KAAOggB,EAAM9E,KAC5DF,EAASte,KAAKkE,WAAW6e,aAAaO,EAAM9E,IAAKF,EAASte,MAC1Dse,EAASte,KAAOsjB,EAAM9E,IAClB8E,EAAM3N,SAAW2I,EAAS3I,SAAW2N,EAAM1N,WAAa0I,EAAS1I,WACnE0I,EAAS3I,QAAU2N,EAAM3N,QACzB2I,EAAS1I,UAAY0N,EAAM1N,UAC3BgN,GAAkBhkB,EAAI0f,IACbnb,IACTmb,EAASte,KAAKnM,UAAYsP,EAE9B,CAEA,SAASyf,GAAkBhkB,EAAI0f,GAC7B2E,GAAqBrkB,EAAI0f,GACrBA,EAASlf,KAAKmkB,UACdT,GAAkBxE,GAAUzqB,UAAYyqB,EAASlf,KAAKmkB,UACjDjF,EAAShb,MAAQgb,EAASte,OAC/Bse,EAAShb,KAAKzP,UAAY,IAC9B,IAAI+hB,EAAY0I,EAAS1I,UAAY0I,EAAS1I,UAAY,KAAO0I,EAASlf,KAAKwW,WAAa,IAAM0I,EAASlf,KAAKwW,UAChH0I,EAASte,KAAKnM,UAAY+hB,GAAa,EACzC,CAEA,SAAS+M,GAAiB/jB,EAAI0f,EAAU1B,EAAO6F,GAS7C,GARInE,EAASkF,SACXlF,EAAShb,KAAKvG,YAAYuhB,EAASkF,QACnClF,EAASkF,OAAS,MAEhBlF,EAASmF,mBACXnF,EAAShb,KAAKvG,YAAYuhB,EAASmF,kBACnCnF,EAASmF,iBAAmB,MAE1BnF,EAASlf,KAAKskB,YAAa,CAC7B,IAAIP,EAAOL,GAAkBxE,GAC7BA,EAASmF,iBAAmB9f,EAAI,MAAO,KAAM,gCAAkC2a,EAASlf,KAAKskB,YAC5D,UAAY9kB,EAAG9c,QAAQ6hC,YAAclB,EAAKmB,UAAYnB,EAAKoB,kBAAoB,cAAiBpB,EAAqB,iBAAI,MAC1J7jB,EAAG/C,QAAQ0kB,MAAME,cAAcnC,EAASmF,kBACxCN,EAAKlnB,aAAaqiB,EAASmF,iBAAkBnF,EAASte,KACxD,CACA,IAAI4a,EAAU0D,EAASlf,KAAK0kB,cAC5B,GAAIllB,EAAG9c,QAAQiiC,aAAenJ,EAAS,CACrC,IAAIoJ,EAASlB,GAAkBxE,GAC3B2F,EAAa3F,EAASkF,OAAS7f,EAAI,MAAO,KAAM,4BAA8B,UAAY/E,EAAG9c,QAAQ6hC,YAAclB,EAAKmB,UAAYnB,EAAKoB,kBAAoB,MAWjK,GAVAI,EAAWjgB,aAAa,cAAe,QACvCpF,EAAG/C,QAAQ0kB,MAAME,cAAcwD,GAC/BD,EAAO/nB,aAAagoB,EAAY3F,EAASte,MACrCse,EAASlf,KAAKskB,cACdO,EAAWpwB,WAAa,IAAMyqB,EAASlf,KAAKskB,cAC5C9kB,EAAG9c,QAAQiiC,aAAiBnJ,GAAYA,EAAQ,4BAChD0D,EAAS4F,WAAaD,EAAWvgB,YACjCC,EAAI,MAAO2O,GAAc1T,EAAG9c,QAAS86B,GACjC,8CACC,SAAY6F,EAAK0B,WAAW,0BAA6B,cAAiBvlB,EAAG/C,QAAyB,kBAAI,QAC/G+e,EAAW,IAAK,IAAIwJ,EAAI,EAAGA,EAAIxlB,EAAG/C,QAAQwoB,YAAYzkC,SAAUwkC,EAAG,CACrE,IAAI76B,EAAKqV,EAAG/C,QAAQwoB,YAAYD,GAAGvwB,UAAW0V,EAAQqR,EAAQjV,eAAepc,IAAOqxB,EAAQrxB,GACxFggB,GACA0a,EAAWvgB,YAAYC,EAAI,MAAO,CAAC4F,GAAQ,wBACjB,SAAYkZ,EAAK0B,WAAW56B,GAAO,cAAiBk5B,EAAK6B,YAAY/6B,GAAO,MAC5G,CACF,CACF,CAEA,SAASs5B,GAAkBjkB,EAAI0f,EAAUmE,GACnCnE,EAASiG,YAAajG,EAASiG,UAAY,MAE/C,IADA,IAAIC,EAAWthB,EAAU,yBAChBI,EAAOgb,EAAShb,KAAKpH,WAAY9J,OAAO,EAAUkR,EAAMA,EAAOlR,EACtEA,EAAOkR,EAAKmhB,YACRD,EAASv7B,KAAKqa,EAAKzP,YAAcyqB,EAAShb,KAAKvG,YAAYuG,GAEjEohB,GAAkB9lB,EAAI0f,EAAUmE,EAClC,CAGA,SAASkC,GAAiB/lB,EAAI0f,EAAU1B,EAAO6F,GAC7C,IAAIa,EAAQF,GAAexkB,EAAI0f,GAQ/B,OAPAA,EAASte,KAAOse,EAAShb,KAAOggB,EAAM9E,IAClC8E,EAAM3N,UAAW2I,EAAS3I,QAAU2N,EAAM3N,SAC1C2N,EAAM1N,YAAa0I,EAAS1I,UAAY0N,EAAM1N,WAElDgN,GAAkBhkB,EAAI0f,GACtBqE,GAAiB/jB,EAAI0f,EAAU1B,EAAO6F,GACtCiC,GAAkB9lB,EAAI0f,EAAUmE,GACzBnE,EAAShb,IAClB,CAIA,SAASohB,GAAkB9lB,EAAI0f,EAAUmE,GAEvC,GADAmC,GAAqBhmB,EAAI0f,EAASlf,KAAMkf,EAAUmE,GAAM,GACpDnE,EAASvoB,KAAQ,IAAK,IAAIjX,EAAI,EAAGA,EAAIw/B,EAASvoB,KAAKnW,OAAQd,IAC3D8lC,GAAqBhmB,EAAI0f,EAASvoB,KAAKjX,GAAIw/B,EAAUmE,GAAM,EACjE,CAEA,SAASmC,GAAqBhmB,EAAIQ,EAAMkf,EAAUmE,EAAMoC,GACtD,GAAKzlB,EAAK0lB,QAEV,IADA,IAAI3B,EAAOL,GAAkBxE,GACpBx/B,EAAI,EAAGimC,EAAK3lB,EAAK0lB,QAAShmC,EAAIimC,EAAGnlC,SAAUd,EAAG,CACrD,IAAIwhC,EAASyE,EAAGjmC,GAAIwkB,EAAOK,EAAI,MAAO,CAAC2c,EAAOhd,MAAO,yBAA2Bgd,EAAOzsB,UAAY,IAAMysB,EAAOzsB,UAAY,KACvHysB,EAAO0E,mBAAqB1hB,EAAKU,aAAa,mBAAoB,QACvEihB,GAAmB3E,EAAQhd,EAAMgb,EAAUmE,GAC3C7jB,EAAG/C,QAAQ0kB,MAAME,cAAcnd,GAC3BuhB,GAAcvE,EAAO4E,MACrB/B,EAAKlnB,aAAaqH,EAAMgb,EAASkF,QAAUlF,EAASte,MAEpDmjB,EAAKzf,YAAYJ,GACrB8e,GAAY9B,EAAQ,SACtB,CACF,CAEA,SAAS2E,GAAmB3E,EAAQhd,EAAMgb,EAAUmE,GAClD,GAAInC,EAAO6E,UAAW,EACvB7G,EAASiG,YAAcjG,EAASiG,UAAY,KAAK3gC,KAAK0f,GACnD,IAAI8hB,EAAQ3C,EAAK4C,aACjB/hB,EAAK1H,MAAM+S,KAAO8T,EAAKmB,SAAW,KAC7BtD,EAAOgF,cACVF,GAAS3C,EAAKoB,iBACdvgB,EAAK1H,MAAM2pB,YAAc9C,EAAKoB,iBAAmB,MAEnDvgB,EAAK1H,MAAMwpB,MAAQA,EAAQ,IAC7B,CACI9E,EAAOgF,cACThiB,EAAK1H,MAAMonB,OAAS,EACpB1f,EAAK1H,MAAM4pB,SAAW,WACjBlF,EAAO6E,YAAa7hB,EAAK1H,MAAM6pB,YAAchD,EAAKoB,iBAAmB,MAE9E,CAEA,SAAS6B,GAAapF,GACpB,GAAqB,MAAjBA,EAAOvO,OAAkB,OAAOuO,EAAOvO,OAC3C,IAAInT,EAAK0hB,EAAOhP,IAAI1S,GACpB,IAAKA,EAAM,OAAO,EAClB,IAAKjb,EAASgQ,SAASoI,KAAMukB,EAAOhd,MAAO,CACzC,IAAIqiB,EAAc,sBACdrF,EAAOgF,cACPK,GAAe,iBAAmB/mB,EAAG/C,QAAQ+pB,QAAQvX,YAAc,OACnEiS,EAAO6E,YACPQ,GAAe,UAAY/mB,EAAG/C,QAAQgqB,QAAQC,YAAc,OAChEriB,EAAqB7E,EAAG/C,QAAQsS,QAASxK,EAAI,MAAO,CAAC2c,EAAOhd,MAAO,KAAMqiB,GAC3E,CACA,OAAOrF,EAAOvO,OAASuO,EAAOhd,KAAKY,WAAWkK,YAChD,CAGA,SAAS2X,GAAclqB,EAAS1R,GAC9B,IAAK,IAAI4b,EAAI0H,GAAStjB,GAAI4b,GAAKlK,EAAQgqB,QAAS9f,EAAIA,EAAE7B,WACpD,IAAK6B,GAAoB,GAAdA,EAAE9B,UAAuD,QAAtC8B,EAAEigB,aAAa,qBACxCjgB,EAAE7B,YAAcrI,EAAQoqB,OAASlgB,GAAKlK,EAAQqqB,MAC/C,OAAO,CAEf,CAIA,SAASC,GAAWtqB,GAAU,OAAOA,EAAQuqB,UAAUC,SAAS,CAChE,SAASC,GAAYzqB,GAAU,OAAOA,EAAQqqB,MAAM9X,aAAevS,EAAQuqB,UAAUhY,YAAY,CACjG,SAASmY,GAAS1qB,GAChB,GAAIA,EAAQ2qB,eAAkB,OAAO3qB,EAAQ2qB,eAC7C,IAAIr8B,EAAIsZ,EAAqB5H,EAAQsS,QAASxK,EAAI,MAAO,IAAK,yBAC1D/H,EAAQ5c,OAAOynC,iBAAmBznC,OAAOynC,iBAAiBt8B,GAAKA,EAAEu8B,aACjE/uB,EAAO,CAACgX,KAAMgY,SAAS/qB,EAAM2pB,aAAc3W,MAAO+X,SAAS/qB,EAAMgrB,eAErE,OADKC,MAAMlvB,EAAKgX,OAAUkY,MAAMlvB,EAAKiX,SAAU/S,EAAQ2qB,eAAiB7uB,GACjEA,CACT,CAEA,SAASmvB,GAAUloB,GAAM,OAAO+H,EAAc/H,EAAG/C,QAAQkrB,cAAe,CACxE,SAASC,GAAapoB,GACpB,OAAOA,EAAG/C,QAAQorB,SAASnB,YAAcgB,GAAUloB,GAAMA,EAAG/C,QAAQqrB,QACtE,CACA,SAASC,GAAcvoB,GACrB,OAAOA,EAAG/C,QAAQorB,SAASG,aAAeN,GAAUloB,GAAMA,EAAG/C,QAAQwrB,SACvE,CAMA,SAASC,GAAkB1oB,EAAI0f,EAAUiJ,GACvC,IAAIC,EAAW5oB,EAAG9c,QAAQ2lC,aACtBC,EAAWF,GAAYR,GAAapoB,GACxC,IAAK0f,EAASnQ,QAAQwZ,SAAWH,GAAYlJ,EAASnQ,QAAQiX,OAASsC,EAAU,CAC/E,IAAIC,EAAUrJ,EAASnQ,QAAQwZ,QAAU,GACzC,GAAIH,EAAU,CACZlJ,EAASnQ,QAAQiX,MAAQsC,EAEzB,IADA,IAAIE,EAAQtJ,EAASte,KAAK9D,WAAW2rB,iBAC5B/oC,EAAI,EAAGA,EAAI8oC,EAAMhoC,OAAS,EAAGd,IAAK,CACzC,IAAI+hB,EAAM+mB,EAAM9oC,GAAIsT,EAAOw1B,EAAM9oC,EAAI,GACjCqM,KAAK0kB,IAAIhP,EAAIinB,OAAS11B,EAAK01B,QAAU,GACrCH,EAAQ/jC,MAAMid,EAAIinB,OAAS11B,EAAK21B,KAAO,EAAIR,EAAKQ,IACtD,CACF,CACAJ,EAAQ/jC,KAAK2jC,EAAKO,OAASP,EAAKQ,IAClC,CACF,CAKA,SAASC,GAAgB1J,EAAUlf,EAAMwd,GACvC,GAAI0B,EAASlf,MAAQA,EACjB,MAAO,CAACrb,IAAKu6B,EAASnQ,QAAQpqB,IAAKq6B,MAAOE,EAASnQ,QAAQiQ,OAC/D,GAAIE,EAASvoB,KAAM,CACjB,IAAK,IAAIjX,EAAI,EAAGA,EAAIw/B,EAASvoB,KAAKnW,OAAQd,IACtC,GAAIw/B,EAASvoB,KAAKjX,IAAMsgB,EACtB,MAAO,CAACrb,IAAKu6B,EAASnQ,QAAQ6Q,KAAKlgC,GAAIs/B,MAAOE,EAASnQ,QAAQ8Q,OAAOngC,IAC5E,IAAK,IAAI8rB,EAAM,EAAGA,EAAM0T,EAASvoB,KAAKnW,OAAQgrB,IAC1C,GAAIoH,GAAOsM,EAASvoB,KAAK6U,IAAQgS,EAC/B,MAAO,CAAC74B,IAAKu6B,EAASnQ,QAAQ6Q,KAAKpU,GAAMwT,MAAOE,EAASnQ,QAAQ8Q,OAAOrU,GAAMhpB,QAAQ,EAC9F,CACF,CAIA,SAASqmC,GAA0BrpB,EAAIQ,GAErC,IAAIwd,EAAQ5K,GADZ5S,EAAOod,GAAWpd,IAEdmiB,EAAO3iB,EAAG/C,QAAQkjB,iBAAmB,IAAIoC,GAASviB,EAAG0S,IAAKlS,EAAMwd,GACpE2E,EAAK3E,MAAQA,EACb,IAAI0G,EAAQ/B,EAAK+B,MAAQjF,GAAiBzf,EAAI2iB,GAG9C,OAFAA,EAAKvhB,KAAOsjB,EAAM9E,IAClB/a,EAAqB7E,EAAG/C,QAAQqsB,YAAa5E,EAAM9E,KAC5C+C,CACT,CAIA,SAAS4G,GAAYvpB,EAAIQ,EAAMC,EAAI+oB,GACjC,OAAOC,GAAoBzpB,EAAI0pB,GAAsB1pB,EAAIQ,GAAOC,EAAI+oB,EACtE,CAGA,SAASG,GAAgB3pB,EAAIge,GAC3B,GAAIA,GAAShe,EAAG/C,QAAQ8a,UAAYiG,EAAQhe,EAAG/C,QAAQ+a,OACnD,OAAOhY,EAAG/C,QAAQ0lB,KAAKiH,GAAc5pB,EAAIge,IAC7C,IAAIyG,EAAMzkB,EAAG/C,QAAQkjB,iBACrB,OAAIsE,GAAOzG,GAASyG,EAAIzG,OAASA,EAAQyG,EAAIzG,MAAQyG,EAAI1tB,KAC9C0tB,OADX,CAEF,CAOA,SAASiF,GAAsB1pB,EAAIQ,GACjC,IAAIwd,EAAQ5K,GAAO5S,GACfmiB,EAAOgH,GAAgB3pB,EAAIge,GAC3B2E,IAASA,EAAKvhB,KAChBuhB,EAAO,KACEA,GAAQA,EAAKz0B,UACtB01B,GAAqB5jB,EAAI2iB,EAAM3E,EAAO6L,GAAc7pB,IACpDA,EAAGkO,MAAM4b,aAAc,GAEpBnH,IACDA,EAAO0G,GAA0BrpB,EAAIQ,IAEzC,IAAI2R,EAAOiX,GAAgBzG,EAAMniB,EAAMwd,GACvC,MAAO,CACLxd,KAAMA,EAAMmiB,KAAMA,EAAMgG,KAAM,KAC9BxjC,IAAKgtB,EAAKhtB,IAAKq6B,MAAOrN,EAAKqN,MAAOx8B,OAAQmvB,EAAKnvB,OAC/C+mC,YAAY,EAEhB,CAIA,SAASN,GAAoBzpB,EAAIgqB,EAAUvpB,EAAI+oB,EAAMS,GAC/CD,EAAShnC,SAAUyd,GAAM,GAC7B,IAA6BkK,EAAzBjpB,EAAM+e,GAAM+oB,GAAQ,IAaxB,OAZIQ,EAASxK,MAAMzY,eAAerlB,GAChCipB,EAAQqf,EAASxK,MAAM99B,IAElBsoC,EAASrB,OACVqB,EAASrB,KAAOqB,EAASrH,KAAKvhB,KAAKyO,yBAClCma,EAASD,aACZrB,GAAkB1oB,EAAIgqB,EAASrH,KAAMqH,EAASrB,MAC9CqB,EAASD,YAAa,IAExBpf,EAAQuf,GAAiBlqB,EAAIgqB,EAAUvpB,EAAI+oB,IAChCW,QAASH,EAASxK,MAAM99B,GAAOipB,IAErC,CAACoF,KAAMpF,EAAMoF,KAAMC,MAAOrF,EAAMqF,MAC/BmZ,IAAKc,EAAYtf,EAAMyf,KAAOzf,EAAMwe,IACpCD,OAAQe,EAAYtf,EAAM0f,QAAU1f,EAAMue,OACpD,CAEA,IAwbIoB,GAxbAC,GAAW,CAACxa,KAAM,EAAGC,MAAO,EAAGmZ,IAAK,EAAGD,OAAQ,GAEnD,SAASsB,GAAuBrlC,EAAKsb,EAAI+oB,GAIvC,IAHA,IAAI9kB,EAAMrI,EAAOgG,EAAKiE,EAAUmkB,EAAQC,EAG/BxqC,EAAI,EAAGA,EAAIiF,EAAInE,OAAQd,GAAK,EAcnC,GAbAuqC,EAAStlC,EAAIjF,GACbwqC,EAAOvlC,EAAIjF,EAAI,GACXugB,EAAKgqB,GACPpuB,EAAQ,EAAGgG,EAAM,EACjBiE,EAAW,QACF7F,EAAKiqB,EAEdroB,GADAhG,EAAQoE,EAAKgqB,GACC,GACLvqC,GAAKiF,EAAInE,OAAS,GAAKyf,GAAMiqB,GAAQvlC,EAAIjF,EAAI,GAAKugB,KAE3DpE,GADAgG,EAAMqoB,EAAOD,GACC,EACVhqB,GAAMiqB,IAAQpkB,EAAW,UAElB,MAATjK,EAAe,CAIjB,GAHAqI,EAAOvf,EAAIjF,EAAI,GACXuqC,GAAUC,GAAQlB,IAAS9kB,EAAKkW,WAAa,OAAS,WACtDtU,EAAWkjB,GACH,QAARA,GAA2B,GAATntB,EAClB,KAAOnc,GAAKiF,EAAIjF,EAAI,IAAMiF,EAAIjF,EAAI,IAAMiF,EAAIjF,EAAI,GAAG06B,YACnDlW,EAAOvf,GAAKjF,GAAK,GAAK,GACtBomB,EAAW,OAEf,GAAY,SAARkjB,GAAmBntB,GAASquB,EAAOD,EACnC,KAAOvqC,EAAIiF,EAAInE,OAAS,GAAKmE,EAAIjF,EAAI,IAAMiF,EAAIjF,EAAI,KAAOiF,EAAIjF,EAAI,GAAG06B,YACrElW,EAAOvf,GAAKjF,GAAK,GAAK,GACtBomB,EAAW,QAEf,KACF,CAEF,MAAO,CAAC5B,KAAMA,EAAMrI,MAAOA,EAAOgG,IAAKA,EAAKiE,SAAUA,EAAUqkB,WAAYF,EAAQG,SAAUF,EAChG,CAEA,SAASG,GAAc7B,EAAOQ,GAC5B,IAAIb,EAAO4B,GACX,GAAY,QAARf,EAAkB,IAAK,IAAItpC,EAAI,EAAGA,EAAI8oC,EAAMhoC,SACzC2nC,EAAOK,EAAM9oC,IAAI6vB,MAAQ4Y,EAAK3Y,MADmB9vB,UAE7C,IAAK,IAAI8rB,EAAMgd,EAAMhoC,OAAS,EAAGgrB,GAAO,IAC5C2c,EAAOK,EAAMhd,IAAM+D,MAAQ4Y,EAAK3Y,MADehE,KAGtD,OAAO2c,CACT,CAEA,SAASuB,GAAiBlqB,EAAIgqB,EAAUvpB,EAAI+oB,GAC1C,IAGIb,EAHAmC,EAAQN,GAAuBR,EAAS7kC,IAAKsb,EAAI+oB,GACjD9kB,EAAOomB,EAAMpmB,KAAMrI,EAAQyuB,EAAMzuB,MAAOgG,EAAMyoB,EAAMzoB,IAAKiE,EAAWwkB,EAAMxkB,SAG9E,GAAqB,GAAjB5B,EAAKW,SAAe,CACtB,IAAK,IAAI2G,EAAM,EAAGA,EAAM,EAAGA,IAAO,CAChC,KAAO3P,GAASyN,GAAgBkgB,EAASxpB,KAAKY,KAAKnF,OAAO6uB,EAAMH,WAAatuB,OAAaA,EAC1F,KAAOyuB,EAAMH,WAAatoB,EAAMyoB,EAAMF,UAAY9gB,GAAgBkgB,EAASxpB,KAAKY,KAAKnF,OAAO6uB,EAAMH,WAAatoB,OAAWA,EAK1H,IAHIsmB,EADA3lB,GAAMC,EAAa,GAAc,GAAT5G,GAAcgG,GAAOyoB,EAAMF,SAAWE,EAAMH,WAC7DjmB,EAAKY,WAAWuK,wBAEhBgb,GAAcrmB,EAAME,EAAMrI,EAAOgG,GAAK4mB,iBAAkBO,IAC1DzZ,MAAQ4Y,EAAK3Y,OAAkB,GAAT3T,EAAc,MAC7CgG,EAAMhG,EACNA,GAAgB,EAChBiK,EAAW,OACb,CACItD,GAAMC,EAAa,KAAM0lB,EAAOoC,GAA0B/qB,EAAG/C,QAAQsS,QAASoZ,GACpF,KAAO,CAEL,IAAIK,EADA3sB,EAAQ,IAAKiK,EAAWkjB,EAAO,SAG/Bb,EADA3oB,EAAG9c,QAAQ2lC,eAAiBG,EAAQtkB,EAAKukB,kBAAkBjoC,OAAS,EAC7DgoC,EAAc,SAARQ,EAAkBR,EAAMhoC,OAAS,EAAI,GAE3C0jB,EAAKmL,uBAClB,CACA,GAAI7M,GAAMC,EAAa,IAAM5G,KAAWssB,IAASA,EAAK5Y,OAAS4Y,EAAK3Y,OAAQ,CAC1E,IAAIgb,EAAQtmB,EAAKY,WAAW2jB,iBAAiB,GAEzCN,EADAqC,EACO,CAACjb,KAAMib,EAAMjb,KAAMC,MAAOgb,EAAMjb,KAAOkb,GAAUjrB,EAAG/C,SAAUksB,IAAK6B,EAAM7B,IAAKD,OAAQ8B,EAAM9B,QAE5FqB,EACb,CAMA,IAJA,IAAIH,EAAOzB,EAAKQ,IAAMa,EAASrB,KAAKQ,IAAK+B,EAAOvC,EAAKO,OAASc,EAASrB,KAAKQ,IACxE7e,GAAO8f,EAAOc,GAAQ,EACtBnC,EAAUiB,EAASrH,KAAKpT,QAAQwZ,QAChC7oC,EAAI,EACDA,EAAI6oC,EAAQ/nC,OAAS,KACpBspB,EAAMye,EAAQ7oC,IADSA,KAE/B,IAAIipC,EAAMjpC,EAAI6oC,EAAQ7oC,EAAI,GAAK,EAAGirC,EAAMpC,EAAQ7oC,GAC5CqN,EAAS,CAACwiB,MAAmB,SAAZzJ,EAAsBqiB,EAAK3Y,MAAQ2Y,EAAK5Y,MAAQia,EAASrB,KAAK5Y,KACrEC,OAAoB,QAAZ1J,EAAqBqiB,EAAK5Y,KAAO4Y,EAAK3Y,OAASga,EAASrB,KAAK5Y,KACrEoZ,IAAKA,EAAKD,OAAQiC,GAIhC,OAHKxC,EAAK5Y,MAAS4Y,EAAK3Y,QAASziB,EAAO48B,OAAQ,GAC3CnqB,EAAG9c,QAAQkoC,4BAA6B79B,EAAO68B,KAAOA,EAAM78B,EAAO88B,QAAUa,GAE3E39B,CACT,CAIA,SAASw9B,GAA0Bxb,EAASoZ,GAC1C,IAAKvoC,OAAOirC,QAAgC,MAAtBA,OAAOC,aACzBD,OAAOC,aAAeD,OAAOE,aAAeza,GAAkBvB,GAC9D,OAAOoZ,EACX,IAAI6C,EAASH,OAAOC,YAAcD,OAAOE,WACrCE,EAASJ,OAAOK,YAAcL,OAAOM,WACzC,MAAO,CAAC5b,KAAM4Y,EAAK5Y,KAAOyb,EAAQxb,MAAO2Y,EAAK3Y,MAAQwb,EAC9CrC,IAAKR,EAAKQ,IAAMsC,EAAQvC,OAAQP,EAAKO,OAASuC,EACxD,CAEA,SAASG,GAA6BlM,GACpC,GAAIA,EAASnQ,UACXmQ,EAASnQ,QAAQiQ,MAAQ,CAAC,EAC1BE,EAASnQ,QAAQwZ,QAAU,KACvBrJ,EAASvoB,MAAQ,IAAK,IAAIjX,EAAI,EAAGA,EAAIw/B,EAASvoB,KAAKnW,OAAQd,IAC3Dw/B,EAASnQ,QAAQ8Q,OAAOngC,GAAK,CAAC,CAEtC,CAEA,SAAS2rC,GAA0B7rB,GACjCA,EAAG/C,QAAQ6uB,gBAAkB,KAC7BnnB,EAAe3E,EAAG/C,QAAQqsB,aAC1B,IAAK,IAAIppC,EAAI,EAAGA,EAAI8f,EAAG/C,QAAQ0lB,KAAK3hC,OAAQd,IACxC0rC,GAA6B5rB,EAAG/C,QAAQ0lB,KAAKziC,GACnD,CAEA,SAAS6rC,GAAY/rB,GACnB6rB,GAA0B7rB,GAC1BA,EAAG/C,QAAQ+uB,gBAAkBhsB,EAAG/C,QAAQgvB,iBAAmBjsB,EAAG/C,QAAQ2qB,eAAiB,KAClF5nB,EAAG9c,QAAQ2lC,eAAgB7oB,EAAG/C,QAAQ8hB,gBAAiB,GAC5D/e,EAAG/C,QAAQivB,aAAe,IAC5B,CAEA,SAASC,KAIP,OAAI/oB,GAAUS,IAAoB9O,SAASoI,KAAK0S,wBAAwBE,KAAOgY,SAASF,iBAAiB9yB,SAASoI,MAAM0pB,aACjHzmC,OAAOgsC,cAAgBr3B,SAASs3B,iBAAmBt3B,SAASoI,MAAMmvB,UAC3E,CACA,SAASC,KACP,OAAInpB,GAAUS,IAAoB9O,SAASoI,KAAK0S,wBAAwBsZ,IAAMpB,SAASF,iBAAiB9yB,SAASoI,MAAMqvB,YAChHpsC,OAAOqsC,cAAgB13B,SAASs3B,iBAAmBt3B,SAASoI,MAAMuvB,SAC3E,CAEA,SAASC,GAAgBnO,GACvB,IACI0H,EADMtI,GAAWY,GACH0H,QACd/S,EAAS,EACb,GAAI+S,EAAW,IAAK,IAAIhmC,EAAI,EAAGA,EAAIgmC,EAAQllC,SAAUd,EAASgmC,EAAQhmC,GAAGomC,QACrEnT,GAAU2T,GAAaZ,EAAQhmC,KACnC,OAAOizB,CACT,CAMA,SAASyZ,GAAgB5sB,EAAIwe,EAASmK,EAAMv+B,EAASyiC,GACnD,IAAKA,EAAgB,CACnB,IAAI1Z,EAASwZ,GAAgBnO,GAC7BmK,EAAKQ,KAAOhW,EAAQwV,EAAKO,QAAU/V,CACrC,CACA,GAAe,QAAX/oB,EAAqB,OAAOu+B,EAC3Bv+B,IAAWA,EAAU,SAC1B,IAAI0iC,EAAOvO,GAAaC,GAGxB,GAFe,SAAXp0B,EAAsB0iC,GAAQvF,GAAWvnB,EAAG/C,SACzC6vB,GAAQ9sB,EAAG/C,QAAQ8vB,WACX,QAAX3iC,GAAgC,UAAXA,EAAqB,CAC5C,IAAI4iC,EAAOhtB,EAAG/C,QAAQuqB,UAAU3X,wBAChCid,GAAQE,EAAK7D,KAAkB,UAAX/+B,EAAsB,EAAImiC,MAC9C,IAAIU,EAAOD,EAAKjd,MAAmB,UAAX3lB,EAAsB,EAAI+hC,MAClDxD,EAAK5Y,MAAQkd,EAAMtE,EAAK3Y,OAASid,CACnC,CAEA,OADAtE,EAAKQ,KAAO2D,EAAMnE,EAAKO,QAAU4D,EAC1BnE,CACT,CAIA,SAASuE,GAAgBltB,EAAImtB,EAAQ/iC,GACnC,GAAe,OAAXA,EAAoB,OAAO+iC,EAC/B,IAAIpd,EAAOod,EAAOpd,KAAMoZ,EAAMgE,EAAOhE,IAErC,GAAe,QAAX/+B,EACF2lB,GAAQoc,KACRhD,GAAOoD,UACF,GAAe,SAAXniC,IAAuBA,EAAS,CACzC,IAAIgjC,EAAWptB,EAAG/C,QAAQoqB,MAAMxX,wBAChCE,GAAQqd,EAASrd,KACjBoZ,GAAOiE,EAASjE,GAClB,CAEA,IAAIkE,EAAertB,EAAG/C,QAAQuqB,UAAU3X,wBACxC,MAAO,CAACE,KAAMA,EAAOsd,EAAatd,KAAMoZ,IAAKA,EAAMkE,EAAalE,IAClE,CAEA,SAASmE,GAAWttB,EAAIkC,EAAK9X,EAASo0B,EAASgL,GAE7C,OADKhL,IAAWA,EAAU/L,GAAQzS,EAAG0S,IAAKxQ,EAAI1B,OACvCosB,GAAgB5sB,EAAIwe,EAAS+K,GAAYvpB,EAAIwe,EAAStc,EAAIzB,GAAI+oB,GAAOp/B,EAC9E,CAkBA,SAASmjC,GAAavtB,EAAIkC,EAAK9X,EAASo0B,EAASgP,EAAiBvD,GAGhE,SAASjmC,EAAIyc,EAAIuP,GACf,IAAIne,EAAI43B,GAAoBzpB,EAAIwtB,EAAiB/sB,EAAIuP,EAAQ,QAAU,OAAQia,GAE/E,OADIja,EAASne,EAAEke,KAAOle,EAAEme,MAAgBne,EAAEme,MAAQne,EAAEke,KAC7C6c,GAAgB5sB,EAAIwe,EAAS3sB,EAAGzH,EACzC,CANAo0B,EAAUA,GAAW/L,GAAQzS,EAAG0S,IAAKxQ,EAAI1B,MACpCgtB,IAAmBA,EAAkB9D,GAAsB1pB,EAAIwe,IAMpE,IAAI9T,EAAQ0C,GAASoR,EAASxe,EAAG0S,IAAI9G,WAAYnL,EAAKyB,EAAIzB,GAAIuK,EAAS9I,EAAI8I,OAQ3E,GAPIvK,GAAM+d,EAAQpd,KAAKpgB,QACrByf,EAAK+d,EAAQpd,KAAKpgB,OAClBgqB,EAAS,UACAvK,GAAM,IACfA,EAAK,EACLuK,EAAS,UAENN,EAAS,OAAO1mB,EAAc,UAAVgnB,EAAqBvK,EAAK,EAAIA,EAAc,UAAVuK,GAE3D,SAASyiB,EAAQhtB,EAAIitB,EAASt1B,GAE5B,OAAOpU,EAAIoU,EAASqI,EAAK,EAAIA,EADoB,GAAtCiK,EAAMgjB,GAAuB7iB,OACEzS,EAC5C,CACA,IAAIs1B,EAAU3iB,GAAcL,EAAOjK,EAAIuK,GACnC2iB,EAAQ7iB,GACRxkB,EAAMmnC,EAAQhtB,EAAIitB,EAAmB,UAAV1iB,GAE/B,OADa,MAAT2iB,IAAiBrnC,EAAIqnC,MAAQF,EAAQhtB,EAAIktB,EAAiB,UAAV3iB,IAC7C1kB,CACT,CAIA,SAASsnC,GAAe5tB,EAAIkC,GAC1B,IAAI6N,EAAO,EACX7N,EAAMoS,GAAQtU,EAAG0S,IAAKxQ,GACjBlC,EAAG9c,QAAQ2lC,eAAgB9Y,EAAOkb,GAAUjrB,EAAG/C,SAAWiF,EAAIzB,IACnE,IAAI+d,EAAU/L,GAAQzS,EAAG0S,IAAKxQ,EAAI1B,MAC9B2oB,EAAM5K,GAAaC,GAAW+I,GAAWvnB,EAAG/C,SAChD,MAAO,CAAC8S,KAAMA,EAAMC,MAAOD,EAAMoZ,IAAKA,EAAKD,OAAQC,EAAM3K,EAAQrL,OACnE,CAQA,SAAS0a,GAAYrtB,EAAMC,EAAIuK,EAAQ8iB,EAASC,GAC9C,IAAI7rB,EAAM4R,GAAItT,EAAMC,EAAIuK,GAGxB,OAFA9I,EAAI6rB,KAAOA,EACPD,IAAW5rB,EAAI4rB,QAAUA,GACtB5rB,CACT,CAIA,SAAS8rB,GAAWhuB,EAAIkU,EAAG+Z,GACzB,IAAIvb,EAAM1S,EAAG0S,IAEb,IADAub,GAAKjuB,EAAG/C,QAAQ8vB,YACR,EAAK,OAAOc,GAAYnb,EAAIxgB,MAAO,EAAG,MAAO,GAAI,GACzD,IAAI8rB,EAAQ1K,GAAaZ,EAAKub,GAAI52B,EAAOqb,EAAIxgB,MAAQwgB,EAAI3b,KAAO,EAChE,GAAIinB,EAAQ3mB,EACR,OAAOw2B,GAAYnb,EAAIxgB,MAAQwgB,EAAI3b,KAAO,EAAG0b,GAAQC,EAAKrb,GAAM+J,KAAKpgB,OAAQ,KAAM,EAAG,GACtFkzB,EAAI,IAAKA,EAAI,GAGjB,IADA,IAAIsK,EAAU/L,GAAQC,EAAKsL,KAClB,CACP,IAAIrT,EAAQujB,GAAgBluB,EAAIwe,EAASR,EAAO9J,EAAG+Z,GAC/C1Q,EAAYG,GAAoBc,EAAS7T,EAAMlK,IAAMkK,EAAMojB,KAAO,GAAKpjB,EAAMmjB,QAAU,EAAI,EAAI,IACnG,IAAKvQ,EAAa,OAAO5S,EACzB,IAAIwjB,EAAW5Q,EAAUtpB,KAAK,GAC9B,GAAIk6B,EAAS3tB,MAAQwd,EAAS,OAAOmQ,EACrC3P,EAAU/L,GAAQC,EAAKsL,EAAQmQ,EAAS3tB,KAC1C,CACF,CAEA,SAAS4tB,GAAkBpuB,EAAIwe,EAASgP,EAAiBS,GACvDA,GAAKtB,GAAgBnO,GACrB,IAAInc,EAAMmc,EAAQpd,KAAKpgB,OACnBqtC,EAAQlkB,IAAU,SAAU1J,GAAM,OAAOgpB,GAAoBzpB,EAAIwtB,EAAiB/sB,EAAK,GAAGyoB,QAAU+E,CAAG,GAAG5rB,EAAK,GAEnH,MAAO,CAACgsB,MAAOA,EAAOhsB,IADtBA,EAAM8H,IAAU,SAAU1J,GAAM,OAAOgpB,GAAoBzpB,EAAIwtB,EAAiB/sB,GAAI0oB,IAAM8E,CAAG,GAAGI,EAAOhsB,GAEzG,CAEA,SAASisB,GAAsBtuB,EAAIwe,EAASgP,EAAiB5mB,GAG3D,OAFK4mB,IAAmBA,EAAkB9D,GAAsB1pB,EAAIwe,IAE7D4P,GAAkBpuB,EAAIwe,EAASgP,EADtBZ,GAAgB5sB,EAAIwe,EAASiL,GAAoBzpB,EAAIwtB,EAAiB5mB,GAAS,QAAQuiB,IAEzG,CAIA,SAASoF,GAAWC,EAAKta,EAAG+Z,EAAGle,GAC7B,QAAOye,EAAItF,QAAU+E,KAAYO,EAAIrF,IAAM8E,IAAYle,EAAOye,EAAIze,KAAOye,EAAIxe,OAASkE,EACxF,CAEA,SAASga,GAAgBluB,EAAIwe,EAASpL,EAAQc,EAAG+Z,GAE/CA,GAAK1P,GAAaC,GAClB,IAAIgP,EAAkB9D,GAAsB1pB,EAAIwe,GAG5CsI,EAAe6F,GAAgBnO,GAC/B6P,EAAQ,EAAGhsB,EAAMmc,EAAQpd,KAAKpgB,OAAQytC,GAAM,EAE5C/jB,EAAQ0C,GAASoR,EAASxe,EAAG0S,IAAI9G,WAGrC,GAAIlB,EAAO,CACT,IAAIE,GAAQ5K,EAAG9c,QAAQ2lC,aAAe6F,GAAwBC,IAChD3uB,EAAIwe,EAASpL,EAAQoa,EAAiB9iB,EAAOwJ,EAAG+Z,GAM9DI,GALAI,EAAoB,GAAd7jB,EAAKC,OAKGD,EAAK9K,KAAO8K,EAAK7K,GAAK,EACpCsC,EAAMosB,EAAM7jB,EAAK7K,GAAK6K,EAAK9K,KAAO,CACpC,CAKA,IAYI8uB,EAAO5jB,EAZP6jB,EAAW,KAAMC,EAAY,KAC7BruB,EAAK0J,IAAU,SAAU1J,GAC3B,IAAI+tB,EAAM/E,GAAoBzpB,EAAIwtB,EAAiB/sB,GAEnD,OADA+tB,EAAIrF,KAAOrC,EAAc0H,EAAItF,QAAUpC,IAClCyH,GAAWC,EAAKta,EAAG+Z,GAAG,KACvBO,EAAIrF,KAAO8E,GAAKO,EAAIze,MAAQmE,IAC9B2a,EAAWpuB,EACXquB,EAAYN,IAEP,EACT,GAAGH,EAAOhsB,GAESyrB,GAAU,EAE7B,GAAIgB,EAAW,CAEb,IAAIC,EAAS7a,EAAI4a,EAAU/e,KAAO+e,EAAU9e,MAAQkE,EAAG8a,EAAUD,GAAUN,EAC3EhuB,EAAKouB,GAAYG,EAAU,EAAI,GAC/BhkB,EAASgkB,EAAU,QAAU,SAC7BJ,EAAQG,EAASD,EAAU/e,KAAO+e,EAAU9e,KAC9C,KAAO,CAEAye,GAAQhuB,GAAM4B,GAAO5B,GAAM4tB,GAAU5tB,IAI1CuK,EAAe,GAANvK,EAAU,QAAUA,GAAM+d,EAAQpd,KAAKpgB,OAAS,SACtDyoC,GAAoBzpB,EAAIwtB,EAAiB/sB,GAAMguB,EAAM,EAAI,IAAIvF,OAASpC,GAAgBmH,GAAMQ,EAC7F,QAAU,SAGZ,IAAItB,EAASI,GAAavtB,EAAI8T,GAAIV,EAAQ3S,EAAIuK,GAAS,OAAQwT,EAASgP,GACxEoB,EAAQzB,EAAOpd,KACf+d,EAAUG,EAAId,EAAOhE,KAAO,EAAI8E,GAAKd,EAAOjE,OAAS,EAAI,CAC3D,CAGA,OAAO2E,GAAYza,EADnB3S,EAAKuJ,GAAmBwU,EAAQpd,KAAMX,EAAI,GACXuK,EAAQ8iB,EAAS5Z,EAAI0a,EACtD,CAEA,SAASD,GAAe3uB,EAAIwe,EAASpL,EAAQoa,EAAiB9iB,EAAOwJ,EAAG+Z,GAKtE,IAAI9sC,EAAQgpB,IAAU,SAAUjqB,GAC9B,IAAI0qB,EAAOF,EAAMxqB,GAAIuuC,EAAoB,GAAd7jB,EAAKC,MAChC,OAAO0jB,GAAWhB,GAAavtB,EAAI8T,GAAIV,EAAQqb,EAAM7jB,EAAK7K,GAAK6K,EAAK9K,KAAM2uB,EAAM,SAAW,SAC5D,OAAQjQ,EAASgP,GAAkBtZ,EAAG+Z,GAAG,EAC1E,GAAG,EAAGvjB,EAAM1pB,OAAS,GACjB4pB,EAAOF,EAAMvpB,GAIjB,GAAIA,EAAQ,EAAG,CACb,IAAIstC,EAAoB,GAAd7jB,EAAKC,MACXxO,EAAQkxB,GAAavtB,EAAI8T,GAAIV,EAAQqb,EAAM7jB,EAAK9K,KAAO8K,EAAK7K,GAAI0uB,EAAM,QAAU,UAC3D,OAAQjQ,EAASgP,GACtCe,GAAWlyB,EAAO6X,EAAG+Z,GAAG,IAAS5xB,EAAM8sB,IAAM8E,IAC7CrjB,EAAOF,EAAMvpB,EAAQ,GAC3B,CACA,OAAOypB,CACT,CAEA,SAAS8jB,GAAsB1uB,EAAIwe,EAASyQ,EAASzB,EAAiB9iB,EAAOwJ,EAAG+Z,GAQ9E,IAAIiB,EAAMd,GAAkBpuB,EAAIwe,EAASgP,EAAiBS,GACtDI,EAAQa,EAAIb,MACZhsB,EAAM6sB,EAAI7sB,IACV,KAAKhY,KAAKm0B,EAAQpd,KAAKnF,OAAOoG,EAAM,KAAOA,IAE/C,IADA,IAAIuI,EAAO,KAAMukB,EAAc,KACtBjvC,EAAI,EAAGA,EAAIwqB,EAAM1pB,OAAQd,IAAK,CACrC,IAAIm8B,EAAI3R,EAAMxqB,GACd,KAAIm8B,EAAEvc,MAAQuC,GAAOga,EAAEtc,IAAMsuB,GAA7B,CACA,IACIe,EAAO3F,GAAoBzpB,EAAIwtB,EADd,GAAXnR,EAAExR,MAC8Cte,KAAKiE,IAAI6R,EAAKga,EAAEtc,IAAM,EAAIxT,KAAKC,IAAI6hC,EAAOhS,EAAEvc,OAAOkQ,MAGzGqf,EAAOD,EAAOlb,EAAIA,EAAIkb,EAAO,IAAMA,EAAOlb,IACzCtJ,GAAQukB,EAAcE,KACzBzkB,EAAOyR,EACP8S,EAAcE,EAR+B,CAUjD,CAKA,OAJKzkB,IAAQA,EAAOF,EAAMA,EAAM1pB,OAAS,IAErC4pB,EAAK9K,KAAOuuB,IAASzjB,EAAO,CAAC9K,KAAMuuB,EAAOtuB,GAAI6K,EAAK7K,GAAI8K,MAAOD,EAAKC,QACnED,EAAK7K,GAAKsC,IAAOuI,EAAO,CAAC9K,KAAM8K,EAAK9K,KAAMC,GAAIsC,EAAKwI,MAAOD,EAAKC,QAC5DD,CACT,CAIA,SAAS0kB,GAAWryB,GAClB,GAAgC,MAA5BA,EAAQgvB,iBAA4B,OAAOhvB,EAAQgvB,iBACvD,GAAmB,MAAf3B,GAAqB,CACvBA,GAAcvlB,EAAI,MAAO,KAAM,wBAG/B,IAAK,IAAI7kB,EAAI,EAAGA,EAAI,KAAMA,EACxBoqC,GAAYxlB,YAAY/P,SAASmQ,eAAe,MAChDolB,GAAYxlB,YAAYC,EAAI,OAE9BulB,GAAYxlB,YAAY/P,SAASmQ,eAAe,KAClD,CACAL,EAAqB5H,EAAQsS,QAAS+a,IACtC,IAAInX,EAASmX,GAAY9a,aAAe,GAGxC,OAFI2D,EAAS,IAAKlW,EAAQgvB,iBAAmB9Y,GAC7CxO,EAAe1H,EAAQsS,SAChB4D,GAAU,CACnB,CAGA,SAAS8X,GAAUhuB,GACjB,GAA+B,MAA3BA,EAAQ+uB,gBAA2B,OAAO/uB,EAAQ+uB,gBACtD,IAAIuD,EAASxqB,EAAI,OAAQ,cACrB6a,EAAM7a,EAAI,MAAO,CAACwqB,GAAS,wBAC/B1qB,EAAqB5H,EAAQsS,QAASqQ,GACtC,IAAI+I,EAAO4G,EAAO1f,wBAAyB2W,GAASmC,EAAK3Y,MAAQ2Y,EAAK5Y,MAAQ,GAE9E,OADIyW,EAAQ,IAAKvpB,EAAQ+uB,gBAAkBxF,GACpCA,GAAS,EAClB,CAIA,SAASqD,GAAc7pB,GAGrB,IAFA,IAAI4e,EAAI5e,EAAG/C,QAAS8S,EAAO,CAAC,EAAGyW,EAAQ,CAAC,EACpCjB,EAAa3G,EAAEoI,QAAQwI,WAClBroB,EAAIyX,EAAEoI,QAAQ1pB,WAAYpd,EAAI,EAAGinB,EAAGA,EAAIA,EAAE0e,cAAe3lC,EAAG,CACnE,IAAIyK,EAAKqV,EAAG/C,QAAQwoB,YAAYvlC,GAAG+U,UACnC8a,EAAKplB,GAAMwc,EAAEsoB,WAAatoB,EAAEqoB,WAAajK,EACzCiB,EAAM77B,GAAMwc,EAAE+f,WAChB,CACA,MAAO,CAAClC,SAAU0K,GAAqB9Q,GAC/BqG,iBAAkBrG,EAAEoI,QAAQvX,YAC5B8V,WAAYxV,EACZ2V,YAAac,EACbC,aAAc7H,EAAEqI,QAAQC,YAClC,CAKA,SAASwI,GAAqBzyB,GAC5B,OAAOA,EAAQorB,SAASxY,wBAAwBE,KAAO9S,EAAQoqB,MAAMxX,wBAAwBE,IAC/F,CAKA,SAASkP,GAAejf,GACtB,IAAI2vB,EAAKL,GAAWtvB,EAAG/C,SAAU2rB,EAAW5oB,EAAG9c,QAAQ2lC,aACnD+G,EAAUhH,GAAYr8B,KAAKC,IAAI,EAAGwT,EAAG/C,QAAQorB,SAASnB,YAAc+D,GAAUjrB,EAAG/C,SAAW,GAChG,OAAO,SAAUuD,GACf,GAAI4d,GAAape,EAAG0S,IAAKlS,GAAS,OAAO,EAEzC,IAAIqvB,EAAgB,EACpB,GAAIrvB,EAAK0lB,QAAW,IAAK,IAAIhmC,EAAI,EAAGA,EAAIsgB,EAAK0lB,QAAQllC,OAAQd,IACvDsgB,EAAK0lB,QAAQhmC,GAAGizB,SAAU0c,GAAiBrvB,EAAK0lB,QAAQhmC,GAAGizB,QAGjE,OAAIyV,EACOiH,GAAiBtjC,KAAKge,KAAK/J,EAAKY,KAAKpgB,OAAS4uC,IAAY,GAAKD,EAE/DE,EAAgBF,CAC7B,CACF,CAEA,SAASG,GAAoB9vB,GAC3B,IAAI0S,EAAM1S,EAAG0S,IAAKqd,EAAM9Q,GAAejf,GACvC0S,EAAIM,MAAK,SAAUxS,GACjB,IAAI2e,EAAY4Q,EAAIvvB,GAChB2e,GAAa3e,EAAK2S,QAAUD,GAAiB1S,EAAM2e,EACzD,GACF,CAOA,SAAS6Q,GAAahwB,EAAIzU,EAAG0kC,EAASC,GACpC,IAAIjzB,EAAU+C,EAAG/C,QACjB,IAAKgzB,GAAyD,QAA9CphB,GAAStjB,GAAG67B,aAAa,kBAA+B,OAAO,KAE/E,IAAIlT,EAAG+Z,EAAGkC,EAAQlzB,EAAQuqB,UAAU3X,wBAEpC,IAAMqE,EAAI3oB,EAAE6kC,QAAUD,EAAMpgB,KAAMke,EAAI1iC,EAAE8kC,QAAUF,EAAMhH,GAC9B,CAA1B,MAAOmH,GAAO,OAAO,IAAK,CAC1B,IAAmC9vB,EAA/B2sB,EAASa,GAAWhuB,EAAIkU,EAAG+Z,GAC/B,GAAIiC,GAAW/C,EAAOY,KAAO,IAAMvtB,EAAOiS,GAAQzS,EAAG0S,IAAKya,EAAO3sB,MAAMY,MAAMpgB,QAAUmsC,EAAO1sB,GAAI,CAChG,IAAI8vB,EAAUvpB,EAAYxG,EAAMA,EAAKxf,OAAQgf,EAAG9c,QAAQoe,SAAWd,EAAKxf,OACxEmsC,EAASrZ,GAAIqZ,EAAO3sB,KAAMjU,KAAKC,IAAI,EAAGD,KAAKikC,OAAOtc,EAAIyT,GAAS3nB,EAAG/C,SAAS8S,MAAQkb,GAAUjrB,EAAG/C,UAAYszB,GAC9G,CACA,OAAOpD,CACT,CAIA,SAASvD,GAAc5pB,EAAImH,GACzB,GAAIA,GAAKnH,EAAG/C,QAAQ+a,OAAU,OAAO,KAErC,IADA7Q,GAAKnH,EAAG/C,QAAQ8a,UACR,EAAK,OAAO,KAEpB,IADA,IAAI4K,EAAO3iB,EAAG/C,QAAQ0lB,KACbziC,EAAI,EAAGA,EAAIyiC,EAAK3hC,OAAQd,IAE/B,IADAinB,GAAKwb,EAAKziC,GAAG6W,MACL,EAAK,OAAO7W,CAExB,CAQA,SAASuwC,GAAUzwB,EAAIF,EAAMC,EAAI2wB,GACnB,MAAR5wB,IAAgBA,EAAOE,EAAG0S,IAAIxgB,OACxB,MAAN6N,IAAcA,EAAKC,EAAG0S,IAAIxgB,MAAQ8N,EAAG0S,IAAI3b,MACxC25B,IAAWA,EAAU,GAE1B,IAAIzzB,EAAU+C,EAAG/C,QAOjB,GANIyzB,GAAW3wB,EAAK9C,EAAQ+a,SACM,MAA7B/a,EAAQ0zB,mBAA6B1zB,EAAQ0zB,kBAAoB7wB,KAClE7C,EAAQ0zB,kBAAoB7wB,GAEhCE,EAAGkO,MAAM0iB,aAAc,EAEnB9wB,GAAQ7C,EAAQ+a,OACdwB,IAAqBuE,GAAa/d,EAAG0S,IAAK5S,GAAQ7C,EAAQ+a,QAC1D6Y,GAAU7wB,QACT,GAAID,GAAM9C,EAAQ8a,SACnByB,IAAqB0E,GAAgBle,EAAG0S,IAAK3S,EAAK2wB,GAAWzzB,EAAQ8a,SACvE8Y,GAAU7wB,IAEV/C,EAAQ8a,UAAY2Y,EACpBzzB,EAAQ+a,QAAU0Y,QAEf,GAAI5wB,GAAQ7C,EAAQ8a,UAAYhY,GAAM9C,EAAQ+a,OACnD6Y,GAAU7wB,QACL,GAAIF,GAAQ7C,EAAQ8a,SAAU,CACnC,IAAI+Y,EAAMC,GAAiB/wB,EAAID,EAAIA,EAAK2wB,EAAS,GAC7CI,GACF7zB,EAAQ0lB,KAAO1lB,EAAQ0lB,KAAKhiC,MAAMmwC,EAAI3vC,OACtC8b,EAAQ8a,SAAW+Y,EAAI9S,MACvB/gB,EAAQ+a,QAAU0Y,GAElBG,GAAU7wB,EAEd,MAAO,GAAID,GAAM9C,EAAQ+a,OAAQ,CAC/B,IAAIgZ,EAAQD,GAAiB/wB,EAAIF,EAAMA,GAAO,GAC1CkxB,GACF/zB,EAAQ0lB,KAAO1lB,EAAQ0lB,KAAKhiC,MAAM,EAAGqwC,EAAM7vC,OAC3C8b,EAAQ+a,OAASgZ,EAAMhT,OAEvB6S,GAAU7wB,EAEd,KAAO,CACL,IAAIixB,EAASF,GAAiB/wB,EAAIF,EAAMA,GAAO,GAC3CoxB,EAASH,GAAiB/wB,EAAID,EAAIA,EAAK2wB,EAAS,GAChDO,GAAUC,GACZj0B,EAAQ0lB,KAAO1lB,EAAQ0lB,KAAKhiC,MAAM,EAAGswC,EAAO9vC,OACzCiE,OAAOq9B,GAAeziB,EAAIixB,EAAOjT,MAAOkT,EAAOlT,QAC/C54B,OAAO6X,EAAQ0lB,KAAKhiC,MAAMuwC,EAAO/vC,QACpC8b,EAAQ+a,QAAU0Y,GAElBG,GAAU7wB,EAEd,CAEA,IAAIykB,EAAMxnB,EAAQkjB,iBACdsE,IACE1kB,EAAK0kB,EAAIzG,MACTyG,EAAIzG,OAAS0S,EACR5wB,EAAO2kB,EAAIzG,MAAQyG,EAAI1tB,OAC5BkG,EAAQkjB,iBAAmB,MAEnC,CAIA,SAASgR,GAAcnxB,EAAIQ,EAAM3d,GAC/Bmd,EAAGkO,MAAM0iB,aAAc,EACvB,IAAI3zB,EAAU+C,EAAG/C,QAASwnB,EAAMzkB,EAAG/C,QAAQkjB,iBAI3C,GAHIsE,GAAOjkB,GAAQikB,EAAIzG,OAASxd,EAAOikB,EAAIzG,MAAQyG,EAAI1tB,OACnDkG,EAAQkjB,iBAAmB,QAE3B3f,EAAOvD,EAAQ8a,UAAYvX,GAAQvD,EAAQ+a,QAA/C,CACA,IAAI0H,EAAWziB,EAAQ0lB,KAAKiH,GAAc5pB,EAAIQ,IAC9C,GAAqB,MAAjBkf,EAAShb,KAAb,CACA,IAAIxjB,EAAMw+B,EAASxxB,UAAYwxB,EAASxxB,QAAU,KACvB,GAAvBhJ,EAAQhE,EAAK2B,IAAe3B,EAAI8D,KAAKnC,EAFL,CAF4B,CAKlE,CAGA,SAASguC,GAAU7wB,GACjBA,EAAG/C,QAAQ8a,SAAW/X,EAAG/C,QAAQ+a,OAAShY,EAAG0S,IAAIxgB,MACjD8N,EAAG/C,QAAQ0lB,KAAO,GAClB3iB,EAAG/C,QAAQ8vB,WAAa,CAC1B,CAEA,SAASgE,GAAiB/wB,EAAIoxB,EAAMC,EAAMnnB,GACxC,IAAqCxlB,EAAjCvD,EAAQyoC,GAAc5pB,EAAIoxB,GAAazO,EAAO3iB,EAAG/C,QAAQ0lB,KAC7D,IAAKnJ,IAAqB6X,GAAQrxB,EAAG0S,IAAIxgB,MAAQ8N,EAAG0S,IAAI3b,KACpD,MAAO,CAAC5V,MAAOA,EAAO68B,MAAOqT,GAEjC,IADA,IAAIlqB,EAAInH,EAAG/C,QAAQ8a,SACV73B,EAAI,EAAGA,EAAIiB,EAAOjB,IACvBinB,GAAKwb,EAAKziC,GAAG6W,KACjB,GAAIoQ,GAAKiqB,EAAM,CACb,GAAIlnB,EAAM,EAAG,CACX,GAAI/oB,GAASwhC,EAAK3hC,OAAS,EAAK,OAAO,KACvC0D,EAAQyiB,EAAIwb,EAAKxhC,GAAO4V,KAAQq6B,EAChCjwC,GACF,MACEuD,EAAOyiB,EAAIiqB,EAEbA,GAAQ1sC,EAAM2sC,GAAQ3sC,CACxB,CACA,KAAOq5B,GAAa/d,EAAG0S,IAAK2e,IAASA,GAAM,CACzC,GAAIlwC,IAAU+oB,EAAM,EAAI,EAAIyY,EAAK3hC,OAAS,GAAM,OAAO,KACvDqwC,GAAQnnB,EAAMyY,EAAKxhC,GAAS+oB,EAAM,EAAI,EAAI,IAAInT,KAC9C5V,GAAS+oB,CACX,CACA,MAAO,CAAC/oB,MAAOA,EAAO68B,MAAOqT,EAC/B,CAIA,SAASC,GAAWtxB,EAAIF,EAAMC,GAC5B,IAAI9C,EAAU+C,EAAG/C,QACE,GADcA,EAAQ0lB,KAChC3hC,QAAe8e,GAAQ7C,EAAQ+a,QAAUjY,GAAM9C,EAAQ8a,UAC9D9a,EAAQ0lB,KAAOF,GAAeziB,EAAIF,EAAMC,GACxC9C,EAAQ8a,SAAWjY,IAEf7C,EAAQ8a,SAAWjY,EACnB7C,EAAQ0lB,KAAOF,GAAeziB,EAAIF,EAAM7C,EAAQ8a,UAAU3yB,OAAO6X,EAAQ0lB,MACpE1lB,EAAQ8a,SAAWjY,IACxB7C,EAAQ0lB,KAAO1lB,EAAQ0lB,KAAKhiC,MAAMipC,GAAc5pB,EAAIF,KACxD7C,EAAQ8a,SAAWjY,EACf7C,EAAQ+a,OAASjY,EACjB9C,EAAQ0lB,KAAO1lB,EAAQ0lB,KAAKv9B,OAAOq9B,GAAeziB,EAAI/C,EAAQ+a,OAAQjY,IACjE9C,EAAQ+a,OAASjY,IACtB9C,EAAQ0lB,KAAO1lB,EAAQ0lB,KAAKhiC,MAAM,EAAGipC,GAAc5pB,EAAID,MAE7D9C,EAAQ+a,OAASjY,CACnB,CAIA,SAASwxB,GAAevxB,GAEtB,IADA,IAAI2iB,EAAO3iB,EAAG/C,QAAQ0lB,KAAM6O,EAAQ,EAC3BtxC,EAAI,EAAGA,EAAIyiC,EAAK3hC,OAAQd,IAAK,CACpC,IAAIw/B,EAAWiD,EAAKziC,GACfw/B,EAAS8C,QAAY9C,EAAShb,OAAQgb,EAASxxB,WAAcsjC,CACpE,CACA,OAAOA,CACT,CAEA,SAASC,GAAgBzxB,GACvBA,EAAG/C,QAAQ0kB,MAAM+P,cAAc1xB,EAAG/C,QAAQ0kB,MAAMgQ,mBAClD,CAEA,SAASA,GAAiB3xB,EAAI4xB,QACX,IAAZA,IAAqBA,GAAU,GAEpC,IAAIlf,EAAM1S,EAAG0S,IAAKnlB,EAAS,CAAC,EACxBskC,EAActkC,EAAOukC,QAAU/8B,SAASisB,yBACxC+Q,EAAcxkC,EAAOijB,UAAYzb,SAASisB,yBAE1CgR,EAAehyB,EAAG9c,QAAQ+uC,cAC1BD,IAAgBJ,GAAU,GAC9B,IAAK,IAAI1xC,EAAI,EAAGA,EAAIwyB,EAAIwf,IAAIC,OAAOnxC,OAAQd,IACzC,GAAK0xC,GAAW1xC,GAAKwyB,EAAIwf,IAAIE,UAA7B,CACA,IAAI5tB,EAAQkO,EAAIwf,IAAIC,OAAOjyC,GAC3B,KAAIskB,EAAM1E,OAAOU,MAAQR,EAAG/C,QAAQ+a,QAAUxT,EAAMzE,KAAKS,KAAOR,EAAG/C,QAAQ8a,UAA3E,CACA,IAAIwF,EAAY/Y,EAAM6tB,QACtB,GAAIL,EAAc,CAChB,IAAIh7B,EAAOg7B,EAAahyB,EAAIwE,GACxBxN,GAAQs7B,GAAoBtyB,EAAIhJ,EAAM66B,EAC5C,MAAWtU,GAAavd,EAAG9c,QAAQqvC,0BACjCD,GAAoBtyB,EAAIwE,EAAMxN,KAAM66B,GAEjCtU,GACDiV,GAAmBxyB,EAAIwE,EAAOutB,EAT8D,CAF7C,CAarD,OAAOxkC,CACT,CAGA,SAAS+kC,GAAoBtyB,EAAIhJ,EAAM2hB,GACrC,IAAIzW,EAAMqrB,GAAavtB,EAAIhJ,EAAM,MAAO,KAAM,MAAOgJ,EAAG9c,QAAQkoC,2BAE5DqH,EAAS9Z,EAAO7T,YAAYC,EAAI,MAAO,IAAU,sBAKrD,GAJA0tB,EAAOz1B,MAAM+S,KAAO7N,EAAI6N,KAAO,KAC/B0iB,EAAOz1B,MAAMmsB,IAAMjnB,EAAIinB,IAAM,KAC7BsJ,EAAOz1B,MAAMmW,OAAS5mB,KAAKC,IAAI,EAAG0V,EAAIgnB,OAAShnB,EAAIinB,KAAOnpB,EAAG9c,QAAQwvC,aAAe,KAEhF,oBAAoBroC,KAAK2V,EAAG2yB,oBAAoB19B,WAAY,CAC9D,IAAI29B,EAAUtF,GAAWttB,EAAIhJ,EAAM,MAAO,KAAM,MAC5CwvB,EAAQoM,EAAQ5iB,MAAQ4iB,EAAQ7iB,KACpC0iB,EAAOz1B,MAAMwpB,OAASA,EAAQ,EAAIA,EAAQxmB,EAAG6yB,oBAAsB,IACrE,CAEA,GAAI3wB,EAAIyrB,MAAO,CAEb,IAAImF,EAAcna,EAAO7T,YAAYC,EAAI,MAAO,IAAU,iDAC1D+tB,EAAY91B,MAAMC,QAAU,GAC5B61B,EAAY91B,MAAM+S,KAAO7N,EAAIyrB,MAAM5d,KAAO,KAC1C+iB,EAAY91B,MAAMmsB,IAAMjnB,EAAIyrB,MAAMxE,IAAM,KACxC2J,EAAY91B,MAAMmW,OAA8C,KAApCjR,EAAIyrB,MAAMzE,OAAShnB,EAAIyrB,MAAMxE,KAAa,IACxE,CACF,CAEA,SAAS4J,GAAU9yC,EAAG4lB,GAAK,OAAO5lB,EAAEkpC,IAAMtjB,EAAEsjB,KAAOlpC,EAAE8vB,KAAOlK,EAAEkK,IAAK,CAGnE,SAASyiB,GAAmBxyB,EAAIwE,EAAOmU,GACrC,IAAI1b,EAAU+C,EAAG/C,QAASyV,EAAM1S,EAAG0S,IAC/BpY,EAAWvF,SAASisB,yBACpBgS,EAAUrL,GAAS3nB,EAAG/C,SAAUg2B,EAAWD,EAAQjjB,KACnDmjB,EAAY3mC,KAAKC,IAAIyQ,EAAQk2B,WAAY/K,GAAapoB,GAAM/C,EAAQoqB,MAAMoI,YAAcuD,EAAQhjB,MAChGojB,EAA0B,OAAjB1gB,EAAI9G,UAEjB,SAASjnB,EAAIorB,EAAMoZ,EAAK3C,EAAO0C,GACzBC,EAAM,IAAKA,EAAM,GACrBA,EAAM58B,KAAKikC,MAAMrH,GACjBD,EAAS38B,KAAKikC,MAAMtH,GACpB5uB,EAASwK,YAAYC,EAAI,MAAO,KAAM,sBAAwB,6BAA+BgL,EAAO,0CAA4CoZ,EAAM,eAA0B,MAAT3C,EAAgB0M,EAAYnjB,EAAOyW,GAAS,8CAAgD0C,EAASC,GAAO,MACrR,CAEA,SAASkK,EAAY7yB,EAAM8yB,EAASC,GAClC,IAEIl3B,EAAOgG,EAFPmc,EAAU/L,GAAQC,EAAKlS,GACvBgzB,EAAUhV,EAAQpd,KAAKpgB,OAE3B,SAASmsC,EAAO1sB,EAAI+oB,GAClB,OAAO8D,GAAWttB,EAAI8T,GAAItT,EAAMC,GAAK,MAAO+d,EAASgL,EACvD,CAEA,SAASiK,EAAMvxB,EAAKgI,EAAKwpB,GACvB,IAAIC,EAASrF,GAAsBtuB,EAAIwe,EAAS,KAAMtc,GAClD4E,EAAe,OAAPoD,IAA0B,SAARwpB,GAAmB,OAAS,QAE1D,OAAOvG,EADU,SAARuG,EAAkBC,EAAOtF,MAAQsF,EAAOtxB,KAAO,KAAKhY,KAAKm0B,EAAQpd,KAAKnF,OAAO03B,EAAOtxB,IAAM,IAAM,EAAI,GAC3FyE,GAAMA,EAC1B,CAEA,IAAI4D,EAAQ0C,GAASoR,EAAS9L,EAAI9G,WAqClC,OApCAnB,GAAoBC,EAAO4oB,GAAW,EAAY,MAATC,EAAgBC,EAAUD,GAAO,SAAUzzB,EAAMC,EAAImK,EAAKhqB,GACjG,IAAIuuC,EAAa,OAAPvkB,EACN0pB,EAAUzG,EAAOrtB,EAAM2uB,EAAM,OAAS,SACtCoF,EAAQ1G,EAAOptB,EAAK,EAAG0uB,EAAM,QAAU,QAEvCqF,EAAuB,MAAXR,GAA2B,GAARxzB,EAAWi0B,EAAmB,MAATR,GAAiBxzB,GAAMyzB,EAC3EthC,EAAa,GAALhS,EAAQmX,GAAQqT,GAASxqB,GAAKwqB,EAAM1pB,OAAS,EACzD,GAAI6yC,EAAM1K,IAAMyK,EAAQzK,KAAO,EAAG,CAChC,IACI6K,GAAaZ,EAASW,EAAUD,IAAcz8B,EAC9C0Y,GAFYqjB,EAASU,EAAYC,IAAY7hC,EAE3B+gC,GAAYxE,EAAMmF,EAAUC,GAAO9jB,KACrDC,EAAQgkB,EAAYd,GAAazE,EAAMoF,EAAQD,GAAS5jB,MAC5DrrB,EAAIorB,EAAM6jB,EAAQzK,IAAKnZ,EAAQD,EAAM6jB,EAAQ1K,OAC/C,KAAO,CACL,IAAI+K,EAASC,EAAUC,EAASC,EAC5B3F,GACFwF,EAAUb,GAAUU,GAAa5hC,EAAQ+gC,EAAWW,EAAQ7jB,KAC5DmkB,EAAWd,EAASF,EAAYO,EAAM3zB,EAAMoK,EAAK,UACjDiqB,EAAUf,EAASH,EAAWQ,EAAM1zB,EAAImK,EAAK,SAC7CkqB,EAAWhB,GAAUW,GAAW18B,EAAO67B,EAAYW,EAAM7jB,QAEzDikB,EAAWb,EAAoBK,EAAM3zB,EAAMoK,EAAK,UAA5B+oB,EACpBiB,GAAYd,GAAUU,GAAa5hC,EAAQghC,EAAYU,EAAQ5jB,MAC/DmkB,GAAWf,GAAUW,GAAW18B,EAAO47B,EAAWY,EAAM9jB,KACxDqkB,EAAYhB,EAAqBK,EAAM1zB,EAAImK,EAAK,SAA3BgpB,GAEvBvuC,EAAIsvC,EAASL,EAAQzK,IAAK+K,EAAWD,EAASL,EAAQ1K,QAClD0K,EAAQ1K,OAAS2K,EAAM1K,KAAOxkC,EAAIsuC,EAAUW,EAAQ1K,OAAQ,KAAM2K,EAAM1K,KAC5ExkC,EAAIwvC,EAASN,EAAM1K,IAAKiL,EAAWD,EAASN,EAAM3K,OACpD,GAEK7sB,GAAS02B,GAAUa,EAASv3B,GAAS,KAAKA,EAAQu3B,GACnDb,GAAUc,EAAOx3B,GAAS,IAAKA,EAAQw3B,KACtCxxB,GAAO0wB,GAAUa,EAASvxB,GAAO,KAAKA,EAAMuxB,GAC7Cb,GAAUc,EAAOxxB,GAAO,IAAKA,EAAMwxB,EACzC,IACO,CAACx3B,MAAOA,EAAOgG,IAAKA,EAC7B,CAEA,IAAIgyB,EAAQ7vB,EAAM1E,OAAQw0B,EAAM9vB,EAAMzE,KACtC,GAAIs0B,EAAM7zB,MAAQ8zB,EAAI9zB,KACpB6yB,EAAYgB,EAAM7zB,KAAM6zB,EAAM5zB,GAAI6zB,EAAI7zB,QACjC,CACL,IAAI8zB,EAAW9hB,GAAQC,EAAK2hB,EAAM7zB,MAAOg0B,EAAS/hB,GAAQC,EAAK4hB,EAAI9zB,MAC/Di0B,EAAc7W,GAAW2W,IAAa3W,GAAW4W,GACjDE,EAAUrB,EAAYgB,EAAM7zB,KAAM6zB,EAAM5zB,GAAIg0B,EAAcF,EAASnzB,KAAKpgB,OAAS,EAAI,MAAMqhB,IAC3FsyB,EAAatB,EAAYiB,EAAI9zB,KAAMi0B,EAAc,EAAI,KAAMH,EAAI7zB,IAAIpE,MACnEo4B,IACEC,EAAQvL,IAAMwL,EAAWxL,IAAM,GACjCxkC,EAAI+vC,EAAQ1kB,MAAO0kB,EAAQvL,IAAK,KAAMuL,EAAQxL,QAC9CvkC,EAAIsuC,EAAU0B,EAAWxL,IAAKwL,EAAW5kB,KAAM4kB,EAAWzL,SAE1DvkC,EAAI+vC,EAAQ1kB,MAAO0kB,EAAQvL,IAAKwL,EAAW5kB,KAAO2kB,EAAQ1kB,MAAO0kB,EAAQxL,SAGzEwL,EAAQxL,OAASyL,EAAWxL,KAC5BxkC,EAAIsuC,EAAUyB,EAAQxL,OAAQ,KAAMyL,EAAWxL,IACrD,CAEAxQ,EAAO7T,YAAYxK,EACrB,CAGA,SAASs6B,GAAa50B,GACpB,GAAKA,EAAGV,MAAMu1B,QAAd,CACA,IAAI53B,EAAU+C,EAAG/C,QACjBmB,cAAcnB,EAAQ63B,SACtB,IAAIhtC,GAAK,EACTmV,EAAQ83B,UAAU/3B,MAAMg4B,WAAa,GACjCh1B,EAAG9c,QAAQ+xC,gBAAkB,EAC7Bh4B,EAAQ63B,QAAUh3B,aAAY,WACzBkC,EAAGk1B,YAAcC,GAAOn1B,GAC7B/C,EAAQ83B,UAAU/3B,MAAMg4B,YAAcltC,GAAMA,GAAM,GAAK,QACzD,GAAGkY,EAAG9c,QAAQ+xC,iBACPj1B,EAAG9c,QAAQ+xC,gBAAkB,IAClCh4B,EAAQ83B,UAAU/3B,MAAMg4B,WAAa,SAXT,CAYlC,CAEA,SAASI,GAAYp1B,GACdA,EAAGk1B,aACNl1B,EAAG/C,QAAQ0kB,MAAM0T,QACZr1B,EAAGV,MAAMu1B,SAAWS,GAAQt1B,GAErC,CAEA,SAASu1B,GAAev1B,GACtBA,EAAGV,MAAMk2B,mBAAoB,EAC7B5tB,YAAW,WAAkB5H,EAAGV,MAAMk2B,oBACpCx1B,EAAGV,MAAMk2B,mBAAoB,EACzBx1B,EAAGV,MAAMu1B,SAAWM,GAAOn1B,GAC/B,GAAG,IACP,CAEA,SAASs1B,GAAQt1B,EAAIzU,GACfyU,EAAGV,MAAMk2B,oBAAsBx1B,EAAGV,MAAMm2B,eAAgBz1B,EAAGV,MAAMk2B,mBAAoB,GAE9D,YAAvBx1B,EAAG9c,QAAQg5B,WACVlc,EAAGV,MAAMu1B,UACZpnB,GAAOzN,EAAI,QAASA,EAAIzU,GACxByU,EAAGV,MAAMu1B,SAAU,EACnBlvB,EAAS3F,EAAG/C,QAAQgqB,QAAS,sBAIxBjnB,EAAGkO,OAASlO,EAAG/C,QAAQy4B,mBAAqB11B,EAAG0S,IAAIwf,MACtDlyB,EAAG/C,QAAQ0kB,MAAMp7B,QACb2c,GAAU0E,YAAW,WAAc,OAAO5H,EAAG/C,QAAQ0kB,MAAMp7B,OAAM,EAAO,GAAG,KAEjFyZ,EAAG/C,QAAQ0kB,MAAMgU,iBAEnBf,GAAa50B,GACf,CACA,SAASm1B,GAAOn1B,EAAIzU,GACdyU,EAAGV,MAAMk2B,oBAETx1B,EAAGV,MAAMu1B,UACXpnB,GAAOzN,EAAI,OAAQA,EAAIzU,GACvByU,EAAGV,MAAMu1B,SAAU,EACnBpwB,EAAQzE,EAAG/C,QAAQgqB,QAAS,uBAE9B7oB,cAAc4B,EAAG/C,QAAQ63B,SACzBltB,YAAW,WAAmB5H,EAAGV,MAAMu1B,UAAW70B,EAAG/C,QAAQ/Y,OAAQ,EAAS,GAAG,KACnF,CAIA,SAAS0xC,GAAwB51B,GAM/B,IALA,IAAI/C,EAAU+C,EAAG/C,QACb44B,EAAa54B,EAAQ64B,QAAQrO,UAC7BsO,EAAUxpC,KAAKC,IAAI,EAAGyQ,EAAQorB,SAASxY,wBAAwBsZ,KAC/D6M,EAAY/4B,EAAQ64B,QAAQjmB,wBAAwBsZ,IACpD8M,EAAa,EACR/1C,EAAI,EAAGA,EAAI+c,EAAQ0lB,KAAK3hC,OAAQd,IAAK,CAC5C,IAAI+hB,EAAMhF,EAAQ0lB,KAAKziC,GAAI0oC,EAAW5oB,EAAG9c,QAAQ2lC,aAC7C1V,OAAS,EAAUqT,EAAQ,EAC/B,IAAIvkB,EAAIugB,OAAR,CAEA,GADAwT,GAAa/zB,EAAIzB,KAAK2S,OAClBnQ,GAAMC,EAAa,EAAG,CACxB,IAAIkoB,EAAMlpB,EAAIyC,KAAK+iB,UAAYxlB,EAAIyC,KAAK8K,aACxC2D,EAASgY,EAAM0K,EACfA,EAAa1K,CACf,KAAO,CACL,IAAIqD,EAAMvsB,EAAIyC,KAAKmL,wBACnBsD,EAASqb,EAAItF,OAASsF,EAAIrF,KAGrBP,GAAY3mB,EAAIb,KAAK9D,aACtBkpB,EAAQvkB,EAAIb,KAAK9D,WAAWuS,wBAAwBG,MAAQwe,EAAIze,KAAO,EAC7E,CACA,IAAIrrB,EAAOud,EAAIzB,KAAK2S,OAASA,EAC7B,IAAIzuB,EAAO,MAAQA,GAAQ,QACrBsxC,EAAYD,IAAWE,GAAcvxC,GACzCwuB,GAAiBjR,EAAIzB,KAAM2S,GAC3B+iB,GAAmBj0B,EAAIzB,MACnByB,EAAI9K,MAAQ,IAAK,IAAIrL,EAAI,EAAGA,EAAImW,EAAI9K,KAAKnW,OAAQ8K,IACjDoqC,GAAmBj0B,EAAI9K,KAAKrL,IAElC,GAAI06B,EAAQxmB,EAAG/C,QAAQk2B,WAAY,CACjC,IAAIgD,EAAU5pC,KAAKge,KAAKic,EAAQyE,GAAUjrB,EAAG/C,UACzCk5B,EAAUn2B,EAAG/C,QAAQ6hB,gBACvB9e,EAAG/C,QAAQ6hB,cAAgBqX,EAC3Bn2B,EAAG/C,QAAQ4hB,QAAU5c,EAAIzB,KACzBR,EAAG/C,QAAQ8hB,gBAAiB,EAEhC,CA7B2B,CA8B7B,CACIxyB,KAAK0kB,IAAIglB,GAAc,IAAKh5B,EAAQorB,SAASqE,WAAauJ,EAChE,CAIA,SAASC,GAAmB11B,GAC1B,GAAIA,EAAK0lB,QAAW,IAAK,IAAIhmC,EAAI,EAAGA,EAAIsgB,EAAK0lB,QAAQllC,SAAUd,EAAG,CAChE,IAAIk2C,EAAI51B,EAAK0lB,QAAQhmC,GAAI0e,EAASw3B,EAAE1xB,KAAKY,WACrC1G,IAAUw3B,EAAEjjB,OAASvU,EAAO4Q,aAClC,CACF,CAKA,SAAS6mB,GAAap5B,EAASyV,EAAK4jB,GAClC,IAAInN,EAAMmN,GAA4B,MAAhBA,EAASnN,IAAc58B,KAAKC,IAAI,EAAG8pC,EAASnN,KAAOlsB,EAAQorB,SAASqE,UAC1FvD,EAAM58B,KAAKie,MAAM2e,EAAM5B,GAAWtqB,IAClC,IAAIisB,EAASoN,GAA+B,MAAnBA,EAASpN,OAAiBoN,EAASpN,OAASC,EAAMlsB,EAAQgqB,QAAQuB,aAEvF1oB,EAAOwT,GAAaZ,EAAKyW,GAAMppB,EAAKuT,GAAaZ,EAAKwW,GAG1D,GAAIoN,GAAYA,EAASC,OAAQ,CAC/B,IAAIC,EAAaF,EAASC,OAAOz2B,KAAKU,KAAMi2B,EAAWH,EAASC,OAAOx2B,GAAGS,KACtEg2B,EAAa12B,GACfA,EAAO02B,EACPz2B,EAAKuT,GAAaZ,EAAK6L,GAAa9L,GAAQC,EAAK8jB,IAAev5B,EAAQgqB,QAAQuB,eACvEj8B,KAAKiE,IAAIimC,EAAU/jB,EAAIyL,aAAepe,IAC/CD,EAAOwT,GAAaZ,EAAK6L,GAAa9L,GAAQC,EAAK+jB,IAAax5B,EAAQgqB,QAAQuB,cAChFzoB,EAAK02B,EAET,CACA,MAAO,CAAC32B,KAAMA,EAAMC,GAAIxT,KAAKC,IAAIuT,EAAID,EAAO,GAC9C,CAMA,SAAS42B,GAAkB12B,EAAI2oB,GAC7B,IAAIjb,GAAe1N,EAAI,wBAAvB,CAEA,IAAI/C,EAAU+C,EAAG/C,QAASuxB,EAAMvxB,EAAQoqB,MAAMxX,wBAAyB8mB,EAAW,KAGlF,GAFIhO,EAAKQ,IAAMqF,EAAIrF,IAAM,EAAKwN,GAAW,EAChChO,EAAKO,OAASsF,EAAIrF,KAAO/oC,OAAOw2C,aAAe7hC,SAASs3B,gBAAgB7D,gBAAiBmO,GAAW,GAC7F,MAAZA,IAAqBjzB,EAAS,CAChC,IAAImzB,EAAa9xB,EAAI,MAAO,IAAU,KAAO,uDAAyD4jB,EAAKQ,IAAMlsB,EAAQ8vB,WAAaxF,GAAWvnB,EAAG/C,UAAY,0CAA4C0rB,EAAKO,OAASP,EAAKQ,IAAMjB,GAAUloB,GAAM/C,EAAQwrB,WAAa,uCAA0CE,EAAS,KAAI,cAAiBp8B,KAAKC,IAAI,EAAGm8B,EAAK3Y,MAAQ2Y,EAAK5Y,MAAS,OACzX/P,EAAG/C,QAAQuqB,UAAU1iB,YAAY+xB,GACjCA,EAAWC,eAAeH,GAC1B32B,EAAG/C,QAAQuqB,UAAUrpB,YAAY04B,EACnC,CAVyD,CAW3D,CAKA,SAASE,GAAkB/2B,EAAIkC,EAAKG,EAAK20B,GAEvC,IAAIrO,EADU,MAAVqO,IAAkBA,EAAS,GAE1Bh3B,EAAG9c,QAAQ2lC,cAAgB3mB,GAAOG,IAIrCA,EAAoB,UAAdH,EAAI8I,OAAqB8I,GAAI5R,EAAI1B,KAAM0B,EAAIzB,GAAK,EAAG,UAAYyB,EACrEA,EAAMA,EAAIzB,GAAKqT,GAAI5R,EAAI1B,KAAoB,UAAd0B,EAAI8I,OAAqB9I,EAAIzB,GAAK,EAAIyB,EAAIzB,GAAI,SAAWyB,GAExF,IAAK,IAAI+0B,EAAQ,EAAGA,EAAQ,EAAGA,IAAS,CACtC,IAAIzpC,GAAU,EACV2/B,EAASI,GAAavtB,EAAIkC,GAC1Bg1B,EAAa70B,GAAOA,GAAOH,EAAeqrB,GAAavtB,EAAIqC,GAA1B8qB,EAKjCgK,EAAYC,GAAmBp3B,EAJnC2oB,EAAO,CAAC5Y,KAAMxjB,KAAKiE,IAAI28B,EAAOpd,KAAMmnB,EAAUnnB,MACtCoZ,IAAK58B,KAAKiE,IAAI28B,EAAOhE,IAAK+N,EAAU/N,KAAO6N,EAC3ChnB,MAAOzjB,KAAKC,IAAI2gC,EAAOpd,KAAMmnB,EAAUnnB,MACvCmZ,OAAQ38B,KAAKC,IAAI2gC,EAAOjE,OAAQgO,EAAUhO,QAAU8N,IAExDK,EAAWr3B,EAAG0S,IAAIga,UAAW4K,EAAYt3B,EAAG0S,IAAI4Z,WASpD,GAR2B,MAAvB6K,EAAUzK,YACZ6K,GAAgBv3B,EAAIm3B,EAAUzK,WAC1BngC,KAAK0kB,IAAIjR,EAAG0S,IAAIga,UAAY2K,GAAY,IAAK7pC,GAAU,IAEjC,MAAxB2pC,EAAU7K,aACZkL,GAAcx3B,EAAIm3B,EAAU7K,YACxB//B,KAAK0kB,IAAIjR,EAAG0S,IAAI4Z,WAAagL,GAAa,IAAK9pC,GAAU,KAE1DA,EAAW,KAClB,CACA,OAAOm7B,CACT,CAGA,SAASmO,GAAe92B,EAAI2oB,GAC1B,IAAIwO,EAAYC,GAAmBp3B,EAAI2oB,GACZ,MAAvBwO,EAAUzK,WAAqB6K,GAAgBv3B,EAAIm3B,EAAUzK,WACrC,MAAxByK,EAAU7K,YAAsBkL,GAAcx3B,EAAIm3B,EAAU7K,WAClE,CAMA,SAAS8K,GAAmBp3B,EAAI2oB,GAC9B,IAAI1rB,EAAU+C,EAAG/C,QAASw6B,EAAanI,GAAWtvB,EAAG/C,SACjD0rB,EAAKQ,IAAM,IAAKR,EAAKQ,IAAM,GAC/B,IAAIuO,EAAY13B,EAAGkO,OAA+B,MAAtBlO,EAAGkO,MAAMwe,UAAoB1sB,EAAGkO,MAAMwe,UAAYzvB,EAAQorB,SAASqE,UAC3FrB,EAAS9C,GAAcvoB,GAAKzS,EAAS,CAAC,EACtCo7B,EAAKO,OAASP,EAAKQ,IAAMkC,IAAU1C,EAAKO,OAASP,EAAKQ,IAAMkC,GAChE,IAAIsM,EAAY33B,EAAG0S,IAAIS,OAASuU,GAAYzqB,GACxC26B,EAAQjP,EAAKQ,IAAMsO,EAAYI,EAAWlP,EAAKO,OAASyO,EAAYF,EACxE,GAAI9O,EAAKQ,IAAMuO,EACbnqC,EAAOm/B,UAAYkL,EAAQ,EAAIjP,EAAKQ,SAC/B,GAAIR,EAAKO,OAASwO,EAAYrM,EAAQ,CAC3C,IAAIyM,EAASvrC,KAAKiE,IAAIm4B,EAAKQ,KAAM0O,EAAWF,EAAYhP,EAAKO,QAAUmC,GACnEyM,GAAUJ,IAAanqC,EAAOm/B,UAAYoL,EAChD,CAEA,IAAIC,EAAc/3B,EAAG9c,QAAQ6hC,YAAc,EAAI9nB,EAAQ+pB,QAAQvX,YAC3DuoB,EAAah4B,EAAGkO,OAAgC,MAAvBlO,EAAGkO,MAAMoe,WAAqBtsB,EAAGkO,MAAMoe,WAAarvB,EAAQorB,SAASiE,WAAayL,EAC3GE,EAAU7P,GAAapoB,GAAM/C,EAAQ+pB,QAAQvX,YAC7CyoB,EAAUvP,EAAK3Y,MAAQ2Y,EAAK5Y,KAAOkoB,EAQvC,OAPIC,IAAWvP,EAAK3Y,MAAQ2Y,EAAK5Y,KAAOkoB,GACpCtP,EAAK5Y,KAAO,GACZxiB,EAAO++B,WAAa,EACf3D,EAAK5Y,KAAOioB,EACjBzqC,EAAO++B,WAAa//B,KAAKC,IAAI,EAAGm8B,EAAK5Y,KAAOgoB,GAAeG,EAAU,EAAI,KACpEvP,EAAK3Y,MAAQioB,EAAUD,EAAa,IACzCzqC,EAAO++B,WAAa3D,EAAK3Y,OAASkoB,EAAU,EAAI,IAAMD,GACnD1qC,CACT,CAIA,SAAS4qC,GAAen4B,EAAImpB,GACf,MAAPA,IACJiP,GAAmBp4B,GACnBA,EAAGkO,MAAMwe,WAAmC,MAAtB1sB,EAAGkO,MAAMwe,UAAoB1sB,EAAG0S,IAAIga,UAAY1sB,EAAGkO,MAAMwe,WAAavD,EAC9F,CAIA,SAASkP,GAAoBr4B,GAC3Bo4B,GAAmBp4B,GACnB,IAAIiC,EAAMjC,EAAGuC,YACbvC,EAAGkO,MAAMoqB,YAAc,CAACx4B,KAAMmC,EAAKlC,GAAIkC,EAAK+0B,OAAQh3B,EAAG9c,QAAQq1C,mBACjE,CAEA,SAASC,GAAex4B,EAAIkU,EAAG+Z,GACpB,MAAL/Z,GAAkB,MAAL+Z,GAAamK,GAAmBp4B,GACxC,MAALkU,IAAalU,EAAGkO,MAAMoe,WAAapY,GAC9B,MAAL+Z,IAAajuB,EAAGkO,MAAMwe,UAAYuB,EACxC,CAEA,SAASwK,GAAcz4B,EAAIwE,GACzB4zB,GAAmBp4B,GACnBA,EAAGkO,MAAMoqB,YAAc9zB,CACzB,CAMA,SAAS4zB,GAAmBp4B,GAC1B,IAAIwE,EAAQxE,EAAGkO,MAAMoqB,YACjB9zB,IACFxE,EAAGkO,MAAMoqB,YAAc,KAEvBI,GAAoB14B,EADT4tB,GAAe5tB,EAAIwE,EAAM1E,MAAY8tB,GAAe5tB,EAAIwE,EAAMzE,IACvCyE,EAAMwyB,QAE5C,CAEA,SAAS0B,GAAoB14B,EAAIF,EAAMC,EAAIi3B,GACzC,IAAI2B,EAAOvB,GAAmBp3B,EAAI,CAChC+P,KAAMxjB,KAAKiE,IAAIsP,EAAKiQ,KAAMhQ,EAAGgQ,MAC7BoZ,IAAK58B,KAAKiE,IAAIsP,EAAKqpB,IAAKppB,EAAGopB,KAAO6N,EAClChnB,MAAOzjB,KAAKC,IAAIsT,EAAKkQ,MAAOjQ,EAAGiQ,OAC/BkZ,OAAQ38B,KAAKC,IAAIsT,EAAKopB,OAAQnpB,EAAGmpB,QAAU8N,IAE7CwB,GAAex4B,EAAI24B,EAAKrM,WAAYqM,EAAKjM,UAC3C,CAIA,SAAS6K,GAAgBv3B,EAAI1Z,GACvBiG,KAAK0kB,IAAIjR,EAAG0S,IAAIga,UAAYpmC,GAAO,IAClCsc,GAASg2B,GAAoB54B,EAAI,CAACmpB,IAAK7iC,IAC5CuyC,GAAa74B,EAAI1Z,GAAK,GAClBsc,GAASg2B,GAAoB54B,GACjC84B,GAAY94B,EAAI,KAClB,CAEA,SAAS64B,GAAa74B,EAAI1Z,EAAKyyC,GAC7BzyC,EAAMiG,KAAKC,IAAI,EAAGD,KAAKiE,IAAIwP,EAAG/C,QAAQorB,SAAS2Q,aAAeh5B,EAAG/C,QAAQorB,SAASG,aAAcliC,KAC5F0Z,EAAG/C,QAAQorB,SAASqE,WAAapmC,GAAQyyC,KAC7C/4B,EAAG0S,IAAIga,UAAYpmC,EACnB0Z,EAAG/C,QAAQg8B,WAAWJ,aAAavyC,GAC/B0Z,EAAG/C,QAAQorB,SAASqE,WAAapmC,IAAO0Z,EAAG/C,QAAQorB,SAASqE,UAAYpmC,GAC9E,CAIA,SAASkxC,GAAcx3B,EAAI1Z,EAAK4yC,EAAYH,GAC1CzyC,EAAMiG,KAAKC,IAAI,EAAGD,KAAKiE,IAAIlK,EAAK0Z,EAAG/C,QAAQorB,SAAS8Q,YAAcn5B,EAAG/C,QAAQorB,SAASnB,eACjFgS,EAAa5yC,GAAO0Z,EAAG0S,IAAI4Z,WAAa//B,KAAK0kB,IAAIjR,EAAG0S,IAAI4Z,WAAahmC,GAAO,KAAOyyC,IACxF/4B,EAAG0S,IAAI4Z,WAAahmC,EACpB8yC,GAAkBp5B,GACdA,EAAG/C,QAAQorB,SAASiE,YAAchmC,IAAO0Z,EAAG/C,QAAQorB,SAASiE,WAAahmC,GAC9E0Z,EAAG/C,QAAQg8B,WAAWzB,cAAclxC,GACtC,CAMA,SAAS+yC,GAAqBr5B,GAC5B,IAAI4e,EAAI5e,EAAG/C,QAASq8B,EAAU1a,EAAEoI,QAAQvX,YACpC8pB,EAAOhtC,KAAKikC,MAAMxwB,EAAG0S,IAAIS,OAASuU,GAAY1nB,EAAG/C,UACrD,MAAO,CACLurB,aAAc5J,EAAEyJ,SAASG,aACzBgR,WAAY5a,EAAEqI,QAAQuB,aACtB2Q,YAAava,EAAEyJ,SAAS8Q,YAAajS,YAAatI,EAAEyJ,SAASnB,YAC7DuS,UAAW7a,EAAEqI,QAAQC,YACrBwS,QAAS15B,EAAG9c,QAAQ6hC,YAAcuU,EAAU,EAC5CK,UAAWJ,EACXP,aAAcO,EAAOrR,GAAUloB,GAAM4e,EAAE6J,UACvCN,eAAgBvJ,EAAEuJ,eAClBzC,YAAa4T,EAEjB,CAEA,IAAIM,GAAmB,SAAS9O,EAAO3iB,EAAQnI,GAC7C3f,KAAK2f,GAAKA,EACV,IAAI65B,EAAOx5C,KAAKw5C,KAAO90B,EAAI,MAAO,CAACA,EAAI,MAAO,KAAM,KAAM,mBAAoB,yBAC1E+0B,EAAQz5C,KAAKy5C,MAAQ/0B,EAAI,MAAO,CAACA,EAAI,MAAO,KAAM,KAAM,kCAAmC,yBAC/F80B,EAAK38B,SAAW48B,EAAM58B,UAAY,EAClC4tB,EAAM+O,GAAO/O,EAAMgP,GAEnBhyC,GAAG+xC,EAAM,UAAU,WACbA,EAAKrR,cAAgBrgB,EAAO0xB,EAAKnN,UAAW,WAClD,IACA5kC,GAAGgyC,EAAO,UAAU,WACdA,EAAM5S,aAAe/e,EAAO2xB,EAAMxN,WAAY,aACpD,IAEAjsC,KAAK05C,kBAAmB,EAEpB/2B,GAAMC,EAAa,IAAK5iB,KAAKy5C,MAAM98B,MAAMg9B,UAAY35C,KAAKw5C,KAAK78B,MAAMi9B,SAAW,OACtF,EAEAL,GAAiBl5C,UAAUw5C,OAAS,SAAU3qB,GAC5C,IAAI4qB,EAAS5qB,EAAQ4pB,YAAc5pB,EAAQ2X,YAAc,EACrDkT,EAAS7qB,EAAQypB,aAAezpB,EAAQiZ,aAAe,EACvD6R,EAAS9qB,EAAQ4Y,eAErB,GAAIiS,EAAQ,CACV/5C,KAAKw5C,KAAK78B,MAAMC,QAAU,QAC1B5c,KAAKw5C,KAAK78B,MAAMksB,OAASiR,EAASE,EAAS,KAAO,IAClD,IAAIC,EAAc/qB,EAAQiqB,YAAcW,EAASE,EAAS,GAE1Dh6C,KAAKw5C,KAAKv8B,WAAWN,MAAMmW,OACzB5mB,KAAKC,IAAI,EAAG+iB,EAAQypB,aAAezpB,EAAQiZ,aAAe8R,GAAe,IAC7E,MACEj6C,KAAKw5C,KAAKnN,UAAY,EACtBrsC,KAAKw5C,KAAK78B,MAAMC,QAAU,GAC1B5c,KAAKw5C,KAAKv8B,WAAWN,MAAMmW,OAAS,IAGtC,GAAIgnB,EAAQ,CACV95C,KAAKy5C,MAAM98B,MAAMC,QAAU,QAC3B5c,KAAKy5C,MAAM98B,MAAMgT,MAAQoqB,EAASC,EAAS,KAAO,IAClDh6C,KAAKy5C,MAAM98B,MAAM+S,KAAOR,EAAQmqB,QAAU,KAC1C,IAAIa,EAAahrB,EAAQkqB,UAAYlqB,EAAQmqB,SAAWU,EAASC,EAAS,GAC1Eh6C,KAAKy5C,MAAMx8B,WAAWN,MAAMwpB,MAC1Bj6B,KAAKC,IAAI,EAAG+iB,EAAQ4pB,YAAc5pB,EAAQ2X,YAAcqT,GAAc,IAC1E,MACEl6C,KAAKy5C,MAAM98B,MAAMC,QAAU,GAC3B5c,KAAKy5C,MAAMx8B,WAAWN,MAAMwpB,MAAQ,IAQtC,OALKnmC,KAAK05C,kBAAoBxqB,EAAQiZ,aAAe,IACrC,GAAV6R,GAAeh6C,KAAKm6C,gBACxBn6C,KAAK05C,kBAAmB,GAGnB,CAAC/pB,MAAOoqB,EAASC,EAAS,EAAGnR,OAAQiR,EAASE,EAAS,EAChE,EAEAT,GAAiBl5C,UAAU82C,cAAgB,SAAUt1B,GAC/C7hB,KAAKy5C,MAAMxN,YAAcpqB,IAAO7hB,KAAKy5C,MAAMxN,WAAapqB,GACxD7hB,KAAKo6C,cAAgBp6C,KAAKq6C,mBAAmBr6C,KAAKy5C,MAAOz5C,KAAKo6C,aAAc,QAClF,EAEAb,GAAiBl5C,UAAUm4C,aAAe,SAAU32B,GAC9C7hB,KAAKw5C,KAAKnN,WAAaxqB,IAAO7hB,KAAKw5C,KAAKnN,UAAYxqB,GACpD7hB,KAAKs6C,aAAet6C,KAAKq6C,mBAAmBr6C,KAAKw5C,KAAMx5C,KAAKs6C,YAAa,OAC/E,EAEAf,GAAiBl5C,UAAU85C,cAAgB,WACzC,IAAIpE,EAAIryB,IAAQN,EAAqB,OAAS,OAC9CpjB,KAAKy5C,MAAM98B,MAAMmW,OAAS9yB,KAAKw5C,KAAK78B,MAAMwpB,MAAQ4P,EAClD/1C,KAAKy5C,MAAM98B,MAAMg4B,WAAa30C,KAAKw5C,KAAK78B,MAAMg4B,WAAa,SAC3D30C,KAAKo6C,aAAe,IAAIjzB,EACxBnnB,KAAKs6C,YAAc,IAAInzB,CACzB,EAEAoyB,GAAiBl5C,UAAUg6C,mBAAqB,SAAUE,EAAKC,EAAOh4C,GAEpE,SAASi4C,IAOP,IAAItM,EAAMoM,EAAI/qB,yBACI,QAARhtB,EAAiBkS,SAASgmC,iBAAiBvM,EAAIxe,MAAQ,GAAIwe,EAAIrF,IAAMqF,EAAItF,QAAU,GACvFn0B,SAASgmC,kBAAkBvM,EAAIxe,MAAQwe,EAAIze,MAAQ,EAAGye,EAAItF,OAAS,KAC9D0R,EAAOA,EAAI59B,MAAMg4B,WAAa,SAClC6F,EAAM/0C,IAAI,IAAMg1C,EACzB,CAbAF,EAAI59B,MAAMg4B,WAAa,GAcvB6F,EAAM/0C,IAAI,IAAMg1C,EAClB,EAEAlB,GAAiBl5C,UAAUqI,MAAQ,WACjC,IAAI6V,EAASve,KAAKy5C,MAAMx0B,WACxB1G,EAAOT,YAAY9d,KAAKy5C,OACxBl7B,EAAOT,YAAY9d,KAAKw5C,KAC1B,EAEA,IAAImB,GAAiB,WAAa,EAOlC,SAASC,GAAiBj7B,EAAIuP,GACvBA,IAAWA,EAAU8pB,GAAqBr5B,IAC/C,IAAIk7B,EAAal7B,EAAG/C,QAAQqrB,SAAU6S,EAAcn7B,EAAG/C,QAAQwrB,UAC/D2S,GAAsBp7B,EAAIuP,GAC1B,IAAK,IAAIrvB,EAAI,EAAGA,EAAI,GAAKg7C,GAAcl7B,EAAG/C,QAAQqrB,UAAY6S,GAAen7B,EAAG/C,QAAQwrB,UAAWvoC,IAC7Fg7C,GAAcl7B,EAAG/C,QAAQqrB,UAAYtoB,EAAG9c,QAAQ2lC,cAChD+M,GAAwB51B,GAC5Bo7B,GAAsBp7B,EAAIq5B,GAAqBr5B,IAC/Ck7B,EAAal7B,EAAG/C,QAAQqrB,SAAU6S,EAAcn7B,EAAG/C,QAAQwrB,SAE/D,CAIA,SAAS2S,GAAsBp7B,EAAIuP,GACjC,IAAIqP,EAAI5e,EAAG/C,QACPo+B,EAAQzc,EAAEqa,WAAWiB,OAAO3qB,GAEhCqP,EAAEyI,MAAMrqB,MAAMgrB,cAAgBpJ,EAAE0J,SAAW+S,EAAMrrB,OAAS,KAC1D4O,EAAEyI,MAAMrqB,MAAMs+B,eAAiB1c,EAAE6J,UAAY4S,EAAMnS,QAAU,KAC7DtK,EAAE2c,aAAav+B,MAAMw+B,aAAeH,EAAMnS,OAAS,uBAE/CmS,EAAMrrB,OAASqrB,EAAMnS,QACvBtK,EAAE6c,gBAAgBz+B,MAAMC,QAAU,QAClC2hB,EAAE6c,gBAAgBz+B,MAAMmW,OAASkoB,EAAMnS,OAAS,KAChDtK,EAAE6c,gBAAgBz+B,MAAMwpB,MAAQ6U,EAAMrrB,MAAQ,MACvC4O,EAAE6c,gBAAgBz+B,MAAMC,QAAU,GACvCo+B,EAAMnS,QAAUlpB,EAAG9c,QAAQw4C,4BAA8B17B,EAAG9c,QAAQ6hC,aACtEnG,EAAE+c,aAAa3+B,MAAMC,QAAU,QAC/B2hB,EAAE+c,aAAa3+B,MAAMmW,OAASkoB,EAAMnS,OAAS,KAC7CtK,EAAE+c,aAAa3+B,MAAMwpB,MAAQjX,EAAQmW,YAAc,MAC5C9G,EAAE+c,aAAa3+B,MAAMC,QAAU,EAC1C,CArCA+9B,GAAet6C,UAAUw5C,OAAS,WAAc,MAAO,CAAChR,OAAQ,EAAGlZ,MAAO,EAAG,EAC7EgrB,GAAet6C,UAAU82C,cAAgB,WAAa,EACtDwD,GAAet6C,UAAUm4C,aAAe,WAAa,EACrDmC,GAAet6C,UAAUqI,MAAQ,WAAa,EAoC9C,IAAI6yC,GAAiB,CAAC,OAAUhC,GAAkB,KAAQoB,IAE1D,SAASa,GAAe77B,GAClBA,EAAG/C,QAAQg8B,aACbj5B,EAAG/C,QAAQg8B,WAAWlwC,QAClBiX,EAAG/C,QAAQg8B,WAAWtzB,UACtBlB,EAAQzE,EAAG/C,QAAQgqB,QAASjnB,EAAG/C,QAAQg8B,WAAWtzB,WAGxD3F,EAAG/C,QAAQg8B,WAAa,IAAI2C,GAAe57B,EAAG9c,QAAQ44C,iBAAgB,SAAUp3B,GAC9E1E,EAAG/C,QAAQgqB,QAAQ5pB,aAAaqH,EAAM1E,EAAG/C,QAAQw+B,iBAEjD3zC,GAAG4c,EAAM,aAAa,WAChB1E,EAAGV,MAAMu1B,SAAWjtB,YAAW,WAAc,OAAO5H,EAAG/C,QAAQ0kB,MAAM0T,OAAS,GAAG,EACvF,IACA3wB,EAAKU,aAAa,iBAAkB,OACtC,IAAG,SAAUlD,EAAK65B,GACJ,cAARA,EAAwBvE,GAAcx3B,EAAIkC,GACvCq1B,GAAgBv3B,EAAIkC,EAC7B,GAAGlC,GACCA,EAAG/C,QAAQg8B,WAAWtzB,UACtBA,EAAS3F,EAAG/C,QAAQgqB,QAASjnB,EAAG/C,QAAQg8B,WAAWtzB,SACzD,CAQA,IAAIq2B,GAAW,EAEf,SAASC,GAAej8B,GACtBA,EAAGkO,MAAQ,CACTlO,GAAIA,EACJ4wB,aAAa,EACbuK,YAAan7B,EAAG0S,IAAIS,OACpB2W,aAAa,EACboS,YAAa,EACbC,QAAQ,EACRC,WAAY,KACZjuB,uBAAwB,KACxBiV,qBAAsB,EACtBiZ,kBAAkB,EAClBC,eAAe,EACfhQ,WAAY,KAAMI,UAAW,KAC7B4L,YAAa,KACbjD,OAAO,EACP1qC,KAAMqxC,GACNO,WAAY,MAEd1Z,GAAc7iB,EAAGkO,MACnB,CAGA,SAASsuB,GAAax8B,GACpB,IAAIka,EAAKla,EAAGkO,MACRgM,GAAMmJ,GAAgBnJ,GAAI,SAAUgJ,GACtC,IAAK,IAAIhjC,EAAI,EAAGA,EAAIgjC,EAAMJ,IAAI9hC,OAAQd,IAClCgjC,EAAMJ,IAAI5iC,GAAG8f,GAAGkO,MAAQ,KAC5BuuB,GAAcvZ,EAChB,GACF,CAIA,SAASuZ,GAAcvZ,GAErB,IADA,IAAIJ,EAAMI,EAAMJ,IACP5iC,EAAI,EAAGA,EAAI4iC,EAAI9hC,OAAQd,IAC5Bw8C,GAAgB5Z,EAAI5iC,IACxB,IAAK,IAAI8rB,EAAM,EAAGA,EAAM8W,EAAI9hC,OAAQgrB,IAChC2wB,GAAgB7Z,EAAI9W,IACxB,IAAK,IAAIC,EAAM,EAAGA,EAAM6W,EAAI9hC,OAAQirB,IAChC2wB,GAAgB9Z,EAAI7W,IACxB,IAAK,IAAIE,EAAM,EAAGA,EAAM2W,EAAI9hC,OAAQmrB,IAChC0wB,GAAgB/Z,EAAI3W,IACxB,IAAK,IAAIG,EAAM,EAAGA,EAAMwW,EAAI9hC,OAAQsrB,IAChCwwB,GAAoBha,EAAIxW,GAC9B,CAEA,SAASowB,GAAgBxiB,GACvB,IAAIla,EAAKka,EAAGla,GAAI/C,EAAU+C,EAAG/C,QAC7B8/B,GAAoB/8B,GAChBka,EAAGoiB,eAAiB3d,GAAY3e,GAEpCka,EAAG8iB,WAAa9iB,EAAG0W,aAAe1W,EAAG4P,aAA+B,MAAhB5P,EAAGwS,WACrDxS,EAAGoe,cAAgBpe,EAAGoe,YAAYx4B,KAAKU,KAAOvD,EAAQ8a,UACnCmC,EAAGoe,YAAYv4B,GAAGS,MAAQvD,EAAQ+a,SACrD/a,EAAQ8hB,gBAAkB/e,EAAG9c,QAAQ2lC,aACvC3O,EAAGggB,OAAShgB,EAAG8iB,YACb,IAAIC,GAAcj9B,EAAIka,EAAG8iB,YAAc,CAAC7T,IAAKjP,EAAGwS,UAAW6J,OAAQrc,EAAGoe,aAAcpe,EAAG4P,YAC3F,CAEA,SAAS6S,GAAgBziB,GACvBA,EAAGgjB,eAAiBhjB,EAAG8iB,YAAcG,GAAsBjjB,EAAGla,GAAIka,EAAGggB,OACvE,CAEA,SAAS0C,GAAgB1iB,GACvB,IAAIla,EAAKka,EAAGla,GAAI/C,EAAU+C,EAAG/C,QACzBid,EAAGgjB,gBAAkBtH,GAAwB51B,GAEjDka,EAAGkjB,WAAa/D,GAAqBr5B,GAKjC/C,EAAQ8hB,iBAAmB/e,EAAG9c,QAAQ2lC,eACxC3O,EAAGmjB,cAAgB9T,GAAYvpB,EAAI/C,EAAQ4hB,QAAS5hB,EAAQ4hB,QAAQzd,KAAKpgB,QAAQ+uB,KAAO,EACxF/P,EAAG/C,QAAQk2B,WAAajZ,EAAGmjB,cAC3BnjB,EAAGkjB,WAAWjE,YACZ5sC,KAAKC,IAAIyQ,EAAQorB,SAASnB,YAAajqB,EAAQoqB,MAAMoI,WAAavV,EAAGmjB,cAAgBnV,GAAUloB,GAAMA,EAAG/C,QAAQqrB,UAClHpO,EAAGojB,cAAgB/wC,KAAKC,IAAI,EAAGyQ,EAAQoqB,MAAMoI,WAAavV,EAAGmjB,cAAgBjV,GAAapoB,MAGxFka,EAAGgjB,gBAAkBhjB,EAAGmiB,oBACxBniB,EAAGqjB,kBAAoBtgC,EAAQ0kB,MAAMgQ,mBAC3C,CAEA,SAASkL,GAAgB3iB,GACvB,IAAIla,EAAKka,EAAGla,GAEY,MAApBka,EAAGmjB,gBACLr9B,EAAG/C,QAAQoqB,MAAMrqB,MAAMi9B,SAAW/f,EAAGmjB,cAAgB,KACjDnjB,EAAGojB,cAAgBt9B,EAAG0S,IAAI4Z,YAC1BkL,GAAcx3B,EAAIzT,KAAKiE,IAAIwP,EAAG/C,QAAQorB,SAASiE,WAAYpS,EAAGojB,gBAAgB,GAClFt9B,EAAG/C,QAAQ8hB,gBAAiB,GAG9B,IAAIye,EAAYtjB,EAAGmb,OAASnb,EAAGmb,OAAS7vB,IACpC0U,EAAGqjB,mBACHv9B,EAAG/C,QAAQ0kB,MAAM+P,cAAcxX,EAAGqjB,kBAAmBC,IACrDtjB,EAAGgjB,gBAAkBhjB,EAAGihB,aAAen7B,EAAG0S,IAAIS,SAC9C8nB,GAAiBj7B,EAAIka,EAAGkjB,YACxBljB,EAAGgjB,gBACHO,GAAkBz9B,EAAIka,EAAGkjB,YAEzBljB,EAAGmiB,kBAAoBzH,GAAa50B,GAEpCA,EAAGV,MAAMu1B,SAAW3a,EAAGgiB,aACvBl8B,EAAG/C,QAAQ0kB,MAAMp7B,MAAM2zB,EAAGiiB,QAC1BqB,GAAapI,GAAYlb,EAAGla,GAClC,CAEA,SAAS88B,GAAoB5iB,GAC3B,IAAIla,EAAKka,EAAGla,GAAI/C,EAAU+C,EAAG/C,QAASyV,EAAM1S,EAAG0S,IAE3CwH,EAAGgjB,gBAAkBQ,GAAkB19B,EAAIka,EAAGggB,QAGvB,MAAvBj9B,EAAQ0gC,aAAwC,MAAhBzjB,EAAGwS,WAAsC,MAAjBxS,EAAGoS,aAAsBpS,EAAGoe,cACpFr7B,EAAQ0gC,YAAc1gC,EAAQ2gC,YAAc,MAG5B,MAAhB1jB,EAAGwS,WAAqBmM,GAAa74B,EAAIka,EAAGwS,UAAWxS,EAAG6e,aAEzC,MAAjB7e,EAAGoS,YAAsBkL,GAAcx3B,EAAIka,EAAGoS,YAAY,GAAM,GAEhEpS,EAAGoe,aAGL5B,GAAkB12B,EAFP+2B,GAAkB/2B,EAAIsU,GAAQ5B,EAAKwH,EAAGoe,YAAYx4B,MAChCwU,GAAQ5B,EAAKwH,EAAGoe,YAAYv4B,IAAKma,EAAGoe,YAAYtB,SAM/E,IAAIxU,EAAStI,EAAG2jB,mBAAoBC,EAAW5jB,EAAG6jB,qBAClD,GAAIvb,EAAU,IAAK,IAAItiC,EAAI,EAAGA,EAAIsiC,EAAOxhC,SAAUd,EAC1CsiC,EAAOtiC,GAAGuhB,MAAMzgB,QAAUysB,GAAO+U,EAAOtiC,GAAI,QACrD,GAAI49C,EAAY,IAAK,IAAI9xB,EAAM,EAAGA,EAAM8xB,EAAS98C,SAAUgrB,EACnD8xB,EAAS9xB,GAAKvK,MAAMzgB,QAAUysB,GAAOqwB,EAAS9xB,GAAM,UAExD/O,EAAQgqB,QAAQzX,eAChBkD,EAAIga,UAAY1sB,EAAG/C,QAAQorB,SAASqE,WAGpCxS,EAAGkiB,YACH3uB,GAAOzN,EAAI,UAAWA,EAAIka,EAAGkiB,YAC7BliB,EAAGggB,QACHhgB,EAAGggB,OAAO8D,QAChB,CAGA,SAASC,GAAQj+B,EAAI0G,GACnB,GAAI1G,EAAGkO,MAAS,OAAOxH,IACvBu1B,GAAej8B,GACf,IAAM,OAAO0G,GACe,CAA5B,QAAU81B,GAAax8B,EAAK,CAC9B,CAEA,SAASM,GAAUN,EAAI0G,GACrB,OAAO,WACL,GAAI1G,EAAGkO,MAAS,OAAOxH,EAAE9lB,MAAMof,EAAIxe,WACnCy6C,GAAej8B,GACf,IAAM,OAAO0G,EAAE9lB,MAAMof,EAAIxe,UACG,CAA5B,QAAUg7C,GAAax8B,EAAK,CAC9B,CACF,CAGA,SAASk+B,GAASx3B,GAChB,OAAO,WACL,GAAIrmB,KAAK6tB,MAAS,OAAOxH,EAAE9lB,MAAMP,KAAMmB,WACvCy6C,GAAe57C,MACf,IAAM,OAAOqmB,EAAE9lB,MAAMP,KAAMmB,UACG,CAA9B,QAAUg7C,GAAan8C,KAAO,CAChC,CACF,CACA,SAAS89C,GAAYz3B,GACnB,OAAO,WACL,IAAI1G,EAAK3f,KAAK2f,GACd,IAAKA,GAAMA,EAAGkO,MAAS,OAAOxH,EAAE9lB,MAAMP,KAAMmB,WAC5Cy6C,GAAej8B,GACf,IAAM,OAAO0G,EAAE9lB,MAAMP,KAAMmB,UACC,CAA5B,QAAUg7C,GAAax8B,EAAK,CAC9B,CACF,CAIA,SAAS84B,GAAY94B,EAAIyH,GACnBzH,EAAG0S,IAAI8E,kBAAoBxX,EAAG/C,QAAQ+a,QACtChY,EAAGV,MAAM8+B,UAAUt4C,IAAI2hB,EAAMrb,EAAKiyC,GAAiBr+B,GACzD,CAEA,SAASq+B,GAAgBr+B,GACvB,IAAI0S,EAAM1S,EAAG0S,IACb,KAAIA,EAAI8E,mBAAqBxX,EAAG/C,QAAQ+a,QAAxC,CACA,IAAI3V,GAAO,IAAIsF,KAAO3H,EAAG9c,QAAQo7C,SAC7Bl0C,EAAU+sB,GAAiBnX,EAAI0S,EAAI8E,mBACnC+mB,EAAe,GAEnB7rB,EAAIM,KAAK5oB,EAAQoW,KAAMjU,KAAKiE,IAAIkiB,EAAIxgB,MAAQwgB,EAAI3b,KAAMiJ,EAAG/C,QAAQ+a,OAAS,MAAM,SAAUxX,GACxF,GAAIpW,EAAQoW,MAAQR,EAAG/C,QAAQ8a,SAAU,CACvC,IAAIymB,EAAYh+B,EAAKqW,OACjBO,EAAa5W,EAAKY,KAAKpgB,OAASgf,EAAG9c,QAAQm0B,mBAAqBhW,GAAUqR,EAAIrS,KAAMjW,EAAQkV,OAAS,KACrGm/B,EAAcxoB,GAAcjW,EAAIQ,EAAMpW,GAAS,GAC/CgtB,IAAchtB,EAAQkV,MAAQ8X,GAClC5W,EAAKqW,OAAS4nB,EAAY5nB,OAC1B,IAAI6nB,EAASl+B,EAAK+W,aAAconB,EAASF,EAAY3nB,QACjD6nB,EAAUn+B,EAAK+W,aAAeonB,EACzBD,IAAUl+B,EAAK+W,aAAe,MAGvC,IAFA,IAAIqnB,GAAYJ,GAAaA,EAAUx9C,QAAUwf,EAAKqW,OAAO71B,QAC3D09C,GAAUC,KAAYD,IAAWC,GAAUD,EAAO3nB,SAAW4nB,EAAO5nB,SAAW2nB,EAAO1nB,WAAa2nB,EAAO3nB,WACnG92B,EAAI,GAAI0+C,GAAY1+C,EAAIs+C,EAAUx9C,SAAUd,EAAK0+C,EAAWJ,EAAUt+C,IAAMsgB,EAAKqW,OAAO32B,GAC7F0+C,GAAYL,EAAav5C,KAAKoF,EAAQoW,MAC1CA,EAAK8W,WAAaltB,EAAQ+E,OAC1B/E,EAAQ6tB,UACV,MACMzX,EAAKY,KAAKpgB,QAAUgf,EAAG9c,QAAQm0B,oBAC/BS,GAAY9X,EAAIQ,EAAKY,KAAMhX,GAC/BoW,EAAK8W,WAAaltB,EAAQoW,KAAO,GAAK,EAAIpW,EAAQ+E,OAAS,KAC3D/E,EAAQ6tB,WAEV,IAAK,IAAItQ,KAAOtF,EAEd,OADAy2B,GAAY94B,EAAIA,EAAG9c,QAAQ27C,YACpB,CAEX,IACAnsB,EAAI8E,kBAAoBptB,EAAQoW,KAChCkS,EAAI+E,aAAelrB,KAAKC,IAAIkmB,EAAI+E,aAAcrtB,EAAQoW,MAClD+9B,EAAav9C,QAAUi9C,GAAQj+B,GAAI,WACrC,IAAK,IAAI9f,EAAI,EAAGA,EAAIq+C,EAAav9C,OAAQd,IACrCixC,GAAcnxB,EAAIu+B,EAAar+C,GAAI,OACzC,GArCyD,CAsC3D,CAIA,IAAI+8C,GAAgB,SAASj9B,EAAIs2B,EAAUwI,GACzC,IAAI7hC,EAAU+C,EAAG/C,QAEjB5c,KAAKi2C,SAAWA,EAEhBj2C,KAAK0+C,QAAU1I,GAAap5B,EAAS+C,EAAG0S,IAAK4jB,GAC7Cj2C,KAAK2+C,gBAAkB/hC,EAAQgqB,QAAQxX,YACvCpvB,KAAK4+C,cAAgBhiC,EAAQgqB,QAAQuB,aACrCnoC,KAAKomC,aAAexpB,EAAQgqB,QAAQC,YACpC7mC,KAAK6+C,gBAAkB9W,GAAapoB,GACpC3f,KAAKy+C,MAAQA,EACbz+C,KAAKwjC,KAAOgG,GAAc7pB,GAC1B3f,KAAK0J,OAAS,EAChB,EAWA,SAASgzC,GAAoB/8B,GAC3B,IAAI/C,EAAU+C,EAAG/C,SACZA,EAAQkiC,mBAAqBliC,EAAQorB,SAAS5Y,cACjDxS,EAAQkrB,eAAiBlrB,EAAQorB,SAAS5Y,YAAcxS,EAAQorB,SAASnB,YACzEjqB,EAAQs+B,aAAav+B,MAAMmW,OAAS+U,GAAUloB,GAAM,KACpD/C,EAAQoqB,MAAMrqB,MAAMoiC,cAAgBniC,EAAQkrB,eAAiB,KAC7DlrB,EAAQoqB,MAAMrqB,MAAMqiC,iBAAmBnX,GAAUloB,GAAM,KACvD/C,EAAQkiC,mBAAoB,EAEhC,CAEA,SAASG,GAAkBt/B,GACzB,GAAIA,EAAGk1B,WAAc,OAAO,KAC5B,IAAIqK,EAAS/5B,IACb,IAAK+5B,IAAWx6C,EAASib,EAAG/C,QAAQ64B,QAASyJ,GAAW,OAAO,KAC/D,IAAIhyC,EAAS,CAACiY,UAAW+5B,GACzB,GAAIn/C,OAAOiwB,aAAc,CACvB,IAAI6hB,EAAM9xC,OAAOiwB,eACb6hB,EAAIsN,YAActN,EAAIlrC,QAAUjC,EAASib,EAAG/C,QAAQ64B,QAAS5D,EAAIsN,cACnEjyC,EAAOiyC,WAAatN,EAAIsN,WACxBjyC,EAAOkyC,aAAevN,EAAIuN,aAC1BlyC,EAAOmyC,UAAYxN,EAAIwN,UACvBnyC,EAAOoyC,YAAczN,EAAIyN,YAE7B,CACA,OAAOpyC,CACT,CAEA,SAASqyC,GAAiBC,GACxB,GAAKA,GAAaA,EAASr6B,WAAaq6B,EAASr6B,WAAaA,MAC9Dq6B,EAASr6B,UAAU6vB,SACd,qBAAqBhrC,KAAKw1C,EAASr6B,UAAUs6B,WAC9CD,EAASL,YAAcz6C,EAASgQ,SAASoI,KAAM0iC,EAASL,aAAez6C,EAASgQ,SAASoI,KAAM0iC,EAASH,YAAY,CACtH,IAAIxN,EAAM9xC,OAAOiwB,eAAgB7L,EAAQzP,SAASgR,cAClDvB,EAAM0B,OAAO25B,EAASL,WAAYK,EAASJ,cAC3Cj7B,EAAM8B,UAAS,GACf4rB,EAAI6N,kBACJ7N,EAAI8N,SAASx7B,GACb0tB,EAAIlrC,OAAO64C,EAASH,UAAWG,EAASF,YAC1C,CACF,CAKA,SAASxC,GAAsBn9B,EAAIk6B,GACjC,IAAIj9B,EAAU+C,EAAG/C,QAASyV,EAAM1S,EAAG0S,IAEnC,GAAIwnB,EAAO8E,eAET,OADAnO,GAAU7wB,IACH,EAIT,IAAKk6B,EAAO4E,OACR5E,EAAO6E,QAAQj/B,MAAQ7C,EAAQ8a,UAAYmiB,EAAO6E,QAAQh/B,IAAM9C,EAAQ+a,SAC1C,MAA7B/a,EAAQ0zB,mBAA6B1zB,EAAQ0zB,mBAAqB1zB,EAAQ+a,SAC3E/a,EAAQgjC,cAAgBhjC,EAAQ0lB,MAA8B,GAAtB4O,GAAevxB,GACvD,OAAO,EAEPkgC,GAA2BlgC,KAC7B6wB,GAAU7wB,GACVk6B,EAAOrW,KAAOgG,GAAc7pB,IAI9B,IAAIqC,EAAMqQ,EAAIxgB,MAAQwgB,EAAI3b,KACtB+I,EAAOvT,KAAKC,IAAI0tC,EAAO6E,QAAQj/B,KAAOE,EAAG9c,QAAQi9C,eAAgBztB,EAAIxgB,OACrE6N,EAAKxT,KAAKiE,IAAI6R,EAAK63B,EAAO6E,QAAQh/B,GAAKC,EAAG9c,QAAQi9C,gBAClDljC,EAAQ8a,SAAWjY,GAAQA,EAAO7C,EAAQ8a,SAAW,KAAMjY,EAAOvT,KAAKC,IAAIkmB,EAAIxgB,MAAO+K,EAAQ8a,WAC9F9a,EAAQ+a,OAASjY,GAAM9C,EAAQ+a,OAASjY,EAAK,KAAMA,EAAKxT,KAAKiE,IAAI6R,EAAKpF,EAAQ+a,SAC9EwB,KACF1Z,EAAOie,GAAa/d,EAAG0S,IAAK5S,GAC5BC,EAAKme,GAAgBle,EAAG0S,IAAK3S,IAG/B,IAAIqgC,EAAYtgC,GAAQ7C,EAAQ8a,UAAYhY,GAAM9C,EAAQ+a,QACxD/a,EAAQojC,gBAAkBnG,EAAO+E,eAAiBhiC,EAAQqjC,eAAiBpG,EAAOzT,aACpF6K,GAAWtxB,EAAIF,EAAMC,GAErB9C,EAAQ8vB,WAAaxO,GAAa9L,GAAQzS,EAAG0S,IAAKzV,EAAQ8a,WAE1D/X,EAAG/C,QAAQqqB,MAAMtqB,MAAMmsB,IAAMlsB,EAAQ8vB,WAAa,KAElD,IAAIwT,EAAWhP,GAAevxB,GAC9B,IAAKogC,GAAyB,GAAZG,IAAkBrG,EAAO4E,OAAS7hC,EAAQgjC,cAAgBhjC,EAAQ0lB,OAClD,MAA7B1lB,EAAQ0zB,mBAA6B1zB,EAAQ0zB,mBAAqB1zB,EAAQ+a,QAC3E,OAAO,EAIX,IAAIwoB,EAAclB,GAAkBt/B,GAuBpC,OAtBIugC,EAAW,IAAKtjC,EAAQ64B,QAAQ94B,MAAMC,QAAU,QACpDwjC,GAAazgC,EAAI/C,EAAQ0zB,kBAAmBuJ,EAAOrW,MAC/C0c,EAAW,IAAKtjC,EAAQ64B,QAAQ94B,MAAMC,QAAU,IACpDA,EAAQgjC,aAAehjC,EAAQ0lB,KAG/Bid,GAAiBY,GAIjB77B,EAAe1H,EAAQ83B,WACvBpwB,EAAe1H,EAAQyjC,cACvBzjC,EAAQ+pB,QAAQhqB,MAAMmW,OAASlW,EAAQoqB,MAAMrqB,MAAMg9B,UAAY,EAE3DoG,IACFnjC,EAAQojC,eAAiBnG,EAAO+E,cAChChiC,EAAQqjC,cAAgBpG,EAAOzT,aAC/BqS,GAAY94B,EAAI,MAGlB/C,EAAQ0zB,kBAAoB,MAErB,CACT,CAEA,SAAS+M,GAAkB19B,EAAIk6B,GAG7B,IAFA,IAAI5D,EAAW4D,EAAO5D,SAEbpkC,GAAQ,GAAOA,GAAQ,EAAO,CACrC,GAAKA,GAAU8N,EAAG9c,QAAQ2lC,cAAgBqR,EAAOgF,iBAAmB9W,GAAapoB,GAStE9N,IACTgoC,EAAO6E,QAAU1I,GAAar2B,EAAG/C,QAAS+C,EAAG0S,IAAK4jB,SAHlD,GALIA,GAA4B,MAAhBA,EAASnN,MACrBmN,EAAW,CAACnN,IAAK58B,KAAKiE,IAAIwP,EAAG0S,IAAIS,OAASuU,GAAY1nB,EAAG/C,SAAWsrB,GAAcvoB,GAAKs2B,EAASnN,OAGpG+Q,EAAO6E,QAAU1I,GAAar2B,EAAG/C,QAAS+C,EAAG0S,IAAK4jB,GAC9C4D,EAAO6E,QAAQj/B,MAAQE,EAAG/C,QAAQ8a,UAAYmiB,EAAO6E,QAAQh/B,IAAMC,EAAG/C,QAAQ+a,OAC9E,MAIN,IAAKmlB,GAAsBn9B,EAAIk6B,GAAW,MAC1CtE,GAAwB51B,GACxB,IAAIo9B,EAAa/D,GAAqBr5B,GACtCyxB,GAAgBzxB,GAChBi7B,GAAiBj7B,EAAIo9B,GACrBK,GAAkBz9B,EAAIo9B,GACtBlD,EAAO4E,OAAQ,CACjB,CAEA5E,EAAOzsB,OAAOzN,EAAI,SAAUA,GACxBA,EAAG/C,QAAQ8a,UAAY/X,EAAG/C,QAAQ0jC,kBAAoB3gC,EAAG/C,QAAQ+a,QAAUhY,EAAG/C,QAAQ2jC,iBACxF1G,EAAOzsB,OAAOzN,EAAI,iBAAkBA,EAAIA,EAAG/C,QAAQ8a,SAAU/X,EAAG/C,QAAQ+a,QACxEhY,EAAG/C,QAAQ0jC,iBAAmB3gC,EAAG/C,QAAQ8a,SAAU/X,EAAG/C,QAAQ2jC,eAAiB5gC,EAAG/C,QAAQ+a,OAE9F,CAEA,SAAS4gB,GAAoB54B,EAAIs2B,GAC/B,IAAI4D,EAAS,IAAI+C,GAAcj9B,EAAIs2B,GACnC,GAAI6G,GAAsBn9B,EAAIk6B,GAAS,CACrCtE,GAAwB51B,GACxB09B,GAAkB19B,EAAIk6B,GACtB,IAAIkD,EAAa/D,GAAqBr5B,GACtCyxB,GAAgBzxB,GAChBi7B,GAAiBj7B,EAAIo9B,GACrBK,GAAkBz9B,EAAIo9B,GACtBlD,EAAO8D,QACT,CACF,CAMA,SAASyC,GAAazgC,EAAI6gC,EAAmBhd,GAC3C,IAAI5mB,EAAU+C,EAAG/C,QAASkoB,EAAcnlB,EAAG9c,QAAQiiC,YAC/C2b,EAAY7jC,EAAQ64B,QAAS7zB,EAAM6+B,EAAUxjC,WAEjD,SAASyjC,EAAGr8B,GACV,IAAIlR,EAAOkR,EAAKmhB,YAMhB,OAJI3iB,GAAUa,GAAO/D,EAAG/C,QAAQ+jC,oBAAsBt8B,EAClDA,EAAK1H,MAAMC,QAAU,OAErByH,EAAKY,WAAWnH,YAAYuG,GACzBlR,CACT,CAKA,IAHA,IAAImvB,EAAO1lB,EAAQ0lB,KAAM3E,EAAQ/gB,EAAQ8a,SAGhC73B,EAAI,EAAGA,EAAIyiC,EAAK3hC,OAAQd,IAAK,CACpC,IAAIw/B,EAAWiD,EAAKziC,GACpB,GAAIw/B,EAAS8C,aAAe,GAAK9C,EAAShb,MAAQgb,EAAShb,KAAKY,YAAcw7B,EAGvE,CACL,KAAO7+B,GAAOyd,EAAShb,MAAQzC,EAAM8+B,EAAG9+B,GACxC,IAAIg/B,EAAe9b,GAAoC,MAArB0b,GAChCA,GAAqB7iB,GAAS0B,EAAS4F,WACrC5F,EAASxxB,UACPhJ,EAAQw6B,EAASxxB,QAAS,WAAa,IAAK+yC,GAAe,GAC/Drd,GAAqB5jB,EAAI0f,EAAU1B,EAAO6F,IAExCod,IACFt8B,EAAe+a,EAAS4F,YACxB5F,EAAS4F,WAAWxgB,YAAY/P,SAASmQ,eAAewO,GAAc1T,EAAG9c,QAAS86B,MAEpF/b,EAAMyd,EAAShb,KAAKmhB,WACtB,KAhByF,CACvF,IAAInhB,EAAOqhB,GAAiB/lB,EAAI0f,EAAU1B,EAAO6F,GACjDid,EAAUzjC,aAAaqH,EAAMzC,EAC/B,CAcA+b,GAAS0B,EAAS3oB,IACpB,CACA,KAAOkL,GAAOA,EAAM8+B,EAAG9+B,EACzB,CAEA,SAASi/B,GAAkBjkC,GACzB,IAAIupB,EAAQvpB,EAAQ+pB,QAAQvX,YAC5BxS,EAAQoqB,MAAMrqB,MAAM6pB,WAAaL,EAAQ,KAEzChD,GAAYvmB,EAAS,gBAAiBA,EACxC,CAEA,SAASwgC,GAAkBz9B,EAAIuP,GAC7BvP,EAAG/C,QAAQoqB,MAAMrqB,MAAMg9B,UAAYzqB,EAAQoqB,UAAY,KACvD35B,EAAG/C,QAAQs+B,aAAav+B,MAAMmsB,IAAM5Z,EAAQoqB,UAAY,KACxD35B,EAAG/C,QAAQ+pB,QAAQhqB,MAAMmW,OAAU5D,EAAQoqB,UAAY35B,EAAG/C,QAAQwrB,UAAYP,GAAUloB,GAAO,IACjG,CAIA,SAASo5B,GAAkBp5B,GACzB,IAAI/C,EAAU+C,EAAG/C,QAAS0lB,EAAO1lB,EAAQ0lB,KACzC,GAAK1lB,EAAQkkC,cAAkBlkC,EAAQ+pB,QAAQ1pB,YAAe0C,EAAG9c,QAAQ6hC,YAAzE,CAGA,IAFA,IAAIqc,EAAO1R,GAAqBzyB,GAAWA,EAAQorB,SAASiE,WAAatsB,EAAG0S,IAAI4Z,WAC5EgN,EAAUr8B,EAAQ+pB,QAAQvX,YAAaM,EAAOqxB,EAAO,KAChDlhD,EAAI,EAAGA,EAAIyiC,EAAK3hC,OAAQd,IAAO,IAAKyiC,EAAKziC,GAAGsiC,OAAQ,CACvDxiB,EAAG9c,QAAQ6hC,cACTpC,EAAKziC,GAAG0kC,SACRjC,EAAKziC,GAAG0kC,OAAO5nB,MAAM+S,KAAOA,GAC5B4S,EAAKziC,GAAG2kC,mBACRlC,EAAKziC,GAAG2kC,iBAAiB7nB,MAAM+S,KAAOA,IAE5C,IAAIsxB,EAAQ1e,EAAKziC,GAAGylC,UACpB,GAAI0b,EAAS,IAAK,IAAIv1C,EAAI,EAAGA,EAAIu1C,EAAMrgD,OAAQ8K,IAC3Cu1C,EAAMv1C,GAAGkR,MAAM+S,KAAOA,CAC5B,CACI/P,EAAG9c,QAAQ6hC,cACX9nB,EAAQ+pB,QAAQhqB,MAAM+S,KAAQqxB,EAAO9H,EAAW,KAf4C,CAgBlG,CAKA,SAAS4G,GAA2BlgC,GAClC,IAAKA,EAAG9c,QAAQiiC,YAAe,OAAO,EACtC,IAAIzS,EAAM1S,EAAG0S,IAAKrb,EAAOqc,GAAc1T,EAAG9c,QAASwvB,EAAIxgB,MAAQwgB,EAAI3b,KAAO,GAAIkG,EAAU+C,EAAG/C,QAC3F,GAAI5F,EAAKrW,QAAUic,EAAQivB,aAAc,CACvC,IAAI7hC,EAAO4S,EAAQsS,QAAQzK,YAAYC,EAAI,MAAO,CAACA,EAAI,MAAO1N,IACnB,gDACvCiqC,EAASj3C,EAAKiT,WAAWmS,YAAaujB,EAAU3oC,EAAKolB,YAAc6xB,EAOvE,OANArkC,EAAQskC,WAAWvkC,MAAMwpB,MAAQ,GACjCvpB,EAAQukC,kBAAoBj1C,KAAKC,IAAI80C,EAAQrkC,EAAQskC,WAAW9xB,YAAcujB,GAAW,EACzF/1B,EAAQwkC,aAAexkC,EAAQukC,kBAAoBxO,EACnD/1B,EAAQivB,aAAejvB,EAAQukC,kBAAoBnqC,EAAKrW,QAAU,EAClEic,EAAQskC,WAAWvkC,MAAMwpB,MAAQvpB,EAAQwkC,aAAe,KACxDP,GAAkBlhC,EAAG/C,UACd,CACT,CACA,OAAO,CACT,CAEA,SAASykC,GAAW1a,EAAS7B,GAE3B,IADA,IAAI53B,EAAS,GAAIo0C,GAAiB,EACzBzhD,EAAI,EAAGA,EAAI8mC,EAAQhmC,OAAQd,IAAK,CACvC,IAAI8J,EAAOg9B,EAAQ9mC,GAAI8c,EAAQ,KAE/B,GADmB,iBAARhT,IAAoBgT,EAAQhT,EAAKgT,MAAOhT,EAAOA,EAAKiL,WACnD,0BAARjL,EAAkC,CACpC,IAAKm7B,EAAe,SACbwc,GAAiB,CAC1B,CACAp0C,EAAOvI,KAAK,CAACiQ,UAAWjL,EAAMgT,MAAOA,GACvC,CAEA,OADImoB,IAAgBwc,GAAkBp0C,EAAOvI,KAAK,CAACiQ,UAAW,yBAA0B+H,MAAO,OACxFzP,CACT,CAIA,SAASq0C,GAAc3kC,GACrB,IAAI+pB,EAAU/pB,EAAQ+pB,QAAS6a,EAAQ5kC,EAAQwoB,YAC/C9gB,EAAeqiB,GACf/pB,EAAQskC,WAAa,KACrB,IAAK,IAAIrhD,EAAI,EAAGA,EAAI2hD,EAAM7gD,SAAUd,EAAG,CACrC,IAAIgvC,EAAM2S,EAAM3hD,GACZ+U,EAAYi6B,EAAIj6B,UAChB+H,EAAQkyB,EAAIlyB,MACZ8kC,EAAO9a,EAAQliB,YAAYC,EAAI,MAAO,KAAM,qBAAuB9P,IACnE+H,IAAS8kC,EAAK9kC,MAAMiI,QAAUjI,GACjB,0BAAb/H,IACFgI,EAAQskC,WAAaO,EACrBA,EAAK9kC,MAAMwpB,OAASvpB,EAAQwkC,cAAgB,GAAK,KAErD,CACAza,EAAQhqB,MAAMC,QAAU4kC,EAAM7gD,OAAS,GAAK,OAC5CkgD,GAAkBjkC,EACpB,CAEA,SAAS8kC,GAAc/hC,GACrB4hC,GAAc5hC,EAAG/C,SACjBwzB,GAAUzwB,GACVo5B,GAAkBp5B,EACpB,CAMA,SAASgiC,GAAQlX,EAAOpY,EAAKiP,EAAOz+B,GAClC,IAAI07B,EAAIv+B,KACRA,KAAKshC,MAAQA,EAGb/C,EAAE6c,gBAAkB12B,EAAI,MAAO,KAAM,+BACrC6Z,EAAE6c,gBAAgBr2B,aAAa,iBAAkB,QAGjDwZ,EAAE+c,aAAe52B,EAAI,MAAO,KAAM,4BAClC6Z,EAAE+c,aAAav2B,aAAa,iBAAkB,QAE9CwZ,EAAEkX,QAAU3wB,EAAK,MAAO,KAAM,mBAE9ByZ,EAAE8hB,aAAe37B,EAAI,MAAO,KAAM,KAAM,kCACxC6Z,EAAEmW,UAAYhwB,EAAI,MAAO,KAAM,sBAE/B6Z,EAAErP,QAAUxK,EAAI,MAAO,KAAM,sBAE7B6Z,EAAE0K,YAAcvkB,EAAI,MAAO,KAAM,sBAEjC6Z,EAAE4I,UAAYriB,EAAK,MAAO,CAACyZ,EAAErP,QAASqP,EAAE0K,YAAa1K,EAAE8hB,aAAc9hB,EAAEmW,UAAWnW,EAAEkX,SAClE,KAAM,qCACxB,IAAIr0B,EAAQ0D,EAAK,MAAO,CAACyZ,EAAE4I,WAAY,oBAEvC5I,EAAE0I,MAAQviB,EAAI,MAAO,CAACtD,GAAQ,KAAM,sBAEpCmd,EAAEyI,MAAQtiB,EAAI,MAAO,CAAC6Z,EAAE0I,OAAQ,oBAChC1I,EAAEuU,WAAa,KAIfvU,EAAE2c,aAAex2B,EAAI,MAAO,KAAM,KAAM,+BAAiCgD,EAAc,mBAEvF6W,EAAEoI,QAAUjiB,EAAI,MAAO,KAAM,sBAC7B6Z,EAAE2iB,WAAa,KAEf3iB,EAAEyJ,SAAWtjB,EAAI,MAAO,CAAC6Z,EAAEyI,MAAOzI,EAAE2c,aAAc3c,EAAEoI,SAAU,qBAC9DpI,EAAEyJ,SAASjjB,aAAa,WAAY,MAEpCwZ,EAAEqI,QAAUliB,EAAI,MAAO,CAAC6Z,EAAE6c,gBAAiB7c,EAAE+c,aAAc/c,EAAEyJ,UAAW,cAIxEzJ,EAAEqI,QAAQ7hB,aAAa,YAAa,MAGhCpC,GAAMC,EAAa,IAAK2b,EAAEoI,QAAQhqB,MAAMonB,QAAU,EAAGxF,EAAEyJ,SAASrrB,MAAMgrB,aAAe,GACpF9kB,GAAYN,GAASkB,IAAW8a,EAAEyJ,SAAS4Z,WAAY,GAExDnX,IACEA,EAAMhmB,YAAegmB,EAAMhmB,YAAY8Z,EAAEqI,SACtC6D,EAAMlM,EAAEqI,UAIjBrI,EAAE7G,SAAW6G,EAAE5G,OAAStF,EAAIxgB,MAC5B0sB,EAAE+hB,iBAAmB/hB,EAAEgiB,eAAiBluB,EAAIxgB,MAE5C0sB,EAAE+D,KAAO,GACT/D,EAAEqhB,aAAe,KAGjBrhB,EAAEuB,iBAAmB,KAErBvB,EAAEmO,WAAa,EACfnO,EAAEyhB,eAAiBzhB,EAAE0hB,cAAgB,EACrC1hB,EAAE+R,kBAAoB,KAEtB/R,EAAEuJ,eAAiBvJ,EAAE6J,UAAY7J,EAAE0J,SAAW,EAC9C1J,EAAEugB,mBAAoB,EAItBvgB,EAAE6iB,aAAe7iB,EAAE4iB,kBAAoB5iB,EAAEsN,aAAe,KAIxDtN,EAAEuiB,cAAe,EAEjBviB,EAAEoN,gBAAkBpN,EAAEqN,iBAAmBrN,EAAEgJ,eAAiB,KAI5DhJ,EAAEC,QAAU,KACZD,EAAEE,cAAgB,EAClBF,EAAEG,gBAAiB,EAGnBH,EAAEsjB,QAAUtjB,EAAEujB,QAAUvjB,EAAE+e,YAAc/e,EAAEgf,YAAc,KAGxDhf,EAAE16B,OAAQ,EAIV06B,EAAE8W,kBAAoB,KAEtB9W,EAAEwjB,YAAc,KAEhBxjB,EAAE6G,YAAcic,GAAWx+C,EAAQ8jC,QAAS9jC,EAAQiiC,aACpDyc,GAAchjB,GAEd+C,EAAM0gB,KAAKzjB,EACb,CAtaAqe,GAAcv8C,UAAU+sB,OAAS,SAAUH,EAASzqB,GAC9CurB,GAAWd,EAASzqB,IACpBxC,KAAK0J,OAAO/E,KAAKxD,UACvB,EACAy7C,GAAcv8C,UAAUs9C,OAAS,WAC/B,IAAK,IAAI99C,EAAI,EAAGA,EAAIG,KAAK0J,OAAO/I,OAAQd,IACpCutB,GAAO7sB,MAAM,KAAMP,KAAK0J,OAAO7J,GACrC,EA4aA,IAAIoiD,GAAe,EAAGC,GAAqB,KAU3C,SAASC,GAAgBj3C,GACvB,IAAIk3C,EAAKl3C,EAAEm3C,YAAaC,EAAKp3C,EAAEq3C,YAI/B,OAHU,MAANH,GAAcl3C,EAAEs3C,QAAUt3C,EAAEwwC,MAAQxwC,EAAEu3C,kBAAmBL,EAAKl3C,EAAEs3C,QAC1D,MAANF,GAAcp3C,EAAEs3C,QAAUt3C,EAAEwwC,MAAQxwC,EAAEw3C,cAAiBJ,EAAKp3C,EAAEs3C,OACnD,MAANF,IAAcA,EAAKp3C,EAAEy3C,YACvB,CAAC9uB,EAAGuuB,EAAIxU,EAAG0U,EACpB,CACA,SAASM,GAAiB13C,GACxB,IAAI23C,EAAQV,GAAgBj3C,GAG5B,OAFA23C,EAAMhvB,GAAKquB,GACXW,EAAMjV,GAAKsU,GACJW,CACT,CAEA,SAASC,GAAcnjC,EAAIzU,GAIrB6X,GAAUC,GAAkB,MACK,MAA/BrD,EAAG/C,QAAQmmC,iBAA4BpjC,EAAG/C,QAAQoqB,MAAMrqB,MAAMqmC,cAAgB,OAC3Ev7B,aAAa9H,EAAG/C,QAAQmmC,kBAC/BpjC,EAAG/C,QAAQmmC,iBAAmBx7B,YAAW,WACvC5H,EAAG/C,QAAQmmC,iBAAmB,KAC9BpjC,EAAG/C,QAAQoqB,MAAMrqB,MAAMqmC,cAAgB,EACzC,GAAG,MAEL,IAAIH,EAAQV,GAAgBj3C,GAAIk3C,EAAKS,EAAMhvB,EAAGyuB,EAAKO,EAAMjV,EACrDqV,EAAgBf,GACA,IAAhBh3C,EAAEg4C,YACJd,EAAKl3C,EAAEi4C,OACPb,EAAKp3C,EAAEk4C,OACPH,EAAgB,GAGlB,IAAIrmC,EAAU+C,EAAG/C,QAASkL,EAASlL,EAAQorB,SAEvCqb,EAAav7B,EAAOgxB,YAAchxB,EAAO+e,YACzCyc,EAAax7B,EAAO6wB,aAAe7wB,EAAOqgB,aAC9C,GAAMia,GAAMiB,GAAcf,GAAMgB,EAAhC,CAMA,GAAIhB,GAAM5+B,GAAOb,EACf/B,EAAO,IAAK,IAAIc,EAAM1W,EAAEqb,OAAQ+b,EAAO1lB,EAAQ0lB,KAAM1gB,GAAOkG,EAAQlG,EAAMA,EAAIqD,WAC5E,IAAK,IAAIplB,EAAI,EAAGA,EAAIyiC,EAAK3hC,OAAQd,IAC/B,GAAIyiC,EAAKziC,GAAGwkB,MAAQzC,EAAK,CACvBjC,EAAG/C,QAAQ+jC,mBAAqB/+B,EAChC,MAAMd,CACR,CAWN,GAAIshC,IAAO7/B,IAAUU,GAA2B,MAAjBggC,EAW7B,OAVIX,GAAMgB,GACNpM,GAAgBv3B,EAAIzT,KAAKC,IAAI,EAAG2b,EAAOukB,UAAYiW,EAAKW,IAC5D9L,GAAcx3B,EAAIzT,KAAKC,IAAI,EAAG2b,EAAOmkB,WAAamW,EAAKa,MAKlDX,GAAOA,GAAMgB,IACdp1B,GAAiBhjB,QACrB0R,EAAQ0gC,YAAc,MAMxB,GAAIgF,GAAuB,MAAjBW,EAAuB,CAC/B,IAAIM,EAASjB,EAAKW,EACdna,EAAMnpB,EAAG0S,IAAIga,UAAWvB,EAAMhC,EAAMlsB,EAAQgqB,QAAQuB,aACpDob,EAAS,EAAKza,EAAM58B,KAAKC,IAAI,EAAG28B,EAAMya,EAAS,IAC5CzY,EAAM5+B,KAAKiE,IAAIwP,EAAG0S,IAAIS,OAAQgY,EAAMyY,EAAS,IACpDhL,GAAoB54B,EAAI,CAACmpB,IAAKA,EAAKD,OAAQiC,GAC7C,CAEImX,GAAe,IAAsB,IAAhB/2C,EAAEg4C,YACE,MAAvBtmC,EAAQ0gC,aACV1gC,EAAQ0gC,YAAcx1B,EAAOmkB,WAAYrvB,EAAQ2gC,YAAcz1B,EAAOukB,UACtEzvB,EAAQilC,QAAUO,EAAIxlC,EAAQklC,QAAUQ,EACxC/6B,YAAW,WACT,GAA2B,MAAvB3K,EAAQ0gC,YAAZ,CACA,IAAIkG,EAAS17B,EAAOmkB,WAAarvB,EAAQ0gC,YACrCmG,EAAS37B,EAAOukB,UAAYzvB,EAAQ2gC,YACpCjmC,EAAUmsC,GAAU7mC,EAAQklC,SAAW2B,EAAS7mC,EAAQklC,SACzD0B,GAAU5mC,EAAQilC,SAAW2B,EAAS5mC,EAAQilC,QACjDjlC,EAAQ0gC,YAAc1gC,EAAQ2gC,YAAc,KACvCjmC,IACL4qC,IAAsBA,GAAqBD,GAAe3qC,IAAW2qC,GAAe,KAClFA,GARwC,CAS5C,GAAG,OAEHrlC,EAAQilC,SAAWO,EAAIxlC,EAAQklC,SAAWQ,GA/DQ,CAkExD,CA7GI3/B,EAAMu/B,IAAsB,IACvB3/B,EAAS2/B,GAAqB,GAC9Bn/B,EAAUm/B,IAAsB,GAChCh/B,IAAUg/B,IAAsB,EAAE,GAiH3C,IAAIwB,GAAY,SAAS5R,EAAQC,GAC/B/xC,KAAK8xC,OAASA,EACd9xC,KAAK+xC,UAAYA,CACnB,EAEA2R,GAAUrjD,UAAUkxC,QAAU,WAAc,OAAOvxC,KAAK8xC,OAAO9xC,KAAK+xC,UAAW,EAE/E2R,GAAUrjD,UAAUsjD,OAAS,SAAUrW,GACrC,GAAIA,GAASttC,KAAQ,OAAO,EAC5B,GAAIstC,EAAMyE,WAAa/xC,KAAK+xC,WAAazE,EAAMwE,OAAOnxC,QAAUX,KAAK8xC,OAAOnxC,OAAU,OAAO,EAC7F,IAAK,IAAId,EAAI,EAAGA,EAAIG,KAAK8xC,OAAOnxC,OAAQd,IAAK,CAC3C,IAAI+jD,EAAO5jD,KAAK8xC,OAAOjyC,GAAIgkD,EAAQvW,EAAMwE,OAAOjyC,GAChD,IAAK8zB,GAAeiwB,EAAK1U,OAAQ2U,EAAM3U,UAAYvb,GAAeiwB,EAAKjtC,KAAMktC,EAAMltC,MAAS,OAAO,CACrG,CACA,OAAO,CACT,EAEA+sC,GAAUrjD,UAAUyjD,SAAW,WAE7B,IADA,IAAI3iC,EAAM,GACDthB,EAAI,EAAGA,EAAIG,KAAK8xC,OAAOnxC,OAAQd,IACpCshB,EAAIthB,GAAK,IAAIkkD,GAAMnwB,GAAQ5zB,KAAK8xC,OAAOjyC,GAAGqvC,QAAStb,GAAQ5zB,KAAK8xC,OAAOjyC,GAAG8W,OAC9E,OAAO,IAAI+sC,GAAUviC,EAAKnhB,KAAK+xC,UACjC,EAEA2R,GAAUrjD,UAAU2jD,kBAAoB,WACtC,IAAK,IAAInkD,EAAI,EAAGA,EAAIG,KAAK8xC,OAAOnxC,OAAQd,IACpC,IAAKG,KAAK8xC,OAAOjyC,GAAGmyC,QAAW,OAAO,EAC1C,OAAO,CACT,EAEA0R,GAAUrjD,UAAUqE,SAAW,SAAUmd,EAAKG,GACvCA,IAAOA,EAAMH,GAClB,IAAK,IAAIhiB,EAAI,EAAGA,EAAIG,KAAK8xC,OAAOnxC,OAAQd,IAAK,CAC3C,IAAIskB,EAAQnkB,KAAK8xC,OAAOjyC,GACxB,GAAI6zB,GAAI1R,EAAKmC,EAAM1E,SAAW,GAAKiU,GAAI7R,EAAKsC,EAAMzE,OAAS,EACvD,OAAO7f,CACb,CACA,OAAQ,CACV,EAEA,IAAIkkD,GAAQ,SAAS7U,EAAQv4B,GAC3B3W,KAAKkvC,OAASA,EAAQlvC,KAAK2W,KAAOA,CACpC,EASA,SAASstC,GAAmBtkC,EAAImyB,EAAQC,GACtC,IAAImS,EAAWvkC,GAAMA,EAAG9c,QAAQshD,mBAC5BC,EAAOtS,EAAOC,GAClBD,EAAO/gC,MAAK,SAAUnR,EAAG4lB,GAAK,OAAOkO,GAAI9zB,EAAE6f,OAAQ+F,EAAE/F,OAAS,IAC9DsyB,EAAYltC,EAAQitC,EAAQsS,GAC5B,IAAK,IAAIvkD,EAAI,EAAGA,EAAIiyC,EAAOnxC,OAAQd,IAAK,CACtC,IAAI+hB,EAAMkwB,EAAOjyC,GAAIqO,EAAO4jC,EAAOjyC,EAAI,GACnCwE,EAAOqvB,GAAIxlB,EAAKwR,KAAMkC,EAAInC,QAC9B,GAAIykC,IAAatiC,EAAIowB,QAAU3tC,EAAO,EAAIA,GAAQ,EAAG,CACnD,IAAIob,EAAOsU,GAAO7lB,EAAKuR,OAAQmC,EAAInC,QAASC,EAAKoU,GAAO5lB,EAAKwR,KAAMkC,EAAIlC,MACnE2kC,EAAMn2C,EAAK8jC,QAAUpwB,EAAInC,QAAUmC,EAAIjL,KAAOzI,EAAKuR,QAAUvR,EAAKyI,KAClE9W,GAAKkyC,KAAeA,EACxBD,EAAOltC,SAAS/E,EAAG,EAAG,IAAIkkD,GAAMM,EAAM3kC,EAAKD,EAAM4kC,EAAM5kC,EAAOC,GAChE,CACF,CACA,OAAO,IAAIgkC,GAAU5R,EAAQC,EAC/B,CAEA,SAASuS,GAAgBpV,EAAQv4B,GAC/B,OAAO,IAAI+sC,GAAU,CAAC,IAAIK,GAAM7U,EAAQv4B,GAAQu4B,IAAU,EAC5D,CAIA,SAASqV,GAAUzpB,GACjB,OAAKA,EAAO/Z,KACL0S,GAAIqH,EAAOrb,KAAKU,KAAO2a,EAAO/Z,KAAKpgB,OAAS,EACxC6nB,EAAIsS,EAAO/Z,MAAMpgB,QAAgC,GAAtBm6B,EAAO/Z,KAAKpgB,OAAcm6B,EAAOrb,KAAKW,GAAK,IAFtD0a,EAAOpb,EAGpC,CAIA,SAAS8kC,GAAgB3iC,EAAKiZ,GAC5B,GAAIpH,GAAI7R,EAAKiZ,EAAOrb,MAAQ,EAAK,OAAOoC,EACxC,GAAI6R,GAAI7R,EAAKiZ,EAAOpb,KAAO,EAAK,OAAO6kC,GAAUzpB,GAEjD,IAAI3a,EAAO0B,EAAI1B,KAAO2a,EAAO/Z,KAAKpgB,QAAUm6B,EAAOpb,GAAGS,KAAO2a,EAAOrb,KAAKU,MAAQ,EAAGC,EAAKyB,EAAIzB,GAE7F,OADIyB,EAAI1B,MAAQ2a,EAAOpb,GAAGS,OAAQC,GAAMmkC,GAAUzpB,GAAQ1a,GAAK0a,EAAOpb,GAAGU,IAClEqT,GAAItT,EAAMC,EACnB,CAEA,SAASqkC,GAAsBpyB,EAAKyI,GAElC,IADA,IAAI3Z,EAAM,GACDthB,EAAI,EAAGA,EAAIwyB,EAAIwf,IAAIC,OAAOnxC,OAAQd,IAAK,CAC9C,IAAIskB,EAAQkO,EAAIwf,IAAIC,OAAOjyC,GAC3BshB,EAAIxc,KAAK,IAAIo/C,GAAMS,GAAgBrgC,EAAM+qB,OAAQpU,GAC9B0pB,GAAgBrgC,EAAMxN,KAAMmkB,IACjD,CACA,OAAOmpB,GAAmB5xB,EAAI1S,GAAIwB,EAAKkR,EAAIwf,IAAIE,UACjD,CAEA,SAAS2S,GAAU7iC,EAAKtT,EAAK8rB,GAC3B,OAAIxY,EAAI1B,MAAQ5R,EAAI4R,KACTsT,GAAI4G,EAAGla,KAAM0B,EAAIzB,GAAK7R,EAAI6R,GAAKia,EAAGja,IAElCqT,GAAI4G,EAAGla,MAAQ0B,EAAI1B,KAAO5R,EAAI4R,MAAO0B,EAAIzB,GACtD,CAIA,SAASukC,GAAmBtyB,EAAKxkB,EAAS+2C,GAGxC,IAFA,IAAIzjC,EAAM,GACN0jC,EAAUpxB,GAAIpB,EAAIxgB,MAAO,GAAIizC,EAAUD,EAClChlD,EAAI,EAAGA,EAAIgO,EAAQlN,OAAQd,IAAK,CACvC,IAAIi7B,EAASjtB,EAAQhO,GACjB4f,EAAOilC,GAAU5pB,EAAOrb,KAAMolC,EAASC,GACvCplC,EAAKglC,GAAUH,GAAUzpB,GAAS+pB,EAASC,GAG/C,GAFAD,EAAU/pB,EAAOpb,GACjBolC,EAAUplC,EACE,UAARklC,EAAkB,CACpB,IAAIzgC,EAAQkO,EAAIwf,IAAIC,OAAOjyC,GAAIwkD,EAAM3wB,GAAIvP,EAAMxN,KAAMwN,EAAM+qB,QAAU,EACrE/tB,EAAIthB,GAAK,IAAIkkD,GAAMM,EAAM3kC,EAAKD,EAAM4kC,EAAM5kC,EAAOC,EACnD,MACEyB,EAAIthB,GAAK,IAAIkkD,GAAMtkC,EAAMA,EAE7B,CACA,OAAO,IAAIikC,GAAUviC,EAAKkR,EAAIwf,IAAIE,UACpC,CAIA,SAASgT,GAASplC,GAChBA,EAAG0S,IAAIrS,KAAOF,GAAQH,EAAG9c,QAAS8c,EAAG0S,IAAI2yB,YACzCC,GAAetlC,EACjB,CAEA,SAASslC,GAAetlC,GACtBA,EAAG0S,IAAIM,MAAK,SAAUxS,GAChBA,EAAK8W,aAAc9W,EAAK8W,WAAa,MACrC9W,EAAKqW,SAAUrW,EAAKqW,OAAS,KACnC,IACA7W,EAAG0S,IAAI+E,aAAezX,EAAG0S,IAAI8E,kBAAoBxX,EAAG0S,IAAIxgB,MACxD4mC,GAAY94B,EAAI,KAChBA,EAAGV,MAAM8W,UACLpW,EAAGkO,OAASuiB,GAAUzwB,EAC5B,CAOA,SAASulC,GAAkB7yB,EAAKyI,GAC9B,OAAyB,GAAlBA,EAAOrb,KAAKW,IAA2B,GAAhB0a,EAAOpb,GAAGU,IAA+B,IAApBoI,EAAIsS,EAAO/Z,SAC1DsR,EAAI1S,IAAM0S,EAAI1S,GAAG9c,QAAQsiD,sBAC/B,CAGA,SAASC,GAAU/yB,EAAKyI,EAAQd,EAAa4E,GAC3C,SAASymB,EAASv+B,GAAI,OAAOkT,EAAcA,EAAYlT,GAAK,IAAI,CAChE,SAAS+yB,EAAO15B,EAAMY,EAAM0Y,GAC1BoF,GAAW1e,EAAMY,EAAM0Y,EAAOmF,GAC9BuE,GAAYhjB,EAAM,SAAUA,EAAM2a,EACpC,CACA,SAASwqB,EAAStpC,EAAOgG,GAEvB,IADA,IAAI9U,EAAS,GACJrN,EAAImc,EAAOnc,EAAImiB,IAAOniB,EAC3BqN,EAAOvI,KAAK,IAAIg6B,GAAK5d,EAAKlhB,GAAIwlD,EAASxlD,GAAI++B,IAC/C,OAAO1xB,CACT,CAEA,IAAIuS,EAAOqb,EAAOrb,KAAMC,EAAKob,EAAOpb,GAAIqB,EAAO+Z,EAAO/Z,KAClDwkC,EAAYnzB,GAAQC,EAAK5S,EAAKU,MAAO2d,EAAW1L,GAAQC,EAAK3S,EAAGS,MAChEqlC,EAAWh9B,EAAIzH,GAAO0kC,EAAYJ,EAAStkC,EAAKpgB,OAAS,GAAI+kD,EAAShmC,EAAGS,KAAOV,EAAKU,KAGzF,GAAI2a,EAAOC,KACT1I,EAAIniB,OAAO,EAAGo1C,EAAS,EAAGvkC,EAAKpgB,SAC/B0xB,EAAIjtB,OAAO2b,EAAKpgB,OAAQ0xB,EAAI3b,KAAOqK,EAAKpgB,aACnC,GAAIukD,GAAkB7yB,EAAKyI,GAAS,CAGzC,IAAItqB,EAAQ80C,EAAS,EAAGvkC,EAAKpgB,OAAS,GACtCk5C,EAAO/b,EAAUA,EAAS/c,KAAM0kC,GAC5BC,GAAUrzB,EAAIjtB,OAAOqa,EAAKU,KAAMulC,GAChCl1C,EAAM7P,QAAU0xB,EAAIniB,OAAOuP,EAAKU,KAAM3P,EAC5C,MAAO,GAAI+0C,GAAaznB,EACtB,GAAmB,GAAf/c,EAAKpgB,OACPk5C,EAAO0L,EAAWA,EAAUxkC,KAAKzgB,MAAM,EAAGmf,EAAKW,IAAMolC,EAAWD,EAAUxkC,KAAKzgB,MAAMof,EAAGU,IAAKqlC,OACxF,CACL,IAAIE,EAAUL,EAAS,EAAGvkC,EAAKpgB,OAAS,GACxCglD,EAAQhhD,KAAK,IAAIg6B,GAAK6mB,EAAWD,EAAUxkC,KAAKzgB,MAAMof,EAAGU,IAAKqlC,EAAW7mB,IACzEib,EAAO0L,EAAWA,EAAUxkC,KAAKzgB,MAAM,EAAGmf,EAAKW,IAAMW,EAAK,GAAIskC,EAAS,IACvEhzB,EAAIniB,OAAOuP,EAAKU,KAAO,EAAGwlC,EAC5B,MACK,GAAmB,GAAf5kC,EAAKpgB,OACdk5C,EAAO0L,EAAWA,EAAUxkC,KAAKzgB,MAAM,EAAGmf,EAAKW,IAAMW,EAAK,GAAK+c,EAAS/c,KAAKzgB,MAAMof,EAAGU,IAAKilC,EAAS,IACpGhzB,EAAIjtB,OAAOqa,EAAKU,KAAO,EAAGulC,OACrB,CACL7L,EAAO0L,EAAWA,EAAUxkC,KAAKzgB,MAAM,EAAGmf,EAAKW,IAAMW,EAAK,GAAIskC,EAAS,IACvExL,EAAO/b,EAAU0nB,EAAW1nB,EAAS/c,KAAKzgB,MAAMof,EAAGU,IAAKqlC,GACxD,IAAIG,EAAUN,EAAS,EAAGvkC,EAAKpgB,OAAS,GACpC+kD,EAAS,GAAKrzB,EAAIjtB,OAAOqa,EAAKU,KAAO,EAAGulC,EAAS,GACrDrzB,EAAIniB,OAAOuP,EAAKU,KAAO,EAAGylC,EAC5B,CAEAziB,GAAY9Q,EAAK,SAAUA,EAAKyI,EAClC,CAGA,SAAS+qB,GAAWxzB,EAAKhM,EAAGy/B,GAC1B,SAASC,EAAU1zB,EAAK2zB,EAAMC,GAC5B,GAAI5zB,EAAI6zB,OAAU,IAAK,IAAIrmD,EAAI,EAAGA,EAAIwyB,EAAI6zB,OAAOvlD,SAAUd,EAAG,CAC5D,IAAIsmD,EAAM9zB,EAAI6zB,OAAOrmD,GACrB,GAAIsmD,EAAI9zB,KAAO2zB,EAAf,CACA,IAAII,EAASH,GAAcE,EAAIF,WAC3BH,IAAmBM,IACvB//B,EAAE8/B,EAAI9zB,IAAK+zB,GACXL,EAAUI,EAAI9zB,IAAKA,EAAK+zB,GAJQ,CAKlC,CACF,CACAL,EAAU1zB,EAAK,MAAM,EACvB,CAGA,SAASg0B,GAAU1mC,EAAI0S,GACrB,GAAIA,EAAI1S,GAAM,MAAM,IAAI5N,MAAM,oCAC9B4N,EAAG0S,IAAMA,EACTA,EAAI1S,GAAKA,EACT8vB,GAAoB9vB,GACpBolC,GAASplC,GACT2mC,GAAkB3mC,GAClBA,EAAG9c,QAAQ0oB,UAAY8G,EAAI9G,UACtB5L,EAAG9c,QAAQ2lC,cAAgBlK,GAAY3e,GAC5CA,EAAG9c,QAAQmd,KAAOqS,EAAI2yB,WACtB5U,GAAUzwB,EACZ,CAEA,SAAS2mC,GAAkB3mC,IACN,OAApBA,EAAG0S,IAAI9G,UAAqBjG,EAAWlB,GAASzE,EAAG/C,QAAQ64B,QAAS,iBACrE,CAEA,SAAS8Q,GAAiB5mC,GACxBi+B,GAAQj+B,GAAI,WACV2mC,GAAkB3mC,GAClBywB,GAAUzwB,EACZ,GACF,CAEA,SAASjF,GAAQxM,GAIflO,KAAKoT,KAAO,GAAIpT,KAAKwmD,OAAS,GAC9BxmD,KAAKymD,UAAYv4C,EAAOA,EAAKu4C,UAAYr/C,IAGzCpH,KAAK0mD,YAAc1mD,KAAK2mD,YAAc,EACtC3mD,KAAK4mD,OAAS5mD,KAAK6mD,UAAY,KAC/B7mD,KAAK8mD,WAAa9mD,KAAK+mD,cAAgB,KAEvC/mD,KAAKgnD,WAAahnD,KAAKinD,cAAgB/4C,EAAOA,EAAK+4C,cAAgB,CACrE,CAIA,SAASC,GAAwB70B,EAAKyI,GACpC,IAAIqsB,EAAa,CAAC1nC,KAAMmU,GAAQkH,EAAOrb,MAAOC,GAAI6kC,GAAUzpB,GAAS/Z,KAAM2R,GAAWL,EAAKyI,EAAOrb,KAAMqb,EAAOpb,KAG/G,OAFA0nC,GAAiB/0B,EAAK80B,EAAYrsB,EAAOrb,KAAKU,KAAM2a,EAAOpb,GAAGS,KAAO,GACrE0lC,GAAWxzB,GAAK,SAAUA,GAAO,OAAO+0B,GAAiB/0B,EAAK80B,EAAYrsB,EAAOrb,KAAKU,KAAM2a,EAAOpb,GAAGS,KAAO,EAAI,IAAG,GAC7GgnC,CACT,CAIA,SAASE,GAAqBp3C,GAC5B,KAAOA,EAAMtP,QACA6nB,EAAIvY,GACN6hC,QAAU7hC,EAAMrM,KAG7B,CAIA,SAAS0jD,GAAgBC,EAAM9I,GAC7B,OAAIA,GACF4I,GAAqBE,EAAKn0C,MACnBoV,EAAI++B,EAAKn0C,OACPm0C,EAAKn0C,KAAKzS,SAAW6nB,EAAI++B,EAAKn0C,MAAM0+B,OACtCtpB,EAAI++B,EAAKn0C,MACPm0C,EAAKn0C,KAAKzS,OAAS,IAAM4mD,EAAKn0C,KAAKm0C,EAAKn0C,KAAKzS,OAAS,GAAGmxC,QAClEyV,EAAKn0C,KAAKxP,MACH4kB,EAAI++B,EAAKn0C,YAFX,CAIT,CAKA,SAASo0C,GAAmBn1B,EAAKyI,EAAQ2sB,EAAUC,GACjD,IAAIH,EAAOl1B,EAAIrY,QACfutC,EAAKf,OAAO7lD,OAAS,EACrB,IAAsBihB,EAClB5K,EADAoQ,GAAQ,IAAIE,KAGhB,IAAKigC,EAAKX,QAAUc,GACfH,EAAKT,YAAchsB,EAAO9S,QAAU8S,EAAO9S,SACd,KAA3B8S,EAAO9S,OAAOpM,OAAO,IAAa2rC,EAAKb,YAAct/B,GAAQiL,EAAI1S,GAAK0S,EAAI1S,GAAG9c,QAAQ8kD,kBAAoB,MAC/E,KAA3B7sB,EAAO9S,OAAOpM,OAAO,OACtBgG,EAAM0lC,GAAgBC,EAAMA,EAAKX,QAAUc,IAE9C1wC,EAAOwR,EAAI5G,EAAI/T,SACoB,GAA/B6lB,GAAIoH,EAAOrb,KAAMqb,EAAOpb,KAAyC,GAA7BgU,GAAIoH,EAAOrb,KAAMzI,EAAK0I,IAG5D1I,EAAK0I,GAAK6kC,GAAUzpB,GAGpBlZ,EAAI/T,QAAQlJ,KAAKuiD,GAAwB70B,EAAKyI,QAE3C,CAEL,IAAIn4B,EAAS6lB,EAAI++B,EAAKn0C,MAMtB,IALKzQ,GAAWA,EAAOmvC,QACnB8V,GAAuBv1B,EAAIwf,IAAK0V,EAAKn0C,MACzCwO,EAAM,CAAC/T,QAAS,CAACq5C,GAAwB70B,EAAKyI,IACvCksB,WAAYO,EAAKP,YACxBO,EAAKn0C,KAAKzO,KAAKid,GACR2lC,EAAKn0C,KAAKzS,OAAS4mD,EAAKd,WAC7Bc,EAAKn0C,KAAKvP,QACL0jD,EAAKn0C,KAAK,GAAG0+B,QAAUyV,EAAKn0C,KAAKvP,OAE1C,CACA0jD,EAAKn0C,KAAKzO,KAAK8iD,GACfF,EAAKP,aAAeO,EAAKN,cACzBM,EAAKb,YAAca,EAAKZ,YAAcv/B,EACtCmgC,EAAKX,OAASW,EAAKV,UAAYa,EAC/BH,EAAKT,WAAaS,EAAKR,cAAgBjsB,EAAO9S,OAEzChR,GAAQoW,GAAOiF,EAAK,eAC3B,CAEA,SAASw1B,GAA0Bx1B,EAAKrK,EAAQ9Z,EAAM2jC,GACpD,IAAIzxB,EAAK4H,EAAOpM,OAAO,GACvB,MAAa,KAANwE,GACC,KAANA,GACAlS,EAAK4jC,OAAOnxC,QAAUkxC,EAAIC,OAAOnxC,QACjCuN,EAAK81C,qBAAuBnS,EAAImS,qBAChC,IAAI18B,KAAO+K,EAAIrY,QAAQ2sC,cAAgBt0B,EAAI1S,GAAK0S,EAAI1S,GAAG9c,QAAQ8kD,kBAAoB,IACvF,CAMA,SAASG,GAAsBz1B,EAAKwf,EAAK6V,EAAM7kD,GAC7C,IAAI0kD,EAAOl1B,EAAIrY,QAASgO,EAASnlB,GAAWA,EAAQmlB,OAMhD0/B,GAAQH,EAAKV,WACZ7+B,GAAUu/B,EAAKR,eAAiB/+B,IAC/Bu/B,EAAKb,aAAea,EAAKZ,aAAeY,EAAKT,YAAc9+B,GAC3D6/B,GAA0Bx1B,EAAKrK,EAAQQ,EAAI++B,EAAKn0C,MAAOy+B,IACzD0V,EAAKn0C,KAAKm0C,EAAKn0C,KAAKzS,OAAS,GAAKkxC,EAElC+V,GAAuB/V,EAAK0V,EAAKn0C,MAErCm0C,EAAKZ,aAAe,IAAIr/B,KACxBigC,EAAKR,cAAgB/+B,EACrBu/B,EAAKV,UAAYa,EACb7kD,IAAiC,IAAtBA,EAAQklD,WACnBV,GAAqBE,EAAKf,OAChC,CAEA,SAASoB,GAAuB/V,EAAKmW,GACnC,IAAIlf,EAAMtgB,EAAIw/B,GACRlf,GAAOA,EAAIgJ,QAAUhJ,EAAI6a,OAAO9R,IAClCmW,EAAKrjD,KAAKktC,EAChB,CAGA,SAASuV,GAAiB/0B,EAAKyI,EAAQrb,EAAMC,GAC3C,IAAIvO,EAAW2pB,EAAO,SAAWzI,EAAI/nB,IAAKwc,EAAI,EAC9CuL,EAAIM,KAAKzmB,KAAKC,IAAIkmB,EAAIxgB,MAAO4N,GAAOvT,KAAKiE,IAAIkiB,EAAIxgB,MAAQwgB,EAAI3b,KAAMgJ,IAAK,SAAUS,GAC5EA,EAAK6Z,eACJ7oB,IAAaA,EAAW2pB,EAAO,SAAWzI,EAAI/nB,IAAM,CAAC,IAAIwc,GAAK3G,EAAK6Z,eACtElT,CACJ,GACF,CAIA,SAASmhC,GAAmBxuB,GAC1B,IAAKA,EAAS,OAAO,KAErB,IADA,IAAItY,EACKthB,EAAI,EAAGA,EAAI45B,EAAM94B,SAAUd,EAC9B45B,EAAM55B,GAAG05B,OAAO2uB,kBAA0B/mC,IAAOA,EAAMsY,EAAMn5B,MAAM,EAAGT,IACjEshB,GAAOA,EAAIxc,KAAK80B,EAAM55B,IAEjC,OAAQshB,EAAcA,EAAIxgB,OAASwgB,EAAM,KAA3BsY,CAChB,CAGA,SAAS0uB,GAAY91B,EAAKyI,GACxB,IAAIxQ,EAAQwQ,EAAO,SAAWzI,EAAI/nB,IAClC,IAAKggB,EAAS,OAAO,KAErB,IADA,IAAI+P,EAAK,GACAx6B,EAAI,EAAGA,EAAIi7B,EAAO/Z,KAAKpgB,SAAUd,EACtCw6B,EAAG11B,KAAKsjD,GAAmB39B,EAAMzqB,KACrC,OAAOw6B,CACT,CAMA,SAAS+tB,GAAc/1B,EAAKyI,GAC1B,IAAIvsB,EAAM45C,GAAY91B,EAAKyI,GACvButB,EAAYxtB,GAAuBxI,EAAKyI,GAC5C,IAAKvsB,EAAO,OAAO85C,EACnB,IAAKA,EAAa,OAAO95C,EAEzB,IAAK,IAAI1O,EAAI,EAAGA,EAAI0O,EAAI5N,SAAUd,EAAG,CACnC,IAAIyoD,EAAS/5C,EAAI1O,GAAI0oD,EAAaF,EAAUxoD,GAC5C,GAAIyoD,GAAUC,EACZ9uB,EAAO,IAAK,IAAIhuB,EAAI,EAAGA,EAAI88C,EAAW5nD,SAAU8K,EAAG,CAEjD,IADA,IAAIiuB,EAAO6uB,EAAW98C,GACb05B,EAAI,EAAGA,EAAImjB,EAAO3nD,SAAUwkC,EACjC,GAAImjB,EAAOnjB,GAAG5L,QAAUG,EAAKH,OAAU,SAASE,EACpD6uB,EAAO3jD,KAAK+0B,EACd,MACS6uB,IACTh6C,EAAI1O,GAAK0oD,EAEb,CACA,OAAOh6C,CACT,CAIA,SAASi6C,GAAiB9+C,EAAQ++C,EAAUC,GAE1C,IADA,IAAI1wB,EAAO,GACFn4B,EAAI,EAAGA,EAAI6J,EAAO/I,SAAUd,EAAG,CACtC,IAAI8S,EAAQjJ,EAAO7J,GACnB,GAAI8S,EAAMm/B,OACR9Z,EAAKrzB,KAAK+jD,EAAiBhF,GAAUrjD,UAAUyjD,SAASljD,KAAK+R,GAASA,OADxE,CAIA,IAAI9E,EAAU8E,EAAM9E,QAAS86C,EAAa,GAC1C3wB,EAAKrzB,KAAK,CAACkJ,QAAS86C,IACpB,IAAK,IAAIl9C,EAAI,EAAGA,EAAIoC,EAAQlN,SAAU8K,EAAG,CACvC,IAAIqvB,EAASjtB,EAAQpC,GAAI+F,OAAI,EAE7B,GADAm3C,EAAWhkD,KAAK,CAAC8a,KAAMqb,EAAOrb,KAAMC,GAAIob,EAAOpb,GAAIqB,KAAM+Z,EAAO/Z,OAC5D0nC,EAAY,IAAK,IAAIhiC,KAAQqU,GAActpB,EAAIiV,EAAKpS,MAAM,mBACxDxP,EAAQ4jD,EAAU3kC,OAAOtS,EAAE,MAAQ,IACrCgX,EAAImgC,GAAYliC,GAAQqU,EAAOrU,UACxBqU,EAAOrU,GAGpB,CAZA,CAaF,CACA,OAAOuR,CACT,CAUA,SAAS4wB,GAAYzkC,EAAOxN,EAAM22B,EAAO3mC,GACvC,GAAIA,EAAQ,CACV,IAAIuoC,EAAS/qB,EAAM+qB,OACnB,GAAI5B,EAAO,CACT,IAAIub,EAAYn1B,GAAI/c,EAAMu4B,GAAU,EAChC2Z,GAAcn1B,GAAI4Z,EAAO4B,GAAU,GACrCA,EAASv4B,EACTA,EAAO22B,GACEub,GAAcn1B,GAAI/c,EAAM22B,GAAS,IAC1C32B,EAAO22B,EAEX,CACA,OAAO,IAAIyW,GAAM7U,EAAQv4B,EAC3B,CACE,OAAO,IAAIotC,GAAMzW,GAAS32B,EAAMA,EAEpC,CAGA,SAASmyC,GAAgBz2B,EAAK1b,EAAM22B,EAAOzqC,EAAS8D,GACpC,MAAVA,IAAkBA,EAAS0rB,EAAI1S,KAAO0S,EAAI1S,GAAG/C,QAAQ/Y,OAASwuB,EAAI1rB,SACtEsb,GAAaoQ,EAAK,IAAIqxB,GAAU,CAACkF,GAAYv2B,EAAIwf,IAAIN,UAAW56B,EAAM22B,EAAO3mC,IAAU,GAAI9D,EAC7F,CAIA,SAASkmD,GAAiB12B,EAAK22B,EAAOnmD,GAGpC,IAFA,IAAIse,EAAM,GACNxa,EAAS0rB,EAAI1S,KAAO0S,EAAI1S,GAAG/C,QAAQ/Y,OAASwuB,EAAI1rB,QAC3C9G,EAAI,EAAGA,EAAIwyB,EAAIwf,IAAIC,OAAOnxC,OAAQd,IACvCshB,EAAIthB,GAAK+oD,GAAYv2B,EAAIwf,IAAIC,OAAOjyC,GAAImpD,EAAMnpD,GAAI,KAAM8G,GAE5Dsb,GAAaoQ,EADA4xB,GAAmB5xB,EAAI1S,GAAIwB,EAAKkR,EAAIwf,IAAIE,WAC3BlvC,EAC5B,CAGA,SAASomD,GAAoB52B,EAAKxyB,EAAGskB,EAAOthB,GAC1C,IAAIivC,EAASzf,EAAIwf,IAAIC,OAAOxxC,MAAM,GAClCwxC,EAAOjyC,GAAKskB,EACZlC,GAAaoQ,EAAK4xB,GAAmB5xB,EAAI1S,GAAImyB,EAAQzf,EAAIwf,IAAIE,WAAYlvC,EAC3E,CAGA,SAASqmD,GAAmB72B,EAAK6c,EAAQv4B,EAAM9T,GAC7Cof,GAAaoQ,EAAKiyB,GAAgBpV,EAAQv4B,GAAO9T,EACnD,CAIA,SAASsmD,GAAsB92B,EAAKwf,EAAKhvC,GACvC,IAAI7B,EAAM,CACR8wC,OAAQD,EAAIC,OACZ+H,OAAQ,SAAS/H,GACf9xC,KAAK8xC,OAAS,GACd,IAAK,IAAIjyC,EAAI,EAAGA,EAAIiyC,EAAOnxC,OAAQd,IAC/BG,KAAK8xC,OAAOjyC,GAAK,IAAIkkD,GAAM9vB,GAAQ5B,EAAKyf,EAAOjyC,GAAGqvC,QACzBjb,GAAQ5B,EAAKyf,EAAOjyC,GAAG8W,MACtD,EACAqR,OAAQnlB,GAAWA,EAAQmlB,QAI7B,OAFAoF,GAAOiF,EAAK,wBAAyBA,EAAKrxB,GACtCqxB,EAAI1S,IAAMyN,GAAOiF,EAAI1S,GAAI,wBAAyB0S,EAAI1S,GAAI3e,GAC1DA,EAAI8wC,QAAUD,EAAIC,OAAiBmS,GAAmB5xB,EAAI1S,GAAI3e,EAAI8wC,OAAQ9wC,EAAI8wC,OAAOnxC,OAAS,GACpFkxC,CAChB,CAEA,SAASuX,GAA2B/2B,EAAKwf,EAAKhvC,GAC5C,IAAIuQ,EAAOif,EAAIrY,QAAQ5G,KAAM4D,EAAOwR,EAAIpV,GACpC4D,GAAQA,EAAK86B,QACf1+B,EAAKA,EAAKzS,OAAS,GAAKkxC,EACxBwX,GAAmBh3B,EAAKwf,EAAKhvC,IAE7Bof,GAAaoQ,EAAKwf,EAAKhvC,EAE3B,CAGA,SAASof,GAAaoQ,EAAKwf,EAAKhvC,GAC9BwmD,GAAmBh3B,EAAKwf,EAAKhvC,GAC7BilD,GAAsBz1B,EAAKA,EAAIwf,IAAKxf,EAAI1S,GAAK0S,EAAI1S,GAAGkO,MAAMvjB,GAAKg/C,IAAKzmD,EACtE,CAEA,SAASwmD,GAAmBh3B,EAAKwf,EAAKhvC,IAChCkrB,GAAWsE,EAAK,0BAA4BA,EAAI1S,IAAMoO,GAAWsE,EAAI1S,GAAI,4BACzEkyB,EAAMsX,GAAsB92B,EAAKwf,EAAKhvC,IAE1C,IAAIsmC,EAAOtmC,GAAWA,EAAQsmC,OAC3BzV,GAAIme,EAAIN,UAAU56B,KAAM0b,EAAIwf,IAAIN,UAAU56B,MAAQ,GAAK,EAAI,GAC9D4yC,GAAkBl3B,EAAKm3B,GAAsBn3B,EAAKwf,EAAK1I,GAAM,IAEvDtmC,IAA8B,IAAnBA,EAAQilB,SAAqBuK,EAAI1S,IAAsC,YAAhC0S,EAAI1S,GAAGuB,UAAU,aACrE82B,GAAoB3lB,EAAI1S,GAC9B,CAEA,SAAS4pC,GAAkBl3B,EAAKwf,GAC1BA,EAAI8R,OAAOtxB,EAAIwf,OAEnBxf,EAAIwf,IAAMA,EAENxf,EAAI1S,KACN0S,EAAI1S,GAAGkO,MAAMguB,YAAc,EAC3BxpB,EAAI1S,GAAGkO,MAAMmuB,kBAAmB,EAChCruB,GAAqB0E,EAAI1S,KAE3BwjB,GAAY9Q,EAAK,iBAAkBA,GACrC,CAIA,SAASo3B,GAAiBp3B,GACxBk3B,GAAkBl3B,EAAKm3B,GAAsBn3B,EAAKA,EAAIwf,IAAK,MAAM,GACnE,CAIA,SAAS2X,GAAsBn3B,EAAKwf,EAAK1I,EAAMugB,GAE7C,IADA,IAAIvoC,EACKthB,EAAI,EAAGA,EAAIgyC,EAAIC,OAAOnxC,OAAQd,IAAK,CAC1C,IAAIskB,EAAQ0tB,EAAIC,OAAOjyC,GACnB0O,EAAMsjC,EAAIC,OAAOnxC,QAAU0xB,EAAIwf,IAAIC,OAAOnxC,QAAU0xB,EAAIwf,IAAIC,OAAOjyC,GACnE8pD,EAAYC,GAAWv3B,EAAKlO,EAAM+qB,OAAQ3gC,GAAOA,EAAI2gC,OAAQ/F,EAAMugB,GACnEG,EAAU1lC,EAAMxN,MAAQwN,EAAM+qB,OAASya,EAAYC,GAAWv3B,EAAKlO,EAAMxN,KAAMpI,GAAOA,EAAIoI,KAAMwyB,EAAMugB,IACtGvoC,GAAOwoC,GAAaxlC,EAAM+qB,QAAU2a,GAAW1lC,EAAMxN,QAClDwK,IAAOA,EAAM0wB,EAAIC,OAAOxxC,MAAM,EAAGT,IACtCshB,EAAIthB,GAAK,IAAIkkD,GAAM4F,EAAWE,GAElC,CACA,OAAO1oC,EAAM8iC,GAAmB5xB,EAAI1S,GAAIwB,EAAK0wB,EAAIE,WAAaF,CAChE,CAEA,SAASiY,GAAgBz3B,EAAKxQ,EAAKkoC,EAAQlgC,EAAK6/B,GAC9C,IAAIvpC,EAAOiS,GAAQC,EAAKxQ,EAAI1B,MAC5B,GAAIA,EAAK6Z,YAAe,IAAK,IAAIn6B,EAAI,EAAGA,EAAIsgB,EAAK6Z,YAAYr5B,SAAUd,EAAG,CACxE,IAAIo9B,EAAK9c,EAAK6Z,YAAYn6B,GAAI2R,EAAIyrB,EAAG1D,OAKjCywB,EAAqB,eAAgBx4C,GAAMA,EAAEy4C,WAAaz4C,EAAE8oB,cAC5D4vB,EAAsB,gBAAiB14C,GAAMA,EAAE24C,YAAc34C,EAAEipB,eAEnE,IAAgB,MAAXwC,EAAGxd,OAAiBuqC,EAAoB/sB,EAAGxd,MAAQoC,EAAIzB,GAAK6c,EAAGxd,KAAOoC,EAAIzB,OACjE,MAAT6c,EAAGvd,KAAewqC,EAAqBjtB,EAAGvd,IAAMmC,EAAIzB,GAAK6c,EAAGvd,GAAKmC,EAAIzB,KAAM,CAC9E,GAAIspC,IACFt8B,GAAO5b,EAAG,qBACNA,EAAE02C,mBAAmB,CACvB,GAAK/nC,EAAK6Z,YACL,GAAGn6B,EAAG,QAAQ,CADM,KAE3B,CAEF,IAAK2R,EAAE44C,OAAU,SAEjB,GAAIL,EAAQ,CACV,IAAIM,EAAO74C,EAAEoC,KAAKiW,EAAM,EAAI,GAAK,GAAIxlB,OAAO,EAG5C,IAFIwlB,EAAM,EAAIqgC,EAAqBF,KAC/BK,EAAOC,GAAQj4B,EAAKg4B,GAAOxgC,EAAKwgC,GAAQA,EAAKlqC,MAAQ0B,EAAI1B,KAAOA,EAAO,OACvEkqC,GAAQA,EAAKlqC,MAAQ0B,EAAI1B,OAAS9b,EAAOqvB,GAAI22B,EAAMN,MAAalgC,EAAM,EAAIxlB,EAAO,EAAIA,EAAO,GAC5F,OAAOylD,GAAgBz3B,EAAKg4B,EAAMxoC,EAAKgI,EAAK6/B,EAClD,CAEA,IAAIa,EAAM/4C,EAAEoC,KAAKiW,EAAM,GAAK,EAAI,GAGhC,OAFIA,EAAM,EAAImgC,EAAoBE,KAC9BK,EAAMD,GAAQj4B,EAAKk4B,EAAK1gC,EAAK0gC,EAAIpqC,MAAQ0B,EAAI1B,KAAOA,EAAO,OACxDoqC,EAAMT,GAAgBz3B,EAAKk4B,EAAK1oC,EAAKgI,EAAK6/B,GAAY,IAC/D,CACF,CACA,OAAO7nC,CACT,CAGA,SAAS+nC,GAAWv3B,EAAKxQ,EAAKkoC,EAAQ5gB,EAAMugB,GAC1C,IAAI7/B,EAAMsf,GAAQ,EACd7e,EAAQw/B,GAAgBz3B,EAAKxQ,EAAKkoC,EAAQlgC,EAAK6/B,KAC7CA,GAAYI,GAAgBz3B,EAAKxQ,EAAKkoC,EAAQlgC,GAAK,IACrDigC,GAAgBz3B,EAAKxQ,EAAKkoC,GAASlgC,EAAK6/B,KACtCA,GAAYI,GAAgBz3B,EAAKxQ,EAAKkoC,GAASlgC,GAAK,GAC1D,OAAKS,IACH+H,EAAIm4B,UAAW,EACR/2B,GAAIpB,EAAIxgB,MAAO,GAG1B,CAEA,SAASy4C,GAAQj4B,EAAKxQ,EAAKgI,EAAK1J,GAC9B,OAAI0J,EAAM,GAAe,GAAVhI,EAAIzB,GACbyB,EAAI1B,KAAOkS,EAAIxgB,MAAgBoiB,GAAQ5B,EAAKoB,GAAI5R,EAAI1B,KAAO,IACjD,KACL0J,EAAM,GAAKhI,EAAIzB,KAAOD,GAAQiS,GAAQC,EAAKxQ,EAAI1B,OAAOY,KAAKpgB,OAChEkhB,EAAI1B,KAAOkS,EAAIxgB,MAAQwgB,EAAI3b,KAAO,EAAY+c,GAAI5R,EAAI1B,KAAO,EAAG,GACtD,KAEP,IAAIsT,GAAI5R,EAAI1B,KAAM0B,EAAIzB,GAAKyJ,EAEtC,CAEA,SAAS4gC,GAAU9qC,GACjBA,EAAGsC,aAAawR,GAAI9T,EAAG4lC,YAAa,GAAI9xB,GAAI9T,EAAGme,YAAajW,EAC9D,CAKA,SAAS6iC,GAAar4B,EAAKyI,EAAQ+e,GACjC,IAAI74C,EAAM,CACR2pD,UAAU,EACVlrC,KAAMqb,EAAOrb,KACbC,GAAIob,EAAOpb,GACXqB,KAAM+Z,EAAO/Z,KACbiH,OAAQ8S,EAAO9S,OACf4iC,OAAQ,WAAc,OAAO5pD,EAAI2pD,UAAW,CAAM,GAWpD,OATI9Q,IAAU74C,EAAI64C,OAAS,SAAUp6B,EAAMC,EAAIqB,EAAMiH,GAC/CvI,IAAQze,EAAIye,KAAOwU,GAAQ5B,EAAK5S,IAChCC,IAAM1e,EAAI0e,GAAKuU,GAAQ5B,EAAK3S,IAC5BqB,IAAQ/f,EAAI+f,KAAOA,QACR1b,IAAX2iB,IAAwBhnB,EAAIgnB,OAASA,EAC3C,GACAoF,GAAOiF,EAAK,eAAgBA,EAAKrxB,GAC7BqxB,EAAI1S,IAAMyN,GAAOiF,EAAI1S,GAAI,eAAgB0S,EAAI1S,GAAI3e,GAEjDA,EAAI2pD,UACFt4B,EAAI1S,KAAM0S,EAAI1S,GAAGkO,MAAMguB,YAAc,GAClC,MAEF,CAACp8B,KAAMze,EAAIye,KAAMC,GAAI1e,EAAI0e,GAAIqB,KAAM/f,EAAI+f,KAAMiH,OAAQhnB,EAAIgnB,OAClE,CAIA,SAAS6iC,GAAWx4B,EAAKyI,EAAQgwB,GAC/B,GAAIz4B,EAAI1S,GAAI,CACV,IAAK0S,EAAI1S,GAAGkO,MAAS,OAAO5N,GAAUoS,EAAI1S,GAAIkrC,GAAlB5qC,CAA8BoS,EAAKyI,EAAQgwB,GACvE,GAAIz4B,EAAI1S,GAAGV,MAAM8rC,cAAiB,MACpC,CAEA,KAAIh9B,GAAWsE,EAAK,iBAAmBA,EAAI1S,IAAMoO,GAAWsE,EAAI1S,GAAI,mBAClEmb,EAAS4vB,GAAar4B,EAAKyI,GAAQ,IADrC,CAOA,IAAI7wB,EAAQivB,KAAqB4xB,GAAkBpvB,GAAqBrJ,EAAKyI,EAAOrb,KAAMqb,EAAOpb,IACjG,GAAIzV,EACF,IAAK,IAAIpK,EAAIoK,EAAMtJ,OAAS,EAAGd,GAAK,IAAKA,EACrCmrD,GAAgB34B,EAAK,CAAC5S,KAAMxV,EAAMpK,GAAG4f,KAAMC,GAAIzV,EAAMpK,GAAG6f,GAAIqB,KAAMlhB,EAAI,CAAC,IAAMi7B,EAAO/Z,KAAMiH,OAAQ8S,EAAO9S,cAE7GgjC,GAAgB34B,EAAKyI,EATvB,CAWF,CAEA,SAASkwB,GAAgB34B,EAAKyI,GAC5B,GAA0B,GAAtBA,EAAO/Z,KAAKpgB,QAAiC,IAAlBm6B,EAAO/Z,KAAK,IAA2C,GAA/B2S,GAAIoH,EAAOrb,KAAMqb,EAAOpb,IAA/E,CACA,IAAI+nC,EAAWhD,GAAsBpyB,EAAKyI,GAC1C0sB,GAAmBn1B,EAAKyI,EAAQ2sB,EAAUp1B,EAAI1S,GAAK0S,EAAI1S,GAAGkO,MAAMvjB,GAAKg/C,KAErE2B,GAAoB54B,EAAKyI,EAAQ2sB,EAAU5sB,GAAuBxI,EAAKyI,IACvE,IAAIowB,EAAU,GAEdrF,GAAWxzB,GAAK,SAAUA,EAAK4zB,GACxBA,IAAgD,GAAlCphD,EAAQqmD,EAAS74B,EAAIrY,WACtCmxC,GAAW94B,EAAIrY,QAAS8gB,GACxBowB,EAAQvmD,KAAK0tB,EAAIrY,UAEnBixC,GAAoB54B,EAAKyI,EAAQ,KAAMD,GAAuBxI,EAAKyI,GACrE,GAbkG,CAcpG,CAGA,SAASswB,GAAsB/4B,EAAK7vB,EAAM6oD,GACxC,IAAIC,EAAWj5B,EAAI1S,IAAM0S,EAAI1S,GAAGV,MAAM8rC,cACtC,IAAIO,GAAaD,EAAjB,CAQA,IANA,IAAwB14C,EAApB40C,EAAOl1B,EAAIrY,QAAgBytC,EAAWp1B,EAAIwf,IAC1CtoB,EAAiB,QAAR/mB,EAAiB+kD,EAAKn0C,KAAOm0C,EAAKf,OAAQwB,EAAe,QAARxlD,EAAiB+kD,EAAKf,OAASe,EAAKn0C,KAI9FvT,EAAI,EACDA,EAAI0pB,EAAO5oB,SAChBgS,EAAQ4W,EAAO1pB,GACXwrD,GAAqB14C,EAAMm/B,QAAWn/B,EAAMgxC,OAAOtxB,EAAIwf,KAAQl/B,EAAMm/B,QAFjDjyC,KAK1B,GAAIA,GAAK0pB,EAAO5oB,OAAhB,CAGA,IAFA4mD,EAAKT,WAAaS,EAAKR,cAAgB,OAE9B,CAEP,KADAp0C,EAAQ4W,EAAO3lB,OACLkuC,OAOH,IAAIwZ,EAET,YADA/hC,EAAO5kB,KAAKgO,GAEL,KAAM,CARb,GADAi1C,GAAuBj1C,EAAOq1C,GAC1BqD,IAAuB14C,EAAMgxC,OAAOtxB,EAAIwf,KAE1C,YADA5vB,GAAaoQ,EAAK1f,EAAO,CAACo1C,WAAW,IAGvCN,EAAW90C,CAKf,CAIA,IAAI44C,EAAc,GAClB3D,GAAuBH,EAAUO,GACjCA,EAAKrjD,KAAK,CAACkJ,QAAS09C,EAAavE,WAAYO,EAAKP,aAClDO,EAAKP,WAAar0C,EAAMq0C,cAAgBO,EAAKN,cA6B7C,IA3BA,IAAIhxC,EAAS8X,GAAWsE,EAAK,iBAAmBA,EAAI1S,IAAMoO,GAAWsE,EAAI1S,GAAI,gBAEzEuW,EAAO,SAAWr2B,GACpB,IAAIi7B,EAASnoB,EAAM9E,QAAQhO,GAE3B,GADAi7B,EAAO9S,OAASxlB,EACZyT,IAAWy0C,GAAar4B,EAAKyI,GAAQ,GAEvC,OADAvR,EAAO5oB,OAAS,EACT,CAAC,EAGV4qD,EAAY5mD,KAAKuiD,GAAwB70B,EAAKyI,IAE9C,IAAIl4B,EAAQ/C,EAAI4kD,GAAsBpyB,EAAKyI,GAAUtS,EAAIe,GACzD0hC,GAAoB54B,EAAKyI,EAAQl4B,EAAOwlD,GAAc/1B,EAAKyI,KACtDj7B,GAAKwyB,EAAI1S,IAAM0S,EAAI1S,GAAG82B,eAAe,CAACh3B,KAAMqb,EAAOrb,KAAMC,GAAI6kC,GAAUzpB,KAC5E,IAAIowB,EAAU,GAGdrF,GAAWxzB,GAAK,SAAUA,EAAK4zB,GACxBA,IAAgD,GAAlCphD,EAAQqmD,EAAS74B,EAAIrY,WACtCmxC,GAAW94B,EAAIrY,QAAS8gB,GACxBowB,EAAQvmD,KAAK0tB,EAAIrY,UAEnBixC,GAAoB54B,EAAKyI,EAAQ,KAAMstB,GAAc/1B,EAAKyI,GAC5D,GACF,EAESnP,EAAMhZ,EAAM9E,QAAQlN,OAAS,EAAGgrB,GAAO,IAAKA,EAAK,CACxD,IAAI6/B,EAAWt1B,EAAMvK,GAErB,GAAK6/B,EAAW,OAAOA,EAASC,CAClC,CAxDiC,CAba,CAsEhD,CAIA,SAASC,GAASr5B,EAAKs5B,GACrB,GAAgB,GAAZA,IACJt5B,EAAIxgB,OAAS85C,EACbt5B,EAAIwf,IAAM,IAAI6R,GAAU5+C,EAAIutB,EAAIwf,IAAIC,QAAQ,SAAU3tB,GAAS,OAAO,IAAI4/B,GACxEtwB,GAAItP,EAAM+qB,OAAO/uB,KAAOwrC,EAAUxnC,EAAM+qB,OAAO9uB,IAC/CqT,GAAItP,EAAMxN,KAAKwJ,KAAOwrC,EAAUxnC,EAAMxN,KAAKyJ,IAC1C,IAAIiS,EAAIwf,IAAIE,WACX1f,EAAI1S,IAAI,CACVywB,GAAU/d,EAAI1S,GAAI0S,EAAIxgB,MAAOwgB,EAAIxgB,MAAQ85C,EAAUA,GACnD,IAAK,IAAIptB,EAAIlM,EAAI1S,GAAG/C,QAAS3a,EAAIs8B,EAAE7G,SAAUz1B,EAAIs8B,EAAE5G,OAAQ11B,IACvD6uC,GAAcze,EAAI1S,GAAI1d,EAAG,SAC/B,CACF,CAIA,SAASgpD,GAAoB54B,EAAKyI,EAAQ2sB,EAAUhuB,GAClD,GAAIpH,EAAI1S,KAAO0S,EAAI1S,GAAGkO,MAClB,OAAO5N,GAAUoS,EAAI1S,GAAIsrC,GAAlBhrC,CAAuCoS,EAAKyI,EAAQ2sB,EAAUhuB,GAEzE,GAAIqB,EAAOpb,GAAGS,KAAOkS,EAAIxgB,MACvB65C,GAASr5B,EAAKyI,EAAO/Z,KAAKpgB,OAAS,GAAKm6B,EAAOpb,GAAGS,KAAO2a,EAAOrb,KAAKU,YAGvE,KAAI2a,EAAOrb,KAAKU,KAAOkS,EAAIyL,YAA3B,CAGA,GAAIhD,EAAOrb,KAAKU,KAAOkS,EAAIxgB,MAAO,CAChC,IAAIhO,EAAQi3B,EAAO/Z,KAAKpgB,OAAS,GAAK0xB,EAAIxgB,MAAQipB,EAAOrb,KAAKU,MAC9DurC,GAASr5B,EAAKxuB,GACdi3B,EAAS,CAACrb,KAAMgU,GAAIpB,EAAIxgB,MAAO,GAAI6N,GAAI+T,GAAIqH,EAAOpb,GAAGS,KAAOtc,EAAOi3B,EAAOpb,GAAGU,IACnEW,KAAM,CAACyH,EAAIsS,EAAO/Z,OAAQiH,OAAQ8S,EAAO9S,OACrD,CACA,IAAIhR,EAAOqb,EAAIyL,WACXhD,EAAOpb,GAAGS,KAAOnJ,IACnB8jB,EAAS,CAACrb,KAAMqb,EAAOrb,KAAMC,GAAI+T,GAAIzc,EAAMob,GAAQC,EAAKrb,GAAM+J,KAAKpgB,QACzDogB,KAAM,CAAC+Z,EAAO/Z,KAAK,IAAKiH,OAAQ8S,EAAO9S,SAGnD8S,EAAOxqB,QAAUoiB,GAAWL,EAAKyI,EAAOrb,KAAMqb,EAAOpb,IAEhD+nC,IAAYA,EAAWhD,GAAsBpyB,EAAKyI,IACnDzI,EAAI1S,GAAMisC,GAA4Bv5B,EAAI1S,GAAImb,EAAQrB,GACnD2rB,GAAU/yB,EAAKyI,EAAQrB,GAC9B4vB,GAAmBh3B,EAAKo1B,EAAU5/B,GAE9BwK,EAAIm4B,UAAYZ,GAAWv3B,EAAKoB,GAAIpB,EAAIkzB,YAAa,MACrDlzB,EAAIm4B,UAAW,EAvB6B,CAwBlD,CAIA,SAASoB,GAA4BjsC,EAAImb,EAAQrB,GAC/C,IAAIpH,EAAM1S,EAAG0S,IAAKzV,EAAU+C,EAAG/C,QAAS6C,EAAOqb,EAAOrb,KAAMC,EAAKob,EAAOpb,GAEpEmsC,GAAqB,EAAOC,EAAkBrsC,EAAKU,KAClDR,EAAG9c,QAAQ2lC,eACdsjB,EAAkB/4B,GAAOwK,GAAWnL,GAAQC,EAAK5S,EAAKU,QACtDkS,EAAIM,KAAKm5B,EAAiBpsC,EAAGS,KAAO,GAAG,SAAUA,GAC/C,GAAIA,GAAQvD,EAAQ4hB,QAElB,OADAqtB,GAAqB,GACd,CAEX,KAGEx5B,EAAIwf,IAAIntC,SAASo2B,EAAOrb,KAAMqb,EAAOpb,KAAO,GAC5CiO,GAAqBhO,GAEzBylC,GAAU/yB,EAAKyI,EAAQrB,EAAOmF,GAAejf,IAExCA,EAAG9c,QAAQ2lC,eACdnW,EAAIM,KAAKm5B,EAAiBrsC,EAAKU,KAAO2a,EAAO/Z,KAAKpgB,QAAQ,SAAUwf,GAClE,IAAIsL,EAAM2S,GAAWje,GACjBsL,EAAM7O,EAAQ6hB,gBAChB7hB,EAAQ4hB,QAAUre,EAClBvD,EAAQ6hB,cAAgBhT,EACxB7O,EAAQ8hB,gBAAiB,EACzBmtB,GAAqB,EAEzB,IACIA,IAAsBlsC,EAAGkO,MAAMouB,eAAgB,IAGrDhjB,GAAgB5G,EAAK5S,EAAKU,MAC1Bs4B,GAAY94B,EAAI,KAEhB,IAAI0wB,EAAUvV,EAAO/Z,KAAKpgB,QAAU+e,EAAGS,KAAOV,EAAKU,MAAQ,EAEvD2a,EAAOC,KACPqV,GAAUzwB,GACLF,EAAKU,MAAQT,EAAGS,MAA8B,GAAtB2a,EAAO/Z,KAAKpgB,QAAgBukD,GAAkBvlC,EAAG0S,IAAKyI,GAGnFsV,GAAUzwB,EAAIF,EAAKU,KAAMT,EAAGS,KAAO,EAAGkwB,GAFtCS,GAAcnxB,EAAIF,EAAKU,KAAM,QAIjC,IAAI4rC,EAAiBh+B,GAAWpO,EAAI,WAAYqsC,EAAgBj+B,GAAWpO,EAAI,UAC/E,GAAIqsC,GAAiBD,EAAgB,CACnC,IAAI/qD,EAAM,CACRye,KAAMA,EAAMC,GAAIA,EAChBqB,KAAM+Z,EAAO/Z,KACbzQ,QAASwqB,EAAOxqB,QAChB0X,OAAQ8S,EAAO9S,QAEbgkC,GAAiB7oB,GAAYxjB,EAAI,SAAUA,EAAI3e,GAC/C+qD,IAAmBpsC,EAAGkO,MAAMkuB,aAAep8B,EAAGkO,MAAMkuB,WAAa,KAAKp3C,KAAK3D,EACjF,CACA2e,EAAG/C,QAAQy4B,kBAAoB,IACjC,CAEA,SAASn1B,GAAamS,EAAKrH,EAAMvL,EAAMC,EAAIsI,GACzC,IAAI9J,EAECwB,IAAMA,EAAKD,GACZiU,GAAIhU,EAAID,GAAQ,IAA2BA,GAArBvB,EAAS,CAACwB,EAAID,IAAqB,GAAIC,EAAKxB,EAAO,IAC1D,iBAAR8M,IAAoBA,EAAOqH,EAAI45B,WAAWjhC,IACrD6/B,GAAWx4B,EAAK,CAAC5S,KAAMA,EAAMC,GAAIA,EAAIqB,KAAMiK,EAAMhD,OAAQA,GAC3D,CAIA,SAASkkC,GAAoBrqC,EAAKpC,EAAMC,EAAIrb,GACtCqb,EAAKmC,EAAI1B,KACX0B,EAAI1B,MAAQ9b,EACHob,EAAOoC,EAAI1B,OACpB0B,EAAI1B,KAAOV,EACXoC,EAAIzB,GAAK,EAEb,CASA,SAAS+rC,GAAgBl8C,EAAOwP,EAAMC,EAAIrb,GACxC,IAAK,IAAIxE,EAAI,EAAGA,EAAIoQ,EAAMtP,SAAUd,EAAG,CACrC,IAAIusD,EAAMn8C,EAAMpQ,GAAIwsD,GAAK,EACzB,GAAID,EAAIta,OAAR,CACOsa,EAAIE,UAAUF,EAAMn8C,EAAMpQ,GAAKusD,EAAItI,YAAgBwI,QAAS,GACjE,IAAK,IAAI7gD,EAAI,EAAGA,EAAI2gD,EAAIta,OAAOnxC,OAAQ8K,IACrCygD,GAAoBE,EAAIta,OAAOrmC,GAAGyjC,OAAQzvB,EAAMC,EAAIrb,GACpD6nD,GAAoBE,EAAIta,OAAOrmC,GAAGkL,KAAM8I,EAAMC,EAAIrb,EAGtD,KAPA,CAQA,IAAK,IAAIooB,EAAM,EAAGA,EAAM2/B,EAAIv+C,QAAQlN,SAAU8rB,EAAK,CACjD,IAAI7K,EAAMwqC,EAAIv+C,QAAQ4e,GACtB,GAAI/M,EAAKkC,EAAInC,KAAKU,KAChByB,EAAInC,KAAOgU,GAAI7R,EAAInC,KAAKU,KAAO9b,EAAMud,EAAInC,KAAKW,IAC9CwB,EAAIlC,GAAK+T,GAAI7R,EAAIlC,GAAGS,KAAO9b,EAAMud,EAAIlC,GAAGU,SACnC,GAAIX,GAAQmC,EAAIlC,GAAGS,KAAM,CAC9BksC,GAAK,EACL,KACF,CACF,CACKA,IACHp8C,EAAMrL,OAAO,EAAG/E,EAAI,GACpBA,EAAI,EAbN,CAeF,CACF,CAEA,SAASsrD,GAAW5D,EAAMzsB,GACxB,IAAIrb,EAAOqb,EAAOrb,KAAKU,KAAMT,EAAKob,EAAOpb,GAAGS,KAAM9b,EAAOy2B,EAAO/Z,KAAKpgB,QAAU+e,EAAKD,GAAQ,EAC5F0sC,GAAgB5E,EAAKn0C,KAAMqM,EAAMC,EAAIrb,GACrC8nD,GAAgB5E,EAAKf,OAAQ/mC,EAAMC,EAAIrb,EACzC,CAKA,SAASkoD,GAAWl6B,EAAKm6B,EAAQC,EAAY5yB,GAC3C,IAAI7G,EAAKw5B,EAAQrsC,EAAOqsC,EAGxB,MAFqB,iBAAVA,EAAsBrsC,EAAOiS,GAAQC,EAAK2B,GAAS3B,EAAKm6B,IAC5Dx5B,EAAKD,GAAOy5B,GACT,MAANx5B,EAAqB,MACrB6G,EAAG1Z,EAAM6S,IAAOX,EAAI1S,IAAMmxB,GAAcze,EAAI1S,GAAIqT,EAAIy5B,GACjDtsC,EACT,CAeA,SAASusC,GAAUtrC,GACjBphB,KAAKohB,MAAQA,EACbphB,KAAKue,OAAS,KAEd,IADA,IAAIuU,EAAS,EACJjzB,EAAI,EAAGA,EAAIuhB,EAAMzgB,SAAUd,EAClCuhB,EAAMvhB,GAAG0e,OAASve,KAClB8yB,GAAU1R,EAAMvhB,GAAGizB,OAErB9yB,KAAK8yB,OAASA,CAChB,CAoCA,SAAS65B,GAAYp6B,GACnBvyB,KAAKuyB,SAAWA,EAEhB,IADA,IAAI7b,EAAO,EAAGoc,EAAS,EACdjzB,EAAI,EAAGA,EAAI0yB,EAAS5xB,SAAUd,EAAG,CACxC,IAAIugB,EAAKmS,EAAS1yB,GAClB6W,GAAQ0J,EAAGqS,YAAaK,GAAU1S,EAAG0S,OACrC1S,EAAG7B,OAASve,IACd,CACAA,KAAK0W,KAAOA,EACZ1W,KAAK8yB,OAASA,EACd9yB,KAAKue,OAAS,IAChB,CAtgCAwlC,GAAM1jD,UAAUof,KAAO,WAAc,OAAOsU,GAAO/zB,KAAKkvC,OAAQlvC,KAAK2W,KAAM,EAC3EotC,GAAM1jD,UAAUqf,GAAK,WAAc,OAAOoU,GAAO9zB,KAAKkvC,OAAQlvC,KAAK2W,KAAM,EACzEotC,GAAM1jD,UAAU2xC,MAAQ,WAAc,OAAOhyC,KAAK2W,KAAKwJ,MAAQngB,KAAKkvC,OAAO/uB,MAAQngB,KAAK2W,KAAKyJ,IAAMpgB,KAAKkvC,OAAO9uB,EAAG,EAu9BlHssC,GAAUrsD,UAAY,CACpBoyB,UAAW,WAAa,OAAOzyB,KAAKohB,MAAMzgB,MAAO,EAGjDisD,YAAa,SAASnpD,EAAIqjB,GACxB,IAAK,IAAIjnB,EAAI4D,EAAIyH,EAAIzH,EAAKqjB,EAAGjnB,EAAIqL,IAAKrL,EAAG,CACvC,IAAIsgB,EAAOngB,KAAKohB,MAAMvhB,GACtBG,KAAK8yB,QAAU3S,EAAK2S,OACpBiM,GAAY5e,GACZgjB,GAAYhjB,EAAM,SACpB,CACAngB,KAAKohB,MAAMxc,OAAOnB,EAAIqjB,EACxB,EAGAb,SAAU,SAAS7E,GACjBA,EAAMzc,KAAKpE,MAAM6gB,EAAOphB,KAAKohB,MAC/B,EAIAyrC,YAAa,SAASppD,EAAI2d,EAAO0R,GAC/B9yB,KAAK8yB,QAAUA,EACf9yB,KAAKohB,MAAQphB,KAAKohB,MAAM9gB,MAAM,EAAGmD,GAAIsB,OAAOqc,GAAOrc,OAAO/E,KAAKohB,MAAM9gB,MAAMmD,IAC3E,IAAK,IAAI5D,EAAI,EAAGA,EAAIuhB,EAAMzgB,SAAUd,EAAKuhB,EAAMvhB,GAAG0e,OAASve,IAC7D,EAGA8sD,MAAO,SAASrpD,EAAIqjB,EAAG+S,GACrB,IAAK,IAAI3uB,EAAIzH,EAAKqjB,EAAGrjB,EAAKyH,IAAKzH,EAC3B,GAAIo2B,EAAG75B,KAAKohB,MAAM3d,IAAQ,OAAO,CACvC,GAgBFkpD,GAAYtsD,UAAY,CACtBoyB,UAAW,WAAa,OAAOzyB,KAAK0W,IAAK,EAEzCk2C,YAAa,SAASnpD,EAAIqjB,GACxB9mB,KAAK0W,MAAQoQ,EACb,IAAK,IAAIjnB,EAAI,EAAGA,EAAIG,KAAKuyB,SAAS5xB,SAAUd,EAAG,CAC7C,IAAIye,EAAQte,KAAKuyB,SAAS1yB,GAAI2yB,EAAKlU,EAAMmU,YACzC,GAAIhvB,EAAK+uB,EAAI,CACX,IAAIkuB,EAAKx0C,KAAKiE,IAAI2W,EAAG0L,EAAK/uB,GAAKkyC,EAAYr3B,EAAMwU,OAIjD,GAHAxU,EAAMsuC,YAAYnpD,EAAIi9C,GACtB1gD,KAAK8yB,QAAU6iB,EAAYr3B,EAAMwU,OAC7BN,GAAMkuB,IAAM1gD,KAAKuyB,SAAS3tB,OAAO/E,IAAK,GAAIye,EAAMC,OAAS,MAC5C,IAAZuI,GAAK45B,GAAY,MACtBj9C,EAAK,CACP,MAASA,GAAM+uB,CACjB,CAGA,GAAIxyB,KAAK0W,KAAOoQ,EAAI,KACf9mB,KAAKuyB,SAAS5xB,OAAS,KAAOX,KAAKuyB,SAAS,aAAcm6B,KAAa,CAC1E,IAAItrC,EAAQ,GACZphB,KAAKimB,SAAS7E,GACdphB,KAAKuyB,SAAW,CAAC,IAAIm6B,GAAUtrC,IAC/BphB,KAAKuyB,SAAS,GAAGhU,OAASve,IAC5B,CACF,EAEAimB,SAAU,SAAS7E,GACjB,IAAK,IAAIvhB,EAAI,EAAGA,EAAIG,KAAKuyB,SAAS5xB,SAAUd,EAAKG,KAAKuyB,SAAS1yB,GAAGomB,SAAS7E,EAC7E,EAEAyrC,YAAa,SAASppD,EAAI2d,EAAO0R,GAC/B9yB,KAAK0W,MAAQ0K,EAAMzgB,OACnBX,KAAK8yB,QAAUA,EACf,IAAK,IAAIjzB,EAAI,EAAGA,EAAIG,KAAKuyB,SAAS5xB,SAAUd,EAAG,CAC7C,IAAIye,EAAQte,KAAKuyB,SAAS1yB,GAAI2yB,EAAKlU,EAAMmU,YACzC,GAAIhvB,GAAM+uB,EAAI,CAEZ,GADAlU,EAAMuuC,YAAYppD,EAAI2d,EAAO0R,GACzBxU,EAAM8C,OAAS9C,EAAM8C,MAAMzgB,OAAS,GAAI,CAI1C,IADA,IAAI6K,EAAY8S,EAAM8C,MAAMzgB,OAAS,GAAK,GACjCkhB,EAAMrW,EAAWqW,EAAMvD,EAAM8C,MAAMzgB,QAAS,CACnD,IAAIosD,EAAO,IAAIL,GAAUpuC,EAAM8C,MAAM9gB,MAAMuhB,EAAKA,GAAO,KACvDvD,EAAMwU,QAAUi6B,EAAKj6B,OACrB9yB,KAAKuyB,SAAS3tB,SAAS/E,EAAG,EAAGktD,GAC7BA,EAAKxuC,OAASve,IAChB,CACAse,EAAM8C,MAAQ9C,EAAM8C,MAAM9gB,MAAM,EAAGkL,GACnCxL,KAAKgtD,YACP,CACA,KACF,CACAvpD,GAAM+uB,CACR,CACF,EAGAw6B,WAAY,WACV,KAAIhtD,KAAKuyB,SAAS5xB,QAAU,IAA5B,CACA,IAAIssD,EAAKjtD,KACT,EAAG,CACD,IACIktD,EAAU,IAAIP,GADJM,EAAG16B,SAAS3tB,OAAOqoD,EAAG16B,SAAS5xB,OAAS,EAAG,IAEzD,GAAKssD,EAAG1uC,OAKF,CACJ0uC,EAAGv2C,MAAQw2C,EAAQx2C,KACnBu2C,EAAGn6B,QAAUo6B,EAAQp6B,OACrB,IAAIq6B,EAAUtoD,EAAQooD,EAAG1uC,OAAOgU,SAAU06B,GAC1CA,EAAG1uC,OAAOgU,SAAS3tB,OAAOuoD,EAAU,EAAG,EAAGD,EAC5C,KAVgB,CACd,IAAIl1B,EAAO,IAAI20B,GAAYM,EAAG16B,UAC9ByF,EAAKzZ,OAAS0uC,EACdA,EAAG16B,SAAW,CAACyF,EAAMk1B,GACrBD,EAAKj1B,CACR,CAMCk1B,EAAQ3uC,OAAS0uC,EAAG1uC,MACtB,OAAS0uC,EAAG16B,SAAS5xB,OAAS,IAC9BssD,EAAG1uC,OAAOyuC,YAlB+B,CAmB3C,EAEAF,MAAO,SAASrpD,EAAIqjB,EAAG+S,GACrB,IAAK,IAAIh6B,EAAI,EAAGA,EAAIG,KAAKuyB,SAAS5xB,SAAUd,EAAG,CAC7C,IAAIye,EAAQte,KAAKuyB,SAAS1yB,GAAI2yB,EAAKlU,EAAMmU,YACzC,GAAIhvB,EAAK+uB,EAAI,CACX,IAAI46B,EAAOlhD,KAAKiE,IAAI2W,EAAG0L,EAAK/uB,GAC5B,GAAI6a,EAAMwuC,MAAMrpD,EAAI2pD,EAAMvzB,GAAO,OAAO,EACxC,GAAmB,IAAd/S,GAAKsmC,GAAc,MACxB3pD,EAAK,CACP,MAASA,GAAM+uB,CACjB,CACF,GAKF,IAAI66B,GAAa,SAASh7B,EAAKhO,EAAMxhB,GACnC,GAAIA,EAAW,IAAK,IAAIyqD,KAAOzqD,EAAeA,EAAQ6jB,eAAe4mC,KACjEttD,KAAKstD,GAAOzqD,EAAQyqD,IACxBttD,KAAKqyB,IAAMA,EACXryB,KAAKqkB,KAAOA,CACd,EAoCA,SAASkpC,GAA6B5tC,EAAIQ,EAAM9b,GAC1C65B,GAAa/d,IAAUR,EAAGkO,OAASlO,EAAGkO,MAAMwe,WAAc1sB,EAAG0S,IAAIga,YACjEyL,GAAen4B,EAAItb,EACzB,CAEA,SAASmpD,GAAcn7B,EAAKm6B,EAAQnoC,EAAMxhB,GACxC,IAAIw+B,EAAS,IAAIgsB,GAAWh7B,EAAKhO,EAAMxhB,GACnC8c,EAAK0S,EAAI1S,GAgBb,OAfIA,GAAM0hB,EAAO6E,YAAavmB,EAAG/C,QAAQkkC,cAAe,GACxDyL,GAAWl6B,EAAKm6B,EAAQ,UAAU,SAAUrsC,GAC1C,IAAI0lB,EAAU1lB,EAAK0lB,UAAY1lB,EAAK0lB,QAAU,IAI9C,GAHuB,MAAnBxE,EAAOosB,SAAoB5nB,EAAQlhC,KAAK08B,GACrCwE,EAAQjhC,OAAOsH,KAAKiE,IAAI01B,EAAQllC,OAAQuL,KAAKC,IAAI,EAAGk1B,EAAOosB,WAAY,EAAGpsB,GACjFA,EAAOlhB,KAAOA,EACVR,IAAOoe,GAAa1L,EAAKlS,GAAO,CAClC,IAAIutC,EAAexvB,GAAa/d,GAAQkS,EAAIga,UAC5CxZ,GAAiB1S,EAAMA,EAAK2S,OAAS2T,GAAapF,IAC9CqsB,GAAgB5V,GAAen4B,EAAI0hB,EAAOvO,QAC9CnT,EAAGkO,MAAM4b,aAAc,CACzB,CACA,OAAO,CACT,IACI9pB,GAAMwjB,GAAYxjB,EAAI,kBAAmBA,EAAI0hB,EAAyB,iBAAVmrB,EAAqBA,EAASz5B,GAAOy5B,IAC9FnrB,CACT,CA1DAgsB,GAAWhtD,UAAUqI,MAAQ,WAC3B,IAAIiX,EAAK3f,KAAKqyB,IAAI1S,GAAImmB,EAAK9lC,KAAKmgB,KAAK0lB,QAAS1lB,EAAOngB,KAAKmgB,KAAM6S,EAAKD,GAAO5S,GAC5E,GAAU,MAAN6S,GAAe8S,EAAnB,CACA,IAAK,IAAIjmC,EAAI,EAAGA,EAAIimC,EAAGnlC,SAAUd,EAASimC,EAAGjmC,IAAMG,MAAQ8lC,EAAGlhC,OAAO/E,IAAK,GACrEimC,EAAGnlC,SAAUwf,EAAK0lB,QAAU,MACjC,IAAI/S,EAAS2T,GAAazmC,MAC1B6yB,GAAiB1S,EAAMjU,KAAKC,IAAI,EAAGgU,EAAK2S,OAASA,IAC7CnT,IACFi+B,GAAQj+B,GAAI,WACV4tC,GAA6B5tC,EAAIQ,GAAO2S,GACxCge,GAAcnxB,EAAIqT,EAAI,SACxB,IACAmQ,GAAYxjB,EAAI,oBAAqBA,EAAI3f,KAAMgzB,GAVjB,CAYlC,EAEAq6B,GAAWhtD,UAAU8M,QAAU,WAC3B,IAAIwgD,EAAS3tD,KAEX4tD,EAAO5tD,KAAK8yB,OAAQnT,EAAK3f,KAAKqyB,IAAI1S,GAAIQ,EAAOngB,KAAKmgB,KACtDngB,KAAK8yB,OAAS,KACd,IAAIzuB,EAAOoiC,GAAazmC,MAAQ4tD,EAC3BvpD,IACA05B,GAAa/9B,KAAKqyB,IAAKlS,IAAS0S,GAAiB1S,EAAMA,EAAK2S,OAASzuB,GACtEsb,GACFi+B,GAAQj+B,GAAI,WACVA,EAAGkO,MAAM4b,aAAc,EACvB8jB,GAA6B5tC,EAAIQ,EAAM9b,GACvC8+B,GAAYxjB,EAAI,oBAAqBA,EAAIguC,EAAQ56B,GAAO5S,GAC1D,IAEJ,EACA6N,GAAWq/B,IA2CX,IAAIQ,GAAe,EAEfC,GAAa,SAASz7B,EAAK7vB,GAC7BxC,KAAKohB,MAAQ,GACbphB,KAAKwC,KAAOA,EACZxC,KAAKqyB,IAAMA,EACXryB,KAAKsK,KAAOujD,EACd,EAiHA,SAASE,GAAS17B,EAAK5S,EAAMC,EAAI7c,EAASL,GAIxC,GAAIK,GAAWA,EAAQujD,OAAU,OAAO4H,GAAe37B,EAAK5S,EAAMC,EAAI7c,EAASL,GAE/E,GAAI6vB,EAAI1S,KAAO0S,EAAI1S,GAAGkO,MAAS,OAAO5N,GAAUoS,EAAI1S,GAAIouC,GAAlB9tC,CAA4BoS,EAAK5S,EAAMC,EAAI7c,EAASL,GAE1F,IAAI+2B,EAAS,IAAIu0B,GAAWz7B,EAAK7vB,GAAO6B,EAAOqvB,GAAIjU,EAAMC,GAGzD,GAFI7c,GAAWyjB,EAAQzjB,EAAS02B,GAAQ,GAEpCl1B,EAAO,GAAa,GAARA,IAAuC,IAA1Bk1B,EAAOkC,eAChC,OAAOlC,EAQX,GAPIA,EAAO00B,eAET10B,EAAO2D,WAAY,EACnB3D,EAAOyE,WAAalZ,EAAK,OAAQ,CAACyU,EAAO00B,cAAe,qBACnDprD,EAAQkjC,mBAAqBxM,EAAOyE,WAAWjZ,aAAa,mBAAoB,QACjFliB,EAAQ03B,aAAchB,EAAOyE,WAAWzD,YAAa,IAEvDhB,EAAO2D,UAAW,CACpB,GAAII,GAA0BjL,EAAK5S,EAAKU,KAAMV,EAAMC,EAAI6Z,IACpD9Z,EAAKU,MAAQT,EAAGS,MAAQmd,GAA0BjL,EAAK3S,EAAGS,KAAMV,EAAMC,EAAI6Z,GAC1E,MAAM,IAAIxnB,MAAM,oEACpBsnB,IACF,CAEIE,EAAO20B,cACP1G,GAAmBn1B,EAAK,CAAC5S,KAAMA,EAAMC,GAAIA,EAAIsI,OAAQ,YAAaqK,EAAIwf,IAAKyX,KAE/E,IAAsCrN,EAAlCkS,EAAU1uC,EAAKU,KAAMR,EAAK0S,EAAI1S,GA0BlC,GAzBA0S,EAAIM,KAAKw7B,EAASzuC,EAAGS,KAAO,GAAG,SAAUA,GACnCR,GAAM4Z,EAAO2D,YAAcvd,EAAG9c,QAAQ2lC,cAAgBjL,GAAWpd,IAASR,EAAG/C,QAAQ4hB,UACrFyd,GAAgB,GAChB1iB,EAAO2D,WAAaixB,GAAW1uC,EAAKU,MAAQ0S,GAAiB1S,EAAM,GACvEyZ,GAAczZ,EAAM,IAAImZ,GAAWC,EACA40B,GAAW1uC,EAAKU,KAAOV,EAAKW,GAAK,KACjC+tC,GAAWzuC,EAAGS,KAAOT,EAAGU,GAAK,MAAOiS,EAAI1S,IAAM0S,EAAI1S,GAAGkO,SACtFsgC,CACJ,IAEI50B,EAAO2D,WAAa7K,EAAIM,KAAKlT,EAAKU,KAAMT,EAAGS,KAAO,GAAG,SAAUA,GAC7D4d,GAAa1L,EAAKlS,IAAS0S,GAAiB1S,EAAM,EACxD,IAEIoZ,EAAO60B,cAAgB3mD,GAAG8xB,EAAQ,qBAAqB,WAAc,OAAOA,EAAO7wB,OAAS,IAE5F6wB,EAAOsC,WACTzC,MACI/G,EAAIrY,QAAQ5G,KAAKzS,QAAU0xB,EAAIrY,QAAQwsC,OAAO7lD,SAC9C0xB,EAAIg8B,gBAEN90B,EAAO2D,YACT3D,EAAOjvB,KAAOujD,GACdt0B,EAAO6wB,QAAS,GAEdzqC,EAAI,CAGN,GADIs8B,IAAiBt8B,EAAGkO,MAAMouB,eAAgB,GAC1C1iB,EAAO2D,UACPkT,GAAUzwB,EAAIF,EAAKU,KAAMT,EAAGS,KAAO,QAClC,GAAIoZ,EAAO3kB,WAAa2kB,EAAO6G,YAAc7G,EAAO8G,UAAY9G,EAAO+G,KACnE/G,EAAOvyB,YAAcuyB,EAAOtb,MACjC,IAAK,IAAIpe,EAAI4f,EAAKU,KAAMtgB,GAAK6f,EAAGS,KAAMtgB,IAAOixC,GAAcnxB,EAAI9f,EAAG,QAClE05B,EAAO6wB,QAAUX,GAAiB9pC,EAAG0S,KACzC8Q,GAAYxjB,EAAI,cAAeA,EAAI4Z,EACrC,CACA,OAAOA,CACT,CAlLAu0B,GAAWztD,UAAUqI,MAAQ,WAC3B,IAAI1I,KAAKkoD,kBAAT,CACA,IAAIvoC,EAAK3f,KAAKqyB,IAAI1S,GAAI2uC,EAAS3uC,IAAOA,EAAGkO,MAEzC,GADIygC,GAAU1S,GAAej8B,GACzBoO,GAAW/tB,KAAM,SAAU,CAC7B,IAAIsqB,EAAQtqB,KAAK4T,OACb0W,GAAS6Y,GAAYnjC,KAAM,QAASsqB,EAAM7K,KAAM6K,EAAM5K,GAC5D,CAEA,IADA,IAAIvP,EAAM,KAAMhE,EAAM,KACbtM,EAAI,EAAGA,EAAIG,KAAKohB,MAAMzgB,SAAUd,EAAG,CAC1C,IAAIsgB,EAAOngB,KAAKohB,MAAMvhB,GAClB65B,EAAOF,GAAiBrZ,EAAK6Z,YAAah6B,MAC1C2f,IAAO3f,KAAKk9B,UAAa4T,GAAcnxB,EAAIoT,GAAO5S,GAAO,QACpDR,IACQ,MAAX+Z,EAAKha,KAAcvT,EAAM4mB,GAAO5S,IACnB,MAAbuZ,EAAKja,OAAgBtP,EAAM4iB,GAAO5S,KAExCA,EAAK6Z,YAAcL,GAAiBxZ,EAAK6Z,YAAaN,GACrC,MAAbA,EAAKja,MAAgBzf,KAAKk9B,YAAca,GAAa/9B,KAAKqyB,IAAKlS,IAASR,GACxEkT,GAAiB1S,EAAM8uB,GAAWtvB,EAAG/C,SAC3C,CACA,GAAI+C,GAAM3f,KAAKk9B,YAAcvd,EAAG9c,QAAQ2lC,aAAgB,IAAK,IAAI7c,EAAM,EAAGA,EAAM3rB,KAAKohB,MAAMzgB,SAAUgrB,EAAK,CACxG,IAAI4iC,EAAShxB,GAAWv9B,KAAKohB,MAAMuK,IAAOF,EAAM2S,GAAWmwB,GACvD9iC,EAAM9L,EAAG/C,QAAQ6hB,gBACnB9e,EAAG/C,QAAQ4hB,QAAU+vB,EACrB5uC,EAAG/C,QAAQ6hB,cAAgBhT,EAC3B9L,EAAG/C,QAAQ8hB,gBAAiB,EAEhC,CAEW,MAAPvuB,GAAewP,GAAM3f,KAAKk9B,WAAakT,GAAUzwB,EAAIxP,EAAKhE,EAAM,GACpEnM,KAAKohB,MAAMzgB,OAAS,EACpBX,KAAKkoD,mBAAoB,EACrBloD,KAAKoqD,QAAUpqD,KAAKqyB,IAAIm4B,WAC1BxqD,KAAKqyB,IAAIm4B,UAAW,EAChB7qC,GAAM8pC,GAAiB9pC,EAAG0S,MAE5B1S,GAAMwjB,GAAYxjB,EAAI,gBAAiBA,EAAI3f,KAAMmQ,EAAKhE,GACtDmiD,GAAUnS,GAAax8B,GACvB3f,KAAKue,QAAUve,KAAKue,OAAO7V,OAtCM,CAuCvC,EAOAolD,GAAWztD,UAAUuT,KAAO,SAAUy/B,EAAMlV,GAE1C,IAAI1e,EAAMC,EADE,MAAR2zB,GAA6B,YAAbrzC,KAAKwC,OAAsB6wC,EAAO,GAEtD,IAAK,IAAIxzC,EAAI,EAAGA,EAAIG,KAAKohB,MAAMzgB,SAAUd,EAAG,CAC1C,IAAIsgB,EAAOngB,KAAKohB,MAAMvhB,GAClB65B,EAAOF,GAAiBrZ,EAAK6Z,YAAah6B,MAC9C,GAAiB,MAAb05B,EAAKja,OACPA,EAAOgU,GAAI0K,EAAUhe,EAAO4S,GAAO5S,GAAOuZ,EAAKja,OAClC,GAAT4zB,GAAc,OAAO5zB,EAE3B,GAAe,MAAXia,EAAKha,KACPA,EAAK+T,GAAI0K,EAAUhe,EAAO4S,GAAO5S,GAAOuZ,EAAKha,IACjC,GAAR2zB,GAAa,OAAO3zB,CAE5B,CACA,OAAOD,GAAQ,CAACA,KAAMA,EAAMC,GAAIA,EAClC,EAIAouC,GAAWztD,UAAU8M,QAAU,WAC3B,IAAIwgD,EAAS3tD,KAEX6hB,EAAM7hB,KAAK4T,MAAM,GAAG,GAAOytB,EAASrhC,KAAM2f,EAAK3f,KAAKqyB,IAAI1S,GACvDkC,GAAQlC,GACbi+B,GAAQj+B,GAAI,WACV,IAAIQ,EAAO0B,EAAI1B,KAAMwd,EAAQ5K,GAAOlR,EAAI1B,MACpCmiB,EAAOgH,GAAgB3pB,EAAIge,GAM/B,GALI2E,IACFiJ,GAA6BjJ,GAC7B3iB,EAAGkO,MAAMmuB,iBAAmBr8B,EAAGkO,MAAM4b,aAAc,GAErD9pB,EAAGkO,MAAMouB,eAAgB,GACpBle,GAAasD,EAAOhP,IAAKlS,IAA0B,MAAjBkhB,EAAOvO,OAAgB,CAC5D,IAAI6iB,EAAYtU,EAAOvO,OACvBuO,EAAOvO,OAAS,KAChB,IAAI07B,EAAU/nB,GAAapF,GAAUsU,EACjC6Y,GACA37B,GAAiB1S,EAAMA,EAAK2S,OAAS07B,EAC3C,CACArrB,GAAYxjB,EAAI,gBAAiBA,EAAIguC,EACvC,GACF,EAEAG,GAAWztD,UAAU45B,WAAa,SAAU9Z,GAC1C,IAAKngB,KAAKohB,MAAMzgB,QAAUX,KAAKqyB,IAAI1S,GAAI,CACrC,IAAIka,EAAK75B,KAAKqyB,IAAI1S,GAAGkO,MAChBgM,EAAG2jB,qBAA+D,GAAzC34C,EAAQg1B,EAAG2jB,mBAAoBx9C,QACxD65B,EAAG6jB,uBAAyB7jB,EAAG6jB,qBAAuB,KAAK/4C,KAAK3E,KACvE,CACAA,KAAKohB,MAAMzc,KAAKwb,EAClB,EAEA2tC,GAAWztD,UAAUg8B,WAAa,SAAUlc,GAE1C,GADAngB,KAAKohB,MAAMxc,OAAOC,EAAQ7E,KAAKohB,MAAOjB,GAAO,IACxCngB,KAAKohB,MAAMzgB,QAAUX,KAAKqyB,IAAI1S,GAAI,CACrC,IAAIka,EAAK75B,KAAKqyB,IAAI1S,GAAGkO,OACnBgM,EAAG2jB,qBAAuB3jB,EAAG2jB,mBAAqB,KAAK74C,KAAK3E,KAChE,CACF,EACAguB,GAAW8/B,IA8EX,IAAIW,GAAmB,SAAS9yB,EAAS4V,GACvCvxC,KAAK27B,QAAUA,EACf37B,KAAKuxC,QAAUA,EACf,IAAK,IAAI1xC,EAAI,EAAGA,EAAI87B,EAAQh7B,SAAUd,EAClC87B,EAAQ97B,GAAG0e,OAASve,IAC1B,EAeA,SAASguD,GAAe37B,EAAK5S,EAAMC,EAAI7c,EAASL,IAC9CK,EAAUyjB,EAAQzjB,IACVujD,QAAS,EACjB,IAAIzqB,EAAU,CAACoyB,GAAS17B,EAAK5S,EAAMC,EAAI7c,EAASL,IAAQ+uC,EAAU5V,EAAQ,GACtE0F,EAASx+B,EAAQm7B,WAQrB,OAPA6nB,GAAWxzB,GAAK,SAAUA,GACpBgP,IAAUx+B,EAAQm7B,WAAaqD,EAAOqtB,WAAU,IACpD/yB,EAAQh3B,KAAKopD,GAAS17B,EAAK4B,GAAQ5B,EAAK5S,GAAOwU,GAAQ5B,EAAK3S,GAAK7c,EAASL,IAC1E,IAAK,IAAI3C,EAAI,EAAGA,EAAIwyB,EAAI6zB,OAAOvlD,SAAUd,EACrC,GAAIwyB,EAAI6zB,OAAOrmD,GAAG8uD,SAAY,OAClCpd,EAAU/oB,EAAImT,EAChB,IACO,IAAI8yB,GAAiB9yB,EAAS4V,EACvC,CAEA,SAASqd,GAAkBv8B,GACzB,OAAOA,EAAIw8B,UAAUp7B,GAAIpB,EAAIxgB,MAAO,GAAIwgB,EAAI4B,QAAQR,GAAIpB,EAAIyL,cAAc,SAAUtsB,GAAK,OAAOA,EAAE+M,MAAQ,GAC5G,CAEA,SAASuwC,GAAkBz8B,EAAKsJ,GAC9B,IAAK,IAAI97B,EAAI,EAAGA,EAAI87B,EAAQh7B,OAAQd,IAAK,CACvC,IAAI05B,EAASoC,EAAQ97B,GAAIgiB,EAAM0X,EAAO3lB,OAClCm7C,EAAQ18B,EAAI4B,QAAQpS,EAAIpC,MAAOuvC,EAAM38B,EAAI4B,QAAQpS,EAAInC,IACzD,GAAIgU,GAAIq7B,EAAOC,GAAM,CACnB,IAAIC,EAAUlB,GAAS17B,EAAK08B,EAAOC,EAAKz1B,EAAOgY,QAAShY,EAAOgY,QAAQ/uC,MACvE+2B,EAAOoC,QAAQh3B,KAAKsqD,GACpBA,EAAQ1wC,OAASgb,CACnB,CACF,CACF,CAEA,SAAS21B,GAAoBvzB,GAa3B,IAZA,IAAIzF,EAAO,SAAWr2B,GACpB,IAAI05B,EAASoC,EAAQ97B,GAAIqmD,EAAS,CAAC3sB,EAAOgY,QAAQlf,KAClDwzB,GAAWtsB,EAAOgY,QAAQlf,KAAK,SAAUkM,GAAK,OAAO2nB,EAAOvhD,KAAK45B,EAAI,IACrE,IAAK,IAAI9yB,EAAI,EAAGA,EAAI8tB,EAAOoC,QAAQh7B,OAAQ8K,IAAK,CAC9C,IAAI0jD,EAAY51B,EAAOoC,QAAQlwB,IACQ,GAAnC5G,EAAQqhD,EAAQiJ,EAAU98B,OAC5B88B,EAAU5wC,OAAS,KACnBgb,EAAOoC,QAAQ/2B,OAAO6G,IAAK,GAE/B,CACF,EAES5L,EAAI,EAAGA,EAAI87B,EAAQh7B,OAAQd,IAAKq2B,EAAMr2B,EACjD,CA1DA4uD,GAAiBpuD,UAAUqI,MAAQ,WACjC,IAAI1I,KAAKkoD,kBAAT,CACAloD,KAAKkoD,mBAAoB,EACzB,IAAK,IAAIroD,EAAI,EAAGA,EAAIG,KAAK27B,QAAQh7B,SAAUd,EACvCG,KAAK27B,QAAQ97B,GAAG6I,QACpBy6B,GAAYnjC,KAAM,QAJmB,CAKvC,EAEAyuD,GAAiBpuD,UAAUuT,KAAO,SAAUy/B,EAAMlV,GAChD,OAAOn+B,KAAKuxC,QAAQ39B,KAAKy/B,EAAMlV,EACjC,EACAnQ,GAAWygC,IAiDX,IAAIW,GAAY,EACZC,GAAM,SAAStuC,EAAMf,EAAMulC,EAAW+J,EAAS/jC,GACjD,KAAMvrB,gBAAgBqvD,IAAQ,OAAO,IAAIA,GAAItuC,EAAMf,EAAMulC,EAAW+J,EAAS/jC,GAC5D,MAAbg6B,IAAqBA,EAAY,GAErCoH,GAAY/rD,KAAKZ,KAAM,CAAC,IAAI0sD,GAAU,CAAC,IAAI/tB,GAAK,GAAI,UACpD3+B,KAAK6R,MAAQ0zC,EACbvlD,KAAKqsC,UAAYrsC,KAAKisC,WAAa,EACnCjsC,KAAKwqD,UAAW,EAChBxqD,KAAKuvD,gBAAkB,EACvBvvD,KAAKo3B,aAAep3B,KAAKm3B,kBAAoBouB,EAC7C,IAAIvpC,EAAQyX,GAAI8xB,EAAW,GAC3BvlD,KAAK6xC,IAAMyS,GAAgBtoC,GAC3Bhc,KAAKga,QAAU,IAAIU,GAAQ,MAC3B1a,KAAKsK,KAAO8kD,GACZpvD,KAAKglD,WAAahlC,EAClBhgB,KAAKsvD,QAAUA,EACftvD,KAAKurB,UAA0B,OAAbA,EAAsB,MAAQ,MAChDvrB,KAAK2G,QAAS,EAEK,iBAARoa,IAAoBA,EAAO/gB,KAAKisD,WAAWlrC,IACtDqkC,GAAUplD,KAAM,CAACyf,KAAMzD,EAAO0D,GAAI1D,EAAO+E,KAAMA,IAC/CkB,GAAajiB,KAAMskD,GAAgBtoC,GAAQ6L,EAC7C,EAEAwnC,GAAIhvD,UAAYwoB,GAAU8jC,GAAYtsD,UAAW,CAC/CsP,YAAa0/C,GAKb18B,KAAM,SAASlT,EAAMC,EAAIma,GACnBA,EAAM75B,KAAK8sD,MAAMrtC,EAAOzf,KAAK6R,MAAO6N,EAAKD,EAAMoa,GAC5C75B,KAAK8sD,MAAM9sD,KAAK6R,MAAO7R,KAAK6R,MAAQ7R,KAAK0W,KAAM+I,EACxD,EAGAvP,OAAQ,SAASzM,EAAI2d,GAEnB,IADA,IAAI0R,EAAS,EACJjzB,EAAI,EAAGA,EAAIuhB,EAAMzgB,SAAUd,EAAKizB,GAAU1R,EAAMvhB,GAAGizB,OAC5D9yB,KAAK6sD,YAAYppD,EAAKzD,KAAK6R,MAAOuP,EAAO0R,EAC3C,EACA1tB,OAAQ,SAAS3B,EAAIqjB,GAAK9mB,KAAK4sD,YAAYnpD,EAAKzD,KAAK6R,MAAOiV,EAAI,EAKhE0oC,SAAU,SAASF,GACjB,IAAIluC,EAAQwR,GAAS5yB,KAAMA,KAAK6R,MAAO7R,KAAK6R,MAAQ7R,KAAK0W,MACzD,OAAgB,IAAZ44C,EAA4BluC,EACzBA,EAAMquC,KAAKH,GAAWtvD,KAAK0vD,gBACpC,EACAC,SAAU7R,IAAY,SAAS9yB,GAC7B,IAAI8d,EAAMrV,GAAIzzB,KAAK6R,MAAO,GAAImF,EAAOhX,KAAK6R,MAAQ7R,KAAK0W,KAAO,EAC9Dm0C,GAAW7qD,KAAM,CAACyf,KAAMqpB,EAAKppB,GAAI+T,GAAIzc,EAAMob,GAAQpyB,KAAMgX,GAAM+J,KAAKpgB,QAClDogB,KAAM/gB,KAAKisD,WAAWjhC,GAAOhD,OAAQ,WAAY+S,MAAM,IAAO,GAC5E/6B,KAAK2f,IAAMw4B,GAAen4C,KAAK2f,GAAI,EAAG,GAC1CsC,GAAajiB,KAAMskD,GAAgBxb,GAAMjhB,EAC3C,IACA3H,aAAc,SAAS8K,EAAMvL,EAAMC,EAAIsI,GAGrC9H,GAAalgB,KAAMgrB,EAFnBvL,EAAOwU,GAAQj0B,KAAMyf,GACrBC,EAAKA,EAAKuU,GAAQj0B,KAAM0f,GAAMD,EACKuI,EACrC,EACAzH,SAAU,SAASd,EAAMC,EAAI4vC,GAC3B,IAAIluC,EAAQsR,GAAW1yB,KAAMi0B,GAAQj0B,KAAMyf,GAAOwU,GAAQj0B,KAAM0f,IAChE,OAAgB,IAAZ4vC,EAA4BluC,EAChB,KAAZkuC,EAAyBluC,EAAMquC,KAAK,IACjCruC,EAAMquC,KAAKH,GAAWtvD,KAAK0vD,gBACpC,EAEAt9B,QAAS,SAASjS,GAAO,IAAIle,EAAIjC,KAAK4vD,cAAczvC,GAAO,OAAOle,GAAKA,EAAE8e,IAAI,EAE7E6uC,cAAe,SAASzvC,GAAO,GAAIiT,GAAOpzB,KAAMmgB,GAAS,OAAOiS,GAAQpyB,KAAMmgB,EAAO,EACrF0vC,cAAe,SAAS1vC,GAAO,OAAO4S,GAAO5S,EAAK,EAElD2vC,yBAA0B,SAAS3vC,GAEjC,MADmB,iBAARA,IAAoBA,EAAOiS,GAAQpyB,KAAMmgB,IAC7Cod,GAAWpd,EACpB,EAEA4vC,UAAW,WAAY,OAAO/vD,KAAK0W,IAAI,EACvC6uC,UAAW,WAAY,OAAOvlD,KAAK6R,KAAK,EACxCisB,SAAU,WAAY,OAAO99B,KAAK6R,MAAQ7R,KAAK0W,KAAO,CAAC,EAEvDud,QAAS,SAASpS,GAAM,OAAOoS,GAAQj0B,KAAM6hB,EAAI,EAEjDK,UAAW,SAASlG,GAClB,IAAImI,EAAQnkB,KAAK6xC,IAAIN,UAKrB,OAJa,MAATv1B,GAA0B,QAATA,EAAyBmI,EAAMxN,KAClC,UAATqF,EAA2BmI,EAAM+qB,OACxB,OAATlzB,GAA2B,MAATA,IAA2B,IAAVA,EAAyBmI,EAAMzE,KAC9DyE,EAAM1E,MAErB,EACAuwC,eAAgB,WAAa,OAAOhwD,KAAK6xC,IAAIC,MAAO,EACpDkS,kBAAmB,WAAY,OAAOhkD,KAAK6xC,IAAImS,mBAAmB,EAElE3jC,UAAWy9B,IAAY,SAAS39B,EAAMC,EAAIvd,GACxCqmD,GAAmBlpD,KAAMi0B,GAAQj0B,KAAqB,iBAARmgB,EAAmBsT,GAAItT,EAAMC,GAAM,GAAKD,GAAO,KAAMtd,EACrG,IACAof,aAAc67B,IAAY,SAAS5O,EAAQv4B,EAAM9T,GAC/CqmD,GAAmBlpD,KAAMi0B,GAAQj0B,KAAMkvC,GAASjb,GAAQj0B,KAAM2W,GAAQu4B,GAASrsC,EACjF,IACAimD,gBAAiBhL,IAAY,SAASnnC,EAAM22B,EAAOzqC,GACjDimD,GAAgB9oD,KAAMi0B,GAAQj0B,KAAM2W,GAAO22B,GAASrZ,GAAQj0B,KAAMstC,GAAQzqC,EAC5E,IACAkmD,iBAAkBjL,IAAY,SAASkL,EAAOnmD,GAC5CkmD,GAAiB/oD,KAAMo0B,GAAap0B,KAAMgpD,GAAQnmD,EACpD,IACAotD,mBAAoBnS,IAAY,SAASz3B,EAAGxjB,GAE1CkmD,GAAiB/oD,KAAMo0B,GAAap0B,KADxB8E,EAAI9E,KAAK6xC,IAAIC,OAAQzrB,IACiBxjB,EACpD,IACAqtD,cAAepS,IAAY,SAAShM,EAAQP,EAAS1uC,GACnD,GAAKivC,EAAOnxC,OAAZ,CAEA,IADA,IAAIwgB,EAAM,GACDthB,EAAI,EAAGA,EAAIiyC,EAAOnxC,OAAQd,IAC/BshB,EAAIthB,GAAK,IAAIkkD,GAAM9vB,GAAQj0B,KAAM8xC,EAAOjyC,GAAGqvC,QAC1Bjb,GAAQj0B,KAAM8xC,EAAOjyC,GAAG8W,MAAQm7B,EAAOjyC,GAAGqvC,SAChD,MAAXqC,IAAmBA,EAAUrlC,KAAKiE,IAAI2hC,EAAOnxC,OAAS,EAAGX,KAAK6xC,IAAIE,YACtE9vB,GAAajiB,KAAMikD,GAAmBjkD,KAAK2f,GAAIwB,EAAKowB,GAAU1uC,EANjC,CAO/B,IACAstD,aAAcrS,IAAY,SAAS5O,EAAQv4B,EAAM9T,GAC/C,IAAIivC,EAAS9xC,KAAK6xC,IAAIC,OAAOxxC,MAAM,GACnCwxC,EAAOntC,KAAK,IAAIo/C,GAAM9vB,GAAQj0B,KAAMkvC,GAASjb,GAAQj0B,KAAM2W,GAAQu4B,KACnEjtB,GAAajiB,KAAMikD,GAAmBjkD,KAAK2f,GAAImyB,EAAQA,EAAOnxC,OAAS,GAAIkC,EAC7E,IAEAmtB,aAAc,SAASs/B,GAErB,IADA,IAA8BluC,EAA1B0wB,EAAS9xC,KAAK6xC,IAAIC,OACbjyC,EAAI,EAAGA,EAAIiyC,EAAOnxC,OAAQd,IAAK,CACtC,IAAIgyC,EAAMnf,GAAW1yB,KAAM8xC,EAAOjyC,GAAG4f,OAAQqyB,EAAOjyC,GAAG6f,MACvD0B,EAAQA,EAAQA,EAAMrc,OAAO8sC,GAAOA,CACtC,CACA,OAAgB,IAAZyd,EAA4BluC,EAClBA,EAAMquC,KAAKH,GAAWtvD,KAAK0vD,gBAC3C,EACAU,cAAe,SAASd,GAEtB,IADA,IAAIxzB,EAAQ,GAAIgW,EAAS9xC,KAAK6xC,IAAIC,OACzBjyC,EAAI,EAAGA,EAAIiyC,EAAOnxC,OAAQd,IAAK,CACtC,IAAIgyC,EAAMnf,GAAW1yB,KAAM8xC,EAAOjyC,GAAG4f,OAAQqyB,EAAOjyC,GAAG6f,OACvC,IAAZ4vC,IAAqBzd,EAAMA,EAAI4d,KAAKH,GAAWtvD,KAAK0vD,kBACxD5zB,EAAMj8B,GAAKgyC,CACb,CACA,OAAO/V,CACT,EACAu0B,iBAAkB,SAASrlC,EAAM/E,EAAU+B,GAEzC,IADA,IAAIsoC,EAAM,GACDzwD,EAAI,EAAGA,EAAIG,KAAK6xC,IAAIC,OAAOnxC,OAAQd,IACxCywD,EAAIzwD,GAAKmrB,EACbhrB,KAAKuwD,kBAAkBD,EAAKrqC,EAAU+B,GAAU,SAClD,EACAuoC,kBAAmBzS,IAAY,SAAS9yB,EAAM/E,EAAU+B,GAEtD,IADA,IAAIna,EAAU,GAAIgkC,EAAM7xC,KAAK6xC,IACpBhyC,EAAI,EAAGA,EAAIgyC,EAAIC,OAAOnxC,OAAQd,IAAK,CAC1C,IAAIskB,EAAQ0tB,EAAIC,OAAOjyC,GACvBgO,EAAQhO,GAAK,CAAC4f,KAAM0E,EAAM1E,OAAQC,GAAIyE,EAAMzE,KAAMqB,KAAM/gB,KAAKisD,WAAWjhC,EAAKnrB,IAAKmoB,OAAQA,EAC5F,CAEA,IADA,IAAIwoC,EAASvqC,GAAwB,OAAZA,GAAqB0+B,GAAmB3kD,KAAM6N,EAASoY,GACvE0F,EAAM9d,EAAQlN,OAAS,EAAGgrB,GAAO,EAAGA,IACzCk/B,GAAW7qD,KAAM6N,EAAQ8d,IACzB6kC,EAAUpH,GAA2BppD,KAAMwwD,GACtCxwD,KAAK2f,IAAMq4B,GAAoBh4C,KAAK2f,GAC/C,IACA5Y,KAAM+2C,IAAY,WAAYsN,GAAsBprD,KAAM,OAAQ,IAClEiH,KAAM62C,IAAY,WAAYsN,GAAsBprD,KAAM,OAAQ,IAClEywD,cAAe3S,IAAY,WAAYsN,GAAsBprD,KAAM,QAAQ,EAAM,IACjF0wD,cAAe5S,IAAY,WAAYsN,GAAsBprD,KAAM,QAAQ,EAAM,IAEjF2wD,aAAc,SAAS1qD,GAAMjG,KAAK2G,OAASV,CAAI,EAC/C2qD,aAAc,WAAY,OAAO5wD,KAAK2G,MAAM,EAE5CkqD,YAAa,WAEX,IADA,IAAItJ,EAAOvnD,KAAKga,QAAS5G,EAAO,EAAGozC,EAAS,EACnC3mD,EAAI,EAAGA,EAAI0nD,EAAKn0C,KAAKzS,OAAQd,IAAY0nD,EAAKn0C,KAAKvT,GAAGiyC,UAAY1+B,EAC3E,IAAK,IAAIuY,EAAM,EAAGA,EAAM47B,EAAKf,OAAO7lD,OAAQgrB,IAAc47B,EAAKf,OAAO76B,GAAKmmB,UAAY0U,EACvF,MAAO,CAACz/C,KAAMqM,EAAMnM,KAAMu/C,EAC5B,EACA6H,aAAc,WACZ,IAAIV,EAAS3tD,KAEbA,KAAKga,QAAU,IAAIU,GAAQ1a,KAAKga,SAChC6rC,GAAW7lD,MAAM,SAAUqyB,GAAO,OAAOA,EAAIrY,QAAU2zC,EAAO3zC,OAAS,IAAG,EAC5E,EAEA82C,UAAW,WACT9wD,KAAKuvD,gBAAkBvvD,KAAK+wD,kBAAiB,EAC/C,EACAA,iBAAkB,SAASC,GAGzB,OAFIA,IACAhxD,KAAKga,QAAQ4sC,OAAS5mD,KAAKga,QAAQ6sC,UAAY7mD,KAAKga,QAAQ8sC,WAAa,MACtE9mD,KAAKga,QAAQgtC,UACtB,EACAiK,QAAS,SAAUC,GACjB,OAAOlxD,KAAKga,QAAQgtC,aAAekK,GAAOlxD,KAAKuvD,gBACjD,EAEA4B,WAAY,WACV,MAAO,CAAC/9C,KAAMo1C,GAAiBxoD,KAAKga,QAAQ5G,MACpCozC,OAAQgC,GAAiBxoD,KAAKga,QAAQwsC,QAChD,EACA4K,WAAY,SAASC,GACnB,IAAI9J,EAAOvnD,KAAKga,QAAU,IAAIU,GAAQ1a,KAAKga,SAC3CutC,EAAKn0C,KAAOo1C,GAAiB6I,EAASj+C,KAAK9S,MAAM,GAAI,MAAM,GAC3DinD,EAAKf,OAASgC,GAAiB6I,EAAS7K,OAAOlmD,MAAM,GAAI,MAAM,EACjE,EAEAgxD,gBAAiBxT,IAAY,SAAS39B,EAAMoxC,EAAU7pD,GACpD,OAAO6kD,GAAWvsD,KAAMmgB,EAAM,UAAU,SAAUA,GAChD,IAAIwb,EAAUxb,EAAK0kB,gBAAkB1kB,EAAK0kB,cAAgB,CAAC,GAG3D,OAFAlJ,EAAQ41B,GAAY7pD,GACfA,GAASpC,GAAQq2B,KAAYxb,EAAK0kB,cAAgB,OAChD,CACT,GACF,IAEA2sB,YAAa1T,IAAY,SAASyT,GAChC,IAAI5D,EAAS3tD,KAEbA,KAAK2yB,MAAK,SAAUxS,GACdA,EAAK0kB,eAAiB1kB,EAAK0kB,cAAc0sB,IAC3ChF,GAAWoB,EAAQxtC,EAAM,UAAU,WAGjC,OAFAA,EAAK0kB,cAAc0sB,GAAY,KAC3BjsD,GAAQ6a,EAAK0kB,iBAAkB1kB,EAAK0kB,cAAgB,OACjD,CACT,GAEJ,GACF,IAEA4sB,SAAU,SAAStxC,GACjB,IAAI2G,EACJ,GAAmB,iBAAR3G,EAAkB,CAC3B,IAAKiT,GAAOpzB,KAAMmgB,GAAS,OAAO,KAGlC,GAFA2G,EAAI3G,IACJA,EAAOiS,GAAQpyB,KAAMmgB,IACR,OAAO,IACtB,MAEE,GAAS,OADT2G,EAAIiM,GAAO5S,IACM,OAAO,KAE1B,MAAO,CAACA,KAAM2G,EAAG0lC,OAAQrsC,EAAMY,KAAMZ,EAAKY,KAAM8jB,cAAe1kB,EAAK0kB,cAC5DlO,UAAWxW,EAAKwW,UAAWD,QAASvW,EAAKuW,QAAS4N,UAAWnkB,EAAKmkB,UAClEuB,QAAS1lB,EAAK0lB,QACxB,EAEA6rB,aAAc5T,IAAY,SAAS0O,EAAQ9oD,EAAOwgB,GAChD,OAAOqoC,GAAWvsD,KAAMwsD,EAAiB,UAAT9oD,EAAoB,SAAW,SAAS,SAAUyc,GAChF,IAAIsG,EAAgB,QAAT/iB,EAAkB,YACT,cAATA,EAAwB,UACf,UAATA,EAAoB,cAAgB,YAC/C,GAAKyc,EAAKsG,GACL,IAAIxC,EAAUC,GAAKla,KAAKmW,EAAKsG,IAAU,OAAO,EAC5CtG,EAAKsG,IAAS,IAAMvC,CAAK,MAFb/D,EAAKsG,GAAQvC,EAGhC,OAAO,CACT,GACF,IACAytC,gBAAiB7T,IAAY,SAAS0O,EAAQ9oD,EAAOwgB,GACnD,OAAOqoC,GAAWvsD,KAAMwsD,EAAiB,UAAT9oD,EAAoB,SAAW,SAAS,SAAUyc,GAChF,IAAIsG,EAAgB,QAAT/iB,EAAkB,YACT,cAATA,EAAwB,UACf,UAATA,EAAoB,cAAgB,YAC3Cke,EAAMzB,EAAKsG,GACf,IAAK7E,EAAO,OAAO,EACd,GAAW,MAAPsC,EAAe/D,EAAKsG,GAAQ,SAChC,CACH,IAAI6D,EAAQ1I,EAAIvN,MAAM4P,EAAUC,IAChC,IAAKoG,EAAS,OAAO,EACrB,IAAItI,EAAMsI,EAAMxpB,MAAQwpB,EAAM,GAAG3pB,OACjCwf,EAAKsG,GAAQ7E,EAAIthB,MAAM,EAAGgqB,EAAMxpB,QAAWwpB,EAAMxpB,OAASkhB,GAAOJ,EAAIjhB,OAAc,IAAL,IAAYihB,EAAIthB,MAAM0hB,IAAQ,IAC9G,CACA,OAAO,CACT,GACF,IAEAwrC,cAAe1P,IAAY,SAAS0O,EAAQnoC,EAAMxhB,GAChD,OAAO2qD,GAAcxtD,KAAMwsD,EAAQnoC,EAAMxhB,EAC3C,IACA+uD,iBAAkB,SAASvwB,GAAUA,EAAO34B,OAAS,EAErDqlD,SAAU,SAAStuC,EAAMC,EAAI7c,GAC3B,OAAOkrD,GAAS/tD,KAAMi0B,GAAQj0B,KAAMyf,GAAOwU,GAAQj0B,KAAM0f,GAAK7c,EAASA,GAAWA,EAAQL,MAAQ,QACpG,EACAqvD,YAAa,SAAShwC,EAAKhf,GACzB,IAAIivD,EAAW,CAAC7D,aAAcprD,IAAgC,MAApBA,EAAQmiB,SAAmBniB,EAAQw+B,OAASx+B,GACtE03B,WAAY13B,GAAWA,EAAQ03B,WAC/BkB,gBAAgB,EAAO2qB,OAAQvjD,GAAWA,EAAQujD,OAClDrgB,kBAAmBljC,GAAWA,EAAQkjC,mBAEtD,OAAOgoB,GAAS/tD,KADhB6hB,EAAMoS,GAAQj0B,KAAM6hB,GACOA,EAAKiwC,EAAU,WAC5C,EACAC,YAAa,SAASlwC,GAEpB,IAAI8Z,EAAU,GAAIlC,EAAQrH,GAAQpyB,MADlC6hB,EAAMoS,GAAQj0B,KAAM6hB,IACwB1B,MAAM6Z,YAClD,GAAIP,EAAS,IAAK,IAAI55B,EAAI,EAAGA,EAAI45B,EAAM94B,SAAUd,EAAG,CAClD,IAAI65B,EAAOD,EAAM55B,IACC,MAAb65B,EAAKja,MAAgBia,EAAKja,MAAQoC,EAAIzB,MAC3B,MAAXsZ,EAAKha,IAAcga,EAAKha,IAAMmC,EAAIzB,KACnCub,EAAQh3B,KAAK+0B,EAAKH,OAAOhb,QAAUmb,EAAKH,OAC9C,CACA,OAAOoC,CACT,EACAkzB,UAAW,SAASpvC,EAAMC,EAAIzJ,GAC5BwJ,EAAOwU,GAAQj0B,KAAMyf,GAAOC,EAAKuU,GAAQj0B,KAAM0f,GAC/C,IAAI4K,EAAQ,GAAIyI,EAAStT,EAAKU,KAa9B,OAZAngB,KAAK2yB,KAAKlT,EAAKU,KAAMT,EAAGS,KAAO,GAAG,SAAUA,GAC1C,IAAIsZ,EAAQtZ,EAAK6Z,YACjB,GAAIP,EAAS,IAAK,IAAI55B,EAAI,EAAGA,EAAI45B,EAAM94B,OAAQd,IAAK,CAClD,IAAI65B,EAAOD,EAAM55B,GACA,MAAX65B,EAAKha,IAAcqT,GAAUtT,EAAKU,MAAQV,EAAKW,IAAMsZ,EAAKha,IAC7C,MAAbga,EAAKja,MAAgBsT,GAAUtT,EAAKU,MACvB,MAAbuZ,EAAKja,MAAgBsT,GAAUrT,EAAGS,MAAQuZ,EAAKja,MAAQC,EAAGU,IAC1DnK,IAAUA,EAAOyjB,EAAKH,SACxBjP,EAAM3lB,KAAK+0B,EAAKH,OAAOhb,QAAUmb,EAAKH,OAC5C,GACExG,CACJ,IACOzI,CACT,EACA0nC,YAAa,WACX,IAAIr2B,EAAU,GAMd,OALA37B,KAAK2yB,MAAK,SAAUxS,GAClB,IAAI6c,EAAM7c,EAAK6Z,YACf,GAAIgD,EAAO,IAAK,IAAIn9B,EAAI,EAAGA,EAAIm9B,EAAIr8B,SAAUd,EACtB,MAAfm9B,EAAIn9B,GAAG4f,MAAgBkc,EAAQh3B,KAAKq4B,EAAIn9B,GAAG05B,OACrD,IACOoC,CACT,EAEAs2B,aAAc,SAAS9mD,GACrB,IAAIiV,EAAI2S,EAAS/yB,KAAK6R,MAAOqgD,EAAUlyD,KAAK0vD,gBAAgB/uD,OAO5D,OANAX,KAAK2yB,MAAK,SAAUxS,GAClB,IAAIqS,EAAKrS,EAAKY,KAAKpgB,OAASuxD,EAC5B,GAAI1/B,EAAKrnB,EAAiB,OAAViV,EAAKjV,GAAY,EACjCA,GAAOqnB,IACLO,CACJ,IACOkB,GAAQj0B,KAAMyzB,GAAIV,EAAQ3S,GACnC,EACA+xC,aAAc,SAAUrlB,GAEtB,IAAIhsC,GADJgsC,EAAS7Y,GAAQj0B,KAAM8sC,IACJ1sB,GACnB,GAAI0sB,EAAO3sB,KAAOngB,KAAK6R,OAASi7B,EAAO1sB,GAAK,EAAK,OAAO,EACxD,IAAI8xC,EAAUlyD,KAAK0vD,gBAAgB/uD,OAInC,OAHAX,KAAK2yB,KAAK3yB,KAAK6R,MAAOi7B,EAAO3sB,MAAM,SAAUA,GAC3Crf,GAASqf,EAAKY,KAAKpgB,OAASuxD,CAC9B,IACOpxD,CACT,EAEAk3B,KAAM,SAASo6B,GACb,IAAI//B,EAAM,IAAIg9B,GAAIz8B,GAAS5yB,KAAMA,KAAK6R,MAAO7R,KAAK6R,MAAQ7R,KAAK0W,MAC7C1W,KAAKglD,WAAYhlD,KAAK6R,MAAO7R,KAAKsvD,QAAStvD,KAAKurB,WAQlE,OAPA8G,EAAIga,UAAYrsC,KAAKqsC,UAAWha,EAAI4Z,WAAajsC,KAAKisC,WACtD5Z,EAAIwf,IAAM7xC,KAAK6xC,IACfxf,EAAI1rB,QAAS,EACTyrD,IACF//B,EAAIrY,QAAQysC,UAAYzmD,KAAKga,QAAQysC,UACrCp0B,EAAI++B,WAAWpxD,KAAKmxD,eAEf9+B,CACT,EAEAggC,UAAW,SAASxvD,GACbA,IAAWA,EAAU,CAAC,GAC3B,IAAI4c,EAAOzf,KAAK6R,MAAO6N,EAAK1f,KAAK6R,MAAQ7R,KAAK0W,KAC1B,MAAhB7T,EAAQ4c,MAAgB5c,EAAQ4c,KAAOA,IAAQA,EAAO5c,EAAQ4c,MAChD,MAAd5c,EAAQ6c,IAAc7c,EAAQ6c,GAAKA,IAAMA,EAAK7c,EAAQ6c,IAC1D,IAAIsY,EAAO,IAAIq3B,GAAIz8B,GAAS5yB,KAAMyf,EAAMC,GAAK7c,EAAQmd,MAAQhgB,KAAKglD,WAAYvlC,EAAMzf,KAAKsvD,QAAStvD,KAAKurB,WAKvG,OAJI1oB,EAAQojD,aAAcjuB,EAAKhe,QAAUha,KAAKga,UAC1Cha,KAAKkmD,SAAWlmD,KAAKkmD,OAAS,KAAKvhD,KAAK,CAAC0tB,IAAK2F,EAAMiuB,WAAYpjD,EAAQojD,aAC5EjuB,EAAKkuB,OAAS,CAAC,CAAC7zB,IAAKryB,KAAM2uD,UAAU,EAAM1I,WAAYpjD,EAAQojD,aAC/D6I,GAAkB92B,EAAM42B,GAAkB5uD,OACnCg4B,CACT,EACAs6B,UAAW,SAAShlB,GAElB,GADIA,aAAiB7uB,KAAc6uB,EAAQA,EAAMjb,KAC7CryB,KAAKkmD,OAAU,IAAK,IAAIrmD,EAAI,EAAGA,EAAIG,KAAKkmD,OAAOvlD,SAAUd,EAE3D,GADWG,KAAKkmD,OAAOrmD,GACdwyB,KAAOib,EAAhB,CACAttC,KAAKkmD,OAAOthD,OAAO/E,EAAG,GACtBytC,EAAMglB,UAAUtyD,MAChBkvD,GAAoBN,GAAkB5uD,OACtC,KAJkC,CAOpC,GAAIstC,EAAMtzB,SAAWha,KAAKga,QAAS,CACjC,IAAIu4C,EAAW,CAACjlB,EAAMhjC,IACtBu7C,GAAWvY,GAAO,SAAUjb,GAAO,OAAOkgC,EAAS5tD,KAAK0tB,EAAI/nB,GAAK,IAAG,GACpEgjC,EAAMtzB,QAAU,IAAIU,GAAQ,MAC5B4yB,EAAMtzB,QAAQ5G,KAAOo1C,GAAiBxoD,KAAKga,QAAQ5G,KAAMm/C,GACzDjlB,EAAMtzB,QAAQwsC,OAASgC,GAAiBxoD,KAAKga,QAAQwsC,OAAQ+L,EAC/D,CACF,EACAC,eAAgB,SAASnsC,GAAIw/B,GAAW7lD,KAAMqmB,EAAG,EAEjDvG,QAAS,WAAY,OAAO9f,KAAKggB,IAAI,EACrCyyC,UAAW,WAAY,OAAOzyD,KAAK2f,EAAE,EAErCssC,WAAY,SAASriC,GACnB,OAAI5pB,KAAKsvD,QAAkB1lC,EAAI3f,MAAMjK,KAAKsvD,SACnC1/B,GAAehG,EACxB,EACA8lC,cAAe,WAAa,OAAO1vD,KAAKsvD,SAAW,IAAK,EAExDoD,aAAc5U,IAAY,SAAUj0B,GACvB,OAAPA,IAAgBA,EAAM,OACtBA,GAAO7pB,KAAKurB,YAChBvrB,KAAKurB,UAAY1B,EACjB7pB,KAAK2yB,MAAK,SAAUxS,GAAQ,OAAOA,EAAKkK,MAAQ,IAAM,IAClDrqB,KAAK2f,IAAM4mC,GAAiBvmD,KAAK2f,IACvC,MAIF0vC,GAAIhvD,UAAUsyD,SAAWtD,GAAIhvD,UAAUsyB,KAIvC,IAAIigC,GAAW,EAEf,SAASC,GAAO3nD,GACd,IAAIyU,EAAK3f,KAET,GADA8yD,GAAgBnzC,IACZ0N,GAAe1N,EAAIzU,KAAM47B,GAAcnnB,EAAG/C,QAAS1R,GAAvD,CAEAgjB,GAAiBhjB,GACbyX,IAAMiwC,IAAY,IAAItrC,MAC1B,IAAIzF,EAAM8tB,GAAahwB,EAAIzU,GAAG,GAAO6nD,EAAQ7nD,EAAE8nD,aAAaD,MAC5D,GAAKlxC,IAAOlC,EAAGszC,aAGf,GAAIF,GAASA,EAAMpyD,QAAUZ,OAAOmzD,YAAcnzD,OAAOozD,KAkCvD,IAjCA,IAAIrsC,EAAIisC,EAAMpyD,OAAQogB,EAAO3gB,MAAM0mB,GAAIssC,EAAO,EAC1CC,EAAsC,aAClCD,GAAQtsC,GACZ7G,GAAUN,GAAI,WAEZ,IAAImb,EAAS,CAACrb,KADdoC,EAAMoS,GAAQtU,EAAG0S,IAAKxQ,GACGnC,GAAImC,EACfd,KAAMpB,EAAG0S,IAAI45B,WACTlrC,EAAK9K,QAAO,SAAUq9C,GAAK,OAAY,MAALA,CAAW,IAAG7D,KAAK9vC,EAAG0S,IAAIq9B,kBAChE1nC,OAAQ,SACtB6iC,GAAWlrC,EAAG0S,IAAKyI,GACnBsuB,GAA2BzpC,EAAG0S,IAAKiyB,GAAgBrwB,GAAQtU,EAAG0S,IAAKxQ,GAAMoS,GAAQtU,EAAG0S,IAAKkyB,GAAUzpB,KACrG,GARA7a,EAUJ,EACIszC,EAAmB,SAAUC,EAAM3zD,GACrC,GAAI8f,EAAG9c,QAAQ4wD,qBAC2C,GAAtD5uD,EAAQ8a,EAAG9c,QAAQ4wD,mBAAoBD,EAAKhxD,MAC9C6wD,QAFF,CAKA,IAAIK,EAAS,IAAIR,WACjBQ,EAAOC,QAAU,WAAc,OAAON,GAAuC,EAC7EK,EAAOE,OAAS,WACd,IAAI70C,EAAU20C,EAAOxmD,OACjB,0BAA0BlD,KAAK+U,KAInCgC,EAAKlhB,GAAKkf,GAHRs0C,GAKJ,EACAK,EAAOG,WAAWL,EAZlB,CAaF,EACS3zD,EAAI,EAAGA,EAAIkzD,EAAMpyD,OAAQd,IAAO0zD,EAAiBR,EAAMlzD,GAAIA,OAC/D,CAEL,GAAI8f,EAAGV,MAAMm2B,cAAgBz1B,EAAG0S,IAAIwf,IAAIntC,SAASmd,IAAQ,EAIvD,OAHAlC,EAAGV,MAAMm2B,aAAalqC,QAEtBqc,YAAW,WAAc,OAAO5H,EAAG/C,QAAQ0kB,MAAM0T,OAAS,GAAG,IAG/D,IACE,IAAI8e,EAAS5oD,EAAE8nD,aAAae,QAAQ,QACpC,GAAID,EAAQ,CACV,IAAIE,EAIJ,GAHIr0C,EAAGV,MAAMm2B,eAAiBz1B,EAAGV,MAAMm2B,aAAapd,OAChDg8B,EAAWr0C,EAAGqwC,kBAClB3G,GAAmB1pC,EAAG0S,IAAKiyB,GAAgBziC,EAAKA,IAC5CmyC,EAAY,IAAK,IAAIroC,EAAM,EAAGA,EAAMqoC,EAASrzD,SAAUgrB,EACvDzL,GAAaP,EAAG0S,IAAK,GAAI2hC,EAASroC,GAAKujB,OAAQ8kB,EAASroC,GAAKhV,KAAM,QACvEgJ,EAAG0wC,iBAAiByD,EAAQ,SAAU,SACtCn0C,EAAG/C,QAAQ0kB,MAAM0T,OACnB,CAES,CAAX,MAAM/E,GAAK,CACb,CAhEW,CAiEb,CAEA,SAASgkB,GAAYt0C,EAAIzU,GACvB,GAAIyX,KAAQhD,EAAGV,MAAMm2B,eAAiB,IAAI9tB,KAAOsrC,GAAW,KAAQrkC,GAAOrjB,QAC3E,IAAImiB,GAAe1N,EAAIzU,KAAM47B,GAAcnnB,EAAG/C,QAAS1R,KAEvDA,EAAE8nD,aAAakB,QAAQ,OAAQv0C,EAAGqQ,gBAClC9kB,EAAE8nD,aAAamB,cAAgB,WAI3BjpD,EAAE8nD,aAAaoB,eAAiBlxC,GAAQ,CAC1C,IAAImxC,EAAM3vC,EAAI,MAAO,KAAM,KAAM,qCACjC2vC,EAAI33C,IAAM,6EACNuG,IACFoxC,EAAIluB,MAAQkuB,EAAIvhC,OAAS,EACzBnT,EAAG/C,QAAQgqB,QAAQniB,YAAY4vC,GAE/BA,EAAIC,KAAOD,EAAIjtB,WAEjBl8B,EAAE8nD,aAAaoB,aAAaC,EAAK,EAAG,GAChCpxC,GAAUoxC,EAAIpvC,WAAWnH,YAAYu2C,EAC3C,CACF,CAEA,SAASE,GAAW50C,EAAIzU,GACtB,IAAI2W,EAAM8tB,GAAahwB,EAAIzU,GAC3B,GAAK2W,EAAL,CACA,IAAI2yC,EAAO9/C,SAASisB,yBACpBsR,GAAoBtyB,EAAIkC,EAAK2yC,GACxB70C,EAAG/C,QAAQ63C,aACd90C,EAAG/C,QAAQ63C,WAAa/vC,EAAI,MAAO,KAAM,6CACzC/E,EAAG/C,QAAQuqB,UAAUnqB,aAAa2C,EAAG/C,QAAQ63C,WAAY90C,EAAG/C,QAAQ83B,YAEtElwB,EAAqB7E,EAAG/C,QAAQ63C,WAAYD,EAPzB,CAQrB,CAEA,SAAS1B,GAAgBnzC,GACnBA,EAAG/C,QAAQ63C,aACb90C,EAAG/C,QAAQuqB,UAAUrpB,YAAY6B,EAAG/C,QAAQ63C,YAC5C90C,EAAG/C,QAAQ63C,WAAa,KAE5B,CAMA,SAASC,GAAkBruC,GACzB,GAAK3R,SAASigD,uBAAd,CAEA,IADA,IAAIC,EAAUlgD,SAASigD,uBAAuB,cAAeE,EAAU,GAC9Dh1D,EAAI,EAAGA,EAAI+0D,EAAQj0D,OAAQd,IAAK,CACvC,IAAI8f,EAAKi1C,EAAQ/0D,GAAG4e,WAChBkB,GAAMk1C,EAAQlwD,KAAKgb,EACzB,CACIk1C,EAAQl0D,QAAUk0D,EAAQ,GAAG50C,WAAU,WACzC,IAAK,IAAIpgB,EAAI,EAAGA,EAAIg1D,EAAQl0D,OAAQd,IAAOwmB,EAAEwuC,EAAQh1D,GACvD,GAR+C,CASjD,CAEA,IAAIi1D,IAAoB,EACxB,SAASC,KACHD,KACJE,KACAF,IAAoB,EACtB,CACA,SAASE,KAEP,IAAIC,EACJxtD,GAAG1H,OAAQ,UAAU,WACA,MAAfk1D,IAAuBA,EAAc1tC,YAAW,WAClD0tC,EAAc,KACdP,GAAkBQ,GACpB,GAAG,KACL,IAEAztD,GAAG1H,OAAQ,QAAQ,WAAc,OAAO20D,GAAkB5f,GAAS,GACrE,CAEA,SAASogB,GAASv1C,GAChB,IAAI4e,EAAI5e,EAAG/C,QAEX2hB,EAAEoN,gBAAkBpN,EAAEqN,iBAAmBrN,EAAEgJ,eAAiB,KAC5DhJ,EAAEugB,mBAAoB,EACtBn/B,EAAGw1C,SACL,CAcA,IAZA,IAAIC,GAAW,CACb,EAAG,QAAS,EAAG,YAAa,EAAG,MAAO,GAAI,QAAS,GAAI,QAAS,GAAI,OAAQ,GAAI,MAChF,GAAI,QAAS,GAAI,WAAY,GAAI,MAAO,GAAI,QAAS,GAAI,SAAU,GAAI,WAAY,GAAI,MACvF,GAAI,OAAQ,GAAI,OAAQ,GAAI,KAAM,GAAI,QAAS,GAAI,OAAQ,GAAI,YAAa,GAAI,SAChF,GAAI,SAAU,GAAI,IAAK,GAAI,IAAK,GAAI,MAAO,GAAI,MAAO,GAAI,MAC1D,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,aACvD,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC/F,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,KAAM,MAAO,OAAQ,MAAO,OAAQ,MAAO,QAAS,MAAO,SAClG,MAAO,OAAQ,MAAO,MAAO,MAAO,SAAU,MAAO,WAAY,MAAO,UAIjEv1D,GAAI,EAAGA,GAAI,GAAIA,KAAOu1D,GAASv1D,GAAI,IAAMu1D,GAASv1D,GAAI,IAAMyzB,OAAOzzB,IAE5E,IAAK,IAAI8rB,GAAM,GAAIA,IAAO,GAAIA,KAASypC,GAASzpC,IAAO2H,OAAO+hC,aAAa1pC,IAE3E,IAAK,IAAIC,GAAM,EAAGA,IAAO,GAAIA,KAASwpC,GAASxpC,GAAM,KAAOwpC,GAASxpC,GAAM,OAAS,IAAMA,GAE1F,IAAI0pC,GAAS,CAAC,EA4Cd,SAASC,GAAiB5rD,GACxB,IAEI6rD,EAAKC,EAAM5xD,EAAO6xD,EAFlB55B,EAAQnyB,EAAKM,MAAM,UACvBN,EAAOmyB,EAAMA,EAAMn7B,OAAS,GAE5B,IAAK,IAAId,EAAI,EAAGA,EAAIi8B,EAAMn7B,OAAS,EAAGd,IAAK,CACzC,IAAIsiB,EAAM2Z,EAAMj8B,GAChB,GAAI,kBAAkBmK,KAAKmY,GAAQuzC,GAAM,OACpC,GAAI,YAAY1rD,KAAKmY,GAAQqzC,GAAM,OACnC,GAAI,sBAAsBxrD,KAAKmY,GAAQszC,GAAO,MAC9C,KAAI,cAAczrD,KAAKmY,GACrB,MAAM,IAAIpQ,MAAM,+BAAiCoQ,GADpBte,GAAQ,CACiB,CAC/D,CAKA,OAJI2xD,IAAO7rD,EAAO,OAASA,GACvB8rD,IAAQ9rD,EAAO,QAAUA,GACzB+rD,IAAO/rD,EAAO,OAASA,GACvB9F,IAAS8F,EAAO,SAAWA,GACxBA,CACT,CAOA,SAASgsD,GAAgBC,GACvB,IAAI59B,EAAO,CAAC,EACZ,IAAK,IAAI69B,KAAWD,EAAU,GAAIA,EAAOlvC,eAAemvC,GAAU,CAChE,IAAInuD,EAAQkuD,EAAOC,GACnB,GAAI,mCAAmC7rD,KAAK6rD,GAAY,SACxD,GAAa,OAATnuD,EAAgB,QAASkuD,EAAOC,GAAU,QAAS,CAGvD,IADA,IAAI50D,EAAO6D,EAAI+wD,EAAQ5rD,MAAM,KAAMsrD,IAC1B11D,EAAI,EAAGA,EAAIoB,EAAKN,OAAQd,IAAK,CACpC,IAAIoG,OAAM,EAAU0D,OAAO,EACvB9J,GAAKoB,EAAKN,OAAS,GACrBgJ,EAAO1I,EAAKwuD,KAAK,KACjBxpD,EAAMyB,IAENiC,EAAO1I,EAAKX,MAAM,EAAGT,EAAI,GAAG4vD,KAAK,KACjCxpD,EAAM,OAER,IAAIiI,EAAO8pB,EAAKruB,GAChB,GAAKuE,GACA,GAAIA,GAAQjI,EAAO,MAAM,IAAI8L,MAAM,6BAA+BpI,QAD1DquB,EAAKruB,GAAQ1D,CAE5B,QACO2vD,EAAOC,EAChB,CACA,IAAK,IAAIpvC,KAAQuR,EAAQ49B,EAAOnvC,GAAQuR,EAAKvR,GAC7C,OAAOmvC,CACT,CAEA,SAASE,GAAUz0D,EAAKyD,EAAK0nD,EAAQziD,GAEnC,IAAIugB,GADJxlB,EAAMixD,GAAUjxD,IACAlE,KAAOkE,EAAIlE,KAAKS,EAAK0I,GAAWjF,EAAIzD,GACpD,IAAc,IAAVipB,EAAmB,MAAO,UAC9B,GAAc,QAAVA,EAAmB,MAAO,QAC9B,GAAa,MAATA,GAAiBkiC,EAAOliC,GAAU,MAAO,UAE7C,GAAIxlB,EAAIkxD,YAAa,CACnB,GAAuD,kBAAnDhtC,OAAO3oB,UAAUunB,SAAShnB,KAAKkE,EAAIkxD,aACnC,OAAOF,GAAUz0D,EAAKyD,EAAIkxD,YAAaxJ,EAAQziD,GACnD,IAAK,IAAIlK,EAAI,EAAGA,EAAIiF,EAAIkxD,YAAYr1D,OAAQd,IAAK,CAC/C,IAAIqN,EAAS4oD,GAAUz0D,EAAKyD,EAAIkxD,YAAYn2D,GAAI2sD,EAAQziD,GACxD,GAAImD,EAAU,OAAOA,CACvB,CACF,CACF,CAIA,SAAS+oD,GAAcvuD,GACrB,IAAIiC,EAAuB,iBAATjC,EAAoBA,EAAQ0tD,GAAS1tD,EAAMwuD,SAC7D,MAAe,QAARvsD,GAA0B,OAARA,GAAyB,SAARA,GAA2B,OAARA,CAC/D,CAEA,SAASwsD,GAAiBxsD,EAAMgJ,EAAOyjD,GACrC,IAAI7mD,EAAO5F,EAKX,OAJIgJ,EAAM0jD,QAAkB,OAAR9mD,IAAiB5F,EAAO,OAASA,IAChDoa,EAAcpR,EAAM2jD,QAAU3jD,EAAMic,UAAoB,QAARrf,IAAkB5F,EAAO,QAAUA,IACnFoa,EAAcpR,EAAMic,QAAUjc,EAAM2jD,UAAoB,OAAR/mD,IAAiB5F,EAAO,OAASA,IACjFysD,GAAWzjD,EAAM4jD,UAAoB,SAARhnD,IAAmB5F,EAAO,SAAWA,GAChEA,CACT,CAGA,SAAS6sD,GAAQ7jD,EAAOyjD,GACtB,GAAInzC,GAA2B,IAAjBtQ,EAAMujD,SAAiBvjD,EAAM,QAAW,OAAO,EAC7D,IAAIhJ,EAAOyrD,GAASziD,EAAMujD,SAC1B,OAAY,MAARvsD,IAAgBgJ,EAAM8jD,cAGL,GAAjB9jD,EAAMujD,SAAgBvjD,EAAMqY,OAAQrhB,EAAOgJ,EAAMqY,MAC9CmrC,GAAiBxsD,EAAMgJ,EAAOyjD,GACvC,CAEA,SAASL,GAAU9vD,GACjB,MAAqB,iBAAPA,EAAkBqvD,GAAOrvD,GAAOA,CAChD,CAIA,SAASywD,GAAoB/2C,EAAIg3C,GAI/B,IAHA,IAAI7kB,EAASnyB,EAAG0S,IAAIwf,IAAIC,OAAQ8kB,EAAO,GAG9B/2D,EAAI,EAAGA,EAAIiyC,EAAOnxC,OAAQd,IAAK,CAEtC,IADA,IAAIg3D,EAASF,EAAQ7kB,EAAOjyC,IACrB+2D,EAAKj2D,QAAU+yB,GAAImjC,EAAOp3C,KAAM+I,EAAIouC,GAAMl3C,KAAO,GAAG,CACzD,IAAIo3C,EAAWF,EAAKhzD,MACpB,GAAI8vB,GAAIojC,EAASr3C,KAAMo3C,EAAOp3C,MAAQ,EAAG,CACvCo3C,EAAOp3C,KAAOq3C,EAASr3C,KACvB,KACF,CACF,CACAm3C,EAAKjyD,KAAKkyD,EACZ,CAEAjZ,GAAQj+B,GAAI,WACV,IAAK,IAAI9f,EAAI+2D,EAAKj2D,OAAS,EAAGd,GAAK,EAAGA,IAClCqgB,GAAaP,EAAG0S,IAAK,GAAIukC,EAAK/2D,GAAG4f,KAAMm3C,EAAK/2D,GAAG6f,GAAI,WACvDs4B,GAAoBr4B,EACtB,GACF,CAEA,SAASo3C,GAAkB52C,EAAMC,EAAIyJ,GACnC,IAAItD,EAASoD,GAAmBxJ,EAAKY,KAAMX,EAAKyJ,EAAKA,GACrD,OAAOtD,EAAS,GAAKA,EAASpG,EAAKY,KAAKpgB,OAAS,KAAO4lB,CAC1D,CAEA,SAASywC,GAAc72C,EAAMnE,EAAO6N,GAClC,IAAIzJ,EAAK22C,GAAkB52C,EAAMnE,EAAMoE,GAAIyJ,GAC3C,OAAa,MAANzJ,EAAa,KAAO,IAAIqT,GAAIzX,EAAMmE,KAAMC,EAAIyJ,EAAM,EAAI,QAAU,SACzE,CAEA,SAASotC,GAAUC,EAAUv3C,EAAIwe,EAASpL,EAAQlJ,GAChD,GAAIqtC,EAAU,CACY,OAApBv3C,EAAG0S,IAAI9G,YAAsB1B,GAAOA,GACxC,IAAIQ,EAAQ0C,GAASoR,EAASxe,EAAG0S,IAAI9G,WACrC,GAAIlB,EAAO,CACT,IAGIjK,EAHAmK,EAAOV,EAAM,EAAIrB,EAAI6B,GAASA,EAAM,GAEpCM,EADsBd,EAAM,IAAqB,GAAdU,EAAKC,OACV,QAAU,SAQ5C,GAAID,EAAKC,MAAQ,GAAyB,OAApB7K,EAAG0S,IAAI9G,UAAoB,CAC/C,IAAI4rC,EAAO9tB,GAAsB1pB,EAAIwe,GACrC/d,EAAKyJ,EAAM,EAAIsU,EAAQpd,KAAKpgB,OAAS,EAAI,EACzC,IAAIy2D,EAAYhuB,GAAoBzpB,EAAIw3C,EAAM/2C,GAAI0oB,IAClD1oB,EAAK0J,IAAU,SAAU1J,GAAM,OAAOgpB,GAAoBzpB,EAAIw3C,EAAM/2C,GAAI0oB,KAAOsuB,CAAW,GAAIvtC,EAAM,IAAqB,GAAdU,EAAKC,OAAcD,EAAK9K,KAAO8K,EAAK7K,GAAK,EAAGU,GACzI,UAAVuK,IAAsBvK,EAAK22C,GAAkB54B,EAAS/d,EAAI,GAChE,MAASA,EAAKyJ,EAAM,EAAIU,EAAK7K,GAAK6K,EAAK9K,KACvC,OAAO,IAAIgU,GAAIV,EAAQ3S,EAAIuK,EAC7B,CACF,CACA,OAAO,IAAI8I,GAAIV,EAAQlJ,EAAM,EAAIsU,EAAQpd,KAAKpgB,OAAS,EAAGkpB,EAAM,EAAI,SAAW,QACjF,CAEA,SAASwtC,GAAa13C,EAAIQ,EAAMnE,EAAO6N,GACrC,IAAIytC,EAAOvqC,GAAS5M,EAAMR,EAAG0S,IAAI9G,WACjC,IAAK+rC,EAAQ,OAAON,GAAc72C,EAAMnE,EAAO6N,GAC3C7N,EAAMoE,IAAMD,EAAKY,KAAKpgB,QACxBqb,EAAMoE,GAAKD,EAAKY,KAAKpgB,OACrBqb,EAAM2O,OAAS,UACN3O,EAAMoE,IAAM,IACrBpE,EAAMoE,GAAK,EACXpE,EAAM2O,OAAS,SAEjB,IAAI0iB,EAAU3iB,GAAc4sC,EAAMt7C,EAAMoE,GAAIpE,EAAM2O,QAASJ,EAAO+sC,EAAKjqB,GACvE,GAAwB,OAApB1tB,EAAG0S,IAAI9G,WAAsBhB,EAAKC,MAAQ,GAAK,IAAMX,EAAM,EAAIU,EAAK7K,GAAK1D,EAAMoE,GAAKmK,EAAK9K,KAAOzD,EAAMoE,IAGxG,OAAO42C,GAAc72C,EAAMnE,EAAO6N,GAGpC,IACIstC,EADAI,EAAK,SAAU11C,EAAKgI,GAAO,OAAOktC,GAAkB52C,EAAM0B,aAAe4R,GAAM5R,EAAIzB,GAAKyB,EAAKgI,EAAM,EAEnG2tC,EAAuB,SAAUp3C,GACnC,OAAKT,EAAG9c,QAAQ2lC,cAChB2uB,EAAOA,GAAQ9tB,GAAsB1pB,EAAIQ,GAClC8tB,GAAsBtuB,EAAIQ,EAAMg3C,EAAM/2C,IAFN,CAAC4tB,MAAO,EAAGhsB,IAAK7B,EAAKY,KAAKpgB,OAGnE,EACIotC,EAAoBypB,EAAqC,UAAhBx7C,EAAM2O,OAAqB4sC,EAAGv7C,GAAQ,GAAKA,EAAMoE,IAE9F,GAAwB,OAApBT,EAAG0S,IAAI9G,WAAoC,GAAdhB,EAAKC,MAAY,CAChD,IAAIitC,EAAoC,GAAdltC,EAAKC,OAAgBX,EAAM,EACjDzJ,EAAKm3C,EAAGv7C,EAAOy7C,EAAqB,GAAK,GAC7C,GAAU,MAANr3C,IAAgBq3C,EAAwEr3C,GAAMmK,EAAK7K,IAAMU,GAAM2tB,EAAkB/rB,IAA5F5B,GAAMmK,EAAK9K,MAAQW,GAAM2tB,EAAkBC,OAAuD,CAEzI,IAAIrjB,EAAS8sC,EAAqB,SAAW,QAC7C,OAAO,IAAIhkC,GAAIzX,EAAMmE,KAAMC,EAAIuK,EACjC,CACF,CAKA,IAAI+sC,EAAqB,SAAUrqB,EAASxjB,EAAKkkB,GAK/C,IAJA,IAAI4pB,EAAS,SAAUv3C,EAAIq3C,GAAsB,OAAOA,EACpD,IAAIhkC,GAAIzX,EAAMmE,KAAMo3C,EAAGn3C,EAAI,GAAI,UAC/B,IAAIqT,GAAIzX,EAAMmE,KAAMC,EAAI,QAAU,EAE/BitB,GAAW,GAAKA,EAAUiqB,EAAK32D,OAAQ0sC,GAAWxjB,EAAK,CAC5D,IAAIU,EAAO+sC,EAAKjqB,GACZoqB,EAAsB5tC,EAAM,IAAqB,GAAdU,EAAKC,OACxCpK,EAAKq3C,EAAqB1pB,EAAkBC,MAAQupB,EAAGxpB,EAAkB/rB,KAAM,GACnF,GAAIuI,EAAK9K,MAAQW,GAAMA,EAAKmK,EAAK7K,GAAM,OAAOi4C,EAAOv3C,EAAIq3C,GAEzD,GADAr3C,EAAKq3C,EAAqBltC,EAAK9K,KAAO83C,EAAGhtC,EAAK7K,IAAK,GAC/CquB,EAAkBC,OAAS5tB,GAAMA,EAAK2tB,EAAkB/rB,IAAO,OAAO21C,EAAOv3C,EAAIq3C,EACvF,CACF,EAGIrzD,EAAMszD,EAAmBrqB,EAAUxjB,EAAKA,EAAKkkB,GACjD,GAAI3pC,EAAO,OAAOA,EAGlB,IAAIwzD,EAAS/tC,EAAM,EAAIkkB,EAAkB/rB,IAAMu1C,EAAGxpB,EAAkBC,OAAQ,GAC5E,OAAc,MAAV4pB,GAAoB/tC,EAAM,GAAK+tC,GAAUz3C,EAAKY,KAAKpgB,UACrDyD,EAAMszD,EAAmB7tC,EAAM,EAAI,EAAIytC,EAAK32D,OAAS,EAAGkpB,EAAK2tC,EAAqBI,KAK7E,KAJaxzD,CAKtB,CA/QAkxD,GAAOuC,MAAQ,CACb,KAAQ,aAAc,MAAS,cAAe,GAAM,WAAY,KAAQ,aACxE,IAAO,YAAa,KAAQ,mBAAoB,OAAU,WAAY,SAAY,aAClF,OAAU,eAAgB,UAAa,gBAAiB,kBAAmB,gBAC3E,IAAO,aAAc,YAAa,aAClC,MAAS,mBAAoB,OAAU,kBACvC,IAAO,mBAKTvC,GAAOwC,UAAY,CACjB,SAAU,YAAa,SAAU,aAAc,SAAU,OAAQ,eAAgB,OAAQ,SAAU,OACnG,YAAa,aAAc,WAAY,WAAY,UAAW,WAAY,YAAa,aACvF,YAAa,cAAe,aAAc,eAAgB,WAAY,cAAe,YAAa,YAClG,iBAAkB,iBAAkB,cAAe,gBAAiB,SAAU,OAAQ,SAAU,OAChG,SAAU,WAAY,eAAgB,WAAY,eAAgB,UAAW,eAAgB,aAC7F,SAAU,aAAc,SAAU,aAClC,SAAU,gBAAiB,eAAgB,gBAAiB,QAAS,gBACrE,YAAe,SAGjBxC,GAAOyC,OAAS,CACd,SAAU,cAAe,SAAU,aAAc,SAAU,WAAY,SAAU,aACjF,SAAU,cAAe,SAAU,YAAa,SAAU,aAAc,eAAgB,WACxF,SAAU,eAAgB,SAAU,gBAAiB,gBAAiB,gBAAiB,SAAU,WACjG,SAAU,iBAAkB,SAAU,YAExCzC,GAAO0C,WAAa,CAClB,QAAS,YAAa,QAAS,aAAc,QAAS,OAAQ,cAAe,OAAQ,QAAS,OAC9F,WAAY,aAAc,SAAU,aAAc,UAAW,WAAY,WAAY,WAAY,WAAY,cAC7G,YAAa,eAAgB,WAAY,aAAc,YAAa,cAAe,gBAAiB,iBACpG,qBAAsB,gBAAiB,aAAc,gBAAiB,QAAS,OAAQ,QAAS,OAChG,QAAS,WAAY,cAAe,WAAY,YAAa,UAAW,kBAAmB,aAC3F,QAAS,aAAc,QAAS,aAAc,gBAAiB,qBAAsB,aAAc,sBACnG,QAAS,gBAAiB,cAAe,gBAAiB,UAAW,aAAc,YAAa,WAChG,YAAe,CAAC,QAAS,WAE3B1C,GAAO,WAAa5xC,EAAM4xC,GAAO0C,WAAa1C,GAAOwC,UA6OrD,IAAIG,GAAW,CACbxN,UAAWA,GACXyN,gBAAiB,SAAUv4C,GAAM,OAAOA,EAAGsC,aAAatC,EAAGuC,UAAU,UAAWvC,EAAGuC,UAAU,QAAS2F,EAAiB,EACvHswC,SAAU,SAAUx4C,GAAM,OAAO+2C,GAAoB/2C,GAAI,SAAUwE,GACjE,GAAIA,EAAM6tB,QAAS,CACjB,IAAIvmB,EAAM2G,GAAQzS,EAAG0S,IAAKlO,EAAMxN,KAAKwJ,MAAMY,KAAKpgB,OAChD,OAAIwjB,EAAMxN,KAAKyJ,IAAMqL,GAAOtH,EAAMxN,KAAKwJ,KAAOR,EAAGme,WACtC,CAACre,KAAM0E,EAAMxN,KAAM+I,GAAI+T,GAAItP,EAAMxN,KAAKwJ,KAAO,EAAG,IAEhD,CAACV,KAAM0E,EAAMxN,KAAM+I,GAAI+T,GAAItP,EAAMxN,KAAKwJ,KAAMsL,GACzD,CACE,MAAO,CAAChM,KAAM0E,EAAM1E,OAAQC,GAAIyE,EAAMzE,KAE1C,GAAI,EACJ04C,WAAY,SAAUz4C,GAAM,OAAO+2C,GAAoB/2C,GAAI,SAAUwE,GAAS,MAAO,CACnF1E,KAAMgU,GAAItP,EAAM1E,OAAOU,KAAM,GAC7BT,GAAIuU,GAAQtU,EAAG0S,IAAKoB,GAAItP,EAAMzE,KAAKS,KAAO,EAAG,IAC3C,GAAI,EACRk4C,YAAa,SAAU14C,GAAM,OAAO+2C,GAAoB/2C,GAAI,SAAUwE,GAAS,MAAO,CACpF1E,KAAMgU,GAAItP,EAAM1E,OAAOU,KAAM,GAAIT,GAAIyE,EAAM1E,OACzC,GAAI,EACR64C,mBAAoB,SAAU34C,GAAM,OAAO+2C,GAAoB/2C,GAAI,SAAUwE,GAC3E,IAAI2kB,EAAMnpB,EAAGstB,WAAW9oB,EAAMxN,KAAM,OAAOmyB,IAAM,EAEjD,MAAO,CAACrpB,KADME,EAAGguB,WAAW,CAACje,KAAM,EAAGoZ,IAAKA,GAAM,OAC1BppB,GAAIyE,EAAM1E,OACnC,GAAI,EACJ84C,oBAAqB,SAAU54C,GAAM,OAAO+2C,GAAoB/2C,GAAI,SAAUwE,GAC5E,IAAI2kB,EAAMnpB,EAAGstB,WAAW9oB,EAAMxN,KAAM,OAAOmyB,IAAM,EAC7C0vB,EAAW74C,EAAGguB,WAAW,CAACje,KAAM/P,EAAG/C,QAAQ64B,QAAQrmB,YAAc,IAAK0Z,IAAKA,GAAM,OACrF,MAAO,CAACrpB,KAAM0E,EAAM1E,OAAQC,GAAI84C,EAClC,GAAI,EACJzxD,KAAM,SAAU4Y,GAAM,OAAOA,EAAG5Y,MAAQ,EACxCE,KAAM,SAAU0Y,GAAM,OAAOA,EAAG1Y,MAAQ,EACxCwpD,cAAe,SAAU9wC,GAAM,OAAOA,EAAG8wC,eAAiB,EAC1DC,cAAe,SAAU/wC,GAAM,OAAOA,EAAG+wC,eAAiB,EAC1D+H,WAAY,SAAU94C,GAAM,OAAOA,EAAGmpC,gBAAgBr1B,GAAI9T,EAAG4lC,YAAa,GAAK,EAC/EmT,SAAU,SAAU/4C,GAAM,OAAOA,EAAGmpC,gBAAgBr1B,GAAI9T,EAAGme,YAAc,EACzE66B,YAAa,SAAUh5C,GAAM,OAAOA,EAAGswC,oBAAmB,SAAU9rC,GAAS,OAAOgO,GAAUxS,EAAIwE,EAAMxN,KAAKwJ,KAAO,GAClH,CAAC6H,OAAQ,QAASmhB,KAAM,GACvB,EACHyvB,iBAAkB,SAAUj5C,GAAM,OAAOA,EAAGswC,oBAAmB,SAAU9rC,GAAS,OAAO00C,GAAel5C,EAAIwE,EAAMxN,KAAO,GACvH,CAACqR,OAAQ,QAASmhB,KAAM,GACvB,EACH2vB,UAAW,SAAUn5C,GAAM,OAAOA,EAAGswC,oBAAmB,SAAU9rC,GAAS,OAAO40C,GAAQp5C,EAAIwE,EAAMxN,KAAKwJ,KAAO,GAC9G,CAAC6H,OAAQ,QAASmhB,MAAO,GACxB,EACH6vB,YAAa,SAAUr5C,GAAM,OAAOA,EAAGswC,oBAAmB,SAAU9rC,GAClE,IAAI2kB,EAAMnpB,EAAGutB,aAAa/oB,EAAMxN,KAAM,OAAOmyB,IAAM,EACnD,OAAOnpB,EAAGguB,WAAW,CAACje,KAAM/P,EAAG/C,QAAQ64B,QAAQrmB,YAAc,IAAK0Z,IAAKA,GAAM,MAC/E,GAAG7gB,EAAW,EACdgxC,WAAY,SAAUt5C,GAAM,OAAOA,EAAGswC,oBAAmB,SAAU9rC,GACjE,IAAI2kB,EAAMnpB,EAAGutB,aAAa/oB,EAAMxN,KAAM,OAAOmyB,IAAM,EACnD,OAAOnpB,EAAGguB,WAAW,CAACje,KAAM,EAAGoZ,IAAKA,GAAM,MAC5C,GAAG7gB,EAAW,EACdixC,gBAAiB,SAAUv5C,GAAM,OAAOA,EAAGswC,oBAAmB,SAAU9rC,GACtE,IAAI2kB,EAAMnpB,EAAGutB,aAAa/oB,EAAMxN,KAAM,OAAOmyB,IAAM,EAC/CjnB,EAAMlC,EAAGguB,WAAW,CAACje,KAAM,EAAGoZ,IAAKA,GAAM,OAC7C,OAAIjnB,EAAIzB,GAAKT,EAAGyS,QAAQvQ,EAAI1B,MAAM0G,OAAO,MAAgBgyC,GAAel5C,EAAIwE,EAAMxN,MAC3EkL,CACT,GAAGoG,EAAW,EACdkxC,SAAU,SAAUx5C,GAAM,OAAOA,EAAGy5C,OAAO,EAAG,OAAS,EACvDC,WAAY,SAAU15C,GAAM,OAAOA,EAAGy5C,MAAM,EAAG,OAAS,EACxDE,SAAU,SAAU35C,GAAM,OAAOA,EAAGy5C,OAAO,EAAG,OAAS,EACvDG,WAAY,SAAU55C,GAAM,OAAOA,EAAGy5C,MAAM,EAAG,OAAS,EACxDI,WAAY,SAAU75C,GAAM,OAAOA,EAAG85C,OAAO,EAAG,OAAS,EACzDC,YAAa,SAAU/5C,GAAM,OAAOA,EAAG85C,MAAM,EAAG,OAAS,EACzDE,aAAc,SAAUh6C,GAAM,OAAOA,EAAG85C,OAAO,EAAG,SAAW,EAC7DG,cAAe,SAAUj6C,GAAM,OAAOA,EAAG85C,MAAM,EAAG,SAAW,EAC7DI,WAAY,SAAUl6C,GAAM,OAAOA,EAAG85C,OAAO,EAAG,OAAS,EACzDK,aAAc,SAAUn6C,GAAM,OAAOA,EAAG85C,MAAM,EAAG,QAAU,EAC3DM,YAAa,SAAUp6C,GAAM,OAAOA,EAAG85C,OAAO,EAAG,QAAU,EAC3DO,YAAa,SAAUr6C,GAAM,OAAOA,EAAG85C,MAAM,EAAG,OAAS,EACzDQ,cAAe,SAAUt6C,GAAM,OAAOA,EAAGu6C,SAAS,EAAG,YAAc,EACnEC,aAAc,SAAUx6C,GAAM,OAAOA,EAAGu6C,QAAQ,EAAG,OAAS,EAC5DE,cAAe,SAAUz6C,GAAM,OAAOA,EAAGu6C,SAAS,EAAG,OAAS,EAC9DG,aAAc,SAAU16C,GAAM,OAAOA,EAAGu6C,QAAQ,EAAG,OAAS,EAC5DI,eAAgB,SAAU36C,GAAM,OAAOA,EAAGu6C,SAAS,EAAG,QAAU,EAChEK,cAAe,SAAU56C,GAAM,OAAOA,EAAGu6C,QAAQ,EAAG,QAAU,EAC9DM,WAAY,SAAU76C,GAAM,OAAOA,EAAG86C,gBAAgB,QAAU,EAChEC,WAAY,SAAU/6C,GAAM,OAAOA,EAAG86C,gBAAgB,MAAQ,EAC9DE,WAAY,SAAUh7C,GAAM,OAAOA,EAAG86C,gBAAgB,WAAa,EACnEG,UAAW,SAAUj7C,GAAM,OAAOA,EAAG0wC,iBAAiB,KAAO,EAC7DwK,cAAe,SAAUl7C,GAEvB,IADA,IAAIm7C,EAAS,GAAIhpB,EAASnyB,EAAGqwC,iBAAkB/uC,EAAUtB,EAAG9c,QAAQoe,QAC3DphB,EAAI,EAAGA,EAAIiyC,EAAOnxC,OAAQd,IAAK,CACtC,IAAIgiB,EAAMiwB,EAAOjyC,GAAG4f,OAChB2I,EAAMzB,EAAYhH,EAAGyS,QAAQvQ,EAAI1B,MAAO0B,EAAIzB,GAAIa,GACpD65C,EAAOn2D,KAAK4jB,EAAStH,EAAUmH,EAAMnH,GACvC,CACAtB,EAAG4wC,kBAAkBuK,EACvB,EACAC,WAAY,SAAUp7C,GAChBA,EAAGqkC,oBAAuBrkC,EAAG86C,gBAAgB,OAC1C96C,EAAGq7C,YAAY,YACxB,EAQAC,eAAgB,SAAUt7C,GAAM,OAAOi+B,GAAQj+B,GAAI,WAEjD,IADA,IAAImyB,EAASnyB,EAAGqwC,iBAAkBQ,EAAS,GAClC3wD,EAAI,EAAGA,EAAIiyC,EAAOnxC,OAAQd,IACjC,GAAKiyC,EAAOjyC,GAAGmyC,QAAf,CACA,IAAIpwB,EAAMkwB,EAAOjyC,GAAG8W,KAAMwJ,EAAOiS,GAAQzS,EAAG0S,IAAKzQ,EAAIzB,MAAMY,KAC3D,GAAIZ,EAEF,GADIyB,EAAIxB,IAAMD,EAAKxf,SAAUihB,EAAM,IAAI6R,GAAI7R,EAAIzB,KAAMyB,EAAIxB,GAAK,IAC1DwB,EAAIxB,GAAK,EACXwB,EAAM,IAAI6R,GAAI7R,EAAIzB,KAAMyB,EAAIxB,GAAK,GACjCT,EAAGO,aAAaC,EAAKvE,OAAOgG,EAAIxB,GAAK,GAAKD,EAAKvE,OAAOgG,EAAIxB,GAAK,GAC/CqT,GAAI7R,EAAIzB,KAAMyB,EAAIxB,GAAK,GAAIwB,EAAK,mBAC3C,GAAIA,EAAIzB,KAAOR,EAAG0S,IAAIxgB,MAAO,CAClC,IAAI3D,EAAOkkB,GAAQzS,EAAG0S,IAAKzQ,EAAIzB,KAAO,GAAGY,KACrC7S,IACF0T,EAAM,IAAI6R,GAAI7R,EAAIzB,KAAM,GACxBR,EAAGO,aAAaC,EAAKvE,OAAO,GAAK+D,EAAG0S,IAAIq9B,gBACxBxhD,EAAK0N,OAAO1N,EAAKvN,OAAS,GAC1B8yB,GAAI7R,EAAIzB,KAAO,EAAGjS,EAAKvN,OAAS,GAAIihB,EAAK,cAE7D,CAEF4uC,EAAO7rD,KAAK,IAAIo/C,GAAMniC,EAAKA,GAlBQ,CAoBrCjC,EAAGuwC,cAAcM,EACnB,GAAI,EACJ0K,iBAAkB,SAAUv7C,GAAM,OAAOi+B,GAAQj+B,GAAI,WAEnD,IADA,IAAIw7C,EAAOx7C,EAAGqwC,iBACLnwD,EAAIs7D,EAAKx6D,OAAS,EAAGd,GAAK,EAAGA,IAClC8f,EAAGO,aAAaP,EAAG0S,IAAIq9B,gBAAiByL,EAAKt7D,GAAGqvC,OAAQisB,EAAKt7D,GAAG8W,KAAM,UAC1EwkD,EAAOx7C,EAAGqwC,iBACV,IAAK,IAAIrkC,EAAM,EAAGA,EAAMwvC,EAAKx6D,OAAQgrB,IACjChM,EAAGkB,WAAWs6C,EAAKxvC,GAAKlM,OAAOU,KAAM,MAAM,GAC/C63B,GAAoBr4B,EACtB,GAAI,EACJy7C,SAAU,SAAUz7C,GAAM,OAAOA,EAAG0wC,iBAAiB,KAAM,QAAU,EACrEgL,gBAAiB,SAAU17C,GAAM,OAAOA,EAAG07C,iBAAmB,GAIhE,SAASlpC,GAAUxS,EAAIge,GACrB,IAAIxd,EAAOiS,GAAQzS,EAAG0S,IAAKsL,GACvB4wB,EAAShxB,GAAWpd,GAExB,OADIouC,GAAUpuC,IAAQwd,EAAQ5K,GAAOw7B,IAC9B0I,IAAU,EAAMt3C,EAAI4uC,EAAQ5wB,EAAO,EAC5C,CACA,SAASo7B,GAAQp5C,EAAIge,GACnB,IAAIxd,EAAOiS,GAAQzS,EAAG0S,IAAKsL,GACvB4wB,EAAS/wB,GAAcrd,GAE3B,OADIouC,GAAUpuC,IAAQwd,EAAQ5K,GAAOw7B,IAC9B0I,IAAU,EAAMt3C,EAAIQ,EAAMwd,GAAQ,EAC3C,CACA,SAASk7B,GAAel5C,EAAIkC,GAC1B,IAAI7F,EAAQmW,GAAUxS,EAAIkC,EAAI1B,MAC1BA,EAAOiS,GAAQzS,EAAG0S,IAAKrW,EAAMmE,MAC7BkK,EAAQ0C,GAAS5M,EAAMR,EAAG0S,IAAI9G,WAClC,IAAKlB,GAA2B,GAAlBA,EAAM,GAAGG,MAAY,CACjC,IAAI8wC,EAAapvD,KAAKC,IAAI6P,EAAMoE,GAAID,EAAKY,KAAK8F,OAAO,OACjD00C,EAAO15C,EAAI1B,MAAQnE,EAAMmE,MAAQ0B,EAAIzB,IAAMk7C,GAAcz5C,EAAIzB,GACjE,OAAOqT,GAAIzX,EAAMmE,KAAMo7C,EAAO,EAAID,EAAYt/C,EAAM2O,OACtD,CACA,OAAO3O,CACT,CAGA,SAASw/C,GAAgB77C,EAAI87C,EAAOC,GAClC,GAAoB,iBAATD,KACTA,EAAQxD,GAASwD,IACH,OAAO,EAIvB97C,EAAG/C,QAAQ0kB,MAAMq6B,eACjB,IAAIC,EAAYj8C,EAAG/C,QAAQ/Y,MAAOuP,GAAO,EACzC,IACMuM,EAAGszC,eAAgBtzC,EAAGV,MAAM8rC,eAAgB,GAC5C2Q,IAAa/7C,EAAG/C,QAAQ/Y,OAAQ,GACpCuP,EAAOqoD,EAAM97C,IAAOgI,CAItB,CAHE,QACAhI,EAAG/C,QAAQ/Y,MAAQ+3D,EACnBj8C,EAAGV,MAAM8rC,eAAgB,CAC3B,CACA,OAAO33C,CACT,CAEA,SAASyoD,GAAmBl8C,EAAIhW,EAAM6iD,GACpC,IAAK,IAAI3sD,EAAI,EAAGA,EAAI8f,EAAGV,MAAM68C,QAAQn7D,OAAQd,IAAK,CAChD,IAAIqN,EAAS4oD,GAAUnsD,EAAMgW,EAAGV,MAAM68C,QAAQj8D,GAAI2sD,EAAQ7sC,GAC1D,GAAIzS,EAAU,OAAOA,CACvB,CACA,OAAQyS,EAAG9c,QAAQk5D,WAAajG,GAAUnsD,EAAMgW,EAAG9c,QAAQk5D,UAAWvP,EAAQ7sC,IACzEm2C,GAAUnsD,EAAMgW,EAAG9c,QAAQyyD,OAAQ9I,EAAQ7sC,EAClD,CAKA,IAAIq8C,GAAU,IAAI70C,EAElB,SAAS80C,GAAYt8C,EAAIhW,EAAMuB,EAAGshD,GAChC,IAAI0P,EAAMv8C,EAAGV,MAAMk9C,OACnB,GAAID,EAAK,CACP,GAAIjG,GAActsD,GAAS,MAAO,UAUlC,GATI,MAAMK,KAAKL,GACXgW,EAAGV,MAAMk9C,OAAS,KAElBH,GAAQv2D,IAAI,IAAI,WACZka,EAAGV,MAAMk9C,QAAUD,IACrBv8C,EAAGV,MAAMk9C,OAAS,KAClBx8C,EAAG/C,QAAQ0kB,MAAMp7B,QAErB,IACEk2D,GAAiBz8C,EAAIu8C,EAAM,IAAMvyD,EAAMuB,EAAGshD,GAAW,OAAO,CAClE,CACA,OAAO4P,GAAiBz8C,EAAIhW,EAAMuB,EAAGshD,EACvC,CAEA,SAAS4P,GAAiBz8C,EAAIhW,EAAMuB,EAAGshD,GACrC,IAAIt/C,EAAS2uD,GAAmBl8C,EAAIhW,EAAM6iD,GAY1C,MAVc,SAAVt/C,IACAyS,EAAGV,MAAMk9C,OAASxyD,GACR,WAAVuD,GACAi2B,GAAYxjB,EAAI,aAAcA,EAAIhW,EAAMuB,GAE9B,WAAVgC,GAAiC,SAAVA,IACzBghB,GAAiBhjB,GACjBqpC,GAAa50B,MAGNzS,CACX,CAGA,SAASmvD,GAAiB18C,EAAIzU,GAC5B,IAAIvB,EAAO6sD,GAAQtrD,GAAG,GACtB,QAAKvB,IAEDuB,EAAEqrD,WAAa52C,EAAGV,MAAMk9C,OAInBF,GAAYt8C,EAAI,SAAWhW,EAAMuB,GAAG,SAAUsa,GAAK,OAAOg2C,GAAgB77C,EAAI6F,GAAG,EAAO,KACxFy2C,GAAYt8C,EAAIhW,EAAMuB,GAAG,SAAUsa,GACjC,GAAgB,iBAALA,EAAgB,WAAWxb,KAAKwb,GAAKA,EAAE82C,OAC9C,OAAOd,GAAgB77C,EAAI6F,EACjC,IAEAy2C,GAAYt8C,EAAIhW,EAAMuB,GAAG,SAAUsa,GAAK,OAAOg2C,GAAgB77C,EAAI6F,EAAI,IAElF,CAGA,SAAS+2C,GAAkB58C,EAAIzU,EAAGkV,GAChC,OAAO67C,GAAYt8C,EAAI,IAAMS,EAAK,IAAKlV,GAAG,SAAUsa,GAAK,OAAOg2C,GAAgB77C,EAAI6F,GAAG,EAAO,GAChG,CAEA,IAAIg3C,GAAiB,KACrB,SAASC,GAAUvxD,GACjB,IAAIyU,EAAK3f,KACT,KAAIkL,EAAEqb,QAAUrb,EAAEqb,QAAU5G,EAAG/C,QAAQ0kB,MAAMo7B,aAC7C/8C,EAAGkO,MAAMmnB,MAAQ7vB,IACbkI,GAAe1N,EAAIzU,KAAvB,CAEIyX,GAAMC,EAAa,IAAmB,IAAb1X,EAAEgrD,UAAiBhrD,EAAEijB,aAAc,GAChE,IAAInD,EAAO9f,EAAEgrD,QACbv2C,EAAG/C,QAAQ/Y,MAAgB,IAARmnB,GAAc9f,EAAEqrD,SACnC,IAAIoG,EAAUN,GAAiB18C,EAAIzU,GAC/B+X,IACFu5C,GAAiBG,EAAU3xC,EAAO,KAE7B2xC,GAAmB,IAAR3xC,GAAesF,MAAiB5M,EAAMxY,EAAEorD,QAAUprD,EAAE0jB,UAChEjP,EAAG0wC,iBAAiB,GAAI,KAAM,QAEhC9tC,IAAUmB,IAAQi5C,GAAmB,IAAR3xC,GAAc9f,EAAEqrD,WAAarrD,EAAE0jB,SAAWla,SAASsmD,aAChFtmD,SAASsmD,YAAY,OAGb,IAARhwC,GAAe,2BAA2BhhB,KAAK2V,EAAG/C,QAAQ64B,QAAQ7gC,YAClEgoD,GAAcj9C,EAjBkB,CAkBtC,CAEA,SAASi9C,GAAcj9C,GACrB,IAAI81B,EAAU91B,EAAG/C,QAAQ64B,QAGzB,SAASonB,EAAG3xD,GACO,IAAbA,EAAEgrD,SAAkBhrD,EAAEmrD,SACxBjyC,EAAQqxB,EAAS,wBACjBtqC,GAAIuJ,SAAU,QAASmoD,GACvB1xD,GAAIuJ,SAAU,YAAamoD,GAE/B,CARAv3C,EAASmwB,EAAS,wBASlBhuC,GAAGiN,SAAU,QAASmoD,GACtBp1D,GAAGiN,SAAU,YAAamoD,EAC5B,CAEA,SAASC,GAAQ5xD,GACE,IAAbA,EAAEgrD,UAAiBl2D,KAAKqyB,IAAIwf,IAAIhuC,OAAQ,GAC5CwpB,GAAertB,KAAMkL,EACvB,CAEA,SAAS6xD,GAAW7xD,GAClB,IAAIyU,EAAK3f,KACT,KAAIkL,EAAEqb,QAAUrb,EAAEqb,QAAU5G,EAAG/C,QAAQ0kB,MAAMo7B,YACzC51B,GAAcnnB,EAAG/C,QAAS1R,IAAMmiB,GAAe1N,EAAIzU,IAAMA,EAAE0jB,UAAY1jB,EAAEmrD,QAAU3yC,GAAOxY,EAAEorD,SAAhG,CACA,IAAIJ,EAAUhrD,EAAEgrD,QAAS8G,EAAW9xD,EAAE8xD,SACtC,GAAI/5C,GAAUizC,GAAWsG,GAA6D,OAA5CA,GAAiB,UAAMtuC,GAAiBhjB,GAClF,IAAK+X,GAAY/X,EAAEnJ,SAASmJ,EAAEnJ,MAAQ,MAAQs6D,GAAiB18C,EAAIzU,GAAnE,CACA,IAAIkV,EAAKkT,OAAO+hC,aAAyB,MAAZ2H,EAAmB9G,EAAU8G,GAEhD,MAAN58C,IACAm8C,GAAkB58C,EAAIzU,EAAGkV,IAC7BT,EAAG/C,QAAQ0kB,MAAMy7B,WAAW7xD,GALoD,CAHkC,CASpH,CAEA,IAaI+xD,GAAWC,GAbXC,GAAoB,IAEpBC,GAAY,SAASh2C,EAAMvF,EAAK8M,GAClC3uB,KAAKonB,KAAOA,EACZpnB,KAAK6hB,IAAMA,EACX7hB,KAAK2uB,OAASA,CAChB,EAQA,SAAS0uC,GAAYx7C,EAAK8M,GACxB,IAAI2uC,GAAO,IAAIh2C,KACf,OAAI41C,IAAmBA,GAAgBK,QAAQD,EAAKz7C,EAAK8M,IACvDsuC,GAAYC,GAAkB,KACvB,UACED,IAAaA,GAAUM,QAAQD,EAAKz7C,EAAK8M,IAClDuuC,GAAkB,IAAIE,GAAUE,EAAKz7C,EAAK8M,GAC1CsuC,GAAY,KACL,WAEPA,GAAY,IAAIG,GAAUE,EAAKz7C,EAAK8M,GACpCuuC,GAAkB,KACX,SAEX,CAOA,SAASM,GAAYtyD,GACnB,IAAIyU,EAAK3f,KAAM4c,EAAU+C,EAAG/C,QAC5B,KAAIyQ,GAAe1N,EAAIzU,IAAM0R,EAAQmlC,aAAenlC,EAAQ0kB,MAAMm8B,iBAIlE,GAHA7gD,EAAQ0kB,MAAMq6B,eACd/+C,EAAQ/Y,MAAQqH,EAAEqrD,SAEdzvB,GAAclqB,EAAS1R,GACpB2X,IAGHjG,EAAQorB,SAAS4Z,WAAY,EAC7Br6B,YAAW,WAAc,OAAO3K,EAAQorB,SAAS4Z,WAAY,CAAM,GAAG,WAI1E,IAAI8b,GAAc/9C,EAAIzU,GAAtB,CACA,IAAI2W,EAAM8tB,GAAahwB,EAAIzU,GAAIyjB,EAASD,GAASxjB,GAAIyyD,EAAS97C,EAAMw7C,GAAYx7C,EAAK8M,GAAU,SAC/F5uB,OAAOi1C,QAGO,GAAVrmB,GAAehP,EAAGV,MAAM2+C,eACxBj+C,EAAGV,MAAM2+C,cAAc1yD,GAEvB2W,GAAOg8C,GAAmBl+C,EAAIgP,EAAQ9M,EAAK87C,EAAQzyD,KAEzC,GAAVyjB,EACE9M,EAAOi8C,GAAen+C,EAAIkC,EAAK87C,EAAQzyD,GAClCsjB,GAAStjB,IAAM0R,EAAQorB,UAAY9Z,GAAiBhjB,GAC1C,GAAVyjB,GACL9M,GAAOinC,GAAgBnpC,EAAG0S,IAAKxQ,GACnC0F,YAAW,WAAc,OAAO3K,EAAQ0kB,MAAM0T,OAAS,GAAG,KACvC,GAAVrmB,IACL3K,EAAqBrE,EAAG/C,QAAQ0kB,MAAMy8B,cAAc7yD,GACjDgqC,GAAev1B,IAlBW,CAoBrC,CAEA,SAASk+C,GAAmBl+C,EAAIgP,EAAQ9M,EAAK87C,EAAQhrD,GACnD,IAAIhJ,EAAO,QAKX,MAJc,UAAVg0D,EAAsBh0D,EAAO,SAAWA,EACzB,UAAVg0D,IAAsBh0D,EAAO,SAAWA,GAG1CsyD,GAAYt8C,EAAKw2C,GAFxBxsD,GAAkB,GAAVglB,EAAc,OAAmB,GAAVA,EAAc,SAAW,SAAWhlB,EAEpBgJ,GAAQA,GAAO,SAAU8oD,GAEtE,GADoB,iBAATA,IAAqBA,EAAQxD,GAASwD,KAC5CA,EAAS,OAAO,EACrB,IAAIroD,GAAO,EACX,IACMuM,EAAGszC,eAAgBtzC,EAAGV,MAAM8rC,eAAgB,GAChD33C,EAAOqoD,EAAM97C,EAAIkC,IAAQ8F,CAG3B,CAFE,QACAhI,EAAGV,MAAM8rC,eAAgB,CAC3B,CACA,OAAO33C,CACT,GACF,CAEA,SAAS4qD,GAAer+C,EAAIg+C,EAAQhrD,GAClC,IAAIsrD,EAASt+C,EAAGuB,UAAU,kBACtBxZ,EAAQu2D,EAASA,EAAOt+C,EAAIg+C,EAAQhrD,GAAS,CAAC,EAClD,GAAkB,MAAdjL,EAAMw2D,KAAc,CACtB,IAAI51B,EAAO3kB,EAAWhR,EAAM4jD,UAAY5jD,EAAM2jD,QAAU3jD,EAAM0jD,OAC9D3uD,EAAMw2D,KAAO51B,EAAO,YAAwB,UAAVq1B,EAAqB,OAAmB,UAAVA,EAAqB,OAAS,MAChG,CAIA,OAHoB,MAAhBj2D,EAAMf,QAAkBgZ,EAAG0S,IAAI1rB,UAAUe,EAAMf,OAASgZ,EAAG0S,IAAI1rB,QAAUgM,EAAM4jD,UAC/D,MAAhB7uD,EAAMy2D,SAAkBz2D,EAAMy2D,OAASz6C,EAAM/Q,EAAM2jD,QAAU3jD,EAAMic,SAC/C,MAApBlnB,EAAM02D,aAAsB12D,EAAM02D,aAAe16C,EAAM/Q,EAAM0jD,OAAS1jD,EAAMic,UACzElnB,CACT,CAEA,SAASo2D,GAAen+C,EAAIkC,EAAK87C,EAAQhrD,GACnCgQ,EAAM4E,WAAWxb,EAAKgpC,GAAap1B,GAAK,GACrCA,EAAGkO,MAAMmnB,MAAQ7vB,IAExB,IAEsBk5C,EAFlBC,EAAWN,GAAer+C,EAAIg+C,EAAQhrD,GAEtCk/B,EAAMlyB,EAAG0S,IAAIwf,IACblyB,EAAG9c,QAAQ07D,UAAYxvC,KAAgBpP,EAAGszC,cAChC,UAAV0K,IAAuBU,EAAYxsB,EAAIntC,SAASmd,KAAS,IACxD6R,IAAK2qC,EAAYxsB,EAAIC,OAAOusB,IAAY5+C,OAAQoC,GAAO,GAAKA,EAAI6rB,KAAO,KACvEha,GAAI2qC,EAAU3+C,KAAMmC,GAAO,GAAKA,EAAI6rB,KAAO,GAC5C8wB,GAAoB7+C,EAAIhN,EAAOkP,EAAKy8C,GAEpCG,GAAiB9+C,EAAIhN,EAAOkP,EAAKy8C,EACvC,CAIA,SAASE,GAAoB7+C,EAAIhN,EAAOkP,EAAKy8C,GAC3C,IAAI1hD,EAAU+C,EAAG/C,QAAS8hD,GAAQ,EAC9BC,EAAU1+C,GAAUN,GAAI,SAAUzU,GAChC2X,IAAUjG,EAAQorB,SAAS4Z,WAAY,GAC3CjiC,EAAGV,MAAMm2B,cAAe,EACpBz1B,EAAGV,MAAMk2B,oBACPx1B,EAAGk1B,WAAcl1B,EAAGV,MAAMk2B,mBAAoB,EAC3CD,GAAev1B,IAExBxU,GAAIyR,EAAQgqB,QAAQ1W,cAAe,UAAWyuC,GAC9CxzD,GAAIyR,EAAQgqB,QAAQ1W,cAAe,YAAa0uC,GAChDzzD,GAAIyR,EAAQorB,SAAU,YAAa62B,GACnC1zD,GAAIyR,EAAQorB,SAAU,OAAQ22B,GACzBD,IACHxwC,GAAiBhjB,GACZozD,EAASH,QACVrV,GAAgBnpC,EAAG0S,IAAKxQ,EAAK,KAAM,KAAMy8C,EAAS33D,QAEjDkc,IAAWK,GAAWP,GAAoB,GAAdC,EAC7B2E,YAAW,WAAa3K,EAAQgqB,QAAQ1W,cAAcpT,KAAKk4B,MAAM,CAAC8pB,eAAe,IAAQliD,EAAQ0kB,MAAM0T,OAAQ,GAAG,IAElHp4B,EAAQ0kB,MAAM0T,QAEtB,IACI4pB,EAAY,SAASG,GACvBL,EAAQA,GAASxyD,KAAK0kB,IAAIje,EAAMo9B,QAAUgvB,EAAGhvB,SAAW7jC,KAAK0kB,IAAIje,EAAMq9B,QAAU+uB,EAAG/uB,UAAY,EAClG,EACI6uB,EAAY,WAAc,OAAOH,GAAQ,CAAM,EAE/C77C,IAAUjG,EAAQorB,SAAS4Z,WAAY,GAC3CjiC,EAAGV,MAAMm2B,aAAeupB,EACxBA,EAAQ3mC,MAAQsmC,EAASF,WACzB32D,GAAGmV,EAAQgqB,QAAQ1W,cAAe,UAAWyuC,GAC7Cl3D,GAAGmV,EAAQgqB,QAAQ1W,cAAe,YAAa0uC,GAC/Cn3D,GAAGmV,EAAQorB,SAAU,YAAa62B,GAClCp3D,GAAGmV,EAAQorB,SAAU,OAAQ22B,GAE7Bh/C,EAAGV,MAAMk2B,mBAAoB,EAC7B5tB,YAAW,WAAc,OAAO3K,EAAQ0kB,MAAM0T,OAAS,GAAG,IAEtDp4B,EAAQorB,SAASu2B,UAAY3hD,EAAQorB,SAASu2B,UACpD,CAEA,SAASS,GAAar/C,EAAIkC,EAAKq8C,GAC7B,GAAY,QAARA,EAAkB,OAAO,IAAIna,GAAMliC,EAAKA,GAC5C,GAAY,QAARq8C,EAAkB,OAAOv+C,EAAGs/C,WAAWp9C,GAC3C,GAAY,QAARq8C,EAAkB,OAAO,IAAIna,GAAMtwB,GAAI5R,EAAI1B,KAAM,GAAI8T,GAAQtU,EAAG0S,IAAKoB,GAAI5R,EAAI1B,KAAO,EAAG,KAC3F,IAAIjT,EAASgxD,EAAKv+C,EAAIkC,GACtB,OAAO,IAAIkiC,GAAM72C,EAAOuS,KAAMvS,EAAOwS,GACvC,CAGA,SAAS++C,GAAiB9+C,EAAIhN,EAAOqJ,EAAOsiD,GACtC37C,GAAMuyB,GAAev1B,GACzB,IAAI/C,EAAU+C,EAAG/C,QAASyV,EAAM1S,EAAG0S,IACnCnE,GAAiBvb,GAEjB,IAAIusD,EAAUC,EAAUC,EAAW/sC,EAAIwf,IAAKC,EAASstB,EAASttB,OAY9D,GAXIwsB,EAASH,SAAWG,EAAS33D,QAC/Bw4D,EAAW9sC,EAAIwf,IAAIntC,SAASsX,GAExBkjD,EADAC,GAAY,EACDrtB,EAAOqtB,GAEP,IAAIpb,GAAM/nC,EAAOA,KAEhCkjD,EAAW7sC,EAAIwf,IAAIN,UACnB4tB,EAAW9sC,EAAIwf,IAAIE,WAGA,aAAjBusB,EAASJ,KACNI,EAASH,SAAUe,EAAW,IAAInb,GAAM/nC,EAAOA,IACpDA,EAAQ2zB,GAAahwB,EAAIhN,GAAO,GAAM,GACtCwsD,GAAY,MACP,CACL,IAAIh7C,EAAQ66C,GAAar/C,EAAI3D,EAAOsiD,EAASJ,MAEzCgB,EADAZ,EAAS33D,OACEiiD,GAAYsW,EAAU/6C,EAAM+qB,OAAQ/qB,EAAMxN,KAAM2nD,EAAS33D,QAEzDwd,CACjB,CAEKm6C,EAASH,QAIU,GAAbgB,GACTA,EAAWrtB,EAAOnxC,OAClBshB,GAAaoQ,EAAK4xB,GAAmBtkC,EAAImyB,EAAO/sC,OAAO,CAACm6D,IAAYC,GACvD,CAACr3C,QAAQ,EAAOE,OAAQ,YAC5B8pB,EAAOnxC,OAAS,GAAKmxC,EAAOqtB,GAAUntB,SAA4B,QAAjBssB,EAASJ,OAAmBI,EAAS33D,QAC/Fsb,GAAaoQ,EAAK4xB,GAAmBtkC,EAAImyB,EAAOxxC,MAAM,EAAG6+D,GAAUp6D,OAAO+sC,EAAOxxC,MAAM6+D,EAAW,IAAK,GAC1F,CAACr3C,QAAQ,EAAOE,OAAQ,WACrCo3C,EAAW/sC,EAAIwf,KAEfoX,GAAoB52B,EAAK8sC,EAAUD,EAAUn3C,IAZ7Co3C,EAAW,EACXl9C,GAAaoQ,EAAK,IAAIqxB,GAAU,CAACwb,GAAW,GAAIn3C,GAChDq3C,EAAW/sC,EAAIwf,KAajB,IAAIwtB,EAAUrjD,EACd,SAASsjD,EAASz9C,GAChB,GAAyB,GAArB6R,GAAI2rC,EAASx9C,GAGjB,GAFAw9C,EAAUx9C,EAEW,aAAjBy8C,EAASJ,KAAqB,CAKhC,IAJA,IAAIpsB,EAAS,GAAI7wB,EAAUtB,EAAG9c,QAAQoe,QAClCs+C,EAAW54C,EAAYyL,GAAQC,EAAKrW,EAAMmE,MAAMY,KAAM/E,EAAMoE,GAAIa,GAChEu+C,EAAS74C,EAAYyL,GAAQC,EAAKxQ,EAAI1B,MAAMY,KAAMc,EAAIzB,GAAIa,GAC1DyO,EAAOxjB,KAAKiE,IAAIovD,EAAUC,GAAS7vC,EAAQzjB,KAAKC,IAAIozD,EAAUC,GACzDr/C,EAAOjU,KAAKiE,IAAI6L,EAAMmE,KAAM0B,EAAI1B,MAAO6B,EAAM9V,KAAKiE,IAAIwP,EAAGme,WAAY5xB,KAAKC,IAAI6P,EAAMmE,KAAM0B,EAAI1B,OAClGA,GAAQ6B,EAAK7B,IAAQ,CACxB,IAAIY,EAAOqR,GAAQC,EAAKlS,GAAMY,KAAM0+C,EAAUv3C,EAAWnH,EAAM2O,EAAMzO,GACjEyO,GAAQC,EACRmiB,EAAOntC,KAAK,IAAIo/C,GAAMtwB,GAAItT,EAAMs/C,GAAUhsC,GAAItT,EAAMs/C,KAC/C1+C,EAAKpgB,OAAS8+D,GACnB3tB,EAAOntC,KAAK,IAAIo/C,GAAMtwB,GAAItT,EAAMs/C,GAAUhsC,GAAItT,EAAM+H,EAAWnH,EAAM4O,EAAO1O,KAClF,CACK6wB,EAAOnxC,QAAUmxC,EAAOntC,KAAK,IAAIo/C,GAAM/nC,EAAOA,IACnDiG,GAAaoQ,EAAK4xB,GAAmBtkC,EAAIy/C,EAASttB,OAAOxxC,MAAM,EAAG6+D,GAAUp6D,OAAO+sC,GAASqtB,GAC/E,CAACn3C,OAAQ,SAAUF,QAAQ,IACxCnI,EAAG82B,eAAe50B,EACpB,KAAO,CACL,IAE8BlL,EAF1B+oD,EAAWR,EACX/6C,EAAQ66C,GAAar/C,EAAIkC,EAAKy8C,EAASJ,MACvChvB,EAASwwB,EAASxwB,OAClBxb,GAAIvP,EAAM+qB,OAAQA,GAAU,GAC9Bv4B,EAAOwN,EAAMxN,KACbu4B,EAASnb,GAAO2rC,EAASjgD,OAAQ0E,EAAM+qB,UAEvCv4B,EAAOwN,EAAM+qB,OACbA,EAASpb,GAAO4rC,EAAShgD,KAAMyE,EAAMxN,OAEvC,IAAIgpD,EAAWP,EAASttB,OAAOxxC,MAAM,GACrCq/D,EAASR,GAAYS,GAAajgD,EAAI,IAAIokC,GAAM9vB,GAAQ5B,EAAK6c,GAASv4B,IACtEsL,GAAaoQ,EAAK4xB,GAAmBtkC,EAAIggD,EAAUR,GAAWp3C,EAChE,CACF,CAEA,IAAI83C,EAAajjD,EAAQgqB,QAAQpX,wBAK7BswC,EAAU,EAEd,SAASn5D,EAAOuE,GACd,IAAI60D,IAAaD,EACbl+C,EAAM+tB,GAAahwB,EAAIzU,GAAG,EAAuB,aAAjBozD,EAASJ,MAC7C,GAAKt8C,EACL,GAAyB,GAArB8R,GAAI9R,EAAKy9C,GAAe,CAC1B1/C,EAAGkO,MAAMmnB,MAAQ7vB,IACjBm6C,EAAS19C,GACT,IAAI88B,EAAU1I,GAAap5B,EAASyV,IAChCzQ,EAAIzB,MAAQu+B,EAAQh/B,IAAMkC,EAAIzB,KAAOu+B,EAAQj/B,OAC7C8H,WAAWtH,GAAUN,GAAI,WAAiBmgD,GAAWC,GAAYp5D,EAAOuE,EAAK,IAAI,IACvF,KAAO,CACL,IAAIuiC,EAAUviC,EAAE8kC,QAAU6vB,EAAW/2B,KAAO,GAAK59B,EAAE8kC,QAAU6vB,EAAWh3B,OAAS,GAAK,EAClF4E,GAAWlmB,WAAWtH,GAAUN,GAAI,WAClCmgD,GAAWC,IACfnjD,EAAQorB,SAASqE,WAAaoB,EAC9B9mC,EAAOuE,GACT,IAAI,GACN,CACF,CAEA,SAASkI,EAAKlI,GACZyU,EAAGV,MAAM2+C,eAAgB,EACzBkC,EAAU14D,IAIN8D,IACFgjB,GAAiBhjB,GACjB0R,EAAQ0kB,MAAM0T,SAEhB7pC,GAAIyR,EAAQgqB,QAAQ1W,cAAe,YAAa8vC,GAChD70D,GAAIyR,EAAQgqB,QAAQ1W,cAAe,UAAW2sC,GAC9CxqC,EAAIrY,QAAQ+sC,cAAgB,IAC9B,CAEA,IAAIiZ,EAAO//C,GAAUN,GAAI,SAAUzU,GACf,IAAdA,EAAE+0D,SAAkBvxC,GAASxjB,GAC1BvE,EAAOuE,GADyBkI,EAAKlI,EAE9C,IACI2xD,EAAK58C,GAAUN,EAAIvM,GACvBuM,EAAGV,MAAM2+C,cAAgBf,EACzBp1D,GAAGmV,EAAQgqB,QAAQ1W,cAAe,YAAa8vC,GAC/Cv4D,GAAGmV,EAAQgqB,QAAQ1W,cAAe,UAAW2sC,EAC/C,CAIA,SAAS+C,GAAajgD,EAAIwE,GACxB,IAAI+qB,EAAS/qB,EAAM+qB,OACfv4B,EAAOwN,EAAMxN,KACbupD,EAAa9tC,GAAQzS,EAAG0S,IAAK6c,EAAO/uB,MACxC,GAAyB,GAArBuT,GAAIwb,EAAQv4B,IAAcu4B,EAAOvkB,QAAUhU,EAAKgU,OAAU,OAAOxG,EACrE,IAAIkG,EAAQ0C,GAASmzC,GACrB,IAAK71C,EAAS,OAAOlG,EACrB,IAAIrjB,EAAQ4pB,GAAcL,EAAO6kB,EAAO9uB,GAAI8uB,EAAOvkB,QAASJ,EAAOF,EAAMvpB,GACzE,GAAIypB,EAAK9K,MAAQyvB,EAAO9uB,IAAMmK,EAAK7K,IAAMwvB,EAAO9uB,GAAM,OAAO+D,EAC7D,IAKIyuB,EALAutB,EAAWr/D,GAAUypB,EAAK9K,MAAQyvB,EAAO9uB,KAAsB,GAAdmK,EAAKC,OAAc,EAAI,GAC5E,GAAgB,GAAZ21C,GAAiBA,GAAY91C,EAAM1pB,OAAU,OAAOwjB,EAKxD,GAAIxN,EAAKwJ,MAAQ+uB,EAAO/uB,KACtByyB,GAAYj8B,EAAKwJ,KAAO+uB,EAAO/uB,OAA6B,OAApBR,EAAG0S,IAAI9G,UAAqB,GAAK,GAAK,MACzE,CACL,IAAI60C,EAAY11C,GAAcL,EAAO1T,EAAKyJ,GAAIzJ,EAAKgU,QAC/Cd,EAAMu2C,EAAYt/D,IAAU6V,EAAKyJ,GAAK8uB,EAAO9uB,KAAqB,GAAdmK,EAAKC,OAAc,EAAI,GAE3EooB,EADAwtB,GAAaD,EAAW,GAAKC,GAAaD,EAC/Bt2C,EAAM,EAENA,EAAM,CACvB,CAEA,IAAIw2C,EAAUh2C,EAAM81C,GAAYvtB,GAAY,EAAI,IAC5CnzB,EAAOmzB,IAA8B,GAAjBytB,EAAQ71C,OAC5BpK,EAAKX,EAAO4gD,EAAQ5gD,KAAO4gD,EAAQ3gD,GAAIiL,EAASlL,EAAO,QAAU,SACrE,OAAOyvB,EAAO9uB,IAAMA,GAAM8uB,EAAOvkB,QAAUA,EAASxG,EAAQ,IAAI4/B,GAAM,IAAItwB,GAAIyb,EAAO/uB,KAAMC,EAAIuK,GAAShU,EAC1G,CAKA,SAAS2pD,GAAY3gD,EAAIzU,EAAG1I,EAAM+9D,GAChC,IAAIC,EAAIC,EACR,GAAIv1D,EAAEw1D,QACJF,EAAKt1D,EAAEw1D,QAAQ,GAAG3wB,QAClB0wB,EAAKv1D,EAAEw1D,QAAQ,GAAG1wB,aAElB,IAAMwwB,EAAKt1D,EAAE6kC,QAAS0wB,EAAKv1D,EAAE8kC,OACH,CAA1B,MAAMC,GAAO,OAAO,CAAM,CAE5B,GAAIuwB,GAAMt0D,KAAKie,MAAMxK,EAAG/C,QAAQ+pB,QAAQnX,wBAAwBG,OAAU,OAAO,EAC7E4wC,GAAWryC,GAAiBhjB,GAEhC,IAAI0R,EAAU+C,EAAG/C,QACb+jD,EAAU/jD,EAAQ64B,QAAQjmB,wBAE9B,GAAIixC,EAAKE,EAAQ93B,SAAW9a,GAAWpO,EAAInd,GAAS,OAAOirB,GAAmBviB,GAC9Eu1D,GAAME,EAAQ73B,IAAMlsB,EAAQ8vB,WAE5B,IAAK,IAAI7sC,EAAI,EAAGA,EAAI8f,EAAG/C,QAAQwoB,YAAYzkC,SAAUd,EAAG,CACtD,IAAIgJ,EAAI+T,EAAQ+pB,QAAQpiB,WAAW1kB,GACnC,GAAIgJ,GAAKA,EAAE2mB,wBAAwBG,OAAS6wC,EAI1C,OADApzC,GAAOzN,EAAInd,EAAMmd,EAFNsT,GAAatT,EAAG0S,IAAKouC,GACnB9gD,EAAG/C,QAAQwoB,YAAYvlC,GACF+U,UAAW1J,GACtCuiB,GAAmBviB,EAE9B,CACF,CAEA,SAASwyD,GAAc/9C,EAAIzU,GACzB,OAAOo1D,GAAY3gD,EAAIzU,EAAG,eAAe,EAC3C,CAOA,SAAS6yD,GAAcp+C,EAAIzU,GACrB47B,GAAcnnB,EAAG/C,QAAS1R,IAAM01D,GAAoBjhD,EAAIzU,IACxDmiB,GAAe1N,EAAIzU,EAAG,gBACrB8Y,GAAqBrE,EAAG/C,QAAQ0kB,MAAMy8B,cAAc7yD,EAC3D,CAEA,SAAS01D,GAAoBjhD,EAAIzU,GAC/B,QAAK6iB,GAAWpO,EAAI,sBACb2gD,GAAY3gD,EAAIzU,EAAG,qBAAqB,EACjD,CAEA,SAAS21D,GAAalhD,GACpBA,EAAG/C,QAAQgqB,QAAQhyB,UAAY+K,EAAG/C,QAAQgqB,QAAQhyB,UAAUnF,QAAQ,eAAgB,IAClFkQ,EAAG9c,QAAQi+D,MAAMrxD,QAAQ,aAAc,UACzCi8B,GAAY/rB,EACd,CAzYAy9C,GAAU/8D,UAAUk9D,QAAU,SAAUn2C,EAAMvF,EAAK8M,GACjD,OAAO3uB,KAAKonB,KAAO+1C,GAAoB/1C,GACf,GAAtBsM,GAAI7R,EAAK7hB,KAAK6hB,MAAa8M,GAAU3uB,KAAK2uB,MAC9C,EAwYA,IAAIoyC,GAAO,CAACn5C,SAAU,WAAW,MAAO,iBAAiB,GAErD9gB,GAAW,CAAC,EACZk6D,GAAiB,CAAC,EAEtB,SAASC,GAAcxiD,GACrB,IAAIuiD,EAAiBviD,EAAWuiD,eAEhC,SAAS/C,EAAOt0D,EAAMu3D,EAAO1U,EAAQ2U,GACnC1iD,EAAW3X,SAAS6C,GAAQu3D,EACxB1U,IAAUwU,EAAer3D,GAC3Bw3D,EAAY,SAAUxhD,EAAI1Z,EAAKsI,GAAUA,GAAOwyD,IAAQvU,EAAO7sC,EAAI1Z,EAAKsI,EAAO,EAAIi+C,EACvF,CAEA/tC,EAAW2iD,aAAenD,EAG1Bx/C,EAAWsiD,KAAOA,GAIlB9C,EAAO,QAAS,IAAI,SAAUt+C,EAAI1Z,GAAO,OAAO0Z,EAAGgwC,SAAS1pD,EAAM,IAAG,GACrEg4D,EAAO,OAAQ,MAAM,SAAUt+C,EAAI1Z,GACjC0Z,EAAG0S,IAAI2yB,WAAa/+C,EACpB8+C,GAASplC,EACX,IAAG,GAEHs+C,EAAO,aAAc,EAAGlZ,IAAU,GAClCkZ,EAAO,kBAAkB,GACzBA,EAAO,eAAe,GACtBA,EAAO,UAAW,GAAG,SAAUt+C,GAC7BslC,GAAetlC,GACf+rB,GAAY/rB,GACZywB,GAAUzwB,EACZ,IAAG,GAEHs+C,EAAO,gBAAiB,MAAM,SAAUt+C,EAAI1Z,GAE1C,GADA0Z,EAAG0S,IAAIi9B,QAAUrpD,EACZA,EAAL,CACA,IAAIo7D,EAAY,GAAItuC,EAASpT,EAAG0S,IAAIxgB,MACpC8N,EAAG0S,IAAIM,MAAK,SAAUxS,GACpB,IAAK,IAAI0B,EAAM,IAAK,CAClB,IAAIyI,EAAQnK,EAAKY,KAAKlc,QAAQoB,EAAK4b,GACnC,IAAc,GAAVyI,EAAe,MACnBzI,EAAMyI,EAAQrkB,EAAItF,OAClB0gE,EAAU18D,KAAK8uB,GAAIV,EAAQzI,GAC7B,CACAyI,GACF,IACA,IAAK,IAAIlzB,EAAIwhE,EAAU1gE,OAAS,EAAGd,GAAK,EAAGA,IACvCqgB,GAAaP,EAAG0S,IAAKpsB,EAAKo7D,EAAUxhE,GAAI4zB,GAAI4tC,EAAUxhE,GAAGsgB,KAAMkhD,EAAUxhE,GAAGugB,GAAKna,EAAItF,QAZtE,CAarB,IACAs9D,EAAO,eAAgB,8FAA8F,SAAUt+C,EAAI1Z,EAAKsI,GACtIoR,EAAGV,MAAMwhB,aAAe,IAAInmB,OAAOrU,EAAIsjB,QAAUtjB,EAAI+D,KAAK,MAAQ,GAAK,OAAQ,KAC3EuE,GAAOwyD,IAAQphD,EAAG2hD,SACxB,IACArD,EAAO,yBAA0B99B,IAA+B,SAAUxgB,GAAM,OAAOA,EAAG2hD,SAAW,IAAG,GACxGrD,EAAO,iBAAiB,GACxBA,EAAO,aAAcx6C,EAAS,kBAAoB,YAAY,WAC5D,MAAM,IAAI1R,MAAM,0DAClB,IAAG,GACHksD,EAAO,cAAc,GAAO,SAAUt+C,EAAI1Z,GAAO,OAAO0Z,EAAG4hD,gBAAgBC,WAAav7D,CAAK,IAAG,GAChGg4D,EAAO,eAAe,GAAO,SAAUt+C,EAAI1Z,GAAO,OAAO0Z,EAAG4hD,gBAAgBE,YAAcx7D,CAAK,IAAG,GAClGg4D,EAAO,kBAAkB,GAAO,SAAUt+C,EAAI1Z,GAAO,OAAO0Z,EAAG4hD,gBAAgBG,eAAiBz7D,CAAK,IAAG,GACxGg4D,EAAO,mBAAoBr6C,GAC3Bq6C,EAAO,yBAAyB,GAEhCA,EAAO,QAAS,WAAW,SAAUt+C,GACnCkhD,GAAalhD,GACb+hC,GAAc/hC,EAChB,IAAG,GACHs+C,EAAO,SAAU,WAAW,SAAUt+C,EAAI1Z,EAAKsI,GAC7C,IAAI4E,EAAO4iD,GAAU9vD,GACjBiI,EAAOK,GAAOwyD,IAAQhL,GAAUxnD,GAChCL,GAAQA,EAAKyzD,QAAUzzD,EAAKyzD,OAAOhiD,EAAIxM,GACvCA,EAAKyuD,QAAUzuD,EAAKyuD,OAAOjiD,EAAIzR,GAAQ,KAC7C,IACA+vD,EAAO,YAAa,MACpBA,EAAO,iBAAkB,MAEzBA,EAAO,gBAAgB,EAAO4D,IAAiB,GAC/C5D,EAAO,UAAW,IAAI,SAAUt+C,EAAI1Z,GAClC0Z,EAAG/C,QAAQwoB,YAAcic,GAAWp7C,EAAK0Z,EAAG9c,QAAQiiC,aACpD4c,GAAc/hC,EAChB,IAAG,GACHs+C,EAAO,eAAe,GAAM,SAAUt+C,EAAI1Z,GACxC0Z,EAAG/C,QAAQ+pB,QAAQhqB,MAAM+S,KAAOzpB,EAAMopC,GAAqB1vB,EAAG/C,SAAW,KAAO,IAChF+C,EAAG2hD,SACL,IAAG,GACHrD,EAAO,8BAA8B,GAAO,SAAUt+C,GAAM,OAAOi7B,GAAiBj7B,EAAK,IAAG,GAC5Fs+C,EAAO,iBAAkB,UAAU,SAAUt+C,GAC3C67B,GAAe77B,GACfi7B,GAAiBj7B,GACjBA,EAAG/C,QAAQg8B,WAAWJ,aAAa74B,EAAG0S,IAAIga,WAC1C1sB,EAAG/C,QAAQg8B,WAAWzB,cAAcx3B,EAAG0S,IAAI4Z,WAC7C,IAAG,GACHgyB,EAAO,eAAe,GAAO,SAAUt+C,EAAI1Z,GACzC0Z,EAAG/C,QAAQwoB,YAAcic,GAAW1hC,EAAG9c,QAAQ8jC,QAAS1gC,GACxDy7C,GAAc/hC,EAChB,IAAG,GACHs+C,EAAO,kBAAmB,EAAGvc,IAAe,GAC5Cuc,EAAO,uBAAuB,SAAU6D,GAAW,OAAOA,CAAS,GAAGpgB,IAAe,GACrFuc,EAAO,2BAA2B,EAAO7sB,IAAiB,GAE1D6sB,EAAO,+BAA+B,GACtCA,EAAO,mBAAmB,GAC1BA,EAAO,0BAA0B,GACjCA,EAAO,sBAAsB,GAE7BA,EAAO,YAAY,GAAO,SAAUt+C,EAAI1Z,GAC3B,YAAPA,IACF6uC,GAAOn1B,GACPA,EAAG/C,QAAQ0kB,MAAMygC,QAEnBpiD,EAAG/C,QAAQ0kB,MAAM0gC,gBAAgB/7D,EACnC,IAEAg4D,EAAO,oBAAqB,MAAM,SAAUt+C,EAAI1Z,GAC9CA,EAAe,KAARA,EAAc,KAAOA,EAC5B0Z,EAAG/C,QAAQ0kB,MAAM2gC,yBAAyBh8D,EAC5C,IAEAg4D,EAAO,gBAAgB,GAAO,SAAUt+C,EAAI1Z,GAAWA,GAAO0Z,EAAG/C,QAAQ0kB,MAAMp7B,OAAU,IAAG,GAC5F+3D,EAAO,YAAY,EAAMiE,IACzBjE,EAAO,qBAAsB,MAE7BA,EAAO,kBAAmB,KAC1BA,EAAO,qBAAsB,GAC7BA,EAAO,eAAgB,EAAG7sB,IAAiB,GAC3C6sB,EAAO,6BAA6B,EAAM7sB,IAAiB,GAC3D6sB,EAAO,WAAY,KACnBA,EAAO,YAAa,KACpBA,EAAO,gBAAgB,EAAMhZ,IAAgB,GAC7CgZ,EAAO,gBAAgB,EAAOhZ,IAAgB,GAC9CgZ,EAAO,eAAgB,KACvBA,EAAO,YAAa,KAAK,SAAUt+C,EAAI1Z,GAAO,OAAO0Z,EAAG0S,IAAIrY,QAAQysC,UAAYxgD,CAAK,IACrFg4D,EAAO,oBAAqB,MAC5BA,EAAO,iBAAkB,IAAI,SAAUt+C,GAAM,OAAOA,EAAG2hD,SAAW,IAAG,GACrErD,EAAO,qBAAsB,IAAOhZ,IAAgB,GACpDgZ,EAAO,uBAAuB,GAAM,SAAUt+C,EAAI1Z,GAC3CA,GAAO0Z,EAAG/C,QAAQ0kB,MAAM6gC,eAC/B,IAEAlE,EAAO,WAAY,MAAM,SAAUt+C,EAAI1Z,GAAO,OAAO0Z,EAAG/C,QAAQ0kB,MAAMo7B,WAAW7/C,SAAW5W,GAAO,EAAI,IACvGg4D,EAAO,YAAa,MACpBA,EAAO,YAAa,OAAO,SAAUt+C,EAAI1Z,GAAO,OAAO0Z,EAAG0S,IAAIqgC,aAAazsD,EAAM,IAAG,GACpFg4D,EAAO,UAAW,KACpB,CAEA,SAASiE,GAAgBviD,EAAIjY,EAAO6G,GAElC,IAAK7G,KADO6G,GAAOA,GAAOwyD,IACJ,CACpB,IAAIqB,EAAQziD,EAAG/C,QAAQylD,cACnBC,EAAS56D,EAAQD,GAAK0D,GAC1Bm3D,EAAO3iD,EAAG/C,QAAQorB,SAAU,YAAao6B,EAAMpmD,OAC/CsmD,EAAO3iD,EAAG/C,QAAQorB,SAAU,YAAao6B,EAAMG,OAC/CD,EAAO3iD,EAAG/C,QAAQorB,SAAU,WAAYo6B,EAAMI,MAC9CF,EAAO3iD,EAAG/C,QAAQorB,SAAU,YAAao6B,EAAMK,OAC/CH,EAAO3iD,EAAG/C,QAAQorB,SAAU,OAAQo6B,EAAMrrD,KAC5C,CACF,CAEA,SAAS8qD,GAAgBliD,GACnBA,EAAG9c,QAAQ2lC,cACbljB,EAAS3F,EAAG/C,QAAQgqB,QAAS,mBAC7BjnB,EAAG/C,QAAQoqB,MAAMrqB,MAAMi9B,SAAW,GAClCj6B,EAAG/C,QAAQk2B,WAAa,OAExB1uB,EAAQzE,EAAG/C,QAAQgqB,QAAS,mBAC5BtI,GAAY3e,IAEd8vB,GAAoB9vB,GACpBywB,GAAUzwB,GACV+rB,GAAY/rB,GACZ4H,YAAW,WAAc,OAAOqzB,GAAiBj7B,EAAK,GAAG,IAC3D,CAKA,SAASlB,GAAWgsB,EAAO5nC,GACzB,IAAI8qD,EAAS3tD,KAEb,KAAMA,gBAAgBye,IAAe,OAAO,IAAIA,GAAWgsB,EAAO5nC,GAElE7C,KAAK6C,QAAUA,EAAUA,EAAUyjB,EAAQzjB,GAAW,CAAC,EAEvDyjB,EAAQxf,GAAUjE,GAAS,GAE3B,IAAIwvB,EAAMxvB,EAAQ6E,MACA,iBAAP2qB,EAAmBA,EAAM,IAAIg9B,GAAIh9B,EAAKxvB,EAAQmd,KAAM,KAAMnd,EAAQ6sD,cAAe7sD,EAAQ0oB,WAC3F1oB,EAAQmd,OAAQqS,EAAI2yB,WAAaniD,EAAQmd,MAClDhgB,KAAKqyB,IAAMA,EAEX,IAAIiP,EAAQ,IAAI7iB,GAAWikD,YAAY7/D,EAAQ8/D,YAAY3iE,MACvD4c,EAAU5c,KAAK4c,QAAU,IAAI+kC,GAAQlX,EAAOpY,EAAKiP,EAAOz+B,GA2C5D,IAAK,IAAIyqD,KA1CT1wC,EAAQgqB,QAAQnoB,WAAaze,KAC7B6gE,GAAa7gE,MACT6C,EAAQ2lC,eACRxoC,KAAK4c,QAAQgqB,QAAQhyB,WAAa,oBACtC4mC,GAAex7C,MAEfA,KAAKif,MAAQ,CACX68C,QAAS,GACTzlC,SAAU,GACVN,QAAS,EACTvP,WAAW,EACX2uB,mBAAmB,EACnBX,SAAS,EACTuW,eAAe,EACf6X,eAAgB,EAAGC,aAAc,EACjCjF,eAAe,EACfxoB,cAAc,EACd2I,UAAW,IAAI52B,EACfg1C,OAAQ,KACR17B,aAAc,MAGZ59B,EAAQigE,YAAcr/C,GAAU7G,EAAQ0kB,MAAM0T,QAI9CryB,GAAMC,EAAa,IAAM2E,YAAW,WAAc,OAAOomC,EAAO/wC,QAAQ0kB,MAAMp7B,OAAM,EAAO,GAAG,IAElG68D,GAAsB/iE,MACtB+0D,KAEAnZ,GAAe57C,MACfA,KAAK6tB,MAAM4b,aAAc,EACzB4c,GAAUrmD,KAAMqyB,GAEXxvB,EAAQigE,YAAcr/C,GAAWzjB,KAAK60C,WACvCttB,YAAW,WACPomC,EAAO9Y,aAAe8Y,EAAO1uC,MAAMu1B,SAAWS,GAAQ0Y,EAC5D,GAAG,IAED7Y,GAAO90C,MAEKghE,GAAsBA,GAAet6C,eAAe4mC,IAChE0T,GAAe1T,GAAKttD,KAAM6C,EAAQyqD,GAAMyT,IAC5ClhB,GAA2B7/C,MACvB6C,EAAQmgE,YAAcngE,EAAQmgE,WAAWhjE,MAC7C,IAAK,IAAIH,EAAI,EAAGA,EAAIojE,GAAUtiE,SAAUd,EAAKojE,GAAUpjE,GAAGG,MAC1Dm8C,GAAan8C,MAGT6iB,GAAUhgB,EAAQ2lC,cACiC,sBAAnDhB,iBAAiB5qB,EAAQ64B,SAASytB,gBAClCtmD,EAAQ64B,QAAQ94B,MAAMumD,cAAgB,OAC5C,CAQA,SAASH,GAAsBpjD,GAC7B,IAAI4e,EAAI5e,EAAG/C,QACXnV,GAAG82B,EAAEyJ,SAAU,YAAa/nB,GAAUN,EAAI69C,KAGtC/1D,GAAG82B,EAAEyJ,SAAU,WADfrlB,GAAMC,EAAa,GACQ3C,GAAUN,GAAI,SAAUzU,GACnD,IAAImiB,GAAe1N,EAAIzU,GAAvB,CACA,IAAI2W,EAAM8tB,GAAahwB,EAAIzU,GAC3B,GAAK2W,IAAO67C,GAAc/9C,EAAIzU,KAAM47B,GAAcnnB,EAAG/C,QAAS1R,GAA9D,CACAgjB,GAAiBhjB,GACjB,IAAIi4D,EAAOxjD,EAAGs/C,WAAWp9C,GACzBinC,GAAgBnpC,EAAG0S,IAAK8wC,EAAKj0B,OAAQi0B,EAAKxsD,KAHiC,CAFvC,CAMtC,IAE6B,SAAUzL,GAAK,OAAOmiB,GAAe1N,EAAIzU,IAAMgjB,GAAiBhjB,EAAI,GAInGzD,GAAG82B,EAAEyJ,SAAU,eAAe,SAAU98B,GAAK,OAAO6yD,GAAcp+C,EAAIzU,EAAI,IAC1EzD,GAAG82B,EAAE+C,MAAMo7B,WAAY,eAAe,SAAUxxD,GACzCqzB,EAAEyJ,SAAStjC,SAASwG,EAAEqb,SAAWw3C,GAAcp+C,EAAIzU,EAC1D,IAGA,IAAIk4D,EAAeC,EAAY,CAACrhD,IAAK,GACrC,SAASshD,IACH/kC,EAAEwjB,cACJqhB,EAAgB77C,YAAW,WAAc,OAAOgX,EAAEwjB,YAAc,IAAM,GAAG,MACzEshB,EAAY9kC,EAAEwjB,aACJ//B,KAAO,IAAIsF,KAEzB,CACA,SAASi8C,EAAsBr4D,GAC7B,GAAwB,GAApBA,EAAEw1D,QAAQ//D,OAAe,OAAO,EACpC,IAAI6iE,EAAQt4D,EAAEw1D,QAAQ,GACtB,OAAO8C,EAAMC,SAAW,GAAKD,EAAME,SAAW,CAChD,CACA,SAASC,EAAQH,EAAOl2B,GACtB,GAAkB,MAAdA,EAAM5d,KAAgB,OAAO,EACjC,IAAI0yB,EAAK9U,EAAM5d,KAAO8zC,EAAM9zC,KAAM4yB,EAAKhV,EAAMxE,IAAM06B,EAAM16B,IACzD,OAAOsZ,EAAKA,EAAKE,EAAKA,EAAK,GAAK,EAClC,CACA76C,GAAG82B,EAAEyJ,SAAU,cAAc,SAAU98B,GACrC,IAAKmiB,GAAe1N,EAAIzU,KAAOq4D,EAAsBr4D,KAAOwyD,GAAc/9C,EAAIzU,GAAI,CAChFqzB,EAAE+C,MAAMq6B,eACRl0C,aAAa27C,GACb,IAAI9F,GAAO,IAAIh2C,KACfiX,EAAEwjB,YAAc,CAAC/lC,MAAOshD,EAAKoB,OAAO,EACnBxwD,KAAMovD,EAAM+F,EAAUrhD,KAAO,IAAMqhD,EAAY,MACxC,GAApBn4D,EAAEw1D,QAAQ//D,SACZ49B,EAAEwjB,YAAYryB,KAAOxkB,EAAEw1D,QAAQ,GAAGkD,MAClCrlC,EAAEwjB,YAAYjZ,IAAM59B,EAAEw1D,QAAQ,GAAGmD,MAErC,CACF,IACAp8D,GAAG82B,EAAEyJ,SAAU,aAAa,WACtBzJ,EAAEwjB,cAAexjB,EAAEwjB,YAAY2c,OAAQ,EAC7C,IACAj3D,GAAG82B,EAAEyJ,SAAU,YAAY,SAAU98B,GACnC,IAAIs4D,EAAQjlC,EAAEwjB,YACd,GAAIyhB,IAAU18B,GAAcvI,EAAGrzB,IAAoB,MAAds4D,EAAM9zC,OACtC8zC,EAAM9E,OAAS,IAAIp3C,KAAOk8C,EAAMxnD,MAAQ,IAAK,CAChD,IAAgDmI,EAA5CtC,EAAMlC,EAAGguB,WAAWpP,EAAEwjB,YAAa,QAEnC59B,GADCq/C,EAAMt1D,MAAQy1D,EAAQH,EAAOA,EAAMt1D,MAC5B,IAAI61C,GAAMliC,EAAKA,IACjB2hD,EAAMt1D,KAAKA,MAAQy1D,EAAQH,EAAOA,EAAMt1D,KAAKA,MAC3CyR,EAAGs/C,WAAWp9C,GAEd,IAAIkiC,GAAMtwB,GAAI5R,EAAI1B,KAAM,GAAI8T,GAAQtU,EAAG0S,IAAKoB,GAAI5R,EAAI1B,KAAO,EAAG,KAC1ER,EAAGsC,aAAakC,EAAM+qB,OAAQ/qB,EAAMxN,MACpCgJ,EAAGq1B,QACH9mB,GAAiBhjB,EACnB,CACAo4D,GACF,IACA77D,GAAG82B,EAAEyJ,SAAU,cAAes7B,GAI9B77D,GAAG82B,EAAEyJ,SAAU,UAAU,WACnBzJ,EAAEyJ,SAASG,eACb+O,GAAgBv3B,EAAI4e,EAAEyJ,SAASqE,WAC/B8K,GAAcx3B,EAAI4e,EAAEyJ,SAASiE,YAAY,GACzC7e,GAAOzN,EAAI,SAAUA,GAEzB,IAGAlY,GAAG82B,EAAEyJ,SAAU,cAAc,SAAU98B,GAAK,OAAO43C,GAAcnjC,EAAIzU,EAAI,IACzEzD,GAAG82B,EAAEyJ,SAAU,kBAAkB,SAAU98B,GAAK,OAAO43C,GAAcnjC,EAAIzU,EAAI,IAG7EzD,GAAG82B,EAAEqI,QAAS,UAAU,WAAc,OAAOrI,EAAEqI,QAAQyF,UAAY9N,EAAEqI,QAAQqF,WAAa,CAAG,IAE7F1N,EAAE8jC,cAAgB,CAChBE,MAAO,SAAUr3D,GAASmiB,GAAe1N,EAAIzU,IAAMqjB,GAAOrjB,EAAK,EAC/Ds3D,KAAM,SAAUt3D,GAASmiB,GAAe1N,EAAIzU,KAAMqpD,GAAW50C,EAAIzU,GAAIqjB,GAAOrjB,GAAK,EACjF8Q,MAAO,SAAU9Q,GAAK,OAAO+oD,GAAYt0C,EAAIzU,EAAI,EACjD6L,KAAMkJ,GAAUN,EAAIkzC,IACpB4P,MAAO,SAAUv3D,GAASmiB,GAAe1N,EAAIzU,IAAM4nD,GAAgBnzC,EAAM,GAG3E,IAAImkD,EAAMvlC,EAAE+C,MAAMo7B,WAClBj1D,GAAGq8D,EAAK,SAAS,SAAU54D,GAAK,OAAO4xD,GAAQl8D,KAAK+e,EAAIzU,EAAI,IAC5DzD,GAAGq8D,EAAK,UAAW7jD,GAAUN,EAAI88C,KACjCh1D,GAAGq8D,EAAK,WAAY7jD,GAAUN,EAAIo9C,KAClCt1D,GAAGq8D,EAAK,SAAS,SAAU54D,GAAK,OAAO+pC,GAAQt1B,EAAIzU,EAAI,IACvDzD,GAAGq8D,EAAK,QAAQ,SAAU54D,GAAK,OAAO4pC,GAAOn1B,EAAIzU,EAAI,GACvD,CAjHAuT,GAAW3X,SAAWA,GAEtB2X,GAAWuiD,eAAiBA,GAiH5B,IAAIiC,GAAY,GAQhB,SAASpiD,GAAWlB,EAAImH,EAAGi9C,EAAKC,GAC9B,IAAkB/kD,EAAdoT,EAAM1S,EAAG0S,IACF,MAAP0xC,IAAeA,EAAM,OACd,SAAPA,IAGG1xC,EAAIrS,KAAKikD,OACPhlD,EAAQ6X,GAAiBnX,EAAImH,GAAG7H,MADf8kD,EAAM,QAIhC,IAAI9iD,EAAUtB,EAAG9c,QAAQoe,QACrBd,EAAOiS,GAAQC,EAAKvL,GAAIo9C,EAAWv9C,EAAYxG,EAAKY,KAAM,KAAME,GAChEd,EAAK8W,aAAc9W,EAAK8W,WAAa,MACzC,IAAiDnC,EAA7CqvC,EAAiBhkD,EAAKY,KAAK1M,MAAM,QAAQ,GAC7C,GAAK2vD,GAAe,KAAKh6D,KAAKmW,EAAKY,OAG5B,GAAW,SAAPgjD,KACTjvC,EAAczC,EAAIrS,KAAKikD,OAAOhlD,EAAOkB,EAAKY,KAAKzgB,MAAM6jE,EAAexjE,QAASwf,EAAKY,QAC/D4G,GAAQmN,EAAc,KAAK,CAC5C,IAAKkvC,EAAc,OACnBD,EAAM,MACR,OAPAjvC,EAAc,EACdivC,EAAM,MAQG,QAAPA,EACmBjvC,EAAjBhO,EAAIuL,EAAIxgB,MAAuB8U,EAAYyL,GAAQC,EAAKvL,EAAE,GAAG/F,KAAM,KAAME,GACxD,EACL,OAAP8iD,EACTjvC,EAAcovC,EAAWvkD,EAAG9c,QAAQuhE,WACpB,YAAPL,EACTjvC,EAAcovC,EAAWvkD,EAAG9c,QAAQuhE,WACb,iBAAPL,IAChBjvC,EAAcovC,EAAWH,GAE3BjvC,EAAc5oB,KAAKC,IAAI,EAAG2oB,GAE1B,IAAIuvC,EAAe,GAAIxiD,EAAM,EAC7B,GAAIlC,EAAG9c,QAAQyhE,eACX,IAAK,IAAIzkE,EAAIqM,KAAKie,MAAM2K,EAAc7T,GAAUphB,IAAKA,EAAIgiB,GAAOZ,EAASojD,GAAgB,KAG7F,GAFIxiD,EAAMiT,IAAeuvC,GAAgB97C,EAASuM,EAAcjT,IAE5DwiD,GAAgBF,EAGlB,OAFAjkD,GAAamS,EAAKgyC,EAAc5wC,GAAI3M,EAAG,GAAI2M,GAAI3M,EAAGq9C,EAAexjE,QAAS,UAC1Ewf,EAAK8W,WAAa,MACX,EAIP,IAAK,IAAItL,EAAM,EAAGA,EAAM0G,EAAIwf,IAAIC,OAAOnxC,OAAQgrB,IAAO,CACpD,IAAIxH,EAAQkO,EAAIwf,IAAIC,OAAOnmB,GAC3B,GAAIxH,EAAMxN,KAAKwJ,MAAQ2G,GAAK3C,EAAMxN,KAAKyJ,GAAK+jD,EAAexjE,OAAQ,CACjE,IAAI4jE,EAAQ9wC,GAAI3M,EAAGq9C,EAAexjE,QAClCsoD,GAAoB52B,EAAK1G,EAAK,IAAIo4B,GAAMwgB,EAAOA,IAC/C,KACF,CACF,CAEJ,CAhEA9lD,GAAW+lD,eAAiB,SAAUn+C,GAAK,OAAO48C,GAAUt+D,KAAK0hB,EAAI,EAqErE,IAAIo+C,GAAa,KAEjB,SAASC,GAAcC,GACrBF,GAAaE,CACf,CAEA,SAASC,GAAejlD,EAAIklD,EAAUC,EAASjzB,EAAK7pB,GAClD,IAAIqK,EAAM1S,EAAG0S,IACb1S,EAAG/C,QAAQ/Y,OAAQ,EACdguC,IAAOA,EAAMxf,EAAIwf,KAEtB,IAAIkzB,GAAU,IAAIz9C,KAAO,IACrB09C,EAAkB,SAAVh9C,GAAqBrI,EAAGV,MAAM2jD,cAAgBmC,EACtDE,EAAYr1C,GAAei1C,GAAWK,EAAa,KAEvD,GAAIF,GAASnzB,EAAIC,OAAOnxC,OAAS,EAC/B,GAAI8jE,IAAcA,GAAW1jD,KAAK0uC,KAAK,OAASoV,GAC9C,GAAIhzB,EAAIC,OAAOnxC,OAAS8jE,GAAW1jD,KAAKpgB,QAAU,EAAG,CACnDukE,EAAa,GACb,IAAK,IAAIrlE,EAAI,EAAGA,EAAI4kE,GAAW1jD,KAAKpgB,OAAQd,IACxCqlE,EAAWvgE,KAAK0tB,EAAI45B,WAAWwY,GAAW1jD,KAAKlhB,IACrD,OACSolE,EAAUtkE,QAAUkxC,EAAIC,OAAOnxC,QAAUgf,EAAG9c,QAAQsiE,yBAC7DD,EAAapgE,EAAImgE,GAAW,SAAUhjE,GAAK,MAAO,CAACA,EAAI,KAM3D,IAFA,IAAI45C,EAAcl8B,EAAGkO,MAAMguB,YAElBlwB,EAAMkmB,EAAIC,OAAOnxC,OAAS,EAAGgrB,GAAO,EAAGA,IAAO,CACrD,IAAIxH,EAAQ0tB,EAAIC,OAAOnmB,GACnBlM,EAAO0E,EAAM1E,OAAQC,EAAKyE,EAAMzE,KAChCyE,EAAM6tB,UACJ8yB,GAAWA,EAAU,EACrBrlD,EAAOgU,GAAIhU,EAAKU,KAAMV,EAAKW,GAAK0kD,GAC3BnlD,EAAGV,MAAMuH,YAAcw+C,EAC5BtlD,EAAK+T,GAAI/T,EAAGS,KAAMjU,KAAKiE,IAAIiiB,GAAQC,EAAK3S,EAAGS,MAAMY,KAAKpgB,OAAQ+e,EAAGU,GAAKoI,EAAIy8C,GAAWtkE,SAChFqkE,GAASP,IAAcA,GAAWW,UAAYX,GAAW1jD,KAAK0uC,KAAK,OAASwV,EAAUxV,KAAK,QAChGhwC,EAAOC,EAAK+T,GAAIhU,EAAKU,KAAM,KAEjC,IAAIklD,EAAc,CAAC5lD,KAAMA,EAAMC,GAAIA,EAAIqB,KAAMmkD,EAAaA,EAAWv5C,EAAMu5C,EAAWvkE,QAAUskE,EAC7Ej9C,OAAQA,IAAWg9C,EAAQ,QAAUrlD,EAAGV,MAAM4jD,YAAckC,EAAS,MAAQ,WAChGla,GAAWlrC,EAAG0S,IAAKgzC,GACnBliC,GAAYxjB,EAAI,YAAaA,EAAI0lD,EACnC,CACIR,IAAaG,GACbM,GAAgB3lD,EAAIklD,GAExB7sB,GAAoBr4B,GAChBA,EAAGkO,MAAMguB,YAAc,IAAKl8B,EAAGkO,MAAMguB,YAAcA,GACvDl8B,EAAGkO,MAAMiuB,QAAS,EAClBn8B,EAAGV,MAAM2jD,cAAgBjjD,EAAGV,MAAM4jD,aAAe,CACnD,CAEA,SAAS0C,GAAYr6D,EAAGyU,GACtB,IAAI6lD,EAASt6D,EAAEu6D,eAAiBv6D,EAAEu6D,cAAc1R,QAAQ,QACxD,GAAIyR,EAIF,OAHAt6D,EAAEqiB,iBACG5N,EAAGszC,cAAiBtzC,EAAG9c,QAAQ6iE,eAAgB/lD,EAAGk1B,YACnD+I,GAAQj+B,GAAI,WAAc,OAAOilD,GAAejlD,EAAI6lD,EAAQ,EAAG,KAAM,QAAU,KAC5E,CAEX,CAEA,SAASF,GAAgB3lD,EAAIklD,GAE3B,GAAKllD,EAAG9c,QAAQ8iE,eAAkBhmD,EAAG9c,QAAQ+iE,YAG7C,IAFA,IAAI/zB,EAAMlyB,EAAG0S,IAAIwf,IAERhyC,EAAIgyC,EAAIC,OAAOnxC,OAAS,EAAGd,GAAK,EAAGA,IAAK,CAC/C,IAAIskB,EAAQ0tB,EAAIC,OAAOjyC,GACvB,KAAIskB,EAAMxN,KAAKyJ,GAAK,KAAQvgB,GAAKgyC,EAAIC,OAAOjyC,EAAI,GAAG8W,KAAKwJ,MAAQgE,EAAMxN,KAAKwJ,MAA3E,CACA,IAAIH,EAAOL,EAAGkmD,UAAU1hD,EAAMxN,MAC1BqiB,GAAW,EACf,GAAIhZ,EAAK2lD,eACP,IAAK,IAAIl6D,EAAI,EAAGA,EAAIuU,EAAK2lD,cAAchlE,OAAQ8K,IAC3C,GAAIo5D,EAAShgE,QAAQmb,EAAK2lD,cAAc/pD,OAAOnQ,KAAO,EAAG,CACzDutB,EAAWnY,GAAWlB,EAAIwE,EAAMxN,KAAKwJ,KAAM,SAC3C,KACF,OACOH,EAAK8lD,eACV9lD,EAAK8lD,cAAc97D,KAAKooB,GAAQzS,EAAG0S,IAAKlO,EAAMxN,KAAKwJ,MAAMY,KAAKzgB,MAAM,EAAG6jB,EAAMxN,KAAKyJ,OAClF4Y,EAAWnY,GAAWlB,EAAIwE,EAAMxN,KAAKwJ,KAAM,UAE7C6Y,GAAYmK,GAAYxjB,EAAI,gBAAiBA,EAAIwE,EAAMxN,KAAKwJ,KAb6B,CAc/F,CACF,CAEA,SAAS4lD,GAAepmD,GAEtB,IADA,IAAIoB,EAAO,GAAI+wB,EAAS,GACfjyC,EAAI,EAAGA,EAAI8f,EAAG0S,IAAIwf,IAAIC,OAAOnxC,OAAQd,IAAK,CACjD,IAAIsgB,EAAOR,EAAG0S,IAAIwf,IAAIC,OAAOjyC,GAAG8W,KAAKwJ,KACjC6lD,EAAY,CAAC92B,OAAQzb,GAAItT,EAAM,GAAIxJ,KAAM8c,GAAItT,EAAO,EAAG,IAC3D2xB,EAAOntC,KAAKqhE,GACZjlD,EAAKpc,KAAKgb,EAAGY,SAASylD,EAAU92B,OAAQ82B,EAAUrvD,MACpD,CACA,MAAO,CAACoK,KAAMA,EAAM+wB,OAAQA,EAC9B,CAEA,SAASm0B,GAAoBC,EAAO1E,EAAYC,EAAaC,GAC3DwE,EAAMnhD,aAAa,cAAe08C,EAAc,GAAK,OACrDyE,EAAMnhD,aAAa,iBAAkB28C,EAAiB,GAAK,OAC3DwE,EAAMnhD,aAAa,eAAgBy8C,EACrC,CAEA,SAAS2E,KACP,IAAIl2C,EAAKvL,EAAI,WAAY,KAAM,KAAM,yGACjCsK,EAAMtK,EAAI,MAAO,CAACuL,GAAK,KAAM,kEAUjC,OALIpN,EAAUoN,EAAGtT,MAAMwpB,MAAQ,SACxBlW,EAAGlL,aAAa,OAAQ,OAE3BzB,IAAO2M,EAAGtT,MAAMypD,OAAS,mBAC7BH,GAAoBh2C,GACbjB,CACT,CAUA,SAASq3C,GAAiB5nD,GACxB,IAAIuiD,EAAiBviD,EAAWuiD,eAE5BsF,EAAU7nD,EAAW6nD,QAAU,CAAC,EAEpC7nD,EAAWpe,UAAY,CACrBsP,YAAa8O,EACbu2B,MAAO,WAAWj1C,OAAOi1C,QAASh1C,KAAK4c,QAAQ0kB,MAAM0T,OAAQ,EAE7DuxB,UAAW,SAAStI,EAAQv2D,GAC1B,IAAI7E,EAAU7C,KAAK6C,QAAS0L,EAAM1L,EAAQo7D,GACtCp7D,EAAQo7D,IAAWv2D,GAAmB,QAAVu2D,IAChCp7D,EAAQo7D,GAAUv2D,EACds5D,EAAet6C,eAAeu3C,IAC9Bh+C,GAAUjgB,KAAMghE,EAAe/C,GAA/Bh+C,CAAwCjgB,KAAM0H,EAAO6G,GACzD6e,GAAOptB,KAAM,eAAgBA,KAAMi+D,GACrC,EAEA/8C,UAAW,SAAS+8C,GAAS,OAAOj+D,KAAK6C,QAAQo7D,EAAO,EACxDuI,OAAQ,WAAY,OAAOxmE,KAAKqyB,GAAG,EAEnCo0C,UAAW,SAAS3hE,EAAK+jC,GACvB7oC,KAAKif,MAAM68C,QAAQjzB,EAAS,OAAS,WAAWktB,GAAUjxD,GAC5D,EACA4hE,aAAc,SAAS5hE,GAErB,IADA,IAAIi7B,EAAO//B,KAAKif,MAAM68C,QACbj8D,EAAI,EAAGA,EAAIkgC,EAAKp/B,SAAUd,EAC/B,GAAIkgC,EAAKlgC,IAAMiF,GAAOi7B,EAAKlgC,GAAG8J,MAAQ7E,EAEtC,OADAi7B,EAAKn7B,OAAO/E,EAAG,IACR,CAEb,EAEA8mE,WAAY9oB,IAAS,SAAS1sB,EAAMtuB,GAClC,IAAImd,EAAOmR,EAAKxP,MAAQwP,EAAO1S,EAAWqB,QAAQ9f,KAAK6C,QAASsuB,GAChE,GAAInR,EAAK+R,WAAc,MAAM,IAAIhgB,MAAM,iCACvC0W,EAAazoB,KAAKif,MAAMoX,SACX,CAACrW,KAAMA,EAAM4mD,SAAUz1C,EAAMoF,OAAQ1zB,GAAWA,EAAQ0zB,OACvD5N,SAAW9lB,GAAWA,EAAQ8lB,UAAa,IAC5C,SAAUyN,GAAW,OAAOA,EAAQzN,QAAU,IAC3D3oB,KAAKif,MAAM8W,UACXqa,GAAUpwC,KACZ,IACA6mE,cAAehpB,IAAS,SAAS1sB,GAE/B,IADA,IAAIkF,EAAWr2B,KAAKif,MAAMoX,SACjBx2B,EAAI,EAAGA,EAAIw2B,EAAS11B,SAAUd,EAAG,CACxC,IAAI+hB,EAAMyU,EAASx2B,GAAG+mE,SACtB,GAAIhlD,GAAOuP,GAAuB,iBAARA,GAAoBvP,EAAIjY,MAAQwnB,EAIxD,OAHAkF,EAASzxB,OAAO/E,EAAG,GACnBG,KAAKif,MAAM8W,eACXqa,GAAUpwC,KAGd,CACF,IAEA6gB,WAAYg9B,IAAS,SAAS/2B,EAAG+C,EAAKm6C,GAClB,iBAAPn6C,GAAiC,iBAAPA,IAChBA,EAAR,MAAPA,EAAqB7pB,KAAK6C,QAAQ+iE,YAAc,QAAU,OACjD/7C,EAAM,MAAQ,YAEzBuJ,GAAOpzB,KAAKqyB,IAAKvL,IAAMjG,GAAW7gB,KAAM8mB,EAAG+C,EAAKm6C,EACtD,IACAvJ,gBAAiB5c,IAAS,SAASkmB,GAEjC,IADA,IAAIjyB,EAAS9xC,KAAKqyB,IAAIwf,IAAIC,OAAQ9vB,GAAO,EAChCniB,EAAI,EAAGA,EAAIiyC,EAAOnxC,OAAQd,IAAK,CACtC,IAAIskB,EAAQ2tB,EAAOjyC,GACnB,GAAKskB,EAAM6tB,QASA7tB,EAAMxN,KAAKwJ,KAAO6B,IAC3BnB,GAAW7gB,KAAMmkB,EAAMxN,KAAKwJ,KAAM4jD,GAAK,GACvC/hD,EAAMmC,EAAMxN,KAAKwJ,KACbtgB,GAAKG,KAAKqyB,IAAIwf,IAAIE,WAAaiG,GAAoBh4C,WAZrC,CAClB,IAAIyf,EAAO0E,EAAM1E,OAAQC,EAAKyE,EAAMzE,KAChC1D,EAAQ9P,KAAKC,IAAI6V,EAAKvC,EAAKU,MAC/B6B,EAAM9V,KAAKiE,IAAInQ,KAAK89B,WAAYpe,EAAGS,MAAQT,EAAGU,GAAK,EAAI,IAAM,EAC7D,IAAK,IAAI3U,EAAIuQ,EAAOvQ,EAAIuW,IAAOvW,EAC3BoV,GAAW7gB,KAAMyL,EAAGs4D,GACxB,IAAI+C,EAAY9mE,KAAKqyB,IAAIwf,IAAIC,OACd,GAAXryB,EAAKW,IAAW0xB,EAAOnxC,QAAUmmE,EAAUnmE,QAAUmmE,EAAUjnE,GAAG4f,OAAOW,GAAK,GAC9E6oC,GAAoBjpD,KAAKqyB,IAAKxyB,EAAG,IAAIkkD,GAAMtkC,EAAMqnD,EAAUjnE,GAAG6f,MAAOmI,EAC3E,CAKF,CACF,IAIA9H,WAAY,SAAS8B,EAAKwV,GACxB,OAAOa,GAAUl4B,KAAM6hB,EAAKwV,EAC9B,EAEA0vC,cAAe,SAAS5mD,EAAMkX,GAC5B,OAAOa,GAAUl4B,KAAMyzB,GAAItT,GAAOkX,GAAS,EAC7C,EAEA2vC,eAAgB,SAASnlD,GACvBA,EAAMoS,GAAQj0B,KAAKqyB,IAAKxQ,GACxB,IAEIrf,EAFAg0B,EAASI,GAAc52B,KAAMoyB,GAAQpyB,KAAKqyB,IAAKxQ,EAAI1B,OACnDxd,EAAS,EAAGC,GAAS4zB,EAAO71B,OAAS,GAAK,EAAGyf,EAAKyB,EAAIzB,GAE1D,GAAU,GAANA,EAAW5d,EAAOg0B,EAAO,QACtB,OAAS,CACd,IAAIvM,EAAOtnB,EAASC,GAAU,EAC9B,IAAKqnB,EAAMuM,EAAa,EAANvM,EAAU,GAAK,IAAM7J,EAAMxd,EAAQqnB,MAChD,MAAIuM,EAAa,EAANvM,EAAU,GAAK7J,GAC1B,CAAE5d,EAAOg0B,EAAa,EAANvM,EAAU,GAAI,KAAM,CADJtnB,EAASsnB,EAAM,CACX,CAC3C,CACA,IAAIwmB,EAAMjuC,EAAOA,EAAKqC,QAAQ,aAAe,EAC7C,OAAO4rC,EAAM,EAAIjuC,EAAc,GAAPiuC,EAAW,KAAOjuC,EAAKlC,MAAM,EAAGmwC,EAAM,EAChE,EAEAo1B,UAAW,SAAShkD,GAClB,IAAI7B,EAAOhgB,KAAKqyB,IAAIrS,KACpB,OAAKA,EAAKH,UACHpB,EAAWoB,UAAUG,EAAMhgB,KAAK+f,WAAW8B,GAAK5C,OAAOe,KADhCA,CAEhC,EAEAinD,UAAW,SAASplD,EAAKrf,GACvB,OAAOxC,KAAKknE,WAAWrlD,EAAKrf,GAAM,EACpC,EAEA0kE,WAAY,SAASrlD,EAAKrf,GACxB,IAAI8nB,EAAQ,GACZ,IAAKg8C,EAAQ5/C,eAAelkB,GAAS,OAAO8nB,EAC5C,IAAI68C,EAAOb,EAAQ9jE,GAAOwd,EAAOhgB,KAAK6lE,UAAUhkD,GAChD,GAAyB,iBAAd7B,EAAKxd,GACV2kE,EAAKnnD,EAAKxd,KAAU8nB,EAAM3lB,KAAKwiE,EAAKnnD,EAAKxd,UACxC,GAAIwd,EAAKxd,GACd,IAAK,IAAI3C,EAAI,EAAGA,EAAImgB,EAAKxd,GAAM7B,OAAQd,IAAK,CAC1C,IAAIoG,EAAMkhE,EAAKnnD,EAAKxd,GAAM3C,IACtBoG,GAAOqkB,EAAM3lB,KAAKsB,EACxB,MACS+Z,EAAKyR,YAAc01C,EAAKnnD,EAAKyR,YACtCnH,EAAM3lB,KAAKwiE,EAAKnnD,EAAKyR,aACZ01C,EAAKnnD,EAAKrW,OACnB2gB,EAAM3lB,KAAKwiE,EAAKnnD,EAAKrW,OAEvB,IAAK,IAAIgiB,EAAM,EAAGA,EAAMw7C,EAAKC,QAAQzmE,OAAQgrB,IAAO,CAClD,IAAI/J,EAAMulD,EAAKC,QAAQz7C,GACnB/J,EAAImI,KAAK/J,EAAMhgB,QAAqC,GAA5B6E,EAAQylB,EAAO1I,EAAI3b,MAC3CqkB,EAAM3lB,KAAKid,EAAI3b,IACrB,CACA,OAAOqkB,CACT,EAEA+8C,cAAe,SAASlnD,EAAMkX,GAC5B,IAAIhF,EAAMryB,KAAKqyB,IAEf,OAAOyE,GAAiB92B,MADxBmgB,EAAO6T,GAAS3B,EAAa,MAARlS,EAAekS,EAAIxgB,MAAQwgB,EAAI3b,KAAO,EAAGyJ,IACzB,EAAGkX,GAASpY,KACnD,EAEAiuB,aAAc,SAASlxB,EAAOgE,GAC5B,IAASmE,EAAQnkB,KAAKqyB,IAAIwf,IAAIN,UAI9B,OAAOrE,GAAaltC,KAHP,MAATgc,EAAuBmI,EAAMxN,KACR,iBAATqF,EAA2BiY,GAAQj0B,KAAKqyB,IAAKrW,GAChDA,EAAQmI,EAAM1E,OAAS0E,EAAMzE,KACXM,GAAQ,OACzC,EAEAitB,WAAY,SAASprB,EAAK7B,GACxB,OAAOitB,GAAWjtC,KAAMi0B,GAAQj0B,KAAKqyB,IAAKxQ,GAAM7B,GAAQ,OAC1D,EAEA2tB,WAAY,SAASb,EAAQ9sB,GAE3B,OAAO2tB,GAAW3tC,MADlB8sC,EAASD,GAAgB7sC,KAAM8sC,EAAQ9sB,GAAQ,SAChB0P,KAAMod,EAAOhE,IAC9C,EAEA7V,aAAc,SAASH,EAAQ9S,GAE7B,OADA8S,EAAS+Z,GAAgB7sC,KAAM,CAAC8oC,IAAKhW,EAAQpD,KAAM,GAAI1P,GAAQ,QAAQ8oB,IAChE7V,GAAajzB,KAAKqyB,IAAKS,EAAS9yB,KAAK4c,QAAQ8vB,WACtD,EACAxO,aAAc,SAAS/d,EAAMH,EAAMwsB,GACjC,IAAiBrO,EAAbnc,GAAM,EACV,GAAmB,iBAAR7B,EAAkB,CAC3B,IAAInJ,EAAOhX,KAAKqyB,IAAIxgB,MAAQ7R,KAAKqyB,IAAI3b,KAAO,EACxCyJ,EAAOngB,KAAKqyB,IAAIxgB,MAASsO,EAAOngB,KAAKqyB,IAAIxgB,MACpCsO,EAAOnJ,IAAQmJ,EAAOnJ,EAAMgL,GAAM,GAC3Cmc,EAAU/L,GAAQpyB,KAAKqyB,IAAKlS,EAC9B,MACEge,EAAUhe,EAEZ,OAAOosB,GAAgBvsC,KAAMm+B,EAAS,CAAC2K,IAAK,EAAGpZ,KAAM,GAAI1P,GAAQ,OAAQwsB,GAAkBxqB,GAAK8mB,KAC7F9mB,EAAMhiB,KAAKqyB,IAAIS,OAASoL,GAAaC,GAAW,EACrD,EAEAmpC,kBAAmB,WAAa,OAAOr4B,GAAWjvC,KAAK4c,QAAS,EAChE41B,iBAAkB,WAAa,OAAO5H,GAAU5qC,KAAK4c,QAAS,EAE9D2qD,YAAa,WAAa,MAAO,CAAC9nD,KAAMzf,KAAK4c,QAAQ8a,SAAUhY,GAAI1f,KAAK4c,QAAQ+a,OAAO,EAEvF6vC,UAAW,SAAS3lD,EAAKwC,EAAMyD,EAAQ0xB,EAAMC,GAC3C,IAAI78B,EAAU5c,KAAK4c,QAEfksB,GADJjnB,EAAMqrB,GAAaltC,KAAMi0B,GAAQj0B,KAAKqyB,IAAKxQ,KAC7BgnB,OAAQnZ,EAAO7N,EAAI6N,KAKjC,GAJArL,EAAK1H,MAAM4pB,SAAW,WACtBliB,EAAKU,aAAa,mBAAoB,QACtC/kB,KAAK4c,QAAQ0kB,MAAME,cAAcnd,GACjCzH,EAAQoqB,MAAMviB,YAAYJ,GACd,QAARm1B,EACF1Q,EAAMjnB,EAAIinB,SACL,GAAY,SAAR0Q,GAA2B,QAARA,EAAgB,CAC5C,IAAIiuB,EAASv7D,KAAKC,IAAIyQ,EAAQgqB,QAAQuB,aAAcnoC,KAAKqyB,IAAIS,QAC7D40C,EAASx7D,KAAKC,IAAIyQ,EAAQoqB,MAAMH,YAAajqB,EAAQuqB,UAAUN,cAElD,SAAR2S,GAAmB33B,EAAIgnB,OAASxkB,EAAK8K,aAAes4C,IAAW5lD,EAAIinB,IAAMzkB,EAAK8K,aAC/E2Z,EAAMjnB,EAAIinB,IAAMzkB,EAAK8K,aAChBtN,EAAIgnB,OAASxkB,EAAK8K,cAAgBs4C,IACvC3+B,EAAMjnB,EAAIgnB,QACVnZ,EAAOrL,EAAK+K,YAAcs4C,IAC1Bh4C,EAAOg4C,EAASrjD,EAAK+K,YAC3B,CACA/K,EAAK1H,MAAMmsB,IAAMA,EAAM,KACvBzkB,EAAK1H,MAAM+S,KAAOrL,EAAK1H,MAAMgT,MAAQ,GACxB,SAAT8pB,GACF/pB,EAAO9S,EAAQoqB,MAAMH,YAAcxiB,EAAK+K,YACxC/K,EAAK1H,MAAMgT,MAAQ,QAEN,QAAT8pB,EAAmB/pB,EAAO,EACZ,UAAT+pB,IAAqB/pB,GAAQ9S,EAAQoqB,MAAMH,YAAcxiB,EAAK+K,aAAe,GACtF/K,EAAK1H,MAAM+S,KAAOA,EAAO,MAEvB5H,GACA2uB,GAAez2C,KAAM,CAAC0vB,KAAMA,EAAMoZ,IAAKA,EAAKnZ,MAAOD,EAAOrL,EAAK+K,YAAayZ,OAAQC,EAAMzkB,EAAK8K,cACrG,EAEAw4C,iBAAkB9pB,GAAS4e,IAC3BmL,kBAAmB/pB,GAASkf,IAC5B8K,eAAgB/K,GAChBgL,mBAAoBjqB,GAAS2f,IAE7BxC,YAAa,SAAStF,GACpB,GAAIuC,GAASvxC,eAAegvC,GACxB,OAAOuC,GAASvC,GAAK90D,KAAK,KAAMZ,KACtC,EAEAslE,gBAAiBznB,IAAS,SAAS98B,GAAQukD,GAAgBtlE,KAAM+gB,EAAO,IAExEgnD,SAAU,SAAStoD,EAAMuoD,EAAQ9J,EAAMhH,GACrC,IAAIrtC,EAAM,EACNm+C,EAAS,IAAKn+C,GAAO,EAAGm+C,GAAUA,GAEtC,IADA,IAAIpmD,EAAMqS,GAAQj0B,KAAKqyB,IAAK5S,GACnB5f,EAAI,EAAGA,EAAImoE,KAClBpmD,EAAMmmD,GAAS/nE,KAAKqyB,IAAKzQ,EAAKiI,EAAKq0C,EAAMhH,IACjC+Q,UAFoBpoE,GAI9B,OAAO+hB,CACT,EAEA63C,MAAO5b,IAAS,SAASh0B,EAAKq0C,GAC5B,IAAIvQ,EAAS3tD,KAEbA,KAAKiwD,oBAAmB,SAAU9rC,GAChC,OAAIwpC,EAAO/wC,QAAQ/Y,OAAS8pD,EAAOt7B,IAAI1rB,QAAUwd,EAAM6tB,QAC5C+1B,GAASpa,EAAOt7B,IAAKlO,EAAMxN,KAAMkT,EAAKq0C,EAAMvQ,EAAO9qD,QAAQqlE,iBAE3Dr+C,EAAM,EAAI1F,EAAM1E,OAAS0E,EAAMzE,IAC5C,GAAGuI,EACL,IAEAiyC,QAASrc,IAAS,SAASh0B,EAAKq0C,GAC9B,IAAIrsB,EAAM7xC,KAAKqyB,IAAIwf,IAAKxf,EAAMryB,KAAKqyB,IAC/Bwf,EAAImS,oBACJ3xB,EAAIg+B,iBAAiB,GAAI,KAAM,WAE/BqG,GAAoB12D,MAAM,SAAUmkB,GACpC,IAAImpB,EAAQy6B,GAAS11C,EAAKlO,EAAMxN,KAAMkT,EAAKq0C,GAAM,GACjD,OAAOr0C,EAAM,EAAI,CAACpK,KAAM6tB,EAAO5tB,GAAIyE,EAAMxN,MAAQ,CAAC8I,KAAM0E,EAAMxN,KAAM+I,GAAI4tB,EAC1E,GACJ,IAEA66B,SAAU,SAAS1oD,EAAMuoD,EAAQ9J,EAAMkK,GACrC,IAAIv+C,EAAM,EAAGgK,EAAIu0C,EACbJ,EAAS,IAAKn+C,GAAO,EAAGm+C,GAAUA,GAEtC,IADA,IAAIpmD,EAAMqS,GAAQj0B,KAAKqyB,IAAK5S,GACnB5f,EAAI,EAAGA,EAAImoE,IAAUnoE,EAAG,CAC/B,IAAIitC,EAASI,GAAaltC,KAAM4hB,EAAK,OAIrC,GAHS,MAALiS,EAAaA,EAAIiZ,EAAOpd,KACrBod,EAAOpd,KAAOmE,GACrBjS,EAAMumD,GAASnoE,KAAM8sC,EAAQjjB,EAAKq0C,IAC1B+J,QAAW,KACrB,CACA,OAAOrmD,CACT,EAEAw3C,MAAOvb,IAAS,SAASh0B,EAAKq0C,GAC5B,IAAIvQ,EAAS3tD,KAETqyB,EAAMryB,KAAKqyB,IAAKg2C,EAAQ,GACxBpiD,GAAYjmB,KAAK4c,QAAQ/Y,QAAUwuB,EAAI1rB,QAAU0rB,EAAIwf,IAAImS,oBAY7D,GAXA3xB,EAAI49B,oBAAmB,SAAU9rC,GAC/B,GAAI8B,EACA,OAAO4D,EAAM,EAAI1F,EAAM1E,OAAS0E,EAAMzE,KAC1C,IAAI4oD,EAAUp7B,GAAaygB,EAAQxpC,EAAMxN,KAAM,OACvB,MAApBwN,EAAMikD,aAAsBE,EAAQ54C,KAAOvL,EAAMikD,YACrDC,EAAM1jE,KAAK2jE,EAAQ54C,MACnB,IAAI7N,EAAMsmD,GAASxa,EAAQ2a,EAASz+C,EAAKq0C,GAGzC,MAFY,QAARA,GAAkB/5C,GAASkO,EAAIwf,IAAIN,WACnCuG,GAAe6V,EAAQ1gB,GAAW0gB,EAAQ9rC,EAAK,OAAOinB,IAAMw/B,EAAQx/B,KACjEjnB,CACT,GAAGoG,GACCogD,EAAM1nE,OAAU,IAAK,IAAId,EAAI,EAAGA,EAAIwyB,EAAIwf,IAAIC,OAAOnxC,OAAQd,IAC3DwyB,EAAIwf,IAAIC,OAAOjyC,GAAGuoE,WAAaC,EAAMxoE,EAC3C,IAGAo/D,WAAY,SAASp9C,GACnB,IAAoB1B,EAAOiS,GAAjBpyB,KAAKqyB,IAAyBxQ,EAAI1B,MAAMY,KAC9C/E,EAAQ6F,EAAIzB,GAAI4B,EAAMH,EAAIzB,GAC9B,GAAID,EAAM,CACR,IAAImJ,EAAStpB,KAAKinE,UAAUplD,EAAK,aACd,UAAdA,EAAI8I,QAAsB3I,GAAO7B,EAAKxf,SAAWqb,IAA6BgG,IAAlBhG,EAMjE,IALA,IAAIusD,EAAYpoD,EAAKvE,OAAOI,GACxBwsD,EAAQn/C,GAAWk/C,EAAWj/C,GAC9B,SAAUlJ,GAAM,OAAOiJ,GAAWjJ,EAAIkJ,EAAS,EAC/C,KAAKtf,KAAKu+D,GAAa,SAAUnoD,GAAM,MAAO,KAAKpW,KAAKoW,EAAK,EAC7D,SAAUA,GAAM,OAAS,KAAKpW,KAAKoW,KAAQiJ,GAAWjJ,EAAM,EACzDpE,EAAQ,GAAKwsD,EAAMroD,EAAKvE,OAAOI,EAAQ,OAASA,EACvD,KAAOgG,EAAM7B,EAAKxf,QAAU6nE,EAAMroD,EAAKvE,OAAOoG,OAAWA,CAC3D,CACA,OAAO,IAAI+hC,GAAMtwB,GAAI5R,EAAI1B,KAAMnE,GAAQyX,GAAI5R,EAAI1B,KAAM6B,GACvD,EAEAq5C,gBAAiB,SAAS3zD,GACX,MAATA,GAAiBA,GAAS1H,KAAKif,MAAMuH,aACrCxmB,KAAKif,MAAMuH,WAAaxmB,KAAKif,MAAMuH,WACnClB,EAAStlB,KAAK4c,QAAQ83B,UAAW,wBAEjCtwB,EAAQpkB,KAAK4c,QAAQ83B,UAAW,wBAEpCtnB,GAAOptB,KAAM,kBAAmBA,KAAMA,KAAKif,MAAMuH,WACnD,EACAquB,SAAU,WAAa,OAAO70C,KAAK4c,QAAQ0kB,MAAMo7B,YAAcv3C,GAAY,EAC3E8tC,WAAY,WAAa,SAAUjzD,KAAK6C,QAAQg5B,WAAY77B,KAAKqyB,IAAIm4B,SAAU,EAE/Eie,SAAU5qB,IAAS,SAAUhqB,EAAG+Z,GAAKuK,GAAen4C,KAAM6zB,EAAG+Z,EAAI,IACjE86B,cAAe,WACb,IAAI1gC,EAAWhoC,KAAK4c,QAAQorB,SAC5B,MAAO,CAACtY,KAAMsY,EAASiE,WAAYnD,IAAKd,EAASqE,UACzCvZ,OAAQkV,EAAS2Q,aAAe9Q,GAAU7nC,MAAQA,KAAK4c,QAAQwrB,UAC/DjC,MAAO6B,EAAS8Q,YAAcjR,GAAU7nC,MAAQA,KAAK4c,QAAQqrB,SAC7DE,aAAcD,GAAcloC,MAAO6mC,YAAakB,GAAa/nC,MACvE,EAEAy2C,eAAgBoH,IAAS,SAAS15B,EAAOwyB,GAC1B,MAATxyB,GACFA,EAAQ,CAAC1E,KAAMzf,KAAKqyB,IAAIwf,IAAIN,UAAU56B,KAAM+I,GAAI,MAClC,MAAVi3B,IAAkBA,EAAS32C,KAAK6C,QAAQq1C,qBACnB,iBAAT/zB,EAChBA,EAAQ,CAAC1E,KAAMgU,GAAItP,EAAO,GAAIzE,GAAI,MACX,MAAdyE,EAAM1E,OACf0E,EAAQ,CAAC1E,KAAM0E,EAAOzE,GAAI,OAEvByE,EAAMzE,KAAMyE,EAAMzE,GAAKyE,EAAM1E,MAClC0E,EAAMwyB,OAASA,GAAU,EAEF,MAAnBxyB,EAAM1E,KAAKU,KACbi4B,GAAcp4C,KAAMmkB,GAEpBk0B,GAAoBr4C,KAAMmkB,EAAM1E,KAAM0E,EAAMzE,GAAIyE,EAAMwyB,OAE1D,IAEAwe,QAAStX,IAAS,SAAS1X,EAAOrT,GAChC,IAAI66B,EAAS3tD,KAET2oE,EAAY,SAAU1iE,GAAO,MAAqB,iBAAPA,GAAmB,QAAQ+D,KAAKspB,OAAOrtB,IAAQA,EAAM,KAAOA,CAAK,EACnG,MAATkgC,IAAiBnmC,KAAK4c,QAAQgqB,QAAQjqB,MAAMwpB,MAAQwiC,EAAUxiC,IACpD,MAAVrT,IAAkB9yB,KAAK4c,QAAQgqB,QAAQjqB,MAAMmW,OAAS61C,EAAU71C,IAChE9yB,KAAK6C,QAAQ2lC,cAAgBgD,GAA0BxrC,MAC3D,IAAI+yB,EAAS/yB,KAAK4c,QAAQ8a,SAC1B13B,KAAKqyB,IAAIM,KAAKI,EAAQ/yB,KAAK4c,QAAQ+a,QAAQ,SAAUxX,GACnD,GAAIA,EAAK0lB,QAAW,IAAK,IAAIhmC,EAAI,EAAGA,EAAIsgB,EAAK0lB,QAAQllC,OAAQd,IACzD,GAAIsgB,EAAK0lB,QAAQhmC,GAAGqmC,UAAW,CAAE4K,GAAc6c,EAAQ56B,EAAQ,UAAW,KAAM,GAClFA,CACJ,IACA/yB,KAAK6tB,MAAM4b,aAAc,EACzBrc,GAAOptB,KAAM,UAAWA,KAC1B,IAEAigB,UAAW,SAASoG,GAAG,OAAOu3B,GAAQ59C,KAAMqmB,EAAE,EAC9Cu1B,eAAgB,WAAW,OAAOA,GAAe57C,KAAK,EACtDm8C,aAAc,WAAW,OAAOA,GAAan8C,KAAK,EAElDshE,QAASzjB,IAAS,WAChB,IAAIlI,EAAY31C,KAAK4c,QAAQgvB,iBAC7BwE,GAAUpwC,MACVA,KAAK6tB,MAAM4b,aAAc,EACzBiC,GAAY1rC,MACZm4C,GAAen4C,KAAMA,KAAKqyB,IAAI4Z,WAAYjsC,KAAKqyB,IAAIga,WACnDwU,GAAkB7gD,KAAK4c,UACN,MAAb+4B,GAAqBzpC,KAAK0kB,IAAI+kB,EAAY1G,GAAWjvC,KAAK4c,UAAY,IAAM5c,KAAK6C,QAAQ2lC,eACzFiH,GAAoBzvC,MACxBotB,GAAOptB,KAAM,UAAWA,KAC1B,IAEA4oE,QAAS/qB,IAAS,SAASxrB,GACzB,IAAI9jB,EAAMvO,KAAKqyB,IAUf,OATA9jB,EAAIoR,GAAK,KAEL3f,KAAKif,MAAM2+C,eAAiB59D,KAAKif,MAAM2+C,gBAC3CvX,GAAUrmD,KAAMqyB,GAChBqZ,GAAY1rC,MACZA,KAAK4c,QAAQ0kB,MAAMp7B,QACnBiyC,GAAen4C,KAAMqyB,EAAI4Z,WAAY5Z,EAAIga,WACzCrsC,KAAK6tB,MAAM6qB,aAAc,EACzBvV,GAAYnjC,KAAM,UAAWA,KAAMuO,GAC5BA,CACT,IAEAs6D,OAAQ,SAASC,GACf,IAAIC,EAAU/oE,KAAK6C,QAAQkmE,QAC3B,OAAOA,GAAW//C,OAAO3oB,UAAUqmB,eAAe9lB,KAAKmoE,EAASD,GAAcC,EAAQD,GAAcA,CACtG,EAEAvH,cAAe,WAAW,OAAOvhE,KAAK4c,QAAQ0kB,MAAMo7B,UAAU,EAC9DpqB,kBAAmB,WAAW,OAAOtyC,KAAK4c,QAAQgqB,OAAO,EACzDoiC,mBAAoB,WAAW,OAAOhpE,KAAK4c,QAAQorB,QAAQ,EAC3DihC,iBAAkB,WAAW,OAAOjpE,KAAK4c,QAAQ+pB,OAAO,GAE1D3Y,GAAWvP,GAEXA,EAAWyqD,eAAiB,SAAS1mE,EAAMmH,EAAMjC,GAC1C4+D,EAAQ5/C,eAAelkB,KAAS8jE,EAAQ9jE,GAAQic,EAAWjc,GAAQ,CAAC4kE,QAAS,KAClFd,EAAQ9jE,GAAMmH,GAAQjC,CACxB,EACA+W,EAAW0qD,qBAAuB,SAAS3mE,EAAMmH,EAAMy/D,EAAW1hE,GAChE+W,EAAWyqD,eAAe1mE,EAAMmH,EAAMjC,GACtC4+D,EAAQ9jE,GAAM4kE,QAAQziE,KAAK,CAAColB,KAAMq/C,EAAWnjE,IAAKyB,GACpD,CACF,CAWA,SAASqgE,GAAS11C,EAAKxQ,EAAKgI,EAAKq0C,EAAMhH,GACrC,IAAInN,EAASloC,EACTwnD,EAAUx/C,EACVsU,EAAU/L,GAAQC,EAAKxQ,EAAI1B,MAC3BmpD,EAAUpS,GAA6B,OAAjB7kC,EAAI9G,WAAsB1B,EAAMA,EAC1D,SAAS0/C,IACP,IAAItnE,EAAI4f,EAAI1B,KAAOmpD,EACnB,QAAIrnE,EAAIowB,EAAIxgB,OAAS5P,GAAKowB,EAAIxgB,MAAQwgB,EAAI3b,QAC1CmL,EAAM,IAAI4R,GAAIxxB,EAAG4f,EAAIzB,GAAIyB,EAAI8I,QACtBwT,EAAU/L,GAAQC,EAAKpwB,GAChC,CACA,SAASunE,EAASC,GAChB,IAAIt2D,EACJ,GAAY,aAAR+qD,EAAqB,CACvB,IAAI99C,EAAK+d,EAAQpd,KAAK2I,WAAW7H,EAAIzB,IAAMyJ,EAAM,EAAI,GAAK,IAC1D,GAAI+d,MAAMxnB,GACRjN,EAAO,SACF,CACL,IAAIu2D,EAAS7/C,EAAM,EAAIzJ,GAAM,OAAUA,EAAK,MAASA,GAAM,OAAUA,EAAK,MAC1EjN,EAAO,IAAIsgB,GAAI5R,EAAI1B,KAAMjU,KAAKC,IAAI,EAAGD,KAAKiE,IAAIguB,EAAQpd,KAAKpgB,OAAQkhB,EAAIzB,GAAKyJ,GAAO6/C,EAAS,EAAI,MAAO7/C,EACzG,CACF,MACE1W,EADS+jD,EACFG,GAAahlC,EAAI1S,GAAIwe,EAAStc,EAAKgI,GAEnCmtC,GAAc74B,EAAStc,EAAKgI,GAErC,GAAY,MAAR1W,EAAc,CAChB,GAAKs2D,IAAeF,IAGhB,OAAO,EAFP1nD,EAAMo1C,GAAUC,EAAU7kC,EAAI1S,GAAIwe,EAAStc,EAAI1B,KAAMmpD,EAG3D,MACEznD,EAAM1O,EAER,OAAO,CACT,CAEA,GAAY,QAAR+qD,GAA0B,aAARA,EACpBsL,SACK,GAAY,UAARtL,EACTsL,GAAS,QACJ,GAAY,QAARtL,GAA0B,SAARA,EAG3B,IAFA,IAAIyL,EAAU,KAAM9mC,EAAgB,SAARq7B,EACxB50C,EAAS+I,EAAI1S,IAAM0S,EAAI1S,GAAGsnD,UAAUplD,EAAK,aACpChQ,GAAQ,IACXgY,EAAM,IAAM2/C,GAAU33D,GADJA,GAAQ,EAAO,CAErC,IAAI+P,EAAMuc,EAAQpd,KAAKnF,OAAOiG,EAAIzB,KAAO,KACrC5d,EAAO6mB,GAAWzH,EAAK0H,GAAU,IACjCuZ,GAAgB,MAAPjhB,EAAc,KACtBihB,GAAS,KAAK74B,KAAK4X,GAAO,KAC3B,IAEJ,IADIihB,GAAUhxB,GAAUrP,IAAQA,EAAO,KACnCmnE,GAAWA,GAAWnnE,EAAM,CAC1BqnB,EAAM,IAAIA,EAAM,EAAG2/C,IAAY3nD,EAAI8I,OAAS,SAChD,KACF,CAGA,GADInoB,IAAQmnE,EAAUnnE,GAClBqnB,EAAM,IAAM2/C,GAAU33D,GAAU,KACtC,CAEF,IAAI3E,EAAS08C,GAAWv3B,EAAKxQ,EAAKkoC,EAAQsf,GAAS,GAEnD,OADI11C,GAAeo2B,EAAQ78C,KAAWA,EAAO+6D,SAAU,GAChD/6D,CACT,CAKA,SAASi7D,GAASxoD,EAAIkC,EAAKgI,EAAKq0C,GAC9B,IAAgCtwB,EAS5BrnB,EATA8L,EAAM1S,EAAG0S,IAAKwB,EAAIhS,EAAI6N,KAC1B,GAAY,QAARwuC,EAAgB,CAClB,IAAI0L,EAAW19D,KAAKiE,IAAIwP,EAAG/C,QAAQgqB,QAAQuB,aAAcpoC,OAAOw2C,aAAe7hC,SAASs3B,gBAAgB7D,cACpG0hC,EAAa39D,KAAKC,IAAIy9D,EAAW,GAAK36B,GAAWtvB,EAAG/C,SAAU,GAClEgxB,GAAK/jB,EAAM,EAAIhI,EAAIgnB,OAAShnB,EAAIinB,KAAOjf,EAAMggD,CAE/C,KAAmB,QAAR3L,IACTtwB,EAAI/jB,EAAM,EAAIhI,EAAIgnB,OAAS,EAAIhnB,EAAIinB,IAAM,GAG3C,MACEviB,EAASonB,GAAWhuB,EAAIkU,EAAG+Z,IACfH,SAFL,CAGP,GAAI5jB,EAAM,EAAI+jB,GAAK,EAAIA,GAAKvb,EAAIS,OAAQ,CAAEvM,EAAO0hD,SAAU,EAAM,KAAM,CACvEr6B,GAAW,EAAN/jB,CACP,CACA,OAAOtD,CACT,CAIA,IAAIujD,GAAuB,SAASnqD,GAClC3f,KAAK2f,GAAKA,EACV3f,KAAK+pE,eAAiB/pE,KAAKgqE,iBAAmBhqE,KAAKiqE,cAAgBjqE,KAAKkqE,gBAAkB,KAC1FlqE,KAAKmqE,QAAU,IAAIhjD,EACnBnnB,KAAKoqE,UAAY,KACjBpqE,KAAKqqE,aAAc,EACnBrqE,KAAKsqE,eAAiB,IACxB,EA0XA,SAASC,GAAS5qD,EAAIkC,GACpB,IAAIygB,EAAOgH,GAAgB3pB,EAAIkC,EAAI1B,MACnC,IAAKmiB,GAAQA,EAAKH,OAAU,OAAO,KACnC,IAAIhiB,EAAOiS,GAAQzS,EAAG0S,IAAKxQ,EAAI1B,MAC3B2R,EAAOiX,GAAgBzG,EAAMniB,EAAM0B,EAAI1B,MAEvCkK,EAAQ0C,GAAS5M,EAAMR,EAAG0S,IAAI9G,WAAY8nB,EAAO,OACjDhpB,IAEFgpB,EADc3oB,GAAcL,EAAOxI,EAAIzB,IACtB,EAAI,QAAU,QAEjC,IAAIlT,EAASi9B,GAAuBrY,EAAKhtB,IAAK+c,EAAIzB,GAAIizB,GAEtD,OADAnmC,EAAOiuB,OAA4B,SAAnBjuB,EAAO+Y,SAAsB/Y,EAAO8U,IAAM9U,EAAO8O,MAC1D9O,CACT,CAEA,SAASs9D,GAAWnmD,GAClB,IAAK,IAAIomD,EAAOpmD,EAAMomD,EAAMA,EAAOA,EAAKxlD,WACpC,GAAI,4BAA4Bjb,KAAKygE,EAAK71D,WAAc,OAAO,EACnE,OAAO,CACT,CAEA,SAAS81D,GAAO7oD,EAAK8oD,GAAoC,OAAzBA,IAAO9oD,EAAI8oD,KAAM,GAAe9oD,CAAI,CAEpE,SAAS+oD,GAAejrD,EAAIF,EAAMC,EAAIw0B,EAAUC,GAC9C,IAAIpzB,EAAO,GAAI8pD,GAAU,EAAOvb,EAAU3vC,EAAG0S,IAAIq9B,gBAAiBob,GAAiB,EACnF,SAASC,EAAgBzgE,GAAM,OAAO,SAAUivB,GAAU,OAAOA,EAAOjvB,IAAMA,CAAI,CAAE,CACpF,SAAS8S,IACHytD,IACF9pD,GAAQuuC,EACJwb,IAAkB/pD,GAAQuuC,GAC9Bub,EAAUC,GAAiB,EAE/B,CACA,SAASE,EAAQphD,GACXA,IACFxM,IACA2D,GAAQ6I,EAEZ,CACA,SAASqhD,EAAK5mD,GACZ,GAAqB,GAAjBA,EAAKW,SAAe,CACtB,IAAIkmD,EAAS7mD,EAAK0iB,aAAa,WAC/B,GAAImkC,EAEF,YADAF,EAAQE,GAGV,IAA+C/mD,EAA3CgnD,EAAW9mD,EAAK0iB,aAAa,aACjC,GAAIokC,EAAU,CACZ,IAAI7gD,EAAQ3K,EAAGkvC,UAAUp7B,GAAIygB,EAAU,GAAIzgB,GAAI0gB,EAAS,EAAG,GAAI42B,GAAiBI,IAGhF,YAFI7gD,EAAM3pB,SAAWwjB,EAAQmG,EAAM,GAAG1W,KAAK,KACvCo3D,EAAQt4C,GAAW/S,EAAG0S,IAAKlO,EAAM1E,KAAM0E,EAAMzE,IAAI+vC,KAAKH,IAE5D,CACA,GAA4C,SAAxCjrC,EAAK0iB,aAAa,mBAAiC,OACvD,IAAIqkC,EAAU,6BAA6BphE,KAAKqa,EAAKo7B,UACrD,IAAK,QAAQz1C,KAAKqa,EAAKo7B,WAAwC,GAA3Bp7B,EAAKgnD,YAAY1qE,OAAe,OAEhEyqE,GAAWhuD,IACf,IAAK,IAAIvd,EAAI,EAAGA,EAAIwkB,EAAKE,WAAW5jB,OAAQd,IACxCorE,EAAK5mD,EAAKE,WAAW1kB,IAErB,aAAamK,KAAKqa,EAAKo7B,YAAaqrB,GAAiB,GACrDM,IAAWP,GAAU,EAC3B,MAA4B,GAAjBxmD,EAAKW,UACdgmD,EAAQ3mD,EAAKinD,UAAU77D,QAAQ,UAAW,IAAIA,QAAQ,UAAW,KAErE,CACA,KACEw7D,EAAKxrD,GACDA,GAAQC,GACZD,EAAOA,EAAK+lB,YACZslC,GAAiB,EAEnB,OAAO/pD,CACT,CAEA,SAASwqD,GAAS5rD,EAAI0E,EAAM8W,GAC1B,IAAIqwC,EACJ,GAAInnD,GAAQ1E,EAAG/C,QAAQ64B,QAAS,CAE9B,KADA+1B,EAAW7rD,EAAG/C,QAAQ64B,QAAQlxB,WAAW4W,IACxB,OAAOuvC,GAAO/qD,EAAGsU,QAAQR,GAAI9T,EAAG/C,QAAQ+a,OAAS,KAAK,GACvEtT,EAAO,KAAM8W,EAAS,CACxB,MACE,IAAKqwC,EAAWnnD,GAAOmnD,EAAWA,EAASvmD,WAAY,CACrD,IAAKumD,GAAYA,GAAY7rD,EAAG/C,QAAQ64B,QAAW,OAAO,KAC1D,GAAI+1B,EAASvmD,YAAcumD,EAASvmD,YAActF,EAAG/C,QAAQ64B,QAAW,KAC1E,CAEF,IAAK,IAAI51C,EAAI,EAAGA,EAAI8f,EAAG/C,QAAQ0lB,KAAK3hC,OAAQd,IAAK,CAC/C,IAAIw/B,EAAW1f,EAAG/C,QAAQ0lB,KAAKziC,GAC/B,GAAIw/B,EAAShb,MAAQmnD,EACjB,OAAOC,GAAqBpsC,EAAUhb,EAAM8W,EAClD,CACF,CAEA,SAASswC,GAAqBpsC,EAAUhb,EAAM8W,GAC5C,IAAIyL,EAAUvH,EAASte,KAAK9D,WAAY0tD,GAAM,EAC9C,IAAKtmD,IAAS3f,EAASkiC,EAASviB,GAAS,OAAOqmD,GAAOj3C,GAAIV,GAAOsM,EAASlf,MAAO,IAAI,GACtF,GAAIkE,GAAQuiB,IACV+jC,GAAM,EACNtmD,EAAOuiB,EAAQriB,WAAW4W,GAC1BA,EAAS,GACJ9W,GAAM,CACT,IAAIlE,EAAOkf,EAASvoB,KAAO0R,EAAI6W,EAASvoB,MAAQuoB,EAASlf,KACzD,OAAOuqD,GAAOj3C,GAAIV,GAAO5S,GAAOA,EAAKY,KAAKpgB,QAASgqE,EACrD,CAGF,IAAIe,EAA4B,GAAjBrnD,EAAKW,SAAgBX,EAAO,KAAMsnD,EAAUtnD,EAK3D,IAJKqnD,GAAsC,GAA1BrnD,EAAKE,WAAW5jB,QAA2C,GAA5B0jB,EAAKpH,WAAW+H,WAC9D0mD,EAAWrnD,EAAKpH,WACZke,IAAUA,EAASuwC,EAASJ,UAAU3qE,SAErCgrE,EAAQ1mD,YAAc2hB,GAAW+kC,EAAUA,EAAQ1mD,WAC1D,IAAIiK,EAAUmQ,EAASnQ,QAAS6Q,EAAO7Q,EAAQ6Q,KAE/C,SAASnsB,EAAK83D,EAAUC,EAASxwC,GAC/B,IAAK,IAAIt7B,GAAK,EAAGA,GAAKkgC,EAAOA,EAAKp/B,OAAS,GAAId,IAE7C,IADA,IAAIiF,EAAMjF,EAAI,EAAIqvB,EAAQpqB,IAAMi7B,EAAKlgC,GAC5B4L,EAAI,EAAGA,EAAI3G,EAAInE,OAAQ8K,GAAK,EAAG,CACtC,IAAImgE,EAAU9mE,EAAI2G,EAAI,GACtB,GAAImgE,GAAWF,GAAYE,GAAWD,EAAS,CAC7C,IAAIxrD,EAAO4S,GAAOlzB,EAAI,EAAIw/B,EAASlf,KAAOkf,EAASvoB,KAAKjX,IACpDugB,EAAKtb,EAAI2G,GAAK0vB,EAElB,OADIA,EAAS,GAAKywC,GAAWF,KAAYtrD,EAAKtb,EAAI2G,GAAK0vB,EAAS,EAAI,KAC7D1H,GAAItT,EAAMC,EACnB,CACF,CAEJ,CACA,IAAIkK,EAAQ1W,EAAK83D,EAAUC,EAASxwC,GACpC,GAAI7Q,EAAS,OAAOogD,GAAOpgD,EAAOqgD,GAGlC,IAAK,IAAI/nE,EAAQ+oE,EAAQnmC,YAAawJ,EAAO08B,EAAWA,EAASJ,UAAU3qE,OAASw6B,EAAS,EAAGv4B,EAAOA,EAAQA,EAAM4iC,YAAa,CAEhI,GADAlb,EAAQ1W,EAAKhR,EAAOA,EAAMqa,WAAY,GAElC,OAAOytD,GAAOj3C,GAAInJ,EAAMnK,KAAMmK,EAAMlK,GAAK4uB,GAAO27B,GAEhD37B,GAAQpsC,EAAMyoE,YAAY1qE,MAChC,CACA,IAAK,IAAIgC,EAASgpE,EAAQE,gBAAiBC,EAAS3wC,EAAQx4B,EAAQA,EAASA,EAAOkpE,gBAAiB,CAEnG,GADAvhD,EAAQ1W,EAAKjR,EAAQA,EAAOsa,YAAa,GAErC,OAAOytD,GAAOj3C,GAAInJ,EAAMnK,KAAMmK,EAAMlK,GAAK0rD,GAASnB,GAElDmB,GAAUnpE,EAAO0oE,YAAY1qE,MACnC,CACF,CA7gBAmpE,GAAqBzpE,UAAU2hD,KAAO,SAAUplC,GAC5C,IAAI+wC,EAAS3tD,KAEXshC,EAAQthC,KAAM2f,EAAK2hB,EAAM3hB,GACzBqP,EAAMsS,EAAMtS,IAAMpS,EAAQ64B,QAI9B,SAASs2B,EAAe7gE,GACtB,IAAK,IAAIooD,EAAIpoD,EAAEqb,OAAQ+sC,EAAGA,EAAIA,EAAEruC,WAAY,CAC1C,GAAIquC,GAAKtkC,EAAO,OAAO,EACvB,GAAI,iCAAiChlB,KAAKspD,EAAE1+C,WAAc,KAC5D,CACA,OAAO,CACT,CA2BA,SAASo3D,EAAU9gE,GACjB,GAAK6gE,EAAe7gE,KAAMmiB,GAAe1N,EAAIzU,GAA7C,CACA,GAAIyU,EAAGqkC,oBACL0gB,GAAc,CAACU,UAAU,EAAOrkD,KAAMpB,EAAGywC,kBAC3B,OAAVllD,EAAE1I,MAAiBmd,EAAG0wC,iBAAiB,GAAI,KAAM,WAChD,KAAK1wC,EAAG9c,QAAQopE,gBACrB,OAEA,IAAIn6B,EAASi0B,GAAepmD,GAC5B+kD,GAAc,CAACU,UAAU,EAAMrkD,KAAM+wB,EAAO/wB,OAC9B,OAAV7V,EAAE1I,MACJmd,EAAGM,WAAU,WACXN,EAAGuwC,cAAcpe,EAAOA,OAAQ,EAAGjqB,GACnClI,EAAG0wC,iBAAiB,GAAI,KAAM,MAChC,GAEJ,CACA,GAAInlD,EAAEu6D,cAAe,CACnBv6D,EAAEu6D,cAAcyG,YAChB,IAAIntD,EAAU0lD,GAAW1jD,KAAK0uC,KAAK,MAGnC,GADAvkD,EAAEu6D,cAAcvR,QAAQ,OAAQn1C,GAC5B7T,EAAEu6D,cAAc1R,QAAQ,SAAWh1C,EAErC,YADA7T,EAAEqiB,gBAGN,CAEA,IAAI4+C,EAAShG,KAAkBl2C,EAAKk8C,EAAOlvD,WAC3C0C,EAAG/C,QAAQuqB,UAAUnqB,aAAamvD,EAAQxsD,EAAG/C,QAAQuqB,UAAUlqB,YAC/DgT,EAAGvoB,MAAQ+8D,GAAW1jD,KAAK0uC,KAAK,MAChC,IAAI2c,EAAWjnD,IACfiB,EAAY6J,GACZ1I,YAAW,WACT5H,EAAG/C,QAAQuqB,UAAUrpB,YAAYquD,GACjCC,EAASp3B,QACLo3B,GAAYp9C,GAAOsS,EAAM+qC,sBAC/B,GAAG,GApCuD,CAqC5D,CA1EAr9C,EAAIs9C,iBAAkB,EACtBrG,GAAoBj3C,EAAKrP,EAAG9c,QAAQ2+D,WAAY7hD,EAAG9c,QAAQ4+D,YAAa9hD,EAAG9c,QAAQ6+D,gBAUnFj6D,GAAGunB,EAAK,SAAS,SAAU9jB,IACpB6gE,EAAe7gE,IAAMmiB,GAAe1N,EAAIzU,IAAMq6D,GAAYr6D,EAAGyU,IAE9DiD,GAAc,IAAM2E,WAAWtH,GAAUN,GAAI,WAAc,OAAOguC,EAAO4e,eAAiB,IAAI,GACpG,IAEA9kE,GAAGunB,EAAK,oBAAoB,SAAU9jB,GACpCyiD,EAAOyc,UAAY,CAAC1xD,KAAMxN,EAAEwN,KAAMtF,MAAM,EAC1C,IACA3L,GAAGunB,EAAK,qBAAqB,SAAU9jB,GAChCyiD,EAAOyc,YAAazc,EAAOyc,UAAY,CAAC1xD,KAAMxN,EAAEwN,KAAMtF,MAAM,GACnE,IACA3L,GAAGunB,EAAK,kBAAkB,SAAU9jB,GAC9ByiD,EAAOyc,YACLl/D,EAAEwN,MAAQi1C,EAAOyc,UAAU1xD,MAAQi1C,EAAO6e,kBAC9C7e,EAAOyc,UAAUh3D,MAAO,EAE5B,IAEA3L,GAAGunB,EAAK,cAAc,WAAc,OAAOsS,EAAMmrC,qBAAuB,IAExEhlE,GAAGunB,EAAK,SAAS,WACV2+B,EAAOyc,WAAazc,EAAO6e,iBAClC,IAyCA/kE,GAAGunB,EAAK,OAAQg9C,GAChBvkE,GAAGunB,EAAK,MAAOg9C,EACjB,EAEAlC,GAAqBzpE,UAAU4hE,yBAA2B,SAAUyK,GAE/DA,EACD1sE,KAAKgvB,IAAIjK,aAAa,aAAc2nD,GAEpC1sE,KAAKgvB,IAAI29C,gBAAgB,aAE7B,EAEA7C,GAAqBzpE,UAAUixC,iBAAmB,WAChD,IAAIpkC,EAASokC,GAAiBtxC,KAAK2f,IAAI,GAEvC,OADAzS,EAAO8nC,MAAQ7vB,KAAenlB,KAAKgvB,IAC5B9hB,CACT,EAEA48D,GAAqBzpE,UAAUgxC,cAAgB,SAAUvf,EAAMqrB,GACxDrrB,GAAS9xB,KAAK2f,GAAG/C,QAAQ0lB,KAAK3hC,UAC/BmxB,EAAKkjB,OAASmI,IAAan9C,KAAKqsE,uBACpCrsE,KAAK4sE,uBAAuB96C,GAC9B,EAEAg4C,GAAqBzpE,UAAU2vB,aAAe,WAC5C,OAAOhwB,KAAK2f,GAAG/C,QAAQgqB,QAAQ1W,cAAcF,cAC/C,EAEA85C,GAAqBzpE,UAAUgsE,qBAAuB,WACpD,IAAIx6B,EAAM7xC,KAAKgwB,eAAgBrQ,EAAK3f,KAAK2f,GAAIykC,EAAOzkC,EAAG0S,IAAIwf,IAAIN,UAC3D9xB,EAAO2kC,EAAK3kC,OAAQC,EAAK0kC,EAAK1kC,KAElC,GAAIC,EAAG/C,QAAQ+a,QAAUhY,EAAG/C,QAAQ8a,UAAYjY,EAAKU,MAAQR,EAAG/C,QAAQ+a,QAAUjY,EAAGS,KAAOR,EAAG/C,QAAQ8a,SACrGma,EAAI6N,sBADN,CAKA,IAAImtB,EAAYtB,GAAS5rD,EAAIkyB,EAAIsN,WAAYtN,EAAIuN,cAC7C0tB,EAAWvB,GAAS5rD,EAAIkyB,EAAIwN,UAAWxN,EAAIyN,aAC/C,IAAIutB,GAAcA,EAAUlC,MAAOmC,GAAaA,EAASnC,KACX,GAA1Cj3C,GAAIK,GAAO84C,EAAWC,GAAWrtD,IACO,GAAxCiU,GAAII,GAAO+4C,EAAWC,GAAWptD,GAFrC,CAKA,IAAI4iB,EAAO3iB,EAAG/C,QAAQ0lB,KAClBtmB,EAASyD,EAAKU,MAAQR,EAAG/C,QAAQ8a,UAAY6yC,GAAS5qD,EAAIF,IAC1D,CAAC4E,KAAMie,EAAK,GAAGpT,QAAQpqB,IAAI,GAAIq2B,OAAQ,GACvCnZ,EAAMtC,EAAGS,KAAOR,EAAG/C,QAAQ+a,QAAU4yC,GAAS5qD,EAAID,GACtD,IAAKsC,EAAK,CACR,IAAIkN,EAAUoT,EAAKA,EAAK3hC,OAAS,GAAGuuB,QAChCpqB,EAAMoqB,EAAQ6Q,KAAO7Q,EAAQ6Q,KAAK7Q,EAAQ6Q,KAAKp/B,OAAS,GAAKuuB,EAAQpqB,IACzEkd,EAAM,CAACqC,KAAMvf,EAAIA,EAAInE,OAAS,GAAIw6B,OAAQr2B,EAAIA,EAAInE,OAAS,GAAKmE,EAAIA,EAAInE,OAAS,GACnF,CAEA,GAAKqb,GAAUgG,EAAf,CAKA,IAA+C+qD,EAA3Cx+D,EAAMsjC,EAAIm7B,YAAcn7B,EAAIo7B,WAAW,GAC3C,IAAMF,EAAM5oD,EAAMnI,EAAMqI,KAAMrI,EAAMmf,OAAQnZ,EAAImZ,OAAQnZ,EAAIqC,KAClD,CAAV,MAAMnZ,GAAI,CACN6hE,KACGxqD,GAAS5C,EAAGV,MAAMu1B,SACrB3C,EAAI5rB,SAASjK,EAAMqI,KAAMrI,EAAMmf,QAC1B4xC,EAAI7vC,YACP2U,EAAI6N,kBACJ7N,EAAI8N,SAASotB,MAGfl7B,EAAI6N,kBACJ7N,EAAI8N,SAASotB,IAEXx+D,GAAyB,MAAlBsjC,EAAIsN,WAAsBtN,EAAI8N,SAASpxC,GACzCgU,GAASviB,KAAKktE,oBAEzBltE,KAAKmtE,mBAnBL,MAFEt7B,EAAI6N,iBAbK,CAPX,CA0CF,EAEAoqB,GAAqBzpE,UAAU6sE,iBAAmB,WAC9C,IAAIvf,EAAS3tD,KAEfynB,aAAaznB,KAAKqqE,aAClBrqE,KAAKqqE,YAAc9iD,YAAW,WAC5BomC,EAAO0c,aAAc,EACjB1c,EAAO3R,oBACP2R,EAAOhuC,GAAGM,WAAU,WAAc,OAAO0tC,EAAOhuC,GAAGkO,MAAMmuB,kBAAmB,CAAM,GACxF,GAAG,GACL,EAEA8tB,GAAqBzpE,UAAUusE,uBAAyB,SAAU96C,GAChEtN,EAAqBxkB,KAAK2f,GAAG/C,QAAQ83B,UAAW5iB,EAAK2f,SACrDjtB,EAAqBxkB,KAAK2f,GAAG/C,QAAQyjC,aAAcvuB,EAAK3B,UAC1D,EAEA25C,GAAqBzpE,UAAU8sE,kBAAoB,WACjD,IAAIt7B,EAAM7xC,KAAKgwB,eACfhwB,KAAK+pE,eAAiBl4B,EAAIsN,WAAYn/C,KAAKgqE,iBAAmBn4B,EAAIuN,aAClEp/C,KAAKiqE,cAAgBp4B,EAAIwN,UAAWr/C,KAAKkqE,gBAAkBr4B,EAAIyN,WACjE,EAEAwqB,GAAqBzpE,UAAU+sE,kBAAoB,WACjD,IAAIv7B,EAAM7xC,KAAKgwB,eACf,IAAK6hB,EAAIm7B,WAAc,OAAO,EAC9B,IAAI3oD,EAAOwtB,EAAIo7B,WAAW,GAAGI,wBAC7B,OAAO3oE,EAAS1E,KAAKgvB,IAAK3K,EAC5B,EAEAylD,GAAqBzpE,UAAU20C,MAAQ,WACL,YAA5Bh1C,KAAK2f,GAAG9c,QAAQg5B,WACb77B,KAAKotE,qBAAuBjoD,KAAenlB,KAAKgvB,KACjDhvB,KAAKqxC,cAAcrxC,KAAKsxC,oBAAoB,GAChDtxC,KAAKgvB,IAAIgmB,QAEb,EACA80B,GAAqBzpE,UAAU0hE,KAAO,WAAc/hE,KAAKgvB,IAAI+yC,MAAQ,EACrE+H,GAAqBzpE,UAAUq8D,SAAW,WAAc,OAAO18D,KAAKgvB,GAAI,EAExE86C,GAAqBzpE,UAAUo9D,cAAgB,WAAc,OAAO,CAAK,EAEzEqM,GAAqBzpE,UAAUi1C,cAAgB,WAC3C,IAAIqY,EAAS3tD,KAEXshC,EAAQthC,KAMZ,SAASstE,IACHhsC,EAAM3hB,GAAGV,MAAMu1B,UACjBlT,EAAMisC,gBACNjsC,EAAM6oC,QAAQ1kE,IAAI67B,EAAM3hB,GAAG9c,QAAQ2qE,aAAcF,GAErD,CAVIttE,KAAKotE,oBACL7lD,YAAW,WAAc,OAAOomC,EAAO4f,eAAiB,GAAG,IAE3D3vB,GAAQ59C,KAAK2f,IAAI,WAAc,OAAO2hB,EAAM3hB,GAAGkO,MAAMmuB,kBAAmB,CAAM,IAQlFh8C,KAAKmqE,QAAQ1kE,IAAIzF,KAAK2f,GAAG9c,QAAQ2qE,aAAcF,EACjD,EAEAxD,GAAqBzpE,UAAU27C,iBAAmB,WAChD,IAAInK,EAAM7xC,KAAKgwB,eACf,OAAO6hB,EAAIsN,YAAcn/C,KAAK+pE,gBAAkBl4B,EAAIuN,cAAgBp/C,KAAKgqE,kBACvEn4B,EAAIwN,WAAar/C,KAAKiqE,eAAiBp4B,EAAIyN,aAAet/C,KAAKkqE,eACnE,EAEAJ,GAAqBzpE,UAAUktE,cAAgB,WAC7C,GAA2B,MAAvBvtE,KAAKsqE,iBAA0BtqE,KAAKqqE,aAAgBrqE,KAAKg8C,mBAA7D,CACA,IAAInK,EAAM7xC,KAAKgwB,eAAgBrQ,EAAK3f,KAAK2f,GAOzC,GAAI6D,GAAWT,GAAU/iB,KAAK2f,GAAG/C,QAAQwoB,YAAYzkC,QAAU6pE,GAAW34B,EAAIsN,YAI5E,OAHAn/C,KAAK2f,GAAGgoD,iBAAiB,CAACnlE,KAAM,UAAW0zD,QAAS,EAAG3oC,eAAgBrhB,KAAK0kB,MAC5E5wB,KAAK+hE,YACL/hE,KAAKg1C,QAGP,IAAIh1C,KAAKoqE,UAAT,CACApqE,KAAKmtE,oBACL,IAAIj+B,EAASq8B,GAAS5rD,EAAIkyB,EAAIsN,WAAYtN,EAAIuN,cAC1CzoC,EAAO40D,GAAS5rD,EAAIkyB,EAAIwN,UAAWxN,EAAIyN,aACvCpQ,GAAUv4B,GAAQinC,GAAQj+B,GAAI,WAChCsC,GAAatC,EAAG0S,IAAKiyB,GAAgBpV,EAAQv4B,GAAOkR,IAChDqnB,EAAOy7B,KAAOh0D,EAAKg0D,OAAOhrD,EAAGkO,MAAMmuB,kBAAmB,EAC5D,GAP6B,CAd6D,CAsB5F,EAEA8tB,GAAqBzpE,UAAUotE,YAAc,WAChB,MAAvBztE,KAAKsqE,iBACP7iD,aAAaznB,KAAKsqE,gBAClBtqE,KAAKsqE,eAAiB,MAGxB,IAQIoD,EAAWx5B,EAAUy5B,EARrBhuD,EAAK3f,KAAK2f,GAAI/C,EAAU+C,EAAG/C,QAASi1B,EAAMlyB,EAAG0S,IAAIwf,IAAIN,UACrD9xB,EAAOoyB,EAAIpyB,OAAQC,EAAKmyB,EAAInyB,KAKhC,GAJe,GAAXD,EAAKW,IAAWX,EAAKU,KAAOR,EAAG4lC,cAC/B9lC,EAAOgU,GAAIhU,EAAKU,KAAO,EAAGiS,GAAQzS,EAAG0S,IAAK5S,EAAKU,KAAO,GAAGxf,SACzD+e,EAAGU,IAAMgS,GAAQzS,EAAG0S,IAAK3S,EAAGS,MAAMY,KAAKpgB,QAAU+e,EAAGS,KAAOR,EAAGme,aAC9Dpe,EAAK+T,GAAI/T,EAAGS,KAAO,EAAG,IACtBV,EAAKU,KAAOvD,EAAQ8a,UAAYhY,EAAGS,KAAOvD,EAAQ+a,OAAS,EAAK,OAAO,EAGvElY,EAAKU,MAAQvD,EAAQ8a,UAA0D,IAA7Cg2C,EAAYnkC,GAAc5pB,EAAIF,EAAKU,QACvE+zB,EAAWnhB,GAAOnW,EAAQ0lB,KAAK,GAAGniB,MAClCwtD,EAAW/wD,EAAQ0lB,KAAK,GAAGje,OAE3B6vB,EAAWnhB,GAAOnW,EAAQ0lB,KAAKorC,GAAWvtD,MAC1CwtD,EAAW/wD,EAAQ0lB,KAAKorC,EAAY,GAAGrpD,KAAKmhB,aAE9C,IACI2O,EAAQy5B,EADRC,EAAUtkC,GAAc5pB,EAAID,EAAGS,MAUnC,GARI0tD,GAAWjxD,EAAQ0lB,KAAK3hC,OAAS,GACnCwzC,EAASv3B,EAAQ+a,OAAS,EAC1Bi2C,EAAShxD,EAAQ64B,QAAQxV,YAEzBkU,EAASphB,GAAOnW,EAAQ0lB,KAAKurC,EAAU,GAAG1tD,MAAQ,EAClDytD,EAAShxD,EAAQ0lB,KAAKurC,EAAU,GAAGxpD,KAAKwnD,kBAGrC8B,EAAY,OAAO,EAGxB,IAFA,IAAIG,EAAUnuD,EAAG0S,IAAI45B,WAAW2e,GAAejrD,EAAIguD,EAAUC,EAAQ15B,EAAUC,IAC3E45B,EAAUr7C,GAAW/S,EAAG0S,IAAKoB,GAAIygB,EAAU,GAAIzgB,GAAI0gB,EAAQ/hB,GAAQzS,EAAG0S,IAAK8hB,GAAQpzB,KAAKpgB,SACrFmtE,EAAQntE,OAAS,GAAKotE,EAAQptE,OAAS,GAC5C,GAAI6nB,EAAIslD,IAAYtlD,EAAIulD,GAAYD,EAAQlqE,MAAOmqE,EAAQnqE,MAAOuwC,QAC7D,IAAI25B,EAAQ,IAAMC,EAAQ,GACxB,MAD8BD,EAAQjqE,QAASkqE,EAAQlqE,QAASqwC,GAC1D,CAKf,IAFA,IAAI85B,EAAW,EAAGC,EAAS,EACvBx2B,EAASq2B,EAAQ,GAAII,EAASH,EAAQ,GAAII,EAAcjiE,KAAKiE,IAAIsnC,EAAO92C,OAAQutE,EAAOvtE,QACpFqtE,EAAWG,GAAe12B,EAAO/tB,WAAWskD,IAAaE,EAAOxkD,WAAWskD,MAC5EA,EAIN,IAHA,IAAII,EAAS5lD,EAAIslD,GAAUO,EAAS7lD,EAAIulD,GACpCO,EAAYpiE,KAAKiE,IAAIi+D,EAAOztE,QAA4B,GAAlBmtE,EAAQntE,OAAcqtE,EAAW,GAClDK,EAAO1tE,QAA4B,GAAlBotE,EAAQptE,OAAcqtE,EAAW,IACpEC,EAASK,GACTF,EAAO1kD,WAAW0kD,EAAOztE,OAASstE,EAAS,IAAMI,EAAO3kD,WAAW2kD,EAAO1tE,OAASstE,EAAS,MAC7FA,EAEN,GAAsB,GAAlBH,EAAQntE,QAAiC,GAAlBotE,EAAQptE,QAAeuzC,GAAYz0B,EAAKU,KACjE,KAAO6tD,GAAYA,EAAWvuD,EAAKW,IAC5BguD,EAAO1kD,WAAW0kD,EAAOztE,OAASstE,EAAS,IAAMI,EAAO3kD,WAAW2kD,EAAO1tE,OAASstE,EAAS,IACjGD,IACAC,IAIJH,EAAQA,EAAQntE,OAAS,GAAKytE,EAAO9tE,MAAM,EAAG8tE,EAAOztE,OAASstE,GAAQx+D,QAAQ,WAAY,IAC1Fq+D,EAAQ,GAAKA,EAAQ,GAAGxtE,MAAM0tE,GAAUv+D,QAAQ,WAAY,IAE5D,IAAI8+D,EAAS96C,GAAIygB,EAAU85B,GACvBQ,EAAO/6C,GAAI0gB,EAAQ45B,EAAQptE,OAAS6nB,EAAIulD,GAASptE,OAASstE,EAAS,GACvE,OAAIH,EAAQntE,OAAS,GAAKmtE,EAAQ,IAAMp6C,GAAI66C,EAAQC,IAClDtuD,GAAaP,EAAG0S,IAAKy7C,EAASS,EAAQC,EAAM,WACrC,QAFT,CAIF,EAEA1E,GAAqBzpE,UAAUs7D,aAAe,WAC5C37D,KAAKysE,qBACP,EACA3C,GAAqBzpE,UAAU6F,MAAQ,WACrClG,KAAKysE,qBACP,EACA3C,GAAqBzpE,UAAUosE,oBAAsB,WAC9CzsE,KAAKoqE,YACV3iD,aAAaznB,KAAKsqE,gBAClBtqE,KAAKoqE,UAAY,KACjBpqE,KAAKusE,gBACLvsE,KAAKgvB,IAAI+yC,OACT/hE,KAAKgvB,IAAIgmB,QACX,EACA80B,GAAqBzpE,UAAUmsE,gBAAkB,WAC7C,IAAI7e,EAAS3tD,KAEY,MAAvBA,KAAKsqE,iBACTtqE,KAAKsqE,eAAiB/iD,YAAW,WAE/B,GADAomC,EAAO2c,eAAiB,KACpB3c,EAAOyc,UAAW,CACpB,IAAIzc,EAAOyc,UAAUh3D,KACd,OADsBu6C,EAAOyc,UAAY,IAElD,CACAzc,EAAO4e,eACT,GAAG,IACL,EAEAzC,GAAqBzpE,UAAUksE,cAAgB,WAC3C,IAAI5e,EAAS3tD,MAEXA,KAAK2f,GAAGszC,cAAiBjzD,KAAKytE,eAC9B7vB,GAAQ59C,KAAK2f,IAAI,WAAc,OAAOywB,GAAUud,EAAOhuC,GAAK,GAClE,EAEAmqD,GAAqBzpE,UAAUmhC,cAAgB,SAAUnd,GACvDA,EAAKioD,gBAAkB,OACzB,EAEAxC,GAAqBzpE,UAAU08D,WAAa,SAAU7xD,GAClC,GAAdA,EAAE8xD,UAAiBh9D,KAAKoqE,YAC5Bl/D,EAAEqiB,iBACGvtB,KAAK2f,GAAGszC,cACThzC,GAAUjgB,KAAK2f,GAAIilD,GAAnB3kD,CAAmCjgB,KAAK2f,GAAI2T,OAAO+hC,aAA2B,MAAdnqD,EAAE8xD,SAAmB9xD,EAAEgrD,QAAUhrD,EAAE8xD,UAAW,GACpH,EAEA8M,GAAqBzpE,UAAU2hE,gBAAkB,SAAU/7D,GACzDjG,KAAKgvB,IAAIs9C,gBAAkBh5C,OAAc,YAAPrtB,EACpC,EAEA6jE,GAAqBzpE,UAAU09D,cAAgB,WAAa,EAC5D+L,GAAqBzpE,UAAU8hE,cAAgB,WAAa,EAE5D2H,GAAqBzpE,UAAUkhC,uBAAwB,EA2JvD,IAAIktC,GAAgB,SAAS9uD,GAC3B3f,KAAK2f,GAAKA,EAEV3f,KAAK0uE,UAAY,GAKjB1uE,KAAK2uE,aAAc,EAEnB3uE,KAAKmqE,QAAU,IAAIhjD,EAEnBnnB,KAAK+vB,cAAe,EACpB/vB,KAAKoqE,UAAY,IACnB,EA4VA,SAASwE,GAAaC,EAAUhsE,GAS9B,IARAA,EAAUA,EAAUyjB,EAAQzjB,GAAW,CAAC,GAChC6E,MAAQmnE,EAASnnE,OACpB7E,EAAQisE,UAAYD,EAAShyD,WAC9Bha,EAAQisE,SAAWD,EAAShyD,WAC3Bha,EAAQksE,aAAeF,EAASE,cACjClsE,EAAQksE,YAAcF,EAASE,aAGV,MAArBlsE,EAAQigE,UAAmB,CAC7B,IAAIjuB,EAAW1vB,IACftiB,EAAQigE,UAAYjuB,GAAYg6B,GACQ,MAAtCA,EAAS9nC,aAAa,cAAwB8N,GAAYngC,SAASoI,IACvE,CAEA,SAAShO,IAAQ+/D,EAASnnE,MAAQiY,EAAG6vC,UAAW,CAEhD,IAAIwf,EACJ,GAAIH,EAASI,OACXxnE,GAAGonE,EAASI,KAAM,SAAUngE,IAEvBjM,EAAQqsE,wBAAwB,CACnC,IAAID,EAAOJ,EAASI,KACpBD,EAAaC,EAAKE,OAClB,IACE,IAAIC,EAAgBH,EAAKE,OAAS,WAChCrgE,IACAmgE,EAAKE,OAASH,EACdC,EAAKE,SACLF,EAAKE,OAASC,CAChB,CACU,CAAV,MAAMlkE,GAAI,CACd,CAGFrI,EAAQmgE,WAAa,SAAUrjD,GAC7BA,EAAG7Q,KAAOA,EACV6Q,EAAG0vD,YAAc,WAAc,OAAOR,CAAU,EAChDlvD,EAAG2vD,WAAa,WACd3vD,EAAG2vD,WAAa1nC,MAChB94B,IACA+/D,EAAS5pD,WAAWnH,YAAY6B,EAAG2yB,qBACnCu8B,EAASlyD,MAAMC,QAAU,GACrBiyD,EAASI,OACX9jE,GAAI0jE,EAASI,KAAM,SAAUngE,GACxBjM,EAAQqsE,wBAAyD,mBAAxBL,EAASI,KAAKE,SACxDN,EAASI,KAAKE,OAASH,GAE/B,CACF,EAEAH,EAASlyD,MAAMC,QAAU,OACzB,IAAI+C,EAAKlB,IAAW,SAAU4F,GAAQ,OAAOwqD,EAAS5pD,WAAWjI,aAAaqH,EAAMwqD,EAASrpC,YAAc,GACzG3iC,GACF,OAAO8c,CACT,CAEA,SAAS4vD,GAAe9wD,GACtBA,EAAWtT,IAAMA,GACjBsT,EAAWhX,GAAKA,GAChBgX,EAAWmkC,iBAAmBA,GAC9BnkC,EAAW4wC,IAAMA,GACjB5wC,EAAWwtC,WAAar8B,GACxBnR,EAAWkI,YAAcA,EACzBlI,EAAWyJ,WAAaA,EACxBzJ,EAAW4K,WAAaH,GACxBzK,EAAWkJ,KAAOA,EAClBlJ,EAAW2O,OAASA,GACpB3O,EAAWkgB,KAAOA,GAClBlgB,EAAW8lC,UAAYA,GACvB9lC,EAAW88B,eAAiBA,GAC5B98B,EAAWgV,IAAMA,GACjBhV,EAAW+wD,OAAS97C,GACpBjV,EAAWoS,MAAQA,GACnBpS,EAAWqS,UAAYA,GACvBrS,EAAW2S,YAAcA,GACzB3S,EAAWqB,QAAUA,GACrBrB,EAAW8S,eAAiBA,GAC5B9S,EAAWC,WAAaA,GACxBD,EAAWuC,UAAYA,GACvBvC,EAAWsT,WAAaA,GACxBtT,EAAWoB,UAAYA,GACvBpB,EAAWw5C,SAAWA,GACtBx5C,EAAW62C,OAASA,GACpB72C,EAAW+3C,QAAUA,GACrB/3C,EAAWw3C,cAAgBA,GAC3Bx3C,EAAWq3C,UAAYA,GACvBr3C,EAAWk3C,gBAAkBA,GAC7Bl3C,EAAW+C,aAAeA,GAC1B/C,EAAWgwC,iBAAmBA,GAC9BhwC,EAAWqvC,WAAaA,GACxBrvC,EAAW4uC,WAAaA,GACxB5uC,EAAWyP,iBAAmBA,GAC9BzP,EAAW2P,kBAAoBA,GAC/B3P,EAAW8P,OAASA,GACpB9P,EAAW6G,SAAWA,EACtB7G,EAAW/Z,SAAWA,EACtB+Z,EAAW2F,QAAUA,EACrB3F,EAAW22C,SAAWA,EACxB,CA7bAqZ,GAAcpuE,UAAU2hD,KAAO,SAAUplC,GACrC,IAAI+wC,EAAS3tD,KAEXshC,EAAQthC,KAAM2f,EAAK3f,KAAK2f,GAC5B3f,KAAKyvE,YAAY7yD,GACjB,IAAIqT,EAAKjwB,KAAK6uE,SAmBd,SAASa,EAAexkE,GACtB,IAAImiB,GAAe1N,EAAIzU,GAAvB,CACA,GAAIyU,EAAGqkC,oBACL0gB,GAAc,CAACU,UAAU,EAAOrkD,KAAMpB,EAAGywC,sBACpC,KAAKzwC,EAAG9c,QAAQopE,gBACrB,OAEA,IAAIn6B,EAASi0B,GAAepmD,GAC5B+kD,GAAc,CAACU,UAAU,EAAMrkD,KAAM+wB,EAAO/wB,OAC9B,OAAV7V,EAAE1I,KACJmd,EAAGuwC,cAAcpe,EAAOA,OAAQ,KAAMjqB,IAEtCyZ,EAAMotC,UAAY,GAClBz+C,EAAGvoB,MAAQoqC,EAAO/wB,KAAK0uC,KAAK,MAC5BrpC,EAAY6J,GAEhB,CACc,OAAV/kB,EAAE1I,OAAiBmd,EAAGV,MAAM4jD,aAAe,IAAIv7C,KAhBf,CAiBtC,CAnCA1K,EAAQgqB,QAAQ5pB,aAAahd,KAAK4mC,QAAShqB,EAAQgqB,QAAQ3pB,YAGvDqG,IAAO2M,EAAGtT,MAAMwpB,MAAQ,OAE5B1+B,GAAGwoB,EAAI,SAAS,WACVtN,GAAMC,GAAc,GAAK+qC,EAAO59B,eAAgB49B,EAAO59B,aAAe,MAC1EuR,EAAMgsC,MACR,IAEA7lE,GAAGwoB,EAAI,SAAS,SAAU/kB,GACpBmiB,GAAe1N,EAAIzU,IAAMq6D,GAAYr6D,EAAGyU,KAE5CA,EAAGV,MAAM2jD,eAAiB,IAAIt7C,KAC9Bga,EAAMquC,WACR,IAqBAloE,GAAGwoB,EAAI,MAAOy/C,GACdjoE,GAAGwoB,EAAI,OAAQy/C,GAEfjoE,GAAGmV,EAAQorB,SAAU,SAAS,SAAU98B,GACtC,IAAI47B,GAAclqB,EAAS1R,KAAMmiB,GAAe1N,EAAIzU,GAApD,CACA,IAAK+kB,EAAG2/C,cAGN,OAFAjwD,EAAGV,MAAM2jD,eAAiB,IAAIt7C,UAC9Bga,EAAM0T,QAKR,IAAIriC,EAAQ,IAAIk9D,MAAM,SACtBl9D,EAAM8yD,cAAgBv6D,EAAEu6D,cACxBx1C,EAAG2/C,cAAcj9D,EAVgD,CAWnE,IAGAlL,GAAGmV,EAAQuqB,UAAW,eAAe,SAAUj8B,GACxC47B,GAAclqB,EAAS1R,IAAMgjB,GAAiBhjB,EACrD,IAEAzD,GAAGwoB,EAAI,oBAAoB,WACzB,IAAIjU,EAAQ2D,EAAGuC,UAAU,QACrBof,EAAM8oC,WAAa9oC,EAAM8oC,UAAUjmD,MAAMzb,QAC7C44B,EAAM8oC,UAAY,CAChBpuD,MAAOA,EACPmI,MAAOxE,EAAGouC,SAAS/xC,EAAO2D,EAAGuC,UAAU,MAAO,CAACtN,UAAW,yBAE9D,IACAnN,GAAGwoB,EAAI,kBAAkB,WACnBqR,EAAM8oC,YACR9oC,EAAMgsC,OACNhsC,EAAM8oC,UAAUjmD,MAAMzb,QACtB44B,EAAM8oC,UAAY,KAEtB,GACF,EAEAqE,GAAcpuE,UAAUovE,YAAc,SAAUK,GAE9C9vE,KAAK4mC,QAAUu/B,KAGfnmE,KAAK6uE,SAAW7uE,KAAK4mC,QAAQ3pB,UAC/B,EAEAwxD,GAAcpuE,UAAU4hE,yBAA2B,SAAUyK,GAExDA,EACD1sE,KAAK6uE,SAAS9pD,aAAa,aAAc2nD,GAEzC1sE,KAAK6uE,SAASlC,gBAAgB,aAElC,EAEA8B,GAAcpuE,UAAUixC,iBAAmB,WAEzC,IAAI3xB,EAAK3f,KAAK2f,GAAI/C,EAAU+C,EAAG/C,QAASyV,EAAM1S,EAAG0S,IAC7CnlB,EAASokC,GAAiB3xB,GAG9B,GAAIA,EAAG9c,QAAQktE,oBAAqB,CAClC,IAAIzH,EAAUp7B,GAAavtB,EAAI0S,EAAIwf,IAAIN,UAAU56B,KAAM,OACnDq5D,EAAUpzD,EAAQgqB,QAAQpX,wBAAyBygD,EAAUrzD,EAAQ64B,QAAQjmB,wBACjFtiB,EAAOgjE,MAAQhkE,KAAKC,IAAI,EAAGD,KAAKiE,IAAIyM,EAAQgqB,QAAQuB,aAAe,GAC/BmgC,EAAQx/B,IAAMmnC,EAAQnnC,IAAMknC,EAAQlnC,MACxE57B,EAAOijE,OAASjkE,KAAKC,IAAI,EAAGD,KAAKiE,IAAIyM,EAAQgqB,QAAQC,YAAc,GAC9ByhC,EAAQ54C,KAAOugD,EAAQvgD,KAAOsgD,EAAQtgD,MAC7E,CAEA,OAAOxiB,CACT,EAEAuhE,GAAcpuE,UAAUgxC,cAAgB,SAAU++B,GAChD,IAAkBxzD,EAAT5c,KAAK2f,GAAiB/C,QAC/B4H,EAAqB5H,EAAQ83B,UAAW07B,EAAM3+B,SAC9CjtB,EAAqB5H,EAAQyjC,aAAc+vB,EAAMjgD,WAC9B,MAAfigD,EAAMF,QACRlwE,KAAK4mC,QAAQjqB,MAAMmsB,IAAMsnC,EAAMF,MAAQ,KACvClwE,KAAK4mC,QAAQjqB,MAAM+S,KAAO0gD,EAAMD,OAAS,KAE7C,EAIA1B,GAAcpuE,UAAU6F,MAAQ,SAAU41C,GACxC,IAAI97C,KAAKqwE,qBAAsBrwE,KAAKoqE,UAApC,CACA,IAAIzqD,EAAK3f,KAAK2f,GACd,GAAIA,EAAGqkC,oBAAqB,CAC1BhkD,KAAK0uE,UAAY,GACjB,IAAI3vD,EAAUY,EAAGqQ,eACjBhwB,KAAK6uE,SAASnnE,MAAQqX,EAClBY,EAAGV,MAAMu1B,SAAWpuB,EAAYpmB,KAAK6uE,UACrClsD,GAAMC,GAAc,IAAK5iB,KAAK+vB,aAAehR,EACnD,MAAY+8B,IACV97C,KAAK0uE,UAAY1uE,KAAK6uE,SAASnnE,MAAQ,GACnCib,GAAMC,GAAc,IAAK5iB,KAAK+vB,aAAe,MAVK,CAY1D,EAEA0+C,GAAcpuE,UAAUq8D,SAAW,WAAc,OAAO18D,KAAK6uE,QAAS,EAEtEJ,GAAcpuE,UAAUo9D,cAAgB,WAAc,OAAO,CAAM,EAEnEgR,GAAcpuE,UAAU20C,MAAQ,WAC9B,GAAgC,YAA5Bh1C,KAAK2f,GAAG9c,QAAQg5B,YAA4BpY,GAAU0B,KAAenlB,KAAK6uE,UAC5E,IAAM7uE,KAAK6uE,SAAS75B,OACT,CAAX,MAAO9pC,GAAI,CAEf,EAEAujE,GAAcpuE,UAAU0hE,KAAO,WAAc/hE,KAAK6uE,SAAS9M,MAAQ,EAEnE0M,GAAcpuE,UAAU8hE,cAAgB,WACtCniE,KAAK4mC,QAAQjqB,MAAMmsB,IAAM9oC,KAAK4mC,QAAQjqB,MAAM+S,KAAO,CACrD,EAEA++C,GAAcpuE,UAAUi1C,cAAgB,WAAct1C,KAAKswE,UAAY,EAIvE7B,GAAcpuE,UAAUiwE,SAAW,WAC/B,IAAI3iB,EAAS3tD,KAEXA,KAAK2uE,aACT3uE,KAAKmqE,QAAQ1kE,IAAIzF,KAAK2f,GAAG9c,QAAQ2qE,cAAc,WAC7C7f,EAAO2f,OACH3f,EAAOhuC,GAAGV,MAAMu1B,SAAWmZ,EAAO2iB,UACxC,GACF,EAKA7B,GAAcpuE,UAAUsvE,SAAW,WACjC,IAAIY,GAAS,EAAOjvC,EAAQthC,KAE5B,SAASg8B,IACOsF,EAAMgsC,QACHiD,GACXjvC,EAAMqtC,aAAc,EAAOrtC,EAAMgvC,aADbC,GAAS,EAAMjvC,EAAM6oC,QAAQ1kE,IAAI,GAAIu2B,GAEjE,CALAsF,EAAMqtC,aAAc,EAMpBrtC,EAAM6oC,QAAQ1kE,IAAI,GAAIu2B,EACxB,EAQAyyC,GAAcpuE,UAAUitE,KAAO,WAC3B,IAAI3f,EAAS3tD,KAEX2f,EAAK3f,KAAK2f,GAAI2hB,EAAQthC,KAAK6uE,SAAUH,EAAY1uE,KAAK0uE,UAK1D,GAAI1uE,KAAKqwE,qBAAuB1wD,EAAGV,MAAMu1B,SACpCzkB,GAAauR,KAAWotC,IAAc1uE,KAAKoqE,WAC5CzqD,EAAGszC,cAAgBtzC,EAAG9c,QAAQ6iE,cAAgB/lD,EAAGV,MAAMk9C,OACvD,OAAO,EAEX,IAAIp7C,EAAOugB,EAAM55B,MAEjB,GAAIqZ,GAAQ2tD,IAAc/uD,EAAGqkC,oBAAuB,OAAO,EAI3D,GAAIrhC,GAAMC,GAAc,GAAK5iB,KAAK+vB,eAAiBhP,GAC/C2C,GAAO,kBAAkB1Z,KAAK+W,GAEhC,OADApB,EAAG/C,QAAQ0kB,MAAMp7B,SACV,EAGT,GAAIyZ,EAAG0S,IAAIwf,KAAOlyB,EAAG/C,QAAQy4B,kBAAmB,CAC9C,IAAIxjC,EAAQkP,EAAK2I,WAAW,GAE5B,GADa,MAAT7X,GAAoB68D,IAAaA,EAAY,KACpC,MAAT78D,EAAiC,OAAd7R,KAAKkG,QAAgBlG,KAAK2f,GAAGq7C,YAAY,OAClE,CAGA,IADA,IAAIwV,EAAO,EAAGvuE,EAAIiK,KAAKiE,IAAIu+D,EAAU/tE,OAAQogB,EAAKpgB,QAC3C6vE,EAAOvuE,GAAKysE,EAAUhlD,WAAW8mD,IAASzvD,EAAK2I,WAAW8mD,MAAWA,EAgB5E,OAdA5yB,GAAQj+B,GAAI,WACVilD,GAAejlD,EAAIoB,EAAKzgB,MAAMkwE,GAAO9B,EAAU/tE,OAAS6vE,EACzC,KAAM7iB,EAAOyc,UAAY,WAAa,MAGjDrpD,EAAKpgB,OAAS,KAAQogB,EAAKlc,QAAQ,OAAS,EAAKy8B,EAAM55B,MAAQimD,EAAO+gB,UAAY,GAC/E/gB,EAAO+gB,UAAY3tD,EAEtB4sC,EAAOyc,YACTzc,EAAOyc,UAAUjmD,MAAMzb,QACvBilD,EAAOyc,UAAUjmD,MAAQxE,EAAGouC,SAASJ,EAAOyc,UAAUpuD,MAAO2D,EAAGuC,UAAU,MACvC,CAACtN,UAAW,yBAEnD,KACO,CACT,EAEA65D,GAAcpuE,UAAUs7D,aAAe,WACjC37D,KAAK2uE,aAAe3uE,KAAKstE,SAAUttE,KAAK2uE,aAAc,EAC5D,EAEAF,GAAcpuE,UAAU08D,WAAa,WAC/Bp6C,GAAMC,GAAc,IAAK5iB,KAAK+vB,aAAe,MACjD/vB,KAAK2vE,UACP,EAEAlB,GAAcpuE,UAAU09D,cAAgB,SAAU7yD,GAChD,IAAIo2B,EAAQthC,KAAM2f,EAAK2hB,EAAM3hB,GAAI/C,EAAU+C,EAAG/C,QAASqT,EAAKqR,EAAMutC,SAC9DvtC,EAAM+uC,oBAAsB/uC,EAAM+uC,qBACtC,IAAIxuD,EAAM8tB,GAAahwB,EAAIzU,GAAI4rC,EAAYl6B,EAAQorB,SAASqE,UAC5D,GAAKxqB,IAAOoB,EAAZ,CAIYtD,EAAG9c,QAAQ4tE,8BACmB,GAA7B9wD,EAAG0S,IAAIwf,IAAIntC,SAASmd,IAC7B5B,GAAUN,EAAIsC,GAAdhC,CAA4BN,EAAG0S,IAAKiyB,GAAgBziC,GAAMgG,GAE9D,IAII6oD,EAJAC,EAAS1gD,EAAGtT,MAAMiI,QAASgsD,EAAgBtvC,EAAMsF,QAAQjqB,MAAMiI,QAC/DisD,EAAavvC,EAAMsF,QAAQkqC,aAAathD,wBAwD5C,GAvDA8R,EAAMsF,QAAQjqB,MAAMiI,QAAU,mBAC9BqL,EAAGtT,MAAMiI,QAAU,+DAAiE1Z,EAAE8kC,QAAU6gC,EAAW/nC,IAAM,GAAK,cAAgB59B,EAAE6kC,QAAU8gC,EAAWnhD,KAAO,GAAK,0CAA4C/M,EAAK,2BAA6B,eAAiB,oHAEpQE,IAAU6tD,EAAa3wE,OAAOgxE,SAClCn0D,EAAQ0kB,MAAM0T,QACVnyB,GAAU9iB,OAAO0oE,SAAS,KAAMiI,GACpC9zD,EAAQ0kB,MAAMp7B,QAETyZ,EAAGqkC,sBAAuB/zB,EAAGvoB,MAAQ45B,EAAMotC,UAAY,KAC5DptC,EAAM+uC,mBAAqBW,EAC3Bp0D,EAAQy4B,kBAAoB11B,EAAG0S,IAAIwf,IACnCpqB,aAAa7K,EAAQq0D,oBA2CjBtuD,GAAMC,GAAc,GAAKsuD,IACzBltD,EAAmB,CACrBuK,GAAOrjB,GACP,IAAIimE,EAAU,WACZhmE,GAAIpL,OAAQ,UAAWoxE,GACvB5pD,WAAWypD,EAAQ,GACrB,EACAvpE,GAAG1H,OAAQ,UAAWoxE,EACxB,MACE5pD,WAAWypD,EAAQ,GAzEQ,CA0B7B,SAASE,IACP,GAAyB,MAArBjhD,EAAGjJ,eAAwB,CAC7B,IAAIgtC,EAAWr0C,EAAGqkC,oBACdotB,EAAS,KAAYpd,EAAW/jC,EAAGvoB,MAAQ,IAC/CuoB,EAAGvoB,MAAQ,IACXuoB,EAAGvoB,MAAQ0pE,EACX9vC,EAAMotC,UAAY1a,EAAW,GAAK,IAClC/jC,EAAGjJ,eAAiB,EAAGiJ,EAAGhJ,aAAemqD,EAAOzwE,OAGhDic,EAAQy4B,kBAAoB11B,EAAG0S,IAAIwf,GACrC,CACF,CACA,SAASm/B,IACP,GAAI1vC,EAAM+uC,oBAAsBW,IAChC1vC,EAAM+uC,oBAAqB,EAC3B/uC,EAAMsF,QAAQjqB,MAAMiI,QAAUgsD,EAC9B3gD,EAAGtT,MAAMiI,QAAU+rD,EACfhuD,GAAMC,EAAa,GAAKhG,EAAQg8B,WAAWJ,aAAa57B,EAAQorB,SAASqE,UAAYyK,GAGhE,MAArB7mB,EAAGjJ,gBAAwB,GACxBrE,GAAOA,GAAMC,EAAa,IAAMsuD,IACrC,IAAIrxE,EAAI,EAAGytE,EAAO,WACZ1wD,EAAQy4B,mBAAqB11B,EAAG0S,IAAIwf,KAA4B,GAArB5hB,EAAGjJ,gBAC9CiJ,EAAGhJ,aAAe,GAAwB,KAAnBqa,EAAMotC,UAC/BzuD,GAAUN,EAAI8qC,GAAdxqC,CAAyBN,GAChB9f,IAAM,GACf+c,EAAQq0D,mBAAqB1pD,WAAW+lD,EAAM,MAE9C1wD,EAAQy4B,kBAAoB,KAC5Bz4B,EAAQ0kB,MAAMp7B,QAElB,EACA0W,EAAQq0D,mBAAqB1pD,WAAW+lD,EAAM,IAChD,CACF,CAaF,EAEAmB,GAAcpuE,UAAU2hE,gBAAkB,SAAU/7D,GAC7CA,GAAOjG,KAAKkG,QACjBlG,KAAK6uE,SAASwC,SAAkB,YAAPprE,EACzBjG,KAAK6uE,SAAShzC,WAAa51B,CAC7B,EAEAwoE,GAAcpuE,UAAUmhC,cAAgB,WAAa,EAErDitC,GAAcpuE,UAAUkhC,uBAAwB,EAyGhD0/B,GAAcxiD,IAEd4nD,GAAiB5nD,IAGjB,IAAI6yD,GAAe,gDAAgDrnE,MAAM,KACzE,IAAK,IAAIwc,MAAQ4oC,GAAIhvD,UAAiBgvD,GAAIhvD,UAAUqmB,eAAeD,KAAS5hB,EAAQysE,GAAc7qD,IAAQ,IACtGhI,GAAWpe,UAAUomB,IAAQ,SAAUxX,GACvC,OAAO,WAAY,OAAOA,EAAO1O,MAAMP,KAAKqyB,IAAKlxB,UAAU,CAC5D,CAF8B,CAE5BkuD,GAAIhvD,UAAUomB,MAkCnB,OAhCAuH,GAAWqhC,IACX5wC,GAAWikD,YAAc,CAAC,SAAY+L,GAAe,gBAAmB3E,IAKxErrD,GAAWsS,WAAa,SAASpnB,GAC1B8U,GAAW3X,SAASkZ,MAAgB,QAARrW,IAAkB8U,GAAW3X,SAASkZ,KAAOrW,GAC9EonB,GAAWxwB,MAAMP,KAAMmB,UACzB,EAEAsd,GAAWwS,WAAaA,GAGxBxS,GAAWsS,WAAW,QAAQ,WAAc,MAAO,CAAEpP,MAAO,SAAUJ,GAAU,OAAOA,EAAOmT,WAAa,EAAK,IAChHjW,GAAWwS,WAAW,aAAc,QAIpCxS,GAAWc,gBAAkB,SAAU5V,EAAM4nE,GAC3C9yD,GAAWpe,UAAUsJ,GAAQ4nE,CAC/B,EACA9yD,GAAW+yD,mBAAqB,SAAU7nE,EAAM4nE,GAC9CliB,GAAIhvD,UAAUsJ,GAAQ4nE,CACxB,EAEA9yD,GAAWmwD,aAAeA,GAE1BW,GAAe9wD,IAEfA,GAAWgzD,QAAU,SAEdhzD,EAER,CA1nTiFlf,G,gBCN5E,GAMH,SAASkf,GACZ,aAuZE,SAASizD,EAAOzhE,GAEd,IADA,IAAIhP,EAAO,CAAC,EACHpB,EAAI,EAAGA,EAAIoQ,EAAMtP,SAAUd,EAClCoB,EAAKgP,EAAMpQ,GAAGupB,gBAAiB,EAEjC,OAAOnoB,CACT,CA3ZFwd,EAAWsS,WAAW,OAAO,SAAS9Y,EAAQ05D,GAC5C,IAAItyD,EAASsyD,EAAatyD,OACrBsyD,EAAaC,mBAAkBD,EAAelzD,EAAW2S,YAAY,aAE1E,IAiBI5uB,EAAM8qB,EAjBN82C,EAAansD,EAAOmsD,WACpByN,EAAaF,EAAaE,WAC1BC,EAAgBH,EAAaG,eAAiB,CAAC,EAC/CC,EAAaJ,EAAaI,YAAc,CAAC,EACzCC,EAAgBL,EAAaK,eAAiB,CAAC,EAC/CC,EAAqBN,EAAaM,oBAAsB,CAAC,EACzDL,EAAmBD,EAAaC,kBAAoB,CAAC,EACrDM,EAA8BP,EAAaO,6BAA+B,CAAC,EAC3EC,EAAiBR,EAAaQ,gBAAkB,CAAC,EACjDC,EAAqBT,EAAaS,oBAAsB,CAAC,EACzDC,EAAgBV,EAAaU,eAAiB,CAAC,EAC/CC,EAAgBX,EAAaW,eAAiB,CAAC,EAC/CC,EAAcZ,EAAaY,YAC3BC,EAAcb,EAAaa,YAC3BC,GAA2D,IAArCd,EAAac,oBACnCC,GAAuF,IAAhDz6D,EAAOy6D,qCAGlD,SAASC,EAAIh2D,EAAOi2D,GAAiB,OAAXpwE,EAAOowE,EAAWj2D,CAAO,CAInD,SAASk2D,EAAUtxD,EAAQtC,GACzB,IAAImB,EAAKmB,EAAOpO,OAChB,GAAI0+D,EAAWzxD,GAAK,CAClB,IAAIlT,EAAS2kE,EAAWzxD,GAAImB,EAAQtC,GACpC,IAAe,IAAX/R,EAAkB,OAAOA,CAC/B,CACA,MAAU,KAANkT,GACFmB,EAAOiT,SAAS,YACTm+C,EAAI,MAAOpxD,EAAOtT,YACV,KAANmS,IAAoB,KAANA,GAAmB,KAANA,IAAcmB,EAAOgT,IAAI,KACtDo+C,EAAI,KAAM,WACF,MAANvyD,GAAoB,KAANA,GACvBnB,EAAM6zD,SAAWC,EAAY3yD,GACtBnB,EAAM6zD,SAASvxD,EAAQtC,IACf,KAANmB,GACTmB,EAAOiT,SAAS,YACTm+C,EAAI,OAAQ,SACJ,KAANvyD,GACTmB,EAAOlN,MAAM,WACNs+D,EAAI,UAAW,cACb,KAAK3oE,KAAKoW,IAAa,KAANA,GAAamB,EAAOgT,IAAI,OAClDhT,EAAOiT,SAAS,UACTm+C,EAAI,SAAU,SACL,MAAPvyD,EAYA,WAAWpW,KAAKoW,GAClBuyD,EAAI,KAAM,aACF,KAANvyD,GAAamB,EAAOlN,MAAM,yBAC5Bs+D,EAAI,YAAa,aACf,iBAAiB3oE,KAAKoW,GACxBuyD,EAAI,KAAMvyD,GACRmB,EAAOlN,MAAM,mBAClB,mCAAmCrK,KAAKuX,EAAOtT,aACjDgR,EAAM6zD,SAAWE,GAEZL,EAAI,kBAAmB,aACrB,WAAW3oE,KAAKoW,IACzBmB,EAAOiT,SAAS,YACTm+C,EAAI,WAAY,SAEhBA,EAAI,KAAM,MA1Bb,QAAQ3oE,KAAKuX,EAAO+S,SACtB/S,EAAOiT,SAAS,UACTm+C,EAAI,SAAU,SACZpxD,EAAOlN,MAAM,gBACtBkN,EAAOiT,SAAS,YACZjT,EAAOlN,MAAM,SAAS,GACjBs+D,EAAI,aAAc,uBACpBA,EAAI,aAAc,aAChBpxD,EAAOlN,MAAM,SACfs+D,EAAI,OAAQ,aADd,CAoBX,CAEA,SAASI,EAAYE,GACnB,OAAO,SAAS1xD,EAAQtC,GAEtB,IADA,IAAqBmB,EAAjB8yD,GAAU,EACiB,OAAvB9yD,EAAKmB,EAAOpO,SAAiB,CACnC,GAAIiN,GAAM6yD,IAAUC,EAAS,CACd,KAATD,GAAc1xD,EAAOqT,OAAO,GAChC,KACF,CACAs+C,GAAWA,GAAiB,MAAN9yD,CACxB,CAEA,OADIA,GAAM6yD,IAAUC,GAAoB,KAATD,KAAch0D,EAAM6zD,SAAW,MACvDH,EAAI,SAAU,SACvB,CACF,CAEA,SAASK,EAAmBzxD,EAAQtC,GAMlC,OALAsC,EAAOpO,OACFoO,EAAOlN,MAAM,eAAe,GAG/B4K,EAAM6zD,SAAW,KAFjB7zD,EAAM6zD,SAAWC,EAAY,KAGxBJ,EAAI,KAAM,IACnB,CAIA,SAASn9C,EAAQhzB,EAAMyhE,EAAQ/1D,GAC7BlO,KAAKwC,KAAOA,EACZxC,KAAKikE,OAASA,EACdjkE,KAAKkO,KAAOA,CACd,CAEA,SAASilE,EAAYl0D,EAAOsC,EAAQ/e,EAAMyhE,GAExC,OADAhlD,EAAMlV,QAAU,IAAIyrB,EAAQhzB,EAAM+e,EAAOuT,gBAA4B,IAAXmvC,EAAmB,EAAIG,GAAanlD,EAAMlV,SAC7FvH,CACT,CAEA,SAAS4wE,EAAWn0D,GAGlB,OAFIA,EAAMlV,QAAQmE,OAChB+Q,EAAMlV,QAAUkV,EAAMlV,QAAQmE,MACzB+Q,EAAMlV,QAAQvH,IACvB,CAEA,SAAS6wE,EAAK7wE,EAAM+e,EAAQtC,GAC1B,OAAOq0D,EAAOr0D,EAAMlV,QAAQvH,MAAMA,EAAM+e,EAAQtC,EAClD,CACA,SAASs0D,EAAW/wE,EAAM+e,EAAQtC,EAAO6H,GACvC,IAAK,IAAIjnB,EAAIinB,GAAK,EAAGjnB,EAAI,EAAGA,IAC1Bof,EAAMlV,QAAUkV,EAAMlV,QAAQmE,KAChC,OAAOmlE,EAAK7wE,EAAM+e,EAAQtC,EAC5B,CAIA,SAASu0D,EAAYjyD,GACnB,IAAI4hD,EAAO5hD,EAAOtT,UAAUmb,cAE1BkE,EADEglD,EAAc5rD,eAAey8C,GACpB,OACJkP,EAAc3rD,eAAey8C,GACzB,UAEA,UACf,CAEA,IAAImQ,EAAS,CAEbA,IAAa,SAAS9wE,EAAM+e,EAAQtC,GAClC,GAAY,KAARzc,EACF,OAAO2wE,EAAYl0D,EAAOsC,EAAQ,SAC7B,GAAY,KAAR/e,GAAeyc,EAAMlV,QAAQmE,KACtC,OAAOklE,EAAWn0D,GACb,GAAIwzD,GAAuB,cAAczoE,KAAKxH,GACnD,OAAO2wE,EAAYl0D,EAAOsC,EAAQ,oBAC7B,GAAI,uBAAuBvX,KAAKxH,GACrC,OAAO2wE,EAAYl0D,EAAOsC,EAAQ,iBAC7B,GAAI,+CAA+CvX,KAAKxH,GAC7D,OAAO2wE,EAAYl0D,EAAOsC,EAAQ,WAC7B,GAAI,+BAA+BvX,KAAKxH,GAE7C,OADAyc,EAAMw0D,SAAWjxE,EACV,4BACF,GAAI,sCAAsCwH,KAAKxH,GACpD,MAAO,YACF,GAAIA,GAA0B,KAAlBA,EAAKoZ,OAAO,GAC7B,OAAOu3D,EAAYl0D,EAAOsC,EAAQ,MAC7B,GAAY,QAAR/e,EACT8qB,EAAW,eACN,GAAY,QAAR9qB,EACT8qB,EAAW,UACN,IAAY,uBAAR9qB,EACT,MAAO,YACF,GAAY,iBAARA,EACT,OAAO2wE,EAAYl0D,EAAOsC,EAAQ,iBAC7B,GAAY,KAAR/e,EACT,MAAO,SACF,GAAI+vE,GAAuB,KAAR/vE,EACxB,OAAO2wE,EAAYl0D,EAAOsC,EAAQ,SACpC,CACA,OAAOtC,EAAMlV,QAAQvH,IACvB,EAEA8wE,MAAe,SAAS9wE,EAAM+e,EAAQtC,GACpC,GAAY,QAARzc,EAAgB,CAClB,IAAI2gE,EAAO5hD,EAAOtT,UAAUmb,cAC5B,OAAIwoD,EAAiBlrD,eAAey8C,IAClC71C,EAAW,WACJ,aACE4kD,EAA4BxrD,eAAey8C,IACpD71C,EAAWolD,EAAuC,WAAa,WACxD,aACEH,GACTjlD,EAAW/L,EAAOlN,MAAM,iBAAiB,GAAS,WAAa,MACxD,UAEPiZ,GAAY,SACL,YAEX,CAAO,MAAY,QAAR9qB,EACF,QACG+vE,GAAwB,QAAR/vE,GAA0B,aAARA,EAIrC8wE,EAAOxqC,IAAItmC,EAAM+e,EAAQtC,IAHhCqO,EAAW,QACJ,QAIX,EAEAgmD,UAAmB,SAAS9wE,EAAM+e,EAAQtC,GACxC,MAAY,KAARzc,EAAoB2wE,EAAYl0D,EAAOsC,EAAQ,QAC5C8xD,EAAK7wE,EAAM+e,EAAQtC,EAC5B,EAEAq0D,KAAc,SAAS9wE,EAAM+e,EAAQtC,GACnC,GAAY,KAARzc,EAAa,OAAO4wE,EAAWn0D,GACnC,GAAY,KAARzc,GAAe+vE,EAAa,OAAOY,EAAYl0D,EAAOsC,EAAQ,aAClE,GAAY,KAAR/e,GAAuB,KAARA,EAAa,OAAO+wE,EAAW/wE,EAAM+e,EAAQtC,GAChE,GAAY,KAARzc,EAAa,OAAO2wE,EAAYl0D,EAAOsC,EAAQ,UAEnD,GAAY,QAAR/e,GAAmB,sDAAsDwH,KAAKuX,EAAOtT,YAElF,GAAY,QAARzL,EACTgxE,EAAYjyD,QACP,GAAY,iBAAR/e,EACT,OAAO2wE,EAAYl0D,EAAOsC,EAAQ,sBAJlC+L,GAAY,SAMd,MAAO,MACT,EAEAgmD,UAAmB,SAAS9wE,EAAMkxE,EAASz0D,GACzC,MAAY,KAARzc,EAAoB4wE,EAAWn0D,GACvB,QAARzc,GAAkB8qB,EAAW,WAAmB,aAC7CrO,EAAMlV,QAAQvH,IACvB,EAEA8wE,OAAgB,SAAS9wE,EAAM+e,EAAQtC,GACrC,MAAY,KAARzc,GAAuB,KAARA,EAAoB+wE,EAAW/wE,EAAM+e,EAAQtC,GACpD,KAARzc,EAAoB4wE,EAAWn0D,GACvB,KAARzc,EAAoB2wE,EAAYl0D,EAAOsC,EAAQ,UACvC,iBAAR/e,EAAgC2wE,EAAYl0D,EAAOsC,EAAQ,kBACnD,QAAR/e,GAAgBgxE,EAAYjyD,GACzB,SACT,EAEA+xD,OAAgB,SAAS9wE,EAAM+e,EAAQtC,GACrC,MAAY,QAARzc,EAAuB,SAEf,QAARA,GACF8qB,EAAW,aACJrO,EAAMlV,QAAQvH,MAEhB6wE,EAAK7wE,EAAM+e,EAAQtC,EAC5B,EAEAq0D,cAAuB,SAAS9wE,EAAM+e,EAAQtC,GAC5C,MAAY,QAARzc,GAAkBsvE,EAAcprD,eAAenF,EAAOtT,YACxDqf,EAAW,MACJrO,EAAMlV,QAAQvH,MAEd8wE,EAAOK,QAAQnxE,EAAM+e,EAAQtC,EAExC,EAEAq0D,QAAiB,SAAS9wE,EAAM+e,EAAQtC,GACtC,GAAY,KAARzc,EAAa,OAAO2wE,EAAYl0D,EAAOsC,EAAQ,kBACnD,GAAY,KAAR/e,GAAuB,KAARA,EAAa,OAAO+wE,EAAW/wE,EAAM+e,EAAQtC,GAChE,GAAY,KAARzc,EAAa,OAAO4wE,EAAWn0D,IAAUk0D,EAAYl0D,EAAOsC,EAAQgxD,EAAc,QAAU,OAEhG,GAAY,iBAAR/vE,EAAyB,OAAO2wE,EAAYl0D,EAAOsC,EAAQ,iBAE/D,GAAY,QAAR/e,EAAgB,CAClB,IAAI2gE,EAAO5hD,EAAOtT,UAAUmb,cAE1BkE,EADU,QAAR61C,GAA0B,OAARA,GAAyB,OAARA,GAAyB,MAARA,EAC3C,UACJ4O,EAAWrrD,eAAey8C,GACtB,YACJ6O,EAActrD,eAAey8C,GACzB,WACJ8O,EAAmBvrD,eAAey8C,GAC9B,UACJyO,EAAiBlrD,eAAey8C,GAC5B,WACJ+O,EAA4BxrD,eAAey8C,GACvCuP,EAAuC,WAAa,WACxDJ,EAAc5rD,eAAey8C,GACzB,OACJkP,EAAc3rD,eAAey8C,GACzB,UAEA,OACf,CACA,OAAOlkD,EAAMlV,QAAQvH,IACvB,EAEA8wE,iBAA0B,SAAS9wE,EAAM+e,EAAQtC,GAC/C,MAAY,KAARzc,EACK+wE,EAAW/wE,EAAM+e,EAAQtC,GACtB,KAARzc,EACK4wE,EAAWn0D,IAAUk0D,EAAYl0D,EAAOsC,EAAQgxD,EAAc,QAAU,OAAO,IAC5E,QAAR/vE,IACF8qB,EAAW,SACNrO,EAAMlV,QAAQvH,KACvB,EAEA8wE,eAAwB,SAAS9wE,EAAM+e,EAAQtC,GAC7C,MAAY,KAARzc,EAAoB4wE,EAAWn0D,GACvB,KAARzc,GAAuB,KAARA,EAAoB+wE,EAAW/wE,EAAM+e,EAAQtC,EAAO,GAChEq0D,EAAOK,QAAQnxE,EAAM+e,EAAQtC,EACtC,EAEAq0D,0BAAmC,SAAS9wE,EAAM+e,EAAQtC,GACxD,MAAY,KAARzc,EACK2wE,EAAYl0D,EAAOsC,EAAQ,sBACxB,QAAR/e,GAAoC,kBAAlByc,EAAMw0D,UAC1BnmD,EAAW,WACJ,6BAEF+lD,EAAK7wE,EAAM+e,EAAQtC,EAC5B,EAEAq0D,mBAA4B,SAAS9wE,EAAM+e,EAAQtC,GACjD,MAAY,KAARzc,GACFyc,EAAMw0D,SAAW,KACVL,EAAWn0D,IAER,QAARzc,GAGA8qB,EAFqB,cAAlBrO,EAAMw0D,WAA6BtB,EAAezrD,eAAenF,EAAOtT,UAAUmb,gBAChE,kBAAlBnK,EAAMw0D,WAAiCrB,EAAmB1rD,eAAenF,EAAOtT,UAAUmb,eAClF,QAEA,WACN,aAEF,oBACT,EAEAkqD,UAAmB,SAAS9wE,EAAM+e,EAAQtC,GACxC,MAAY,QAARzc,GAAkB8qB,EAAW,WAAmB,aACxC,KAAR9qB,EAAoB2wE,EAAYl0D,EAAOsC,EAAQ,OAC5C8xD,EAAK7wE,EAAM+e,EAAQtC,EAC5B,EAEAq0D,GAAY,SAAS9wE,EAAM+e,EAAQtC,GACjC,MAAY,KAARzc,EAAoB4wE,EAAWn0D,GACvB,KAARzc,GAAuB,KAARA,EAAoB+wE,EAAW/wE,EAAM+e,EAAQtC,IACpD,QAARzc,EAAgB8qB,EAAW,MACd,QAAR9qB,IAAgB8qB,EAAW,WAC7B,KACT,EAEAgmD,cAAuB,SAAS9wE,EAAM+e,EAAQtC,GAC5C,MAAY,KAARzc,EAAoB4wE,EAAWn0D,GACvB,KAARzc,GAAuB,KAARA,EAAoB+wE,EAAW/wE,EAAM+e,EAAQtC,IACpD,QAARzc,EAAgB8qB,EAAW,WACd,YAAR9qB,GAA8B,KAARA,GAAuB,KAARA,IAAa8qB,EAAW,SAC/D,gBACT,GAEA,MAAO,CACLyE,WAAY,SAASxiB,GACnB,MAAO,CAACujE,SAAU,KACV7zD,MAAOI,EAAS,QAAU,MAC1Bo0D,SAAU,KACV1pE,QAAS,IAAIyrB,EAAQnW,EAAS,QAAU,MAAO9P,GAAQ,EAAG,MACpE,EAEAoS,MAAO,SAASJ,EAAQtC,GACtB,IAAKA,EAAM6zD,UAAYvxD,EAAOkT,WAAY,OAAO,KACjD,IAAI9X,GAASsC,EAAM6zD,UAAYD,GAAWtxD,EAAQtC,GAQlD,OAPItC,GAAyB,iBAATA,IAClBna,EAAOma,EAAM,GACbA,EAAQA,EAAM,IAEhB2Q,EAAW3Q,EACC,WAARna,IACFyc,EAAMA,MAAQq0D,EAAOr0D,EAAMA,OAAOzc,EAAM+e,EAAQtC,IAC3CqO,CACT,EAEA22C,OAAQ,SAAShlD,EAAOD,GACtB,IAAI40D,EAAK30D,EAAMlV,QAASqW,EAAKpB,GAAaA,EAAUpD,OAAO,GACvDqoD,EAAS2P,EAAG3P,OAchB,MAbe,QAAX2P,EAAGpxE,MAAyB,KAAN4d,GAAmB,KAANA,IAAYwzD,EAAKA,EAAG1lE,MACvD0lE,EAAG1lE,OACK,KAANkS,GAAyB,SAAXwzD,EAAGpxE,MAA8B,OAAXoxE,EAAGpxE,MACd,iBAAXoxE,EAAGpxE,MAAsC,sBAAXoxE,EAAGpxE,MAIlC,KAAN4d,GAAyB,UAAXwzD,EAAGpxE,MAA+B,kBAAXoxE,EAAGpxE,QACzC,KAAN4d,GAAyB,MAAXwzD,EAAGpxE,MAA2B,WAAXoxE,EAAGpxE,QAEtCyhE,EAAS/3D,KAAKC,IAAI,EAAGynE,EAAG3P,OAASG,IAJjCH,GADA2P,EAAKA,EAAG1lE,MACI+1D,QAOTA,CACT,EAEA0B,cAAe,IACfkO,kBAAmB,KACnBC,gBAAiB,KACjBC,qBAAsB,MACtBvB,YAAaA,EACbwB,KAAM,QAEV,IAUE,IAAIC,EAAiB,CACnB,SAAU,SAAU,MAAO,cAC1BnC,EAAgBJ,EAAOuC,GAEtBC,EAAc,CAChB,MAAO,QAAS,UAAW,WAAY,QAAS,aAAc,SAC9D,MAAO,KAAM,YACZnC,EAAaL,EAAOwC,GAEnBC,EAAiB,CACnB,QAAS,YAAa,YAAa,SAAU,aAAc,aAC3D,eAAgB,mBAAoB,mBAAoB,gBACxD,oBAAqB,oBAAqB,eAC1C,mBAAoB,mBAAoB,sBACxC,0BAA2B,0BAA2B,QAAS,YAC/D,YAAa,cAAe,kBAAmB,kBAC/C,aAAc,iBAAkB,iBAAkB,aAClD,iBAAkB,iBAAkB,OAAQ,OAAQ,cACpD,qBAAsB,yBAA0B,yBAChD,UAAW,cAAe,QAAS,YAAa,uBAChD,gBAAiB,uBAChBnC,EAAgBN,EAAOyC,GAEtBC,EAAsB,CACxB,YAAa,WAAY,OAAQ,SAAU,OAAQ,YAAa,QAChE,YAAa,cACb,OAAQ,QACR,WAAY,QACXnC,EAAqBP,EAAO0C,GAE3BC,EAAoB,CACtB,gBAAiB,cAAe,aAAc,mBAC9C,qBAAsB,MAAO,eAAgB,YAAa,kBAC1D,sBAAuB,qBAAsB,sBAC7C,4BAA6B,iBAAkB,uBAC/C,4BAA6B,aAAc,UAAW,kBACtD,sBAAuB,aAAc,wBACrC,wBAAyB,kBAAmB,mBAC5C,mBAAoB,oBAAqB,sBACzC,wBAAyB,wBAAyB,oBAClD,kBAAmB,iBAAkB,UAAW,QAAS,aACzD,iBAAkB,iBAAkB,iBAAkB,kBACtD,SAAU,gBAAiB,sBAAuB,4BAClD,6BAA8B,sBAAuB,sBACrD,kBAAmB,eAAgB,eAAgB,sBACnD,sBAAuB,qBAAsB,sBAC7C,qBAAsB,cAAe,oBAAqB,oBAC1D,oBAAqB,gBAAiB,eAAgB,qBACtD,qBAAsB,qBAAsB,iBAAkB,eAC9D,aAAc,mBAAoB,yBAClC,0BAA2B,mBAAoB,mBAC/C,eAAgB,SAAU,uBAAwB,aAAc,aAChE,cAAe,eAAgB,eAAgB,eAAgB,cAC/D,QAAS,OAAQ,QAAS,gBAAiB,eAAgB,cAC3D,aAAc,cAAe,oBAAqB,oBAClD,oBAAqB,cAAe,eAAgB,UAAW,UAC/D,UAAW,oBAAqB,gBAAiB,OAAQ,MAAO,YAChE,aAAc,SAAU,YAAa,UAAW,oBAChD,4BAA6B,2BAC7B,6BAA8B,4BAA6B,oBAC3D,qBAAsB,YAAa,cAAe,MAAO,cAAe,eACxE,OAAQ,aAAc,iBAAkB,YAAa,YACrD,cAAe,YAAa,QAAS,eAAgB,YAAa,YAClE,OAAQ,cAAe,wBAAyB,eAChD,yBAA0B,sBAAuB,YACjD,mBAAoB,eAAgB,aAAc,iBAClD,eAAgB,0BAA2B,oBAC3C,0BAA2B,yBAA0B,uBACrD,wBAAyB,0BAA2B,cAAe,MACnE,OAAQ,YAAa,oBAAqB,iBAAkB,iBAC5D,cAAe,kBAAmB,kBAAmB,oBACrD,WAAY,WAAY,eAAgB,eAAgB,iBACxD,gBAAiB,sBAAuB,wBACxC,qBAAsB,sBAAuB,SAAU,UAAW,OAClE,oBAAqB,kBAAmB,mBAAoB,mBAC5D,QAAS,cAAe,kBAAmB,oBAAqB,eAChE,mBAAoB,qBAAsB,YAAa,kBACvD,gBAAiB,eAAgB,OAAQ,iBAAkB,aAC3D,cAAe,mBAAoB,gBAAiB,qBACpD,sBAAuB,yBAA0B,aACjD,mBAAoB,sBAAuB,kBAAmB,SAC9D,gBAAiB,cAAe,eAAgB,aAAc,QAC9D,oBAAqB,eAAgB,qBAAsB,gBAC3D,gBAAiB,YAAa,iBAAkB,aAAc,YAC9D,cAAe,gBAAiB,cAAe,YAAY,YAC3D,iBAAkB,aAAc,kBAChC,YAAa,iBAAkB,aAAc,kBAAmB,YAChE,iBAAkB,UAAW,WAAY,YAAa,WAAY,YAClE,SAAU,aAAc,kBAAmB,SAAU,gBACrD,kBAAmB,cAAe,kBAAmB,gBACrD,UAAW,QAAS,UAAW,UAAW,gBAAiB,iBAC3D,gBAAiB,gBAAiB,WAAY,iBAC9C,gBAAiB,aAAc,aAAc,UAAW,iBACxD,eAAgB,gBAAiB,cAAe,OAAQ,mBACxD,oBAAqB,oBAAqB,cAAe,QACzD,cAAe,eAAgB,cAAe,qBAAsB,QACpE,cAAe,gBAAiB,cAAe,aAAc,cAC7D,WAAY,qBAAsB,mBAAoB,SACtD,qBAAsB,sBAAuB,sBAC7C,kBAAmB,mBAAoB,SAAU,OAAQ,aACzD,cAAe,WAAY,QAAS,SAAU,WAAY,iBAC1D,UAAW,aAAc,gBAAiB,gBAAiB,YAC3D,QAAS,kBAAmB,gBAAiB,sBAC7C,0BAA2B,4BAA6B,uBACxD,uBAAwB,2BACxB,6BAA8B,qBAAsB,sBACpD,oBAAqB,iBAAkB,uBACvC,2BAA4B,6BAC5B,wBAAyB,wBAAyB,4BAClD,8BAA+B,sBAAuB,uBACtD,qBAAsB,oBAAqB,mBAC3C,wBAAyB,eAAgB,eAAgB,gBACzD,OAAQ,QAAS,WAAY,eAAgB,gBAC7C,oBAAqB,cAAe,SAAU,aAAc,WAC5D,eAAgB,SAAU,cAAe,aAAc,kBACvD,aAAc,kBAAmB,uBAAwB,kBACzD,wBAAyB,uBAAwB,uBACjD,2BAA4B,wBAAyB,gBACrD,sBAAuB,yBAA0B,sBACjD,cAAe,cAAe,eAAgB,mBAC9C,eAAgB,gBAAiB,iBAAkB,cACnD,mBAAoB,sBAAuB,iBAC3C,0BAA2B,YAAa,MAAO,eAAgB,YAAa,mBAC5E,kBAAmB,aAAc,mBAAoB,sBACrD,sBAAuB,6BAA8B,YACrD,eAAgB,cAAe,iBAAkB,aAAc,gBAC/D,iBAAkB,eAAgB,cAAe,cAAe,aAChE,eAAgB,eAAgB,SAAU,cAAe,SAAU,QACnE,cAAe,aAAc,eAAgB,YAAa,eAAgB,UAE1E,YAAa,YAAa,OAAQ,oBAAqB,SAAU,cACjE,gBAAiB,iBAAkB,aAAc,eAAgB,iBACjE,sBAAuB,8BACvB,kBAAmB,OAAQ,eAAgB,YAAa,kBACxD,SAAU,aAAc,aAAc,eAAgB,cAAe,kBAAmB,SACxF,mBAAoB,oBAAqB,iBAAkB,kBAC3D,oBAAqB,iBAAkB,eAAgB,iBACvD,iBAAkB,oBAAqB,+BACvC,6BAA8B,cAAe,gBAC5CzC,EAAmBF,EAAO2C,GAEzBC,EAA+B,CACjC,eAAgB,eAAgB,eAAgB,qBAAsB,mBACtE,yBAA0B,yBAA0B,yBACpD,qBAAsB,2BAA4B,2BAClD,2BAA4B,qBAAsB,qBAClD,gBAAiB,sBAAuB,oBACxC,0BAA2B,0BAC3B,0BAA2B,sBAAuB,4BAClD,4BAA6B,4BAC7B,sBAAuB,sBAAuB,qBAAsB,eACpE,mBAAoB,qBAAsB,gBAAiB,oBAC3D,sBAAuB,kBAAmB,sBAAuB,gBAAiB,oBAClF,sBAAuB,iBAAkB,qBACzC,uBAAwB,mBAAoB,2BAC5C,wBAAyB,uBAAwB,8BACjD,uBAAwB,4BAA6B,yBACrD,wBAAyB,4BAA6B,yBACtD,6BAA8B,iCAAkC,eAAgB,QAC/EpC,EAA8BR,EAAO4C,GAKrCnC,EAAiBT,EAHE,CACpB,eAAgB,cAAe,MAAO,gBAAiB,eACtD,wBAAyB,eAAgB,cAAe,eAMxDU,EAAqBV,EAHE,CACxB,mBAAoB,WAAY,WAAY,MAAO,SAAU,QAC7D,WAAY,SAAU,UAAW,WAG/B6C,EAAiB,CACnB,YAAa,eAAgB,OAAQ,aAAc,QAAS,QAC5D,SAAU,QAAS,iBAAkB,OAAQ,aAAc,QAC3D,YAAa,YAAa,aAAc,YAAa,QAAS,iBAC9D,WAAY,UAAW,OAAQ,WAAY,WAAY,gBACvD,WAAY,YAAa,WAAY,YAAa,cAAe,iBACjE,aAAc,aAAc,UAAW,aAAc,eACrD,gBAAiB,gBAAiB,gBAAiB,gBAAiB,aACpE,WAAY,cAAe,UAAW,UAAW,aAAc,YAC/D,cAAe,cAAe,UAAW,YAAa,aACtD,OAAQ,YAAa,OAAQ,OAAQ,QAAS,cAAe,WAC7D,UAAW,YAAa,SAAU,QAAS,QAAS,WACpD,gBAAiB,YAAa,eAAgB,YAAa,aAC3D,YAAa,uBAAwB,YAAa,aAAc,YAAa,YAC7E,cAAe,gBAAiB,eAAgB,iBAAkB,iBAClE,iBAAkB,cAAe,OAAQ,YAAa,QAAS,UAC/D,SAAU,mBAAoB,aAAc,eAAgB,eAC5D,iBAAkB,kBAAmB,oBAAqB,kBAC1D,kBAAmB,eAAgB,YAAa,YAAa,WAC7D,cAAe,OAAQ,UAAW,QAAS,YAAa,SAAU,YAClE,SAAU,gBAAiB,YAAa,gBAAiB,gBACzD,aAAc,YAAa,OAAQ,OAAQ,OAAQ,aACnD,SAAU,gBAAiB,MAAO,YAAa,YAAa,cAC5D,SAAU,aAAc,WAAY,WAAY,SAAU,SAAU,UACpE,YAAa,YAAa,YAAa,OAAQ,cAAe,YAAa,MAC3E,OAAQ,UAAW,SAAU,YAAa,SAAU,QAAS,QAC7D,aAAc,SAAU,eACvBlC,EAAgBX,EAAO6C,GAEtBC,EAAiB,CACnB,QAAS,WAAY,eAAgB,WAAY,gBAAiB,OAClE,oBAAqB,QAAS,QAAS,MAAO,aAAc,aAAc,YAC1E,SAAU,UAAW,kBAAmB,cAAe,eACvD,eAAgB,WAAY,YAAa,OAAQ,OAAQ,YAAa,QAAS,eAAgB,aAC/F,eAAgB,WAAY,aAAc,YAAa,WAAY,QAAS,gBAAiB,SAC7F,UAAW,QAAS,QAAS,aAAc,OAAQ,OAAQ,SAAU,SAAU,aAC/E,OAAQ,SAAU,QAAS,YAAa,aAAc,aAAc,UAAW,SAC/E,aAAc,kBAAmB,eAAgB,aAAc,OAAQ,YACvE,aAAc,sBAAuB,UAAW,cAAe,QAC/D,OAAQ,SAAU,WAAY,SAAU,cAAe,qBACvD,oBAAqB,kBAAmB,QAAS,OAAQ,cACzD,aAAc,WAAY,QAAS,aAAc,cAAe,SAAU,iBAC1E,UAAW,YAAa,iBAAkB,UAAW,UAAW,WAChE,cAAe,eAAgB,aAAc,WAAY,OAAQ,UAAW,WAAY,QAAS,OACjG,QAAS,YAAa,eAAgB,eAAgB,UAAW,SAAU,SAAU,SAAU,UAC/F,uBAAwB,UAAW,iBAAkB,QAAS,mBAC9D,iBAAkB,kBAAmB,mBAAoB,aAAc,aACvE,OAAQ,UAAW,oBAAqB,kBAAmB,WAC3D,WAAY,eACZ,SAAU,SAAU,OAAQ,cAAe,WAAY,OAAQ,UAAW,cAAe,WACzF,UAAW,UAAW,WAAY,QAAS,MAAO,WAAY,mBAC9D,yBAA0B,uBAAwB,yBAClD,yBAA0B,0BAC1B,0BAA2B,0BAC3B,wBAAyB,0BACzB,2BAA4B,0BAC5B,0BAA2B,0BAA2B,wBACtD,mBAAoB,YAAa,YAAa,WAAY,UAAW,kBACrE,iBAAkB,UAAW,OAAQ,OAAQ,WAAY,QAAS,OAAQ,OAAQ,WAAY,aAAc,YAC5G,WAAY,OAAQ,qBAAsB,WAAY,YAAa,WAAY,OAAQ,SACvF,WAAY,WAAY,OAAQ,SAAU,mBAAoB,aAAc,SAC5E,OAAQ,SAAU,OAAQ,SAAU,YAAa,gBACjD,WAAY,iBAAkB,aAAc,MAAO,OAAQ,MAAO,aAAc,OAAQ,SACxF,iBAAkB,kBAAmB,sBAAuB,WAC5D,iBAAkB,WAAY,UAAW,UAAW,SAAU,cAC9D,eAAgB,cAAe,cAAe,eAAgB,QAAS,SAAU,YAAa,SAC9F,SAAU,kBAAmB,oBAAqB,UAAW,UAC7D,WAAY,iBAAkB,WAAY,QAC1C,uBAAwB,sBAAuB,wBAC/C,YAAa,MAAO,QAAS,SAAU,OAAQ,QAAS,UAAW,UACnE,eAAgB,SAAU,kBAAmB,QAAS,YAAa,UAAW,WAC9E,QAAS,UAAW,OAAQ,QAAS,cAAe,iBACpD,cAAe,oBAAqB,cAAe,kBACnD,cAAe,YAAa,MAAO,aAAc,YAAa,eAAgB,QAAS,SAAU,WACjG,oBAAqB,eAAgB,oBACrC,sBAAuB,2BAA4B,SACnD,OAAQ,WAAY,kBACpB,WAAY,cAAe,SAAU,gBACrC,MAAO,YAAa,YAAa,OAAQ,WAAY,uBAAwB,WAAY,UAAW,WACpG,WAAY,YAAa,cAAe,iBAAkB,UAC1D,gBAAiB,YAAa,OAAQ,SAAU,cAAe,SAC/D,YAAa,UAAW,UAAW,YAAa,cAAe,UAAW,QAAS,UAAW,aAC9F,qBAAsB,gBAAiB,QAAS,QAAS,SACzD,UAAW,gBAAiB,UAAW,WAAY,UAAW,cAC9D,UAAW,OAAQ,SAAU,UAAW,cAAe,aAAc,cAAe,eACpF,UAAW,UAAW,WAAY,MAAO,WAAY,WAAY,cACjE,WAAY,cAAe,kBAAmB,QAAS,YACvD,aAAc,4BAA6B,YAAa,SACxD,WAAY,SAAU,4BAA6B,4BACnD,2BAA4B,WAAY,WAAY,QAAS,UAC7D,MAAO,OAAQ,QAAS,QAAS,SAAU,WAAY,UAAW,UAClE,UAAW,QAAS,MAAO,aAAc,cAAe,MAAO,SAAU,UACzE,WAAY,aAAc,WAAY,aAAc,QAAS,UAAW,SAAU,SAAU,SAAU,SACtG,SAAU,YAAa,kBAAmB,YAAa,cACvD,4BAA6B,yBAC7B,6BAA8B,iCAAkC,aAAc,WAC9E,iBAAkB,gBAAiB,WAAY,QAAS,QAAS,OAAQ,SACzE,sBAAuB,wBAAyB,SAChD,OAAQ,QAAS,QAAS,mBAAoB,QAAS,oBACvD,kBAAmB,yBAA0B,uBAAwB,OACrE,QAAS,aAAc,gBAAiB,UAAW,aAAc,QAAS,SAC1E,cAAe,YAAa,aAAc,cAAe,QAAS,eAAgB,gBAAiB,eAAgB,YAAa,SAChI,gBAAiB,QAAS,SAAU,aAAc,UAAW,SAAU,aAAc,MACrF,uBAAwB,YAAa,QAAS,YAAa,WAAY,UAAW,YAAa,QAC/F,gBAAiB,aAAc,eAAgB,qBAC/C,qBAAsB,qBAAsB,YAAa,kBACzD,QACA,SAAU,OAAQ,cAAe,WAAY,WAAY,YAAa,OACtE,QAAS,OAAQ,mBAAoB,aAAc,kBACnD,oBAAqB,eAAgB,UAAW,QAAS,cACzD,sBAAuB,cAAe,sBAAuB,KAAM,MACnE,sBAAuB,wBAAyB,YAChD,YAAa,cAAe,aAAc,aAAc,aACxD,cAAe,kBAAmB,iBAAkB,YAAa,qBAAsB,QAAS,KAChG,cAAe,iBAAkB,cAAe,oBAChD,cAAe,kBAAmB,cAAe,YAAa,OAAQ,MACtE,MAAO,WAAY,gBAAiB,WAAY,UAAW,cAAe,iBAC1E,gBAAiB,SAAU,WAAY,OAAQ,OAAQ,QACvD,SAAU,cAAe,aAAc,QAAS,OAAQ,eAAgB,UAAW,UAAW,MAC9F,WAAY,YACXlC,EAAgBZ,EAAO8C,GAEtBC,EAAWR,EAAelvE,OAAOmvE,GAAanvE,OAAOovE,GAAgBpvE,OAAOqvE,GAC7ErvE,OAAOsvE,GAAmBtvE,OAAOuvE,GAA8BvvE,OAAOwvE,GACtExvE,OAAOyvE,GAGV,SAASE,EAAcnzD,EAAQtC,GAE7B,IADA,IAAsBmB,EAAlBu0D,GAAW,EACgB,OAAvBv0D,EAAKmB,EAAOpO,SAAiB,CACnC,GAAIwhE,GAAkB,KAANv0D,EAAW,CACzBnB,EAAM6zD,SAAW,KACjB,KACF,CACA6B,EAAkB,KAANv0D,CACd,CACA,MAAO,CAAC,UAAW,UACrB,CAZA3B,EAAWyqD,eAAe,YAAa,MAAOuL,GAc9Ch2D,EAAWwS,WAAW,WAAY,CAChC6gD,cAAeA,EACfC,WAAYA,EACZC,cAAeA,EACfC,mBAAoBA,EACpBL,iBAAkBA,EAClBM,4BAA6BA,EAC7BC,eAAgBA,EAChBC,mBAAoBA,EACpBC,cAAeA,EACfC,cAAeA,EACfT,WAAY,CACV,IAAK,SAAStwD,EAAQtC,GACpB,QAAKsC,EAAOgT,IAAI,OAChBtV,EAAM6zD,SAAW4B,EACVA,EAAcnzD,EAAQtC,GAC/B,GAEFtV,KAAM,QAGR8U,EAAWwS,WAAW,cAAe,CACnC8gD,WAAYA,EACZC,cAAeA,EACfC,mBAAoBA,EACpBL,iBAAkBA,EAClBM,4BAA6BA,EAC7BG,cAAeA,EACfC,cAAeA,EACfH,eAAgBA,EAChBI,aAAa,EACbC,YAAa,KACbX,WAAY,CACV,IAAK,SAAStwD,EAAQtC,GACpB,OAAIsC,EAAOgT,IAAI,MACbhT,EAAOmT,YACA,CAAC,UAAW,YACVnT,EAAOgT,IAAI,MACpBtV,EAAM6zD,SAAW4B,EACVA,EAAcnzD,EAAQtC,IAEtB,CAAC,WAAY,WAExB,EACA,IAAK,SAASsC,GACZ,QAAIA,EAAOlN,MAAM,UAAU,IAClB,CAAC,KAAM,KAElB,EACA,EAAK,SAASkN,GAEZ,OADAA,EAAOlN,MAAM,WACTkN,EAAOlN,MAAM,SAAS,GACjB,CAAC,aAAc,uBACjB,CAAC,aAAc,WACxB,EACA,IAAK,SAASkN,GACZ,QAAKA,EAAOgT,IAAI,MACT,CAAC,KAAM,gBAChB,GAEF5qB,KAAM,MACN8nB,WAAY,SAGdhT,EAAWwS,WAAW,cAAe,CACnC8gD,WAAYA,EACZC,cAAeA,EACfC,mBAAoBA,EACpBL,iBAAkBA,EAClBM,4BAA6BA,EAC7BG,cAAeA,EACfC,cAAeA,EACfH,eAAgBA,EAChBI,aAAa,EACbC,YAAa,KACbX,WAAY,CACV,IAAK,SAAStwD,EAAQtC,GACpB,OAAIsC,EAAOgT,IAAI,MACbhT,EAAOmT,YACA,CAAC,UAAW,YACVnT,EAAOgT,IAAI,MACpBtV,EAAM6zD,SAAW4B,EACVA,EAAcnzD,EAAQtC,IAEtB,CAAC,WAAY,WAExB,EACA,IAAK,SAASsC,GACZ,OAAIA,EAAOgT,IAAI,KAAa,CAAC,KAAM,kBAC/BhT,EAAOlN,MAAM,yGAAyG,KAC1HkN,EAAOiT,SAAS,YACZjT,EAAOlN,MAAM,SAAS,GACjB,CAAC,aAAc,uBACjB,CAAC,aAAc,YACxB,EACA,IAAK,WACH,MAAO,CAAC,OAAQ,OAClB,GAEF1K,KAAM,MACN8nB,WAAY,SAGdhT,EAAWwS,WAAW,aAAc,CAClC6gD,cAAeA,EACfC,WAAYA,EACZC,cAAeA,EACfJ,iBAAkBA,EAClBM,4BAA6BA,EAC7BC,eAAgBA,EAChBC,mBAAoBA,EACpBC,cAAeA,EACfC,cAAeA,EACfG,qBAAqB,EACrBZ,WAAY,CACV,IAAK,SAAStwD,EAAQtC,GACpB,QAAKsC,EAAOgT,IAAI,OAChBtV,EAAM6zD,SAAW4B,EACVA,EAAcnzD,EAAQtC,GAC/B,GAEFtV,KAAM,MACN8nB,WAAY,OAGhB,CAx1BItP,CAAI,EAAQ,K,gBCDV,GAMH,SAAS1D,GACV,aAEA,IAAIm2D,EAAc,CAChBC,OAAQ,CACN,CAAC,OAAQ,sBAAuB,cAChC,CAAC,OAAQ,kEAAmE,cAC5E,CAAC,OAAQ,IAAK,cACd,CAAC,KAAM,KAAM,eAEfl4D,MAAQ,CACN,CAAC,OAAQ,SAAU,OACnB,CAAC,OAAQ,oCAAqC,OAC9C,CAAC,OAAQ,IAAK,cACd,CAAC,KAAM,KAAM,SAIjB,SAASm4D,EAAYvzD,EAAQwzD,EAAKp4D,GAChC,IAAIiF,EAAML,EAAOtT,UAAWmP,EAAQwE,EAAIiF,OAAOkuD,GAO/C,OANI33D,GAAS,EACXmE,EAAOqT,OAAOhT,EAAIjhB,OAASyc,GAClBwE,EAAIvN,MAAM,WACnBkN,EAAOqT,OAAOhT,EAAIjhB,QACb4gB,EAAOlN,MAAM0gE,GAAK,IAAQxzD,EAAOlN,MAAMuN,IAEvCjF,CACT,CAEA,IAAIq4D,EAAkB,CAAC,EACvB,SAASC,EAAcztE,GACrB,IAAI0tE,EAASF,EAAgBxtE,GAC7B,OAAI0tE,IACGF,EAAgBxtE,GAAQ,IAAI8S,OAAO,OAAS9S,EAAO,wCAC5D,CAEA,SAAS2tE,EAAap0D,EAAMvZ,GAC1B,IAAI6M,EAAQ0M,EAAK1M,MAAM4gE,EAAcztE,IACrC,OAAO6M,EAAQ,gBAAgBkG,KAAKlG,EAAM,IAAI,GAAK,EACrD,CAEA,SAAS+gE,EAAa3hE,EAAS4hE,GAC7B,OAAO,IAAI/6D,QAAQ+6D,EAAW,IAAM,IAAM,SAAY5hE,EAAU,QAAS,IAC3E,CAEA,SAAS6hE,EAAQ71D,EAAMC,GACrB,IAAK,IAAIiF,KAAOlF,EAGd,IAFA,IAAIuoC,EAAOtoC,EAAGiF,KAASjF,EAAGiF,GAAO,IAC7B4E,EAAS9J,EAAKkF,GACT9kB,EAAI0pB,EAAO5oB,OAAS,EAAGd,GAAK,EAAGA,IACtCmoD,EAAKt2C,QAAQ6X,EAAO1pB,GAE1B,CAEA,SAAS01E,EAAiBC,EAASC,GACjC,IAAK,IAAI51E,EAAI,EAAGA,EAAI21E,EAAQ70E,OAAQd,IAAK,CACvC,IAAIsxB,EAAOqkD,EAAQ31E,GACnB,IAAKsxB,EAAK,IAAMA,EAAK,GAAGnnB,KAAKmrE,EAAaM,EAAStkD,EAAK,KAAM,OAAOA,EAAK,EAC5E,CACF,CAEA1S,EAAWsS,WAAW,aAAa,SAAU9Y,EAAQ05D,GACnD,IAAI+D,EAAWj3D,EAAWqB,QAAQ7H,EAAQ,CACxCtO,KAAM,MACN+rE,UAAU,EACVC,yBAA0BhE,EAAagE,yBACvCC,0BAA2BjE,EAAaiE,0BACxCC,oBAAqBlE,EAAakE,sBAGhCC,EAAO,CAAC,EACRC,EAAapE,GAAgBA,EAAamE,KAAME,EAAerE,GAAgBA,EAAasE,YAGhG,GAFAX,EAAQV,EAAakB,GACjBC,GAAYT,EAAQS,EAAYD,GAChCE,EAAc,IAAK,IAAIn2E,EAAIm2E,EAAar1E,OAAS,EAAGd,GAAK,EAAGA,IAC9Di2E,EAAKjB,OAAOnjE,QAAQ,CAAC,OAAQskE,EAAan2E,GAAG6N,QAASsoE,EAAan2E,GAAGmgB,OAExE,SAASk2D,EAAK30D,EAAQtC,GACpB,IAAkFxL,EAA9EkJ,EAAQ+4D,EAAS/zD,MAAMJ,EAAQtC,EAAMk3D,WAAYxxD,EAAM,UAAU3a,KAAK2S,GAC1E,GAAIgI,IAAQ,WAAW3a,KAAKuX,EAAOtT,aAC9BwF,EAAUwL,EAAMk3D,UAAU1iE,SAAWwL,EAAMk3D,UAAU1iE,QAAQ2V,gBAC9D0sD,EAAKpvD,eAAejT,GACtBwL,EAAMm3D,MAAQ3iE,EAAU,SACnB,GAAIwL,EAAMm3D,OAASzxD,GAAO,KAAK3a,KAAKuX,EAAOtT,WAAY,CAC5D,IAAImoE,EAAQ,gBAAgB77D,KAAK0E,EAAMm3D,OACvCn3D,EAAMm3D,MAAQ,KACd,IAAIxP,EAA+B,KAApBrlD,EAAOtT,WAAoBsnE,EAAiBO,EAAKM,EAAM,IAAKA,EAAM,IAC7Ep2D,EAAOvB,EAAWqB,QAAQ7H,EAAQ2uD,GAClCyP,EAAUjB,EAAagB,EAAM,IAAI,GAAOE,EAASlB,EAAagB,EAAM,IAAI,GAC5En3D,EAAM0C,MAAQ,SAAUJ,EAAQtC,GAC9B,OAAIsC,EAAOlN,MAAMgiE,GAAS,IACxBp3D,EAAM0C,MAAQu0D,EACdj3D,EAAMs3D,WAAat3D,EAAMu3D,UAAY,KAC9B,MAEF1B,EAAYvzD,EAAQ+0D,EAAQr3D,EAAMu3D,UAAU70D,MAAMJ,EAAQtC,EAAMs3D,YACzE,EACAt3D,EAAMu3D,UAAYx2D,EAClBf,EAAMs3D,WAAa93D,EAAWsT,WAAW/R,EAAM01D,EAASzR,OAAOhlD,EAAMk3D,UAAW,GAAI,IACtF,MAAWl3D,EAAMm3D,QACfn3D,EAAMm3D,OAAS70D,EAAOtT,UAClBsT,EAAOE,QAAOxC,EAAMm3D,OAAS,MAEnC,OAAOz5D,CACT,CAEA,MAAO,CACLoV,WAAY,WAEV,MAAO,CAACpQ,MAAOu0D,EAAME,MAAO,KAAMI,UAAW,KAAMD,WAAY,KAAMJ,UADzD13D,EAAWsT,WAAW2jD,GAEpC,EAEA10D,UAAW,SAAU/B,GACnB,IAAIw3D,EAIJ,OAHIx3D,EAAMs3D,aACRE,EAAQh4D,EAAWuC,UAAU/B,EAAMu3D,UAAWv3D,EAAMs3D,aAE/C,CAAC50D,MAAO1C,EAAM0C,MAAOy0D,MAAOn3D,EAAMm3D,MACjCI,UAAWv3D,EAAMu3D,UAAWD,WAAYE,EACxCN,UAAW13D,EAAWuC,UAAU00D,EAAUz2D,EAAMk3D,WAC1D,EAEAx0D,MAAO,SAAUJ,EAAQtC,GACvB,OAAOA,EAAM0C,MAAMJ,EAAQtC,EAC7B,EAEAglD,OAAQ,SAAUhlD,EAAOD,EAAWmB,GAClC,OAAKlB,EAAMu3D,WAAa,UAAUxsE,KAAKgV,GAC9B02D,EAASzR,OAAOhlD,EAAMk3D,UAAWn3D,EAAWmB,GAC5ClB,EAAMu3D,UAAUvS,OAChBhlD,EAAMu3D,UAAUvS,OAAOhlD,EAAMs3D,WAAYv3D,EAAWmB,GAEpD1B,EAAWkJ,IACtB,EAEA9H,UAAW,SAAUZ,GACnB,MAAO,CAACA,MAAOA,EAAMs3D,YAAct3D,EAAMk3D,UAAWn2D,KAAMf,EAAMu3D,WAAad,EAC/E,EAEJ,GAAG,MAAO,aAAc,OAExBj3D,EAAWwS,WAAW,YAAa,YACrC,CAnJI9O,CAAI,EAAQ,KAAyB,EAAQ,KAAe,EAAQ,KAA6B,EAAQ,K,gBCDvG,GAMH,SAAS1D,GACZ,aAEAA,EAAWsS,WAAW,cAAc,SAAS9Y,EAAQ05D,GACnD,IA8CInvE,EAAMuc,EA9CNqlD,EAAansD,EAAOmsD,WACpBsS,EAAkB/E,EAAa+E,gBAC/BC,EAAahF,EAAaiF,OAC1B13D,EAAWyyD,EAAakF,MAAQF,EAChCG,GAAyC,IAA5BnF,EAAamF,WAC1BC,EAAOpF,EAAaqF,WACpBC,EAAStF,EAAauF,gBAAkB,mBAIxCC,EAAW,WACb,SAASC,EAAG50E,GAAO,MAAO,CAACA,KAAMA,EAAMma,MAAO,UAAW,CACzD,IAAI06D,EAAID,EAAG,aAAcE,EAAIF,EAAG,aAAcG,EAAIH,EAAG,aAAcI,EAAIJ,EAAG,aACtEK,EAAWL,EAAG,YAAaM,EAAO,CAACl1E,KAAM,OAAQma,MAAO,QAE5D,MAAO,CACL,GAAMy6D,EAAG,MAAO,MAASC,EAAG,KAAQA,EAAG,KAAQC,EAAG,GAAMA,EAAG,IAAOA,EAAG,QAAWA,EAChF,OAAUE,EAAG,MAASA,EAAG,SAAYA,EAAG,IAAOJ,EAAG,OAAQ,OAAUG,EAAG,KAAQA,EAAG,MAASA,EAC3F,SAAYH,EAAG,YAAa,IAAOA,EAAG,OAAQ,MAASA,EAAG,OAAQ,IAAOA,EAAG,OAC5E,SAAYA,EAAG,YAAa,MAASA,EAAG,SACxC,IAAOA,EAAG,OAAQ,OAAUA,EAAG,UAAW,KAAQA,EAAG,QAAS,QAAWA,EAAG,WAC5E,GAAMK,EAAU,OAAUA,EAAU,WAAcA,EAClD,KAAQC,EAAM,MAASA,EAAM,KAAQA,EAAM,UAAaA,EAAM,IAAOA,EAAM,SAAYA,EACvF,KAAQN,EAAG,QAAS,MAASA,EAAG,SAAU,MAASA,EAAG,QACtD,MAASG,EAAG,OAAUH,EAAG,UAAW,OAAUA,EAAG,UAAW,QAAWG,EACvE,MAASA,EAEb,CAjBe,GAmBXI,EAAiB,oBACjBC,EAAkB,wFAEtB,SAASC,EAAWt2D,GAElB,IADA,IAAqBpO,EAAjB+/D,GAAU,EAAa4E,GAAQ,EACF,OAAzB3kE,EAAOoO,EAAOpO,SAAiB,CACrC,IAAK+/D,EAAS,CACZ,GAAY,KAAR//D,IAAgB2kE,EAAO,OACf,KAAR3kE,EAAa2kE,GAAQ,EAChBA,GAAiB,KAAR3kE,IAAa2kE,GAAQ,EACzC,CACA5E,GAAWA,GAAmB,MAAR//D,CACxB,CACF,CAKA,SAASw/D,EAAIC,EAAIj2D,EAAOo7D,GAEtB,OADAv1E,EAAOowE,EAAI7zD,EAAUg5D,EACdp7D,CACT,CACA,SAASk2D,EAAUtxD,EAAQtC,GACzB,IAAImB,EAAKmB,EAAOpO,OAChB,GAAU,KAANiN,GAAmB,KAANA,EAEf,OADAnB,EAAM6zD,SAAWC,EAAY3yD,GACtBnB,EAAM6zD,SAASvxD,EAAQtC,GACzB,GAAU,KAANmB,GAAamB,EAAOlN,MAAM,kCACnC,OAAOs+D,EAAI,SAAU,UAChB,GAAU,KAANvyD,GAAamB,EAAOlN,MAAM,MACnC,OAAOs+D,EAAI,SAAU,QAChB,GAAI,qBAAqB3oE,KAAKoW,GACnC,OAAOuyD,EAAIvyD,GACN,GAAU,KAANA,GAAamB,EAAOgT,IAAI,KACjC,OAAOo+C,EAAI,KAAM,YACZ,GAAU,KAANvyD,GAAamB,EAAOlN,MAAM,yCACnC,OAAOs+D,EAAI,SAAU,UAChB,GAAI,KAAK3oE,KAAKoW,GAEnB,OADAmB,EAAOlN,MAAM,oDACNs+D,EAAI,SAAU,UAChB,GAAU,KAANvyD,EACT,OAAImB,EAAOgT,IAAI,MACbtV,EAAM6zD,SAAWkF,EACVA,EAAaz2D,EAAQtC,IACnBsC,EAAOgT,IAAI,MACpBhT,EAAOmT,YACAi+C,EAAI,UAAW,YACbsF,GAAkB12D,EAAQtC,EAAO,IAC1C44D,EAAWt2D,GACXA,EAAOlN,MAAM,qCACNs+D,EAAI,SAAU,cAErBpxD,EAAOgT,IAAI,KACJo+C,EAAI,WAAY,WAAYpxD,EAAOtT,YAEvC,GAAU,KAANmS,EAET,OADAnB,EAAM6zD,SAAWoF,EACVA,EAAW32D,EAAQtC,GACrB,GAAU,KAANmB,GAA8B,KAAjBmB,EAAO+S,OAE7B,OADA/S,EAAOmT,YACAi+C,EAAI,OAAQ,QACd,GAAU,KAANvyD,GAAamB,EAAOiT,SAASyiD,GACtC,OAAOtE,EAAI,WAAY,YAClB,GAAU,KAANvyD,GAAamB,EAAOlN,MAAM,QACnB,KAAN+L,GAAamB,EAAOlN,MAAM,QAAU,KAAKrK,KAAKuX,EAAOO,OAAOxhB,MAAM,EAAGihB,EAAOvF,QAEtF,OADAuF,EAAOmT,YACAi+C,EAAI,UAAW,WACjB,GAAIgF,EAAe3tE,KAAKoW,GAS7B,MARU,KAANA,GAAcnB,EAAME,SAAiC,KAAtBF,EAAME,QAAQ3c,OAC3C+e,EAAOgT,IAAI,KACH,KAANnU,GAAmB,KAANA,GAAWmB,EAAOgT,IAAI,KAC9B,cAAcvqB,KAAKoW,KAC5BmB,EAAOgT,IAAInU,GACD,KAANA,GAAWmB,EAAOgT,IAAInU,KAGpB,KAANA,GAAamB,EAAOgT,IAAI,KAAao+C,EAAI,KACtCA,EAAI,WAAY,WAAYpxD,EAAOtT,WACrC,GAAIgpE,EAAOjtE,KAAKoW,GAAK,CAC1BmB,EAAOiT,SAASyiD,GAChB,IAAI9T,EAAO5hD,EAAOtT,UAClB,GAAsB,KAAlBgR,EAAMk5D,SAAiB,CACzB,GAAIhB,EAASiB,qBAAqBjV,GAAO,CACvC,IAAIiU,EAAKD,EAAShU,GAClB,OAAOwP,EAAIyE,EAAG50E,KAAM40E,EAAGz6D,MAAOwmD,EAChC,CACA,GAAY,SAARA,GAAmB5hD,EAAOlN,MAAM,4CAA4C,GAC9E,OAAOs+D,EAAI,QAAS,UAAWxP,EACnC,CACA,OAAOwP,EAAI,WAAY,WAAYxP,EACrC,CACF,CAEA,SAAS4P,EAAYE,GACnB,OAAO,SAAS1xD,EAAQtC,GACtB,IAAqB9L,EAAjB+/D,GAAU,EACd,GAAIyD,GAA+B,KAAjBp1D,EAAO+S,QAAiB/S,EAAOlN,MAAMujE,GAErD,OADA34D,EAAM6zD,SAAWD,EACVF,EAAI,iBAAkB,QAE/B,KAAiC,OAAzBx/D,EAAOoO,EAAOpO,UAChBA,GAAQ8/D,GAAUC,IACtBA,GAAWA,GAAmB,MAAR//D,EAGxB,OADK+/D,IAASj0D,EAAM6zD,SAAWD,GACxBF,EAAI,SAAU,SACvB,CACF,CAEA,SAASqF,EAAaz2D,EAAQtC,GAE5B,IADA,IAAsBmB,EAAlBu0D,GAAW,EACRv0D,EAAKmB,EAAOpO,QAAQ,CACzB,GAAU,KAANiN,GAAau0D,EAAU,CACzB11D,EAAM6zD,SAAWD,EACjB,KACF,CACA8B,EAAkB,KAANv0D,CACd,CACA,OAAOuyD,EAAI,UAAW,UACxB,CAEA,SAASuF,EAAW32D,EAAQtC,GAE1B,IADA,IAAqB9L,EAAjB+/D,GAAU,EACmB,OAAzB//D,EAAOoO,EAAOpO,SAAiB,CACrC,IAAK+/D,IAAoB,KAAR//D,GAAuB,KAARA,GAAeoO,EAAOgT,IAAI,MAAO,CAC/DtV,EAAM6zD,SAAWD,EACjB,KACF,CACAK,GAAWA,GAAmB,MAAR//D,CACxB,CACA,OAAOw/D,EAAI,QAAS,WAAYpxD,EAAOtT,UACzC,CAEA,IAAIoqE,EAAW,SAQf,SAASC,EAAa/2D,EAAQtC,GACxBA,EAAMs5D,aAAYt5D,EAAMs5D,WAAa,MACzC,IAAIC,EAAQj3D,EAAOO,OAAOjd,QAAQ,KAAM0c,EAAOvF,OAC/C,KAAIw8D,EAAQ,GAAZ,CAEA,GAAIzB,EAAM,CACR,IAAIvlE,EAAI,6CAA6C+I,KAAKgH,EAAOO,OAAOxhB,MAAMihB,EAAOvF,MAAOw8D,IACxFhnE,IAAGgnE,EAAQhnE,EAAE1Q,MACnB,CAGA,IADA,IAAI23E,EAAQ,EAAGC,GAAe,EACrB72D,EAAM22D,EAAQ,EAAG32D,GAAO,IAAKA,EAAK,CACzC,IAAIzB,EAAKmB,EAAOO,OAAOlG,OAAOiG,GAC1B82D,EAAUN,EAASxzE,QAAQub,GAC/B,GAAIu4D,GAAW,GAAKA,EAAU,EAAG,CAC/B,IAAKF,EAAO,GAAI52D,EAAK,KAAO,CAC5B,GAAe,KAAT42D,EAAY,CAAY,KAANr4D,IAAWs4D,GAAe,GAAM,KAAO,CACjE,MAAO,GAAIC,GAAW,GAAKA,EAAU,IACjCF,OACG,GAAIxB,EAAOjtE,KAAKoW,GACrBs4D,GAAe,OACV,GAAI,UAAU1uE,KAAKoW,GACxB,QAAUyB,EAAK,CACb,GAAW,GAAPA,EAAU,OAEd,GADWN,EAAOO,OAAOlG,OAAOiG,EAAM,IAC1BzB,GAAuC,MAAjCmB,EAAOO,OAAOlG,OAAOiG,EAAM,GAAY,CAAEA,IAAO,KAAM,CAC1E,MACK,GAAI62D,IAAiBD,EAAO,GAC/B52D,EACF,KACF,CACF,CACI62D,IAAiBD,IAAOx5D,EAAMs5D,WAAa12D,EA7B1B,CA8BvB,CAIA,IAAI+2D,EAAc,CAAC,MAAQ,EAAM,QAAU,EAAM,UAAY,EAAM,QAAU,EAC1D,QAAU,EAAM,MAAQ,EAAM,QAAU,EAAM,kBAAkB,GAEnF,SAASC,EAAU7/C,EAAUnE,EAAQryB,EAAMw+C,EAAO9yC,EAAM4jB,GACtD9xB,KAAKg5B,SAAWA,EAChBh5B,KAAK60B,OAASA,EACd70B,KAAKwC,KAAOA,EACZxC,KAAKkO,KAAOA,EACZlO,KAAK8xB,KAAOA,EACC,MAATkvB,IAAehhD,KAAKghD,MAAQA,EAClC,CAEA,SAAS83B,EAAQ75D,EAAO85D,GACtB,IAAKjC,EAAY,OAAO,EACxB,IAAK,IAAIrrB,EAAIxsC,EAAM+5D,UAAWvtB,EAAGA,EAAIA,EAAEt4C,KACrC,GAAIs4C,EAAE9hD,MAAQovE,EAAS,OAAO,EAChC,IAAK,IAAInF,EAAK30D,EAAMlV,QAAS6pE,EAAIA,EAAKA,EAAG1lE,KACvC,IAASu9C,EAAImoB,EAAGqF,KAAMxtB,EAAGA,EAAIA,EAAEt4C,KAC7B,GAAIs4C,EAAE9hD,MAAQovE,EAAS,OAAO,CAEpC,CAEA,SAASG,EAAQj6D,EAAOtC,EAAOna,EAAMuc,EAASwC,GAC5C,IAAI43D,EAAKl6D,EAAMk6D,GAQf,IALAvF,EAAG30D,MAAQA,EAAO20D,EAAGryD,OAASA,EAAQqyD,EAAGwF,OAAS,KAAMxF,EAAGuF,GAAKA,EAAIvF,EAAGj3D,MAAQA,EAE1EsC,EAAME,QAAQuH,eAAe,WAChCzH,EAAME,QAAQ6hC,OAAQ,GAElB,GAEJ,IADiBm4B,EAAGx4E,OAASw4E,EAAGv1E,MAAQsb,EAAWm6D,EAAaC,GACjD92E,EAAMuc,GAAU,CAC7B,KAAMo6D,EAAGx4E,QAAUw4E,EAAGA,EAAGx4E,OAAS,GAAG44E,KACnCJ,EAAGv1E,KAAHu1E,GACF,OAAIvF,EAAGwF,OAAexF,EAAGwF,OACb,YAAR52E,GAAsBs2E,EAAQ75D,EAAOF,GAAiB,aACnDpC,CACT,CAEJ,CAIA,IAAIi3D,EAAK,CAAC30D,MAAO,KAAM4V,OAAQ,KAAMukD,OAAQ,KAAMD,GAAI,MACvD,SAAS9F,IACP,IAAK,IAAIxzE,EAAIsB,UAAUR,OAAS,EAAGd,GAAK,EAAGA,IAAK+zE,EAAGuF,GAAGx0E,KAAKxD,UAAUtB,GACvE,CACA,SAASk4E,IAEP,OADA1E,EAAK9yE,MAAM,KAAMY,YACV,CACT,CACA,SAASq4E,EAAO7vE,EAAMy5B,GACpB,IAAK,IAAIqoB,EAAIroB,EAAMqoB,EAAGA,EAAIA,EAAEt4C,KAAM,GAAIs4C,EAAE9hD,MAAQA,EAAM,OAAO,EAC7D,OAAO,CACT,CACA,SAASxH,EAAS42E,GAChB,IAAI95D,EAAQ20D,EAAG30D,MAEf,GADA20D,EAAGwF,OAAS,MACPtC,EAAL,CACA,GAAI73D,EAAMlV,QACR,GAA0B,OAAtBkV,EAAME,QAAQ2S,MAAiB7S,EAAMlV,SAAWkV,EAAMlV,QAAQ0vE,MAAO,CAEvE,IAAIC,EAAaC,EAAkBZ,EAAS95D,EAAMlV,SAClD,GAAkB,MAAd2vE,EAEF,YADAz6D,EAAMlV,QAAU2vE,EAGpB,MAAO,IAAKF,EAAOT,EAAS95D,EAAM+5D,WAEhC,YADA/5D,EAAM+5D,UAAY,IAAIY,EAAIb,EAAS95D,EAAM+5D,YAKzCrH,EAAakI,aAAeL,EAAOT,EAAS95D,EAAM46D,cACpD56D,EAAM46D,WAAa,IAAID,EAAIb,EAAS95D,EAAM46D,YAhB3B,CAiBnB,CACA,SAASF,EAAkBZ,EAAShvE,GAClC,GAAKA,EAEE,IAAIA,EAAQ0vE,MAAO,CACxB,IAAI/3D,EAAQi4D,EAAkBZ,EAAShvE,EAAQmE,MAC/C,OAAKwT,EACDA,GAAS3X,EAAQmE,KAAanE,EAC3B,IAAIyrB,EAAQ9T,EAAO3X,EAAQkvE,MAAM,GAFrB,IAGrB,CAAO,OAAIO,EAAOT,EAAShvE,EAAQkvE,MAC1BlvE,EAEA,IAAIyrB,EAAQzrB,EAAQmE,KAAM,IAAI0rE,EAAIb,EAAShvE,EAAQkvE,OAAO,EACnE,CAVE,OAAO,IAWX,CAEA,SAASa,EAAWnwE,GAClB,MAAe,UAARA,GAA4B,WAARA,GAA6B,aAARA,GAA+B,YAARA,GAA8B,YAARA,CAC/F,CAIA,SAAS6rB,EAAQtnB,EAAM+qE,EAAMQ,GAASz5E,KAAKkO,KAAOA,EAAMlO,KAAKi5E,KAAOA,EAAMj5E,KAAKy5E,MAAQA,CAAM,CAC7F,SAASG,EAAIjwE,EAAMwJ,GAAQnT,KAAK2J,KAAOA,EAAM3J,KAAKmT,KAAOA,CAAK,CAE9D,IAAI4mE,EAAc,IAAIH,EAAI,OAAQ,IAAIA,EAAI,YAAa,OACvD,SAASI,IACPpG,EAAG30D,MAAMlV,QAAU,IAAIyrB,EAAQo+C,EAAG30D,MAAMlV,QAAS6pE,EAAG30D,MAAM+5D,WAAW,GACrEpF,EAAG30D,MAAM+5D,UAAYe,CACvB,CACA,SAASE,IACPrG,EAAG30D,MAAMlV,QAAU,IAAIyrB,EAAQo+C,EAAG30D,MAAMlV,QAAS6pE,EAAG30D,MAAM+5D,WAAW,GACrEpF,EAAG30D,MAAM+5D,UAAY,IACvB,CAEA,SAASkB,IACPtG,EAAG30D,MAAM+5D,UAAYpF,EAAG30D,MAAMlV,QAAQkvE,KACtCrF,EAAG30D,MAAMlV,QAAU6pE,EAAG30D,MAAMlV,QAAQmE,IACtC,CAEA,SAASisE,EAAQ33E,EAAMsvB,GACrB,IAAI5kB,EAAS,WACX,IAAI+R,EAAQ20D,EAAG30D,MAAOglD,EAAShlD,EAAM+Z,SACrC,GAA0B,QAAtB/Z,EAAME,QAAQ3c,KAAgByhE,EAAShlD,EAAME,QAAQ6Z,cACpD,IAAK,IAAIlY,EAAQ7B,EAAME,QAAS2B,GAAuB,KAAdA,EAAMte,MAAese,EAAMkgC,MAAOlgC,EAAQA,EAAM5S,KAC5F+1D,EAASnjD,EAAMkY,SACjB/Z,EAAME,QAAU,IAAI05D,EAAU5U,EAAQ2P,EAAGryD,OAAOsT,SAAUryB,EAAM,KAAMyc,EAAME,QAAS2S,EACvF,EAEA,OADA5kB,EAAOqsE,KAAM,EACNrsE,CACT,CACA,SAASktE,IACP,IAAIn7D,EAAQ20D,EAAG30D,MACXA,EAAME,QAAQjR,OACU,KAAtB+Q,EAAME,QAAQ3c,OAChByc,EAAM+Z,SAAW/Z,EAAME,QAAQ6Z,UACjC/Z,EAAME,QAAUF,EAAME,QAAQjR,KAElC,CAGA,SAASmsE,EAAOC,GACd,SAASC,EAAI/3E,GACX,OAAIA,GAAQ83E,EAAevC,IACR,KAAVuC,GAAyB,KAAR93E,GAAuB,KAARA,GAAuB,KAARA,EAAoB6wE,IAChE0E,EAAKwC,EACnB,CACA,OAAOA,CACT,CAEA,SAASjB,EAAU92E,EAAMkF,GACvB,MAAY,OAARlF,EAAsBu1E,EAAKoC,EAAQ,SAAUzyE,GAAQ8yE,GAAQH,EAAO,KAAMD,GAClE,aAAR53E,EAA4Bu1E,EAAKoC,EAAQ,QAASM,EAAWnB,EAAWc,GAChE,aAAR53E,EAA4Bu1E,EAAKoC,EAAQ,QAASb,EAAWc,GACrD,aAAR53E,EAA4BoxE,EAAGryD,OAAOlN,MAAM,SAAS,GAAS0jE,IAASA,EAAKoC,EAAQ,QAASO,EAAiBL,EAAO,KAAMD,GACnH,YAAR53E,EAA2Bu1E,EAAKsC,EAAO,MAC/B,KAAR73E,EAAoBu1E,EAAKoC,EAAQ,KAAMF,EAAkBR,GAAOW,EAAQF,GAChE,KAAR13E,EAAoBu1E,IACZ,MAARv1E,GAC2B,QAAzBoxE,EAAG30D,MAAME,QAAQ2S,MAAkB8hD,EAAG30D,MAAMk6D,GAAGvF,EAAG30D,MAAMk6D,GAAGx4E,OAAS,IAAMy5E,GAC5ExG,EAAG30D,MAAMk6D,GAAGv1E,KAAZgwE,GACKmE,EAAKoC,EAAQ,QAASM,EAAWnB,EAAWc,EAAQO,KAEjD,YAARn4E,EAA2Bu1E,EAAK6C,IACxB,OAARp4E,EAAsBu1E,EAAKoC,EAAQ,QAASF,EAAkBY,GAASvB,EAAWY,EAAYE,GACtF,SAAR53E,GAAoBu0E,GAAiB,aAATrvE,GAC9BksE,EAAGwF,OAAS,UACLrB,EAAKoC,EAAQ,OAAgB,SAAR33E,EAAkBA,EAAOkF,GAAQkN,GAAWwlE,IAE9D,YAAR53E,EACEu0E,GAAiB,WAATrvE,GACVksE,EAAGwF,OAAS,UACLrB,EAAKuB,IACHvC,IAAkB,UAATrvE,GAA8B,QAATA,GAA4B,QAATA,IAAoBksE,EAAGryD,OAAOlN,MAAM,UAAU,IACxGu/D,EAAGwF,OAAS,UACC,QAAT1xE,EAAwBqwE,EAAK+C,IACf,QAATpzE,EAAwBqwE,EAAKgD,GAAUV,EAAO,YAAaW,GAAUX,EAAO,MACzEtC,EAAKoC,EAAQ,QAASplD,GAASslD,EAAO,KAAMF,EAAQ,KAAMV,GAAOW,EAAQA,IAC5ErD,GAAiB,aAATrvE,GACjBksE,EAAGwF,OAAS,UACLrB,EAAKoC,EAAQ,QAASd,EAAYC,EAAWc,IAC3CrD,GAAiB,YAATrvE,GACjBksE,EAAGwF,OAAS,UACLrB,EAAKuB,IAELvB,EAAKoC,EAAQ,QAASc,IAGrB,UAARz4E,EAAyBu1E,EAAKoC,EAAQ,QAASM,EAAWJ,EAAO,KAAMF,EAAQ,IAAK,UAAWF,EACjER,GAAOW,EAAQA,EAAQF,GAC7C,QAAR13E,EAAuBu1E,EAAKsB,EAAYgB,EAAO,MACvC,WAAR73E,EAA0Bu1E,EAAKsC,EAAO,MAC9B,SAAR73E,EAAwBu1E,EAAKoC,EAAQ,QAASH,EAAakB,EAAmB5B,EAAWc,EAAQF,GACzF,UAAR13E,EAAyBu1E,EAAKoC,EAAQ,QAASgB,GAAaf,GACpD,UAAR53E,EAAyBu1E,EAAKoC,EAAQ,QAASiB,GAAahB,GACpD,SAAR53E,EAAwBu1E,EAAKuB,GACpB,KAAT5xE,EAAqBqwE,EAAKsB,EAAYC,GACnCjG,EAAK8G,EAAQ,QAASd,EAAYgB,EAAO,KAAMD,EACxD,CACA,SAASc,EAAkB14E,GACzB,GAAY,KAARA,EAAa,OAAOu1E,EAAKsD,GAAQhB,EAAO,KAC9C,CACA,SAAShB,EAAW72E,EAAMkF,GACxB,OAAO4zE,EAAgB94E,EAAMkF,GAAO,EACtC,CACA,SAAS6zE,EAAkB/4E,EAAMkF,GAC/B,OAAO4zE,EAAgB94E,EAAMkF,GAAO,EACtC,CACA,SAAS+yE,EAAUj4E,GACjB,MAAY,KAARA,EAAoB6wE,IACjB0E,EAAKoC,EAAQ,KAAMO,EAAiBL,EAAO,KAAMD,EAC1D,CACA,SAASkB,EAAgB94E,EAAMkF,EAAO8zE,GACpC,GAAI5H,EAAG30D,MAAMs5D,YAAc3E,EAAGryD,OAAOvF,MAAO,CAC1C,IAAIc,EAAO0+D,EAAUC,GAAmBC,GACxC,GAAY,KAARl5E,EAAa,OAAOu1E,EAAKiC,EAAaG,EAAQ,KAAMwB,GAASN,GAAQ,KAAMjB,EAAQC,EAAO,MAAOv9D,EAAMo9D,GACtG,GAAY,YAAR13E,EAAoB,OAAO6wE,EAAK2G,EAAajlD,GAASslD,EAAO,MAAOv9D,EAAMo9D,EACrF,CAEA,IAAI0B,EAAUJ,EAAUK,EAAuBC,EAC/C,OAAIlD,EAAYlyD,eAAelkB,GAAcu1E,EAAK6D,GACtC,YAARp5E,EAA2Bu1E,EAAK6C,GAAagB,GACrC,SAARp5E,GAAoBu0E,GAAiB,aAATrvE,GAAyBksE,EAAGwF,OAAS,UAAkBrB,EAAKoC,EAAQ,QAAS4B,GAAiB3B,IAClH,aAAR53E,GAA+B,SAARA,EAAwBu1E,EAAKyD,EAAUD,EAAoBlC,GAC1E,KAAR72E,EAAoBu1E,EAAKoC,EAAQ,KAAMO,EAAiBL,EAAO,KAAMD,EAAQwB,GACrE,YAARp5E,GAA8B,UAARA,EAAyBu1E,EAAKyD,EAAUD,EAAoBlC,GAC1E,KAAR72E,EAAoBu1E,EAAKoC,EAAQ,KAAM6B,GAAc5B,EAAQwB,GACrD,KAARp5E,EAAoBy5E,GAAaC,GAAS,IAAK,KAAMN,GAC7C,SAARp5E,EAAwB6wE,EAAK8I,EAAOP,GAC5B,OAARp5E,EAAsBu1E,EAAKqE,GAAYZ,IACpCzD,GACT,CACA,SAAS2C,EAAgBl4E,GACvB,OAAIA,EAAK6R,MAAM,cAAsBg/D,IAC9BA,EAAKgG,EACd,CAEA,SAASyC,EAAmBt5E,EAAMkF,GAChC,MAAY,KAARlF,EAAoBu1E,EAAK2C,GACtBmB,EAAqBr5E,EAAMkF,GAAO,EAC3C,CACA,SAASm0E,EAAqBr5E,EAAMkF,EAAO8zE,GACzC,IAAIvuB,EAAgB,GAAXuuB,EAAmBM,EAAqBD,EAC7CQ,EAAkB,GAAXb,EAAmBnC,EAAakC,EAC3C,MAAY,MAAR/4E,EAAqBu1E,EAAKiC,EAAawB,EAAUC,GAAmBC,GAAWxB,GACvE,YAAR13E,EACE,UAAUwH,KAAKtC,IAAUqvE,GAAiB,KAATrvE,EAAqBqwE,EAAK9qB,GAC3D8pB,GAAiB,KAATrvE,GAAgBksE,EAAGryD,OAAOlN,MAAM,4BAA4B,GAC/D0jE,EAAKoC,EAAQ,KAAMwB,GAASX,GAAU,KAAMZ,EAAQntB,GAChD,KAATvlD,EAAqBqwE,EAAKsB,EAAYgB,EAAO,KAAMgC,GAChDtE,EAAKsE,GAEF,SAAR75E,EAA0B6wE,EAAK8I,EAAOlvB,GAC9B,KAARzqD,EACQ,KAARA,EAAoBy5E,GAAaV,EAAmB,IAAK,OAAQtuB,GACzD,KAARzqD,EAAoBu1E,EAAKuE,GAAUrvB,GAC3B,KAARzqD,EAAoBu1E,EAAKoC,EAAQ,KAAMO,EAAiBL,EAAO,KAAMD,EAAQntB,GAC7E8pB,GAAiB,MAATrvE,GAAiBksE,EAAGwF,OAAS,UAAkBrB,EAAKiD,GAAU/tB,IAC9D,UAARzqD,GACFoxE,EAAG30D,MAAMk5D,SAAWvE,EAAGwF,OAAS,WAChCxF,EAAGryD,OAAOqT,OAAOg/C,EAAGryD,OAAOM,IAAM+xD,EAAGryD,OAAOvF,MAAQ,GAC5C+7D,EAAKsE,SAHd,OALA,CAUF,CACA,SAASF,EAAM35E,EAAMkF,GACnB,MAAY,SAARlF,EAAwB6wE,IACS,MAAjC3rE,EAAMpH,MAAMoH,EAAM/G,OAAS,GAAmBo3E,EAAKoE,GAChDpE,EAAK2C,EAAiB6B,EAC/B,CACA,SAASA,EAAc/5E,GACrB,GAAY,KAARA,EAGF,OAFAoxE,EAAGwF,OAAS,WACZxF,EAAG30D,MAAM6zD,SAAWoF,EACbH,EAAKoE,EAEhB,CACA,SAAST,GAAUl5E,GAEjB,OADA81E,EAAa1E,EAAGryD,OAAQqyD,EAAG30D,OACpBo0D,EAAa,KAAR7wE,EAAc82E,EAAYD,EACxC,CACA,SAASoC,GAAiBj5E,GAExB,OADA81E,EAAa1E,EAAGryD,OAAQqyD,EAAG30D,OACpBo0D,EAAa,KAAR7wE,EAAc82E,EAAYiC,EACxC,CACA,SAASa,GAAYZ,GACnB,OAAO,SAASh5E,GACd,MAAY,KAARA,EAAoBu1E,EAAKyD,EAAUgB,GAAgBj2D,IACtC,YAAR/jB,GAAsBu0E,EAAagB,EAAK0E,GAAejB,EAAUK,EAAuBC,GACrFzI,EAAKmI,EAAUD,EAAoBlC,EACjD,CACF,CACA,SAAS9yD,GAAOtmB,EAAGyH,GACjB,GAAa,UAATA,EAA4C,OAAvBksE,EAAGwF,OAAS,UAAkBrB,EAAK+D,EAC9D,CACA,SAASU,GAAcv8E,EAAGyH,GACxB,GAAa,UAATA,EAA4C,OAAvBksE,EAAGwF,OAAS,UAAkBrB,EAAK8D,EAC9D,CACA,SAASZ,GAAWz4E,GAClB,MAAY,KAARA,EAAoBu1E,EAAKqC,EAAQd,GAC9BjG,EAAKyI,EAAoBzB,EAAO,KAAMD,EAC/C,CACA,SAASkC,GAAS95E,GAChB,GAAY,YAARA,EAA6C,OAAxBoxE,EAAGwF,OAAS,WAAmBrB,GAC1D,CACA,SAASmE,GAAQ15E,EAAMkF,GACrB,MAAY,SAARlF,GACFoxE,EAAGwF,OAAS,WACLrB,EAAKmE,KACK,YAAR15E,GAAkC,WAAZoxE,EAAGj3D,OAClCi3D,EAAGwF,OAAS,WACC,OAAT1xE,GAA2B,OAATA,EAAuBqwE,EAAK2E,KAE9C3F,GAAQnD,EAAG30D,MAAMs5D,YAAc3E,EAAGryD,OAAOvF,QAAUxK,EAAIoiE,EAAGryD,OAAOlN,MAAM,YAAY,MACrFu/D,EAAG30D,MAAMs5D,WAAa3E,EAAGryD,OAAOM,IAAMrQ,EAAE,GAAG7Q,QACtCo3E,EAAK4E,MACK,UAARn6E,GAA4B,UAARA,GAC7BoxE,EAAGwF,OAASzC,EAAa,WAAc/C,EAAGj3D,MAAQ,YAC3Co7D,EAAK4E,KACK,kBAARn6E,EACFu1E,EAAK4E,IACH5F,GAAQ+C,EAAWpyE,IAC5BksE,EAAGwF,OAAS,UACLrB,EAAKmE,KACK,KAAR15E,EACFu1E,EAAKsB,EAAYuD,GAAWvC,EAAO,KAAMsC,IAC/B,UAARn6E,EACFu1E,EAAKwD,EAAmBoB,IACb,KAATj1E,GACTksE,EAAGwF,OAAS,UACLrB,EAAKmE,KACK,KAAR15E,EACF6wE,EAAKsJ,SADP,EAnBL,IAAInrE,CAsBR,CACA,SAASkrE,GAAal6E,GACpB,MAAY,YAARA,EAA2B6wE,EAAKsJ,KACpC/I,EAAGwF,OAAS,WACLrB,EAAK6C,IACd,CACA,SAAS+B,GAAUn6E,GACjB,MAAY,KAARA,EAAoBu1E,EAAKwD,GACjB,KAAR/4E,EAAoB6wE,EAAKuH,SAA7B,CACF,CACA,SAASe,GAASkB,EAAM76D,EAAK86D,GAC3B,SAASC,EAAQv6E,EAAMkF,GACrB,GAAIo1E,EAAMA,EAAIj4E,QAAQrC,IAAS,EAAY,KAARA,EAAa,CAC9C,IAAI+2E,EAAM3F,EAAG30D,MAAME,QAEnB,MADgB,QAAZo6D,EAAIznD,OAAgBynD,EAAI13D,KAAO03D,EAAI13D,KAAO,GAAK,GAC5Ck2D,GAAK,SAASv1E,EAAMkF,GACzB,OAAIlF,GAAQwf,GAAOta,GAASsa,EAAYqxD,IACjCA,EAAKwJ,EACd,GAAGE,EACL,CACA,OAAIv6E,GAAQwf,GAAOta,GAASsa,EAAY+1D,IACpC+E,GAAOA,EAAIj4E,QAAQ,MAAQ,EAAUwuE,EAAKwJ,GACvC9E,EAAKsC,EAAOr4D,GACrB,CACA,OAAO,SAASxf,EAAMkF,GACpB,OAAIlF,GAAQwf,GAAOta,GAASsa,EAAY+1D,IACjC1E,EAAKwJ,EAAME,EACpB,CACF,CACA,SAASd,GAAaY,EAAM76D,EAAK8P,GAC/B,IAAK,IAAIjyB,EAAI,EAAGA,EAAIsB,UAAUR,OAAQd,IACpC+zE,EAAGuF,GAAGx0E,KAAKxD,UAAUtB,IACvB,OAAOk4E,EAAKoC,EAAQn4D,EAAK8P,GAAO6pD,GAASkB,EAAM76D,GAAMo4D,EACvD,CACA,SAASX,GAAMj3E,GACb,MAAY,KAARA,EAAoBu1E,IACjB1E,EAAKiG,EAAWG,GACzB,CACA,SAASmD,GAAUp6E,EAAMkF,GACvB,GAAIqvE,EAAM,CACR,GAAY,KAARv0E,EAAa,OAAOu1E,EAAKiD,IAC7B,GAAa,KAATtzE,EAAc,OAAOqwE,EAAK6E,GAChC,CACF,CACA,SAASI,GAAcx6E,EAAMkF,GAC3B,GAAIqvE,IAAiB,KAARv0E,GAAwB,MAATkF,GAAgB,OAAOqwE,EAAKiD,GAC1D,CACA,SAASiC,GAAaz6E,GACpB,GAAIu0E,GAAgB,KAARv0E,EACV,OAAIoxE,EAAGryD,OAAOlN,MAAM,kBAAkB,GAAe0jE,EAAKsB,EAAY6D,GAAMlC,IAChEjD,EAAKiD,GAErB,CACA,SAASkC,GAAKj9E,EAAGyH,GACf,GAAa,MAATA,EAEF,OADAksE,EAAGwF,OAAS,UACLrB,GAEX,CACA,SAASiD,GAASx4E,EAAMkF,GACtB,MAAa,SAATA,GAA6B,UAATA,GAA8B,SAATA,GAA6B,YAATA,GAC/DksE,EAAGwF,OAAS,UACLrB,EAAc,UAATrwE,EAAoB6zE,EAAoBP,KAE1C,YAARx4E,GAA+B,QAATkF,GACxBksE,EAAGwF,OAAS,OACLrB,EAAKoF,KAED,KAATz1E,GAAyB,KAATA,EAAqBqwE,EAAKiD,IAClC,UAARx4E,GAA4B,UAARA,GAA4B,QAARA,EAAuBu1E,EAAKoF,IAC5D,KAAR36E,EAAoBu1E,EAAKoC,EAAQ,KAAMwB,GAASX,GAAU,IAAK,KAAMZ,EAAQ+C,IACrE,KAAR36E,EAAoBu1E,EAAKoC,EAAQ,KAAMiD,GAAWhD,EAAQ+C,IAClD,KAAR36E,EAAoBu1E,EAAK4D,GAAS0B,GAAS,KAAMC,GAAiBH,IAC1D,KAAR36E,EAAoBu1E,EAAK4D,GAASX,GAAU,KAAMA,IAC1C,SAARx4E,EAA0B6wE,EAAKkK,GAAWJ,SAA9C,CACF,CACA,SAASG,GAAgB96E,GACvB,GAAY,MAARA,EAAc,OAAOu1E,EAAKiD,GAChC,CACA,SAASoC,GAAU56E,GACjB,OAAIA,EAAK6R,MAAM,YAAoB0jE,IACvB,KAARv1E,GAAuB,KAARA,EAAoBu1E,EAAKqF,IACrC/J,EAAKmK,GAAUJ,GACxB,CACA,SAASI,GAASh7E,EAAMkF,GACtB,MAAY,YAARlF,GAAkC,WAAZoxE,EAAGj3D,OAC3Bi3D,EAAGwF,OAAS,WACLrB,EAAKyF,KACM,KAAT91E,GAAwB,UAARlF,GAA4B,UAARA,EACtCu1E,EAAKyF,IACK,KAARh7E,EACFu1E,EAAKiD,IACK,KAARx4E,EACFu1E,EAAKsC,EAAO,YAAa2C,GAAe3C,EAAO,KAAMmD,IAC3C,KAARh7E,EACF6wE,EAAKoK,GAAcD,IAChBh7E,EAAK6R,MAAM,mBAAhB,EACE0jE,GAEX,CACA,SAASwF,GAAU/6E,EAAMkF,GACvB,MAAY,SAARlF,EAAwB6wE,IACS,MAAjC3rE,EAAMpH,MAAMoH,EAAM/G,OAAS,GAAmBo3E,EAAKwF,IAChDxF,EAAKiD,GAAU0C,GACxB,CACA,SAASA,GAAkBl7E,GACzB,GAAY,KAARA,EAGF,OAFAoxE,EAAGwF,OAAS,WACZxF,EAAG30D,MAAM6zD,SAAWoF,EACbH,EAAKwF,GAEhB,CACA,SAASF,GAAQ76E,EAAMkF,GACrB,MAAY,YAARlF,GAAsBoxE,EAAGryD,OAAOlN,MAAM,YAAY,IAAmB,KAAT3M,EAAqBqwE,EAAKsF,IAC9E,KAAR76E,EAAoBu1E,EAAKiD,IACjB,UAARx4E,EAAyBu1E,EAAKsF,IAC3BhK,EAAK2H,GACd,CACA,SAASmC,GAAU36E,EAAMkF,GACvB,MAAa,KAATA,EAAqBqwE,EAAKoC,EAAQ,KAAMwB,GAASX,GAAU,KAAMZ,EAAQ+C,IAChE,KAATz1E,GAAwB,KAARlF,GAAwB,KAATkF,EAAqBqwE,EAAKiD,IACjD,KAARx4E,EAAoBu1E,EAAKiD,GAAUX,EAAO,KAAM8C,IACvC,WAATz1E,GAA+B,cAATA,GAAyBksE,EAAGwF,OAAS,UAAkBrB,EAAKiD,KACzE,KAATtzE,EAAqBqwE,EAAKiD,GAAUX,EAAO,KAAMW,SAArD,CACF,CACA,SAASyB,GAAcx8E,EAAGyH,GACxB,GAAa,KAATA,EAAc,OAAOqwE,EAAKoC,EAAQ,KAAMwB,GAASX,GAAU,KAAMZ,EAAQ+C,GAC/E,CACA,SAASQ,KACP,OAAOtK,EAAK2H,GAAU4C,GACxB,CACA,SAASA,GAAiB39E,EAAGyH,GAC3B,GAAa,KAATA,EAAc,OAAOqwE,EAAKiD,GAChC,CACA,SAASR,GAAOv6E,EAAGyH,GACjB,MAAa,QAATA,GAAkBksE,EAAGwF,OAAS,UAAkBrB,EAAK+C,KAClDzH,EAAKt+C,GAAS6nD,GAAWiB,GAAaC,GAC/C,CACA,SAAS/oD,GAAQvyB,EAAMkF,GACrB,OAAIqvE,GAAQ+C,EAAWpyE,IAAUksE,EAAGwF,OAAS,UAAkBrB,EAAKhjD,KACxD,YAARvyB,GAAsBL,EAASuF,GAAeqwE,KACtC,UAARv1E,EAAyBu1E,EAAKhjD,IACtB,KAARvyB,EAAoBy5E,GAAa8B,GAAY,KACrC,KAARv7E,EAAoBy5E,GAAa+B,GAAa,UAAlD,CACF,CACA,SAASA,GAAYx7E,EAAMkF,GACzB,MAAY,YAARlF,GAAuBoxE,EAAGryD,OAAOlN,MAAM,SAAS,IAIxC,YAAR7R,IAAoBoxE,EAAGwF,OAAS,YACxB,UAAR52E,EAAyBu1E,EAAKhjD,IACtB,KAARvyB,EAAoB6wE,IACZ,KAAR7wE,EAAoBu1E,EAAKsB,EAAYgB,EAAO,KAAMA,EAAO,KAAM2D,IAC5DjG,EAAKsC,EAAO,KAAMtlD,GAAS8oD,MAPhC17E,EAASuF,GACFqwE,EAAK8F,IAOhB,CACA,SAASE,KACP,OAAO1K,EAAKt+C,GAAS8oD,GACvB,CACA,SAASA,GAAY/+D,EAAOpX,GAC1B,GAAa,KAATA,EAAc,OAAOqwE,EAAKwD,EAChC,CACA,SAASuC,GAAWt7E,GAClB,GAAY,KAARA,EAAa,OAAOu1E,EAAKyC,GAC/B,CACA,SAASG,GAAUn4E,EAAMkF,GACvB,GAAY,aAARlF,GAAgC,QAATkF,EAAiB,OAAOqwE,EAAKoC,EAAQ,OAAQ,QAASb,EAAWc,EAC9F,CACA,SAASS,GAAQr4E,EAAMkF,GACrB,MAAa,SAATA,EAAyBqwE,EAAK8C,IACtB,KAARr4E,EAAoBu1E,EAAKoC,EAAQ,KAAM8D,GAAU7D,QAArD,CACF,CACA,SAAS6D,GAASz7E,GAChB,MAAY,OAARA,EAAsBu1E,EAAKyC,GAAQ0D,IAC3B,YAAR17E,EAA2Bu1E,EAAKmG,IAC7B7K,EAAK6K,GACd,CACA,SAASA,GAAS17E,EAAMkF,GACtB,MAAY,KAARlF,EAAoBu1E,IACZ,KAARv1E,EAAoBu1E,EAAKmG,IAChB,MAATx2E,GAA0B,MAATA,GAAiBksE,EAAGwF,OAAS,UAAkBrB,EAAKsB,EAAY6E,KAC9E7K,EAAKgG,EAAY6E,GAC1B,CACA,SAAStD,GAAYp4E,EAAMkF,GACzB,MAAa,KAATA,GAAeksE,EAAGwF,OAAS,UAAkBrB,EAAK6C,KAC1C,YAARp4E,GAAqBL,EAASuF,GAAeqwE,EAAK6C,KAC1C,KAARp4E,EAAoBu1E,EAAKiC,EAAaG,EAAQ,KAAMwB,GAASN,GAAQ,KAAMjB,EAAQ6C,GAAc3D,EAAWY,GAC5GnD,GAAiB,KAATrvE,EAAqBqwE,EAAKoC,EAAQ,KAAMwB,GAASgC,GAAW,KAAMvD,EAAQQ,SAAtF,CACF,CACA,SAAS6C,GAAaj7E,EAAMkF,GAC1B,MAAa,KAATA,GAAeksE,EAAGwF,OAAS,UAAkBrB,EAAK0F,KAC1C,YAARj7E,GAAqBL,EAASuF,GAAeqwE,EAAK0F,KAC1C,KAARj7E,EAAoBu1E,EAAKiC,EAAaG,EAAQ,KAAMwB,GAASN,GAAQ,KAAMjB,EAAQ6C,GAAc/C,GACjGnD,GAAiB,KAATrvE,EAAqBqwE,EAAKoC,EAAQ,KAAMwB,GAASgC,GAAW,KAAMvD,EAAQqD,SAAtF,CACF,CACA,SAAS1C,GAASv4E,EAAMkF,GACtB,MAAY,WAARlF,GAA6B,YAARA,GACvBoxE,EAAGwF,OAAS,OACLrB,EAAKgD,KACM,KAATrzE,EACFqwE,EAAKoC,EAAQ,KAAMwB,GAASgC,GAAW,KAAMvD,QAD/C,CAGT,CACA,SAASiB,GAAO74E,EAAMkF,GAEpB,MADa,KAATA,GAAcqwE,EAAKsB,EAAYgC,IACvB,UAAR74E,EAAyBu1E,EAAKsD,IAC9BtE,GAAQ+C,EAAWpyE,IAAUksE,EAAGwF,OAAS,UAAkBrB,EAAKsD,KAChEtE,GAAgB,QAARv0E,EAAuBu1E,EAAK6E,GAAWiB,IAC5CxK,EAAKt+C,GAAS6nD,GAAWiB,GAClC,CACA,SAAS9B,GAAgBv5E,EAAMkF,GAE7B,MAAY,YAARlF,EAA2BoS,GAAUpS,EAAMkF,GACxCy2E,GAAe37E,EAAMkF,EAC9B,CACA,SAASkN,GAAUpS,EAAMkF,GACvB,GAAY,YAARlF,EAAsC,OAAjBL,EAASuF,GAAeqwE,EAAKoG,GACxD,CACA,SAASA,GAAe37E,EAAMkF,GAC5B,MAAa,KAATA,EAAqBqwE,EAAKoC,EAAQ,KAAMwB,GAASgC,GAAW,KAAMvD,EAAQ+D,IACjE,WAATz2E,GAA+B,cAATA,GAA0BqvE,GAAgB,KAARv0E,GAC7C,cAATkF,IAAuBksE,EAAGwF,OAAS,WAChCrB,EAAKhB,EAAOiE,GAAW3B,EAAY8E,KAEhC,KAAR37E,EAAoBu1E,EAAKoC,EAAQ,KAAMiE,GAAWhE,QAAtD,CACF,CACA,SAASgE,GAAU57E,EAAMkF,GACvB,MAAY,SAARlF,GACS,YAARA,IACU,UAATkF,GAA8B,OAATA,GAA2B,OAATA,GAAmBqvE,GAAQ+C,EAAWpyE,KAC9EksE,EAAGryD,OAAOlN,MAAM,wBAAwB,IAC3Cu/D,EAAGwF,OAAS,UACLrB,EAAKqG,KAEF,YAAR57E,GAAkC,WAAZoxE,EAAGj3D,OAC3Bi3D,EAAGwF,OAAS,WACLrB,EAAKsG,GAAYD,KAEd,UAAR57E,GAA4B,UAARA,EAAyBu1E,EAAKsG,GAAYD,IACtD,KAAR57E,EACKu1E,EAAKsB,EAAYuD,GAAWvC,EAAO,KAAMgE,GAAYD,IACjD,KAAT12E,GACFksE,EAAGwF,OAAS,UACLrB,EAAKqG,KAEVrH,GAAgB,KAARv0E,EAAoB6wE,EAAKoK,GAAcW,IACvC,KAAR57E,GAAuB,KAARA,EAAoBu1E,EAAKqG,IAChC,KAAR57E,EAAoBu1E,IACX,KAATrwE,EAAqBqwE,EAAKsB,EAAY+E,SAA1C,CACF,CACA,SAASC,GAAW77E,EAAMkF,GACxB,GAAa,KAATA,EAAc,OAAOqwE,EAAKsG,IAC9B,GAAa,KAAT32E,EAAc,OAAOqwE,EAAKsG,IAC9B,GAAY,KAAR77E,EAAa,OAAOu1E,EAAKiD,GAAU6C,IACvC,GAAa,KAATn2E,EAAc,OAAOqwE,EAAKwD,GAC9B,IAAIxxE,EAAU6pE,EAAG30D,MAAME,QAAQjR,KAC/B,OAAOmlE,EAD4CtpE,GAA2B,aAAhBA,EAAQ+nB,KAC5C2rD,GAAe7C,GAC3C,CACA,SAASO,GAAY34E,EAAMkF,GACzB,MAAa,KAATA,GAAgBksE,EAAGwF,OAAS,UAAkBrB,EAAKuG,GAAWjE,EAAO,OAC5D,WAAT3yE,GAAsBksE,EAAGwF,OAAS,UAAkBrB,EAAKsB,EAAYgB,EAAO,OACpE,KAAR73E,EAAoBu1E,EAAK4D,GAAS4C,GAAa,KAAMD,GAAWjE,EAAO,MACpEhH,EAAKiG,EACd,CACA,SAASiF,GAAY/7E,EAAMkF,GACzB,MAAa,MAATA,GAAiBksE,EAAGwF,OAAS,UAAkBrB,EAAKsC,EAAO,cACnD,YAAR73E,EAA2B6wE,EAAKkI,EAAmBgD,SAAvD,CACF,CACA,SAASnD,GAAY54E,GACnB,MAAY,UAARA,EAAyBu1E,IACjB,KAARv1E,EAAoB6wE,EAAKgG,GACjB,KAAR72E,EAAoB6wE,EAAKyI,GACtBzI,EAAKmL,GAAYC,GAAkBH,GAC5C,CACA,SAASE,GAAWh8E,EAAMkF,GACxB,MAAY,KAARlF,EAAoBy5E,GAAauC,GAAY,MACrC,YAARh8E,GAAoBL,EAASuF,GACpB,KAATA,IAAcksE,EAAGwF,OAAS,WACvBrB,EAAK2G,IACd,CACA,SAASD,GAAiBj8E,GACxB,GAAY,KAARA,EAAa,OAAOu1E,EAAKyG,GAAYC,GAC3C,CACA,SAASC,GAAQ5/D,EAAOpX,GACtB,GAAa,MAATA,EAAwC,OAAvBksE,EAAGwF,OAAS,UAAkBrB,EAAKyG,GAC1D,CACA,SAASF,GAAUx/D,EAAOpX,GACxB,GAAa,QAATA,EAA0C,OAAvBksE,EAAGwF,OAAS,UAAkBrB,EAAKsB,EAC5D,CACA,SAAS2C,GAAax5E,GACpB,MAAY,KAARA,EAAoBu1E,IACjB1E,EAAKsI,GAASJ,EAAmB,KAC1C,CACA,SAAST,KACP,OAAOzH,EAAK8G,EAAQ,QAASplD,GAASslD,EAAO,KAAMF,EAAQ,KAAMwB,GAASgD,GAAY,KAAMvE,EAAQA,EACtG,CACA,SAASuE,KACP,OAAOtL,EAAKt+C,GAAS8oD,GACvB,CAEA,SAASe,GAAqB3/D,EAAOD,GACnC,MAAyB,YAAlBC,EAAMk5D,UAA4C,KAAlBl5D,EAAMk5D,UAC3CR,EAAe3tE,KAAKgV,EAAUpD,OAAO,KACrC,OAAO5R,KAAKgV,EAAUpD,OAAO,GACjC,CAEA,SAASq8D,GAAkB12D,EAAQtC,EAAO2V,GACxC,OAAO3V,EAAM6zD,UAAYD,GACvB,iFAAiF7oE,KAAKiV,EAAMk5D,WACzE,SAAlBl5D,EAAMk5D,UAAuB,SAASnuE,KAAKuX,EAAOO,OAAOxhB,MAAM,EAAGihB,EAAOM,KAAO+S,GAAU,IAC/F,CAIA,OArhBAolD,EAAYT,IAAMU,EAAiBV,KAAM,EAKzCW,EAAWX,KAAM,EAoBjBa,EAAOb,KAAM,EA4fN,CACLxnD,WAAY,SAAS8sD,GACnB,IAAI5/D,EAAQ,CACV6zD,SAAUD,EACVsF,SAAU,MACVgB,GAAI,GACJh6D,QAAS,IAAI05D,GAAWgG,GAAc,GAAKza,EAAY,EAAG,SAAS,GACnE4U,UAAWrH,EAAaqH,UACxBjvE,QAAS4nE,EAAaqH,WAAa,IAAIxjD,EAAQ,KAAM,MAAM,GAC3DwD,SAAU6lD,GAAc,GAI1B,OAFIlN,EAAakI,YAAgD,iBAA3BlI,EAAakI,aACjD56D,EAAM46D,WAAalI,EAAakI,YAC3B56D,CACT,EAEA0C,MAAO,SAASJ,EAAQtC,GAOtB,GANIsC,EAAO8S,QACJpV,EAAME,QAAQuH,eAAe,WAChCzH,EAAME,QAAQ6hC,OAAQ,GACxB/hC,EAAM+Z,SAAWzX,EAAOuT,cACxBwjD,EAAa/2D,EAAQtC,IAEnBA,EAAM6zD,UAAYkF,GAAgBz2D,EAAOkT,WAAY,OAAO,KAChE,IAAI9X,EAAQsC,EAAM6zD,SAASvxD,EAAQtC,GACnC,MAAY,WAARzc,EAA0Bma,GAC9BsC,EAAMk5D,SAAmB,YAAR31E,GAAkC,MAAXuc,GAA8B,MAAXA,EAA8Bvc,EAAX,SACvE02E,EAAQj6D,EAAOtC,EAAOna,EAAMuc,EAASwC,GAC9C,EAEA0iD,OAAQ,SAAShlD,EAAOD,GACtB,GAAIC,EAAM6zD,UAAYkF,GAAgB/4D,EAAM6zD,UAAYoF,EAAY,OAAOz5D,EAAWkJ,KACtF,GAAI1I,EAAM6zD,UAAYD,EAAW,OAAO,EACxC,IAA2E/pC,EAAvEg2C,EAAY9/D,GAAaA,EAAUpD,OAAO,GAAIuD,EAAUF,EAAME,QAElE,IAAK,aAAanV,KAAKgV,GAAY,IAAK,IAAInf,EAAIof,EAAMk6D,GAAGx4E,OAAS,EAAGd,GAAK,IAAKA,EAAG,CAChF,IAAIk/E,EAAI9/D,EAAMk6D,GAAGt5E,GACjB,GAAIk/E,GAAK3E,EAAQj7D,EAAUA,EAAQjR,UAC9B,GAAI6wE,GAAKpE,IAAaoE,GAAK7E,EAAY,KAC9C,CACA,MAAwB,QAAhB/6D,EAAQ3c,MAAkC,QAAhB2c,EAAQ3c,QACrB,KAAbs8E,IAAsBh2C,EAAM7pB,EAAMk6D,GAAGl6D,EAAMk6D,GAAGx4E,OAAS,MACjCmoC,GAAOgzC,GAAsBhzC,GAAO+yC,KACpC,mBAAmB7xE,KAAKgV,KACpDG,EAAUA,EAAQjR,KAChBwoE,GAAmC,KAAhBv3D,EAAQ3c,MAAoC,QAArB2c,EAAQjR,KAAK1L,OACzD2c,EAAUA,EAAQjR,MACpB,IAAI1L,EAAO2c,EAAQ3c,KAAMqoE,EAAUiU,GAAat8E,EAEhD,MAAY,UAARA,EAAyB2c,EAAQ6Z,UAA8B,YAAlB/Z,EAAMk5D,UAA4C,KAAlBl5D,EAAMk5D,SAAkBh5D,EAAQ2S,KAAKnxB,OAAS,EAAI,GAClH,QAAR6B,GAA+B,KAAbs8E,EAAyB3/D,EAAQ6Z,SAC3C,QAARx2B,EAAuB2c,EAAQ6Z,SAAWorC,EAClC,QAAR5hE,EACA2c,EAAQ6Z,UAAY4lD,GAAqB3/D,EAAOD,GAAa03D,GAAmBtS,EAAa,GAC7E,UAAhBjlD,EAAQ2S,MAAqB+4C,GAA8C,GAAnC8G,EAAaqN,mBAErD7/D,EAAQ6hC,MAAc7hC,EAAQ0V,QAAUg2C,EAAU,EAAI,GACnD1rD,EAAQ6Z,UAAY6xC,EAAU,EAAIzG,GAFrCjlD,EAAQ6Z,UAAY,sBAAsBhvB,KAAKgV,GAAaolD,EAAa,EAAIA,EAGxF,EAEA0B,cAAe,oCACf+N,kBAAmB30D,EAAW,KAAO,KACrC40D,gBAAiB50D,EAAW,KAAO,KACnC60D,qBAAsB70D,EAAW,KAAO,MACxCszD,YAAatzD,EAAW,KAAO,KAC/B80D,KAAM,QACNiL,cAAe,iBAEfxtD,WAAYvS,EAAW,OAAS,aAChCy3D,WAAYA,EACZz3D,SAAUA,EAEV+4D,kBAAmBA,GAEnBiH,eAAgB,SAASjgE,GACvBi6D,EAAQj6D,EAAO,OAAQ,OAAQ,OAAQ,IAAIR,EAAW+C,aAAa,GAAI,EAAG,MAC5E,EAEJ,IAEA/C,EAAWyqD,eAAe,YAAa,aAAc,SAErDzqD,EAAWwS,WAAW,kBAAmB,cACzCxS,EAAWwS,WAAW,kBAAmB,cACzCxS,EAAWwS,WAAW,yBAA0B,cAChDxS,EAAWwS,WAAW,2BAA4B,cAClDxS,EAAWwS,WAAW,yBAA0B,cAChDxS,EAAWwS,WAAW,mBAAoB,CAAEtnB,KAAM,aAAcktE,MAAM,IACtEp4D,EAAWwS,WAAW,qBAAsB,CAAEtnB,KAAM,aAAcktE,MAAM,IACxEp4D,EAAWwS,WAAW,4BAA6B,CAAEtnB,KAAM,aAAcktE,MAAM,IAC/Ep4D,EAAWwS,WAAW,sBAAuB,CAAEtnB,KAAM,aAAcitE,QAAQ,IAC3En4D,EAAWwS,WAAW,kBAAmB,CAAEtnB,KAAM,aAAcqtE,YAAY,IAC3Ev4D,EAAWwS,WAAW,yBAA0B,CAAEtnB,KAAM,aAAcqtE,YAAY,GAElF,CA17BI70D,CAAI,EAAQ,K,gBCDV,GAMH,SAAS1D,GACZ,aAEA,IAAI0gE,EAAa,CACfC,gBAAiB,CAAC,MAAQ,EAAM,MAAQ,EAAM,IAAM,EAAM,KAAO,EAAM,SAAW,EAChE,OAAS,EAAM,OAAS,EAAM,IAAM,EAAM,KAAO,EAAM,OAAS,EAChE,QAAU,EAAM,MAAQ,EAAM,MAAQ,EAAM,OAAS,EAAM,QAAU,EACrE,OAAS,EAAM,KAAO,EAAM,UAAY,GAC1DC,iBAAkB,CAAC,IAAM,EAAM,IAAM,EAAM,UAAY,EAAM,QAAU,EAAM,GAAK,EAC/D,IAAM,EAAM,IAAM,EAAM,OAAS,EAAM,IAAM,EAAM,OAAS,EAC5D,IAAM,EAAM,IAAM,GACrCC,gBAAiB,CACf,GAAM,CAAC,IAAM,EAAM,IAAM,GACzB,GAAM,CAAC,IAAM,EAAM,IAAM,GACzB,GAAM,CAAC,IAAM,GACb,OAAU,CAAC,QAAU,EAAM,UAAY,GACvC,SAAY,CAAC,UAAY,GACzB,EAAK,CAAC,SAAW,EAAM,SAAW,EAAM,OAAS,EAAM,YAAc,EAAM,KAAO,EAC5E,KAAO,EAAM,IAAM,EAAM,UAAY,EAAM,QAAU,EAAM,MAAQ,EACnE,IAAM,EAAM,IAAM,EAAM,IAAM,EAAM,IAAM,EAAM,IAAM,EAAM,IAAM,EAClE,QAAU,EAAM,QAAU,EAAM,IAAM,EAAM,MAAQ,EAAM,KAAO,EAAM,IAAM,EAC7E,GAAK,EAAM,KAAO,EAAM,SAAW,EAAM,OAAS,EAAM,IAAM,GACpE,GAAM,CAAC,IAAM,EAAM,IAAM,GACzB,GAAM,CAAC,IAAM,EAAM,IAAM,GACzB,MAAS,CAAC,OAAS,EAAM,OAAS,GAClC,GAAM,CAAC,IAAM,EAAM,IAAM,GACzB,MAAS,CAAC,OAAS,GACnB,GAAM,CAAC,IAAM,EAAM,IAAM,GACzB,MAAS,CAAC,OAAS,EAAM,OAAS,GAClC,GAAM,CAAC,IAAM,IAEfC,YAAa,CAAC,KAAO,GACrBC,eAAe,EACfC,cAAc,EACdC,UAAU,GAGRC,EAAY,CACdP,gBAAiB,CAAC,EAClBC,iBAAkB,CAAC,EACnBC,gBAAiB,CAAC,EAClBC,YAAa,CAAC,EACdC,eAAe,EACfC,cAAc,EACd5J,qBAAqB,EACrB6J,UAAU,GAGZjhE,EAAWsS,WAAW,OAAO,SAAS6uD,EAAYC,GAChD,IAOIr9E,EAAMs9E,EAPN1b,EAAawb,EAAWxb,WACxBnsD,EAAS,CAAC,EACVnR,EAAW+4E,EAAQnK,SAAWyJ,EAAaQ,EAC/C,IAAK,IAAIl5D,KAAQ3f,EAAUmR,EAAOwO,GAAQ3f,EAAS2f,GACnD,IAAK,IAAIA,KAAQo5D,EAAS5nE,EAAOwO,GAAQo5D,EAAQp5D,GAKjD,SAASs5D,EAAOx+D,EAAQtC,GACtB,SAAS5H,EAAM2oE,GAEb,OADA/gE,EAAM6zD,SAAWkN,EACVA,EAAOz+D,EAAQtC,EACxB,CAEA,IAAImB,EAAKmB,EAAOpO,OAChB,MAAU,KAANiN,EACEmB,EAAOgT,IAAI,KACThT,EAAOgT,IAAI,KACThT,EAAOlN,MAAM,UAAkBgD,EAAM4oE,EAAQ,OAAQ,QAC7C,KACH1+D,EAAOlN,MAAM,MACfgD,EAAM4oE,EAAQ,UAAW,WACvB1+D,EAAOlN,MAAM,WAAW,GAAM,IACvCkN,EAAOiT,SAAS,aACTnd,EAAM6oE,EAAQ,KAEd,KAEA3+D,EAAOgT,IAAI,MACpBhT,EAAOiT,SAAS,aAChBvV,EAAM6zD,SAAWmN,EAAQ,OAAQ,MAC1B,SAEPz9E,EAAO+e,EAAOgT,IAAI,KAAO,WAAa,UACtCtV,EAAM6zD,SAAWsD,EACV,eAEM,KAANh2D,GAELmB,EAAOgT,IAAI,KACThT,EAAOgT,IAAI,KACRhT,EAAOiT,SAAS,eAAiBjT,EAAOgT,IAAI,KAE5ChT,EAAOiT,SAAS,SAAWjT,EAAOgT,IAAI,KAGxChT,EAAOiT,SAAS,cAAgBjT,EAAOgT,IAAI,MAEtC,OAAS,SAErBhT,EAAOiT,SAAS,SACT,KAEX,CAGA,SAAS4hD,EAAM70D,EAAQtC,GACrB,IAAImB,EAAKmB,EAAOpO,OAChB,GAAU,KAANiN,GAAoB,KAANA,GAAamB,EAAOgT,IAAI,KAGxC,OAFAtV,EAAM6zD,SAAWiN,EACjBv9E,EAAa,KAAN4d,EAAY,SAAW,eACvB,cACF,GAAU,KAANA,EAET,OADA5d,EAAO,SACA,KACF,GAAU,KAAN4d,EAAW,CACpBnB,EAAM6zD,SAAWiN,EACjB9gE,EAAMA,MAAQkhE,EACdlhE,EAAMxL,QAAUwL,EAAMmhE,SAAW,KACjC,IAAIjtE,EAAO8L,EAAM6zD,SAASvxD,EAAQtC,GAClC,OAAO9L,EAAOA,EAAO,aAAe,WACtC,CAAO,MAAI,SAASnJ,KAAKoW,IACvBnB,EAAM6zD,SAAWuN,EAAYjgE,GAC7BnB,EAAMqhE,eAAiB/+D,EAAOsT,SACvB5V,EAAM6zD,SAASvxD,EAAQtC,KAE9BsC,EAAOlN,MAAM,4CACN,OAEX,CAEA,SAASgsE,EAAYpN,GACnB,IAAIsN,EAAU,SAASh/D,EAAQtC,GAC7B,MAAQsC,EAAOE,OACb,GAAIF,EAAOpO,QAAU8/D,EAAO,CAC1Bh0D,EAAM6zD,SAAWsD,EACjB,KACF,CAEF,MAAO,QACT,EAEA,OADAmK,EAAQC,eAAgB,EACjBD,CACT,CAEA,SAASN,EAAQtjE,EAAO8jE,GACtB,OAAO,SAASl/D,EAAQtC,GACtB,MAAQsC,EAAOE,OAAO,CACpB,GAAIF,EAAOlN,MAAMosE,GAAa,CAC5BxhE,EAAM6zD,SAAWiN,EACjB,KACF,CACAx+D,EAAOpO,MACT,CACA,OAAOwJ,CACT,CACF,CAEA,SAASujE,EAAQzH,GACf,OAAO,SAASl3D,EAAQtC,GAEtB,IADA,IAAImB,EAC2B,OAAvBA,EAAKmB,EAAOpO,SAAiB,CACnC,GAAU,KAANiN,EAEF,OADAnB,EAAM6zD,SAAWoN,EAAQzH,EAAQ,GAC1Bx5D,EAAM6zD,SAASvxD,EAAQtC,GACzB,GAAU,KAANmB,EAAW,CACpB,GAAa,GAATq4D,EAAY,CACdx5D,EAAM6zD,SAAWiN,EACjB,KACF,CAEE,OADA9gE,EAAM6zD,SAAWoN,EAAQzH,EAAQ,GAC1Bx5D,EAAM6zD,SAASvxD,EAAQtC,EAElC,CACF,CACA,MAAO,MACT,CACF,CAEA,SAASyhE,EAAMjtE,GACb,OAAOA,GAAWA,EAAQ2V,aAC5B,CAEA,SAASoM,EAAQvW,EAAOxL,EAASktE,GAC/B3gF,KAAKkO,KAAO+Q,EAAMlV,QAClB/J,KAAKyT,QAAUA,GAAW,GAC1BzT,KAAKikE,OAAShlD,EAAM+Z,SACpBh5B,KAAK2gF,YAAcA,GACf1oE,EAAOsnE,YAAY74D,eAAejT,IAAawL,EAAMlV,SAAWkV,EAAMlV,QAAQ62E,YAChF5gF,KAAK4gF,UAAW,EACpB,CACA,SAASxN,EAAWn0D,GACdA,EAAMlV,UAASkV,EAAMlV,QAAUkV,EAAMlV,QAAQmE,KACnD,CACA,SAAS2yE,EAAgB5hE,EAAO6hE,GAE9B,IADA,IAAIC,EACG,GAAM,CACX,IAAK9hE,EAAMlV,QACT,OAGF,GADAg3E,EAAgB9hE,EAAMlV,QAAQ0J,SACzBwE,EAAOqnE,gBAAgB54D,eAAeg6D,EAAMK,MAC5C9oE,EAAOqnE,gBAAgBoB,EAAMK,IAAgBr6D,eAAeg6D,EAAMI,IACrE,OAEF1N,EAAWn0D,EACb,CACF,CAEA,SAASkhE,EAAU39E,EAAM+e,EAAQtC,GAC/B,MAAY,WAARzc,GACFyc,EAAMmhE,SAAW7+D,EAAOsT,SACjBmsD,GACU,YAARx+E,EACFy+E,EAEAd,CAEX,CACA,SAASa,EAAax+E,EAAM+e,EAAQtC,GAClC,MAAY,QAARzc,GACFyc,EAAMxL,QAAU8N,EAAOtT,UACvB6xE,EAAW,MACJoB,GACEjpE,EAAO49D,qBAA+B,UAARrzE,GACvCs9E,EAAW,cACJoB,EAAU1+E,EAAM+e,EAAQtC,KAE/B6gE,EAAW,QACJkB,EAEX,CACA,SAASC,EAAkBz+E,EAAM+e,EAAQtC,GACvC,GAAY,QAARzc,EAAgB,CAClB,IAAIiR,EAAU8N,EAAOtT,UAIrB,OAHIgR,EAAMlV,SAAWkV,EAAMlV,QAAQ0J,SAAWA,GAC1CwE,EAAOonE,iBAAiB34D,eAAeg6D,EAAMzhE,EAAMlV,QAAQ0J,WAC7D2/D,EAAWn0D,GACRA,EAAMlV,SAAWkV,EAAMlV,QAAQ0J,SAAWA,IAAoC,IAAxBwE,EAAOkpE,cAChErB,EAAW,MACJsB,IAEPtB,EAAW,YACJuB,EAEX,CAAO,OAAIppE,EAAO49D,qBAA+B,UAARrzE,GACvCs9E,EAAW,cACJsB,EAAW5+E,EAAM+e,EAAQtC,KAEhC6gE,EAAW,QACJuB,EAEX,CAEA,SAASD,EAAW5+E,EAAMkxE,EAASz0D,GACjC,MAAY,UAARzc,GACFs9E,EAAW,QACJsB,IAEThO,EAAWn0D,GACJkhE,EACT,CACA,SAASkB,EAAc7+E,EAAM+e,EAAQtC,GAEnC,OADA6gE,EAAW,QACJsB,EAAW5+E,EAAM+e,EAAQtC,EAClC,CAEA,SAASiiE,EAAU1+E,EAAMkxE,EAASz0D,GAChC,GAAY,QAARzc,EAEF,OADAs9E,EAAW,YACJwB,EACF,GAAY,UAAR9+E,GAA4B,gBAARA,EAAwB,CACrD,IAAIiR,EAAUwL,EAAMxL,QAAS2sE,EAAWnhE,EAAMmhE,SAS9C,OARAnhE,EAAMxL,QAAUwL,EAAMmhE,SAAW,KACrB,gBAAR59E,GACAyV,EAAOmnE,gBAAgB14D,eAAeg6D,EAAMjtE,IAC9CotE,EAAgB5hE,EAAOxL,IAEvBotE,EAAgB5hE,EAAOxL,GACvBwL,EAAMlV,QAAU,IAAIyrB,EAAQvW,EAAOxL,EAAS2sE,GAAYnhE,EAAM+Z,WAEzDmnD,CACT,CAEA,OADAL,EAAW,QACJoB,CACT,CACA,SAASI,EAAY9+E,EAAM+e,EAAQtC,GACjC,MAAY,UAARzc,EAAyB++E,GACxBtpE,EAAOwnE,eAAcK,EAAW,SAC9BoB,EAAU1+E,EAAM+e,EAAQtC,GACjC,CACA,SAASsiE,EAAe/+E,EAAM+e,EAAQtC,GACpC,MAAY,UAARzc,EAAyBg/E,EACjB,QAARh/E,GAAkByV,EAAOunE,eAAgBM,EAAW,SAAiBoB,IACzEpB,EAAW,QACJoB,EAAU1+E,EAAM+e,EAAQtC,GACjC,CACA,SAASuiE,EAAmBh/E,EAAM+e,EAAQtC,GACxC,MAAY,UAARzc,EAAyBg/E,EACtBN,EAAU1+E,EAAM+e,EAAQtC,EACjC,CAEA,OAtMA8gE,EAAO0B,UAAW,EAsMX,CACL1vD,WAAY,SAAS2vD,GACnB,IAAIziE,EAAQ,CAAC6zD,SAAUiN,EACV9gE,MAAOkhE,EACPnnD,SAAU0oD,GAAc,EACxBjuE,QAAS,KAAM2sE,SAAU,KACzBr2E,QAAS,MAEtB,OADkB,MAAd23E,IAAoBziE,EAAMyiE,WAAaA,GACpCziE,CACT,EAEA0C,MAAO,SAASJ,EAAQtC,GAItB,IAHKA,EAAMxL,SAAW8N,EAAO8S,QAC3BpV,EAAM+Z,SAAWzX,EAAOuT,eAEtBvT,EAAOkT,WAAY,OAAO,KAC9BjyB,EAAO,KACP,IAAIma,EAAQsC,EAAM6zD,SAASvxD,EAAQtC,GAOnC,OANKtC,GAASna,IAAkB,WAATma,IACrBmjE,EAAW,KACX7gE,EAAMA,MAAQA,EAAMA,MAAMzc,GAAQma,EAAO4E,EAAQtC,GAC7C6gE,IACFnjE,EAAoB,SAAZmjE,EAAsBnjE,EAAQ,SAAWmjE,IAE9CnjE,CACT,EAEAsnD,OAAQ,SAAShlD,EAAOD,EAAW2iE,GACjC,IAAI53E,EAAUkV,EAAMlV,QAEpB,GAAIkV,EAAM6zD,SAAS0N,cACjB,OAAIvhE,EAAMmhE,UAAYnhE,EAAM+Z,SACnB/Z,EAAMqhE,eAAiB,EAEvBrhE,EAAM+Z,SAAWorC,EAE5B,GAAIr6D,GAAWA,EAAQ62E,SAAU,OAAOniE,EAAWkJ,KACnD,GAAI1I,EAAM6zD,UAAYsD,GAASn3D,EAAM6zD,UAAYiN,EAC/C,OAAO4B,EAAWA,EAASttE,MAAM,UAAU,GAAG1T,OAAS,EAEzD,GAAIse,EAAMxL,QACR,OAAyC,IAArCwE,EAAO29D,0BACF32D,EAAMmhE,SAAWnhE,EAAMxL,QAAQ9S,OAAS,EAExCse,EAAMmhE,SAAWhc,GAAcnsD,EAAO09D,0BAA4B,GAE7E,GAAI19D,EAAO2pE,YAAc,cAAc53E,KAAKgV,GAAY,OAAO,EAC/D,IAAI6iE,EAAW7iE,GAAa,sBAAsBzE,KAAKyE,GACvD,GAAI6iE,GAAYA,EAAS,GACvB,KAAO93E,GAAS,CACd,GAAIA,EAAQ0J,SAAWouE,EAAS,GAAI,CAClC93E,EAAUA,EAAQmE,KAClB,KACF,CAAO,IAAI+J,EAAOonE,iBAAiB34D,eAAeg6D,EAAM32E,EAAQ0J,UAG9D,MAFA1J,EAAUA,EAAQmE,IAItB,MACK,GAAI2zE,EACT,KAAO93E,GAAS,CACd,IAAI+3E,EAAW7pE,EAAOqnE,gBAAgBoB,EAAM32E,EAAQ0J,UACpD,IAAIquE,IAAYA,EAASp7D,eAAeg6D,EAAMmB,EAAS,KAGrD,MAFA93E,EAAUA,EAAQmE,IAGtB,CAEF,KAAOnE,GAAWA,EAAQmE,OAASnE,EAAQ42E,aACzC52E,EAAUA,EAAQmE,KACpB,OAAInE,EAAgBA,EAAQk6D,OAASG,EACzBnlD,EAAMyiE,YAAc,CAClC,EAEA5b,cAAe,gBACf+N,kBAAmB,UACnBC,gBAAiB,SAEjBx0D,cAAerH,EAAOy9D,SAAW,OAAS,MAC1CjkD,WAAYxZ,EAAOy9D,SAAW,OAAS,MAEvCqM,cAAe,SAAS9iE,GAClBA,EAAMA,OAASsiE,IACjBtiE,EAAMA,MAAQiiE,EAClB,EAEAc,cAAe,SAAS/iE,GACtB,OAAOA,EAAMxL,QAAU,CAAC9J,KAAMsV,EAAMxL,QAAS2J,MAAqB,YAAd6B,EAAMzc,MAAsB,IAClF,EAEAy/E,kBAAmB,SAAShjE,GAE1B,IADA,IAAIlV,EAAU,GACL6pE,EAAK30D,EAAMlV,QAAS6pE,EAAIA,EAAKA,EAAG1lE,KACvCnE,EAAQpF,KAAKivE,EAAGngE,SAClB,OAAO1J,EAAQ+iB,SACjB,EAEJ,IAEArO,EAAWwS,WAAW,WAAY,OAClCxS,EAAWwS,WAAW,kBAAmB,OACpCxS,EAAWqS,UAAUpK,eAAe,cACvCjI,EAAWwS,WAAW,YAAa,CAACtnB,KAAM,MAAO+rE,UAAU,GAE7D,CA3ZIvzD,CAAI,EAAQ,K,2DCHhB,SACE+/D,IAAG,SAACC,GACFA,EAAGC,cAAc15E,QACjBy5E,EAAGE,YAAY35E,OACjB,E,yFCDF,SACEw5E,IAAG,SAACC,IACF,IAAAG,SAAQtiF,KAAM,UAAW,gBAAiB,kBAC1CA,KAAKuiF,OAASJ,EACdniF,KAAKwiF,YAAcxiF,KAAKyiF,OAAOC,gBAAgBv9E,MAC/CnF,KAAK2iF,WAAW,EAClB,EACAhlE,KAAI,SAACwkE,GACHniF,KAAK2iF,aACL3iF,KAAK4iF,gBACP,EAEA9lB,QAAO,SAACtwD,GACiB,OAAnB,IAAAq2E,YAAWr2E,IACbxM,KAAKuiF,OAAOO,YAAY9iF,KAAKsK,GAEjC,EAEAy4E,cAAa,SAACv2E,GACZxM,KAAKgjF,cAAc,EAAGx2E,EACxB,EAEAo2E,eAAc,SAACp2E,GACbxM,KAAKgjF,cAAc,EAAGx2E,EACxB,EAEAw2E,cAAa,SAACC,EAAiBz2E,GACvB,IAAEg2E,EAAoBxiF,KAAT,YAAEkjF,EAAOljF,KAAL,GACjBmjF,EAAYnjF,KAAI,QAChBojF,EAAYH,EAAS,MAAQ,SACnCjjF,KAAKqjF,YAAYC,UAAUF,GAAW,UAAGpjF,KAAKujF,KAAI,iBAE7CJ,IACHA,EAAU,IAAI,IAAQ,CACpBK,YAAW,WACT,MAAO,CACL3vD,EAAG2uD,EAAY7+E,IAAI,KACnBiqC,EAAG40C,EAAY7+E,IAAI,KAEvB,EACA8/E,YAAW,SAAC,G,IAAE5vD,EAAC,IAAE+Z,EAAC,IAChB40C,EAAY/8E,IAAI,CAAEouB,EAAC,EAAE+Z,EAAC,GACxB,EACA81C,QAAO,SAACl3E,EAAI22E,GACVD,EAAGp/E,QAAQ,oBAAqBq/E,EAClC,EACAQ,OAAM,SAACn3E,EAAI22E,GACTD,EAAGp/E,QAAQ,cAAeq/E,EAC5B,EACAS,MAAK,SAACp3E,EAAI22E,GACRD,EAAGp/E,QAAQ,kBAAmBq/E,EAChC,IAEFnjF,KAAKmjF,QAAUA,GAGjBF,EAASE,EAAQnnE,MAAMxP,GAAM22E,EAAQxlE,MACvC,EAEAglE,WAAU,SAACM,GACD,IAAAM,EAASvjF,KAAI,KACfojF,EAAYH,EAAS,MAAQ,SAC7BY,EAAWZ,EAAS,KAAO,MAC3Ba,EAAY,CAAEr8E,GAAE,KAAE0D,IAAG,OACrBs3E,EAASziF,KAAKqjF,YACd5sD,EAAU,CAAC,UAAG8sD,EAAI,cACvBN,GAAUxsD,EAAQ9xB,KAAK,UAAG4+E,EAAI,iBAC/B9sD,EAAQhhB,SAAQ,SAAAyO,GAAO,OAAAu+D,EAAOa,UAAUF,GAAWl/D,EAA5B,IACvB4/D,EAAUD,GAAUnvE,SAAU,QAAS1U,KAAK88D,SAC5CgnB,EAAUD,GAAUpB,EAAQ,YAAaziF,KAAK+iF,eAC9Ce,EAAUD,GAAUnvE,SAAU,UAAW1U,KAAK4iF,eAChD,E,6jBCtDK,SAASmB,EAAmEC,GACjF,OAAOA,CACT,C,QAEA,YAWE,WAAY7tD,GAAZ,MACE,YAAM,IAAE,KACR,EAAKle,OAASke,GAAK,CAAC,EACpB,EAAK+sD,GAAK,EAAKjrE,OAAOirE,IAAM,CAAC,EAC7B,IAAMe,EAAM,EAAKhsE,OAAOisE,Y,OACxB,EAAKD,IAAMA,EACX,EAAKV,KAAO,EAAKtrE,OAAOksE,aACxB,EAAKC,WAAa,UAAGH,EAAG,SACxB,EAAKI,WAAa,UAAGJ,EAAG,SACxB,EAAKK,SAAW,UAAGL,EAAG,eACtB,EAAKM,WAAa,UAAG,EAAKhB,KAAI,WAC9B,EAAKd,OAAS,EAAKS,GAAGsB,OACtB,EAAKxiC,KAAK,EAAK/pC,Q,CACjB,CAiHF,OAzIwE,OA+BtE,YAAAwsE,cAAA,SAAcv5E,GAAS,EAMvB,YAAAm4E,UAAA,WACE,OAAOrjF,KAAKyiF,OAAOiC,YACrB,EAMA,YAAAC,cAAA,WACE,OAAO3kF,KAAKyiF,OAAOmC,SACrB,EAMA,YAAAC,eAAA,WACE,OAAO7kF,KAAKyiF,OAAOqC,YACrB,EAOA,YAAA3pD,OAAA,SAAO/mB,GACL,IAAIk0B,EAAOl0B,EAAGob,wBACd,MAAO,CACLsZ,IAAKR,EAAKQ,IAAM10B,EAAG8b,cAAcpT,KAAKuvB,UACtC3c,KAAM4Y,EAAK5Y,KAAOtb,EAAG8b,cAAcpT,KAAKmvB,WAE5C,EAOA,YAAA+V,KAAA,SAAK7rB,GAAS,EAQd,YAAA4uD,QAAA,SAAQxC,EAAgB1/E,QAAA,IAAAA,IAAAA,EAAA,IACtB,IAAMyH,EAAKtK,KAAKsK,GAGhB,GAFAi4E,EAAOz+E,QAAQ,cAAOwG,EAAE,WAAWzH,IAE/BA,IAAWA,EAAQmiF,MAAvB,CAKA,IAAMC,EAASpiF,EAAQoiF,QAAU1C,EAC3Br1E,EAASlN,KAAKkiF,IAAIK,EAAQ0C,EAAQpiF,GAGxC,OAFA0/E,EAAOz+E,QAAQ,cAAOwG,GAAM4C,EAAQrK,GACpC0/E,EAAOz+E,QAAQ,MAAOwG,EAAI4C,EAAQrK,GAC3BqK,C,CARLq1E,EAAOz+E,QAAQ,gBAASwG,GAAMzH,EASlC,EAQA,YAAAqiF,SAAA,SAAS3C,EAAgB1/E,QAAA,IAAAA,IAAAA,EAAA,IACvB,IAAMyH,EAAKtK,KAAKsK,GACV26E,EAASpiF,EAAQoiF,QAAU1C,EACjCA,EAAOz+E,QAAQ,eAAQwG,EAAE,WAAWzH,GACpC,IAAMqK,EAASlN,KAAK2d,KAAK4kE,EAAQ0C,EAAQpiF,GAGzC,OAFA0/E,EAAOz+E,QAAQ,eAAQwG,GAAM4C,EAAQrK,GACrC0/E,EAAOz+E,QAAQ,OAAQwG,EAAI4C,EAAQrK,GAC5BqK,CACT,EAKA,YAAA41E,YAAA,SAAYj5E,GACV7J,KAAKkjF,GAAGiC,SAASxnE,KAAK3d,KAAKsK,GAAcT,EAC3C,EAQA,YAAAq4E,IAAA,SAAIgB,EAAY+B,EAAapiF,GAAa,EAQ1C,YAAA8a,KAAA,SAAKulE,EAAY+B,EAAapiF,GAAa,EAC7C,EAzIA,CAAwE,K,ySCAxE,QAtB0D,CACxDq/E,IAAG,SAACC,EAAI/5E,EAAGyB,GAAX,gBAAW,IAAAA,IAAAA,EAAA,IACT,IAAMu7E,EAAwB,GAC1BC,EAAax7E,EAAKy7E,WAAanD,EAAGoD,iBAetC,OAdAF,GAAa,IAAAnkF,SAAQmkF,GAAc,EAAD,GAAKA,GAAU,GAAI,CAACA,IAE3CpvE,OAAOuvE,SAAS/vE,SAAQ,SAAA6vE,GACjC,IAAKA,EAAU3hF,IAAI,aAEjB,OADAyhF,EAASzgF,KAAK2gF,GACP,EAAKpC,GAAGuC,WAAW,+BAAgC,CACxDH,UAAS,IAGbA,EAAUlgF,QACZ,IAEA+8E,EAAGjsE,OAAOkvE,GAEHC,CACT,E,2TCPIK,EAAS,QAEf,SACExD,IAAG,SAACK,EAAQ0C,EAAQp7E,GAApB,gBAAoB,IAAAA,IAAAA,EAAA,KAClB,IAAAy4E,SACEtiF,KACA,cACA,UACA,SACA,QACA,cACA,kBACA,cACA,mBAEM,IAAAumB,EAAsC1c,EAAI,OAAlC8I,EAA8B9I,EAAI,MAA3BmW,EAAuBnW,EAAI,KAArB,EAAiBA,EAAI,QAArBs5E,OAAO,IAAG,GAAC,EAAC,EACnC/uE,EAAKmS,EAAOo/D,QACZ1tE,EAAS,EAAH,CACVoa,IAAKje,EAAG8b,cACRwzD,QAAS1jF,KAAK0jF,QACdE,MAAO5jF,KAAK4jF,MACZD,OAAQ3jF,KAAK2jF,OACbH,YAAaxjF,KAAKwjF,YAClBC,YAAazjF,KAAKyjF,YAClBmC,aAAc,WAAM,SAAKA,YAAL,EACpBC,aAAc,WAAM,SAAKA,YAAL,GACjB1C,GAELnjF,KAAK8lF,cACL9lF,KAAK6J,KAAOA,EACZ7J,KAAKuiF,OAASA,EACdviF,KAAKkjF,GAAKX,EAAOwD,WACjB/lF,KAAKumB,OAASA,EACdvmB,KAAKgmF,OAAiB,aAARhmE,EACdhgB,KAAKimF,gBAAkBjmF,KAAKkmF,qBAC5BlmF,KAAK6lF,aAAe7lF,KAAKmmF,kBACzBnmF,KAAK4lF,aAAe5lF,KAAKomF,kBACzB,IAAIC,EAAMrmF,KAAKmjF,QAaf,OAXKkD,EAIHA,EAAIt2E,WAAWkI,IAHfouE,EAAM,IAAI,IAAQpuE,GAClBjY,KAAKmjF,QAAUkD,GAKjB1zE,GAAS0zE,EAAIrqE,MAAMrJ,GACnB3S,KAAKsmF,WAAW,GAChBtmF,KAAKkjF,GAAGp/E,QAAQ,UAAG4hF,EAAM,UAAU1lF,KAAKumF,gBAEjCF,CACT,EAEAE,aAAY,WACV,MAAO,CACLvmE,KAAMhgB,KAAK6J,KAAKmW,KAChBuG,OAAQvmB,KAAKumB,OACbs/D,aAAc7lF,KAAK6lF,aACnBD,aAAc5lF,KAAK4lF,aAEvB,EAEAjoE,KAAI,WACF3d,KAAKsmF,YACP,EAEAR,YAAW,YACR9lF,KAAKwmF,QAAU,IAAI/wE,SAAQ,SAACgxE,GACnB,IAAAC,EAAUD,EAAI,MACtBC,GAASA,EAAMzhE,WAAWnH,YAAY4oE,EACxC,IACA1mF,KAAKwmF,OAAS,EAChB,EAEAN,mBAAkB,WAAlB,WACQS,EAAa3mF,KAAI,SAEvB,IAAK2mF,EAAU,CACP,MAAuB3mF,KAArBuiF,EAAM,SAAEW,EAAE,KAAE,EAAI,OAClBe,EAAM1B,EAAOqE,YAAY1C,YACzB2C,EAAUnyE,SAASC,cAAc,OACjCmyE,EAAUpyE,SAASC,cAAc,OACjCoyE,EAAe,uBAAe9C,EAAG,4BAAoBA,EAAG,8CAC9CA,EAAG,+BAAuBA,EAAG,wCAE7C0C,EAAWjyE,SAASC,cAAc,QACzBC,UAAY,UAAGqvE,EAAG,UAC3B4C,EAAQjyE,UAAY,UAAGqvE,EAAG,sBAAcA,EAAG,iBAC3C6C,EAAQlyE,UAAY,UAAGqvE,EAAG,sBAAcA,EAAG,iBAC3C4C,EAAQG,UAAYD,EACpBD,EAAQE,UAAYD,EACpBJ,EAASliE,YAAYoiE,GACrBF,EAASliE,YAAYqiE,GACrBvE,EAAOiC,OAAOyC,mBAAmBxiE,YAAYkiE,GAC7C3mF,KAAK2mF,SAAWA,EAChB3mF,KAAKknF,aAAeL,EACpB7mF,KAAKmnF,aAAeL,EACpB9mF,KAAKonF,oBAAsBP,EAAQ3mD,cAAc,WAAI+jD,EAAG,wBACxDjkF,KAAKqnF,oBAAsBP,EAAQ5mD,cAAc,WAAI+jD,EAAG,wBAExDf,EAAGz7E,GACD,8BACA,IAAA6/E,WAAS,W,MACP,EAAKC,eACL,EAAKC,QAAoB,QAAX,IAAKhB,cAAM,SAAE/wE,SAAQ,SAACgxE,GAAc,SAAKgB,YAAYhB,EAAjB,IACpD,GAAG,K,CAIP,OAAOE,CACT,EAEAP,gBAAe,WAAf,WACMl5E,EAAc,GACZkH,EAAKpU,KAAKumB,OAAOo/D,QACf,EAAoBvxE,EAAE,WAAtB6Q,OAAU,IAAG,GAAC,EAAC,EAGvB,OAFA,IAAA1f,MAAK0f,EAAWsN,UAAU,SAAAk0D,GAAQ,OAACv5E,EAASA,EAAOnI,OAAOqP,IAAOqyE,EAAO,EAAKiB,iBAAiBjB,GAAQ,GAApE,IAE3Bv5E,EAAOnI,OAAO/E,KAAK0nF,iBAAiBziE,GAC7C,EAEAkhE,gBAAe,WACb,OAAOnmF,KAAK0nF,iBAAiB1nF,KAAKumB,OAAOo/D,QAC3C,EAEA4B,aAAY,SAACf,GAAb,IACMmB,EACAtoB,EAFN,QAGGmnB,GAAUxmF,KAAKwmF,QAAQ/wE,SAAQ,SAACgxE,GACvB,IAAAz+D,EAAWy+D,EAAI,OACjB5kE,EAAM8lE,IAAW3/D,EAASq3C,EAAU,EAAKuoB,cAAc5/D,GAC7D2/D,EAAS3/D,EACTq3C,EAAUx9C,GACV,IAAAtc,MAAK,EAAKsiF,kBAAkBpB,EAAM5kE,IAAM,SAAC5b,EAAK5E,GAAQ,OAAColF,EAAKplF,GAAO4E,CAAb,IACtDwgF,EAAKqB,WAAajmE,CACpB,GACF,EAEAgmE,kBAAiB,SAACpB,EAAWn+C,GAC3B,IAAMp7B,EAAqC,CAAC,EACpC47B,EAA6BR,EAAI,IAA5BxV,EAAwBwV,EAAI,OAApB5Y,EAAgB4Y,EAAI,KAAdnC,EAAUmC,EAAI,MAEzC,OAAQm+C,EAAKjkF,MACX,IAAK,IACH0K,EAAO0gC,EAAI9E,EACX,MACF,IAAK,IACH57B,EAAO0gC,EAAI9E,EAAMhW,EACjB,MACF,IAAK,IACH5lB,EAAO2mB,EAAInE,EACX,MACF,IAAK,IACHxiB,EAAO2mB,EAAInE,EAAOyW,EAClB,MACF,IAAK,IACHj5B,EAAO2mB,EAAInE,EAAOyW,EAAQ,EAC1B,MACF,IAAK,IACHj5B,EAAO0gC,EAAI9E,EAAMhW,EAAS,EAI9B,OAAO5lB,CACT,EAEAu6E,YAAW,SAAChB,QAAA,IAAAA,IAAAA,EAAA,IACV,IAAMryE,EAAKqyE,EAAKC,OAAShyE,SAASC,cAAc,OAC1CozE,EAAK,KACLC,EAAYvB,EAAKvnC,OAAS,EAAI,EAChC+oC,EAAQ7zE,EAAGme,SAAS,GAsBxB,OArBAne,EAAGuI,MAAQ,gDAAyC8pE,EAAKvnC,OAAS,QAAU,MAAK,KAE5E9qC,EAAGme,SAAS5xB,UACfsnF,EAAQvzE,SAASC,cAAc,QACzBgI,MAAQ,iEACdvI,EAAGqQ,YAAYwjE,IAGbxB,EAAK74C,GACPx5B,EAAGuI,MAAMwpB,MAAQ,OACjB/xB,EAAGuI,MAAMmW,OAAS,UAAGk1D,GAAS,OAAGD,GACjC3zE,EAAGuI,MAAMmsB,IAAM,UAAG29C,EAAK74C,GAAC,OAAGm6C,GAC3B3zE,EAAGuI,MAAM+S,KAAO,IAEhBtb,EAAGuI,MAAMwpB,MAAQ,UAAG6hD,GAAS,OAAGD,GAChC3zE,EAAGuI,MAAMmW,OAAS,OAClB1e,EAAGuI,MAAM+S,KAAO,UAAG+2D,EAAK5yD,GAAC,OAAGk0D,GAC5B3zE,EAAGuI,MAAMmsB,IAAM,WAAIi/C,KAGpBtB,EAAKC,OAAS1mF,KAAKimF,gBAAgBxhE,YAAYrQ,GACzCA,CACT,EAEAwzE,cAAa,SAACxzE,GACZ,OAAOpU,KAAKuiF,OAAOiC,OAAOoD,cAAcxzE,EAAI,CAAE8zE,SAAU,GAC1D,EAEAR,iBAAgB,SAACtzE,GAAjB,WACUvK,EAAS7J,KAAI,KACf8nF,EAAa9nF,KAAK4nF,cAAcxzE,GAC9B00B,EAA6Bg/C,EAAU,IAAlCh1D,EAAwBg1D,EAAU,OAA1Bp4D,EAAgBo4D,EAAU,KAApB3hD,EAAU2hD,EAAU,MAEzCtB,EAAkB,CACtB,CAAEhkF,KAAM,IAAKorC,EAAG9E,GAChB,CAAEtmC,KAAM,IAAKorC,EAAG9E,EAAMhW,GACtB,CAAEtwB,KAAM,IAAKqxB,EAAGnE,GAChB,CAAEltB,KAAM,IAAKqxB,EAAGnE,EAAOyW,GACvB,CAAE3jC,KAAM,IAAKqxB,EAAGnE,EAAOyW,EAAQ,GAC/B,CAAE3jC,KAAM,IAAKorC,EAAG9E,EAAMhW,EAAS,IAC/BhuB,KAAI,SAAA2hF,GAAQ,cACTA,GAAI,CACPz+D,OAAQ5T,EACR0zE,WAAU,EACVpB,MAAO78E,EAAK29E,OAAS,EAAKC,YAAYhB,IAJ1B,IAQd,OAFAD,EAAO/wE,SAAQ,SAAAgxE,GAAI,MAAI,OAAW,QAAX,IAAKD,cAAM,eAAE7hF,KAAK8hF,EAAK,IAEvCD,CACT,EAEA2B,aAAY,SAACC,EAAmB1sC,QAAA,IAAAA,IAAAA,EAAA,KAC9B,IAAIxuC,EAAS,EAMb,OALCk7E,GAAa,IAAIn+E,MAAM,KAAKwL,SAAQ,SAAAgxE,GACnC,IAAM4B,EAAU5B,EAAK6B,OACf9nF,EAAK,mBAAYk7C,EAAKvyB,cAAa,KACb,IAAxBk/D,EAAQxjF,QAAQrE,KAAW0M,EAASq7E,WAAWF,EAAQ54E,QAAQjP,EAAI,KACzE,IACO0M,CACT,EAEAs7E,aAAY,SAACJ,EAAmB1sC,EAAch0C,GAC5C,IAAMlH,EAAK,mBAAYk7C,EAAKvyB,cAAa,KACnCljB,EAAM,UAAGzF,GAAE,OAAGkH,EAAK,KACrBwF,GAAUk7E,GAAa,IACxBn+E,MAAM,KACNnF,KAAI,SAAA2hF,GAGH,OAD4B,IADZA,EAAK6B,OACTzjF,QAAQrE,KAAWimF,EAAOxgF,GAC/BwgF,CACT,IACCh3B,KAAK,KAGR,OAFIviD,EAAOrI,QAAQrE,GAAM,IAAG0M,GAAU,WAAIjH,IAEnCiH,CACT,EAEAs2E,YAAW,WACH,IAAEj9D,EAAmBvmB,KAAb,OAAEgmF,EAAWhmF,KAAL,OAChB,EAA2BumB,EAAOkiE,WAAhC/4D,EAAI,OAAEoZ,EAAG,MAAEs/C,EAAS,YACxBv0D,EAAI,EACJ+Z,EAAI,EAUR,OARIo4C,GACFnyD,EAAI7zB,KAAKmoF,aAAaC,GACtBx6C,EAAI5tC,KAAKmoF,aAAaC,EAAW,OAEjCv0D,EAAI00D,WAAW74D,GAAQ,GACvBke,EAAI26C,WAAWz/C,GAAO,IAGjB,CAAEjV,EAAC,EAAE+Z,EAAC,EACf,EAEA61C,YAAW,SAAC,G,IAAE5vD,EAAC,IAAE+Z,EAAC,IAAE5rB,EAAG,MAAEukB,EAAQ,WAAEJ,EAAK,QAAErT,EAAM,SACxC,EAAyB9yB,KAAvBumB,EAAM,SAAEy/D,EAAM,SAAE9C,EAAE,KACpBhlB,EAAO,KACPwqB,GAAO1mE,EACP0N,EAAO,UAAGgY,SAAS7T,EAAG,KAAG,OAAGqqC,GAC5Bp1B,EAAM,UAAGpB,SAASkG,EAAG,KAAG,OAAGswB,GAC7ByqB,EAAU,CAAC,EAEf,GAAI3C,EAAQ,CACV,IAAIoC,EAAY7hE,EAAOkiE,WAAW,cAAgB,GAClDL,EAAYpoF,KAAKwoF,aAAaJ,EAAW,IAAK14D,GAE9Ci5D,EAAU,CAAEP,UADZA,EAAYpoF,KAAKwoF,aAAaJ,EAAW,IAAKt/C,GACvB4/C,IAAG,GAC1BniE,EAAOqiE,SAASD,EAAS,CAAEE,YAAa7mE,G,KACnC,CACL,IAAM,EAAY,CAAEukB,SAAQ,EAAEJ,MAAK,EAAErT,OAAM,GACrC,EAAa,CAAEpD,KAAI,EAAEoZ,IAAG,EAAE4/C,IAAG,IACnC,IAAAznF,MAAK,GAAMwU,SAAQ,SAAAnR,GACjB,IAAMmiB,EAAO,EAAKniB,GACdmiB,IAAM,EAAMniB,GAAOmiB,EACzB,IACAkiE,EAAU,EACVpiE,EAAOqiE,SAASD,EAAS,CAAEE,YAAa7mE,G,CAG1CkhE,SAAAA,EAAI4F,OAAOC,qBAAqBJ,EAAS,CAAEtD,WAAYnC,EAAG8F,eAC5D,EAEAC,aAAY,WACF,IAAA1iE,EAAWvmB,KAAI,OACvB,MAAO,CACLumB,OAAM,EACNhI,OAAQgI,EAAOhI,SACfzd,MAAOylB,EAAOzlB,QAElB,EAEA4iF,QAAO,SAAC/wE,GACA,MAAmC3S,KAAjCumB,EAAM,SAAEg8D,EAAM,SAAEyD,EAAM,SAAEn8E,EAAI,OAC5Bq/E,EAAoBr/E,EAAI,OAAhB65E,EAAY75E,EAAI,QACxB26E,EAAWjC,EAAM,OACnB5lE,EAAQ4J,EAAOkiE,WACfliD,EAAW,WACX4iD,EAAS,CAAC5iD,EAAU,YAE1B,GADAm9C,GAAWA,EAAQ1jF,KAAKipF,iBACpBjD,GAEArpE,EAAM4pB,WAAaA,EAAU,CAC3B,MAA+Bi+C,EAAOrpD,OAAO5U,EAAOo/D,SAAlDj2D,EAAI,OAAE,EAAG,MAAEyW,EAAK,QAAErT,EAAM,SAC1B,EAASvM,EAAOhI,SAChB6qE,OAAS,EAGb,EAAG,CACD,IAAMC,EAAS,EAAOZ,WACtBW,EAAYD,EAAOtkF,QAAQwkF,EAAO9iD,WAAa,EAAI,EAAS,KAC5D,EAAS,EAAOhoB,Q,OACT,IAAW6qE,GAGpB,GAAIF,EAAQ,CACJ,MAAW1E,EAAO8E,uBAAuB32E,GAC/C+c,EADS,IAET,EAFY,G,MAGP,GAAI05D,EAAW,CACpB,IAAMG,EAAU/E,EAAOrpD,OAAOiuD,EAAUzD,SACxCj2D,GAAc65D,EAAQ75D,KACtB,GAAY65D,EAAQzgD,G,CAGtB9oC,KAAKyjF,YAAY,CACf5vD,EAAGnE,EACHke,EAAG,EACHzH,MAAO,UAAGA,EAAK,MACfrT,OAAQ,UAAGA,EAAM,MACjByT,SAAQ,G,CAGd,EAEAo9C,OAAM,W,IAAN,WAAO,kDACC,MAAyB3jF,KAAvB6lF,EAAY,eAAEh8E,EAAI,OAClB85E,EAAW95E,EAAI,OACvB7J,KAAKunF,aAAa1B,GAClBh8E,EAAK29E,OAAS3B,EAAapwE,SAAQ,SAACgxE,GAAc,SAAKgB,YAAYhB,EAAjB,IAClD58E,EAAK2/E,YAAcxpF,KAAKypF,gBAAgB5D,EAAa5vE,QAAO,SAACwwE,GAAc,OAAAA,EAAKvnC,MAAL,KAC3EykC,GAAUA,EAAO3jF,KAAKipF,eACxB,EAEArF,MAAK,SAACp3E,EAAW22E,EAAc71B,QAAA,IAAAA,IAAAA,EAAA,IACvB,MAAuBttD,KAArBuiF,EAAM,SAAE14E,EAAI,OAAES,EAAE,KAChBs5E,EAAU/5E,EAAI,MACtB+5E,GAASA,EAAMp3E,EAAI8gD,EAAK,EAAF,GAAI36C,MAAOnG,GAAO8gD,GAAQttD,KAAKipF,iBACrD1G,EAAOO,YAAYx4E,GACnBtK,KAAK0pF,iBACL1pF,KAAKkjF,GAAGp/E,QAAQ,UAAG4hF,EAAM,QAAQ1lF,KAAKumF,eACxC,EAEAmD,eAAc,WAAd,WACE,CAAC,IAAK,KAAKj0E,SAAQ,SAAAgxE,GACjB,IAAMC,EAAQ,EAAK,qBAAcD,IAC7BC,IAAOA,EAAM/pE,MAAMC,QAAU,OACnC,GACF,EAKA6sE,gBAAe,SAACjD,GAAhB,gBAAgB,IAAAA,IAAAA,EAAA,IACN,IAAAZ,EAAiB5lF,KAAI,aAC7BA,KAAK0pF,iBACLlD,EAAO/wE,SAAQ,SAAAgxE,GACL,IAAAz+D,EAAcy+D,EAAI,OAAV5yD,EAAM4yD,EAAI,EACpBkD,EAAa,EAAK/B,cAAc5/D,GAChC0zB,GAAO,IAAAkuC,aAAY/1D,GAAK,IAAM,IAC9Bg2D,EAAe,MAATnuC,EACNouC,EAAYH,EAAWE,EAAM,OAAS,OACtCE,EAAeJ,EAAWrhD,KAAKuhD,EAAM,OAAS,OAC9CG,EAAYH,EAAMC,EAAYH,EAAWxjD,MAAQ2jD,EAAYH,EAAW72D,OACxEm3D,EAAeJ,EAAME,EAAeJ,EAAWrhD,KAAKnC,MAAQ4jD,EAAeJ,EAAWrhD,KAAKxV,OAC3Fo3D,EAAc,EAAK,qBAAcxuC,EAAKvyB,gBACtCghE,EAAiB,EAAK,4BAAqBzuC,EAAKvyB,gBAChDihE,EAAiBF,EAAYvtE,MAG7BvY,EAAMwhF,aAAY,EAAZA,EACR3vE,QAAO,SAAAo0E,GAAQ,OAAAA,EAAK7nF,OAASikF,EAAKjkF,IAAnB,IAChBsC,KAAI,SAAAulF,GACG,MAA+BA,EAAKvC,WAAlCp4D,EAAI,OAAEyW,EAAK,QAAE2C,EAAG,MAAEhW,EAAM,SAE1Bw3D,EAAYT,EAAMn6D,EAAOyW,EAAQ2C,EAAMhW,EAC7C,MAAO,CACL0I,IAAK8uD,EAAYR,EAAYA,EAAYQ,GAHzBT,EAAMn6D,EAAOoZ,GAGoCkhD,EACjEtD,MAAO2D,EAEX,IACCp0E,QAAO,SAAAwwE,GAAQ,OAAAA,EAAKjrD,IAAM,CAAX,IACfzqB,MAAK,SAACnR,EAAG4lB,GAAM,OAAA5lB,EAAE47B,IAAMhW,EAAEgW,GAAV,IACf12B,KAAI,SAAA2hF,GAAQ,OAAAA,EAAKC,KAAL,IAAY,GAE3B,GAAItiF,EAAK,CACD,MAAqCA,EAAI0jF,WAAvCp4D,EAAI,OAAEyW,EAAK,QAAE,EAAG,MAAErT,EAAM,SAAEwV,EAAI,OAChCiiD,EAAUV,EAAMn6D,EAAOi6D,EAAWj6D,KAAO,EAAMi6D,EAAW7gD,IAC1D0hD,EAAYX,EAAMn6D,EAAO,EACzB+6D,EAAeZ,EAAMvhD,EAAK5Y,KAAO4Y,EAAKQ,IACtCwhD,EAAYT,EAAMn6D,EAAOyW,EAAQ,EAAMrT,EACvC43D,EAAeb,EAAMvhD,EAAK5Y,KAAO4Y,EAAKnC,MAAQmC,EAAKQ,IAAMR,EAAKxV,OAC9D63D,EAAWd,EAAMpD,EAAK74C,EAAI64C,EAAK5yD,EAC/B+2D,EAAYL,EAAUD,EAAYN,EAClCa,EAAO,UAAGF,EAAQ,MAClBj0E,EAAO6zE,EAAUT,EAAYQ,EAAYE,EAAYR,EACrDc,EAAUP,EAAUR,EAAeW,EAAeD,EAAeR,EACvEG,EAAextE,QAAU,GACzBwtE,EAAeP,EAAM,MAAQ,QAAUgB,EACvCT,EAAeP,EAAM,OAAS,OAAS,UAAGe,EAAS,MACnDR,EAAeP,EAAM,QAAU,UAAY,UAAGnzE,EAAI,MAClDyzE,EAAenD,UAAY,UAAG96E,KAAKikC,MAAM26C,GAAQ,MACjD,EAAK5H,GAAGp/E,QAAQ,UAAG4hF,EAAM,WAAW,EAAF,KAC7B,EAAKa,gBAAc,CACtBG,MAAOD,EACPb,aAAY,EACZmF,QAAS3mF,EACTumF,SAAQ,EACRC,UAAS,EACTl0E,KAAI,EACJo0E,QAAO,EACPZ,YAAW,EACXC,eAAc,I,CAGpB,GACF,EAEA7D,WAAU,SAACrD,GACH,IAAEM,EAAiBvjF,KAAb,KAAEuiF,EAAWviF,KAAL,OACdojF,EAAYH,EAAS,MAAQ,SAC7BxsD,EAAU,CAAC,UAAG8sD,EAAI,iBAChBiB,EAAWjC,EAAM,OACnBzlE,EAAO0nE,EAAOI,UACpBnuD,EAAQhhB,SAAQ,SAAAyO,GAAO,OAAApH,EAAKwmE,UAAUF,GAAWl/D,EAA1B,IACvBsgE,EAAOvB,EAAS,kBAAoB,mBACtC,E,2DC3cF,SACEf,IAAG,SAACC,GACF,GAAKA,EAAGqC,OAAO3vC,WAAf,CACA,IAAMuwC,EAAwB,GAE9BjD,EAAGoD,iBAAiB9vE,SAAQ,SAAA6vE,GAC1B,IAAM0F,EAAO1F,EAAUD,aACjBlyE,EAAO63E,GAAQA,EAAK/0E,QAAO,SAAC8oE,GAAW,OAAAA,EAAEp7E,IAAI,aAAN,IAAqB,GAClEwP,GAAQiyE,EAASzgF,KAAKwO,EACxB,IAEAiyE,EAASzkF,QAAUwhF,EAAGjsE,OAAOkvE,EATI,CAUnC,E,2DCZF,SACElD,IAAG,SAACC,EAAI8I,EAAKphF,GACX,QADW,IAAAA,IAAAA,EAAA,IACNs4E,EAAGqC,OAAO3vC,YAAehrC,EAAK40C,MAAnC,CACA,IAAM2mC,EAAwB,GAE9BjD,EAAGoD,iBAAiB9vE,SAAQ,SAAA6vE,GAI1B,IAHA,IAAInyE,EAAOmyE,EAAU/mE,SAGdpL,IAASA,EAAKxP,IAAI,eACvBwP,EAAOA,EAAKoL,SAGdpL,GAAQiyE,EAASzgF,KAAKwO,EACxB,IAEAiyE,EAASzkF,QAAUwhF,EAAGjsE,OAAOkvE,EAdmB,CAelD,E,2DCjBF,SACElD,IAAG,SAACC,GACF,GAAKA,EAAGqC,OAAO3vC,WAAf,CACA,IAAMuwC,EAAwB,GAE9BjD,EAAGoD,iBAAiB9vE,SAAQ,SAAAie,GAC1B,IAAMnV,EAASmV,EAAInV,SACnB,GAAKA,EAAL,CAEA,IAGIpL,EAHEsY,EAAMlN,EAAO8mE,aAAa1kF,OAC5BuqF,EAAO,EACPznF,EAAK,EAIT,GACEynF,IAEA/3E,GADA1P,EAAKiwB,EAAI5yB,QAAUoqF,IACNz/D,EAAMlN,EAAO4sE,WAAW1nF,GAAM,WACpC0P,IAASA,EAAKxP,IAAI,eAE3ByhF,EAASzgF,KAAKwO,GAAQugB,EAdH,CAerB,IAEA0xD,EAASzkF,QAAUwhF,EAAGjsE,OAAOkvE,EAtBI,CAuBnC,E,2DCzBF,SACElD,IAAG,SAACC,GACF,GAAKA,EAAGqC,OAAO3vC,WAAf,CACA,IAAMuwC,EAAwB,GAE9BjD,EAAGoD,iBAAiB9vE,SAAQ,SAAAie,GAC1B,IAAMnV,EAASmV,EAAInV,SACnB,GAAKA,EAAL,CAEA,IAEIpL,EAFA+3E,EAAO,EACPznF,EAAK,EAIT,GACEynF,IAEA/3E,GADA1P,EAAKiwB,EAAI5yB,QAAUoqF,IACN,EAAI3sE,EAAO4sE,WAAW1nF,GAAM,WAClC0P,IAASA,EAAKxP,IAAI,eAE3ByhF,EAASzgF,KAAKwO,GAAQugB,EAbH,CAcrB,IAEA0xD,EAASzkF,QAAUwhF,EAAGjsE,OAAOkvE,EArBI,CAsBnC,E,uECvBF,SACElD,IAAG,SAACC,EAAI/5E,EAAGyB,QAAA,IAAAA,IAAAA,EAAA,IACD,IAAA0c,EAAW1c,EAAI,OACnBgH,EAAsB,GAE1B,IAAK0V,EAAO5iB,IAAI,UAAW,OAAOkN,EAGlC,IAAMrO,EAAO+jB,EAAO5iB,IAAI,QAClBynF,EAAWjJ,EAAGkJ,MAAMC,iBAK1B,KAJY,IAAAC,SAAQH,EAAStmF,KAAI,SAAA0mF,GAAO,OAAAA,EAAIC,SAASjpF,EAAb,KAAqB7B,OAInD,CACR,IAAM+qF,EAAQvJ,EAAGE,YAAYsJ,SAC7B96E,EAAW66E,EAAMz1E,QAAO,SAAA21E,GAAQ,OAAAA,EAAKjoF,IAAI,WAAa,cAAOnB,EAA7B,IAChCkpF,EAAMtmF,OAAOyL,E,CAGf,OAAOA,CACT,E,iSCvBF,SACEqxE,IAAG,SAACC,GACF,IAAMe,EAAKf,EAAG4D,WACRviF,EAAS,EAAH,GAAO2+E,EAAGoD,kBAAgB,GACtC/hF,EAAO7C,QAAUuiF,EAAGz9E,IAAI,YAAajC,EACvC,E,yFCDF,SAAe,IAAAmD,QAAO,CAAC,EAAG,aAAiB,CACzCq7C,KAAI,YACF,IAAAsgC,SAAQtiF,KAAM,cAAe,aAAc,YAC3CA,KAAKokF,WAAapkF,KAAKikF,IAAM,eAC7BjkF,KAAKqkF,WAAarkF,KAAKikF,IAAM,WAC/B,EAEAhB,OAAM,WAEJjjF,KAAK2T,IAAIC,KAAK,KAAKi4E,UAAU7rF,KAAK8rF,aAAaC,SAAS/rF,KAAKgsF,YAAYC,MAAMjsF,KAAKksF,SACtF,EAOAJ,YAAW,SAAC5gF,GACVA,EAAEmjB,kBACF,IAAI89D,GAAQ,gBAAEjhF,EAAEqb,QAGZ4lE,EAAMzzE,KAAK,SAAS/U,IAAI,eAC1BwoF,EAAM7mE,SAAStlB,KAAKokF,YACpBpkF,KAAKosF,YAAYD,EAAMxoF,IAAI,IAE/B,EAOAqoF,WAAU,SAAC9gF,GACTA,EAAEmjB,mBACU,gBAAEnjB,EAAEqb,QACV8lE,YAAYrsF,KAAKokF,YAGnBpkF,KAAKssF,OAAOtsF,KAAKssF,MAAMhsD,IAAI,CAAE5Q,MAAO,IAAMoZ,KAAM,KACtD,EAOAojD,SAAQ,SAAChhF,GACPA,EAAEmjB,kBACF,IAAI89D,GAAQ,gBAAEjhF,EAAEqb,QAGX4lE,EAAMzzE,KAAK,SAAS/U,IAAI,eAE7BwoF,EAAMzzE,KAAK,SAASrJ,UACpBrP,KAAKusF,cACLvsF,KAAKwsF,QACP,EAOAC,iBAAgB,SAACtnF,GACfnF,KAAKssF,MAAMpW,KAAK,UAAY/wE,EAAMunF,UACpC,G,wEC/DF,SACExK,IAAG,SAACK,EAAQ0C,EAAQp7E,GAApB,gBAAoB,IAAAA,IAAAA,EAAA,IAClBo7E,GAAUA,EAAOx/E,KAAOw/E,EAAOx/E,IAAI,SAAU,GAC7C,IAAMwS,EAASsqE,EAAOqE,YAChB+F,EAAQpK,EAAOqK,MACf3I,EAAMhsE,EAAOisE,YAGnB,GAFAlkF,KAAK2f,GAAK4iE,EAAOsK,aAAe,MAE3B7sF,KAAK60D,QAAS,CACjB,IAAMi4B,EAAU9sF,KAAK+sF,YAAY,YAAa,YAAa,QACrDC,EAAUhtF,KAAK+sF,YAAY,MAAO,YAAa,OACrD/sF,KAAKitF,WAAaH,EAAQ3nF,MAC1BnF,KAAKktF,UAAYF,EAAQ7nF,MACzB,IAAM0vD,GAAU,QAAS,MAAO,CAAEs4B,MAAO,UAAGlJ,EAAG,eAC/CpvB,EAAQpwC,YAAYqoE,EAAQ14E,IAC5BygD,EAAQpwC,YAAYuoE,EAAQ54E,IAC5BpU,KAAK60D,QAAUA,C,CAGjB83B,EACGxvE,KAAK,CACJc,MAAOhG,EAAOm1E,aACdruE,QAAS/e,KAAK60D,UAEfkxB,WACAl6E,KAAK,eAAe,WAAM,OAAA02E,EAAOO,YAAY,UAAG,EAAKx4E,IAA3B,IAC7BtK,KAAKitF,WAAWI,WAAW9K,EAAO+K,QAAQzjF,EAAK0jF,WAC/CvtF,KAAKktF,UAAUG,WAAW9K,EAAOiL,OAAO3jF,EAAK4jF,SAC/C,EAEA9vE,KAAI,SAAC4kE,GACH,IAAMoK,EAAQpK,EAAOqK,MACrBD,GAASA,EAAMvvE,OACjB,EAEA2vE,YAAW,SAACW,EAAkB5sB,EAAe4L,GAC3C,IAAM/sD,EAAK3f,KAAKkjF,GAAG2J,YACb1nF,EAAQwa,EAAGguE,aAAa,CAC5BjhB,MAAK,EACLghB,SAAQ,EACR5sB,MAAK,IAQP,MAAO,CAAE37D,MAAK,EAAEiP,GALL,IAAIuL,EAAGiuE,WAAW,CAC3BzoF,MAAK,EACL8S,OAAQ0H,EAAGinE,cACH/yE,SAASO,GAGrB,E,uECvDF,SAKEy5E,UAAS,WACP,IAAMtvD,EAAI7pB,SAEV,SAAI6pB,EAAEuvD,mBAAqBvvD,EAAEwvD,yBAA2BxvD,EAAEyvD,qBAI5D,EAOA/K,OAAM,SAAC7uE,GACL,IAAI6vE,EAAM,GAcV,OAZI7vE,EAAG65E,kBACL75E,EAAG65E,oBACM75E,EAAG85E,yBACZjK,EAAM,SACN7vE,EAAG85E,2BACM95E,EAAG+5E,sBACZlK,EAAM,MACN7vE,EAAG+5E,wBACM/5E,EAAGg6E,qBACZh6E,EAAGg6E,sBAGEnK,CACT,EAKAoK,QAAO,WACL,IAAM9vD,EAAS7pB,SAEX1U,KAAK6tF,cACHtvD,EAAE+vD,eAAgB/vD,EAAE+vD,iBACf/vD,EAAEgwD,qBAAsBhwD,EAAEgwD,uBAC1BhwD,EAAEiwD,oBAAqBjwD,EAAEiwD,sBACzBjwD,EAAEkwD,kBAAkBlwD,EAAEkwD,mBAEnC,EAQAC,UAAS,SAACzK,GACHjkF,KAAK6tF,cACR7tF,KAAK8iF,YAAY,CAAEmC,OAAQjlF,KAAKilF,SAChCvwE,SAASkJ,oBAAoB,UAAGqmE,GAAO,GAAE,oBAAoBjkF,KAAK0uF,WAEtE,EAEAxM,IAAG,SAACK,EAAQ0C,EAAQp7E,QAAA,IAAAA,IAAAA,EAAA,IAClB7J,KAAKilF,OAASA,EACN,IAAA1+D,EAAW1c,EAAI,OACjB8kF,GAAW,IAAAC,WAAUroE,GAAUA,EAAS7R,SAASwrB,cAAc3Z,GAC/D09D,EAAMjkF,KAAKijF,OAAO0L,GAAYpM,EAAOsM,gBAC3C7uF,KAAK0uF,UAAY1uF,KAAK0uF,UAAU3iF,KAAK/L,KAAMikF,GAC3CvvE,SAAS4I,iBAAiB2mE,EAAM,mBAAoBjkF,KAAK0uF,WACzDnM,EAAOz+E,QAAQ,sBACjB,EAEA6Z,KAAI,SAAC4kE,EAAQ0C,GACPA,GAAUA,EAAOx/E,KAAKw/E,EAAOx/E,IAAI,UAAU,GAC/CzF,KAAKquF,UACD9L,GAAQA,EAAOz+E,QAAQ,sBAC7B,E,2GCzEF,SAAe,IAAA6C,QAAO,CAAC,EAAG,aAAgB,aAAiB,CACzDq7C,KAAI,SAAC7rB,GACH,wBAA2Bn2B,KAAMmB,YACjC,IAAAmhF,SAAQtiF,KAAM,aAAc,WAAY,aACxCA,KAAKstD,IAAMn3B,EACXn2B,KAAKokF,WAAapkF,KAAKujF,KAAO,sBAC9BvjF,KAAKqkF,WAAarkF,KAAKujF,KAAO,gBAC9BvjF,KAAK8uF,WAAa9uF,KAAKujF,KAAO,WAChC,EAEAN,OAAM,W,IAAC,sDACL,0BAA6BjjF,KAAMU,GACnCV,KAAK+uF,aAAazpE,SAAStlB,KAAKqkF,YAChCrkF,KAAKgvF,mBAAmB1pE,SAAStlB,KAAKokF,YACtC,IAAI6K,EAAKjvF,KAAKkvF,SACdD,EAAG3uD,IAAI,SAAU,QACjB2uD,EAAGxnF,GAAG,YAAazH,KAAKmvF,YAGxBF,EAAG3pE,SAAStlB,KAAK8uF,WACnB,EAMAM,gBAAe,WAAI,EAOnBD,WAAU,SAACjkF,GACT,IACImkF,GADK,gBAAEnkF,EAAEqb,QAAQ7N,KAAK,SACZ/U,IAAI,aACb0rF,IAGLrvF,KAAKsvF,QAAU,KACftvF,KAAKuvF,oBAAoBrkF,EAAEqb,OAAQvmB,KAAKwvF,QAAQC,iBAChDzvF,KAAK0vF,OAAO9tC,UAAYytC,EACxBrvF,KAAK0vF,OAAOC,UAAY3vF,KAAK2vF,UAAU5jF,KAAK/L,MAC5CA,KAAK4vF,sBACL5vF,KAAKkvF,SAAS/jF,IAAI,YAAanL,KAAKmvF,aACpC,IAAA1nF,IAAGzH,KAAK6vF,mBAAoB,UAAW7vF,KAAK8vF,UAC9C,EAOAC,oBAAmB,SAAC5qF,GAClB,IAAIkqF,EAAOlqF,EAAMxB,IAAI,aACrB,GAAK0rF,EAAL,CAEArvF,KAAKsvF,QAAU,KAEf,IAAIl7E,EAAKjP,EAAMm9B,KAAKluB,GACpBpU,KAAKuvF,oBAAoBn7E,EAAIpU,KAAKwvF,QAAQC,iBAC1CzvF,KAAK0vF,OAAO9tC,UAAYytC,EACxBrvF,KAAK0vF,OAAOC,UAAY3vF,KAAKgwF,mBAAmBjkF,KAAK/L,MAUrDA,KAAK4vF,uBACL,IAAAnoF,IAAGzH,KAAK6vF,mBAAoB,UAAW7vF,KAAK8vF,SAlB3B,CAmBnB,EAOAG,qBAAoB,SAACzsF,GAGnBxD,KAAKsvF,QAAU,KACf,IAAMY,EAAY1sF,EAAOA,EAAO7C,OAAS,GACnCwvF,GAASnwF,KAAKkjF,GAAGv/E,IAAI,iBAAmB,CAAC,GAAGwB,MAC5CiP,EAAK87E,EAAUvK,MAAMwK,GACrB99D,EAAMje,EAAG8b,cACflwB,KAAKuvF,oBAAoBn7E,EAAIie,EAAK,CAAEqxD,QAAS1jF,KAAK0jF,UAClD1jF,KAAK0vF,OAAO9tC,UAAYsuC,EAAUvsF,IAAI,aACtC3D,KAAK0vF,OAAOU,OAAS5sF,EACrBxD,KAAK0vF,OAAOW,UAAYrwF,KAAK2jF,OAC7B3jF,KAAK0vF,OAAOC,UAAY3vF,KAAKgwF,mBAAmBjkF,KAAK/L,MACrDA,KAAK4vF,uBACL,IAAAnoF,IAAGzH,KAAK6vF,mBAAoB,UAAW7vF,KAAK8vF,SAC9C,EAEAE,mBAAkB,YAChB,IAAA7kF,KAAInL,KAAK6vF,mBAAoB,UAAW7vF,KAAK8vF,SAC/C,EAMAH,UAAS,WACP3vF,KAAKijF,UACL,IAAA93E,KAAInL,KAAK6vF,mBAAoB,UAAW7vF,KAAK8vF,SAC/C,EAQAQ,SAAQ,SAACplF,EAAQkJ,GAAU,EAQ3B07E,SAAQ,SAAC5kF,EAAQuzC,IAEJ,KADDvzC,EAAEnJ,OAASmJ,EAAEgrD,UACNzX,KACfz+C,KAAK0vF,OAAOhxB,OAAQ,EACpB1+D,KAAK0vF,OAAOa,UAGhB,EAOAxB,WAAU,WAER,OADK/uF,KAAKwwF,SAAQxwF,KAAKwwF,QAAS,gBAAExwF,KAAKywF,aAChCzwF,KAAKwwF,MACd,EAOAxB,iBAAgB,WAEd,OADKhvF,KAAK0wF,MAAK1wF,KAAK0wF,KAAM,gBAAE1wF,KAAKyiF,OAAOkO,mBACjC3wF,KAAK0wF,GACd,EAEA/yE,KAAI,W,IAAC,sDAEH,wBAA2B3d,KAAMU,GACjCV,KAAK+uF,aAAa1C,YAAYrsF,KAAKqkF,YACnCrkF,KAAKgvF,mBAAmB3C,YAAYrsF,KAAKokF,YACzC,IAAI6K,EAAKjvF,KAAKkvF,SACdD,EAAG3uD,IAAI,SAAU,IAAIzzB,SAASw/E,YAAYrsF,KAAK8uF,WACjD,G,gFCpKF,SACE3xE,KAAI,SAAC4B,GAAL,WACQ,EAAgC/e,KAA9BuiF,EAAM,SAAEtkE,EAAK,QAAEhG,EAAM,SAAE24E,EAAE,KACzBC,EAAW54E,EAAM,OACzB,IAAI,IAAA5V,YAAWwuF,EAAO1zE,MACpB,OAAO0zE,EAAO1zE,KAAKyzE,EAAGE,gBAENvO,EAAM,MAClBplE,KAAK,CAAEc,MAAK,EAAEc,QAAO,IAAIgyE,WAAU,WAAM,OAAAxO,EAAOO,YAAY,EAAKx4E,GAAxB,GACjD,EAEA8S,MAAK,WACK,IAAAyzE,EAAW7wF,KAAKiY,OAAM,OAC9B,IAAI,IAAA5V,YAAWwuF,EAAOzzE,OACpB,OAAOyzE,EAAOzzE,MAAMpd,KAAK4wF,GAAGE,gBAEtB,IAAAlE,EAAU5sF,KAAKuiF,OAAM,MAC7BqK,GAASA,EAAMxvE,OACjB,EAEA8kE,IAAG,SAACK,EAAQ0C,EAAQp7E,QAAA,IAAAA,IAAAA,EAAA,IAClB,IAAM+mF,EAAKrO,EAAOyO,aACZ/4E,EAAS24E,EAAGhK,YACV,EAA+B/8E,EAAI,MAAnC6hB,OAAK,IAAG,KAAE,EAAEulE,EAAmBpnF,EAAI,OAAfqM,EAAWrM,EAAI,OAgB3C,GAfA7J,KAAKie,MAAQpU,EAAKqnF,YAAc3O,EAAOjvB,EAAE,4BAA8B,GACvEtzD,KAAKuiF,OAASA,EACdviF,KAAKiY,OAASA,EACdjY,KAAK4wF,GAAKA,EAEVA,EAAGO,UAAUtnF,EAAK0c,QAClBqqE,EAAGQ,QAAQvnF,EAAKunF,SAChBR,EAAGS,WAAWxnF,EAAKwnF,YACnBT,EAAGN,SAASzmF,EAAKymF,UACjBM,EAAGU,YAAY,CACbp7E,OAAM,EACNwV,MAAK,EACL7oB,QAASgH,IAGPoO,EAAO44E,OACT7wF,KAAKuxF,SAAWvxF,KAAKuxF,WAAY,QAAS,OAC1CvxF,KAAKuxF,SAAS38E,UAAY,UAAGqD,EAAOisE,YAAW,cAC/C0M,EAAGU,YAAY,CAAE7wC,UAAWzgD,KAAKuxF,WACjCX,EAAGY,kBACE,CACL,IAAKxxF,KAAKuxF,UAAY7lE,EAAO,CAC3B,IAAI+lE,EAAkBb,EAAGjF,SAAS11E,QAAO,SAACpW,GAAa,OAAAA,CAAA,IAEnD6rB,GAASA,EAAM/qB,SACjB8wF,EAASA,EAAOx7E,QAAO,SAAArW,GAAK,OAAkC,IAAlC8rB,EAAM7mB,QAAQjF,EAAE+D,IAAI,QAApB,KAG9BitF,EAAG/8E,OAAO49E,GACVzxF,KAAKuxF,SAAWX,EAAG/B,c,CAGrB,GAAIoC,EAAQ,CACV,IAAMS,EAAW1xF,KAAKuxF,SAASrxD,cAAc,gBAASjoB,EAAOisE,YAAW,eACxEwN,GAAYA,EAAS3sE,aAAa,SAAUksE,E,EAKhD,OADAjxF,KAAKmd,KAAKnd,KAAKuxF,UACRvxF,IACT,EAEA2d,KAAI,SAAC4kE,GACHviF,KAAKuiF,OAASA,EACdviF,KAAKod,MAAMpd,KAAKuxF,SAClB,E,gFCtEF,SACEp0E,KAAI,WACI,MAAoCnd,KAAlCygD,EAAS,YAAE8hC,EAAM,SAAEoP,EAAE,KAAE15E,EAAM,SAC7B44E,EAAqB54E,EAAM,OAAnB25E,EAAa35E,EAAM,SAEnC,IAAI,IAAA5V,YAAWwuF,EAAO1zE,MACpB,OAAO0zE,EAAO1zE,KAAKw0E,EAAGb,gBAGxB,GAAI9wF,KAAK6xF,cAAgBD,EAAU,CACjC,IAAMtnF,EAAK,kBACLwnF,EAAKvP,EAAOwP,QACHD,EAAGE,SAAS1nF,IAAOwnF,EAAGG,SAAS,CAAE3nF,GAAE,KAC3C7E,IAAI,gBAAiBg7C,GAAW38C,QAAQ,wBAC1C+sF,GAAQpwC,EAAUh8B,YAAYktE,EAAG99E,S,CAGpC4sC,IAAWA,EAAU9jC,MAAMC,QAAU,QAC3C,EAEAQ,MAAK,WACG,IAAEqjC,EAAsBzgD,KAAb,UACT6wF,EADsB7wF,KAAL,OACA,OAEzB,IAAI,IAAAqC,YAAWwuF,EAAOzzE,OACpB,OAAOyzE,EAAOzzE,MAAMpd,KAAK2xF,GAAGb,gBAG1BrwC,IAAWA,EAAU9jC,MAAMC,QAAU,OAC3C,EAEAslE,IAAG,SAACK,GACF,IAAMoP,EAAKpP,EAAO2P,OAClBlyF,KAAKiY,OAAS05E,EAAG/K,YACjB5mF,KAAK6xF,aAAe7xF,KAAKygD,UACzBzgD,KAAKygD,UAAYzgD,KAAKygD,YAAa,QAAS,OAC5CzgD,KAAKuiF,OAASA,EACdviF,KAAK2xF,GAAKA,EACF,IAAAlxC,EAAczgD,KAAI,UAC1B2xF,EAAGL,YAAY,CACb7wC,UAAS,IAGPzgD,KAAKiY,OAAO44E,QACdc,EAAGH,cAGLxxF,KAAKmd,MACP,EAEAQ,KAAI,WACF3d,KAAKod,OACP,E,2DCtDF,SACE8kE,IAAG,SAACK,GACF,IAAM4P,EAAK5P,EAAO6P,aACZN,EAAKvP,EAAOwP,OACZM,EAAWF,EAAGvL,YAEpB,IAAIyL,EAAST,SAAb,CAEA,IAAK5xF,KAAKsyF,OAAQ,CAChB,IAAMhoF,EAAK,kBACLgoF,EAAS59E,SAASC,cAAc,OAEhC49E,EAAST,EAAGE,SAAS1nF,IAAOwnF,EAAGG,SAAS,CAAE3nF,GAAE,IAE9C+nF,EAASxB,OACXsB,EAAGX,YAAY,CAAE/wC,UAAW6xC,IAE5BA,EAAO7tE,YAAY0tE,EAAGt+E,UAGxB0+E,EAAO9sF,IAAI,gBAAiB6sF,GAAQxuF,QAAQ,wBAC5C9D,KAAKsyF,OAASA,C,CAGhBtyF,KAAKsyF,OAAO31E,MAAMC,QAAU,OAlBC,CAmB/B,EAEAe,KAAI,WACM,IAAA20E,EAAWtyF,KAAI,OACvBsyF,IAAWA,EAAO31E,MAAMC,QAAU,OACpC,E,wEC7BF,SACEslE,IAAG,SAACK,EAAQ0C,GAGV,GAFAjlF,KAAKilF,OAASA,GAETjlF,KAAKwyF,KAAM,CACd,IAAMv6E,EAASsqE,EAAOqE,YACdmL,EAAyDxP,EAAM,OAAvDkQ,EAAiDlQ,EAAM,cAAxCmQ,EAAkCnQ,EAAM,gBAAvBoQ,EAAiBpQ,EAAM,aACjEqQ,EAAW,uBACXJ,GAAO,gBAAE,eACTK,GAAY,gBAAE,eACdC,GAAU,gBAAE,eACZC,GAAS,gBAAE,eAQjB,GAPA/yF,KAAKwyF,KAAOA,EACZxyF,KAAK6yF,UAAYA,EACjBA,EAAUG,OAAOF,GACjBD,EAAUG,OAAOD,GACjBP,EAAKQ,OAAOH,GAGRJ,GAAiBx6E,EAAOg7E,YAAa,CACvC,IAAMC,EAAcnB,EAAOE,SAAS,CAAE3nF,GAAI,cACpC6oF,EAAOV,EAAc5+E,SAC3Bq/E,EAAYztF,IAAI,gBAAiB0tF,GAAMrvF,QAAQ8uF,E,CAIjD,IAAMQ,EAAYV,EAAgB9L,YAC9BwM,EAAUvC,OACZ6B,EAAgBlB,YAAY,CAAE/wC,UAAWqyC,EAAQnvF,IAAI,KAC3CyvF,EAAUxB,UACpBkB,EAAQE,OAAON,EAAgB7+E,OAAO,KAIxC7T,KAAKqzF,GAAKV,EACV,IAAMW,EAAWX,EAAa/L,YACxB3C,EAAMqP,EAASpP,YACrBlkF,KAAKuzF,SAAU,gBAAE,uBAAetP,EAAG,oBAAW1B,EAAOjvB,EAAE,sBAAqB,WAC5Ek/B,EAAKQ,OAAOhzF,KAAKuzF,SAEbD,EAASzC,OACX8B,EAAanB,YAAY,CAAE/wC,UAAWsyC,EAAOpvF,IAAI,KACvC2vF,EAAS1B,UACnBmB,EAAOC,OAAOL,EAAa9+E,UAI7B,IAAM2/E,EAAQ,mBACFzB,EAAOC,SAASwB,IAAUzB,EAAOE,SAAS,CAAE3nF,GAAIkpF,KAGxD/tF,IAAI,gBAAiB+sF,GAAM1uF,QAAQ8uF,GAGvC,IAAM1P,EAAKX,EAAOwD,WAClB/lF,KAAKwK,SAAS04E,EAAIyP,EAAajpF,OAAO6c,OAAQvmB,KAAKyzF,S,CAGrDzzF,KAAKyzF,UACP,EAMAA,SAAQ,WACA,MAAqCzzF,KAAnCilF,EAAM,SAAEoO,EAAE,KAAER,EAAS,YAAEU,EAAO,UACjCtO,GAAUA,EAAOthF,MAAQshF,EAAOthF,IAAI,YAAe0vF,IAEpDA,EAAGrK,eACL6J,SAAAA,EAAWa,OACXH,SAAAA,EAASI,SAETd,SAAAA,EAAWc,OACXJ,SAAAA,EAASG,QAEb,EAEA/1E,KAAI,W,QACY,QAAd,EAAA3d,KAAK6yF,iBAAS,SAAEc,OACJ,QAAZ,EAAA3zF,KAAKuzF,eAAO,SAAEI,MAChB,E,wECjFF,SACEzR,IAAG,SAACK,EAAQ0C,GACVjlF,KAAKilF,OAASA,EACd,IAMI2O,EANE1Q,EAAKX,EAAOwD,WAGZ9B,EADS1B,EAAOsR,OACH3P,YACb4P,EAAKvR,EAAOwR,aACZC,EAASF,EAAGlN,YAGlB,IAAIoN,EAAOpC,SAAX,CAEA,IAAK5xF,KAAKi0F,IAAK,CACbj0F,KAAKi0F,KAAM,gBAAE,eACbj0F,KAAKk0F,MAAO,gBAAE,eACdl0F,KAAKi0F,IAAIjB,OAAOhzF,KAAKk0F,MACrBl0F,KAAKuzF,SAAU,gBAAE,SAASP,OAAO,uBAAegB,EAAO9P,YAAW,oBAAWhB,EAAG5vB,EAAE,sBAAqB,WACvGtzD,KAAKi0F,IAAIjB,OAAOhzF,KAAKuzF,SAEjBS,EAAOnD,OACTiD,EAAGtC,YAAY,CAAE/wC,UAAWzgD,KAAKk0F,KAAKvwF,IAAI,MAE1C3D,KAAKk0F,KAAKlB,OAAO,uBAAe/O,EAAG,0BAAiBf,EAAG5vB,EAAE,sBAAqB,WAC9EtzD,KAAKk0F,KAAKlB,OAAOc,EAAGjgF,WAGtB,IAAI0+E,EAAShQ,EAAOwP,OASpB6B,OAHEA,EAJGrB,EAAOP,SAAS,mBAIVO,EAAOP,SAAS,mBAFhBO,EAAON,SAAS,CAAE3nF,GAAI,sBAKjCspF,EAAQnuF,IAAI,gBAAiBzF,KAAKi0F,IAAItwF,IAAI,IAAIG,QAAQ,wBAEtD9D,KAAKumB,OAASg8D,EAAOwD,WACrB/lF,KAAKwK,SAASxK,KAAKumB,OAAQ,oBAAqBvmB,KAAKm0F,S,CAGvDn0F,KAAKm0F,UA/BsB,CAgC7B,EAMAA,SAAQ,WACN,IAAMlP,EAASjlF,KAAKilF,OAChBA,GAAUA,EAAOthF,MAAQshF,EAAOthF,IAAI,YAEI,IAAxC3D,KAAKumB,OAAOg/D,iBAAiB5kF,QAC/BX,KAAKk0F,KAAKR,OACV1zF,KAAKuzF,QAAQI,SAEb3zF,KAAKk0F,KAAKP,OACV3zF,KAAKuzF,QAAQG,QAEjB,EAEA/1E,KAAI,WACF3d,KAAKk0F,MAAQl0F,KAAKk0F,KAAKP,OACvB3zF,KAAKuzF,SAAWvzF,KAAKuzF,QAAQI,MAC/B,E,sEChEF,SACEzR,IAAG,SAACC,EAAI/5E,EAAGyB,QAAA,IAAAA,IAAAA,EAAA,IACT,IACMuqF,EADKjS,EAAG4D,WACcpiF,IAAI,aAC1B0wF,EAAelS,EAAG6G,cAEpBoL,GAAOC,IACTlS,EAAGoD,iBAAiB9vE,SAAQ,SAAAu+C,GAClB,IAAA/uD,EAAe+uD,EAAQ,WAC/B,GAAK/uD,EAAL,CAEA,IAAIuL,EAEE8jF,EAAU,CAAE7wF,GADPuwD,EAASlzD,QAAU,EACRyB,OAAQsH,EAAKtH,QAAU,mBAE7C,IAAI,IAAAmC,UAAS0vF,EAAKpgC,IAAaA,EAASrwD,IAAI,YAE1C6M,EAAQvL,EAAWX,IAAI0vD,EAASzwD,QAAS+wF,OACpC,CACL,IACMC,EADWH,EAAIn+E,QAAO,SAAAu+E,GAAO,OAAAA,EAAI7wF,IAAI,WAAR,IACRsS,QAAO,SAAAu+E,GAAO,OAAArS,EAAGsS,WAAWC,QAAQ1gC,EAASz1C,SAAWi2E,GAAKtnF,MAA/C,IACzCsD,EAAQvL,EAAWX,IAEjBiwF,EAAUzvF,KAAI,SAAA0vF,GAAO,OAAAA,EAAIjxF,OAAJ,IACrB+wF,E,EAIJ9jF,GAAQ,IAAAtP,SAAQsP,GAASA,EAAQ,CAACA,IAC5BiF,SAAQ,SAAAnR,GAAO,OAAA69E,EAAGr+E,QAAQ,kBAAmBQ,EAA9B,GApBE,CAqBzB,IAEA+vF,EAAaM,aAEjB,E,ySClCIC,EAAa,yBAEnB,SACEC,UAAS,SAACtS,GAKR,OAJKviF,KAAKuyF,SACRvyF,KAAKuyF,OAAShQ,EAAOwP,OAAO8C,aAGvB70F,KAAKuyF,MACd,EAEAuC,YAAW,SAACjrF,GACVA,EAAKm7E,MAAQ,CACf,EAEA+P,WAAU,SAACttF,GACD,IAAAy7E,EAAOljF,KAAI,GACbg1F,EAAQvtF,EAAK,KAAO,MAC1B,GAAIy7E,EAAI,CACN,IAAMT,EAASS,EAAGsB,OACZ1nE,EAAO2lE,EAAOmC,UACdqQ,EAAMxS,EAAOyS,eACnBD,IAAQA,EAAIt4E,MAAMC,QAAUnV,EAAK,OAAS,IAC1C,IAAM0tF,EAAMr4E,EAAKs4E,iBAAiB,WAAIp1F,KAAKujF,KAAI,gBAC/C,IAAAh+E,MAAK4vF,GAAK,SAAA1O,GAAQ,OAAEA,EAAqB9pE,MAAMqmC,cAAgBv7C,EAAK,MAAQ,EAA1D,IAClBy7E,EAAG8R,GAAO,sBAAuBh1F,KAAK80F,Y,CAE1C,EAEA5S,IAAG,SAACK,EAAQ0C,GAAZ,WACEjlF,KAAKilF,OAASA,EACdjlF,KAAKg0D,SAAW,EAAH,GAAOuuB,EAAOgD,kBAAgB,GAC3ChD,EAAOrsE,SAEFlW,KAAKq1F,wBACRr1F,KAAKq1F,sBAAwB9S,EAAO4C,SAASmQ,SAASV,IAGxD50F,KAAKq1F,uBAAyB9S,EAAOO,YAAY8R,GACjDrS,EAAOwD,WAAWwP,cAElB,IAAMhD,EAASvyF,KAAK60F,UAAUtS,GACxBE,EAASF,EAAOiC,OAAOE,aACvB8Q,EAAWjT,EAAOoD,QAClB1B,EAAM1B,EAAOsR,OAAO3P,YAE1B,IAAKlkF,KAAKspB,OAAQ,CAChB,IAAMA,EAAS5U,SAASC,cAAc,QACtC2U,EAAO1U,UAAY,UAAGqvE,EAAG,2BACzBuR,EAAS/wE,YAAY6E,GACrBA,EAAOmsE,QAAU,WAAM,SAAK3S,aAAL,EACvB9iF,KAAKspB,OAASA,C,CAGhBtpB,KAAKspB,OAAO3M,MAAMC,QAAU,eAE5B21E,EAAO98E,SAAQ,SAACigF,GAAe,OAAAA,EAAMjwF,IAAI,WAAW,EAArB,IAE/B,IAAMkwF,EAAUlT,EAAO9lE,MACvBg5E,EAAQxvD,MAAQ,OAChBwvD,EAAQ7iE,OAAS,OACjB6iE,EAAQ7sD,IAAM,IACd6sD,EAAQjmE,KAAO,IACfimE,EAAQhjD,QAAU,IAClBgjD,EAAQh/C,OAAS,IACjB4rC,EAAOjhB,UACPthE,KAAK+0F,WAAW,EAClB,EAEAp3E,KAAI,SAAC4kE,GACG,IAAE,EAA0BviF,KAA1BilF,OAAAA,OAAM,IAAG,GAAC,EAAC,EAAEjxB,EAAah0D,KAAL,SAC7BilF,EAAOx/E,KAAOw/E,EAAOx/E,IAAI,SAAU,GACnC,IAAM8sF,EAASvyF,KAAK60F,UAAUtS,GAE1BviF,KAAKq1F,wBACP9S,EAAOqT,WAAWhB,GAClB50F,KAAKq1F,uBAAwB,GAG/B9S,EAAOwD,WAAW8P,aAClBtD,EAAO98E,SAAQ,SAACigF,GAAe,OAAAA,EAAMjwF,IAAI,WAAW,EAArB,IAEhB88E,EAAOiC,OAAOE,aACtB3/D,aAAa,QAAS,IAC7BivC,GAAYuuB,EAAOrsE,OAAO89C,UACnBh0D,KAAKg0D,SAERh0D,KAAKspB,SACPtpB,KAAKspB,OAAO3M,MAAMC,QAAU,QAG9B2lE,EAAOjhB,UACPthE,KAAK+0F,YACP,E,0SC9FF,SACE7S,IAAG,SAACK,EAAQ0C,EAAQp7E,GAClB,IAAMyjD,EAAMzjD,GAAQ,CAAC,EACf44E,EAASF,EAAOiC,OAChBsR,EAAarT,EAAOC,gBACpB7/E,EAAU,EAAH,CACX+uF,SAAUnP,EAAOsT,eACjBC,OAAQzT,EAAOqE,YAAY1C,YAC3B+R,WAAYH,EAAWlO,cAAc77E,KAAK+pF,GAC1CI,gBAAiBzT,EAAO0T,qBACpB7oC,EAAIzqD,SAAW,CAAC,GAEhBuzF,EAAkBp2F,KAAI,cAW5B,OARKo2F,IAAiB9oC,EAAI+oC,WACxBr2F,KAAKo2F,cAAgB,IAAI7T,EAAO+T,MAAMC,QAAQ1zF,GAC9CuzF,EAAgBp2F,KAAKo2F,eAGvBA,EAAcrmF,WAAWlN,GAAS,GAClCuzF,EAAcr0B,OACdq0B,EAAcphD,MAAMsY,EAAIl5C,IACjBgiF,CACT,EAEAz4E,KAAI,W,MACgB,QAAlB,EAAA3d,KAAKo2F,qBAAa,SAAEr0B,MACtB,E,kkBCZF,yB,8CAOA,QAP2C,OACzC,YAAAj7D,SAAA,WACE,MAAO,CACL0vF,QAAS,GACTxvF,WAAY,CAAC,EAEjB,EACF,EAPA,CAA2C,M,0fChB3C,2B,8CAAgE,QAA3B,OAA2B,EAAhE,CAAqC,M,UAErCyvF,EAAQp2F,UAAU8E,MAAQ,E,svBCE1B,YAgBE,WAAY2jB,GAAZ,MACE,YAAMA,IAAM,K,OACZ,EAAKo6D,GAAKp6D,EAAM7Q,OAAOirE,G,CACzB,CAyDF,OA5E+C,OAG7C,YAAAx5E,OAAA,WACE,OACE1J,KAAKmF,MAAMxB,IAAI,WAAa,CAC1B+yF,UAAW,cAGjB,EAGA,YAAA1vF,WAAA,WACE,OAAOhH,KAAKmF,MAAMxB,IAAI,aACxB,EAOA,YAAAgzF,YAAA,SAAYhkF,GACVA,EAAM4a,iBACN5a,EAAM0b,kBAgBE,IAAA60D,EAAOljF,KAAI,GACb,EAAgBkjF,EAAGsB,OAAOoS,aAAapnE,wBAArCE,EAAI,OAAEoZ,EAAG,MACXt8B,EAAK,EAAH,KACHmG,GAAK,CACRo9B,QAASp9B,EAAMo9B,QAAUrgB,EACzBsgB,QAASr9B,EAAMq9B,QAAUlH,IAG3Bo6C,EAAGp/E,QAAQ,qBAAsB,CAAE6O,MAAOnG,IAC1CxM,KAAKg7D,YAAYxuD,EACnB,EAEA,YAAAwuD,YAAA,SAAYroD,GACJ,IAAEuwE,EAAcljF,KAAZ,GACJ6J,EAAO,CAAE8I,MAAK,GACd6jF,EAFgBx2F,KAAL,MAEK2D,IAAI,WACpB4+E,EAASW,EAAG2T,QAEd,IAAAx0F,YAAWm0F,IACbA,EAAQjU,EAAQ,KAAM14E,IAGpB,IAAAqH,UAASslF,IACXjU,EAAOqT,WAAWY,EAAS3sF,EAE/B,EAEA,YAAAgK,OAAA,WACQ,MAAqB7T,KAAnBkjF,EAAE,KAAEvvE,EAAG,MAAExO,EAAK,QAChBmF,EAAKnF,EAAMxB,IAAI,MACf+oE,EAAQvnE,EAAMxB,IAAI,SAClBsgF,EAAMf,EAAG0D,YAAY1C,YAI3B,OAHAvwE,EAAI2R,SAAS,UAAG2+D,EAAG,iBACnB35E,GAAMqJ,EAAI2R,SAAS,UAAG2+D,EAAG,yBAAiB35E,IAC1CoiE,GAAS/4D,EAAIq/E,OAAOtmB,GACb1sE,IACT,EACF,EA5EA,CAA+C,M,0fCH/C,cAGE,WAAY6J,GAAZ,MACE,YAAMA,IAAK,KACHq5E,EAAOr5E,EAAI,G,OACnB,EAAKq5E,GAAKA,EACV,EAAKjrE,OAAS,CAAEirE,GAAE,GAClB,EAAK14E,SAAS,EAAKvF,WAAY,QAAS,EAAK4O,Q,CAC/C,CAMF,OAfyC,OAWvC,YAAAijF,SAAA,WACE,IAAM7S,EAAMjkF,KAAKkjF,GAAGjrE,OAAOisE,YAC3BlkF,KAAKoU,GAAGQ,UAAY,UAAGqvE,EAAG,gBAC5B,EACF,EAfA,CAAyC8S,EAAA,G,UAkBzCC,EAAY32F,UAAU42F,SAAW,E,ICb7BC,E,6PAqBJ,SACEl1C,KAAI,SAAC7rB,IACH,IAAAmsD,SAAQtiF,KAAM,UAAW,QAAS,UAAW,gBAAiB,iBAAkB,oBAClF,EAEAijF,OAAM,WACJjjF,KAAKm3F,SAAWn3F,KAAKo3F,UAAYp3F,KAAKq3F,UAAY,KAClDr3F,KAAKs3F,uBACLJ,GAAc,CAChB,EAMAI,qBAAoB,WAClBt3F,KAAKu3F,sBAAsB,GAC3Bv3F,KAAKkjF,GAAG8F,eAAiBhpF,KAAKswF,UAChC,EAMAV,oBAAmB,WACjB5vF,KAAKu3F,uBACP,EAMAA,sBAAqB,SAACtU,GAAtB,WACUC,EAAOljF,KAAI,GACbw3F,EAAatU,EAAG0D,YAAY4Q,WAC1BvyE,EAAei+D,EAAG2L,eAAe,WACnC5/E,EAASg0E,EAAS,KAAO,MACzB7tE,EAAU,CAAE3N,GAAE,KAAE0D,IAAG,QACxBqsF,EAAW72F,QAAUskB,GAAcuyE,EAAW7yF,KAAKsgB,GAQpD7P,EAAQnG,GAAQlP,OAAQ,SAAUC,KAAKy3F,gBACvCriF,EAAQnG,GAAQuoF,EAAY,SAAUx3F,KAAK03F,mBAC3CxU,EAAGj0E,GAAQ,+CAAgDjP,KAAKswF,SAAUtwF,MAC1EkjF,EAAGj0E,GAAQ,0BAA2BjP,KAAK23F,UAAW33F,MACtDkjF,EAAGj0E,GACD,oDACAjP,KAAK43F,gBACL53F,MAEFkjF,EAAGj0E,GAAQ,2BAA4BjP,KAAK63F,WAAY73F,MACxDkjF,EAAGj0E,GAAQ,sBAAuBjP,KAAK83F,eAAgB93F,MACvDkjF,EAAGj0E,GAAQ,gBAAiBjP,KAAKy3F,eAAgBz3F,MACjDkjF,EAAGj0E,GAAQ,qBAAsBjP,KAAKy3F,eAAgBz3F,MACtDkjF,EAAGsB,OAAOuT,YAAYtiF,SAAQ,SAAA06E,GACpB,IAAA7tD,EAAS6tD,EAAK,KAChB6H,EAAM11D,aAAI,EAAJA,EAAM21D,YAClBD,GAvBc,SAACA,EAAal7E,GAC5B1H,EAAQnG,GAAQ6N,EAAM,YAAa,EAAKo7E,SACxC9iF,EAAQnG,GAAQ6N,EAAM,aAAc,EAAKq7E,OACzC/iF,EAAQnG,GAAQ6N,EAAM,QAAS,EAAKs0E,SAEpCh8E,EAAQnG,GAAQ+oF,EAAK,SAAU,EAAKvT,eAAe,EACrD,CAiBS3gF,CAAQk0F,EAAK11D,aAAI,EAAJA,EAAMsiD,UAC5B,GACF,EAOAsT,QAAO,SAAChtF,GACNA,EAAEmjB,kBACM,IAAA60D,EAAOljF,KAAI,GACbo4F,EAAMltF,EAAEqb,OACR+b,GAAO,IAAA+1D,WAAUD,GACjBE,EAAYh2D,GAAQA,EAAKi2D,YACzB5kF,GAAM,gBAAEykF,GACVjzF,EAAQwO,EAAI+E,KAAK,SAGrB,IAAKvT,EAEH,IADA,IAAI,EAASwO,EAAI4K,UACTpZ,GAAS,EAAOxE,UAAW,QAAM,EAAO,KAC9CwE,EAAQ,EAAOuT,KAAK,SACpB,EAAS,EAAO6F,SAIpBve,KAAKw4F,WAAaJ,EAAIloE,cACtBgzD,EAAGuV,WAAWtzF,EAAO,CAAEuzF,UAAU,IACjCJ,GAAapV,EAAGz9E,IAAI,eAAgB6yF,EACtC,EAEAb,eAAc,WACZz3F,KAAK24F,iBACL34F,KAAK43F,iBACP,EAEAD,UAAS,SAACzU,EAASoC,GAAnB,I,EAAA,OACMp4E,EAAS,CAAC,EAEVo4E,EACa,QAAf,EAAAA,EAAUsT,aAAK,SAAEnjF,SAAQ,SAAA6sB,GACvB,IAAMluB,EAAKkuB,EAAKluB,GACVyN,EAAM,EAAK+lE,cAAcxzE,GAC/BlH,EAAS,CAAEkH,GAAE,EAAEyN,IAAG,EAAEyjE,UAAS,EAAEhjD,MAAM,IAAA+1D,WAAUjkF,IAC/C,EAAKykF,iBAAiB3rF,GAElBkH,EAAG8b,gBAAkB,EAAKsoE,aAAY,EAAKM,UAAY5rF,EAC7D,KAEAlN,KAAKw4F,WAAa,KAClBx4F,KAAK84F,UAAY,EACjB94F,KAAK64F,mBACL74F,KAAKyiF,OAAOsV,YAAYtiF,SAAQ,SAAA06E,GACtB,IAAA7tD,EAAS6tD,EAAK,KAChB/7E,EAAKkuB,GAAQA,EAAKwiD,aACxB1wE,GAAM,EAAK2kF,cAAc,EAAG,EAAG,CAAE3kF,GAAE,GACrC,IAEJ,EAQAk8E,UAAU,IAAAhJ,WAAS,WAET,IAAApE,EAAOljF,KAAI,GACbslF,EAAYpC,EAAG8F,cACfgQ,EAAe9V,EAAGv/E,IAAI,iBAAmB,CAAC,EAC1C2+B,EAAOgjD,GAAaA,EAAU2T,QAAQD,EAAa7zF,OACrDiP,EAAKkuB,GAAQA,EAAKluB,GAClBlH,EAAS,CAAC,EAEVkH,IAAM,QAAUA,KAGlBlH,EAAS,CAAEkH,GAAE,EAAEyN,IADH7hB,KAAK4nF,cAAcxzE,GACXkxE,UAAS,EAAEhjD,MAAM,IAAA+1D,WAAUjkF,KAIjDpU,KAAKk5F,WAAahsF,EAElBlN,KAAKm5F,oBAELn5F,KAAK24F,eAAezrF,GAEpBlN,KAAKo5F,WAAW9T,EAClB,GAAG,GAEHsS,gBAAe,WACb,IAAM/lD,EAAM7xC,KAAKq5F,gBACZxnD,EAAIz9B,KACTy9B,EAAIhwB,IAAM7hB,KAAK4nF,cAAc/1C,EAAIz9B,IACjCpU,KAAKm5F,oBACP,EAEAR,eAAc,SAACjgF,GACb,IAAMm5B,EAAM7xC,KAAKs5F,eACZznD,EAAIz9B,KACTy9B,EAAIhwB,IAAM7hB,KAAK4nF,cAAc/1C,EAAIz9B,IACjCpU,KAAK64F,iBAAiBngF,GACxB,EAEA4gF,aAAY,WACV,OAAOt5F,KAAK84F,WAAa,CAAC,CAC5B,EAEAO,cAAa,WACX,OAAOr5F,KAAKk5F,YAAc,CAAC,CAC7B,EAEAf,MAAK,WACHn4F,KAAKkjF,GAAGuV,WAAW,EACrB,EAEAM,cAAa,SAACtxF,EAAa66B,EAAWz4B,QAAA,IAAAA,IAAAA,EAAA,IACpC,IAAMuK,EAAKvK,EAAKuK,IAAMpU,KAAKyiF,OAAOqC,WAAWxiD,GAE7C,OADAluB,IAAOA,EAAGuI,MAAMC,QAAUnV,EAAK,GAAK,QAC7B2M,GAAM,CAAC,CAChB,EAOAmlF,kBAAiB,SAACnlF,EAAiByN,EAAUhY,QAAA,IAAAA,IAAAA,EAAA,IACtCqtF,GACLl3F,KAAKuiF,OAAOqT,WAAW,cAAe,CACpCxhF,GAAE,EACFolF,MAAO33E,EACPygB,KAAMz4B,EAAKy4B,KACXmc,MAAO,EACP3V,IAAK,EACLpZ,KAAM,GAEV,EAOA+pE,kBAAiB,SAACn3D,GAChBtiC,KAAKuiF,OAAOO,YAAY,cAAe,CACrCxgD,KAAI,GAER,EAOAo3D,uBAAsB,SAACtlF,EAAiByN,GACtC7hB,KAAKuiF,OAAOqT,WAAW,cAAe,CACpCxhF,GAAE,EACFolF,MAAO33E,EACP5C,MAAO,SAEX,EAOA06E,uBAAsB,WAChB35F,KAAKuiF,QAAQviF,KAAKuiF,OAAOO,YAAY,cAAe,CAAE7jE,MAAO,SACnE,EAKA26E,gBAAe,SAACt3D,GACdtiC,KAAKyiF,OAAOkO,eAAeruD,GAAM3lB,MAAMk9E,QAAU,CACnD,EAOAzI,QAAO,SAAC5kF,GACNA,EAAG6hB,kBACH7hB,EAAG+gB,iBACK,IAAA21D,EAAOljF,KAAI,GACnB,GAAIkjF,EAAGv/E,IAAI,YAAa,OAAOu/E,EAAGz9E,IAAI,YACtC,IAAMkO,GAAM,gBAAEnH,EAAG+Z,QACbphB,EAAQwO,EAAI+E,KAAK,SAErB,IAAKvT,EAEH,IADA,IAAI,EAASwO,EAAI4K,UACTpZ,GAAS,EAAOxE,UAAW,QAAM,EAAO,KAC9CwE,EAAQ,EAAOuT,KAAK,SACpB,EAAS,EAAO6F,SAIpB,GAAIpZ,EAAO,CAET,GAAI+9E,EAAG4W,cAAgB30F,EAAMxB,IAAI,aAAewB,EAAM40F,UAAU,QAC9D,OAEF/5F,KAAKkW,OAAO/Q,EAAOqH,E,CAEvB,EAOA0J,OAAM,SAAC/Q,EAAkBwN,QAAA,IAAAA,IAAAA,EAAA,IAClBxN,IACLnF,KAAKuiF,OAAOrsE,OAAO/Q,EAAO,CAAEwN,MAAK,EAAE+lF,UAAU,IAC7C14F,KAAKo5F,WAAWj0F,GAClB,EAQA60F,YAAW,SAAC5lF,EAAiByN,EAAUhY,QAAA,IAAAA,IAAAA,EAAA,IAC7B,IAAA44E,EAAWziF,KAAI,OACjBmF,GAAQ,gBAAEiP,GAAIsE,KAAK,SACzB,GAAKvT,GAAUA,EAAMxB,IAAI,YAAzB,CACA,IAAM2oF,EAAQtsF,KAAKywF,SAAS5mF,GAE5B,IAAKA,EAAKowF,QAAS,CACjB,IAAMhiF,EAASjY,KAAKyiF,OAAOmE,YACrBsT,EAAO/0F,EAAMg1F,UACb5W,EAAOtrE,EAAOksE,cAAgB,GAC9BiW,EAAW,UAAG7W,EAAI,SAClB8W,EAAepiF,EAAOqiF,iBACtBC,EAAa,UAAGL,EAAO,uBAAeE,EAAQ,oBAAWF,EAAI,UAAW,GAAE,kCAChEE,EAAQ,oBAAWj1F,EAAMunF,UAAS,UAClDJ,EAAMtF,UAAYqT,EAAeA,EAAal1F,GAASo1F,C,CAGzD,IAAMxS,EAAK,KACLyS,EAASlO,EAAM3vE,MACrB69E,EAAO59E,QAAU,QAEjB,IAIMksB,EAJe25C,EAAOgY,wBAAwBrmF,EAAIk4E,EAAO,CAC7DzqE,IAAKA,IAGkBinB,IACnBpZ,EAAO7lB,EAAK6wF,QAAU,GAAK7wF,EAAK6wF,QAAU,EAEhDF,EAAO1xD,IAAMA,EAAMi/C,EACnByS,EAAO9qE,KAAOA,EAAOq4D,CA1BuB,CA2B9C,EAQA4S,gBAAe,SAACr4D,GACdtiC,KAAKyiF,OAAOkO,eAAeruD,GAAM3lB,MAAMk9E,QAAU,EACnD,EAOAT,WAAU,SAACwB,GACH,IAQFC,EARI3X,EAAeljF,KAAb,GAAEyiF,EAAWziF,KAAL,OACZuiF,EAASW,aAAE,EAAFA,EAAI2T,OAEb5S,GADSf,aAAE,EAAFA,EAAIjrE,QACAisE,aAAe,GAC5B4W,EAAc,UAAG7W,EAAG,YACpB9+E,IAAS,IAAAypF,WAAUgM,KAAS,IAAAG,gBAAeH,GAAQA,EAAO1X,EAAG8F,cAC7DgS,EAAY71F,GAASA,EAAMxB,IAAI,aACjCd,EAAU,CAAC,EAGXo4F,EAAkB,SAAChsF,EAAgB/D,EAAQrB,GAC7C,IAAMqxF,EAAOrxF,EAAKqxF,KAClBA,GACEA,EAAKzlF,SAAQ,SAAC4c,GACZ,IAAMvV,EAAOuV,EAAIvV,KACXoH,EAAMpH,EAAKlI,WAAa,GAC9BkI,EAAKlI,WAAuB,OAAV3F,EAAkB,UAAGiV,EAAG,YAAI42E,GAAgB52E,EAAIzU,QAAQqrF,EAAa,KAAKxS,MAC9F,GACJ,EAEA,GAAI/F,GAAUyY,EAAW,CACvB,IAAM5mF,GAAK,IAAAw6E,WAAUgM,GAAQA,EAAOz1F,EAAMwgF,QAC1C9iF,EAAU,CAER6gF,QAAO,SAACx4E,EAAUrB,QAAA,IAAAA,IAAAA,EAAA,IACR,IAAAuK,EAAwBvK,EAAI,GAAxBoO,EAAoBpO,EAAI,OAAhBsxF,EAAYtxF,EAAI,QAC5BuxF,EAAoEnjF,EAAM,UAA/DojF,EAAyDpjF,EAAM,SAArDqjF,EAA+CrjF,EAAM,YAAxCsjF,EAAkCtjF,EAAM,eAAxBujF,EAAkBvjF,EAAM,cAClFgjF,EAAgB,MAAO/vF,EAAGrB,GAC1BgxF,EAAe3X,EAAG4F,OAAO2S,gBAAgBt2F,GACzCs9E,EAAOiZ,oBAAmB,GAC1B,IAAMC,EAAgBn0D,iBAAiBpzB,GACjCwnF,EAAaf,EAAapS,WAE5BoT,EAAeD,EAAWP,GAC9BpjF,EAAO6jF,UAAYN,GAAkC,SAAjBK,EAChCj0D,MAAM2gD,WAAWsT,MACnBA,EAAeF,EAAcN,IAG/B,IAAIU,EAAgBH,EAAWR,GAC/BnjF,EAAO+jF,WAAaT,GAAoC,SAAlBQ,EAClCn0D,MAAM2gD,WAAWwT,MACnBA,EAAgBJ,EAAcP,IAGhCD,EAAQc,SAASlmD,EAAIwyC,WAAWsT,GAChCV,EAAQc,SAAS/oE,EAAIq1D,WAAWwT,GAChC7E,GAAc,EAEVoE,IACFrjF,EAAOikF,YAAa,IAAAC,kBAAiBJ,GACrC9jF,EAAOmkF,WAAY,IAAAD,kBAAiBN,GAExC,EAGAQ,OAAM,WACJ9Z,EAAOz+E,QAAQ,mBACjB,EAEA8/E,MAAK,SAAC14E,EAAUrB,GACdoxF,EAAgB,SAAU/vF,EAAGrB,GAC7B04E,EAAOz+E,QAAQ,oBACf2+E,EAAOiZ,oBAAmB,GAC1BxE,GAAc,CAChB,EAEAoF,aAAY,SAACloF,EAASk0B,EAAWzlC,GAC/B,QAD+B,IAAAA,IAAAA,EAAA,IAC1Bg4F,EAAL,CAIQ,IAAA0B,EAAmC15F,EAAO,MAAnC25F,EAA4B35F,EAAO,gBAAlBoV,EAAWpV,EAAO,OAC1Cu4F,EAAsEnjF,EAAM,UAAjEojF,EAA2DpjF,EAAM,SAAvD+jF,EAAiD/jF,EAAM,WAA3C6jF,EAAqC7jF,EAAM,UAAhCmkF,EAA0BnkF,EAAM,UAArBikF,EAAejkF,EAAM,WAC9EwkF,EAAa,CAAC,KAAM,MAAM53F,QAAQ23F,IAAoB,EACtDE,EAAY,CAAC,KAAM,MAAM73F,QAAQ23F,IAAoB,EACrD7/E,EAAa,CAAC,EAEpB,IAAK8/E,EAAY,CACf,IAAME,EAAQla,EAAOmC,UAAUx1D,YACzB+W,EAAQmC,EAAKyN,EAAI4mD,EAAQr0D,EAAKyN,EAAI4mD,EACxChgF,EAAM0+E,GAAYS,EAAY,OAAS,UAAG31D,GAAK,OAAGi2D,E,CAG/CM,IACH//E,EAAMy+E,GAAaY,EAAa,OAAS,UAAG1zD,EAAKpV,GAAC,OAAGgpE,IAGnDhZ,EAAG0Z,YAAYz3F,KACjBwX,EAAMmsB,IAAM,UAAGR,EAAKgrB,GAAC,OAAG4oC,GACxBv/E,EAAM+S,KAAO,UAAG4Y,EAAKrmC,GAAC,OAAGm6F,IAG3B,IAAMS,EAAa,OACdlgF,GAAK,CAER+rE,KAAM6T,IAER1B,EAAajS,SAASiU,EAAY,CAAEhU,YAAa0T,IACjDrZ,EAAG4F,OAAOC,qBAAqB8T,EAAY,CAAExX,WAAYnC,EAAG8F,e,CAC9D,GAGsB,iBAAbgS,IACTn4F,EAAU,SAAKA,GAAYm4F,GAAS,CAAEz8E,OAAQ1b,KAGhD7C,KAAKm7F,QAAU5Y,EAAOqT,WAAW,SAAU,CAAExhF,GAAE,EAAEvR,QAAO,EAAE47C,MAAO,G,MAEjE8jC,EAAOO,YAAY,UACnB9iF,KAAKm7F,QAAU,IAEnB,EAMA2B,cAAa,SAAC36E,GACJ,IAAA+gE,EAAOljF,KAAKiY,OAAM,GACpB9S,EAAQgd,GAAO+gE,EAAKA,EAAG8F,cAAgB7mE,EACvC46E,EAAY/8F,KAAKyiF,OAAOyS,eACxB8H,EAAeD,EAAUpgF,MACzBsgF,EAAU93F,EAAMxB,IAAI,WACpBu5F,EAAcha,EAAGjrE,OAAOilF,YAE9B,GAAI/3F,GAAS+3F,GAAeD,GAAWA,EAAQt8F,OAAQ,CAErD,GADAq8F,EAAapgF,QAAU,IAClB5c,KAAKi9F,QAAS,CACjBF,EAAU/V,UAAY,GACtBhnF,KAAKi9F,QAAU,IAAI,EAAQA,GAE3B,IAAME,EAAc,IAAI,EAAY,CAAEl4F,WAAYjF,KAAKi9F,QAAS/Z,GAAE,IAClE6Z,EAAUt4E,YAAY04E,EAAYtpF,SAASO,G,CAG7CpU,KAAKi9F,QAAQ/2F,MAAM+2F,GACnBD,EAAal0D,IAAM,SACnBk0D,EAAattE,KAAO,G,MAEpBstE,EAAapgF,QAAU,MAE3B,EAOAwgF,iBAAgB,SAACv7E,GACf,IAAMq8C,EAAO,KACLvhD,EAAU3c,KAAKyiF,OAAOyS,eAAe,MAC7Cv4E,EAAMmsB,IAAM,UAAGjnB,EAAIinB,KAAG,OAAGo1B,GACzBvhD,EAAM+S,KAAO,UAAG7N,EAAI6N,MAAI,OAAGwuC,GAC3BvhD,EAAMk9E,QAAU,EAClB,EAMAwD,kBAAiB,WACf,OAAOr9F,KAAKyiF,OAAOC,gBAAgBc,aACrC,EAOAiN,SAAQ,SAAC5mF,GACP,YADO,IAAAA,IAAAA,EAAA,IACA7J,KAAKyiF,OAAOsM,WAAWllF,EAAKy4B,KACrC,EAMAmiD,cAAa,WACXzkF,KAAKs9F,aACP,EAEAA,YAAW,WACTt9F,KAAK24F,iBACL34F,KAAK43F,iBACP,EAEA2F,eAAc,SAACx8C,GACb,OAAOA,GAA+B,aAAvBA,EAAKp9C,IAAI,SAC1B,EAOAk1F,iBAAgB,SAACngF,GACf,IAAMT,EAASjY,KAAKkjF,GAAG0D,YACjB,EAA+BluE,GAAQ1Y,KAAKs5F,eAA1CllF,EAAE,KAAEyN,EAAG,MAAEygB,EAAI,OAAEgjD,EAAS,YAEhC,GAAKlxE,EAAL,CAKA,IAAMopF,EAAYlY,EAAU3hF,IAAI,aAC1B85F,EAAUz9F,KAAK09F,cAAgBtpF,EAC/BupF,EAAYF,EAAU,CAAC,EAAI,CAAExD,QAAS,GAExCwD,GAAWD,IACbx9F,KAAK09F,YAActpF,EACnBpU,KAAK26F,gBAAgBr4D,GACrBtiC,KAAKu5F,kBAAkBnlF,EAAIyN,EAAK,CAAEygB,KAAI,KAGpCtiC,KAAKu9F,eAAejY,KACtBtlF,KAAK45F,gBAAgBt3D,IACpBrqB,EAAO2lF,qBAAuB59F,KAAKy5F,kBAAkBn3D,IAGxD,IAAM47B,EAAO,KACP2/B,EAAU79F,KAAK+4F,cAAc,EAAGz2D,GAC9B3lB,EAAUkhF,EAAO,MACnB1G,EAAWn3F,KAAKyiF,OAAOqb,iBAAiB1pF,EAAIyN,GAC5Ck8E,EAAS5G,EAASruD,IAClB4xD,EAAUvD,EAASznE,KAEzB1vB,KAAKg6F,YAAY5lF,EAAIyN,EAAK,OACrB87E,GAAS,CACZr7D,KAAI,EACJy7D,OAAM,EACNrD,QAAO,KAGT/9E,EAAMmsB,IAAMi1D,EAAS7/B,EACrBvhD,EAAM+S,KAAOgrE,EAAUx8B,EACvBvhD,EAAMwpB,MAAQtkB,EAAIskB,MAAQ+3B,EAC1BvhD,EAAMmW,OAASjR,EAAIiR,OAASorC,EAE5Bl+D,KAAKg+F,WAAW,QAAS,CACvB1Y,UAAS,EACTlxE,GAAIypF,EACJ/0D,IAAKi1D,EACLruE,KAAMgrE,EACNv0D,MAAOtkB,EAAIskB,MACXrT,OAAQjR,EAAIiR,Q,MA5CZ9yB,KAAK09F,YAAc,CA8CvB,EAEA7F,YAAY,IAAAvQ,WAAS,WAEnBtnF,KAAKm5F,kBAAkB,CAAE16C,MAAO,GAClC,GAAG,GAEHu/C,WAAU,SAACx7F,EAAcqH,QAAA,IAAAA,IAAAA,EAAA,IACvB7J,KAAKkjF,GAAGp/E,QAAQ,sBAAuB,GACrCtB,KAAI,GACDqH,GAEP,EAEAsvF,kBAAiB,SAACtvF,QAAA,IAAAA,IAAAA,EAAA,IACV,MAAyB7J,KAAKq5F,gBAA5BjlF,EAAE,KAAEyN,EAAG,MAAEyjE,EAAS,YAE1B,IAAKlxE,EAGH,OAFApU,KAAK+4F,qBACL/4F,KAAKq0F,aAAe,GAId,IAAA5R,EAAWziF,KAAI,QACPA,KAAKq0F,eAAiBjgF,GAEvBvK,EAAK40C,SAClBz+C,KAAKq0F,aAAejgF,EACpBpU,KAAK88F,cAAcxX,IAGrB,IAAMpnB,EAAO,KACP2/B,EAAU79F,KAAK+4F,cAAc,GAC3Bp8E,EAAUkhF,EAAO,MACnBI,EAAexb,EAAOgY,wBAAwBrmF,EAAIquE,EAAOyS,eAAiB,CAAErzE,IAAG,IAC/Ek8E,EAASE,EAAaC,gBACtBxD,EAAUuD,EAAaE,iBAC7BxhF,EAAMmsB,IAAMi1D,EAAS7/B,EACrBvhD,EAAM+S,KAAOgrE,EAAUx8B,EACvBvhD,EAAMwpB,MAAQtkB,EAAIskB,MAAQ+3B,EAC1BvhD,EAAMmW,OAASjR,EAAIiR,OAASorC,EAE5Bl+D,KAAKo9F,iBAAiB,CAAEt0D,IAAKm1D,EAAan1D,IAAKpZ,KAAMuuE,EAAavuE,OAClE1vB,KAAKg+F,WAAW,SAAU,CACxB1Y,UAAS,EACTlxE,GAAIypF,EACJ/0D,IAAKi1D,EACLruE,KAAMgrE,EACNv0D,MAAOtkB,EAAIskB,MACXrT,OAAQjR,EAAIiR,QAEhB,EAKAglE,gBAAgB,IAAAxQ,WAAS,WAEvBtnF,KAAK43F,iBACP,GAAG,GAEHF,mBAAmB,IAAApQ,WAAS,WAE1BtnF,KAAKkjF,GAAGkb,eACV,GAAG,KAQHxW,cAAa,SAACxzE,GACZ,OAAOpU,KAAKyiF,OAAOC,gBAAgBkF,cAAcxzE,EAAI,CAAE8zE,UAAU,GACnE,EAMAmW,UAAS,WACPr+F,KAAKywF,WAAW9zE,MAAMC,QAAU,MAClC,EAOA0hF,cAAa,SAACn5F,GACZA,GACEA,EAAMM,IAAI,CACR84F,OAAQ,GACRt/E,MAAO,IAEb,EAMA4wE,iBAAgB,WACd,OAAO7vF,KAAKyiF,OAAOwV,WACrB,EAEA/V,IAAG,SAACK,IACG,IAAAic,YAELx+F,KAAKuiF,OAASA,GAAUA,EAAO5+E,IAAI,UACnC3D,KAAKijF,SACP,EAEAtlE,KAAI,SAACwkE,EAAI8C,EAAQp7E,GACf,QADe,IAAAA,IAAAA,EAAA,KACV,IAAA20F,UAAL,CACM,IAAEtb,EAAeljF,KAAb,GAAEuiF,EAAWviF,KAAL,OAClBA,KAAK23F,YACL33F,KAAK4vF,uBACJ/lF,EAAK40F,kBAAoBvb,EAAGwb,cAC7B1+F,KAAK+4F,gBACLxW,GAAUA,EAAOO,YAAY,SANR,CAOvB,E,wEC5tBF,SAMEyM,oBAAmB,SAAC6I,EAAkB/lE,EAAexoB,GAArD,gBAAqD,IAAAA,IAAAA,EAAA,IACnD7J,KAAK2+F,WAAY,EACjB,IAAMC,EAAQ5+F,KAAKkjF,GAAGoT,MAChB71C,EAAY23C,EAAIloE,cAAcpT,KAEhC8hF,IAAU5+F,KAAK0vF,SACjB1vF,KAAK0vF,OAAS,IAAIkP,EAAMC,OAAO,CAE7Bp+C,UAAS,EACTq+C,OAAQ9+F,KAAKyiF,OAAOsc,cACpBC,aAAc,IACdC,QAAS,IACThb,IAAKjkF,KAAKujF,KACVh4D,UAAW,IACX7W,SAAU2d,EACV6sE,QAAS,EACTC,OAAQ,EACRjc,GAAIljF,KAAKkjF,GACTkc,eAAgB,EAChBC,MAAO,WAAM,SAAKnc,GAAGoc,gBAAR,KAGbz1F,EAAK65E,UAAS1jF,KAAK0vF,OAAOhM,QAAU75E,EAAK65E,SAC7C0U,GAAOp4F,KAAK0vF,OAAO6P,UAAUnH,EAAK,CAAE33C,UAAS,GAC/C,EAOA++C,aAAY,WACV,IAAIrI,EAAWn3F,KAAKm7B,OAAOn7B,KAAKyiF,OAAOmU,cACnCQ,EAAYp3F,KAAKm7B,OAAOn7B,KAAKyiF,OAAOiC,cAGxC,MAAO,CAAE57C,IAFCquD,EAASruD,IAAMsuD,EAAUtuD,IAErBpZ,KADHynE,EAASznE,KAAO0nE,EAAU1nE,KAEvC,EAMA+vE,mBAAkB,WAChBz/F,KAAK0/F,oBAAsB,KAC3B1/F,KAAK2/F,SAA6B,SAAlB3/F,KAAK4/F,WAA6C,IAArB5/F,KAAK6/F,KAAKl/F,OAAeX,KAAK2/F,SAAW,EAAI3/F,KAAK2/F,SAC3F3/F,KAAK0vF,SACP1vF,KAAK0vF,OAAOhxB,MAAQ,EACpB1+D,KAAK0vF,OAAOa,WAEVvwF,KAAK6/F,OACP7/F,KAAK8/F,YAAmC,IAArB9/F,KAAK6/F,KAAKl/F,QAAkC,SAAlBX,KAAK4/F,WAAwB5/F,KAAK2/F,UAAY3/F,KAAK6/F,KAAKl/F,OACrGX,KAAK+/F,YACkB,IAArB//F,KAAK6/F,KAAKl/F,QACN,gBAAEX,KAAKggG,cACNhgG,KAAK8/F,aAAe9/F,KAAK6/F,KAAK7/F,KAAK2/F,WACpC,gBAAE3/F,KAAK6/F,KAAK7/F,KAAK2/F,UAAU,IAAIphF,UAC/B,gBAAEve,KAAKggG,aACbhgG,KAAKigG,eAAiBjgG,KAAK+/F,YAAYrnF,KAAK,SAC5C1Y,KAAK0/F,oBAAsB1/F,KAAK+/F,YAAYrnF,KAAK,cAErD,EAMAuqE,OAAM,WACJjjF,KAAKuvF,qBACP,EAUA2Q,UAAS,SAACp/F,EAAemO,EAAgBu0B,GACvC,IAAI3jC,EAAIiB,GAAS,EACb0Q,EAAIvC,GAAU,SACdwc,EAAM+X,EAAK7iC,OACXw/F,EAAiB,IAAR10E,GAAkB,SAALja,GAAgB3R,GAAK4rB,EAC/C,OAAY,IAARA,KAAgB00E,IAAW38D,EAAK3jC,GAAG,IAAQ2jC,EAAK3jC,EAAI,KAAO2jC,EAAK3jC,EAAI,GAAG,IAAQsgG,IAAW38D,EAAK3jC,EAAI,GAAG,IACjG,EACF,CACT,EAEAqiF,IAAG,WACDliF,KAAKijF,QACP,EAEAtlE,KAAI,WACF3d,KAAKy/F,qBACLz/F,KAAKkvF,SAAS5uD,IAAI,SAAU,IAC5BtgC,KAAKkvF,SAASriF,QAChB,E,oUCrGF,SACEuzF,gBAAe,SAACnhF,GAEd,MAAO,OADMA,GAAS,IACE,gBAC1B,EAEAijE,IAAG,SAACK,EAAQ0C,EAAQp7E,GAClB,IAAIyjD,EAAMzjD,GAAQ,CAAC,EACfoV,EAAQquC,EAAIruC,OAAS,GACrBhH,EAASsqE,EAAOqE,YACdyZ,EAAOrgG,KAAKkjF,GAAGoc,iBACflrF,EAAKk5C,EAAIl5C,IAAM,GAErB,IAAK6D,EAAOi/E,cAAe,IAAAoJ,YAAWlsF,KAAS6D,EAAO2lF,qBAAgC,SAAT3+E,EAC3EsjE,EAAOO,YAAY,UAAG9iF,KAAKsK,IAAMT,OADnC,CAKA,IAAI44E,EAASF,EAAOiC,OAChB3iE,EAAM,EAAH,GAASyrC,EAAIksC,OAAS/W,EAAOmF,cAAcxzE,KAE7C,IAAAw1E,aAAYt8B,EAAIxkB,OACnBjnB,EAAIinB,IAAMwkB,EAAIxkB,MAEX,IAAA8gD,aAAYt8B,EAAI59B,QACnB7N,EAAI6N,KAAO49B,EAAI59B,MAGjB,IAAI/S,EAAQ5c,OAAOynC,iBAAiBpzB,GAChCmvE,EAAOvjF,KAAKujF,KACZgd,EAAWthF,EAAQ,QAGnBuhF,EAAe/d,EAFNziF,KAAKogG,gBAAgBnhF,IAEApV,EAAKy4B,MACvCk+D,EAAa7jF,MAAMk9E,QAAU,GAE7B,IAAI4G,EAAUzgG,KAAK,UAAYif,GAC3ByhF,EAAU1gG,KAAK,UAAYif,GAC3B0hF,EAAU3gG,KAAK,UAAYif,GAC3B2hF,EAAU5gG,KAAK,UAAYif,GAC3B4hF,EAAO7gG,KAAK,OAASif,GACrB6hF,EAAO9gG,KAAK,OAASif,GACrB8hF,EAAO/gG,KAAK,OAASif,GACrB+hF,EAAOhhG,KAAK,OAASif,GAczB,GAZIuhF,EAAaj8E,WAAW5jB,SAC1BX,KAAKugG,GAAY,IACjBE,EAAUD,EAAatgE,cAAc,qBACrCwgE,EAAUF,EAAatgE,cAAc,qBACrCygE,EAAUH,EAAatgE,cAAc,qBACrC0gE,EAAUJ,EAAatgE,cAAc,qBACrC2gE,EAAOL,EAAatgE,cAAc,qBAClC4gE,EAAON,EAAatgE,cAAc,qBAClC6gE,EAAOP,EAAatgE,cAAc,qBAClC8gE,EAAOR,EAAatgE,cAAc,uBAG/BlgC,KAAKugG,GAAW,CACnB,IAAIU,EAAWhiF,EAAMmK,cACjB83E,EAAaD,EAAW,WACxBE,EAAcF,EAAW,YACzBG,GAAU,gBAAE,uBAAe7d,EAAI,kBAAgB5/E,IAAI,GACnD09F,GAAW,gBAAE,uBAAe9d,EAAI,mBAAiB5/E,IAAI,GAErD29F,EAAa/d,EAAO4d,EAAc,MAChCI,EAAe,UAFLhe,EAAO2d,EAAa,MAEH,YAAI3d,EAAO2d,GACtCM,EAAc,UAAGF,EAAU,YAAI/d,EAAO4d,GAC5CV,GAAU,gBAAE,uBAAec,EAAY,kBAAgB59F,IAAI,GAC3D+8F,GAAU,gBAAE,uBAAea,EAAY,qBAAmB59F,IAAI,GAC9Dg9F,GAAU,gBAAE,uBAAeY,EAAY,mBAAiB59F,IAAI,GAC5Di9F,GAAU,gBAAE,uBAAeW,EAAY,oBAAkB59F,IAAI,GAC7Dk9F,GAAO,gBAAE,uBAAeW,EAAW,kBAAgB79F,IAAI,GACvDm9F,GAAO,gBAAE,uBAAeU,EAAW,qBAAmB79F,IAAI,GAC1Do9F,GAAO,gBAAE,uBAAeS,EAAW,mBAAiB79F,IAAI,GACxDq9F,GAAO,gBAAE,uBAAeQ,EAAW,oBAAkB79F,IAAI,GACzD3D,KAAK,UAAYif,GAASwhF,EAC1BzgG,KAAK,UAAYif,GAASyhF,EAC1B1gG,KAAK,UAAYif,GAAS0hF,EAC1B3gG,KAAK,UAAYif,GAAS2hF,EAC1B5gG,KAAK,OAASif,GAAS4hF,EACvB7gG,KAAK,OAASif,GAAS6hF,EACvB9gG,KAAK,OAASif,GAAS8hF,EACvB/gG,KAAK,OAASif,GAAS+hF,EACvBI,EAAQ38E,YAAYg8E,GACpBW,EAAQ38E,YAAYi8E,GACpBU,EAAQ38E,YAAYk8E,GACpBS,EAAQ38E,YAAYm8E,GACpBS,EAAS58E,YAAYo8E,GACrBQ,EAAS58E,YAAYq8E,GACrBO,EAAS58E,YAAYs8E,GACrBM,EAAS58E,YAAYu8E,GACrBR,EAAa/7E,YAAY28E,GACzBZ,EAAa/7E,YAAY48E,GACzBrhG,KAAKugG,GAAY,G,CAGnB,IAAIriC,EAAO,KACPujC,EAAelZ,WAAW5rE,EAAM6pB,WAAW/2B,QAAQyuD,EAAM,KAAOmiC,EAChEqB,EAAgBnZ,WAAW5rE,EAAMglF,YAAYlyF,QAAQyuD,EAAM,KAAOmiC,EAClEuB,EAAcrZ,WAAW5rE,EAAMwvB,UAAU18B,QAAQyuD,EAAM,KAAOmiC,EAC9DwB,EAAiBtZ,WAAW5rE,EAAMoiC,aAAatvC,QAAQyuD,EAAM,KAAOmiC,EACpEyB,EAAUrB,EAAQ9jF,MAClBolF,EAAUrB,EAAQ/jF,MAClBqlF,EAAUrB,EAAQhkF,MAClBslF,EAAUrB,EAAQjkF,MAClBulF,EAAUrB,EAAKlkF,MACfwlF,EAAUrB,EAAKnkF,MACfylF,EAAUrB,EAAKpkF,MACf0lF,EAAUrB,EAAKrkF,MACf2lF,EAAU/Z,WAAW1mE,EAAI6N,MACzB6yE,EAAUha,WAAW5rE,EAAMwpB,OAASk6D,EAAOniC,EAG/C4jC,EAAQhvE,OAAS8uE,EAAc1jC,EAC/B4jC,EAAQ37D,MAAQo8D,EAChBT,EAAQh5D,IAAMjnB,EAAIinB,IAAM84D,EAAc1jC,EACtC4jC,EAAQpyE,KAAO4yE,EAAUpkC,EAEzB6jC,EAAQjvE,OAAS+uE,EAAiB3jC,EAClC6jC,EAAQ57D,MAAQo8D,EAChBR,EAAQj5D,IAAMjnB,EAAIinB,IAAMjnB,EAAIiR,OAASorC,EACrC6jC,EAAQryE,KAAO4yE,EAAUpkC,EAEzB,IAAIskC,EAAc3gF,EAAIiR,OAAS8uE,EAAcC,EAAiB3jC,EAC1DukC,EAAc5gF,EAAIinB,IAAM84D,EAAc1jC,EAC1C8jC,EAAQlvE,OAAS0vE,EACjBR,EAAQ77D,MAAQs7D,EAAevjC,EAC/B8jC,EAAQl5D,IAAM25D,EACdT,EAAQtyE,KAAO4yE,EAAUb,EAAevjC,EAExC+jC,EAAQnvE,OAAS0vE,EACjBP,EAAQ97D,MAAQu7D,EAAgBxjC,EAChC+jC,EAAQn5D,IAAM25D,EACdR,EAAQvyE,KAAO4yE,EAAUzgF,EAAIskB,MAAQ+3B,EAGrC,IAAIwkC,EAASna,WAAW5rE,EAAMuqB,YAAcm5D,EAC5C6B,EAAQpvE,OAAS4vE,EAASxkC,EAK1B,IAAIykC,EAASpa,WAAW5rE,EAAMs+B,eAAiBolD,EAC/C8B,EAAQrvE,OAAS6vE,EAASzkC,EAK1B,IAAI0kC,EAAW/gF,EAAIiR,OAAS6vE,EAASD,EAASxkC,EAC1C2kC,GAAWhhF,EAAIinB,IAAM45D,EAASxkC,EAClCkkC,EAAQtvE,OAAS8vE,EACjBR,EAAQj8D,MAAQoiD,WAAW5rE,EAAM2pB,aAAe+5D,EAAOniC,EACvDkkC,EAAQt5D,IAAM+5D,GAId,IAAIC,GAAWva,WAAW5rE,EAAMgrB,cAAgB04D,EAChDgC,EAAQvvE,OAAS8vE,EACjBP,EAAQl8D,MAAQ28D,GAAW5kC,EAC3BmkC,EAAQv5D,IAAM+5D,E,CAGhB,EAEAllF,KAAI,SAAC4kE,EAAQ0C,EAAQp7E,QAAA,IAAAA,IAAAA,EAAA,IACnB,IACIoV,GADMpV,GAAQ,CAAC,GACHoV,OAAS,GACrBhQ,EAASjP,KAAKogG,gBAAgBnhF,GACrBsjE,EAAOiC,OAEMv1E,GAAQpF,EAAKy4B,MAC1B3lB,MAAMk9E,QAAU,CAC/B,E,gFC3KF,SACE73C,KAAI,YACF,IAAAsgC,SAAQtiF,KAAM,kBAChB,EAEAkiF,IAAG,SAACC,GACFniF,KAAK+iG,UAAU5gB,GAAI,EACrB,EAEAxkE,KAAI,SAACwkE,GACHniF,KAAK+iG,UAAU5gB,GAAI,EACrB,EAEA4gB,UAAS,SAAC5gB,EAAYjjC,GACpB,QADoB,IAAAA,IAAAA,GAAA,IACfijC,EAAGgD,SAASmQ,SAAS,WAAY,CACpC,IAAM0N,EAAK7gB,EAAGqC,OACRye,EAAM/jD,EAAS,KAAO,MACR8jD,EAAGjd,WACXkd,GAAK,gBAAiBjjG,KAAKkjG,iBACvCljG,KAAKmjG,aAAaH,EAAGjL,YAAa74C,E,CAEtC,EAEAikD,aAAY,SAACC,EAAiBlkD,GAA9B,WACEkkD,EAAO3tF,SAAQ,SAAC06E,G,OACJ,QAAV,EAAAA,EAAM7tD,YAAI,eAAE+gE,SAAU,EAAKC,SAASnT,EAAOjxC,GAEtCixC,EAAMoT,OACTpT,EAAM1oF,GAAG,UAAU,WAAM,SAAK67F,SAASnT,EAAd,IACzBA,EAAMoT,MAAO,EAEjB,GACF,EAEAL,gBAAe,SAACjjG,EAAQmjG,GACtBpjG,KAAKmjG,aAAaC,EACpB,EAEAE,SAAQ,SAACnT,EAAcjxC,G,MACf,EAAmBl/C,KAAjBujF,EAAI,OAAEL,EAAE,KAAE54E,EAAE,KAEd2E,IADW,IAAAu0F,OAAMtkD,GAAUA,EAASgkC,EAAGiC,SAASmQ,SAAShrF,IACrC,MAAQ,SAC5B4Z,EAAM,UAAGq/D,EAAI,UACT,QAAV,EAAA4M,EAAM7tD,YAAI,SAAEsiD,UAAUtB,UAAUr0E,GAAQiV,EAC1C,E,wjBCMF,2B,8CAAyG,QAAzB,OAAyB,EAAzG,CAAgF,WAEhF,2B,8CAAiF,QAAxB,OAAwB,EAAjF,CAAyD,gBAEzD,2B,8CAAqH,QAArB,OAAqB,EAArH,CAAgG,S,oiBCzDhG,cAaE,WAAYra,EAAgBoO,EAAcwrF,QAA9B,IAAA55F,IAAAA,EAAA,SAA8B,IAAA45F,IAAAA,GAAA,GAA1C,MACE,YAAM55F,IAAK,K,OAPb,EAAA65F,UAAY,GAEZ,EAAAC,SAAW,OAEX,EAAAC,WAAY,EAIV,EAAK3rF,OAASA,GAAUpO,EAAKoO,QAAU,CAAC,EACxCwrF,GAAW,EAAKj5F,SAAS,EAAKvF,WAAY,MAAO,EAAK4+F,OACtD,EAAKC,MAAQ,G,CACf,CA8GF,OAhIyC,OAyBvC,YAAAD,MAAA,SAAM1+F,GACJnF,KAAKsE,IAAIa,EACX,EAEA,YAAA4+F,iBAAA,SAAiBvhG,GACT,IAAEyV,EAAejY,KAAT,OAAEgkG,EAAOhkG,KAAL,GACVkjF,EAAOjrE,EAAM,GACfgsF,EAAO,UAAGD,EAAK,WAAIA,EAAE,OAAQ,GAAE,YAAIxhG,EAAI,oBAC7C0gF,GAAMA,EAAGuC,WAAWwe,EACtB,EAQA,YAAA3/F,IAAA,SAAIa,EAAY8U,GACR,IA6BFqoB,EA7BE,EAA+BtiC,KAA7BiY,EAAM,SAAE2rF,EAAS,YAAEE,EAAK,QAC1BJ,EAAa1jG,KAAK0jG,WAAa,CAAC,EAyBlClvC,EAAOv6C,GAAY,KACnBg9E,EAAWj3F,KAAKi3F,SAChBiN,EAAY/+F,EAAMxB,IAAI3D,KAAK2jG,UAG3BD,EAAUQ,GACZjN,EAAWyM,EAAUQ,IACZA,GAAcR,EAAUQ,KAAe,IAAA3tF,UA/B/B,CACjB,SACA,WACA,QACA,OACA,iBACA,QACA,OACA,SACA,QACA,QACA,SACA,WACA,QACA,QACA,QACA,SACA,SACA,MACA,OACA,OACA,MACA,QASqE2tF,IACrElkG,KAAK+jG,iBAAiBG,GAItB5hE,EADEn9B,EAAMm9B,MAAQshE,EACTz+F,EAAMm9B,KAEN,IAAI20D,EAAS,CAAE9xF,MAAK,EAAE8S,OAAM,GAAIA,GAGzC6rF,GAASA,EAAMn/F,KAAK29B,GACpB,IAAMivD,EAAWjvD,EAAKzuB,SAASO,GAE3BogD,EAAMA,EAAK/vC,YAAY8sE,GACtBvxF,KAAK2T,IAAIq/E,OAAOzB,EACvB,EAEA,YAAA19E,OAAA,WACE,IAAI2gD,EAAO9/C,SAASisB,yBAYpB,OAXA3gC,KAAKmkG,aACLnkG,KAAK2T,IAAIq+B,QAELhyC,KAAKiF,WAAWtE,QAClBX,KAAKiF,WAAWM,MAAK,SAAUJ,GAE7BnF,KAAKsE,IAAIa,EAAOqvD,EAClB,GAAGx0D,MAELA,KAAK2T,IAAIq/E,OAAOx+B,GAChBx0D,KAAK82F,WACE92F,IACT,EAEA,YAAA82F,SAAA,WAAY,EACZ,YAAAsN,eAAA,SAAeN,EAAaj6F,GAAa,EACzC,YAAAw6F,SAAA,SAASP,EAAaj6F,GAAa,EAEnC,YAAAzE,OAAA,SAAOyE,QAAA,IAAAA,IAAAA,EAAA,IACG,IAAAi6F,EAAU9jG,KAAI,MAKtB,OAJAA,KAAKokG,eAAeN,EAAOj6F,GAC3B7J,KAAKmkG,aACL,YAAM/+F,OAAM,WACZpF,KAAKqkG,SAASP,EAAOj6F,GACd7J,IACT,EAEA,YAAAmkG,WAAA,WACgBnkG,KAAK8jG,KAIrB,EACF,EAhIA,CAAyC,M,UAmIzC/M,EAAY12F,UAAU42F,SAAW,E,8SCpC3BqN,EAAsB,CAAC,IAAK,K,QAElC,WAsBE,WAAYz6F,GAkBV,YAlBU,IAAAA,IAAAA,EAAA,IACV7J,KAAK6J,KAAO,CACV06F,WAAY,EACZlF,MAAO,IAET,IAAA/c,SAAQtiF,KAAM,OAAQ,OAAQ,YAAa,gBAC3CA,KAAK+P,WAAWlG,GAChB7J,KAAK6iD,MAjCc,CAAGhvB,EAAG,EAAG+Z,EAAG,GAkC/B5tC,KAAKwkG,WAlCc,CAAG3wE,EAAG,EAAG+Z,EAAG,GAmC/B5tC,KAAKykG,eAnCc,CAAG5wE,EAAG,EAAG+Z,EAAG,GAoC/B5tC,KAAK0kG,aApCc,CAAG7wE,EAAG,EAAG+Z,EAAG,GAqC/B5tC,KAAK2kG,cArCc,CAAG9wE,EAAG,EAAG+Z,EAAG,GAsC/B5tC,KAAK4kG,eAtCc,CAAG/wE,EAAG,EAAG+Z,EAAG,GAuC/B5tC,KAAK6kG,eAvCc,CAAGhxE,EAAG,EAAG+Z,EAAG,GAwC/B5tC,KAAKumC,SAxCc,CAAG1S,EAAG,EAAG+Z,EAAG,GAyC/B5tC,KAAK4lF,aAAe,GACpB5lF,KAAK6lF,aAAe,GACpB7lF,KAAKk7F,KAAO,GACLl7F,IACT,CAmUF,OA7TE,YAAA+P,WAAA,SAAWlG,QAAA,IAAAA,IAAAA,EAAA,IACT7J,KAAK6J,KAAO,EAAH,KACJ7J,KAAK6J,MACLA,EAEP,EAEA,YAAAy8E,WAAA,SAAWrD,GACT,IAAMiY,EAAOl7F,KAAK8kG,gBACZrkD,EAAYzgD,KAAK+kG,iBACjB/M,EAAMh4F,KAAKglG,cACX/1F,EAASg0E,EAAS,KAAO,MACzB7tE,EAAU,CAAE3N,GAAE,KAAE0D,IAAG,OACzBiK,EAAQnG,GAAQwxC,EAAW,qBAAsBzgD,KAAKqvF,MACtDj6E,EAAQnG,GAAQisF,EAAM,2BAA4Bl7F,KAAK2d,MACvDvI,EAAQnG,GAAQisF,EAAM,UAAWl7F,KAAKilG,WACtC7vF,EAAQnG,GAAQ+oF,EAAK,SAAUh4F,KAAKklG,aACtC,EAEA,YAAAA,aAAA,WACQ,IAAEV,EAAsBxkG,KAAZ,WAAE6iD,EAAU7iD,KAAL,MACnBmlG,EAAenlG,KAAK0oE,gBACpB08B,EAAa,CACjBvxE,EAAGsxE,EAAatxE,EAAI2wE,EAAY3wE,EAChC+Z,EAAGu3D,EAAav3D,EAAI42D,EAAY52D,GAElC5tC,KAAKggE,KAAKnd,EAAMhvB,EAAIuxE,EAAWvxE,EAAGgvB,EAAMjV,EAAIw3D,EAAWx3D,GACvD5tC,KAAKykG,eAAiBW,CACxB,EAMA,YAAAppF,MAAA,SAAMxP,GACI,IAAA3C,EAAS7J,KAAI,KACb0jF,EAAY75E,EAAI,QACxB7J,KAAKsmF,YAAW,GAChBtmF,KAAK0kG,aAAe1kG,KAAKqlG,cAAc74F,GACvCxM,KAAK4lF,cAAe,IAAA14E,QAAOrD,EAAM,iBAAmB,GACpD7J,KAAK6lF,cAAe,IAAA34E,QAAOrD,EAAM,iBAAmB,IACpD,IAAAxH,YAAWqhF,IAAYA,EAAQl3E,EAAIxM,MACnCA,KAAK2kG,cAAgB3kG,KAAKslG,mBAC1BtlG,KAAKykG,eA9Fc,CAAG5wE,EAAG,EAAG+Z,EAAG,GA+F/B5tC,KAAK4kG,eA/Fc,CAAG/wE,EAAG,EAAG+Z,EAAG,GAgG/B5tC,KAAKqvF,KAAK7iF,EACZ,EAMA,YAAA6iF,KAAA,SAAK7iF,GAAL,WACQ,EAA2CxM,KAAzC6J,EAAI,OAAE46F,EAAc,iBAAEG,EAAc,iBACpCjhB,EAAW95E,EAAI,OACf66F,EAAiB1kG,KAAI,aACvBulG,EAAavlG,KAAKqlG,cAAc74F,GAChCg5F,EAAS,CACb3xE,EAAG+wE,EAAe/wE,EAAI4wE,EAAe5wE,EACrC+Z,EAAGg3D,EAAeh3D,EAAI62D,EAAe72D,GAEvC5tC,KAAK4kG,eAAiBY,EACtB,IAAM3iD,EAAQ,CACZhvB,EAAG0xE,EAAW1xE,EAAI6wE,EAAa7wE,EAAI2xE,EAAO3xE,EAC1C+Z,EAAG23D,EAAW33D,EAAI82D,EAAa92D,EAAI43D,EAAO53D,GAE5C5tC,KAAKykG,eArHc,CAAG5wE,EAAG,EAAG+Z,EAAG,GAsHzB,IAAA63D,EAAezlG,KAAI,WASN,OALjBylG,EADEj5F,EAAG+pD,UACSkvC,GAAczlG,KAAK0lG,eAAe7iD,EAAMhvB,EAAGgvB,EAAMjV,GAElD,MAIbiV,EAAMhvB,EAAI6wE,EAAa7wE,EACC,MAAf4xE,IACT5iD,EAAMjV,EAAI82D,EAAa92D,GAGzB,IAAM+3D,EAAY,SAAC9iD,GACjByhD,EAAM7uF,SAAQ,SAAAmwF,GAAM,OAAC/iD,EAAM+iD,GAAM/iD,EAAM+iD,IAAM,IAAA14F,QAAOrD,EAAM,QAAtC,IACpB,EAAKg5C,MAAQA,EACb,EAAKmd,KAAKnd,EAAMhvB,EAAGgvB,EAAMjV,IACzB,IAAAvrC,YAAWshF,IAAWA,EAAOn3E,EAAI,EACnC,EACMq5F,EAAW,EAAH,GAAQhjD,GAMtB,GALA7iD,KAAK6kG,eAAiBU,EACtBvlG,KAAKylG,WAAaA,EAClBzlG,KAAKwkG,WAAaxkG,KAAK0oE,gBACvBi9B,EAAU9iD,GAEN7iD,KAAK6lF,aAAallF,OAAQ,CACtB,MAA2BX,KAAK8lG,WAAWD,GAAzCE,EAAQ,WAAEC,EAAI,OAAEC,EAAI,QAC3BD,GAAQC,IAASN,EAAUI,E,CAIjB,IAAbv5F,EAAGzK,OAAe/B,KAAK2d,KAAKnR,EAC9B,EAKA,YAAAs5F,WAAA,SAAWjjD,GAAX,WACQkjD,EAAWljD,EACXmjD,EAAehmG,KAAX,KAAEimG,EAASjmG,KAAL,KA2ChB,OAzCAA,KAAK6lF,aAAapwE,SAAQ,SAAA2iF,GAEnBA,EAAIvkE,GAAK,EAAKmyE,MAAU5N,EAAIxqD,GAAK,EAAKq4D,OAC3C7N,EAAIl5C,QAAS,EAEb,EAAK0mC,aAAanwE,SAAQ,SAAA40E,GACxB,KAAK+N,EAAIxqD,GAAKy8C,EAAKx2D,GAAOukE,EAAIvkE,GAAKw2D,EAAKz8C,GAAxC,CACA,IAAMi8C,EAAMuO,EAAIxqD,GAAKy8C,EAAKz8C,EACpBs4D,EAAMrc,EAAM,IAAM,IAClBsc,EAAW/N,EAAI8N,GACfE,EAAY/b,EAAK6b,GACjBG,EAAaxjD,EAAMqjD,GACnBI,EAAWzc,EAAMoc,EAAOD,EAE9B,GAAI,EAAKO,UAAUJ,EAAUC,KACvB,IAAAxc,aAAY0c,GAAW,CACzB,IAAME,EAAWH,GAAcF,EAAWC,GAC1C,EAAKK,aAAarO,EAAKoO,E,CAXuB,CAcpD,IACF,IAEAR,EAAOhmG,KAAKgmG,KACZC,EAAOjmG,KAAKimG,KAEZ3B,EAAM7uF,SAAQ,SAAAmwF,GACZ,IAAMlqD,EAAOkqD,EAAGz8E,cAEZivE,EAAM,EAAK,aAAM18C,IAEjB08C,IAAQ,EAAKmO,UAAU1jD,EAAM+iD,GAAKxN,EAAIsO,QACxC,EAAKD,aAAarO,EAAK,MACvBA,EAAM,MAGJA,KAAQ,IAAAxO,aAAYwO,EAAIsO,QAC1BX,EAASH,GAAMxN,EAAIsO,KAEvB,IAEO,CACLX,SAAQ,EACRC,KAAMhmG,KAAKgmG,KACXC,KAAMjmG,KAAKimG,KAEf,EAEA,YAAAM,UAAA,SAAU7pF,EAAa07E,EAAa,G,IAC5BuO,QAD4B,MAAkC,CAAC,EAAC,GAA5B,QACnB3mG,KAAK6J,KAAK06F,YAAc,EAC/C,OAAQ7nF,GAAO07E,GAAO17E,GAAO07E,EAAMuO,GAAUjqF,GAAO07E,GAAO17E,GAAO07E,EAAMuO,CAC1E,EAEA,YAAAF,aAAA,SAAa/f,EAAch/E,GACzB,IAAMg0C,GAAQ,IAAAkuC,aAAYlD,EAAM7yD,GAAW,IAAN,IAC/B+yE,EAAU,aAAMlrD,GActB,OAZc,OAAVh0C,GACFg/E,EAAMxnC,QAAS,EACfwnC,EAAMggB,KAAOh/F,EAEb1H,KAAK4mG,GAAWlgB,WAETA,EAAMxnC,cACNwnC,EAAMggB,YAEN1mG,KAAK4mG,IAGPlgB,CACT,EAKA,YAAA/oE,KAAA,SAAKnR,EAAW3C,QAAA,IAAAA,IAAAA,EAAA,IACN,IAAAg5C,EAAU7iD,KAAI,MAChB6mG,IAAch9F,EAAK+gD,OACnB/2B,EAAIgzE,EAAY,EAAIhkD,EAAMhvB,EAC1B+Z,EAAIi5D,EAAY,EAAIhkD,EAAMjV,EAChC5tC,KAAKsmF,aACLtmF,KAAKylG,WAAa,KAClBzlG,KAAKggE,KAAKnsC,EAAG+Z,GAAG,GACR,IAAAg2C,EAAU5jF,KAAK6J,KAAI,OAC3B,IAAAxH,YAAWuhF,IAAUA,EAAMp3E,EAAIxM,KAAM,CAAE6mG,UAAS,GAClD,EAEA,YAAA5B,UAAA,SAAUz4F,IACJ,IAAAs6F,UAASt6F,IACXxM,KAAK2d,KAAKnR,EAAI,CAAEo+C,QAAQ,GAE5B,EAOA,YAAAoV,KAAA,SAAKnsC,EAAW+Z,EAAW5rB,GACnB,IAAE5N,EAAapU,KAAX,GAAE6J,EAAS7J,KAAL,KACV6hB,EAAM7hB,KAAK2kG,cACjB,GAAK9iF,EAAL,CACQ,IAAA4hE,EAAgB55E,EAAI,YACtBk9F,EAAOllF,EAAIgS,EAAIA,EACfmzE,EAAOnlF,EAAI+rB,EAAIA,EACrB5tC,KAAKumC,SAAW,CACd1S,EAAGkzE,EACHn5D,EAAGo5D,EACHhlF,IAAG,IAGL,IAAA3f,YAAWohF,IAAgBA,EAAYzjF,KAAKumC,UAExCnyB,IACFA,EAAGuI,MAAM+S,KAAO,UAAGq3E,EAAI,MACvB3yF,EAAGuI,MAAMmsB,IAAM,UAAGk+D,EAAI,MAdR,CAgBlB,EAEA,YAAAjC,eAAA,WACU,IAAAtkD,EAAczgD,KAAK6J,KAAI,UAC/B,OAAO42C,EAAY,CAACA,GAAazgD,KAAK8kG,eACxC,EAEA,YAAAE,YAAA,WAEE,OADahlG,KAAK+kG,iBACNjgG,KAAI,SAAA2hF,GACd,IAAMp0D,EAAMo0D,EAAKv2D,eAAiBu2D,EAElC,OAAOp0D,EAAI40E,aAAe50E,EAAI60E,YAChC,GACF,EAKA,YAAApC,cAAA,SAAc1wF,GACJ,IAAAie,EAAQryB,KAAK6J,KAAI,IAGzB,GAFAuK,EAAKA,GAAMpU,KAAKoU,IAEXpU,KAAKk7F,KAAKv6F,OAAQ,CACrB,IAAMu6F,EAAO,CAACxmF,UACdN,GAAM8mF,EAAKv2F,KAAKyP,EAAG8b,eACnBmC,GAAO6oE,EAAKv2F,KAAK0tB,GACjBryB,KAAKk7F,KAAOA,C,CAGd,OAAOl7F,KAAKk7F,IACd,EAOA,YAAAmK,cAAA,SAAc74F,GACZ,IAAM26F,EAASnnG,KAAK6J,KAAKu9F,mBACnBC,GAAM,IAAAC,iBAAgB96F,GAE5B,OAAO26F,EACHA,EAAO36F,GACP,CACEqnB,EAAGwzE,EAAIt3D,QACPnC,EAAGy5D,EAAIr3D,QAEf,EAEA,YAAAs1D,iBAAA,WACQ,IAAElxF,EAAapU,KAAX,GACJmnG,EADennG,KAAL,KACIwjF,YAChBt2E,EA3Ue,CAAG2mB,EAAG,EAAG+Z,EAAG,GAsV/B,OATI,IAAAvrC,YAAW8kG,GACbj6F,EAASi6F,IACA/yF,IACTlH,EAAS,CACP2mB,EAAG00D,WAAWn0E,EAAGuI,MAAM+S,MACvBke,EAAG26C,WAAWn0E,EAAGuI,MAAMmsB,OAIpB57B,CACT,EAEA,YAAAw7D,cAAA,WACU,IAAAr2C,EAAQryB,KAAK6J,KAAI,IACnBiT,EAAOuV,GAAOA,EAAIvV,KAExB,MAAO,CACL8wB,EAAG9wB,EAAOA,EAAKuvB,UAAY,EAC3BxY,EAAG/W,EAAOA,EAAKmvB,WAAa,EAEhC,EAEA,YAAAy5D,eAAA,SAAe7xE,EAAW+Z,GACxB,IAAM25D,EAAO1zE,EACP2zE,EAAO55D,EACP65D,EAAOv7F,KAAK0kB,IAAI22E,GAChBG,EAAOx7F,KAAK0kB,IAAI42E,GAGtB,OAAIA,GAAQC,GAAQD,IAASC,EACpB,IACEF,EAAOG,GAAQH,GAAQG,EACzB,SADF,CAGT,EACF,EA5WA,E,4DC/FA,IAAIr1E,EAA0B,oBAAb3d,SAA2BA,SAAW,KACrDsjF,EAAwB,oBAAXj4F,OAAyBA,OAAS,KAC/C4nG,EAAmBvnG,MAAMC,UACzB4V,EAAS0xF,EAAiB1xF,OAC1BpR,EAAU8iG,EAAiB9iG,QAC3BC,EAAM6iG,EAAiB7iG,IACvBH,EAAOgjG,EAAiBhjG,KACxBmoB,EAAU66E,EAAiB76E,QAC3BxsB,EAAQqnG,EAAiBrnG,MACzBsE,EAAS+iG,EAAiB/iG,OACxBgjG,EAAO,YACTC,EAAU,aACVC,EAAS,OACTC,EAAQ,QAEV,SAASn0F,EAAKF,EAAU3J,GAKtB,YAJgB,IAAZA,IACFA,EAAUsoB,GAGLw1E,EAAQ79F,KAAK0J,GAChB3J,EAAQ4qD,uBAAuBjhD,EAASpT,MAAM,IAC9CynG,EAAM/9F,KAAK0J,GACX3J,EAAQi+F,qBAAqBt0F,GAC7B3J,EAAQqrF,iBAAiB1hF,EAC/B,CAGA,SAASu0F,EAAKv0F,EAAU3J,GAKtB,QAJgB,IAAZA,IACFA,EAAUsoB,GAGP3e,EAAL,CACA,GAAIA,EAASw0F,OAAQ,OAAOx0F,EAC5B,IAAIy0F,EAAOz0F,EAEX,GAAIxC,EAASwC,IAOX,GANI3J,EAAQm+F,SAAQn+F,EAAUA,EAAQ,MACtCo+F,EAAOP,EAAK59F,KAAK0J,GACb3J,EAAQq+F,eAAe10F,EAASpT,MAAM,IACtCwnG,EAAO99F,KAAK0J,GACZ20F,GAAU30F,GACVE,EAAKF,EAAU3J,IACR,YACN,GAAI1H,EAAWqR,GACpB,OAAO1T,KAAKsoG,MAAM50F,IAGhBy0F,EAAKnjF,UAAYmjF,IAASnQ,KAAKmQ,EAAO,CAACA,IAC3CnoG,KAAKW,OAASwnG,EAAKxnG,OAEnB,IAAK,IAAId,EAAI,EAAGoC,EAAIjC,KAAKW,OAAQd,EAAIoC,EAAGpC,IACtCG,KAAKH,GAAKsoG,EAAKtoG,EApBI,CAsBvB,CAEA,SAAS0oG,EAAK70F,EAAU3J,GACtB,OAAO,IAAIk+F,EAAKv0F,EAAU3J,EAC5B,CAGA,IAAIvJ,EACD+nG,EAAK/nG,GACN+nG,EAAKloG,UACL4nG,EAAK5nG,UACH,CACEsP,YAAa44F,EACbL,QAAQ,EACRvnG,OAAQ,EACRiE,OAAQA,GAIdpE,EAAGmD,IAAM,SAAU7C,GACjB,YAAcuE,IAAVvE,EAA4BR,EAAMM,KAAKZ,MACpCA,KAAKc,EAAQ,EAAIA,EAAQd,KAAKW,OAASG,EAChD,EAGAN,EAAGgoG,GAAK,SAAU1nG,GAChB,OAAOynG,EAAKvoG,KAAK2D,IAAI7C,GACvB,EAGAN,EAAGqR,MAAQ,WACT,OAAO7R,KAAKwoG,GAAG,EACjB,EAGAhoG,EAAGwW,KAAO,WACR,OAAOhX,KAAKwoG,IAAI,EAClB,EAGAhoG,EAAGsE,IAAM,SAAU8E,GACjB,OAAO2+F,EACLzjG,EAAIlE,KAAKZ,MAAM,SAAUyoG,EAAK5oG,GAC5B,OAAO+J,EAAShJ,KAAK6nG,EAAK5oG,EAAG4oG,EAC/B,IAEJ,EAGAjoG,EAAGF,MAAQ,WACT,OAAOioG,EAAKjoG,EAAMC,MAAMP,KAAMmB,WAChC,EAEA,IAAIunG,EAAc,sBAChBC,EAAwB,WAE1B,SAASC,EAAUh/E,GACjB,OAAOA,EACJna,QAAQi5F,GAAa,SAAUG,EAAQ/nG,GACtC,OAAO+nG,EAAQ/nG,EAAwB,cAAhB,gBACzB,IACC2O,QAAQk5F,EAAuB,GACpC,CAIA,SAASpjG,EAAK1E,EAAK+I,GACjB,IAAK,IAAI/J,EAAI,EAAGoC,EAAIpB,EAAIF,OAAQd,EAAIoC,IACY,IAA1C2H,EAAShJ,KAAKC,EAAIhB,GAAIgB,EAAIhB,GAAIA,EAAGgB,GADAhB,KAGzC,CANA0oG,EAAKK,UAAYA,EAQjBL,EAAKhjG,KAAOA,EAGZ/E,EAAG+E,KAAO,SAAUqE,GAIlB,OAHArE,EAAKvF,MAAM,SAAUyoG,EAAK5oG,GACxB,OAAO+J,EAAShJ,KAAK6nG,EAAK5oG,EAAG4oG,EAC/B,IACOzoG,IACT,EAGAQ,EAAGsoG,WAAa,SAAUriF,GACxB,OAAOzmB,KAAKuF,MAAK,SAAU1F,EAAG4oG,UACrBA,EAAIhiF,EACb,GACF,EAmBA8hF,EAAK5hG,OAASnG,EAAGmG,OAjBjB,SAAgB4f,QACC,IAAXA,IACFA,EAASvmB,MAMX,IAHA,IAAIU,EAAOS,UACTR,EAASD,EAAKC,OAEPd,EAAIc,EAAS,EAAI,EAAI,EAAGd,EAAIc,EAAQd,IAC3C,IAAK,IAAIwB,KAAOX,EAAKb,GACnB0mB,EAAOllB,GAAOX,EAAKb,GAAGwB,GAI1B,OAAOklB,CACT,EAIA,IAAIwiF,EAAO,EAGX,SAASr7F,EAAQ+6F,EAAK/0F,GACpB,IAAIhG,EACF+6F,IACCA,EAAI/6F,SACH+6F,EAAIO,uBACJP,EAAIQ,oBACJR,EAAIS,mBACJT,EAAIU,kBACR,QAASz7F,GAAWA,EAAQ9M,KAAK6nG,EAAK/0F,EACxC,CAIA,SAASrR,EAAWwxB,GAClB,MAAoB,mBAANA,CAChB,CAIA,SAAS3iB,EAAS2iB,GAChB,MAAoB,iBAANA,CAChB,CAIA,SAASu1E,EAAUv1E,GACjB,OAAQ+T,MAAM2gD,WAAW10D,KAAOw1E,SAASx1E,EAC3C,CA7BA00E,EAAKQ,KAAOA,EAaZR,EAAK76F,QAAUA,EAMf66F,EAAKlmG,WAAaA,EAMlBkmG,EAAKr3F,SAAWA,EAMhBq3F,EAAKa,UAAYA,EACjB,IAAIloG,EAAUd,MAAMc,QAuBpB,SAASooG,EAAmB51F,GAC1B,OAAOxC,EAASwC,GACZ,SAAU7T,EAAG4oG,GACX,OAAO/6F,EAAQ+6F,EAAK/0F,EACtB,EACAA,EAASw0F,OACT,SAAUroG,EAAG4oG,GACX,OAAO/0F,EAAS61F,GAAGd,EACrB,EACA,SAAU5oG,EAAG4oG,EAAK/0F,GAChB,OAAO+0F,IAAQ/0F,CACjB,CACN,CAlCA60F,EAAKrnG,QAAUA,EAIfV,EAAGimB,KAAO,SAAUA,EAAM/e,GACxB,GAAK+e,EAAL,CAEA,GAAIvV,EAASuV,GACX,OAAItlB,UAAUR,OAAS,EAAUX,KAAK,IAAMA,KAAK,GAAGymB,GAC7CzmB,KAAKuF,MAAK,SAAU1F,EAAG4oG,GAC5BA,EAAIhiF,GAAQ/e,CACd,IAGF,IAAK,IAAIrG,KAAOolB,EACdzmB,KAAKymB,KAAKplB,EAAKolB,EAAKplB,IAGtB,OAAOrB,IAbU,CAcnB,EAqBAQ,EAAGyV,OAAS,SAAUvC,GACpB,IAAKA,EAAU,OAAO60F,IACtB,IAAI14F,EAAaxN,EAAWqR,GAAYA,EAAW41F,EAAmB51F,GACtE,OAAO60F,EACLtyF,EAAOrV,KAAKZ,MAAM,SAAUyoG,EAAK5oG,GAC/B,OAAOgQ,EAAWjP,KAAK6nG,EAAK5oG,EAAG4oG,EAAK/0F,EACtC,IAEJ,EAEA,IAAI81F,EAAgB,OAEpB,SAASC,EAAe7/E,GACtB,OAAO1Y,EAAS0Y,IAAOA,EAAIvV,MAAMm1F,IAAuB,EAC1D,CA+FA,SAASE,EAAO7oG,GACd,OAAOA,EAAIoV,QAAO,SAAUwwE,EAAM3lF,EAAO8H,GACvC,OAAOA,EAAK/D,QAAQ4hF,KAAU3lF,CAChC,GACF,CAUA,SAAS6oG,EAAalB,EAAKhiF,EAAMmjF,GAC/B,GAAqB,IAAjBnB,EAAIzjF,SAAR,CACA,IAAIrI,EAAQq7E,EAAIxwD,iBAAiBihE,EAAK,MACtC,OAAOhiF,EAAQmjF,EAAajtF,EAAMktF,iBAAiBpjF,GAAQ9J,EAAM8J,GAAS9J,CAF5C,CAGhC,CAEA,SAASmtF,EAAgBrB,EAAKhiF,GAC5B,OAAOihB,SAASiiE,EAAalB,EAAKhiF,GAAO,KAAO,CAClD,CAjHAjmB,EAAGupG,SAAW,SAAU7lF,GACtB,IAAIuS,EAAUgzE,EAAevlF,GACzBskD,GAAQ,EASZ,OAPI/xC,EAAQ91B,QACVX,KAAKuF,MAAK,SAAU1F,EAAG4oG,GAErB,QADAjgC,EAAQigC,EAAInlB,UAAU5+E,SAAS+xB,EAAQ,IAEzC,IAGK+xC,CACT,EAIAhoE,EAAGwpG,WAAa,SAAUxiG,GACxB,IAAIsF,EAAQ28F,EAAejiG,GAC3B,OAAKsF,EAAMnM,OACJX,KAAKuF,MAAK,SAAU1F,EAAG4oG,GAC5BljG,EAAKuH,GAAO,SAAUlN,GACpB6oG,EAAI97B,gBAAgB/sE,EACtB,GACF,IAL0BI,IAM5B,EAKAQ,EAAGgH,KAAO,SAAUA,EAAME,GACxB,GAAKF,EAAL,CAEA,GAAI0J,EAAS1J,GAAO,CAClB,GAAIrG,UAAUR,OAAS,EAAG,CACxB,IAAKX,KAAK,GAAI,OAEd,IAAIiqG,EAASjqG,KAAK,GAAG+mC,aAAav/B,GAElC,OAAkB,OAAXyiG,OAAkB5kG,EAAY4kG,C,CAGvC,OAAc,OAAVviG,EAAuB1H,KAAKgqG,WAAWxiG,GACpCxH,KAAKuF,MAAK,SAAU1F,EAAG4oG,GAC5BA,EAAI1jF,aAAavd,EAAME,EACzB,G,CAGF,IAAK,IAAIrG,KAAOmG,EACdxH,KAAKwH,KAAKnG,EAAKmG,EAAKnG,IAGtB,OAAOrB,IArBU,CAsBnB,EAKAQ,EAAG0pG,YAAc,SAAUhmF,EAAKu6B,GAC9B,IAAIhoB,EAAUgzE,EAAevlF,GAC3BimF,OAAoB9kG,IAAVo5C,EACZ,OAAKhoB,EAAQ91B,OACNX,KAAKuF,MAAK,SAAU1F,EAAG4oG,GAC5BljG,EAAKkxB,GAAS,SAAUsoD,GAClBorB,EACF1rD,EAAQgqD,EAAInlB,UAAUh/E,IAAIy6E,GAAK0pB,EAAInlB,UAAUl+E,OAAO25E,GAEpD0pB,EAAInlB,UAAUhhB,OAAOyc,EAEzB,GACF,IAT4B/+E,IAU9B,EAGAQ,EAAG8kB,SAAW,SAAUpB,GACtB,OAAOlkB,KAAKkqG,YAAYhmF,GAAK,EAC/B,EAIA1jB,EAAG6rF,YAAc,SAAUnoE,GACzB,OAAQ/iB,UAAUR,OAAkCX,KAAKkqG,YAAYhmF,GAAK,GAA/ClkB,KAAKwH,KAAK,QAAS,GAChD,EAgBA+gG,EAAKmB,OAASA,EAIdlpG,EAAG8D,IAAM,SAAUoP,EAAU3J,GAC3B,OAAOw+F,EAAKmB,EAAO1pG,KAAK2D,MAAMoB,OAAOwjG,EAAK70F,EAAU3J,GAASpG,QAC/D,EAYA,IAAIymG,EAAgB,MAEpB,SAASC,EAAc5jF,GACrB,OAAO2jF,EAAcpgG,KAAKyc,EAC5B,CAMA,IAAI6jF,EAAgB,CAAC,EACnBC,EAAQl4E,GAAOA,EAAI1d,cAAc,OACjCgI,EAAQ4tF,EAAQA,EAAM5tF,MAAQ,CAAC,EAC/B6tF,EAAkB,CAAC,SAAU,MAAO,KAAM,KAE5C,SAASC,EAAgBhkF,EAAMmjF,GAK7B,QAJmB,IAAfA,IACFA,EAAaS,EAAc5jF,IAGzBmjF,EAAY,OAAOnjF,EAEvB,IAAK6jF,EAAc7jF,GAAO,CACxB,IAAIikF,EAAS9B,EAAUniF,GACrBkkF,EAAS,GAAKD,EAAO9uF,OAAO,GAAGuN,cAAgBuhF,EAAOpqG,MAAM,GAE9DiF,GADWmlG,EAAS,IAAMF,EAAgB/6C,KAAKk7C,EAAS,KAAOA,GAAQ1gG,MAAM,MACjE,SAAU+xB,GACpB,GAAIA,KAAKrf,EAEP,OADA2tF,EAAc7jF,GAAQuV,GACf,CAEX,G,CAGF,OAAOsuE,EAAc7jF,EACvB,CAEA8hF,EAAKqC,aAAeH,EAGpB,IAAII,EAAe,CACjBC,yBAAyB,EACzBC,aAAa,EACbC,UAAU,EACVC,YAAY,EACZC,YAAY,EACZC,YAAY,EACZtR,SAAS,EACTxvE,OAAO,EACP+gF,SAAS,EACTC,QAAQ,EACRtnE,QAAQ,GAGV,SAASunE,EAAiB7kF,EAAM/e,EAAOkiG,GAKrC,YAJmB,IAAfA,IACFA,EAAaS,EAAc5jF,IAGrBmjF,GAAeiB,EAAapkF,KAAS2iF,EAAU1hG,GAAwBA,EAAfA,EAAQ,IAC1E,CAQAlH,EAAG8/B,IAAM,SAAU7Z,EAAM/e,GACvB,GAAIwJ,EAASuV,GAAO,CAClB,IAAImjF,EAAaS,EAAc5jF,GAE/B,OADAA,EAAOgkF,EAAgBhkF,EAAMmjF,GACzBzoG,UAAUR,OAAS,EAAUX,KAAK,IAAM2pG,EAAa3pG,KAAK,GAAIymB,EAAMmjF,GACnEnjF,GACL/e,EAAQ4jG,EAAiB7kF,EAAM/e,EAAOkiG,GAC/B5pG,KAAKuF,MAAK,SAAU1F,EAAG4oG,GACP,IAAjBA,EAAIzjF,WAEJ4kF,EACFnB,EAAI9rF,MAAM4uF,YAAY9kF,EAAM/e,GAE5B+gG,EAAI9rF,MAAM8J,GAAQ/e,EAEtB,KAVkB1H,I,CAapB,IAAK,IAAIqB,KAAOolB,EACdzmB,KAAKsgC,IAAIj/B,EAAKolB,EAAKplB,IAGrB,OAAOrB,IACT,EAEA,IAAIwrG,EAAgB,aAClBC,EAAkB,aAOpB,SAASC,EAAajD,GACpB,OAAQA,EAAI+C,GAAiB/C,EAAI+C,IAAkB,CAAC,CACtD,CAGA,SAASz3C,EAAQ00C,EAAKpnG,GACpB,IAAI89B,EAAQusE,EAAajD,GAEzB,GAAIpnG,EAAK,CACP,KAAMA,KAAO89B,GAAQ,CACnB,IAAIz3B,EAAQ+gG,EAAIkD,QAAUlD,EAAIkD,QAAQtqG,IAAQonG,EAAIkD,QAAQ/C,EAAUvnG,IAAQknG,EAAKE,GAAKjhG,KAAK,QAAUnG,GAErG,QAAcgE,IAAVqC,EAAqB,CACvB,IACEA,EAAQkR,KAAK3L,MAAMvF,EACT,CAAV,MAAOwD,GAAG,CAEZi0B,EAAM99B,GAAOqG,C,EAIjB,OAAOy3B,EAAM99B,E,CAGf,OAAO89B,CACT,CA0DA,SAASysE,EAAcnD,EAAKoD,GAC1B,OACE/B,EAAgBrB,EAAK,UAAYoD,EAAQ,OAAS,OAAS,SAC3D/B,EAAgBrB,EAAK,WAAaoD,EAAQ,OAAS,QACnD/B,EAAgBrB,EAAK,WAAaoD,EAAQ,QAAU,WACpD/B,EAAgBrB,EAAK,UAAYoD,EAAQ,QAAU,UAAY,QAEnE,CAuDA,SAASC,EAAcC,EAAKC,GAC1B,IAAK,IAAInsG,EAAI,EAAGoC,EAAI+pG,EAAIrrG,OAAQd,EAAIoC,EAAGpC,IACrC,GAAIksG,EAAIlnG,QAAQmnG,EAAInsG,IAAM,EAAG,OAAO,EAGtC,OAAO,CACT,CAEA,SAASosG,EAAqB9sE,EAAOspE,EAAK9+F,GACxCpE,EAAK45B,EAAMx1B,IAAO,SAAUuiG,GACTA,EAAK,GAAtB,IACEtiG,EAAWsiG,EAAK,GAClBzD,EAAI7qF,oBAAoBjU,EAAMC,EAChC,WACOu1B,EAAMx1B,EACf,CApKA4+F,EAAK4D,QAAU,SAAU1D,GACvB,OAAO+C,KAAiB/C,CAC1B,EA+CAjoG,EAAGkY,KAAO,SAAU/O,EAAMjC,GACxB,IAAI0kG,EAAQpsG,KAEZ,IAAK2J,EAAM,CACT,IAAK3J,KAAK,GAAI,OAOd,OANAuF,EAAKvF,KAAK,GAAGgH,YAAY,SAAUQ,GACjC,IAAI6M,EAAQ7M,EAAKmC,KAAK0K,MAAMo3F,GACvBp3F,GAEL+3F,EAAM1zF,KAAKrE,EAAM,GACnB,IACO0/C,EAAQ/zD,KAAK,G,CAGtB,GAAIkR,EAASvH,GACX,YAActE,IAAVqC,EAA4B1H,KAAK,IAAM+zD,EAAQ/zD,KAAK,GAAI2J,GACrD3J,KAAKuF,MAAK,SAAU1F,EAAG4oG,GAC5B,OA1BN,SAAiBA,EAAKpnG,EAAKqG,GACzBgkG,EAAajD,GAAKpnG,GAAOqG,CAC3B,CAwBawsD,CAAQu0C,EAAK9+F,EAAMjC,EAC5B,IAGF,IAAK,IAAIrG,KAAOsI,EACd3J,KAAK0Y,KAAKrX,EAAKsI,EAAKtI,IAGtB,OAAOrB,IACT,EAIAQ,EAAG6rG,WAAa,SAAUhrG,GACxB,OAAOrB,KAAKuF,MAAK,SAAU1F,EAAG4oG,GAC5B,OAjDJ,SAAoBA,EAAKpnG,QACXgE,IAARhE,SACKonG,EAAI+C,UAEJE,EAAajD,GAAKpnG,EAE7B,CA2CWgrG,CAAW5D,EAAKpnG,EACzB,GACF,EAeAkE,EAAK,CAAC,QAAS,WAAW,SAAUkhB,GAClCjmB,EAAG,QAAUimB,GAAQ,WACnB,GAAKzmB,KAAK,GACV,OAAIA,KAAK,KAAOg4F,EAAYA,EAAI,QAAUvxE,GACnCzmB,KAAK,GAAG,SAAWymB,EAC5B,CACF,IAQAlhB,EAAK,CAAC,QAAS,WAAW,SAAUkhB,EAAM3lB,GACxCN,EAAGimB,GAAQ,SAAU/e,GACnB,OAAK1H,KAAK,GAELmB,UAAUR,QAKf+G,EAAQggC,SAAShgC,EAAO,IACjB1H,KAAKuF,MAAK,SAAU1F,EAAG4oG,GAC5B,GAAqB,IAAjBA,EAAIzjF,SAAR,CACA,IAAIsnF,EAAY3C,EAAalB,EAAK,aAClCA,EAAI9rF,MAAM8J,GAAQ6kF,EAAiB7kF,EAAM/e,GAAuB,eAAd4kG,EAA6BV,EAAcnD,GAAM3nG,GAAS,GAF9E,CAGhC,KATMd,KAAK,KAAOg4F,EAAYh4F,KAAK,GAAG4oG,EAAU,SAAWniF,IAClDzmB,KAAK,GAAGwvB,wBAAwB/I,GAAQmlF,EAAc5rG,KAAK,IAAKc,QAJ1CuE,IAAVqC,OAAsBrC,EAAYrF,IAazD,CACF,IAKAuF,EAAK,CAAC,QAAS,WAAW,SAAUkhB,EAAM3lB,GACxCN,EAAG,QAAUimB,GAAQ,SAAU8lF,GAC7B,GAAKvsG,KAAK,GACV,OAAIA,KAAK,KAAOg4F,EAAYA,EAAI,QAAUvxE,GAExCzmB,KAAK,GAAG,SAAWymB,IAClB8lF,EACGzC,EAAgB9pG,KAAK,GAAI,UAAac,EAAiB,MAAT,SAC9CgpG,EAAgB9pG,KAAK,GAAI,UAAac,EAAkB,SAAV,UAC9C,EAER,CACF,IAqBA,IAAI0rG,EAAkB,eACpBC,GAA4B,IAE9B,SAASC,GAAejE,GACtB,OAAQA,EAAI+D,GAAmB/D,EAAI+D,IAAoB,CAAC,CAC1D,CAWA,SAASG,GAAep4F,GACtB,IAAIunB,EAAQvnB,EAAUtK,MAAMwiG,IAC5B,MAAO,CAAC3wE,EAAM,GAAIA,EAAMx7B,MAAM,GAAGyQ,OACnC,CAMA,SAAS67F,GAAYnE,EAAK9+F,EAAMkjG,EAAYjjG,GAC1C,IAAIu1B,EAAQutE,GAAejE,GAE3B,GAAK9+F,EAUE,CACL,IAAImjG,EAAa3tE,EAAMx1B,GACvB,IAAKmjG,EAAY,OACbljG,IAAUA,EAASm/F,KAAOn/F,EAASm/F,MAAQA,KAC/C5pE,EAAMx1B,GAAQmjG,EAAW72F,QAAO,SAAU82F,GACxC,IAAI/I,EAAK+I,EAAM,GACb/3F,EAAK+3F,EAAM,GACb,GAAKnjG,GAAYoL,EAAG+zF,OAASn/F,EAASm/F,OAAU+C,EAAc9H,EAAI6I,GAAa,OAAO,EACtFpE,EAAI7qF,oBAAoBjU,EAAMqL,EAChC,G,MAlBA,GAAK63F,GAAeA,EAAWlsG,OAK7B,IAAKgJ,KAAQw1B,EACXytE,GAAYnE,EAAK9+F,EAAMkjG,EAAYjjG,QALrC,IAAKD,KAAQw1B,EACX8sE,EAAqB9sE,EAAOspE,EAAK9+F,EAkBzC,CAMAnJ,EAAG2K,IAAM,SAAU6hG,EAAepjG,GAChC,IAAIqjG,EAASjtG,KAkBb,YAhBsBqF,IAAlB2nG,EACFhtG,KAAKuF,MAAK,SAAU1F,EAAG4oG,GACrB,OAAOmE,GAAYnE,EACrB,IAEAljG,EAAKkkG,EAAeuD,IAAgB,SAAUA,GAC5C,IAAIE,EAAkBP,GAAeK,GACnCrjG,EAAOujG,EAAgB,GACvBL,EAAaK,EAAgB,GAE/BD,EAAO1nG,MAAK,SAAU1F,EAAG4oG,GACvB,OAAOmE,GAAYnE,EAAK9+F,EAAMkjG,EAAYjjG,EAC5C,GACF,IAGK5J,IACT,EAYAQ,EAAGiH,GAAK,SAAUulG,EAAet5F,EAAU9J,EAAUujG,GACnD,IAAIC,EAASptG,KAEb,IAAKkR,EAAS87F,GAAgB,CAC5B,IAAK,IAAI3rG,KAAO2rG,EACdhtG,KAAKyH,GAAGpG,EAAKqS,EAAUs5F,EAAc3rG,IAGvC,OAAOrB,I,CA+CT,OA5CIqC,EAAWqR,KACb9J,EAAW8J,EACXA,GAAW,GAGbnO,EAAKkkG,EAAeuD,IAAgB,SAAUA,GAC5C,IAAIK,EAAmBV,GAAeK,GACpCrjG,EAAO0jG,EAAiB,GACxBR,EAAaQ,EAAiB,GAEhCD,EAAO7nG,MAAK,SAAU1F,EAAG4oG,GACvB,IAAI6E,EAAgB,SAASA,EAAc36F,GACzC,IAAIA,EAAM46F,WAAczB,EAAce,EAAYl6F,EAAM46F,UAAUtjG,MAAMwiG,KAAxE,CACA,IAAIe,EAAU/E,EAEd,GAAI/0F,EAAU,CAGZ,IAFA,IAAI6S,EAAS5T,EAAM4T,QAEX7Y,EAAQ6Y,EAAQ7S,IAAW,CACjC,GAAI6S,IAAWkiF,EAAK,OAEpB,KADAliF,EAASA,EAAOtB,YACH,M,CAGfuoF,EAAUjnF,C,CAGZ5T,EAAM46F,UAAY56F,EAAM46F,WAAa,GACrC,IAAIp/E,EAAcvkB,EAAShJ,KAAK4sG,EAAS76F,EAAOA,EAAM+F,MAElDy0F,GACFP,GAAYnE,EAAK9+F,EAAMkjG,EAAYS,IAGjB,IAAhBn/E,IACFxb,EAAM4a,iBACN5a,EAAM0b,kBAxBmG,CA0B7G,EAEAi/E,EAAcvE,KAAOn/F,EAASm/F,KAAOn/F,EAASm/F,MAAQA,IAlI5D,SAAkBN,EAAK9+F,EAAMkjG,EAAYjjG,GACvCA,EAASm/F,KAAOn/F,EAASm/F,MAAQA,IACjC,IAAI+D,EAAaJ,GAAejE,GAChCqE,EAAWnjG,GAAQmjG,EAAWnjG,IAAS,GACvCmjG,EAAWnjG,GAAMhF,KAAK,CAACkoG,EAAYjjG,IACnC6+F,EAAInrF,iBAAiB3T,EAAMC,EAC7B,CA6HM6jG,CAAShF,EAAK9+F,EAAMkjG,EAAYS,EAClC,GACF,IACOttG,IACT,EAGAQ,EAAGktG,IAAM,SAAUV,EAAe14F,EAAU1K,GAC1C,OAAO5J,KAAKyH,GAAGulG,EAAe14F,EAAU1K,GAAU,EACpD,EAGApJ,EAAG8nG,MAAQ,SAAU1+F,GACnB,IAAI0jG,EAAgB,WAClB,OAAO1jG,EAAS2+F,EAClB,EAQA,MANuB,YAAnBl2E,EAAIs7E,WACNpmF,WAAW+lF,GAEXj7E,EAAI/U,iBAAiB,mBAAoBgwF,GAGpCttG,IACT,EAOAQ,EAAGsD,QAAU,SAAUkpG,EAAet0F,GACpC,IAAIk1F,EAAMZ,EAEV,GAAI97F,EAAS87F,GAAgB,CAC3B,IAAIa,EAAmBlB,GAAeK,GACpCrjG,EAAOkkG,EAAiB,GACxBhB,EAAagB,EAAiB,IAEhCD,EAAMv7E,EAAIy7E,YAAY,eAClBC,UAAUpkG,GAAM,GAAM,GAC1BikG,EAAIL,UAAYV,EAAWp9C,KAAKg9C,G,CAIlC,OADAmB,EAAIl1F,KAAOA,EACJ1Y,KAAKuF,MAAK,SAAU1F,EAAG4oG,GAC5BA,EAAI74B,cAAcg+B,EACpB,GACF,EAsBA,IAAII,GAAc,cAChBC,GAAmB,mBAErB,SAASz+C,GAASi5C,GAChB,IAAIjmG,EAAOimG,EAAIjmG,KACf,OAAIwrG,GAAYhkG,KAAKxH,GAVvB,SAA8BimG,GAC5B,OAAOA,EAAIyF,cAAgB,EAAI,KAAOzF,EAAI5lG,QAAQ4lG,EAAIyF,eAAexmG,KACvE,CAQqCymG,CAAqB1F,GACpDwF,GAAiBjkG,KAAKxH,GArB5B,SAAgCimG,GAC9B,IAAIr2F,EAAS,GAMb,OALA7M,EAAKkjG,EAAI5lG,SAAS,SAAUo7D,IACtBA,EAAOjK,UAAaiK,EAAOoT,UAAapT,EAAOh5C,WAAWosD,UAC5Dj/D,EAAOzN,KAAKs5D,EAAOv2D,MAEvB,IACO0K,CACT,CAa0Cg8F,CAAuB3F,GACxDA,EAAI/gG,KACb,CAEA,IAAI2mG,GAAqB,OAUzB,IAAIC,GAAc,kCAChBC,GAAc,kBAEhB/tG,EAAGguG,UAAY,WACb,IAAIC,EAAQ,GAcZ,OAbAzuG,KAAKuF,MAAK,SAAU1F,EAAG4oG,GACrBljG,EAAKkjG,EAAIiG,UAAY,CAACjG,IAAM,SAAUA,GACpC,IAAIA,EAAIp3B,UAAao3B,EAAI9+F,MAAwB,aAAhB8+F,EAAIh1F,UACjC66F,GAAYtkG,KAAKy+F,EAAIjmG,SACrB+rG,GAAYvkG,KAAKy+F,EAAIjmG,OAAUimG,EAAIkG,SAAvC,CACA,IAAIjnG,EAAQ8nD,GAASi5C,GACrB,QAAcpjG,IAAVqC,EAEJnC,EADarE,EAAQwG,GAASA,EAAQ,CAACA,IAC1B,SAAUA,GACrB+mG,GAtBR,SAAqBhoF,EAAM/e,GACzB,MAAO,IAAMgI,mBAAmB+W,GAAQ,IAAM/W,mBAAmBhI,GAAO+H,QAAQ4+F,GAAoB,IACtG,CAoBiBO,CAAYnG,EAAI9+F,KAAMjC,EACjC,GANsD,CAOxD,GACF,IACO+mG,EAAM/tF,OAAO,EACtB,EAMAlgB,EAAGyF,IAAM,SAAUyB,GACjB,YAAcrC,IAAVqC,EAA4B1H,KAAK,IAAMwvD,GAASxvD,KAAK,IAClDA,KAAKuF,MAAK,SAAU1F,EAAG4oG,GAC5B,IAAIoG,EAAaZ,GAAiBjkG,KAAKy+F,EAAIjmG,MACzCssG,EAAqB,OAAVpnG,EAAkBmnG,EAAa,GAAK,GAAMnnG,EAEnDmnG,GAAc3tG,EAAQ4tG,GACxBvpG,EAAKkjG,EAAI5lG,SAAS,SAAUo7D,GAC1BA,EAAOjK,SAAW86C,EAASjqG,QAAQo5D,EAAOv2D,QAAU,CACtD,IAEA+gG,EAAI/gG,MAAQonG,CAEhB,GACF,EAKAtuG,EAAG+C,MAAQ,WACT,OAAOvD,KAAK8E,KAAI,SAAUjF,EAAG4oG,GAC3B,OAAOA,EAAI/5C,WAAU,EACvB,GACF,EAGAluD,EAAGmhE,OAAS,WACV,OAAO3hE,KAAKuF,MAAK,SAAU1F,EAAG4oG,GACxBA,EAAIxjF,YACNwjF,EAAIxjF,WAAWnH,YAAY2qF,EAE/B,GACF,EAMA,IAEIsG,GAFAC,GAAa,mBACfC,GAAc,mCAkBhB,SAAS5G,GAAUnyB,GAEjB,GAjBF,WACE,IAAI64B,GAAJ,CACA,IAAIG,EAAQ78E,EAAI1d,cAAc,SAC5Bw6F,EAAK98E,EAAI1d,cAAc,MACzBo6F,GAAa,CACX,IAAK18E,EAAI1d,cAAc,OACvBw6F,GAAI98E,EAAI1d,cAAc,SACtBy6F,GAAID,EACJ7/D,GAAI6/D,EACJE,MAAOH,EACPI,MAAOJ,EACPK,MAAOL,EAVa,CAYxB,CAGEM,IACKt+F,EAASglE,GAAO,MAAO,GAC5B,GAAI+4B,GAAYjlG,KAAKksE,GAAO,MAAO,CAAC7jD,EAAI1d,cAAc2F,OAAOm1F,KAC7D,IAAIx1F,EAAW+0F,GAAWhlG,KAAKksE,IAAS57D,OAAOm1F,GAC7ChvD,EAAYsuD,GAAW90F,IAAa80F,GAAW,KAEjD,OADAtuD,EAAUumC,UAAY9Q,EACfqyB,EAAK9nD,EAAUl8B,YAAYo9C,SAASh+D,KAC7C,CAwCA,SAAS+rG,GAAcnxF,EAAQD,EAAOqxF,GACpC,QAActqG,IAAViZ,EAAJ,CACA,IAAIsxF,EAAQ1+F,EAASoN,IAEhBsxF,GAAStxF,EAAM3d,OAClB4E,EAAK+Y,GAAO,SAAUmqF,GACpB,OAAOiH,GAAcnxF,EAAQkqF,EAAKkH,EACpC,IAEApqG,EACEgZ,EACAqxF,EACI,SAAUnH,GACRA,EAAIoH,mBAAmBF,EAAU,aAAe,YAAarxF,EAC/D,EACA,SAAUmqF,EAAK3nG,GACb,OA1BZ,SAAuB2nG,EAAKnqF,EAAOqxF,GAC7BA,EACFlH,EAAIzrF,aAAasB,EAAOmqF,EAAIlkF,WAAW,IAEvCkkF,EAAIhkF,YAAYnG,EAEpB,CAoBmBwxF,CAAcrH,EAAM3nG,EAAgBwd,EAAMowC,WAAU,GAAxBpwC,EAA+BqxF,EACpE,EAhBuB,CAmBjC,CA1DApH,EAAKF,UAAYA,GAgBjB7nG,EAAGwxC,MAAQ,WACT,IAAIy2D,EAAMzoG,KAAK,GAEf,GAAIyoG,EACF,KAAOA,EAAIxrF,YACTwrF,EAAI3qF,YAAY2qF,EAAIxrF,YAIxB,OAAOjd,IACT,EAoCAQ,EAAGwyF,OAAS,WACV,IAAI+c,EAAS/vG,KAKb,OAHAuF,EAAKpE,WAAW,SAAU4d,GACxB2wF,GAAcK,EAAQhxF,EACxB,IACO/e,IACT,EAGAQ,EAAGoxF,SAAW,SAAUrzE,GAEtB,OADAmxF,GAAcnH,EAAKhqF,GAASve,MACrBA,IACT,EAGAQ,EAAG01E,KAAO,SAAUn3D,GAClB,QAAgB1Z,IAAZ0Z,EAAuB,OAAO/e,KAAK,IAAMA,KAAK,GAAGgnF,UACrD,IAAIz9D,EAASxK,EAAQiG,SAAWjG,EAAQ,GAAGixF,UAAYjxF,EACvD,OAAO/e,KAAKuF,MAAK,SAAU1F,EAAG4oG,GAC5BA,EAAIzhB,UAAYz9D,CAClB,GACF,EAGA/oB,EAAGyvG,YAAc,SAAUlxF,GACzB,IAAImxF,EAASlwG,KASb,OAPAuoG,EAAKxpF,GAASxZ,MAAK,SAAUzE,EAAO2nG,GAClC,IAAIlqF,EAASkqF,EAAIxjF,WAEjBirF,EAAO3qG,MAAK,SAAU1F,EAAGqL,GACvBqT,EAAOvB,aAAclc,EAAYoK,EAAEwjD,WAAU,GAAhBxjD,EAAuBu9F,EAAIjjE,YAC1D,GACF,IACOxlC,IACT,EAMAQ,EAAGoC,MAAQ,WACT,IAAIutG,EAASnwG,KAKb,OAHAuF,EAAKunB,EAAQvsB,MAAMY,YAAY,SAAU4d,GACvC+N,EAAQvsB,MAAMgoG,EAAKxpF,GAASze,SAAS2vG,YAAYE,EACnD,IACOnwG,IACT,EAGAQ,EAAGwc,aAAe,SAAUtJ,GAC1B,IAAI08F,EAASpwG,KASb,OAPAuoG,EAAK70F,GAAUnO,MAAK,SAAUzE,EAAO2nG,GACnC,IAAIlqF,EAASkqF,EAAIxjF,WAEjBmrF,EAAO7qG,MAAK,SAAU1F,EAAGqL,GACvBqT,EAAOvB,aAAclc,EAAYoK,EAAEwjD,WAAU,GAAhBxjD,EAAuBu9F,EACtD,GACF,IACOzoG,IACT,EAIAQ,EAAGmC,OAAS,WACV,IAAI0tG,EAASrwG,KAKb,OAHAuF,EAAKpE,WAAW,SAAU4d,GACxBwpF,EAAKxpF,GAAS/B,aAAaqzF,EAC7B,IACOrwG,IACT,EAIAQ,EAAGmvG,QAAU,WACX,IAAIW,EAAStwG,KAKb,OAHAuF,EAAKpE,WAAW,SAAU4d,GACxB2wF,GAAcY,EAAQvxF,GAAS,EACjC,IACO/e,IACT,EAKAQ,EAAG+vG,UAAY,SAAUhyF,GAEvB,OADAmxF,GAAcnH,EAAKhqF,GAASuO,EAAQvsB,MAAMP,KAAKM,UAAU,GAClDN,IACT,EAIAQ,EAAG4E,OAAS,WACV,OAAOpF,KAAK2hE,SAASx2D,KACvB,EAMA3K,EAAGgwG,YAAc,SAAUzxF,GACzB,IAAI0xF,EAAUzwG,KAEd,OAAOA,KAAKuF,MAAK,SAAU1F,EAAG4oG,GAC5B,IAAIlqF,EAASkqF,EAAIxjF,WACjB,GAAK1G,EAAL,CACA,IAAImyF,EAAQ7wG,EAAI0oG,EAAKxpF,GAASxb,QAAUglG,EAAKxpF,GAE7C,IAAK2xF,EAAM,GAGT,OAFAD,EAAQrrG,UAED,EAGTmZ,EAAOulB,aAAa4sE,EAAM,GAAIjI,GAC9BF,EAAKmI,EAAM,IAAI9tG,MAAM8tG,EAAMpwG,MAAM,GAVd,CAWrB,GACF,EAGAE,EAAGmwG,WAAa,SAAU5xF,GAExB,OADAwpF,EAAKxpF,GAASyxF,YAAYxwG,MACnBA,IACT,EAGAQ,EAAGugB,KAAO,SAAUhC,GAClB,YAAgB1Z,IAAZ0Z,EAA8B/e,KAAK,GAAKA,KAAK,GAAGqrE,YAAc,GAC3DrrE,KAAKuF,MAAK,SAAU1F,EAAG4oG,GAC5BA,EAAIp9B,YAActsD,CACpB,GACF,EAmBA,IAAI6xF,GAASv+E,GAAOA,EAAI2Z,gBAExBxrC,EAAG26B,OAAS,WACV,IAAIstE,EAAMzoG,KAAK,GACf,GAAKyoG,EAAL,CACA,IAAIngE,EAAOmgE,EAAIj5E,wBACf,MAAO,CACLsZ,IAAKR,EAAKQ,IAAMkvD,EAAI5rD,YAAcwkE,GAAOC,UACzCnhF,KAAM4Y,EAAK5Y,KAAOsoE,EAAIjsD,YAAc6kE,GAAOzhE,WAJ7B,CAMlB,EAEA3uC,EAAGswE,aAAe,WAChB,OAAOy3B,EAAKvoG,KAAK,IAAMA,KAAK,GAAG8wE,aACjC,EAEAtwE,EAAG+lC,SAAW,WACZ,IAAIkiE,EAAMzoG,KAAK,GACf,GAAKyoG,EACL,MAAO,CACL/4E,KAAM+4E,EAAIr5D,WACVtG,IAAK2/D,EAAIrhE,UAEb,EASA5mC,EAAG+xB,SAAW,SAAU7e,GACtB,IAAIxG,EAAS,GAKb,OAJAlN,KAAKuF,MAAK,SAAU1F,EAAG4oG,GACrB9jG,EAAKpE,MAAM2M,EAAQu7F,EAAIl2E,SACzB,IACArlB,EAASq7F,EAAKmB,EAAOx8F,IAChBwG,EACExG,EAAO+I,QAAO,SAAUpW,EAAG4oG,GAChC,OAAO/6F,EAAQ+6F,EAAK/0F,EACtB,IAHsBxG,CAIxB,EAIA1M,EAAGswG,SAAW,WACZ,IAAI5jG,EAAS,GAIb,OAHAlN,KAAKuF,MAAK,SAAU1F,EAAG4oG,GACrB9jG,EAAKpE,MAAM2M,EAAwB,WAAhBu7F,EAAIh1F,QAAuB,CAACg1F,EAAIhZ,iBAAmBgZ,EAAIlkF,WAC5E,IACOgkF,EAAKr7F,EAAOvM,QAAU+oG,EAAOx8F,GACtC,EAKA1M,EAAGoT,KAAO,SAAUF,GAGlB,IAFA,IAAIxG,EAAS,GAEJrN,EAAI,EAAGoC,EAAIjC,KAAKW,OAAQd,EAAIoC,EAAGpC,IAAK,CAC3C,IAAIyqB,EAAQ1W,EAAKF,EAAU1T,KAAKH,IAE5ByqB,EAAM3pB,QACRgE,EAAKpE,MAAM2M,EAAQod,E,CAIvB,OAAOi+E,EAAKr7F,EAAOvM,QAAU+oG,EAAOx8F,GACtC,EAKA1M,EAAGiN,IAAM,SAAUiG,GACjB,IAAI7D,EAAaqB,EAASwC,GACtB,SAAU7T,EAAG4oG,GACX,QAAS70F,EAAKF,EAAU+0F,GAAK9nG,MAC/B,EACA,SAAUd,EAAG4oG,GACX,OAAOA,EAAI/jG,SAASgP,EACtB,EACJ,OAAO1T,KAAKiW,OAAOpG,EACrB,EAIArP,EAAG+oG,GAAK,SAAU71F,GAChB,IAAKA,IAAa1T,KAAK,GAAI,OAAO,EAClC,IAAI6P,EAAay5F,EAAmB51F,GAChC80D,GAAQ,EAKZ,OAJAxoE,KAAKuF,MAAK,SAAU1F,EAAG4oG,GAErB,QADAjgC,EAAQ34D,EAAWhQ,EAAG4oG,EAAK/0F,GAE7B,IACO80D,CACT,EAEAhoE,EAAG2S,KAAO,WACR,OAAOo1F,EAAKvoG,KAAK,IAAMA,KAAK,GAAG+wG,mBACjC,EAIAvwG,EAAGwwG,IAAM,SAAUt9F,GACjB,IAAKA,IAAa1T,KAAK,GAAI,OAAOA,KAClC,IAAI6P,EAAay5F,EAAmB51F,GACpC,OAAO1T,KAAKiW,QAAO,SAAUpW,EAAG4oG,GAC9B,OAAQ54F,EAAWhQ,EAAG4oG,EAAK/0F,EAC7B,GACF,EAIAlT,EAAG+d,OAAS,WACV,IAAIrR,EAAS,GAMb,OALAlN,KAAKuF,MAAK,SAAU1F,EAAG4oG,GACjBA,GAAOA,EAAIxjF,YACb/X,EAAOvI,KAAK8jG,EAAIxjF,WAEpB,IACOsjF,EAAKmB,EAAOx8F,GACrB,EAOA1M,EAAGM,MAAQ,SAAU2nG,GACnB,IAAInqF,EAAQmqF,EAAMF,EAAKE,GAAK,GAAKzoG,KAAK,GACpCiF,EAAawjG,EAAMzoG,KAAOuoG,EAAKjqF,GAAOC,SAASgU,WACjD,OAAO1tB,EAAQjE,KAAKqE,EAAYqZ,EAClC,EAeA9d,EAAGywG,QAAU,SAAUv9F,GACrB,OAAKA,GAAa1T,KAAK,GACnBA,KAAKupG,GAAG71F,GAAkB1T,KAAKiW,OAAOvC,GACnC1T,KAAKue,SAAS0yF,QAAQv9F,GAFK60F,GAGpC,EAMA/nG,EAAG0wG,QAAU,SAAUx9F,GACrB,IACIsD,EADA9J,EAAS,GAab,OAXAlN,KAAKuF,MAAK,SAAU1F,EAAG4oG,GAGrB,IAFAzxF,EAAOyxF,EAEAzxF,GAAQA,EAAKiO,YAAcjO,IAASqb,EAAIvV,KAAKmI,YAClDjO,EAAOA,EAAKiO,aAEPvR,GAAaA,GAAYhG,EAAQsJ,EAAMtD,KAC1CxG,EAAOvI,KAAKqS,EAGlB,IACOuxF,EAAKmB,EAAOx8F,GACrB,EAEA1M,EAAG0N,KAAO,WACR,OAAOq6F,EAAKvoG,KAAK,IAAMA,KAAK,GAAGmxG,uBACjC,EAKA3wG,EAAG4wG,SAAW,WACZ,IAAI3I,EAAMzoG,KAAK,GACf,OAAOA,KAAKue,SACTgU,WACAtc,QAAO,SAAUpW,EAAGye,GACnB,OAAOA,IAAUmqF,CACnB,GACJ,EAuBA,U,2ZC71CM4I,EAAU,MACVC,EAAW,aAGJC,EAAY,iEAEZC,EAAQ,SAACp9F,GAAqB,OAAAA,GAAsB,IAAhBA,EAAG4Q,QAAT,EAE9BysF,EAAW,SAACr9F,GACvB,IAAMmK,EAASnK,GAAMA,EAAG6Q,WACxB1G,GAAUA,EAAOT,YAAY1J,EAC/B,EAEO,SAASw/D,I,IAAG,sDACjB,IAAM9P,EAAM1jE,MAAMc,QAAQwwG,EAAO,IAAMA,EAAO,GAAK,EAAD,GAAKA,GAAM,GAC7D,OAAO5tC,EAAI7tD,OAAOuvE,SAAS/1B,KAAK,IAClC,CAEO,IAAM77C,EAAO,SAACQ,EAAiBq6F,GAAkB,OAAAr6F,EAAGghF,iBAAiBqZ,EAApB,EAE3CkD,EAAS,SAACv9F,EAAkBtH,GACvC,YADuC,IAAAA,IAAAA,EAAA,IACvCsH,GAAMA,EAAG2Q,eAAgB,IAAAxf,MAAKuH,GAAO,SAACpF,EAAOrG,GAAQ,OAAA+S,EAAG2Q,aAAa1jB,EAAKqG,EAArB,GAArD,EAEWkqG,EAAY,SAACx9F,GACxB,OAAOA,MAASA,EAAGgb,aAAehb,EAAG+a,cAAgB/a,EAAGw0B,iBAAiBjoC,OAC3E,EAMa6vG,EAAc,SAACqB,EAAoBC,G,MAC9B,QAAhB,EAAAD,EAAM5sF,kBAAU,SAAE6e,aAAaguE,EAAOD,EACxC,EAEaE,EAAgB,SAACxzF,EAAwCD,EAAkBxd,GAC9E,IAAAyjB,EAAehG,EAAM,WACvByzF,EAAQztF,EAAW5jB,OACnB8C,GAAK,IAAAmmF,aAAY9oF,GAASkxG,EAAQlxG,GAEpC,IAAAoQ,UAASoN,KAEXC,EAAOsxF,mBAAmB,YAAavxF,GACvCA,EAAQC,EAAO0hB,UACf1hB,EAAOT,YAAYQ,IAGjB7a,GAAMuuG,EACRzzF,EAAOkG,YAAYnG,GAEnBC,EAAOvB,aAAasB,EAAOiG,EAAW9gB,GAE1C,EAEauvF,EAAS,SAACz0E,EAAqBD,GAAqB,OAAAyzF,EAAcxzF,EAAQD,EAAtB,EAEpD2zF,EAAW,SAACttF,EAAa7X,EAAuBwR,QAAvB,IAAAxR,IAAAA,EAAA,IACpC,IAAMsH,EAAKM,SAASC,cAAcgQ,GAQlC,OAPA7X,IAAS,IAAAvH,MAAKuH,GAAO,SAACpF,EAAOrG,GAAQ,OAAA+S,EAAG2Q,aAAa1jB,EAAKqG,EAArB,IAEjC4W,KACE,IAAApN,UAASoN,GAAQlK,EAAG4yE,UAAY1oE,EAC/BlK,EAAGqQ,YAAYnG,IAGflK,CACT,EAEa89F,EAAa,SAACtoF,GAAgB,OAAAlV,SAASmQ,eAAe+E,EAAxB,EAM9BuoF,EAAoB,SAACjnG,EAAQgZ,GACxC,IAAIkuF,EACI5vG,EAAS0I,EAAC,KAClB,IAEEknG,EAAS,IAAIryG,OAAOmkB,GAAK1hB,EAAM0I,E,CAC/B,MAAOmnG,IACPD,EAAS19F,SAASo5F,YAAY5pF,IACvB6pF,UAAUvrG,GAAM,GAAM,E,CAa/B,OAXA4vG,EAAOE,aAAepnG,EACM,IAAxB1I,EAAKqC,QAAQ,SACfutG,EAAOG,WAAarnG,EAAEgrD,QACtB,CAAC,UAAW,SAASzgD,SAAQ,SAAAgR,GAC3BuC,OAAOwpF,eAAeJ,EAAQ3rF,EAAM,CAClC9iB,IAAG,WACD,OAAO3D,KAAKuyG,UACd,GAEJ,KAEKH,CACT,EAOaK,EAAe,SAACpuF,EAAmBquF,QAAA,IAAAA,IAAAA,EAAA,KAC5BtyG,MAAMc,QAAQwxG,GAAUA,EAAS,CAACA,IAC1Cj9F,SAAQ,SAAAk9F,GAChB,IAAMhuF,EAAMguF,EAAMtB,IAAY,MACxB7pG,EAAOmrG,EAAMrB,IAAa,CAAC,EAC3Bl9F,EAAKM,SAASC,cAAcgQ,IAElC,IAAApf,MAAKiC,GAAM,SAACE,EAAOrG,GACjB+S,EAAG2Q,aAAa1jB,EAAKqG,EACvB,IAEA2c,EAAKI,YAAYrQ,EACnB,GACF,EAKaw+F,EAAoB,SAACx+F,GAChC,IAAMie,GAAMje,aAAE,EAAFA,EAAI8b,gBAAiBxb,SAC3B61F,EAAQl4E,EAAI2Z,gBACZgsD,EAAM3lE,EAAI40E,aAAelnG,OAE/B,MAAO,CACL8zB,GAAImkE,EAAIjsD,aAAew+D,EAAMt+D,YAAc,IAAMs+D,EAAMp7D,YAAc,GACrEvB,GAAIoqD,EAAI5rD,aAAem+D,EAAMl+D,WAAa,IAAMk+D,EAAMsG,WAAa,GAEvE,C,4oCC9IarN,EAAQ,SAAC97F,GAAe,YAAiB,IAAVA,CAAP,EAExB82F,EAAS,WAAM,MAAkB,oBAAXz+F,MAAP,EAEf8yG,EAAY,WACvB,MAAsB,oBAAf/yG,WAA6BA,WAA+B,oBAAXC,OAAyBA,OAAS,EAAA8I,CAA1F,EAEWugB,EAAc,SAACQ,GAAgB,OAACA,GAAO,IAAIR,aAAZ,EAEtC0pF,EAAStU,IAAWz+F,OAAOgzG,QAAQ1yG,UAAY,CAAC,EAEhDqN,EAAUolG,EAAOplG,SAAWolG,EAAO9J,uBAAyB8J,EAAO7J,oBAAsB6J,EAAO5J,kBAEzF8J,EAAa,SAAC9vB,EAAiB+vB,GACpC,MAA4B/vB,EAAG0D,YAA7B1C,EAAW,cACnB,MAAO,CADsB,YACT,UAAGA,EAAW,OAAO+uB,GAAQh9F,QAAO,SAAApW,GAAK,OAAAA,CAAA,IAAG4vD,KAAK,IACvE,EAMMyjD,EAAe,SAAC18E,EAAY3sB,QAAA,IAAAA,IAAAA,EAAA,IAChC,IAAMspG,GAAO,IAAAjyG,SAAQs1B,GAAU,EAAD,GAAKA,GAAM,GAAI,CAACA,GAE9C,GAAI28E,EAAKxyG,OAAQ,CACf,IAAM6a,EAAO23F,EAAKtvG,QAElB,GAAI2X,KAAU3R,EAAK6/F,SAAWh1F,SAASwrB,cAAc,sBAAc1kB,EAAI,SAAQ,CACrE,IAAA7E,EAASjC,SAAQ,KACnB0+F,EAAO1+F,SAASC,cAAc,QACpCy+F,EAAK53F,KAAOA,EACZ43F,EAAKjtD,IAAM,aAEPt8C,EAAKwpG,QACP18F,EAAKqG,aAAao2F,EAAMz8F,EAAKsG,YAE7BtG,EAAK8N,YAAY2uF,E,CAIrBF,EAAaC,E,CAEjB,EAaMG,EAAc,SAACC,EAA8BC,GACjD,IAAMtmG,EAA8B,CAAC,EAC/BumG,GAAU,IAAAxyG,MAAKuyG,GAErB,IAAK,IAAI/sF,KAAQ8sF,EACf,GAAIA,EAAQ7sF,eAAeD,GAAO,CAChC,IAAMitF,EAAYH,EAAQ9sF,GACpBktF,EAAWH,EAAO/sF,GAEpBgtF,EAAQ5uG,QAAQ4hB,IAAS,EACvBitF,IAAcC,IAChBzmG,EAAOuZ,GAAQktF,GAGjBzmG,EAAOuZ,GAAQ,I,CAKrB,IAAK,IAAIA,KAAQ+sF,EACXA,EAAO9sF,eAAeD,KACpB,IAAAmjE,aAAY2pB,EAAQ9sF,MACtBvZ,EAAOuZ,GAAQ+sF,EAAO/sF,IAK5B,OAAOvZ,CACT,EAEMzF,EAAK,SACT2M,EACA5H,EACAhM,EACAqJ,GAEA,IAAM+pG,EAAMpnG,EAAGvC,MAAM,OACrBmK,EAAKA,aAAchU,MAAQgU,EAAK,CAACA,GAEjC,I,eAASvU,GACPuU,EAAGqB,SAAQ,SAAAmlF,GAAQ,OAAAA,GAAQA,EAAKt9E,iBAAiBs2F,EAAI/zG,GAAIW,EAAIqJ,EAA1C,G,EADZhK,EAAI,EAAGA,EAAI+zG,EAAIjzG,SAAUd,E,EAAzBA,EAGX,EAEMsL,EAAM,SACViJ,EACA5H,EACAhM,EACAqJ,GAEA,IAAM+pG,EAAMpnG,EAAGvC,MAAM,OACrBmK,EAAKA,aAAchU,MAAQgU,EAAK,CAACA,GAEjC,I,eAASvU,GACPuU,EAAGqB,SAAQ,SAAAmlF,GAAQ,OAAAA,GAAQA,EAAKh9E,oBAAoBg2F,EAAI/zG,GAAIW,EAAIqJ,EAA7C,G,EADZhK,EAAI,EAAGA,EAAI+zG,EAAIjzG,SAAUd,E,EAAzBA,EAGX,EAEMs8F,EAAmB,SAACz0F,GACxB,OAAOA,EAAM+H,QAAQ84E,WAAW7gF,GAAQ,GAC1C,EAEMmsG,EAAU,SAACnsG,GAAkB,OAAAA,EAAM,GAAGyhB,cAAgBzhB,EAAM0hB,cAAc9oB,MAAM,EAAnD,EAE7BsoG,EAAY,SAAClhG,GACjB,OAAOA,EAAM+H,QAAQ,OAAO,SAAAokB,GAAK,OAAAA,EAAE,GAAG1K,aAAL,GACnC,EAEM2qF,EAAiB,SAACpsG,EAAYqsG,EAAUC,QAAV,IAAAD,IAAAA,EAAA,QAAU,IAAAC,IAAAA,EAAA,GAC5C,IAAIC,EAAe,EACnB,GAAIrsE,MAAMlgC,GAAQ,OAAOssG,EAGzB,GAFAtsG,EAAQ6gF,WAAW7gF,GAEfwE,KAAKie,MAAMziB,KAAWA,EAAO,CAC/B,IAAM2rC,EAAO0gE,EAAKnsF,WAAW3d,MAAM,KAAK,GACxCgqG,EAAe5gE,EAAOA,EAAK1yC,OAAS,C,CAGtC,OAAOszG,EAAe1rB,WAAW7gF,EAAMwsG,QAAQD,IAAiBvsG,CAClE,EAEMysG,EAAS,SAACjxB,GACd,MAAO,cAAexuE,SAASC,cAAc,QAASuuE,GAAKA,EAAGjrE,OAAOm8F,UACvE,EAOM1vB,EAAa,SAACtwE,GAClB,OAAI,IAAAw6E,WAAUx6E,IAAOksF,EAAWlsF,GACvBA,EAEEA,GAAMA,EAAGuxE,MAEXvxE,EAAGuxE,aAFL,CAIT,EAOM2a,EAAa,SAAClsF,GAAoB,OAAAA,GAAsB,IAAhBA,EAAG4Q,QAAT,EAO3BqvF,EAAgB,SAACjgG,GAAoB,OAAAA,GAAsB,IAAhBA,EAAG4Q,QAAT,EAOrC+1E,EAAiB,SAAC3mF,GAAoB,OAAAA,IAAOksF,EAAWlsF,KAAQigG,EAAcjgG,EAAxC,EAEtCR,EAAO,SAAC/S,EAAYmJ,GAC/B,IAAIkD,EAAS,KAEb,OADArM,EAAI0Q,MAAK,SAAC6C,EAAIvU,GAAM,OAACmK,EAAKoK,EAAIvU,EAAGgB,IAASqM,EAASkH,EAAK,GAAK,CAAzC,IACblH,CACT,EAEaM,EAAS,SAACoc,GACrB,YADqB,IAAAA,IAAAA,EAAA,IACd,UAAGA,GACPna,QAAQ,KAAM,SACdA,QAAQ,KAAM,QACdA,QAAQ,KAAM,QACdA,QAAQ,KAAM,UACdA,QAAQ,KAAM,UACdA,QAAQ,KAAM,QACnB,EAEa6kG,EAAoB,SAAC1qF,GAChC,YADgC,IAAAA,IAAAA,EAAA,IACzB,UAAGA,GAAMna,QAAQ,KAAM,SAASA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,OAC7E,EAEa8kG,EAAY,W,IAAC,sDAGxB,IAFA,IAAMhuF,EAAS,EAAH,GAAQ7lB,EAAK,IAEhBb,EAAI,EAAGA,EAAIa,EAAKC,OAAQd,IAAK,CACpC,IAAM0pB,EAAS,EAAH,GAAQ7oB,EAAKb,IAEzB,IAAK,IAAIwB,KAAOkoB,EAAQ,CACtB,IAAMirF,EAAYjuF,EAAOllB,GACnBozG,EAAWlrF,EAAOloB,GAEpBqF,EAAS8tG,IAAc9tG,EAAS+tG,GAClCluF,EAAOllB,GAAOkzG,EAAUC,EAAWC,GAEnCluF,EAAOllB,GAAOozG,C,EAKpB,OAAOluF,CACT,EAOMw/D,EAAW,SAAC3xE,EAASrL,GACzB,IAAI5D,EAAQiP,EAMZ,OALKrL,GAAKqL,GAAMA,EAAGsgG,WACjBvvG,EAAQiP,EAAGsgG,WAAWvvG,OACb,IAAAypF,WAAUx6E,KACnBjP,EAAQ4D,EAAEqL,GAAIsE,KAAK,UAEdvT,CACT,EAEMwvG,EAAY,SAACvgG,GACjB,IAOIwgG,EAPE5wB,EAAM,CACVl7C,IAAK,EACLpZ,KAAM,EACNyW,MAAO,EACPrT,OAAQ,GAEV,IAAK1e,EAAI,OAAO4vE,EAGhB,GAAIsc,EAAWlsF,GAAK,CAClB,IAAM+P,EAAQzP,SAASgR,cACvBvB,EAAM0wF,WAAWzgG,GACjBwgG,EAAWzwF,EAAMqL,wBACjBrL,EAAMw9C,Q,CAGR,OAAOizC,IAAaxgG,EAAGob,sBAAwBpb,EAAGob,wBAA0Bw0D,EAC9E,EAOMsjB,EAAkB,SAAC96F,GAEvB,OAAAA,EAAGk0D,SAAWl0D,EAAGk0D,QAAQ,GAAKl0D,EAAGk0D,QAAQ,GAAKl0D,CAA9C,EAOIsoG,EAAa,SAACtoG,GAAsB,OAAAA,EAAGzK,OAASyK,EAAG0pD,OAAf,EACpC2sB,EAAa,SAACr2E,GAAsB,OAAA8mB,OAAO+hC,aAAay/C,EAAWtoG,GAA/B,EACpCs6F,EAAW,SAACt6F,GAAsB,OAAmB,KAAnBsoG,EAAWtoG,EAAX,EAClCuoG,EAAa,SAACvoG,GAAsB,OAAmB,KAAnBsoG,EAAWtoG,EAAX,EACpC9F,EAAW,SAACT,GAA4B,OAAQ,OAARA,IAAiB7F,MAAMc,QAAQ+E,IAAuB,iBAARA,CAA9C,EACxC+uG,EAAa,SAAC/uG,GAA6B,OAAA+iB,OAAO/nB,KAAKgF,GAAKtF,QAAU,CAA3B,EAE3Cs0G,EAAa,SAACrrF,GAAqB,YAArB,IAAAA,IAAAA,EAAA,IAAqBA,GAAOA,EAAIhO,OAAO,GAAGuN,cAAgBS,EAAIjJ,UAAU,EAAnD,EACnCu0F,EAAc,SAACl0G,GAAa,OAAAA,GAAOA,EAAIm0G,MAAX,EAC5BC,EAAS,SAACp0G,GAAa,OAAAA,GAAOA,EAAIq0G,KAAX,EAEvBhd,EAAY,SAACjkF,GAAY,OAAAA,EAAGkhG,MAAH,EACzBC,EAAY,SAACnhG,EAASkuB,GAC1BluB,EAAGkhG,OAAShzE,CACd,EAEMkzE,EAAW,SAAC70G,QAAA,IAAAA,IAAAA,EAAA,IAIhB,IAHA,IAAIuM,EAAS,GACPuoG,EAAQ,iEACRhqF,EAAMgqF,EAAM90G,OACTd,EAAI,EAAGA,EAAIc,EAAQd,IAC1BqN,GAAUuoG,EAAM75F,OAAO1P,KAAKie,MAAMje,KAAKwpG,SAAWjqF,IAEpD,OAAOve,CACT,EAEayoG,EAAwB,SAACC,GACpC,GAAIA,GAA4B,SAArBA,EAAIl1F,OAAO,EAAG,GAAe,CACtC,IAAIm1F,EAAY,GAQhB,OANIrX,IACFqX,EAAY91G,OAAO+1G,KAAKF,GACG,oBAAXG,SAChBF,EAAYE,OAAOt2F,KAAKm2F,EAAK,QAAQhuF,SAAS,WAGzCiuF,EAAY,oCAA6BA,GAAcD,C,CAGhE,OAAOA,CACT,C,gBCtTA,IAAI9wG,EAAM,CACT,gBAAiB,IACjB,mBAAoB,IACpB,eAAgB,IAChB,kBAAmB,IACnB,oBAAqB,IACrB,uBAAwB,IACxB,oBAAqB,IACrB,uBAAwB,IACxB,kBAAmB,IACnB,qBAAsB,IACtB,mBAAoB,IACpB,sBAAuB,IACvB,kBAAmB,IACnB,qBAAsB,IACtB,kBAAmB,IACnB,qBAAsB,IACtB,kBAAmB,IACnB,qBAAsB,IACtB,wBAAyB,IACzB,2BAA4B,IAC5B,kBAAmB,IACnB,qBAAsB,IACtB,oBAAqB,IACrB,uBAAwB,IACxB,mBAAoB,IACpB,sBAAuB,IACvB,eAAgB,IAChB,kBAAmB,IACnB,kBAAmB,IACnB,qBAAsB,IACtB,eAAgB,IAChB,kBAAmB,IACnB,eAAgB,IAChB,kBAAmB,IACnB,eAAgB,IAChB,kBAAmB,IACnB,qBAAsB,IACtB,wBAAyB,IACzB,qBAAsB,IACtB,wBAAyB,IACzB,mBAAoB,GACpB,sBAAuB,GACvB,YAAa,IACb,eAAgB,IAChB,WAAY,IACZ,cAAe,IACf,oBAAqB,IACrB,uBAAwB,IACxB,mBAAoB,IACpB,sBAAuB,IACvB,eAAgB,IAChB,kBAAmB,IACnB,qBAAsB,IACtB,wBAAyB,KAI1B,SAASkxG,EAAeC,GACvB,IAAI3rG,EAAK4rG,EAAsBD,GAC/B,OAAOE,EAAoB7rG,EAC5B,CACA,SAAS4rG,EAAsBD,GAC9B,IAAIE,EAAoBhgF,EAAErxB,EAAKmxG,GAAM,CACpC,IAAI/qG,EAAI,IAAI6G,MAAM,uBAAyBkkG,EAAM,KAEjD,MADA/qG,EAAE8f,KAAO,mBACH9f,CACP,CACA,OAAOpG,EAAImxG,EACZ,CACAD,EAAe/0G,KAAO,WACrB,OAAO+nB,OAAO/nB,KAAK6D,EACpB,EACAkxG,EAAeI,QAAUF,EACzBz2G,EAAOD,QAAUw2G,EACjBA,EAAe1rG,GAAK,G,itIC1Eb,IAAIrB,EAAU,SAKV3J,EAAuB,iBAARsJ,MAAoBA,KAAKA,OAASA,MAAQA,MACxC,iBAAVE,QAAsBA,OAAOA,SAAWA,QAAUA,QAC1DutG,SAAS,cAATA,IACA,CAAC,EAGAC,EAAal2G,MAAMC,UAAWk2G,EAAWvtF,OAAO3oB,UAChDm2G,EAAgC,oBAAX3jG,OAAyBA,OAAOxS,UAAY,KAGjEsE,EAAO2xG,EAAW3xG,KACzBrE,EAAQg2G,EAAWh2G,MACnB,EAAWi2G,EAAS3uF,SACpB,EAAiB2uF,EAAS7vF,eAGnB+vF,EAA6C,oBAAhBC,YACpCC,EAAuC,oBAAbC,SAInBC,EAAgBz2G,MAAMc,QAC7B41G,EAAa9tF,OAAO/nB,KACpB81G,EAAe/tF,OAAO9W,OACtB8kG,EAAeP,GAAuBC,YAAYO,OAG3CC,EAAStvE,MAChBuvE,EAAY9N,SAGL+N,GAAc,CAACxvF,SAAU,MAAMwwD,qBAAqB,YACpDi/B,EAAqB,CAAC,UAAW,gBAAiB,WAC3D,uBAAwB,iBAAkB,kBAGjCC,EAAkBprG,KAAKqrG,IAAI,EAAG,IAAM,ECrChC,SAASC,EAAcjmC,EAAM/wD,GAE1C,OADAA,EAA2B,MAAdA,EAAqB+wD,EAAK5wE,OAAS,GAAK6f,EAC9C,WAIL,IAHA,IAAI7f,EAASuL,KAAKC,IAAIhL,UAAUR,OAAS6f,EAAY,GACjD1J,EAAO1W,MAAMO,GACbG,EAAQ,EACLA,EAAQH,EAAQG,IACrBgW,EAAKhW,GAASK,UAAUL,EAAQ0f,GAElC,OAAQA,GACN,KAAK,EAAG,OAAO+wD,EAAK3wE,KAAKZ,KAAM8W,GAC/B,KAAK,EAAG,OAAOy6D,EAAK3wE,KAAKZ,KAAMmB,UAAU,GAAI2V,GAC7C,KAAK,EAAG,OAAOy6D,EAAK3wE,KAAKZ,KAAMmB,UAAU,GAAIA,UAAU,GAAI2V,GAE7D,IAAIpW,EAAON,MAAMogB,EAAa,GAC9B,IAAK1f,EAAQ,EAAGA,EAAQ0f,EAAY1f,IAClCJ,EAAKI,GAASK,UAAUL,GAG1B,OADAJ,EAAK8f,GAAc1J,EACZy6D,EAAKhxE,MAAMP,KAAMU,EAC1B,CACF,CCzBe,SAASgG,EAAS1F,GAC/B,IAAIwB,SAAcxB,EAClB,MAAgB,aAATwB,GAAiC,WAATA,KAAuBxB,CACxD,CCHe,SAASy2G,EAAOz2G,GAC7B,OAAe,OAARA,CACT,CCFe,SAAS4oF,EAAY5oF,GAClC,YAAe,IAARA,CACT,CCAe,SAAS02G,EAAU12G,GAChC,OAAe,IAARA,IAAwB,IAARA,GAAwC,qBAAvB,OAAcA,EACxD,CCJe,SAAS4tF,EAAU5tF,GAChC,SAAUA,GAAwB,IAAjBA,EAAIgkB,SACvB,CCAe,SAAS2yF,EAAUhuG,GAChC,IAAIgb,EAAM,WAAahb,EAAO,IAC9B,OAAO,SAAS3I,GACd,OAAO,OAAcA,KAAS2jB,CAChC,CACF,CCNA,QAAegzF,EAAU,UCAzB,EAAeA,EAAU,UCAzB,EAAeA,EAAU,QCAzB,EAAeA,EAAU,UCAzB,EAAeA,EAAU,SCAzB,EAAeA,EAAU,UCAzB,EAAeA,EAAU,eCCzB,IAAIt1G,EAAas1G,EAAU,YAIvBC,EAAWt4G,EAAKoV,UAAYpV,EAAKoV,SAAS6P,WAC1C,GAAgD,iBAAbszF,WAA4C,mBAAZD,IACrEv1G,EAAa,SAASrB,GACpB,MAAqB,mBAAPA,IAAqB,CACrC,GAGF,UCZA,EAAe22G,EAAU,UCIlB,IAAIG,EACLnB,GAAoB,EAAa,IAAIC,SAAS,IAAIF,YAAY,KAEhEqB,EAAyB,oBAARC,KAAuB,EAAa,IAAIA,KCJzDC,EAAaN,EAAU,YAQ3B,QAAgBG,EAJhB,SAAwB92G,GACtB,OAAc,MAAPA,GAAe,EAAWA,EAAIk3G,UAAYC,EAAcn3G,EAAIo3G,OACrE,EAEmDH,ECRnD,EAAepB,GAAiBc,EAAU,SCF3B,SAASlqG,EAAIzM,EAAKK,GAC/B,OAAc,MAAPL,GAAe,OAAoBA,EAAKK,EACjD,CCFA,IAAIuG,EAAc+vG,EAAU,cAI3B,WACM/vG,EAAYzG,aACfyG,EAAc,SAAS5G,GACrB,OAAOyM,EAAIzM,EAAK,SAClB,EAEJ,CANA,GAQA,UCXe,SAAS,EAASA,GAC/B,OAAQq3G,EAASr3G,IAAQm2G,EAAUn2G,KAAS4mC,MAAM2gD,WAAWvnF,GAC/D,CCFe,SAAS,EAAMA,GAC5B,OAAOs3G,EAASt3G,IAAQk2G,EAAOl2G,EACjC,CCLe,SAASu3G,EAAS7wG,GAC/B,OAAO,WACL,OAAOA,CACT,CACF,CCFe,SAAS8wG,EAAwBC,GAC9C,OAAO,SAASxzG,GACd,IAAIyzG,EAAeD,EAAgBxzG,GACnC,MAA8B,iBAAhByzG,GAA4BA,GAAgB,GAAKA,GAAgBpB,CACjF,CACF,CCPe,SAASqB,GAAgBt3G,GACtC,OAAO,SAASL,GACd,OAAc,MAAPA,OAAc,EAASA,EAAIK,EACpC,CACF,CCFA,SAAes3G,GAAgB,cCE/B,GAAeH,EAAwB,ICCvC,IAAII,GAAoB,8EAQxB,SAAenC,EAPf,SAAsBz1G,GAGpB,OAAOg2G,EAAgBA,EAAah2G,KAAS,EAAWA,GAC1C,GAAaA,IAAQ43G,GAAkB5uG,KAAK,OAAchJ,GAC1E,EAEoDu3G,GAAS,GCX7D,GAAeI,GAAgB,UCoBhB,SAASE,GAAoB73G,EAAKC,GAC/CA,EAhBF,SAAqBA,GAEnB,IADA,IAAIoc,EAAO,CAAC,EACHpb,EAAIhB,EAAKN,OAAQd,EAAI,EAAGA,EAAIoC,IAAKpC,EAAGwd,EAAKpc,EAAKpB,KAAM,EAC7D,MAAO,CACL6E,SAAU,SAASrD,GAAO,OAAqB,IAAdgc,EAAKhc,EAAe,EACrDsD,KAAM,SAAStD,GAEb,OADAgc,EAAKhc,IAAO,EACLJ,EAAK0D,KAAKtD,EACnB,EAEJ,CAMSy3G,CAAY73G,GACnB,IAAI83G,EAAa1B,EAAmB12G,OAChCgP,EAAc3O,EAAI2O,YAClBqpG,EAAS,EAAWrpG,IAAgBA,EAAYtP,WAAck2G,EAG9D9vF,EAAO,cAGX,IAFIhZ,EAAIzM,EAAKylB,KAAUxlB,EAAKyD,SAAS+hB,IAAOxlB,EAAK0D,KAAK8hB,GAE/CsyF,MACLtyF,EAAO4wF,EAAmB0B,MACd/3G,GAAOA,EAAIylB,KAAUuyF,EAAMvyF,KAAUxlB,EAAKyD,SAAS+hB,IAC7DxlB,EAAK0D,KAAK8hB,EAGhB,CChCe,SAASxlB,GAAKD,GAC3B,IAAK0F,EAAS1F,GAAM,MAAO,GAC3B,GAAI81G,EAAY,OAAOA,EAAW91G,GAClC,IAAIC,EAAO,GACX,IAAK,IAAII,KAAOL,EAASyM,EAAIzM,EAAKK,IAAMJ,EAAK0D,KAAKtD,GAGlD,OADI+1G,GAAYyB,GAAoB73G,EAAKC,GAClCA,CACT,CCPe,SAASqE,GAAQtE,GAC9B,GAAW,MAAPA,EAAa,OAAO,EAGxB,IAAIL,EAAS,GAAUK,GACvB,MAAqB,iBAAVL,IACTO,EAAQF,IAAQkQ,EAASlQ,IAAQ,EAAYA,IAC1B,IAAXL,EACsB,IAAzB,GAAUM,GAAKD,GACxB,CCde,SAASi4G,GAAQv2G,EAAQoK,GACtC,IAAIosG,EAAQj4G,GAAK6L,GAAQnM,EAASu4G,EAAMv4G,OACxC,GAAc,MAAV+B,EAAgB,OAAQ/B,EAE5B,IADA,IAAIK,EAAMgoB,OAAOtmB,GACR7C,EAAI,EAAGA,EAAIc,EAAQd,IAAK,CAC/B,IAAIwB,EAAM63G,EAAMr5G,GAChB,GAAIiN,EAAMzL,KAASL,EAAIK,MAAUA,KAAOL,GAAM,OAAO,CACvD,CACA,OAAO,CACT,CCPe,SAASf,GAAEe,GACxB,OAAIA,aAAef,GAAUe,EACvBhB,gBAAgBC,QACtBD,KAAKm5G,SAAWn4G,GADiB,IAAIf,GAAEe,EAEzC,CCLe,SAASo4G,GAAaC,GACnC,OAAO,IAAIC,WACTD,EAAajB,QAAUiB,EACvBA,EAAaE,YAAc,EAC3B,GAAcF,GAElB,CDCAp5G,GAAEgJ,QAAUA,EAGZhJ,GAAEI,UAAUqH,MAAQ,WAClB,OAAO1H,KAAKm5G,QACd,EAIAl5G,GAAEI,UAAUm5G,QAAUv5G,GAAEI,UAAUiN,OAASrN,GAAEI,UAAUqH,MAEvDzH,GAAEI,UAAUunB,SAAW,WACrB,OAAO0L,OAAOtzB,KAAKm5G,SACrB,EEZA,IAAIM,GAAc,oBAGlB,SAASjR,GAAG5oG,EAAG4lB,EAAGk0F,EAAQC,GAGxB,GAAI/5G,IAAM4lB,EAAG,OAAa,IAAN5lB,GAAW,EAAIA,GAAM,EAAI4lB,EAE7C,GAAS,MAAL5lB,GAAkB,MAAL4lB,EAAW,OAAO,EAEnC,GAAI5lB,GAAMA,EAAG,OAAO4lB,GAAMA,EAE1B,IAAIhjB,SAAc5C,EAClB,OAAa,aAAT4C,GAAgC,WAATA,GAAiC,iBAALgjB,IAChDo0F,GAAOh6G,EAAG4lB,EAAGk0F,EAAQC,EAC9B,CAGA,SAASC,GAAOh6G,EAAG4lB,EAAGk0F,EAAQC,GAExB/5G,aAAaK,KAAGL,EAAIA,EAAEu5G,UACtB3zF,aAAavlB,KAAGulB,EAAIA,EAAE2zF,UAE1B,IAAIvkG,EAAY,OAAchV,GAC9B,GAAIgV,IAAc,OAAc4Q,GAAI,OAAO,EAE3C,GAAIsyF,GAAgC,mBAAbljG,GAAkC,EAAWhV,GAAI,CACtE,IAAK,EAAW4lB,GAAI,OAAO,EAC3B5Q,EAAY6kG,EACd,CACA,OAAQ7kG,GAEN,IAAK,kBAEL,IAAK,kBAGH,MAAO,GAAKhV,GAAM,GAAK4lB,EACzB,IAAK,kBAGH,OAAK5lB,IAAOA,GAAW4lB,IAAOA,EAEhB,IAAN5lB,EAAU,GAAKA,GAAM,EAAI4lB,GAAK5lB,IAAO4lB,EAC/C,IAAK,gBACL,IAAK,mBAIH,OAAQ5lB,IAAO4lB,EACjB,IAAK,kBACH,OAAOgxF,EAAYgD,QAAQ54G,KAAKhB,KAAO42G,EAAYgD,QAAQ54G,KAAK4kB,GAClE,IAAK,uBACL,KAAKi0F,GAEH,OAAOG,GAAOR,GAAax5G,GAAIw5G,GAAa5zF,GAAIk0F,EAAQC,GAG5D,IAAIE,EAA0B,mBAAdjlG,EAChB,IAAKilG,GAAa,GAAaj6G,GAAI,CAE/B,GADiB,GAAcA,KACZ,GAAc4lB,GAAI,OAAO,EAC5C,GAAI5lB,EAAEw4G,SAAW5yF,EAAE4yF,QAAUx4G,EAAE25G,aAAe/zF,EAAE+zF,WAAY,OAAO,EACnEM,GAAY,CAChB,CACA,IAAKA,EAAW,CACd,GAAgB,iBAALj6G,GAA6B,iBAAL4lB,EAAe,OAAO,EAIzD,IAAIs0F,EAAQl6G,EAAE+P,YAAaoqG,EAAQv0F,EAAE7V,YACrC,GAAImqG,IAAUC,KAAW,EAAWD,IAAUA,aAAiBA,GACtC,EAAWC,IAAUA,aAAiBA,IACvC,gBAAiBn6G,GAAK,gBAAiB4lB,EAC7D,OAAO,CAEX,CAOAm0F,EAASA,GAAU,GAEnB,IADA,IAAIh5G,GAFJ+4G,EAASA,GAAU,IAEC/4G,OACbA,KAGL,GAAI+4G,EAAO/4G,KAAYf,EAAG,OAAO+5G,EAAOh5G,KAAY6kB,EAQtD,GAJAk0F,EAAO/0G,KAAK/E,GACZ+5G,EAAOh1G,KAAK6gB,GAGRq0F,EAAW,CAGb,IADAl5G,EAASf,EAAEe,UACI6kB,EAAE7kB,OAAQ,OAAO,EAEhC,KAAOA,KACL,IAAK6nG,GAAG5oG,EAAEe,GAAS6kB,EAAE7kB,GAAS+4G,EAAQC,GAAS,OAAO,CAE1D,KAAO,CAEL,IAAqBt4G,EAAjB63G,EAAQj4G,GAAKrB,GAGjB,GAFAe,EAASu4G,EAAMv4G,OAEXM,GAAKukB,GAAG7kB,SAAWA,EAAQ,OAAO,EACtC,KAAOA,KAGL,IAAM8M,EAAI+X,EADVnkB,EAAM63G,EAAMv4G,MACS6nG,GAAG5oG,EAAEyB,GAAMmkB,EAAEnkB,GAAMq4G,EAAQC,GAAU,OAAO,CAErE,CAIA,OAFAD,EAAO91G,MACP+1G,EAAO/1G,OACA,CACT,CAGe,SAASuK,GAAQvO,EAAG4lB,GACjC,OAAOgjF,GAAG5oG,EAAG4lB,EACf,CCpIe,SAASw0F,GAAQh5G,GAC9B,IAAK0F,EAAS1F,GAAM,MAAO,GAC3B,IAAIC,EAAO,GACX,IAAK,IAAII,KAAOL,EAAKC,EAAK0D,KAAKtD,GAG/B,OADI+1G,GAAYyB,GAAoB73G,EAAKC,GAClCA,CACT,CCJO,SAASg5G,GAAgB7kG,GAC9B,IAAIzU,EAAS,GAAUyU,GACvB,OAAO,SAASpU,GACd,GAAW,MAAPA,EAAa,OAAO,EAExB,IAAIC,EAAO+4G,GAAQh5G,GACnB,GAAI,GAAUC,GAAO,OAAO,EAC5B,IAAK,IAAIpB,EAAI,EAAGA,EAAIc,EAAQd,IAC1B,IAAK,EAAWmB,EAAIoU,EAAQvV,KAAM,OAAO,EAK3C,OAAOuV,IAAY8kG,KAAmB,EAAWl5G,EAAIm5G,IACvD,CACF,CAIA,IAAIA,GAAc,UACdC,GAAU,MACVC,GAAa,CAAC,QAAS,UACvBC,GAAU,CAAC,MAAOF,GAAS,OAIpBG,GAAaF,GAAWt1G,OAAOo1G,GAAaG,IACnDJ,GAAiBG,GAAWt1G,OAAOu1G,IACnCE,GAAa,CAAC,OAAOz1G,OAAOs1G,GAAYF,GAAaC,IChCzD,SAAerC,EAASkC,GAAgBM,IAAc5C,EAAU,OCAhE,GAAeI,EAASkC,GAAgBC,IAAkBvC,EAAU,WCApE,GAAeI,EAASkC,GAAgBO,IAAc7C,EAAU,OCFhE,GAAeA,EAAU,WCCV,SAASvlG,GAAOpR,GAI7B,IAHA,IAAIk4G,EAAQj4G,GAAKD,GACbL,EAASu4G,EAAMv4G,OACfyR,EAAShS,MAAMO,GACVd,EAAI,EAAGA,EAAIc,EAAQd,IAC1BuS,EAAOvS,GAAKmB,EAAIk4G,EAAMr5G,IAExB,OAAOuS,CACT,CCPe,SAAS0F,GAAM9W,GAI5B,IAHA,IAAIk4G,EAAQj4G,GAAKD,GACbL,EAASu4G,EAAMv4G,OACfmX,EAAQ1X,MAAMO,GACTd,EAAI,EAAGA,EAAIc,EAAQd,IAC1BiY,EAAMjY,GAAK,CAACq5G,EAAMr5G,GAAImB,EAAIk4G,EAAMr5G,KAElC,OAAOiY,CACT,CCTe,SAASC,GAAO/W,GAG7B,IAFA,IAAIkM,EAAS,CAAC,EACVgsG,EAAQj4G,GAAKD,GACRnB,EAAI,EAAGc,EAASu4G,EAAMv4G,OAAQd,EAAIc,EAAQd,IACjDqN,EAAOlM,EAAIk4G,EAAMr5G,KAAOq5G,EAAMr5G,GAEhC,OAAOqN,CACT,CCPe,SAASmL,GAAUrX,GAChC,IAAI8I,EAAQ,GACZ,IAAK,IAAIzI,KAAOL,EACV,EAAWA,EAAIK,KAAOyI,EAAMnF,KAAKtD,GAEvC,OAAOyI,EAAMiH,MACf,CCRe,SAAS0pG,GAAeC,EAAU5zG,GAC/C,OAAO,SAAS9F,GACd,IAAIL,EAASQ,UAAUR,OAEvB,GADImG,IAAU9F,EAAMgoB,OAAOhoB,IACvBL,EAAS,GAAY,MAAPK,EAAa,OAAOA,EACtC,IAAK,IAAIF,EAAQ,EAAGA,EAAQH,EAAQG,IAIlC,IAHA,IAAIyoB,EAASpoB,UAAUL,GACnBG,EAAOy5G,EAASnxF,GAChBtnB,EAAIhB,EAAKN,OACJd,EAAI,EAAGA,EAAIoC,EAAGpC,IAAK,CAC1B,IAAIwB,EAAMJ,EAAKpB,GACViH,QAAyB,IAAb9F,EAAIK,KAAiBL,EAAIK,GAAOkoB,EAAOloB,GAC1D,CAEF,OAAOL,CACT,CACF,CCbA,SAAey5G,GAAeT,ICE9B,GAAeS,GAAex5G,ICF9B,GAAew5G,GAAeT,IAAS,GCKxB,SAASW,GAAWt6G,GACjC,IAAKqG,EAASrG,GAAY,MAAO,CAAC,EAClC,GAAI02G,EAAc,OAAOA,EAAa12G,GACtC,IAAIu6G,EAPG,WAAW,EAQlBA,EAAKv6G,UAAYA,EACjB,IAAI6M,EAAS,IAAI0tG,EAEjB,OADAA,EAAKv6G,UAAY,KACV6M,CACT,CCXe,SAASgF,GAAO7R,EAAWyoB,GACxC,IAAI5b,EAASytG,GAAWt6G,GAExB,OADIyoB,GAAO+xF,GAAU3tG,EAAQ4b,GACtB5b,CACT,CCLe,SAAS3J,GAAMvC,GAC5B,OAAK0F,EAAS1F,GACPE,EAAQF,GAAOA,EAAIV,QAAUqG,GAAO,CAAC,EAAG3F,GADpBA,CAE7B,CCLe,SAAS85G,GAAI95G,EAAK+5G,GAE/B,OADAA,EAAY/5G,GACLA,CACT,CCDe,SAASg6G,GAAOr/F,GAC7B,OAAOza,EAAQya,GAAQA,EAAO,CAACA,EACjC,CCFe,SAAS,GAAOA,GAC7B,OAAO1b,GAAE+6G,OAAOr/F,EAClB,CCNe,SAASs/F,GAAQj6G,EAAK2a,GAEnC,IADA,IAAIhb,EAASgb,EAAKhb,OACTd,EAAI,EAAGA,EAAIc,EAAQd,IAAK,CAC/B,GAAW,MAAPmB,EAAa,OACjBA,EAAMA,EAAI2a,EAAK9b,GACjB,CACA,OAAOc,EAASK,OAAM,CACxB,CCAe,SAAS2C,GAAIjB,EAAQiZ,EAAMu/F,GACxC,IAAIxzG,EAAQuzG,GAAQv4G,EAAQ,GAAOiZ,IACnC,OAAOiuE,EAAYliF,GAASwzG,EAAexzG,CAC7C,CCLe,SAAS,GAAI1G,EAAK2a,GAG/B,IADA,IAAIhb,GADJgb,EAAO,GAAOA,IACIhb,OACTd,EAAI,EAAGA,EAAIc,EAAQd,IAAK,CAC/B,IAAIwB,EAAMsa,EAAK9b,GACf,IAAK,EAAKmB,EAAKK,GAAM,OAAO,EAC5BL,EAAMA,EAAIK,EACZ,CACA,QAASV,CACX,CCde,SAASw6G,GAASzzG,GAC/B,OAAOA,CACT,CCEe,SAAS6N,GAAQzI,GAE9B,OADAA,EAAQ+tG,GAAU,CAAC,EAAG/tG,GACf,SAAS9L,GACd,OAAOi4G,GAAQj4G,EAAK8L,EACtB,CACF,CCLe,SAASwvE,GAAS3gE,GAE/B,OADAA,EAAO,GAAOA,GACP,SAAS3a,GACd,OAAOi6G,GAAQj6G,EAAK2a,EACtB,CACF,CCPe,SAASy/F,GAAW7pC,EAAMxnE,EAASsxG,GAChD,QAAgB,IAAZtxG,EAAoB,OAAOwnE,EAC/B,OAAoB,MAAZ8pC,EAAmB,EAAIA,GAC7B,KAAK,EAAG,OAAO,SAAS3zG,GACtB,OAAO6pE,EAAK3wE,KAAKmJ,EAASrC,EAC5B,EAEA,KAAK,EAAG,OAAO,SAASA,EAAO5G,EAAOmE,GACpC,OAAOssE,EAAK3wE,KAAKmJ,EAASrC,EAAO5G,EAAOmE,EAC1C,EACA,KAAK,EAAG,OAAO,SAASq2G,EAAa5zG,EAAO5G,EAAOmE,GACjD,OAAOssE,EAAK3wE,KAAKmJ,EAASuxG,EAAa5zG,EAAO5G,EAAOmE,EACvD,EAEF,OAAO,WACL,OAAOssE,EAAKhxE,MAAMwJ,EAAS5I,UAC7B,CACF,CCTe,SAASo6G,GAAa7zG,EAAOqC,EAASsxG,GACnD,OAAa,MAAT3zG,EAAsByzG,GACtB,EAAWzzG,GAAe0zG,GAAW1zG,EAAOqC,EAASsxG,GACrD30G,EAASgB,KAAWxG,EAAQwG,GAAe6N,GAAQ7N,GAChD40E,GAAS50E,EAClB,CCVe,SAAS+B,GAAS/B,EAAOqC,GACtC,OAAOwxG,GAAa7zG,EAAOqC,EAAS3C,IACtC,CCFe,SAAS4N,GAAGtN,EAAOqC,EAASsxG,GACzC,OAAIp7G,GAAEwJ,WAAaA,GAAiBxJ,GAAEwJ,SAAS/B,EAAOqC,GAC/CwxG,GAAa7zG,EAAOqC,EAASsxG,EACtC,CCJe,SAASG,GAAUx6G,EAAKyI,EAAUM,GAC/CN,EAAWuL,GAAGvL,EAAUM,GAIxB,IAHA,IAAImvG,EAAQj4G,GAAKD,GACbL,EAASu4G,EAAMv4G,OACf86G,EAAU,CAAC,EACN36G,EAAQ,EAAGA,EAAQH,EAAQG,IAAS,CAC3C,IAAI46G,EAAaxC,EAAMp4G,GACvB26G,EAAQC,GAAcjyG,EAASzI,EAAI06G,GAAaA,EAAY16G,EAC9D,CACA,OAAOy6G,CACT,CCde,SAASE,KAAO,CCGhB,SAASC,GAAW56G,GACjC,OAAW,MAAPA,EAAoB26G,GACjB,SAAShgG,GACd,OAAOhY,GAAI3C,EAAK2a,EAClB,CACF,CCNe,SAASkgG,GAAM/0F,EAAGrd,EAAUM,GACzC,IAAI+xG,EAAQ17G,MAAM8L,KAAKC,IAAI,EAAG2a,IAC9Brd,EAAW2xG,GAAW3xG,EAAUM,EAAS,GACzC,IAAK,IAAIlK,EAAI,EAAGA,EAAIinB,EAAGjnB,IAAKi8G,EAAMj8G,GAAK4J,EAAS5J,GAChD,OAAOi8G,CACT,CCPe,SAASpG,GAAOvlG,EAAKhE,GAKlC,OAJW,MAAPA,IACFA,EAAMgE,EACNA,EAAM,GAEDA,EAAMjE,KAAKie,MAAMje,KAAKwpG,UAAYvpG,EAAMgE,EAAM,GACvD,ChBCAlQ,GAAE+6G,OAASA,GUCX/6G,GAAEwJ,SAAWA,GORb,SAAe6d,KAAKg2C,KAAO,WACzB,OAAO,IAAIh2C,MAAOy0F,SACpB,ECCe,SAASC,GAAcl3G,GACpC,IAAIm3G,EAAU,SAAS5nG,GACrB,OAAOvP,EAAIuP,EACb,EAEIkV,EAAS,MAAQtoB,GAAK6D,GAAK2qD,KAAK,KAAO,IACvCysD,EAAa5hG,OAAOiP,GACpB4yF,EAAgB7hG,OAAOiP,EAAQ,KACnC,OAAO,SAASzH,GAEd,OADAA,EAAmB,MAAVA,EAAiB,GAAK,GAAKA,EAC7Bo6F,EAAWlyG,KAAK8X,GAAUA,EAAOrS,QAAQ0sG,EAAeF,GAAWn6F,CAC5E,CACF,CCfA,UACE,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,SACL,IAAK,UCHP,GAAek6F,GAAc,ICA7B,GAAeA,GCAAjkG,GAAO,KCAtB,GAAe9X,GAAEm8G,iBAAmB,CAClCC,SAAU,kBACVC,YAAa,mBACb9uG,OAAQ,oBCAV,IAAI+uG,GAAU,OAIVC,GAAU,CACZ,IAAK,IACL,KAAM,KACN,KAAM,IACN,KAAM,IACN,SAAU,QACV,SAAU,SAGR7iG,GAAe,4BAEnB,SAAS8iG,GAAWpoG,GAClB,MAAO,KAAOmoG,GAAQnoG,EACxB,CAOA,IAAIqoG,GAAiB,mBAMN,SAASC,GAAS57F,EAAM67F,EAAUC,IAC1CD,GAAYC,IAAaD,EAAWC,GACzCD,EAAW91G,GAAS,CAAC,EAAG81G,EAAU38G,GAAEm8G,kBAGpC,IAAI7mG,EAAU+E,OAAO,EAClBsiG,EAASpvG,QAAU+uG,IAAShzF,QAC5BqzF,EAASN,aAAeC,IAAShzF,QACjCqzF,EAASP,UAAYE,IAAShzF,QAC/BkmC,KAAK,KAAO,KAAM,KAGhB3uD,EAAQ,EACRyoB,EAAS,SACbxI,EAAKtR,QAAQ8F,GAAS,SAASlB,EAAO7G,EAAQ8uG,EAAaD,EAAUlhF,GAanE,OAZA5R,GAAUxI,EAAKzgB,MAAMQ,EAAOq6B,GAAQ1rB,QAAQkK,GAAc8iG,IAC1D37G,EAAQq6B,EAAS9mB,EAAM1T,OAEnB6M,EACF+b,GAAU,cAAgB/b,EAAS,iCAC1B8uG,EACT/yF,GAAU,cAAgB+yF,EAAc,uBAC/BD,IACT9yF,GAAU,OAAS8yF,EAAW,YAIzBhoG,CACT,IACAkV,GAAU,OAEV,IAgBI1V,EAhBAipG,EAAWF,EAASG,SACxB,GAAID,GAEF,IAAKJ,GAAe1yG,KAAK8yG,GAAW,MAAM,IAAI/qG,MAC5C,sCAAwC+qG,QAI1CvzF,EAAS,mBAAqBA,EAAS,MACvCuzF,EAAW,MAGbvzF,EAAS,2CACP,oDACAA,EAAS,gBAGX,IACE1V,EAAS,IAAIwiG,SAASyG,EAAU,IAAKvzF,EAIvC,CAHE,MAAOre,GAEP,MADAA,EAAEqe,OAASA,EACLre,CACR,CAEA,IAAIyxG,EAAW,SAASjkG,GACtB,OAAO7E,EAAOjT,KAAKZ,KAAM0Y,EAAMzY,GACjC,EAKA,OAFA08G,EAASpzF,OAAS,YAAcuzF,EAAW,OAASvzF,EAAS,IAEtDozF,CACT,CC9Fe,SAASzvG,GAAOlM,EAAK2a,EAAMqhG,GAExC,IAAIr8G,GADJgb,EAAO,GAAOA,IACIhb,OAClB,IAAKA,EACH,OAAO,EAAWq8G,GAAYA,EAASp8G,KAAKI,GAAOg8G,EAErD,IAAK,IAAIn9G,EAAI,EAAGA,EAAIc,EAAQd,IAAK,CAC/B,IAAI4mB,EAAc,MAAPzlB,OAAc,EAASA,EAAI2a,EAAK9b,SAC9B,IAAT4mB,IACFA,EAAOu2F,EACPn9G,EAAIc,GAENK,EAAM,EAAWylB,GAAQA,EAAK7lB,KAAKI,GAAOylB,CAC5C,CACA,OAAOzlB,CACT,CCnBA,IAAIi8G,GAAY,EACD,SAASvyG,GAASsrF,GAC/B,IAAI1rF,IAAO2yG,GAAY,GACvB,OAAOjnB,EAASA,EAAS1rF,EAAKA,CAChC,CCHe,SAAS+M,GAAMrW,GAC5B,IAAIqU,EAAWpV,GAAEe,GAEjB,OADAqU,EAAS6nG,QAAS,EACX7nG,CACT,CCDe,SAAS8nG,GAAaC,EAAYC,EAAWtzG,EAASuzG,EAAgB58G,GACnF,KAAM48G,aAA0BD,GAAY,OAAOD,EAAW78G,MAAMwJ,EAASrJ,GAC7E,IAAIkI,EAAO+xG,GAAWyC,EAAW/8G,WAC7B6M,EAASkwG,EAAW78G,MAAMqI,EAAMlI,GACpC,OAAIgG,EAASwG,GAAgBA,EACtBtE,CACT,CCJA,IAAI20G,GAAU/F,GAAc,SAASjmC,EAAMisC,GACzC,IAAIzuC,EAAcwuC,GAAQxuC,YACtBtT,EAAQ,WAGV,IAFA,IAAIl1B,EAAW,EAAG5lC,EAAS68G,EAAU78G,OACjCD,EAAON,MAAMO,GACRd,EAAI,EAAGA,EAAIc,EAAQd,IAC1Ba,EAAKb,GAAK29G,EAAU39G,KAAOkvE,EAAc5tE,UAAUolC,KAAci3E,EAAU39G,GAE7E,KAAO0mC,EAAWplC,UAAUR,QAAQD,EAAKiE,KAAKxD,UAAUolC,MACxD,OAAO42E,GAAa5rC,EAAM9V,EAAOz7D,KAAMA,KAAMU,EAC/C,EACA,OAAO+6D,CACT,IAEA8hD,GAAQxuC,YAAc9uE,GACtB,YCjBA,GAAeu3G,GAAc,SAASjmC,EAAMxnE,EAASrJ,GACnD,IAAK,EAAW6wE,GAAO,MAAM,IAAIksC,UAAU,qCAC3C,IAAIhiD,EAAQ+7C,GAAc,SAASkG,GACjC,OAAOP,GAAa5rC,EAAM9V,EAAO1xD,EAAS/J,KAAMU,EAAKqE,OAAO24G,GAC9D,IACA,OAAOjiD,CACT,ICLA,GAAe+8C,EAAwB,ICDxB,SAASjtB,GAAQjqD,EAAOm3C,EAAOklC,EAAQrlF,GAEpD,GADAA,EAASA,GAAU,GACdmgD,GAAmB,IAAVA,GAEP,GAAIA,GAAS,EAClB,OAAOngD,EAAOvzB,OAAOu8B,QAFrBm3C,EAAQrxE,IAKV,IADA,IAAIw2G,EAAMtlF,EAAO33B,OACRd,EAAI,EAAGc,EAAS,GAAU2gC,GAAQzhC,EAAIc,EAAQd,IAAK,CAC1D,IAAI6H,EAAQ45B,EAAMzhC,GAClB,GAAI,GAAY6H,KAAWxG,EAAQwG,IAAU,EAAYA,IAEvD,GAAI+wE,EAAQ,EACV8S,GAAQ7jF,EAAO+wE,EAAQ,EAAGklC,EAAQrlF,GAClCslF,EAAMtlF,EAAO33B,YAGb,IADA,IAAI8K,EAAI,EAAGggB,EAAM/jB,EAAM/G,OAChB8K,EAAIggB,GAAK6M,EAAOslF,KAASl2G,EAAM+D,UAE9BkyG,IACVrlF,EAAOslF,KAASl2G,EAEpB,CACA,OAAO4wB,CACT,CCvBA,SAAek/E,GAAc,SAASx2G,EAAKC,GAEzC,IAAIH,GADJG,EAAOsqF,GAAQtqF,GAAM,GAAO,IACXN,OACjB,GAAIG,EAAQ,EAAG,MAAM,IAAIiR,MAAM,yCAC/B,KAAOjR,KAAS,CACd,IAAIO,EAAMJ,EAAKH,GACfE,EAAIK,GAAO0K,GAAK/K,EAAIK,GAAML,EAC5B,CACA,OAAOA,CACT,ICbe,SAAS68G,GAAQtsC,EAAMusC,GACpC,IAAID,EAAU,SAASx8G,GACrB,IAAI89B,EAAQ0+E,EAAQ1+E,MAChB4+E,EAAU,IAAMD,EAASA,EAAOv9G,MAAMP,KAAMmB,WAAaE,GAE7D,OADKoM,EAAI0xB,EAAO4+E,KAAU5+E,EAAM4+E,GAAWxsC,EAAKhxE,MAAMP,KAAMmB,YACrDg+B,EAAM4+E,EACf,EAEA,OADAF,EAAQ1+E,MAAQ,CAAC,EACV0+E,CACT,CCRA,SAAerG,GAAc,SAASjmC,EAAMxiE,EAAMrO,GAChD,OAAO6mB,YAAW,WAChB,OAAOgqD,EAAKhxE,MAAM,KAAMG,EAC1B,GAAGqO,EACL,ICFA,GAAe,GAAQyrC,GAAOv6C,GAAG,GCClB,SAAS+9G,GAASzsC,EAAMxiE,EAAMlM,GAC3C,IAAIo7G,EAASl0G,EAASrJ,EAAMwM,EACxBsB,EAAW,EACV3L,IAASA,EAAU,CAAC,GAEzB,IAAIq7G,EAAQ,WACV1vG,GAA+B,IAApB3L,EAAQs7G,QAAoB,EAAI7gD,KAC3C2gD,EAAU,KACV/wG,EAASqkE,EAAKhxE,MAAMwJ,EAASrJ,GACxBu9G,IAASl0G,EAAUrJ,EAAO,KACjC,EAEI09G,EAAY,WACd,IAAIC,EAAO/gD,KACN9uD,IAAgC,IAApB3L,EAAQs7G,UAAmB3vG,EAAW6vG,GACvD,IAAI7yG,EAAYuD,GAAQsvG,EAAO7vG,GAc/B,OAbAzE,EAAU/J,KACVU,EAAOS,UACHqK,GAAa,GAAKA,EAAYuD,GAC5BkvG,IACFx2F,aAAaw2F,GACbA,EAAU,MAEZzvG,EAAW6vG,EACXnxG,EAASqkE,EAAKhxE,MAAMwJ,EAASrJ,GACxBu9G,IAASl0G,EAAUrJ,EAAO,OACrBu9G,IAAgC,IAArBp7G,EAAQy7G,WAC7BL,EAAU12F,WAAW22F,EAAO1yG,IAEvB0B,CACT,EAQA,OANAkxG,EAAUxzD,OAAS,WACjBnjC,aAAaw2F,GACbzvG,EAAW,EACXyvG,EAAUl0G,EAAUrJ,EAAO,IAC7B,EAEO09G,CACT,CCvCe,SAAS92B,GAAS/V,EAAMxiE,EAAMwvG,GAC3C,IAAIN,EAASzvG,EAAU9N,EAAMwM,EAAQnD,EAEjCm0G,EAAQ,WACV,IAAIM,EAASlhD,KAAQ9uD,EACjBO,EAAOyvG,EACTP,EAAU12F,WAAW22F,EAAOnvG,EAAOyvG,IAEnCP,EAAU,KACLM,IAAWrxG,EAASqkE,EAAKhxE,MAAMwJ,EAASrJ,IAExCu9G,IAASv9G,EAAOqJ,EAAU,MAEnC,EAEI00G,EAAYjH,GAAc,SAASkH,GAQrC,OAPA30G,EAAU/J,KACVU,EAAOg+G,EACPlwG,EAAW8uD,KACN2gD,IACHA,EAAU12F,WAAW22F,EAAOnvG,GACxBwvG,IAAWrxG,EAASqkE,EAAKhxE,MAAMwJ,EAASrJ,KAEvCwM,CACT,IAOA,OALAuxG,EAAU7zD,OAAS,WACjBnjC,aAAaw2F,GACbA,EAAUv9G,EAAOqJ,EAAU,IAC7B,EAEO00G,CACT,CClCe,SAASv6E,GAAKqtC,EAAM3qC,GACjC,OAAO,GAAQA,EAAS2qC,EAC1B,CCNe,SAASotC,GAAOv1C,GAC7B,OAAO,WACL,OAAQA,EAAU7oE,MAAMP,KAAMmB,UAChC,CACF,CCHe,SAASy9G,KACtB,IAAIl+G,EAAOS,UACP6a,EAAQtb,EAAKC,OAAS,EAC1B,OAAO,WAGL,IAFA,IAAId,EAAImc,EACJ9O,EAASxM,EAAKsb,GAAOzb,MAAMP,KAAMmB,WAC9BtB,KAAKqN,EAASxM,EAAKb,GAAGe,KAAKZ,KAAMkN,GACxC,OAAOA,CACT,CACF,CCVe,SAAStK,GAAMi5G,EAAOtqC,GACnC,OAAO,WACL,KAAMsqC,EAAQ,EACZ,OAAOtqC,EAAKhxE,MAAMP,KAAMmB,UAE5B,CACF,CCLe,SAASwB,GAAOk5G,EAAOtqC,GACpC,IAAIj5D,EACJ,OAAO,WAKL,QAJMujG,EAAQ,IACZvjG,EAAOi5D,EAAKhxE,MAAMP,KAAMmB,YAEtB06G,GAAS,IAAGtqC,EAAO,MAChBj5D,CACT,CACF,CCNA,SAAe,GAAQ3V,GAAQ,GCDhB,SAASk8G,GAAQ79G,EAAKooE,EAAWr/D,GAC9Cq/D,EAAYp0D,GAAGo0D,EAAWr/D,GAE1B,IADA,IAAuB1I,EAAnB63G,EAAQj4G,GAAKD,GACRnB,EAAI,EAAGc,EAASu4G,EAAMv4G,OAAQd,EAAIc,EAAQd,IAEjD,GAAIupE,EAAUpoE,EADdK,EAAM63G,EAAMr5G,IACYwB,EAAKL,GAAM,OAAOK,CAE9C,CCPe,SAASy9G,GAA2Bj1F,GACjD,OAAO,SAAS5Z,EAAOm5D,EAAWr/D,GAChCq/D,EAAYp0D,GAAGo0D,EAAWr/D,GAG1B,IAFA,IAAIpJ,EAAS,GAAUsP,GACnBnP,EAAQ+oB,EAAM,EAAI,EAAIlpB,EAAS,EAC5BG,GAAS,GAAKA,EAAQH,EAAQG,GAAS+oB,EAC5C,GAAIu/C,EAAUn5D,EAAMnP,GAAQA,EAAOmP,GAAQ,OAAOnP,EAEpD,OAAQ,CACV,CACF,CCXA,SAAeg+G,GAA2B,GCA1C,GAAeA,IAA4B,GCE5B,SAASC,GAAY9uG,EAAOjP,EAAKyI,EAAUM,GAIxD,IAFA,IAAIrC,GADJ+B,EAAWuL,GAAGvL,EAAUM,EAAS,IACZ/I,GACjBg+G,EAAM,EAAGC,EAAO,GAAUhvG,GACvB+uG,EAAMC,GAAM,CACjB,IAAIh1F,EAAM/d,KAAKie,OAAO60F,EAAMC,GAAQ,GAChCx1G,EAASwG,EAAMga,IAAQviB,EAAOs3G,EAAM/0F,EAAM,EAAQg1F,EAAOh1F,CAC/D,CACA,OAAO+0F,CACT,CCTe,SAASE,GAAkBr1F,EAAKs1F,EAAeJ,GAC5D,OAAO,SAAS9uG,EAAOw2E,EAAMm3B,GAC3B,IAAI/9G,EAAI,EAAGc,EAAS,GAAUsP,GAC9B,GAAkB,iBAAP2tG,EACL/zF,EAAM,EACRhqB,EAAI+9G,GAAO,EAAIA,EAAM1xG,KAAKC,IAAIyxG,EAAMj9G,EAAQd,GAE5Cc,EAASi9G,GAAO,EAAI1xG,KAAKiE,IAAIytG,EAAM,EAAGj9G,GAAUi9G,EAAMj9G,EAAS,OAE5D,GAAIo+G,GAAenB,GAAOj9G,EAE/B,OAAOsP,EADP2tG,EAAMmB,EAAY9uG,EAAOw2E,MACHA,EAAOm3B,GAAO,EAEtC,GAAIn3B,GAASA,EAEX,OADAm3B,EAAMuB,EAAc7+G,EAAMM,KAAKqP,EAAOpQ,EAAGc,GAAS,KACpC,EAAIi9G,EAAM/9G,GAAK,EAE/B,IAAK+9G,EAAM/zF,EAAM,EAAIhqB,EAAIc,EAAS,EAAGi9G,GAAO,GAAKA,EAAMj9G,EAAQi9G,GAAO/zF,EACpE,GAAI5Z,EAAM2tG,KAASn3B,EAAM,OAAOm3B,EAElC,OAAQ,CACV,CACF,CCnBA,SAAesB,GAAkB,EAAGvnG,GAAWonG,ICH/C,GAAeG,IAAmB,EAAGtnG,ICAtB,SAAShE,GAAK5S,EAAKooE,EAAWr/D,GAC3C,IACI1I,GADY,GAAYL,GAAO2W,GAAYknG,IAC3B79G,EAAKooE,EAAWr/D,GACpC,QAAY,IAAR1I,IAA2B,IAATA,EAAY,OAAOL,EAAIK,EAC/C,CCJe,SAASyQ,GAAU9Q,EAAK8L,GACrC,OAAO8G,GAAK5S,EAAKuU,GAAQzI,GAC3B,CCCe,SAASvH,GAAKvE,EAAKyI,EAAUM,GAE1C,IAAIlK,EAAGc,EACP,GAFA8I,EAAW2xG,GAAW3xG,EAAUM,GAE5B,GAAY/I,GACd,IAAKnB,EAAI,EAAGc,EAASK,EAAIL,OAAQd,EAAIc,EAAQd,IAC3C4J,EAASzI,EAAInB,GAAIA,EAAGmB,OAEjB,CACL,IAAIk4G,EAAQj4G,GAAKD,GACjB,IAAKnB,EAAI,EAAGc,EAASu4G,EAAMv4G,OAAQd,EAAIc,EAAQd,IAC7C4J,EAASzI,EAAIk4G,EAAMr5G,IAAKq5G,EAAMr5G,GAAImB,EAEtC,CACA,OAAOA,CACT,CCjBe,SAAS8D,GAAI9D,EAAKyI,EAAUM,GACzCN,EAAWuL,GAAGvL,EAAUM,GAIxB,IAHA,IAAImvG,GAAS,GAAYl4G,IAAQC,GAAKD,GAClCL,GAAUu4G,GAASl4G,GAAKL,OACxB86G,EAAUr7G,MAAMO,GACXG,EAAQ,EAAGA,EAAQH,EAAQG,IAAS,CAC3C,IAAI46G,EAAaxC,EAAQA,EAAMp4G,GAASA,EACxC26G,EAAQ36G,GAAS2I,EAASzI,EAAI06G,GAAaA,EAAY16G,EACzD,CACA,OAAOy6G,CACT,CCVe,SAAS2D,GAAav1F,GAGnC,IAAIw1F,EAAU,SAASr+G,EAAKyI,EAAU6O,EAAMzB,GAC1C,IAAIqiG,GAAS,GAAYl4G,IAAQC,GAAKD,GAClCL,GAAUu4G,GAASl4G,GAAKL,OACxBG,EAAQ+oB,EAAM,EAAI,EAAIlpB,EAAS,EAKnC,IAJKkW,IACHyB,EAAOtX,EAAIk4G,EAAQA,EAAMp4G,GAASA,GAClCA,GAAS+oB,GAEJ/oB,GAAS,GAAKA,EAAQH,EAAQG,GAAS+oB,EAAK,CACjD,IAAI6xF,EAAaxC,EAAQA,EAAMp4G,GAASA,EACxCwX,EAAO7O,EAAS6O,EAAMtX,EAAI06G,GAAaA,EAAY16G,EACrD,CACA,OAAOsX,CACT,EAEA,OAAO,SAAStX,EAAKyI,EAAU6O,EAAMvO,GACnC,IAAI8M,EAAU1V,UAAUR,QAAU,EAClC,OAAO0+G,EAAQr+G,EAAKo6G,GAAW3xG,EAAUM,EAAS,GAAIuO,EAAMzB,EAC9D,CACF,CCvBA,SAAeuoG,GAAa,GCD5B,GAAeA,IAAc,GCCd,SAASnpG,GAAOjV,EAAKooE,EAAWr/D,GAC7C,IAAI0xG,EAAU,GAKd,OAJAryC,EAAYp0D,GAAGo0D,EAAWr/D,GAC1BxE,GAAKvE,GAAK,SAAS0G,EAAO5G,EAAOsiC,GAC3BgmC,EAAU1hE,EAAO5G,EAAOsiC,IAAOq4E,EAAQ92G,KAAK+C,EAClD,IACO+zG,CACT,CCNe,SAAStlG,GAAOnV,EAAKooE,EAAWr/D,GAC7C,OAAOkM,GAAOjV,EAAK29G,GAAO3pG,GAAGo0D,IAAar/D,EAC5C,CCFe,SAASqM,GAAMpV,EAAKooE,EAAWr/D,GAC5Cq/D,EAAYp0D,GAAGo0D,EAAWr/D,GAG1B,IAFA,IAAImvG,GAAS,GAAYl4G,IAAQC,GAAKD,GAClCL,GAAUu4G,GAASl4G,GAAKL,OACnBG,EAAQ,EAAGA,EAAQH,EAAQG,IAAS,CAC3C,IAAI46G,EAAaxC,EAAQA,EAAMp4G,GAASA,EACxC,IAAKsoE,EAAUpoE,EAAI06G,GAAaA,EAAY16G,GAAM,OAAO,CAC3D,CACA,OAAO,CACT,CCTe,SAASuQ,GAAKvQ,EAAKooE,EAAWr/D,GAC3Cq/D,EAAYp0D,GAAGo0D,EAAWr/D,GAG1B,IAFA,IAAImvG,GAAS,GAAYl4G,IAAQC,GAAKD,GAClCL,GAAUu4G,GAASl4G,GAAKL,OACnBG,EAAQ,EAAGA,EAAQH,EAAQG,IAAS,CAC3C,IAAI46G,EAAaxC,EAAQA,EAAMp4G,GAASA,EACxC,GAAIsoE,EAAUpoE,EAAI06G,GAAaA,EAAY16G,GAAM,OAAO,CAC1D,CACA,OAAO,CACT,CCTe,SAAS0D,GAAS1D,EAAKylF,EAAM/Y,EAAW4xC,GAGrD,OAFK,GAAYt+G,KAAMA,EAAMoR,GAAOpR,KACZ,iBAAb0sE,GAAyB4xC,KAAO5xC,EAAY,GAChD7oE,GAAQ7D,EAAKylF,EAAM/Y,IAAc,CAC1C,CCFA,SAAe8pC,GAAc,SAASx2G,EAAK2a,EAAMjb,GAC/C,IAAI6+G,EAAahuC,EAQjB,OAPI,EAAW51D,GACb41D,EAAO51D,GAEPA,EAAO,GAAOA,GACd4jG,EAAc5jG,EAAKrb,MAAM,GAAI,GAC7Bqb,EAAOA,EAAKA,EAAKhb,OAAS,IAErBmE,GAAI9D,GAAK,SAAS+I,GACvB,IAAIkF,EAASsiE,EACb,IAAKtiE,EAAQ,CAIX,GAHIswG,GAAeA,EAAY5+G,SAC7BoJ,EAAUkxG,GAAQlxG,EAASw1G,IAEd,MAAXx1G,EAAiB,OACrBkF,EAASlF,EAAQ4R,EACnB,CACA,OAAiB,MAAV1M,EAAiBA,EAASA,EAAO1O,MAAMwJ,EAASrJ,EACzD,GACF,ICvBe,SAASuR,GAAMjR,EAAKK,GACjC,OAAOyD,GAAI9D,EAAKs7E,GAASj7E,GAC3B,CCDe,SAASqC,GAAM1C,EAAK8L,GACjC,OAAOmJ,GAAOjV,EAAKuU,GAAQzI,GAC7B,CCDe,SAASX,GAAInL,EAAKyI,EAAUM,GACzC,IACIrC,EAAO83G,EADPtyG,GAAU9F,IAAUq4G,GAAgBr4G,IAExC,GAAgB,MAAZqC,GAAwC,iBAAZA,GAAyC,iBAAVzI,EAAI,IAAyB,MAAPA,EAEnF,IAAK,IAAInB,EAAI,EAAGc,GADhBK,EAAM,GAAYA,GAAOA,EAAMoR,GAAOpR,IACTL,OAAQd,EAAIc,EAAQd,IAElC,OADb6H,EAAQ1G,EAAInB,KACS6H,EAAQwF,IAC3BA,EAASxF,QAIb+B,EAAWuL,GAAGvL,EAAUM,GACxBxE,GAAKvE,GAAK,SAASyqD,EAAG3qD,EAAOsiC,KAC3Bo8E,EAAW/1G,EAASgiD,EAAG3qD,EAAOsiC,IACfq8E,GAAiBD,KAAcp4G,KAAY8F,KAAY9F,OACpE8F,EAASu+C,EACTg0D,EAAeD,EAEnB,IAEF,OAAOtyG,CACT,CCtBe,SAASiD,GAAInP,EAAKyI,EAAUM,GACzC,IACIrC,EAAO83G,EADPtyG,EAAS9F,IAAUq4G,EAAer4G,IAEtC,GAAgB,MAAZqC,GAAwC,iBAAZA,GAAyC,iBAAVzI,EAAI,IAAyB,MAAPA,EAEnF,IAAK,IAAInB,EAAI,EAAGc,GADhBK,EAAM,GAAYA,GAAOA,EAAMoR,GAAOpR,IACTL,OAAQd,EAAIc,EAAQd,IAElC,OADb6H,EAAQ1G,EAAInB,KACS6H,EAAQwF,IAC3BA,EAASxF,QAIb+B,EAAWuL,GAAGvL,EAAUM,GACxBxE,GAAKvE,GAAK,SAASyqD,EAAG3qD,EAAOsiC,KAC3Bo8E,EAAW/1G,EAASgiD,EAAG3qD,EAAOsiC,IACfq8E,GAAiBD,IAAap4G,KAAY8F,IAAW9F,OAClE8F,EAASu+C,EACTg0D,EAAeD,EAEnB,IAEF,OAAOtyG,CACT,CCnBA,IAAIwyG,GAAc,mEACH,SAASjpG,GAAQzV,GAC9B,OAAKA,EACDE,EAAQF,GAAaV,EAAMM,KAAKI,GAChCkQ,EAASlQ,GAEJA,EAAIqT,MAAMqrG,IAEf,GAAY1+G,GAAa8D,GAAI9D,EAAKm6G,IAC/B/oG,GAAOpR,GAPG,EAQnB,CCTe,SAASsW,GAAOtW,EAAK8lB,EAAGw4F,GACrC,GAAS,MAALx4F,GAAaw4F,EAEf,OADK,GAAYt+G,KAAMA,EAAMoR,GAAOpR,IAC7BA,EAAI00G,GAAO10G,EAAIL,OAAS,IAEjC,IAAI2W,EAASb,GAAQzV,GACjBL,EAAS,GAAU2W,GACvBwP,EAAI5a,KAAKC,IAAID,KAAKiE,IAAI2W,EAAGnmB,GAAS,GAElC,IADA,IAAIqW,EAAOrW,EAAS,EACXG,EAAQ,EAAGA,EAAQgmB,EAAGhmB,IAAS,CACtC,IAAI6+G,EAAOjK,GAAO50G,EAAOkW,GACrB4oG,EAAOtoG,EAAOxW,GAClBwW,EAAOxW,GAASwW,EAAOqoG,GACvBroG,EAAOqoG,GAAQC,CACjB,CACA,OAAOtoG,EAAOhX,MAAM,EAAGwmB,EACzB,CCvBe,SAAS3P,GAAQnW,GAC9B,OAAOsW,GAAOtW,EAAKoG,IACrB,CCAe,SAAS4K,GAAOhR,EAAKyI,EAAUM,GAC5C,IAAIjJ,EAAQ,EAEZ,OADA2I,EAAWuL,GAAGvL,EAAUM,GACjBkI,GAAMnN,GAAI9D,GAAK,SAAS0G,EAAOrG,EAAK+hC,GACzC,MAAO,CACL17B,MAAOA,EACP5G,MAAOA,IACP++G,SAAUp2G,EAAS/B,EAAOrG,EAAK+hC,GAEnC,IAAGryB,MAAK,SAAS2e,EAAMC,GACrB,IAAI/vB,EAAI8vB,EAAKmwF,SACTr6F,EAAImK,EAAMkwF,SACd,GAAIjgH,IAAM4lB,EAAG,CACX,GAAI5lB,EAAI4lB,QAAW,IAAN5lB,EAAc,OAAO,EAClC,GAAIA,EAAI4lB,QAAW,IAANA,EAAc,OAAQ,CACrC,CACA,OAAOkK,EAAK5uB,MAAQ6uB,EAAM7uB,KAC5B,IAAI,QACN,CCnBe,SAAS+hC,GAAMy7B,EAAU/mD,GACtC,OAAO,SAASvW,EAAKyI,EAAUM,GAC7B,IAAImD,EAASqK,EAAY,CAAC,GAAI,IAAM,CAAC,EAMrC,OALA9N,EAAWuL,GAAGvL,EAAUM,GACxBxE,GAAKvE,GAAK,SAAS0G,EAAO5G,GACxB,IAAIO,EAAMoI,EAAS/B,EAAO5G,EAAOE,GACjCs9D,EAASpxD,EAAQxF,EAAOrG,EAC1B,IACO6L,CACT,CACF,CCTA,SAAe21B,IAAM,SAAS31B,EAAQxF,EAAOrG,GACvCoM,EAAIP,EAAQ7L,GAAM6L,EAAO7L,GAAKsD,KAAK+C,GAAawF,EAAO7L,GAAO,CAACqG,EACrE,ICHA,GAAem7B,IAAM,SAAS31B,EAAQxF,EAAOrG,GAC3C6L,EAAO7L,GAAOqG,CAChB,ICAA,GAAem7B,IAAM,SAAS31B,EAAQxF,EAAOrG,GACvCoM,EAAIP,EAAQ7L,GAAM6L,EAAO7L,KAAa6L,EAAO7L,GAAO,CAC1D,ICJA,GAAewhC,IAAM,SAAS31B,EAAQxF,EAAO2rE,GAC3CnmE,EAAOmmE,EAAO,EAAI,GAAG1uE,KAAK+C,EAC5B,IAAG,GCFY,SAASgP,GAAK1V,GAC3B,OAAW,MAAPA,EAAoB,EACjB,GAAYA,GAAOA,EAAIL,OAASM,GAAKD,GAAKL,MACnD,CCLe,SAASm/G,GAASp4G,EAAOrG,EAAKL,GAC3C,OAAOK,KAAOL,CAChB,CCIA,SAAew2G,GAAc,SAASx2G,EAAKC,GACzC,IAAIiM,EAAS,CAAC,EAAGzD,EAAWxI,EAAK,GACjC,GAAW,MAAPD,EAAa,OAAOkM,EACpB,EAAWzD,IACTxI,EAAKN,OAAS,IAAG8I,EAAW2xG,GAAW3xG,EAAUxI,EAAK,KAC1DA,EAAO+4G,GAAQh5G,KAEfyI,EAAWq2G,GACX7+G,EAAOsqF,GAAQtqF,GAAM,GAAO,GAC5BD,EAAMgoB,OAAOhoB,IAEf,IAAK,IAAInB,EAAI,EAAGc,EAASM,EAAKN,OAAQd,EAAIc,EAAQd,IAAK,CACrD,IAAIwB,EAAMJ,EAAKpB,GACX6H,EAAQ1G,EAAIK,GACZoI,EAAS/B,EAAOrG,EAAKL,KAAMkM,EAAO7L,GAAOqG,EAC/C,CACA,OAAOwF,CACT,IChBA,GAAesqG,GAAc,SAASx2G,EAAKC,GACzC,IAAwB8I,EAApBN,EAAWxI,EAAK,GAUpB,OATI,EAAWwI,IACbA,EAAWk1G,GAAOl1G,GACdxI,EAAKN,OAAS,IAAGoJ,EAAU9I,EAAK,MAEpCA,EAAO6D,GAAIymF,GAAQtqF,GAAM,GAAO,GAAQqyB,QACxC7pB,EAAW,SAAS/B,EAAOrG,GACzB,OAAQqD,GAASzD,EAAMI,EACzB,GAEK0E,GAAK/E,EAAKyI,EAAUM,EAC7B,IChBe,SAAS8M,GAAQ5G,EAAO6W,EAAGw4F,GACxC,OAAOh/G,EAAMM,KAAKqP,EAAO,EAAG/D,KAAKC,IAAI,EAAG8D,EAAMtP,QAAe,MAALmmB,GAAaw4F,EAAQ,EAAIx4F,IACnF,CCHe,SAASjV,GAAM5B,EAAO6W,EAAGw4F,GACtC,OAAa,MAATrvG,GAAiBA,EAAMtP,OAAS,EAAe,MAALmmB,GAAaw4F,OAAQ,EAAS,GACnE,MAALx4F,GAAaw4F,EAAcrvG,EAAM,GAC9B4G,GAAQ5G,EAAOA,EAAMtP,OAASmmB,EACvC,CCHe,SAAShQ,GAAK7G,EAAO6W,EAAGw4F,GACrC,OAAOh/G,EAAMM,KAAKqP,EAAY,MAAL6W,GAAaw4F,EAAQ,EAAIx4F,EACpD,CCHe,SAAS9P,GAAK/G,EAAO6W,EAAGw4F,GACrC,OAAa,MAATrvG,GAAiBA,EAAMtP,OAAS,EAAe,MAALmmB,GAAaw4F,OAAQ,EAAS,GACnE,MAALx4F,GAAaw4F,EAAcrvG,EAAMA,EAAMtP,OAAS,GAC7CmW,GAAK7G,EAAO/D,KAAKC,IAAI,EAAG8D,EAAMtP,OAASmmB,GAChD,CCLe,SAASi5F,GAAQ9vG,GAC9B,OAAOgG,GAAOhG,EAAOu1E,QACvB,CCDe,SAAS,GAAQv1E,EAAOwoE,GACrC,OAAO,GAASxoE,EAAOwoE,GAAO,EAChC,CCCA,SAAe++B,GAAc,SAASvnG,EAAO6G,GAE3C,OADAA,EAAOy0E,GAAQz0E,GAAM,GAAM,GACpBb,GAAOhG,GAAO,SAASvI,GAC5B,OAAQhD,GAASoS,EAAMpP,EACzB,GACF,ICRA,GAAe8vG,GAAc,SAASvnG,EAAO+vG,GAC3C,OAAO9oG,GAAWjH,EAAO+vG,EAC3B,ICIe,SAASC,GAAKhwG,EAAOiwG,EAAUz2G,EAAUM,GACjD2tG,EAAUwI,KACbn2G,EAAUN,EACVA,EAAWy2G,EACXA,GAAW,GAEG,MAAZz2G,IAAkBA,EAAWuL,GAAGvL,EAAUM,IAG9C,IAFA,IAAImD,EAAS,GACTizG,EAAO,GACFtgH,EAAI,EAAGc,EAAS,GAAUsP,GAAQpQ,EAAIc,EAAQd,IAAK,CAC1D,IAAI6H,EAAQuI,EAAMpQ,GACd2/G,EAAW/1G,EAAWA,EAAS/B,EAAO7H,EAAGoQ,GAASvI,EAClDw4G,IAAaz2G,GACV5J,GAAKsgH,IAASX,GAAUtyG,EAAOvI,KAAK+C,GACzCy4G,EAAOX,GACE/1G,EACJ/E,GAASy7G,EAAMX,KAClBW,EAAKx7G,KAAK66G,GACVtyG,EAAOvI,KAAK+C,IAEJhD,GAASwI,EAAQxF,IAC3BwF,EAAOvI,KAAK+C,EAEhB,CACA,OAAOwF,CACT,CC7BA,SAAesqG,GAAc,SAAS4I,GACpC,OAAOH,GAAK10B,GAAQ60B,GAAQ,GAAM,GACpC,ICHe,SAASC,GAAapwG,GAGnC,IAFA,IAAI/C,EAAS,GACTozG,EAAan/G,UAAUR,OAClBd,EAAI,EAAGc,EAAS,GAAUsP,GAAQpQ,EAAIc,EAAQd,IAAK,CAC1D,IAAI4mF,EAAOx2E,EAAMpQ,GACjB,IAAI6E,GAASwI,EAAQu5E,GAArB,CACA,IAAIh7E,EACJ,IAAKA,EAAI,EAAGA,EAAI60G,GACT57G,GAASvD,UAAUsK,GAAIg7E,GADFh7E,KAGxBA,IAAM60G,GAAYpzG,EAAOvI,KAAK8hF,EALE,CAMtC,CACA,OAAOv5E,CACT,CCZe,SAASqzG,GAAMtwG,GAI5B,IAHA,IAAItP,EAAUsP,GAAS9D,GAAI8D,EAAO,IAAWtP,QAAW,EACpDuM,EAAS9M,MAAMO,GAEVG,EAAQ,EAAGA,EAAQH,EAAQG,IAClCoM,EAAOpM,GAASmR,GAAMhC,EAAOnP,GAE/B,OAAOoM,CACT,CCTA,SAAesqG,EAAc+I,ICAd,SAAS79G,GAAO0gC,EAAMhxB,GAEnC,IADA,IAAIlF,EAAS,CAAC,EACLrN,EAAI,EAAGc,EAAS,GAAUyiC,GAAOvjC,EAAIc,EAAQd,IAChDuS,EACFlF,EAAOk2B,EAAKvjC,IAAMuS,EAAOvS,GAEzBqN,EAAOk2B,EAAKvjC,GAAG,IAAMujC,EAAKvjC,GAAG,GAGjC,OAAOqN,CACT,CCZe,SAASiX,GAAMnI,EAAO2B,EAAMo2F,GAC7B,MAARp2F,IACFA,EAAO3B,GAAS,EAChBA,EAAQ,GAEL+3F,IACHA,EAAOp2F,EAAO3B,GAAS,EAAI,GAM7B,IAHA,IAAIrb,EAASuL,KAAKC,IAAID,KAAKge,MAAMvM,EAAO3B,GAAS+3F,GAAO,GACpD5vF,EAAQ/jB,MAAMO,GAETi9G,EAAM,EAAGA,EAAMj9G,EAAQi9G,IAAO5hG,GAAS+3F,EAC9C5vF,EAAMy5F,GAAO5hG,EAGf,OAAOmI,CACT,CChBe,SAASmO,GAAMriB,EAAOhF,GACnC,GAAa,MAATA,GAAiBA,EAAQ,EAAG,MAAO,GAGvC,IAFA,IAAIiC,EAAS,GACTrN,EAAI,EAAGc,EAASsP,EAAMtP,OACnBd,EAAIc,GACTuM,EAAOvI,KAAKrE,EAAMM,KAAKqP,EAAOpQ,EAAGA,GAAKoL,IAExC,OAAOiC,CACT,CCTe,SAASszG,GAAYnrG,EAAUrU,GAC5C,OAAOqU,EAAS6nG,OAASj9G,GAAEe,GAAKqW,QAAUrW,CAC5C,CCEe,SAASmX,GAAMnX,GAS5B,OARAuE,GAAK8S,GAAUrX,IAAM,SAAS2I,GAC5B,IAAI4nE,EAAOtxE,GAAE0J,GAAQ3I,EAAI2I,GACzB1J,GAAEI,UAAUsJ,GAAQ,WAClB,IAAIjJ,EAAO,CAACV,KAAKm5G,UAEjB,OADAx0G,EAAKpE,MAAMG,EAAMS,WACVq/G,GAAYxgH,KAAMuxE,EAAKhxE,MAAMN,GAAGS,GACzC,CACF,IACOT,EACT,CCXAsF,GAAK,CAAC,MAAO,OAAQ,UAAW,QAAS,OAAQ,SAAU,YAAY,SAASoE,GAC9E,IAAIsF,EAASqnG,EAAW3sG,GACxB1J,GAAEI,UAAUsJ,GAAQ,WAClB,IAAI3I,EAAMhB,KAAKm5G,SAOf,OANW,MAAPn4G,IACFiO,EAAO1O,MAAMS,EAAKG,WACJ,UAATwI,GAA6B,WAATA,GAAqC,IAAf3I,EAAIL,eAC1CK,EAAI,IAGRw/G,GAAYxgH,KAAMgB,EAC3B,CACF,IAGAuE,GAAK,CAAC,SAAU,OAAQ,UAAU,SAASoE,GACzC,IAAIsF,EAASqnG,EAAW3sG,GACxB1J,GAAEI,UAAUsJ,GAAQ,WAClB,IAAI3I,EAAMhB,KAAKm5G,SAEf,OADW,MAAPn4G,IAAaA,EAAMiO,EAAO1O,MAAMS,EAAKG,YAClCq/G,GAAYxgH,KAAMgB,EAC3B,CACF,IAEA,YCRA,IAAI,GAAImX,GAAM,GAEd,GAAElY,EAAI,GAEN,W,GCzBIwgH,EAA2B,CAAC,EAGhC,SAAStK,EAAoBuK,GAE5B,IAAIC,EAAeF,EAAyBC,GAC5C,QAAqBr7G,IAAjBs7G,EACH,OAAOA,EAAanhH,QAGrB,IAAIC,EAASghH,EAAyBC,GAAY,CAGjDlhH,QAAS,CAAC,GAOX,OAHAohH,EAAoBF,GAAU9/G,KAAKnB,EAAOD,QAASC,EAAQA,EAAOD,QAAS22G,GAGpE12G,EAAOD,OACf,CCrBA22G,EAAoBrvF,EAAKrnB,IACxB,IAAIohH,EAASphH,GAAUA,EAAOqhH,WAC7B,IAAOrhH,EAAO,WACd,IAAM,EAEP,OADA02G,EAAoB53E,EAAEsiF,EAAQ,CAAEjhH,EAAGihH,IAC5BA,CAAM,ECLd1K,EAAoB53E,EAAI,CAAC/+B,EAASuhH,KACjC,IAAI,IAAI1/G,KAAO0/G,EACX5K,EAAoBhgF,EAAE4qF,EAAY1/G,KAAS80G,EAAoBhgF,EAAE32B,EAAS6B,IAC5E2nB,OAAOwpF,eAAehzG,EAAS6B,EAAK,CAAE2/G,YAAY,EAAMr9G,IAAKo9G,EAAW1/G,IAE1E,ECND80G,EAAoBttG,EAAI,WACvB,GAA0B,iBAAf/I,WAAyB,OAAOA,WAC3C,IACC,OAAOE,MAAQ,IAAIq2G,SAAS,cAAb,EAGhB,CAFE,MAAOnrG,GACR,GAAsB,iBAAXnL,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxBo2G,EAAoBhgF,EAAI,CAACn1B,EAAKylB,IAAUuC,OAAO3oB,UAAUqmB,eAAe9lB,KAAKI,EAAKylB,GCClF0vF,EAAoBvwF,EAAKpmB,IACH,oBAAXqT,QAA0BA,OAAOouG,aAC1Cj4F,OAAOwpF,eAAehzG,EAASqT,OAAOouG,YAAa,CAAEv5G,MAAO,WAE7DshB,OAAOwpF,eAAehzG,EAAS,aAAc,CAAEkI,OAAO,GAAO,E,uHCM/C,SAASwuE,EAAKgrC,G,IAAgC,wDACnD,IAAAC,EAAQD,EAAQ,IAExB,OAAOC,EAAIxrG,QAAO,SAACyrG,EAAKC,EAAKxhH,GAC3B,IAAIyhH,EAAQC,EAAO1hH,EAAI,GACjBmX,EAAOmqG,EAAIthH,EAAI,GAWrB,OATIO,MAAMc,QAAQogH,GAChBA,EAAQA,EAAM7xD,KAAK,IACVz4C,GAA2B,MAAnBA,EAAK1W,OAAO,GAE7B8gH,EAAMA,EAAI9gH,MAAM,GAAI,GAEpBghH,GAAQ,IAAA9zG,QAAO8zG,GAGVF,EAAME,EAAQD,CACvB,GACF,CCydA,QA3E6B,CAC3Bn9B,YAAa,OACbmB,WAAY,GACZ1oE,MAAO,GACP6kG,aAAa,EACbC,iBAAap8G,EACbq8G,gBAAgB,EAChBxqB,aAAa,EACb0G,qBAAqB,EACrB+jB,YAAY,EACZ7uF,OAAQ,QACRqT,MAAO,OACPy7E,IAAK,CAAC,UAAW,SACjBC,QAAS,GACTC,aAAc,kDACdC,UAAW,GACXC,eAAgB,cAChB9kB,aAAa,EACbjK,aAAa,EACbgvB,mBAAmB,EACnBC,eAAgB,YAChBC,YAAa,MACbC,UAAW,MACXC,oBAAoB,EACpBC,UAAU,EACVlO,WAAW,EACXmO,mBAAmB,EACnBh1B,SAAU,CAAC,EACXE,QAAS,CAAC,EACV+0B,kBAAkB,EAClBC,eAAe,EACfC,aAAa,EACblrB,WAAY,GACZmrB,SAAU,qFACVC,MAAO,CACLxlG,MACE,qLACF4iD,KAAM,kMACN6iD,KAAM,4GACNC,MAAO,uFACPC,OACE,oJACF/qF,KAAM,6LACNgrF,QACE,yIACFC,QACE,+HACFC,IAAK,oTACLC,OACE,ooBAEJC,KAAM,CAAC,EACP96G,YAAa,CAAC,EACd+6G,aAAc,CAAC,EACf5gC,OAAQ,CAAC,EACT6gC,aAAc,CAAC,EACfC,eAAgB,CAAC,EACjBC,eAAgB,CAAC,EACjBC,cAAe,CAAC,EAChB92B,MAAO,CAAC,EACR+2B,YAAa,CAAC,EACdnxB,OAAQ,CAAC,EACTt6B,SAAU,CAAC,EACX0rD,YAAa,CAAC,EACdC,gBAAiB,CAAC,EAClBC,cAAe,CAAC,EAChBC,aAAc,CAAC,EACfC,aAAc,CAAC,EACfC,aAAc,CAAC,EACf52B,aAAc,OACd62B,kBAAkB,EAClBC,aAAa,EACbC,UAAU,G,6gBC/eZ,2B,8CAAuC,QAAP,OAAO,EAAvC,CAAgC,M,QAEhC,yB,8CAkCA,QAlCsC,OACpC,YAAAC,eAAA,SAAe9+B,GAAf,WACE,OAAOtlF,KAAKiW,QAAO,SAAA7N,GAAK,SAAKi8G,aAAaj8G,KAAOk9E,CAAzB,IAAoC,EAC9D,EAEA,YAAAg/B,aAAA,SAAah/B,EAAsBz7E,GAAnC,WACQ8G,IAAS,IAAAzP,SAAQokF,GAAaA,EAAY,CAACA,IAC9CrvE,QAAO,SAAA8oE,GAAK,OAAC,EAAKwlC,aAAaxlC,EAAnB,IACZj6E,KAAI,SAAAwgF,GAAa,WAAIk/B,EAAW,CAAEl/B,UAAS,GAA1B,IAA+B,GACnD,OAAOtlF,KAAK2E,KAAKgM,EAAO9G,EAC1B,EAEA,YAAAw6G,aAAA,SAAal/G,GACX,OAAOA,EAAMxB,IAAI,YACnB,EAEA,YAAA4gH,aAAA,SAAaj/B,GACX,IAAMngF,EAAQnF,KAAKokH,eAAe9+B,GAClC,OAAOngF,GAASnF,KAAK0E,SAASS,EAChC,EAEA,YAAAs/G,cAAA,WACE,IAAMztG,EAAOhX,KAAKgX,OAClB,OAAOA,EAAOhX,KAAKqkH,aAAartG,QAAQ3R,CAC1C,EAEA,YAAAq/G,cAAA,sBACE,OAAO1kH,KAAK8E,KAAI,SAAAsD,GAAK,SAAKi8G,aAAaj8G,EAAlB,IAAsB6N,QAAO,SAAApW,GAAK,OAAAA,CAAA,GACzD,EAEA,YAAA8kH,gBAAA,SAAgBr/B,EAAoCz7E,GAApD,WACQgH,IAAY,IAAA3P,SAAQokF,GAAaA,EAAY,CAACA,IAAYxgF,KAAI,SAAAi6E,GAAK,SAAKqlC,eAAerlC,EAApB,IACzE,OAAO/+E,KAAKoF,OAAOyL,EAAUhH,EAC/B,EACF,EAlCA,CAAsC,M,u8BC+BtC,aASE,WAAYq5E,EAAiB0hC,EAAoB99G,GALjD,KAAAod,IAAa,GAMXlkB,KAAK6kH,IAAM3hC,EACXljF,KAAK8kH,MAAQF,EACb,IAAMj7G,EAAQ3J,KAAK2J,KAAKiS,OAAO,GAAGwN,cAAgBppB,KAAK2J,KAAKrJ,MAAM,GAC5DykH,GAAa,IAAAn7B,aAAY1G,EAAGjrE,OAAOtO,IAA2Bu5E,EAAGjrE,OAAOjY,KAAK2J,MAAjCu5E,EAAGjrE,OAAOtO,GACtDq7G,GAAqB,IAAdD,EAAqB,CAAC,EAAIA,GAAa,CAAC,EACrDC,EAAI7gC,aAAejB,EAAGjrE,OAAOksE,cAAgB,IAExC,IAAAyF,aAAYm7B,IAAeA,IAC9BC,EAAIC,SAAW,GAGjBD,EAAI9hC,GAAKA,EACTljF,KAAKklH,SAAU,IAAA3Q,WAAUztG,GAAY,CAAC,EAAGk+G,EAC3C,CA2CF,OAzCE,sBAAW,iBAAE,C,IAAb,WACE,OAAOhlH,KAAK6kH,GACd,E,gCACA,sBAAW,qBAAM,C,IAAjB,WACE,OAAO7kH,KAAKklH,OACd,E,gCAGA,YAAArxG,OAAA,SAAOhK,GAAuD,EAC9D,YAAAs7G,SAAA,SAAS9jH,GAAiB,EAE1B,sBAAI,mBAAI,C,IAAR,WACE,OAAOrB,KAAK8kH,KACd,E,gCAEA,YAAAl+B,UAAA,SACEj9E,GAGA,OAAOA,EAAO3J,KAAKiY,OAAOtO,GAAQ3J,KAAKiY,MACzC,EAEA,YAAAmtG,UAAA,SAAUx7F,EAAa/f,QAAA,IAAAA,IAAAA,EAAA,IACrB7J,KAAKkjF,GAAGuC,WAAW,WAAIzlF,KAAK2J,KAAI,cAAMigB,GAAO/f,EAC/C,EAQA,YAAAw7G,WAAA,WACE,IAAMC,EAAOtlH,KAAK4mF,YAAYgL,SAE9B,GAAI0zB,EAAM,CACR,IAAMlxG,GAAK,IAAAw6E,WAAU02B,GAAQA,EAAO5wG,SAASwrB,cAAcolF,GAC3D,IAAKlxG,EAAI,OAAOpU,KAAKolH,UAAU,gCAC/BhxG,EAAGqQ,YAAYzkB,KAAK6T,S,CAExB,EACF,EAlEA,G,UAoEA,kBAQE,WACEqvE,EACA0hC,EACAxjH,EACAsI,EACA5C,EACA+C,QAAA,IAAAA,IAAAA,EAAA,IANF,MAQE,YAAMq5E,EAAI0hC,EAAY99G,IAAS,K,OAZjC,EAAAod,IAAa,GAkBb,EAAAqhG,SAAmB,EALjB,EAAKnkH,IAAMA,EACX,EAAKsI,OAASA,GACbG,EAAK27G,YAAc,EAAKC,e,CAC3B,CAuJF,OAxKU,OAuBR,YAAAN,SAAA,SAAS9jH,GAAiB,EAC1B,YAAAwS,OAAA,SAAOhK,GAAa,EAEpB,YAAA67G,eAAA,SAAehtG,GACb,IAAM1X,EAAW,CAAC,EACZK,EAAMrB,KAAK2lH,WAIjB,OAHItkH,IACFL,EAAIK,GAAOqX,GAAQ1Y,KAAK2rF,UAEnB3qF,CACT,EAEA,YAAA4kH,gBAAA,SAAgBltG,EAAgB8B,QAAhB,IAAA9B,IAAAA,EAAA,SAAgB,IAAA8B,IAAAA,EAAA,IACtB,IAAApZ,EAAyBoZ,EAAK,IAAzBqrG,EAAoBrrG,EAAK,SAAftU,EAAUsU,EAAK,MAChCnZ,EAAMrB,KAAK2lH,WACX97G,EAAY,CAAEtH,OAAQ,QACtByoF,EAAO5pF,GAAOpB,KAAKoB,IACrB8L,EAASwL,EAAKrX,GAElB,GAAqB,iBAAV6L,EACT,IACEA,EAAS0L,KAAK3L,MAAMC,E,CACpB,MAAOmlG,GACPryG,KAAKolH,UAAU,sBAAuB,CAAE9jF,MAAOp0B,G,CAYnD,OARAhH,GAASgH,GAAU89E,EAAK9kF,WAAMb,EAAWwE,GAErCg8G,EACF34G,GAAU24G,EAAS34G,EAAQrD,GAClBqD,IAAU,IAAAs2F,OAAMt2F,EAAOvM,SAChCqqF,EAAK9kF,MAAMgH,EAAQrD,GAGdqD,CACT,EAEA,YAAAxE,MAAA,SAAMmB,QAAA,IAAAA,IAAAA,EAAA,IACI,IAAAzI,EAAQpB,KAAI,IAEpB,OADAoB,GAAOA,EAAI8E,WAAMb,EAAWwE,GACrB7J,IACT,EAGA,YAAA2rF,OAAA,WACE,OAAO,KAAI3rF,KAAKoB,IAAIoC,QAAM,EAC5B,EAEA,YAAAsiH,UAAA,WAGE,OAAO9lH,KAAK2rF,SAASh2E,QAAO,SAACyrG,EAAUvhH,GAErC,OADAuhH,EAAIvhH,EAAE8D,IAAI9D,EAAEwN,cAAgBxN,EACrBuhH,CACT,GAAG,CAAC,EACN,EAEA,YAAAqE,aAAA,SAAa57G,QAAA,IAAAA,IAAAA,EAAA,IACL,MAAsB7J,KAApBoB,EAAG,MAAE8hF,EAAE,KAAEx5E,EAAM,SACvBtI,GACE8hF,GACA9hF,EACGqG,GAAG,OAAO,SAAC+J,EAAQutE,EAAQ5oD,GAAW,OAAA+sD,EAAGp/E,QAAQ4F,EAAOpF,IAAKkN,EAAG2kB,EAA1B,IACtC1uB,GAAG,UAAU,SAAC+J,EAAQutE,EAAQ5oD,GAAW,OAAA+sD,EAAGp/E,QAAQ4F,EAAOtE,OAAQoM,EAAG2kB,EAA7B,IACzC1uB,GAAG,UAAU,SAACu0B,EAAQ+iD,GAAW,OAAAmE,EAAGp/E,QAAQ4F,EAAOmwC,OAAQ7d,EAAGA,EAAEp2B,oBAAqBm5E,EAApD,IACjCt3E,GAAG,MAAOzH,KAAK+lH,gBAAiB/lH,MAErCA,KAAKkkB,IAAM,CAAC9iB,GAAK2D,OAAO8E,EAAKm8G,aAAe,KAE1Cn8G,EAAKk8C,WAAuB,IAAItwC,SAAQ,SAAC,G,IAAEwwG,EAAM,SAAEtzG,EAAK,QACxDszG,EAAOx+G,GAAG,OAAO,SAAC+E,EAASrH,EAAY6lF,EAAWnhF,GAChD,IACMyjD,EAAM,EAAH,CAAK36C,MAAOnG,GADL3C,GAAQmhF,GAExB,CAAC9H,EAAI9hF,GAAK0D,KAAI,SAAAohH,GAAM,OAAAA,EAAGpiH,QAAQ6O,EAAOxN,EAAOmoD,EAAzB,GACtB,GACF,GACF,EAEA,YAAA64D,SAAA,SAAShhH,EAAY0E,GAArB,gBAAqB,IAAAA,IAAAA,EAAA,IACX,IAAAq5E,EAAOljF,KAAI,GAEbkmH,GAAK,IAAAh1G,UAAS/L,GAASnF,KAAK2D,IAAIwB,GAASA,EACzCu7C,EAAK,WAET,OADAwlE,GAAM,EAAK9kH,IAAIgE,OAAO8gH,EAAIr8G,GACnBq8G,CACT,EAEA,OADCr8G,EAAK+D,SAAUs1E,SAAAA,EAAIp/E,QAAQ9D,KAAK0J,OAAO08G,aAAcF,EAAIxlE,EAAI72C,KACtDA,EAAKm7E,OAAStkC,GACxB,EAEA,YAAAqlE,gBAAA,SAAgBpzG,EAAYxN,EAAY6lF,EAAWnhF,GAC3C,IAAEq5E,EAAeljF,KAAb,GAAE0J,EAAW1J,KAAL,OACZ6C,EAAUgH,GAAQmhF,EACxB9H,GAAMx5E,EAAOtI,KAAO8hF,EAAGp/E,QAAQ4F,EAAOtI,IAAK,CAAEuR,MAAK,EAAExN,MAAK,EAAEtC,QAAO,IAClE7C,KAAKqmH,cACP,EAEA,YAAAhB,WAAA,SAAWiB,GAET,IAAMhB,EAAOtlH,KAAKiY,OAAO25E,SAEzB,GAAI0zB,EAAM,CACR,IAAMlxG,GAAK,IAAAw6E,WAAU02B,GAAQA,EAAO5wG,SAASwrB,cAAcolF,GAC3D,IAAKlxG,EAAI,OAAOpU,KAAKolH,UAAU,gCAE/BhxG,EAAGqQ,YAAYzkB,KAAK6T,OAAOyyG,G,CAE/B,EAEA,YAAAD,aAAA,WAAgB,EAEhB,YAAAE,UAAA,SAAU96F,QAAA,IAAAA,IAAAA,EAAA,IACR,IAGInhB,EAFEk8G,EADMxmH,KAAK2rF,SACFhrF,OAAS8qB,EAClBg7F,EAASzmH,KAAK8lH,YAGpB,GACEx7G,GAAK,IAAAkrG,UAASgR,SACPC,EAAOn8G,IAEhB,OAAOA,CACT,EAEA,YAAAo8G,YAAA,SAAYvhH,EAAoBwN,GAAhC,WACExN,EAAMsC,GAAG,OAAO,SAAC+J,EAAGutE,EAAG5oD,GAAM,SAAK+sD,GAAGp/E,QAAQ6O,EAAOnB,EAAG2kB,EAA1B,GAC/B,EAEA,YAAAwwF,eAAA,SAAexhH,EAAoBwN,GAAnC,WACExN,EAAMsC,GAAG,UAAU,SAAC+J,EAAGutE,EAAG5oD,GAAM,SAAK+sD,GAAGp/E,QAAQ6O,EAAOnB,EAAG2kB,EAA1B,GAClC,EAEA,YAAAywF,eAAA,SAAezhH,EAAoBwN,GAAnC,WACExN,EAAMsC,GAAG,UAAU,SAACu0B,EAAG+iD,GAAM,SAAKmE,GAAGp/E,QAAQ6O,EAAOqpB,EAAGA,EAAEp2B,oBAAqBm5E,EAAjD,GAC/B,EAEA,YAAA8nC,UAAA,W,MACE7mH,KAAKkkB,IAAIzO,SAAQ,SAAAu1E,GACfA,EAAK1/E,gBACL0/E,EAAK9kF,OACP,IACS,QAAT,EAAAlG,KAAKsiC,YAAI,SAAEl9B,SACXpF,KAAKsiC,UAAOj9B,CACd,EACF,EA3KA,CAGUyhH,GChBV,QAlB6B,CAC3B5iC,YAAa,MACb6iC,QAAS,GACTvwF,OAAQ,GACR8jE,sBAAkBj1F,EAClB2hH,gBAAiB,GACjBC,OAAO,EACPC,aAAc,kBACdC,WAAY,qOAMZC,YAAa,CAAC,SAAU,IAAK,uBAAwB,qBACrDC,mBAAmB,G,kgBCrFrB,YAQE,WAAY5nH,EAAiBuH,EAAgBnE,GAA7C,MACE,YAAMmE,EAAYnE,IAAQ,K,OAC1B,EAAKykH,QAAU7nH,E,CACjB,CAaF,OAnBU,OAQR,sBAAW,qBAAM,C,IAAjB,WACE,OAAOO,KAAKsnH,OACd,E,gCAEA,sBAAW,qBAAM,C,IAAjB,WACE,OAAOtnH,KAAKsnH,QAAQrvG,MACtB,E,gCAEA,sBAAW,iBAAE,C,IAAb,WACE,OAAOjY,KAAKsnH,QAAQpkC,EACtB,E,gCACF,EAxBA,CAKU,M,kgBCFV,YAeE,WACEzjF,EACA+D,EACA+jH,G,OAEA,YAAM/jH,EAAQ,CAAE/D,OAAM,EAAE8nH,iBAAgB,KAAG,IAC7C,CAMF,OA3BwF,OAMtF,YAAAjjH,IAAA,SAAIa,EAAiBtC,GAArB,I,EAAA,OAEMW,GAAS,IAAAtC,SAAQiE,GAASA,GAAS,IAAAykF,aAAYzkF,QAAmBE,EAAV,CAACF,GAI7D,OAFA3B,EAA+F,QAAtF,EAAAA,aAAM,EAANA,EAAQsB,KAAI,SAAA0M,GAAK,OAACA,aAAa,EAAKg2G,SAAWh2G,EAAI,IAAI,EAAKg2G,SAAS,EAAK/nH,OAAQ+R,EAAjE,WAAqE,QAAI,MAACnM,GAE7F,YAAMf,IAAG,WAAC,IAAApD,SAAQiE,GAAS3B,EAASA,EAAO,GAAIX,EACxD,EAUA,YAAAkK,cAAA,SAAcvJ,EAAgDX,GAC5D7C,KAAKwnH,SAAW3kH,EAAQ0kH,iBACxBvnH,KAAKP,OAASoD,EAAQpD,MACxB,EACF,EA3BA,CAAwF,M,u8BCElFgoH,EAAW,OACXC,EAAW,OAEXC,EAAe,SAACx3B,EAAc3tF,G,MAC5BolH,EAAMz3B,EAAMxsF,IAAInB,GAChBqlH,EAAoB,QAAV,EAAA13B,EAAM7tD,YAAI,eAAEluB,GAAG,EAAU,cAAgB,GAEzD,OAAI,IAAAkkG,UAASsP,GACJA,GACE,IAAA12G,UAAS02G,IAAQA,EAAIE,SAAS,MAChCv/B,WAAWq/B,GACTC,GAGF,CAEX,EAUA,cAqBE,WAAYpoH,EAAsB+H,GAAlC,MACE,YAAM/H,EAAQ+H,IAAK,KACX07E,EAAO,EAAI,GACb,EAAwB,EAAKl8E,WAA3BwvB,EAAM,SAAE8uD,EAAS,YACnByiC,EAAO7kC,EAAGuR,WACVuzB,EAAOD,EAAKnhC,YACZqhC,EAAW/kC,EAAGglC,IAAIv8B,SAClBw8B,EAAa,CAAC,EACdC,EAAU,CAAEllC,GAAE,EAAEjrE,OAAQ+vG,EAAM73B,MAAO,EAAMg4B,MAAK,GAEtD,KAAK,IAAAjT,aAAY5vB,GAAY,CAC3B,IAAMkG,GAAM,IAAA9kF,UAAS4+E,GAAaA,EAAY,CAAED,WAAYC,IAC3DkG,EAAIhpF,OAASgpF,EAAIhpF,KAAO,WACzB,IAAM6lH,EAAUN,EAAKO,QAAQ,WAAYnjH,MACzC,EAAKM,IAAI,YAAa,IAAI4iH,EAAQ78B,EAAK48B,G,CAGzC,GAAK5xF,GAEE,KAAK,IAAA9vB,UAAS8vB,GAAS,CAEVxN,OAAO/nB,KAAKknH,GAChBxnH,QAAUP,MAAMc,QAAQs1B,IACpCA,EAAO/gB,SAAQ,SAAAkH,GACb,IAAMk1B,EAAMl1B,EAAM4rG,UAClB,GAAI12E,GAAqB,GAAdA,EAAIlxC,OAAa,CAC1B,IAAM6nH,EAAO32E,EAAI,GACX42E,EAAQD,EAAK7+G,MAAsB,IAAd6+G,EAAKhmH,MAAcgmH,EAC9C,GAAIC,GAASN,EAAMM,EAAM9+G,MACvB8+G,EAAM9+G,KAAOw+G,EAAMM,EAAM9+G,WACpB,IAAI,IAAAuH,UAASs3G,IAAqB,MAAZA,EAAK,GAAY,CAC5C,IAAMp6G,EAASo6G,EAAK7nG,UAAU,GAC1BvS,GAAU+5G,EAAM/5G,KAClByjC,EAAI,GAAK,WAAIs2E,EAAM/5G,I,EAI3B,IAGF65G,EAAS3jH,IAAIkyB,GACb,EAAK/wB,IAAI,SAAUwiH,E,OAvBnB,EAAKxiH,IAAI,SAAUwiH,G,OA0BpBzgH,EAAK2+B,OAAS,EAAK1gC,IAAIgiH,EAAU,IACjCjgH,EAAKsrB,QAAU,EAAKrtB,IAAIiiH,EAAU,G,CACrC,CAkIF,OArMmC,OACjC,YAAA5gH,SAAA,WACE,MAAO,CACL+sB,EAAG,EACH+Z,EAAG,EACH86E,aAAc,EACd1hH,WAAY,CAAC,EACbm/B,MAAO,KACPrT,OAAQ,KACRnc,KAAM,GACN2uE,UAAW,GACX9uD,OAAQ,GACRmyF,OAAO,EACPC,SAAU,CAAC,gBAEf,EAsDA,sBAAI,oBAAK,C,IAAT,WACE,OAAOjB,EAAa3nH,KAAM,QAC5B,E,gCAEA,sBAAI,qBAAM,C,IAAV,WACE,OAAO2nH,EAAa3nH,KAAM,SAC5B,E,gCAEA,sBAAI,mBAAI,C,IAAR,WACE,OAAOA,KAAK2D,IAAI,OAClB,E,gCAEA,YAAA0gG,SAAA,WACErkG,KAAKqkH,eAAej/G,OAAO,CAAE9F,KAAM,GACrC,EAEA,YAAAupH,UAAA,SAAUv7D,QAAA,IAAAA,IAAAA,EAAA,IACJA,EAAIw7D,WAAax7D,EAAIy7D,SAAWz7D,EAAIu7B,YAGxC7oF,KAAKyF,IAAI,eAAgBzF,KAAK2D,IAAI,gBAAkB,EACtD,EAEA,YAAA0gH,aAAA,WACE,OAAOrkH,KAAK2D,IAAI,YAClB,EAEA,YAAAqlH,UAAA,WACE,OAAOhpH,KAAK2D,IAAI,SAClB,EAEA,YAAA0qF,QAAA,WACEruF,KAAK8D,QAAQ,UACf,EAEA,YAAAsB,OAAA,WACEpF,KAAKsiC,UAAOj9B,EACZ,IAAM2lF,EAAOhrF,KAAKiF,WAClB,OAAO+lF,GAAQA,EAAK5lF,OAAOpF,KAC7B,EAEA,YAAAipH,QAAA,WACE,OAAO,KAAIjpH,KAAK2W,MAAI,EACtB,EAEA,YAAAuyG,QAAA,SAAQxhH,GACN,OAAO1H,KAAKyF,IAAI,OAAQ,KAAIiC,GAAK,GACnC,EAEA,YAAAyhH,YAAA,SAAY1iC,GACVzmF,KAAK2W,KAAKhS,KAAK8hF,EACjB,EAEA,YAAA2iC,cAAA,SAAc5hH,EAAcE,EAAYid,GACtC,OAAO3kB,KAAK2W,KAAKV,QAAO,SAAAwwE,GAAQ,OAAAA,EAAKz/E,YAAcy/E,EAAKz/E,WAAWQ,IAASE,KAAWid,GAAOA,IAAQ8hE,EAAK9hE,IAA3E,IAAiF,EACnH,EAEA,YAAA0kG,iBAAA,SAAiB7hH,EAAcE,EAAYid,GACzC,IAAM8hE,EAAOzmF,KAAKopH,cAAc5hH,EAAME,EAAOid,GACvC7jB,EAAQd,KAAK2W,KAAK9R,QAAQ4hF,GAE5B3lF,GAAS,GACXd,KAAK2W,KAAK/R,OAAO9D,EAAO,EAE5B,EAEA,YAAAwoH,QAAA,SAAQ9tG,GACN,IAAMmJ,EAAM,QACX3kB,KAAKopH,cAAc,OAAQ5tG,EAAMmJ,IAChC3kB,KAAKmpH,YAAY,CACfxkG,IAAG,EACH3d,WAAY,CACVwU,KAAI,EACJ2qC,IAAK,eAGb,EAEA,YAAAojE,WAAA,SAAW/tG,GACTxb,KAAKqpH,iBAAiB,OAAQ7tG,EAAM,OACtC,EAEA,YAAAguG,UAAA,SAAU9sG,GACR,IAAMiI,EAAM,UACX3kB,KAAKopH,cAAc,MAAO1sG,EAAKiI,IAC9B3kB,KAAKmpH,YAAY,CACfxkG,IAAG,EACH3d,WAAY,CAAE0V,IAAG,IAEvB,EAEA,YAAA+sG,aAAA,SAAa/sG,GACX1c,KAAKqpH,iBAAiB,MAAO3sG,EAAK,SACpC,EAEA,YAAAgtG,QAAA,W,MACE,OAA6C,QAArC,EAAA1pH,KAAKiF,kBAAgC,eAAE0kH,IACjD,EAEA,YAAAC,aAAA,SAAalxG,QAAA,IAAAA,IAAAA,EAAA,IACX1Y,KAAKkjF,GAAGp/E,QAAQ,gBAAiB,GAAEqsF,MAAOnwF,MAAS0Y,GACrD,EAEA,YAAApL,OAAA,SAAOzD,QAAA,IAAAA,IAAAA,EAAA,IACL,IAAM7I,EAAM,wBAAkChB,KAAM6J,GAC9C/C,GAAW,IAAAoG,QAAOlN,KAAM,YAqB9B,OAnBI6J,EAAKggH,iBAAiB7oH,EAAIskF,iBACvBtkF,EAAIw1B,cACJx1B,EAAI0nH,aACX1nH,EAAIymH,WAAoBzmH,EAAImlC,MAC5BnlC,EAAI0mH,WAAoB1mH,EAAI8xB,QAG5B,IAAArd,SAAQzU,GAAK,SAAC0G,EAAOrG,GACE,IAArBA,EAAIwD,QAAQ,aAAqB7D,EAAIK,EACvC,KAEA,IAAAoU,SAAQ3O,GAAU,SAACY,EAAOrG,GACpBL,EAAIK,KAASqG,UAAc1G,EAAIK,EACrC,KAEA,IAAAoU,SAAQ,CAAC,aAAc,SAAS,SAAAgR,IAC1B,IAAAnhB,SAAQtE,EAAIylB,YAAezlB,EAAIylB,EACrC,IAEOzlB,CACT,EACF,EArMA,CAAmC,G,4gBC7BnC,YAKE,WAAYvB,EAAsB+D,QAAA,IAAAA,IAAAA,EAAA,IAAlC,MACE,YAAM/D,EAAQ+D,EAAQ,IAAM,K,OAL9B,EAAAsmH,YAAc,EACd,EAAAC,YAAc,GAKZ,IAAAznC,SAAQ,EAAM,cACd,EAAK76E,GAAG,QAAS,EAAKuiH,SACtB,EAAKviH,GAAG,SAAU,EAAK48F,U,CACzB,CA6BF,OAvCoC,OAYlC,YAAA2lB,QAAA,SAAQx4G,EAAU3H,GAAlB,aACeA,aAAI,EAAJA,EAAM1D,iBAAkB,IAChCrB,KAAI,SAAAk3B,GAAK,SAAKqoE,SAASroE,EAAd,GAChB,EAEA,YAAAqoE,SAAA,SAAS/zF,GACPA,SAAAA,EAAS+zF,UACX,EAEA,YAAA4lB,WAAA,WACEjqH,KAAK8pH,cAED9pH,KAAK8pH,aAAe9pH,KAAK+pH,cAC3B/pH,KAAK8D,QAAQ,cACb9D,KAAKkqH,mBAAkB,GAE3B,EAEA,YAAAC,aAAA,WACEnqH,KAAK8pH,YAAc,EACnB9pH,KAAK+pH,YAAc/pH,KAAKW,OACxBX,KAAKkqH,mBAAkB,EACzB,EAEA,YAAAA,kBAAA,SAAkBziH,GAAlB,WACEzH,KAAKyV,SAAQ,SAAAgxE,GAAQ,OAAAA,EAAKh/E,EAAK,KAAO,OAAO,SAAU,EAAKwiH,WAAvC,GACvB,EACF,EAvCA,CAAoC,G,kgBCiCpC,YAUE,WAAYnhG,EAAYjf,QAAA,IAAAA,IAAAA,EAAA,IAAxB,MACE,YAAMif,EAAOjf,IAAK,KACVq5E,EAAOr5E,EAAI,GACbugH,EAAgB,CAAC,EACvB,EAAKlnC,GAAKA,EACLp6D,EAAMs6E,SACTgnB,EAAS9kC,UAAYx8D,EAAMw8D,UAC3B8kC,EAAS5zF,OAAS1N,EAAM0N,OACxB,CAAC,YAAa,UAAU1xB,KAAI,SAAAjF,GAAK,SAAK2F,MAAM3F,EAAX,KAEnC,IAAMwqH,EAAcvhG,EAAMs6E,QAAU,CAACgnB,GAC/BhnB,EAAS,IAAI,EAAOlgB,EAAIsB,OAAQ6lC,GACtCjnB,EAAOumB,KAAO,EACd,EAAKlkH,IAAI,SAAU29F,IAClB,EAAKknB,SAAW,EAAK7kH,IAAI,KAAMy9E,aAAE,EAAFA,EAAIv/E,IAAI,eAAe4iH,aACvD,IAAMgE,EAAKrnC,aAAE,EAAFA,EAAIv/E,IAAI,e,OACnB4mH,SAAAA,EAAIjmH,IAAI8+F,G,CACV,CAmFF,OA9GkC,OAChC,YAAAt8F,SAAA,WACE,MAAO,CACL6C,KAAM,GACNy5F,OAAQ,GACRulB,OAAO,EAEX,EAsBA,YAAAtkB,SAAA,WACErkG,KAAK+3F,YAAY7xF,OACnB,EAEA,YAAA6xF,UAAA,WACE,OAAO/3F,KAAK2D,IAAI,SAClB,EAMA,YAAA2mH,MAAA,WACE,OAAOtqH,KAAKsK,EACd,EAMA,YAAAoiF,QAAA,WACE,OAAO1sF,KAAK2D,IAAI,OAClB,EAQA,YAAA6mH,QAAA,SAAQ7gH,GACN,OAAO3J,KAAKyF,IAAI,CAAEkE,KAAI,GACxB,EAQA,YAAA8gH,aAAA,WACE,OAAOzqH,KAAK+3F,YAAYv0F,QAAU,EACpC,EAQA,YAAAknH,aAAA,WACE,OAAO1qH,KAAK+3F,YAAYt0F,GAAG,EAC7B,EASA,YAAAknH,iBAAA,WACE,IAAMx6B,EAAQnwF,KAAK0qH,eACnB,OAAOv6B,aAAK,EAALA,EAAOk0B,cAChB,EAEA,YAAA/2G,OAAA,SAAOzD,QAAA,IAAAA,IAAAA,EAAA,IACL,IAAM7I,EAAM,2BAA4BhB,KAAM6J,GACxC/C,GAAW,IAAAoG,QAAOlN,KAAM,YAW9B,OARA,IAAAyV,SAAQzU,GAAK,SAAC0G,EAAOrG,GACE,IAArBA,EAAIwD,QAAQ,aAAqB7D,EAAIK,EACvC,KAEA,IAAAoU,SAAQ3O,GAAU,SAACY,EAAOrG,GACpBL,EAAIK,KAASqG,UAAc1G,EAAIK,EACrC,IAEOL,CACT,EACF,EA9GA,CAAkC,M,6uBCnClC,YACE,WAAYwC,EAAa0/E,GAAzB,MACE,YAAM1/E,IAAO,K,OACb,EAAKiE,GAAG,QAAS,EAAKuiH,SACtB,EAAKviH,GAAG,SAAU,EAAK48F,UAGvB,EAAKl/F,MAAQ,SAAC2jB,EAAWjf,GACvB,YADuB,IAAAA,IAAAA,EAAA,IAChB,IAAI,EAAKif,EAAO,OAAIjf,GAAI,CAAEq5E,GAAE,IACrC,E,CACF,CASF,OAnBmC,OAYjC,YAAA8mC,QAAA,SAAQx4G,EAAS3H,GAAjB,I,EAAA,OACsB,QAApB,EAAAA,aAAI,EAAJA,EAAM1D,sBAAc,SAAErB,KAAI,SAACk3B,GAAM,SAAKqoE,SAASroE,EAAd,GACnC,EAEA,YAAAqoE,SAAA,SAAS/zF,GACPA,SAAAA,EAAS+zF,UACX,EACF,EAnBA,CAAmC,M,4tBC+DtBumB,EAAQ,OACRC,EAAQ,UAAGD,EAAK,KAChBE,EAAe,UAAGD,EAAK,UACvBE,EAAqB,UAAGD,EAAY,WACpCE,EAAe,UAAGH,EAAK,UACvBI,EAAY,UAAGJ,EAAK,OACpBK,EAAkB,UAAGD,EAAS,WAC9BE,EAAe,UAAGN,EAAK,UACvBO,EAAqB,UAAGD,EAAY,WAC3CE,EAAS,kBACTC,EAAW,OACXC,EAAa,CACjBnqH,IAAKwpH,EACL10G,OAAQ40G,EACRU,aAAcT,EACdlxE,OAAQmxE,EACR1mH,IAAK2mH,EACLQ,UAAWP,EACX9lH,OAAQ+lH,EACR/E,aAAcgF,GAOhB,eA6BE,WAAYloC,GAAZ,MACE,YAAMA,EAAI,cAAe,IAAI,EAAM,GAAIA,GAAKqoC,IAAW,KA5BzD,EAAA5F,WAAa,SA6BX,IAAArjC,SAAQ,EAAM,iBACd,IAAMn9E,EAAQ,IAAI,EAAY,CAAEwjH,OAAO,I,OACvC,EAAKxjH,MAAQA,EACb,EAAKumH,MAAMjkH,GAAG,SAAS,SAAAujF,GAAQ,OAAAA,EAAKvnF,GAAG,IAAM,EAAKyS,OAAO80E,EAAKvnF,GAAG,GAAlC,IAC/B,EAAKioH,MAAMjkH,GAAG,MAAO,EAAKkkH,WAAY,GACtCxmH,EAAMsC,GAAG4jH,EAAQ,EAAKO,e,CACxB,CA0KF,OA/MyC,OAIvC,sBAAI,oBAAK,C,IAAT,WACE,OAAO5rH,KAAKoB,GACd,E,gCAIA,YAAAuqF,OAAA,WAEE,OAAO,KAAI3rF,KAAKoB,IAAIoC,QAAM,EAC5B,EA0BA,YAAAmoH,WAAA,SAAWh5G,EAAeg3G,EAAY3+B,EAAanhF,GACjD,IAAMhH,EAAUgH,GAAQmhF,EACxBhrF,KAAKkjF,GAAGp/E,QAAQ8mH,EAAO,CAAEj4G,MAAK,EAAEg3G,KAAI,EAAE9mH,QAAO,GAC/C,EAEA,YAAAgpH,OAAA,W,MACQ,EAAwB7rH,KAAtB0rH,EAAK,QAAEzzG,EAAM,SAAEirE,EAAE,KACnB51B,EAAM,CAAE1/C,QAAQ,GAChBk+G,GAA0B,QAAZ,EAAA7zG,EAAOyzG,aAAK,eAAE5mH,KAAI,SAAA6kH,GAAQ,WAAI,EAAKA,EAAM,CAAEzmC,GAAE,EAAEjrE,OAAM,GAA3B,MAAmC,GACjFyzG,EAAMpnH,IAAIwnH,EAAax+D,GACvB,IAAMy+D,EAAYL,EAAM/qH,OAA6CX,KAAKgsH,UAAzChsH,KAAKsE,IAAI,CAAE9B,KAAM8oH,GAAYh+D,GAC9Dy+D,GAAY/rH,KAAKkW,OAAO61G,EAAUz+D,EACpC,EAEA,YAAAs+D,cAAA,SAAcp6G,EAAQm4G,EAAY9/G,GACxB,IAAAq5E,EAAOljF,KAAI,GACbmyF,EAAKjP,EAAG+oC,OACRC,EAAWvC,EAAKgB,mBACtBx4B,GAAM+5B,GAAY/5B,EAAGg6B,QAAQD,GAC7BhpC,EAAGp/E,QAAQgnH,EAAcnB,EAAMn4G,EAAEhD,SAAS,aAC1CxO,KAAK2rH,WAAWN,EAAQ1B,EAAM9/G,EAChC,EAEA,YAAAs7G,SAAA,WACQ,MAAuBnlH,KAArBkjF,EAAE,KAAE/9E,EAAK,QAAEumH,EAAK,QAClBnB,EAAKrnC,EAAG57E,YACdijH,EAAGjmH,IAAIa,GACPolH,EAAGjmH,IAAIonH,GACPA,EAAMjkH,GAAG,2BAA2B,SAAC+J,EAAGutE,EAAG5oD,GAAM,OAAA+sD,EAAG2lC,UAAU1yF,GAAK4oD,EAAlB,GACnD,EAcA,YAAAz6E,IAAA,SAAIwkB,EAAuBjf,GAA3B,gBAA2B,IAAAA,IAAAA,EAAA,IACjB,IAAAq5E,EAAOljF,KAAI,GACnB8oB,EAAMxe,GAAKwe,EAAMxe,IAAMtK,KAAKumH,YAC5B,IAAMjiH,EAAM,WACV,IAAMqlH,EAAO,EAAK+B,MAAMpnH,IAAI,IAAI,EAAKwkB,EAAO,CAAEo6D,GAAI,EAAKA,GAAIjrE,OAAQ,EAAKA,SAAWpO,GAEnF,OADAA,EAAKqM,QAAU,EAAKA,OAAOyzG,GACpBA,CACT,EAEA,OADC9/G,EAAK+D,QAAUs1E,EAAGp/E,QAAQonH,EAAiBpiG,EAAOxkB,EAAKuF,IAChDA,EAAKm7E,OAAS1gF,GACxB,EAYA,YAAAc,OAAA,SAAOukH,EAAqB9/G,GAA5B,gBAA4B,IAAAA,IAAAA,EAAA,IAClB,IAAAq5E,EAAOljF,KAAI,GACbosH,GAAK,IAAAl7G,UAASy4G,GAAQ3pH,KAAK2D,IAAIgmH,GAAQA,EACvCjpE,EAAK,WAET,OADA0rE,GAAM,EAAKV,MAAMtmH,OAAOgnH,EAAIviH,GACrBuiH,CACT,EAEA,OADCviH,EAAK+D,QAAUs1E,EAAGp/E,QAAQsnH,EAAoBgB,EAAI1rE,EAAI72C,IAC/CA,EAAKm7E,OAAStkC,GACxB,EASA,YAAA/8C,IAAA,SAAI2G,GACF,OAAOtK,KAAK0rH,MAAMz1G,QAAO,SAAA+lB,GAAK,OAAAA,EAAEr4B,IAAIq4B,EAAE3uB,eAAiB/C,CAAzB,IAA6B,EAC7D,EAQA,YAAA0hH,QAAA,WACU,IAAAN,EAAU1rH,KAAI,MACtB,OAAO0rH,EAAMz1G,QAAO,SAAA+lB,GAAK,OAAAA,EAAEr4B,IAAI,UAAY2nH,CAAlB,IAA4B,IAAMI,EAAMjoH,GAAG,EACtE,EAUA,YAAA6nF,eAAA,WACE,IAAMogC,EAAQ1rH,KAAK2rF,SACnB,OAAO,IAAA+d,SAAO,IAAAne,SAAQmgC,EAAM5mH,KAAI,SAAA6kH,GAAQ,OAAAA,EAAKc,eAAe3lH,KAAI,SAAAqrF,GAAS,OAAAA,EAAMk0B,cAAN,GAAjC,KAC1C,EAYA,YAAAnuG,OAAA,SAAOyzG,EAAqB9/G,QAAA,IAAAA,IAAAA,EAAA,IAC1B,IAAMuiH,GAAK,IAAAl7G,UAASy4G,GAAQ3pH,KAAK2D,IAAIgmH,GAAQA,EAK7C,OAJIyC,IACFpsH,KAAKkjF,GAAGp/E,QAAQinH,EAAoBqB,EAAIviH,GACxC7J,KAAKmF,MAAMM,IAAI,WAAY2mH,EAAIviH,IAE1B7J,IACT,EAQA,YAAAgpF,YAAA,WACE,OAAOhpF,KAAKmF,MAAMxB,IAAI,WACxB,EAEA,YAAA0L,QAAA,sBACErP,KAAK0rH,MAAMvgH,MAAMjF,QACjBlG,KAAKmF,MAAMmG,gBACXtL,KAAKmF,MAAMuD,MAAM,CAAEkF,QAAQ,IAE3B,CAAC,WAAY,SAAS9I,KAAI,SAAAjF,GAAK,OAAC,EAAKA,GAAK,CAAX,GACjC,EAEA,YAAA08F,MAAA,WACE,OAAOv8F,KAAK0lH,gBACd,EAEA,YAAA2G,KAAA,SAAK3zG,GACH,OAAO1Y,KAAK4lH,gBAAgBltG,EAAM,CAAEtX,IAAKpB,KAAK0rH,MAAOxlH,OAAO,GAC9D,EAEA,YAAAqgH,UAAA,WACE,IAGIj8G,EAFEmhB,EADQzrB,KAAK2rF,SACDhrF,OAAS,GACrB2rH,EAAWtsH,KAAK8lH,YAGtB,GACEx7G,GAAK,IAAAkrG,UAAS/pF,SACP6gG,EAAShiH,IAElB,OAAOA,CACT,EACF,EA/MA,CAAyCiiH,G,YCrCzC,SA7BoC,CAClCC,QAAS,GACTC,QAAS,CACP,CACEniH,GAAI,UACJX,KAAM,UACNw8B,MAAO,IAET,CACE77B,GAAI,SACJX,KAAM,SACNw8B,MAAO,QACPumF,WAAY,SAEd,CACEpiH,GAAI,kBACJX,KAAM,mBACNw8B,MAAO,QACPumF,WAAY,SAEd,CACEpiH,GAAI,iBACJX,KAAM,kBACNw8B,MAAO,QACPumF,WAAY,W,ogBCXlB,yB,8CAgCA,QAhCoC,QAClC,YAAA5lH,SAAA,WACE,MAAO,CACL6C,KAAM,GACNw8B,MAAO,KACPrT,OAAQ,GACR45F,WAAY,KACZ/jG,SAAU,KAEd,EAEA,YAAAphB,WAAA,sBAC6B,OAA3BvH,KAAK2D,IAAI,eAA0B3D,KAAKyF,IAAI,aAAczF,KAAK2D,IAAI,UAC7C,OAAtB3D,KAAK2D,IAAI,UAAqB3D,KAAKyF,IAAI,QAASzF,KAAK2D,IAAI,gBACxD3D,KAAK2D,IAAI,aAAe3D,KAAKyF,IAAI,WAAY8iF,WAAWvoF,KAAK2D,IAAI,gBAAmB,GACzC,CAAC,QAAS,SAAU,cACxD8R,SAAQ,SAAAgR,GAAQ,SAAKkmG,UAAUlmG,EAAf,GAC1B,EAEA,YAAAkmG,UAAA,SAAUlmG,GACR,IAAMmmG,EAAM5sH,KAAK2D,IAAI8iB,IAAS,IACd8hE,WAAWqkC,IAAO,GAAGhlG,aAAeglG,EAAGhlG,YAC7C5nB,KAAKyF,IAAIghB,EAAM,UAAGmmG,EAAE,MAChC,EAEA,YAAAlgC,QAAA,WACE,OAAO1sF,KAAK2D,IAAI,SAAW3D,KAAK2D,IAAI,KACtC,EAEA,YAAAkpH,cAAA,WACE,OAAO7sH,KAAK2D,IAAI,eAAiB,EACnC,EACF,EAhCA,CAAoC,M,2fCrCpC,4B,8CAAyD,QAApB,QAAoB,EAAzD,CAAqC,M,YAErCmpH,GAAQzsH,UAAU8E,MAAQ,G,6oBCK1B,YA4BE,WAAYgxB,GAAZ,MACE,YAAMA,IAAE,K,OACR,EAAKle,OAASke,EAAEle,QAAU,CAAC,EAC3B,EAAKirE,GAAK,EAAKjrE,OAAOirE,GACtB,EAAKK,KAAO,EAAKtrE,OAAOksE,cAAgB,GACxC,EAAK35E,SAAS,EAAK04E,GAAI,gBAAiB,EAAK6pC,c,CAC/C,CA+DF,OAjGyC,QAMvC,YAAApQ,SAAA,SAAS,G,IAAEp5B,EAAI,OAAE7W,EAAK,QACpB,OAAOwJ,EAAI,4bACS,kBAAsB,8BACtB,SAAa,iCACb,8CACO,8DAEL,wCACE,kGAGoB,iDAT5BqN,EAAqB7W,EACrB6W,EAAaA,EACbA,EACOA,EAELA,EACEA,EAGoBA,EAE1C,EAEA,YAAA75E,OAAA,WACE,MAAO,CACLoxB,OAAQ,eACR,yBAA0B,WAE9B,EAeA,YAAAkyF,SAAA,WAAY,EAMZ,YAAAC,aAAA,WACU,IAAA/pC,EAAOljF,KAAI,GAEnB,GAAIkjF,EAAI,CACN,IAAMgqC,EAAQltH,KAAKmtH,UACnBjqC,EAAGz9E,IAAI,SAAUynH,EAAQA,EAAMjnH,MAAQ,G,CAE3C,EAMA,YAAA8mH,aAAA,WACQ,IAAE7pC,EAAkBljF,KAAhB,GAAEmtH,EAAcntH,KAAL,UAErB,GAAIkjF,GAAMA,EAAGkqC,gBAAkBD,EAAW,CACxC,IAAME,EAASnqC,EAAGkqC,iBAClBD,EAAUlnH,IAAIonH,EAASA,EAAO1pH,IAAI,MAAS,G,CAE/C,EAOA,YAAA2pH,WAAA,WACQ,IAAEroH,EAAmBjF,KAAT,WAAEkjF,EAAOljF,KAAL,GAClBkN,EAAS,GAQb,OANAjI,EAAWwQ,SAAQ,SAAA43G,GACX,MAAeA,EAAOrmH,WAApB2C,EAAI,OAAEW,EAAE,KACVoiE,EAASwW,GAAMA,EAAG5vB,GAAK4vB,EAAG5vB,EAAE,gCAAyBhpD,KAAUX,EACrEuD,GAAU,0BAAkB5C,GAAMX,EAAI,cAAK+iE,EAAK,YAClD,IAEOx/D,CACT,EAEA,YAAA2G,OAAA,WACQ,MAAwB7T,KAAtBkjF,EAAE,KAAEK,EAAI,OAAE5vE,EAAG,MAAES,EAAE,KACnBs4D,EAAQwW,GAAMA,EAAG5vB,GAAK4vB,EAAG5vB,EAAE,wBAMjC,OALA3/C,EAAIuiE,KAAKl2E,KAAK28G,SAAS,CAAEp5B,KAAI,EAAE7W,MAAK,KACpC1sE,KAAKmtH,UAAYx5G,EAAIC,KAAK,WAAI2vE,EAAI,YAClCvjF,KAAKmtH,UAAUn6B,OAAOhzF,KAAKstH,cAC3BttH,KAAKmtH,UAAUlnH,IAAIi9E,EAAGv/E,IAAI,WAC1ByQ,EAAGQ,UAAY,UAAG2uE,EAAI,aACfvjF,IACT,EACF,EAjGA,CAAyC,M,4uBCgC5B,GAAQ,SACR,GAAQ,UAAG,GAAK,KAChButH,GAAW,UAAG,GAAK,UAEnBC,IADiB,UAAGD,GAAQ,WACjB,UAAG,GAAK,WACnBE,GAAQ,UAAG,GAAK,OAEhBC,IADc,UAAGD,GAAK,WACX,UAAG,GAAK,WACnBE,GAAiB,UAAGD,GAAQ,WACnC,GAAS,gBACTE,GAAe,CACnBxsH,IAAK,GACL8U,OAAQq3G,GACR1zE,OAAQ2zE,GACRlpH,IAAKmpH,GACLroH,OAAQsoH,GACRtH,aAAcuH,IAGhB,eAcE,WAAYzqC,GAAZ,I,EAAA,OAME,O,EALA,YAAMA,EAAI,gBAAiB,IAAI,GAAW0qC,GAAc,KAAS,MAPnEC,OAAS,GAET,EAAAf,QAAU,GAEV,EAAAnH,WAAa,GAIX,EAAK8G,QAAU,EAAKrrH,IACD,QAAnB,IAAK6W,OAAOw0G,eAAO,SAAEh3G,SAAQ,SAAA43G,GAAU,SAAK/oH,IAAI+oH,EAAQ,CAAEz/G,QAAQ,GAA3B,IACvC,EAAKsI,OAAO,EAAK+B,OAAOu0G,SAAW,EAAKC,QAAQhpH,GAAG,IACnDy/E,EAAGz7E,GAAG,GAAQ,EAAKqmH,UAAW,GACvB,CACT,CA0IF,OA/J2C,QAuBzC,YAAAA,UAAA,SAAUt8G,EAAgBu8G,EAAkBlkH,GACpC,IAAEq5E,EAAeljF,KAAb,GAAE0J,EAAW1J,KAAL,OACZoO,EAASoD,EAAEhD,SAAS,UACpBw/G,EAAYhuH,KAAK2D,IAAIoqH,GACrBvhH,EAAK9C,EAAOwM,OAClBgtE,EAAGp/E,QAAQ0I,EAAIwhH,EAAWhuH,KAAK2D,IAAIyK,IACnCpO,KAAK+lH,gBAAgBv5G,EAAIwhH,EAAWnkH,EACtC,EAqBA,YAAAvF,IAAA,SAAIwkB,EAAyBjmB,GAC3B,IAAIqK,OADuB,IAAArK,IAAAA,EAAA,IAE3B,IAAIgH,EAAOhH,EAGX,IAAI,IAAAqO,UAAS4X,GAAQ,CACnB,IAAMqd,EAAQtjC,EAEdqK,EAAS,SADTrD,EAAO1I,UAAU,IAAM,CAAC,GAEf,CACPmJ,GAAIwe,EACJnf,KAAME,EAAKF,MAAQmf,EACnBqd,MAAK,G,MAGPj5B,EAAS4b,EAOX,OAJK5b,EAAO5C,KACV4C,EAAO5C,GAAK4C,EAAOvD,MAAQ3J,KAAKumH,aAG3BvmH,KAAKysH,QAAQnoH,IAAI4I,EAAQrD,EAClC,EAWA,YAAAlG,IAAA,SAAI2G,GAGF,OADetK,KAAK2rF,SAAS11E,QAAO,SAAAsoB,GAAK,OAAAA,EAAE56B,IAAI,UAAY2G,CAAlB,IAAsB,IAC9CtK,KAAKysH,QAAQ9oH,IAAI2G,IAAO,IAC3C,EAYA,YAAAlF,OAAA,SAAOioH,EAAyBxjH,GAC9B,YAD8B,IAAAA,IAAAA,EAAA,IACvB7J,KAAKmmH,SAASkH,EAAQxjH,EAC/B,EAUA,YAAAokH,WAAA,WACE,OAAOjuH,KAAKysH,QAAQjpH,MACtB,EAWA,YAAA0S,OAAA,SAAOm3G,EAAyBxjH,QAAA,IAAAA,IAAAA,EAAA,IAC9B,IAAMq8G,GAAK,IAAAh1G,UAASm8G,GAAUrtH,KAAK2D,IAAI0pH,GAAUA,EAEjD,OADAnH,GAAMlmH,KAAKkjF,GAAGz9E,IAAI,SAAUygH,EAAGviH,IAAI,MAAOkG,GACnC7J,IACT,EAQA,YAAAgpF,YAAA,WACE,OAAOhpF,KAAK2D,IAAI3D,KAAKkjF,GAAGv/E,IAAI,UAC9B,EAEA,YAAAgoF,OAAA,WACE,OAAO3rF,KAAKysH,OACd,EAEA,YAAA54G,OAAA,W,MACUqvE,EAAOljF,KAAI,GAMnB,OALS,QAAT,EAAAA,KAAKsiC,YAAI,SAAEl9B,SACXpF,KAAKsiC,KAAO,IAAI,GAAY,CAC1Br9B,WAAYjF,KAAKysH,QACjBx0G,OAAQ,IAAEirE,GAAE,GAAKljF,KAAKiY,UAEjBjY,KAAKsiC,KAAKzuB,SAASO,EAC5B,EAEA,YAAA/E,QAAA,WACErP,KAAK6mH,WACP,EACF,EA/JA,CAA2C0F,G,ugBCtD3C,eAgBE,WAAY9sH,GAAZ,WACUyjF,EAAezjF,EAAM,GAAjBwY,EAAWxY,EAAM,OACrBsnH,EAAoB9uG,EAAM,QAAjBue,EAAWve,EAAM,O,SAClC,YAAMxY,EAAQ,CAAEsnH,QAAO,EAAEvwF,OAAM,KAAG,MAC7B/wB,IAAI,SAAU,IAAI,EAAOhG,IAC9B,EAAK+K,SAAS,EAAM,cAAe,EAAK0jH,cACxC,EAAK1jH,SAAS04E,EAAI,wBAAiB,IAAkB,EAAK+pC,cAC1D,EAAKziH,SAAS04E,EAAI4nC,EAAc,EAAKqD,c,CACvC,CAqCF,OA7DoC,QAClC,YAAArnH,SAAA,WACE,MAAO,CACLqpF,MAAO,GACPiT,OAAQ,GACRgrB,QAAQ,EACR/tB,KAAM,IACNxsE,EAAG,EACH+Z,EAAG,EAEHm5E,QAAS,GAETvwF,OAAQ,GAEZ,EAYA,sBAAI,qBAAM,C,IAAV,WACE,OAAOx2B,KAAK2D,IAAI,SAClB,E,gCAEA,YAAAq+C,KAAA,WACU,IACF+pE,EADS/rH,KAAI,GACCqrF,MAAM2gC,UAC1BhsH,KAAKyF,IAAI,SAAUsmH,EAASh0B,aAC5B/3F,KAAKitH,aAAa,CAAE98B,MAAO47B,EAASrB,gBACtC,EAEA,YAAAyD,aAAA,SAAaxE,EAAYz7G,GACf,IAAAg1E,EAAOljF,KAAI,GACnBkjF,EAAGwb,cACHxb,EAAGv/E,IAAI,gBAAkBu/E,EAAGqS,cAC5BrnF,SAAAA,EAAM6pF,YAAYjzF,KAAI,SAAAqrF,GAAS,OAAAA,EAAM9B,SAAN,IAC/BruF,KAAKyF,IAAI,SAAUkkH,EAAK5xB,aACxB/3F,KAAKitH,aAAa,CAAE98B,MAAOw5B,EAAKe,gBAClC,EAEA,YAAAuC,aAAA,SAAapjH,QAAA,IAAAA,IAAAA,EAAA,IACH,IAAAq5E,EAAOljF,KAAI,GACbqtH,EAASnqC,EAAGkqC,iBACZjoH,EAAQ0E,EAAKsmF,OAASjN,EAAGmrC,uBAE/B,GAAIlpH,GAASkoH,EAAQ,CACb,MAAoBA,EAAOrmH,WAAzBm/B,EAAK,QAAErT,EAAM,SACrB3tB,EAAMM,IAAI,CAAE0gC,MAAK,EAAErT,OAAM,GAAI,CAAEw7F,OAAQ,G,CAE3C,EAEA,YAAAJ,aAAA,WACeluH,KAAK2D,IAAI,QACf,GAAK3D,KAAKyF,IAAI,OAAQ,EAC/B,EACF,EA7DA,CAAoC,G,ghBCQpC,yB,8CA+BA,QA5BU,QACR,sBAAc,kBAAG,C,IAAjB,WACE,OAAOzF,KAAKujF,KAAQvjF,KAAKiY,OAAeisE,aAAe,EACzD,E,gCAEA,sBAAc,mBAAI,C,IAAlB,WACE,OAAOlkF,KAAKkjF,GAAGjrE,OAAOisE,aAAe,EACvC,E,gCAIA,sBAAc,qBAAM,C,IAApB,W,QACE,OAAkC,QAA1B,EAAkB,QAAnB,EAAClkF,KAAKmF,aAAa,eAAE1F,cAAM,QAAIO,KAAKiF,WAAWxF,MACxD,E,gCAEA,sBAAc,iBAAE,C,IAAhB,WACE,OAAOO,KAAKP,OAAOyjF,EACrB,E,gCAEA,sBAAc,qBAAM,C,IAApB,WACE,OAAOljF,KAAKP,OAAOwY,MACrB,E,gCAIA,YAAAlL,cAAA,SAAclK,GACZ7C,KAAK4U,UAAY,EACnB,EACF,EA/BA,CAGU,M,8gBCbV,YAYE,WAAY/K,EAAgB45F,QAAhB,IAAA55F,IAAAA,EAAA,SAAgB,IAAA45F,IAAAA,GAAA,GAA5B,MACE,YAAM55F,IAAK,K,OARb,EAAA65F,UAAY,GAEF,EAAAC,SAAW,OAErB,EAAAC,WAAY,EAEZ,EAAA2qB,eAA8B,GAG5B9qB,GAAW,EAAKj5F,SAAS,EAAKvF,WAAY,MAAO,EAAK4+F,O,CACxD,CA6EF,OAzFU,QAmBA,YAAAA,MAAR,SAAc1+F,GACZnF,KAAKsE,IAAIa,EACX,EAEQ,YAAA4+F,iBAAR,SAAyBvhG,GAIzB,EASQ,YAAA8B,IAAR,SAAYa,EAAoB8U,GACxB,IAGFqoB,EAHIshE,EAA8B5jG,KAArB,UAAEuuH,EAAmBvuH,KAAL,eAC7Bw0D,EAAOv6C,GAAY,KACnBiqF,EAAY/+F,EAAMxB,IAAI3D,KAAK2jG,UAM7BrhE,EAFEn9B,EAAMm9B,MAAQshE,EAETz+F,EAAMm9B,KAENtiC,KAAKwuH,WAAWrpH,EAAO++F,GAGhCqqB,EAAe5pH,KAAK29B,GACpB,IAAMivD,EAAWjvD,EAAKzuB,SAASO,GAE3BogD,EAAMA,EAAK/vC,YAAY8sE,GACtBvxF,KAAK2T,IAAIq/E,OAAOzB,EACvB,EAEA,YAAA19E,OAAA,sBACQ2gD,EAAO9/C,SAASisB,yBAQtB,OAPA3gC,KAAKmkG,aACLnkG,KAAK2T,IAAIq+B,QAELhyC,KAAKiF,WAAWtE,QAAQX,KAAKiF,WAAWM,MAAK,SAAAJ,GAAS,SAAKb,IAAIa,EAAOqvD,EAAhB,IAE1Dx0D,KAAK2T,IAAIq/E,OAAOx+B,GAChBx0D,KAAK82F,WACE92F,IACT,EAEA,YAAA82F,SAAA,WAAY,EAEZ,YAAAsN,eAAA,SAAeN,EAAoBj6F,GAAY,EAC/C,YAAAw6F,SAAA,SAASP,EAAoBj6F,GAAY,EAEzC,YAAAzE,OAAA,SAAOyE,QAAA,IAAAA,IAAAA,EAAA,IACG,IAAA0kH,EAAmBvuH,KAAI,eAK/B,OAJAA,KAAKokG,eAAemqB,EAAgB1kH,GACpC7J,KAAKmkG,aACL,4BAA4BnkG,KAAM6J,GAClC7J,KAAKqkG,SAASkqB,EAAgB1kH,GACvB7J,IACT,EAEA,YAAAmkG,WAAA,WACgBnkG,KAAKuuH,cAIrB,EACF,EA5FA,CAGU,I,ogBCLV,YAGE,WAAYp4F,QAAA,IAAAA,IAAAA,EAAA,IAAZ,MACE,YAAMA,IAAE,KACR,EAAKle,OAASke,EAAEle,QAAU,CAAC,EACnB,IAAA9S,EAAU,EAAI,M,OACtB,EAAKqF,SAASrF,EAAO,SAAU,EAAK0O,QACpC,EAAKrJ,SAASrF,EAAO,iBAAkB,EAAKC,QAC5C,EAAKoF,SAASrF,EAAMxB,IAAI,aAAc,SAAU,EAAKkQ,Q,CACvD,CAaF,OAvByC,QAavC,YAAAJ,QAAA,WACE,MAAO,OACT,EAEA,YAAAI,OAAA,WACQ,IAAE1O,EAAcnF,KAAT,MAAEoU,EAAOpU,KAAL,GACXyuH,EAAYtpH,EAAMxB,IAAI,aAE5B,OADAyQ,EAAG4yE,UAAY7hF,EAAMkwG,MAAM,CAAEoZ,UAAS,IAC/BzuH,IACT,EACF,EAvBA,CAAyC,M,ogBCDzC,yB,8CAWA,QAX8C,QAC5C,YAAAyU,eAAA,WACE,OAAOC,SAASmQ,eAAe,GACjC,EAEA,YAAAhR,OAAA,WACE,IAAM1O,EAAQnF,KAAKmF,MACbspH,EAAYtpH,EAAMxB,IAAI,aAE5B,OADA3D,KAAKoU,GAAGi3D,YAAclmE,EAAMupH,eAAe,CAAED,UAAS,IAC/CzuH,IACT,EACF,EAXA,CAA8C,I,2fCOxC2uH,GAAa,SAAC1qC,EAAa55D,GAA4B,gBAAG45D,GAAG,OAAG55D,EAAQ,WAAIk+D,WAAWl+D,IAAqB,GAArD,EAE7D,eAOE,WAAY8L,GAAZ,MACE,YAAMA,IAAE,MACR,IAAAmsD,SAAQ,EAAM,aAEd,IAAMrqE,EAASke,EAAEle,QAAU,CAAC,EAC5B,EAAK22G,QAAU,CAAC,EAChB,EAAK32G,OAASA,EACd,EAAKirE,GAAKjrE,EAAOirE,GACjB,EAAKe,IAAMhsE,EAAOisE,aAAe,GACjC,EAAKtvE,UAAY,EAAKqvE,IAAM,QAC5B,IAAM+G,EAAO,EAAK/lF,W,OAClB,EAAKuF,SAASwgF,EAAM,MAAO,EAAK6Y,OAChC,EAAKr5F,SAASwgF,EAAM,QAAS,EAAKn3E,Q,CACpC,CAsHF,OA1I0C,QA2BxC,YAAAgwF,MAAA,SAAM1+F,GACJnF,KAAK6uH,gBAAgB1pH,EACvB,EASA,YAAA0pH,gBAAA,SAAgB1pH,EAAgB2pH,GAE9B,GAAK9uH,KAAK+uH,cAAV,CAIA,IAGIx9B,EAAUjvD,EAHRroB,EAAW60G,GAAc,KAEzBjlH,EAAO,CAAE1E,MAAK,EAAE8S,OADHjY,KAAI,QAOvB,GAAgC,cAA5BmF,EAAMxB,IAAI,cAA+B,CAC3C,IAAMqrH,EAAS7pH,EAAM8pH,YACjBC,EAAWlvH,KAAK4uH,QAAQI,GAE5B,IAAKE,EAAU,CACb,IAAMC,EAAUz6G,SAASC,cAAc,SACvCu6G,EAAWx6G,SAASmQ,eAAe,IACnCsqG,EAAQ1qG,YAAY/P,SAASmQ,eAAe,UAAGmqG,EAAM,OACrDG,EAAQ1qG,YAAYyqG,GACpBC,EAAQ1qG,YAAY/P,SAASmQ,eAAe,MAC5C7kB,KAAK4uH,QAAQI,GAAUE,EACvB39B,EAAW49B,C,CAGb7sF,EAAO,IAAI,GAAiBz4B,GAC5BqlH,EAASE,WAAW9sF,EAAKzuB,SAASO,GAAGi3D,Y,MAGrCkmB,GADAjvD,EAAO,IAAI,GAAYz4B,IACPgK,SAASO,GAG3B,IAAMi7G,EAAUrvH,KAAK4U,UACf06G,EAAYnqH,EAAMxB,IAAI,aACtB4rH,EAAiBZ,GAAWU,GAC9BG,EAAUD,EAQd,GAJID,IACFE,EAAUb,GAAWU,EAASrvH,KAAKyvH,cAAcH,KAG/C/9B,EAAU,CACZ,IAAM9wC,EAAYxmC,GAAYja,KAAKoU,GAC/Bs7G,OAAS,EAIb,IACEA,EAAYjvE,EAAUvgB,cAAc,WAAIsvF,GAC9B,CAAV,MAAOtkH,GAAG,CAEPwkH,IACHA,EAAYjvE,EAAUvgB,cAAc,WAAIqvF,KAG1CG,SAAAA,EAAWjrG,YAAY8sE,E,CAGzB,OAAOA,C,CACT,EAEA,YAAAk+B,cAAA,SAAcH,GACZ,OAAOA,GAAaA,EAAU7/G,QAAQ,WAAIzP,KAAKkjF,GAAG0D,YAAYs7B,eAAc,MAAM,IAAIzyG,QAAQ,IAAK,GACrG,EAEA,YAAAkgH,UAAA,SAAU/vH,EAAW4lB,GACX,IACFoqG,GAA6E,KADpE5vH,KAAI,GACI4mF,YAAYs7B,gBAAkB,IAAIr9G,QAAQ,aAEjE,OAAK+qH,GAEQA,EAAahwH,EAAI4lB,IAChBoqG,EAAapqG,EAAI5lB,GAHP,CAM1B,EAEA,YAAAiU,OAAA,sBACE7T,KAAK+uH,eAAgB,EACrB/uH,KAAK4uH,QAAU,CAAC,EACV,MAA0B5uH,KAAxBkjF,EAAE,KAAEvvE,EAAG,MAAE1O,EAAU,aACrBif,EAAMlkB,KAAK4U,UACX4/C,EAAO9/C,SAASisB,yBACtBhtB,EAAIq+B,QAGJ,IAAM69E,EAAM3sC,EAAG4pC,QAAQnhC,SAAS15E,MAAM,YAAYlB,KAAK/Q,KAAK2vH,WAO5D,OANAE,EAAIz5G,OAAM,SAAAw2G,GAAM,OAAAA,CAAA,KAAOiD,EAAIn+G,QAAQ,GACnCm+G,EAAIp6G,SAAQ,SAAAm3G,GAAM,OAAAp4D,EAAK/vC,aAAY,SAAS,MAAO,CAAEna,GAAIqkH,GAAWzqG,EAAK0oG,KAAvD,IAElB3nH,EAAWM,MAAK,SAAAJ,GAAS,SAAK0pH,gBAAgB1pH,EAAOqvD,EAA5B,IACzB7gD,EAAIq/E,OAAOx+B,GACX7gD,EAAInM,KAAK,QAAS0c,GACXlkB,IACT,EACF,EA1IA,CAA0C,M,8PCS1C,cAWE,WAAYkjF,EAAiB4sC,GAA7B,WACE9vH,KAAKkjF,GAAKA,EACVljF,KAAKyiF,OAASS,EAAGsB,OACjB,IAAMpwE,EAAK07G,GAAU9vH,KAAKyiF,OAAOsV,YAAYjzF,KAAI,SAAAqrF,GAAS,OAAAA,EAAMk0B,eAAe1+B,OAArB,IACpDoqC,EAAM3vH,MAAMc,QAAQkT,GAAMA,EAAK,CAACA,GACtCpU,KAAKoU,GAAK27G,EAAI,GACd/vH,KAAK8/D,QAAU,GACf,IAAAwiB,SAAQtiF,KAAM,kBAAmB,iBAAkB,aAAc,mBACjE+vH,EAAIt6G,SAAQ,SAAArB,GAAM,SAAK47G,cAAc57G,GAAI,EAAvB,GACpB,CAmOF,OAjOE,YAAA47G,cAAA,SAAc57G,EAAiB6uE,GAC7B,IAAM7tE,EAAU,CAAE3N,GAAE,KAAE0D,IAAG,OACnB8D,EAASg0E,EAAS,KAAO,MAC/B7tE,EAAQnG,GAAQmF,EAAI,YAAapU,KAAKiwH,iBACtC76G,EAAQnG,GAAQmF,EAAI,WAAYpU,KAAKkwH,gBACrC96G,EAAQnG,GAAQmF,EAAI,OAAQpU,KAAKmwH,YACjC/6G,EAAQnG,GAAQmF,EAAI,YAAapU,KAAKowH,gBACxC,EAEA,YAAAC,eAAA,SAAeptC,G,MACPh0E,EAASg0E,EAAS,EAAAx7E,GAAK,EAAA0D,IACvBknB,EAAMryB,KAAKoU,GAAG8b,cACds/D,EAAyB,QAAf,EAAAn9D,EAAI40E,mBAAW,eAAEqpB,aACjCtwH,KAAKuwH,SAAWttC,EACZ,CACES,QAAO,SAAC,G,IAAEgM,EAAM,UACd,IAAAjoF,IAAG+nF,EAAS,cAAeE,EAAO2M,OACpC,EACAzY,MAAK,SAAC,G,IAAE8L,EAAM,UACZ,IAAAvkF,KAAIqkF,EAAS,cAAeE,EAAO2M,OACrC,EACAm0B,aAAY,SAAC,G,IAAE79G,EAAK,QAClB,OAAO0f,EAAIqoB,iBAAiB/nC,EAAMo9B,QAASp9B,EAAMq9B,QACnD,GAEF,KACJ/gC,EAAOugF,EAAS,eAAgBxvF,KAAKiwH,iBACrChhH,EAAOugF,EAAS,cAAexvF,KAAKkwH,gBACpCjhH,EAAOyF,SAAU,YAAa1U,KAAKmwH,YACnClhH,EAAOugF,EAAS,aAAcxvF,KAAKowH,gBAKrC,EAEA,YAAAK,YAAA,WACEzwH,KAAKqwH,gBAAe,EACtB,EAEA,YAAAK,UAAA,SAAU9lE,GACR5qD,KAAKwiE,KAAOxiE,KAAK2wH,QAAQ/lE,GAAU5qD,KAAKqwH,gBAAe,EACzD,EAKA,YAAAM,QAAA,SAAQ/lE,EAAkBp+C,GAClB,IAAE02E,EAAiBljF,KAAf,GAAE4wH,EAAa5wH,KAAL,SACpBA,KAAK8/D,QAAU,EACf8wD,GAAYA,EAAShmE,IAAW5qD,KAAKwiE,MACrCxiE,KAAKqwH,gBAAe,GACpBntC,EAAGp/E,QAAQ,iBAAkB0I,EAC/B,EAEA,YAAA4jH,gBAAA,SAAgB5jH,GACdxM,KAAK6wH,eAAe,EAAGrkH,EACzB,EAEA,YAAAqkH,cAAA,SAAcnpH,EAAe8E,GAC3BxM,KAAK8/D,SAAWp4D,EACC,IAAjB1H,KAAK8/D,SAAiB9/D,KAAK2wH,SAAQ,EAAMnkH,EAC3C,EAEA,YAAAyjH,gBAAA,SAAgBzjH,GAAhB,WACU02E,EAAeljF,KAAb,GAAEyiF,EAAWziF,KAAL,OACZ8wH,EAAMtkH,EAAiBwmD,aACvB+9D,EAAoB7tC,EAAGv/E,IAAI,eAEjC,IAAKotH,GAAsBtuC,EAAOmE,YAAYygC,qBAI9CrnH,KAAK6wH,cAAc,EAAGrkH,IAClBxM,KAAKwiE,MAAT,CACAxiE,KAAKwiE,MAAO,EACZ,IAKIouD,EACAI,EANEpyB,EAAQ1b,EAAGoT,MAIbv3E,EAAUgyG,GAAqB,OAMnC,GAHA7tC,EAAGqS,cAGCrS,EAAG+tC,iBAAkB,CACvB,IAAM,EAAU/tC,EAAGuR,WAAWy8B,aACxB,EAAS,EAAQl+B,OAAO,CAAC,GAAG,GAC5B,EAAU9P,EAAGiC,SAASjD,IAAI,sBAAuB,CACrDvvE,MAAOnG,EACPg9E,WAAY,EACZN,OAAQ,EACR3iE,OAAM,EACNq9D,MAAO,SAACp3E,EAAS22E,EAAc,G,IACzBpiC,EACJ,IAFwC,YAExB,CACdA,EAAO,EAAQiyC,OAAOj0E,GAAS,GAC/B,IAAMoyG,EAAe1uC,EAAO2uC,YACtB,EAA0B,EAAO3oC,WAA/B,EAAG,MAAE/4D,EAAI,OAAE6W,EAAQ,WACrB,GAAS,SAAkB/5B,EAAG+Z,QAC9B8qG,EAAW3pF,SAAS,UAAG6gD,WAAW74D,GAAQ,EAAOmE,EAAIs9F,EAAazhG,MAAQ,IAC1E4hG,EAAS5pF,SAAS,UAAG6gD,WAAW,GAAO,EAAO36C,EAAIujF,EAAaroF,KAAO,IAE5EiY,EAAK6nC,SAAS,CACZl5D,KAAM2hG,EAAW,KACjBvoF,IAAKwoF,EAAS,KACd/qF,SAAQ,G,CAGZ,EAAKgrF,cAAcxwE,EAAM+vE,GACzB,EAAO1rH,QACT,IAEFwrH,EAAW,SAAChmE,GAAqB,SAAQjtC,KAAKnR,EAAI,CAAEo+C,OAAM,GAAzB,EACjComE,EAAc,SAACQ,GAAa,OAACzyG,EAAUyyG,CAAX,C,KACvB,CACL,IAAM,EAAS,IAAI5yB,EAAMC,OAAO,IAE9B3b,GAAE,EACFgc,QAAS,EACTC,OAAQ,EACRC,eAAgB,EAChB7zE,UAAW,IACXk1B,UAAWzgD,KAAKoU,GAChB0qF,OAAQrc,EAAOsc,cACfC,aAAc,IACdC,QAAS,IACThb,IAAK,OACL0L,UAAW,SAACxqF,GAAe,SAAKosH,cAAcpsH,EAAO2rH,EAA1B,EAC3Bp8G,SAAU1U,KAAKoU,GAAG8b,eACdlwB,KAAKuwH,UAAY,CAAC,IAExB,EAAOkB,eAAe1yG,GACtB,EAAOwgF,YACPv/F,KAAK0vF,OAAS,EACdkhC,EAAW,SAAChmE,GACVA,IAAW,EAAO8T,OAAQ,GAC1B,EAAO6xB,SACT,EACAygC,EAAc,SAACjyG,GAAiB,SAAO0yG,eAAe1yG,EAAtB,C,CAGlC/e,KAAK4wH,SAAWA,EAChB5wH,KAAKgxH,YAAcA,EACnB9tC,EAAGp/E,QAAQ,mBAAoBgtH,EAAI/xG,EAvEd,CAwEvB,EAEA,YAAAwyG,cAAA,SAAcpsH,EAAY2rH,GAChB,IAAA5tC,EAAOljF,KAAI,GACnBA,KAAKwiE,MAAO,EACRr9D,IACF+9E,EAAGz9E,IAAI,aAAcN,GACrB+9E,EAAGp/E,QAAQ,cAAegtH,EAAI3rH,IAEhC+9E,EAAG2S,WAAW,CAAE4I,iBAAkB,GACpC,EAMA,YAAAyxB,eAAA,SAAe1jH,GACbA,EAAG+gB,iBACHvtB,KAAKkjF,GAAGp/E,QAAQ,kBAAmB0I,EACrC,EAMA,YAAA2jH,WAAA,SAAW3jH,GACTA,EAAG+gB,iBACK,IAAAyjG,EAAgBhxH,KAAI,YACtB8wH,EAAMtkH,EAAiBwmD,aACvBj0C,EAAU/e,KAAK0xH,iBAAiBZ,GAAI/xG,QACzCvS,EAAG+Z,OAAuB5J,MAAMypD,OAAS,GAC1CrnD,GAAWiyG,GAAeA,EAAYjyG,GACtC/e,KAAK2wH,SAAS5xG,EAASvS,EACzB,EAEA,YAAAklH,iBAAA,SAAiBZ,GACf,IAAM5tC,EAAKljF,KAAKkjF,GACVx3D,EAAQolG,GAAMA,EAAGplG,MACjBqnC,EAAS+9D,GAAMA,EAAG/9D,OAAU,GAC5Bi+D,EAAc9tC,EAAGv/E,IAAI,eACvBob,EAAU+xG,GAAMA,EAAG/8D,QAAQ,QAE/B,GAAIhB,EAAMpyD,OAAQ,CAChBoe,EAAU,GACV,IAAK,IAAIlf,EAAI,EAAGA,EAAIkzD,EAAMpyD,OAAQd,IAAK,CACrC,IAAM2zD,EAAOT,EAAMlzD,GACb2C,EAAOgxD,EAAKhxD,KAAKyH,MAAM,KAAK,GAEtB,SAARzH,GACFuc,EAAQpa,KAAK,CACXnC,KAAI,EACJgxD,KAAI,EACJxsD,WAAY,CAAEwuD,IAAKhC,EAAK7pD,O,OAIzB,GAAIqnH,EACTjyG,EAAUiyG,OACL,IAAI,IAAAnsH,SAAQ6mB,EAAO,cAAgB,EACxC3M,EAAU+xG,GAAMA,EAAG/8D,QAAQ,aAAatkD,QAAQ,kBAAmB,SAC9D,IAAI,IAAA5K,SAAQ6mB,EAAO,kBAAoB,EAC5C3M,EAAU,CACRvc,KAAM,OACNwE,WAAY,CAAEwU,KAAMuD,GACpBA,QAASA,QAEN,IAAI,IAAAla,SAAQ6mB,EAAO,cAAgB,EAAG,CAC3C,IAAMmrD,EAAOi6C,GAAMA,EAAG/8D,QAAQ,aAC9B8iB,IAAS93D,EAAUnG,KAAK3L,MAAM4pE,G,MACJ,IAAjBnrD,EAAM/qB,QAA6B,eAAb+qB,EAAM,KAErC3M,EAAU,eAAQA,EAAO,WAG3B,IAAM7R,EAAS,CAAE6R,QAAO,GAGxB,OAFAmkE,EAAGp/E,QAAQ,kBAAmBgtH,EAAI5jH,GAE3BA,CACT,EACF,EAvPA,G,w9BCVA,eAsBE,WAAY/H,EAAcm9B,GAA1B,MACE,YAAM,CAAEn9B,MAAK,KAAG,KAblB,EAAAwsH,UAAW,EACX,EAAAtuB,QAAS,EAKT,EAAAuuB,cAAgB,EAER,EAAAC,MAAwC,CAAC,GAM/C,IAAAvvC,SAAQ,EAAM,gBAAiB,iBAAkB,aAAc,eACvD,IAAAluE,EAAO,EAAI,GAEnB,EAAK3U,OAAOylH,QAAU,SAChB,EAAKjtG,QAAU,CAAC,GAAE,CAEtBqgF,UAAW,IAGb,EAAKw5B,cAAgBxvF,EACrB,EAAKyvF,iBAAkB,IAAAzqC,UAAS,EAAKyqC,gBAAgBhmH,KAAK,GAAO,IACjE,IAAMimH,EAAU,EAAKC,iB,OACrB,EAAKznH,SAASrF,EAAO,cAAe,EAAK+sH,YACzC,EAAK1nH,SAASwnH,EAAS,gBAAiB,EAAKG,cAC7ChtH,EAAMm9B,KAAO,GACb,IAAAizE,WAAUnhG,EAAI,G,CAChB,CAsaF,OA9cuC,QAErC,sBAAI,sBAAO,C,IAAX,WACE,MAAO,QACT,E,gCAEA,sBAAI,yBAAU,C,IAAd,WACE,MAAO,CAAEg+G,gBAAiB,kBAC5B,E,gCAqCA,YAAAF,WAAA,WACU,IAAA/sH,EAAUnF,KAAI,MAChBqyH,EAASryH,KAAKipH,UACdp4G,EAAkB,GAClBF,EAAe,GACf1C,EAAU9I,EAAMwR,KAChBzI,EAAO/I,EAAMqJ,SAAS,QACtB8jH,EAAU,SAAC9qH,GACf,YADe,IAAAA,IAAAA,EAAA,IACfwhB,OAAO/nB,KAAKuG,GACTuJ,OACAjM,KAAI,SAAAjF,GAAK,iBAAIA,EAAC,cAAK2H,EAAK3H,GAAE,MAAjB,IACT4vD,KAAK,GAHR,EAII77C,EAAO,SAACkwF,EAAc9gG,EAAcoB,GACxC0/F,EAAMruF,SAAQ,SAAAgxE,GACJ,IAAA9hE,EAAoB8hE,EAAI,IAAnBz/E,EAAey/E,EAAI,YACpBzjF,EAAMuO,MAAK,SAAAnJ,GAAK,OAAAA,EAAEuc,MAAQA,GAAO2tG,EAAQlqH,EAAEpB,cAAgBsrH,EAAQtrH,EAAnD,KACpB5C,EAAIO,KAAK8hF,EACnB,GACF,EACA7yE,EAAK3F,EAASC,EAAMyC,GACpBiD,EAAK1F,EAAMD,EAAS4C,GACpBA,EAAS4E,SAAQ,SAAA88G,G,MACTn+G,EAAKi+G,EAAOnyF,cAAc,UAAGqyF,EAAI5tG,KAAG,OAAG2tG,EAAQC,EAAIvrH,cAC3C,QAAd,EAAAoN,aAAE,EAAFA,EAAI6Q,kBAAU,SAAEnH,YAAY1J,EAC9B,KACA,SAAai+G,EAAQ1hH,EACvB,EAEA,YAAAg1E,MAAA,WACE,OAAO3lF,KAAKoU,EACd,EAEA,YAAA69G,eAAA,WACE,OAAOjyH,KAAKkjF,GAAGsB,OAAOuB,UACxB,EAEA,YAAAkS,UAAA,WACE,OAAOj4F,KAAK2lF,QAAQzoE,aACtB,EAEA,YAAAspD,OAAA,WACE,OAAOxmE,KAAK2lF,QAAQ8J,eACtB,EAEA,YAAAw5B,QAAA,WACE,OAAOjpH,KAAKwmE,SAAStmC,cAAc,OACrC,EAEA,YAAA0kD,QAAA,WACE,OAAO5kF,KAAKwmE,SAAStmC,cAAc,OACrC,EAEA,YAAAgxF,WAAA,WACE,OAAOlxH,KAAK4kF,UAAU1kD,cAAc,0BACtC,EAEA,YAAAsyF,eAAA,WAKE,OAJKxyH,KAAKyyH,cACRzyH,KAAKyyH,aAAc,SAAS,MAAO,CAAEtlC,MAAO,UAAGntF,KAAKujF,KAAI,cAGnDvjF,KAAKyyH,WACd,EAEA,YAAA3tC,WAAA,W,MACE,OAAyB,QAAlB,EAAA9kF,KAAK8xH,qBAAa,eAAEY,OAC7B,EAEA,YAAAzrC,iBAAA,WACE,OAAOjnF,KAAKkjF,GAAGsB,OAAOyC,kBACxB,EAEA,YAAA0J,eAAA,WACE,OAAO3wF,KAAK2yH,SAAS,YACvB,EAEA,YAAA5jC,WAAA,WACE,OAAO/uF,KAAK2yH,SAAS,eACvB,EAEA,YAAAC,kBAAA,WACE,OAAO5yH,KAAK2yH,SAAS,gBACvB,EAEA,YAAAE,QAAA,WAKE,OAJK7yH,KAAKsoC,OACRtoC,KAAKsoC,KAAOtoC,KAAKoU,GAAGob,yBAGfxvB,KAAKsoC,IACd,EAKA,YAAAwqF,cAAA,WACU,IAAA1+G,EAAOpU,KAAI,GACb,EAA4BA,KAAK4kF,UAA/Bv4C,EAAS,YAAEJ,EAAU,aACvBnZ,EAAS1e,EAAG+a,aACZgX,EAAQ/xB,EAAGgb,YAEjB,MAAO,CACL0Z,IAAK10B,EAAGgzB,UACR1X,KAAMtb,EAAGg7B,WACTtc,OAAM,EACNqT,MAAK,EACLkG,UAAS,EACTJ,WAAU,EACV8mF,aAAc1mF,EAAYvZ,EAC1BkgG,YAAa/mF,EAAa9F,EAE9B,EAEA,YAAAwsF,SAAA,SAAShpH,GACC,IAAAkoH,EAAU7xH,KAAI,MAChB69F,EAAU79F,KAAK8kF,aAMrB,OAJK+sC,EAAMloH,KACTkoH,EAAMloH,GAAQk0F,EAAQ39D,cAAcv2B,IAG/BkoH,EAAMloH,EACf,EAEA,YAAAvE,OAAA,W,IAAO,sDACL,IAAMomF,EAAMxrF,KAAK4mC,QAKjB,OAJA5mC,KAAKizH,gBAAe,GACpBjzH,KAAK6xH,MAAQ,CAAC,EACdrmC,GAAOA,EAAIpmF,SACX,0BAAkCpF,KAAMU,GACjCV,IACT,EAEA,YAAAkzH,gBAAA,sBACElzH,KAAK4xH,cAAgB5xH,KAAKkxH,aAAa/hG,aAAenvB,KAAKoU,GAAG+a,aAI9D5H,YAAW,WACT,EAAK4rG,qBAAoB,GACzBC,sBAAsB,EAAKC,WAC7B,GAAG,EACL,EAEA,YAAAA,WAAA,WACE,GAAIrzH,KAAK2xH,SAAU,CACT,IAAA2B,EAAgBtzH,KAAI,YACtByiF,EAASziF,KAAKkjF,GAAGsB,OACjBwT,EAAMh4F,KAAKi4F,YACXs7B,EAAYv7B,EAAI5rD,YAChB4D,EAAUsjF,GAAe,EACzBE,EAAW/wC,EAAOmE,YAAYogC,gBAC9ByM,EAAczzH,KAAK6yH,UAAU//F,OAAS0gG,EACxCE,EAAUH,EAUd,GARIvjF,EAAUwjF,IACZE,GAAWF,EAAWxjF,GAGpBA,EAAUyjF,IACZC,GAAW1jF,EAAUyjF,KAIpB,IAAA7pC,aAAY0pC,IACbI,IAAYH,GACZG,EAAU,GACVA,EAAU1zH,KAAK4xH,cAEC5xH,KAAKinF,mBACbtqE,MAAMk9E,QAAU,IACxB75F,KAAK+xH,kBACL/5B,EAAIvvB,SAAS,EAAGirD,GAGlBN,sBAAsBpzH,KAAKqzH,W,CAE/B,EAEA,YAAAM,cAAA,SAAcnnH,GACZA,EAAG+gB,iBACHvtB,KAAKszH,aAAc,IAAAhsB,iBAAgB96F,GAAIwjC,QAAUhwC,KAAKkjF,GAAGoc,gBAC3D,EAEA,YAAAyyB,gBAAA,WACE/xH,KAAKinF,mBAAmBtqE,MAAMk9E,QAAU,EAC1C,EAEA,YAAA+5B,eAAA,WACE5zH,KAAK2xH,UAAY3xH,KAAKmzH,qBAAoB,EAC5C,EAEA,YAAAA,oBAAA,SAAoBlwC,GAClBjjF,KAAK2xH,SAAW1uC,EAChB,IAAM+U,EAAMh4F,KAAKi4F,YACXhpF,EAASg0E,EAAS,KAAO,MACzB4wC,EAAK,CAAEpsH,GAAE,KAAE0D,IAAG,OACpB0oH,EAAG5kH,GAAQ+oF,EAAK,qBAAsBh4F,KAAK2zH,eAC3CE,EAAG5kH,GAAQ+oF,EAAK,UAAWh4F,KAAK4zH,eAClC,EAEA,YAAA//G,OAAA,WACQ,MAAoB7T,KAAlB2T,EAAG,MAAE4vE,EAAI,OAAEL,EAAE,KAIrB,OAHAvvE,EAAInM,KAAK,CAAE2lF,MAAO,UAAG5J,EAAI,WACzBvjF,KAAK8zH,gBACL5wC,EAAGp/E,QAAQ,eAAgB9D,MACpBA,IACT,EAEA,YAAA8zH,cAAA,sBACQ,EAAoB9zH,KAAlBoU,EAAE,KAAEjP,EAAK,QAAE+9E,EAAE,KACf6wC,EAAS,aACTC,EAAS,CAAE5/G,GAAE,EAAEjP,MAAK,EAAEm9B,KAAMtiC,MAC5ByiF,EAASziF,KAAKiyH,iBACdgC,EAAe,SAAClN,G,MACpB,GAAIA,EAAQpmH,OAAS,EAAG,CACtB,IAAM+b,EAAMqqG,EAAQljH,QACdqwH,GAAW,SAAS,SAAU,IAClC1xH,KAAM,oBACF,IAAA0O,UAASwL,GAAO,CAAEA,IAAG,GAAKA,IAEhCw3G,EAASvgE,QAAUugE,EAAStgE,OAASqgE,EAAaloH,KAAK,KAAMg7G,GAC3C,QAAlB,EAAA3yG,EAAGq7E,uBAAe,SAAE94E,KAAK8N,YAAYyvG,E,MAErC,EAAKC,aACLjxC,GAAMA,EAAGp/E,QAAQiwH,EAAQC,EAE7B,EAEA5/G,EAAGw/C,OAAS,WACF,IAAAszD,EAAiB,EAAKjvG,OAAM,aACpC,GAAIivG,EAAc,CAChB,IAAM70F,EAAM,EAAKm0C,SACjBn0C,EAAIlV,OACJkV,EAAI+hG,MAAMlN,GACV70F,EAAIjV,O,CAEN8lE,GAAMA,EAAGp/E,QAAQ,UAAGiwH,EAAM,WAAWC,GACrCC,EAAa,MAAIxxC,EAAO9+E,IAAI,YAAU,GACxC,CACF,EAEA,YAAAwuH,aAAA,SAAatoH,QAAA,IAAAA,IAAAA,EAAA,IACX,IAAM8M,EAAO3W,KAAKipH,UACZxmC,EAASziF,KAAKiyH,iBACdoC,EAAY,SAAClhB,GACjB,OAAAA,EAAKruG,KAAI,SAAA0W,GAAQ,OACfmJ,IAAK,OACL3d,WAAY,IACVm/C,IAAK,eACD,IAAAj1C,UAASsK,GAAQ,CAAEA,KAAI,GAAKA,GAJnB,GAAjB,EAOI84G,EAAaD,EAAUxqH,EAAKqE,MAAQu0E,EAAOj0E,SAAS,WACpDgoB,EAAS69F,EAAU5xC,EAAO9+E,IAAI,WAC9BkN,EAAkB,GAClBF,EAAe,GACfiD,EAAO,SAACkwF,EAAc9gG,EAAcoB,GACxC0/F,EAAMruF,SAAQ,SAAAgxE,GACJ,IAAAjrE,EAASirE,EAAKz/E,WAAU,MACpBhE,EAAMuO,MAAK,SAAAnJ,GAAK,OAAAA,EAAEpB,WAAWwU,OAASA,CAAtB,KACpBpX,EAAIO,KAAK8hF,EACnB,GACF,EACA7yE,EAAK4iB,EAAQ89F,EAAY3jH,GACzBiD,EAAK0gH,EAAY99F,EAAQ3lB,GACzBA,EAAS4E,SAAQ,SAAA88G,G,MACTn+G,EAAKuC,EAAKupB,cAAc,sBAAcqyF,EAAIvrH,WAAWwU,KAAI,QACjD,QAAd,EAAApH,aAAE,EAAFA,EAAI6Q,kBAAU,SAAEnH,YAAY1J,EAC9B,KACA,SAAauC,EAAMhG,EACrB,EAEA,YAAAwjH,WAAA,e,IAAA,OACQ,EAA8Bn0H,KAA5BiY,EAAM,SAAEirE,EAAE,KAAE/9E,EAAK,QAAEo+E,EAAI,OACzBlxD,EAAMryB,KAAKwmE,SACX1pD,EAAO9c,KAAK4kF,UACZoT,EAAMh4F,KAAKi4F,YACX+vB,EAAO9kC,EAAGjrE,OAGhB+/E,EAAIu8B,WAAY,EAChBv0H,KAAKmyH,aAAa,CAAEjkH,KAAM,MAI1B,SACE4O,EACA,yBACEkrG,EAAKnG,SAAW5pG,EAAOkvG,YAAc,GAAE,iIAOtC5jC,EAAI,oJAKJA,EAAI,wHAKJA,EAAI,yDAtBS,UAuBgB,0CAG7BA,EAAI,0IAMJA,EAAI,8FAKJA,EAAI,0EAIJA,EAAI,oQAWJA,EAAI,uGAKJA,EAAI,0EAIJA,EAAI,iCACJA,EAAI,oFAILykC,EAAKjG,WAAa,GAAE,mBACpBiG,EAAKlG,cAAgB,GAAE,mBAG3B,IAAMx8B,EAAYngF,EAAMk/G,eAChB/hF,EAAS4gD,EAAGuR,WAAW6zB,QAAQ,WAAW,KAClDtoH,KAAK4mC,QAAU,IAAItE,EAAK,CACtBn9B,MAAOmgF,EACPrtE,OAAQ,SACHqtE,EAAUrtE,QAAM,CACnBirE,GAAE,EACFoV,UAAWt4F,SAEZ6T,UACH,SAAOiJ,EAAkB,QAAZ,EAAA9c,KAAK4mC,eAAO,eAAExyB,KAC3B,SACE0I,EACA,IAAI,GAAa,CACf7X,WAAYE,EAAM6jH,YAElB/wG,OAAQ,SACHirE,EAAGglC,IAAIthC,aAAW,CACrB0R,UAAWt4F,SAEZ6T,SAASO,KAEd,SAAO0I,EAAM9c,KAAKwyH,mBAMlB,IAAA/qH,IAAGqV,EAAM,SAAS,SAAAtQ,GAAE,MAAI,OAAAA,GAA4B,MAAb,QAAT,EAAAA,EAAG+Z,cAAM,eAAE9S,UAAkBjH,EAAG+gB,gBAAgB,KAC9E,IAAA9lB,IAAGqV,EAAM,UAAU,SAAAtQ,GAAM,OAAAA,GAAMA,EAAG+gB,gBAAT,IAIzB,CACE,CAAE5a,MAAO,yBAA0Bw6E,MAAO,iBAC1C,CAAEx6E,MAAO,8BAA+Bw6E,MAAO,cAC/C,CAAEx6E,MAAO,oCAAqCw6E,MAAO,gBACrD,CAAEx6E,MAAO,QAASw6E,MAAO,eACzB13E,SAAQ,SAAAzU,GACR,OAAAA,EAAI2R,MAAM1I,MAAM,KAAKwL,SAAQ,SAAA9C,GAC3B0f,EAAI/U,iBAAiB3K,GAAO,SAAAnG,GAAM,SAAK4H,GAAGw7D,eAAc,SAAkBpjE,EAAIxL,EAAImsF,OAAhD,GACpC,GAFA,IAKFntF,KAAKizH,gBAAe,IAEhB,IAAA9e,QAAOjxB,KACTljF,KAAKw0H,UAAY,IAAI,GAAUtxC,EAAgB,QAAZ,EAAAljF,KAAK4mC,eAAO,eAAExyB,KAGnDpU,KAAKqjG,QAAS,EACdl+F,EAAMrB,QAAQ,SAChB,EAEA,YAAAmvH,eAAA,SAAehwC,GACb,IAAMh0E,EAASg0E,EAAS,EAAAx7E,GAAK,EAAA0D,IACvB6sF,EAAMh4F,KAAKi4F,YACjBD,GAAO/oF,EAAO+oF,EAAK,UAAG,MAAS,WAAWh4F,KAAKy0H,YACjD,EAEA,YAAAA,YAAA,WACEz0H,KAAKmF,MAAMykH,cACb,EACF,EA9cA,CAAuC,I,wwBCFvC,YAaE,WAAYzkH,EAAc2wF,GAA1B,MACE,YAAM,CAAE3wF,MAAK,KAAG,MAChB,IAAAm9E,SAAQ,EAAM,WAAY,cAAe,eAAgB,SAAU,aAEpD,SACVn9E,EAAM8S,QAAM,CACf65G,cAAe,I,OAEjB,EAAK9uB,GAAKlN,EACV,EAAK3F,MAAQ,IAAI,GAAUhrF,EAAO,GAClC,EAAKuvH,UAAY,UAAG,EAAKnxC,KAAI,uBAC7B,EAAKoxC,cAAe,IAAArtC,UAAS,EAAKqtC,aAAa5oH,KAAK,GAAO,GAC3D,EAAK6oH,YAAa,IAAAttC,UAAS,EAAKstC,WAAW7oH,KAAK,GAAO,GACvD,EAAKvB,SAASrF,EAAO,SAAU,EAAK0vH,aACpC,EAAKrqH,SAASrF,EAAO,oBAAqB,EAAK2vH,WAC/C,EAAKtqH,SAASrF,EAAO,6BAA8B,EAAKyvH,YACxD,EAAKpqH,SAASrF,EAAO,iBAAkB,EAAKC,QAC5C,EAAK0vH,YACL,EAAKC,e,CACP,CAyMF,OAzO2C,QACzC,YAAArrH,OAAA,WACE,MAAO,CACL,6BAA8B,SAC9B,+BAAgC,YAEpC,EA4BA,YAAAqrH,aAAA,eAEMC,EAAeC,EAAe50B,EAFpC,OACU5gG,EAAkBO,KAAZ,OAAEmF,EAAUnF,KAAL,MAEfgwH,EAAgB,SAACvoH,GACrBhI,EAAOi8F,mBAAmBj0F,EAC5B,EAEAzH,KAAKmjF,QAAU,IAAI+xC,GAAA,EAAQ,CACzBxxC,QAAS,WACD,MAAWv+E,EAAM6B,WAAf6sB,EAAC,IAAE+Z,EAAC,IACZyyD,EAAO,EAAKnd,GAAGiyC,oBACfH,EAAQnhG,EACRohG,EAAQrnF,EACRoiF,GAAc,EAChB,EACApsC,MAAO,WAAM,OAAAosC,GAAc,EAAd,EACbvsC,YAAa,SAAC2xC,GACZjwH,EAAMM,IAAI,CACRouB,EAAGmhG,EAAQI,EAAQvhG,EAAIwsE,EACvBzyD,EAAGqnF,EAAQG,EAAQxnF,EAAIyyD,GAE3B,GAEJ,EAEA,YAAAg1B,UAAA,SAAU7oH,G,MACRA,IAAkB,QAAZ,EAAAxM,KAAKmjF,eAAO,SAAEnnE,MAAMxP,GAC5B,EAEA,YAAA8oH,QAAA,SAAQzrH,GACE,IAAAsmF,EAAUnwF,KAAI,MACtBmwF,GAASA,EAAM/qF,OAAOyE,IACtB,SAAS7J,KAAK0yH,QAChB,EAEA,YAAAttH,OAAA,SAAOyE,GAAP,WAKE,OAJA7J,KAAKs1H,QAAQzrH,GACb,0BAAkC7J,KAAM6J,GAExC,CAAC,QAAS,UAAW,KAAM,WAAW4L,SAAQ,SAAA5V,GAAK,OAAC,EAAKA,GAAK,CAAX,IAC5CG,IACT,EAEA,YAAA20H,aAAA,W,MACQ,EAAqB30H,KAAnBkjF,EAAE,KAAEvvE,EAAG,MAAEw8E,EAAK,QACjBjN,IAAMA,EAAGqyC,YACdryC,EAAG2S,WAAW,CAAE4I,iBAAkB,IAClC9qF,EAAI04E,YAAYrsF,KAAK00H,WACT,QAAZ,EAAAvkC,aAAK,EAALA,EAAOhrF,aAAK,SAAEykH,eAChB,EAEA,YAAAkL,UAAA,SAAU5O,GACF,IAAE/gH,EAAcnF,KAAT,MAAEoU,EAAOpU,KAAL,GACX,EAAWmF,EAAM6B,WAAf6sB,EAAC,IAAE+Z,EAAC,IACJjxB,EAAUvI,EAAE,MACpBpU,KAAKmwF,MAAM7nD,UAAOjjC,EAClBsX,EAAM+S,KAAOkY,MAAM/T,GAAKA,EAAI,UAAGA,EAAC,MAChClX,EAAMmsB,IAAMlB,MAAMgG,GAAKA,EAAI,UAAGA,EAAC,MAC/Bs4E,GAAMlmH,KAAK20H,cACb,EAEA,YAAAC,WAAA,WACE50H,KAAKw1H,WACP,EAMA,YAAAA,UAAA,WACQ,MAA2Cx1H,KAAzCkjF,EAAE,KAAE9uE,EAAE,KAAET,EAAG,MAAExO,EAAK,QAAEuvH,EAAS,YAAEvkC,EAAK,QAC5C,GAAKA,EAAL,CACAA,EAAM7nD,UAAOjjC,EACbsO,EAAI2R,SAASovG,GACP,MAA+B10H,KAAKy1H,eAAlCC,EAAS,YAAEvvF,EAAK,QAAErT,EAAM,WAG5B,IAAA2kF,QAAOtxE,KAAU,IAAAsxE,QAAO3kF,KAC1B3tB,EAAMM,IAAI,SAED0gC,EAAoC,CAAC,EAA7B,CAAEA,MAAO/xB,EAAGgb,cACpB0D,EAAuC,CAAC,EAA/B,CAAEA,OAAQ1e,EAAG+a,eAE7B,CAAEvhB,OAAQ,IAMds1E,EAAGqS,YAAY,CAAEkJ,iBAAkB,IACnCi3B,EAAY11H,KAAK20H,eAAiBptG,WAAWvnB,KAAK20H,aAAc,IAnB9C,CAoBpB,EAEA,YAAAgB,SAAA,WACQ,IAAExlC,EAAcnwF,KAAT,MAASA,KAAL,GACd8D,QAAQ,eAAgB,CACzBqsF,MAAK,EACLrzE,KAAMqzE,EAAMvL,UACZr+D,OAAQ4pE,EAAM8H,aAElB,EAEA,YAAA48B,YAAA,WACoB70H,KAAI,MAChBi4F,YAAY29B,SAAW51H,KAAK21H,SAClC31H,KAAKw1H,WACP,EAEA,YAAAC,aAAA,WACE,IAAM1tC,EAAK,KACH5iF,EAAcnF,KAAT,MACL2c,EADc3c,KAAL,GACG,MACd,EAAoBmF,EAAM6B,WAAxBm/B,EAAK,QAAErT,EAAM,SACf+iG,EAAQl5G,EAAMwpB,OAAS,GACvB2vF,EAAQn5G,EAAMmW,QAAU,GACxBijG,EAAO5vF,GAAS,GAChB6vF,EAAOljG,GAAU,GACjB4iG,EAAYG,GAASE,GAAQD,GAASE,EAG5C,OAFAr5G,EAAMwpB,OAAQ,IAAAmyE,UAASyd,GAAQ,UAAGA,GAAI,OAAGhuC,GAAOguC,EAChDp5G,EAAMmW,QAAS,IAAAwlF,UAAS0d,GAAQ,UAAGA,GAAI,OAAGjuC,GAAOiuC,EAC1C,CAAEN,UAAS,EAAEvvF,MAAK,EAAErT,OAAM,EAAEijG,KAAI,EAAEC,KAAI,EAC/C,EAEA,YAAAniH,OAAA,WACQ,MAAsC7T,KAApCmwF,EAAK,QAAEx8E,EAAG,MAAE4vE,EAAI,OAAEyf,EAAE,KAAE79F,EAAK,QAAEiP,EAAE,KAC/B0iF,EAAa3xF,EAAM6B,WAAU,SACrChH,KAAKs1H,UACLt1H,KAAKy1H,eACLtlC,EAAMt8E,SACNF,EACGq+B,QACAxqC,KAAK,CAAE2lF,MAAO,UAAG5J,EAAI,mBACrByP,OACC,+BACYzP,EAAI,oFACFA,EAAI,8DACdp+E,EAAMxB,IAAI,SAAW,GAAE,kDAEb4/E,EAAI,2DACFA,EAAI,8RAKRA,EAAI,8EACJA,EAAI,4EACJA,EAAI,6DAGjByP,OAAO7C,EAAM/7E,IAChB,IAAMs+G,GAAU,SACd,MACA,CACEvlC,MAAO,UAAG5J,EAAI,SACd5mE,MAAO,sCAET,+BACc4mE,EAAI,4DACJA,EAAI,yDACJA,EAAI,gDACFA,EAAI,sEAENA,EAAI,8CACJA,EAAI,6EACJA,EAAI,gDACJA,EAAI,s3BAcJA,EAAI,kCAGpBvjF,KAAK0yH,QAAUA,EACf,IAAMuD,EAAOjzB,aAAE,EAAFA,EAAIkzB,aAcjB,OAbAD,GAAQA,EAAKxxG,YAAYiuG,GACzB57B,GACEA,EAAS,CACP1iF,GAAE,EACF+hH,MAAO/hH,EAAG8rB,cAAc,oBACxBk2F,QAAShiH,EAAG8rB,cAAc,sBAC1Bm2F,SAAUjiH,EAAG8rB,cAAc,uBAC3Bo2F,OAAQliH,EAAG8rB,cAAc,qBACzBiwD,MAAOhrF,EACPoxH,iBAAkBv2H,KAClBoF,OAAQpF,KAAKoF,OACbiwH,UAAWr1H,KAAKq1H,YAEbr1H,IACT,EACF,EAzOA,CAA2C,I,2fCF3C,eAIE,WAAY6J,EAAWoO,QAAX,IAAApO,IAAAA,EAAA,IAAZ,MACE,YAAMA,GAAM,IAAK,K,OACjB,EAAKW,SAAS,EAAKvF,WAAY,QAAS,EAAK4O,QAC7C,EAAKiiF,WAAa79E,EAAO69E,WACzB,EAAKwxB,QAAUrvG,EAAOxY,O,CACxB,CAoBF,OA7BwC,QAWtC,YAAA2kG,eAAA,SAAeN,EAAwBj6F,QAAA,IAAAA,IAAAA,EAAA,IACrCi6F,EAAMruF,SAAQ,SAAAgxE,GAAQ,OAAAA,EAAKrhF,OAAOyE,EAAZ,GACxB,EAEA,YAAAitF,SAAA,WACQ,IAAEnjF,EAAc3T,KAAX,IAAEujF,EAASvjF,KAAL,KACjB2T,EAAInM,KAAK,CAAE2lF,MAAO,UAAG5J,EAAI,WAC3B,EAEA,YAAA4gB,WAAA,YACgBnkG,KAAKuuH,gBAAkB,IAC/B94G,SAAQ,SAAAgxE,GAAQ,OAAAA,EAAKrhF,QAAL,IACtBpF,KAAKuuH,eAAiB,EACxB,EAEU,YAAAC,WAAV,SAAqB/nC,EAAWjkF,GAC9B,OAAO,IAAI,GAAcikF,EAAMzmF,KAAK81F,WACtC,EACF,EA7BA,CAAwC,I,qvBC+BxC,eAuCE,WAAY3wF,GAAZ,MACE,YAAM,CAAEA,MAAK,KAAG,KAXlB,EAAAmjG,OAAQ,GAYN,IAAAhmB,SAAQ,EAAM,WAAY,aAAc,gBAClC,MAAc,EAAZY,EAAE,KAAEe,EAAG,M,OACf,EAAKrvE,UAAY,UAAGqvE,EAAG,iBAAUf,EAAGjrE,OAAOksG,SAAgC,GAArB,WAAIlgC,EAAG,cAC7D,EAAKuyC,cACL,EAAKhsH,SAAS04E,EAAI,sBAAuB,EAAKuzC,UAC9C,EAAKjsH,SAAS04E,EAAI,qBAAsB,EAAKwzC,eAC7C,EAAKlsH,SAASrF,EAAO,gCAAiC,EAAKwxH,cAC3D,EAAKnsH,SAASrF,EAAO,gBAAiB,EAAKyxH,iBAC3C,EAAKC,iBAAgB,G,CACvB,CA4dF,OA9gBwC,QACtC,YAAAntH,OAAA,WACE,MAAO,CACLotH,MAAO,UAEX,EAEA,YAAAna,SAAA,WACU,IAAA14B,EAAQjkF,KAAI,IACpB,MAAO,+BACSikF,EAAG,gEACNA,EAAG,2BAAiBA,EAAG,0CAEtC,EAuCA,YAAA2yC,gBAAA,WACE52H,KAAKw2H,cACLx2H,KAAK+2H,eACP,EAEA,YAAAP,YAAA,WACQ,MAAgCx2H,KAA9BojG,EAAM,SAAEj+F,EAAK,QAAE8S,EAAM,SAAEirE,EAAE,KAC3Bj+E,EAAaE,EAAMi+F,OACzBlgB,EAAGz9E,IAAI,cAAe,GACtBR,EAAW4G,KAAK,cAAc,WAAM,OAAAq3E,EAAGz9E,IAAI,cAAe,EAAtB,IACpC29F,SAAAA,EAAQh+F,SACRpF,KAAKojG,OAAS,IAAI,GAChB,CAAEn+F,WAAU,GAAE,SAETgT,GAAM,CACT69E,WAAY91F,OAGlB,EAEA,YAAA02H,cAAA,SAAcpxC,EAAsBz7E,G,WAAA,IAAAA,IAAAA,EAAA,IAC1B,IAAAie,EAAWje,EAAI,OACjBmtH,EAAYh3H,KAAKkjF,GAAGv/E,IAAI,gBAE9BmkB,IACiB,QAAf,EAAAw9D,EAAUsT,aAAK,SAAEnjF,SAAQ,SAAA6sB,GACvBA,EAAKi2D,cAAgBy+B,GAAa10F,EAAKmU,eAAe3uB,EACxD,IACJ,EAEA,YAAA1iB,OAAA,W,UAAO,kDAML,OALW,QAAX,EAAApF,KAAKojG,cAAM,SAAEh+F,SAEbpF,KAAKojG,YAAS/9F,EACd,0BAAkCrF,KAAMU,GACxCV,KAAK62H,iBAAgB,GACd72H,IACT,EAEA,YAAAutB,eAAA,SAAe/gB,G,MACTA,IACFA,EAAG+gB,iBAEY,QAAf,EAAA/gB,EAAG8lG,oBAAY,SAAE/kF,iBAErB,EAEA,YAAA0pG,aAAA,SAAazqH,GAKb,EAEA,YAAAqqH,gBAAA,SAAgB5zC,GACCjjF,KAAI,GAAX,IACFQ,EAAKyiF,EAAS,EAAAx7E,GAAK,EAAA0D,IAEzB3K,EAAGkU,SAAU,WAAY1U,KAAK+8D,YAC9Bv8D,EAAGT,OAAQ,gBAAiBC,KAAKy2H,SAEnC,EAEA,YAAA15D,WAAA,SAAWvwD,GACD,IAAA02E,EAAOljF,KAAI,GAGP,OAFA,IAAA6iF,YAAWr2E,IAEoB,IAAxB02E,EAAGoc,kBAA2Bpc,EAAGsB,OAAO0yC,mBACzDl3H,KAAKutB,eAAe/gB,GACpB02E,EAAG2T,OAAOjB,WAAW,oBAEzB,EAEA,YAAAuhC,QAAA,SAAQ3qH,GACN,IAAKA,EAAGoiB,SAAWpiB,EAAG8pD,UAAYt2D,KAAKkjF,GAAG0D,YAAYs9B,YAAa,CACjElkH,KAAKutB,eAAe/gB,GACZ,IAAArH,EAAUnF,KAAI,MAEhB6iD,EAAQ32C,KAAKC,KAAK,EAAGD,KAAKiE,IAAI,EAAG3D,EAAGm2C,aAAen2C,EAAGg2C,SACtD69C,EAAOl7F,EAAMxB,IAAI,QACvBwB,EAAMM,IAAI,OAAQ46F,EAAe,EAARx9C,E,CAE7B,EAEA,YAAA8zE,aAAA,SAAanqH,GACH,IAAA02E,EAAOljF,KAAI,GACbo3H,EAAU,CAAE34B,iBAAkB,GACpCz+F,KAAKq3H,mBACLr3H,KAAKy2H,WACLvzC,EAAGqS,YAAY6hC,GACfl0C,EAAGp/E,QAAQ,gBAAiB0I,GAC5BxM,KAAKs3H,WAAa7vG,aAAaznB,KAAKs3H,WACpCt3H,KAAKs3H,UAAY/vG,YAAW,WAAM,OAAA27D,EAAG2S,WAAWuhC,EAAd,GAAwB,IAC5D,EAEA,YAAAC,iBAAA,WACQ,MAAgCr3H,KAA9Bu3H,EAAU,aAAEpyH,EAAK,QAAE1F,EAAM,SAEjC,GAAI83H,EAAY,CACR,MAAWpyH,EAAM6B,WAAf6sB,EAAC,IAAE+Z,EAAC,IACN4pF,EAAS/3H,EAAO6/F,iBAChBm4B,EAAMh4H,EAAO01H,oBAEnBoC,EAAW56G,MAAMyrE,UAAY,gBAASovC,EAAM,uBAAe3jG,EAAI4jG,EAAG,eAAO7pF,EAAI6pF,EAAG,M,CAEpF,EAEA,YAAAC,YAAA,SAAY7tH,G,WAAA,IAAAA,IAAAA,EAAA,IACJ,MAAwB7J,KAAtBkjF,EAAE,KAAEzjF,EAAM,SAAE0F,EAAK,QACnBwyH,EAAa33H,KAAK43H,kBAChBxjH,EAAOvK,EAAI,GACbguH,EAAUzjH,IAAO,IAAAikF,WAAUjkF,GAAIkkF,UAC/BnI,EAAQ0nC,EAAUA,EAAQ1yH,MAAQ0E,EAAKsmF,OAASjN,EAAGmrC,wBAA0BlpH,EAAMi+F,OAAO3/F,GAAG,GAC7F,EAAW0sF,EAAMnpF,WAAf6sB,EAAC,IAAE+Z,EAAC,IACNkqF,EAAmB,CACvBjkG,EAAGA,QAAAA,EAAK,EACR+Z,EAAGA,QAAAA,EAAK,EACRzH,MAAOgqD,EAAMhqD,MACbrT,OAAQq9D,EAAMr9D,QAGhB,GAAI1e,EAAI,CACN,IAAM2jH,EAAS/3H,KAAKg4H,aAAa5jH,GACjC0jH,EAAQjkG,EAAIikG,EAAQjkG,EAAIkkG,EAAOlkG,EAC/BikG,EAAQlqF,EAAIkqF,EAAQlqF,EAAImqF,EAAOnqF,EAC/BkqF,EAAQ3xF,MAAQ4xF,EAAO5xF,MACvB2xF,EAAQhlG,OAASilG,EAAOjlG,M,CAG1B,IAAMmlG,EAAWpuH,EAAKquH,aAChB18F,EAAc,QAAR,EAAA3xB,EAAK2xB,WAAG,QAAI,EAClB28F,GAAW,IAAA7f,UAAS98E,GACpB48F,EAAOD,EAAW38F,EAAMA,EAAI3H,EAC5BwkG,EAAOF,EAAW38F,EAAMA,EAAIoS,EAC5B0qF,EAAWR,EAAQ3xF,MAAe,EAAPiyF,EAC3BG,EAAYT,EAAQhlG,OAAgB,EAAPulG,EAC7BG,EAAcb,EAAWxxF,MACzBsyF,EAAed,EAAW7kG,OAC1B4lG,EAAaF,EAAcF,EAC3BK,EAAcF,EAAeF,EAE7BK,EAAYX,EAAWS,EAAaxsH,KAAKiE,IAAIuoH,EAAYC,GACzDt4B,EAAmB,IAAZu4B,EACbn5H,EAAOo5H,QAAQx4B,GAGf,IAGMvzD,EAAS,CACbjZ,IAJcikG,EAAQjkG,GAAKs8D,EAAMhqD,OAASqyF,EAAcA,EAAc,EAAIF,EAAW,GAAKF,GAI7EA,GAAQQ,EACrBhrF,IAJckqF,EAAQlqF,EAAI6qF,EAAe,EAAIF,EAAY,EAI5CF,GAAQO,GAGvB,GAAIX,EAAU,CACZ,IAAMa,EAAWr5H,EAAO01H,oBAGlB4D,GAFoBN,EAAeK,EACIL,GACX,EAClC3rF,EAAOc,IAAMkqF,EAAQlqF,EAAIyqF,GAAQO,EAAYG,EAASD,C,CAGxDr5H,EAAOu5H,UAAUlsF,EAAOjZ,EAAGiZ,EAAOc,EACpC,EAOA,YAAAqrF,eAAA,SAAe7kH,GACb,IAAMwmF,GAAO,IAAAlW,YAAWtwE,GAClBk0B,GAAO,IAAAqsE,WAAU/Z,GACjBs+B,EAAYl5H,KAAKm5H,eAAev+B,GAChCw+B,EAAO9wF,EAAKQ,IACZuwF,EAAQ/wF,EAAK5Y,KACnB,OAAO0pG,GAAQ,GAAKC,GAAS,GAAKD,GAAQF,EAAUpmG,QAAUumG,GAASH,EAAU/yF,KACnF,EAOA,YAAAhL,OAAA,SAAO/mB,EAAkBvK,QAAA,IAAAA,IAAAA,EAAA,IACf,IAAAq+E,EAAar+E,EAAI,SACnBy+B,GAAO,IAAAqsE,WAAUvgG,GACjB0T,EAASogE,EAAW,CAAEr0D,EAAG,EAAG+Z,EAAG,IAAM,SAAkBx5B,GAE7D,MAAO,CACL00B,IAAKR,EAAKQ,IAAMhhB,EAAO8lB,EACvBle,KAAM4Y,EAAK5Y,KAAO5H,EAAO+L,EACzBsS,MAAOmC,EAAKnC,MACZrT,OAAQwV,EAAKxV,OAEjB,EAEA,YAAAklG,aAAA,SAAa5jH,GACL,OAA+B,IAAAugG,WAAUvgG,GAAvC+xB,EAAK,QAAErT,EAAM,SACrB,MAAO,CACLe,EAFyB,OAGzB+Z,EAH8B,MAI9BzH,MAAK,EACLrT,OAAM,EAEV,EAEA,YAAAwmG,gBAAA,SAAgBzvH,QAAA,IAAAA,IAAAA,EAAA,IACR,MAA+B7J,KAAK43H,kBAAlC9uF,EAAG,MAAEpZ,EAAI,OAAEyW,EAAK,QAAErT,EAAM,SACxBrzB,EAAWO,KAAI,OAEvB,GAAI6J,EAAK0vH,QAAS,CAChB,IAAMl5B,EAAO5gG,EAAO01H,oBACdroF,EAASrtC,EAAO+5H,YAChBC,EAAUz5H,KAAK05H,mBAIrB,MAAO,CACL7lG,IAJSiZ,EAAOjZ,EAAI4lG,EAAQ5lG,GAAK,GAI1BwsE,EACPzyD,IAJSd,EAAOc,EAAI6rF,EAAQ7rF,GAAK,GAI1ByyD,EACPl6D,MAAOA,EAAQk6D,EACfvtE,OAAQA,EAASutE,E,CAGnB,MAAO,CACLxsE,EAAGnE,EACHke,EAAG9E,EACH3C,MAAK,EACLrT,OAAM,EAGZ,EAEA,YAAA4mG,iBAAA,WACE,IAAMr5B,EAAOrgG,KAAKP,OAAO01H,oBACnB,EAAoBn1H,KAAK43H,kBAAvBzxF,EAAK,QAAErT,EAAM,SAMrB,MAAO,CACLe,GANiBsS,EAAQk6D,EAEKl6D,GAId,EAAIk6D,EACpBzyD,GANkB9a,EAASutE,EAEKvtE,GAIf,EAAIutE,EAEzB,EAMA,YAAAo2B,SAAA,WACEz2H,KAAK25H,YAASt0H,EACdrF,KAAK45H,YAASv0H,CAChB,EAOA,YAAA8zH,eAAA,SAAe/kH,G,MACb,IAAKpU,KAAK25H,QAAUvlH,EAAI,CACtB,IAAM+7E,EAAkB,QAAV,EAAAnwF,KAAKmwF,aAAK,eAAE/7E,GACpBylH,EAAQzlH,aAAE,EAAFA,EAAI8b,cAAc+2E,YAC1B6yB,EAAOD,EAASA,EAAMvJ,aAA+BngC,EAC3DnwF,KAAK25H,OAAS35H,KAAKm7B,OAAO2+F,GAAQ3pC,E,CAEpC,OAAOnwF,KAAK25H,MACd,EAOA,YAAA/B,gBAAA,WAEE,OADK53H,KAAK45H,SAAQ55H,KAAK45H,OAAS55H,KAAKm7B,OAAOn7B,KAAKoU,KAC1CpU,KAAK45H,MACd,EASA,YAAAhyC,cAAA,SAAcxzE,EAAiBvK,QAAA,IAAAA,IAAAA,EAAA,IAC7B,IAAMw2F,EAAOrgG,KAAKP,OAAO6/F,iBACnBy6B,EAAc/5H,KAAKm5H,eAAe/kH,GAClC4lH,EAAWh6H,KAAKoU,GAChB+8G,EAAenxH,KAAK43H,kBACpBG,EAAS/3H,KAAKm7B,OAAO/mB,EAAIvK,GACzBowH,EAAWpwH,EAAKqwH,iBAAmB,EAAIH,EAAYjxF,IACnDqxF,EAAYtwH,EAAKqwH,iBAAmB,EAAIH,EAAYrqG,KAEpDymG,EAAQtsH,EAAKuwH,eAAiBrC,EAAOjvF,IAAMivF,EAAOjvF,IAAMu3D,EACxDi2B,EAASzsH,EAAKuwH,eAAiBrC,EAAOroG,KAAOqoG,EAAOroG,KAAO2wE,EAOjE,MAAO,CAAEv3D,IALGj/B,EAAKqwH,iBAAmB/D,EAAQA,EAAQ8D,EAAW9I,EAAaroF,IAAMkxF,EAAS3tF,UAK7E3c,KAJD7lB,EAAKqwH,iBAAmB5D,EAASA,EAAS6D,EAAYhJ,EAAazhG,KAAOsqG,EAAS/tF,WAI5EnZ,OAHLjpB,EAAKuwH,eAAiBrC,EAAOjlG,OAASilG,EAAOjlG,OAASutE,EAGzCl6D,MAFdt8B,EAAKuwH,eAAiBrC,EAAO5xF,MAAQ4xF,EAAO5xF,MAAQk6D,EAE/BA,KAAI,EAAE/3D,KAAMyvF,EACjD,EAQA,YAAAsC,kBAAA,SAAkBjmH,GAChB,IAAKA,IAAM,IAAAksF,YAAWlsF,GAAK,MAAO,CAAC,EACnC,IAAMlH,EAA+B,CAAC,EAChCspB,EAASz2B,OAAOynC,iBAAiBpzB,GACjCisF,EAAOrgG,KAAKP,OAAO6/F,iBAezB,MAd6D,CAC3D,YACA,cACA,eACA,aACA,aACA,eACA,gBACA,eAEmB7pF,SAAQ,SAAA0lB,GAC3BjuB,EAAOiuB,GAAUotD,WAAW/xD,EAAO2E,IAAWklE,CAChD,IAEOnzF,CACT,EAOA,YAAAs2E,YAAA,SAAY35E,G,WAAA,IAAAA,IAAAA,EAAA,IACV,IAAMwoB,EAAgB,QAAV,EAAAryB,KAAKmwF,aAAK,eAAE/7E,GAAGq7E,gBAC3B,IAAKp9D,EACH,MAAO,CACLyW,IAAK,EACLpZ,KAAM,EACNyW,MAAO,EACPrT,OAAQ,GAGZ,IAAMwnG,EAAMjoG,EAAIvV,KACVujF,EAAOrgG,KAAKP,OAAO6/F,iBACnBi7B,EAAKv6H,KAAKm5H,iBACVvzB,EAAK5lG,KAAK43H,kBACR1vC,EAAar+E,EAAI,SAEzB,MAAO,CACLi/B,IAAKyxF,EAAGzxF,KAAOo/C,EAAW,EAAIoyC,EAAIjuF,WAAag0D,EAAOuF,EAAG98D,IACzDpZ,KAAM6qG,EAAG7qG,MAAQw4D,EAAW,EAAIoyC,EAAIruF,YAAco0D,EAAOuF,EAAGl2E,KAC5DyW,MAAOy/D,EAAGz/D,MACVrT,OAAQ8yE,EAAG9yE,OAEf,EAQA,YAAA0nG,aAAA,SAAal4F,GACX,IAAMn9B,EAAQm9B,EAAKn9B,MACbmF,EAAKnF,EAAMmlH,QAEZhoF,EAAKm4F,kBACRn4F,EAAKm4F,iBAAkB,SAAS,MAAO,CAAE,UAAWnwH,IACpDtK,KAAKwyH,iBAAiB/tG,YAAY6d,EAAKm4F,kBAGzCn4F,EAAKluB,GAAG9J,GAAKA,EACbg4B,EAAKm4F,gBAAgBzzC,UAAY,GAGjC,IAAMnS,EAASngE,SAASC,cAAc,UAChC+lH,EAAWv1H,EAAMw1H,kBACjBC,EAAcz1H,EAAMxB,IAAI,gBAAkB+2H,EAAW,uBAAgBA,EAAQ,QAC7EG,EAAcjiH,KAAKC,UAAU1T,EAAM21H,oBACzCjmD,EAAOmS,UAAY,uFAEuB18E,EAAE,qDAErCswH,EAAW,wBAAgBC,EAAW,mBAI7CtzG,YAAW,WACT,IAAMwzG,EAAMz4F,EAAKm4F,gBACjBM,SAAAA,EAAKt2G,YAAYowD,EACnB,GAAG,EACL,EAMA,YAAA29C,eAAA,SAAelwF,GACb,IAAMg2D,EAAYt4F,KAAKg7H,aAAa14F,GACpC,OAAOg2D,GAAaA,EAAUk6B,gBAChC,EAEA,YAAAwI,aAAA,SAAa14F,GACX,OAAOA,aAAI,EAAJA,EAAMi2D,cAAev4F,KAAKkjF,GAAGv/E,IAAI,eAC1C,EAEA,YAAAozH,cAAA,WACE,GAAK/2H,KAAKsoG,MAAV,CACM,MAAoCtoG,KAAlCmF,EAAK,QAAEi+F,EAAM,SAAElgB,EAAE,KAAEq0C,EAAU,aAC/BlN,EAAOllH,EAAMi+F,OACnBinB,EAAKF,eACL/mB,EAAOvvF,SACP,IAAMonH,EAAY5Q,EAAK5mH,GAAG,GACpBuzH,EAAYiE,aAAS,EAATA,EAAW34F,KAC7B4gD,EAAGg4C,gBAAgBlE,GACnBO,SAAAA,EAAY9yG,YAAY2+E,EAAOhvF,IAC/BpU,KAAKmwF,MAAQ6mC,EACbh3H,KAAKq3H,kBAVkB,CAWzB,EAEA,YAAA8D,aAAA,WACEn7H,KAAK+2H,eACP,EAEA,YAAAljH,OAAA,WACQ,MAAgC7T,KAA9BoU,EAAE,KAAET,EAAG,MAAE4vE,EAAI,OAAEtrE,EAAM,SAAEirE,EAAE,KACjCvvE,EAAIuiE,KAAKl2E,KAAK28G,YACd,IAAMye,EAAUznH,EAAIC,KAAK,iBACzB5T,KAAKu3H,WAAa6D,EAAQz3H,IAAI,GAE9B,IAAM03H,EAAW1nH,EAAIC,KAAK,gBAgC1B,OA/BA5T,KAAKk2H,aAAemF,EAAS13H,IAAI,GACjC03H,EAASroC,OAAO,+BACAzP,EAAI,iBAASA,EAAI,2EACfA,EAAI,kDACFA,EAAI,mFAGXA,EAAI,2DACXtrE,EAAOgvG,MAAQ,uBAAe1jC,EAAI,4BAA4B,GAAE,kCACpDA,EAAI,gDACJA,EAAI,gDACJA,EAAI,+EACJA,EAAI,kDACJA,EAAI,mDACJA,EAAI,gDAGtBvjF,KAAK69F,QAAUzpF,EAAG8rB,cAAc,WAAIqjD,EAAI,UACxCvjF,KAAKs7H,KAAOlnH,EAAG8rB,cAAc,WAAIqjD,EAAI,gBACrCvjF,KAAKu7H,QAAUnnH,EAAG8rB,cAAc,WAAIqjD,EAAI,UACxCvjF,KAAKw7H,SAAWpnH,EAAG8rB,cAAc,WAAIqjD,EAAI,gBACzCvjF,KAAKy7H,QAAUrnH,EAAG8rB,cAAc,WAAIqjD,EAAI,UACxCvjF,KAAK+8F,UAAY3oF,EAAG8rB,cAAc,WAAIqjD,EAAI,YAC1CvjF,KAAK07H,UAAYtnH,EAAG8rB,cAAc,WAAIqjD,EAAI,YAC1CvjF,KAAK27H,SAAWvnH,EAAG8rB,cAAc,WAAIqjD,EAAI,aACzCvjF,KAAK47H,cAAgBxnH,EAAG8rB,cAAc,WAAIqjD,EAAI,mBAC9CvjF,KAAK67H,YAAcznH,EAAG8rB,cAAc,WAAIqjD,EAAI,aAC5CvjF,KAAKoU,GAAGQ,WAAY,IAAAo+F,YAAW9vB,EAAIljF,KAAK4U,WACxC5U,KAAKsoG,OAAQ,EACbtoG,KAAK+2H,gBAEE/2H,IACT,EACF,EA9gBA,CAAwC,I,w9BC8BxC,eA0BE,WAAYkjF,GAAZ,MACE,YAAMA,EAAI,SAAU,IAAS,KAM7B,OAJA,EAAKT,OAAS,IAAI,GAAO,GACzB,EAAKt9E,MAAQ,EAAKs9E,OAClB,EAAKywC,gBAAkB,EAAKA,gBAAgBnnH,KAAK,GACjD,EAAK6nH,eAAiB,EAAKA,eAAe7nH,KAAK,GACxC,CACT,CAqmBF,OAvoB0C,QAYxC,YAAA22E,cAAA,WACE,OAAO1iF,KAAK81F,UACd,EAsBA,YAAAqvB,SAAA,WACEnlH,KAAKmF,MAAM68C,MACb,EAEA,YAAA+jC,SAAA,WACE,OAAO/lF,KAAKyiF,MACd,EAMA,YAAAiC,WAAA,WACE,OAAO1kF,KAAK0iF,gBAAgBtuE,EAC9B,EAEA,YAAA0nH,SAAA,SAASh7H,GACP,OAAOd,KAAK+3F,YAAYj3F,GAAS,EACnC,EAMA,YAAA81F,WAAA,WACU,IAAAzG,GAAUnwF,KAAK81F,YAAc,CAAC,GAAC,MACvC,OAAO3F,aAAK,EAALA,EAAO/7E,EAChB,EAEA,YAAA2nH,YAAA,W,MACE,OAAsB,QAAf,EAAA/7H,KAAK81F,kBAAU,eAAEyhC,UAC1B,EAMA,YAAAt/B,UAAA,WACU,IAAA9H,GAAUnwF,KAAK81F,YAAc,CAAC,GAAC,MACvC,OAAO3F,aAAK,EAALA,EAAO8H,WAChB,EAMA,YAAA+jC,YAAA,WACE,IAAM7rC,EAAQnwF,KAAK42F,aACnB,OAAOzG,aAAK,EAALA,EAAOV,eAChB,EAMA,YAAA7K,QAAA,WACE,IAAMvyD,EAAMryB,KAAKg8H,cACjB,OAAO3pG,aAAG,EAAHA,EAAKvV,IACd,EAEA,YAAAm/G,YAAA,SAAYC,EAAeC,EAAeltH,GACxC,IAAI/B,EAASgvH,EACP5jC,EAAY6jC,aAAQ,EAARA,EAAU5jC,YAG5B,OAFArrF,EAASorF,EAAYA,EAAUrpF,KAAY/B,CAG7C,EAOA,YAAA+5E,iBAAA,W,MACE,OAAsB,QAAf,EAAAjnF,KAAK81F,kBAAU,eAAE+lC,WAC1B,EAOA,YAAA/2C,WAAA,SAAWq3C,GACT,OAAOn8H,KAAKi8H,YAAYj8H,KAAK0iF,gBAAgBmb,QAASs+B,EAAU,aAClE,EAOA,YAAAxrC,eAAA,SAAewrC,GACb,OAAOn8H,KAAKi8H,YAAYj8H,KAAK0iF,gBAAgB44C,KAAMa,EAAU,iBAC/D,EAOA,YAAAptC,WAAA,SAAWotC,GACT,OAAOn8H,KAAKi8H,YAAYj8H,KAAK0iF,gBAAgB64C,QAASY,EAAU,aAClE,EAOA,YAAAp9B,YAAA,WACE,OAAO/+F,KAAK0iF,gBAAgB84C,QAC9B,EAOA,YAAAY,WAAA,WACE,OAAOp8H,KAAK0iF,gBAAgB+4C,OAC9B,EAOA,YAAAvmC,aAAA,WACE,OAAOl1F,KAAK0iF,gBAAgBqa,SAC9B,EAOA,YAAAhH,aAAA,WACE,OAAO/1F,KAAK0iF,gBAAgBg5C,SAC9B,EAOA,YAAA9I,kBAAA,SAAkBuJ,GAChB,OAAOn8H,KAAKi8H,YAAYj8H,KAAK0iF,gBAAgBi5C,SAAUQ,EAAU,oBACnE,EAOA,YAAAE,uBAAA,WACE,OAAOr8H,KAAK0iF,gBAAgBk5C,aAC9B,EAEA,YAAA/nH,OAAA,W,MAGE,OAFe,QAAf,EAAA7T,KAAK81F,kBAAU,SAAE1wF,SACjBpF,KAAK81F,WAAa,IAAI,GAAW91F,KAAKyiF,QAC/BziF,KAAK81F,WAAWjiF,SAASO,EAClC,EAOA,YAAAg9G,UAAA,WACE,IAAIj6B,EAAWn3F,KAAKm7B,OAAOn7B,KAAK42F,cAC5BQ,EAAYp3F,KAAKm7B,OAAOn7B,KAAK0kF,cACjC,MAAO,CACL57C,IAAKquD,EAASruD,IAAMsuD,EAAUtuD,IAC9BpZ,KAAMynE,EAASznE,KAAO0nE,EAAU1nE,KAEpC,EAQA,YAAAyL,OAAA,SAAO/mB,GACL,OAAOpU,KAAK0iF,gBAAgBvnD,OAAO/mB,EACrC,EAUA,YAAAkoH,oBAAA,SAAoBj2G,GAElBrmB,KAAKiY,OAAOqiF,iBAAmBj0E,CACjC,EAQA,YAAAuhE,cAAA,SAAcxzE,EAAiBvK,GAC7B,OAAO7J,KAAK0iF,gBAAgBkF,cAAcxzE,EAAIvK,EAChD,EAQA,YAAAwwH,kBAAA,SAAkBjmH,GAChB,OAAOpU,KAAK0iF,gBAAgB23C,kBAAkBjmH,EAChD,EAMA,YAAAy+G,QAAA,W,MACQ,EAA0D,QAAlC,EAAA7yH,KAAK0iF,gBAAgBc,qBAAa,QAAI,CAAC,EAA7D,IAAA16C,IAAAA,OAAG,IAAG,IAAC,EAAE,IAAApZ,KAAAA,OAAI,IAAG,IAAC,EACzB,OAAO,SACF1vB,KAAK0iF,gBAAgBk1C,mBAAiB,CACzC2E,UAAWzzF,EACX0zF,WAAY9sG,GAEhB,EAkBA,YAAA+sG,sBAAA,SAAsBl2G,EAAqBvS,EAAsBnR,QAAA,IAAAA,IAAAA,EAAA,IAC/D,IAAIgH,EAAOhH,GAAW,CAAC,EACnB65H,EAAY18H,KAAK0iF,gBAAgBc,cACrC,GAAKk5C,EAAL,CACA,IAAI76G,EAAMhY,EAAK2vF,OAASx5F,KAAK0iF,gBAAgBkF,cAAc5zE,GACvD2oH,EAAU95H,EAAQ85H,SAAW,EAC7BC,EAAe/yH,EAAK+yH,cAAgBr2G,EAAO4I,aAC3C0tG,EAAchzH,EAAKgzH,aAAet2G,EAAO6I,YACzC0tG,EAAiBjzH,EAAK8I,OAAS,KAE/BwjH,EAAQt0G,EAAIinB,IAAM8zF,EAClBtG,EAASz0G,EAAI6N,KACjB4mG,GAAUqG,EAAU96G,EAAIskB,MAAQ,EAGhC,IAAIs5B,GAFJ62D,EAASqG,EAAUrG,EAASuG,EAAcvG,GAEnBoG,EAAUhtG,KAAOgtG,EAAUhtG,KAAO4mG,EACrDyG,EAAS5G,EAAQuG,EAAU5zF,IAAM4zF,EAAU5zF,IAAMqtF,EAGjDjpH,EAAS,CACX47B,IAHFi0F,EAASA,EAASl7G,EAAIinB,IAAMjnB,EAAIiR,OAASjR,EAAIinB,IAAMjnB,EAAIiR,OAASiqG,EAI9DrtG,KAAM+vC,EACNu9D,WAAYn7G,EAAIinB,IAChBm0F,YAAap7G,EAAI6N,KACjBwtG,aAAcr7G,EAAIskB,MAClBg3F,cAAet7G,EAAIiR,OACnB+pG,YAAat2G,EAAO6I,YACpBwtG,aAAcr2G,EAAO4I,aACrBiuG,UAAWV,EAAU5zF,IACrBu0F,WAAYX,EAAUhtG,KACtB8oG,YAAakE,EAAUv2F,MACvBsyF,aAAciE,EAAU5pG,QAQ1B,OAJIgqG,GAAkB98H,KAAKkjF,IACzBljF,KAAKkjF,GAAGp/E,QAAQg5H,EAAgB5vH,GAG3BA,CApCe,CAqCxB,EAEA,YAAA4wF,iBAAA,SAAiB1pF,EAAiByN,EAAoChY,GAAtE,gBAAsE,IAAAA,IAAAA,EAAA,IACpE,IAKMyzH,EAAU,SAAClpH,EAAiB00B,EAASjnB,QAAT,IAAAinB,IAAAA,EAAA,GAChC,IAAMu3D,EAAO,EAAKnd,GAAGoc,iBACfjsD,EAAOvK,EAAM,MAAQ,OACrBzW,EAAMje,EAAG8b,cACT,EAAoCrmB,EAAKsxB,OATvB,SAAC9I,GACjB,IAAA40E,EAAgB50E,EAAG,YAC3B,OAAO40E,aAAW,EAAXA,EAAaqpB,YACtB,CAM0DiN,CAAkBlrG,GAAO,CAAC,EAA1E,IAAA+U,UAAAA,OAAS,IAAG,IAAC,EAAE,IAAAgI,WAAAA,OAAU,IAAG,IAAC,EAC/B,EAAoC/c,EAAIvV,MAAQ,CAAC,EAA/C,IAAAuvB,UAAAA,OAAS,IAAG,IAAC,EAAE,IAAAJ,WACjBnkB,EAASghB,EAAMuD,OADY,IAAG,IAAC,EAE/BlR,EAAS2N,EAAM1B,EAAYgI,EAEjC,OAAOvtB,EAAIwxB,IAASvrB,EAASqT,GAAUklE,CACzC,EAEA,MAAO,CACLv3D,IAAKw0F,EAAQlpH,EAAI,EAAGyN,GACpB6N,KAAM4tG,EAAQlpH,EAAI,EAAGyN,GAEzB,EASA,YAAA44E,wBAAA,SAAwBrmF,EAAiBu6E,EAAuB9kF,QAAA,IAAAA,IAAAA,EAAA,IAC9D,IAAMkuH,EAASluH,EAAKgY,KAAO7hB,KAAK4nF,cAAcxzE,EAAI,CAAE8zE,UAAU,IACxDipC,EAAetnH,EAAKutF,WAAap3F,KAAK89F,iBAAiB1pF,EAAI2jH,GAC3D6E,EAAejuC,EAASx/D,cAAgB,EACxC0tG,EAAcluC,EAASv/D,aAAe,EACtCgnG,EAAU2B,EAAOroG,KAAOqoG,EAAO5xF,MAC/B2vD,EAAa91F,KAAK0iF,gBAClBi1C,EAAa7hC,EAAWtS,cACxBu2C,EAAcjkC,EAAWqjC,eAAe/kH,GACtCzB,EAAU9I,EAAI,MAElBi/B,GAAO8zF,EACPltG,GAAQ,IAAAk6D,aAAY//E,EAAK6lB,MAAoBqoG,EAAO5xF,MAAQ02F,EAA3BhzH,EAAK6lB,KAK1C,GAJAA,EAAOqoG,EAAOroG,MAAQA,GAAQqoG,EAAOroG,KAAOA,EAC5CA,EAAO0mG,EAAUuB,EAAWxxF,MAAQzW,GAAQ0mG,EAAUuB,EAAWxxF,OAASzW,EAGtEyhG,EAAaroF,IAAM8zF,EAAc,CACnC,IAAMY,EAAazF,EAAOjlG,OAAS8pG,EACjBY,EAAazD,EAAYjnG,OAKzCgW,GAAY00F,EAEZ10F,GAAOqoF,EAAaroF,IAAMivF,EAAOjlG,QAAUq+F,EAAaroF,IAAMivF,EAAOjlG,M,CAIzE,IAAM5lB,EAAS,CACb47B,IAAG,EACHpZ,KAAI,EACJwuE,gBAAiBizB,EAAaroF,IAC9Bq1D,iBAAkBgzB,EAAazhG,KAC/BqoG,OAAM,EACN5G,aAAY,EACZwG,WAAU,EACVkF,YAAW,EACXD,aAAY,GAMd,OAFAjqH,GAAS3S,KAAKkjF,GAAGp/E,QAAQ6O,EAAOzF,GAEzBA,CACT,EAWA,YAAAipF,oBAAA,SAAoBjrF,EAAQrB,QAAA,IAAAA,IAAAA,EAAA,IAC1B,IAAI4zH,EAAS,EACTC,EAAU,EACVC,EAAe9zH,EAAK8zH,aACpBtrG,EAAMnnB,EAAEqb,OAAO2J,cACf8nE,EAAM3lE,EAAI40E,aAAe50E,EAAI60E,aAC7B/W,EAAQ6H,EAAIs4B,aACZsN,EAAUD,EAAe3lC,EAAI5rD,YAAc,EAC3CyxF,EAAUF,EAAe3lC,EAAIjsD,YAAc,EAE/C,GAAIokD,EAAO,CACT,IAAI+oC,EAAY/oC,EAAM3gE,wBACtBiuG,EAASvE,EAAUpwF,KAAO,EAC1B40F,EAAUxE,EAAUxpG,MAAQ,C,CAG9B,MAAO,CACLke,EAAG1iC,EAAE8kC,QAAUytF,EAASG,EACxB/pG,EAAG3oB,EAAE6kC,QAAU2tF,EAAUG,EAE7B,EAQA,YAAAv0C,uBAAA,SAAuB98E,EAAgB3C,G,MAC/Bw2F,EAAOrgG,KAAKs/F,iBACZ,EAA8D,QAAtC,EAAAt/F,KAAK0iF,gBAAgBc,YAAY35E,UAAK,QAAI,CAAC,EAAjE,IAAAi/B,IAAAA,OAAG,IAAG,IAAC,EAAE,IAAApZ,KAAAA,OAAI,IAAG,IAAC,EAEzB,MAAO,CACLke,EAAGphC,EAAGwjC,QAAUqwD,EAAOv3D,EACvBjV,EAAGrnB,EAAGujC,QAAUswD,EAAO3wE,EAE3B,EAMA,YAAAmlB,SAAA,WACE,OAAO70C,KAAKg8H,cAAcnnF,UAC5B,EAOA,YAAAqiF,eAAA,WACE,IAAM7kG,EAAMryB,KAAKg8H,cACX7rC,EAAQnwF,KAAK42F,aACbknC,EAAW,IAAC,QAAW99H,KAAKiY,OAAOmvG,aAAY,GAE/C5yE,EADY27C,GAASz7E,SAAS0Q,gBAAkB+qE,EAC1B99D,GAAOA,EAAIjN,cAAgB1Q,SAAS0Q,cAEhE,OAAOovB,IAAYspF,EAASvsH,MAAK,SAAAk1E,GAAQ,OAAAjyC,EAAQ9mC,QAAQ+4E,EAAhB,GAC3C,EAiBA,YAAAhe,SAAA,SAASr0D,EAASvK,QAAA,IAAAA,IAAAA,EAAA,IAChB,IAAM+wF,GAAO,IAAAlW,YAAWtwE,GAClBkuB,EAAOs4D,IAAQ,IAAAvC,WAAUuC,GAC/Bt4D,GAAQA,EAAKmU,eAAe5sC,EAC9B,EAMA,YAAAqpH,gBAAA,SAAgB/iC,GACd,IAAM4tC,EAAM5tC,GAASA,EAAM7tD,MAAStiC,KAAKkjF,GAAG86C,kBAC5CD,GAAMA,EAAG7K,iBACX,EAMA,YAAAU,eAAA,SAAezjC,GACb,IAAM4tC,EAAM5tC,GAASA,EAAM7tD,MAAStiC,KAAKkjF,GAAG86C,kBAC5CD,GAAMA,EAAGnK,gBACX,EASA,YAAAiF,QAAA,SAAQnxH,GAEN,OADA1H,KAAKyiF,OAAOh9E,IAAI,OAAyB,iBAAViC,EAAqB6gF,WAAW7gF,GAASA,GACjE1H,IACT,EASA,YAAAi+H,QAAA,WACE,OAAO11C,WAAWvoF,KAAKyiF,OAAO9+E,IAAI,QACpC,EAUA,YAAAq1H,UAAA,SAAUnlG,EAAqB+Z,EAAqB/jC,G,WAAA,IAAAA,IAAAA,EAAA,IAClD,IAAMq0H,EAAOrqG,GAAW,IAANA,EACZsqG,EAAOvwF,GAAW,IAANA,EACZd,EAAS,CACbjZ,EAAG7zB,KAAKyiF,OAAO9+E,IAAI,KACnBiqC,EAAG5tC,KAAKyiF,OAAO9+E,IAAI,MAMrB,GAHIu6H,IAAMpxF,EAAOjZ,EAAI00D,WAAW,UAAG10D,KAC/BsqG,IAAMrxF,EAAOc,EAAI26C,WAAW,UAAG36C,KAE/B/jC,EAAK0vH,QAAS,CAChB,IAAM12E,EAAuB,QAAf,EAAA7iD,KAAK81F,kBAAU,eAAE4jC,mBAC3B72E,IACEq7E,IAAMpxF,EAAOjZ,EAAIiZ,EAAOjZ,EAAIgvB,EAAMhvB,GAClCsqG,IAAMrxF,EAAOc,EAAId,EAAOc,EAAIiV,EAAMjV,G,CAM1C,OAFA5tC,KAAKyiF,OAAOh9E,IAAIqnC,GAET9sC,IACT,EAUA,YAAAw5H,UAAA,WACQ,MAAWx5H,KAAKyiF,OAAOz7E,WAC7B,MAAO,CAAE6sB,EADA,IACG+Z,EADA,IAEd,EAEA,YAAA0xD,eAAA,WACE,OAAOt/F,KAAKi+H,UAAY,GAC1B,EAEA,YAAA9I,kBAAA,WACE,IAAM90B,EAAOrgG,KAAKs/F,iBAClB,OAAOe,EAAO,EAAIA,EAAO,CAC3B,EAEA,YAAAq3B,YAAA,SAAY7tH,G,MACK,QAAf,EAAA7J,KAAK81F,kBAAU,SAAE4hC,YAAY7tH,EAC/B,EAEA,YAAA6xF,mBAAA,SAAmBj0F,GACCzH,KAAK+7H,cAAa,MAC9B/4E,cAAgBv7C,EAAK,GAAK,MAClC,EAEA,YAAAswF,UAAA,WACE,OAAO/3F,KAAKyiF,OAAO2gB,OAAOt+F,KAAI,SAAA2hF,GAAQ,OAAAA,CAAA,GACxC,EAwBA,YAAA23C,SAAA,SAASt1G,EAAYjf,GACnB,YADO,IAAAif,IAAAA,EAAA,SAAY,IAAAjf,IAAAA,EAAA,IACZ7J,KAAKyiF,OAAO2gB,OAAO9+F,IAAI,IAAI,EAAMtE,KAAM,MAAK8oB,IAAUjf,EAC/D,EAMA,YAAAw0H,kBAAA,WACE,OAAOr+H,KAAKkjF,GAAGv/E,IAAI,aACrB,EAEA,YAAA0L,QAAA,e,EAAA,OACErP,KAAKyiF,OAAOn3E,gBACG,QAAf,EAAAtL,KAAK81F,kBAAU,SAAE1wF,SAGjB,CAAC,QAAS,aAAaqQ,SAAQ,SAAA5V,GAAK,OAAC,EAAKA,GAAK,CAAC,CAAZ,GACtC,EACF,EAvoBA,CAA0C,G,YCV1C,IACEqkF,YAAa,QACbmB,WAAY,GACZi5C,qBAAqB,EACrBC,wBAAwB,EACxBC,eAAWn5H,EACXo5H,aAAc,CACZ,OACA,OACA,KACA,MACA,QACA,KACA,MACA,QACA,SACA,OACA,WACA,OACA,QACA,SACA,QACA,QC5EJ,IAAMC,GAAW,YACXC,GAAcD,G,kPCWdE,GAAiB,YACjB,GAAQ,aA8Vd,SA5VmB,SAAC17C,EAAkBjrE,GACpC,YADoC,IAAAA,IAAAA,EAAA,IAC7B,CACL4mH,UAAW,GAEXD,eAAc,GAEdE,iBAAgB,SAACC,EAAkBC,GACjC,IAAMr1H,EAAOo1H,EAAStvH,QAAQzP,KAAK4+H,eAAgB,IAC7CK,GAAWD,aAAS,EAATA,EAAWr+H,SAAU,EAChCm+E,EAAYkgD,aAAS,EAATA,EAAWr+G,UAAU,EAAG,GACpCu+G,EAAWF,aAAS,EAATA,EAAWr+G,UAAUs+G,EAAW,GAC7Cv3H,EAA2B,SAAds3H,GAA4C,UAAdA,GAAgCA,EAK/E,IACEt3H,EACgB,KAAbo3E,GAAgC,KAAZogD,GAAkC,KAAbpgD,GAAgC,KAAZogD,EAAmBtmH,KAAK3L,MAAMvF,GAASA,CAC7F,CAAV,MAAOwD,GAAG,CAEZ,MAAO,CACLvB,KAAI,EACJjC,MAAK,EAET,EAOAy3H,mBAAkB,SAAC33H,GAAnB,gBAAmB,IAAAA,IAAAA,EAAA,IACjB,IAAMshB,EAAmB,CAAC,EACpBhc,EAAsB,CAAC,EAW7B,OATA,IAAAvH,MAAKiC,GAAM,SAACE,EAAOrG,GACjB,GAAyC,IAArCA,EAAIwD,QAAQ,EAAK+5H,gBAAuB,CAC1C,IAAMQ,EAAc,EAAKN,iBAAiBz9H,EAAKqG,GAC/CohB,EAAMs2G,EAAYz1H,MAAQy1H,EAAY13H,K,MAEtCoF,EAAMzL,GAAOqG,CAEjB,IAEO,CACLohB,MAAK,EACLhc,MAAK,EAET,EAWAuyH,WAAU,SAACz1G,GAGT,IAFA,IAAM1c,EAA4C,CAAC,EAE5C0c,EAAI/kB,QAAQ,OAAS,GAAG,CAC7B,IAAMmX,EAAQ4N,EAAI/kB,QAAQ,MACpBmd,EAAM4H,EAAI/kB,QAAQ,MAAQ,EAChC+kB,EAAMA,EAAIna,QAAQma,EAAItpB,MAAM0b,EAAOgG,GAAM,G,CAK3C,IAFA,IAAMs9G,EAAQ11G,EAAI3f,MAAM,KAEfpK,EAAI,EAAG4rB,EAAM6zG,EAAM3+H,OAAQd,EAAI4rB,EAAK5rB,IAAK,CAChD,IAAM0/H,EAAOD,EAAMz/H,GAAGyoF,OACtB,GAAKi3C,EAAL,CACA,IAAM94G,EAAO84G,EAAKt1H,MAAM,KAClB5I,EAAMolB,EAAK,GAAG6hE,OACd5gF,EAAQ+e,EAAKnmB,MAAM,GAAGmvD,KAAK,KAAK64B,OAGlCp7E,EAAO7L,KACJ,IAAAH,SAAQgM,EAAO7L,MAClB6L,EAAO7L,GAAO,CAAC6L,EAAO7L,KAGvB6L,EAAO7L,GAAkBsD,KAAK+C,IAE/BwF,EAAO7L,GAAOqG,CAbG,C,CAiBrB,OAAOwF,CACT,EAWAsyH,WAAU,SAAC51G,GAIT,IAHA,IAAM1c,EAAS,GACTgX,EAAM0F,EAAI3f,MAAM,KAEbpK,EAAI,EAAG4rB,EAAMvH,EAAIvjB,OAAQd,EAAI4rB,EAAK5rB,IAAK,CAC9C,IAAM4/H,EAAKv7G,EAAIrkB,GAAGyoF,OACbm3C,GACLvyH,EAAOvI,KAAK86H,E,CAGd,OAAOvyH,CACT,EAOAwyH,UAAS,SAACtrH,EAAiBvK,QAAA,IAAAA,IAAAA,EAAA,IAIzB,IAHA,IAAMqD,EAAuC,GACvCyyH,EAAQvrH,EAAGmQ,WAER1kB,EAAI,EAAG4rB,EAAMk0G,EAAMh/H,OAAQd,EAAI4rB,EAAK5rB,IAAK,CAChD,IAAMwkB,EAAOs7G,EAAM9/H,GACbiN,EAAQuX,EAAKrd,YAAc,GAC3B44H,EAAW9yH,EAAMnM,OACjBk/H,EAAW3yH,EAAOA,EAAOvM,OAAS,GAClCm/H,EAAYz7G,EAAKE,WAAW5jB,OAC5Bo/H,EAAK//H,KAAK6+H,UACZ15H,EAAoC,CAAC,EAGzC,GAAI46H,EAAI,CACN,IAAI/+H,EAAW,GACXwB,EAAO6hB,EAAK0iB,cAAgB1iB,EAAK0iB,aAAa,UAAG/mC,KAAK4+H,eAAc,SAGxE,GAAIp8H,EACF2C,EAAQ,CAAE3C,KAAI,OACT,CAGL,IAAK,IAAI,EAAK,EAAG,EAAKu9H,EAAGp/H,OAAQ,IAAM,CACrC,IAAMq/H,EAAWD,EAAG,GAIpB,GAFA/+H,EAAMg/H,EAAS76H,MAAM+vG,YAAY7wF,EAAMxa,GAE9B,CACY,iBAAR7I,IAETA,EAAM,CAAEwB,KAAMw9H,EAAS11H,KAEzB,K,EAIJnF,EAAQnE,C,EAKZ,IAAKmE,EAAMsO,QAAS,CAClB,IAAMkR,EAAMN,EAAK5Q,SAAW,GACtBuwF,EAAK3/E,EAAK47G,cAAgB,GAChC96H,EAAMsO,QAAUkR,GAAc,iCAAPq/E,EAAwCr/E,EAAIyE,cAAgBzE,C,CAGjFi7G,IACFz6H,EAAM6B,WAAa,CAAC,GAItB,IAAK,IAAIyE,EAAI,EAAGA,EAAIm0H,EAAUn0H,IAAK,CACjC,IAAMg0C,EAAW3yC,EAAMrB,GAAGg0C,SACtB6rB,EAA8Bx+D,EAAMrB,GAAG6/D,UAG3C,GAAgB,SAAZ7rB,EACFt6C,EAAMwX,MAAQ3c,KAAKq/H,WAAW/zD,QACzB,GAAgB,SAAZ7rB,EACTt6C,EAAMsxB,QAAUz2B,KAAKw/H,WAAWl0D,OAC3B,IAAgB,mBAAZ7rB,EACT,SACK,GAA8C,IAA1CA,EAAS56C,QAAQ7E,KAAK4+H,gBAAuB,CACtD,IAAMQ,EAAcp/H,KAAK8+H,iBAAiBr/E,EAAU6rB,GACpDnmE,EAAMi6H,EAAYz1H,MAAQy1H,EAAY13H,K,KAGpB,KAAd4jE,IAAuC,IAAnBjnD,EAAKo7B,KAC3B6rB,GAAY,GAGdnmE,EAAM6B,WAAWy4C,GAAY6rB,C,EAKjC,GAAIw0D,IAAc36H,EAAMkgF,WAAY,CAElC,IAAMpoE,EAAaoH,EAAKE,WAAW,GAIjB,IAAdu7G,GAA2C,IAAxB7iH,EAAW+H,WAC/B7f,EAAM3C,OAAS2C,EAAM3C,KAAO,QAC7B2C,EAAMkgF,WAAa,CACjB7iF,KAAM,WACNuc,QAAS9B,EAAWquD,YAGtBnmE,EAAMkgF,WAAarlF,KAAK0/H,UAAUr7G,EAAM,SACnCxa,GAAI,CACPq2H,MAAOr2H,EAAKq2H,OAAwB,QAAf/6H,EAAM3C,O,CAMjC,GAAkB,YAAd2C,EAAM3C,KAAoB,CAC5B,GAAIq9H,GAA6B,YAAjBA,EAASr9H,KAAoB,CAC3Cq9H,EAAS9gH,SAAW5Z,EAAM4Z,QAC1B,Q,CAIF,IAAKlV,EAAKw4G,mBAAoB,CAC5B,IAAMtjG,EAAUsF,EAAKinD,UACrB,GAAe,KAAXvsD,IAAmBA,EAASupE,OAC9B,Q,EAMDw3C,GAA+C,OAAlC,UAAGz7G,EAAK2rF,WAAY1vG,OAAO,KAC3C6E,EAAMg7H,MAAO,GAKf,IAAMC,EAAQj7H,EAAMkgF,WACpB,IAAKlgF,EAAM3C,MAAQ49H,EAAO,CAIxB,IAHA,IAAIC,EAAS,EACTC,EAAgB,EAEXC,EAAK,EAAGA,EAAKH,EAAMz/H,OAAQ4/H,IAAM,CACxC,IAAMx/E,EAAOq/E,EAAMG,GACbC,EAAQz/E,EAAKv+C,KAEnB,GAAI,CAAC,OAAQ,YAAYqC,QAAQ27H,GAAS,GAAKvoH,EAAOwoH,SAAU57H,QAAQk8C,EAAKttC,SAAW,EAAG,CACzF4sH,EAAS,EACT,K,CAGW,YAATG,IACFF,EAAgB,E,CAIhBD,GAAUC,IACZn7H,EAAM3C,KAAO,O,EAKZ2C,EAAMsO,SAAyB,YAAdtO,EAAM3C,OAI5B0K,EAAOvI,KAAKQ,E,CAGd,OAAO+H,CACT,EAQAD,MAAK,SAAC2c,EAAa82G,EAAiB72H,G,WAAA,IAAAA,IAAAA,EAAA,IAClC,IAAMm+G,GAAO9kC,aAAE,EAAFA,EAAIv/E,IAAI,YAAa,CAAC,EAC7BS,EAAuB,CAAC,EACxBu8H,EAAE,SAAmB1oH,GAAWpO,GAChChH,EAAU,YACXoV,EAAO2oH,aAAW,CAErBlC,UAA4B,QAAlB,EAAAzmH,EAAO2oH,mBAAW,eAAElC,WAAYzmH,EAAOymH,WAC9C70H,GAECuK,GAAK,IAAA/R,YAAWs+H,EAAGE,YAAcF,EAAGE,WAAWj3G,EAAK/mB,GDjThE,SAAgB+mB,EAAa3R,QAAA,IAAAA,IAAAA,EAAA,IAC3B,IAKI7T,EALE47E,EAAS,IAAI8gD,UACbC,EAAW9oH,EAAOymH,UAAYC,GAC9BxpB,EAAS4rB,IAAarC,GACtBsC,EAAO7rB,EAASvrF,EAAM,eAAQA,EAAG,UACjCyI,EAAM2tD,EAAOihD,gBAAgBD,EAAMD,GAGzC,GAAI5rB,EAAQ,CAEF,IAAAx+F,EAAe0b,EAAG,KAAZ,EAASA,EAAG,KAEpB00F,EAAUpwG,EAAKy+E,iBAAiB,WACtC,IAAA7vF,MAAKwhH,GAAS,SAAA1iG,GAAQ,SAAKI,YAAYJ,EAAjB,IAEtB,IAAM,EAAkB,IACxB,IAAA9e,MAAKoR,EAAK4b,UAAU,SAAAzL,GAAK,SAAKniB,KAAKmiB,EAAV,KACzB,IAAAvhB,MAAK,GAAM,SAAC8e,EAAMxkB,GAAM,SAAKmd,aAAaqH,EAAM,EAAKkO,SAAS1yB,GAAtC,IACxBuE,EAAM,C,MAENA,EAAMiuB,EAAIpV,WAGZ,OAAO7Y,CACR,CCyR0E88H,CAAkBt3G,EAAK/mB,GACtFkkH,EAAU3yG,EAAGghF,iBAAiB,UAChCv1F,EAAIknH,EAAQpmH,OAMhB,MAHsB,IAAAipF,aAAYo+B,EAAKmZ,cAAoCt+H,EAAQs+H,aAA5BnZ,EAAKmZ,cAI1D,KAAOthI,KAAKknH,EAAQlnH,GAAGolB,WAAWnH,YAAYipG,EAAQlnH,IASxD,GALKgD,EAAQu+H,iBACXphI,KAAKqhI,kBAAkBjtH,GAIrBssH,EAAW,CAKb,IAJA,IAAMlqG,EAASpiB,EAAGghF,iBAAiB,SAC/B3pF,EAAI+qB,EAAO71B,OACX2gI,EAAW,GAER71H,KACL61H,EAAW9qG,EAAO/qB,GAAGu7E,UAAYs6C,EACjC9qG,EAAO/qB,GAAGwZ,WAAWnH,YAAY0Y,EAAO/qB,IAGtC61H,IAAUl9H,EAAIk8B,IAAMogG,EAAUzzH,MAAMq0H,G,CAG1Cp+C,GAAMA,EAAGp/E,QAAQ,UAAG,GAAK,SAAS,CAAEw9B,MAAO1X,EAAKtqB,KAAM8U,IACtD,IAAMlH,EAASlN,KAAK0/H,UAAUtrH,EAAIusH,GAE5BY,EAA4B,IAAlBr0H,EAAOvM,QAAiBggI,EAAGa,YAA0Bt0H,EAAZA,EAAO,GAIhE,OAHA9I,EAAI8xE,KAAOqrD,EACXr+C,GAAMA,EAAGp/E,QAAQ,GAAO,CAAEw9B,MAAO1X,EAAK0O,OAAQl0B,IAEvCA,CACT,EAEAi9H,kBAAiB,SAACh9G,GAAlB,WACQvX,EAAQuX,EAAKrd,YAAc,GAC3B24H,EAAQt7G,EAAKE,YAAc,GAC3B1T,EAAqB,IAC3B,IAAAtL,MAAKuH,GAAO,SAAAtF,GACV,IAAMmC,EAAOnC,EAAKi4C,UAAY,GACP,IAAvB91C,EAAK9E,QAAQ,OAAegM,EAASlM,KAAKgF,EAC5C,IACAkH,EAAS/L,KAAI,SAAA6E,GAAQ,OAAA0a,EAAKsoD,gBAAgBhjE,EAArB,KACrB,IAAApE,MAAKo6H,GAAO,SAAAt7G,GAAQ,SAAKg9G,kBAAkBh9G,EAAvB,GACtB,EAEJ,E,yuBCpWMw8G,GAAa,KAENY,GAAoB,SAAC/5H,GAChC,OAAO,IAAAxG,SAAQwG,GAASA,EAAMA,EAAM/G,OAAS,GAAK+G,CACpD,E,SAEA,yB,8CA6IA,QA7IwE,QAMtE,YAAA23H,WAAA,SAAWz1G,GACT,OAAOi3G,GAAWxB,WAAWz1G,EAC/B,EAQA,YAAA83G,YAAA,SAAYj7G,GACV,OAAO,SAAKzmB,KAAKyoF,YAAehiE,EAClC,EAMA,YAAAgiE,SAAA,SAAShiE,GACP,IAAM9J,EAAQ3c,KAAK2D,IAAI,UAAY,CAAC,EAC9BuJ,EAAM,MAAmByP,GAC/B,OAAO8J,IAAQ,IAAAvV,UAASuV,GAAQvZ,EAAOuZ,GAAQvZ,CACjD,EAQA,YAAA4yE,SAAA,SAASr5D,EAA+B5c,GAAxC,gBAAS,IAAA4c,IAAAA,EAAA,SAA+B,IAAA5c,IAAAA,EAAA,KAClC,IAAAqH,UAASuV,KACXA,EAAOzmB,KAAKq/H,WAAW54G,IAGzB,IAAMk7G,EAAW3hI,KAAKyoF,SAAS5+E,GACzB+3H,EAAU,MAAKn7G,GACfo7G,EAAW,MAAKD,IAEtB,IAAA3gI,MAAK4gI,GAAUpsH,SAAQ,SAAAgR,GACE,KAAnBo7G,EAASp7G,WACJo7G,EAASp7G,EAEpB,IACAzmB,KAAKyF,IAAI,QAASo8H,EAAUh4H,GAC5B,IAAMxF,GAAO,IAAAivG,aAAYquB,EAAUC,GAcnC,cAZOv9H,EAAKqkF,KACZ,IAAAznF,MAAKoD,GAAMoR,SAAQ,SAAAm3G,GAET,IAAA1pC,EAAO,EAAI,GACfr5E,EAAKi4H,UACT,EAAKh+H,QAAQ,uBAAgB8oH,IACzB1pC,IACFA,EAAGp/E,QAAQ,mBAAoB,EAAM8oH,EAAI/iH,GACzCq5E,EAAGp/E,QAAQ,2BAAoB8oH,GAAM,EAAMA,EAAI/iH,IAEnD,IAEO+3H,CACT,EAUA,YAAAh5C,SAAA,SAASniE,EAA0B/e,EAAiBmC,G,WAAjB,IAAAnC,IAAAA,EAAA,SAAiB,IAAAmC,IAAAA,EAAA,IAC/B,iBAAR4c,IACL,MACDA,GAAO/e,EADV+e,E,GAIA5c,EAAOnC,GAAS,CAAC,EAGnB+e,EAAOzmB,KAAK0hI,YAAYj7G,GACxBzmB,KAAK8/E,SAASr5D,EAAM5c,EACtB,EAMA,YAAAk4H,YAAA,SAAYt7G,GACV,IAAI9J,EAAQ3c,KAAKyoF,kBACV9rE,EAAM8J,GACbzmB,KAAK8/E,SAASnjE,EAChB,EAOA,YAAAqlH,cAAA,SAAcn4H,QAAA,IAAAA,IAAAA,EAAA,IACZ,IAAMqD,EAAmB,GACnByP,EAAQ3c,KAAKyoF,SAAS5+E,GACtBo4H,EAAMp4H,EAAK4kH,U,WAERhoG,GACP,IAAMgoG,GAAY,IAAAvtH,SAAQ+gI,GAAOA,EAAIp9H,QAAQ4hB,IAAS,EAAIw7G,EAI1D,GAFiC,OADdx7G,EAAK9F,UAAU,EAAG,G,iBAKrC,IAAMjZ,EAAQiV,EAAM8J,KACL,IAAAvlB,SAAQwG,GAAUA,EAAqB,CAACA,IAEhD+N,SAAQ,SAACxP,GACd,IAAMyB,EAAQ,UAAGzB,GAAG,OAAGwoH,EAAY,cAAgB,IACnD/mH,GAASwF,EAAOvI,KAAK,UAAG8hB,EAAI,YAAI/e,EAAK,KACvC,G,EAbF,IAAK,IAAI+e,KAAQ9J,E,EAAR8J,GAgBT,OAAOvZ,EAAOuiD,KAAK,GACrB,EAEA,YAAAyyE,aAAA,WACE,OAAQliI,KAAK2D,IAAI,cAAgB3D,KAAK2D,IAAI,UAC5C,EAEA,YAAAw+H,mBAAA,SAAmBt4H,GAEjB,OAAO7J,KAAKoiI,kBAAoBpiI,KAAKoiI,kBAAkBv4H,GAAQ7J,KAAKkiI,eAAeG,eACrF,EAMF,EA7IA,CAAwE,M,kzCCJ3DC,GAAkB,SAAC5uG,EAA4CtvB,GAC1E,YAD0E,IAAAA,IAAAA,EAAA,IACrEsvB,KACS,IAAAxyB,SAAQwyB,KAAQ,IAAArxB,YAAYqxB,EAAmB5uB,KAAO4uB,EAAM,CAACA,IACtE5uB,KAAI,SAAA4uB,GACPtvB,EAAIO,KAAK+uB,EAAI42F,SACbgY,GAAgB5uG,EAAI2xD,aAAa7hF,OAAQY,EAC3C,IACOA,GANU,EAOnB,EAEMm+H,GAAwB,SAACz+B,EAAY1iG,EAAqByI,QAArB,IAAAzI,IAAAA,EAAA,SAAqB,IAAAyI,IAAAA,EAAA,IAC9DA,EAAK24H,YAAc34H,EAAK24H,aAAe,CAAC,EAChC,IAAAA,EAAgB34H,EAAI,YAG5B,QAFa,IAAA3I,SAAQ4iG,GAASA,EAAQ,CAACA,IAE3Bh/F,KAAI,SAAA2hF,GACN,MAAyCA,EAAI,WAA7Cz/E,OAAU,IAAG,GAAC,EAAC,EAAEq+E,EAAwBoB,EAAI,WAAhBhzE,EAAYgzE,EAAI,QAC/Cn8E,EAA+BtD,EAAU,GAAvBy7H,GAAaz7H,EAAU,UAAf,GAAKA,EAAjC,qBACAkG,EAASu5E,EAqBb,GAnBIn8E,IAEGk4H,EAAYl4H,IAWfk4H,EAAYl4H,GAAI3F,KAAKuI,GACrB5C,EAAK,YAAmBlJ,GACxB8L,EAAOlG,WAAWsD,GAAKA,IAZvBk4H,EAAYl4H,GAAM,GAGdlJ,EAAIkJ,KACN4C,EAAS9L,EAAIkJ,GACbmJ,GAAWvG,EAAOzH,IAAI,CAAEgO,QAAO,GAAI,SAAK5J,GAAI,CAAE+D,QAAQ,MACtD,IAAA3M,MAAKwhI,GAAU9hI,QAAUuM,EAAOw1H,cAAcD,EAAU,MAAK54H,OAU/Dw7E,EAAY,CACd,IAAMs9C,EAAgBJ,GAAsBl9C,EAAYjkF,GAExD,IAAI,IAAAiB,YAAW6K,EAAOm4E,YAAa,CACjC,IAAMu9C,EAAO11H,EAAOm4E,aACpBu9C,EAAKjiI,OAAS,GAAKiiI,EAAK18H,MAAMy8H,EAAe94H,E,MAE7CqD,EAAOm4E,WAAas9C,C,CAIxB,OAAOz1H,CACT,GACF,EAQA,4B,8CAySA,QAzSwC,QAWtC,YAAA3F,WAAA,SAAW/D,EAAa8pD,QAAA,IAAAA,IAAAA,EAAA,IACtBttD,KAAKstD,IAAMA,EACXttD,KAAKwK,SAASxK,KAAM,MAAOA,KAAK6iI,OAChC7iI,KAAKwK,SAASxK,KAAM,SAAUA,KAAKskB,gBACnCtkB,KAAKwK,SAASxK,KAAM,QAASA,KAAK8iI,eAC1B,IAAA5/C,EAAe51B,EAAG,GAAdr1C,EAAWq1C,EAAG,OAC1BttD,KAAKiY,OAASA,EACdjY,KAAKkjF,GAAKA,EACVljF,KAAK+nH,KAAOz6D,EAAIy6D,OAAQ7kC,aAAE,EAAFA,EAAIuR,WAC9B,EAEA,YAAAquC,cAAA,SAAct/H,EAAoBqG,GAAlC,gBAAkC,IAAAA,IAAAA,EAAA,IAChC,IAAMmhF,EAAOhrF,KACPkO,EAAOrE,EAAK1D,gBAAkB,GAC9B0K,EAAW3C,EAAK+H,QAAO,SAAA/H,GAAQ,OAAC1K,EAAOG,IAAIuK,EAAKzJ,IAAjB,IAC/Bs+H,EAAST,GAAgB9+H,GACzBw/H,EAAYV,GAAgBp0H,GAAM+H,QAAO,SAAA22G,GAAM,OAAAmW,EAAOl+H,QAAQ+nH,IAAO,CAAtB,IACrD/iH,EAAKo5H,SAAWp5H,EAAKo5H,SAAW,IAAIl+H,OAAOi+H,GAC3CnyH,EAAS4E,SAAQ,SAAAywG,GAAM,SAAK5hG,eAAe4hG,EAAIl7B,EAAMnhF,EAA9B,IACvBrG,EAAO+B,MAAK,SAAAJ,GAAS,SAAK09H,MAAM19H,EAAX,GACvB,EAEA,YAAA+9H,gBAAA,SAAgB5hG,EAAYz3B,G,aAAZ,IAAAy3B,IAAAA,EAAA,SAAY,IAAAz3B,IAAAA,EAAA,IAC1BA,EAAKo5H,QAAUX,GAAgBtiI,MACzB,MAAuBA,KAArB+nH,EAAI,OAAE7kC,EAAE,KAAE3kE,EAAM,SAClB4kH,EAAOjgD,aAAE,EAAFA,EAAIglC,IACXkb,GAAUrb,aAAI,EAAJA,EAAMsb,YAAa,CAAC,EAC9BC,EAAStjI,KAAKujI,YAAYjiG,EAAOz3B,GACjC25H,EAAUjB,GAAsBe,EAAQF,EAASv5H,GAC/C,EAAqBA,EAAI,YAAzB24H,OAAW,IAAG,GAAC,EAAC,EAGxBx5G,OAAO/nB,KAAKuhI,GAAa/sH,SAAQ,SAAAnL,GAC/B,IAAMs4H,EAAOJ,EAAYl4H,GACzB,GAAIs4H,EAAKjiI,OAAQ,CAEf,IAAM,GAAewiI,aAAI,EAAJA,EAAMM,SAAS,WAAIn5H,MAAS,GAE7C,EAAa3J,QACfiiI,EAAKntH,SAAQ,SAAAie,GACX,EAAaje,SAAQ,SAAAm2E,GACnB,IAAM83C,EAAU93C,EAAKroF,QAErBmgI,EAAQj+H,IAAI,YAAa,CAAC,WAAIiuB,EAAI1sB,WAAWsD,MAC7C64H,EAAMx3C,SAASrnF,IAAIo/H,EACrB,GACF,G,CAGN,IAEA1jI,KAAKkG,MAAMs9H,EAAS35H,GACpBq5E,SAAAA,EAAIp/E,QAAQ,oBAAqBya,EAAQ1U,EAAMy3B,GACH,QAA3C,GAAD,EAAC/iB,GAAyBolH,0BAAkB,gBAC9C,EAEA,YAAAr/G,eAAA,SAAehU,EAAoB06E,EAAmBnhF,GAAtD,WAGE,QAHoD,IAAAA,IAAAA,EAAA,IAG/CyG,EAAL,CAIM,IAAEy3G,EAAa/nH,KAAT,KAAEkjF,EAAOljF,KAAL,GACV4jI,EAAS/5H,EAAKi/G,WAAaj/G,EAAKggH,SAGtC,GAFAv5G,EAAQuzH,SAAW7jI,MAEd4jI,EAAQ,CAEX,IAAM,EAAKtzH,EAAQg6G,QACbnvD,EAAO+nB,EAAG4gD,UAAUn4C,SACpBD,EAAQxI,EAAGglC,IAAIv8B,SACfo4C,GAAkBl6H,EAAKo5H,SAAW,IAAIp+H,QAAQ,GAAM,SAC1CkjH,EAAOA,EAAKsb,UAAY,CAAC,GAC1B,GAGf,IAAMW,EACJD,EACIr4C,EAAMtmF,OACJsmF,EAAMz1E,QAAO,SAAA2P,GAAK,OAAAA,EAAEs8G,eAAeG,kBAAoB,WAAI,EAAzC,IAClBx4H,GAEF,GAINsxD,EAAK/1D,OAAO4+H,EAAal/H,KAAI,SAAA8mF,GAAQ,OAAAA,EAAKs2C,eAAez+H,GAAG,EAAvB,KAEhC6M,EAAQg9C,IAAIw7D,YACf5lC,EAAGiC,SAASjD,IAAI,6BAA8B,CAC5C37D,OAAQjW,IAEVA,EAAQA,UACRA,EAAQxM,QAAQ,WAChBo/E,EAAGp/E,QAAQ,mBAAoBwM,IAGnBA,EAAQ+0E,aAChB5vE,SAAQ,SAAAwuH,GAAM,SAAK3/G,eAAe2/G,EAAIj5C,EAAMnhF,EAA9B,G,CAItB,IAAM6X,EAAQpR,EAAQ+0E,aACtBnC,EAAG53E,cAAcoW,GACjBwhE,EAAG53E,cAAcgF,GACjB4yE,EAAG53E,cAAcgF,EAAQ3M,IAAI,YAC7B2M,EAAQ4zH,c,CACV,EAGA,YAAA/+H,MAAA,SAAM2H,EAAqCjK,GACjC,IAEJsC,EAFImoD,EAAQzqD,EAAQoC,WAAU,IAC5Bi+E,EAAK51B,EAAI41B,GAETihD,EAAKjhD,EAAGuR,WAAW2vC,eACzBvhI,EAAQqgF,GAAKA,EACbrgF,EAAQoV,OAASq1C,EAAIr1C,OACrBpV,EAAQuhI,eAAiBD,EACzBthI,EAAQklH,KAAOz6D,EAAIy6D,KAEnB,IAAK,IAAI,EAAK,EAAG,EAAKoc,EAAGxjI,OAAQ,IAAM,CAErC,GADawjI,EAAG,GAAI75H,IACRwC,EAAMtK,KAAM,CACtB2C,EAAQg/H,EAAG,GAAIh/H,MACf,K,EAeJ,OAVKA,IACHA,EAAQg/H,EAAGA,EAAGxjI,OAAS,GAAGwE,MAC1B+9E,GACEp2E,EAAMtK,MACN0gF,EAAGuC,WAAW,0BAAmB34E,EAAMtK,KAAI,eAAe,CACxDsK,MAAK,EACLjK,QAAO,KAIN,IAAIsC,EAAM2H,EAAOjK,EAC1B,EAEA,YAAA0gI,YAAA,SAAY77H,EAAe4lD,QAAA,IAAAA,IAAAA,EAAA,IACnB,IAAE41B,EAAaljF,KAAX,GAAE+nH,EAAS/nH,KAAL,KACVmjI,EAAOjgD,EAAGglC,IACVob,EAASpgD,EAAGmhD,OAAOC,UAAU58H,GAInC,GAFA,WAAkB47H,EAAOptD,KAAOotD,EAAOhjG,IAAKynF,EAAMwc,eAAgBj3E,GAE9Dg2E,EAAOhjG,KAAO6iG,IAAS71E,EAAIw7D,UAAW,CACVx7D,EAAG,GAAzB,IAAOk3E,EAAU,GAAKl3E,EAAxB,QACN61E,EAAKsB,cAAcnB,EAAOhjG,IAAK,SAC1BkkG,GAAU,CACb79H,OAAQ,I,CAIZ,OAAO28H,EAAOptD,IAChB,EAGA,YAAA5xE,IAAA,SAAId,EAAsB8pD,GAA1B,gBAA0B,IAAAA,IAAAA,EAAA,IACxBA,EAAI21E,QAAU,SAAK31E,EAAI21E,SAAW,IAAK,GAAGX,GAAgBh1E,EAAInnD,iBAAe,IAEzE,IAAA+K,UAAS1N,GACXA,EAASxD,KAAKujI,YAAY//H,EAAQ8pD,IACzB,IAAApsD,SAAQsC,KACjBA,EAAS,MAAIA,GAAM,IACZiS,SAAQ,SAACgxE,EAAc3lF,GAC5B,IAAI,IAAAoQ,UAASu1E,GAAO,CAClB,IAAMk5C,EAAQ,EAAK4D,YAAY98C,EAAMn5B,GACpC9pD,EAAe1C,IAAS,IAAAI,SAAQy+H,KAAWA,EAAMh/H,OAAS,KAAOg/H,C,CAEtE,IAGF,IAAM+E,GAAS,IAAAxjI,SAAQsC,GAEvBA,GAAUkhI,EAASlhI,EAAS,CAACA,IAASyS,OAAOuvE,SAAS1gF,KAAI,SAACK,GAAe,SAAKw/H,WAAWx/H,EAAhB,IAE1E3B,EAASkhI,GAAS,IAAAn5C,SAAQ/nF,EAAe,GAAKA,EAAO,GAErD,IAAM0J,EAAS,yBAA+BlN,KAAM,CAACwD,EAAe8pD,IAEpE,OADAttD,KAAK4kI,WAAa13H,EACXA,CACT,EAKA,YAAAy3H,WAAA,SAAWE,GAET,GAAIA,EAAIpgI,KAAOogI,EAAIC,KAAM,OAAOD,EAC1B,IAAE3hD,EAAoBljF,KAAlB,GAAE,EAAgBA,KAAhBiY,OACJumH,QADU,IAAG,GAAC,EAAC,GACK,UACxBr5H,EAAQ0/H,EAEZ,GAAIrG,EAAW,CAEb,IAAMuG,EAAUvG,EADhBr5H,EAAQ,MAAKA,IAET4/H,KACF,IAAAx/H,MAAKJ,GAAO,SAACc,EAAK5E,GAAQ,cAAO8D,EAAM9D,EAAb,KAC1B,IAAAsF,QAAOxB,EAAO4/H,G,CAKlB,GAAI5/H,EAAM6/H,UAAkC,iBAAf7/H,EAAM2jB,MAAmB,EACpD3jB,EAAQ,MAAKA,IACP2jB,MAAQ,MAAK3jB,EAAM2jB,OACzB,IAAMi/F,EAAO7kC,EAAGuR,WAERosC,EADO39C,EAAGmhD,OACW,YAE7B,IAAA9+H,MAAKJ,GAAO,SAACuC,EAAOrG,IACb,IAAAkV,UAAS,CAAC,QAAS,QAASlV,WAAa8D,EAAM9D,EACtD,IACQ,IAAAynB,EAAU3jB,EAAK,MACjBi7H,EAAQt3G,EAAMyJ,gBACbzJ,EAAMyJ,gBACNptB,EAAM2jB,MACb,IAAM1kB,EAAMy8H,EAAW1B,mBAAmBr2G,GAC1C3jB,EAAM6B,WAAa5C,EAAI0I,MAEnBszH,IACFj7H,EAAMkgF,WAAa+6C,GAEhBj7H,EAAM3C,KAECulH,EAAKO,QAAQnjH,EAAM3C,QAC7B2C,EAAMsO,QAAUtO,EAAM3C,YACf2C,EAAM3C,MAHb2C,EAAM3C,KAAO,YAMf,IAAAmE,QAAOxB,EAAOf,EAAI0kB,M,CAGpB,OAAO3jB,CACT,EAEA,YAAA09H,MAAA,SAAM19H,EAAkB45E,EAASl1E,QAAA,IAAAA,IAAAA,EAAA,IACzB,IAAEk+G,EAAa/nH,KAAT,KAAEkjF,EAAOljF,KAAL,GACV2c,EAAQxX,EAAMsjF,WACdw8C,EAAc/hD,GAAMA,EAAG0D,YAAY47B,iBAIzC,GAHAuF,GAAQA,EAAKmd,UAAUC,aAAahgI,KAG/B,IAAAG,SAAQqX,KAAWsoH,GAAe/hD,GAAMA,EAAGv/E,KAAOu/E,EAAG0D,YAAY+6B,aAAe93G,EAAKi/G,UAAW,CACnG,IAAM,EAAO3jH,EAAMV,IACnBy+E,EAAGglC,IAAIkd,aAAa,EAAMzoH,GAC1BxX,EAAM26E,SAAS,CAAC,GAChB36E,EAAMmgB,SAAS,E,CAGjBngB,EAAMkgI,UAAU,CAAEC,WAAW,GAE/B,EA6BF,EAzSA,CAAwC,M,ugBClElCC,GAAa,EACbC,GAAU,EAoBhB,eAsBE,WAAY18G,EAAYjf,QAAA,IAAAA,IAAAA,EAAA,IAAxB,MACE,YAAMif,EAAOjf,IAAK,KACV,EAAgBA,EAAI,OAApBoO,OAAM,IAAG,GAAC,EAAC,EACbtO,EAAO,EAAKhG,IAAI,QAChB+oE,EAAQ,EAAK/oE,IAAI,SAElBgG,EAEO+iE,GACV,EAAKjnE,IAAI,QAASkE,GAFlB,EAAKlE,IAAI,OAAQinE,GAKnB,IAAM+4D,EAAa,EAAK9hI,IAAI,QACpB+hI,EAAeztH,EAAM,WACvB0tH,EAAUD,EAAaA,EAAWD,GAAcG,EAASF,WAAWD,G,OAC1E,EAAKhgI,IAAI,OAAQkgI,GACjB,EAAKziD,GAAKr5E,EAAKq5E,G,CACjB,CAuHF,OA9JsC,QACpC,YAAAp8E,SAAA,WACE,MAAO,CACL6C,KAAM,GACN+iE,MAAO,GACPlqE,KAAM+iI,GACNrmF,QAAQ,EACRqmE,SAAS,EACTsgB,WAAW,EACXld,OAAO,EAEX,EA8BA,YAAAmd,KAAA,WACE,OAAO9lI,KAAK2D,IAAI,UAAY6hI,EAC9B,EAEA,YAAAO,QAAA,WACE,OAAO/lI,KAAK2D,IAAI,UAAY4hI,EAC9B,EAEA,YAAAS,YAAA,SAAYn8H,QAAA,IAAAA,IAAAA,EAAA,IACF,IAAA2D,EAAW3D,EAAI,OACjBF,EAAO3J,KAAK2D,IAAI,QAClBsgF,EAAM,GAEV,OAAQjkF,KAAK2D,IAAI,SACf,KAAK4hI,GACHthD,EAAM,IACN,MACF,KAAKuhD,GACHvhD,EAAM,IAIV,OAAOA,GAAOz2E,EAASA,EAAO7D,GAAQA,EACxC,EAUA,YAAAie,SAAA,WACE,OAAO5nB,KAAKgmI,aACd,EAUA,YAAAC,SAAA,WACE,OAAOjmI,KAAK2D,IAAI,QAClB,EAWA,YAAAuiI,SAAA,SAASx5D,GACP,OAAO1sE,KAAKyF,IAAI,QAASinE,EAC3B,EAMA,YAAAy5D,UAAA,WACE,OAAOnmI,KAAK2D,IAAI,SAClB,EAMA,YAAAyiI,UAAA,SAAU1+H,GACR,OAAO1H,KAAKyF,IAAI,SAAUiC,EAC5B,EAEA,YAAA4F,OAAA,SAAOzD,QAAA,IAAAA,IAAAA,EAAA,IACG,IAAAq5E,EAAOljF,KAAI,GACfgB,EAAM,2BAA4BhB,KAAM,CAAC6J,IACvC/C,GAAW,IAAAoG,QAAOlN,KAAM,YAE9B,GAAIkjF,GAAMA,EAAG0D,YAAY67B,cAAe,EACtC,IAAAhtG,SAAQ3O,GAAU,SAACY,EAAOrG,GACpBL,EAAIK,KAASqG,UACR1G,EAAIK,EAEf,IAEIL,EAAI0rE,QAAU1rE,EAAI2I,aACb3I,EAAI0rE,MAGb,IAAM25D,GAAS,IAAAplI,MAAKD,GAAKL,OAEV,IAAX0lI,GAAgBrlI,EAAI2I,OACtB3I,EAAMA,EAAI2I,MAGG,IAAX08H,GAAgBrlI,EAAI2I,MAAQ3I,EAAIwB,OAClCxB,EAAMhB,KAAKgmI,c,CAIf,OAAOhlI,CACT,EAQO,EAAA0kI,WAAP,SAAkB/7H,GAChB,MAAO,UAAGA,GAAO2+E,OAAO74E,QAAQ,uBAAwB,IAC1D,EA/IgB,EAAA81H,WAAaA,GACb,EAAAC,QAAUA,GA+I5B,C,CA9JA,CAAsC,M,YAgKtCI,GAASvlI,UAAUgN,YAAc,O,2fCrL3Bi5H,GAAU,SAACl2H,EAAgBm2H,GAC/B,OAAOn2H,EAAKuF,QACV,SAACyrG,EAAK36B,EAAM3/D,GACV,OAAOs6F,EAAIr8G,OAAOuhI,GAAQl2H,EAAK9P,MAAMwmB,EAAI,GAAI,UAAGy/G,GAAI,OAAG9/C,IACzD,GACA,CAAC8/C,GAEL,EAEA,4B,8CAyCA,QAzCuC,QACrC,YAAA30H,QAAA,SAAQpK,GACN,MAAO,UAAGA,EAAKmC,KAAI,YAAInC,EAAKhF,MAAQ,cACtC,EAEA,YAAAgkI,aAAA,WACE,OAAO,IAAAvwH,QACLjW,KAAKwD,QACL,SAACijF,GAAS,OAAAA,EAAK9iF,IAAI,YAAc8iF,EAAK9iF,IAAI,UAAhC,GAEd,EAEA,YAAA8iI,SAAA,SAAS,G,IAAEC,QAAF,MAAsB,CAAC,EAAC,GAAZ,WACnB,OAAO,IAAAzwH,QAAOjW,KAAKwD,QAAQ,SAACijF,GAAS,OAACA,EAAK9iF,IAAI,UAAV,IAAsBsS,QAAO,SAACwwE,GACjE,OAAAigD,EAAajgD,EAAK9iF,IAAI,UAAY,CAAlC,GAEJ,EAEA,YAAA0+H,cAAA,SAAcp9H,EAAgC4E,QAAA,IAAAA,IAAAA,EAAA,IAC5C,IAAMqD,EAAmB,GAIzB,OAHajI,GAAcjF,MACtByV,SAAQ,SAAC/B,GAAa,OAAAxG,EAAOvI,KAAK+O,EAASsyH,YAAYn8H,GAAjC,IAC3BA,EAAKkH,MAAQ7D,EAAO6D,OACb7D,EAAOuiD,KAAK,IAAI64B,MACzB,EAEA,YAAA09C,YAAA,SAAYn8H,QAAA,IAAAA,IAAAA,EAAA,IACF,IAAA88H,EAAuB98H,EAAI,YAAdoG,EAAUpG,EAAI,MAC/BqD,EAAmB,GACjBiuD,EAAOn7D,KAAK8E,KAAI,SAACsD,GAAM,OAAAA,EAAE49H,YAAYn8H,EAAd,IAAqBkH,OAUlD,OARI41H,EACFxrE,EAAK1lD,SAAQ,SAACo8B,EAAK/qB,GACjB5Z,EAASA,EAAOnI,OAAOuhI,GAAQnrE,EAAK76D,MAAMwmB,EAAI,GAAI+qB,GACpD,IAEA3kC,EAASiuD,EAGJlrD,EAAQ/C,EAASy5H,EAAcz5H,EAAOuiD,KAAK,KAAOviD,EAAOuiD,KAAK,GACvE,EACF,EAzCA,CAAuC,M,YA2CvCq0E,GAAUzjI,UAAU8E,MAAQ,G,kvBCuB5B,YAqBE,WAAYshB,EAAuBy8D,GAAnC,MACE,YAAMz8D,IAAK,KACL,EAAmB,EAAKzf,WAAtBuf,EAAM,SAAE5c,EAAI,O,OACnB,EAAKhG,IAAI,OAAS,EAAK8B,IAAI,KAAMkE,GAC9B4c,GACF,EAAK4qE,UAAU5qE,GAEjB,EAAK28D,GAAKA,E,CACZ,CAyOF,OAtQmC,QAMjC,YAAAp8E,SAAA,WACE,MAAO,CACLtE,KAAM,OACNkqE,MAAO,GACP/iE,KAAM,GACNu0D,KAAM,GACN61C,KAAM,EACNrsG,MAAO,GACP8kH,QAAS,GACTz9C,YAAa,GACb63D,YAAY,EACZ/jI,QAAS,GAEb,EAYA,YAAAsuF,UAAA,SAAU5qE,GACR,GAAIA,EAAQ,CACJ,MAAyCvmB,KAAKgH,WAA5C,EAAI,OAAE4/H,EAAU,aAASC,EAAS,QAC1C7mI,KAAKumB,OAASA,EACdvmB,KAAKwF,MAAM,UACX,IAAMshI,EAAcF,EAAa,iBAAU,GAAS,4BAAqB,GACzE5mI,KAAKwK,SAAS+b,EAAQugH,EAAa9mI,KAAK+mI,eACxC,IAAMr/H,EAAQm/H,GAAa7mI,KAAKwvD,aAC/B,IAAAo6B,aAAYliF,IAAU1H,KAAKyF,IAAI,CAAEiC,MAAK,GAAI,CAAEkG,QAAQ,G,CAEzD,EAMA,YAAA08G,MAAA,WACE,OAAOtqH,KAAK2D,IAAI,KAClB,EAMA,YAAA2kH,QAAA,WACE,OAAOtoH,KAAK2D,IAAI,OAClB,EAMA,YAAA+oF,QAAA,WACE,OAAO1sF,KAAK2D,IAAI,OAClB,EAQA,YAAAsiI,SAAA,SAASp8H,G,WAAA,IAAAA,IAAAA,EAAA,IACC,MAAkBA,EAAI,OAAtBm9H,OAAM,IAAG,GAAI,EACf18H,EAAKtK,KAAKsqH,QACV3gH,EAAO3J,KAAK2D,IAAI,UAAY3D,KAAK0sF,UACvC,OAAQs6C,IAAiB,QAAP,EAAAhnI,KAAKkjF,UAAE,eAAE5vB,EAAE,qCAA8BhpD,MAAUX,CACvE,EAOA,YAAA6lD,SAAA,WACE,OAAOxvD,KAAKinI,gBACd,EASA,YAAAt3E,SAAA,SAASjoD,EAAYmC,GAArB,I,EAAA,YAAqB,IAAAA,IAAAA,EAAA,IACnB,IAAMq9H,EAAsC,CAAC,EACvCv3E,EAAW3vD,KAAK2D,IAAI,YAEtBgsD,EACFA,EAAS,CACPjoD,MAAK,EACL66E,OAAe,QAAP,EAAAviF,KAAKkjF,UAAE,eAAEzwB,YACjB00E,MAAOnnI,KACPslF,UAAWtlF,KAAKumB,OAChBg3F,UAAW1zG,EAAK0zG,QAChB5oB,WAAY,WAAM,SAAKoyC,eAAL,KAKlBl9H,EAAK0zG,UACP2pB,EAAUr+C,YAAa,GAGzB7oF,KAAKonI,eAAe1/H,EAAOw/H,IAEN,IAAjBr9H,EAAK0zG,UACPv9G,KAAKonI,eAAe,IACpBpnI,KAAKonI,eAAe1/H,IAExB,EAKA,YAAA2/H,WAAA,WACE,OAAOrnI,KAAK2D,IAAI,UAClB,EAKA,YAAA2pH,WAAA,WACE,OAAQttH,KAAK2D,IAAI,YAAgC,EACnD,EAOA,YAAAud,UAAA,SAAU5W,GAAV,WACQm+G,GAAQ,IAAAjlB,OAAMl5F,GAAMA,EAAKtK,KAAKwvD,WACpC,OAAOxvD,KAAKstH,aAAar3G,QAAO,SAAAkgB,GAAK,SAAKmxG,YAAYnxG,KAAOsyF,CAAxB,IAA+B,EACtE,EAOA,YAAA6e,YAAA,SAAYrpE,GACV,OAAOA,EAAO3zD,IAAO2zD,EAAev2D,KACtC,EASA,YAAA6/H,eAAA,SAAej9H,EAA0BT,G,WAAA,IAAAA,IAAAA,EAAA,IAC/B,MAAkBA,EAAI,OAAtBm9H,OAAM,IAAG,GAAI,EACf/oE,GAAU,IAAA/sD,UAAS5G,GAAMtK,KAAKkhB,UAAU5W,GAAMA,EAC9Ck9H,EAAQxnI,KAAKsnI,YAAYrpE,GACzByO,EAAQzO,EAAOyO,OAAUzO,EAAet0D,MAAQ69H,EAChDC,EAAWznI,KAAK0sF,UACtB,OAAQs6C,IAAiB,QAAP,EAAAhnI,KAAKkjF,UAAE,eAAE5vB,EAAE,sCAA+Bm0E,EAAQ,YAAID,MAAa96D,CACvF,EAEA,YAAA5jD,MAAA,WACE,OAAO9oB,KAAKgH,UACd,EAEA,YAAA+/H,cAAA,W,MACQr/H,EAAQ1H,KAAKinI,iBACnBjnI,KAAKyF,IAAI,CAAEiC,MAAK,GAAI,CAAEggI,WAAY,IAC3B,QAAP,EAAA1nI,KAAKkjF,UAAE,SAAEp/E,QAAQ,eAAgB,CAC/BqjI,MAAOnnI,KACPslF,UAAWtlF,KAAKumB,QAEpB,EAEA,YAAA0gH,eAAA,W,MAIMv/H,EAHEiC,EAAO3J,KAAK0sF,UACZnmE,EAASvmB,KAAKumB,OACdipC,EAAWxvD,KAAK2D,IAAI,YAgB1B,OAZE+D,EADE8nD,EACMA,EAAS,CACf+yB,OAAe,QAAP,EAAAviF,KAAKkjF,UAAE,eAAEzwB,YACjB00E,MAAOnnI,KACPslF,UAAW/+D,IAEJvmB,KAAK2D,IAAI,cACV4iB,EAAO5iB,IAAIgG,GAGX4c,EAAOohH,gBAAgBh+H,IAGzB,IAAAigF,aAAYliF,GAAiB,GAARA,CAC/B,EAEA,YAAA0/H,eAAA,SAAe1/H,EAAYmC,G,WAAA,IAAAA,IAAAA,EAAA,IACnB,IAAE0c,EAAuBvmB,KAAjB,OAAEgH,EAAehH,KAAL,WACpB2J,EAAO3J,KAAK0sF,UAClB,KAAI,IAAA9C,aAAYliF,GAAhB,CACA,IAAIkgI,EAAalgI,EAQjB,GANc,UAAVA,EACFkgI,GAAa,EACM,SAAVlgI,IACTkgI,GAAa,GAGQ,aAAnB5nI,KAAKsoH,UAA0B,CACzB,IAAAuf,EAA0B7gI,EAAU,UAAzB8gI,EAAe9gI,EAAU,WAExC4gI,KAAe,IAAAh+C,aAAYi+C,KAC7BD,EAAaC,GAGVD,IAAe,IAAAh+C,aAAYk+C,KAC9BF,EAAaE,E,CAIb9nI,KAAK2D,IAAI,cACX4iB,EAAO9gB,IAAIkE,EAAMi+H,EAAY/9H,GAE7B0c,EAAOm8G,gBAAa,MAAI/4H,GAAOi+H,EAAU,GAAI/9H,EAxBjB,CA0BhC,EAEA,YAAAk+H,kBAAA,SAAkBrgI,EAAYsgI,EAAcn+H,QAAd,IAAAm+H,IAAAA,GAAA,QAAc,IAAAn+H,IAAAA,EAAA,IAC1C,IAAMo+H,EAAQ,CAAEvgI,MAAK,GACrB1H,KAAKyF,IAAIwiI,EAAO,SAAKp+H,GAAI,CAAEg/E,WAAY,KAGnCm/C,IACFhoI,KAAKyF,IAAI,QAAS,GAAIoE,GACtB7J,KAAKyF,IAAIwiI,EAAOp+H,GAEpB,EAEA,YAAAq+H,aAAA,WACE,IAEIxgI,EAFE6e,EAASvmB,KAAKumB,OACd5c,EAAO3J,KAAK0sF,UAGlB,GAAInmE,EAAQ,CACV,IAAMzZ,EAAQyZ,EAAO5iB,IAAI,cACzB+D,EAAQ1H,KAAK2D,IAAI,cAAgB4iB,EAAO5iB,IAAIgG,GAAQmD,EAAMnD,E,CAG5D,OAAOjC,GAAS1H,KAAK2D,IAAI,UAAY3D,KAAK2D,IAAI,UAChD,EACF,EAtQA,CAAmC,MC1EnC,kBAGE,WAAYsU,QAAA,IAAAA,IAAAA,EAAA,IACVjY,KAAKiY,OAASA,CAChB,CAwBF,OAnBE,YAAAkwH,MAAA,SAAM1hH,EAAgCy8D,GACpC,OAAO,IAAAhyE,UAASuV,GAAQzmB,KAAKooI,gBAAgB3hH,EAAMy8D,GAAM,IAAI,GAAMz8D,EAAMy8D,EAC3E,EAEQ,YAAAklD,gBAAR,SAAwBz+H,EAAcu5E,GACpC,IAAMliF,EAAuB,CAC3B2I,KAAMA,EACNnH,KAAM,QAGR,GACO,WADCmH,EAEJ3I,EAAIwB,KAAO,SACXxB,EAAIwrH,SAAU,EACdxrH,EAAI6B,QAAU7C,KAAKiY,OAAOowH,cAG9B,OAAO,IAAI,GAAMrnI,EAAKkiF,EACxB,EACF,EA7BA,G,ghBCEA,YAKE,WAAY8H,EAAyBnoF,GAArC,I,EAAA,Q,EACE,YAAMmoF,IAAK,MACN9H,GAAKrgF,EAAQqgF,GAClB,EAAK14E,SAAS,EAAM,MAAO,EAAK89H,WAChC,EAAK99H,SAAS,EAAM,QAAS,EAAK+9H,aAClC,IAAMz0C,EAAY,QAAP,IAAK5Q,UAAE,eAAEslD,OACdC,EAAS30C,aAAE,EAAFA,EAAIlN,Y,OACnB,EAAK8hD,GAAK,IAAI,GAAaD,G,CAC7B,CA0CF,OAvDoC,QAelC,YAAAF,YAAA,SAAYv9C,EAAyB,G,IAAE,QAAF,MAAwD,CAAC,EAAC,GAAxD7kF,qBAAc,IAAG,KAAE,GACzCsP,SAAQ,SAAAtQ,GAAS,OAAAA,EAAMrB,QAAQ,SAAd,GAClC,EAEA,YAAAwkI,UAAA,SAAUnjI,GACRA,EAAM+9E,GAAKljF,KAAKkjF,GAChB,IAAM38D,EAASvmB,KAAKumB,OAEhBA,IACFphB,EAAMohB,OAASA,EAEnB,EAEA,YAAA4qE,UAAA,SAAU5qE,GACRvmB,KAAKumB,OAASA,EACdvmB,KAAKwD,OAAOiS,SAAQ,SAAA0xH,GAAS,OAAAA,EAAMh2C,UAAU5qE,EAAhB,GAC/B,EAIA,YAAAjiB,IAAA,SAAId,EAAiB8pD,GACnB,GAAcjoD,MAAV7B,EAAJ,CAGM,IAAE+iB,EAAevmB,KAAT,OAAEkjF,EAAOljF,KAAL,GAElB,IAAI,IAAAkB,SAAQsC,GAAS,CAEnB,IADA,IAAImlI,EAAkB,GACb9oI,EAAI,EAAG4rB,EAAMjoB,EAAO7C,OAAQd,EAAI4rB,EAAK5rB,IAAK,CACjD,IAAM,EAAQ2D,EAAO3D,GACrB8oI,EAAO9oI,GAAK,aAAiB,GAAQ,EAAQG,KAAK0oI,GAAGP,MAAM,EAAOjlD,GAClEylD,EAAO9oI,GAAGsxF,UAAU5qE,E,CAEtB,OAAO,YAAMjiB,IAAG,UAACqkI,EAAQr7E,E,CAE3B,IAAM65E,EAAQ3jI,aAAkB,GAAQA,EAASxD,KAAK0oI,GAAGP,MAAM3kI,EAAe0/E,GAG9E,OAFAikD,EAAMh2C,UAAU5qE,GAET,YAAMjiB,IAAG,UAAC6iI,EAAO75E,E,CAC1B,EACF,EAvDA,CAAoC,M,48BCkC9B3zC,GAAe,SAACiQ,GACpB,OAAOA,EAAIna,QAAQ,sBAAuB,OAC5C,EAEaw1H,GAAc,SAAC/hD,GAAoB,SAAEA,aAAE,EAAFA,EAAI0D,YAAY47B,iBAAlB,EAEnComB,GAAY,iBACZC,GAAa,YACbC,GAAY,WACZC,GAAgB,gBAChBC,GAAY,mBACZC,GAAkB,UAAGD,GAAS,WA+D3C,4B,8CA67DA,QA77DuC,QAIrC,sBAAI,uBAAQ,C,IAAZ,W,MACE,OAAO,EAAP,CACEv1H,QAAS,MACTjR,KAAM,GACNmH,KAAM,GACNu/H,WAAW,EACXtnF,WAAW,EACX4yE,WAAW,EACX2U,UAAU,EACVC,UAAU,EACV,mBAAoB,GACpB,kBAAmB,GACnBC,WAAY,GACZC,eAAe,EACfC,UAAU,EACVvuC,WAAW,EACXwuC,UAAU,EACVC,WAAW,EACXC,YAAY,EACZC,WAAW,EACXC,QAAQ,EACRzJ,MAAM,EACNlhH,MAAO,GACPs/E,OAAQ,GACRx/E,QAAS,GACTm7E,KAAM,GACNv9E,MAAO,GACP6Z,OAAQ,GACRC,QAAS,GACTo+C,OAAQ,GACR,eAAgB,GAChB,gBAAiB,GACjB7tE,WAAY,CAAC,EACb2hI,OAAQ,CAAC,KAAM,SACf5iF,UAAW,GACX8jF,MAAO,GACP5sC,QAAS,OACR6rC,IAAY,EACb,EAACD,IAAa,EACd,EAACE,IAAgB,EACjB,EAAApgB,OAAO,EACP,EAAAC,SAAU,CAAC,SAAU,Q,CAEzB,E,gCAEA,sBAAI,sBAAO,C,IAAX,WACE,OAAO5oH,KAAK2D,IAAI,UAClB,E,gCAEA,sBAAI,qBAAM,C,IAAV,WACE,OAAO3D,KAAK2D,IAAI,SAClB,E,gCAEA,sBAAI,sBAAO,C,IAAX,W,MACE,OAA0B,QAAnB,EAAA3D,KAAK2D,IAAI,kBAAU,QAAI,EAChC,E,gCAKA,YAAAq+C,KAAA,WAAQ,EAQR,YAAA8nF,QAAA,SAAQxtD,EAAkB50E,EAAY8G,GAAgB,EAKtD,YAAA8B,QAAA,WAAW,EAkBX,YAAA/I,WAAA,SAAWuhB,EAAYwkC,GAAvB,gBAAW,IAAAxkC,IAAAA,EAAA,SAAY,IAAAwkC,IAAAA,EAAA,KACrB,IAAAg1B,SAAQtiF,KAAM,gBAAiB,cAAe,iBAC9C,IAAMkjF,EAAK51B,EAAI41B,GAGT3kE,EAASve,KAAKue,SACdwrH,EAAaxrH,aAAM,EAANA,EAAQvX,WACrB++C,EAAY/lD,KAAK2D,IAAI,aAG3B,GAFAoiD,GAAa/lD,KAAKyF,IAAI,aAAa,IAAAvE,SAAQ6kD,GAAaA,EAAY,CAACA,IAEjEgkF,GAAcA,EAAWhkF,YAAcA,EAAW,CACpD,IAAM,EAAwC,CAAC,EACzCikF,EAAcD,EAAWhkF,UAC/BikF,EAAYv0H,SAAQ,SAAAgR,GAAQ,OAAC,EAAQA,GAAQlI,EAAO5a,IAAI8iB,EAA5B,IAC5B,EAAQs/B,UAAYikF,EACpBhqI,KAAKyF,IAAI,SAAK,GAAYqjB,G,CAuC5B,GAnCIwkC,GAAOA,EAAIr1C,QAAUq1C,EAAIr1C,OAAOwmH,aAAc55H,QAAQ7E,KAAK2D,IAAI,aAAgB,GACjF3D,KAAKyF,IAAI,QAAQ,GAGnB6nD,EAAI41B,GAAKA,EACTljF,KAAKstD,IAAMA,EACXttD,KAAKkjF,GAAKA,EACVljF,KAAKmwF,MAAQ7iC,EAAI6iC,MACjBnwF,KAAKiY,OAASq1C,EAAIr1C,QAAU,CAAC,EAC7BjY,KAAKyF,IAAI,aAAc,UACjB,IAAAyH,QAAOlN,KAAM,YAAYgH,YAAc,CAAC,GACxChH,KAAK2D,IAAI,eAAiB,CAAC,IAEjC3D,KAAK8kI,KAAOI,EAAU1vB,SAASx1G,KAAMstD,GACrCttD,KAAKiqI,cACLjqI,KAAKkqI,iBACLlqI,KAAKmqI,aACLnqI,KAAKoqI,cACLpqI,KAAKqqI,kBACLrqI,KAAKwK,SAASxK,KAAM,gBAAiBA,KAAKsqI,eAC1CtqI,KAAKwK,SAASxK,KAAM,iBAAkBA,KAAKuqI,YAC3CvqI,KAAKwK,SAASxK,KAAM,oBAAqBA,KAAKwqI,aAC9CxqI,KAAKwK,SAASxK,KAAM,uBAAwBA,KAAKyqI,YACjDzqI,KAAKyH,GAAG,iBAAkBzH,KAAK0qI,iBAC/B1qI,KAAKyH,GAAG,SAAUzH,KAAK2rH,YACvB3rH,KAAKyH,GAAGwhI,GAAiBjpI,KAAK2qI,gBAC9B3qI,KAAKyF,IAAI,SAAU,IACnBzF,KAAK44F,MAAQ,GAGb,CAAC,UAAW,SAAU,cAAcnjF,SAAQ,SAAA9L,GAC1C,IAAMD,EAAS,qBAAuB,eAATC,EAAwB,SAAW,IAChE,EAAKa,SAAS,EAAK7G,IAAIgG,GAAOD,EAAO4+E,QAAQ,W,IAAC,sDAAY,SAAKqM,WAAU,MAAf,EAAI,IAAYhrF,GAASjJ,GAAI,GAA7B,GAC5D,KAEK4sD,EAAIw7D,UAAW,CAElB,IAAMqa,EAAOjgD,GAAMA,EAAGglC,IAChB,EAAmBloH,KAAKgH,WAAtBwvB,EAAM,SAAEh0B,EAAI,OAChBg0B,GAAU2sG,GACZA,EAAKsB,cAAcjuG,EAAQ,CAAEo0G,kBAAkB,GAAQ,CAAE/nG,MAAO,cAAOrgC,KAGzExC,KAAKqlI,YACLrlI,KAAKgiD,OACLhiD,KAAK6qI,oBAAsB7qI,KAAK8qI,aAChC5nD,GAAMA,EAAGp/E,QAAQ,mBAAoB9D,K,CAEzC,EAEA,YAAAqlI,UAAA,SAAUx7H,QAAA,IAAAA,IAAAA,EAAA,IACA,IAAAq5E,EAAOljF,KAAI,GACbuqH,EAAKrnC,aAAE,EAAFA,EAAI57E,YACT84H,EAAQpgI,KAAKqlF,aACfklC,IAAOvqH,KAAK+qI,UACdxgB,EAAGjmH,IAAI87H,GACP7V,EAAGjmH,IAAItE,KAAKkiI,gBACZliI,KAAK+qI,SAAU,GAEjBlhI,EAAKy7H,WAAalF,EAAMt7H,KAAI,SAAAi6E,GAAK,OAAAA,EAAEsmD,UAAUx7H,EAAZ,GACnC,EAEA,YAAAq6H,aAAA,WACU,IAAAhhD,EAAOljF,KAAI,GACbuqH,EAAKrnC,aAAE,EAAFA,EAAIv/E,IAAI,eACf4mH,IACFA,EAAGnlH,OAAOpF,KAAKqlF,cACfklC,EAAGnlH,OAAOpF,KAAKkiI,uBACRliI,KAAK+qI,QAEhB,EAEA,YAAApf,WAAA,SAAWn6G,EAAQ3H,GAAnB,WACQsD,EAAUnN,KAAK4F,qBAAuB,CAAC,GAC7C,IAAA3E,MAAKkM,GAASsI,SAAQ,SAAAgR,GAAQ,SAAKkuE,WAAWluE,EAAhB,IAC9B,CAAC,SAAU,OAAQ,UAAW,UAAUhR,SAAQ,SAAA9L,GAAQ,cAAOwD,EAAQxD,EAAf,KAEnD,IAAAqrG,YAAW7nG,KACdnN,KAAKgrI,YAAYnhI,GACjB7J,KAAKirI,mBAAmB,CAAE3lD,UAAWtlF,KAAMmN,QAAO,EAAEtK,QAASgH,IAEjE,EAEA,YAAAmhI,YAAA,SAAYnhI,GACJ,IAAEq5E,EAAcljF,KAAZ,GACV,CADsBA,KAAL,MACTkjF,GAAIztE,SAAQ,SAAAywG,GAAM,OAAAA,GAAMA,EAAG2C,UAAUh/G,EAAnB,GAC5B,EAEA,YAAAohI,mBAAA,SAAmBniH,GACjB9oB,KAAK8D,QAAQklI,GAAWlgH,GACxB9oB,KAAK2qI,eAAe7hH,EACtB,EAEA,YAAA6hH,eAAA,SAAe7hH,GACb,IAAMvK,EAASve,KAAKue,SACpBA,GAAUA,EAAOza,QAAQmlI,GAAiBngH,EAC5C,EAEA,YAAA4hH,gBAAA,WACE1qI,KAAK20F,WAAW,UAClB,EAUA,YAAA4U,GAAA,SAAG/mG,GACD,QAAUxC,KAAK2D,IAAI,SAAWnB,EAChC,EAMA,YAAAsmB,MAAA,WACE,OAAO9oB,KAAKgH,UACd,EAMA,YAAAlG,MAAA,WACU,IAAAmE,EAAejF,KAAI,WAC3B,OAAOiF,EAAaA,EAAWJ,QAAQ7E,MAAQ,CACjD,EAQA,YAAAkrI,YAAA,SAAYxjI,GACV,OAAO1H,KAAKyF,IAAI,QAASiC,EAC3B,EAMA,YAAAk1F,YAAA,WACE,OAAO58F,KAAK2D,IAAI,UAAY,EAC9B,EAWA,YAAAiQ,KAAA,SAAK66F,G,MACGvhG,EAAsB,GACtBi+H,EAAgB,QAAT,EAAAnrI,KAAKsiC,YAAI,eAAE3uB,IAAIC,KAAK66F,GAOjC,OANA08B,SAAAA,EAAM5lI,MAAK,SAAA1F,GACT,IACMsF,EADMgmI,EAAK3iC,GAAG3oG,GACF6Y,KAAK,SACvBvT,GAAS+H,EAAOvI,KAAKQ,EACvB,IAEO+H,CACT,EAYA,YAAAu+E,SAAA,SAASjpF,GACP,IAAM0K,EAAsB,GACtB0G,EAAO,SAACyxE,GACZ,OAAAA,EAAW5vE,SAAQ,SAAAgxE,GACjBA,EAAK8iB,GAAG/mG,IAAS0K,EAAOvI,KAAK8hF,GAC7B7yE,EAAK6yE,EAAKpB,aACZ,GAHA,EAKF,OADAzxE,EAAK5T,KAAKqlF,cACHn4E,CACT,EAWA,YAAA+jG,QAAA,SAAQxC,G,MACAvhG,EAAkB,QAAT,EAAAlN,KAAKsiC,YAAI,eAAE3uB,IAAIs9F,QAAQxC,GACtC,OAAOvhG,aAAM,EAANA,EAAQvM,QAAUuM,EAAOwL,KAAK,cAAyBrT,CAChE,EAYA,YAAA+lI,YAAA,SAAY5oI,GAGV,IAFA,IAAI+b,EAASve,KAAKue,SAEXA,IAAWA,EAAOgrF,GAAG/mG,IAC1B+b,EAASA,EAAOA,SAGlB,OAAOA,CACT,EAQA,YAAA7Z,SAAA,SAAS4gF,GACP,IAAIp4E,GAAU,EACd,IAAKo4E,EAAW,OAAOp4E,EACvB,IAAMxI,EAAW,SAAC2gF,IACfn4E,GACCm4E,EAAW5vE,SAAQ,SAAAgxE,GACbA,IAASnB,IAAWp4E,GAAU,IACjCA,GAAUxI,EAAS+hF,EAAKpB,aAC3B,GACJ,EAEA,OADA3gF,EAAS1E,KAAKqlF,cACPn4E,CACT,EAMA,YAAAq9H,WAAA,WACEvqI,KAAK8D,QAAQ,WACf,EAUA,YAAA0sG,YAAA,SAAYp8F,GACV,IAAM42E,EAAOhrF,KAAKiF,WACZxB,EAAKunF,EAAKnmF,QAAQ7E,MAExB,OADAgrF,EAAK5lF,OAAOpF,MACLgrF,EAAK1mF,IAAI8P,EAAI,CAAE3Q,GAAE,GAC1B,EAMA,YAAA+mI,YAAA,SAAYh5H,EAAQi6C,EAAQ5hD,GAA5B,gBAA4B,IAAAA,IAAAA,EAAA,IAC1B,IAAMiD,EAAQ9M,KAAK2D,IAAI,cAEjB8yB,EAAU3pB,EAAMqgF,MACtB12D,GAAWz2B,KAAKqrI,SAAS50G,UAClB3pB,EAAMqgF,MAGb,IAAMxwE,EAAQ7P,EAAM6P,MACpBA,GAAS3c,KAAK8/E,SAASnjE,UAChB7P,EAAM6P,MAEb,IAAM2uH,EAAW,MAAKtrI,KAAKwO,SAAS,eAC9BnK,GAAO,IAAAivG,aAAYg4B,EAAUtrI,KAAK2D,IAAI,gBAC5C,IAAA1C,MAAKoD,GAAMoR,SAAQ,SAAAm3G,GAAM,SAAK9oH,QAAQ,4BAAqB8oH,GAAM,EAAMvoH,EAAKuoH,GAAK/iH,EAAxD,GAC3B,EAUA,YAAA0hI,cAAA,SAAcz+H,EAAkBjD,GAE9B,YAF8B,IAAAA,IAAAA,EAAA,IAC9B7J,KAAKyF,IAAI,aAAc,MAAKqH,GAASjD,GAC9B7J,IACT,EAUA,YAAA0iI,cAAA,SAAc51H,EAAkBjD,GAC9B,YAD8B,IAAAA,IAAAA,EAAA,IACvB7J,KAAKurI,cAAc,SAEnBvrI,KAAK2nI,cAAc,CAAE6D,SAAS,KAC9B1+H,GAELjD,EAEJ,EAWA,YAAA4hI,iBAAA,SAAiB3+H,EAAsBjD,QAAtB,IAAAiD,IAAAA,EAAA,SAAsB,IAAAjD,IAAAA,EAAA,IACrC,IAAM6hI,EAAUtrI,MAAMc,QAAQ4L,GAASA,EAAQ,CAACA,GAC1C6+H,EAAW3rI,KAAK2nI,gBAEtB,OADA+D,EAAQ5mI,KAAI,SAAAjF,GAAK,cAAO8rI,EAAS9rI,EAAhB,IACVG,KAAKurI,cAAcI,EAAU9hI,EACtC,EAMA,YAAA4+E,SAAA,SAAS5lF,EAAmB+oI,QAAnB,IAAA/oI,IAAAA,EAAA,SAAmB,IAAA+oI,IAAAA,EAAA,IAClB,IAAA1oD,EAAOljF,KAAI,GACbymB,GAAO,IAAAvV,UAASrO,GAAWA,EAAU,GACrCgH,EAAO4c,EAAOmlH,EAAU/oI,EAE9B,GAAIoiI,GAAY/hD,KAAQr5E,EAAKwV,OAAQ,CACnC,IAAMJ,EAAQikE,EAAGv/E,IAAI,SAEfioF,EADK1I,EAAGglC,IACE2jB,UAAU7rI,KAAKsqH,QAAS,IAAErrG,MAAK,GAAKpV,IAGpD,GAFA7J,KAAK4rF,KAAOA,EAERA,EACF,OAAOA,EAAKnD,SAAShiE,E,CAIzB,OAAO,YAAMgiE,SAAS7nF,KAAKZ,KAAMymB,EACnC,EASA,YAAAq5D,SAAA,SAASr5D,EAAuB5c,GAAhC,gBAAS,IAAA4c,IAAAA,EAAA,SAAuB,IAAA5c,IAAAA,EAAA,IACxB,MAAc7J,KAAZstD,EAAG,MAAE41B,EAAE,KAEf,IAAI+hD,GAAY/hD,IAAQ51B,EAAIw7D,WAAcj/G,EAAKwV,OAY7CoH,EAAO,YAAMq5D,SAASv/E,MAAMP,KAAMmB,eAZmB,CACrD,IAAMwb,EAAQ3c,KAAK2D,IAAI,UAAY,CAAC,EACpC8iB,GAAO,IAAAvV,UAASuV,GAAQzmB,KAAKq/H,WAAW54G,GAAQA,EAChDA,EAAO,SAAKA,GAAS9J,GACrB,IAAMsC,EAAQikE,EAAGv/E,IAAI,SACfw1E,EAAK+J,EAAGglC,IACRyZ,EAAW3hI,KAAKyoF,SAAS5+E,GAC/B7J,KAAK4rF,KAAOzS,EAAG2yD,UAAU9rI,KAAKsqH,QAAS7jG,EAAM,IAAExH,MAAK,GAAKpV,IACzD,IAAMxF,GAAO,IAAAivG,aAAYquB,EAAUl7G,GACnCzmB,KAAKyF,IAAI,QAAS,GAAI,CAAEmI,QAAQ,KAChC,IAAA3M,MAAKoD,GAAMoR,SAAQ,SAAAm3G,GAAM,SAAK9oH,QAAQ,uBAAgB8oH,GAA7B,G,CAK3B,OAAOnmG,CACT,EAMA,YAAAkhH,cAAA,SAAc99H,QAAA,IAAAA,IAAAA,EAAA,IACJ,IAAAq5E,EAAOljF,KAAI,GACby2B,EAAoB,GACpBzvB,EAAa,MAAKhH,KAAK2D,IAAI,eAC3B0vF,EAAKnQ,aAAE,EAAFA,EAAI4gD,UACTx5H,EAAKtK,KAAKsqH,QAWhB,GARIzgH,EAAK2hI,eACAxkI,EAAWmmF,OAElBntF,KAAKy2B,QAAQhhB,SAAQ,SAAAyO,GAAO,OAAAuS,EAAQ9xB,MAAK,IAAAuM,UAASgT,GAAOA,EAAMA,EAAIvgB,IAAI,QAA3C,IAC5B8yB,EAAQ91B,SAAWqG,EAAWmmF,MAAQ12D,EAAQg5B,KAAK,QAIhD5lD,EAAKkiI,QAAS,CACjB,IAAMpvH,EAAQ3c,KAAK2D,IAAI,UACnB,IAAA+C,UAASiW,MAAW,IAAAq4F,YAAWr4F,KACjC3V,EAAW2V,MAAQ3c,KAAKgiI,cAAc,CAAE3iH,OAAQ,I,CAKpD,KAAK,IAAA5R,KAAIzG,EAAY,MAAO,CAC1B,IAAIglI,GAAQ,GAIR/G,GAAY/hD,KAAQ,IAAA59E,SAAQtF,KAAKyoF,cACnCujD,KAAU34C,aAAE,EAAFA,EAAI1vF,IAAI2G,EAAI+oF,EAAGuyC,SAASJ,YAIhCxlI,KAAKisI,eAAiBjsI,KAAKksI,kBAC7BF,GAAQ,GAGNA,IACFhlI,EAAWsD,GAAKA,E,CAIpB,OAAOtD,CACT,EAYA,YAAAse,SAAA,SAASmR,GACP,IAAMjmB,EAAQxQ,KAAKkjF,GAAG4gD,UAAUx+G,SAASmR,GACzC,OAAOz2B,KAAKy2B,QAAQnyB,IAAIkM,EAC1B,EAYA,YAAA66H,SAAA,SAAS50G,GAEP,OADAz2B,KAAKy2B,QAAQvwB,QACNlG,KAAKslB,SAASmR,EACvB,EAYA,YAAA41D,YAAA,SAAY51D,GACV,IAAMnmB,EAAsB,GAC5BmmB,GAAU,IAAAv1B,SAAQu1B,GAAWA,EAAU,CAACA,GACxC,IAAM8xF,EAAYvoH,KAAKy2B,QACjBj0B,EAAO,cAUb,OARAi0B,EAAQhhB,SAAQ,SAAA02H,GACEA,EAAOliI,MAAM,KACrBwL,SAAQ,SAAA9L,GACd,IAAM+J,EAAW60G,EAAU7kH,MAAM,CAAEiG,KAAI,EAAEnH,KAAI,IAAI,GACjDkR,GAAYpD,EAAQ3L,KAAK4jH,EAAUnjH,OAAOsO,GAC5C,GACF,IAEOpD,CACT,EAMA,YAAA87H,WAAA,WACE,IACMC,EADOrsI,KAAK2nI,gBACIx6C,MACtB,OAAOk/C,EAAWA,EAASpiI,MAAM,KAAO,EAC1C,EAEA,YAAAqiI,YAAA,SAAY9pI,EAAc+pI,EAAmB1iI,QAAA,IAAAA,IAAAA,EAAA,IAC3C,IAAM2iI,EAASxsI,KAAKisI,cACdQ,EAAUzsI,KAAKksI,gBAChBM,GAAWC,IAChBzsI,KAAKkjF,GAAG0+B,IAAIp/G,EAAM,CAAE2C,MAAOnF,KAAMusI,KAAI,EAAExiI,QAAS,UAAWF,KAAI,GACjE,EAEA,YAAAihI,WAAA,WACM9qI,KAAK0sI,cACT1sI,KAAKyH,GAAG,SAAUzH,KAAK2sI,eACvB3sI,KAAK0sI,aAAc,EACrB,EAEA,YAAAE,WAAA,WACE,OAAO,IAAA1rI,SAAQlB,KAAK2D,IAAIklI,IAC1B,EAEA,YAAAgC,iBAAA,WACE,SAAU7qI,KAAK4sI,eAAgB5sI,KAAK2D,IAAImlI,IAC1C,EAEA,YAAA+D,cAAA,WACE,IAAMtuH,EAASve,KAAKue,SAEpB,OADave,KAAK6qI,sBACDtsH,GAAWA,IAAWA,EAAOquH,eAAiBruH,EAAO0tH,cACxE,EAEA,YAAAa,iBAAA,WACE,IAAK9sI,KAAK6qI,oBAAsB7qI,KAAK6sI,gBAAiB,OAAO,EAC7D,IAAME,GAAe/sI,KAAK4sI,aAAe5sI,KAAOA,KAAKisI,eAAgBe,eAC/DC,EAAUjtI,KAAKgtI,eAErB,OADoBC,EAAQL,aAAeK,EAAUA,EAAQhB,iBACtCc,CACzB,EAEA,YAAAG,aAAA,WACU,IAAAhqD,EAAOljF,KAAI,GACnB,OAAOkjF,EAAKA,EAAGuR,WAAW4uC,UAAY,CAAC,CACzC,EAEA,YAAA4I,YAAA,WACE,IAAIkB,EAAOntI,KAAK2D,IAAImlI,IACpB,GAAIqE,IAAQ,IAAAj8H,UAASi8H,GAAO,CAC1B,IAAMt+F,EAAM7uC,KAAKktI,eAAeC,GAC5Bt+F,GACFs+F,EAAOt+F,EACP7uC,KAAKyF,IAAIqjI,GAAWj6F,IAEpBs+F,EAAO,C,CAGX,OAAOA,CACT,EAEA,YAAAjB,aAAA,sBACMkB,EAAQptI,KAAK2D,IAAIklI,IASrB,OARIuE,IAAS,IAAAlsI,SAAQksI,KACnBA,EAAM33H,SAAQ,SAAC03H,EAAMvvB,GACfuvB,IAAQ,IAAAj8H,UAASi8H,KACnBC,EAAMxvB,GAAO,EAAKsvB,eAAeC,GAErC,IACAC,EAAQA,EAAMn3H,QAAO,SAAAk3H,GAAQ,OAAAA,KAAS,IAAAj8H,UAASi8H,EAAlB,KAExBC,CACT,EAEA,YAAAC,aAAA,SAAa5mH,QAAA,IAAAA,IAAAA,EAAA,IACX,IAAM6mH,EAAOttI,KAAK2D,IAAIolI,IACfwE,EAAO9mH,EAAKxc,MAAM,KAAI,GACvB6e,EAAQrC,IAAS8mH,EAAM,CAAC9mH,EAAM8mH,GAAO,CAAC9mH,GAC5C,OAAgB,IAAT6mH,IAAkB,IAAApsI,SAAQosI,IAASxkH,EAAMvX,MAAK,SAAAyqB,GAAK,OAAAsxG,EAAKzoI,QAAQm3B,IAAM,CAAnB,GAC5D,EAEA,YAAAwxG,cAAA,SAAc3jI,GAAd,gBAAc,IAAAA,IAAAA,EAAA,IACZ,IAAIqD,EAAsB,GAClBC,EAAYtD,EAAI,QAExB,GACEA,EAAK4jI,cACL5jI,EAAK6jI,aACL7jI,EAAKggH,UAEJ18G,GAAWnN,KAAKqtI,aAAalgI,GAE9B,OAAOD,EAGT,IAAMu/H,EAAUzsI,KAAKksI,gBAAkB,GACjCM,EAASxsI,KAAKisI,cAOpB,OALA/+H,GADYs/H,EAAS,IAACA,GAAYA,EAAON,gBAAkB,IAAG,GAAIO,GAE/Dx2H,QAAO,SAAA7N,GAAK,OAAAA,IAAM,CAAN,IAEZ6N,QAAO,SAAA7N,GAAK,QAAE+E,GAAW/E,EAAEilI,aAAalgI,GAA5B,GAGjB,EAEA,YAAA6/H,aAAA,SAAanjI,GAIX,IAHA,IAAIqD,EAAoBlN,KACpBue,EAASve,KAAKue,OAAO1U,GAElB0U,IAAWA,EAAOquH,cAAgBruH,EAAO0tH,gBAC9C/+H,EAASqR,EACTA,EAASA,EAAOA,OAAO1U,GAGzB,OAAOqD,CACT,EAEA,YAAAy/H,cAAA,SAAcn7H,EAAQ3H,GAAtB,gBAAsB,IAAAA,IAAAA,EAAA,IACpB,IAAMsD,EAAUnN,KAAK4F,qBAAuB,CAAC,EACvCkH,EAAQK,EAAQnG,YAAc,CAAC,EASrC,UAROmG,EAAQoxF,cACRpxF,EAAQgQ,YACRhQ,EAAQ07H,WACR17H,EAAQ27H,WACR37H,EAAQ47H,WACR57H,EAAQnG,kBACR8F,EAAMxC,IACR,IAAA0qG,YAAWloG,KAAQK,EAAQnG,WAAa8F,KACxC,IAAAkoG,YAAW7nG,GAAU,CACxB,IAAMo/H,EAAOvsI,KAAKwtI,cAAc3jI,IAEhC,IAAA5I,MAAKkM,GAASrI,KAAI,SAAA2hB,GACZ,EAAK4mH,aAAa5mH,WAActZ,EAAQsZ,EAC9C,IAEAzmB,KAAKssI,YAAY,QAASC,EAAM,CAAE1iI,KAAI,EAAEsD,QAAO,IAC/Co/H,EAAK92H,SAAQ,SAAA6I,GACX,IAAMqvH,EAAe,MAAKxgI,IAE1B,IAAAlM,MAAK0sI,GAAc7oI,KAAI,SAAA2hB,GACjBnI,EAAM+uH,aAAa5mH,WAAcknH,EAAalnH,EACpD,IACAnI,EAAM7Y,IAAIkoI,EAAc,IAAEF,aAAc,GAAS5jI,GACnD,G,CAEJ,EAEA,YAAA+jI,YAAA,SAAYp8H,EAAQutE,EAAQl1E,GAA5B,gBAA4B,IAAAA,IAAAA,EAAA,IAC1B,IAAM0iI,EAAOvsI,KAAKwtI,cAAc3jI,GAChC7J,KAAKssI,YAAY,UAAWC,EAAM,CAAE1iI,KAAI,IACxC0iI,EAAK92H,SAAQ,SAAA6I,GAEXA,EAAM7Y,IAAI,UAAW,EAAK9B,IAAI,WAAY,CAAE8pI,aAAc,GAC5D,IACAztI,KAAKgrI,YAAYnhI,EACnB,EAEA,YAAAgkI,cAAA,SAAcr8H,EAAcutE,EAAe5oD,GAA3C,WACQ23G,EAAQ33G,GAAK4oD,GAAK,CAAC,EAEnBgvD,EAAW,CAAEN,aADgBK,EAAK,aACPjkB,SADEikB,EAAK,UAElClK,EAASpyH,EAAE87C,IAAIw7D,UAGrB,GAAK3yF,EAcE,GAAIA,EAAE7xB,IAAK,CAChB,IAAI,EAA8B,GAC5B,IAAetE,KAAKksI,eAK1B,IAJMK,EAAOvsI,KAAKwtI,cAAc,SAC3BO,GAAQ,CACX5gI,QAAS,qBAEFxM,OAAQ,CACf,IAAMqtI,EAAUx8H,EAAEy6H,cAClB,GAAkB+B,EAAUA,EAAQ9B,eAAiB16H,EAAE06H,iBAAmB,IAC1E,EAAiB,MAAI,GAAc,IACpBvnI,KAAKqpI,GAAoBx8H,E,EAEzCoyH,GACC5jI,KAAKssI,YAAY,MAAOC,EAAM,CAC5B1iI,KAAMssB,EACN83G,eAAgB,EAAenpI,KAAI,SAAAi6E,GAAK,OAAAA,EAAEt6E,GAAF,IACxC+L,MAAOgB,EAAE/M,MAIb8nI,EAAK92H,SAAQ,SAAA03H,GACX,IAAMF,EAAUE,EAAKH,eAKfkB,EAJW,EAAej4H,QAAO,SAAAk4H,GACrC,IAAMC,EAAWD,EAAUnB,aAAa,CAAE9+H,KAAM,IAChD,OAAO++H,GAAWmB,GAAYA,IAAanB,CAC7C,IAAG,IAC0Bz7H,EAAEjO,MAAM,CAAEipI,QAAQ,EAAM6B,UAAW,IAChElB,EAAKn6C,OAAOk7C,EAAU,IAAET,aAAc,GAASt3G,GACjD,G,KAEK,CAEL,IAAMg3G,EAAO37H,EAAEy6H,cASf,GARAkB,IACGh3G,EAAE2yF,WACHqkB,EAAK1nI,IACHojI,GACAsE,EAAKjB,eAAgBj2H,QAAO,SAAApW,GAAK,OAAAA,IAAM2R,CAAN,MAIhCA,EAAEq7H,gBAAiB,CACtB,IAAM,EAAU,oBACR,EAAU12G,EAAC,MACb,EAAS3kB,EAAE+M,SACX,EAAO,IAAEkvH,aAAcj8H,GAAM2kB,GAC7Bm4G,EAAe98H,EAAEs7H,mBACnByB,EAAS,SAACpB,GACZ,IAAMqB,EAAWrB,EAAK5uH,SACtBiwH,IAAaA,EAASnB,aAAa,IAAYF,EAAK/nI,OAAO,EAC7D,EAEImnI,GAAQ,aAAM,EAAN,EAAQc,aAAa,IAAuC,GAA5B77H,EAAEg8H,cAAcO,GAExDO,IACF/B,EAAO,aAAM,EAAN,EAAQiB,cAAc,SAAKO,GAAQ,CAAE5gI,QAAO,KACnDohI,EAAS,SAAApB,GACP,IAAMt8H,EAAWs8H,EAAK9nD,aAAa5hF,GAAG,GACtCoN,GAAYA,EAASzL,OAAO,IAAEqoI,aAAc,GAAW,GACzD,IAGD7J,GACC5jI,KAAKssI,YAAY,SAAUC,EAAM,CAC/B1iI,KAAMssB,EACN7lB,QAASkB,EAAE/M,IACX6pI,aAAY,IAEhB/B,EAAK92H,QAAQ84H,E,MAnFT,CACN,IAAMhC,EAAOvsI,KAAKwtI,cAAc,SAC3BO,GAAQ,CACX5gI,QAAS,sBAGL,EAAOqE,EAAEhO,OACfxD,KAAKssI,YAAY,QAASC,EAAM,CAAElnD,WAAY,IAC9CknD,EAAK92H,SAAQ,SAAA03H,GACX,IAAMsB,EAAU,EAAK3pI,KAAI,SAAAqd,GAAO,OAAAA,EAAI5e,MAAM,CAAEipI,QAAQ,GAApB,IAEhCW,EAAK9nD,aAAan/E,MAAMuoI,EAAS,IAAEhB,aAAc,GAAS1uD,GAC5D,G,CA2EF/+E,KAAKgrI,YAAY8C,EACnB,EAEA,YAAA7D,YAAA,SAAYz4H,EAASutE,EAASl1E,QAAA,IAAAA,IAAAA,EAAA,IAC5B,IACM6kI,EAAU1uI,KAAK2D,IAAI,cAAewpF,OAAS,GAC3CwhD,EAAW,CAAC3uI,KAFJ,iBAEiBA,KAAKiqI,aAC9B/lH,EAAMlkB,KAAK2D,IAAI,YAAc+qI,EAC7BE,GAAS,IAAA19H,UAASgT,GAAOA,EAAIja,MAAM,KAAOia,EAChDlkB,KAAKsL,cAAa,MAAlBtL,KAAsB2uI,GACtB,IAAMl4G,EAAUz2B,KAAK6uI,iBAAiBD,GAChCrmB,EAAY,IAAI,GAAU,IAMhC,OALAvoH,KAAKyF,IAAI,UAAW8iH,EAAW1+G,GAC/B0+G,EAAUjkH,IAAImyB,GACd8xF,EAAU9gH,GAAG,mBAAoBzH,KAAK4tI,aAEtC5tI,KAAKwK,SAAQ,MAAbxK,KAAiB2uI,GACV3uI,IACT,EAEA,YAAAkqI,eAAA,WACE,IACMyE,EAAW,CAAC3uI,KADJ,oBACiBA,KAAKkqI,gBACpClqI,KAAKsL,cAAa,MAAlBtL,KAAsB2uI,GAGtB,IAAMvO,EAAQ,IAAI,GAAW,GAAIpgI,KAAKstD,KACtC8yE,EAAM7hH,OAASve,KACf,IAAMqlF,EAAarlF,KAAK2D,IAAI,cACtBmrI,GAAY9uI,KAAKstD,IAAIyhF,cAM3B,OALA/uI,KAAKyF,IAAI,aAAc26H,GACvB0O,GAAYzpD,GAAc+6C,EAAM97H,KAAI,IAAAjC,YAAWgjF,GAAcA,EAAWrlF,MAAQqlF,EAAYrlF,KAAKstD,KACjG8yE,EAAM34H,GAAG,mBAAoBzH,KAAK6tI,eAElC7tI,KAAKwK,SAAQ,MAAbxK,KAAiB2uI,GACV3uI,IACT,EAEA,YAAAmqI,WAAA,SAAWh9H,GACD,IAAA+1E,EAAOljF,KAAI,GACb2S,EAAQ,gBACd3S,KAAKmL,IAAIwH,EAAO3S,KAAKmqI,YACrBnqI,KAAKgvI,eACL,IAAMliI,EAAQ,MAAK9M,KAAK2D,IAAI,eACtBglI,EAAS3oI,KAAK2oI,OAWpB,OAVAA,EAAOpjI,MAAK,SAAA4hI,GACV,IAAKA,EAAMxjI,IAAI,cAAe,CAC5B,IAAM,EAAOwjI,EAAMxjI,IAAI,QACjB+D,EAAQy/H,EAAMe,eAChB,GAAQxgI,IAAOoF,EAAM,GAAQpF,E,CAErC,IACAihI,EAAOhoI,QAAUX,KAAKyF,IAAI,aAAcqH,GACxC9M,KAAKyH,GAAGkL,EAAO3S,KAAKmqI,YACpBh9H,GAAW+1E,GAAMA,EAAGp/E,QAAQ,qBACrB9D,IACT,EAEA,YAAAqqI,gBAAA,WACE,IAAIrqI,KAAKstD,IAAIw7D,UAAb,CACA,IAAMriG,EAAO,eACPkoH,EAAgB,CAAC,iBAAUloH,GAAQzmB,KAAKqqI,iBAC9CrqI,KAAKmL,IAAG,MAARnL,KAAY2uI,GACZ,IAAMM,EAAYjvI,KAAKwO,SAASiY,IAAS,GACnCyoH,EAAWlvI,KAAK2D,IAAI8iB,IAAS,GAC7B0oH,EAAcF,EAAUnqI,KAAI,SAAAoG,GAAK,uBAAUA,EAAV,IAAeukD,KAAK,KACrD2/E,EAAaF,EAASpqI,KAAI,SAAAoG,GAAK,uBAAUA,EAAV,IAAeukD,KAAK,KACzD0/E,GAAenvI,KAAKmL,IAAIgkI,EAAanvI,KAAKqvI,qBAC1CD,GAAcpvI,KAAKyH,GAAG2nI,EAAYpvI,KAAKqvI,qBAEvCrvI,KAAKyH,GAAE,MAAPzH,KAAW2uI,EAXmB,CAYhC,EAEA,YAAAU,oBAAA,SAAoB79H,EAAQi6C,EAAQ5hD,QAAA,IAAAA,IAAAA,EAAA,IAC9BA,EAAKg/E,YACT7oF,KAAK8D,QAAQ,WACf,EAkBA,YAAAkvF,OAAA,SAAO3N,EAA0Bx7E,QAAA,IAAAA,IAAAA,EAAA,IAC/B,IACMqkI,IADU,IAAAhtI,SAAQmkF,GAAc,MAAIA,GAAU,GAAI,CAACA,IAChCvgF,KAAI,SAAAi8C,GAC3B,OAAI,IAAA7vC,UAAS6vC,IAIXA,EAAK97C,YAAe87C,EAAmB97C,WAAWG,OAAO27C,EAAM,CAAE+nE,WAAW,IAHrE/nE,CAMX,IACM7zC,EAASlN,KAAKqlF,aAAa/gF,IAAI4pI,EAAUrkI,GAC/C,OAAO,IAAA3I,SAAQgM,GAAUA,EAAS,CAACA,EACrC,EAgBA,YAAAm4E,WAAA,SACEA,EACAx7E,QAAA,IAAAA,IAAAA,EAAA,IAEA,IAAMmhF,EAAOhrF,KAAK2D,IAAI,cAEtB,OAAI,IAAAimF,aAAYvE,GACP2F,GAEPA,EAAK9kF,WAAMb,EAAWwE,GACfw7E,EAAarlF,KAAKgzF,OAAO3N,EAAYx7E,GAAS,GAEzD,EAYA,YAAAshF,WAAA,SAAWrqF,GACT,OAAOd,KAAKqlF,aAAa5hF,GAAG3C,GAAS,SAAMuE,CAC7C,EAQA,YAAAiqI,aAAA,WACE,IAAM/8G,EAAWvyB,KAAKqlF,aACtB,OAAO9yD,EAAS9uB,GAAG8uB,EAAS5xB,OAAS,IAAM,IAC7C,EAMA,YAAAqxC,MAAA,SAAMnoC,GAEJ,YAFI,IAAAA,IAAAA,EAAA,IACJ7J,KAAKqlF,aAAan/E,WAAMb,EAAWwE,GAC5B7J,IACT,EASA,YAAAue,OAAA,SAAO1U,QAAA,IAAAA,IAAAA,EAAA,IACL,IAAMmhF,EAAOhrF,KAAKiF,YAAe4E,EAAKqE,MAAQlO,KAAK6jI,SACnD,OAAO74C,EAAOA,EAAKzsE,YAASlZ,CAC9B,EAMA,YAAA6rG,QAAA,WACE,IAAM3yF,EAASve,KAAKue,SACpB,OAAOA,EAAS,CAACA,GAAQxZ,OAAOwZ,EAAO2yF,WAAa,EACtD,EAMA,YAAAo5B,cAAA,WACEtqI,KAAKyF,IAAI,gBAAiB,EAC5B,EAMA,YAAA2kI,YAAA,WACU,IAAAlnD,EAAOljF,KAAI,GACbmF,EAAQnF,KACRujF,EAAQL,GAAMA,EAAG0D,YAAY1C,aAAgB,GAEnD,IAAK/+E,EAAMxB,IAAI,YAAcu/E,EAAI,CAC/B,IAAMqsD,EAA2B,GACjCpqI,EAAMF,YACJsqI,EAAG5qI,KAAK,CACN+nE,MAAOwW,EAAGiX,QAAQ,WAClB3D,QAAS,SAACrU,GAAY,OAAAA,EAAGyT,WAAW,sBAAuB,CAAEn3C,MAAO,GAA9C,IAE1Bt5C,EAAMxB,IAAI,cACR4rI,EAAG5qI,KAAK,CACNqC,WAAY,CAAEmmF,MAAO,UAAG5J,EAAI,oBAAoB3hC,WAAW,GAC3D8qB,MAAOwW,EAAGiX,QAAQ,QAClB3D,QAAS,aAEbrxF,EAAMxB,IAAI,aACR4rI,EAAG5qI,KAAK,CACN+nE,MAAOwW,EAAGiX,QAAQ,QAClB3D,QAAS,cAEbrxF,EAAMxB,IAAI,cACR4rI,EAAG5qI,KAAK,CACN+nE,MAAOwW,EAAGiX,QAAQ,UAClB3D,QAAS,eAEbrxF,EAAMM,IAAI,UAAW8pI,E,CAEzB,EAEA,YAAAP,aAAA,SAAa7/B,EAAiCtlG,QAAA,IAAAA,IAAAA,EAAA,IAC5C,IAAI2lI,EAAUrgC,GAAMnvG,KAAK2oI,OAEzB,KAAM6G,aAAmB,IAAS,CAChCA,GAAW,IAAAntI,YAAWmtI,GAAWA,EAAQxvI,MAAQwvI,EACjD,IAAM7G,EAAS,IAAI,GAAO,GAAI3oI,KAAKstD,KACnCq7E,EAAOx3C,UAAUnxF,MAEbwvI,EAAQ7uI,SACV6uI,EAAQ/5H,SAAQ,SAAA05F,GAAM,OAAAA,EAAGnoG,mBAAqBmoG,EAAGnoG,WAAWU,KAAtC,IACtBihI,EAAOrkI,IAAIkrI,IAGbxvI,KAAKyF,IAAI,CAAEkjI,OAAM,GAAI9+H,E,CAGvB,OAAO7J,IACT,EAUA,YAAAyvI,UAAA,WAEE,OADAzvI,KAAKgvI,eACE,MAAIhvI,KAAK2oI,OAAOnlI,QAAM,EAC/B,EAWA,YAAAksI,UAAA,SAAU/G,GACR,IAAMx5B,GAAK,IAAAjuG,SAAQynI,GAAUA,EAAS,CAACA,GAGvC,OADA3oI,KAAKyF,IAAI,CAAEkjI,OAAQx5B,IACZnvG,KAAKyvI,WACd,EAUA,YAAAE,SAAA,SAASrlI,GACP,OACEtK,KAAKyvI,YAAYx5H,QAAO,SAAAkxH,GACtB,OAAOA,EAAMxjI,IAAI,QAAU2G,GAAM68H,EAAMxjI,IAAI,UAAY2G,CACzD,IAAG,IAAM,IAEb,EAaA,YAAAslI,YAAA,SAAYtlI,EAAYwe,G,MAChBq+G,EAAQnnI,KAAK2vI,SAASrlI,GAG5B,OAFA68H,GAASA,EAAM1hI,IAAIqjB,GACZ,QAAP,EAAA9oB,KAAKkjF,UAAE,SAAEp/E,QAAQ,qBACV9D,IACT,EAWA,YAAA6vI,cAAA,SAAcvlI,GACZ,IAAM68H,EAAQnnI,KAAK2vI,SAASrlI,GAC5B,OAAO68H,EAAQnnI,KAAK2oI,OAAO9jI,QAAQsiI,IAAU,CAC/C,EAUA,YAAA2I,YAAA,SAAYxlI,GAAZ,I,EAAA,OAEQuG,IADM,IAAA3P,SAAQoJ,GAAMA,EAAK,CAACA,IACXxF,KAAI,SAAAwF,GAAM,SAAKqlI,SAASrlI,EAAd,IACvBq+H,EAAW3oI,KAAI,OACjBsQ,EAAUO,EAASlQ,OAASgoI,EAAOvjI,OAAOyL,GAAY,GAE5D,OADO,QAAP,EAAA7Q,KAAKkjF,UAAE,SAAEp/E,QAAQ,sBACV,IAAA5C,SAAQoP,GAAWA,EAAU,CAACA,EACvC,EAeA,YAAAy/H,SAAA,SAAS5I,EAAqCt9H,G,WAAA,IAAAA,IAAAA,EAAA,IAC5C7J,KAAKgvI,eACL,IAAMx+H,EAAQxQ,KAAK2oI,OAAOrkI,IAAI6iI,EAAOt9H,GAErC,OADO,QAAP,EAAA7J,KAAKkjF,UAAE,SAAEp/E,QAAQ,sBACV,IAAA5C,SAAQsP,GAASA,EAAQ,CAACA,EACnC,EAQA,YAAAq+H,iBAAA,SAAiBhuI,GACf,IAAMuD,EAAkB,GAChB8+E,EAAOljF,KAAI,GACbgwI,EAAM9sD,aAAE,EAAFA,EAAI4gD,UAChB,OAAKkM,EAEDnvI,EAAI2C,OAAe,MAAI3C,EAAI2C,QAAM,IACrC3C,EAAI4U,SAAQ,SAAAxP,GAAO,OAAA7B,EAAIO,KAAKqrI,EAAI1rI,IAAI2B,GAAjB,IACZ7B,GAJU,EAKnB,EAMA,YAAAb,MAAA,SAAM+pD,QAAA,IAAAA,IAAAA,EAAA,IACJ,IAAM41B,EAAKljF,KAAKkjF,GACV17E,EAAO,MAAKxH,KAAKgH,YACjB6C,EAAO,MAAK7J,KAAKstD,KACjBhjD,EAAKtK,KAAKsqH,QACV6Y,EAAOjgD,aAAE,EAAFA,EAAIglC,IACjB1gH,EAAKR,WAAa,MAAKQ,EAAKR,mBACrBQ,EAAKR,WAAWsD,GAEvB9C,EAAK69E,WAAa,GAElB79E,EAAKivB,QAAU,GAEfjvB,EAAKmhI,OAAS,GAEV3oI,KAAK6sI,kBACPv/E,EAAIk/E,QAAS,GAGfxsI,KAAK2D,IAAI,cAAe4B,MAAK,SAAC2gH,EAAIrmH,GAEhC2H,EAAK69E,WAAWxlF,GAAKqmH,EAAG3iH,MAAM,SAAK+pD,GAAG,CAAE2iF,OAAQ,IAClD,IACAjwI,KAAK2D,IAAI,UAAW4B,MAAK,SAAC2gH,EAAIrmH,GAE5B2H,EAAKmhI,OAAO9oI,GAAKqmH,EAAG3iH,OACtB,IACAvD,KAAK2D,IAAI,WAAY4B,MAAK,SAAC2gH,EAAIrmH,GAE7B2H,EAAKivB,QAAQ52B,GAAKqmH,EAAGviH,IAAI,OAC3B,IAEA6D,EAAK+2F,OAAS,GAEd10F,EAAK5E,WAAa,KAElB,IAAMirI,EAAS,IAAIlwI,KAAK2P,YAAYnI,EAAMqC,GAGpCsmI,EAAQ,WAAID,EAAO5lB,UACJ6Y,EAAOA,EAAKM,SAAS,WAAIn5H,IAAQ,IACzCmL,SAAQ,SAAAm2E,GACnB,IAAM83C,EAAU93C,EAAKroF,QAErBmgI,EAAQj+H,IAAI,YAAa,CAAC0qI,IAC1BhN,EAAKx3C,SAASrnF,IAAIo/H,EACpB,IAIAwM,EAAOzqI,IAAIojI,GAAY,GACvB,IAAM2D,EAASxsI,KAAKisI,cACdQ,EAAUzsI,KAAKksI,eAEhB5+E,EAAIk/E,SAAWA,IAAUC,EAGnBD,GAETA,EAAO/mI,IAAIojI,GAAY,SAAI2D,EAAON,gBAAiB,GAAF,CAAEgE,IAAM,IACzDA,EAAOpF,cACEx9E,EAAIk/E,SAETxsI,KAAK4sI,cAEP5sI,KAAKyF,IAAIojI,GAAY,SAAI4D,GAAU,GAAF,CAAEyD,IAAM,IACzCA,EAAOzqI,IAAIqjI,GAAW9oI,MACtBkwI,EAAOpF,cACEx9E,EAAI+gF,WAEbruI,KAAKyF,IAAIojI,GAAY,CAACqH,IACtBA,EAAOzqI,IAAIqjI,GAAW9oI,MACtB,CAACA,KAAMkwI,GAAQprI,KAAI,SAAAjF,GAAK,OAAAA,EAAEirI,YAAF,MAGxBoF,EAAOzqI,IAAIojI,GAAY,CAAC7oI,OACxB,CAACA,KAAMkwI,GAAQprI,KAAI,SAAAjF,GAAK,OAAAA,EAAEirI,YAAF,IACxB9qI,KAAKyF,IAAIqjI,GAAWoH,MAtBtBA,EAAOzqI,IAAIqjI,GAAW,GACtBoH,EAAOzqI,IAAIojI,GAAY,IAyBzB,IAAMl2H,EAAQ,kBAId,OAHAuwE,GAAMA,EAAGp/E,QAAQ6O,EAAOu9H,GACxBlwI,KAAK8D,QAAQ6O,EAAOu9H,GAEbA,CACT,EAQA,YAAAxjD,QAAA,SAAQ7iF,QAAA,IAAAA,IAAAA,EAAA,IACE,IAAAq5E,EAAOljF,KAAI,GACb,EAA0BA,KAAKgH,WAA7BxE,EAAI,OAAEiR,EAAO,UAAE9J,EAAI,OACrBymI,EAAU5tI,GAAQiR,EAClB48H,EAAW7tI,EAAiB,GAAViR,EAClB68H,EAAU,uBACVC,EAAW5mI,IAAQu5E,aAAE,EAAFA,EAAI5vB,EAAE,UAAGg9E,GAAO,OAAG3mI,KACtC6mI,EAAcH,IAAWntD,aAAE,EAAFA,EAAI5vB,EAAE,UAAGg9E,GAAO,OAAGD,KAC5CI,EAAcvtD,IAAOA,EAAG5vB,EAAE,UAAGg9E,GAAO,OAAG9tI,KAAW0gF,EAAG5vB,EAAE,UAAGg9E,GAAO,OAAG78H,KACpEi9H,EAAa1wI,KAAK2D,IAAI,eAE5B,OACIkG,EAAK8mI,SAAwB,GAAbD,IAClBH,GACA5mI,GACA6mI,IACA,IAAAv7B,YAAWo7B,IACXI,IACA,IAAAx7B,YAAWm7B,EAEf,EAMA,YAAAj2C,QAAA,WACE,IAAID,EAAOl6F,KAAK2D,IAAI,QACpB,OAAOu2F,EAAOA,EAAO,IAAM,EAC7B,EAgCA,YAAAib,OAAA,SAAOtrG,QAAA,IAAAA,IAAAA,EAAA,IACL,IAAM1E,EAAQnF,KACR8M,EAAQ,GAER6X,EADY9a,EAAK8a,KACExf,EAAMxB,IAAI,WAC7BitI,EAAOzrI,EAAMxB,IAAI,QACjBktI,EAAahnI,EAAK7C,WACpBA,EAAahH,KAAK8wI,gBAYtB,UAXOjnI,EAAK8a,IAGRksH,KACE,IAAAxuI,YAAWwuI,GACb7pI,EAAa6pI,EAAW1rI,EAAO6B,IAAe,CAAC,GACtC,IAAAN,UAASmqI,KAClB7pI,EAAa6pI,IAIbhnI,EAAKknI,UAAW,CAClB,IAAMjoH,EAAQ9oB,KAAKsN,UAEnB,IAAAmI,SAAQqT,GAAO,SAACphB,EAAOrG,GAEN,MAAXA,EAAI,IADU,CAAC,UAAW,aAAc,cACZwD,QAAQxD,GAAO,IAC7C2F,EAAW,mBAAY3F,KAAS,IAAAH,SAAQwG,KAAU,IAAAhB,UAASgB,GAASkR,KAAKC,UAAUnR,GAASA,EAEhG,G,CAGF,IAAK,IAAIF,KAAQR,EAAY,CAC3B,IAAMf,EAAMe,EAAWQ,GAEvB,KAAK,IAAAoiF,aAAY3jF,IAAgB,OAARA,EACvB,IAAI,IAAAyxG,WAAUzxG,GACZA,GAAO6G,EAAMnI,KAAK6C,OACb,CACL,IAAIwpI,EAAW,GACf,GAAInnI,EAAKonI,eAAgB,IAAA//H,UAASjL,IAAQA,EAAIpB,QAAQ,MAAQ,EAC5DmsI,EAAW,WAAI/qI,EAAIwJ,QAAQ,KAAM,UAAS,SACrC,CACL,IAAM/H,GAAQ,IAAAwJ,UAASjL,GAAOA,EAAIwJ,QAAQ,KAAM,UAAYxJ,EAC5D+qI,EAAW,YAAItpI,EAAK,K,CAGtBoF,EAAMnI,KAAK,UAAG6C,EAAI,YAAIwpI,G,EAK5B,IAAME,EAAapkI,EAAMnM,OAAS,WAAImM,EAAM2iD,KAAK,MAAS,GACpD/tC,EAAQvc,EAAMgsI,aAAatnI,GAC7BmhB,EAAO,WAAIrG,GAAG,OAAGusH,GAAU,OAAGN,EAAO,IAAM,GAAE,YAAIlvH,GAGrD,OAFCkvH,IAAS5lH,GAAQ,YAAKrG,EAAG,MAEnBqG,CACT,EAOA,YAAAmmH,aAAA,SAAatnI,GACX,OAAO7J,KAAKoxI,YAAYvnI,EAC1B,EAEA,YAAAunI,YAAA,SAAYvnI,QAAA,IAAAA,IAAAA,EAAA,IACV,IAAM+4H,EAAO5iI,KAAKqlF,aAClB,OAAQu9C,EAAKjiI,OAAwBiiI,EAAK99H,KAAI,SAAAi6E,GAAK,OAAAA,EAAEo2B,OAAOtrG,EAAT,IAAgB4lD,KAAK,IAAlDzvD,KAAK+e,OAC7B,EAOA,YAAA+xH,cAAA,WACE,IAAMhkI,EAAQ9M,KAAK2nI,gBAMnB,OAJI1C,GAAYjlI,KAAKkjF,YACZp2E,EAAM6P,MAGR7P,CACT,EAQA,YAAAQ,OAAA,SAAOzD,QAAA,IAAAA,IAAAA,EAAA,IACL,IAAM7I,EAAM,EAAA6F,MAAA,sBAA4B7G,KAAM6J,GAS9C,GARA7I,EAAIgG,WAAahH,KAAK2nI,uBACf3mI,EAAIgG,WAAWmmF,aACfnsF,EAAIi8F,eACJj8F,EAAI2nI,cACJ3nI,EAAIu9F,cACJv9F,EAAImc,YACJnc,EAAI4nH,UAEN/+G,EAAKggH,SAAU,CAClB,IAAM2iB,EAASxrI,EAAI8nI,IACb2D,EAAUzrI,EAAI6nI,IAChB4D,IAAW,IAAAvrI,SAAQurI,KACrBzrI,EAAI6nI,IAAc4D,EAAQx2H,QAAO,SAAApW,GAAK,OAAAA,CAAA,IAAGiF,KAAI,SAAAjF,GAAK,OAACA,EAAEyqH,MAAQzqH,EAAEyqH,QAAUzqH,CAAvB,KAEhD2sI,KAAW,IAAAt7H,UAASs7H,KACtBxrI,EAAI8nI,IAAa0D,EAAOliB,Q,CAQ5B,OAJItqH,KAAKkjF,GAAG0D,YAAY67B,eACtBziH,KAAKqxI,gBAAgBrwI,GAGhBA,CACT,EAKA,YAAAqwI,gBAAA,SAAgBjtI,GACd,IAAMpD,EAAWoD,GAAO,EAAAyC,MAAA,uBAA6B7G,MAC/C8G,GAAW,IAAAoG,QAAOlN,KAAM,YAwB9B,OAtBA,IAAAyV,SAAQ3O,GAAU,SAACY,EAAOrG,IACO,IAA3B,CAAC,QAAQwD,QAAQxD,IAAeL,EAAIK,KAASqG,UACxC1G,EAAIK,EAEf,KAEI,IAAAiE,SAAQtE,EAAIwB,cACPxB,EAAIwB,MAGb,IAAAiT,SAAQ,CAAC,aAAc,UAAU,SAAAgR,IAC3B,IAAAnhB,SAAQwB,EAAS2f,MAAU,IAAAnhB,SAAQtE,EAAIylB,YAClCzlB,EAAIylB,EAEf,KAEA,IAAAhR,SAAQ,CAAC,UAAW,eAAe,SAAAgR,KAC5BzlB,EAAIylB,KAAU,IAAAnhB,SAAQwB,EAAS2f,MAAWzlB,EAAIylB,GAAM9lB,gBAChDK,EAAIylB,EAEf,IAEOzlB,CACT,EAMA,YAAAspH,MAAA,WAEE,OADYtqH,KAAK2D,IAAI,eAAiB,CAAC,GAC1B2G,IAAMtK,KAAK8kI,MAAQ9kI,KAAKyE,GACvC,EAOA,YAAA6sI,MAAA,SAAMhnI,EAAYT,GAChB,IAAMiD,EAAQ,MAAK9M,KAAK2D,IAAI,eAG5B,OAFAmJ,EAAMxC,GAAKA,EACXtK,KAAKyF,IAAI,aAAcqH,EAAOjD,GACvB7J,IACT,EAQA,YAAA2lF,MAAA,SAAMwK,QAAA,IAAAA,IAAAA,OAAA,GACJ,IAAM7tD,EAAOtiC,KAAKi5F,QAAQ9I,GAC1B,OAAO7tD,GAAQA,EAAKluB,EACtB,EAQA,YAAA6kF,QAAA,SAAQ9I,GACF,IAAE7tD,EAAgBtiC,KAAZ,KAAE44F,EAAU54F,KAAL,MAMjB,OAJImwF,IACF7tD,EAAOs2D,EAAM3iF,QAAO,SAAAqsB,GAAQ,OAAAA,EAAKi2D,cAAgBpI,EAAM7tD,IAA3B,IAAiC,IAGxDA,CACT,EAEA,YAAAivG,eAAA,WACE,IAAMphD,GAASnwF,KAAKkjF,GAAGv/E,IAAI,iBAAmB,CAAC,GAAGwB,MAClD,OAAOnF,KAAKi5F,QAAQ9I,EACtB,EAEA,YAAA2qC,iBAAA,WACE,IAAM0W,EAAaxxI,KAAK8oB,QAExB,OADiB9oB,KAAK2D,IAAI,iBAAmB,IAC7BgS,QAAO,SAACyrG,EAAK36F,GAE3B,OADA26F,EAAI36F,GAAQ+qH,EAAW/qH,GAChB26F,CACT,GAAG,CAAC,EACN,EASA,YAAAuZ,gBAAA,SAAgB9lD,GAAhB,WACMkmD,EAAMlmD,GAAU70E,KAAK2D,IAAI,WAAa,GAE1C,IAAKo3H,EACH,OAAOA,EAGT,GAAI/6H,KAAK2D,IAAI,gBACXo3H,EAAMA,EAAInzG,WAAW0gE,WAChB,CAGL,GAAkB,mBAAPyyC,EAAmB,CAC5B,IAAI0W,EAAS1W,EAAInzG,WAAW0gE,OAE5ByyC,GADA0W,EAASA,EAAOhiI,QAAQ,4BAA6B,IAAIA,QAAQ,MAAO,KAC3D64E,M,CAGf,IAAIrwE,EAASjY,KAAKkjF,GAAG0D,YACjBu7B,EAAcxoG,GAAa1B,EAAOkqG,aAAe,OACjDC,EAAYzoG,GAAa1B,EAAOmqG,WAAa,OAC7CsvB,EAAM,IAAIp3H,OAAO,UAAG6nG,EAAW,uBAAeC,GAAa,KAC/D2Y,EAAMA,EAAItrH,QAAQiiI,GAAK,SAACr9H,EAAOo3C,GAG7B,EAAK6+E,gBACL,IAAMp9H,EAAS,EAAKlG,WAAWykD,IAAM,GACrC,OAAO,IAAAvqD,SAAQgM,IAA4B,iBAAVA,EAAqB0L,KAAKC,UAAU3L,GAAUA,CACjF,G,CAEF,OAAO6tH,CACT,EAEA,YAAApmC,WAAA,SAAWrY,G,UAAmB,oDACpB,IAAA4G,EAAOljF,KAAI,GACb2S,EAAQq2H,IAAa1sD,EAAW,WAAIA,GAAa,IACjDmK,EAAOnK,GAAYt8E,KAAK2D,IAAI24E,GAElCA,GAAYt8E,KAAK8pI,QAAO,MAAZ9pI,KAAI,IAASs8E,EAAUmK,EAAMnK,GAAYt8E,KAAKwO,SAAS8tE,IAAc57E,GAAI,IACrFV,KAAK8D,QAAO,MAAZ9D,KAAI,IAAS2S,GAAUjS,GAAI,IAC3BwiF,GAAMA,EAAGp/E,QAAO,MAAVo/E,EAAE,IAASvwE,EAAO3S,MAASU,GAAI,IACrC,CAAC,aAAc,WAAWmE,QAAQy3E,IAAc,GAC9Ct8E,KAAKirI,mBAAmB,CACtB3lD,UAAWtlF,KACXmN,SAAO,KAAI,EAACmvE,GAAYmK,EAAI,GAC5B5jF,QAASnC,EAAK,IAAMA,EAAK,IAAM,CAAC,GAEtC,EAWA,YAAAixI,MAAA,SAAMC,GAKJ,OAJI,IAAAvvI,YAAWuvI,KACbA,EAAI5xI,MACJA,KAAKqlF,aAAa5vE,SAAQ,SAAAtQ,GAAS,OAAAA,EAAMwsI,MAAMC,EAAZ,KAE9B5xI,IACT,EAUA,YAAA6xI,aAAA,SAAaD,IACP,IAAAvvI,YAAWuvI,IACb5xI,KAAKqlF,aAAa5vE,SAAQ,SAAA6I,GACxBszH,EAAItzH,GACJA,EAAMuzH,aAAaD,EACrB,GAEJ,EAMA,YAAAxsI,OAAA,SAAOyE,GAAP,gBAAO,IAAAA,IAAAA,EAAA,IACG,IAAAq5E,EAAOljF,KAAI,GACbgrF,EAAOhrF,KAAKiF,WACZG,EAAS,WACb4lF,GAAQA,EAAK5lF,OAAO,EAAM,SAAKyE,GAAI,CAAEtH,OAAQ,sBAExCyoF,IACH,EAAK3F,WAAW,GAAIx7E,GACpB,EAAKw7E,aAAa/gE,eAAe,OAAMjf,EAAWwE,GAEtD,EACMioI,EAAS,MAAKjoI,GAGpB,MAFA,CAAC7J,KAAMkjF,GAAIp+E,KAAI,SAAAjF,GAAK,OAAAA,EAAEiE,QAAQ,0BAA2B,EAAMsB,EAAQ0sI,EAAnD,KACnBA,EAAO9sD,OAAS5/E,IACVpF,IACT,EAYA,YAAAggE,KAAA,SAAKslB,EAAsBz7E,GACzB,QADyB,IAAAA,IAAAA,EAAA,IACrBy7E,EAAW,CACL,IAAA7hF,EAAOoG,EAAI,GACb/I,EAAQd,KAAKc,QACbixI,EAAazsD,IAActlF,KAAKue,SAGjCwzH,IAFajxI,IAAU2C,GAAM3C,IAAU2C,EAAM,KAG5CsuI,GAActuI,GAAMA,EAAK3C,IAC3B+I,EAAKpG,GAAKA,EAAK,GAEjBzD,KAAKoF,OAAO,CAAE0jH,UAAW,IACzBxjC,EAAU0N,OAAOhzF,KAAM6J,GACvB7J,KAAK20F,a,CAGT,OAAO30F,IACT,EAcA,YAAAgyI,aAAA,SAAaxvI,G,QACLkxB,EAAuC,QAAjC,EAAO,QAAP,EAAA1zB,KAAKkjF,UAAE,eAAEuR,WAAW6zB,QAAQ9lH,UAAK,eAAE2C,MAE/C,QAAKuuB,GAEE1zB,gBAAgB0zB,CACzB,EAgBA,YAAAqmE,UAAA,SAAUzU,GAIR,IAHA,IAAM2sD,GAAS,IAAA/gI,UAASo0E,GACpB/mE,EAASve,KAAKue,SAEXA,GAAQ,CACb,GAAI0zH,GACF,GAAI1zH,EAAOyzH,aAAa1sD,GACtB,OAAO,OAGT,GAAI/mE,IAAW+mE,EACb,OAAO,EAIX/mE,EAASA,EAAOA,Q,CAGlB,OAAO,CACT,EAQA,YAAA2zH,QAAA,SAAQroI,QAAA,IAAAA,IAAAA,EAAA,IACE,IAAAq5E,EAAOljF,KAAI,GACbmyI,EAAQnyI,KAAKsqH,QACnB,IAAK6nB,EAAO,OAAOnyI,KACnB,IAAMmwI,EAAQjL,EAAU1vB,SAASx1G,MACjCA,KAAKsxI,MAAMnB,GACX,IAAMvkD,EAAO1I,aAAE,EAAFA,EAAIglC,IAAI2jB,UAAUsG,GACzBz+H,EAAWk4E,aAAI,EAAJA,EAAMjoF,IAAI,aAAcF,GAAG,GAE5C,OADAiQ,SAAAA,EAAUjO,IAAI,OAAQ0qI,GACfnwI,IACT,EAEA,YAAAoyI,cAAA,SAAc,G,IAAE9nI,QAAF,MAA0B,CAAC,EAAC,GAAxB,GACR44E,EAAOljF,KAAI,GACbqyI,EAAM/nI,GAAMtK,KAAKsqH,QACvB,OAAOpnC,aAAE,EAAFA,EAAIglC,IAAI2jB,UAAUwG,EAC3B,EAEA,YAAAC,kBAAA,SAAkBzoI,GAChB,IAAM+hF,EAAO5rF,KAAKoyI,cAAcvoI,GAChC,OAAO+hF,aAAI,EAAJA,EAAMjoF,IAAI,aAAcF,GAAG,EACpC,EAEA,YAAAgnI,WAAA,SAAWj5H,EAAQi6C,EAAQ5hD,GACzB,QADyB,IAAAA,IAAAA,EAAA,KACrBA,EAAK0oI,SAAT,CAEQ,IAAAzN,EAAS9kI,KAAI,KACbsK,GAAOtK,KAAK2D,IAAI,eAAiB,CAAC,GAAC,GACrC6uI,GAAUxyI,KAAKwO,SAAS,eAAiB,CAAC,GAAGlE,IAAMw6H,EACnD1hG,EAAO8hG,EAAUuN,QAAQzyI,MAG/B,GAAIojC,EAAK94B,KAASA,GAAMkoI,EACtB,OAAOxyI,KAAKsxI,MAAMkB,EAAQ,CAAED,UAAU,WAIjCnvG,EAAKovG,GACZpvG,EAAK94B,GAAMtK,KACXA,KAAK8kI,KAAOx6H,EAGZ,IAAMoJ,EAAW1T,KAAKsyI,kBAAkB,CAAEhoI,GAAIkoI,IAC9C9+H,GAAYA,EAASjO,IAAI,CAAEkE,KAAMW,EAAIoiE,MAAOpiE,GAnBnB,CAoB3B,EAEO,EAAAooI,YAAP,WACE,OAAO,IAAAxlI,QAAOlN,KAAKK,UAAW,WAChC,EAEO,EAAA60G,YAAP,SAAmB9gG,GACjB,MAAO,CAAEX,SAAS,IAAA2V,aAAYhV,EAAGX,SACnC,EAEO,EAAA0xH,aAAP,SAAoBhgI,GAClB,IAAMi+B,EAAO8hG,EAAUuN,QAAQttI,GACzBmF,EAAKnF,EAAMmlH,QACXr8G,EAAUm1B,EAAK94B,GAErB,GAAK2D,GAGE,GAAIA,IAAY9I,EAAO,CAE5B,IAAMwtI,EAASzN,EAAU0N,eAAetoI,EAAI84B,GAC5Cj+B,EAAMmsI,MAAMqB,GACZvvG,EAAKuvG,GAAUxtI,C,OALfi+B,EAAK94B,GAAMnF,EAQbA,EAAMkgF,aAAa5vE,SAAQ,SAAA5V,GAAK,OAAAqlI,EAAUC,aAAatlI,EAAvB,GAClC,EAEO,EAAA21G,SAAP,SAAgBrwG,EAAkB0E,QAAA,IAAAA,IAAAA,EAAA,IAChC,IAGI8oI,EAHEvvG,EAAO8hG,EAAUuN,QAAQttI,GACvB,EAAe0E,EAAI,MAAnBs+G,OAAK,IAAG,GAAC,EAAC,EACZ79G,EAAOnF,EAAMxB,IAAI,cAAc,GAYrC,OATI2G,GACFqoI,EAASzN,EAAU0N,eAAetoI,EAAI84B,EAAMv5B,GAC5C1E,EAAMmsI,MAAMqB,GACRroI,IAAOqoI,IAAQxqB,EAAM79G,GAAMqoI,IAE/BA,EAASzN,EAAU2N,SAASzvG,GAG9BA,EAAKuvG,GAAUxtI,EACRwtI,CACT,EAEO,EAAAE,SAAP,SAAgBzvG,GAOd,IANA,IAEM0vG,EAFQ9pH,OAAO/nB,KAAKmiC,GAAMziC,OAEbinB,WAAWjnB,OAAS,EACjCoyI,GAAO7mI,KAAKwpG,SAAW,KAAK9tF,SAAS,IAAItnB,OAAOwyI,GAClD3C,EAAQ,WAAI4C,GAET3vG,EAAK+sG,IACVA,EAAQjL,EAAU2N,SAASzvG,GAG7B,OAAO+sG,CACT,EAEO,EAAAyC,eAAP,SAAsBtoI,EAAY84B,EAAiBv5B,QAAA,IAAAA,IAAAA,EAAA,IACzC,MAAiBA,EAAI,QACzBi2D,EAAU,EACVqwE,EAAQ7lI,EAEZ,SAJe,IAAG,KAAE,GAIRzF,QAAQyF,GAAM,EACxB,KAAO84B,EAAK+sG,IACVrwE,IACAqwE,EAAQ,UAAG7lI,EAAE,YAAIw1D,GAIrB,OAAOqwE,CACT,EAEO,EAAAsC,QAAP,SAAettI,GACL,MAAaA,EAAK,IAAlBmoD,OAAG,IAAG,GAAC,EAAC,EAERy6D,EAAaz6D,EAAG,KAAV41B,EAAO51B,EAAG,GAClB0lF,EAAKjrB,IAAQ7kC,aAAE,EAAFA,EAAIuR,YACvB,OAAOu+C,EAAKA,EAAGzO,eAAiB,CAAC,CACnC,EAEO,EAAA0O,QAAP,SACE5tD,EACA7uD,EACA4M,EACAv5B,QAFA,IAAA2sB,IAAAA,EAAA,SACA,IAAA4M,IAAAA,EAAA,SACA,IAAAv5B,IAAAA,EAAA,IAEA,IAAMu2H,GAAQ,IAAAl/H,SAAQmkF,GAAcA,EAAa,CAACA,GAC1C,EAAiBx7E,EAAI,QAArBo5H,OAAO,IAAG,KAAE,EACpB7C,EAAM3qH,SAAQ,SAAAsrC,GACZA,EAAK/5C,WACG,MAAgC+5C,EAAI,WAApC/5C,OAAU,IAAG,GAAC,EAAC,EAAEq+E,EAAetkC,EAAI,WACpCz2C,EAAOtD,EAAU,GAGzB,GAAIsD,GAAM84B,EAAK94B,IAAO24H,EAAQp+H,QAAQyF,GAAM,EAAG,CAC7C,IAAM,EAAQ46H,EAAU0N,eAAetoI,EAAI84B,GAC3Cp8B,EAAWsD,GAAK,GAEhB,IAAApJ,SAAQs1B,IACNA,EAAO/gB,SAAQ,SAAAkH,GACL,IAAA4rG,EAAc5rG,EAAK,UAC3B4rG,EAAU9yG,SAAQ,SAACo8B,EAAK+rE,GAClB/rE,IAAQ,WAAIvnC,KAAMi+G,EAAU3K,GAAO,WAAI,GAC7C,GACF,G,CAGJv4B,GAAc6/C,EAAU+N,QAAQ5tD,EAAY7uD,EAAQ4M,EAAMv5B,EAC5D,GACF,EACF,EA77DA,CAAuC,I,ugBCzGvC,0E,OAKE,EAAAsyH,SAAW,G,CA0Ib,QA/I4C,QAO1C,YAAA50H,WAAA,SAAW4uB,GACTn2B,KAAK6J,KAAOssB,GAAK,CAAC,EAClBn2B,KAAKiY,OAASke,EAAEle,QAAU,CAAC,EAE3BjY,KAAKkjF,GAAKljF,KAAKiY,OAAOirE,GACtB,IAAM8H,EAAOhrF,KAAKiF,WAClBjF,KAAKwK,SAASwgF,EAAM,MAAOhrF,KAAK6jG,OAChC7jG,KAAKwK,SAASwgF,EAAM,QAAShrF,KAAK8iI,eAClC9iI,KAAKwK,SAASwgF,EAAM,SAAUhrF,KAAKskB,eACrC,EAEA,YAAAA,eAAA,SAAehU,EAAoB06E,EAAWnhF,GAA9C,gBAA8C,IAAAA,IAAAA,EAAA,IAC5CyG,EAAQsoF,MAAMnjF,SAAQ,SAAA6sB,GACpB,GAAKA,EAAL,CACQ,IAAA4wG,EAAkC5wG,EAAI,aAAxBm4F,EAAoBn4F,EAAI,gBAC9C4wG,GAAgBA,EAAa5nI,iBAC7B,SAASmvH,GACTn4F,EAAKl9B,OAAO7E,MAAM+hC,EAJD,CAKnB,IAEchyB,EAAQ+0E,aAChB5vE,SAAQ,SAAAwuH,GAAM,SAAK3/G,eAAe2/G,EAAIj5C,EAAMnhF,EAA9B,GACtB,EASA,YAAAg6F,MAAA,SAAM1+F,EAAkB6lF,EAAgBnhF,QAAhB,IAAAmhF,IAAAA,EAAA,SAAgB,IAAAnhF,IAAAA,EAAA,IAC9B,IAAAq5E,EAAOljF,KAAI,GACbH,EAAIG,KAAKiF,WAAWJ,QAAQM,GAGlC,GAFAnF,KAAK6uH,gBAAgB1pH,EAAO,KAAMtF,GAE9BqjF,IAAOr5E,EAAKi/G,UAAW,CACzB,IAAM,EAAa,SAAC3jH,GAClB+9E,EAAGp/E,QAAQ,gBAAiBqB,GAC5BA,EAAMkgF,aAAa5vE,SAAQ,SAAAsrC,GAAQ,SAAWA,EAAX,GACrC,EACA,EAAW57C,E,CAEf,EAWA,YAAA0pH,gBAAA,SAAgB1pH,EAAkB2pH,EAAsChuH,GAUtE,IARM,MAAuBd,KAArBiY,EAAM,SAAEpO,EAAI,OAAEq5E,EAAE,KAClBjpE,EAAW60G,GAAc,KACvBx2B,EAAcrgF,EAAM,UACtBk7H,GAAgB76C,aAAS,EAATA,EAAWnzF,QAASA,EAAM8zF,QAAQX,EAAUnzF,OAC5D2rH,EAAKjnH,EAAKu6H,iBAAkBlhD,aAAE,EAAFA,EAAIuR,WAAW2+C,YAC3C5wI,EAAO2C,EAAMxB,IAAI,SAAW,UAC9B0vI,EAAarzI,KAAKm8H,SAEb,EAAK,EAAG,EAAKrL,EAAGnwH,OAAQ,IAC/B,GAAImwH,EAAG,GAAIxmH,IAAM9H,EAAM,CACrB6wI,EAAaviB,EAAG,GAAIxuF,KACpB,K,CAGJ,IAQIivD,EAREjvD,EACJ6wG,GACA,IAAIE,EAAW,CACbluI,MAAK,EAEL8S,OAAM,EACNmsH,eAAgBtT,IAIpB,IAEEv/B,EAAWjvD,EAAKzuB,SAASO,E,CACzB,MAAOtJ,GACPymF,EAAW78E,SAASmQ,eAAe,IACnCq+D,EAAGowD,SAASxoI,E,CAGd,GAAImP,EACFA,EAASwK,YAAY8sE,OAChB,CACL,IAAM,EAASvxF,KAAKuzI,SACdhhH,EAAW,EAAOhO,WAExB,IAAK,IAAAqlE,aAAY9oF,GAgBf,EAAO2jB,YAAY8sE,OAhBI,CACvB,IAAM3wD,EAAYrO,EAAS5xB,QAAUG,EAIjC8/B,GACF9/B,IAIE8/B,IAAcrO,EAAS5xB,OACzB,EAAO8jB,YAAY8sE,GAEnB,EAAOv0E,aAAau0E,EAAUh/D,EAASzxB,G,EAW7C,OAJKqE,EAAMmoD,IAAIw7D,WACb5lC,SAAAA,EAAIp/E,QAAQ,kBAAmBqB,GAG1BosF,CACT,EAEA,YAAAuxC,cAAA,SAAct/H,EAAoB,GAAlC,WAAoC,QAAF,MAA0B,CAAC,EAAC,GAA1B2C,eAAAA,OAAc,IAAG,KAAE,EACrDnG,KAAKuzI,SAAUvsD,UAAY,GAC3B7gF,EAAesP,SAAQ,SAAAywG,GAAM,SAAK5hG,eAAe4hG,EAAI,EAAKjhH,WAA7B,IAC7BzB,EAAO+B,MAAK,SAAAJ,GAAS,SAAK0pH,gBAAgB1pH,EAArB,GACvB,EAEA,YAAA0O,OAAA,SAAO0K,GAAP,WACQnK,EAAKpU,KAAKoU,GACVogD,EAAO9/C,SAASisB,yBAKtB,OAJA3gC,KAAKuzI,SAAWh1H,GAAUve,KAAKoU,GAC/BpU,KAAKiF,WAAWM,MAAK,SAAAJ,GAAS,SAAK0pH,gBAAgB1pH,EAAOqvD,EAA5B,IAC9BpgD,EAAG4yE,UAAY,GACf5yE,EAAGqQ,YAAY+vC,GACRx0D,IACT,EACF,EA/IA,CAA4C,M,qvBCgB5C,4B,8CAgiBA,QAhiB2C,QAQzC,YAAA4U,UAAA,WACE,OAAO5U,KAAKosI,YACd,EAGA,YAAA34H,QAAA,WACE,OAAOzT,KAAKmF,MAAMxB,IAAI,UACxB,EAeA,YAAA4D,WAAA,SAAW+lD,QAAA,IAAAA,IAAAA,EAAA,IACT,IAAMnoD,EAAQnF,KAAKmF,MACb8S,EAASq1C,EAAIr1C,QAAU,CAAC,EACxBirE,EAAKjrE,EAAOirE,GACZswD,EAAWruI,EAAMmoD,KAAO,CAAC,EACvB35C,EAAY3T,KAAT,IAAEoU,EAAOpU,KAAL,GACfA,KAAK6J,KAAOyjD,EACZttD,KAAKwzI,SAAWA,EAChBxzI,KAAKiY,OAASA,EACdjY,KAAKkjF,GAAKA,EACVljF,KAAKikF,IAAMhsE,EAAOisE,aAAe,GACjClkF,KAAKujF,KAAOtrE,EAAOksE,cAAgB,GACnCnkF,KAAKwH,KAAOrC,EAAMxB,IAAI,cACtB3D,KAAKmsI,OAASnsI,KAAKwH,KAAK2lF,OAAS,GACjCntF,KAAKwK,SAASrF,EAAO,eAAgBnF,KAAKyzI,aAC1CzzI,KAAKwK,SAASrF,EAAO,oBAAqBnF,KAAK0zI,kBAC/C1zI,KAAKwK,SAASrF,EAAO,uBAAwBnF,KAAK2zI,iBAClD3zI,KAAKwK,SAASrF,EAAO,8BAA+BnF,KAAK4zI,cACzD5zI,KAAKwK,SAASrF,EAAO,yBAA0BnF,KAAKkG,OACpDlG,KAAKwK,SAASrF,EAAO,iBAAkBnF,KAAK6zI,eAC5C7zI,KAAKwK,SAASrF,EAAO,SAAUnF,KAAK8zI,cACpC9zI,KAAKwK,SAASrF,EAAO,SAAUnF,KAAK+zI,UACpC/zI,KAAKwK,SAASrF,EAAO,UAAWnF,KAAKg0I,WACrCrgI,EAAI+E,KAAK,QAASvT,IAClB,IAAAowG,WAAUnhG,EAAIpU,MACdmF,EAAMm9B,KAAOtiC,KACbA,KAAKu4F,aAAepzF,EAAMyzF,MAAMj0F,KAAK3E,MACrCA,KAAKiqI,cACLjqI,KAAKkqI,eAAe,CAAE+J,aAAa,IACnCj0I,KAAK0J,OAAS,SACR1J,KAAK2P,YAAqCukI,aAAW,CACzDC,UAAW,oBAEbn0I,KAAKmU,kBACJq/H,EAAS1qB,WAAa9oH,KAAKgiD,KAAKhiD,KAAKo0I,UACxC,EAEA,sBAAI,6BAAc,C,IAAlB,WACE,MAAO,CAAEn1H,MAAO,GAAIqwG,UAAW,GACjC,E,gCAEA,sBAAI,wBAAS,C,IAAb,WACE,OAAOtvH,KAAK6J,KAAKoO,OAAOqgF,SAC1B,E,gCAEA,YAAA+7C,cAAA,WACQ,IAAElvI,EAAkBnF,KAAb,MAAEiY,EAAWjY,KAAL,OACb4hD,EAAcz8C,EAAM6B,WAAU,UACtC,OAAOiR,EAAOqmH,qBAAuB18E,CACvC,EAEA,YAAAwyF,QAAA,WACQ,MAAoBp0I,KAAlBkjF,EAAE,KAAE/9E,EAAK,QAAEiP,EAAE,KACrB,MAAO,CACLmuE,OAAQW,aAAE,EAAFA,EAAIzwB,YACZttD,MAAK,EACLiP,GAAE,EAEN,EAKA,YAAA4tC,KAAA,SAAKn4C,GAAe,EAKpB,YAAAyG,QAAA,SAAQzG,GAAe,EAKvB,YAAAitF,SAAA,SAASjtF,GAAe,EAKxB,YAAAkqI,SAAA,SAASvnI,GAAY,EAKrB,YAAAwnI,UAAA,WAAa,EAEb,YAAA5uI,OAAA,W,MACE,YAAMA,OAAM,WACN,IAAED,EAAenF,KAAV,MAAE2T,EAAQ3T,KAAL,IACV44F,EAAUzzF,EAAK,MACjBgrF,EAAQnwF,KAAKu4F,aAAe,CAAC,EAUnC,OATApzF,EAAMkgF,aAAa5vE,SAAQ,SAAAsrC,GACzB,IAAMze,EAAOye,EAAKk4C,QAAQ9I,EAAMhrF,OAChCm9B,SAAAA,EAAMl9B,QACR,IACiB,QAAjB,EAAApF,KAAKkzI,oBAAY,SAAE9tI,SACnBwzF,EAAMh0F,OAAOg0F,EAAM/zF,QAAQ7E,MAAO,GAClCA,KAAKsQ,QAAQtQ,KAAKo0I,WAClBzgI,EAAI+E,KAAK,CAAEvT,MAAO,GAAIF,WAAY,GAAIq9B,KAAM,KAErCtiC,IACT,EAEA,YAAAs0I,gBAAA,SAAgB3hI,GACd,IAAK3S,KAAKq0I,gBAAiB,OAAO,EAClC1hI,EAAM0b,kBACN1b,EAAM4a,iBACNvtB,KAAKkjF,GAAGiC,SAASjD,IAAI,WAAY,CAC/B37D,OAAQvmB,KAAKmF,MACbwN,MAAK,GAET,EAEA,YAAAs3H,YAAA,WACU,IAAA9kI,EAAUnF,KAAI,MAChB2S,EAAQ,iBACR8jB,EAAUtxB,EAAMxB,IAAI,WAEtB8yB,aAAmB,KACrBz2B,KAAKsL,cAAcnG,EAAOwN,EAAO3S,KAAKiqI,aACtCjqI,KAAKwK,SAASrF,EAAOwN,EAAO3S,KAAKiqI,aACjCjqI,KAAKwK,SAASisB,EAAS,oBAAqBz2B,KAAKu0I,eACjD99G,EAAQ91B,QAAUX,KAAKw0I,gBAE3B,EAEA,YAAAtK,eAAA,SAAergI,QAAA,IAAAA,IAAAA,EAAA,IACP,MAA+B7J,KAA7BmF,EAAK,QAAEwO,EAAG,MAAEu/H,EAAY,eAE1B9S,EAAQj7H,EAAMxB,IAAI,cAClBgrI,EAAW,CAACxpI,EAFJ,oBAEkBnF,KAAKkqI,gBAEjC9J,aAAiB,KACnBzsH,EAAI+E,KAAK,aAAc0nH,GACvB8S,GAAgBA,EAAa9tI,SAC7BpF,KAAKsL,cAAa,MAAlBtL,KAAsB2uI,IACrB9kI,EAAKoqI,aAAej0I,KAAKy0I,iBAE1Bz0I,KAAKwK,SAAQ,MAAbxK,KAAiB2uI,GAErB,EAMA,YAAAmF,aAAA,WACU,IAAA3uI,EAAUnF,KAAI,MAChB00I,GAAS,IAAAzzI,MAAKkE,EAAMgI,SAC1B,GAAsB,IAAlBunI,EAAO/zI,QAA8B,WAAd+zI,EAAO,GAGlC,IAAK,IAAIjuH,KAFTthB,EAAMwvF,aAEWxvF,EAAMgI,QACrBhI,EAAMwvF,WAAWluE,EAErB,EAMA,YAAA+tH,cAAA,WACE,IAAMxE,EAAMhwI,KAAKkjF,GAAG4gD,UAEhBkM,GACFhwI,KAAKmF,MAAMsxB,QAAQlxB,MAAK,SAAAiM,GACtBw+H,EAAI1rI,IAAIkN,EAAE7N,IAAI,QAChB,GAEJ,EAOA,YAAAiwI,aAAA,SAAa/pI,QAAA,IAAAA,IAAAA,EAAA,IACL,MAA0B7J,KAAxBkjF,EAAE,KAAE9uE,EAAE,KAAEmvE,EAAI,OAAEp+E,EAAK,QACrB8hH,EAAQ/jC,aAAE,EAAFA,EAAIsB,OAAOoC,YAAYqgC,MAC/B1oB,EAASp5F,EAAMxB,IAAI,UACnBgxI,EAAc,UAAGpxD,EAAI,YACrBqxD,EAAoB,UAAGD,EAAW,WAClCE,EAAa,UAAGtxD,EAAI,WACpBuxD,EAAa,UAAGvxD,EAAI,WACpBwxD,EAAe,UAAGxxD,EAAI,cACtB1yE,EAAW,CAAC8jI,EAAaC,EAAmBC,EAAYC,EAAYC,GACpEC,EAAS/tB,IAAUp9G,EAAKorI,QAAU,GAAKN,EAC7C30I,KAAK2T,IAAI04E,YAAYx7E,EAAS4+C,KAAK,MACnC,IACMvrC,EAAM,CADM9P,EAAG2yB,aAAa,UAAY,IAG9C,OAAQw3D,GACN,IAAK,WACHr6E,EAAIvf,KAAKqwI,GACT,MACF,IAAK,kBACH9wH,EAAIvf,KAAKiwI,GACT,MACF,IAAK,UACH1wH,EAAIvf,KAAKkwI,GACT,MACF,IAAK,mBACH3wH,EAAIvf,KAAKkwI,EAAYG,GACrB,MACF,IAAK,WACFnrI,EAAKqrI,YAAchxH,EAAIvf,KAAKmwI,GAIjC3vI,EAAMxB,IAAI,WAAaugB,EAAIvf,KAAKowI,GAEhC,IAAMI,EAASjxH,EAAIjO,OAAOuvE,SAAS/1B,KAAK,KACxC0lF,GAAU/gI,EAAG2Q,aAAa,QAASowH,EACrC,EAMA,YAAAxB,gBAAA,WACU,IAAAxuI,EAAUnF,KAAI,MAChBo1I,EAAajwI,EAAMxB,IAAI,YACvB0xI,EAAKlwI,EAAMxB,IAAI,mBAAqByxI,IAAejwI,EAAM40F,UAAU,SACzE/5F,KAAK+kB,aAAa,2BAA0BswH,GAAY,GAC1D,EAMA,YAAA5B,YAAA,SAAYjiI,EAASi6C,EAAS5hD,QAAA,IAAAA,IAAAA,EAAA,IACtB,IAAE1E,EAAcnF,KAAT,MAAEkjF,EAAOljF,KAAL,GAEjB,GAAIilI,GAAY/hD,KAAQr5E,EAAKwV,OAAQ,CACnC,IAAMi2H,EAAYt1I,KAAKu1I,eACjB54H,EAAQxX,EAAMsjF,SAAS6sD,KAC5B,IAAAhwI,SAAQqX,IAAUxX,EAAM26E,SAASnjE,EAAO24H,E,MAEzCt1I,KAAK+kB,aAAa,QAAS5f,EAAM68H,cAAcn4H,GAEnD,EAMA,YAAA0qI,cAAA,WACE,IAAM3qH,EAAM5pB,KAAKmF,MAAMsxB,QAAQxkB,MAAM,QAAQw9C,KAAK,KAClDzvD,KAAK+kB,aAAa,QAAS6E,GAG3B5pB,KAAK4zI,eACL5zI,KAAKw1I,cACP,EAOA,YAAAzwH,aAAA,SAAapb,EAAcjC,GACzB,IAAM0M,EAAKpU,KAAK2T,IAChBjM,EAAQ0M,EAAG5M,KAAKmC,EAAMjC,GAAS0M,EAAG41F,WAAWrgG,EAC/C,EASA,YAAAyiI,WAAA,WACE,OAAOpsI,KAAKmF,MAAMinI,aAAa38E,KAAK,IACtC,EAMA,YAAAgmF,iBAAA,WACE,IAAM3oI,EAAkB,GAClB,EAAqB9M,KAAnBmF,EAAK,QAAEwO,EAAG,MAAES,EAAE,KAChB,EAAqBjP,EAAM6B,WAAzB0uI,EAAQ,WAAElzI,EAAI,OAEhBmzI,EAAc,OAClBrrI,GAAInF,EAAMmlH,QACV,gBAAiB9nH,GAAQ,WACrBxC,KAAKq0I,iBAAmB,CAAEzyF,WAAW,IACrC8zF,GAAY,CAAEE,gBAAiB,WAIrC,IAAArwI,MAAK6O,EAAGpN,YAAY,SAAAQ,GAAQ,OAAAsF,EAAMnI,KAAK6C,EAAKi4C,SAAhB,IAC5B3yC,EAAM2I,SAAQ,SAAAjO,GAAQ,OAAAmM,EAAIq2F,WAAWxiG,EAAf,IACtBxH,KAAKyzI,cACLzzI,KAAK2zI,kBACL,IAAMnsI,EAAO,SACRmuI,GACAxwI,EAAMwiI,kBAIX,IAAA1mI,MAAKuG,GAAMiO,SAAQ,SAAApU,GAAO,OAAc,IAAdmG,EAAKnG,WAAyBmG,EAAKnG,EAAnC,IAE1BsS,EAAInM,KAAKA,EACX,EAMA,YAAAqsI,cAAA,WACU,IAAA90H,EAAY/e,KAAKmF,MAAK,QACxB0wI,EAAW71I,KAAKmF,MAAMkgF,aAAa1kF,OACzCX,KAAK81I,uBAAuB9uD,UAAY6uD,EAAW,GAAK92H,CAC1D,EAOA,YAAAg3H,QAAA,SAAQ7qI,GACNA,EAAEqiB,gBACJ,EAMA,YAAAitG,aAAA,WACQ,IAAEr1H,EAAcnF,KAAT,MAAEkjF,EAAOljF,KAAL,GACZmF,EAAMxB,IAAI,YACfu/E,SAAAA,EAAIsB,OAAO9B,gBAAgB83C,aAAax6H,MAC1C,EA0BA,YAAA81I,qBAAA,WACE,IAAIr1F,EAAYzgD,KAAKoU,GAQrB,MANuC,mBAA5BpU,KAAKg2I,oBACdv1F,EAAYzgD,KAAKoU,GAAG8rB,cAAclgC,KAAKg2I,uBACvBh2I,KAAKi2I,YAIhBx1F,CACT,EAOA,YAAAqyE,cAAA,WACE,IAAMxqF,EAAa,CAAC,EACd/hB,EAASvmB,KAAKoU,GAChB8hI,EAAO,EACPC,EAAQ,EAENC,EAAa,SAAChiI,GAClB,IAAM08D,EAAe18D,EAAG08D,aAEpBA,GACFolE,GAAQplE,EAAa1pC,UACrB+uG,GAASrlE,EAAa1hC,WACtBgnG,EAAWtlE,KAEXxoC,EAAKQ,IAAMviB,EAAO6gB,UAAY8uG,EAC9B5tG,EAAK5Y,KAAOnJ,EAAO6oB,WAAa+mG,EAChC7tG,EAAKO,OAASP,EAAKQ,IAAMviB,EAAO4I,aAChCmZ,EAAK3Y,MAAQ2Y,EAAK5Y,KAAOnJ,EAAO6I,YAEpC,EAGA,OAFAgnH,EAAW7vH,GAEJ+hB,CACT,EAEA,YAAA+tG,aAAA,SAAa,G,MAAE/tG,QAAF,MAA4B,CAAC,EAAC,GAAxB,KAEXguG,EADSt2I,KAAI,GACFkwB,cACTpT,EAASw5H,EAAK,KAChBhmB,EAAgC,QAAjB,EAAAgmB,EAAMrvC,mBAAW,eAAEqpB,aAClC,EAAgBhoF,GAAQtoC,KAAK8yH,gBAA3BhqF,EAAG,MAAEpZ,EAAI,OACXygE,EAAQnwF,KAAKu4F,YAAYu6B,gBAE/B,OACEhqF,GAAQqnD,EAAM9jD,WACd3c,GAASygE,EAAMlkD,YACfnD,GAAQqnD,EAAM4iC,cACdrjG,IAAS4gG,aAAY,EAAZA,EAAclhG,aAActS,EAAKmvB,UAE9C,EAEA,YAAAwK,eAAA,SAAe5sC,G,WAAA,IAAAA,IAAAA,EAAA,IACb,IAAMy+B,EAAOtoC,KAAK8yH,gBAGlB,IAFqB9yH,KAAKq2I,aAAa,CAAE/tG,KAAI,KAExBz+B,EAAK40C,MAAO,CACvB,IAAArqC,EAAOpU,KAAI,GAGG,WAAlB6J,EAAKy0D,SACqB,QAA5B,EAAAlqD,EAAG8b,cAAc+2E,mBAAW,SAAEx+B,SAAS,EAAGngC,EAAKQ,KAE/C10B,EAAGqiC,eAAe,IAChB6nB,SAAU,SACVmb,MAAO,WACJ5vE,G,CAIX,EAKA,YAAA3D,MAAA,WACU,IAAAkO,EAAOpU,KAAI,GAEnBA,KAAKoU,GAAK,GACVpU,KAAKuT,iBACLvT,KAAKu2I,YACL,SAAYniI,EAAIpU,KAAKoU,IACrBpU,KAAK6T,QACP,EAEA,YAAA0iI,SAAA,WACU,IAAApxI,EAAUnF,KAAI,MAChBiF,EAAaE,EAAMkgF,aAEzBrlF,KAAK2T,IAAI+E,KAAK,CAAEvT,MAAK,EAAEF,WAAU,EAAEq9B,KADtBtiC,MAEf,EAEA,YAAAu4F,UAAA,W,MACE,OAAc,QAAP,EAAAv4F,KAAKkjF,UAAE,eAAEv/E,IAAI,UAAUsU,OAAOqgF,SACvC,EAMA,YAAAm8C,eAAA,WACEz0I,KAAK6zI,gBACL,IAAMpzF,EAAYzgD,KAAK81I,uBACjBxzG,EACJtiC,KAAKkzI,cACL,IAAI,GAAe,CAEjBjuI,WAAYjF,KAAKmF,MAAMxB,IAAI,cAC3BsU,OAAQjY,KAAKiY,OACbmsH,eAAgBpkI,KAAK6J,KAAKu6H,iBAG9B9hG,EAAKzuB,OAAO4sC,GACZzgD,KAAKkzI,aAAe5wG,EAGpB,IAFA,IAAM/d,EAAankB,MAAMC,UAAUC,MAAMM,KAAK0hC,EAAKluB,GAAGmQ,YAE7C1kB,EAAI,EAAG4rB,EAAMlH,EAAW5jB,OAAQd,EAAI4rB,EAAK5rB,IAChD4gD,EAAUh8B,YAAYF,EAAW1gB,QAErC,EAEA,YAAA6vI,iBAAA,WACE1zI,KAAKy1I,mBACLz1I,KAAKu0I,eACP,EAEA,YAAAiB,aAAA,WAAgB,EAEhB,YAAA3hI,OAAA,WAEE,OADA7T,KAAK0zI,mBACD1zI,KAAKwzI,SAAS1qB,YAClB9oH,KAAKy0I,iBACLz0I,KAAKw6H,gBACL,IAAAjlB,WAAUv1G,KAAKoU,GAAIpU,MACnBA,KAAKw2I,cAJ+Bx2I,IAOtC,EAEA,YAAAw2I,WAAA,WACOx2I,KAAKwzI,SAAS1qB,WACjB9oH,KAAK82F,SAAS92F,KAAKo0I,UAEvB,EAEO,EAAAF,UAAP,WACE,OAAO,IAAAhnI,QAAOlN,KAAKK,UAAW,SAChC,EACF,EAhiBA,CAA2C,M,ghBCxB3C,yB,8CAIA,QAJkD,QAChD,YAAAoT,QAAA,WACE,MAAO,KACT,EACF,EAJA,CAAkD,I,kvBCClD,yB,8CAcA,QAdgD,QAC9C,sBAAI,uBAAQ,C,IAAZ,WACE,OAAO,SAEF,YAAM3M,UAAQ,CACjBtE,KAAM,OACNiR,QAAS,KACTmuC,UAAW,CAAC,OAEhB,E,gCAEO,EAAAszD,YAAP,SAAmB9gG,GACjB,MAAO,CAAC,KAAM,MAAMvP,SAAQ,IAAAukB,aAAYhV,EAAGX,WAAa,CAC1D,EACF,EAdA,CAAgD,I,ogBCDhD,yB,8CAAmE,QAAf,QAAe,EAAnE,CAAoD,I,yuBCC9CA,GAAU,K,SAEhB,yB,8CAcA,QAd+C,QAC7C,sBAAI,uBAAQ,C,IAAZ,WACE,OAAO,SAEF,YAAM3M,UAAQ,CACjB2M,QAAO,GACPmuC,UAAW,CAAC,QAAS,QAAS,SAC9B4yE,UAAW,CAAC,KAAM,OAEtB,E,gCAEO,EAAAtf,YAAP,SAAmB9gG,GACjB,OAAO,IAAAgV,aAAYhV,EAAGX,WAAaA,EACrC,EACF,EAdA,CAA+C,I,ogBCH/C,yB,8CAAkE,QAAf,QAAe,EAAlE,CAAmD,I,yuBCC7CjR,GAAO,Q,SAEb,yB,8CAoBA,QApB4C,QAC1C,sBAAI,uBAAQ,C,IAAZ,WACE,OAAO,SAEF,YAAMsE,UAAQ,CACjBtE,KAAI,GACJiR,QAASjR,GACTgyH,UAAW,CAAC,QAAS,QAAS,UAElC,E,gCAEA,YAAAjtH,WAAA,SAAWuhB,EAAYjf,GACrB,YAAMtC,WAAU,UAACuhB,EAAOjf,GACxB,IAAMw7E,EAAarlF,KAAK2D,IAAI,eAC3B0hF,EAAW1kF,QAAU0kF,EAAW/gF,IAAI,CAAE9B,KAAM,SAC/C,EAEO,EAAA0yG,YAAP,SAAmB9gG,GACjB,OAAO,IAAAgV,aAAYhV,EAAGX,WAAajR,EACrC,EACF,EApBA,CAA4C,ICH5C,GAAe,UAAqB,CAClCkH,OAAQ,CAAC,I,yuBCAL,GAAO,Q,SAEb,yB,8CAiDA,QAjDgD,QAC9C,sBAAI,uBAAQ,C,IAAZ,WACE,OAAO,SAEF,YAAM5C,UAAQ,CACjBtE,KAAI,GACJiR,QAAS,GACTmuC,UAAW,CAAC,SACZ4yE,UAAW,CAAC,MACZiiB,QAAS,EACTC,KAAM,GAEV,E,gCAEA,YAAAnvI,WAAA,SAAWuhB,EAAYjf,GACrB,YAAMtC,WAAU,UAACuhB,EAAOjf,GACxB,IAAMw7E,EAAarlF,KAAK2D,IAAI,cACxB8yI,EAAUz2I,KAAK2D,IAAI,WACnB+yI,EAAO12I,KAAK2D,IAAI,QAGpB,IAAK0hF,EAAW1kF,OAAQ,CAGtB,IAFA,IAAMg2I,EAAY,GAEXD,KAAQ,CAIb,IAHA,IAAME,EAAe,GACjB5G,EAAMyG,EAEHzG,KACL4G,EAAajyI,KAAK,CAChBnC,KAAM,OACNi0B,QAAS,CAAC,UAIdkgH,EAAUhyI,KAAK,CACbnC,KAAM,MACNi0B,QAAS,CAAC,OACV4uD,WAAYuxD,G,CAIhBvxD,EAAW/gF,IAAIqyI,E,CAEnB,EAEO,EAAAzhC,YAAP,SAAmB9gG,GACjB,OAAO,IAAAgV,aAAYhV,EAAGX,WAAa,EACrC,EACF,EAjDA,CAAgD,I,yuBCF1C,GAAO,Q,SAEb,yB,8CAaA,QAbgD,QAC9C,sBAAI,uBAAQ,C,IAAZ,WACE,OAAO,SAEF,YAAM3M,UAAQ,CACjBtE,KAAI,GACJiR,QAAS,IAEb,E,gCAEO,EAAAyhG,YAAP,SAAmB9gG,GACjB,OAAO,IAAAgV,aAAYhV,EAAGX,WAAa,EACrC,EACF,EAbA,CAAgD,I,ogBCHhD,yB,8CAAmE,QAAf,QAAe,EAAnE,CAAoD,I,ogBCApD,yB,8CAAmE,QAAf,QAAe,EAAnE,CAAoD,I,yuBCC9C,GAAO,Q,SAEb,yB,8CAaA,QAbgD,QAC9C,sBAAI,uBAAQ,C,IAAZ,WACE,OAAO,SAEF,YAAM3M,UAAQ,CACjBtE,KAAI,GACJiR,QAAS,IAEb,E,gCAEO,EAAAyhG,YAAP,SAAmB9gG,GACjB,OAAO,IAAAgV,aAAYhV,EAAGX,WAAa,EACrC,EACF,EAbA,CAAgD,I,ogBCHhD,yB,8CAAmE,QAAf,QAAe,EAAnE,CAAoD,I,yuBCG9CojI,GACJ,4HAEF,4B,8CA+JA,QA/J4C,QAC1C,sBAAI,uBAAQ,C,IAAZ,WACE,OAAO,SAEF,YAAM/vI,UAAQ,CACjBtE,KAAM,QACNiR,QAAS,MACT0sH,MAAM,EACN3L,UAAW,EACXgV,SAAU,EACVF,cAAe,EACftuC,UAAW,CAAE87C,aAAc,GAC3BnO,OAAQ,CAAC,OAETjsH,IAAK,eAAQm6H,GAAQ,2JAMrB75B,SAAU,eAAQ65B,GAAQ,6LAK1BrjF,KAAM,IAEV,E,gCAEA,YAAAjsD,WAAA,SAAWuhB,EAAYjf,GACrB,YAAMtC,WAAU,UAACuhB,EAAOjf,GAChB,IAAA6S,EAAQ1c,KAAK2D,IAAI,cAAc,IACnC+Y,IAAO,IAAAi5F,wBAAsB,IAAAzoG,QAAOlN,KAAM,YAAY0c,OAASA,GACjE1c,KAAKyF,IAAI,MAAOiX,EAAK,CAAE9O,QAAQ,GAEnC,EAEA,YAAAw8H,YAAA,WACE,YAAMA,YAAW,WACT,IAAAlnD,EAAOljF,KAAI,GAEnB,GAAIkjF,EAAI,CACN,IACM6zD,EAAU,eAGhB,GAJY7zD,EAAGiC,SAIP13E,IAAIspI,GAAU,CAIpB,IAHA,IAAIC,GAAgB,EACdzH,EAAKvvI,KAAK2D,IAAI,WAEX9D,EAAI,EAAGA,EAAI0vI,EAAG5uI,OAAQd,IAC7B,GAAsB,iBAAlB0vI,EAAG1vI,GAAG22F,QAA4B,CACpCwgD,GAAgB,EAChB,K,CAICA,IACHzH,EAAG5qI,KAAK,CACNqC,WAAY,CAAEmmF,MAAO,gBACrBqJ,QAASugD,IAEX/2I,KAAKyF,IAAI,UAAW8pI,G,EAI5B,EAOA,YAAAuB,cAAA,WACE,IAAMtpI,EAAO,YAAMspI,cAAa,WAC1Bp0H,EAAM1c,KAAKi3I,eAEjB,OADIv6H,IAAKlV,EAAKkV,IAAMA,GACblV,CACT,EAEA,YAAAyvI,aAAA,SAAa3pF,QAAA,IAAAA,IAAAA,EAAA,IACX,IAAM5wC,EAAM1c,KAAK2D,IAAI2pD,EAAI0vD,SAAW,WAAa,QAAU,GACvD9vG,EAASwP,EAMb,OAJIA,GAA4B,SAArBA,EAAIgE,OAAO,EAAG,KACvBxT,GAAS,IAAAyoG,uBAAsBj5F,IAG1BxP,CACT,EAEA,YAAAgqI,aAAA,WACE,IAAMx6H,EAAM1c,KAAK2D,IAAI,OACfwzI,GAAS,IAAAjqI,QAAOlN,KAAM,YAAY0c,IACxC,OAAOA,IAAQy6H,GAAUz6H,KAAQ,IAAAi5F,uBAAsBwhC,EACzD,EAQA,YAAA7pI,OAAA,SAAOzD,GACL,IAAM7I,EAAM,YAAMsM,OAAM,UAACzD,GACjB7C,EAAehG,EAAG,WAM1B,OAJIgG,GAAchG,EAAI0b,MAAQ1V,EAAW0V,YAChC1b,EAAI0b,IAGN1b,CACT,EAQA,YAAAo2I,SAAA,SAASC,GACP,IAAInqI,EAAkD,CAAC,EAevD,IAAI,IAAAsxF,WACFtxF,EAASwH,SAASC,cAAc,MACzB6G,KAAO67H,OACT,GAAmB,oBAARC,IAChB,IACEpqI,EAAS,IAAIoqI,IAAID,EACP,CAAV,MAAOnsI,GAAG,CAGd,MAAO,CACLqsI,SAAUrqI,EAAOqqI,UAAY,GAC7Bp8H,SAAUjO,EAAOiO,UAAY,GAC7Bq8H,SAAUtqI,EAAOsqI,UAAY,GAC7B3wH,OAAQ3Z,EAAO2Z,QAAU,GACzBxJ,KAAMnQ,EAAOmQ,MAAQ,GACrBo6H,KAAMvqI,EAAOuqI,MAAQ,GACrBhpC,MA7BqB,SAAC5nF,QAAA,IAAAA,IAAAA,EAAA,IAItB,IAHA,IAAM4nF,EAAuB,CAAC,EACxBipC,EAAM7wH,EAAOlG,UAAU,GAAG1W,MAAM,KAE7BpK,EAAI,EAAGA,EAAI63I,EAAI/2I,OAAQd,IAAK,CACnC,IAAM83I,EAAOD,EAAI73I,GAAGoK,MAAM,KACpB,EAAOwQ,mBAAmBk9H,EAAK,IACjC,IAAMlpC,EAAM,GAAQh0F,mBAAmBk9H,EAAK,IAAM,I,CAGxD,OAAOlpC,CACT,CAkBSmpC,CAAe1qI,EAAO2Z,QAEjC,EAEO,EAAAquF,YAAP,SAAmB9gG,GACjB,MAAmC,SAA5B,IAAAgV,aAAYhV,EAAGX,QACxB,EACF,EA/JA,CAA4C,I,qvBCL5C,4B,8CA6FA,QA7F0C,QAExC,sBAAI,uBAAQ,C,IAAZ,WAEE,IAAMokI,EAAO,YAAM/wI,SAEnB,OAAO,SACF+wI,GAAI,CACPr1I,KAAM,MACNka,IAAK,GACLyjH,MAAM,EACN2X,OAAQ,+BACRrkI,QAAS,SACTskI,QAAS,IACTh6B,QAAS,GACT1d,KAAM,IACNr5F,WAAY,CAAEgxI,YAAa,GAE3B/6C,QAAS46C,EAAK56C,QACd0rC,OAAQ,CACN,CACEj8D,MAAO,UACP/iE,KAAM,UACNolE,YAAa,iBACb63D,WAAY,GAEd,CACEpkI,KAAM,SACNkqE,MAAO,WACP/iE,KAAM,UACNi9H,WAAY,EACZ/jI,QAAS,CACP,CAAE6E,MAAO,IAAKiC,KAAM,WACpB,CAAEjC,MAAO,IAAKiC,KAAM,eAGxB,CACE+iE,MAAO,OACP/iE,KAAM,OACNnH,KAAM,QACN2N,IAAK,IACLhE,IAAK,KACLy6H,WAAY,KAIpB,E,gCAEA,YAAAr/H,WAAA,SAAWuhB,EAAYjf,GACjB7J,KAAK2D,IAAI,OAAQ3D,KAAKi4I,eACrBj4I,KAAKk4I,YACV,YAAM3wI,WAAU,UAACuhB,EAAOjf,GACxB7J,KAAKwK,SAASxK,KAAM,4CAA6CA,KAAKk4I,UACxE,EAEA,YAAAA,UAAA,WACEl4I,KAAKyF,IAAI,MAAOzF,KAAKm4I,YACvB,EAOA,YAAAA,UAAA,WACE,IAAIC,EAAOp4I,KAAK2D,IAAI,WAChB08F,EAAOrgG,KAAK2D,IAAI,QAChBnB,EAAOxC,KAAK2D,IAAI,WACpBy0I,EAAOA,EAAO,MAAQA,EAAO,GAC7B/3C,EAAOA,EAAO,MAAQA,EAAO,GAC7B79F,EAAOA,EAAO,MAAQA,EAAO,GAC7B,IAAI0K,EAASlN,KAAK2D,IAAI,UAAY,IAAMy0I,EAAO/3C,EAAO79F,EAEtD,OADA0K,GAAU,eAEZ,EAMA,YAAA+qI,aAAA,WACE,IACMI,EADMr4I,KAAKo3I,SAASp3I,KAAK2D,IAAI,QACpB8qG,MACX4pC,EAAGC,GAAGt4I,KAAKyF,IAAI,UAAW4yI,EAAGC,GAC7BD,EAAGE,GAAGv4I,KAAKyF,IAAI,OAAQ4yI,EAAGE,GAC1BF,EAAG/kF,GAAGtzD,KAAKyF,IAAI,UAAW4yI,EAAG/kF,EACnC,EAEO,EAAA4hD,YAAP,SAAmB9gG,GACjB,GAA+B,WAA3B,IAAAgV,aAAYhV,EAAGX,UAAwB,oBAAoBzJ,KAAKoK,EAAGsI,KACrE,MAAO,CAAEla,KAAM,MAAOka,IAAKtI,EAAGsI,IAElC,EACF,EA7FA,CAA0C,I,ugBCE1C,4B,8CAwHA,QAxHgD,QAK9C,YAAAjJ,QAAA,WACE,MAAO,KACT,EAEA,YAAA/J,OAAA,WACE,MAAO,CACL8uI,SAAU,WACVvsD,MAAO,aACPnhF,MAAO,UACPuhH,KAAM,SACN8nB,UAAW,SAEf,EAEA,YAAA5sI,WAAA,SAAWuhB,GACT,YAAMvhB,WAAU,UAACuhB,GACjB9oB,KAAKwK,SAASxK,KAAKmF,MAAO,aAAcnF,KAAKk4I,WAC7Cl4I,KAAKy4I,WAAa,UAAGz4I,KAAKujF,KAAI,aAC9BvjF,KAAK04I,WACP,EAKA,YAAAA,UAAA,WACE,IAAI14I,KAAKwzI,SAAS1qB,UAAlB,CACM,IAAE3jH,EAAcnF,KAAT,MAAEkjF,EAAOljF,KAAL,GACXwzD,EAAOruD,EAAMxB,IAAI,QAEvB,GAAI6vD,GAAQ0vB,EAAI,CACd,IAAMy1D,EAAKz1D,EAAG01D,OAAOC,eACrBF,SAAAA,EAAIG,WACF,CAEE9lF,aAAc,CAAED,MAAO,CAACS,MAE1B,SAACpvD,GACC,IAAMpD,EAAMoD,GAAOA,EAAIsU,MAAQtU,EAAIsU,KAAK,GAClCgE,EAAM1b,KAAQ,IAAAkQ,UAASlQ,GAAOA,EAAMA,EAAI0b,KAC9CA,GAAOvX,EAAMM,IAAI,CAAEiX,IAAG,GACxB,IAEFvX,EAAMM,IAAI,OAAQ,G,CAjBe,CAmBrC,EAMA,YAAAyyI,UAAA,WACU,IAAA/yI,EAAUnF,KAAI,MACtBmF,EAAMu9H,cAAc,CAAEhmH,IAAKvX,EAAM8xI,iBACjCj3I,KAAKu0I,eACP,EAEA,YAAAA,cAAA,WACE,YAAMA,cAAa,WACb,MAA4Bv0I,KAA1BoU,EAAE,KAAEqkI,EAAU,aAAEtzI,EAAK,QAEvB8J,EADY9J,EAAM8xI,iBAAmB9xI,EAAM+xI,eACtB,SAAW,MACtC9iI,EAAGkvE,UAAUr0E,GAAQwpI,EACvB,EAOA,YAAA1E,SAAA,SAASvnI,GACPA,SAAAA,EAAI6hB,kBACE,IAAE60D,EAAcljF,KAAZ,GAAEmF,EAAUnF,KAAL,MACX4wF,EAAK1N,aAAE,EAAFA,EAAI01D,OAEXhoD,GAAMzrF,EAAMxB,IAAI,aAClBitF,EAAGzzE,KAAK,CACNjH,OAAM,SAAC6iI,EAAOC,GACZ7zI,EAAMM,IAAI,CAAEiX,IAAKq8H,EAAME,WACvBD,GAAYpoD,EAAGxzE,OACjB,EACAmJ,OAAQphB,EACRumB,MAAO,CAAC,SACRulE,OAAQ,WAGd,EAEA,YAAAioD,QAAA,WACE,IAAMl8B,EAAWh9G,KAAKmF,MAAM8xI,aAAa,CAAEj6B,UAAU,IACjDA,IACFh9G,KAAKoU,GAAGsI,IAAMsgG,EAElB,EAEA,YAAA6O,OAAA,WAEE7rH,KAAKkjF,GAAGp/E,QAAQ,sBAClB,EAEA,YAAAq1I,OAAA,SAAO3sI,GAEL,OADAA,EAAG+gB,kBACI,CACT,EAEA,YAAA1Z,OAAA,WAEE,GADA7T,KAAK0zI,mBACD1zI,KAAKwzI,SAAS1qB,UAAW,OAAO9oH,KACpCA,KAAKk4I,YACC,IAAEvkI,EAAe3T,KAAZ,IAAEmF,EAAUnF,KAAL,MACZkkB,EAAMvQ,EAAInM,KAAK,UAAY,GAIjC,OAHCrC,EAAMxB,IAAI,QAAUgQ,EAAInM,KAAK,QAAS,UAAG0c,EAAG,YAAIlkB,KAAKy4I,YAAanwD,QACnEtoF,KAAKw2I,aAEEx2I,IACT,EACF,EAxHA,CAAgD,I,ghBCHhD,yB,8CA2CA,QA3C8C,QAG5C,YAAAyT,QAAA,WACE,MAAO,KACT,EAEA,YAAA/J,OAAA,WACE,MAAO,CAAC,CACV,EAEA,YAAAnC,WAAA,SAAWuhB,GACT,YAAMvhB,WAAU,UAACuhB,GACjB9oB,KAAKy4I,WAAaz4I,KAAKujF,KAAO,SAChC,EAMA,YAAA20D,UAAA,WACEl4I,KAAKo5I,YAAY18H,IAAM1c,KAAKmF,MAAMxB,IAAI,MACxC,EAEA,YAAAy1I,UAAA,WACE,IAAKp5I,KAAKyc,OAAQ,CAChB,IAAM48H,EAAO3kI,SAASC,cAAc,UACpC0kI,EAAK38H,IAAM1c,KAAKmF,MAAMxB,IAAI,OAC1B01I,EAAKC,YAAc,IACnBD,EAAK18H,MAAMmW,OAAS,OACpBumH,EAAK18H,MAAMwpB,MAAQ,OACnBkzG,EAAKzkI,UAAY5U,KAAKujF,KAAO,aAC7BvjF,KAAKyc,OAAS48H,C,CAEhB,OAAOr5I,KAAKyc,MACd,EAEA,YAAA5I,OAAA,WAIE,OAHA,YAAMA,OAAM,WACZ7T,KAAKu0I,gBACLv0I,KAAKoU,GAAGqQ,YAAYzkB,KAAKo5I,aAClBp5I,IACT,EACF,EA3CA,CAA8C,I,kvBCC9C,yB,8CAqCA,QArC2C,QACzC,sBAAI,uBAAQ,C,IAAZ,WACE,OAAO,SAEF,YAAM8G,UAAQ,CACjBtE,KAAM,OACNgyH,WAAW,EACXgV,UAAU,GAEd,E,gCAEA,YAAAjiI,WAAA,SAAWuhB,EAAYjf,GACrB,YAAMtC,WAAU,UAACuhB,EAAOjf,GACxB7J,KAAK2jI,oBACP,EAEA,YAAAA,mBAAA,WACU,IAAApF,EAA2Bv+H,KAAKkjF,GAAGuR,WAAWx8E,OAAM,uBAC5D,GAAIsmH,EAAwB,CAC1B,IAAM,EAAe,SAACjgH,GACfA,EAAM0zH,aAAa,aACtB1zH,EAAM7Y,IAAI,CACRmkI,QAAQ,EACRH,WAAW,GAGjB,GAEI,IAAApnI,YAAWk8H,GACbv+H,KAAK6xI,cAAa,SAAAvzH,GAChBigH,EAAuBjgH,IAAU,EAAaA,EAChD,IAEAte,KAAK6xI,aAAa,E,CAGxB,EACF,EArCA,CAA2C,I,yuBCCrC,GAAO,OAEb,4B,8CAqCA,QArC2C,QACzC,sBAAI,uBAAQ,C,IAAZ,WACE,OAAO,SAEF,YAAM/qI,UAAQ,CACjBtE,KAAI,GACJiR,QAAS,IACTk1H,OAAQ,CAAC,QAAS,OAAQ,WAE9B,E,gCAEO,EAAAzzB,YAAP,SAAmB9gG,EAAiBvK,GAClC,IAAIqD,EAEJ,QAHkC,IAAArD,IAAAA,EAAA,IAGF,OAA5B,IAAAuf,aAAYhV,EAAGX,SAAkB,CACnC,IAAM,EAAW5J,EAAK42H,UAAY,GAClCvzH,EAAS,CAAE1K,KAAI,GAAEgnI,UAAU,GAI3B,IAAMj3G,EAAWne,EAAGmQ,WACRgO,EAAS5xB,eACJuM,EAAOs8H,UAExB,IAAA/zH,SAAQ8c,GAAU,SAAAjU,GACR,IAAA7K,EAAY6K,EAAoB,SAEnB,GAAlBA,EAAM0G,UAAuD,KAArC1G,EAAc+sD,YAAYid,QAClD70E,GAAW,EAAS5O,SAAQ,IAAAukB,aAAY3V,KAAa,WAE/CvG,EAAOs8H,QAElB,G,CAGF,OAAOt8H,CACT,EACF,EArCA,CAA2C,I,+pECK3C,4B,8CAsQA,QAtQ+C,QAM7C,YAAAxD,OAAA,WACE,MAAO,CACL8uI,SAAU,WACVl3G,MAAO,UAEX,EAEA,YAAA/5B,WAAA,SAAWuhB,GACT,YAAMvhB,WAAU,UAACuhB,IACjB,IAAAw5D,SAAQtiF,KAAM,iBAAkB,aAChC,IAAMmF,EAAQnF,KAAKmF,MACb+9E,EAAKljF,KAAKkjF,GAChBljF,KAAKwK,SAASrF,EAAO,QAASnF,KAAK+zI,UACnC/zI,KAAKwK,SAASrF,EAAO,iBAAkBnF,KAAKu5I,mBAC5Cv5I,KAAKwK,SAASrF,EAAO,eAAgBnF,KAAKw5I,aAC1Cx5I,KAAKy5I,IAAMv2D,aAAE,EAAFA,EAAIw2D,cACjB,EAEA,YAAAH,kBAAA,SAAkB/nI,EAAQi6C,EAAQ5hD,QAAA,IAAAA,IAAAA,EAAA,KAC/BA,EAAK8vI,aAAe35I,KAAK45I,gBAC5B,EAEA,YAAAC,YAAA,WACQ,IAKFvlI,EALE,EAA4BtU,KAA1BmF,EAAK,QAAE20I,EAAU,aAAE52D,EAAE,KAEvB62D,GADc72D,aAAE,EAAFA,EAAI82D,gBACW70I,EAC/B+H,GAAS,EACT+sI,GAAc,EAGlB,IAAIH,IAAe30I,EAAMxB,IAAI,aAAeo2I,IAAeE,EAAc90I,EAAM40F,UAAU,YACvF7sF,GAAS,EAEL+sI,IAAgB90I,EAAMxB,IAAI,aAAa,CAGzC,IAFA,IAAI,EAASwB,EAAMoZ,SAEZ,IAAW,EAAOyzH,aAAa,SACpC,EAAS,EAAOzzH,SAGd,GAAU,EAAO5a,IAAI,YACvB2Q,EAAW,EAEXpH,GAAS,C,CAKf,MAAO,CAAEA,OAAM,EAAEoH,SAAQ,EAC3B,EAMM,YAAAy/H,SAAN,SAAevnI,G,0HAMb,OALQitI,GAAF,EAAcz5I,MAAT,IAAEkjF,EAAE,KACT,EAAuBljF,KAAK65I,cAA1B3sI,EAAM,SAAEoH,EAAQ,WAInBpH,GASc,QAAnB,EAAAV,aAAE,EAAFA,EAAI6hB,uBAAe,iBACnB,EAAAruB,KAAmB,GAAMA,KAAKk6I,gBATxB5lI,IACiB,QAAnB,EAAA9H,aAAE,EAAFA,EAAI6hB,uBAAe,iBACnB60D,EAAGwb,YAAYpqF,GACfA,EAASxQ,QAAQ,SAAU0I,IAE7B,K,UAIF,EAAK2tI,YAAc,UAEfV,EAAA,Y,iBAEiB,O,sBAAjB,EAAAz5I,KAAiB,GAAMy5I,EAAIx2D,OAAOjjF,KAAMA,KAAKo6I,UAAY,CAAEznI,MAAOnG,K,cAAlE,EAAK4tI,UAAY,S,+BAEjBl3D,EAAGowD,SAAS,G,oBAIhBtzI,KAAKq6I,cAAa,G,YAGpB,YAAArG,UAAA,WACEh0I,KAAK45I,gBACP,EAMM,YAAAA,eAAN,SAAqB/vI,G,YAAA,IAAAA,IAAAA,EAAA,I,4GACX1E,GAAF,EAAgCnF,MAAzB,MAAEy5I,EAAG,MAAEW,EAAS,YAAEl3D,EAAE,KAG3BsmD,EAAWrkI,GAASA,EAAMxB,IAAI,aAEhC81I,EAAA,Y,iBAEA,O,sBAAA,GAAMA,EAAIprD,QAAQruF,KAAMo6I,I,cAAxB,S,+BAEAl3D,EAAGowD,SAAS,G,oBAGV,EAAA9J,GAAa,GAAMxpI,KAAKk6I,cAAxB,M,OAAY,EAAC,WAA6Bl6I,KAAKm6I,Y,0BACjD,GAAMn6I,KAAKw5I,YAAY3vI,IADrB,M,OACF,SACA7J,KAAKm6I,YAAc,G,wBAIvBn6I,KAAKq6I,e,YAOD,YAAAH,WAAN,W,+GACUT,GAAF,EAAqBz5I,MAAhB,IAAEo6I,EAAS,YAClBltI,EAAS,GAETusI,EACO,GAAMA,EAAIS,WAAWl6I,KAAMo6I,IADlC,M,OACFltI,EAAS,S,iBAGX,MAAO,CAAP,EAAOA,G,QAMH,YAAAssI,YAAN,SAAkB3vI,G,YAAA,IAAAA,IAAAA,EAAA,I,qGAEhB,OADQ1E,GAAF,EAA6BnF,MAAtB,MAAEy5I,EAAG,MAAY,cACV5vI,EAAK40C,MACT,GAAMz+C,KAAKk6I,cADK,I,cAC1Bn7H,EAAU,SACVqhH,EAAQj7H,EAAMkgF,aACdi1D,EAAU,IAAgBX,YAAa,GAAM9vI,GACnD1E,EAAMM,IAAI,UAAW,GAAI60I,IAIrBb,aAAG,EAAHA,EAAKc,aAAcd,EAAIc,UAAUC,cACnCpa,EAAMz/H,QACJy/H,EAAMl6H,WAAMb,EAAW,SAClBwE,GAAI,CAEPo5H,QAASX,GAAgBlC,MAE7Bj7H,EAAMM,IAAI,UAAWsZ,EAASu7H,IAE9Bla,EAAM8C,gBAAgBnkH,EAASlV,G,YAInC,YAAA4wI,gBAAA,SAAgB17H,EAA8BlV,G,WAAA,IAAAA,IAAAA,EAAA,IACtC,IAAE1E,EAAcnF,KAAT,MAEPmwB,EAFgBnwB,KAAL,GACFkwB,cACOF,eAEtB,GAAIG,aAAS,EAATA,EAAW68C,WAAY,CACzB,IAAM7oD,EAAQgM,EAAU88C,WAAW,GAC7BvB,EAAWvnD,EAAMu2H,eACjB,EAASv2H,EAAMw2H,YACf,GAAY,IAAA50D,UAASra,GACrB,EAA+C,GAErD,GAAI,IAAyB,QAAZ,IAAU69B,UAAE,sBAAG,aAAa,CAC3C,IAAMq5B,EAAO,EAAU39H,WACvB29H,EAAKntH,SAAQ,SAAAie,GACX,GAAIA,IAAQ,EAAW,CACrB,IAAMlxB,EAAO,WACPgvH,EAAM99F,EAAI3U,QAChB,EAAQpa,KAAK,CAAEnC,KAAI,EAAEuc,QAASyyG,EAAIlxH,MAAM,EAAG,KAC3C,EAAQqE,KAAKoa,GACb,EAAQpa,KAAK,CAAEnC,KAAI,EAAEuc,QAASyyG,EAAIlxH,MAAM,I,MAExC,EAAQqE,KAAK+uB,EAEjB,IAEA,IAAMxmB,EAAS,EAAQ+I,OAAOuvE,SACxB1kF,EAAQoM,EAAOrI,QAAQka,GAG7B,OAFA6jH,EAAK18H,MAAMgH,EAAQrD,GAEZ+4H,EAAKn/H,GAAG3C,E,EAInB,OAAOqE,EAAM6tF,OAAOj0E,EAASlV,EAC/B,EAMA,YAAA+wI,QAAA,WACU,IAAA13D,EAAOljF,KAAI,GACb6qH,EAAQ,YACRr+G,EAAK,CAAC,UAAGq+G,EAAK,WAAW,UAAGA,EAAK,WAAUp7D,KAAK,KAGtDyzB,GAAMA,EAAGp/E,QAAQ0I,EAAIxM,KAAKmF,MAC5B,EAOA,YAAA01I,mBAAA,SAAmB3vI,GACjBA,EAAEmjB,iBACJ,EAMA,YAAAgsH,aAAA,SAAap3D,GACL,MAAqBjjF,KAAnBkjF,EAAE,KAAE/9E,EAAK,QAAEwO,EAAG,MAChBmnI,EAAS,CAAErzI,GAAE,KAAE0D,IAAG,OAClB8D,EAASg0E,EAAS,KAAO,MAC/BC,EAAG63D,aAAW93D,GAASjjF,MACvBA,KAAK85I,aAAe72D,EAGpB,IAAI+3D,EAAS,CAACh7I,KAAKoU,GAAG8b,cAAexb,UAgBrC,GAfAomI,EAAO3vI,IAAI6vI,EAAQ,YAAah7I,KAAKg0I,WACrC8G,EAAO7rI,GAAQ+rI,EAAQ,YAAah7I,KAAKg0I,WACzC9wD,EAAGj0E,GAAQ,qBAAsBjP,KAAKg0I,WAClC7uI,IACFA,EAAM8J,GAAQ,UAAWjP,KAAKg0I,WAC9B7uI,EAAMrB,QAAQ,cAAOm/E,EAAS,SAAW,aAI3CtvE,SAAAA,EAAKxI,IAAI,YAAanL,KAAK66I,oBAE3BlnI,GAAOA,EAAI1E,GAAQ,YAAajP,KAAK66I,oBAIjC76I,KAAKiY,OAAOqmH,oBAGd,IAFM,IAAAlqH,EAAOpU,KAAI,GAEVoU,GACLA,EAAGwtC,WAAYqhC,GAEf7uE,EAAKA,EAAG6Q,aACgB,QAAd7Q,EAAGX,UAEXW,EAAK,EAIb,EACF,EAtQA,CAA+C,I,ghBCT/C,yB,8CASA,QAT+C,QAC7C,YAAAP,OAAA,WAME,OALA,YAAMA,OAAM,WAGZ7T,KAAKoU,GAAGkJ,iBAAiB,QAAStd,KAAK+1I,SAAS,GAEzC/1I,IACT,EACF,EATA,CAA+C,I,yuBCCzC,GAAO,Q,SAEb,yB,8CAcA,QAd4C,QAC1C,sBAAI,uBAAQ,C,IAAZ,WACE,OAAO,SAEF,YAAM8G,UAAQ,CACjBtE,KAAI,GACJiR,QAAS,GACTk1H,OAAQ,CAAC,KAAM,QAAS,QAE5B,E,gCAEO,EAAAzzB,YAAP,SAAmB9gG,GACjB,OAAO,IAAAgV,aAAYhV,EAAGX,WAAa,EACrC,EACF,EAdA,CAA4C,I,ogBCH5C,yB,8CAAmE,QAAnB,QAAmB,EAAnE,CAAgD,I,yuBCE1C,GAAO,QACPwnI,GAAK,KACLC,GAAK,KACLC,GAAO,OACPC,GAAc,KAEdC,GAAW,SAAC3zI,GAAkB,OAAAA,GAAmB,MAAVA,CAAT,EAEpC,4B,8CAwWA,QAxW4C,QAC1C,sBAAI,uBAAQ,C,IAAZ,WACE,OAAO,SAEF,YAAMZ,UAAQ,CACjBtE,KAAI,GACJiR,QAAS,GACT6nI,QAAS,GACTnb,MAAM,EACNob,SAAUH,GACVI,MAAO,iCACPC,QAAS,0CACTC,MAAO,kCACPxlH,MAAM,EACNylH,OAAQ,GACRC,MAAO,EACPC,UAAU,EACVC,UAAU,EACVC,MAAO,GACP34G,KAAM,GACN+iB,IAAK,EACL61F,eAAgB,EAChBC,QAAS,GACTj1I,WAAY,CAAEorH,gBAAiB,oBAEnC,E,gCAEA,YAAA7qH,WAAA,SAAWuhB,EAAYjf,GACrB7J,KAAKkjF,GAAKr5E,EAAKq5E,GACXljF,KAAK2D,IAAI,QAAQ3D,KAAKi4I,eAC1Bj4I,KAAKk8I,sBACLl8I,KAAKm8I,eACLn8I,KAAKyH,GAAG,kBAAmBzH,KAAKm8I,cAChCn8I,KAAKyH,GAAG,iCAAkCzH,KAAKk4I,WAC/C,YAAM3wI,WAAU,UAACuhB,EAAOjf,EAC1B,EAEA,YAAAqyI,oBAAA,WACE,GAAIl8I,KAAK2D,IAAI,cAAgBy3I,GAAa,CAClC,MAA+Bp7I,KAAK2D,IAAI,cAAtCm4I,EAAQ,WAAED,EAAQ,WAAE3lH,EAAI,OAC1Bq2G,EAAkB,CAAC,GAErB,IAAA/oC,OAAMs4C,KAAWvP,EAAKuP,WAAaA,IACnC,IAAAt4C,OAAMq4C,KAAWtP,EAAKsP,WAAaA,IACnC,IAAAr4C,OAAMttE,KAAOq2G,EAAKr2G,OAASA,IAE1B,IAAA8+E,YAAWu3B,IACdvsI,KAAKyF,IAAI8mI,E,CAGf,EAMA,YAAA4P,aAAA,WACU,IAGJxT,EAHIzlD,EAAOljF,KAAI,GAEfyT,EAAU,SAGd,OAJazT,KAAK2D,IAAI,aAKpB,KAAKs3I,GACL,KAAKE,GACHxS,EAAS3oI,KAAKo8I,mBACd,MACF,KAAKlB,GACHvS,EAAS3oI,KAAKq8I,iBACd,MACF,QACE5oI,EAAU,QACVk1H,EAAS3oI,KAAKs8I,kBAGlBt8I,KAAKyF,IAAI,CAAEgO,QAAO,GAAI,CAAE7F,QAAQ,IAEhC5N,KAAKyF,IAAI,CAAEkjI,OAAM,IACjBzlD,EAAGv/E,IAAI,UAAYu/E,EAAGp/E,QAAQ,oBAChC,EAKA,YAAAm0I,aAAA,WACE,IAAMsE,EAAOv8I,KAAK2D,IAAI,YAChB0zI,EAAMr3I,KAAKo3I,SAASp3I,KAAK2D,IAAI,QAC7B00I,EAAKhB,EAAI5oC,MACf,OAAQ8tC,GACN,KAAKtB,GACL,KAAKE,GACL,KAAKD,GACHl7I,KAAKyF,IAAI,UAAW4xI,EAAIl8H,SAASlR,MAAM,KAAKrG,OAC5Cy0I,EAAGj1G,MAAQpjC,KAAKyF,IAAI,OAAQ4yI,EAAGj1G,MAC/Bi4G,GAAShD,EAAGwD,WAAa77I,KAAKyF,IAAI,YAAY,GAC9C41I,GAAShD,EAAGniH,OAASl2B,KAAKyF,IAAI,QAAQ,GACZ,IAA1BiiC,SAAS2wG,EAAGyD,WAAmB97I,KAAKyF,IAAI,YAAY,GACpD41I,GAAShD,EAAG0D,QAAU/7I,KAAKyF,IAAI,QAAS4yI,EAAG0D,OAChC,MAAX1D,EAAGlyF,KAAenmD,KAAKyF,IAAI,MAAO,GACZ,MAAtB4yI,EAAG2D,gBAA0Bh8I,KAAKyF,IAAI,iBAAkB,GAI9D,EAMA,YAAAyyI,UAAA,WACE,IACIx7H,EAAM,GAEV,OAHa1c,KAAK2D,IAAI,aAIpB,KAAKs3I,GACHv+H,EAAM1c,KAAKw8I,gBACX,MACF,KAAKrB,GACHz+H,EAAM1c,KAAKy8I,wBACX,MACF,KAAKvB,GACHx+H,EAAM1c,KAAK08I,cAIf18I,KAAKyF,IAAI,CAAEiX,IAAG,GAChB,EAOA,YAAAo0H,cAAA,WACE,IAAMtpI,EAAO,YAAMspI,cAAa,WAGhC,OAFa9wI,KAAK2D,IAAI,aAGpB,KAAKs3I,GACL,KAAKE,GACL,KAAKD,GACH,MACF,QACE1zI,EAAK0uB,OAASl2B,KAAK2D,IAAI,QACvB6D,EAAKq0I,WAAa77I,KAAK2D,IAAI,YAC3B6D,EAAKs0I,WAAa97I,KAAK2D,IAAI,YAG/B,OAAO6D,CACT,EASA,YAAAm1I,iBAAA,WACE,MAAO,CACLn6I,KAAM,SACNkqE,MAAO,WACP/iE,KAAM,WACNi9H,YAAY,EACZ/jI,QAAS,CACP,CAAE6E,MAAO,KAAMiC,KAAM,gBACrB,CAAEjC,MAAOuzI,GAAItxI,KAAM,WACnB,CAAEjC,MAAOyzI,GAAMxxI,KAAM,uBACrB,CAAEjC,MAAOwzI,GAAIvxI,KAAM,UAGzB,EAOA,YAAA2yI,gBAAA,WACE,MAAO,CACLt8I,KAAK28I,mBACL,CACEjwE,MAAO,SACP/iE,KAAM,MACNolE,YAAa,wBACb63D,YAAY,GAEd,CACEl6D,MAAO,SACP/iE,KAAM,SACNolE,YAAa,yBAEf/uE,KAAK48I,mBACL58I,KAAK68I,eACL78I,KAAK88I,mBAET,EAMA,YAAAV,iBAAA,WACE,MAAO,CACLp8I,KAAK28I,mBACL,CACEjwE,MAAO,WACP/iE,KAAM,UACNolE,YAAa,kBACb63D,YAAY,GAEd5mI,KAAK48I,mBACL58I,KAAK68I,eACL78I,KAAK88I,mBACL,CACEt6I,KAAM,WACNkqE,MAAO,UACP/iE,KAAM,MACNi9H,YAAY,GAEd,CACEpkI,KAAM,WACNkqE,MAAO,SACP/iE,KAAM,iBACNi9H,YAAY,GAGlB,EAOA,YAAAyV,eAAA,WACE,MAAO,CACLr8I,KAAK28I,mBACL,CACEjwE,MAAO,WACP/iE,KAAM,UACNolE,YAAa,gBACb63D,YAAY,GAEd,CACEl6D,MAAO,QACP/iE,KAAM,QACNolE,YAAa,aACb63D,YAAY,GAEd5mI,KAAK48I,mBACL58I,KAAK68I,eAET,EAOA,YAAAD,iBAAA,WACE,MAAO,CACLp6I,KAAM,WACNkqE,MAAO,WACP/iE,KAAM,WACNi9H,YAAY,EAEhB,EAOA,YAAAiW,aAAA,WACE,MAAO,CACLr6I,KAAM,WACNkqE,MAAO,OACP/iE,KAAM,OACNi9H,YAAY,EAEhB,EAOA,YAAAkW,iBAAA,WACE,MAAO,CACLt6I,KAAM,WACNkqE,MAAO,WACP/iE,KAAM,WACNi9H,YAAY,EAEhB,EAOA,YAAA4V,cAAA,WACE,IAAMlyI,EAAKtK,KAAK2D,IAAI,WAChB2L,EAAMtP,KAAK2D,IAAI,SACby/B,EAAOpjC,KAAK2D,IAAI,QAUtB,OATA2L,GAAOhF,GAAMA,EAAGzF,QAAQ,KAAO,EAAI,IAAM,IACzCyK,GAAO8zB,EAAO,gBAASA,GAAS,GAChC9zB,GAAOtP,KAAK2D,IAAI,YAAc,sBAAwB,GACtD2L,GAAQtP,KAAK2D,IAAI,YAAyC,GAA3B,yBAG/B2L,GAAOtP,KAAK2D,IAAI,QAAU,2BAAoB2G,GAAO,GACrDgF,GAAOtP,KAAK2D,IAAI,OAAS,GAAK,SAC9B2L,GAAOtP,KAAK2D,IAAI,kBAAoB,oBAAsB,EAE5D,EAOA,YAAA84I,sBAAA,WACE,IAAIntI,EAAMtP,KAAKw8I,gBAEf,OADAltI,EAAMA,EAAIG,QAAQzP,KAAK2D,IAAI,SAAU3D,KAAK2D,IAAI,WAEhD,EAOA,YAAA+4I,YAAA,WACE,IAAIptI,EAAMtP,KAAK2D,IAAI,SAMnB,OALA2L,GAAOtP,KAAK2D,IAAI,WAAa,IAC7B2L,GAAOtP,KAAK2D,IAAI,YAAc,sBAAwB,GACtD2L,GAAOtP,KAAK2D,IAAI,QAAU,UAAY,GACtC2L,GAAQtP,KAAK2D,IAAI,YAA8C,GAAhC,8BAC/B2L,GAAOtP,KAAK2D,IAAI,SAAW,UAAY3D,KAAK2D,IAAI,SAAW,EAE7D,EAEO,EAAAuxG,YAAP,SAAmB9gG,GACT,IAAAX,EAAiBW,EAAE,QAAVsI,EAAQtI,EAAE,IACrB2oI,EAAW,sBAAsB/yI,KAAK0S,GACtCsgI,EAAa,+BAA+BhzI,KAAK0S,GACjDugI,EAAW,4BAA4BjzI,KAAK0S,GAC5CwgI,EAAYH,GAAYC,GAAcC,EAC5C,IAAI,IAAA7zH,aAAY3V,IAAY,IAAiC,WAAxB,IAAA2V,aAAY3V,IAAwBypI,EAAY,CACnF,IAAMhwI,EAAc,CAAE1K,KAAM,SAO5B,OANIka,IAAKxP,EAAOwP,IAAMA,GAClBwgI,IACEH,EAAU7vI,EAAOquI,SAAWN,GACvB+B,EAAY9vI,EAAOquI,SAAWJ,GAC9B8B,IAAU/vI,EAAOquI,SAAWL,KAEhChuI,C,CAEX,EACF,EAxWA,CAA4C,I,ugBCR5C,4B,8CAyJA,QAzJgD,QAI9C,YAAAuG,QAAA,WACE,MAAO,KACT,EAGA,YAAA/J,OAAA,WACE,MAAO,CAAC,CACV,EAEA,YAAAnC,WAAA,WAEE,8BAAyCvH,KAAMmB,WACvC,IAAAgE,EAAUnF,KAAI,MAChB8oB,EAAQ,CAAC,OAAQ,WAAY,WAAY,QAAS,MAAO,iBAAkB,UAC3Epf,EAASof,EAAMhkB,KAAI,SAAAk3B,GAAK,uBAAUA,EAAV,IAAeyzB,KAAK,KAClDzvD,KAAKwK,SAASrF,EAAO,kBAAmBnF,KAAKm9I,gBAC7Cn9I,KAAKwK,SAASrF,EAAO,aAAcnF,KAAKk4I,WACxCl4I,KAAKwK,SAASrF,EAAOuE,EAAQ1J,KAAKo9I,YACpC,EAMA,YAAAD,eAAA,WACE,IAAIZ,EAAOv8I,KAAKmF,MAAMxB,IAAI,YAC1B3D,KAAKoU,GAAG4yE,UAAY,GACpBhnF,KAAKoU,GAAGqQ,YAAYzkB,KAAKq9I,iBAAiBd,GAC5C,EAMA,YAAArE,UAAA,WACQ,IAAE/yI,EAAmBnF,KAAd,MAAEs9I,EAAYt9I,KAAL,QACtB,GAAKs9I,EAAL,CACA,IAAMf,EAAOp3I,EAAMxB,IAAI,YACnB+Y,EAAMvX,EAAMxB,IAAI,OAEpB,OAAQ44I,GACN,IAAK,KACH7/H,EAAMvX,EAAMq3I,gBACZ,MACF,IAAK,OACH9/H,EAAMvX,EAAMs3I,wBACZ,MACF,IAAK,KACH//H,EAAMvX,EAAMu3I,cAIhBY,EAAQ5gI,IAAMA,CAhBM,CAiBtB,EAMA,YAAA0gI,YAAA,WACQ,IAAEj4I,EAAmBnF,KAAd,MAAEs9I,EAAYt9I,KAAL,QAEtB,OADamF,EAAMxB,IAAI,aAErB,IAAK,KACL,IAAK,OACL,IAAK,KACHwB,EAAMrB,QAAQ,kBACd,MACF,QACE,GAAIw5I,EAAS,CACX,IAAMlpI,EAAKkpI,EACXlpI,EAAG8hB,KAAO/wB,EAAMxB,IAAI,QACpByQ,EAAGynI,SAAW12I,EAAMxB,IAAI,YACxByQ,EAAG0nI,SAAW32I,EAAMxB,IAAI,YACxByQ,EAAGunI,OAASx2I,EAAMxB,IAAI,S,EAI9B,EAEA,YAAA05I,iBAAA,SAAiBd,GACf,IAAIe,EAEJ,OAAQf,GACN,IAAK,KACHe,EAAUt9I,KAAKu9I,gBACf,MACF,IAAK,OACHD,EAAUt9I,KAAKw9I,wBACf,MACF,IAAK,KACHF,EAAUt9I,KAAKy9I,cACf,MACF,QACEH,EAAUt9I,KAAK09I,eAInB,OADA19I,KAAKs9I,QAAUA,EACRA,CACT,EAEA,YAAAI,aAAA,WACE,IAAMtpI,EAAKM,SAASC,cAAc,SAGlC,OAFAP,EAAGsI,IAAM1c,KAAKmF,MAAMxB,IAAI,OACxB3D,KAAK29I,YAAYvpI,GACVA,CACT,EAEA,YAAAmpI,cAAA,WACE,IAAMnpI,EAAKM,SAASC,cAAc,UAKlC,OAJAP,EAAGsI,IAAM1c,KAAKmF,MAAMq3I,gBACpBpoI,EAAGklI,YAAc,IACjBllI,EAAG2Q,aAAa,kBAAmB,QACnC/kB,KAAK29I,YAAYvpI,GACVA,CACT,EAEA,YAAAopI,sBAAA,WACE,IAAIppI,EAAKM,SAASC,cAAc,UAKhC,OAJAP,EAAGsI,IAAM1c,KAAKmF,MAAMs3I,wBACpBroI,EAAGklI,YAAc,IACjBllI,EAAG2Q,aAAa,kBAAmB,QACnC/kB,KAAK29I,YAAYvpI,GACVA,CACT,EAEA,YAAAqpI,YAAA,WACE,IAAIrpI,EAAKM,SAASC,cAAc,UAKhC,OAJAP,EAAGsI,IAAM1c,KAAKmF,MAAMu3I,cACpBtoI,EAAGklI,YAAc,IACjBllI,EAAG2Q,aAAa,kBAAmB,QACnC/kB,KAAK29I,YAAYvpI,GACVA,CACT,EAEA,YAAAupI,YAAA,SAAYvpI,GACVA,EAAGQ,UAAY5U,KAAKujF,KAAO,aAC3BnvE,EAAGuI,MAAMmW,OAAS,OAClB1e,EAAGuI,MAAMwpB,MAAQ,MACnB,EAEA,YAAAtyB,OAAA,WACE,0BAAqC7T,MACrCA,KAAKu0I,gBACL,IAAIgI,EAAOv8I,KAAKmF,MAAMxB,IAAI,YAG1B,OAFA3D,KAAKoU,GAAGqQ,YAAYzkB,KAAKq9I,iBAAiBd,IAC1Cv8I,KAAKo9I,cACEp9I,IACT,EACF,EAzJA,CAAgD,I,qvBCD1C,GAAO,S,SAEb,yB,8CAyBA,QAzB6C,QAC3C,sBAAI,uBAAQ,C,IAAZ,WACE,OAAO,SAEF,YAAM8G,UAAQ,CACjBtE,KAAI,GACJiR,QAAS,GACT+gH,WAAW,EACX5yE,WAAW,EACX6nF,WAAW,GAEf,E,gCAEO,EAAAv0B,YAAP,SAAmB9gG,GACjB,IAAI,IAAAgV,aAAYhV,EAAGX,UAAY,GAAM,CACnC,IAAMvG,EAAc,CAAE1K,KAAI,IAO1B,OALI4R,EAAGsI,MACLxP,EAAOwP,IAAMtI,EAAGsI,IAChBxP,EAAO0mD,OAASx/C,EAAGw/C,QAGd1mD,C,CAEX,EACF,EAzBA,CAA6C,I,2fCH7C,4B,8CA4CA,QA5CiD,QAC/C,YAAAuG,QAAA,WACE,MAAO,QACT,EAGA,YAAA/J,OAAA,WACE,MAAO,CAAC,CACV,EAEA,YAAAmK,OAAA,WACQ,IAAE1O,EAAcnF,KAAT,MAAEkjF,EAAOljF,KAAL,GACX0c,EAAMvX,EAAMxB,IAAI,OAChBi6I,EAAS16D,GAAMA,EAAGv/E,IAAI,eACtBk6I,EAAcD,GAAkB,EAClC7+H,EAAU,GAGd,GAAIrC,EAAK,CACP,IAAM,EAASvX,EAAMxB,IAAI,UACnBm6I,EAAO,gBAASD,GAChBE,EAAW,gBAASF,EAAc,GAClCG,EAAS,UAAGF,EAAI,SAChBG,EAAa,UAAGF,EAAQ,SAE9Bh/H,EAAU,wBACF++H,EAAI,yDACRA,EAAI,6CACF,EAAS,UAAG,EAAM,SAAU,GAAE,8BACvBG,EAAU,6BAAqBA,EAAU,oCAElDH,EAAI,mBAAWphI,EAAG,gCACTshI,EAAM,0CAAkCF,EAAI,0BACpDD,EAA+B,GAAjB,UAAGG,EAAM,OAAU,YAEtC96D,GAAMA,EAAGz9E,IAAI,cAAeo4I,EAAc,E,MAE1C9+H,EAAU5Z,EAAMisI,cAKlB,OAFApxI,KAAKoU,GAAG4yE,UAAYjoE,EACpB/e,KAAKw2I,aACEx2I,IACT,EACF,EA5CA,CAAiD,I,qvBCC3C,GAAO,M,SAEb,yB,8CAsBA,QAtB0C,QACxC,sBAAI,uBAAQ,C,IAAZ,WACE,OAAO,SAEF,YAAM8G,UAAQ,CACjBtE,KAAI,GACJiR,QAAS,GACT61H,eAAe,EACftuC,UAAW,CAAE87C,cAAc,IAE/B,E,gCAEA,YAAApqD,QAAA,WACE,IAAI/iF,EAAO3J,KAAK2D,IAAI,WACd+sI,EAAa1wI,KAAK2D,IAAI,eAE5B,OADAgG,EAAOA,EAAKiS,OAAO,GAAGuN,cAAgBxf,EAAKrJ,MAAM,GAC1CowI,GAAc/mI,CACvB,EAEO,EAAAurG,YAAP,SAAmB9gG,GACjB,OAAO,IAAAgV,aAAYhV,EAAGX,WAAa,EACrC,EACF,EAtBA,CAA0C,I,kvBCA1C,yB,8CAcA,QAd4C,QAC1C,sBAAI,uBAAQ,C,IAAZ,WACE,OAAO,SAEF,YAAM3M,UAAQ,CACjB4iI,YAAY,EACZC,WAAW,EACXF,WAAW,GAEf,E,gCAEO,EAAAv0B,YAAP,SAAmB9gG,EAASvK,GAC1B,YAD0B,IAAAA,IAAAA,EAAA,MACjBA,EAAKq2H,KAChB,EACF,EAdA,CAA4C,I,2fCH5C,4B,8CAIA,QAJ8C,QAC5C,YAAAzrH,eAAA,SAAehB,GACb,OAAOiB,SAASwpI,gBAAgB,6BAA8BzqI,EAChE,EACF,EAJA,CAA8C,I,8vBCC9C,yB,8CA+BA,QA/B+C,QAC7C,sBAAI,uBAAQ,C,IAAZ,WACE,OAAO,SAEF,YAAM3M,UAAQ,CACjB2M,QAAS,GACT+gH,WAAW,EACXiV,WAAW,EACXC,YAAY,EACZF,UAAU,GAEd,E,gCAEA,YAAAr0B,OAAA,WACU,IAAAp2F,EAAY/e,KAAI,QAClBue,EAASve,KAAKue,SACpB,OAAOA,aAAM,EAANA,EAAQgrF,GAAG,WAAYxqF,EAAU/e,KAAKm+I,gBAAgBp/H,EAC/D,EAEA,YAAAo/H,gBAAA,SAAgBp/H,GACd,OAAO,IAAAu1F,mBAAkBv1F,EAC3B,EAEO,EAAAm2F,YAAP,SAAmB9gG,G,MACjB,GAAoB,IAAhBA,EAAG4Q,SACL,MAAO,CACLxiB,KAAM,WACNuc,QAAuB,QAAd,EAAA3K,EAAGi3D,mBAAW,QAAI,GAGjC,EACF,EA/BA,CAA+C,I,kvBCD/C,yB,8CAmBA,QAnB8C,QAC5C,sBAAI,uBAAQ,C,IAAZ,WAEE,OAAO,MAAK,YAAMvkE,SACpB,E,gCAEA,YAAAquG,OAAA,WACE,MAAO,iBAAOn1G,KAAK+e,QAAO,SAC5B,EAEO,EAAAm2F,YAAP,SAAmB9gG,G,MACjB,GAAmB,GAAfA,EAAG4Q,SACL,MAAO,CACLvR,QAAS,OACTjR,KAAM,UACNuc,QAAuB,QAAd,EAAA3K,EAAGi3D,mBAAW,QAAI,GAGjC,EACF,EAnBA,CAA8C,I,ogBCA9C,yB,8CAwBA,QAxBmD,QAEjD,YAAAx2D,eAAA,WAAkB,EAClB,YAAA6+H,iBAAA,WAAoB,EACpB,YAAAE,aAAA,WAAgB,EAChB,YAAAW,cAAA,WAAiB,EACjB,YAAAxvH,aAAA,WAAgB,EAChB,YAAA0wH,iBAAA,WAAoB,EACpB,YAAAxL,YAAA,WAAe,EACf,YAAAC,eAAA,WAAkB,EAClB,YAAA/1H,eAAA,WACE,OAAOnU,IACT,EAEA,YAAAyU,eAAA,WACE,OAAOC,SAASmQ,eAAe,GACjC,EAEA,YAAAhR,OAAA,WACQ,IAAE1O,EAAcnF,KAAT,MAAEoU,EAAOpU,KAAL,GACjB,OAAImF,EAAMmoD,IAAIw7D,YACd10G,EAAGi3D,YAAclmE,EAAM4Z,SADS/e,IAGlC,EACF,EAxBA,CAAmD,I,ogBCAnD,yB,8CAIA,QAJkD,QAChD,YAAAyU,eAAA,WACE,OAAOC,SAAS0pI,cAAcp+I,KAAKmF,MAAM4Z,QAC3C,EACF,EAJA,CAAkD,I,kvBCAlD,yB,8CAsCA,QAtC8C,QAC5C,sBAAI,uBAAQ,C,IAAZ,WACE,OAAO,SAEF,YAAMjY,UAAQ,CACjB2M,QAAS,OACTy1H,WAAW,EACXK,UAAU,EACV3nF,WAAW,EACXyjC,WAAY,GACZsjD,OAAQ,GACRS,SAAU,CACR,aACA,mBACA,mBACA,oBACA,wBACA,sBACA,oBAGN,E,gCAEA,YAAA/D,UAAA,W,MACQ9a,EAAY,QAAP,EAAAvqH,KAAKkjF,UAAE,eAAE57E,YAEpB,OADCtH,KAAK+qI,UAAWxgB,SAAAA,EAAIjmH,IAAItE,OAClB,YAAMqlI,UAAS,UACxB,EAEA,YAAAnB,aAAA,W,MACQ3Z,EAAY,QAAP,EAAAvqH,KAAKkjF,UAAE,eAAE57E,YAEpB,OADAijH,SAAAA,EAAInlH,OAAOpF,MACJ,YAAMkkI,aAAY,UAC3B,EAEO,EAAAhvB,YAAP,WACE,OAAO,CACT,EACF,EAtCA,CAA8C,I,yuBCCxC,GAAO,S,SAEb,yB,8CAiBA,QAjB4C,QAC1C,sBAAI,uBAAQ,C,IAAZ,WACE,OAAO,SAEF,YAAMpuG,UAAQ,CACjBtE,KAAI,GACJiR,QAAS,GACT+gH,WAAW,EACXx5B,WAAW,EACX2tC,OAAQ,CAAC,KAAM,QAAS,OACxB3hI,WAAY,CAAEgxI,YAAa,MAE/B,E,gCAEO,EAAA9iC,YAAP,SAAmB9gG,GACjB,OAAO,IAAAgV,aAAYhV,EAAGX,WAAa,EACrC,EACF,EAjBA,CAA4C,I,ogBCF5C,yB,8CA6BA,QA7BgD,QAC9C,YAAAA,QAAA,WACE,MAAO,KACT,EAEA,YAAAlM,WAAA,SAAWuhB,GACT,YAAMvhB,WAAU,UAACuhB,GACjB9oB,KAAKwK,SAASxK,KAAKmF,MAAO,wBAAyBnF,KAAKk4I,UAC1D,EAEA,YAAAA,UAAA,WACE,IAAM/nD,GAAQ,SAAKnwF,KAAKoU,GAAI,UAAU,GACtC+7E,IAAS,SAAOA,EAAO,CAAEzzE,IAAK1c,KAAKq+I,YACrC,EAEA,YAAAxqI,OAAA,WACE,YAAMA,OAAM,WACZ,IAAMs8E,GAAQ,SAAS,SAAU,CAC/BhD,MAAO,UAAGntF,KAAKujF,KAAI,cACnB5mE,MAAO,0CACPD,IAAK1c,KAAKq+I,aAGZ,OADAr+I,KAAKoU,GAAGqQ,YAAY0rE,GACbnwF,IACT,EAEA,YAAAq+I,SAAA,WACE,OAAOr+I,KAAKmF,MAAMwiI,gBAAgBjrH,KAAO,EAC3C,EACF,EA7BA,CAAgD,I,+kCC0IhD,eAkIE,WAAYwmE,GAAZ,MACE,YAAMA,EAAI,gBAAiB,IAAI,QAAW79E,EAAW,CAAE69E,GAAE,MAAI,KAO7D,IAAK,IAAIv5E,KAzIX,EAAAy6H,eAAiB,CACf,CACE95H,GAAI,OACJnF,MAAO,GACPm9B,KAAM,IAER,CACEh4B,GAAI,MACJnF,MAAO,GACPm9B,KAAM,IAER,CACEh4B,GAAI,QACJnF,MAAO,GACPm9B,KAAMg8G,IAER,CACEh0I,GAAI,QACJnF,MAAO,GACPm9B,KAAM,IAER,CACEh4B,GAAI,QACJnF,MAAO,GACPm9B,KAAM,IAER,CACEh4B,GAAI,QACJnF,MAAO,GACPm9B,KAAM,IAER,CACEh4B,GAAI,MACJnF,MAAO,GACPm9B,KAAM,IAER,CACEh4B,GAAI,OACJnF,MAAO,GACPm9B,KAAM,IAER,CACEh4B,GAAI,QACJnF,MAAO,GACPm9B,KAAM,IAER,CACEh4B,GAAI,QACJnF,MAAO,GACPm9B,KAAM,IAER,CACEh4B,GAAI,QACJnF,MAAO,GACPm9B,KAAM,IAER,CACEh4B,GAAI,SACJnF,MAAO,GACPm9B,KAAM,IAER,CACEh4B,GAAI,SACJnF,MAAO,GACPm9B,KAAM,IAER,CACEh4B,GAAI,MACJnF,MAAO,GACPm9B,KAAM,IAER,CACEh4B,GAAI,SACJnF,MAAO,GACPm9B,KAAM,IAER,CACEh4B,GAAI,UACJnF,MAAO,GACPm9B,KAAM,IAER,CACEh4B,GAAI,WACJnF,MAAO,GACPm9B,KAAM,IAER,CACEh4B,GAAI,OACJnF,MAAO,GACPm9B,KAAM,IAER,CACEh4B,GAAI,UACJnF,MAAO,GACPm9B,KAAM,IAER,CACEh4B,GAAI,UACJnF,MAAO,GACPm9B,KAAM,KAIV,EAAAiiG,eAA8C,CAAC,EAG/C,EAAAW,UAAY,GAEZ,EAAAzwC,WAAa,GAEb,EAAA8pD,eAAiB,GASjB,EAAA54B,WAAa,aAaPziC,IAEF,EAAKjrE,OAAOotE,WAAanC,EAAGjrE,OAAOotE,YAAc,EAAKptE,OAAOotE,YAG9C,GAET17E,KAAQ,EAAKsO,SAAS,EAAKA,OAAOtO,GAAQ,GAASA,IAG3D,IAAI45E,EAAO,EAAKtrE,OAAOksE,aAIvB,GAHIZ,IAAM,EAAKtrE,OAAOisE,YAAcX,EAAO,EAAKtrE,OAAOisE,aAGnDhB,EAAI,CACNA,EAAGv/E,IAAI,UAAUk7H,UAAY,EAAKuF,eAClClhD,EAAGz7E,GAAG,0BAA2B,EAAK+2I,iBAAkB,GAExD,IAAM,EAAWt7D,EAAGv/E,IAAI,YACxBu/E,EAAG14E,SAAS,EAAU,OAAO,SAACqnC,EAAKktC,EAAGl1E,GAAS,SAAK40I,UAAU,EAASp6B,aAAaxyE,GAAMhoC,EAA3C,IAC/Cq5E,EAAG14E,SAAS,EAAU,UAAU,SAACqnC,EAAKktC,EAAGl1E,GAAS,SAAK60I,aAAa,EAASr6B,aAAaxyE,GAAMhoC,EAA9C,G,CAGpD,OAAO,CACT,CAiaF,OA9jB8C,QA+J5C,YAAAwiH,KAAA,SAAK3zG,GAAL,WACE,OAAO1Y,KAAK4lH,gBAAgBltG,EAAM,CAChCmtG,SAAU,SAAC34G,GACT,IAAI05B,EAAU,EAAKsqF,aAOnB,GALKtqF,IACH,EAAKs8C,GAAGmI,MAAM/mF,IAAI,CAAC,EAAG,CAAE4R,QAAQ,IAChC0wB,EAAU,EAAKsqF,eAGb,IAAAhwH,SAAQgM,GACVA,EAAOvM,QAAUimC,EAAQy+C,WAAWn4E,OAC/B,CACG,MAA6BA,EAAM,WAAnCm4E,OAAU,IAAG,KAAE,EAAKvuE,EAAI,GAAK5J,EAA/B,gBACN05B,EAAQnhC,IAAIqR,GAEZ8vB,EAAQy+C,WAAWA,E,CAEvB,GAEJ,EAEA,YAAAkX,MAAA,WACE,MAAO,CAAC,CACV,EAOA,YAAA8nB,aAAA,WACE,IAAMxyE,EAAM7xC,KAAKkjF,GAAGmI,MAAMrC,cACpBmH,EAAQt+C,aAAG,EAAHA,EAAK64E,eACnB,OAAOv6B,aAAK,EAALA,EAAOk0B,cAChB,EAYA,YAAA6M,WAAA,WACE,OAAOlxH,KAAKqkH,cACd,EA6BA,YAAAs6B,cAAA,WACE,IAAMnzD,EAAMxrF,KAAKkxH,aACjB,OAAO1lC,aAAG,EAAHA,EAAKnG,YACd,EA+BA,YAAAi/B,aAAA,SAAah/B,EAAyBh4B,GACpC,YADoC,IAAAA,IAAAA,EAAA,IAC7BttD,KAAK2+I,gBAAgBr6I,IAAIghF,EAAWh4B,EAC7C,EAUA,YAAAz5C,OAAA,W,MACE,OAAyB,QAAlB,EAAA7T,KAAK4+I,qBAAa,eAAE/qI,SAASO,EACtC,EAMA,YAAA1L,MAAA,SAAMmB,QAAA,IAAAA,IAAAA,EAAA,IACJ,IAAMw7E,EAAarlF,KAAK2+I,gBAGxB,OADAt5D,SAAAA,EAAYpvE,OAAOuvE,SAAS/vE,SAAQ,SAAA5V,GAAK,OAAAA,EAAEuF,OAAOyE,EAAT,IAClC7J,IACT,EASA,YAAA6+I,cAAA,SAAcx5D,EAA0B/3B,QAAA,IAAAA,IAAAA,EAAA,IACtCttD,KAAK0I,MAAM4kD,GAAKg3D,aAAaj/B,EAAY/3B,EAC3C,EASA,YAAAwxF,QAAA,SAAQt8I,EAAc4S,GACZ,IAAA8tE,EAAOljF,KAAI,GACX,EAA6FoV,EAAO,MAApGjQ,OAAK,IAAG,GAAC,EAAC,EAAE,EAAiFiQ,EAAO,KAAxFktB,OAAI,IAAG,GAAC,EAAC,EAAE4yE,EAAsE9/F,EAAO,YAAhEzO,EAAyDyO,EAAO,OAAxD2pI,EAAiD3pI,EAAO,WAA5C,EAAqCA,EAAO,SAA5C4pI,OAAQ,IAAG,KAAE,EAAE,EAAsB5pI,EAAO,aAA7B6pI,OAAY,IAAG,KAAE,EAC1Fjf,EAAWhgI,KAAKsoH,QAAQ9lH,GACxB08I,EAAal/I,KAAKsoH,QAAQ3hH,GAC1Bw4I,EAAiBn/I,KAAKsoH,QAAQy2B,GAC9BK,EAAeF,IAA0Blf,GAAsBhgI,KAAKsoH,QAAQ,YAC5E+2B,EAAaD,EAAaj6I,MAC1Bm6I,EAAYH,EAAiBA,EAAe78G,KAAO88G,EAAa98G,KAGhEi9G,EAAiB,SAAC/4I,EAAY+f,EAAai5H,GAC/C,OAAAh5I,EAAImP,QAAO,SAACvR,EAAK+O,GACf,IAAM3S,EAAK+lB,EAAOpT,GACZssI,EAAWD,EAASn/I,UAAU8S,GAOpC,OANI3S,GAAMi/I,IACRr7I,EAAI+O,GAAQ,W,IAAU,sDACpBssI,EAAS1zI,KAAK/L,MAAK,aAAIU,GACvBF,EAAGuL,KAAK/L,MAAK,aAAIU,EACnB,GAEK0D,CACT,GAAG,CAAC,EAVJ,EAaF,GAAqB,iBAAVe,EAAoB,CAC7B,IAAM,EAAgB,CAAE2B,SAAU3B,EAAM2B,iBACjC3B,EAAM2B,SACbsO,EAAQjQ,MAAQk6I,EAAW14I,OAAO,SAE3BxB,GACAo6I,EAAeP,EAAU75I,EAAOk6I,IAErC,CACEnqC,aAAa8qB,GAAakf,GAAehqC,EAAuCA,GAAe,WAAO,QAAC,EAAhDmqC,EAAWnqC,cAItElsF,OAAOwpF,eAAep9F,EAAQjQ,MAAO9E,UAAW,WAAY,CAC1DsD,IAAK,WAAM,OAAC,UACN,IAAAuJ,QAAOmyI,EAAWh/I,UAAW,aAAe,CAAC,IAC7C,IAAA6M,QAAO,EAAe,aAAe,CAAC,EAFjC,G,CAOK,iBAATo1B,IACTltB,EAAQktB,KAAOg9G,EAAU34I,OAAO,SAC3B27B,GACAi9G,EAAeN,EAAc38G,EAAMg9G,MAItCtf,GACFA,EAAS76H,MAAQiQ,EAAQjQ,MACzB66H,EAAS19F,KAAOltB,EAAQktB,OAGxBltB,EAAQ9K,GAAK9H,EACbxC,KAAKokI,eAAe1yH,QAAQ0D,IAG9B,IAAMzC,EAAQ,yBAAkBqtH,EAAW,SAAW,OAGtD,OAFA98C,SAAAA,EAAIp/E,QAAQ6O,EAAOqtH,GAAY5qH,GAExBpV,IACT,EAUA,YAAAsoH,QAAA,SAAQ9lH,GAGN,IAFA,IAAI2hI,EAAKnkI,KAAKokI,eAELH,EAAK,EAAGA,EAAKE,EAAGxjI,OAAQsjI,IAAM,CAErC,GADWE,EAAGF,GAAI35H,IACN9H,EACV,OAAO2hI,EAAGF,E,CAIhB,EAOA,YAAAyb,WAAA,SAAWp1I,GACT,IAAM65H,EAAKnkI,KAAKokI,eACV5hI,EAAOxC,KAAKsoH,QAAQh+G,GAC1B,GAAK9H,EAAL,CACA,IAAM1B,EAAQqjI,EAAGt/H,QAAQrC,GAEzB,OADA2hI,EAAGv/H,OAAO9D,EAAO,GACV0B,CAHU,CAInB,EAMA,YAAA4wI,SAAA,WACE,OAAOpzI,KAAKokI,cACd,EAEA,YAAAqa,UAAA,SAAUn5D,EAAsBz7E,GAAhC,gBAAgC,IAAAA,IAAAA,EAAA,IAC1By7E,IACFA,EAAU7/E,IAAI,CACZ84F,OAAQ,aAEV,CAAC,qBAAsB,qBAAqB9oF,SAAQ,SAAA9C,GAAS,SAAKuwE,GAAGp/E,QAAQ6O,EAAO2yE,EAAWz7E,EAAlC,IAEjE,EAEA,YAAA60I,aAAA,SAAap5D,EAAsBz7E,GAAnC,WACE,QADiC,IAAAA,IAAAA,EAAA,IAC7By7E,EAAW,CACEtlF,KAAI,GACnBslF,EAAU7/E,IAAI,CACZ84F,OAAQ,GACRt/E,MAAO,KAET,CAAC,uBAAwB,qBAAqBxJ,SAAQ,SAAA9C,GAAS,SAAKuwE,GAAGp/E,QAAQ6O,EAAO2yE,EAAWz7E,EAAlC,G,CAEnE,EAMA,YAAA20I,iBAAA,WACU,IAAAt7D,EAAOljF,KAAI,GACbmF,EAAQ+9E,EAAGv/E,IAAI,oBACf6K,EAAW00E,EAAG10E,SAAS,oBACvByQ,EAAQ,UAGdzQ,GACEA,EAAS7K,IAAI,WAAasb,GAC1BzQ,EAAS/I,IAAI,CACX84F,OAAQ,GACRt/E,MAAO,KAGX9Z,IAAS,IAAAG,SAAQH,EAAMxB,IAAI,YAAcwB,EAAMM,IAAI,SAAUwZ,EAC/D,EAEA,YAAA0gI,kBAAA,WACM,IAAEC,EAAgB5/I,KAAT,QAAEkjF,EAAOljF,KAAL,GAEjB,IAAK4/I,GAAW18D,EAAI,CAClB,IAAM28D,EAAY38D,EAAG08D,QACrB,IAAKC,EAAW,OAChB,IAAM93B,EAAO83B,EAAUprD,WAGvB,GAFAszB,EAAKqc,eAAiBpkI,KAAKokI,eAC3Bwb,EAAU73B,EAAKmJ,aACF,CACX,IAAMxnH,EAAS,CAACs/H,GAAWC,IAAiBx5E,KAAK,KACjDmwF,EAAQn4I,GACNiC,GACA,IAAA49E,WAAS,WAAM,OAAAs4D,aAAO,EAAPA,EAASv6D,WAAW,GAApB,GAAyB,K,CAG5CrlF,KAAK4/I,QAAUA,C,CAGjB,OAAOA,CACT,EAaA,YAAAlrD,QAAA,SAAQnuE,EAAmBgD,EAAoBzoB,GAC7C,IAAM2C,EAAK3C,GAAmB,IAAVA,EAAcA,EAAQ,KACpCoM,EAAS,CACbA,QAAQ,EACR4yI,OAAQ,EACRv5H,OAAM,EACNgD,OAAQ,MAGV,IAAKA,IAAWhD,EAAQ,OAAOrZ,EAG/B,IAAI6yI,EAAWx2H,EAAO4rF,OAAS5rF,EAAS,KAExC,IAAKw2H,EAAU,CACb,IAAMn5G,EAAU5mC,KAAK2/I,oBACrBI,GAAWn5G,aAAO,EAAPA,EAASosD,OAAOzpE,GAAQ,KAAM,I,CAM3C,GAFArc,EAAOqc,OAASw2H,GAEXA,EAAU,OAAO7yI,EAGtB,IAAI00C,EAAYm+F,EAASp8I,IAAI,aAE7B,IAAI,IAAAtB,YAAWu/C,GACbA,IAAcA,EAAUm+F,EAAUx5H,EAAQ9iB,OACrC,CACL,IAAM2Q,EAAKmS,EAAOo/D,QAClB/jC,GAAY,IAAA1gD,SAAQ0gD,GAAaA,EAAU6N,KAAK,KAAO7N,EACvDA,GAAY,IAAA1wC,UAAS0wC,GAAaxtC,aAAE,EAAFA,EAAI1G,QAAQk0C,GAAaA,C,CAG7D,IAAKA,EAAW,OAAO,SAAK10C,GAAM,CAAE4yI,OAAQ,IAG5C,IAAItrB,EAAYjuG,EAAO5iB,IAAI,aAE3B,IAAI,IAAAtB,YAAWmyH,GACbA,IAAcA,EAAUurB,EAAUx5H,EAAQ9iB,QAE1C,IAAkB,IAAd+wH,GAAuBjuG,EAAOyrH,aAAa,SAAW+N,EAASp8I,IAAI,YACrE6wH,GAAY,MACP,CACCpgH,EAAK2rI,EAASp6D,QACpB6uC,GAAY,IAAAtzH,SAAQszH,GAAaA,EAAU/kE,KAAK,KAAO+kE,EACvDA,GAAY,IAAAtjH,UAASsjH,GAAapgH,aAAE,EAAFA,EAAI1G,QAAQ8mH,GAAaA,C,CAK/D,IAAMwrB,EAAiB,CAACz5H,GAAQxhB,OAAOwhB,EAAO2qF,WAAWrsG,QAAQk7I,IAAa,EAE9E,OAAyC,SAAK7yI,IAAzCsnH,GAAawrB,EAAkC,CAAEF,OAAQ,GAE5C,CAAE5yI,QAAQ,GAC9B,EAEA,YAAAm2H,QAAA,WACE,OAAOrjI,KAAKukI,cACd,EAEA,YAAA0b,QAAA,SAAQ31I,GACN,OAAOtK,KAAKukI,eAAej6H,IAAO,IACpC,EAEA,YAAA+E,QAAA,W,MACQjO,EAAMpB,KAAKqjI,UACjBr6G,OAAO/nB,KAAKG,GAAKqU,SAAQ,SAAAnL,GAAM,OAAAlJ,EAAIkJ,IAAOlJ,EAAIkJ,GAAIlF,QAAnB,IACb,QAAlB,EAAApF,KAAK4+I,qBAAa,SAAEx5I,SACpB,CAACpF,KAAKkjF,GAAIljF,KAAKukI,eAAgBvkI,KAAK4+I,eAAenpI,SAAQ,SAAA5V,GAAK,MAAK,CAAC,CAAN,GAClE,EACF,EA9jBA,CAA8C0sH,G,YC3H9C,SALkC,CAChCroC,YAAa,OACbwH,MAAO,I,2fCNHw0D,GAAWp8H,OAAOq8H,UAiCxB,eAME,mBACE,cAAO,K,OACP,IAAA79D,SAAQ,EAAM,aACd,EAAK89D,QAAU,GACf,EAAK70I,IAAM,G,CACb,CAmNF,OA9N0C,QAkBxC,YAAA80I,eAAA,SAAel7I,EAAkB0E,GAAjC,gBAAiC,IAAAA,IAAAA,EAAA,IAC/B,IAAImhB,EAAO,GACLk4D,EAAKljF,KAAKkjF,GACV+hD,EAAc/hD,GAAMA,EAAG0D,YAAY47B,iBACnC7lG,EAAQxX,EAAM68H,gBACdvrG,EAAUtxB,EAAMsxB,QAYtB,OAXAz2B,KAAKuL,IAAI5G,KAAK,WAAIQ,EAAMmlH,UAGxB7zF,EAAQhhB,SAAQ,SAACtQ,GAAe,SAAKi7I,QAAQz7I,KAAKQ,EAAM6gI,cAAxB,KAE3Bf,GAAetoH,IAClBqO,EAAO,WAAI7lB,EAAMmlH,QAAO,YAAI3tG,EAAK,MAGhBxX,EAAMkgF,aACd5vE,SAAQ,SAACtQ,GAAqB,OAAC6lB,GAAQ,EAAKq1H,eAAel7I,EAAO0E,EAApC,IAClCmhB,CACT,EAEA,YAAAm9G,MAAA,SAAMhjI,EAAkB0E,GAAxB,gBAAwB,IAAAA,IAAAA,EAAA,IACd,IAAAgtE,EAAShtE,EAAI,KACfq5E,EAAKr5E,EAAKq5E,GACVigD,EAAOt5H,EAAKs5H,OAAQjgD,aAAE,EAAFA,EAAIglC,KAC9BloH,KAAKkjF,GAAKA,EACVljF,KAAKogJ,QAAU,GACfpgJ,KAAKuL,IAAM,GACXvL,KAAKmF,MAAQA,EACb,IAAMm7I,EAAsB,GACxBt1H,EAAO7lB,EAAQnF,KAAKqgJ,eAAel7I,EAAO0E,GAAQ,GAChD64G,GAAc,IAAA94B,aAAY//E,EAAK64G,cAAgBx/B,EAAKA,EAAG0D,YAAY87B,YAAc74G,EAAK64G,YAE5F,GAAIygB,EAAM,CACR,IAAIz3C,EAA8B7hF,EAAK6hF,OAASy3C,EAAKx3C,SAC/C,EAAmB,CAAC,EACpB,EAAkB,GAEpB9hF,EAAK02I,aAAep7I,IAAS,IAAAq5F,YAC/B9S,EAAQ1rF,KAAKwgJ,aAAar7I,EAAOumF,IAGnCA,EAAMj2E,SAAQ,SAAAm2E,GACZ,IAAMojC,EAASpjC,EAAKqjC,YAEpB,GAAID,EAAJ,CACE,IAAMyxB,EAAS,EAAQzxB,GACnByxB,EACFA,EAAO97I,KAAKinF,GAEZ,EAAQojC,GAAU,CAACpjC,E,KALvB,CAUA,IAAMxnF,EAAM,EAAKs8I,cAAc90D,EAAM,EAAM/hF,GAEvCgtE,EACFypE,EAAS37I,KAAKP,GAEd4mB,GAAQ5mB,C,CAEZ,IAEApE,KAAK2gJ,gBAAgB,GAASlrI,SAAQ,SAAAgxE,GACpC,IAAIm6D,EAAW,GACT5xB,EAASvoC,EAAKplF,IACLolF,EAAK/+E,MAEb+N,SAAQ,SAAAm2E,GACb,IAAMi1D,EAAU,EAAKH,cAAc90D,EAAM,EAAM/hF,GAE3C+hF,EAAKjoF,IAAI,gBACXqnB,GAAQ,UAAGgkG,EAAM,YAAI6xB,EAAO,KAE5BD,GAAYC,EAGdhqE,GAAQypE,EAAS37I,KAAKk8I,EACxB,IAEID,IACF51H,GAAQ,UAAGgkG,EAAM,YAAI4xB,EAAQ,KAEjC,IAGA19D,GAAMw/B,GAAeh3B,EAAMtmF,QAAUsmF,EAAMtmF,OAAO,E,CAGpD,OAAOyxE,EAAOypE,EAASrqI,QAAO,SAAA2P,GAAK,OAAAA,CAAA,IAAKoF,CAC1C,EAOA,YAAA01H,cAAA,SAAc90D,EAAek1D,EAAiBj3I,GAA9C,I,EAAA,YAA8C,IAAAA,IAAAA,EAAA,IAC5C,IAKIygB,EALApd,EAA2B,GACvB/H,EAAUnF,KAAI,MAChB+gJ,EAAmBn1D,EAAKw2C,kBAAkB,CAAE4e,QAAS,IACrDC,EAAer1D,EAAKjoF,IAAI,gBACxBu9I,EAAet1D,EAAKjoF,IAAI,gBAW9B,GAPqB,QAArB,EAAAioF,EAAKjoF,IAAI,oBAAY,SAAE8R,SAAQ,SAAA/B,GAC7B,IAAM/J,EAAO+J,EAASsyH,eAClB,EAAKoa,QAAQv7I,QAAQ8E,IAAS,GAAK,EAAK4B,IAAI1G,QAAQ8E,IAAS,GAAKE,EAAKo6G,oBACzE35F,EAAQ,EAEZ,IAEKy2H,GAAoBz2H,GAAU22H,GAAgBC,IAAiB/7I,EAAO,CACzE,IAAMs0E,EAAQmS,EAAK8iC,eAAe,CAAE5xG,KAAM,IAC1C28D,IAAU5vE,EAAKgtE,KAAQ3pE,EAAS0+E,EAAS1+E,GAAUusE,E,MAEnDqnE,EAAKn8I,KAAKinF,GAGZ,OAAO1+E,CACT,EAQA,YAAAszI,aAAA,SAAal7D,EAAsBoG,GAAnC,WACQt3E,EAAKkxE,EAAUK,QACjBz4E,EAAoB,GAsBxB,OApBAw+E,EAAMj2E,SAAQ,SAAAm2E,GACZ,IAEIA,EACGw2C,oBACAn4H,MAAM,KACNsH,MAAK,SAAAmC,GAAY,OAAAU,aAAE,EAAFA,EAAI1G,QAAQ,EAAKyzI,gBAAgBztI,GAAjC,KAEpBxG,EAAOvI,KAAKinF,EAEF,CAAZ,MAAOymB,GAAK,CAChB,IAEA/sB,EAAUD,aAAa5vE,SAAQ,SAAC6vE,GAC9Bp4E,EAASA,EAAOnI,OAAO,EAAKy7I,aAAal7D,EAAWoG,GACtD,IAGAx+E,EAASA,EAAO+I,QAAO,SAAC21E,EAAM/rF,GAAM,OAAAqN,EAAOrI,QAAQ+mF,KAAU/rF,CAAzB,GAGtC,EAOA,YAAAuhJ,eAAA,SAAeC,GACb,IAAM1gJ,EAAS,sBAAsB4Z,KAAK8mI,GAC1C,OAAK1gJ,EAEE4nF,WAAW5nF,EAAO,IAFLu/I,EAGtB,EAOA,YAAAS,gBAAA,SAAgB78C,GAAhB,gBAAgB,IAAAA,IAAAA,EAAA,IACd,IAAMw9C,EAAgD,GAEtD,OADA,IAAA/7I,MAAKu+F,GAAO,SAACp8F,EAAOrG,GAAQ,OAAAigJ,EAAS38I,KAAK,CAAEtD,IAAG,EAAEqG,MAAK,GAA1B,IACrB45I,EAASvwI,MAAK,SAACnR,EAAG4lB,GACvB,IAAMoqG,EAAa,CAAChwH,EAAEyB,IAAKmkB,EAAEnkB,KAAK+U,OAAM,SAAAmrI,GAAU,OAAiC,IAAjCA,EAAO18I,QAAQ,YAAf,IAC5C6qB,EAAOkgG,EAAahwH,EAAEyB,IAAMmkB,EAAEnkB,IAC9BsuB,EAAQigG,EAAapqG,EAAEnkB,IAAMzB,EAAEyB,IACrC,OAAO,EAAK+/I,eAAe1xH,GAAQ,EAAK0xH,eAAezxH,EACzD,GACF,EAEA,YAAAggG,UAAA,SAAU/vH,EAAY4lB,GACpB,IAAMg8H,EAAS,SAAC51D,GAAkB,OAAAA,EAAKjoF,IAAI,cAAgB,EAAzB,EAC5BisH,EAAa,CAAC4xB,EAAO5hJ,GAAI4hJ,EAAOh8H,IAAIpP,OAAM,SAAAkiI,GAAK,OAA4B,IAA5BA,EAAEzzI,QAAQ,YAAV,IAC/C6qB,EAAoB8xH,EAAb5xB,EAAoBhwH,EAAY4lB,GACvCmK,EAAqB6xH,EAAb5xB,EAAoBpqG,EAAY5lB,GAC9C,OAAOI,KAAKohJ,eAAe1xH,GAAQ1vB,KAAKohJ,eAAezxH,EACzD,EAQA,YAAAwxH,gBAAA,SAAgBztI,GACd,OAAOA,EACJzJ,MAAM,KACNnF,KAAI,SAAA2hF,GAAQ,OAAAA,EAAKx8E,MAAM,KAAK,EAAhB,IACZwlD,KAAK,IACV,EACF,EA9NA,CAA0C,M,w9BC8BlCgyF,KAAQ,IAAAjjD,UAAWz+F,OAAS,CAAC,GAAC,IAkBtC,eAsBE,WAAY+oB,EAA0BwkC,QAAA,IAAAA,IAAAA,EAAA,IAAtC,MACE,YAAMxkC,IAAM,K,OACZ,EAAK7Q,OAAS6Q,GAAS,CAAC,EACxB,EAAKwkC,IAAMA,EACX,EAAK41B,GAAK51B,EAAI41B,GACd,EAAKw+D,gBAAgB,KAAM,KAAM,CAAC,GAClC,EAAKj6I,GAAG,SAAU,EAAKkkH,Y,CACzB,CAmPF,OAhRqC,QAKnC,YAAA7kH,SAAA,WACE,MAAO,CACLyhH,UAAW,GACX04B,aAAc,GACdtkI,MAAO,CAAC,EACR2yG,UAAW,GACXrwG,MAAO,GACPmqH,UAAU,EACVuY,WAAY,GACZT,cAAc,EACdzyB,WAAW,EACX5rF,MAAO,GACP+8G,SAAS,EACTj3B,OAAO,EAEX,EAWA,YAAAgD,WAAA,SAAWn6G,EAAY3H,GACb,IAAAq5E,EAAOljF,KAAI,GACbmN,EAAUnN,KAAK4F,oBACrBuH,KAAY,IAAA6nG,YAAW7nG,KAAY+1E,SAAAA,EAAI2lC,UAAUh/G,GACnD,EAEA,YAAAtG,MAAA,WACE,IAAMsG,EAAO,MAAK7J,KAAKstD,KACjB9lD,EAAO,MAAKxH,KAAKgH,YAGvB,OAFAQ,EAAK+gH,UAAYvoH,KAAK2D,IAAI,aAAcmB,KAAI,SAAAsD,GAAK,OAAAA,EAAE7E,OAAF,IAE1C,IAAIvD,KAAK2P,YAAYnI,EAAMqC,EACpC,EAEA,YAAA63I,gBAAA,SAAgBlwI,EAAQutE,EAAQl1E,GACtB,IAAAq5E,EAAOljF,KAAI,GACbqzF,EAAKnQ,aAAE,EAAFA,EAAIv/E,IAAI,mBACbgrI,EAAW,CAAC3uI,KAAM,mBAAoBA,KAAK0hJ,iBAC7CvmF,EAAOn7D,KAAKkiI,eAShB,GARAliI,KAAKsL,cAAa,MAAlBtL,KAAsB2uI,GAElBxzE,EAAK33D,SACP23D,EAAO,MAAIA,EAAK33D,QAAM,IAGxB23D,GAAO,IAAAjqD,UAASiqD,GAAQ,CAACA,GAAQA,EAE7B/6D,MAAMc,QAAQi6D,GAAO,CACvB,IAAM/2D,EAAM+2D,EAAKllD,QAAO,SAAApW,GAAK,OAAAA,CAAA,IAAGiF,KAAI,SAAAjF,GAAK,OAACwzF,EAAKA,EAAG/uF,IAAIzE,GAAKA,CAAlB,IACzCs7D,EAAO,IAAI,GAAU/2D,E,CAGvBpE,KAAKyF,IAAI,YAAa01D,EAAMtxD,GAE5B7J,KAAKwK,SAAQ,MAAbxK,KAAiB2uI,EACnB,EAYA,YAAA1f,UAAA,WACE,IAAMzsH,EAAOxC,KAAK2D,IAAI,cAChBM,EAAYjE,KAAK2D,IAAI,aAErBi+I,EAAUp/I,EAAO,WAAIA,GAASyB,EAAY,SAAW,GAE3D,OAAO29I,GAAW39I,GAAa29I,EAAU,WAAI39I,GAAc,GAC7D,EAYA,YAAAm+H,kBAAA,SAAkBv4H,QAAA,IAAAA,IAAAA,EAAA,IAChB,IAAMqD,EAAS,GACT+R,EAAQjf,KAAK2D,IAAI,SACjBk+I,EAAc7hJ,KAAK2D,IAAI,gBACvBm+I,EAAU,CACdt0I,OAAQ,SAACoc,GAAgB,OAAC63H,IAAOA,GAAIj0I,OAASi0I,GAAIj0I,OAAOoc,GAAOA,CAAvC,GAGrB2+F,EAAYvoH,KAAK2D,IAAI,aAAa0+H,cAAc,EAAGyf,GACnDC,EAAW9iI,IAAUpV,EAAKm4I,UAAY,WAAI/iI,GAAU,GAG1D,OAFAspG,GAAar7G,EAAOvI,KAAK,UAAG4jH,GAAS,OAAGw5B,IACxCF,IAAgBh4I,EAAKm3I,SAAW9zI,EAAOvI,KAAKk9I,GACrC30I,EAAOuiD,KAAK,KACrB,EAaA,YAAAi/D,eAAA,SAAe7kH,QAAA,IAAAA,IAAAA,EAAA,IACb,IAAIqD,EAAS,GACLuhH,EAAczuH,KAAKgH,WAAU,UAC/BuhH,EAAYvoH,KAAKoiI,kBAAkBv4H,GACnC8S,EAAQ3c,KAAKgiI,cAAc,IAAEvT,UAAS,GAAK5kH,IAC3Cq3I,EAAelhJ,KAAK2D,IAAI,gBAM9B,OAJK4kH,GAAa24B,KAAkBvkI,GAAS9S,EAAKo4I,cAChD/0I,EAASg0I,EAAevkI,EAAQ,UAAG4rG,EAAS,YAAI5rG,EAAK,MAGhDzP,CACT,EASA,YAAAg1I,UAAA,WACU,IAAAh/D,EAAOljF,KAAI,GACb,EAA4BA,KAAKgH,WAA/B26I,EAAU,aAAEryB,EAAS,YACvB7C,GAAUvpC,aAAE,EAAFA,EAAIv/E,IAAI,iBAAiBsqH,eAAgB,GACnDk0B,EAAgB11B,EAAQx2G,QAAO,SAACsoB,GAAW,MAAsB,KAAtBA,EAAEsuF,eAAF,IAA0B,GAC3E,MAAmB,UAAf80B,GAA2BryB,EAGxB7C,EAAQx2G,QAAO,SAACsoB,GAAW,OAAAA,EAAEsuF,oBDtOhClsH,EAAS,sBAAsB4Z,KCsOoC+0G,IDrOnD3uH,EAAO,GAAZ,IAFW,IACtBA,CCsO8B,IAAiD,IAAM,KAFhFwhJ,GAAiB,IAG5B,EASA,YAAAC,SAAA,WACU,IAAAl/D,EAAOljF,KAAI,GACbqiJ,EAAariJ,KAAK2D,IAAI,SAE5B,QADeu/E,aAAE,EAAFA,EAAIv/E,IAAI,mBAAmB2+I,cAAe,IAC3CrsI,QAAO,SAAC7N,GAAW,OAAAA,EAAEskF,YAAc21D,CAAhB,IAA4B,IAAM,IACrE,EASA,YAAAh+B,aAAA,W,MACQxyE,EAAM7xC,KAAKkiI,eACXqgB,EAAqB,GAAd1wG,EAAIlxC,QAAekxC,EAAIpuC,GAAG,GACjC++I,EAAQD,GAAQA,EAAKzc,QAAUyc,EAAK5+I,IAAI,QAC9C,OAAQ6+I,IAAgB,QAAP,EAAAxiJ,KAAKkjF,UAAE,eAAEv/E,IAAI,iBAAiBs8I,QAAQuC,KAAW,IACpE,EAaA,YAAAntC,MAAA,SAAMxrG,QAAA,IAAAA,IAAAA,EAAA,IACJ,IAAIqD,EAAS,GACP8hH,EAAShvH,KAAKivH,YACdx1C,EAAQz5E,KAAK0uH,eAAe7kH,GASlC,OARI4vE,GAAS5vE,EAAKo4I,cAChB/0I,EAASusE,GAGPu1C,GAAU9hH,IACZA,EAAS,UAAG8hH,EAAM,YAAI9hH,EAAM,MAGvBA,CACT,EAEA,YAAAI,OAAA,W,UAAO,kDACL,IAAMtM,EAAM,4BAA6BhB,KAAMU,GAE/C,GAAW,QAAP,EAAAV,KAAKkjF,UAAE,eAAE0D,YAAY67B,cAAe,CACtC,IAAM37G,EAAW9G,KAAK8G,YAEtB,IAAA2O,SAAQ3O,GAAU,SAACY,EAAOrG,GACpBL,EAAIK,KAASqG,UACR1G,EAAIK,EAEf,WAGOL,EAAI2b,MAAM+rE,KAEb,IAAApjF,SAAQtE,EAAIunH,mBAAmBvnH,EAAIunH,WACnC,IAAAjjH,SAAQtE,EAAI2b,eAAe3b,EAAI2b,K,CAGrC,OAAO3b,CACT,EAWA,YAAAu8D,QAAA,SAAQgrD,EAAgBtpG,EAAgBknB,EAAgBs8G,G,WAAA,IAAAA,IAAAA,EAAA,IACtD,IAAM3sH,EAAK7W,GAAS,GACdyjI,EAAKv8G,GAAS,GACdw8G,EAASF,EAAUxB,cAAgB,GACrCjyB,EAASyzB,EAAUd,YAAc,GAIjCe,IAAO1zB,IAAQA,EAAS,SAE5B,IAAMviH,IALO,IAAAvL,SAAQqnH,IAAeA,EAAU/kH,OAAuB+kH,EAAU/kH,QAAU+kH,EAAlC,CAACA,IAK/BzjH,KAAI,SAACK,GAAe,OAAAA,EAAM6gI,aAAN,IACvCt5H,EAAoC,QAArB,EAAA1M,KAAK2D,IAAI,oBAAY,eAAEmB,KAAI,SAAAK,GAAS,OAAAA,EAAM6gI,aAAN,IAGnD4c,EAAMn2I,EAAGnM,QAAQyQ,OACjB8xI,EAAMn2I,EAAGpM,QAAQyQ,OACvB,QAAItE,EAAG9L,SAAW+L,EAAG/L,SAAWiiJ,EAAIxsI,OAAM,SAACq1C,EAAG5rD,GAAM,OAAA4rD,IAAMo3F,EAAIhjJ,EAAV,OAMlDG,KAAK2D,IAAI,WAAamyB,GACtB91B,KAAK2D,IAAI,eAAiB++I,GAC1B1iJ,KAAK2D,IAAI,kBAAoBg/I,GAC7B3iJ,KAAK2D,IAAI,gBAAkBqrH,EAM/B,EACF,EAhRA,CAAqC,I,ugBCtFrC,eAGE,WAAYlmG,EAAYwkC,GAAxB,MACE,YAAMxkC,IAAM,K,OAEZ,EAAKy5D,OAASj1B,aAAG,EAAHA,EAAK41B,GAGnB37D,YAAW,WACT,EAAK9f,GAAG,SAAU,EAAK48F,UACvB,EAAK58F,GAAG,MAAO,EAAKo7H,MACtB,I,CACF,CAyBF,OAtCsC,QAepC,YAAAv1H,OAAA,SAAOzD,GAEL,OADe,2BAAiC7J,KAAM6J,GACxCoM,QAAO,SAAC21E,GAA4B,OAAAA,EAAKjvE,QAAUivE,EAAKg0D,OAApB,GACpD,EAEA,YAAA/c,MAAA,SAAM19H,EAAgB45E,EAAa5oD,GACjChxB,EAAMu8I,gBAAgBv8I,EAAO45E,EAAG5oD,EAClC,EAEA,YAAAkuE,SAAA,SAAS/zF,GACP,IAAM4yE,EAAKljF,KAAKuiF,OAChBW,EAAG53E,cAAcgF,GACjB4yE,EAAG57E,YAAYlC,OAAOkL,EACxB,EAGA,YAAAhM,IAAA,SAAId,EAAa8pD,GAKf,YALe,IAAAA,IAAAA,EAAA,IACO,iBAAX9pD,IACTA,EAASxD,KAAKuiF,OAAO5+E,IAAI,UAAUm/I,SAASt/I,IAE9C8pD,EAAI41B,GAAKljF,KAAKuiF,OACP,yBAA+BviF,KAAM,CAACwD,EAAQ8pD,GACvD,EACF,EAtCA,CAAsC,M,YAwCtCy1F,GAAS1iJ,UAAU8E,MAAQ,G,48BC4B3B,eAaE,WAAY+9E,GAAZ,MACE,YAAMA,EAAI,cAAe,KAAM,CAAC,EAAG,KAAS,KAV9C,EAAA4gD,UAAY,GAEZ,EAAAne,WAAa,SASH,IAAA1tG,EAAW,EAAI,OAEjBsrE,EAAOtrE,EAAOksE,a,OAChBZ,IAAMtrE,EAAOisE,YAAcX,EAAOtrE,EAAOisE,aAG7CjsE,EAAOyzE,MAAQ,EAAKxI,GAAGjrE,OAAO0E,OAAS1E,EAAOyzE,OAAS,GAEvD,EAAKA,MAAQ,IAAI,GAAS,GAAIzzE,G,CAChC,CA6aF,OArcyC,QA8BvC,YAAA4zG,OAAA,WACE7rH,KAAK0rF,MAAMpnF,IAAItE,KAAKiY,OAAOyzE,MAAO,CAAE99E,QAAQ,GAC9C,EAOA,YAAAu3G,SAAA,W,MACQoF,EAAY,QAAP,EAAAvqH,KAAKkjF,UAAE,eAAEv/E,IAAI,eACxB4mH,GAAMA,EAAGjmH,IAAItE,KAAK2rF,SACpB,EAEA,YAAA4Q,MAAA,WACE,OAAOv8F,KAAK0lH,gBACd,EAEA,YAAA2G,KAAA,SAAK3zG,GACH,OAAO1Y,KAAK4lH,gBAAgBltG,EAAM,CAEhCtX,IAAKpB,KAAK0rF,OAEd,EAqBA,YAAApnF,IAAA,SAAIikH,EAAgBtpG,EAAgBknB,EAAgBt8B,EAAWyqF,QAAX,IAAAzqF,IAAAA,EAAA,SAAW,IAAAyqF,IAAAA,EAAA,IAC7D,IAAMlsF,EAAI6W,GAAS,GACb82B,EAAI5P,GAAS,GACbmnB,EAAM,MAAKzjD,GACb+hF,EAAO5rF,KAAK2D,IAAI4kH,EAAWngH,EAAG2tC,EAAGuX,GAKrC,OAAIs+B,GAAQA,EAAK3zE,SAAW2zE,EAAK3zE,OAAOipI,eAGtC5zF,EAAIruC,MAAQ7W,EACZklD,EAAIgiE,UAAYv5E,EAChBuX,EAAIi7D,UAAY,GAEZxyE,IAAMuX,EAAIq0F,aACZr0F,EAAIq0F,WAAa,UAEnB/1D,EAAO,IAAI,GAAQt+B,EAAKttD,KAAKiY,SAExBtU,IAAI,aAAaW,IAAIikH,EAAWj0B,GACrCt0F,KAAK0rF,MAAMpnF,IAAIsnF,EAAM0I,IAZd1I,CAeX,EAqBA,YAAAjoF,IAAA,SACE4kH,EACAtpG,EACAknB,EACAs8G,GAEA,IAAIO,EAAMz6B,EACV,IAAI,IAAAr3G,UAASq3G,GAAY,CACvB,IAAMl1B,EAAKrzF,KAAKkjF,GAAG4gD,UACbmf,EAAY16B,EAAUt+G,MAAM,KAAK,GAAGq+E,OACpCjkE,EAAOrkB,KAAKkjF,GAAGmhD,OAAO3D,UAAUwiB,UAAU,CAAE36B,UAAW06B,IAAoB,GACjFD,EAAM3vD,EAAG1vF,IAAI0gB,EAAKkkG,U,CAEpB,OAAOvoH,KAAK0rF,MAAM93E,MAAK,SAAAg4E,GAAQ,OAAAA,EAAKruB,QAAQylF,EAAK/jI,EAAOknB,EAAOs8G,EAAhC,KAA+C,IAChF,EAEA,YAAA92D,OAAA,WACE,OAAO3rF,KAAK0rF,KACd,EAWA,YAAA+4C,cAAA,SAAc/rH,EAA8B7O,EAAgCif,QAAhC,IAAAjf,IAAAA,EAAA,SAAgC,IAAAif,IAAAA,EAAA,IAClE,IAAAo6D,EAAOljF,KAAI,GACbkN,EAAoB,IAEtB,IAAAgE,UAASwH,KACXA,EAAOwqE,EAAGmhD,OAAOye,SAASpqI,IAK5B,IAFA,IAAM6lB,EAAI7lB,aAAgBtY,MAAQsY,EAAO,CAACA,GAEjC7Y,EAAI,EAAGoC,EAAIs8B,EAAE59B,OAAQd,EAAIoC,EAAGpC,IAAK,CACxC,IAAM+rF,EAAQrtD,EAAE1+B,IAAM,CAAC,EACvB,GAAK+rF,EAAK28B,UAAV,CAEA,IAAMl1B,EAAKnQ,aAAE,EAAFA,EAAI4gD,UACVzwC,GAAI8vD,QAAQl/C,KAAK,8BAKtB,IAJA,IAAMm/C,EAAKx3D,EAAK28B,UACVptD,EAAOioF,aAAchjJ,MAAQgjJ,EAAK,CAACA,GACnCC,EAAU,GAEP53I,EAAI,EAAG63I,EAAKnoF,EAAKx6D,OAAQ8K,EAAI63I,EAAI73I,IAAK,CAE7C,IAAM83I,EAAQlwD,EAAG/uF,IAAI62D,EAAK1vD,IAC1B43I,EAAQ1+I,KAAK4+I,E,CAGf,IAAMC,EAAcxjJ,KAAK2D,IAAI0/I,EAASz3D,EAAK3sE,MAAO2sE,EAAK0jC,UAAW1jC,GAC5DzmF,EAAQnF,KAAKsE,IAAI++I,EAASz3D,EAAK3sE,MAAO2sE,EAAK0jC,UAAW1jC,EAAM/hF,GAC5D4pI,GAAe+P,IAAgB35I,EAAK+gI,iBACpCjuH,EAAQivE,EAAKjvE,OAAS,CAAC,EAI7B,IAFA,IAAAjW,UAASoiB,IAAU3jB,EAAMM,IAAIqjB,EAAOjf,GAEhC4pI,EAAa,CACf,IAAMgQ,EAAc55I,EAAKlD,OAAS,SAAKxB,EAAMxB,IAAI,UAAagZ,GAAUA,EACxExX,EAAMM,IAAI,QAASg+I,EAAa55I,E,CAGlCqD,EAAOvI,KAAKQ,EA1BiB,C,CA6B/B,OAAO+H,CACT,EAWA,YAAAw2I,SAAA,SAASpjH,GACP,OAAOtgC,KAAKykI,cAAcnkG,EAC5B,EA8BA,YAAAqjH,QAAA,SAAQp7B,EAAgB5rG,EAAwC9S,QAAxC,IAAA8S,IAAAA,EAAA,SAAwC,IAAA9S,IAAAA,EAAA,IACtD,IAAA83I,EAA6B93I,EAAI,WAArB+5I,EAAiB/5I,EAAI,aACnCwa,EAAOrkB,KAAKkjF,GAAGmhD,OAAO3D,UAAUwiB,UAAU,CAC9C36B,UAAS,EACT5rG,MAAK,IACJ,GACKsC,EAAwBoF,EAAI,MAArB48H,EAAiB58H,EAAI,aAE9B3Q,EADK1T,KAAKkjF,GAAG4gD,UACCx/H,IAAI+f,EAAKkkG,WACvB38B,EAAO5rF,KAAKsE,IAAIoP,EAAUuL,EAAO2kI,EAAc,CACnD3C,aAAY,EACZjyB,OAAQ2yB,IASV,OANI93I,EAAKg6I,UACPj4D,EAAKhD,SAASjsE,EAAO9S,GAErB+hF,EAAK9L,SAASnjE,EAAO9S,GAGhB+hF,CACT,EAiBA,YAAAk4D,QAAA,SAAQv7B,EAAgB1+G,QAAA,IAAAA,IAAAA,EAAA,IACd,IAAAq5E,EAAOljF,KAAI,GACbqzF,EAAKnQ,EAAG4gD,UACRz/G,EAAO6+D,EAAGmhD,OAAO3D,UAAUwiB,UAAU,CAAE36B,UAAS,IAAI,GAEpD70G,EAAW2/E,EAAG1vF,IAAI0gB,EAAKkkG,WACrBtpG,EAAwBoF,EAAI,MAArB48H,EAAiB58H,EAAI,aAC5Bs9H,EAA6B93I,EAAI,WAArB+5I,EAAiB/5I,EAAI,aACzC,OAAO6J,EACH1T,KAAK2D,IAAI+P,EAAUuL,EAAO2kI,EAAc,CACtC3C,aAAY,EACZU,WAAU,SAEZt8I,CACN,EAcA,YAAAo+H,SAAA,SAAS/vH,GACP,IAAMg4E,EAAQ1rF,KAAK2rF,SACnB,IAAKj4E,EAAU,OAAO,MAAIg4E,EAAMloF,QAAM,GACtC,IAAMugJ,EAAa,CAAEhzI,MAAM,GACrBoqD,GAAO,IAAAjqD,UAASwC,GAAYA,EAASzJ,MAAM,KAAKnF,KAAI,SAAAsD,GAAK,OAAAA,EAAEkgF,MAAF,IAAY50E,EAE3E,OADeg4E,EAAMz1E,QAAO,SAAA2P,GAAK,OAAAu1C,EAAKt2D,QAAQ+gB,EAAEs8G,eAAeG,cAAc,KAAM0hB,KAAgB,CAAlE,GAEnC,EAgBA,YAAAjY,UAAA,SAAUniI,EAAcgT,EAA0B9S,QAA1B,IAAA8S,IAAAA,EAAA,SAA0B,IAAA9S,IAAAA,EAAA,IACxC,MAA4BA,EAAI,QAAhCyqF,OAAO,IAAG,GAAC,EAAC,EAAEg7B,EAAczlH,EAAI,UAClCoV,EAAQpV,EAAKoV,OAAS,GACtB+kI,GAAS,IAAAp6D,aAAY0lC,GAAyBtvH,KAAKkjF,GAAG+gE,kBAApB30B,EAElC57G,EADK1T,KAAKkjF,GAAG4gD,UACCx/H,IAAI,CAAEqF,KAAI,EAAEnH,KAAM,YAAoB8xF,GACpD1I,EAAO5rF,KAAKsE,IAAIoP,EAAUuL,EAAO+kI,EAAO,CAAC,EAAG1vD,GAElD,OADA1I,EAAK9L,SAASnjE,EAAO,SAAK9S,GAASyqF,IAC5B1I,CACT,EAYA,YAAAigD,UAAA,SAAUliI,EAAcE,QAAA,IAAAA,IAAAA,EAAA,IACd,IAAAylH,EAAczlH,EAAI,UACpBoV,EAAQpV,EAAKoV,OAAS,GACtB+kI,GAAS,IAAAp6D,aAAY0lC,GAAyBtvH,KAAKkjF,GAAG+gE,kBAApB30B,EAClC57G,EAAW1T,KAAKkjF,GAAG4gD,UAAUngI,IAAIgG,EAAM,YAC7C,OAAO+J,GAAY1T,KAAK2D,IAAI+P,EAAUuL,EAAO+kI,EAC/C,EAgBA,YAAA5e,aAAA,SAAaz7H,EAAcgT,EAA0B9S,QAA1B,IAAA8S,IAAAA,EAAA,SAA0B,IAAA9S,IAAAA,EAAA,IACnD,IAAMoV,EAAQpV,EAAKoV,OAAS,GACtB+kI,EAAQn6I,EAAKylH,WAAatvH,KAAKkjF,GAAG+gE,kBAElCvwI,EADK1T,KAAKkjF,GAAG4gD,UACCx/H,IAAI,CAAEqF,KAAI,EAAEnH,KAAM,gBAChCopF,EAAO5rF,KAAKsE,IAAIoP,EAAUuL,EAAO+kI,GAEvC,OADAp4D,EAAK9L,SAASnjE,EAAO9S,GACd+hF,CACT,EAYA,YAAAs4D,aAAA,SAAav6I,EAAcE,QAAA,IAAAA,IAAAA,EAAA,IACzB,IAAMoV,EAAQpV,EAAKoV,OAAS,GACtB+kI,EAAQn6I,EAAKylH,WAAatvH,KAAKkjF,GAAG+gE,kBAClCvwI,EAAW1T,KAAKkjF,GAAG4gD,UAAUngI,IAAIgG,EAAM,eAC7C,OAAO+J,GAAY1T,KAAK2D,IAAI+P,EAAUuL,EAAO+kI,EAC/C,EAaA,YAAA5+I,OAAA,SAAOwmF,EAAwB/hF,GAC7B,IAAMgH,GAAW,IAAAK,UAAS06E,GAAQ5rF,KAAKyjI,SAAS73C,GAAQA,EAClD1+E,EAASlN,KAAK2rF,SAASvmF,OAAOyL,EAAUhH,GAC9C,OAAO,IAAA3I,SAAQgM,GAAUA,EAAS,CAACA,EACrC,EAMA,YAAAxE,MAAA,SAAMmB,GAEJ,YAFI,IAAAA,IAAAA,EAAA,IACJ7J,KAAK2rF,SAASzlF,MAAM,GAAI2D,GACjB7J,IACT,EAEA,YAAAmkJ,kBAAA,SAAkBzwH,EAAgB7pB,QAAA,IAAAA,IAAAA,EAAA,IAC1B,IAAAoV,EAA8BpV,EAAI,MAA3BylH,EAAuBzlH,EAAI,UAAJA,EAAI,UAEtCoV,EAAQjf,KAAKkjF,GAAGv/E,IAAI,UAAY,GAChC2rH,EAAYtvH,KAAKkjF,GAAG+gE,mBAEtB,IAAM35I,EAAKopB,EAAI42F,QAMf,OALctqH,KAAK2rF,SAAS11E,QAAO,SAAA2P,GACjC,UAAK,IAAAgkE,aAAY3qE,IAAU2G,EAAEjiB,IAAI,WAAasb,SACzC,IAAA2qE,aAAY0lC,IAAc1pG,EAAEjiB,IAAI,eAAiB2rH,IAC/C1pG,EAAEu8G,uBAAyB,WAAI73H,GACxC,GAEF,EAOA,YAAAuJ,OAAA,W,MAME,OALc,QAAd,EAAA7T,KAAKokJ,iBAAS,SAAEh/I,SAChBpF,KAAKokJ,UAAY,IAAI,GAAa,CAChCn/I,WAAYjF,KAAK0rF,MACjBzzE,OAAQjY,KAAKiY,SAERjY,KAAKokJ,UAAUvwI,SAASO,EACjC,EAEA,YAAA/E,QAAA,W,MACErP,KAAK0rF,MAAMxlF,QACXlG,KAAK0rF,MAAMpgF,gBACG,QAAd,EAAAtL,KAAKokJ,iBAAS,SAAEh/I,QAClB,EACF,EArcA,CAAyCmnH,G,YCzBzC,SAPmC,CACjC36B,SAAU,GACVyyD,OAAQ,GACRC,eAAe,EACfzzD,QAAQ,G,ogBCmCV,yB,8CAyDA,QAzDmC,QACjC,YAAA/pF,SAAA,WACE,MAAO,CACL4lE,MAAO,GACP3tD,QAAS,GACTilI,MAAO,GACPO,SAAU,GACVC,UAAU,EACVtuI,YAAQ7Q,EACR6sI,SAAS,EACT7jD,SAAS,EACT+C,aAAS/rF,EACT2B,WAAY,CAAC,EAEjB,EAMA,YAAAsjH,MAAA,WACE,OAAOtqH,KAAKsK,EACd,EAMA,YAAA27H,SAAA,WACE,OAAOjmI,KAAK2D,IAAI,QAClB,EAMA,YAAA8gJ,SAAA,WACE,OAAOzkJ,KAAK2D,IAAI,QAClB,EAMA,YAAAu2I,WAAA,WACE,OAAOl6I,KAAK2D,IAAI,UAClB,EAMA,YAAA+gJ,iBAAA,WACE,IAAMC,EAAM3kJ,KAAK2D,IAAI,YAErB,OAAO,IAAAtB,YAAWsiJ,aAAG,EAAHA,EAAKhhJ,KAAOghJ,EAAIhhJ,IAAI,UAAWghJ,aAAG,EAAHA,EAAKj4E,OAAQi4E,aAAG,EAAHA,EAAKj4E,MAAQi4E,CAC7E,EACF,EAzDA,CAAmC,M,2fC5EnC,4B,8CAAuD,QAAnB,QAAmB,EAAvD,CAAoC,M,YAEpCzyD,GAAO7xF,UAAU8E,MAAQ,G,ogBCuBzB,yB,8CAWA,QAXsC,QAGpC,YAAA2B,SAAA,WACE,MAAO,CACLwD,GAAI,GACJoiE,MAAO,GACPvvD,MAAM,EACNnW,WAAY,CAAC,EAEjB,EACF,EAXA,CAAsC,M,2fCzBtC,4B,8CAA8D,QAAtB,QAAsB,EAA9D,CAAwC,M,YAExC49I,GAAWvkJ,UAAU8E,MAAQ,G,2fCS7B,eAeE,WAAYgxB,EAAQle,QAAA,IAAAA,IAAAA,EAAA,IAApB,MACE,YAAMke,IAAE,KACAhxB,EAAU,EAAI,M,OACtB,EAAK+9E,GAAKjrE,EAAOirE,GACjB,EAAKjrE,OAASA,EACd,EAAK4sI,QAAU,EAAKA,QAAQ94I,KAAK,GACjC,EAAKw3E,KAAOtrE,EAAOksE,cAAgB,GACnC,EAAK35E,SAASrF,EAAO,iBAAkB,EAAKC,QAC5C,EAAKoF,SAASrF,EAAO,SAAU,EAAK0O,Q,CACtC,CAyHF,OAjJuC,QAKrC,YAAAnK,OAAA,WACE,MAAO,CACLuiF,MAAO,cACPyK,UAAW,YACXy9C,UAAW,kBACX9kD,KAAM,aACNy1D,QAAS,gBAEb,EAaA,YAAAC,YAAA,WACE,OAAO/kJ,KAAKkjF,GAAGgP,MACjB,EAEA,YAAAyE,YAAA,SAAYnqF,GACJ,MAAwBxM,KAAtBiY,EAAM,SAAE9S,EAAK,QAAE+9E,EAAE,KACnBkO,EAAUjsF,EAAMxB,IAAI,YAAcsU,EAAOqsI,cAE/C,GADAphE,EAAGp/E,QAAQ,cAAeqB,EAAOqH,GAC5B4kF,EAAL,CAEO,IAAI,IAAA/uF,YAAW+uF,GACpB,OAAOA,EAAQjsF,EAAO+9E,aAAE,EAAFA,EAAIzwB,YAAa,CAAE9/C,MAAOnG,IAElD,IAII+Z,EAAeknC,EAJbiiC,EAASz3E,EAAO+sI,YAChBjmI,EAAU5Z,EAAMxB,IAAI,WACpBqwD,EAAWkvB,EAAG8F,cAMpB,GALA0G,EAAO+hC,eAAe1yG,GAKlBi1C,EAGF,GAFQ07B,EAAOu1D,YAAYjxF,EAAS2xB,QAAS5mE,GAEnCmmI,MACR3+H,EAASytC,MACJ,CACL,IAAM,EAASA,EAASz1C,SACpB,GACMmxE,EAAOu1D,YAAY,EAAOt/D,QAAS5mE,GACjCmmI,QACR3+H,EAAS,EACTknC,EAAW,EAAO43B,aAAaxgF,QAAQmvD,GAAY,E,CAO3D,IAAKztC,EAAQ,CACX,IAAMqgB,EAAUs8C,EAAGguC,aACXxhC,EAAOu1D,YAAYr+G,EAAQ++C,QAAS5mE,GAClCmmI,QAAO3+H,EAASqgB,E,CAG5B,IAAM15B,EAASqZ,GAAUA,EAAOysE,OAAOj0E,EAAS,CAAEtb,GAAIgqD,IAAY,GAClEvgD,GAAUg2E,EAAGwb,YAAYxxF,EAAQ,CAAE4a,OAAQ,G,CAC7C,EAMA,YAAAutG,UAAA,SAAUnqH,GACF,MAAwBlL,KAAtBiY,EAAM,SAAEirE,EAAE,KAAE/9E,EAAK,QACnBkpF,EAAUlpF,EAAMxB,IAAI,WAE1B,GAAiB,IAAbuH,EAAEyjB,QAAiB1W,EAAO+sI,YAAahlJ,KAAKoU,GAAGwtC,YAAaysC,EAAhE,CACAnL,EAAGkb,gBACH,IAAM1O,EAASz3E,EAAO+sI,YACtBt1D,EAAOy1D,eAAiBhgJ,EACxBuqF,EAAO01D,cAAcplJ,KAAKoU,GAAIlJ,GAC9BwkF,EAAO+hC,eAAezxH,KAAKmF,MAAMxB,IAAI,YACrC+rF,EAAO6P,UAAUv/F,KAAKoU,KACtB,IAAA3M,IAAGiN,SAAU,UAAW1U,KAAK6kJ,QAPkD,CAQjF,EAEA,YAAAvQ,gBAAA,SAAgB9nI,GACdxM,KAAK+kJ,cAAcM,YAAYrlJ,KAAKmF,MAAOqH,EAC7C,EAEA,YAAA84I,WAAA,SAAW94I,GACTxM,KAAK+kJ,cAAcQ,OAAO/4I,EAC5B,EAEA,YAAA+kH,cAAA,WACEvxH,KAAK+kJ,cAAcS,WACrB,EAMA,YAAAX,QAAA,YACE,IAAA15I,KAAIuJ,SAAU,UAAW1U,KAAK6kJ,SAC9B,IAAMn1D,EAAS1vF,KAAKiY,OAAO+sI,YAM3Bt1D,EAAOhxB,MAAQ,EACfgxB,EAAOa,SACT,EAEA,YAAA18E,OAAA,W,MACQ,EAA+B7T,KAA7BkjF,EAAE,KAAE9uE,EAAE,KAAET,EAAG,MAAE4vE,EAAI,OAAEp+E,EAAK,QAC1BkpF,EAAUlpF,EAAMxB,IAAI,WACpB6D,EAAOrC,EAAMxB,IAAI,eAAiB,CAAC,EACnCugB,EAAM1c,EAAK2lF,OAAS,GACpBv4E,EAAY,UAAG2uE,EAAI,SACnB7W,EAASwW,GAAMA,EAAG5vB,EAAE,8BAAuBnuD,EAAMmF,MAAUnF,EAAMxB,IAAI,SAErEkQ,EAAS1O,EAAMxB,IAAI,UACnBqgJ,EAAQ7+I,EAAMxB,IAAI,SAClB8hJ,EAASp3D,EAAU,UAAGz5E,EAAS,aAAc,UAAG2uE,EAAI,gBAC1D5vE,EAAInM,KAAKA,GACT4M,EAAGQ,UAAY,UAAGsP,EAAG,YAAItP,EAAS,YAAI2uE,EAAI,kBAAUkiE,GAASn9D,OAC7Dl0E,EAAG4yE,UAAY,kBACXg9D,EAAQ,uBAAepvI,EAAS,qBAAYovI,EAAK,UAAW,GAAE,gCAClDpvI,EAAS,oBAAW83D,EAAK,gBAEzCt4D,EAAG6J,MAAQzW,EAAKyW,QAAuB,QAAd,EAAA7J,EAAGi3D,mBAAW,eAAEid,QACzCl0E,EAAG2Q,aAAa,YAAa,cAAG,IAAAovF,QAAOjxB,IAAQmL,KAE/C,IAAMnhF,EAAS2G,GAAUA,EAAO,CAAEO,GAAE,EAAEjP,MAAK,EAAEyP,UAAS,EAAEohF,OAAQzS,IAEhE,OADIr2E,IAAQkH,EAAG4yE,UAAY95E,GACpBlN,IACT,EACF,EAjJA,CAAuC,M,gpBCJvC,eAgCE,WAAYm2B,EAAQle,GAApB,MACE,YAAMke,IAAE,KACR,EAAKle,OAASA,EACd,IAAMgsE,EAAMhsE,EAAOksE,cAAgB,G,OACnC,EAAKjB,GAAKjrE,EAAOirE,GACjB,EAAKe,IAAMA,EACX,EAAKyhE,OAAS,oBACd,EAAKC,OAAS,mBACd,EAAKC,UAAY,UAAG3hE,EAAG,cACvB,EAAK4hE,YAAc,UAAG5hE,EAAG,QACzB,EAAKrvE,UAAY,UAAGqvE,EAAG,kBACvB,EAAKz5E,SAAS,EAAKrF,MAAO,cAAe,EAAK2gJ,kBAC9C,EAAK3gJ,MAAMm9B,KAAO,E,CACpB,CAsDF,OAnG0C,QAWxC,YAAA54B,OAAA,WACE,MAAO,CACL,qBAAsB,SAE1B,EAEA,YAAAizG,SAAA,SAAS,G,IAAE14B,EAAG,MAAEvX,EAAK,QACnB,OAAOwJ,EAAI,uMACQ,2CACA,8BACR,sCAEQ,6BAJH+N,EACAA,EACVvX,EAEUuX,EAElB,EAGA,YAAAj9E,WAAA,WACE,OAAOhH,KAAKmF,MAAMxB,IAAI,eAAiB,CAAC,CAC1C,EAiBA,YAAAmiJ,iBAAA,WACM9lJ,KAAKmF,MAAMxB,IAAI,QAAS3D,KAAKmd,OAC5Bnd,KAAKod,OACZ,EAEA,YAAAD,KAAA,WACEnd,KAAK2T,IAAI2R,SAAStlB,KAAK6lJ,aACvB7lJ,KAAK+lJ,YAAanxI,UAAY,UAAG5U,KAAK4lJ,UAAS,YAAI5lJ,KAAK2lJ,QACxD3lJ,KAAKgmJ,cAAerpI,MAAMC,QAAU,EACtC,EAEA,YAAAQ,MAAA,WACEpd,KAAK2T,IAAI04E,YAAYrsF,KAAK6lJ,aAC1B7lJ,KAAK+lJ,YAAanxI,UAAY,UAAG5U,KAAK4lJ,UAAS,YAAI5lJ,KAAK0lJ,QACxD1lJ,KAAKgmJ,cAAerpI,MAAMC,QAAU,MACtC,EAEA,YAAA0lD,OAAA,WACE,IAAIn9D,EAAQnF,KAAKmF,MACjBA,EAAMM,IAAI,QAASN,EAAMxB,IAAI,QAC/B,EAEA,YAAAoiJ,UAAA,WAKE,OAJK/lJ,KAAKimJ,SACRjmJ,KAAKimJ,OAASjmJ,KAAKoU,GAAG8rB,cAAc,WAAIlgC,KAAK4lJ,aAGxC5lJ,KAAKimJ,MACd,EAEA,YAAAD,YAAA,WAKE,OAJKhmJ,KAAKkmJ,WACRlmJ,KAAKkmJ,SAAWlmJ,KAAKoU,GAAG8rB,cAAc,WAAIlgC,KAAKikF,IAAG,cAG7CjkF,KAAKkmJ,QACd,EAEA,YAAAlzD,OAAA,SAAO5+E,GACLpU,KAAKgmJ,cAAcvhI,YAAYrQ,EACjC,EAEA,YAAAP,OAAA,WACQ,MAA8B7T,KAA5BkjF,EAAE,KAAE9uE,EAAE,KAAET,EAAG,MAAExO,EAAK,QAAE8+E,EAAG,MACzBvX,EAAQwW,EAAG5vB,EAAE,kCAA2BnuD,EAAMmF,MAASnF,EAAMxB,IAAI,SAMvE,OALAyQ,EAAG4yE,UAAYhnF,KAAK28G,SAAS,CAAE14B,IAAG,EAAEvX,MAAK,IACzC/4D,EAAI2R,SAAStlB,KAAK4U,WAClBjB,EAAI2sB,IAAI,CAAEjW,MAAOllB,EAAMxB,IAAI,WAC3B3D,KAAK8lJ,mBAEE9lJ,IACT,EACF,EAnGA,CAA0C,M,wvBCO1C,eAcE,WAAY6J,EAAWoO,GAAvB,MACE,YAAMpO,IAAK,MACX,IAAAy4E,SAAQ,EAAM,YAAa,SAAU,SAAU,UAC/C,EAAKrqE,OAASA,GAAU,CAAC,EACzB,EAAKkuI,WAAat8I,EAAKs8I,YAAc,GACrC,EAAKC,mBAAqB,CAAC,EAC3B,IAAM7iE,EAAO,EAAKtrE,OAAOksE,cAAgB,GACzC,EAAKZ,KAAOA,EACZ,EAAK8iE,WAAa,UAAG9iE,EAAI,iBACzB,EAAK+iE,eAAiB,UAAG/iE,EAAI,YAC7B,EAAKgjE,UAAY,UAAGhjE,EAAI,oBACxB,IAAMyH,EAAO,EAAK/lF,W,OAClB,EAAKuF,SAASwgF,EAAM,MAAO,EAAK6Y,OAChC,EAAKr5F,SAASwgF,EAAM,QAAS,EAAKn3E,QAClC,EAAKqvE,GAAK,EAAKjrE,OAAOirE,GAElB,EAAKA,KACP,EAAKjrE,OAAO+sI,UAAY,EAAKA,W,CAEjC,CA+JF,OAhMwC,QAmCtC,YAAAD,YAAA,WACE,OAAO/kJ,KAAKkjF,GAAGgP,MACjB,EAEA,YAAAs0D,aAAA,SAAa38I,QAAA,IAAAA,IAAAA,EAAA,IACX7J,KAAKiY,OAAS,SACTjY,KAAKiY,QACLpO,EAEP,EAMA,YAAAm7I,UAAA,WACU,IAAA9hE,EAAOljF,KAAI,GACnB,GAAKkjF,EAAL,CAEA,IAAKljF,KAAK0vF,OAAQ,CAChB,IAAMkP,EAAQ1b,EAAGoT,MACX7T,EAASS,EAAGsB,OAElBxkF,KAAK0vF,OAAS,IAAIkP,EAAMC,OAAO,CAE7Bp+C,UAAWgiC,EAAOmC,UAClBka,OAAQrc,EAAOsc,cACfC,aAAc,IACdC,QAAS,IACThb,IAAKjkF,KAAKujF,KACVG,QAAS1jF,KAAK2jF,OACdgM,UAAW3vF,KAAK6yD,OAChBwpC,OAAQr8F,KAAKq8F,OACb3nF,SAAU+tE,EAAOmU,aAAanH,gBAC9BlkE,UAAW,IACX2zE,QAAS,EACTC,OAAQ,EACRjc,GAAE,EACFkc,eAAgB,G,CAIpB,OAAOp/F,KAAK0vF,MAzBG,CA0BjB,EAEA,YAAA/L,OAAA,SAAOn3E,GACLxM,KAAKkjF,GAAGqS,cACRv1F,KAAK+kJ,cAAcM,YAAYrlJ,KAAK0vF,OAAOy1D,eAAgB34I,EAC7D,EAEA,YAAA6vF,OAAA,SAAO7vF,GACLxM,KAAK+kJ,cAAcQ,OAAO/4I,GAC1BxM,KAAKkjF,GAAGp/E,QAAQ,kBAAmB0I,EACrC,EAEA,YAAAqmD,OAAA,SAAOyyB,GACLtlF,KAAKkjF,GAAG2S,aACR71F,KAAK+kJ,cAAcS,UAAU,CAAElgE,UAAS,WACjCtlF,KAAK0vF,OAAOy1D,cACrB,EAOA,YAAAthD,MAAA,SAAM1+F,GACJnF,KAAKsE,IAAIa,EACX,EAQA,YAAAb,IAAA,SAAIa,EAAc8U,GACR,IAAAhC,EAAWjY,KAAI,OAQjBuxF,EAPO,IAAI,GACf,CACEpsF,MAAK,EACL6B,WAAY7B,EAAMxB,IAAI,eAExBsU,GAEoBpE,SAASO,GAC3BmwI,EAAWp/I,EAAMxB,IAAI,YAGzB,GAAI4gJ,GAAYvkJ,KAAKmmJ,aAAeluI,EAAOwuI,iBAAkB,EACvD,IAAAv1I,UAASqzI,GACXA,EAAW,CAAEj6I,GAAIi6I,EAAU73E,MAAO63E,IACzB,IAAA79I,UAAS69I,KAAcA,EAASj6I,KACzCi6I,EAASj6I,GAAKi6I,EAAS73E,OAGzB,IAAMg6E,EAAW1mJ,KAAKmmJ,WAAW7hJ,IAAIigJ,GAC/BoC,EAAQD,EAAS/iJ,IAAI,MACrBwiJ,EAAanmJ,KAAK4mJ,kBACpBC,EAAU7mJ,KAAKomJ,mBAAmBO,GAWtC,OATAxhJ,EAAMM,IAAI,WAAYihJ,EAAU,CAAE94I,QAAQ,KAErCi5I,GAAWV,IACdU,EAAU,IAAI,GAAa,CAAE1hJ,MAAOuhJ,GAAYzuI,GAAQpE,SACxD7T,KAAKomJ,mBAAmBO,GAASE,EACjCV,EAAW1hI,YAAYoiI,EAAQzyI,UAGjCyyI,GAAWA,EAAQ7zD,OAAOzB,G,CAI5Bt3E,EAAWA,EAASwK,YAAY8sE,GAAYvxF,KAAKgzF,OAAOzB,EAC1D,EAEA,YAAAq1D,gBAAA,WAKE,OAJK5mJ,KAAK8mJ,SACR9mJ,KAAK8mJ,OAAS9mJ,KAAKoU,GAAG8rB,cAAc,WAAIlgC,KAAKumJ,aAGxCvmJ,KAAK8mJ,MACd,EAEA,YAAAd,YAAA,WAKE,OAJKhmJ,KAAKkmJ,WACRlmJ,KAAKkmJ,SAAWlmJ,KAAKoU,GAAG8rB,cAAc,WAAIlgC,KAAKqmJ,WAAU,aAAKrmJ,KAAKsmJ,kBAG9DtmJ,KAAKkmJ,QACd,EAEA,YAAAlzD,OAAA,SAAO5+E,GACL,IAAIiwI,EAASrkJ,KAAKgmJ,cAClB3B,GAAUA,EAAO5/H,YAAYrQ,EAC/B,EAEA,YAAAP,OAAA,sBACQ0vE,EAAOvjF,KAAKujF,KACZ/uB,EAAO9/C,SAASisB,gCACf3gC,KAAK8mJ,cACL9mJ,KAAKkmJ,SACZlmJ,KAAKomJ,mBAAqB,CAAC,EAC3BpmJ,KAAKoU,GAAG4yE,UAAY,+BACJhnF,KAAKumJ,UAAS,yCACdvmJ,KAAKqmJ,WAAU,qCACbrmJ,KAAKsmJ,eAAc,iCAIrCtmJ,KAAKiF,WAAWM,MAAK,SAAAJ,GAAS,SAAKb,IAAIa,EAAOqvD,EAAhB,IAC9Bx0D,KAAKgzF,OAAOx+B,GACZ,IAAMtwC,EAAM,UAAGlkB,KAAKsmJ,eAAc,aAAK/iE,EAAI,kBAAUA,EAAI,aAGzD,OAFAvjF,KAAK2T,IAAI2R,SAASpB,GAClBlkB,KAAKuxF,UAAW,EACTvxF,IACT,EACF,EAhMA,CAAwC,M,qvBCgD3B,GAAQ,QACR,GAAQ,UAAG,GAAK,KAChB,GAAQ,UAAG,GAAK,OAChB,GAAW,UAAG,GAAK,UACnB,GAAW,UAAG,GAAK,UACnB,GAAiB,UAAG,GAAQ,WAC5B+mJ,GAAS,UAAG,GAAK,QAKxBC,GAAc,CAClB5lJ,IAAK,GACLy4C,OAAQ,GACRv1C,IAAK,GACLc,OAAQ,GACRghH,aAAc,GACd/2B,KAAM03D,GACNloF,UAXyB,UAAGkoF,GAAM,UAYlCpoF,QAXwB,UAAGooF,GAAM,SAYjCl2D,OAXsB,UAAG,GAAK,WAchC,eAmBE,WAAY3N,GAAZ,I,EAAA,OAeE,O,EAdA,YAAMA,EAAI,eAAgB,IAAI,IAA6B,QAAtB,EAAAA,EAAGjrE,OAAO8rG,oBAAY,eAAEsgC,SAAU,IAAK2C,GAAa,KAAS,MAXpGC,MAAQ,GAER,EAAA/0D,OAAS,GAET,EAAAg1D,SAAW,GAEX,EAAAtC,WAAa,GAEb,EAAAj/B,WAAa,GAMX,EAAK0+B,OAAS,EAAKjjJ,IACnB,EAAK+lJ,cAAgB,IAAI,GAAO,EAAK9C,OAAO7gJ,QAC5C,EAAK2iJ,WAAa,IAAI,GAGtB,EAAK9B,OAAO58I,GAAG,OAAO,SAAAtC,GAAS,SAAKgiJ,cAAc7iJ,IAAIa,EAAvB,IAC/B,EAAKk/I,OAAO58I,GAAG,UAAU,SAAAtC,GAAS,SAAKgiJ,cAAc/hJ,OAAOD,EAA1B,IAClC,EAAKk/I,OAAO58I,GAAG,SAAS,SAAAujF,GAAQ,SAAKm8D,cAAcjhJ,MAAM8kF,EAAKxnF,OAA9B,IAEhC,EAAK6iH,cAAe,IAAA/+B,WAAS,WAAM,SAAKkK,aAAL,GAAoB,GAEhD,CACT,CAmQF,OAtS0C,QA4CxC,YAAAA,YAAA,WACExxF,KAAKkjF,GAAGp/E,QAAQ9D,KAAK0J,OAAOmnF,OAAQ7wF,KAAK8wF,eAC3C,EAEA,YAAAA,aAAA,sBACQs2D,EAAMpnJ,KAAKqnJ,iBACjB,MAAO,CACL11D,GAAI3xF,KACJqkJ,OAAQrkJ,KAAK2rF,SAASnoF,OACtBi9C,UAAW2mG,EAAI3mG,UACfoe,UAAW,SAAC4a,EAAcjtE,GAAe,SAAK6oH,UAAU57C,EAAOjtE,EAAtB,EACzC6iF,KAAM,SAAC7iF,GAAc,SAAK+4I,OAAO/4I,EAAZ,EACrBokH,SAAU,SAAChmE,GAAqB,SAAKi6F,QAAQj6F,EAAb,EAEpC,EAEA,YAAAy6F,YAAA,SAAY5rE,EAAcjtE,GAClB,MAAyBxM,KAAvBkjF,EAAE,KAAEx5E,EAAM,SAAE26I,EAAM,SACpBtlI,EAAU06D,EAAMygE,WAAazgE,EAAMygE,aAAezgE,EACxDz5E,KAAKsnJ,WAAa7tE,EAClByJ,EAAGz9E,IAAI,CAAE8hJ,WAAY,KAAMv2B,YAAajyG,IACxC,CAACmkE,EAAImhE,GAAQv/I,KAAI,SAAAjF,GAAK,OAAAA,EAAEiE,QAAQ4F,EAAOm1D,UAAW4a,EAAOjtE,EAAnC,GACxB,EAEA,YAAA+4I,OAAA,SAAO/4I,GACC,MAAyBxM,KAAvBkjF,EAAE,KAAEx5E,EAAM,SAAE26I,EAAM,SACpB5qE,EAAQz5E,KAAKsnJ,WACnB,CAACpkE,EAAImhE,GAAQv/I,KAAI,SAAAjF,GAAK,OAAAA,EAAEiE,QAAQ4F,EAAO2lF,KAAM5V,EAAOjtE,EAA9B,GACxB,EAEA,YAAAg5I,UAAA,SAAU37I,QAAA,IAAAA,IAAAA,EAAA,IACF,MAAyB7J,KAAvBkjF,EAAE,KAAEx5E,EAAM,SAAE26I,EAAM,SACpB5qE,EAAQz5E,KAAKsnJ,WACb5zH,EAAM7pB,EAAKy7E,WAAapC,EAAGv/E,IAAI,cAGrC,UAFO3D,KAAKsnJ,WAER5zH,GAAO+lD,EAAO,CAChB,IAAM+tE,EAAS,iBACTC,EAAY/zH,EAAI/vB,KAAO+vB,EAAI/vB,IAAI6jJ,GAC/BE,EAAWjuE,EAAM91E,IAAI,aAAe8jJ,EACpCriE,EAAW3L,EAAM91E,IAAI,UACrBkO,GAAQ,IAAA3Q,SAAQwyB,GAAOA,EAAI,GAAKA,GAElC0xD,GAAasiE,IAAyB,IAAbtiE,IAC3BlC,EAAGwb,YAAY7sF,GAGb61I,IACF71I,EAAM/N,QAAQ,UACd2jJ,GAAa51I,EAAMrM,MAAMgiJ,IAGvB/tE,EAAM91E,IAAI,YACZkO,EAAM8/H,OAAM,SAACj+G,GAAa,OAAAA,EAAIw+G,SAAJ,G,CAI9BhvD,EAAGz9E,IAAI,CAAE8hJ,WAAY,KAAMv2B,YAAa,OAEpCv3C,GACF,CAACyJ,EAAImhE,GAAQv/I,KAAI,SAAAjF,GAAK,OAAAA,EAAEiE,QAAQ4F,EAAOi1D,QAASjrC,EAAK+lD,EAA/B,GAE1B,EAEA,YAAAkuE,gBAAA,WACE,OAAO3nJ,KAAKkjF,GACTv/E,IAAI,UACJo0F,YACAjzF,KAAI,SAACqrF,GAAe,OAAAA,EAAM7tD,IAAN,GACzB,EAEA,YAAAgvD,YAAA,SAAYznF,GACV,YADU,IAAAA,IAAAA,EAAA,IACF7J,KAAK4nJ,KAAO,SACd5nJ,KAAK4nJ,MAAQ,CAAC,GACf/9I,EAEP,EAEA,YAAAw9I,eAAA,WACE,OAAOrnJ,KAAK4nJ,MAAQ,CAAC,CACvB,EAEA,YAAAvyB,UAAA,SAAU57C,EAAcjtE,GACtBxM,KAAKqlJ,YAAY5rE,EAAOjtE,GACxBxM,KAAK2nJ,kBAAkBlyI,SAAQ,SAACoyI,GAAY,OAAAA,EAAGrzB,UAAU/D,aAAb,GAC9C,EAEA,YAAAo0B,QAAA,SAAQj6F,GACN5qD,KAAK2nJ,kBAAkBlyI,SAAQ,SAACoyI,GAAY,OAAAA,EAAGrzB,UAAU9D,UAAU9lE,EAAvB,IAC5C5qD,KAAKwlJ,WACP,EAEA,YAAAhP,WAAA,WACQ,MAA6Bx2I,KAA3BmmJ,EAAU,aAAEluI,EAAM,SAAEirE,EAAE,KACxBj+E,EAAajF,KAAKmnJ,cACxBnnJ,KAAK8nJ,WAAa,IAAI,GAAW,CAAE7iJ,WAAU,EAAEkhJ,WAAU,GAAI,SAAKluI,GAAM,CAAEirE,GAAE,KAC5EljF,KAAKqlH,WAAWpgH,EAAWzB,QAC3BxD,KAAKwxF,aACP,EAiBA,YAAAltF,IAAA,SAAIgG,EAAYwe,EAAwBjf,QAAA,IAAAA,IAAAA,EAAA,IACtC,IAAM0jI,EAAMzkH,GAAS,CAAC,EAEtB,OADAykH,EAAIjjI,GAAKA,EACFtK,KAAKqkJ,OAAO//I,IAAIipI,EAAK1jI,EAC9B,EAWA,YAAAlG,IAAA,SAAI2G,GACF,OAAOtK,KAAKqkJ,OAAO1gJ,IAAI2G,EACzB,EAUA,YAAAqhF,OAAA,WACE,OAAO3rF,KAAKqkJ,MACd,EAMA,YAAA0D,cAAA,WACE,OAAO/nJ,KAAKmnJ,aACd,EAYA,YAAA/hJ,OAAA,SAAOq0E,EAAuB5vE,GAC5B,YAD4B,IAAAA,IAAAA,EAAA,IACrB7J,KAAKmmH,SAAS1sC,EAAO5vE,EAC9B,EAOA,YAAAm+I,cAAA,WACE,OAAOhoJ,KAAKmmJ,UACd,EAMA,YAAAt3D,aAAA,W,MACE,OAAsB,QAAf,EAAA7uF,KAAK8nJ,kBAAU,eAAE1zI,EAC1B,EAOA,YAAA6zI,aAAA,WACE,OAAOjoJ,KAAKsnJ,UACd,EA8BA,YAAAzzI,OAAA,SAAOwwI,EAAiBx6I,QAAA,IAAAA,IAAAA,EAAA,IAChB,MAA6B7J,KAA3BmmJ,EAAU,aAAEluI,EAAM,SAAEirE,EAAE,KACxBglE,EAAW7D,GAAUrkJ,KAAK2rF,SAASnoF,OAEzC,GAAIqG,EAAKs+I,SAAU,CACjB,IAAMljJ,EAAa,IAAI,GAAOijJ,GAC9B,OAAO,IAAI,GAAW,CAAEjjJ,WAAU,EAAEkhJ,WAAU,GAAI,OAAEjjE,GAAE,GAAKjrE,GAAWpO,IAAQgK,SAASO,E,CAazF,OAVIpU,KAAK8nJ,aACP9nJ,KAAK8nJ,WAAWtB,aAAa38I,GAC7B7J,KAAK8nJ,WAAW7iJ,WAAWiB,MAAMgiJ,GAE5BloJ,KAAK8nJ,WAAWv2D,WACnBvxF,KAAK8nJ,WAAWj0I,SAChB7T,KAAK8nJ,WAAWv2D,UAAW,IAIxBvxF,KAAK6uF,cACd,EAEA,YAAAx/E,QAAA,W,MACQ+4I,EAAQ,CAACpoJ,KAAKqkJ,OAAQrkJ,KAAKmnJ,cAAennJ,KAAKmmJ,YACrDiC,EAAMtjJ,KAAI,SAAAi6E,GAAK,OAAAA,EAAEzzE,eAAF,IACf88I,EAAMtjJ,KAAI,SAAAi6E,GAAK,OAAAA,EAAE74E,OAAF,IACA,QAAf,EAAAlG,KAAK8nJ,kBAAU,SAAE1iJ,QACnB,EACF,EAtSA,CAA0CmnH,G,YC+D1C,SAlBsC,CACpCroC,YAAa,OACb0N,SAAU,GACV22B,UAAW,GACXj1C,OAAQ,CAAC,CAAE3pE,KAAM,SAAW,CAAEA,KAAM,UAAY,CAAEA,KAAM,oBACxD0+I,QAAS,uFACTC,SACE,qQACFC,UACE,+LACFC,WACE,+IACFC,cACE,iKACFC,gBAAgB,EAChB73D,QAAQ,G,2fC7IV,4B,8CAuBA,QAvBmC,QACjC,YAAA/pF,SAAA,WACE,MAAO,CACL6C,KAAM,GACN+iE,MAAO,GAEX,EAMA,YAAAggB,QAAA,WACE,OAAO1sF,KAAK2D,IAAI,OAClB,EAMA,YAAAsiI,SAAA,WACE,OAAOjmI,KAAK2D,IAAI,UAAY3D,KAAK0sF,SACnC,EACF,EAvBA,CAAmC,M,YAwBnCi8D,GAAMtoJ,UAAUgN,YAAc,O,ooBC1BxBu7I,GAAY,kBAElB,eA4BE,WAAYzyH,QAAA,IAAAA,IAAAA,EAAA,IAAZ,MACE,YAAMA,IAAE,KACFle,EAASke,EAAEle,QAAU,CAAC,E,OAC5B,EAAKA,OAASA,EACd,EAAKxY,OAAS02B,EAAE12B,OAChB,EAAKurF,KAAO70D,EAAE60D,MAAQ,KACtB,EAAK/G,IAAMhsE,EAAOisE,aAAe,GACjC,EAAKX,KAAOtrE,EAAOksE,cAAgB,GACnC,EAAKjB,GAAKjrE,EAAOirE,GACjB,EAAK14E,SAAS,EAAKrF,MAAO,gBAAiB,EAAKyuI,c,CAClD,CAyFF,OA/H0C,QACxC,YAAAj3B,SAAA,WACQ,MAAyB38G,KAAvBikF,EAAG,MAAE9+E,EAAK,QAAE8S,EAAM,SACpBy0D,EAAQvnE,EAAMxB,IAAI,UAAY,GAEpC,OAAOuyE,EAAI,yQACM,sBAAuB,0DACvB,6BAAiC,6BACjC,mBAAoB,iCAAoD,oBAF3E+N,EAAuBA,EACvBA,EAA+BvX,EAC/BuX,EAAoBA,EAAmChsE,EAAOwwI,cAE9E,EAEA,YAAA/+I,OAAA,WACE,MAAO,CACL,0BAA2B,YAC3B,0BAA2B,eAC3B,2BAA4B,eAC5B,2BAA4B,aAEhC,EAyBA,YAAAm/I,WAAA,WAKE,OAJK7oJ,KAAK8oJ,UACR9oJ,KAAK8oJ,QAAU9oJ,KAAKoU,GAAG8rB,cAAc,oBAGhClgC,KAAK8oJ,OACd,EAMA,YAAAC,aAAA,WACU,IAAA7lE,EAAOljF,KAAI,GACb8oJ,EAAU9oJ,KAAK6oJ,aAErBC,EAAQF,IAAa,OACrBE,EAAQ9zG,QACRkuC,SAAAA,EAAI63D,YAAW,EACjB,EAOA,YAAAiO,WAAA,WACQ,IAAE7jJ,EAAcnF,KAAT,MAAEkjF,EAAOljF,KAAL,GACX8oJ,EAAU9oJ,KAAK6oJ,aACfn8E,EAAQo8E,EAAQz9E,aAAe,GAC/BgoB,EAAKnQ,aAAE,EAAFA,EAAI4gD,UACfglB,EAAQF,IAAa,QACrB1lE,SAAAA,EAAI63D,YAAW,GAEX1nD,GAAMA,EAAG41D,OAAO9jJ,EAAOunE,KAAWvnE,IACpC2jJ,EAAQI,UAAY/jJ,EAAMxB,IAAI,SAElC,EAMA,YAAAwlJ,aAAA,WACU,IAAAhkJ,EAAUnF,KAAI,MACtBmF,EAAMM,IAAI,UAAWN,EAAMxB,IAAI,UACjC,EAOA,YAAAylJ,UAAA,WACEppJ,KAAKP,OAAO4pJ,eAAerpJ,KAAKmF,MAClC,EAMA,YAAAyuI,aAAA,WACQ,MAAyB5zI,KAAvBmF,EAAK,QAAEwO,EAAG,MAAEsE,EAAM,SAClBswI,EAA0BtwI,EAAM,UAArBuwI,EAAevwI,EAAM,WAClCqxI,EAAO31I,EAAIC,KAAK,qBAElBzO,EAAMxB,IAAI,WACZ2lJ,EAAKpzE,KAAKqyE,GACV50I,EAAI04E,YAAY,YAEhBi9D,EAAKpzE,KAAKsyE,GACV70I,EAAI2R,SAAS,UAEjB,EAEA,YAAAzR,OAAA,WACE,IAAMowE,EAAMjkF,KAAKikF,IACXV,EAAOvjF,KAAKujF,KAIlB,OAHAvjF,KAAK2T,IAAIuiE,KAAKl2E,KAAK28G,YACnB38G,KAAK2T,IAAInM,KAAK,QAAS,UAAGy8E,EAAG,eAAOV,EAAI,aACxCvjF,KAAK4zI,eACE5zI,IACT,EACF,EA/HA,CAA0C,M,mpBCK1C,eAwDE,WAAYm2B,QAAA,IAAAA,IAAAA,EAAA,IAAZ,MACE,YAAMA,IAAE,KACR,EAAKle,OAASke,EAAEle,QAAU,CAAC,EAC3B,EAAKgsE,IAAM,EAAKhsE,OAAOisE,aAAe,GACtC,EAAKX,KAAO,EAAKtrE,OAAOksE,cAAgB,GACxC,EAAKvvE,UAAY,EAAKqvE,IAAM,OAC5B,EAAKslE,aAAe,EAAKtlE,IAAM,SAC/B,EAAKulE,YAAc,EAAKvlE,IAAM,UAC9B,EAAK3Q,OAAS,EAAKr7D,OAAOq7D,QAAU,GACpC,IAAM4P,EAAK,EAAKjrE,OAAOirE,GACjB8H,EAAO,EAAK/lF,WAClB,EAAKshB,OAAS28D,EACd,IAAMgjC,EAAKhjC,EAAG4gD,UACd,EAAKrkI,OAASymH,EACd,EAAKhjC,GAAKA,EACV,EAAKumE,kBAAmB,IAAAniE,UAAS,EAAKmiE,iBAAiB19I,KAAK,GAAO,GACnE,EAAK29I,WAAY,IAAApiE,UAAS,EAAKoiE,UAAU39I,KAAK,GAAO,G,OAGrD,EAAKvB,SAAS04E,EAFC,6CAEW,EAAKumE,kBAC/B,EAAKj/I,SAAS04E,EAAI,sBAAuB,EAAKumE,kBAC9C,EAAKj/I,SAAS04E,EAHI,wCAGW,EAAKymE,qBAClC,EAAKn/I,SAAS04E,EAAI,iCAAkC,EAAKwmE,WACzD,EAAKl/I,SAASwgF,EAAM,MAAO,EAAK7sB,QAChC,EAAK3zD,SAASwgF,EAAM,QAAS,EAAK4+D,eAClC,EAAKp/I,SAASwgF,EAAM,SAAU,EAAK6+D,YACnC,EAAKr/I,SACH07G,EAAGv6B,SACHu6B,EAAGx8G,OAAOuV,OACV,IAAAqoE,WAAS,WAAM,SAAKwiE,cAAL,GAAqB,IAEtC,EAAK31I,iB,CACP,CAoVF,OA5a2C,QACzC,YAAAwoG,SAAA,SAAS,G,IAAEotC,EAAS,YAAEC,EAAS,YAAE1B,EAAQ,WAAED,EAAO,UAAEpkE,EAAG,MAAEV,EAAI,OAC3D,OAAOrN,EAAI,6mCAAgB,gBAAiB,gCAC1B,mBAAoB,kBAA0B,6BAC9C,sBAAuB,0CACpB,sDACK,SAAa,uCACb,iDACG,qFAED,8CACE,kIAMd,wBAA0B,+BACxB,uDACE,2CACD,qBAAsB,YAAe,8BAAoC,mCACtE,YAAe,8DAAmE,8CAErF,sCACE,eAAuB,iCACvB,+CAvBG+N,EAAiBA,EAC1BA,EAAoBA,EAAoB+lE,EACxC/lE,EAAuBA,EACpBA,EACIV,EAAaA,EACbA,EACIU,EAEFV,EACEA,EAMbU,EAAyBV,EACvBU,EACEA,EACDA,EAAsBA,EAAeA,EAAgCokE,EAClEpkE,EAAeA,EAA8DqkE,EAEhFrkE,EACEA,EAAiB8lE,EACjB9lE,EAEpB,EAEA,YAAAv6E,OAAA,WACE,MAAO,CACL,uBAAwB,eACxB,mBAAoB,cACpB,wBAAyB,YACzB,qBAAsB,eACtB,0BAA2B,YAE/B,EAqDA,YAAAugJ,UAAA,WACU,IASJttI,EATIumE,EAAOljF,KAAI,GACbumB,EAASvmB,KAAKkqJ,YACdC,EAAOjnE,EAAGglC,IAEVK,EAAYvoH,KAAKoqJ,mBAAmB,CAAEvgJ,KAD/B,CAAE68H,WAAY,KAErBznH,EAAQikE,EAAGv/E,IAAI,SACf2rH,EAAYpsC,EAAG+gE,kBACfoG,EAA4B,GAC5Bz+D,EAAOu+D,EAAKxmJ,IAAI4kH,EAAWtpG,EAAOqwG,IAAc66B,EAAK7lJ,IAAIikH,EAAWtpG,EAAOqwG,GAGjFtvH,KAAKsqJ,aAAa70I,SAAQ,SAAA8Q,GACxB,IAAMgkI,EAAgBJ,EAAKte,UAAUtlH,EAAO+jG,QAAS,CACnDrrG,MAAK,EACLqwG,UAAS,IAEX3yG,EAAQ4tI,EAAc9hE,WACtB8hE,EAAczqE,SAAS,CAAC,GACxBuqE,EAAe1lJ,KAAK4lJ,EACtB,IAEA5tI,GAASivE,EAAKhD,SAASjsE,GACvBumE,EAAGp/E,QAAQ,qBACXo/E,EAAGp/E,QAAQ,uBAAwB,CACjCwhF,UAAW/+D,EACXgiG,UAAS,EACT+G,UAAS,EACT1jC,KAAI,EACJy+D,eAAc,EACdprI,MAAK,GAET,EAOA,YAAA4qI,WAAA,SAAW1kJ,GACTnF,KAAKwqJ,gBACP,EAOA,YAAArsF,OAAA,SAAOh5D,GACLnF,KAAKyqJ,aAAatlJ,EACpB,EAOA,YAAAulJ,YAAA,W,QACc,QAAZ,EAAA1qJ,KAAK2qJ,eAAO,SAAErqH,IAAI,CAAE1jB,QAAS,SAClB,QAAX,EAAA5c,KAAK4qJ,cAAM,SAAEl3D,OAAO1+C,OACtB,EAOA,YAAA61G,UAAA,W,QACc,QAAZ,EAAA7qJ,KAAK2qJ,eAAO,SAAErqH,IAAI,CAAE1jB,QAAS,KAClB,QAAX,EAAA5c,KAAK4qJ,cAAM,SAAEj3D,OAAO1tF,IAAI,GAC1B,EAOA,YAAA6kJ,aAAA,SAAa5/I,G,MACO,KAAdA,EAAEgrD,SACJhrD,EAAEqiB,iBACFvtB,KAAK+qJ,UAAqB,QAAX,EAAA/qJ,KAAK4qJ,cAAM,eAAE3kJ,QACL,KAAdiF,EAAEgrD,SACXl2D,KAAK6qJ,WAET,EAEA,YAAAG,YAAA,WACE,IAAM/rI,EAAQjf,KAAKkjF,GAAGk/D,WAChB6I,EAAWjrJ,KAAKsiJ,YACtB2I,GAAYA,EAAShlJ,IAAIgZ,EAC3B,EAOA,YAAAwqI,iBAAA,SAAiB,G,IAAEyB,QAAF,MAAmB,CAAC,EAAC,GAAZ,QACxBlrJ,KAAKoxC,gBAAgB85G,EACvB,EAEA,YAAA95G,gBAAA,SAAgB85G,GACd,IAAIC,EAAOD,GAAWlrJ,KAAKsqJ,aAEvB/hC,EAAwB,GAW5B,OAZA4iC,GAAO,IAAAjqJ,SAAQiqJ,GAAQA,EAAO,CAACA,KAGnBA,EAAKxqJ,SACf4nH,EAAYvoH,KAAKoqJ,mBAAmB,CAAEc,QAASC,IAE/CnrJ,KAAK0pJ,UAAU,CAAE0B,eAAgB7iC,KAGnCvoH,KAAKiF,WAAWiB,MAAMqiH,GACtBvoH,KAAKwqJ,eAAeW,GACpBnrJ,KAAKP,OAAO+xF,cACL+2B,CACT,EAEA,YAAA6hC,mBAAA,SAAmB,G,IAAA,aAA8B,CAAC,EAAC,EAA9Bc,EAAO,UAAE,IAAArhJ,KAAAA,OAAI,IAAG,GAAC,EAAC,EAC/BshJ,EAAOD,GAAWlrJ,KAAKsqJ,aAC7B,OAAOtqJ,KAAKP,OAAO4rJ,qBAAqBF,EAAMthJ,EAChD,EAEA,YAAAyhJ,iBAAA,W,UAAiB,kDACf,OAAO,EAAAtrJ,KAAKP,QAAO8rJ,SAAQ,QAAI7qJ,EACjC,EAEA,YAAAgpJ,UAAA,WACQ,IAEF8B,EAFE,EAAqCxrJ,KAAnCyrJ,EAAU,aAAExzI,EAAM,SAAEhT,EAAU,aAChCshB,EAASvmB,KAAKkqJ,YAGpB,GAAI3jI,GAAUtO,EAAOywI,gBAAkBzjJ,EAAWtE,OAAQ,CACxD,IAAMgc,EAAQ4J,EAAOkiE,WACrB+iE,IAAY,IAAAlmJ,SAAQqX,E,CAGtB8uI,GAAcA,EAAWD,EAAW,OAAS,SAC/C,EAEA,YAAAtB,UAAA,WACE,OAAOlqJ,KAAKumB,OAAOyiE,aACrB,EAEA,YAAAshE,WAAA,WACE,OAAOtqJ,KAAKumB,OAAOg/D,gBACrB,EAOA,YAAAilE,eAAA,SAAeU,GACb,IAAMhoE,EAAKljF,KAAKkjF,GACV+hD,EAAc/hD,GAAMA,EAAG0D,YAAY47B,iBACnC5lG,EAAU5c,KAAKiF,WAAWtE,QAAUskI,EAAc,GAAK,OAC7DjlI,KAAK0rJ,aAAaprH,IAAI,UAAW1jB,GACjC5c,KAAK2rJ,eAAeT,EACtB,EAEA,YAAAvB,oBAAA,WACE3pJ,KAAK2rJ,eAAe3rJ,KAAKsqJ,aAC3B,EAOA,YAAAqB,eAAA,SAAeT,GAAf,WACQU,EAAQ5rJ,KAAKoU,GAAG8rB,cAAc,mBAC9BhzB,EAAmB,GACrBi+I,EAAOD,GAAWlrJ,KAAKsqJ,cAC3Ba,GAAO,IAAAjqJ,SAAQiqJ,GAAQA,EAAO,CAACA,IAE1B11I,SAAQ,SAAA8Q,GAAU,OAAArZ,EAAOvI,KAAK,EAAKknJ,UAAUtlI,GAA3B,IACvBqlI,IAAUA,EAAM5kE,UAAY95E,EAAOuiD,KAAK,OACxCzvD,KAAKgrJ,aACP,EAEA,YAAAa,UAAA,SAAUtlI,GACF,IAEFrZ,EAFE,EAAsBlN,KAApBikF,EAAG,MAAEhsE,EAAM,SAAEirE,EAAE,KACf4oE,EAAiC7zI,EAAM,aAAzBywI,EAAmBzwI,EAAM,eAG/C,IAAI,IAAA/G,UAASqV,GACXrZ,EAASgpE,EAAI,uEAAmB,aAAkB,aAArB+N,EAAe19D,OACvC,CACL,IAAMsrB,EAAMtrB,aAAM,EAANA,EAAQ27G,eACpB,IAAKrwF,EAAK,MAAO,GACjB,IAAM02E,EAAY12E,EAAI20F,eAChBvnH,EAAQikE,EAAGv/E,IAAI,SACfooJ,EAAQxlI,EAAO+jG,MACjBp0C,EAAI,0HAAmB,aAA4B,sCAC/B,aAA0B,aAD1B+N,EAAe19D,EAAOmmE,UACzBzI,EAAe19D,EAAO+jG,SACvC,GAEJp9G,GADAA,EAAUlN,KAAKiF,WAAyBo9H,cAAc9Z,IACpCryC,EAAI,wEAAmB,cAAmB,aAAtB+N,EAAgB/2E,GAAkBqZ,EAAO5iB,IAAI,iBAAmBooJ,EACtG7+I,EAASw7I,GAAkBqD,EAAQA,EAAQ7+I,EAC3CA,GAAU+R,EAAQi3D,EAAI,0EAAmB,gBAAoB,aAAvB+N,EAAkBhlE,GAAiB,GACzE/R,EAAS4+I,EAAeA,EAAa,CAAE5+I,OAAM,EAAE+R,MAAK,EAAEsH,OAAM,IAAMrZ,C,CAGpE,OAAOA,GAAU,wBAAgB+2E,EAAG,iBAAQ/2E,EAAM,UACpD,EAOA,YAAA8+I,aAAA,SAAax/I,GACH,IAAA02E,EAAOljF,KAAI,GACX0H,EAAU8E,EAAG+Z,OAAM,MAC3B28D,EAAGz9E,IAAI,QAASiC,EAClB,EAOA,YAAAqjJ,UAAA,SAAUrjJ,GACR,IAAMglE,EAAQhlE,EAAM4gF,OACf5b,IACL1sE,KAAKP,OAAOwsJ,YAAY,CAAEv/E,MAAK,IAC/B1sE,KAAK6qJ,YAEP,EASA,YAAAJ,aAAA,SAAatlJ,EAAc2pH,GACzB,IAAM70G,EAAW60G,EACXr4F,EAAUz2B,KAAKosI,aACf76C,EAAW,IAAI,GAAa,CAChCpsF,MAAK,EACL8S,OAAQjY,KAAKiY,OACb+yE,KAAMhrF,KAAKiF,WACXxF,OAAQO,KAAKP,SACZoU,SAASO,GAIZ,OAFA6F,EAAWA,EAASwK,YAAY8sE,GAAY96D,EAAQu8D,OAAOzB,GAEpDA,CACT,EAMA,YAAAq4D,cAAA,sBACQp1F,EAAO9/C,SAASisB,yBAChBlK,EAAUz2B,KAAKosI,aACrB31G,EAAQub,QACRhyC,KAAKiF,WAAWM,MAAK,SAAAJ,GAAS,SAAKslJ,aAAatlJ,EAAOqvD,EAAzB,IAC9B/9B,EAAQu8D,OAAOx+B,EACjB,EAOA,YAAA43E,WAAA,WACE,OAAOpsI,KAAK2T,IAAIC,KAAK,mBACvB,EAOA,YAAA0uI,UAAA,WACE,IAAKtiJ,KAAKksJ,QAAS,CACjB,IAAM93I,EAAKpU,KAAK2T,IAAIC,KAAK,iBACzB5T,KAAKksJ,QAAU93I,EAAG,IAAMA,C,CAE1B,OAAOpU,KAAKksJ,OACd,EAOA,YAAAR,WAAA,WAEE,OADK1rJ,KAAKmsJ,WAAUnsJ,KAAKmsJ,SAAWnsJ,KAAK2T,IAAIC,KAAK,IAAM5T,KAAKwpJ,cACtDxpJ,KAAKmsJ,QACd,EAEA,YAAArC,aAAA,WACQ,IAAErqJ,EAAeO,KAAT,OAAEkjF,EAAOljF,KAAL,GACZosJ,EAAclpE,EAAG5vB,EAAE,8BACnBzwD,EAAUpD,EACb6iJ,YACAx9I,KAAI,SAAAma,GACH,IAAMytD,EAAQwW,EAAG5vB,EAAE,iCAA0Br0C,EAAM3U,MAAS2U,EAAMgnH,YAAchnH,EAAM3U,GACtF,MAAO,0BAAkB2U,EAAM3U,GAAE,cAAKoiE,EAAK,YAC7C,IACCjd,KAAK,IAEFw7F,EAAWjrJ,KAAKsiJ,YACtB2I,GAAYA,EAAS/0E,KAAK,6BAAoBk2E,EAAW,oBAAYvpJ,IACrE7C,KAAKgrJ,aACP,EAEA,YAAAn3I,OAAA,WACQ,MAAqC7T,KAAnCkjF,EAAE,KAAEe,EAAG,MAAEV,EAAI,OAAEtrE,EAAM,SAAEtE,EAAG,MAAES,EAAE,KAC9BP,EAA8BoE,EAAM,OACtCo0I,EAAU,CACd/D,SAFoCrwI,EAAM,SAG1CowI,QAHoCpwI,EAAM,QAI1C+xI,UAAW9mE,EAAG5vB,EAAE,yBAChBy2F,UAAW7mE,EAAG5vB,EAAE,4BAChBiwB,KAAI,EACJU,IAAG,EACH7vE,GAAE,GAEJT,EAAIuiE,KAAKl2E,KAAK28G,SAAS0vC,IACvB,IAAMC,EAAYz4I,GAAUA,EAAOw4I,GAUnC,OATAC,GAAaA,IAAcl4I,GAAMT,EAAIq+B,QAAQghD,OAAOs5D,GACpDtsJ,KAAK4qJ,OAASj3I,EAAIC,KAAK,gBACvB5T,KAAK2qJ,QAAUh3I,EAAIC,KAAK,cACxB5T,KAAKusJ,SAAW54I,EAAIC,KAAK,IAAMqwE,EAAM,UACrCjkF,KAAKyrJ,WAAa93I,EAAIC,KAAK,qBAC3B5T,KAAK4qJ,OAAOj3D,OACZ3zF,KAAK8pJ,eACL9pJ,KAAK4pJ,gBACLj2I,EAAInM,KAAK,QAAS,UAAGxH,KAAK4U,UAAS,YAAI2uE,EAAI,kBAAUA,EAAI,cAClDvjF,IACT,EACF,EA5aA,CAA2C,M,u+BCgFrC8lI,GAAO,SAACl8G,GAAgB,WAAA1Y,UAAS0Y,IAAkB,KAAVA,EAAI,EAArB,EACxBm8G,GAAU,SAACn8G,GAAgB,WAAA1Y,UAAS0Y,IAAkB,KAAVA,EAAI,EAArB,EAEpB,GAAQ,WACR,GAAQ,UAAG,GAAK,KAChB,GAAQ,UAAG,GAAK,OAChB,GAAW,UAAG,GAAK,UACnB,GAAW,UAAG,GAAK,UACnB,GAAiB,UAAG,GAAQ,WAC5B,GAAW,UAAG,GAAK,UACnB4iI,GAAU,UAAG,GAAK,SAEzBC,GAAiB,CACrBrrJ,IAAK,GACLy4C,OAAQ,GACRv1C,IAAK,GACLc,OAAQ,GACRghH,aAAc,GACdnnG,MAAOutI,GACP37D,OAAQ,IAKV,eAsBE,WAAY3N,GAAZ,MACE,YAAMA,EAAI,kBAAmB,IAAI,GAAU,IAAKupE,GAAgB,GAAU,CAAEjnC,YAAY,KAAO,KAtBjG,EAAAogB,SAAW,GAEX,EAAA9B,UAAY,GAQZ,EAAAne,WAAa,IAaX,IAAArjC,SAAQ,EAAM,gCACN,IAAArqE,EAAW,EAAI,OACjBsrE,EAAOtrE,EAAOksE,aAChBZ,IAAMtrE,EAAOisE,YAAcX,EAAOtrE,EAAOisE,aAG7C,EAAK9iF,IAAM,IAAI,GAAU6W,EAAOswG,WAChC,EAAKv0D,SAAW,IAAI,GAAU,GAAI,CAAEkvB,GAAE,EAAEjrE,OAAM,IAC9C,EAAKq7D,OAAS,IAAI,KAChBr7D,EAAOq7D,OAAQxuE,KAAI,SAACma,GAAe,WAAI,GAAMA,EAAV,IACnC,CAAE9Z,MAAO,KAEX,EAAKA,MAAQ,IAAI,KAAM,CAAEunJ,OAAQz0I,EAAOywI,eAAgB//B,OAAO,IAC/D,EAAKgkC,UAAW,IAAArlE,WAAS,WAAM,SAAKkK,aAAL,GAAoB,GACnD,EAAKi0B,aAAa,CAChBO,YAAa,CAAC,EAAK1yC,OAAQ,EAAKtf,UAChCjO,UAAW,CAAC,CAAEkgE,OAAQ,EAAK3yC,OAAQ3gE,MAAO,EAAKjJ,OAAOuV,UAExDikE,EAAGz7E,GAAG,gBAAgB,SAAC+J,EAAG9J,GAAU,OAAAw7E,EAAGp/E,QAAQ0oJ,GAAS9kJ,EAApB,IACpC,EAAKvC,MAAMsC,GAAG,iBAAiB,SAAC+J,EAAG9J,GAAU,OAAAw7E,EAAGp/E,QAAQ,gBAAiB4D,EAA5B,IAC7Cw7E,EAAGz7E,GAAG,6CAA8C,EAAKmlJ,8B,OAGzD,EAAKznJ,MAAMqF,SAAS04E,EADlB,0HACgC,WAAM,SAAKypE,UAAL,I,CAC1C,CAkaF,OAld6C,QAkD3C,YAAAn7D,YAAA,SAAY3nF,GACV7J,KAAKkjF,GAAGp/E,QAAQ9D,KAAK0J,OAAOmnF,OAAQ7wF,KAAK8wF,aAAajnF,GACxD,EAEA,YAAA8hF,OAAA,SAAsC9hF,GACpC,YADoC,IAAAA,IAAAA,EAAU,CAAC,GACvC7J,KAAKoB,IAAOyI,EAAKoG,MAAQ,MAAIjQ,KAAKoB,IAAIoC,QAAM,GAAIxD,KAAKoB,IAAO,EAGtE,EAEA,YAAA0vF,aAAA,SAAajnF,GAEX,YAFW,IAAAA,IAAAA,EAAA,IACX7J,KAAK6sJ,MAAQ7sJ,KAAK6sJ,OAAShjJ,EAAK42C,UACzB,CACL6yB,OAAQtzE,KAAKsiJ,YACbtuF,SAAUh0D,KAAKgpF,cACfvoC,UAAWzgD,KAAK6sJ,MAEpB,EAUA,YAAArW,WAAA,WACEx2I,KAAKqlH,aACLrlH,KAAKwxF,aACP,EAEA,YAAAt7E,OAAA,SAAOxO,EAAsCmC,QAAA,IAAAA,IAAAA,EAAA,IAC3C,IAAMqhJ,EAAU9qJ,MAAMc,QAAQwG,GAASA,EAAQ,CAACA,GAC1C09E,EAAkBplF,KAAKkjF,GAAG4F,OAAO5yE,OAAOg1I,EAASrhJ,GACvD7J,KAAKg0D,SAAS9tD,MAAMlG,KAAKqrJ,qBAAqBjmE,IAC9C,IAAM0nE,EAAU9sJ,KAAK+sJ,aACf3oJ,EAAMghF,EACTnvE,QAAO,SAAApW,GAAK,OAAAA,CAAA,IACZiF,KAAI,SAAA+sC,GAAO,OAAC,IAAAqjE,aAAYrjE,KAAa,IAAAujE,QAAOvjE,KAASA,EAAIluC,IAAI,gBAA9BkuC,EAAsDA,EAAIswF,oBAA9E,IAEd,OADA2qB,GAAWA,EAAQrD,iBAAiB,CAAEyB,QAAS9mJ,IACxCpE,IACT,EAEA,YAAA6hJ,YAAA,SAAYl4I,EAAuCE,EAAWmjJ,QAAX,IAAAnjJ,IAAAA,EAAA,SAAW,IAAAmjJ,IAAAA,EAAA,IAC5D,IAAIlkI,EAAK,MAAajf,IAElB,IAAAnD,UAASiD,GACXmf,EAAQnf,EAERmf,EAAMnf,KAAOA,EAGXm8H,GAAKh9G,EAAMnf,OACbmf,EAAMnf,KAAOmf,EAAMnf,KAAK+W,OAAO,GAC/BoI,EAAMtmB,KAAO,YACJujI,GAAQj9G,EAAMnf,QACvBmf,EAAMnf,KAAOmf,EAAMnf,KAAK+W,OAAO,IAG7BoI,EAAM4jD,QAAU5jD,EAAMnf,OACxBmf,EAAMnf,KAAO3J,KAAK0lI,WAAW58G,EAAM4jD,QAGrC,IAAMugF,EAAQnkI,EAAMnf,KACdsO,EAASjY,KAAK4mF,YACZxlF,EAAYpB,KAAT,IAAEkjF,EAAOljF,KAAL,GACT0T,EAAWu5I,EAASjtJ,KAAK2D,IAAIspJ,EAAOnkI,EAAMtmB,MAAqBpB,EAAIsC,MAAMolB,GAAO,GAEtF,IAAKpV,EAAU,CACb,IAAMw5I,EAAWpkI,aAAiB,GAAWA,EAAQ,IAAI,GAASA,EAAO,SAAKkkI,GAAK,CAAE/0I,OAAM,EAAEirE,GAAE,KAC/F,OAAO9hF,EAAIkD,IAAI4oJ,EAAUF,E,CAG3B,OAAOt5I,CACT,EAEA,YAAAy5I,YAAA,SAAYxjJ,EAAcnH,GAQxB,YARwB,IAAAA,IAAAA,EAAO,eAC3BsjI,GAAKn8H,IACPA,EAAOA,EAAK+W,OAAO,GACnBle,EAAO,YACEujI,GAAQp8H,KACjBA,EAAOA,EAAK+W,OAAO,IAGd1gB,KAAKoB,IAAIsC,MAAM,CAAEiG,KAAI,EAAEnH,KAAI,IAAI,EACxC,EAeA,YAAA8B,IAAA,SAAIwkB,EAA6Bjf,GAAjC,gBAAiC,IAAAA,IAAAA,EAAA,IAC/B,IAAMmjJ,GAAQ,IAAA97I,UAAS4X,GAAS,CAAC,EAAIjf,EAErC,OAAI,IAAA3I,SAAQ4nB,GACHA,EAAMhkB,KAAI,SAAA2hF,GAAQ,SAAKo7D,YAAYp7D,EAAM58E,EAAMmjJ,EAA7B,IAElBhtJ,KAAK6hJ,YAAY/4H,EAAOjf,EAAMmjJ,EAEzC,EAaA,YAAA1nI,SAAA,SAASmR,GAAT,WACQjmB,EAAoB,GAO1B,OALI,IAAAU,UAASulB,KACXA,EAAUA,EAAQ6xD,OAAOr+E,MAAM,MAGjCwsB,EAAQhhB,SAAQ,SAAA9L,GAAQ,OAAA6G,EAAM7L,KAAK,EAAKk9I,YAAYl4I,GAA5B,IACjB6G,CACT,EAWA,YAAA7M,IAAA,SAAiCgG,EAASnH,GAA1C,WAEE,IAAI,IAAAtB,SAAQyI,GAAO,CACjB,IAAM,EAAqB,GAI3B,OAHkBA,EAAK7E,KAAI,SAAA2hF,GAAQ,SAAK0mE,YAAY1mE,EAAjB,IAAwBxwE,OAAOuvE,SACxD/vE,SAAQ,SAAAgxE,GAAQ,SAAO5hF,QAAQ4hF,GAAQ,GAAK,EAAO9hF,KAAK8hF,EAAxC,IAEnB,C,CAGP,OAAOzmF,KAAKmtJ,YAAYxjJ,EAAMnH,EAElC,EAWA,YAAA4C,OAAA,SAAOsO,EAA6B7J,GAClC,OAAO7J,KAAKmmH,SAASzyG,EAAU7J,EACjC,EAYA,YAAAo/I,OAAA,SAAOv1I,EAAoB/J,EAAcE,GACvC,IAAMujJ,EAAUptJ,KAAK0lI,WAAW/7H,GAGhC,OAFe3J,KAAK2D,IAAIypJ,IAEP15I,EAASjO,IAAI,CAAEkE,KAAMyjJ,EAAS1gF,MAAO/iE,GAAQE,EAChE,EASA,YAAAwjJ,SAAA,SAAS3lJ,GAEP,OADA1H,KAAKkjF,GAAGmqE,SAAS3lJ,GACV1H,IACT,EAMA,YAAAoiJ,SAAA,WACE,OAAOpiJ,KAAKkjF,GAAGk/D,UACjB,EAMA,YAAAE,UAAA,WACE,OAAO,MAAItiJ,KAAKszE,OAAO9vE,QAAM,EAC/B,EAYA,YAAA8pJ,UAAA,SAAUh6E,EAAiBzpE,GACzB,OAAO7J,KAAKszE,OAAOptE,MACjBotE,EAAOxuE,KAAI,SAAAma,GAAS,WAAI,GAAMA,EAAV,IACpBpV,EAEJ,EASA,YAAAm/E,YAAA,WACE,OAAOhpF,KAAKutJ,aACd,EASA,YAAAhoE,eAAA,WACE,OAAO,MAAIvlF,KAAKg0D,SAASxwD,QAAM,EACjC,EAQA,YAAAyoJ,YAAA,SAAYnjI,GACV,IAAMtY,EAAQxQ,KAAKsE,IAAIwkB,GACvB9oB,KAAKkjF,GAAGqC,iBAAiB9vE,SAAQ,SAAA8Q,GAC/BA,EAAO27G,eAAe59H,IAAIkM,EAC5B,GAEF,EAQA,YAAA64I,eAAA,SAAe31I,GACb1T,KAAKkjF,GAAGqC,iBAAiB9vE,SAAQ,SAAA2iF,IAC9B1kF,EAAS/P,IAAI,cAAgBy0F,GAAOA,EAAI8pC,eAAe98H,OAAOsO,EACjE,GACF,EAEA,YAAA85I,kBAAA,SAAkB95I,EAAoB7J,GAAtC,gBAAsC,IAAAA,IAAAA,EAAA,IAC5B,IAAAq5E,EAAOljF,KAAI,GACbytJ,EAAkBztJ,KAAKgpF,cAC7B,KAAIykE,EAAgB5oJ,QAAQ6O,GAAY,GAAxC,CAEA,IAAMuL,EAAQjf,KAAKoiJ,WACb4B,EAAQ9gE,EAAG+gE,kBACXr4D,EAAO1I,EAAGglC,IAAIvkH,IAAI8pJ,EAAiBxuI,EAAO+kI,GAC1C0J,EAAe9hE,aAAI,EAAJA,EAAMnD,WAc3B,GAZAvF,EAAGqC,iBAAiB9vE,SAAQ,SAAA6vE,GAC1B,IAAMijC,EAAYjjC,EAAU48C,eAC5B,GAAI3Z,EAAUhyG,SAAS7C,GAAW,CAChC,IAAMi6I,EAAS9jJ,EAAK8jJ,QAAU,QACxBjhF,EAAQh5D,EAASuyH,WACjB2nB,EAAc,EAAK/L,YAAY,UAAGn1E,GAAK,OAAGihF,IAC1ClqJ,EAAK8kH,EAAU1jH,QAAQ6O,GAC7B60G,EAAUnjH,OAAOsO,GACjB60G,EAAUjkH,IAAIspJ,EAAa,CAAEnqJ,GAAE,G,CAEnC,IAEIiqJ,EACcxqE,EAAGglC,IAAI5jH,IAAItE,KAAKgpF,cAAe/pE,EAAO+kI,GAC9ClkE,SAAS4tE,EArB8B,CAuBnD,EASA,YAAAG,mBAAA,WACE,OAAO7tJ,KAAKkjF,GAAG4F,OAAOvD,gBACxB,EAQA,YAAAuoE,kBAAA,SAAkBpmJ,GAChB1H,KAAK4mF,YAAY8hE,eAAiBhhJ,EAClC1H,KAAKmF,MAAMM,IAAI,CAAEinJ,OAAQhlJ,GAC3B,EAMA,YAAAqmJ,kBAAA,WACE,OAAO/tJ,KAAK4mF,YAAY8hE,cAC1B,EAeA,YAAAhjB,WAAA,SAAW/7H,GACD,IAAA+7H,EAAe1lI,KAAK4mF,YAAW,WACvC,OAAO8+C,EAAaA,EAAW/7H,GAAQ,cAAoBA,EAC7D,EAQA,YAAAkK,OAAA,SAAO00G,GACG,IAAAwkC,EAAiB/sJ,KAAI,aACvBiY,EAASjY,KAAK4mF,YACdxyE,EAAK24I,aAAY,EAAZA,EAAc34I,GAUzB,OATApU,KAAKg0D,SAAS9tD,MAAMqiH,GACpBvoH,KAAK+sJ,aAAe,IAAI,GAAc,CACpC34I,GAAE,EACFnP,WAAYjF,KAAKg0D,SAEjBv0D,OAAQO,KACRiY,OAAM,IAGDjY,KAAK+sJ,aAAal5I,SAASO,EACpC,EAEA,YAAA/E,QAAA,WACQ,IAAE09I,EAAwB/sJ,KAAZ,aAAYA,KAAL,MACrBsL,gBACNtL,KAAK2sJ,SAAS/hG,SACd5qD,KAAK6mH,YACLkmC,SAAAA,EAAc3nJ,SACdpF,KAAK+sJ,kBAAe1nJ,CACtB,EAOA,YAAAkoJ,YAAA,WACE,OAAOvtJ,KAAKqrJ,qBAAqBrrJ,KAAKkjF,GAAGqC,iBAC3C,EAEA,YAAA8lE,qBAAA,SAAqBhmE,EAAyBx7E,QAAA,IAAAA,IAAAA,EAAA,IAC5C,IAAM0+G,EAAYljC,EAAWvgF,KAAI,SAAA4uB,GAAO,OAAAA,EAAIwuG,cAAgBxuG,EAAIwuG,eAAeuE,SAAS58H,EAAhD,IAAuDoM,OAAOuvE,SACtG,OAAOxlF,KAAKurJ,SAAQ,MAAbvrJ,KAAiBuoH,EAC1B,EAEA,YAAAgjC,SAAA,W,IAAA,WAAS,kDACP,OAAK7qJ,EAAKC,OACU,IAAhBD,EAAKC,OAAqBD,EAAK,GACf,IAAhBA,EAAKC,OAAqBD,EAAK,GAAGuV,QAAO,SAACwwE,GAAc,OAAA/lF,EAAK,GAAGmE,QAAQ4hF,IAAS,CAAzB,IAG1D/lF,EACGJ,MAAM,GAENqV,QAAO,SAACyrG,EAAK36B,GAAS,SAAK8kE,SAASnqC,EAAK36B,EAAnB,GAA0B/lF,EAAK,IARjC,EAU3B,EAEA,YAAAksJ,6BAAA,WACE5sJ,KAAKg0D,SAAS9tD,MAAMlG,KAAKutJ,cAC3B,EACF,EAldA,CAA6ChhC,G,YCjC7C,SAZ6B,CAC3BkU,SAAU,CAAC,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,MAC3CC,eAAWr7H,EACXw7H,gBAAYx7H,EACZu7H,YAAa,CACXlC,SAAU,YACVyC,cAAc,EACdC,iBAAiB,EACjB/e,oBAAoB,IC1ExB,IAAMuM,GAAkC,CACtC,EAAG,QACH,EAAG,YACH,EAAG,OACH,EAAG,YACH,GAAI,gBACJ,GAAI,WACJ,GAAI,WACJ,GAAI,sBACJ,GAAI,YAEAo/B,IAAa,IAAA/sJ,MAAK2tH,IAClBq/B,GAAgB,CAAC,IAAK,IAAK,KAAM,MACjCC,GAAqB,CAAC,YAAa,OAAQ,gBAAiB,YAcrDC,GAAgB,SAACvkI,QAAA,IAAAA,IAAAA,EAAA,IAK5B,IAJA,IAAMtlB,EAAgB,GAChB4I,EAAqB,GACrBiuD,EAAOvxC,EAAI3f,MAAM,KAEdpK,EAAI,EAAG4rB,EAAM0vC,EAAKx6D,OAAQd,EAAI4rB,EAAK5rB,IAAK,CAC/C,IAAIgyC,EAAMspB,EAAKt7D,GAAGyoF,OAMlB,GAAI,wCAAwCt+E,KAAK6nC,IAAQ,yCAAyC7nC,KAAK6nC,GAAM,CAC3G,IAAI3tB,EAAM2tB,EAAI5nC,MAAM,KAAKgM,OAAOuvE,SAChCt4E,EAAOvI,KAAKuf,E,MAEZ5f,EAAIK,KAAKktC,E,CAIb,MAAO,CACL3kC,OAAM,EACN5I,IAAG,EAEP,EAOa+6H,GAAa,SAACh7G,GAIzB,IAHA,IAAMkuG,EAAMluG,EAAK1H,MACXA,EAAgC,CAAC,EAE9B9c,EAAI,EAAG4rB,EAAM8mG,EAAI5xH,OAAQd,EAAI4rB,EAAK5rB,IAAK,CAC9C,IAAM4nI,EAAWlV,EAAI1yH,GACfuuJ,EAAY77B,EAAI1oB,iBAAiB49B,GACjChZ,EAAY8D,EAAI87B,oBAAoB5mB,GAC1C9qH,EAAM8qH,GAAY,UAAG2mB,GAAS,OAAG3/B,EAAY,YAAKA,GAAc,G,CAGlE,OAAO9xG,CACT,EAOa2xI,GAAiB,SAACjqI,GAG7B,OADkBA,EAAKkqI,eAAkBlqI,EAAK2/H,OAAS3/H,EAAK2/H,MAAM10B,WAAcjrG,EAAK1a,MAAQ0a,EAAKmqI,cAAgB,IACjGlmE,MACnB,EAQammE,GAAa,SAAClmC,EAAqB5rG,EAAY9S,QAAZ,IAAA8S,IAAAA,EAAA,SAAY,IAAA9S,IAAAA,EAAA,IAC1D,IAAMwa,EAA6B,CAAC,EAC9BqqI,EAASnmC,EAAU5nH,OACnBguJ,EAAYpmC,EAAUmmC,EAAS,GAC/BE,EAAWD,EAAYA,EAAU1kJ,MAAM,SAAW,GAClDgV,EAAQ2vI,EAAS,GAEf5/B,EAAoCnlH,EAAI,OAAhCo3I,EAA4Bp3I,EAAI,aAAlBylH,EAAczlH,EAAI,UAiBhD,OAhBqBqkJ,GAAmBrpJ,QAAQmqH,IAAW,IAC1C3qG,EAAK68H,cAAe,GACrClyB,IAAW3qG,EAAKs9H,WAAa3yB,GAC7BiyB,IAAiB58H,EAAK48H,aAAeA,GACrC3xB,IAAcjrG,EAAKirG,UAAYA,GAG3BrwG,IACFspG,EAAUmmC,EAAS,GAAKE,EAAS,GACjCvqI,EAAKpF,MAAQA,EACb2vI,EAAShqJ,OAAOgqJ,EAASjuJ,OAAS,EAAG,IAGvC0jB,EAAKkkG,UAAYA,EACjBlkG,EAAK1H,MAAQA,EAEN0H,CACT,EAOaq7G,GAAY,SAACtrH,GAIxB,IAHA,IAAIlH,EAAwB,GACtByyH,EAASvrH,EAAqBy6I,UAAY,GAEvChvJ,EAAI,EAAG4rB,EAAMk0G,EAAMh/H,OAAQd,EAAI4rB,EAAK5rB,IAAK,CAChD,IAAMwkB,EAAgBs7G,EAAM9/H,GACtB2C,EAAO6hB,EAAK7hB,KAAKolB,WACnBs5H,GAAe,EACfS,EAAa,GACb19I,EAAY,GAEZk3D,EAAe92C,EAAKmqI,cAAgBnqI,EAAKyqI,QACvCC,EAAiBd,GAAcppJ,QAAQrC,IAAS,EAGtD,GAAIusJ,EACF7N,GAAe,EACfS,EAAa/yB,GAAQpsH,GACrByB,EAAYqqJ,GAAejqI,QACtB,GAAI2pI,GAAWnpJ,QAAQrC,IAAS,EAAG,CACxC,IAAMwsJ,EAAWtvB,GAAUr7G,GAC3BpgB,EAAYqqJ,GAAejqI,GAE3B,IAAK,IAAIjc,EAAI,EAAG6mJ,EAAOD,EAASruJ,OAAQyH,EAAI6mJ,EAAM7mJ,IAAK,CACrD,IAAM8mJ,EAAUF,EAAS5mJ,GACzBnE,IAAcirJ,EAAQ5/B,UAAYrrH,GAClCirJ,EAAQvN,WAAa/yB,GAAQpsH,E,CAE/B0K,EAASA,EAAOnI,OAAOiqJ,E,CAGzB,GAAK7zF,GAAS4zF,EAAd,CASA,IAPA,IAAMpyI,EAAQ0iH,GAAWh7G,GACnB8qI,EAAahB,GAAchzF,GAC3Bi0F,EAAUD,EAAW7qJ,IACrB+qJ,EAAsBF,EAAWjiJ,OAEnCoiJ,OAAQ,EAEHnqH,EAAI,EAAGoqH,EAAOF,EAAQ1uJ,OAAQwkC,EAAIoqH,EAAMpqH,IAAK,CACpD,IAAMhgC,EAAQspJ,GAAWY,EAAQlqH,GAAIxoB,EAAO,CAC1CqyG,OAAQJ,GAAQpsH,KAElB0K,EAAOvI,KAAKQ,GACZmqJ,EAAWnqJ,C,CAKb,GAAIiqJ,EAAQzuJ,OAAQ,CAClB,IAAI6uJ,EAAaJ,EAAQ3/F,KAAK,MAC9B,GAAI6/F,EACFA,EAASrO,aAAeuO,MACnB,CACCrqJ,EAAqB,CACzBojH,UAAW,GACX04B,aAAcuO,EACd7yI,MAAK,GAEPukI,IAAiB/7I,EAAM+7I,aAAeA,GACtCS,IAAex8I,EAAMw8I,WAAaA,GAClC19I,IAAckB,EAAMmqH,UAAYrrH,GAChCiJ,EAAOvI,KAAKQ,E,EAhCsB,C,CAqCxC,OAAO+H,CACT,ECvIA,SAtDkB,SAACg2E,EAAkBjrE,GAA8B,YAA9B,IAAAA,IAAAA,EAAA,IAA8B,CAMjEhL,MAAK,SAAC2c,GAAN,WACM1c,EAAwB,GACpBwzH,EAAczoH,EAAM,UACtBsqE,EAASW,aAAE,EAAFA,EAAI2T,OACb8oC,EAAQe,EAAYA,EAAU92G,EAAK24D,GD0L7C,SAAgB34D,GACd,IAAMxV,EAAKM,SAASC,cAAc,SAClCP,EAAG4yE,UAAYp9D,EAGflV,SAASiC,KAAK8N,YAAYrQ,GAC1B,IAAMq7I,EAAQr7I,EAAGq7I,MAGjB,OAFA/6I,SAASiC,KAAKmH,YAAY1J,GAEnBsrH,GAAU+vB,EAClB,CCpMuD,CAAiB7lI,GAIrE,OAHA+1G,EAAMlqH,SAAQ,SAAA4O,GAAQ,OAACnX,EAASA,EAAOnI,OAAO,EAAKm+I,UAAU7+H,GAAvC,IACtB6+D,SAAAA,EAAIp/E,QAAQ,YAAa,CAAEw9B,MAAO1X,EAAK0O,OAAQprB,IAExCA,CACT,EAOAg2I,UAAS,SAAC7+H,GACA,IAAAkkG,EAAqBlkG,EAAI,UAAd1H,EAAU0H,EAAI,MAC7BnX,EAAS,CAACmX,GAEd,IAAI,IAAAnT,UAASq3G,GAAY,CACvB,IAAM,EAAuB,GACvBmnC,EAAarrI,EACb8qI,EAAahB,GAAc5lC,GAC3BonC,EAAYR,EAAWjiJ,OACvB+zI,EAAekO,EAAW7qJ,IAAImrD,KAAK,MACnC,EAAO,CAAEu/D,OAAQ0gC,EAAW1gC,OAAQM,UAAWogC,EAAWl3I,QAUhE,GARIm3I,EAAUhvJ,OACZgvJ,EAAUl6I,SAAQ,SAAAm6I,GAChB,EAAMjrJ,KAAK8pJ,GAAWmB,EAAUjzI,EAAO,GACzC,IAEA,EAAMhY,KAAK8pJ,GAAW,GAAI9xI,EAAO,IAG/BskI,EACe,EAAM,EAAMtgJ,OAAS,GAC7BsgJ,aAAeA,EAG1B/zI,EAAS,C,CAGX,OAAOA,CACT,EAnDiE,E,2fC0BnE,eAIE,WAAYg2E,GAAZ,MACE,YAAMA,EAAI,SAAU,KAAS,KACrBjrE,EAAW,EAAI,O,OACvB,EAAKyoH,UAAY,GAAUx9C,EAAIjrE,GAC/B,EAAK4oH,WAAa,GAAW39C,EAAIjrE,G,CACnC,CA+CF,OAxD0C,QAqCxC,YAAAqsH,UAAA,SAAUhjG,EAAez+B,QAAA,IAAAA,IAAAA,EAAA,IACjB,IAAEqgF,EAAmBljF,KAAjB,GAAE6gI,EAAe7gI,KAAL,WAEtB,OADA6gI,EAAWhC,UAAa37C,EAAGuR,WAAW2+C,YAAc,CAAC,EAC9CvS,EAAW5zH,MAAMq0B,EAAOthC,KAAK0gI,UAAW79H,EACjD,EAUA,YAAAigJ,SAAA,SAASxhH,GACP,OAAOthC,KAAK0gI,UAAUzzH,MAAMq0B,EAC9B,EAEA,YAAAjyB,QAAA,WAAW,EACb,EAxDA,CAA0C,G,YC2E1C,SA3BqC,CACnC/E,GAAI,OACJ9H,KAAM,QACNqtJ,UAAU,EACVC,UAAU,EACVC,gBAAiB,EACjBC,UAAU,EACVC,QAAS,SAAAv3I,GAAQ,OAAAA,CAAA,EACjBmzG,OAAQ,SAAAnzG,GAAQ,OAAAA,CAAA,EAChB7V,QAAS,CACP4zE,MAAO,CACLp1E,IAAK,aACL6uJ,YAAY,GAEdC,OAAQ,CACNC,QAAS,CAAC,EACVC,SAAU,GACVC,QAAS,GACTC,iBAAiB,EACjBC,aAAc,GACdC,YAAa,UACbR,QAAS,SAAAv3I,GAAQ,OAAAA,CAAA,EACjBmzG,OAAQ,SAAA3+G,GAAU,OAAAA,CAAA,K,u7CCrFxB,wBA0BA,QAzBQ,YAAAqvF,MAAN,SAAY7jF,EAAmB7O,G,YAAA,IAAAA,IAAAA,EAAA,I,8DAI7B,OAHI7J,KAAK0wJ,SAAS7mJ,GAAM,IACtB8mJ,aAAaC,QAAQ/mJ,EAAKxI,IAAMuX,KAAKC,UAAUH,IAE1C,CAAP,EAAOA,E,QAGH,YAAA2zG,KAAN,SAAWxiH,G,YAAA,IAAAA,IAAAA,EAAA,I,oEAOT,OANIqD,EAAS,CAAC,EAEVlN,KAAK0wJ,SAAS7mJ,GAAM,KACtBqD,EAAS0L,KAAK3L,MAAM0jJ,aAAaE,QAAQhnJ,EAAKxI,MAAS,OAGlD,CAAP,EAAO6L,E,QAGT,YAAAwjJ,SAAA,SAAS7mJ,EAA+BinJ,GACtC,QADO,IAAAjnJ,IAAAA,EAAA,IACHA,EAAKqmJ,eAAgB,IAAA1xD,YAAamyD,cAAe,CACnD,GAAIG,EAAK,MAAM,IAAI/+I,MAAM,8BACzB,OAAO,C,CAGT,OAAO,CACT,EACF,EA1BA,GCjBe,SAASg/I,GAAQ/vJ,GAG9B,OAAO+vJ,GAAU,mBAAqBl+I,QAAU,iBAAmBA,OAAOC,SAAW,SAAU9R,GAC7F,cAAcA,CAChB,EAAI,SAAUA,GACZ,OAAOA,GAAO,mBAAqB6R,QAAU7R,EAAI2O,cAAgBkD,QAAU7R,IAAQ6R,OAAOxS,UAAY,gBAAkBW,CAC1H,EAAG+vJ,GAAQ/vJ,EACb,CCcA,SAnBA,SAA4B4I,GAC1B,IAAI+F,EAAc3P,KAAK2P,YACvB,OAAO3P,KAAKgxJ,MACV,SAAStpJ,GAEP,OAAOiI,EAAYymG,QAAQxsG,KAAYonJ,MAAK,WAC1C,OAAOtpJ,CACT,GACF,IACA,SAASo4I,GAEP,OAAOnwI,EAAYymG,QAAQxsG,KAAYonJ,MAAK,WAE1C,OAAOrhJ,EAAYwG,OAAO2pI,EAC5B,GACF,GAEJ,EC4BA,SAhDA,SAAoBj/I,GAElB,OAAO,IADCb,MACK,SAASo2G,EAASjgG,GAC7B,IAAMtV,QAA6B,IAAfA,EAAIF,OACtB,OAAOwV,EACL,IAAIsnG,UACF,GAAO58G,GACL,IACAA,EACA,mEAIR,IAAIH,EAAON,MAAMC,UAAUC,MAAMM,KAAKC,GACtC,GAAoB,IAAhBH,EAAKC,OAAc,OAAOy1G,EAAQ,IACtC,IAAI5qG,EAAY9K,EAAKC,OAErB,SAASyD,EAAIvE,EAAGoG,GACd,GAAIA,IAAuB,WAAf,GAAOA,IAAmC,mBAARA,GAAqB,CACjE,IAAI+qJ,EAAO/qJ,EAAI+qJ,KACf,GAAoB,mBAATA,EAaT,YAZAA,EAAKpwJ,KACHqF,GACA,SAASA,GACP7B,EAAIvE,EAAGoG,EACT,IACA,SAASiF,GACPxK,EAAKb,GAAK,CAAE0+F,OAAQ,WAAYuhD,OAAQ50I,GACpB,KAAdM,GACJ4qG,EAAQ11G,EAEZ,GAIN,CACAA,EAAKb,GAAK,CAAE0+F,OAAQ,YAAa72F,MAAOzB,GACpB,KAAduF,GACJ4qG,EAAQ11G,EAEZ,CAEA,IAAK,IAAIb,EAAI,EAAGA,EAAIa,EAAKC,OAAQd,IAC/BuE,EAAIvE,EAAGa,EAAKb,GAEhB,GACF,EC3CA,SAASoxJ,GAAeC,EAAQC,GAC7BnxJ,KAAK2J,KAAO,iBAAoB3J,KAAKkxJ,OAASA,EAC/ClxJ,KAAKmxJ,QAAUA,GAAW,EAC5B,CACAF,GAAe5wJ,UAAY0R,MAAM1R,UAmCjC,SAjCA,SAAaQ,GACX,IAAIuwJ,EAAIpxJ,KACR,OAAO,IAAIoxJ,GAAE,SAASh7C,EAASjgG,GAC7B,IAAMtV,QAA6B,IAAfA,EAAIF,OACtB,OAAOwV,EAAO,IAAIsnG,UAAU,iCAG9B,IAAI/8G,EAAON,MAAMC,UAAUC,MAAMM,KAAKC,GACtC,GAAoB,IAAhBH,EAAKC,OAAc,OAAOwV,IAG9B,IADA,IAAIk7I,EAAmB,GACdxxJ,EAAI,EAAGA,EAAIa,EAAKC,OAAQd,IAC/B,IACEuxJ,EAAEh7C,QAAQ11G,EAAKb,IACZmxJ,KAAK56C,GACLk7C,OAAM,SAASxmJ,GACdumJ,EAAiB1sJ,KAAKmG,GAClBumJ,EAAiB1wJ,SAAWD,EAAKC,QACnCwV,EACE,IAAI86I,GACFI,EACA,8BAIR,GAGJ,CAFE,MAAOE,GACPp7I,EAAOo7I,EACT,CAEJ,GACF,EClCA,IAAIC,GAAiBjqI,WAErB,SAASrmB,GAAQ2yB,GACf,OAAO2xD,QAAQ3xD,QAAyB,IAAbA,EAAElzB,OAC/B,CAEA,SAASg7G,KAAQ,CAajB,SAAS81C,GAAQjxJ,GACf,KAAMR,gBAAgByxJ,IACpB,MAAM,IAAIh0C,UAAU,wCACtB,GAAkB,mBAAPj9G,EAAmB,MAAM,IAAIi9G,UAAU,kBAElDz9G,KAAK0xJ,OAAS,EAEd1xJ,KAAK2xJ,UAAW,EAEhB3xJ,KAAKiqG,YAAS5kG,EAEdrF,KAAK4xJ,WAAa,GAElBC,GAAUrxJ,EAAIR,KAChB,CAEA,SAASwsD,GAAO5jD,EAAMkpJ,GACpB,KAAuB,IAAhBlpJ,EAAK8oJ,QACV9oJ,EAAOA,EAAKqhG,OAEM,IAAhBrhG,EAAK8oJ,QAIT9oJ,EAAK+oJ,UAAW,EAChBF,GAAQM,cAAa,WACnB,IAAI/8I,EAAqB,IAAhBpM,EAAK8oJ,OAAeI,EAASE,YAAcF,EAASG,WAC7D,GAAW,OAAPj9I,EAAJ,CAIA,IAAI29D,EACJ,IACEA,EAAM39D,EAAGpM,EAAKqhG,OAIhB,CAHE,MAAO/+F,GAEP,YADAiL,GAAO27I,EAASI,QAAShnJ,EAE3B,CACAkrG,GAAQ07C,EAASI,QAASv/E,EAR1B,MAFmB,IAAhB/pE,EAAK8oJ,OAAet7C,GAAUjgG,IAAQ27I,EAASI,QAAStpJ,EAAKqhG,OAWlE,KAlBErhG,EAAKgpJ,WAAWjtJ,KAAKmtJ,EAmBzB,CAEA,SAAS17C,GAAQxtG,EAAM+qG,GACrB,IAEE,GAAIA,IAAa/qG,EACf,MAAM,IAAI60G,UAAU,6CACtB,GACE9J,IACqB,WAApB,GAAOA,IAA6C,mBAAbA,GACxC,CACA,IAAIq9C,EAAOr9C,EAASq9C,KACpB,GAAIr9C,aAAoB89C,GAItB,OAHA7oJ,EAAK8oJ,OAAS,EACd9oJ,EAAKqhG,OAAS0J,OACdw+C,GAAOvpJ,GAEF,GAAoB,mBAATooJ,EAEhB,YADAa,IApEMrxJ,EAoESwwJ,EApELxjD,EAoEWmG,EAnEpB,WACLnzG,EAAGD,MAAMitG,EAASrsG,UACpB,GAiEsCyH,EAGpC,CACAA,EAAK8oJ,OAAS,EACd9oJ,EAAKqhG,OAAS0J,EACdw+C,GAAOvpJ,EAGT,CAFE,MAAOsC,GACPiL,GAAOvN,EAAMsC,EACf,CA7EF,IAAc1K,EAAIgtG,CA8ElB,CAEA,SAASr3F,GAAOvN,EAAM+qG,GACpB/qG,EAAK8oJ,OAAS,EACd9oJ,EAAKqhG,OAAS0J,EACdw+C,GAAOvpJ,EACT,CAEA,SAASupJ,GAAOvpJ,GACM,IAAhBA,EAAK8oJ,QAA2C,IAA3B9oJ,EAAKgpJ,WAAWjxJ,QACvC8wJ,GAAQM,cAAa,WACdnpJ,EAAK+oJ,UACRF,GAAQW,sBAAsBxpJ,EAAKqhG,OAEvC,IAGF,IAAK,IAAIpqG,EAAI,EAAG4rB,EAAM7iB,EAAKgpJ,WAAWjxJ,OAAQd,EAAI4rB,EAAK5rB,IACrD2sD,GAAO5jD,EAAMA,EAAKgpJ,WAAW/xJ,IAE/B+I,EAAKgpJ,WAAa,IACpB,CAKA,SAASS,GAAQL,EAAaC,EAAYC,GACxClyJ,KAAKgyJ,YAAqC,mBAAhBA,EAA6BA,EAAc,KACrEhyJ,KAAKiyJ,WAAmC,mBAAfA,EAA4BA,EAAa,KAClEjyJ,KAAKkyJ,QAAUA,CACjB,CAQA,SAASL,GAAUrxJ,EAAIoI,GACrB,IAAIwK,GAAO,EACX,IACE5S,GACE,SAASkH,GACH0L,IACJA,GAAO,EACPgjG,GAAQxtG,EAAMlB,GAChB,IACA,SAASo4I,GACH1sI,IACJA,GAAO,EACP+C,GAAOvN,EAAMk3I,GACf,GAMJ,CAJE,MAAOyR,GACP,GAAIn+I,EAAM,OACVA,GAAO,EACP+C,GAAOvN,EAAM2oJ,EACf,CACF,CAEAE,GAAQpxJ,UAAU,SAAW,SAAS4xJ,GACpC,OAAOjyJ,KAAKgxJ,KAAK,KAAMiB,EACzB,EAEAR,GAAQpxJ,UAAU2wJ,KAAO,SAASgB,EAAaC,GAE7C,IAAIK,EAAO,IAAItyJ,KAAK2P,YAAYgsG,IAGhC,OADAnvD,GAAOxsD,KAAM,IAAIqyJ,GAAQL,EAAaC,EAAYK,IAC3CA,CACT,EAEAb,GAAQpxJ,UAAU,WAAakyJ,GAE/Bd,GAAQrwJ,IAAM,SAASP,GACrB,OAAO,IAAI4wJ,IAAQ,SAASr7C,EAASjgG,GACnC,IAAKjV,GAAQL,GACX,OAAOsV,EAAO,IAAIsnG,UAAU,iCAG9B,IAAI/8G,EAAON,MAAMC,UAAUC,MAAMM,KAAKC,GACtC,GAAoB,IAAhBH,EAAKC,OAAc,OAAOy1G,EAAQ,IACtC,IAAI5qG,EAAY9K,EAAKC,OAErB,SAASyD,EAAIvE,EAAGoG,GACd,IACE,GAAIA,IAAuB,WAAf,GAAOA,IAAmC,mBAARA,GAAqB,CACjE,IAAI+qJ,EAAO/qJ,EAAI+qJ,KACf,GAAoB,mBAATA,EAQT,YAPAA,EAAKpwJ,KACHqF,GACA,SAASA,GACP7B,EAAIvE,EAAGoG,EACT,GACAkQ,EAIN,CACAzV,EAAKb,GAAKoG,EACU,KAAduF,GACJ4qG,EAAQ11G,EAIZ,CAFE,MAAO6wJ,GACPp7I,EAAOo7I,EACT,CACF,CAEA,IAAK,IAAI1xJ,EAAI,EAAGA,EAAIa,EAAKC,OAAQd,IAC/BuE,EAAIvE,EAAGa,EAAKb,GAEhB,GACF,EAEA4xJ,GAAQp7I,IAAMA,GAEdo7I,GAAQe,WAAaA,GAErBf,GAAQr7C,QAAU,SAAS1uG,GACzB,OAAIA,GAA0B,WAAjB,GAAOA,IAAsBA,EAAMiI,cAAgB8hJ,GACvD/pJ,EAGF,IAAI+pJ,IAAQ,SAASr7C,GAC1BA,EAAQ1uG,EACV,GACF,EAEA+pJ,GAAQt7I,OAAS,SAASzO,GACxB,OAAO,IAAI+pJ,IAAQ,SAASr7C,EAASjgG,GACnCA,EAAOzO,EACT,GACF,EAEA+pJ,GAAQgB,KAAO,SAAS5xJ,GACtB,OAAO,IAAI4wJ,IAAQ,SAASr7C,EAASjgG,GACnC,IAAKjV,GAAQL,GACX,OAAOsV,EAAO,IAAIsnG,UAAU,kCAG9B,IAAK,IAAI59G,EAAI,EAAG4rB,EAAM5qB,EAAIF,OAAQd,EAAI4rB,EAAK5rB,IACzC4xJ,GAAQr7C,QAAQv1G,EAAIhB,IAAImxJ,KAAK56C,EAASjgG,EAE1C,GACF,EAGAs7I,GAAQM,aAEmB,mBAAjBW,cACN,SAASlyJ,GAEPkyJ,aAAalyJ,EACf,GACF,SAASA,GACPgxJ,GAAehxJ,EAAI,EACrB,EAEFixJ,GAAQW,sBAAwB,SAA+B//C,GACtC,oBAAZ8wC,SAA2BA,SACpCA,QAAQl/C,KAAK,wCAAyCoO,EAE1D,EAEA,aC7PI,IAAA7T,YACFz+F,OAAO0xJ,QAAU1xJ,OAAO0xJ,SAAW,IAGrC,SAA+B,mBAAThjJ,MAElBA,MAAM1C,OACN,SAACuD,EAAazM,GAEZ,OAAO,IAAI,IAAQ,SAACuB,EAAKuuJ,GACvB,IAAM18C,EAAM,IAAI28C,eAIhB,IAAK,IAAIztH,KAHT8wE,EAAI94F,KAAKta,EAAQoM,QAAU,MAAOK,GAClC2mG,EAAI48C,gBAAyC,WAAvBhwJ,EAAQ4tJ,YAEhB5tJ,EAAQutJ,SAAW,CAAC,EAChCn6C,EAAIj9F,iBAAiBmsB,EAAGtiC,EAAQutJ,QAAQjrH,IAG1C8wE,EAAIriD,OAAS,SAAA1oD,GACX,OAAA9G,EAAI,CACFm6F,OAAQ0X,EAAI1X,OACZu0D,WAAY78C,EAAI68C,WAChB/xI,KAAM,WAAM,kBAAgBk1F,EAAI88C,aAApB,GAHd,EAKF98C,EAAItiD,QAAUg/F,EAGV18C,EAAI+8C,QAAUnwJ,EAAQowJ,aACxBh9C,EAAI+8C,OAAOE,WAAarwJ,EAAQowJ,YAIlCpwJ,EAAQia,KAAOm5F,EAAIk9C,KAAKtwJ,EAAQia,MAAQm5F,EAAIk9C,MAC9C,GACF,E,qqDCwBJ,wBA8DA,QA7DQ,YAAA52D,MAAN,SAAY7jF,EAAmB7O,G,YAAA,IAAAA,IAAAA,EAAA,I,qFACtB,SAAM7J,KAAKozJ,QAAQvpJ,EAAKwmJ,SAAWrwJ,KAAKqzJ,QAAQxpJ,EAAM6O,GAAO7O,I,OAApE,MAAO,CAAP,EAAO,U,QAGH,YAAAwiH,KAAN,SAAWxiH,G,YAAA,IAAAA,IAAAA,EAAA,I,qFACF,SAAM7J,KAAKozJ,QAAQvpJ,EAAKymJ,QAAUtwJ,KAAKqzJ,QAAQxpJ,GAAOA,I,OAA7D,MAAO,CAAP,EAAO,U,QAGT,YAAAupJ,QAAA,SAAQ9jJ,EAAawZ,EAAyBjf,GAC5C,YADmB,IAAAif,IAAAA,EAAA,SAAyB,IAAAjf,IAAAA,EAAA,IACrC,GAAMyF,EAAKwZ,GACfkoI,MAAK,SAAC5sJ,GACL,IAAM8I,EAAS9I,EAAI2c,OAEnB,OAD0C,IAA3B3c,EAAIm6F,OAAS,IAAO,GACrBrxF,EAASA,EAAO8jJ,KAAKS,QAAQt7I,OAC7C,IACC66I,MAAK,SAACjwI,GACL,IAAMuyI,EAAWvyI,IAAQ,IAAA7P,UAAS6P,GAClC,OAAOlX,EAAK0mJ,iBAAmB+C,EAAW16I,KAAK3L,MAAM8T,GAAQA,CAC/D,GACJ,EAEA,YAAAsyI,QAAA,SAAQxpJ,EAAgC6O,QAAhC,IAAA7O,IAAAA,EAAA,IACN,IAKIiT,EALEy2I,EAAW1pJ,EAAK0mJ,gBAChBH,EAAUvmJ,EAAKumJ,SAAW,CAAC,EAC3BoD,EAAY3pJ,EAAK2mJ,cAAgB,CAAC,EAClCiD,EAAU,mBACVC,EAAW,eAWjB,IARI,IAAA9pE,aAAYwmE,EAAQqD,MACtBrD,EAAQqD,GAAW,mBAGjB,IAAA7pE,aAAYwmE,EAAQsD,KAAcH,IACpCnD,EAAQsD,GAAY,mCAGlBh7I,EACF,GAAI66I,EACFz2I,EAAOlE,KAAKC,UAAUH,QAItB,IAAK,IAAIrX,KAFTyb,EAAO,IAAI62I,SAEKj7I,EACdoE,EAAKk2E,OAAO3xF,EAAKqX,EAAKrX,IAK5B,IAAM6L,EAAsB,CAC1B+B,OAAQ6N,EAAO,OAAS,MACxB2zI,YAAa5mJ,EAAK4mJ,YAClBL,QAAO,EACPtzI,KAAI,GAGN,OAAO,SACF5P,IACC,IAAA7K,YAAWmxJ,GAAaA,EAAUtmJ,GAAUsmJ,EAEpD,EACF,EA9DA,G,mpECYMI,GAAa,gBACbC,GAAa,gBACbC,GAAW,cACXC,GAAa,gBAEbC,GAAgB,QAChBC,GAAiB,SAEvB,eAKE,WAAY/wE,GAAZ,MACE,YAAMA,EAAI,iBAAkB,KAAS,KAHvC,EAAAgxE,SAAqC,CAAC,EAI5B,IAAAj8I,EAAW,EAAI,O,OACnBA,EAAOgtG,WAAUhtG,EAAOzV,UAAO6C,GACnC,EAAK6uJ,SAAW,CAAC,EACjB,EAAK5vJ,IAAI0vJ,GAAe,IAAI,IAC5B,EAAK1vJ,IAAI2vJ,GAAgB,IAAI,IAC7B,EAAKE,WAAWl8I,EAAOzV,M,CACzB,CAwTF,OArU4C,QA0B1C,YAAA4xJ,WAAA,WACE,QAASp0J,KAAKiY,OAAO43I,QACvB,EAMA,YAAAwE,YAAA,SAAY3sJ,GAEV,OADA1H,KAAKiY,OAAO43I,WAAanoJ,EAClB1H,IACT,EAMA,YAAAs0J,mBAAA,WACE,OAAOt0J,KAAKiY,OAAO83I,eACrB,EAMA,YAAAwE,mBAAA,SAAmB7sJ,GAEjB,OADA1H,KAAKiY,OAAO83I,gBAAkBroJ,EACvB1H,IACT,EAkBA,YAAAsE,IAAA,SAA8B9B,EAAcgyJ,GAG1C,OADAx0J,KAAKk0J,SAAS1xJ,GAAQgyJ,EACfx0J,IACT,EAOA,YAAA2D,IAAA,SAA8BnB,GAC5B,OAAOxC,KAAKk0J,SAAS1xJ,EACvB,EAMA,YAAAiyJ,YAAA,WACE,OAAOz0J,KAAKk0J,QACd,EAMA,YAAAQ,WAAA,WACE,OAAO10J,KAAKiY,OAAO08I,cACrB,EAMA,YAAAR,WAAA,SAAW3xJ,GAET,OADAxC,KAAK4mF,YAAY+tE,eAAiBnyJ,EAC3BxC,IACT,EAEA,YAAA40J,kBAAA,WACE,OAAO50J,KAAK2D,IAAI3D,KAAK00J,aACvB,EAOA,YAAAG,kBAAA,SAAkBryJ,GAChB,OAAOxC,KAAK80J,kBAAkBtyJ,EAChC,EAWM,YAAA+5F,MAAN,SAAY7jF,EAAmB7V,G,YAAA,IAAAA,IAAAA,EAAA,I,mGACvBizB,EAAK91B,KAAK40J,oBACV/qJ,EAAO,SAAK7J,KAAK80J,qBAAwBjyJ,GACzCmtJ,EAAWhwJ,KAAK+0J,qBAChBC,EAAeh1J,KAAK80J,kBAAkBd,I,iBAG1C,O,sBAAA,GAAMh0J,KAAKi1J,OAAOn/H,EAAKjsB,EAAM6O,I,cAA7B,SACAs3I,EAAa,GAAMhwJ,KAAKi1J,OAAOjF,EAAUgF,EAAc,CAAC,IAAxD,M,OAAa,S,sDAEThF,EACF,GAAMhwJ,KAAKi1J,OAAOjF,EAAUgF,EAAct8I,IADxC,M,cACF,S,aAEA,MAAM,E,0BAIV,MAAO,CAAP,EAAOA,G,QAWH,YAAA2zG,KAAN,SAAWxpH,G,YAAA,IAAAA,IAAAA,EAAA,I,0GACHizB,EAAK91B,KAAK40J,oBACV/qJ,EAAO,SAAK7J,KAAK80J,qBAAwBjyJ,IACzCqyJ,EAAkBl1J,KAAK+0J,sBAIN,GAAM/0J,KAAKi1J,OAAOC,EAAiBl1J,KAAK80J,kBAAkBd,MAD7E,M,UACImB,EAAe,UAChB,IAAA7vJ,SAAQ6vJ,GAAT,Y,iBAEA,O,sBAAA,GAAMn1J,KAAKo1J,iB,cAAX,SACAloJ,EAASioJ,E,iDAKVjoJ,EAAD,MACO,GAAMlN,KAAKi1J,OAAOn/H,EAAKjsB,I,OAAhCqD,EAAS,S,iBAGX,MAAO,CAAP,EAAOA,GAAU,CAAC,G,QAGpB,YAAAkoJ,cAAA,WACU,IAAAlyE,EAAOljF,KAAI,GACbgwJ,EAAWhwJ,KAAKq1J,cAEtB,OAAO,IAAI5D,SAAQ,SAACrtJ,EAAKuuJ,IACnB,IAAAtwJ,YAAW2tJ,GACbA,EAAS5rJ,EAAKuuJ,EAAKzvE,aAAE,EAAFA,EAAIzwB,aAEvB6iG,QAAQpyE,aAAE,EAAFA,EAAI5vB,EAAE,2BAA6BlvD,EAAI,MAAQuuJ,GAE3D,GACF,EAEA,YAAA0C,YAAA,WACE,OAAOr1J,KAAKiY,OAAO+3I,QACrB,EAEA,YAAA+E,mBAAA,WAEE,OADiB/0J,KAAKq1J,eACHr1J,KAAK00J,eAAiBT,IAAkBj0J,KAAK2D,IAAIqwJ,GACtE,EAEM,YAAAiB,OAAN,SAAaT,EAAmB3qJ,EAAsB6O,G,gIAOpD,GANMlM,EAAKkM,EAAO,QAAU,OACtB,EAAsB1Y,KAAK4mF,YAAzBqpE,EAAO,UAAEpkC,EAAM,SAGvB7rH,KAAK0jF,QAAQl3E,EAAIkM,IAEZ87I,EACH,MAAO,CAAP,EAAO97I,GAAQ,CAAC,G,gDAIV6pE,EAAgB,QAAP,EAAAviF,KAAKkjF,UAAE,eAAEzwB,YACpB8iG,OAAQ,EAER78I,GACa,EAAAu3I,GAAY,GAAMA,EAAQv3I,EAAM6pE,IAAhC,MADb,M,OACwB,EAAC,S,wBAAvBizE,EAAU,GAA8C98I,GACjD,EAAA7O,EAAKomJ,SAAY,GAAMpmJ,EAAKomJ,QAAQuF,EAASjzE,IAA7C,M,OAAgB,EAAC,S,iBACjB,OADXizE,EAAU,GAA2DA,EAC1D,GAAMhB,EAAQj4D,MAAMi5D,EAAS3rJ,I,cAAxC0rJ,EAAW,SACXroJ,EAASwL,E,cAEE,SAAM87I,EAAQnoC,KAAKxiH,I,cAA9B0rJ,EAAW,SACXroJ,EAASlN,KAAKy1J,YAAYF,IAChB,EAAA1rJ,EAAKgiH,QAAW,GAAMhiH,EAAKgiH,OAAO3+G,EAAQq1E,IAA1C,O,OAAe,EAAC,S,0BAA1Br1E,EAAS,GAAwDA,GACvD,EAAA2+G,GAAW,GAAMA,EAAO3+G,EAAQq1E,IAAhC,O,QAAU,EAAC,S,mBAArBr1E,EAAS,GAA8CA,E,0BAEzDlN,KAAK01J,QAAQlpJ,EAAIU,EAAQqoJ,GACzBv1J,KAAK4jF,MAAMp3E,EAAIU,G,eAGf,M,WADAlN,KAAKk5I,QAAQ1sI,EAAI,GACX,E,QAGR,MAAO,CAAP,EAAOU,G,QAGT,YAAAuoJ,YAAA,SAAY/8I,QAAA,IAAAA,IAAAA,EAAA,IACV,IAAMT,EAASjY,KAAK4mF,YACd8qD,EAAM,IAAIp3H,OAAO,WAAIrC,EAAO3N,KAC5B4C,EAAsB,CAAC,EAE7B,IAAK,IAAIyoJ,KAAWj9I,EAAM,CAExBxL,EADiByoJ,EAAQlmJ,QAAQiiI,EAAK,KACnBh5H,EAAKi9I,E,CAG1B,OAAOzoJ,CACT,EAEA,YAAA4nJ,kBAAA,SAAkBtyJ,GAChB,IAAMyV,EAASjY,KAAK4mF,YACd34E,EAAUzL,GAAQxC,KAAK00J,aAC7B,OAAOz8I,EAAOpV,QAASoL,IAAY,CAAC,CACtC,EAMA,YAAAy1E,QAAA,SAAQjjF,EAAaiY,GACX,IAAAwqE,EAAOljF,KAAI,GACfkjF,IACFA,EAAGp/E,QAAQ8vJ,IACXnzJ,GAAOyiF,EAAGp/E,QAAQ,UAAG8vJ,GAAU,YAAInzJ,GAAOiY,GAE9C,EAMA,YAAAg9I,QAAA,SAAQj1J,EAAaiY,EAAmB68I,GAC9B,IAAAryE,EAAOljF,KAAI,GACfkjF,IACFA,EAAGp/E,QAAQ+vJ,IACX3wE,EAAGp/E,QAAQ,UAAG+vJ,GAAU,YAAIpzJ,GAAOiY,EAAM68I,GACzCryE,EAAGp/E,QAAQ,kBAAWrD,GAAOiY,EAAM68I,GAEvC,EAMA,YAAA3xE,MAAA,SAAMnjF,EAAaiY,GACT,IAAAwqE,EAAOljF,KAAI,GACfkjF,IACFA,EAAGp/E,QAAQgwJ,IACXrzJ,GAAOyiF,EAAGp/E,QAAQ,UAAGgwJ,GAAQ,YAAIrzJ,GAAOiY,GAE5C,EAMA,YAAAwgI,QAAA,SAAQz4I,EAAaiY,GACX,IAAAwqE,EAAOljF,KAAI,GACfkjF,IACFA,EAAGp/E,QAAQiwJ,GAAYr7I,GACvBjY,GAAOyiF,EAAGp/E,QAAQ,UAAGiwJ,GAAU,YAAItzJ,GAAOiY,GAC1C1Y,KAAK4jF,MAAMnjF,EAAKiY,GAEpB,EAOA,YAAAk9I,YAAA,WAEE,QADgB51J,KAAK40J,uBACC50J,KAAKiY,OAAO63I,QACpC,EAEA,YAAAzgJ,QAAA,WACErP,KAAKk0J,SAAW,CAAC,CACnB,EACF,EArUA,CAA4C,G,YCpD5C,SAPmC,CACjChwE,YAAa,OACb0N,SAAU,GACVy2C,cAAe,CAAC,CAAE3gI,OAAO,GAAS,CAAEA,MAAO,WAC3CmpF,QAAQ,G,mvBCpBV,eAmCE,WAAY16D,QAAA,IAAAA,IAAAA,EAAA,IAAZ,MACE,YAAMA,IAAE,KArBV,EAAAzsB,OAAc,CAAC,EAEf,EAAAmsJ,aAAc,EAoBJ,MAAgB1/H,EAAC,OAAjBle,OAAM,IAAG,GAAC,EAAC,EACb,EAA0B,EAAxB9S,EAAK,QAAE2wJ,EAAY,eACnBvvI,EAAWphB,EAAK,OAChB3C,EAAS2C,EAAM6B,WAAU,KACjC,EAAKiR,OAASA,EACd,EAAKirE,GAAKjrE,EAAOirE,GACjB,EAAKK,KAAOtrE,EAAOksE,cAAgB,GACnC,EAAKF,IAAM,EAAKV,KAAOtrE,EAAOisE,aAAe,GAC7C,EAAK39D,OAASA,EACN,IAAAg9D,EAAS,EAAI,K,OACrB,EAAKwyE,SAAW,UAAGxyE,EAAI,iBAASA,EAAI,iBAAS/gF,GACT,CAClC,CAAC,eAAgB,EAAKwzJ,eACtB,CAAC,SAAU,EAAKC,aAEPxgJ,SAAQ,SAAC,G,IAAC9C,EAAK,KAAEi/H,EAAG,KAC7BzsI,EAAMgG,IAAIwH,EAAOi/H,GACjB,EAAKpnI,SAASrF,EAAOwN,EAAOi/H,EAC9B,IACAzsI,EAAMm9B,KAAO,EACb,EAAK93B,SAASrF,EAAO,eAAgB,EAAK0O,QAC1C,EAAKrJ,SAASrF,EAAO,qBAAsB,EAAK+wJ,UAChD,EAAKxsJ,OAAS,CAAC,EACfosJ,EAAargJ,SAAQ,SAAA9C,GAAS,OAAC,EAAKjJ,OAAOiJ,GAAS,UAAtB,IAC9B,EAAKwB,iBACL,EAAK6tC,O,CACP,CAoOF,OAnSuC,QAoBrC,YAAAh7C,WAAA,WACE,OAAOhH,KAAKmF,MAAMxB,IAAI,eAAiB,CAAC,CAC1C,EAEA,YAAAwyJ,cAAA,SAAcziI,GACJ,IAAA6vD,EAASvjF,KAAI,KACf0sE,EAAQ1sE,KAAKimI,WACnB,MAAO,uBAAe1iD,EAAI,2BAAiB7W,EAAK,cAAKA,EAAK,SAC5D,EAEA,YAAA0pF,cAAA,SAAc19I,GACJ,IAAAq9I,EAAa/1J,KAAI,SACzB,MAAO,uBAAe+1J,EAAQ,uBAChC,EAgCA,YAAAM,WAAA,WACE,MAAO,CACL/wE,UAAWtlF,KAAKumB,OAChB4gH,MAAOnnI,KAAKmF,MACZmxJ,QAASt2J,KAAKu2J,eAElB,EAEA,YAAAN,WAAA,WACEj2J,KAAKoF,SACLpF,KAAKsQ,SACP,EAEA,YAAA0xC,KAAA,WAAQ,EACR,YAAA1xC,QAAA,WAAW,EACX,YAAAwmF,SAAA,SAAShuE,GAA6C,EACtD,YAAA0tI,SAAA,SAAS1tI,GAA6C,EACtD,YAAA2tI,QAAA,SAAQ3tI,GAAgE,EAMxE,YAAA4tI,SAAA,SAAS/jJ,GACP,IAAMyB,EAAKpU,KAAKu2J,eACZniJ,KAAO,IAAAw1E,aAAYx1E,EAAG1M,QACxB1H,KAAKmF,MAAMM,IAAI,QAAS2O,EAAG1M,OAE7B1H,KAAKy2J,QAAQ,SACRz2J,KAAKq2J,cAAY,CACpB1jJ,MAAK,IAET,EAEA,YAAAgkJ,kBAAA,WACE,OAAO32J,KAAKmF,MAAMxB,IAAI,QACxB,EAEA,YAAAizJ,cAAA,SAAclvJ,GACZ,IAAM0M,EAAKpU,KAAKu2J,eAChBniJ,IAAOA,EAAG1M,MAAQA,EACpB,EAMA,YAAAsuJ,cAAA,SAAc7wJ,EAAcuC,EAAemC,GACzC,QADyC,IAAAA,IAAAA,EAAA,IACrCA,EAAK69H,WACP1nI,KAAK42J,cAAczxJ,EAAMxB,IAAI,UAC7B3D,KAAK62J,iBACA,CACL,IAAM5wJ,EAAMjG,KAAK22J,oBACjBxxJ,EAAMiiI,eAAenhI,EAAK4D,E,CAE9B,EAMA,YAAAitJ,YAAA,WACQ,IAAEnjJ,EAAgB3T,KAAb,IAAEumB,EAAWvmB,KAAL,OACb0sE,EAAQ1sE,KAAKimI,WACf8wB,EAA4B/2J,KAAKm2J,cAAc5vI,GAE/CvmB,KAAKg3J,cACPD,EACE/2J,KAAKg3J,YAAY,CACftqF,MAAK,EACL4Y,UAAW/+D,EACX4gH,MAAOnnI,QACH,IAGV2T,EAAIC,KAAK,gBAAgBo/E,OAAO+jE,EAClC,EAOA,YAAA9wB,SAAA,WACU,IAAA/iD,EAAOljF,KAAI,GACb,EAAkBA,KAAKmF,MAAM6B,WAA3B0lE,EAAK,QAAE/iE,EAAI,OACnB,OAAOu5E,EAAG5vB,EAAE,qCAA8B3pD,MAAW,IAAAsrG,YAAWvoC,GAAS/iE,GAAM8F,QAAQ,KAAM,IAC/F,EAKA,YAAA40G,aAAA,WACE,OAAOrkH,KAAKumB,MACd,EAOA,YAAAsiI,WAAA,WACE,IAAK7oJ,KAAK4qJ,OAAQ,CACV,IAAE1nE,EAAcljF,KAAZ,GAAEmF,EAAUnF,KAAL,MACXkmH,EAAK/gH,EACH,EAASA,EAAM6B,WAAU,KAC3B+nE,EAAcm3C,EAAGviH,IAAI,gBAAkBuiH,EAAGviH,IAAI,YAAc,GAC5DnB,EAAO0jH,EAAGviH,IAAI,SAAW,OACzBwM,EAAM+1G,EAAGviH,IAAI,OACbwI,EAAM+5G,EAAGviH,IAAI,OACb+D,EAAQ1H,KAAKi3J,gBACb31H,GAAkC,gBAAE,wBAAgB9+B,EAAI,QACxD00J,EAAWh0E,EAAG5vB,EAAE,yCAAkC,KAAW,CAAC,EACpEhyB,EAAM95B,KAAK,IACTunE,YAAW,GACRmoF,KAGA,IAAAttE,aAAYliF,KACfw+G,EAAGzgH,IAAI,CAAEiC,MAAK,GAAI,CAAEkG,QAAQ,IAC5B0zB,EAAM7a,KAAK,QAAS/e,IAGlByI,GACFmxB,EAAM7a,KAAK,MAAOtW,GAGhBhE,GACFm1B,EAAM7a,KAAK,MAAOta,GAGpBnM,KAAK4qJ,OAAStpH,C,CAEhB,OAAOthC,KAAK4qJ,OAAOjnJ,IAAI,EACzB,EAEA,YAAA4yJ,aAAA,WACQ,IAAEj1H,EAAkBthC,KAAb,MAAE4qJ,EAAW5qJ,KAAL,OACrB,OAAOshC,GAAUspH,GAAUA,EAAOjnJ,KAAOinJ,EAAOjnJ,IAAI,IAAO3D,KAAKm3J,YAClE,EAEA,YAAAF,cAAA,WACE,IAAIvvJ,EACEvC,EAAQnF,KAAKmF,MACbohB,EAASvmB,KAAKumB,OACd5c,EAAOxE,EAAMunF,UAEnB,GAAIvnF,EAAMxB,IAAI,cACZ+D,EAAQ6e,EAAO5iB,IAAIgG,OACd,CACL,IAAMmD,EAAQyZ,EAAO5iB,IAAI,cACzB+D,EAAQvC,EAAMxB,IAAI,UAAYmJ,EAAMnD,E,CAGtC,OAAQ,IAAAigF,aAAYliF,GAAiB,GAARA,CAC/B,EAEA,YAAAyvJ,WAAA,WACE,OAAOn3J,KAAKs2J,OACd,EAMA,YAAAc,YAAA,WACQ,MAA8Bp3J,KAA5B2T,EAAG,MAAEkiJ,EAAW,cAAE1wJ,EAAK,QACzBusG,EAAS/9F,EAAIC,KAAK,gBAClBQ,EAAKs9F,EAAOA,EAAO/wG,OAAS,GAC9Bo2J,EAAwC5xJ,EAAMiP,GAE7C2iJ,IACHA,EAAM/2J,KAAKq3J,YAAcr3J,KAAKq3J,YAAYr3J,KAAKq2J,cAAgBr2J,KAAK6oJ,eAGlE,IAAA33I,UAAS6lJ,IACX3iJ,EAAG4yE,UAAY+vE,EACf/2J,KAAKs2J,QAAUliJ,EAAG6I,aAElB44I,EAAczhJ,EAAGqQ,YAAYsyI,GAAQ3iJ,EAAG4I,aAAa+5I,EAAM3iJ,EAAG6I,YAC9Djd,KAAKs2J,QAAUS,GAGjB5xJ,EAAMiP,GAAKpU,KAAKs2J,OAClB,EAEA,YAAAgB,SAAA,WACU,IAAA5qF,EAAU1sE,KAAKmF,MAAM6B,WAAU,MACvC,OAAQhH,KAAKu3J,UAAqB,IAAV7qF,CAC1B,EAEA,YAAAwpF,SAAA,kBACSl2J,KAAKmF,MAAMiP,GAClBpU,KAAK6T,QACP,EAEA,YAAAgjJ,WAAA,WACE72J,KAAKw2J,SAASx2J,KAAKq2J,aACrB,EAEA,YAAAxiJ,OAAA,WACQ,MAA4B7T,KAA1B2T,EAAG,MAAEswE,EAAG,MAAEV,EAAI,OAChB,EADuB,QACFv8E,WAAnBxE,EAAI,OAAE8H,EAAE,KACVgtJ,EAAWt3J,KAAKs3J,UAAYt3J,KAAKs3J,WACjCpzI,EAAM,UAAG+/D,EAAG,gBACXjkF,KAAK4qJ,OACZ,IAAI4M,EAAO,uBAAetzI,EAAG,YAAIA,EAAG,aAAK1hB,EAAI,sBACzC80J,EAAW,uBAAe/zE,EAAI,iCAAiC,GAAE,gCACrDA,EAAI,qBAAaA,EAAI,sBAAc/gF,EAAI,mCAEjDxC,KAAKo2J,eACD,IAAA/zJ,YAAWrC,KAAKo2J,eACdp2J,KAAKo2J,cAAcp2J,KAAKq2J,cACxBr2J,KAAKo2J,cACP,GAAE,8BAUZ,OANAziJ,EAAIq+B,QAAQghD,OAAOwkE,GACnBF,GAAYt3J,KAAK82J,cACjB92J,KAAKo3J,cACLp3J,KAAKoU,GAAGQ,UAAY,UAAGsP,EAAG,iBAASA,EAAG,iBAAS5Z,GAC/CtK,KAAK62J,aACL72J,KAAK82F,SAAS92F,KAAKq2J,cACZr2J,IACT,EACF,EAnSA,CAAuC,M,YAoSvCy3J,GAAUp3J,UAAUy1J,aAAe,CAAC,U,2fCvSpC,eAME,WAAY3/H,EAAautE,QAAb,IAAAvtE,IAAAA,EAAA,IAAZ,MACE,YAAMA,IAAE,KANV,EAAAytE,WAAY,EAOV,EAAKF,UAAYA,EACjB,IAAMzrF,EAASke,EAAEle,QAAU,CAAC,EAEtBirE,EAAK/sD,EAAEosD,O,OACb,EAAKtqE,OAASA,EACd,EAAKirE,GAAKA,EACV,EAAKK,KAAOtrE,EAAOksE,cAAgB,GACnC,EAAKF,IAAM,EAAKV,KAAOtrE,EAAOisE,aAAe,GAC7C,EAAKtvE,UAAY,UAAG,EAAKqvE,IAAG,UAC5B,EAAKz5E,SAAS04E,EAAI,oBAAqB,EAAKw0E,mBAC5C,EAAKA,oB,CACP,CAcF,OAjCwC,QAyBtC,YAAAA,kBAAA,WACQ,MAA0B13J,KAAxBujF,EAAI,OAAE3uE,EAAS,YACjBmsC,EADqB,KACXioC,cAChBhpF,KAAKoU,GAAGQ,UAAY,UAAGA,EAAS,YAAI2uE,EAAI,kBAAUA,EAAI,aAEtDvjF,KAAKiF,WAAa87C,EAAOA,EAAK4nF,OAAS,GACvC3oI,KAAK6T,QACP,EACF,EAjCA,CAAwCkjF,GAAA,G,YAoCxC4gE,GAAWt3J,UAAU42F,SAAW,G,ogBCpChC,YACE,WAAY9gE,QAAA,IAAAA,IAAAA,EAAA,IAAZ,MACE,YAAMA,IAAE,K,OACR,EAAK3rB,SAAS,EAAKrF,MAAO,iBAAkB,EAAK+wJ,U,CACnD,CAoDF,OAxD6C,QAM3C,YAAAE,cAAA,WACQ,IAAE7yE,EAAmBvjF,KAAf,KAAE+1J,EAAa/1J,KAAL,SACtB,MAAO,uBAAe+1J,EAAQ,iEAEdxyE,EAAI,8CACFA,EAAI,+CAGxB,EAOA,YAAAslE,WAAA,WACE,IAAK7oJ,KAAK4qJ,OAAQ,CACV,IAAEzlJ,EAAcnF,KAAT,MAAE,EAAOA,KAAL,GACX,EAAWmF,EAAMxB,IAAI,QACrBkG,EAAO1E,EAAMxB,IAAI,YAAc,GAC/B,EAAmB,GACrB,EAAQ,WAEZkG,EAAK4L,SAAQ,SAAArB,GACX,IACIzK,EAAMjC,EAAOiV,EADb7P,EAAQ,IAGR,IAAAoE,UAASkD,IACXzK,EAAOyK,EACP1M,EAAQ0M,IAERzK,EAAOyK,EAAGzK,MAAQyK,EAAGs4D,OAASt4D,EAAG1M,MACjCA,EAAQ,WAAG,IAAAkiF,aAAYx1E,EAAG1M,OAAS0M,EAAG9J,GAAK8J,EAAG1M,OAAQ+H,QAAQ,KAAM,UAEpE3C,IADA6P,EAAQvI,EAAGuI,MAAQvI,EAAGuI,MAAMlN,QAAQ,KAAM,UAAY,IACrC,mBAAWkN,EAAK,MAAM,IAEzC,IAAMi7I,EAAa,EAAGtkG,EAAE,sCAA+B,EAAQ,YAAI5rD,KAAYiC,EAC/E,GAAS,0BAAkBjC,EAAK,aAAIoF,EAAK,YAAI8qJ,EAAU,aACvD,EAAOjzJ,KAAK+C,EACd,IAEA,GAAS,YACT1H,KAAK4qJ,QAAS,gBAAE,GAChB,IAAM3kJ,EAAMd,EAAM8hI,iBACZ4wB,EAAY,EAAOhzJ,QAAQoB,IAAQ,EAAIA,EAAMd,EAAMxB,IAAI,aAC5D,IAAAimF,aAAYiuE,IAAc73J,KAAK4qJ,OAAQ3kJ,IAAI4xJ,E,CAG9C,OAAO73J,KAAK4qJ,OAAQjnJ,IAAI,EAC1B,EACF,EAxDA,CAA6C,I,ogBCD7C,uE,OACE,EAAAkyJ,aAAc,E,CAsDhB,QAvD+C,QAG7C,YAAAO,cAAA,WACQ,IAAE7yE,EAAmBvjF,KAAf,KAAE+1J,EAAa/1J,KAAL,SACtB,MAAO,yBAAiB+1J,EAAQ,0CACpBxyE,EAAI,8BAElB,EAMA,YAAAmzE,SAAA,WACE12J,KAAKmF,MAAMM,IAAI,QAASzF,KAAKu2J,eAAe5nD,QAC9C,EAEA,YAAAioD,cAAA,SAAclvJ,GACZ,IAAM0M,EAAKpU,KAAKu2J,eAChBniJ,IAAOA,EAAGu6F,UAAYjnG,EACxB,EAOA,YAAAmhJ,WAAA,W,IAAW,sDACT,IAAMiP,GAAU93J,KAAK4qJ,OACfx2I,EAAK,8BAAqCpU,KAAMU,GAEtD,GAAIo3J,EAAQ,CACV,IAAInpD,OAAO,EAAEopD,OAAW,EAClB,EAAoB/3J,KAAlBmF,EAAK,QAAEohB,EAAM,SACbuhH,EAAe3iI,EAAM6B,WAAU,WACjC,EAAO7B,EAAMunF,UAEfvnF,EAAMxB,IAAI,cAEZo0J,EADAppD,EAAUpoF,EAAO5iB,IAAI,GAIrBgrG,MADAopD,EAAcxxI,EAAO5iB,IAAI,cAAe,KACC,KAAhBo0J,IAGtB,IAAAnuE,aAAYk+C,IAAeiwB,IAAgBjwB,IAC9Cn5B,GAAW,GAGbv6F,EAAIu6F,QAAUA,C,CAGhB,OAAOv6F,CACT,EACF,EAvDA,CAA+C,I,2fCA/C,eAkBE,WAAYvK,QAAA,IAAAA,IAAAA,EAAA,IAAZ,MACE,YAAMA,IAAK,KACL05E,EAAO15E,EAAK05E,MAAQ,G,OAC1B,EAAK15E,KAAOA,EACZ,EAAK05E,KAAOA,EACZ,EAAKL,GAAKr5E,EAAK0c,QAAU,CAAC,GACzB1c,EAAK6sJ,UAAY,EAAKlsJ,SAAS,EAAKrF,MAAO,eAAgB,EAAK6yJ,mB,CACnE,CAgEF,OAzFmC,QAMjC,YAAAr7C,SAAA,WACE,MAAO,wBAAgB38G,KAAKi4J,cAAa,aAC3C,EAEA,YAAAC,WAAA,WACE,MAAO,UAAGl4J,KAAKujF,KAAI,QACrB,EAEA,YAAA00E,YAAA,WACE,MAAO,UAAGj4J,KAAKujF,KAAI,eACrB,EAcA,YAAA40E,eAAA,WACEn4J,KAAKmF,MAAMrB,QAAQ,YACrB,EAMA,YAAA6rD,SAAA,SAASjoD,EAAemC,GACtB,IAAM1E,EAAQnF,KAAKmF,MACfc,EAAMyB,GAASvC,EAAMxB,IAAI,YACvB29B,EAAQthC,KAAK6oJ,aACnBvnH,IAAUA,EAAM55B,MAAQzB,EAC1B,EAKA,YAAA+xJ,kBAAA,SAAkB7yJ,EAAYuC,EAAemC,GAC3C7J,KAAK2vD,SAASjoD,EAAOmC,EACvB,EAKA,YAAAiqI,aAAA,SAAa5oI,GACXA,EAAEmjB,kBACF,IAAM3mB,EAAQ1H,KAAK6oJ,aAAanhJ,MAChC1H,KAAKo4J,gBAAgB1wJ,GACrB1H,KAAKm4J,gBACP,EAEA,YAAAC,gBAAA,SAAgB1wJ,GACd1H,KAAKmF,MAAMM,IAAI,CAAEiC,MAAK,GAAI,CAAE2wJ,UAAW,GACzC,EAMA,YAAAxP,WAAA,WACE,IAAK7oJ,KAAK8oJ,QAAS,CACX,IAAE3jJ,EAAgBnF,KAAX,MACPwC,EADkBxC,KAAL,KACDwC,MAAQ,OACpB81J,EAAMnzJ,EAAMxB,IAAI,gBAAkBwB,EAAMxB,IAAI,aAAewB,EAAMxB,IAAI,YAAc,GACzF3D,KAAK8oJ,SAAU,gBAAE,wBAAgBtmJ,EAAI,4BAAkB81J,EAAG,O,CAG5D,OAAOt4J,KAAK8oJ,QAAQnlJ,IAAI,EAC1B,EAEA,YAAAkQ,OAAA,WACE7T,KAAK8oJ,QAAU,KACf,IAAM10I,EAAKpU,KAAK2T,IAIhB,OAHAS,EAAGkR,SAAStlB,KAAKk4J,cACjB9jJ,EAAG8hE,KAAKl2E,KAAK28G,YACbvoG,EAAGR,KAAK,WAAI5T,KAAKi4J,gBAAiBjlE,OAAOhzF,KAAK6oJ,cACvC7oJ,IACT,EACF,EAzFA,CAAmC,M,YA2FnCu4J,GAAMl4J,UAAUqJ,OAAS,CAEvBoxB,OAAQ,gB,2fC5FV,eAwBE,WAAYjxB,QAAA,IAAAA,IAAAA,EAAA,IAAZ,MACE,YAAMA,IAAK,K,OACX,IAAAy4E,SAAQ,EAAM,gBAAiB,eAC/B,EAAKjwD,IAAM3d,SACX,EAAKlK,SAAS,EAAKrF,MAAO,cAAe,EAAK6yJ,mB,CAChD,CA8PF,OA3RyC,QAOvC,YAAAr7C,SAAA,WACE,IAAMp5B,EAAOvjF,KAAKujF,KAClB,MAAO,gCACUA,EAAI,uDACJA,EAAI,qDACLA,EAAI,6DACFA,EAAI,sEACJA,EAAI,6DAGxB,EAEA,YAAA20E,WAAA,WACE,IAAM30E,EAAOvjF,KAAKujF,KAClB,OAAOvjF,KAAK6J,KAAK2uJ,WAAa,UAAGj1E,EAAI,iBAASA,EAAI,gBACpD,EAcA,YAAA5zB,SAAA,SAASjoD,EAAemC,GACtB,IAAMyjD,EAAMzjD,GAAQ,CAAC,EACfq7I,EAAQllJ,KAAKy4J,mBAAmB/wJ,EAAO,CAAEgxJ,UAAW,IACpDC,EAAW,CAAEjxJ,MAAOw9I,EAAMx9I,MAAOw2D,KAAM,KAGzCgnF,EAAMhnF,MAAQgnF,EAAMzmG,SACtBk6G,EAASz6F,KAAOgnF,EAAMhnF,MAGxBl+D,KAAKmF,MAAMM,IAAIkzJ,EAAUrrG,GAIrBA,EAAI1/C,QACN5N,KAAKg4J,mBAET,EAKA,YAAAlkB,aAAA,SAAa5oI,GACXA,EAAEmjB,kBACFruB,KAAK2vD,SAAS3vD,KAAK6oJ,aAAanhJ,OAChC1H,KAAKm4J,gBACP,EAKA,YAAAS,iBAAA,SAAiB1tJ,GACfA,EAAEmjB,kBACF,IAAM3mB,EAAQ1H,KAAK64J,YAAYnxJ,MAC/B1H,KAAKmF,MAAMM,IAAI,OAAQiC,GACvB1H,KAAKm4J,gBACP,EAKA,YAAAW,cAAA,SAAc5tJ,GACE,YAAVA,EAAE7J,MACJ6J,EAAEqiB,iBACFvtB,KAAK+4J,gBAGO,cAAV7tJ,EAAE7J,MACJ6J,EAAEqiB,iBACFvtB,KAAKg5J,iBAET,EAKA,YAAAb,eAAA,WACEn4J,KAAKmF,MAAMrB,QAAQ,YACrB,EAKA,YAAAk0J,kBAAA,WACE,IAAM7yJ,EAAQnF,KAAKmF,MACnBnF,KAAK6oJ,aAAanhJ,MAAQvC,EAAMxB,IAAI,SACpC,IAAMs1J,EAASj5J,KAAK64J,YACpBI,IAAWA,EAAOvxJ,MAAQvC,EAAMxB,IAAI,SAAW,GACjD,EAMA,YAAAk1J,UAAA,WACE,IAAK74J,KAAKi5J,OAAQ,CAChB,IAAM,EAAQj5J,KAAKmF,MACb+zJ,EAAQ,EAAMv1J,IAAI,UAAY,GAEpC,GAAIu1J,EAAMv4J,OAAQ,CAChB,IAAM,EAAU,CAAC,+CAEjBu4J,EAAMzjJ,SAAQ,SAACyoD,GACb,IAAMlK,EAAWkK,GAAQ,EAAMv6D,IAAI,QAAU,WAAa,GAC1D,EAAQgB,KAAK,kBAAWqvD,EAAQ,YAAIkK,EAAI,aAC1C,IAEA,IAAM0hD,EAAOlrG,SAASC,cAAc,OACpCirG,EAAK54B,UAAY,0BAAkBhnF,KAAKujF,KAAI,wBAAe,EAAQ9zB,KAAK,IAAG,aAC3EzvD,KAAKi5J,OAASr5C,EAAK3iG,U,EAIvB,OAAOjd,KAAKi5J,MACd,EAKA,YAAAF,aAAA,WACU,IAAA5zJ,EAAUnF,KAAI,MAChB+zG,EAAO5uG,EAAMxB,IAAI,QACnB+D,EAAQ6gF,WAAWpjF,EAAMxB,IAAI,UACjC3D,KAAK2vD,SAAS3vD,KAAKm5J,eAAezxJ,EAAQqsG,IAC1C/zG,KAAKm4J,gBACP,EAKA,YAAAa,eAAA,WACU,IAAA7zJ,EAAUnF,KAAI,MAChB+zG,EAAO5uG,EAAMxB,IAAI,QACjB+D,EAAQ6gF,WAAWpjF,EAAMxB,IAAI,UACnC3D,KAAK2vD,SAAS3vD,KAAKm5J,eAAezxJ,EAAQqsG,IAC1C/zG,KAAKm4J,gBACP,EAQA,YAAAiB,cAAA,SAAcluJ,GACZA,EAAEqiB,iBACFvtB,KAAK0+D,OAAQ,EACb,IAAIh3D,EAAQ1H,KAAKmF,MAAMxB,IAAI,UAAY,EACvC+D,EAAQ1H,KAAKm5J,eAAezxJ,GAC5B1H,KAAKiO,QAAU,CAAE2/B,EAAG1iC,EAAE24D,MAAO59D,IAAKyB,IAClC,IAAAD,IAAGzH,KAAKqyB,IAAK,YAAaryB,KAAKq5J,gBAC/B,IAAA5xJ,IAAGzH,KAAKqyB,IAAK,UAAWryB,KAAKs5J,YAC/B,EAOA,YAAAD,cAAA,SAAc7sJ,GACZxM,KAAK0+D,OAAQ,EACb,IAAMv5D,EAAQnF,KAAKmF,MACb4uG,EAAO5uG,EAAMxB,IAAI,QACjB+U,EAAO1Y,KAAKiO,QACd4T,EAAM7hB,KAAKm5J,eAAezgJ,EAAKzS,KAAOyS,EAAKk1B,EAAIphC,EAAGq3D,OAASkwC,GACzD,EAAkB/zG,KAAKy4J,mBAAmB52I,GAAxCna,EAAK,QAAEw2D,EAAI,OAGnB,OAFAl+D,KAAKu5J,QAAU7xJ,EACfvC,EAAMM,IAAI,CAAEiC,MAAK,EAAEw2D,KAAI,GAAI,CAAE2qB,WAAY,KAClC,CACT,EAKA,YAAAywE,YAAA,WACE,IAAMn0J,EAAQnF,KAAKmF,MACb4uG,EAAO5uG,EAAMxB,IAAI,QAIvB,IAHA,IAAAwH,KAAInL,KAAKqyB,IAAK,UAAWryB,KAAKs5J,cAC9B,IAAAnuJ,KAAInL,KAAKqyB,IAAK,YAAaryB,KAAKq5J,eAE5Br5J,KAAKu5J,SAAWv5J,KAAK0+D,MAAO,CAC9B,IAAIh3D,EAAQ1H,KAAKu5J,QAAUxlD,EAE3B5uG,EAAMM,IAAI,QAASiC,EAAO,CAAEmhF,WAAY,IAAKpjF,IAAI,QAASiC,EAAQqsG,GAClE/zG,KAAKm4J,gB,CAET,EAEA,YAAAgB,eAAA,SAAezxJ,EAAY8xJ,QAAA,IAAAA,IAAAA,EAAA,GACzB,IACMzlD,EADQ/zG,KAAKmF,MACAxB,IAAI,QACnBswG,EAAe,EAEnB,GAAIrsE,MAAMlgC,GACR,OAAO8xJ,EAKT,GAFA9xJ,EAAQ6gF,WAAW7gF,GAEfwE,KAAKie,MAAMziB,KAAWA,EAAO,CAC/B,IAAM2rC,EAAO0gE,EAAKnsF,WAAW3d,MAAM,KAAK,GACxCgqG,EAAe5gE,EAAOA,EAAK1yC,OAAS,C,CAGtC,OAAOszG,EAAe1rB,WAAW7gF,EAAMwsG,QAAQD,IAAiBvsG,CAClE,EAQA,YAAA+wJ,mBAAA,SAAmB/wJ,EAAamC,QAAA,IAAAA,IAAAA,EAAA,IAC9B,IAAI40C,EAAQ,EACR6O,EAAMzjD,GAAQ,CAAC,EACf1E,EAAQnF,KAAKmF,MACXq0J,EAAW,GACbvzJ,GAAO,IAAA2jF,aAAYliF,GAAiB8xJ,EAAR9xJ,EAC5BwxJ,EAAQrvJ,EAAKqvJ,OAAS/zJ,EAAMxB,IAAI,UAAY,GAC5Cu6D,EAAO/4D,EAAMxB,IAAI,SAAYu1J,EAAMv4J,QAAUu4J,EAAM,IAAO,GAC1D/sJ,GAAO,IAAAy9E,aAAY//E,EAAKsC,KAAkBhH,EAAMxB,IAAI,OAArBkG,EAAKsC,IACpCgE,GAAO,IAAAy5E,aAAY//E,EAAKsG,KAAkBhL,EAAMxB,IAAI,OAArBkG,EAAKsG,IACpCspJ,IAAiBt0J,EAAMxB,IAAI,gBAC3B+1J,IAAiBv0J,EAAMxB,IAAI,gBAE/B,GAAI2pD,EAAIorG,UAAW,CACjB,IAAIiB,EAAQx0J,EAAMxB,IAAI,gBAAkB,GAIxC,GAFY,KAARsC,IAAYi4D,EAAO,IAEnBj4D,EAAK,CAEP,IAAI2zJ,EAAW,IAAIt/I,OAAO,IAAMq/I,EAAMlqG,KAAK,KAAM,KACjD,GAAIkqG,EAAMh5J,QAAUi5J,EAAS5vJ,KAAK/D,GAChCA,EAAMA,EAAIoO,MAAMulJ,GAAU,GAC1B17F,EAAO,GACPzf,EAAQ,MACH,CACL,IAAIo7G,EAAU5zJ,EAAM,GACpBA,GAAO,GACPA,EAAMsiF,WAAWtiF,EAAIwJ,QAAQ,IAAK,MAClCxJ,EAAO2hC,MAAM3hC,GAAauzJ,EAANvzJ,EACpB,IAAI6zJ,EAAKD,EAAQpqJ,QAAQxJ,EAAK,KAE1B,IAAApB,SAAQq0J,EAAOY,IAAO,IAAG57F,EAAO47F,E,GAQ1C,OAHKL,IAAiB,IAAA7vE,aAAYz9E,IAAgB,KAARA,IAAYlG,EAAMA,EAAMkG,EAAMA,EAAMlG,GACzEyzJ,IAAiB,IAAA9vE,aAAYz5E,IAAgB,KAARA,IAAYlK,EAAMA,EAAMkK,EAAMA,EAAMlK,GAEvE,CACLw4C,MAAK,EACL/2C,MAAOzB,EACPi4D,KAAI,EAER,EAEA,YAAArqD,OAAA,WACE,yBAA4B7T,MAC5BA,KAAKi5J,OAAS,KACd,IAAM/6F,EAAOl+D,KAAK64J,YAElB,OADA36F,GAAQl+D,KAAK2T,IAAIC,KAAK,WAAI5T,KAAKujF,KAAI,gBAAe5/E,IAAI,GAAI8gB,YAAYy5C,GAC/Dl+D,IACT,EACF,EA3RA,CAAyC,I,YA6RzC+5J,GAAY15J,UAAUqJ,OAAS,CAE7B,eAAgB,eAChB,gBAAiB,mBACjB,wBAAyB,eACzB,0BAA2B,iBAC3B,0BAA2B,gBAC3BswJ,QAAS,iB,ogBCpSX,yB,8CAiCA,QAjC6C,QAE3C,YAAArD,kBAAA,WACU,IAAAxxJ,EAAUnF,KAAI,MAChB,EAAkBmF,EAAM6B,WAAtBU,EAAK,QAAEw2D,EAAI,OACnB,OAAQ,IAAA0rB,aAAYliF,IAAoB,KAAVA,EAA8BvC,EAAMxB,IAAI,WAAzB+D,EAAQw2D,CACvD,EAOA,YAAA2qF,WAAA,WACE,IAAK7oJ,KAAKshC,MAAO,CACT,IAAEiiD,EAAgBvjF,KAAZ,KAAEmF,EAAUnF,KAAL,MACb0H,EAAQ1H,KAAKi3J,gBACbgD,EAAc,IAAI,GAAY,CAClCzB,UAAW,UAAGj1E,EAAI,aAClB/gF,KAAM,SACN2C,MAAOA,EACPo+E,KAAI,IAEN02E,EAAYpmJ,SACZ7T,KAAK4qJ,OAASqP,EAAYnR,QAC1B9oJ,KAAKk6J,MAAQD,EAAYhB,OAEzB9zJ,EAAMM,IAAI,QAASiC,EAAO,CAAEggI,YAAY,IACxC1nI,KAAK4qJ,OAAO3kJ,IAAIyB,GAChB1H,KAAKshC,MAAQ24H,EAAY7lJ,E,CAE3B,OAAOpU,KAAKshC,KACd,EACF,EAjCA,CAA6C,I,yuBCC7C,cCIe,SAAUv4B,EAAG1D,GAE1B,IAAK,IAAAm5F,UAAL,CAEA,IAAI27D,EAAc,CAEdC,WAAYz+C,EACZ37C,KAAM27C,EACN7gF,OAAQ6gF,EACRjoB,KAAMioB,EACNhoB,KAAMgoB,EAGNogC,OAAO,EACPse,MAAM,EACNC,WAAW,EACXrY,YAAY,EACZsY,aAAa,EACbC,qBAAqB,EACrBC,aAAa,EACbC,aAAa,EACbC,iBAAiB,EACjBC,wBAAwB,EACxBC,mBAAmB,EACnBC,sBAAsB,EACtBC,iBAAiB,EACjBnpE,SAAU,OACVopE,iBAAkB,EAClBC,WAAY,SACZC,WAAY,SACZC,sBAAuB,OACvBC,sBAAuB,OACvBC,UAAW,wBACXC,oBAAqB,oBACrBC,iBAAiB,EACjB3mJ,UAAW,GACX4mJ,mBAAoB,GACpBC,kBAAmB,GACnBC,WAAW,EACX56F,MAAO,WACP66F,QAAS,CAAC,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,YACnGC,iBAAkB,GAClBvqF,UAAU,EACVl2C,OAAQ,MAEV0gI,EAAY,GACZC,IAAO,QAAQvhJ,KAAKxa,OAAOsiB,UAAUD,WACrC25I,EAAc,WACZ,SAASr3J,EAASklB,EAAKlJ,GACrB,UAAW,GAAKkJ,GAAK/kB,QAAQ6b,EAC/B,CAEA,IACI/D,EADOjI,SAASC,cAAc,OACjBgI,MAEjB,OADAA,EAAMiI,QAAU,kCACTlgB,EAASiY,EAAMq/I,gBAAiB,SAAWt3J,EAASiY,EAAMq/I,gBAAiB,OACnF,CATa,GAUdC,EAAe,CACb,4BACA,qEACA,mCACA,UACAxsG,KAAK,IACPysG,EAAS,WAGP,IAAIC,EAAc,GAClB,GAAIL,EACF,IAAK,IAAIj8J,EAAI,EAAGA,GAAK,EAAGA,IACtBs8J,GAAe,kBAAoBt8J,EAAI,WAI3C,MAAO,CACL,uCACA,qCACA,gDACA,kDACA,4DACA,SACA,SACA,oCACA,6BACA,8BACA,6BACA,yBACA,uBACA,uBACA,iCACA,SACA,SACA,SACA,0CACA,SACA,uBACA,gCACAs8J,EACA,SACA,SACA,oGACA,SACA,yCACA,6DACA,SACA,gDACA,0CACA,qCACA,oDACA,SACA,SACA,UACA1sG,KAAK,GACR,CAjDQ,GAwjCP2sG,EAAS,cACbrzJ,EAAEvI,GAAG67J,SAAW,SAAUxyJ,EAAMyyJ,GAC9B,GAAmB,iBAARzyJ,EAAkB,CAC3B,IAAIskB,EAAcnuB,KACdU,EAAON,MAAMC,UAAUC,MAAMM,KAAKO,UAAW,GAyBjD,OAvBAnB,KAAKuF,MAAK,WACR,IAAIg3J,EAAQV,EAAU9yJ,EAAE/I,MAAM0Y,KAAK0jJ,IACnC,GAAIG,EAAO,CACT,IAAIttJ,EAASstJ,EAAM1yJ,GACnB,IAAKoF,EACH,MAAM,IAAI8C,MAAM,8BAAgClI,EAAO,KAG7C,OAARA,EACFskB,EAAcouI,EAAM54J,MACH,aAARkG,EACTskB,EAAcouI,EAAM97G,UACH,UAAR52C,EACTskB,EAAcouI,EAAMt+F,OAAO19D,MAAMg8J,EAAO77J,GACvB,WAARmJ,GACT0yJ,EAAMltJ,UACNtG,EAAE/I,MAAMqsG,WAAW+vD,IAEnBntJ,EAAO1O,MAAMg8J,EAAO77J,E,CAG1B,IAEOytB,C,CAIT,OAAOnuB,KAAKq8J,SAAS,WAAW92J,MAAK,WACnC,IACIg3J,EAAQF,EAASr8J,KADP+I,EAAEpC,OAAO,CAAC,EAAGkD,EAAMd,EAAE/I,MAAM0Y,SAEzC3P,EAAE/I,MAAM0Y,KAAK0jJ,EAAQG,EAAMjyJ,GAC7B,GACF,EAEAvB,EAAEvI,GAAG67J,SAAShwC,MAAO,EACrBtjH,EAAEvI,GAAG67J,SAASG,SAAW,CAAC,EAC1BzzJ,EAAEvI,GAAG67J,SAASz6G,UAAYA,EAC1B74C,EAAEvI,GAAG67J,SAASv1J,SAAWqzJ,EACzBpxJ,EAAEvI,GAAG67J,SAASI,sBAAwB,SAASA,IAC7C,QAAmD,IAAxCA,EAAsBC,cAA+B,CAC9D,IAAIC,EAAa5zJ,EAAE,yBAAyB,GAC5C0zJ,EAAsBC,cAAoC,UAApBC,EAAWn6J,MAAyC,KAArBm6J,EAAWj1J,K,CAElF,OAAO+0J,EAAsBC,aAC/B,EAEA3zJ,EAAEszJ,SAAW,CAAC,EACdtzJ,EAAEszJ,SAASO,aAAe,CAAC,EAC3B7zJ,EAAEszJ,SAASQ,SAAW,CAAC,EAEvB9zJ,EAAEvI,GAAG67J,SAASS,yBAA2B,WACvC,IAAIC,EAAch0J,EAAE,qBAChBg0J,EAAYp8J,SAAW87J,KACzBM,EAAYV,SAAS,CACnBd,gBAAiB,QAGvB,EAQA,IAAIyB,EAAW,WACbC,EAAY,OACZC,EAAc,EACdC,EAAOjxJ,KACPkxJ,EAAYD,EAAKhtH,MACjBktH,EAAUF,EAAKhtJ,IACfmtJ,EAAUH,EAAKhxJ,IACfoxJ,EAAaJ,EAAKznD,OAEhB8nD,EAAY,SAAUzhB,EAAOlyI,GAK/B,GAHAA,EAAOA,GAAQ,CAAC,GADhBkyI,EAAQA,GAAgB,cAIHyhB,EACnB,OAAOzhB,EAGT,KAAM/7I,gBAAgBw9J,GACpB,OAAO,IAAIA,EAAUzhB,EAAOlyI,GAG9B,IAAI4zJ,EAkTN,SAAoB1hB,GAClB,IAAI0hB,EAAM,CAAE73I,EAAG,EAAG/c,EAAG,EAAG2c,EAAG,GACvB5lB,EAAI,EACJysD,GAAK,EACLqxG,GAAS,EAEO,iBAAT3hB,IACTA,EA8vBJ,SAA6BA,GAC3BA,EAAQA,EAAMtsI,QAAQutJ,EAAU,IAAIvtJ,QAAQwtJ,EAAW,IAAI7zI,cAC3D,IAYI/U,EAZAspJ,GAAQ,EACZ,GAAI7zJ,EAAMiyI,GACRA,EAAQjyI,EAAMiyI,GACd4hB,GAAQ,OACH,GAAa,eAAT5hB,EACT,MAAO,CAAEn2H,EAAG,EAAG/c,EAAG,EAAG2c,EAAG,EAAG5lB,EAAG,EAAG89J,OAAQ,QAQ3C,GAAKrpJ,EAAQupJ,EAASH,IAAIljJ,KAAKwhI,GAC7B,MAAO,CAAEn2H,EAAGvR,EAAM,GAAIxL,EAAGwL,EAAM,GAAImR,EAAGnR,EAAM,IAE9C,GAAKA,EAAQupJ,EAASC,KAAKtjJ,KAAKwhI,GAC9B,MAAO,CAAEn2H,EAAGvR,EAAM,GAAIxL,EAAGwL,EAAM,GAAImR,EAAGnR,EAAM,GAAIzU,EAAGyU,EAAM,IAE3D,GAAKA,EAAQupJ,EAASE,IAAIvjJ,KAAKwhI,GAC7B,MAAO,CAAE7oH,EAAG7e,EAAM,GAAIjM,EAAGiM,EAAM,GAAIpS,EAAGoS,EAAM,IAE9C,GAAKA,EAAQupJ,EAASG,KAAKxjJ,KAAKwhI,GAC9B,MAAO,CAAE7oH,EAAG7e,EAAM,GAAIjM,EAAGiM,EAAM,GAAIpS,EAAGoS,EAAM,GAAIzU,EAAGyU,EAAM,IAE3D,GAAKA,EAAQupJ,EAASI,IAAIzjJ,KAAKwhI,GAC7B,MAAO,CAAE7oH,EAAG7e,EAAM,GAAIjM,EAAGiM,EAAM,GAAIo3C,EAAGp3C,EAAM,IAE9C,GAAKA,EAAQupJ,EAASK,KAAK1jJ,KAAKwhI,GAC9B,MAAO,CAAE7oH,EAAG7e,EAAM,GAAIjM,EAAGiM,EAAM,GAAIo3C,EAAGp3C,EAAM,GAAIzU,EAAGyU,EAAM,IAE3D,GAAKA,EAAQupJ,EAASM,KAAK3jJ,KAAKwhI,GAC9B,MAAO,CACLn8I,EAAGu+J,GAAoB9pJ,EAAM,IAC7BuR,EAAGw4I,EAAgB/pJ,EAAM,IACzBxL,EAAGu1J,EAAgB/pJ,EAAM,IACzBmR,EAAG44I,EAAgB/pJ,EAAM,IACzBqpJ,OAAQC,EAAQ,OAAS,QAG7B,GAAKtpJ,EAAQupJ,EAASS,KAAK9jJ,KAAKwhI,GAC9B,MAAO,CACLn2H,EAAGw4I,EAAgB/pJ,EAAM,IACzBxL,EAAGu1J,EAAgB/pJ,EAAM,IACzBmR,EAAG44I,EAAgB/pJ,EAAM,IACzBqpJ,OAAQC,EAAQ,OAAS,OAG7B,GAAKtpJ,EAAQupJ,EAASU,KAAK/jJ,KAAKwhI,GAC9B,MAAO,CACLn2H,EAAGw4I,EAAgB/pJ,EAAM,GAAK,GAAKA,EAAM,IACzCxL,EAAGu1J,EAAgB/pJ,EAAM,GAAK,GAAKA,EAAM,IACzCmR,EAAG44I,EAAgB/pJ,EAAM,GAAK,GAAKA,EAAM,IACzCqpJ,OAAQC,EAAQ,OAAS,OAI7B,OAAO,CACT,CA1zBYY,CAAoBxiB,IAGV,iBAATA,IACLA,EAAMr1H,eAAe,MAAQq1H,EAAMr1H,eAAe,MAAQq1H,EAAMr1H,eAAe,MA8CrEd,EA7CGm2H,EAAMn2H,EA6CN/c,EA7CSkzI,EAAMlzI,EA6CZ2c,EA7Ceu2H,EAAMv2H,EAAvCi4I,EA8CG,CACL73I,EAAqB,IAAlB44I,EAAQ54I,EAAG,KACd/c,EAAqB,IAAlB21J,EAAQ31J,EAAG,KACd2c,EAAqB,IAAlBg5I,EAAQh5I,EAAG,MAhDZ6mC,GAAK,EACLqxG,EAAwC,MAA/BpqI,OAAOyoH,EAAMn2H,GAAGlF,QAAQ,GAAa,OAAS,OAC9Cq7H,EAAMr1H,eAAe,MAAQq1H,EAAMr1H,eAAe,MAAQq1H,EAAMr1H,eAAe,MACxFq1H,EAAM3zI,EAAIq2J,GAAoB1iB,EAAM3zI,GACpC2zI,EAAMtwF,EAAIgzG,GAAoB1iB,EAAMtwF,GACpCgyG,EA+JN,SAAkBvqI,EAAG9qB,EAAGqjD,GACtBv4B,EAAsB,EAAlBsrI,EAAQtrI,EAAG,KACf9qB,EAAIo2J,EAAQp2J,EAAG,KACfqjD,EAAI+yG,EAAQ/yG,EAAG,KAEf,IAAI5rD,EAAIs9J,EAAKhzI,MAAM+I,GACjB7M,EAAI6M,EAAIrzB,EACRm8B,EAAIyvB,GAAK,EAAIrjD,GACbkwI,EAAI7sF,GAAK,EAAIplC,EAAIje,GACjBkrD,EAAI7H,GAAK,GAAK,EAAIplC,GAAKje,GACvB+Z,EAAMtiB,EAAI,EACV+lB,EAAI,CAAC6lC,EAAG6sF,EAAGt8G,EAAGA,EAAGs3B,EAAG7H,GAAGtpC,GACvBtZ,EAAI,CAACyqD,EAAG7H,EAAGA,EAAG6sF,EAAGt8G,EAAGA,GAAG7Z,GACvBqD,EAAI,CAACwW,EAAGA,EAAGs3B,EAAG7H,EAAGA,EAAG6sF,GAAGn2H,GAEzB,MAAO,CAAEyD,EAAO,IAAJA,EAAS/c,EAAO,IAAJA,EAAS2c,EAAO,IAAJA,EACtC,CA/KYk5I,CAAS3iB,EAAM7oH,EAAG6oH,EAAM3zI,EAAG2zI,EAAMtwF,GACvCY,GAAK,EACLqxG,EAAS,OACA3hB,EAAMr1H,eAAe,MAAQq1H,EAAMr1H,eAAe,MAAQq1H,EAAMr1H,eAAe,OACxFq1H,EAAM3zI,EAAIq2J,GAAoB1iB,EAAM3zI,GACpC2zI,EAAM95I,EAAIw8J,GAAoB1iB,EAAM95I,GACpCw7J,EAmFN,SAAkBvqI,EAAG9qB,EAAGnG,GACtB,IAAI2jB,EAAG/c,EAAG2c,EAMV,SAASm5I,EAAQ3iI,EAAGs8G,EAAGhlF,GAGrB,OAFIA,EAAI,IAAGA,GAAK,GACZA,EAAI,IAAGA,GAAK,GACZA,EAAI,EAAI,EAAUt3B,EAAc,GAATs8G,EAAIt8G,GAASs3B,EACpCA,EAAI,EAAI,EAAUglF,EAClBhlF,EAAI,EAAI,EAAUt3B,GAAKs8G,EAAIt8G,IAAM,EAAI,EAAIs3B,GAAK,EAC3Ct3B,CACT,CAEA,GAbA9I,EAAIsrI,EAAQtrI,EAAG,KACf9qB,EAAIo2J,EAAQp2J,EAAG,KACfnG,EAAIu8J,EAAQv8J,EAAG,KAWL,IAANmG,EACFwd,EAAI/c,EAAI2c,EAAIvjB,MACP,CACL,IAAIq2I,EAAIr2I,EAAI,GAAMA,GAAK,EAAImG,GAAKnG,EAAImG,EAAInG,EAAImG,EACxC4zB,EAAI,EAAI/5B,EAAIq2I,EAChB1yH,EAAI+4I,EAAQ3iI,EAAGs8G,EAAGplH,EAAI,EAAI,GAC1BrqB,EAAI81J,EAAQ3iI,EAAGs8G,EAAGplH,GAClB1N,EAAIm5I,EAAQ3iI,EAAGs8G,EAAGplH,EAAI,EAAI,E,CAG5B,MAAO,CAAEtN,EAAO,IAAJA,EAAS/c,EAAO,IAAJA,EAAS2c,EAAO,IAAJA,EACtC,CA9GYo5I,CAAS7iB,EAAM7oH,EAAG6oH,EAAM3zI,EAAG2zI,EAAM95I,GACvCoqD,GAAK,EACLqxG,EAAS,OAGP3hB,EAAMr1H,eAAe,OACvB9mB,EAAIm8I,EAAMn8I,IA2BhB,IAAkBgmB,EAAG/c,EAAG2c,EArBtB,OAFA5lB,EAAIi/J,EAAWj/J,GAER,CACLysD,GAAIA,EACJqxG,OAAQ3hB,EAAM2hB,QAAUA,EACxB93I,EAAGy3I,EAAQ,IAAKC,EAAQG,EAAI73I,EAAG,IAC/B/c,EAAGw0J,EAAQ,IAAKC,EAAQG,EAAI50J,EAAG,IAC/B2c,EAAG63I,EAAQ,IAAKC,EAAQG,EAAIj4I,EAAG,IAC/B5lB,EAAGA,EAEP,CA9VYk/J,CAAW/iB,GACpB/7I,KAAK++J,eAAiBhjB,EACpB/7I,KAAKg/J,GAAKvB,EAAI73I,EACd5lB,KAAKi/J,GAAKxB,EAAI50J,EACd7I,KAAKk/J,GAAKzB,EAAIj4I,EACdxlB,KAAKm/J,GAAK1B,EAAI79J,EACdI,KAAKo/J,QAAUhC,EAAU,IAAMp9J,KAAKm/J,IAAM,IAC1Cn/J,KAAKq/J,QAAUx1J,EAAK6zJ,QAAUD,EAAIC,OACrC19J,KAAKs/J,cAAgBz1J,EAAK01J,aAMtBv/J,KAAKg/J,GAAK,IACZh/J,KAAKg/J,GAAK5B,EAAUp9J,KAAKg/J,KAEvBh/J,KAAKi/J,GAAK,IACZj/J,KAAKi/J,GAAK7B,EAAUp9J,KAAKi/J,KAEvBj/J,KAAKk/J,GAAK,IACZl/J,KAAKk/J,GAAK9B,EAAUp9J,KAAKk/J,KAG3Bl/J,KAAKw/J,IAAM/B,EAAIpxG,GACfrsD,KAAKy/J,OAASvC,GAChB,EAEAM,EAAUn9J,UAAY,CACpBq/J,OAAQ,WACN,OAAO1/J,KAAK2/J,gBAAkB,GAChC,EACAC,QAAS,WACP,OAAQ5/J,KAAK0/J,QACf,EACA9vJ,QAAS,WACP,OAAO5P,KAAKw/J,GACd,EACAK,iBAAkB,WAChB,OAAO7/J,KAAK++J,cACd,EACAe,UAAW,WACT,OAAO9/J,KAAKq/J,OACd,EACAU,SAAU,WACR,OAAO//J,KAAKm/J,EACd,EACAQ,cAAe,WACb,IAAIlC,EAAMz9J,KAAKggK,QACf,OAAgB,IAARvC,EAAI73I,EAAkB,IAAR63I,EAAI50J,EAAkB,IAAR40J,EAAIj4I,GAAW,GACrD,EACAy6I,SAAU,SAAUv4J,GAGlB,OAFA1H,KAAKm/J,GAAKN,EAAWn3J,GACrB1H,KAAKo/J,QAAUhC,EAAU,IAAMp9J,KAAKm/J,IAAM,IACnCn/J,IACT,EACAkgK,MAAO,WACL,IAAIlC,EAAMmC,EAASngK,KAAKg/J,GAAIh/J,KAAKi/J,GAAIj/J,KAAKk/J,IAC1C,MAAO,CAAEhsI,EAAW,IAAR8qI,EAAI9qI,EAAS9qB,EAAG41J,EAAI51J,EAAGqjD,EAAGuyG,EAAIvyG,EAAG7rD,EAAGI,KAAKm/J,GACvD,EACAiB,YAAa,WACX,IAAIpC,EAAMmC,EAASngK,KAAKg/J,GAAIh/J,KAAKi/J,GAAIj/J,KAAKk/J,IACtChsI,EAAIkqI,EAAkB,IAARY,EAAI9qI,GACpB9qB,EAAIg1J,EAAkB,IAARY,EAAI51J,GAClBqjD,EAAI2xG,EAAkB,IAARY,EAAIvyG,GACpB,OAAkB,GAAXzrD,KAAKm/J,GACR,OAASjsI,EAAI,KAAO9qB,EAAI,MAAQqjD,EAAI,KACpC,QAAUv4B,EAAI,KAAO9qB,EAAI,MAAQqjD,EAAI,MAAQzrD,KAAKo/J,QAAU,GAClE,EACAiB,MAAO,WACL,IAAIvC,EAAMwC,EAAStgK,KAAKg/J,GAAIh/J,KAAKi/J,GAAIj/J,KAAKk/J,IAC1C,MAAO,CAAEhsI,EAAW,IAAR4qI,EAAI5qI,EAAS9qB,EAAG01J,EAAI11J,EAAGnG,EAAG67J,EAAI77J,EAAGrC,EAAGI,KAAKm/J,GACvD,EACAoB,YAAa,WACX,IAAIzC,EAAMwC,EAAStgK,KAAKg/J,GAAIh/J,KAAKi/J,GAAIj/J,KAAKk/J,IACtChsI,EAAIkqI,EAAkB,IAARU,EAAI5qI,GACpB9qB,EAAIg1J,EAAkB,IAARU,EAAI11J,GAClBnG,EAAIm7J,EAAkB,IAARU,EAAI77J,GACpB,OAAkB,GAAXjC,KAAKm/J,GACR,OAASjsI,EAAI,KAAO9qB,EAAI,MAAQnG,EAAI,KACpC,QAAUixB,EAAI,KAAO9qB,EAAI,MAAQnG,EAAI,MAAQjC,KAAKo/J,QAAU,GAClE,EACAoB,MAAO,SAAUC,GACf,OAAOC,EAAS1gK,KAAKg/J,GAAIh/J,KAAKi/J,GAAIj/J,KAAKk/J,GAAIuB,EAC7C,EACAE,YAAa,SAAUF,GACrB,MAAO,IAAMzgK,KAAKwgK,MAAMC,EAC1B,EACAG,OAAQ,WACN,OAAOC,EAAU7gK,KAAKg/J,GAAIh/J,KAAKi/J,GAAIj/J,KAAKk/J,GAAIl/J,KAAKm/J,GACnD,EACA2B,aAAc,WACZ,MAAO,IAAM9gK,KAAK4gK,QACpB,EACAZ,MAAO,WACL,MAAO,CACLp6I,EAAGw3I,EAAUp9J,KAAKg/J,IAClBn2J,EAAGu0J,EAAUp9J,KAAKi/J,IAClBz5I,EAAG43I,EAAUp9J,KAAKk/J,IAClBt/J,EAAGI,KAAKm/J,GAEZ,EACA4B,YAAa,WACX,OAAkB,GAAX/gK,KAAKm/J,GACR,OAAS/B,EAAUp9J,KAAKg/J,IAAM,KAAO5B,EAAUp9J,KAAKi/J,IAAM,KAAO7B,EAAUp9J,KAAKk/J,IAAM,IACtF,QACE9B,EAAUp9J,KAAKg/J,IACf,KACA5B,EAAUp9J,KAAKi/J,IACf,KACA7B,EAAUp9J,KAAKk/J,IACf,KACAl/J,KAAKo/J,QACL,GACR,EACA4B,gBAAiB,WACf,MAAO,CACLp7I,EAAGw3I,EAAkC,IAAxBoB,EAAQx+J,KAAKg/J,GAAI,MAAc,IAC5Cn2J,EAAGu0J,EAAkC,IAAxBoB,EAAQx+J,KAAKi/J,GAAI,MAAc,IAC5Cz5I,EAAG43I,EAAkC,IAAxBoB,EAAQx+J,KAAKk/J,GAAI,MAAc,IAC5Ct/J,EAAGI,KAAKm/J,GAEZ,EACA8B,sBAAuB,WACrB,OAAkB,GAAXjhK,KAAKm/J,GACR,OACE/B,EAAkC,IAAxBoB,EAAQx+J,KAAKg/J,GAAI,MAC3B,MACA5B,EAAkC,IAAxBoB,EAAQx+J,KAAKi/J,GAAI,MAC3B,MACA7B,EAAkC,IAAxBoB,EAAQx+J,KAAKk/J,GAAI,MAC3B,KACF,QACE9B,EAAkC,IAAxBoB,EAAQx+J,KAAKg/J,GAAI,MAC3B,MACA5B,EAAkC,IAAxBoB,EAAQx+J,KAAKi/J,GAAI,MAC3B,MACA7B,EAAkC,IAAxBoB,EAAQx+J,KAAKk/J,GAAI,MAC3B,MACAl/J,KAAKo/J,QACL,GACR,EACA8B,OAAQ,WACN,OAAgB,IAAZlhK,KAAKm/J,GACA,gBAGLn/J,KAAKm/J,GAAK,KAIPgC,EAAST,EAAS1gK,KAAKg/J,GAAIh/J,KAAKi/J,GAAIj/J,KAAKk/J,IAAI,MAAU,EAChE,EACAkC,SAAU,SAAUC,GAClB,IAAIC,EAAa,IAAMT,EAAU7gK,KAAKg/J,GAAIh/J,KAAKi/J,GAAIj/J,KAAKk/J,GAAIl/J,KAAKm/J,IAC7DoC,EAAmBD,EACnB/B,EAAev/J,KAAKs/J,cAAgB,qBAAuB,GAE3D+B,IAEFE,EADQ/D,EAAU6D,GACGP,gBAGvB,MACE,8CACAvB,EACA,iBACA+B,EACA,gBACAC,EACA,GAEJ,EACA35I,SAAU,SAAU81I,GAClB,IAAI8D,IAAc9D,EAClBA,EAASA,GAAU19J,KAAKq/J,QAExB,IAAIoC,GAAkB,EAClBC,EAAW1hK,KAAKm/J,GAAK,GAAKn/J,KAAKm/J,IAAM,EAIzC,OAFGqC,IAAaE,GAAwB,QAAXhE,GAA+B,SAAXA,GAAgC,SAAXA,GAAgC,SAAXA,GAU5E,QAAXA,IACF+D,EAAkBzhK,KAAK+gK,eAEV,SAAXrD,IACF+D,EAAkBzhK,KAAKihK,yBAEV,QAAXvD,GAA+B,SAAXA,IACtB+D,EAAkBzhK,KAAK2gK,eAEV,SAAXjD,IACF+D,EAAkBzhK,KAAK2gK,aAAY,IAEtB,SAAXjD,IACF+D,EAAkBzhK,KAAK8gK,gBAEV,SAAXpD,IACF+D,EAAkBzhK,KAAKkhK,UAEV,QAAXxD,IACF+D,EAAkBzhK,KAAKugK,eAEV,QAAX7C,IACF+D,EAAkBzhK,KAAKogK,eAGlBqB,GAAmBzhK,KAAK2gK,eA9Bd,SAAXjD,GAAiC,IAAZ19J,KAAKm/J,GACrBn/J,KAAKkhK,SAEPlhK,KAAK+gK,aA4BhB,EAEAY,mBAAoB,SAAUnhK,EAAIE,GAChC,IAAIq7I,EAAQv7I,EAAGD,MAAM,KAAM,CAACP,MAAM+E,OAAO,GAAGzE,MAAMM,KAAKF,KAKvD,OAJAV,KAAKg/J,GAAKjjB,EAAMijB,GAChBh/J,KAAKi/J,GAAKljB,EAAMkjB,GAChBj/J,KAAKk/J,GAAKnjB,EAAMmjB,GAChBl/J,KAAKigK,SAASlkB,EAAMojB,IACbn/J,IACT,EACA4hK,QAAS,WACP,OAAO5hK,KAAK2hK,mBAAmBC,EAASzgK,UAC1C,EACA0gK,SAAU,WACR,OAAO7hK,KAAK2hK,mBAAmBE,EAAU1gK,UAC3C,EACA2gK,OAAQ,WACN,OAAO9hK,KAAK2hK,mBAAmBG,EAAQ3gK,UACzC,EACA4gK,WAAY,WACV,OAAO/hK,KAAK2hK,mBAAmBI,EAAY5gK,UAC7C,EACA6gK,SAAU,WACR,OAAOhiK,KAAK2hK,mBAAmBK,EAAU7gK,UAC3C,EACA8gK,UAAW,WACT,OAAOjiK,KAAK2hK,mBAAmBM,EAAW9gK,UAC5C,EACA+gK,KAAM,WACJ,OAAOliK,KAAK2hK,mBAAmBO,EAAM/gK,UACvC,EAEAghK,kBAAmB,SAAU3hK,EAAIE,GAC/B,OAAOF,EAAGD,MAAM,KAAM,CAACP,MAAM+E,OAAO,GAAGzE,MAAMM,KAAKF,IACpD,EACA0hK,UAAW,WACT,OAAOpiK,KAAKmiK,kBAAkBC,EAAWjhK,UAC3C,EACAkhK,WAAY,WACV,OAAOriK,KAAKmiK,kBAAkBE,EAAYlhK,UAC5C,EACAmhK,cAAe,WACb,OAAOtiK,KAAKmiK,kBAAkBG,EAAenhK,UAC/C,EACAohK,gBAAiB,WACf,OAAOviK,KAAKmiK,kBAAkBI,EAAiBphK,UACjD,EACAqhK,MAAO,WACL,OAAOxiK,KAAKmiK,kBAAkBK,EAAOrhK,UACvC,EACAshK,OAAQ,WACN,OAAOziK,KAAKmiK,kBAAkBM,EAAQthK,UACxC,GAKFq8J,EAAUkF,UAAY,SAAU3mB,EAAOlyI,GACrC,GAAoB,iBAATkyI,EAAmB,CAC5B,IAAI4mB,EAAW,CAAC,EAChB,IAAK,IAAI9iK,KAAKk8I,EACRA,EAAMr1H,eAAe7mB,KAErB8iK,EAAS9iK,GADD,MAANA,EACYk8I,EAAMl8I,GAEN4+J,GAAoB1iB,EAAMl8I,KAI9Ck8I,EAAQ4mB,C,CAGV,OAAOnF,EAAUzhB,EAAOlyI,EAC1B,EAwPA2zJ,EAAU75G,OAAS,SAAUi/G,EAAQC,GACnC,SAAKD,IAAWC,IAGTrF,EAAUoF,GAAQ7B,eAAiBvD,EAAUqF,GAAQ9B,aAC9D,EACAvD,EAAU9nD,OAAS,WACjB,OAAO8nD,EAAUkF,UAAU,CACzB98I,EAAG23I,IACH10J,EAAG00J,IACH/3I,EAAG+3I,KAEP,EA0IAC,EAAUsF,IAAM,SAAUF,EAAQC,EAAQ76F,GACxCA,EAAoB,IAAXA,EAAe,EAAIA,GAAU,GAEtC,IAOI+6F,EAPAC,EAAOxF,EAAUoF,GAAQ5C,QACzBiD,EAAOzF,EAAUqF,GAAQ7C,QAEzBhkI,EAAIgsC,EAAS,IACbjyB,EAAQ,EAAJ/Z,EAAQ,EACZp8B,EAAIqjK,EAAKrjK,EAAIojK,EAAKpjK,EAYlBsjK,EAAK,GAFTH,IALEA,EADEhtH,EAAIn2C,IAAM,EACPm2C,GAECA,EAAIn2C,IAAM,EAAIm2C,EAAIn2C,IAGf,GAAK,GAIZi+J,EAAO,CACTj4I,EAAGq9I,EAAKr9I,EAAIm9I,EAAKC,EAAKp9I,EAAIs9I,EAC1Br6J,EAAGo6J,EAAKp6J,EAAIk6J,EAAKC,EAAKn6J,EAAIq6J,EAC1B19I,EAAGy9I,EAAKz9I,EAAIu9I,EAAKC,EAAKx9I,EAAI09I,EAC1BtjK,EAAGqjK,EAAKrjK,EAAIo8B,EAAIgnI,EAAKpjK,GAAK,EAAIo8B,IAGhC,OAAOwhI,EAAUK,EACnB,EAUAL,EAAU2F,YAAc,SAAUP,EAAQC,GACxC,IAAIO,EAAK5F,EAAUoF,GACfS,EAAK7F,EAAUqF,GACfG,EAAOI,EAAGpD,QACViD,EAAOI,EAAGrD,QACVsD,EAAcF,EAAGzD,gBACjB4D,EAAcF,EAAG1D,gBACjB6D,EACFt3J,KAAKC,IAAI62J,EAAKp9I,EAAGq9I,EAAKr9I,GACtB1Z,KAAKiE,IAAI6yJ,EAAKp9I,EAAGq9I,EAAKr9I,GACtB1Z,KAAKC,IAAI62J,EAAKn6J,EAAGo6J,EAAKp6J,GACtBqD,KAAKiE,IAAI6yJ,EAAKn6J,EAAGo6J,EAAKp6J,GACtBqD,KAAKC,IAAI62J,EAAKx9I,EAAGy9I,EAAKz9I,GACtBtZ,KAAKiE,IAAI6yJ,EAAKx9I,EAAGy9I,EAAKz9I,GAExB,MAAO,CACLi+I,WAAYv3J,KAAK0kB,IAAI0yI,EAAcC,GACnCxnB,MAAOynB,EAEX,EAOAhG,EAAUkG,WAAa,SAAUd,EAAQC,GACvC,IAAIM,EAAc3F,EAAU2F,YAAYP,EAAQC,GAChD,OAAOM,EAAYM,WAAa,KAAON,EAAYpnB,MAAQ,GAC7D,EAOAyhB,EAAUmG,aAAe,SAAUC,EAAWC,GAI5C,IAHA,IAAIC,EAAY,KACZC,EAAY,EACZC,GAAiB,EACZnkK,EAAI,EAAGA,EAAIgkK,EAAUljK,OAAQd,IAAK,CAIzC,IAAIsjK,EAAc3F,EAAU2F,YAAYS,EAAWC,EAAUhkK,IACzDokK,EAAWd,EAAYM,WAAa,KAAON,EAAYpnB,MAAQ,IAC/DrzH,EAAQ,GAAKy6I,EAAYM,WAAa,KAAON,EAAYpnB,MAAQ,KAGlEkoB,IAAaD,GACbC,GAAYD,GAAkBt7I,EAAQq7I,IACrCE,IAAaD,GAAkBt7I,EAAQq7I,KAEzCC,EAAiBC,EACjBF,EAAYr7I,EACZo7I,EAAYtG,EAAUqG,EAAUhkK,I,CAGpC,OAAOikK,CACT,EAKA,IA+PMI,EAKAC,EACAC,EArQFt6J,EAAS0zJ,EAAU1zJ,MAAQ,CAC7Bu6J,UAAW,SACXC,aAAc,SACdC,KAAM,MACNC,WAAY,SACZC,MAAO,SACPC,MAAO,SACPC,OAAQ,SACRC,MAAO,MACPC,eAAgB,SAChBC,KAAM,MACNC,WAAY,SACZC,MAAO,SACPC,UAAW,SACXC,YAAa,SACbC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,MAAO,SACPC,eAAgB,SAChBC,SAAU,SACVC,QAAS,SACTC,KAAM,MACNC,SAAU,SACVC,SAAU,SACVC,cAAe,SACfC,SAAU,SACVC,UAAW,SACXC,SAAU,SACVC,UAAW,SACXC,YAAa,SACbC,eAAgB,SAChBC,WAAY,SACZC,WAAY,SACZC,QAAS,SACTC,WAAY,SACZC,aAAc,SACdC,cAAe,SACfC,cAAe,SACfC,cAAe,SACfC,cAAe,SACfC,WAAY,SACZC,SAAU,SACVC,YAAa,SACbC,QAAS,SACTC,QAAS,SACTC,WAAY,SACZC,UAAW,SACXC,YAAa,SACbC,YAAa,SACbC,QAAS,MACTC,UAAW,SACXC,WAAY,SACZC,KAAM,SACNC,UAAW,SACXC,KAAM,SACNC,MAAO,SACPC,YAAa,SACbC,KAAM,SACNC,SAAU,SACVC,QAAS,SACTC,UAAW,SACXC,OAAQ,SACRC,MAAO,SACPC,MAAO,SACPC,SAAU,SACVC,cAAe,SACfC,UAAW,SACXC,aAAc,SACdC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,qBAAsB,SACtBC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,UAAW,SACXC,YAAa,SACbC,cAAe,SACfC,aAAc,SACdC,eAAgB,MAChBC,eAAgB,MAChBC,eAAgB,SAChBC,YAAa,SACbC,KAAM,MACNC,UAAW,SACXC,MAAO,SACPC,QAAS,MACTC,OAAQ,SACRC,iBAAkB,SAClBC,WAAY,SACZC,aAAc,SACdC,aAAc,SACdC,eAAgB,SAChBC,gBAAiB,SACjBC,kBAAmB,SACnBC,gBAAiB,SACjBC,gBAAiB,SACjBC,aAAc,SACdC,UAAW,SACXC,UAAW,SACXC,SAAU,SACVC,YAAa,SACbC,KAAM,SACNC,QAAS,SACTC,MAAO,SACPC,UAAW,SACXC,OAAQ,SACRC,UAAW,SACXC,OAAQ,SACRC,cAAe,SACfC,UAAW,SACXC,cAAe,SACfC,cAAe,SACfC,WAAY,SACZC,UAAW,SACXC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,WAAY,SACZC,OAAQ,SACRC,cAAe,SACfC,IAAK,MACLC,UAAW,SACXC,UAAW,SACXC,YAAa,SACbC,OAAQ,SACRC,WAAY,SACZC,SAAU,SACVC,SAAU,SACVC,OAAQ,SACRC,OAAQ,SACRC,QAAS,SACTC,UAAW,SACXC,UAAW,SACXC,UAAW,SACXC,KAAM,SACNC,YAAa,SACbC,UAAW,SACXC,IAAK,SACLC,KAAM,SACNC,QAAS,SACTC,OAAQ,SACRC,UAAW,SACXC,OAAQ,SACRC,MAAO,SACPC,MAAO,MACPC,WAAY,SACZC,OAAQ,MACRC,YAAa,UAIXtM,EAAY3D,EAAU2D,SAM1B,SAAchrI,GACZ,IAAIu3I,EAAU,CAAC,EACf,IAAK,IAAI7tK,KAAKs2B,EACRA,EAAEzP,eAAe7mB,KACnB6tK,EAAQv3I,EAAEt2B,IAAMA,GAGpB,OAAO6tK,CACT,CAdqCC,CAAK7jK,GA8FtC8zJ,GAaEuG,EAAoB,eALpBD,EAAW,MAHE,uBAGmB,QANlB,gBAM0C,KAKT,aAAeA,EAAW,aAAeA,EAAW,YACnGE,EACF,cACAF,EACA,aACAA,EACA,aACAA,EACA,aACAA,EACA,YAEK,CACLzG,IAAK,IAAInjJ,OAAO,MAAQ6pJ,GACxBtG,KAAM,IAAIvjJ,OAAO,OAAS8pJ,GAC1BtG,IAAK,IAAIxjJ,OAAO,MAAQ6pJ,GACxBpG,KAAM,IAAIzjJ,OAAO,OAAS8pJ,GAC1BpG,IAAK,IAAI1jJ,OAAO,MAAQ6pJ,GACxBlG,KAAM,IAAI3jJ,OAAO,OAAS8pJ,GAC1B9F,KAAM,qDACND,KAAM,qDACNH,KAAM,uEAqEVn+J,OAAOy9J,UAAYA,EAGnBz0J,GAAE,WACIA,EAAEvI,GAAG67J,SAAShwC,MAChBtjH,EAAEvI,GAAG67J,SAASS,0BAElB,GA90EqB,CAgHrB,SAAS8Q,EAAgB5xI,EAAG+/G,EAAOnnI,EAAW/K,GAE5C,IADA,IAAIqsE,EAAO,GACFr2E,EAAI,EAAGA,EAAIm8B,EAAEr7B,OAAQd,IAAK,CACjC,IAAIoO,EAAU+tB,EAAEn8B,GAChB,GAAIoO,EAAS,CACX,IAAI4/J,EAAOrQ,EAAUvvJ,GACjB8wE,EAAI8uF,EAAKxN,QAAQp+J,EAAI,GAAM,4BAA8B,6BAC7D88E,GAAKy+E,EAAU75G,OAAOo4F,EAAO9tI,GAAW,mBAAqB,GAC7D,IAAIwzJ,EAAkBoM,EAAKjmJ,SAAS/d,EAAK0xJ,iBAAmB,OACxDuS,EAAc/R,EAAc,oBAAsB8R,EAAK9M,cAAgB,UAAY8M,EAAKzM,WAC5FlrF,EAAKvxE,KACH,gBACE88J,EACA,iBACAoM,EAAK9M,cACL,YACAhiF,EACA,yCACA+uF,EACA,oB,KAEC,CAEL53F,EAAKvxE,KACHoE,EAAE,WACCiqF,OACCjqF,EAAE,oEAJE,mBAI0E,aAAavB,KACzF,QACAqC,EAAKyxJ,sBAGRplF,O,EAIT,MAAO,qBAAuBthE,EAAY,KAAOshE,EAAKzmB,KAAK,IAAM,QACnE,CAsBA,SAAS4sG,EAASroJ,EAASmiB,GACzB,IAq7BgBo7C,EAAMxiE,EAAMu4E,EACxB22B,EAt7BAp0G,EAbN,SAAyBssB,EAAG43I,GAC1B,IAAIlkK,EAAOd,EAAEpC,OAAO,CAAC,EAAGwzJ,EAAahkI,GAQrC,OAPAtsB,EAAKi5B,UAAY,CACfk9B,KAAMj0D,EAAKlC,EAAKm2D,KAAM+tG,GACtBjzI,OAAQ/uB,EAAKlC,EAAKixB,OAAQizI,GAC1Br6E,KAAM3nF,EAAKlC,EAAK6pF,KAAMq6E,GACtBp6E,KAAM5nF,EAAKlC,EAAK8pF,KAAMo6E,GACtB3T,WAAYruJ,EAAKlC,EAAKuwJ,WAAY2T,IAE7BlkK,CACT,CAGamkK,CAAgB73I,EAAGniB,GAC5BqmJ,EAAOxwJ,EAAKwwJ,KACZS,EAAuBjxJ,EAAKixJ,qBAC5BC,EAAkBlxJ,EAAKkxJ,gBACvBj6F,EAAQj3D,EAAKi3D,MACbh+B,EAAYj5B,EAAKi5B,UACjBmrI,GA+6Bc18F,EA/6BI28F,GA+6BEn/J,EA/6BM,GAi7BrB,WACL,IAAIhF,EAAU/J,KACZU,EAAOS,UACLgtK,EAAY,WACdlwD,EAAU,KACV1sC,EAAKhxE,MAAMwJ,EAASrJ,EACtB,EACI4mF,GAAU7/D,aAAaw2F,IACvB32B,GAAa22B,IAASA,EAAU12F,WAAW4mJ,EAAWp/J,GAC5D,GAz7BE2vC,GAAU,EACV0vH,GAAa,EACbC,GAAY,EACZC,EAAY,EACZC,EAAa,EACbC,EAAmB,EACnBC,EAAc,EAEdC,EAAa,EACbC,EAAwB,EACxBC,EAAoB,EACpBC,EAAa,EACbC,EAAoB,EACpBC,EAAe,EACfC,EAAe,EACfrT,EAAU,GACVsT,EAAe,GACfC,EAAgB,CAAC,EACjBtT,EAAmB/xJ,EAAK+xJ,iBAAiBt7J,MAAM,GAC/C06J,EAAmBnxJ,EAAKmxJ,iBACxBmU,EAAgB,cAChBC,EAAyB,KAEvB/8I,EAAMre,EAAQkc,cAEhBm/I,GADOh9I,EAAIvV,KACI/T,EAAEiL,IACjBq9D,GAAW,EACX5wB,EAAY13C,EAAEmzJ,EAAQ7pI,GAAK/M,SAASw7C,GACpCwuG,EAAkB7uH,EAAU7sC,KAAK,wBACjCuvE,EAAU1iC,EAAU7sC,KAAK,aACzB27J,GAAa9uH,EAAU7sC,KAAK,eAC5B47J,GAAS/uH,EAAU7sC,KAAK,WACxB67J,GAAchvH,EAAU7sC,KAAK,cAC7B87J,GAAmBjvH,EAAU7sC,KAAK,mBAClC+7J,GAAclvH,EAAU7sC,KAAK,aAC7Bg8J,GAAmBnvH,EAAU7sC,KAAK,oBAClCi8J,GAAYpvH,EAAU7sC,KAAK,aAC3Bk8J,GAAmBrvH,EAAU7sC,KAAK,eAClCm8J,GAAwBtvH,EAAU7sC,KAAK,eACvCo8J,GAAevvH,EAAU7sC,KAAK,cAC9Bq8J,GAAcxvH,EAAU7sC,KAAK,aAC7Bs8J,GAAezvH,EAAU7sC,KAAK,cAC9Bu8J,GAAe1vH,EAAU7sC,KAAK,sBAC9Bw8J,GAAUf,EAAa9lE,GAAG,SAC1B8mE,GAAmBD,IAAyC,UAA9Bf,EAAa7nK,KAAK,SAAuBi1J,IACvE6T,GAAgBF,KAAY/V,EAC5BkW,GAAWD,GACPvnK,EAAEkzJ,GAAc32I,SAASw7C,GAAOx7C,SAASzb,EAAK+K,WAAW0Q,SAASzb,EAAK4xJ,mBACvE1yJ,EAAE,IACNynK,GAAgBF,GAAgBC,GAAWlB,EAC3CoB,GAAiBF,GAAS38J,KAAK,qBAC/B88J,GAAe7mK,EAAKkyI,OAAUq0B,IAAWf,EAAappK,MACtD0qK,IAAc,EACdC,GAAyB/mK,EAAK0xJ,gBAC9Bf,IAAuB3wJ,EAAK0wJ,aAAe1wJ,EAAK2wJ,oBAChDl1J,IAAWorK,GACXzuB,GAAap4I,EAAKo4I,aAAeouB,GAEnC,SAASQ,KAOP,GANIhnK,EAAK8wJ,kBACP9wJ,EAAK6wJ,aAAc,GAGrByV,GAAapvJ,KAAKlX,EAAK8wJ,gBAAkB9wJ,EAAKsxJ,sBAAwBtxJ,EAAKuxJ,uBAEvEvxJ,EAAK8xJ,QAAS,CAChBA,EAAU9xJ,EAAK8xJ,QAAQr7J,MAAM,GAC7B2uK,EAAelmK,EAAE7H,QAAQy6J,EAAQ,IAAMA,EAAU,CAACA,GAClDuT,EAAgB,CAAC,EACjB,IAAK,IAAIrvK,EAAI,EAAGA,EAAIovK,EAAatuK,OAAQd,IACvC,IAAK,IAAI4L,EAAI,EAAGA,EAAIwjK,EAAapvK,GAAGc,OAAQ8K,IAAK,CAC/C,IAAIgyJ,EAAMD,EAAUyR,EAAapvK,GAAG4L,IAAIs1J,cACxCmO,EAAczR,IAAO,C,EAK3Bh9G,EAAUypD,YAAY,UAAWmwD,GACjC55G,EAAUypD,YAAY,qBAAsBrgG,EAAKywJ,WACjD75G,EAAUypD,YAAY,mBAAoBrgG,EAAK6xJ,WAC/Cj7G,EAAUypD,YAAY,mBAAoB+3C,IAC1CxhG,EAAUypD,YAAY,uBAAwBrgG,EAAK0wJ,aACnD95G,EAAUypD,YAAY,+BAAgCrgG,EAAKgxJ,mBAC3Dp6G,EAAUypD,YAAY,uBAAwBrgG,EAAK6wJ,aACnDj6G,EAAUypD,YAAY,kBAAmBrgG,EAAK8wJ,iBAC9Cl6G,EAAUypD,YAAY,uBAAwBrgG,EAAK4wJ,aACnDh6G,EAAUn7B,SAASzb,EAAK+K,WAAW0Q,SAASzb,EAAK2xJ,oBAEjD0S,IACF,CAwNA,SAAS4C,KACP,GAAI/V,GAAmBh7J,OAAO4wJ,aAAc,CAE1C,IACE,IAAIogB,EAAahxK,OAAO4wJ,aAAaoK,GAAiB9wJ,MAAM,MACxD8mK,EAAWpwK,OAAS,WACfZ,OAAO4wJ,aAAaoK,GAC3BhyJ,EAAExD,KAAKwrK,GAAY,SAAUlxK,EAAGk/E,GAC9BiyF,GAA2BjyF,EAC7B,IAEQ,CAAV,MAAO7zE,GAAG,CAEZ,IACE0wJ,EAAmB77J,OAAO4wJ,aAAaoK,GAAiB9wJ,MAAM,IACpD,CAAV,MAAOiB,GAAG,C,CAEhB,CAEA,SAAS8lK,GAA2Bj1B,GAClC,GAAI+e,EAAsB,CACxB,IAAI2C,EAAMD,EAAUzhB,GAAOglB,cAC3B,IAAKmO,EAAczR,KAA8C,IAAtC10J,EAAEkoK,QAAQxT,EAAK7B,GAExC,IADAA,EAAiBj3J,KAAK84J,GACf7B,EAAiBj7J,OAASq6J,GAC/BY,EAAiB/3J,QAIrB,GAAIk3J,GAAmBh7J,OAAO4wJ,aAC5B,IACE5wJ,OAAO4wJ,aAAaoK,GAAmBa,EAAiBnsG,KAAK,IACnD,CAAV,MAAOvkD,GAAG,C,CAGlB,CAiBA,SAASgmK,KACP,IAAIC,EAAextK,KAEfuyE,EAAOntE,EAAEjE,IAAImqK,GAAc,SAAUtT,EAAS97J,GAChD,OAAO+tK,EAAgBjS,EAASwV,EAAc,iCAAmCtxK,EAAGgK,EACtF,IAEAinK,KAEIlV,GACF1lF,EAAKvxE,KACHipK,EA1BN,WACE,IAAIlkE,EAAS,GACb,GAAI7/F,EAAK6wJ,YACP,IAAK,IAAI76J,EAAI,EAAGA,EAAI+7J,EAAiBj7J,OAAQd,IAAK,CAChD,IAAI49J,EAAMD,EAAU5B,EAAiB/7J,IAAIkhK,cAEpCmO,EAAczR,IACjB/zD,EAAO/kG,KAAKi3J,EAAiB/7J,G,CAKnC,OAAO6pG,EAAO58E,UAAUxsB,MAAM,EAAGuJ,EAAKmxJ,iBACxC,CAasBoW,GAA6BD,EAAc,0CAA2CtnK,IAI1GimK,GAAiB55F,KAAKA,EAAKzmB,KAAK,IAClC,CAEA,SAAS4hH,KACP,GAAIxnK,EAAK4wJ,YAAa,CACpB,IAAI5jJ,EAAU85J,GACV1iK,EAAUtK,KACdosK,GAAsB75F,KAAK03F,EAAgB,CAAC/2J,EAAS5I,GAAUA,EAAS,yBAA0BpE,G,CAEtG,CAEA,SAASg1D,MACH0vG,GAAc,GAAKD,GAAa,GAAKG,GAAe,IACtDP,KAEFE,GAAa,EACb3tH,EAAUn7B,SAAS6pJ,GACnBC,EAAyB,KACzBC,EAAavrK,QAAQ,qBAAsB,CAACH,MAC9C,CAEA,SAASitH,KACPw9C,GAAa,EACb3tH,EAAU4rC,YAAY8iF,GACtBE,EAAavrK,QAAQ,oBAAqB,CAACH,MAC7C,CAEA,SAAS2tK,KACP,IAAI5pK,EAAQmoK,GAAU5pK,MAEtB,GAAe,OAAVyB,GAA4B,KAAVA,IAAiBu6I,GAGjC,CACL,IAAI4rB,EAAOrQ,EAAU91J,GACjBmmK,EAAKj+J,WACPnK,GAAIooK,GACJ0D,IAAoB,IAEpB1B,GAAUvqJ,SAAS,sB,MARrB7f,GAAI,MACJ8rK,IAAoB,EAUxB,CAEA,SAASjvG,KACH5jB,EACFi1C,KAEAD,IAEJ,CAEA,SAASA,KACP,IAAI/gF,EAAQ5J,EAAE8mE,MAAM,uBAEpB,GAAInxB,EACFwvH,UAMF,GAFAmB,EAAavrK,QAAQ,sBAAuB,CAACH,QAET,IAAhCm/B,EAAUs3H,WAAWz2J,QAAoBgP,EAAM6+J,qBAAnD,EA9cJ,WACE,IAAK,IAAI3xK,EAAI,EAAGA,EAAIg8J,EAAUl7J,OAAQd,IAChCg8J,EAAUh8J,IACZg8J,EAAUh8J,GAAG8zF,MAGnB,CA4cI89E,GACA/yH,GAAU,EAEV,IAAIgzH,EAAO3oK,EAAEspB,GACbq/I,EAAK3lK,KAAK,mBAAoB4lK,IAC9BD,EAAK3lK,KAAK,iBAAkB6lK,IAC5B7oK,EAAEhJ,QAAQgM,KAAK,kBAAmBkiK,GAClCsC,GAASjrJ,SAAS,aAClBm7B,EAAU4rC,YAAY,aAEtB6hF,KACA2D,KAEAlB,GAAchtK,KAEd0tK,KACAvuI,EAAU4wD,KAAKi9E,IACftB,EAAavrK,QAAQ,gBAAiB,CAAC6sK,I,CACzC,CAEA,SAASgB,GAAUzmK,GAEC,KAAdA,EAAEgrD,SACJy9B,IAEJ,CAEA,SAASi+E,GAAS1mK,GAEA,GAAZA,EAAEyjB,SAMFy/I,IAIA5T,GACF+W,IAAoB,GAEpBO,KAEFn+E,MACF,CAEA,SAASA,KAEFj1C,IAAW27G,IAGhB37G,GAAU,EAEV31C,EAAEspB,GAAKxlB,OAAO,mBAAoB8kK,IAClC5oK,EAAEspB,GAAKxlB,OAAO,iBAAkB+kK,IAChC7oK,EAAEhJ,QAAQ8M,OAAO,kBAAmBohK,GAEpCsC,GAASlkF,YAAY,aACrB5rC,EAAUn7B,SAAS,aAEnBwd,EAAU6wD,KAAKhwF,MACf0rK,EAAavrK,QAAQ,gBAAiB,CAACH,OACzC,CAEA,SAASmuK,KACPrsK,GAAIkrK,IAAa,EACnB,CAEA,SAASlrK,GAAIs2I,EAAOg2B,GAQlB,IAAIpP,EAAUqP,EAPVxU,EAAU75G,OAAOo4F,EAAOp4I,MAG1BkuK,OAKG91B,GAASkG,GACZ38I,IAAU,GAEVA,IAAU,EACV+oK,GAAatyB,EAEbi2B,GADArP,EAAWnF,EAAUzhB,IACHmkB,QAElB2O,EAAcmD,EAAO9+I,EAAI,IAAO,IAChC47I,EAAoBkD,EAAO5pK,EAC3B2mK,EAAeiD,EAAOvmH,EACtBujH,EAAegD,EAAOpyK,GAExBiyK,KAEIlP,GAAYA,EAAS/yJ,YAAcmiK,IACrCnB,GAAyB/mK,EAAK0xJ,iBAAmBoH,EAAS7C,aAE9D,CAEA,SAASn8J,GAAIkG,GAGX,OAFAA,EAAOA,GAAQ,CAAC,EAEZo4I,IAAc38I,GACT,KAGFk4J,EAAUkF,UACf,CACExvI,EAAG27I,EACHzmK,EAAG0mK,EACHrjH,EAAGsjH,EACHnvK,EAAGsM,KAAKikC,MAAqB,IAAf6+H,GAAsB,KAEtC,CAAEtR,OAAQ7zJ,EAAK6zJ,QAAUkT,IAE7B,CAMA,SAAS5wG,KACP6xG,KAEA/uI,EAAUk9B,KAAKr8D,MACf0rK,EAAavrK,QAAQ,gBAAiB,CAACH,MACzC,CAEA,SAASkuK,KACPhC,GAAUxjF,YAAY,uBAEtB4lF,KAGA,IAAIC,EAAY1U,EAAUkF,UAAU,CAAExvI,EAAG27I,EAAYzmK,EAAG,EAAGqjD,EAAG,IAC9D03B,EAAQ7iD,IAAI,mBAAoB4xI,EAAUvR,eAG1C,IAAIjD,EAASkT,GACT5B,EAAe,IAAwB,IAAjBA,GAAiC,SAAXtR,KAC/B,QAAXA,GAA+B,SAAXA,GAAgC,SAAXA,GAAgC,SAAXA,IAChEA,EAAS,QAIb,IAAIyU,EAAYxuK,GAAI,CAAE+5J,OAAQA,IAC5B0U,EAAe,GAMjB,GAHA3B,GAAepkF,YAAY,oBAC3BokF,GAAenwI,IAAI,mBAAoB,gBAElC6xI,GAAalwB,GAEhBwuB,GAAenrJ,SAAS,wBACnB,CACL,IAAI+sJ,EAAUF,EAAUxR,cACtB2R,EAAUH,EAAUpR,cAUtB,GAPIhF,GAAmC,IAApBoW,EAAUI,MAC3B9B,GAAenwI,IAAI,mBAAoBgyI,IAEvC7B,GAAenwI,IAAI,mBAAoB,eACvCmwI,GAAenwI,IAAI,SAAU6xI,EAAU/Q,aAGrCv3J,EAAK6xJ,UAAW,CAClB,IAAI+B,EAAM0U,EAAUnS,QACpBvC,EAAI79J,EAAI,EACR,IAAI4yK,EAAYhV,EAAUC,GAAKsD,cAC3B0R,EAAW,yBAA2BD,EAAY,KAAOH,EAAU,IAEnEvW,EACF4T,GAAiBpvI,IAAI,SAAUk9H,EAAUgV,GAAWpR,SAAS,CAAE7B,aAAc,GAAK8S,KAElF3C,GAAiBpvI,IAAI,aAAc,WAAamyI,GAChD/C,GAAiBpvI,IAAI,aAAc,QAAUmyI,GAC7C/C,GAAiBpvI,IAAI,aAAc,OAASmyI,GAE5C/C,GAAiBpvI,IAAI,aAAc,6BAA+BkyI,EAAY,KAAOH,EAAU,K,CAInGD,EAAeD,EAAUvqJ,SAAS81I,E,CAIhC7zJ,EAAKywJ,WACPuV,GAAU5pK,IAAImsK,GAGZvoK,EAAK6wJ,aACPwW,KAGFG,IACF,CAEA,SAASY,KACP,IAAI7pK,EAAI0mK,EACJrjH,EAAIsjH,EAER,GAAI9sB,IAAc38I,GAEhBsqK,GAAiBj8E,OACjB87E,GAAY97E,OACZ47E,GAAW57E,WACN,CAELi8E,GAAiBl8E,OACjB+7E,GAAY/7E,OACZ67E,GAAW77E,OAGX,IAAIshC,EAAQ5sH,EAAIkmK,EACZr5C,EAAQs5C,EAAa9iH,EAAI8iH,EAC7Bv5C,EAAQ9oH,KAAKC,KAAKqiK,EAAkBtiK,KAAKiE,IAAIm+J,EAAYE,EAAkBx5C,EAAQw5C,IACnFv5C,EAAQ/oH,KAAKC,KAAKqiK,EAAkBtiK,KAAKiE,IAAIo+J,EAAaC,EAAkBv5C,EAAQu5C,IACpFe,GAAWjvI,IAAI,CACbwI,IAAKmsF,EAAQ,KACbvlG,KAAMslG,EAAQ,OAGhB,IAAI09C,EAAS1D,EAAeN,EAC5BkB,GAAiBtvI,IAAI,CACnB5Q,KAAMgjJ,EAAS/D,EAAwB,EAAI,OAI7C,IAAIgE,EAAS9D,EAAaJ,EAC1BgB,GAAYnvI,IAAI,CACdwI,IAAK6pI,EAAS/D,EAAoB,M,CAGxC,CAEA,SAAS2C,GAAoBqB,GAC3B,IAAI72B,EAAQp4I,KACVyuK,EAAe,GACf9jK,IAAa+/J,IAAoB7Q,EAAU75G,OAAOo4F,EAAO40B,IAEvD50B,IACFq2B,EAAer2B,EAAMn0H,SAASgpJ,KAE7BlyH,GAAWsyH,GAA2Bj1B,IAGrCq0B,IACFf,EAAappK,IAAImsK,GAGfQ,GAAgBtkK,IAClBw0B,EAAUhI,OAAOihH,GACjBszB,EAAavrK,QAAQ,SAAU,CAACi4I,IAEpC,CAEA,SAASmyB,KACFxvH,IAGL4vH,EAAYnrF,EAAQh9C,QACpBooI,EAAaprF,EAAQrwD,SACrB07I,EAAmBe,GAAWz8I,SACjB08I,GAAOrpI,QACpBsoI,EAAce,GAAO18I,SACrB87I,EAAoBa,GAAY38I,SAChC47I,EAAaiB,GAAYxpI,QACzBwoI,EAAwBiB,GAAiBzpI,QAEpCk0H,IACH55G,EAAUngB,IAAI,WAAY,YACtBz2B,EAAKsxB,OACPslB,EAAUtlB,OAAOtxB,EAAKsxB,QAEtBslB,EAAUtlB,OAoFlB,SAAmB03I,EAAQvxI,GACzB,IAAIwxI,EAAS,EACTC,EAAUF,EAAOG,aACjBC,EAAWJ,EAAOK,cAClBC,EAAc7xI,EAAM4xI,cACpB7gJ,EAAMwgJ,EAAO,GAAG3iJ,cAChBkjJ,EAAU/gJ,EAAI2Z,gBACdqnI,EAAKD,EAAQvsI,YACbysI,EAAKF,EAAQjrI,aACborI,EAAMxqK,EAAEspB,GAAK4Z,aACbunI,EAAMzqK,EAAEspB,GAAKga,YACb+M,EAAYi6H,EAAKE,EACjBp6H,EAAam6H,EAAKE,EAClBr4I,EAASmG,EAAMnG,SAcnB,OAZAA,EAAO2N,KAAOqqI,EAEdh4I,EAAOzL,MAAQxjB,KAAKiE,IAClBgrB,EAAOzL,KACPyL,EAAOzL,KAAOqjJ,EAAU35H,GAAaA,EAAY25H,EAAU7mK,KAAK0kB,IAAIuK,EAAOzL,KAAOqjJ,EAAU35H,GAAa,GAG3Gje,EAAO2N,KAAO58B,KAAKiE,IACjBgrB,EAAO2N,IACP3N,EAAO2N,IAAMmqI,EAAW95H,GAAcA,EAAa85H,EAAW/mK,KAAK0kB,IAAIqiJ,EAAWE,EAAcL,GAAUA,GAGrG33I,CACT,CAhHyBi2F,CAAU3wE,EAAW+vH,MAI1CyB,KAEIpoK,EAAK6wJ,aACPwW,KAGF7B,EAAavrK,QAAQ,mBACvB,CAgCA,SAASuqF,KACPsF,KACAtiB,GAAW,EACXg+F,EAAa7nK,KAAK,YAAY,GAC9BgpK,GAAclrJ,SAAS,cACzB,EA9pBA,WAeE,GAdIw2I,GACFr7G,EAAU7sC,KAAK,gBAAgBpM,KAAK,eAAgB,MAGtDqpK,KAEIP,IACFjB,EAAazsK,MAAM2tK,IAAU58E,OAG1BsuD,IACHguB,GAAYt8E,OAGV0mE,EACFgV,EAAazsK,MAAM69C,GAAWkzC,WACzB,CACL,IAAI/B,EAA6B,WAAlB/nF,EAAK+nF,SAAwBy9E,EAAa9wJ,SAAWxV,EAAEc,EAAK+nF,UACnD,IAApBA,EAASjxF,SACXixF,EAAW7oF,EAAE,SAGf6oF,EAASoB,OAAOvyC,E,CA0KlB,SAASgzH,EAAoBvoK,GAa3B,OAZIA,EAAEwN,MAAQxN,EAAEwN,KAAKxT,QACnBO,GAAIsD,EAAEmC,EAAEqb,QAAQ0qF,QAAQ,gBAAgBv4F,KAAK,UAC7CsnD,OAEAv6D,GAAIsD,EAAEmC,EAAEqb,QAAQ0qF,QAAQ,gBAAgBv4F,KAAK,UAC7CsnD,KACIn2D,EAAK+wJ,yBACP2W,IAAoB,GACpB59E,QAIG,CACT,CArLAm9E,KAEAN,GAAczkK,KAAK,sCAAsC,SAAUb,GAC5DmmE,GACH/O,KAGFp3D,EAAEmjB,kBAEGtlB,EAAEmC,EAAEqb,QAAQgjF,GAAG,UAClBr+F,EAAEqiB,gBAEN,KAEI8hJ,EAAa9lE,GAAG,eAAkC,IAAlB1/F,EAAKwnE,WACvCgd,KAIF5tC,EAAUwrC,MAAM59D,GAGhBwhJ,GAAU/0I,OAAOw2I,IACjBzB,GAAU9jK,KAAK,SAAS,WACtBwb,WAAW+pJ,GAAkB,EAC/B,IACAzB,GAAU7V,SAAQ,SAAU9uJ,GACT,IAAbA,EAAEgrD,SACJo7G,IAEJ,IAEAtB,GAAajvJ,KAAKlX,EAAKoxJ,YACvB+U,GAAajkK,KAAK,kBAAkB,SAAUb,GAC5CA,EAAEmjB,kBACFnjB,EAAEqiB,iBACFukJ,KACAn+E,IACF,IAEAs8E,GAAYzoK,KAAK,QAASqC,EAAKwxJ,WAC/B4U,GAAYlkK,KAAK,kBAAkB,SAAUb,GAC3CA,EAAEmjB,kBACFnjB,EAAEqiB,iBACFjoB,IAAU,EACV06D,KAEIq6F,GAEFkX,IAAoB,EAExB,IAEArB,GAAanvJ,KAAKlX,EAAKqxJ,YACvBgV,GAAankK,KAAK,kBAAkB,SAAUb,GAC5CA,EAAEmjB,kBACFnjB,EAAEqiB,iBAEEuuI,GAAM+T,GAAUtmE,GAAG,WACrBsmE,GAAU/rK,QAAQ,UA2Xd+rK,GAAU9lE,SAAS,yBAvXvBwnE,IAAoB,GACpB59E,KAEJ,IAEAw8E,GAAapvJ,KAAKlX,EAAK8wJ,gBAAkB9wJ,EAAKsxJ,sBAAwBtxJ,EAAKuxJ,uBAC3E+U,GAAapkK,KAAK,kBAAkB,SAAUb,GAC5CA,EAAEmjB,kBACFnjB,EAAEqiB,iBAEF1jB,EAAK8wJ,iBAAmB9wJ,EAAK8wJ,gBAOxB9wJ,EAAK8wJ,iBAAoBN,GAC5B55G,EAAUngB,IAAI,OAAQ,MAAQgvI,EAAgB0D,YAAW,GAAQ,IAEnEnC,IACF,IAEAjvH,EACE+tH,IACA,SAAU36C,EAAOC,EAAO/pH,GACtB8jK,EAAeh6C,EAAQ05C,EACvBppK,IAAU,EACN4F,EAAEqrD,WACJy4G,EAAe9iK,KAAKikC,MAAqB,GAAf6+H,GAAqB,IAGjDhvG,IACF,GACAnB,GACA+xD,IAGFhvE,EACE4tH,IACA,SAAUx6C,EAAOC,GACf45C,EAAatmF,WAAW0sC,EAAQw5C,GAChCnpK,IAAU,EACLuE,EAAK6xJ,YACRsT,EAAe,GAEjBhvG,IACF,GACAnB,GACA+xD,IAGFhvE,EACEuhC,GACA,SAAU6xC,EAAOC,EAAO/pH,GAEtB,GAAKA,EAAEqrD,UAEA,IAAK64G,EAAwB,CAClC,IAAIsE,EAAW5E,EAAoBR,EAC/BqF,EAAWpF,EAAaQ,EAAeR,EACvCqF,EAAe1nK,KAAK0kB,IAAIokG,EAAQ0+C,GAAYxnK,KAAK0kB,IAAIqkG,EAAQ0+C,GAEjEvE,EAAyBwE,EAAe,IAAM,G,OAN9CxE,EAAyB,KAS3B,IACIz/G,GAAYy/G,GAAqD,MAA3BA,IADrBA,GAAqD,MAA3BA,KAI7CN,EAAoBvmF,WAAWysC,EAAQs5C,IAErC3+G,IACFo/G,EAAexmF,YAAYgmF,EAAat5C,GAASs5C,IAGnDjpK,IAAU,EACLuE,EAAK6xJ,YACRsT,EAAe,GAGjBhvG,IACF,GACAnB,GACA+xD,IAGI8/C,IACJjrK,GAAIirK,IAIJmB,KACAjB,GAAyB/mK,EAAK0xJ,iBAAmBiC,EAAUkT,IAAc5Q,YAEzEkR,GAA2BN,KAE3BmB,KAGExX,GACF3mE,KAmBF,IAAImgF,EAAe/X,EAAK,qBAAuB,qCAC/CgU,GAAiBx7J,SAAS,eAAgBu/J,EAAcJ,GACxD1D,GAAsBz7J,SAAS,4BAA6Bu/J,EAAc,CAAE3uK,QAAQ,GAAQuuK,EAC9F,CAidAlsK,GAEA,IAAIg1J,GAAQ,CACV7oE,KAAMA,GACNC,KAAMA,GACNrxB,OAAQA,GACR4rG,OAAQA,GACRjwG,OAzCF,SAAgB61G,EAAYC,GAC1B,OAAID,IAAezuK,EACV0D,EAAEpC,OAAO,CAAC,EAAGkD,GAElBkqK,IAAgB1uK,EACXwE,EAAKiqK,IAGdjqK,EAAKiqK,GAAcC,EAEA,oBAAfD,IACFlD,GAAyB/mK,EAAK0xJ,sBAEhCsV,KACF,EA4BE5tF,OA1BF,WACE5R,GAAW,EACXg+F,EAAa7nK,KAAK,YAAY,GAC9BgpK,GAAcnkF,YAAY,cAC5B,EAuBEgC,QAASA,GACTlzD,OAfF,SAAmB64I,GACjBnqK,EAAKsxB,OAAS64I,EACd9F,IACF,EAaEzoK,IAAK,SAAUs5E,GACbt5E,GAAIs5E,GACJwyF,IACF,EACA5tK,IAAKA,GACL0L,QA1DF,WACEggK,EAAa37E,OACb88E,GAAc3jK,OAAO,sCACrB4zC,EAAUr7C,SACVmrK,GAASnrK,SACTy2J,EAAUU,GAAMjyJ,IAAM,IACxB,EAqDEm2C,UAAWA,GAKb,OAFA87G,GAAMjyJ,GAAKuxJ,EAAUl3J,KAAK43J,IAAS,EAE5BA,EACT,CAuCA,SAAS5gD,IAAQ,CAKjB,SAASttF,EAAgBnjB,GACvBA,EAAEmjB,iBACJ,CAMA,SAAStiB,EAAKwlE,EAAMvwE,GAClB,IAAIV,EAAQF,MAAMC,UAAUC,MACxBI,EAAOJ,EAAMM,KAAKO,UAAW,GACjC,OAAO,WACL,OAAOowE,EAAKhxE,MAAMS,EAAKN,EAAKqE,OAAOzE,EAAMM,KAAKO,YAChD,CACF,CAMA,SAASygD,EAAU5tC,EAASigK,EAAQC,EAASC,GAC3CF,EAASA,GAAU,WAAa,EAChCC,EAAUA,GAAW,WAAa,EAClCC,EAASA,GAAU,WAAa,EAChC,IAAI9hJ,EAAM3d,SACNi9G,GAAW,EACXx2F,EAAS,CAAC,EACVi5I,EAAY,EACZC,EAAW,EACXC,EAAW,iBAAkBv0K,OAE7Bw0K,EAAmB,CAAC,EAMxB,SAASh0G,EAAQr1D,GACXA,EAAEmjB,iBACJnjB,EAAEmjB,kBAEAnjB,EAAEqiB,gBACJriB,EAAEqiB,iBAEJriB,EAAEijB,aAAc,CAClB,CAEA,SAAS6xC,EAAK90D,GACZ,GAAIymH,EAAU,CAEZ,GAAImqC,GAAMzpI,EAAIlW,aAAe,IAAMjR,EAAEyjB,OACnC,OAAOhR,IAGT,IAAI62J,EAAKtpK,GAAKA,EAAEw1D,SAAWx1D,EAAEw1D,QAAQ,GACjCkD,EAAS4wG,GAAMA,EAAG5wG,OAAU14D,EAAE04D,MAC9BC,EAAS2wG,GAAMA,EAAG3wG,OAAU34D,EAAE24D,MAE9BmxD,EAAQ9oH,KAAKC,IAAI,EAAGD,KAAKiE,IAAIyzD,EAAQzoC,EAAOzL,KAAM2kJ,IAClDp/C,EAAQ/oH,KAAKC,IAAI,EAAGD,KAAKiE,IAAI0zD,EAAQ1oC,EAAO2N,IAAKsrI,IAEjDE,GAEF/zG,EAAQr1D,GAGV+oK,EAAO1zK,MAAMyT,EAAS,CAACghH,EAAOC,EAAO/pH,G,CAEzC,CAsBA,SAASyS,IACHg0G,IACF5oH,EAAEspB,GAAKxlB,OAAO0nK,GACdxrK,EAAEspB,EAAIvV,MAAMuvE,YAAY,eAIxB9kE,YAAW,WACT4sJ,EAAO5zK,MAAMyT,EAAS7S,UACxB,GAAG,IAELwwH,GAAW,CACb,CAtEA4iD,EAAiB,eAAiBh0G,EAClCg0G,EAAiB,aAAeh0G,EAChCg0G,EAAiB,uBAAyBv0G,EAC1Cu0G,EAAiB,oBAAsB52J,EAqEvC5U,EAAEiL,GAASjI,KAAK,wBAlChB,SAAeb,GACb,IAAIupK,EAAavpK,EAAEnJ,MAAmB,GAAXmJ,EAAEnJ,MAAyB,GAAZmJ,EAAEyjB,OAEvC8lJ,GAAe9iD,IACwB,IAAtCuiD,EAAQ3zK,MAAMyT,EAAS7S,aACzBwwH,GAAW,EACXyiD,EAAYrrK,EAAEiL,GAAS8e,SACvBuhJ,EAAWtrK,EAAEiL,GAASmyB,QACtBhL,EAASpyB,EAAEiL,GAASmnB,SAEpBpyB,EAAEspB,GAAKtmB,KAAKwoK,GACZxrK,EAAEspB,EAAIvV,MAAMwI,SAAS,eAErB06C,EAAK90D,GAELq1D,EAAQr1D,GAGd,GAiBF,CAgBA,SAASuxJ,IACP,OAAO1zJ,EAAEvI,GAAG67J,SAASI,uBACvB,CAydA,SAAS6D,EAAS16I,EAAG/c,EAAG2c,GACtBI,EAAI44I,EAAQ54I,EAAG,KACf/c,EAAI21J,EAAQ31J,EAAG,KACf2c,EAAIg5I,EAAQh5I,EAAG,KAEf,IAEI0N,EACF9qB,EAHE+D,EAAMmxJ,EAAQ13I,EAAG/c,EAAG2c,GACtBrV,EAAMktJ,EAAQz3I,EAAG/c,EAAG2c,GAGpBvjB,GAAKkK,EAAMgE,GAAO,EAEpB,GAAIhE,GAAOgE,EACT+iB,EAAI9qB,EAAI,MACH,CACL,IAAIm2B,EAAIpyB,EAAMgE,EAEd,OADA/H,EAAInG,EAAI,GAAMs8B,GAAK,EAAIpyB,EAAMgE,GAAOouB,GAAKpyB,EAAMgE,GACvChE,GACN,KAAKyZ,EACHsN,GAAKrqB,EAAI2c,GAAK+Y,GAAK11B,EAAI2c,EAAI,EAAI,GAC/B,MACF,KAAK3c,EACHqqB,GAAK1N,EAAII,GAAK2Y,EAAI,EAClB,MACF,KAAK/Y,EACH0N,GAAKtN,EAAI/c,GAAK01B,EAAI,EAItBrL,GAAK,C,CAGP,MAAO,CAAEA,EAAGA,EAAG9qB,EAAGA,EAAGnG,EAAGA,EAC1B,CAuCA,SAASk+J,EAASv6I,EAAG/c,EAAG2c,GACtBI,EAAI44I,EAAQ54I,EAAG,KACf/c,EAAI21J,EAAQ31J,EAAG,KACf2c,EAAIg5I,EAAQh5I,EAAG,KAEf,IAEI0N,EACF9qB,EAHE+D,EAAMmxJ,EAAQ13I,EAAG/c,EAAG2c,GACtBrV,EAAMktJ,EAAQz3I,EAAG/c,EAAG2c,GAGpBimC,EAAIt/C,EAEFoyB,EAAIpyB,EAAMgE,EAGd,GAFA/H,EAAY,IAAR+D,EAAY,EAAIoyB,EAAIpyB,EAEpBA,GAAOgE,EACT+iB,EAAI,MACC,CACL,OAAQ/mB,GACN,KAAKyZ,EACHsN,GAAKrqB,EAAI2c,GAAK+Y,GAAK11B,EAAI2c,EAAI,EAAI,GAC/B,MACF,KAAK3c,EACHqqB,GAAK1N,EAAII,GAAK2Y,EAAI,EAClB,MACF,KAAK/Y,EACH0N,GAAKtN,EAAI/c,GAAK01B,EAAI,EAGtBrL,GAAK,C,CAEP,MAAO,CAAEA,EAAGA,EAAG9qB,EAAGA,EAAGqjD,EAAGA,EAC1B,CA4BA,SAASi1G,EAAS96I,EAAG/c,EAAG2c,EAAGi7I,GACzB,IAAIiU,EAAM,CAACC,EAAKvX,EAAUx3I,GAAGgC,SAAS,KAAM+sJ,EAAKvX,EAAUv0J,GAAG+e,SAAS,KAAM+sJ,EAAKvX,EAAU53I,GAAGoC,SAAS,MAGxG,OACE64I,GACAiU,EAAI,GAAG94J,OAAO,IAAM84J,EAAI,GAAG94J,OAAO,IAClC84J,EAAI,GAAG94J,OAAO,IAAM84J,EAAI,GAAG94J,OAAO,IAClC84J,EAAI,GAAG94J,OAAO,IAAM84J,EAAI,GAAG94J,OAAO,GAE3B84J,EAAI,GAAG94J,OAAO,GAAK84J,EAAI,GAAG94J,OAAO,GAAK84J,EAAI,GAAG94J,OAAO,GAGtD84J,EAAIjlH,KAAK,GAClB,CAKA,SAASoxG,EAAUj7I,EAAG/c,EAAG2c,EAAG5lB,GAC1B,IAyf2B2+B,EAlf3B,MAPU,CACRo2I,GAwfyBp2I,EAxfA3+B,EAyfpBsM,KAAKikC,MAAsB,IAAhBo4C,WAAWhqD,IAAU3W,SAAS,MAxf9C+sJ,EAAKvX,EAAUx3I,GAAGgC,SAAS,KAC3B+sJ,EAAKvX,EAAUv0J,GAAG+e,SAAS,KAC3B+sJ,EAAKvX,EAAU53I,GAAGoC,SAAS,MAGlB6nC,KAAK,GAClB,CAuBA,SAASsyG,EAAWhmB,EAAO/zE,GACzBA,EAAoB,IAAXA,EAAe,EAAIA,GAAU,GACtC,IAAI81F,EAAMN,EAAUzhB,GAAOskB,QAG3B,OAFAvC,EAAI11J,GAAK4/D,EAAS,IAClB81F,EAAI11J,EAAIwsK,EAAQ9W,EAAI11J,GACbo1J,EAAUM,EACnB,CAEA,SAASkE,EAASjmB,EAAO/zE,GACvBA,EAAoB,IAAXA,EAAe,EAAIA,GAAU,GACtC,IAAI81F,EAAMN,EAAUzhB,GAAOskB,QAG3B,OAFAvC,EAAI11J,GAAK4/D,EAAS,IAClB81F,EAAI11J,EAAIwsK,EAAQ9W,EAAI11J,GACbo1J,EAAUM,EACnB,CAEA,SAASmE,EAAUlmB,GACjB,OAAOyhB,EAAUzhB,GAAOgmB,WAAW,IACrC,CAEA,SAASH,EAAQ7lB,EAAO/zE,GACtBA,EAAoB,IAAXA,EAAe,EAAIA,GAAU,GACtC,IAAI81F,EAAMN,EAAUzhB,GAAOskB,QAG3B,OAFAvC,EAAI77J,GAAK+lE,EAAS,IAClB81F,EAAI77J,EAAI2yK,EAAQ9W,EAAI77J,GACbu7J,EAAUM,EACnB,CAEA,SAAS+D,EAAS9lB,EAAO/zE,GACvBA,EAAoB,IAAXA,EAAe,EAAIA,GAAU,GACtC,IAAIy1F,EAAMD,EAAUzhB,GAAOikB,QAI3B,OAHAvC,EAAI73I,EAAI03I,EAAQ,EAAGD,EAAQ,IAAKI,EAAI73I,EAAIw3I,EAAU,MAAQp1F,EAAS,QACnEy1F,EAAI50J,EAAIy0J,EAAQ,EAAGD,EAAQ,IAAKI,EAAI50J,EAAIu0J,EAAU,MAAQp1F,EAAS,QACnEy1F,EAAIj4I,EAAI83I,EAAQ,EAAGD,EAAQ,IAAKI,EAAIj4I,EAAI43I,EAAU,MAAQp1F,EAAS,QAC5Dw1F,EAAUC,EACnB,CAEA,SAASqE,EAAO/lB,EAAO/zE,GACrBA,EAAoB,IAAXA,EAAe,EAAIA,GAAU,GACtC,IAAI81F,EAAMN,EAAUzhB,GAAOskB,QAG3B,OAFAvC,EAAI77J,GAAK+lE,EAAS,IAClB81F,EAAI77J,EAAI2yK,EAAQ9W,EAAI77J,GACbu7J,EAAUM,EACnB,CAIA,SAASoE,EAAKnmB,EAAO/zE,GACnB,IAAI81F,EAAMN,EAAUzhB,GAAOskB,QACvBwU,GAAOzX,EAAUU,EAAI5qI,GAAK80C,GAAU,IAExC,OADA81F,EAAI5qI,EAAI2hJ,EAAM,EAAI,IAAMA,EAAMA,EACvBrX,EAAUM,EACnB,CAOA,SAASuE,EAAWtmB,GAClB,IAAI+hB,EAAMN,EAAUzhB,GAAOskB,QAE3B,OADAvC,EAAI5qI,GAAK4qI,EAAI5qI,EAAI,KAAO,IACjBsqI,EAAUM,EACnB,CAEA,SAAS0E,EAAMzmB,GACb,IAAI+hB,EAAMN,EAAUzhB,GAAOskB,QACvBntI,EAAI4qI,EAAI5qI,EACZ,MAAO,CACLsqI,EAAUzhB,GACVyhB,EAAU,CAAEtqI,GAAIA,EAAI,KAAO,IAAK9qB,EAAG01J,EAAI11J,EAAGnG,EAAG67J,EAAI77J,IACjDu7J,EAAU,CAAEtqI,GAAIA,EAAI,KAAO,IAAK9qB,EAAG01J,EAAI11J,EAAGnG,EAAG67J,EAAI77J,IAErD,CAEA,SAASwgK,EAAO1mB,GACd,IAAI+hB,EAAMN,EAAUzhB,GAAOskB,QACvBntI,EAAI4qI,EAAI5qI,EACZ,MAAO,CACLsqI,EAAUzhB,GACVyhB,EAAU,CAAEtqI,GAAIA,EAAI,IAAM,IAAK9qB,EAAG01J,EAAI11J,EAAGnG,EAAG67J,EAAI77J,IAChDu7J,EAAU,CAAEtqI,GAAIA,EAAI,KAAO,IAAK9qB,EAAG01J,EAAI11J,EAAGnG,EAAG67J,EAAI77J,IACjDu7J,EAAU,CAAEtqI,GAAIA,EAAI,KAAO,IAAK9qB,EAAG01J,EAAI11J,EAAGnG,EAAG67J,EAAI77J,IAErD,CAEA,SAASsgK,EAAgBxmB,GACvB,IAAI+hB,EAAMN,EAAUzhB,GAAOskB,QACvBntI,EAAI4qI,EAAI5qI,EACZ,MAAO,CACLsqI,EAAUzhB,GACVyhB,EAAU,CAAEtqI,GAAIA,EAAI,IAAM,IAAK9qB,EAAG01J,EAAI11J,EAAGnG,EAAG67J,EAAI77J,IAChDu7J,EAAU,CAAEtqI,GAAIA,EAAI,KAAO,IAAK9qB,EAAG01J,EAAI11J,EAAGnG,EAAG67J,EAAI77J,IAErD,CAEA,SAASmgK,EAAUrmB,EAAOtgC,EAASq5D,GACjCr5D,EAAUA,GAAW,EACrBq5D,EAASA,GAAU,GAEnB,IAAIhX,EAAMN,EAAUzhB,GAAOskB,QACvB91I,EAAO,IAAMuqJ,EACbniG,EAAM,CAAC6qF,EAAUzhB,IAErB,IAAK+hB,EAAI5qI,GAAK4qI,EAAI5qI,GAAM3I,EAAOkxF,GAAY,GAAK,KAAO,MAAOA,GAC5DqiD,EAAI5qI,GAAK4qI,EAAI5qI,EAAI3I,GAAQ,IACzBooD,EAAIhuE,KAAK64J,EAAUM,IAErB,OAAOnrF,CACT,CAEA,SAAS2vF,EAAcvmB,EAAOtgC,GAC5BA,EAAUA,GAAW,EAQrB,IAPA,IAAIuiD,EAAMR,EAAUzhB,GAAOmkB,QACvBhtI,EAAI8qI,EAAI9qI,EACV9qB,EAAI41J,EAAI51J,EACRqjD,EAAIuyG,EAAIvyG,EACNknB,EAAM,GACNoiG,EAAe,EAAIt5D,EAEhBA,KACL9oC,EAAIhuE,KAAK64J,EAAU,CAAEtqI,EAAGA,EAAG9qB,EAAGA,EAAGqjD,EAAGA,KACpCA,GAAKA,EAAIspH,GAAgB,EAG3B,OAAOpiG,CACT,CAuRA,SAASksF,EAAWj/J,GAOlB,OANAA,EAAI2oF,WAAW3oF,IAEXgoC,MAAMhoC,IAAMA,EAAI,GAAKA,EAAI,KAC3BA,EAAI,GAGCA,CACT,CAGA,SAAS4+J,EAAQ13I,EAAG3a,IAkCpB,SAAwB2a,GACtB,MAAmB,iBAALA,IAAoC,GAAnBA,EAAEjiB,QAAQ,MAAgC,IAAlB0jF,WAAWzhE,EACpE,EAnCMkuJ,CAAeluJ,KACjBA,EAAI,QAGN,IAAImuJ,EAkCN,SAAsBnuJ,GACpB,MAAoB,iBAANA,IAAqC,GAAnBA,EAAEjiB,QAAQ,IAC5C,CApCuBqwK,CAAapuJ,GASlC,OARAA,EAAIu2I,EAAQlxJ,EAAKmxJ,EAAQ,EAAG/0E,WAAWzhE,KAGnCmuJ,IACFnuJ,EAAI4gB,SAAS5gB,EAAI3a,EAAK,IAAM,KAI1BgxJ,EAAKvsI,IAAI9J,EAAI3a,GAAO,KACf,EAID2a,EAAI3a,EAAOo8E,WAAWp8E,EAChC,CAGA,SAASyoK,EAAQ3uK,GACf,OAAOo3J,EAAQ,EAAGC,EAAQ,EAAGr3J,GAC/B,CAGA,SAASm4J,EAAgBn4J,GACvB,OAAOyhC,SAASzhC,EAAK,GACvB,CAcA,SAAS0uK,EAAK51F,GACZ,OAAmB,GAAZA,EAAEp+E,OAAc,IAAMo+E,EAAI,GAAKA,CACxC,CAGA,SAAS0/E,GAAoB33I,GAK3B,OAJIA,GAAK,IACPA,EAAQ,IAAJA,EAAU,KAGTA,CACT,CAOA,SAASq3I,GAAoBjrI,GAC3B,OAAOkrI,EAAgBlrI,GAAK,GAC9B,CAiHF,CDr1EKiiJ,CAAY,cAEjB,IAAMC,GAAW,SAACr5B,GAChB,IAAMpyI,EAA6B,SAAtBoyI,EAAM+jB,aAA0B/jB,EAAMmlB,SAC7CzhC,EAAyB,GAApBsc,EAAMgkB,WAAkBhkB,EAAM4kB,cAAgB5kB,EAAMglB,cAC/D,OAAOp3J,GAAQ81H,EAAGhwH,QAAQ,KAAM,GAClC,E,SAEA,yB,8CAiLA,QAjLwC,QAMtC,YAAAktG,SAAA,WACE,IAAMp5B,EAAOvjF,KAAKujF,KAClB,MAAO,+BACSvjF,KAAKi4J,cAAa,yCAClB10E,EAAI,iDACFA,EAAI,mEACFA,EAAI,0DAI1B,EAEA,YAAA20E,WAAA,WACE,IAAM30E,EAAOvjF,KAAKujF,KAClB,MAAO,UAAGA,EAAI,iBAASA,EAAI,cAC7B,EAEA,YAAA00E,YAAA,WACE,MAAO,UAAGj4J,KAAKujF,KAAI,eACrB,EAEA,YAAAn+E,OAAA,WAGE,OAFA,YAAMA,OAAM,WACZpF,KAAKq1K,QAAQhZ,SAAS,WACfr8J,IACT,EAEA,YAAA8zI,aAAA,SAAa5oI,GACXA,EAAEmjB,kBACM,IAAA3mB,EAAUwD,EAAEqb,OAAM,OACtB,IAAAqjE,aAAYliF,IAChB1H,KAAKo4J,gBAAgB1wJ,EACvB,EAEA,YAAA0wJ,gBAAA,SAAgBnyJ,GACR,IAAEd,EAAgBnF,KAAX,MACL02J,EADgB12J,KAAL,KACM,SACrB0H,EAAQzB,EACNovK,EAAUr1K,KAAKs1K,aAGrB,GAAID,EAAS,CACXA,EAAQhZ,SAAS,MAAO30J,GACxB,IAAM6tK,EAAKF,EAAQhZ,SAAS,OACtBtgB,EAAQr0I,GAAS0tK,GAASG,GAChCx5B,IAAUr0I,EAAQq0I,E,CAGpB2a,EAAWA,EAAShvJ,GAASvC,EAAMM,IAAI,CAAEiC,MAAK,GAAI,CAAE2wJ,UAAW,GACjE,EAOA,YAAA1oG,SAAA,SAAS1pD,EAAa4D,QAAA,IAAAA,IAAAA,EAAA,IACZ,IAAA1E,EAAUnF,KAAI,MAChBgkF,GAAO,IAAA4F,aAAY//E,EAAKm6E,KAAkB7+E,EAAMxB,IAAI,YAArBkG,EAAKm6E,IACpCt8E,GAAS,IAAAkiF,aAAY3jF,IAAc,IAAA2jF,aAAY5F,GAAa,GAANA,EAA1B/9E,EAC5B6iJ,EAAU9oJ,KAAK6oJ,aACfwsB,EAAUr1K,KAAKs1K,aACfE,EAAoB,QAAT9tK,EAAkBA,EAAQ,GAC3CohJ,EAAQphJ,MAAQA,EAChB2tK,EAAQ1xK,IAAI,GAAGgZ,MAAMq/I,gBAAkBwZ,GAGnC3rK,EAAK69H,YAAe79H,EAAKwuJ,YAAcxuJ,EAAKg/E,cAC9CwsF,EAAQhZ,SAAS,MAAOmZ,GACxBx1K,KAAKy1K,UAAqB,QAAT/tK,EACjB1H,KAAK01K,WAAaF,EAEtB,EAMA,YAAAF,WAAA,sBACE,IAAKt1K,KAAKq1K,QAAS,CACX,MAAsBr1K,KAApBkjF,EAAE,KAAE,EAAK,QAAEr5E,EAAI,OACjB05E,EAAOvjF,KAAKujF,KACV,EAAa15E,EAAI,SAErBwrK,GAAU,gBAAE,uBAAer1K,KAAKujF,KAAI,gCACpCoyF,EAAUN,EAAQ1xK,IAAI,GAAIgZ,MAC1Bi5J,EAAa1yF,GAAMA,EAAGjrE,OAASirE,EAAGjrE,OAAO7D,GAAK,GAC9CyhK,EAAqB3yF,GAAMA,EAAG0D,WAAa1D,EAAG0D,YAAYkvF,aAAgB,CAAC,EAE/E91K,KAAK01K,WAAa,GAClB,IACI,EADA,GAAU,EAEd11K,KAAK2T,IAAIC,KAAK,mBAAmBo/E,OAAOqiF,GAExC,IAAM,EAAe,SAAC3tK,EAAesxI,QAAA,IAAAA,IAAAA,GAAA,GAC/B,EACF,EAAStxI,GAAQsxI,IAEjBA,GAAY,EAAMjR,kBAAkB,GAAG,GACvC,EAAMA,kBAAkBrgI,EAAOsxI,GAEnC,EAGAq8B,EAAQhZ,SAAS,UACftgB,MAAO,EAAMvsF,aAAc,EAC3BgsG,mBAAoB,UAAGj4E,EAAI,kBAAUA,EAAI,aACzCqO,SAAUgkF,GAAc,OACxB5a,iBAAkB,EAClBN,aAAa,EACbgB,WAAW,EACXR,WAAY,KACZD,WAAY,IACZU,QAAS,IAGNka,GACC,EAAMlyK,IAAI,gBAAkB,CAAC,GAAE,CAEnCq8D,KAAM,SAAC+7E,GACL,IAAMtc,EAAK21C,GAASr5B,GACpB,EAAK25B,WAAaj2C,EAClBk2C,EAAQ3Z,gBAAkBv8B,EAC1B,EAAaA,GAAI,EACnB,EACA3kG,OAAQ,SAACihH,GACP,GAAU,EACV,IAAMtc,EAAK21C,GAASr5B,GACpB45B,EAAQ3Z,gBAAkBv8B,EAC1B,EAAaA,GACb,EAAKg2C,WAAY,CACnB,EACA/hF,KAAM,SAACqoD,GACL,GAAU,EACV,EAAK25B,WAAa,GAClB,EAAgB,EAAW,EAAMlmH,SAAS,CAAEumH,WAAW,IAAUX,GAASr5B,EAC5E,EACApoD,KAAM,WACC,IAAY,IAAiB,IAC5B,EAAK8hF,YACP,EAAgB,IAElBE,EAAQ3Z,gBAAkB,EAE1BqZ,EAAQhZ,SAAS,MAAO,GACxB,EAAa,GAAe,GAEhC,KAGEn5E,GAAMA,EAAGz7E,IACXzH,KAAKwK,SAAS04E,EAAI,sBAAsB,WACtC,EAAKwyF,YAAc,EAAa,EAAKA,YACrC,GAAU,EACV,EAAKA,WAAa,GAElBL,EAAQhZ,SAAS,OACnB,IAGFr8J,KAAKq1K,QAAUA,C,CAEjB,OAAOr1K,KAAKq1K,OACd,EAEA,YAAAxhK,OAAA,WAIE,OAHA,yBAA4B7T,MAE5BA,KAAKs1K,aACEt1K,IACT,EACF,EAjLA,CAAwC,I,ogBEVxC,yB,8CA2BA,QA3B4C,QAC1C,YAAAo2J,cAAA,WACE,MAAO,EACT,EAOA,YAAAvN,WAAA,WACE,IAAK7oJ,KAAKshC,MAAO,CACf,IAAMn8B,EAAQnF,KAAKmF,MACbuC,EAAQ1H,KAAKi3J,gBAOb31H,EANa,IAAI,GAAW,CAChCn8B,MAAK,EACLohB,OAAQvmB,KAAKiY,OAAOirE,GACpBs1E,UAAWx4J,KAAKujF,KAAO,cACvBA,KAAMvjF,KAAKujF,OAEY1vE,SACzBytB,EAAMquB,SAASjoD,EAAO,CAAEggI,WAAY,IACpC1nI,KAAKshC,MAAQA,EAAMltB,E,CAGrB,OAAOpU,KAAKshC,KACd,EACF,EA3BA,CAA4C,I,2fCA5C,4B,8CAsCA,QAtC6C,QAC3C,YAAA80H,cAAA,WACE,MAAO,EACT,EAEA,YAAAM,SAAA,WACE12J,KAAK22F,aACP,EAEA,YAAAA,YAAA,WACQ,IAAExxF,EAAcnF,KAAT,MAAEkjF,EAAOljF,KAAL,GACXw2F,EAAUrxF,EAAMxB,IAAI,WAEtB6yF,KACE,IAAAtlF,UAASslF,GACXtT,EAAGiC,SAASjD,IAAIsU,GAEhBA,EAAQtT,EAAG2T,OAAQ1xF,GAGzB,EAEA,YAAA2xJ,YAAA,WACM92J,KAAKmF,MAAMxB,IAAI,UACjB,+BAAsC3D,KAE1C,EAEA,YAAA6oJ,WAAA,WACQ,IAAE1jJ,EAAgBnF,KAAX,MAAEujF,EAASvjF,KAAL,KACb,EAA8BmF,EAAM2jB,QAAlCktJ,EAAW,cAAEj1J,EAAI,OAAEga,EAAI,OACzB2xC,EAAQspG,GAAej1J,EACvBnM,EAAY,UAAG2uE,EAAI,OAIzB,MAHmB,0CAAgC3uE,EAAS,gBAC1DmmB,EAAO,WAAInmB,EAAS,UAAW,GAAE,cAC9B83D,EAAK,YAEZ,EACF,EAtCA,CAA6C,I,YAyC7CupG,GAAgB51K,UAAUy1J,aAAe,CAAC,gB,2fC7B7B,GAAQ,QACR,GAAQ,UAAG,GAAK,KAChB,GAAW,UAAG,GAAK,UAE1BogB,GAA0D,CAC9Dn1J,KAAM,GACNo1J,OAAQ,GACRjgK,OAAQ,GACRkgK,SAAU,GACVr6B,MAAO,GACPptH,OAAQ,IAeV,eAuBE,WAAYu0D,GAAZ,MACE,YAAMA,EAAI,eAAgB,KAAS,KAnBrC,EAAAy0E,WAAa,GAEb,EAAAjuJ,OAAS,CACPtI,IAAK,GACLyvF,OAAQ,IAgBR,IAAM1rF,EAAQ,IAAI,KAClB,EAAKA,MAAQA,EACb,EAAKumB,MAAQwqJ,GAEb,IAAMG,GAAQ,IAAA/uF,WAAS,WAAM,SAAKgvF,SAAL,GAAgB,GAC7CnxK,EAAMqF,SAAS04E,EAAI,oBAAqBmzF,GAExC,IAAMx8H,GAAS,IAAAytC,WAAS,WAAM,SAAKivF,QAAL,GAAe,GAG7C,OAFApxK,EAAMqF,SAAS04E,EAAI,eAAgBrpC,GAE5B,CACT,CA8FF,OAlI0C,QAsCxC,YAAAy8H,QAAA,WACEt2K,KAAKkW,OAAOlW,KAAKkjF,GAAG8F,cACtB,EAEA,YAAAutF,OAAA,WACEv2K,KAAKkW,OAAOlW,KAAKgpF,cACnB,EAEA,YAAA9yE,OAAA,SAAOovE,GACL,IAAMqjD,EAASrjD,EAAYA,EAAUmqD,YAAc,GACnDzvI,KAAKmF,MAAMM,IAAI,CAAE6/E,UAAS,EAAEqjD,OAAM,IAClC3oI,KAAKwxF,aACP,EAEA,YAAAxI,YAAA,WACE,OAAOhpF,KAAKmF,MAAMxB,IAAI,YACxB,EAKA,YAAA+wJ,WAAA,WACE,OAAO10J,KAAKmF,MAAMxB,IAAI,WAAa,EACrC,EAEA,YAAA6tF,YAAA,SAAY3nF,QAAA,IAAAA,IAAAA,EAAA,IACV7J,KAAK6sJ,MAAQ7sJ,KAAK6sJ,OAAShjJ,EAAK42C,UAChCzgD,KAAKkjF,GAAGp/E,QAAQ9D,KAAK0J,OAAOmnF,OAAQ,CAAEpwC,UAAWzgD,KAAK6sJ,OACxD,EAEA,YAAArW,WAAA,WACEx2I,KAAKqlH,YACP,EAOA,YAAAmxD,gBAAA,WACE,OAAOx2K,KAAKsiC,IACd,EAOA,YAAAw8G,QAAA,SAAWn1I,EAAcw9H,GACvB,IAAMsvC,EAAWz2K,KAAKsoH,QAAQ,QAE9BtoH,KAAK0rB,MAAM/hB,GAAQ8sK,EAAS9vK,OAAOwgI,EACrC,EAOA,YAAA7e,QAAA,SAAQ3+G,GACN,OAAO3J,KAAKozI,WAAWzpI,EACzB,EAMA,YAAAypI,SAAA,WACE,OAAOpzI,KAAK0rB,KACd,EAEA,YAAA7X,OAAA,WACM,IAAEyuB,EAAatiC,KAAT,KAAEkjF,EAAOljF,KAAL,GACRiY,EAASjY,KAAK4mF,YACdxyE,EAAKkuB,GAAQA,EAAKluB,GAWxB,OAVAkuB,EAAO,IAAI,GACT,CACEluB,GAAE,EACFnP,WAAY,GACZs9E,OAAQW,EACRjrE,OAAM,GAERjY,KAAKozI,YAEPpzI,KAAKsiC,KAAOA,EACLA,EAAKluB,EACd,EAEA,YAAA/E,QAAA,WACErP,KAAKmF,MAAMmG,gBACXtL,KAAKmF,MAAMuD,OACb,EACF,EAlIA,CAA0C,G,YCwF1C,SAlBmC,CACjCw7E,YAAa,GACb0N,SAAU,GACV5gF,UAAU,EACV0lK,SAAS,EACTC,cAAc,EACdr3K,KAAM,GACNs3K,aAAa,EACbC,WAAW,EACXC,aAAc,CAAEx4G,SAAU,SAAUmb,MAAO,WAC3Cs9F,aAAc,CAAEz4G,SAAU,OAAQmb,MAAO,WACzCu9F,gBAAgB,EAChBnmF,QAAQ,EACRomF,OAAQ,WAAO,EACfngF,SAAU,WAAO,EACjBnwF,OAAQ,CAAC,G,2fCxHX,eAME,WAAY2mD,QAAA,IAAAA,IAAAA,EAAA,IAAZ,MACE,YAAMA,IAAI,KACV,EAAKw2C,MAAQ,GACb,EAAKx2C,IAAMA,EACX,IAAMr1C,EAASq1C,EAAIr1C,QAAU,CAAC,EAC9B,EAAKA,OAASA,EACd,EAAKi/J,WAAa5pH,EAAI4pH,WACtB,IAAMjzF,EAAMhsE,EAAOisE,aAAe,GAC5BX,EAAOtrE,EAAOksE,cAAgB,GAC9B6G,EAAO,EAAK/lF,WAClB,EAAKuF,SAASwgF,EAAM,MAAO,EAAK6Y,OAChC,EAAKr5F,SAASwgF,EAAM,uBAAwB,EAAKn3E,QACjD,EAAKrJ,SAASwgF,EAAM,SAAU,EAAK1mE,gBACnC,EAAK1P,UAAY,UAAGqvE,EAAG,UACvB,IAAMf,EAAKjrE,EAAOirE,GAElB,GAAIjrE,EAAOjH,WAAa,EAAKs8C,IAAIoiC,OAAQ,CACvC,IAAMkP,EAAQ1b,EAAGoT,MACjB,EAAKhpC,IAAIoiC,OAAS,IAAIkP,EAAMC,OAAO,CAEjCp+C,UAAWxoC,EAAOk/J,eAAiB,EAAK/iK,GACxC4qF,aAAc,WAAI,EAAKpqF,WACvBqqF,QAAS,WAAIhb,EAAG,SAChBmzF,mBAAoB,EACpBznF,UAAS,SAAC0nF,EAAc3nF,EAAah3E,GACnC,IAAMqnI,EAAWrwD,EAAO4nF,iBACxBp0F,EAAGwb,YAAYqhD,EAAU,CAAEw3B,YAAa,IACxCr0F,EAAGp/E,QAAQ,UAAG8kI,GAAS,QAAQlwH,EACjC,EACA8+J,iBAAkB,EAClBr4E,OAAQ,EACR5b,KAAI,EACJU,IAAG,G,QAKP,EAAKtwE,IAAI+E,KAAK,aAAcsyE,GAC5B19B,EAAI/uC,QAAU,EAAK5K,IAAI+E,KAAK,QAAS40C,EAAI/uC,Q,CAC3C,CAqFF,OAlIuC,QA+CrC,YAAA+F,eAAA,SAAehU,GAEb,IAAMgyB,EAAOhyB,EAAQmnK,UAChBn1I,IACLA,EAAKl9B,gBAEEkL,EAAQmnK,UACjB,EAQA,YAAA5zE,MAAA,SAAM1+F,GACJ,IAAItF,EAAIG,KAAKiF,WAAWJ,QAAQM,GAChCnF,KAAK6uH,gBAAgB1pH,EAAO,KAAMtF,EACpC,EAUA,YAAAgvH,gBAAA,SAAgB1pH,EAAkB2pH,EAAqChuH,GAC/D,MAA8Bd,KAA5Bk3K,EAAU,aAAE5pH,EAAG,MAAEr1C,EAAM,SACvBy/J,EAA4CpqH,EAAG,SAArCqqH,EAAkCrqH,EAAG,OAA7B7tD,EAA0B6tD,EAAG,OACjDrzC,EAAW60G,GAAc,KACzBroC,EAAO,IAAIixF,EAAS,CACxBA,SAAQ,EACRltJ,MAJkD8iC,EAAG,MAKrDnoD,MAAK,EACL+xK,WAAU,EACVj/J,OAAM,EACNy3E,OARkDpiC,EAAG,OASrDqqH,OAAM,EACNl4K,OAAM,IAEF8xF,EAAW9K,EAAK5yE,SAASO,GAE/B,GAAI6F,EACFA,EAASwK,YAAY8sE,QAErB,QAAqB,IAAVzwF,EAAuB,CAChC,IAAImO,EAAS,SAGTjP,KAAK2T,IAAI4e,WAAW5xB,QAAUG,IAChCA,IACAmO,EAAS,SAGPnO,EAAQ,EACVd,KAAK2T,IAAIq/E,OAAOzB,GAGhBvxF,KAAK2T,IAAI4e,WAAWi2E,GAAG1nG,GAAOmO,GAAQsiF,E,MAEnCvxF,KAAK2T,IAAIq/E,OAAOzB,GAGzB,OADAvxF,KAAK8jG,MAAMn/F,KAAK8hF,GACT8K,CACT,EAEA,YAAAnsF,OAAA,W,IAAO,sDAGL,OAFA,4BAA4BpF,KAAMU,GAClCV,KAAK8jG,MAAMh/F,KAAI,SAAAjF,GAAK,OAAAA,EAAEuF,QAAF,IACbpF,IACT,EAEA,YAAA6T,OAAA,sBACQ2gD,EAAO9/C,SAASisB,yBAChBvsB,EAAKpU,KAAKoU,GAKhB,OAJAA,EAAG4yE,UAAY,GACfhnF,KAAKiF,WAAWM,MAAK,SAAAJ,GAAS,SAAK0pH,gBAAgB1pH,EAAOqvD,EAA5B,IAC9BpgD,EAAGqQ,YAAY+vC,GACfpgD,EAAGQ,UAAY5U,KAAK4U,UACb5U,IACT,EACF,EAlIA,CAAuC,M,ugBCejC,GAAY,kBAElB,eA2FE,WAAYstD,GAAZ,MACE,YAAMA,IAAI,MACV,IAAAg1B,SAAQ,EAAM,YACd,EAAKh1B,IAAMA,EACX,EAAK7tD,OAAS6tD,EAAI7tD,OAClB,EAAKwY,OAASq1C,EAAIr1C,QAAU,CAAC,EAC7B,EAAKy3E,OAASpiC,EAAIoiC,QAAU,GAC5B,EAAKwnF,WAAa5pH,EAAI4pH,WAChB,MAAuB,EAArB/xK,EAAK,QAAE8+E,EAAG,MAAEV,EAAI,OAClB/gF,EAAO2C,EAAMxB,IAAI,SAAW,U,OAClC,EAAKiR,UAAY,UAAGqvE,EAAG,iBAASA,EAAG,oBAAYzhF,EAAI,sBAAc+gF,EAAI,aACrE,EAAKq0F,aAAe,UAAGr0F,EAAI,cAC3B,EAAKs0F,UAAY,UAAG5zF,EAAG,iBACvB,EAAK6zF,SAAW,UAAG7zF,EAAG,eACtB,EAAK8zF,SAAW,UAAG9zF,EAAG,eACtB,EAAK+zF,SAAW,UAAG/zF,EAAG,eACtB,EAAKg0F,QAAU,UAAGh0F,EAAG,cACrB,EAAKi0F,YAAc,UAAGj0F,EAAG,kBACzB,EAAKk0F,WAAa,UAAGl0F,EAAG,iBACxB,EAAKm0F,QAAU,UAAG,EAAKR,aAAY,UACnC,EAAKS,UAAY,UAAG,EAAKT,aAAY,aACrC,EAAKU,gB,CACP,CAkTF,OAnasC,QACpC,YAAA5uK,OAAA,WACE,MAAO,CACL,+BAAgC,YAChC,gCAAiC,YACjC,8BAA+B,mBAC/B,2BAA4B,gBAC5B,6BAA8B,eAC9B,iCAAkC,cAClC,gCAAiC,iBACjC,uBAAwB,aACxB,sBAAuB,gBACvB,uBAAwB,gBAE5B,EAEA,YAAAizG,SAAA,SAASx3G,GACD,MAAoDnF,KAAlDikF,EAAG,MAAEV,EAAI,OAAEtrE,EAAM,SAAEogK,EAAS,YAAE54K,EAAM,SAAE6tD,EAAG,MAAE41B,EAAE,KAC7CwzF,EAAYz+J,EAAM,QACpBhN,EAAQxL,EAAOk/I,cAAcx5I,GAAOxE,OACpC2kB,EAAYra,EAA0B,GAAlBjL,KAAKm4K,WACzBL,EAAW,UAAG93K,KAAK83K,SAAQ,YAAIxyJ,GAC/BuyJ,EAAY,UAAG73K,KAAK63K,UAAS,YAAIt0F,EAAI,UACrCg1F,EAAW,UAAGv4K,KAAK43K,aAAY,YAAIS,EAAS,YAAI90F,EAAI,UACpD/4D,EAAQ8iC,EAAI9iC,MAAQ,EACpBguJ,EAAM,UAAG,GAAa,GAARhuJ,EAAU,MACxB7gB,EAAOxE,EAAMunF,UACbwN,EAAO/0F,EAAMg1F,UACbs+E,EAAU,UAAGx0F,EAAG,SAEhB,GADYf,aAAE,EAAFA,EAAI0D,aAAW,MACzB5mB,EAAI,OAAEkjD,EAAG,MAAEC,EAAM,SAAEF,EAAO,UAElC,MAAO,kBAEHyzD,EACI,qBAAazyF,EAAG,oEACJA,EAAG,0BAAiBi/B,EAAG,wCACvBj/B,EAAG,2BAAkBk/B,EAAM,wBAEvC,GAAE,gCAEM00D,EAAS,qCACPC,EAAQ,oCAA0BU,EAAG,0DACnCv0F,EAAG,qCAA2Bt6E,EAAI,uCAClC3J,KAAK+3K,SAAQ,+BAAsB90D,EAAO,6BACpD/oB,EAAO,wBAAgBu+E,EAAO,oBAAWv+E,EAAI,WAAY,GAAE,uCAC9Cq+E,EAAQ,wBAAe5uK,EAAI,uFAIlC3J,KAAKg4K,SAAQ,yBAAgB/sK,GAAS,GAAE,sCACxCjL,KAAKi4K,QAAO,+BAAsBj4G,GAAQ,GAAE,sCAC5ChgE,KAAKk4K,YAAW,YAClC,EAEA,sBAAW,iBAAE,C,IAAb,WACE,OAAOl4K,KAAKP,OAAOyjF,EACrB,E,gCAEA,sBAAW,mBAAI,C,IAAf,WACE,OAAOljF,KAAKkjF,GAAG0D,YAAY1C,WAC7B,E,gCAEA,sBAAW,kBAAG,C,IAAd,WACE,OAAOlkF,KAAKiY,OAAOisE,WACrB,E,gCAkDA,YAAAo0F,cAAA,sBACUnzK,EAAkBnF,KAAb,MACLi3K,EADkBj3K,KAAL,OACI,OACnBqlF,EAAalgF,EAAMkgF,aACzBrlF,KAAKwK,SAAS66E,EAAY,mBAAoBrlF,KAAK04K,eACnD,CACE,CAAC,gBAAiB14K,KAAK4zI,cACvB,CAAC,cAAe5zI,KAAK24K,eACrB,CAAC,mBAAoB34K,KAAK44K,iBAC1B,CAAC,uBAAwB54K,KAAK8lJ,kBAC9B,CAAC,iBAAkB9lJ,KAAK6T,QACxB,CAAC,iCAAkC7T,KAAK64K,aAExCpjK,SAAQ,SAAAgxE,GAAQ,SAAKj8E,SAASrF,EAAOshF,EAAK,GAAIA,EAAK,GAAnC,IAClBzmF,KAAK2T,IAAI+E,KAAK,QAASvT,GACvBnF,KAAK2T,IAAI+E,KAAK,aAAc2sE,GAE5BlgF,EAAMsyK,UAAYz3K,KAClBi3K,EAAOlrK,KAAK/L,KAAZi3K,CAAkB,CAChB3xF,UAAWngF,EACX0O,OAAQ7T,KAAK84K,SACbtuK,SAAUxK,KAAKwK,UAEnB,EAEA,YAAAquK,WAAA,WACE74K,KAAK+4K,eAAe7vB,UAAYlpJ,KAAKmF,MAAMunF,SAC7C,EAEA,YAAAssF,gBAAA,WAKE,OAJKh5K,KAAKi5K,QACRj5K,KAAKi5K,MAAQj5K,KAAK2T,IAAI4e,SAAS,WAAIvyB,KAAKikF,IAAG,eAGtCjkF,KAAKi5K,KACd,EAEA,YAAAnzB,iBAAA,WACQ,MAAyB9lJ,KAAvBikF,EAAG,MAAE9+E,EAAK,QAAE1F,EAAM,SACpBy5K,EAAS,UAAGj1F,EAAG,gBAEfh1E,GADUxP,EAAOmyG,UAAUzsG,GACT,WAAa,cACrCnF,KAAK2T,IAAI1E,GAAQiqK,GACjBl5K,KAAKg5K,kBAAkB/pK,GAAQ,UAAGg1E,EAAG,aACvC,EAQA,YAAAk1F,iBAAA,SAAiB3sK,GACfA,SAAAA,EAAI6hB,kBACE,IAAE5uB,EAAkBO,KAAZ,OAAEmF,EAAUnF,KAAL,MACrBP,EAAO25K,WAAWj0K,GAAQ1F,EAAOmyG,UAAUzsG,GAC7C,EAKA,YAAAk0K,WAAA,SAAW7sK,GACTA,SAAAA,EAAI6hB,kBACE,MAAkCruB,KAAhCkjF,EAAE,KAAEvvE,EAAG,MAAE0kK,EAAS,YAAED,EAAO,UAC7BtvB,EAAU9oJ,KAAK+4K,eACrBjwB,EAAQ,IAAa,OACrBA,EAAQ9zG,QACRtgC,SAASsmD,YAAY,aAAa,GAClCkoB,EAAG63D,YAAW,GACdpnI,EAAIC,KAAK,WAAI5T,KAAK43K,eAAgBvrF,YAAYgsF,GAAW/yJ,SAAS8yJ,EACpE,EAEA,YAAAkB,cAAA,SAAc9sK,GACZA,EAAG6hB,oBACF,IAAAy4E,UAASt6F,KAAO,IAAAuoG,YAAWvoG,KAAQxM,KAAKu5K,cAAc/sK,EACzD,EAKA,YAAA+sK,cAAA,SAAc/sK,GACZA,SAAAA,EAAI6hB,kBACE,MAAkCruB,KAAhCkjF,EAAE,KAAEvvE,EAAG,MAAE0kK,EAAS,YAAED,EAAO,UAC7BtvB,EAAU9oJ,KAAK+4K,eACfpvK,EAAOm/I,EAAQz9E,YACrBy9E,EAAQ78G,WAAa,EACrB68G,EAAQ,IAAa,QACrB9oJ,KAAKwqH,QAAQ7gH,EAAM,CAAE27E,UAAWtlF,KAAKmF,MAAOsiI,SAAU,gBACtDvkD,EAAG63D,YAAW,GACdpnI,EAAIC,KAAK,WAAI5T,KAAK43K,eAAgBtyJ,SAAS+yJ,GAAWhsF,YAAY+rF,GAElEp4K,KAAK64K,YACP,EAEA,YAAAruD,QAAA,SAAQ7gH,EAAc,G,IAAE89H,EAAQ,WAC9BznI,KAAKmF,MAAMM,IAAIgiI,EAAU99H,EAC3B,EAMA,YAAAovK,aAAA,WAIE,OAHK/4K,KAAKw5K,YACRx5K,KAAKw5K,UAAYx5K,KAAKoU,GAAG8rB,cAAc,WAAIlgC,KAAK43K,gBAE3C53K,KAAKw5K,SACd,EAOA,YAAAb,cAAA,WACQ,MAAsB34K,KAApB2T,EAAG,MAAExO,EAAK,QAAE8+E,EAAG,MACjBw1F,EAAU,OACVC,EAAa,UAAGz1F,EAAG,cACnB6+B,EAAQ9iH,KAAK25K,WAEf35K,KAAKP,OAAOm6K,OAAOz0K,IACrBwO,EAAI2R,SAASm0J,GACb32D,EAAMx9F,SAASo0J,KAEf/lK,EAAI04E,YAAYotF,GAChB32D,EAAMz2B,YAAYqtF,GAEtB,EAQA,YAAAG,cAAA,SAAcrtK,GACN,IAAErH,EAAkBnF,KAAb,MAAEP,EAAWO,KAAL,OACrBwM,SAAAA,EAAIstK,2BAEC30K,EAAMxB,IAAI,cAAehD,QAE9BlB,EAAOs6K,QAAQ50K,GAAQ1F,EAAOm6K,OAAOz0K,GACvC,EAKA,YAAA60K,aAAA,SAAarnK,GACXA,SAAAA,EAAO0b,kBACD,IAAE5uB,EAAkBO,KAAZ,OAAEmF,EAAUnF,KAAL,MACrBP,EAAOw6K,aAAa90K,EAAO,CAAE6uD,UAAU,GAAQ,CAAErhD,MAAK,GACxD,EAKA,YAAAunK,YAAA,SAAY1tK,GACVA,SAAAA,EAAI6hB,kBACE,IAAE5uB,EAAkBO,KAAZ,OAAEmF,EAAUnF,KAAL,MACrBP,EAAOw6K,aAAa90K,EAAO,CAAEg1K,SAAS,GACxC,EAEA,YAAAC,eAAA,SAAe5tK,GACbA,SAAAA,EAAI6hB,kBACE,IAAE5uB,EAAkBO,KAAZ,OAAEmF,EAAUnF,KAAL,MACrBP,EAAOw6K,aAAa90K,EAAO,CAAEg1K,SAAS,GACxC,EAMA,YAAA56E,UAAA,SAAU/yF,GACRA,EAAG6hB,kBACG,IAAE60D,EAAeljF,KAAb,GAAE0vF,EAAW1vF,KAAL,OAEdwM,EAAGmiB,QAAwB,IAAdniB,EAAGmiB,QAEhB+gE,IACFA,EAAOhM,QAAU,SAAChrE,GAAc,OAAAwqE,EAAGp/E,QAAQ,UAAG8kI,GAAS,UAAUlwH,EAAjC,EAChCg3E,EAAOW,UAAY,SAAC33E,GAAc,OAAAwqE,EAAGp/E,QAAQ8kI,GAAWlwH,EAAtB,EAClCg3E,EAAO6P,UAAU/yF,EAAG+Z,QAExB,EAMA,YAAAqtH,aAAA,WAEE,gCAA2C5zI,KAAM,CAC/C,CACEk1I,YAAal1I,KAAKiY,OAAO++J,eACzB/hC,SAAS,IAGf,EAOA,YAAAyjC,cAAA,WACQ,MAAqC14K,KAAnCmF,EAAK,QAAEgzK,EAAU,aAAExkK,EAAG,MAAElU,EAAM,SAChCwL,EAAQxL,EAAOk/I,cAAcx5I,GAAOxE,OACpCsd,EAAQtK,EAAI4e,SAAS,WAAIvyB,KAAK63K,YAAatlJ,SAAS,WAAIvyB,KAAK83K,WAC7DtmD,EAAQxxH,KAAI,IAEbwxH,IACHA,EAAM79G,EAAI4e,SAAS,gBAAgB5uB,IAAI,GACvC3D,KAAKwxH,IAAMA,GAGbvzG,EAAMhT,EAAQ,cAAgB,YAAYktK,GACtC3mD,IAAKA,EAAIxqC,UAAY/7E,GAAS,KACjCA,GAASxL,EAAOs6K,QAAQ50K,GAAO,EAClC,EAEA,YAAAw0K,SAAA,WAKE,OAJK35K,KAAK8iH,OAAU9iH,KAAK8iH,MAAMniH,SAC7BX,KAAK8iH,MAAQ9iH,KAAK2T,IAAI4e,SAAS,WAAIvyB,KAAK63K,YAAajkK,KAAK,WAAI5T,KAAK+3K,YAG9D/3K,KAAK8iH,KACd,EAEA,YAAAqJ,QAAA,SAAQ/3G,G,MACNA,GAAK,IAAAlD,UAASkD,GAA0B,QAApB,EAAApU,KAAKkjF,GAAGguC,oBAAY,eAAEt9G,KAAKQ,GAAI,GAAMA,EACzD,IAAMjP,GAAQ,IAAA4gF,UAAS3xE,EAAI,GACtBjP,IACLnF,KAAKsL,gBACLtL,KAAKmF,MAAQA,EACbnF,KAAKs4K,gBACLt4K,KAAKq6K,WAAar6K,KAAK6T,SACzB,EAEA,YAAA+kK,gBAAA,YACyB54K,KAAI,YACMA,MACtB6T,QACb,EAEA,YAAAymK,aAAA,W,MACY,QAAV,EAAAt6K,KAAK8jG,aAAK,SAAE1+F,QACd,EAEA,YAAAA,OAAA,W,IAAO,sDAGL,OAFA,4BAA4BpF,KAAMU,GAClCV,KAAKs6K,eACEt6K,IACT,EAEA,YAAA6T,OAAA,WACQ,MAA4C7T,KAA1CmF,EAAK,QAAE8S,EAAM,SAAEgsE,EAAG,MAAEV,EAAI,OAAEj2B,EAAG,MAAEoiC,EAAM,SAC7C1vF,KAAKs6K,eACG,IAAA3C,EAA6BrqH,EAAG,OAAxB7tD,EAAqB6tD,EAAG,OAAhBoqH,EAAapqH,EAAG,SAClCnrB,GAAU1iC,EAAO86K,cAAcp1K,GAC/BiP,EAAKpU,KAAK2T,IAAIq+B,QACdxnB,EAAQ8iC,EAAI9iC,MAAQ,SACnBxqB,KAAKw5K,UACZx5K,KAAK8jG,MAAQ,IAAI,GAAU,CACzB4zE,SAAQ,EACRzyK,WAAYE,EAAMxB,IAAI,cACtBsU,OAAM,EACNy3E,OAAM,EACNioF,OAAM,EACNT,WAAYl3K,KACZue,OAAQpZ,EACRqlB,MAAK,EACL/qB,OAAM,IAER,IAAM8yB,EAAWvyB,KAAK8jG,MAAMjwF,SAASF,IAqBrC,OAnBKsE,EAAO2+J,aAAyB,IAAVpsJ,GAGzBpW,EAAG8hE,KAAKl2E,KAAK28G,SAASx3G,IACtBiP,EAAGR,KAAK,WAAI5T,KAAKk4K,cAAellF,OAAOzgE,IAHvCne,EAAG4+E,OAAOzgE,GAMPptB,EAAMxB,IAAI,cAAiBsU,EAAOjH,UACrCoD,EAAGme,SAAS,WAAIvyB,KAAKi4K,UAAW7yK,UAGjC3F,EAAOmyG,UAAUzsG,KAAWnF,KAAK4U,WAAa,WAAIqvE,EAAG,SACtD9hD,IAAWniC,KAAK4U,WAAa,WAAI2uE,EAAI,WACrCnvE,EAAG5M,KAAK,QAASxH,KAAK4U,WACtB5U,KAAK4zI,eACL5zI,KAAK24K,gBACL34K,KAAK8lJ,mBACL9lJ,KAAK84K,WACL94K,KAAKq6K,WAAY,EACVr6K,IACT,EAEA,YAAA84K,SAAA,WACQ,MAAwB94K,KAAtBmF,EAAK,QAAE8S,EAAM,SAEfq1C,EAAM,CAAEg4B,UAAWngF,EAAOiP,GAFP,MACJ6D,EAAM,SAElBlM,KAAK/L,KAAd82F,CAAoBxpC,GACpBttD,KAAKkjF,GAAGp/E,QAAQ,eAAgBwpD,EAClC,EACF,EAnaA,CAAsC,M,qvBCsCzB,GAAQ,QACR,GAAQ,UAAG,GAAK,KAChBktH,GAAS,UAAG,GAAK,QACjBC,GAAc,UAAG,GAAK,aACtB,GAAW,UAAG,GAAK,UAE1B/wK,GAAS,CACbtI,IAAK,GACL9B,KAAMk7K,GACNl1F,UAAWm1F,GACX5pF,OAAQ,IAGJykD,GAAY,CAAEhmB,UAAW,IAEzBorD,GAAgB,CAAC,OAAQ,SAAU,SAAU,cAAe,aAAc,WAC7E51K,KAAI,SAAAk3B,GAAK,iCAAoBA,EAApB,IACTyzB,KAAK,KAMR,eAQE,WAAYyzB,GAAZ,MACE,YAAMA,EAAI,eAAgB,KAAS,KAKnC,OARF,EAAAx5E,OAASA,IAIP,IAAA44E,SAAQ,EAAM,mBAAoB,iBAAkB,iBACpD,EAAKn9E,MAAQ,IAAI,EAAY,EAAM,CAAEwyK,OAAQ,CAAC,IAE9C,EAAK1/J,OAAOisE,YAAc,EAAKjsE,OAAOksE,aAC/B,CACT,CAgSF,OA/S0C,QAiBxC,YAAA0nC,OAAA,sBACQ,EAAwB7rH,KAAtBkjF,EAAE,KAAEjrE,EAAM,SAAE9S,EAAK,QACzBA,EAAMqF,SAAS04E,EAAI,qBAAsBljF,KAAKypJ,kBAC9CtkJ,EAAMsC,GAAG,cAAezH,KAAK26K,gBAC7Bx1K,EAAMqF,SAAS04E,EAAIw3F,GAAe16K,KAAK46K,eACvC56K,KAAKypJ,mBACLtkJ,EAAM6G,aAAak3E,EAAI,QAAQ,WAC7B,EAAKipC,QAAQl0G,EAAO3Y,MACpB,EAAK+lH,YACP,GACF,EAUA,YAAA8G,QAAA,SAAQ7mC,GACN,IAAM1+C,EAAqB5mC,KAAKkjF,GAAGguC,aAC/B5xH,GAAO,IAAA41G,aAAY5vB,GAAcA,EAA0B1+C,EAQ/D,OANI0+C,IAAa,IAAAp0E,UAASo0E,KAAc,IAAAkZ,YACtCl/F,EAAOsnC,EAAQhzB,KAAK0xE,GAAW,IAAM1+C,GAGvC5mC,KAAKmF,MAAMM,IAAI,OAAQnG,GAEhBA,CACT,EAQA,YAAAu7K,QAAA,WACE,OAAO76K,KAAKmF,MAAMxB,IAAI,OACxB,EAWA,YAAAg7I,cAAA,SAAcr5D,GAAd,WACE,OAAOA,EAAUD,aAAapvE,QAAO,SAACyd,GAAa,SAAK6mJ,cAAc7mJ,EAAnB,GACrD,EAOA,YAAAqmJ,QAAA,SAAQz0F,EAAsB59E,GAC5B49E,EAAU7/E,IAAI,OAAQiC,EACxB,EAOA,YAAAkyK,OAAA,SAAOt0F,GACL,QAASA,EAAU3hF,IAAI,OACzB,EAOA,YAAAy1K,WAAA,SAAW9zF,EAAsB59E,GAC/B,IAAMozK,EAAa,iBACbn+J,EAAa2oE,EAAUmD,SAAS6sD,IAC9B14H,EAAYD,EAAK,QAEzB,GAAIjV,EAAO,CACT,IAAMqzK,EAAcz1F,EAAU3hF,IAAIm3K,UAC3Bn+J,EAAMC,QAETm+J,IACFp+J,EAAMC,QAAUm+J,EAChBz1F,EAAU9/E,MAAMs1K,G,MAGlBl+J,GAAW0oE,EAAU7/E,IAAIq1K,EAAYl+J,GACrCD,EAAMC,QAAU,OAGlB0oE,EAAUxF,SAASnjE,EAAO24H,IAC1Bt1I,KAAKg7K,YAAY11F,GACjBtlF,KAAKkjF,GAAGp/E,QAAQ,oBAClB,EAOA,YAAA8tG,UAAA,SAAUtsB,GACR,YAjImB,KAAA3oE,EAiIG2oE,EAAUmD,SAAS6sD,OAjItB34H,EAAA,MACmC,KAAhDA,EAAMC,SAAW,IAAI0rE,OAAOzjF,QAAQ,SADxB,IAAC8X,CAkIrB,EAOA,YAAAs+J,UAAA,SAAU31F,EAAsB59E,GAC9B49E,EAAU7/E,IAAI,SAAUiC,EAC1B,EAOA,YAAAwzK,SAAA,SAAS51F,GACP,QAASA,EAAU3hF,IAAI,SACzB,EAOA,YAAA6mH,QAAA,SAAQllC,EAAsB59E,GAC5B49E,EAAU7/E,IAAI,cAAeiC,EAC/B,EAOA,YAAAglF,QAAA,SAAQpH,GACN,OAAOA,EAAUoH,SACnB,EAWA,YAAAyuF,aAAA,SAAa71F,GACX,IAAMiZ,EAASjZ,EAAU3hF,IAAI,UAE7B,MAAO,CACLgG,KAAM27E,EAAUoH,UAChBvvE,KAAMnd,KAAK45K,OAAOt0F,GAClBtxB,SAAqB,aAAXuqC,EACV47E,QAAoB,YAAX57E,EACT7/C,QAAS1+C,KAAK4xG,UAAUtsB,GACxBskD,OAAQ5pI,KAAKk7K,SAAS51F,GACtBD,WAAYrlF,KAAK2+I,cAAcr5D,GAEnC,EAEA,YAAA20F,aAAA,SAAa30F,EAAsB5sE,EAA8C7O,G,WAAA,IAAAA,IAAAA,EAAA,IACzE,IAAEq5E,EAAeljF,KAAb,GAAEiY,EAAWjY,KAAL,OACVmd,EAAmDzE,EAAI,KAAjDs7C,EAA6Ct7C,EAAI,SAAvCyhK,EAAmCzhK,EAAI,QAA9BgmC,EAA0BhmC,EAAI,QAArBkxH,EAAiBlxH,EAAI,OAAb/O,EAAS+O,EAAI,KACzD0iK,EAAU,IAAEC,YAAY,GAASxxK,GAKvC,IAHI,IAAA25F,OAAMrmF,IACRnd,KAAK+5K,QAAQz0F,EAAWnoE,IAEtB,IAAAqmF,OAAMxvC,GACR,GAAIA,EAAU,CACZkvB,EAAGwb,YAAYpZ,EAAW81F,GAC1B,IAAM,EAASnjK,EAAO6+J,aACtB,IAAyB,QAAf,EAAAxxF,EAAUsT,aAAK,SAAEnjF,SAAQ,SAAC6sB,GAAc,OAAAA,EAAKmU,eAAe,EAApB,I,MAElDysC,EAAGmmE,eAAe/jE,EAAW81F,IAG7B,IAAA53E,OAAM22E,IAAYliK,EAAO4+J,YAC3BsD,EAAUj3F,EAAGuV,WAAWnT,EAAW81F,GAAWl4F,EAAGuV,WAAW,KAAM2iF,KAEhE,IAAA53E,OAAM9kD,IACRA,IAAY1+C,KAAK4xG,UAAUtsB,IAActlF,KAAKo5K,WAAW9zF,EAAW5mC,IAElE,IAAA8kD,OAAMomC,IACR5pI,KAAKi7K,UAAU31F,EAAWskD,IAExB,IAAApmC,OAAM75F,IACR3J,KAAKwqH,QAAQllC,EAAW37E,EAE5B,EAMA,YAAA8/I,iBAAA,SAAiB53G,EAAiBhoC,G,MAEhC,QAFgC,IAAAA,IAAAA,EAAA,KAE5BA,EAAKwxK,WAAT,CACM,IAAEn4F,EAAeljF,KAAb,GACF+2K,EADe/2K,KAAL,OACa,aACzB23K,EAAS33K,KAAKmF,MAAMxB,IAAI,UACxBqwD,EAAWkvB,EAAG8F,cAChBzqE,EAASy1C,aAAQ,EAARA,EAAUz1C,SAEvB,IAAK,IAAI9Z,KAAOkzK,EACdA,EAAOlzK,GAAKgB,IAAI,QAAQ,UACjBkyK,EAAOlzK,GAGhB,KAAO8Z,GACLA,EAAO9Y,IAAI,QAAQ,GACnBkyK,EAAOp5J,EAAO9Z,KAAO8Z,EACrBA,EAASA,EAAOA,SAGlB,GAAIy1C,GAAY+iH,EAAc,CAE5B,IAAM3iK,EAAuB,QAAlB,EAAA4/C,EAASyjH,iBAAS,eAAErjK,GAC/BA,SAAAA,EAAIqiC,eAAesgI,E,CArBM,CAuB7B,EAEA,YAAAprF,OAAA,WACE,OAAO3rF,KAAKsiC,IACd,EAEA,YAAAzuB,OAAA,W,QACUoE,EAAkBjY,KAAZ,OAAEmF,EAAUnF,KAAL,MACf03K,EAAW,UAAYz/J,EAAOtR,QAUpC,OATA3G,KAAKsiC,KAAO,IAAIo1I,EAAS,CACvBtjK,GAAa,QAAT,EAAApU,KAAKsiC,YAAI,eAAEluB,GACfsjK,SAAQ,EACRltJ,MAAO,EACPvS,OAAM,EACN0/J,OAAQxyK,EAAMxB,IAAI,UAClBwB,MAAOnF,KAAK66K,UACZp7K,OAAQO,OAEM,QAAT,EAAAA,KAAKsiC,YAAI,eAAEzuB,SAASO,EAC7B,EAEA,YAAA/E,QAAA,W,MACW,QAAT,EAAArP,KAAKsiC,YAAI,SAAEl9B,QACb,EAEA,YAAAu1K,eAAA,W,MACQr7K,EAAOU,KAAK66K,UACT,QAAT,EAAA76K,KAAKsiC,YAAI,SAAE6pF,QAAQ7sH,GACnBU,KAAKkjF,GAAGp/E,QAAQ02K,GAAQl7K,GACxBU,KAAKwxF,aACP,EAEA,YAAAopF,cAAA,SAAct1F,GACZtlF,KAAKg7K,YAAY11F,EACnB,EAEA,YAAAi1F,cAAA,SAAc7mJ,GACZ,IAAM/O,EAAM+O,EAAI/vB,IAAI,WAIpB,QAHiB3D,KAAKiY,OAAO0+J,eACEjjJ,EAAI61E,GAAG,aAAuB,OAAR5kF,IAEnC+O,EAAI/vB,IAAI,YAC5B,EAEA,YAAA6tF,YAAA,SAAY3nF,GACJ,MAAwB7J,KAAtB6sJ,EAAK,QAAE3pE,EAAE,KAAEx5E,EAAM,SACzB1J,KAAK6sJ,MAAQA,IAAShjJ,aAAI,EAAJA,EAAM42C,WAC5ByiC,EAAGp/E,QAAQ4F,EAAOmnF,OAAQ,CACxBpwC,UAAWzgD,KAAK6sJ,MAChBvtJ,KAAMU,KAAK66K,WAEf,EAEA,YAAAG,YAAA,SAAY11F,EAAsBz7E,GAChC7J,KAAKkjF,GAAGp/E,QAAQ22K,GAAan1F,EAAWz7E,EAC1C,EACF,EA/SA,CAA0C,G,YC8E1C,SAvBmC,CACjC4nF,OAAQ,GACR6pF,SAAU,GACVp3F,YAAa,MACb8uE,OAAQ,GACRuoB,WAAY,QACZnrB,QAAS,CAAC,EACV53I,OAAQ,CAAC,EACTi4I,YAAa,UACb+qB,aAAa,EACb/3E,SAAS,EACTg4E,iBAAap2K,EACbyzI,gBAAYzzI,EACZq2K,eAAe,EACfpzC,eAAWjjI,EACXs2K,kBAAct2K,EACdu2K,cAAc,EACd/qF,QAAQ,EACRgrF,UAAU,EACVC,kBAAkB,EAClBC,gBAAiB,I,2fCrJnB,4B,8CA2DA,QA3DmC,QAC1B,EAAArpC,YAAP,WACE,OAAO,IAAAxlI,QAAOlN,KAAKK,UAAW,WAChC,EAEA,YAAAyG,SAAA,WACE,MAAO,CACLtE,KAAM,GACNka,IAAK,GAET,EASA,YAAA4rG,QAAA,WACE,OAAOtoH,KAAK2D,IAAI,OAClB,EASA,YAAAs1I,OAAA,WACE,OAAOj5I,KAAK2D,IAAI,MAClB,EAWA,YAAAq4K,YAAA,WACE,OAAOh8K,KAAK2D,IAAI,OAAOsG,MAAM,KAAKrG,MAAMqG,MAAM,KAAKpG,OACrD,EAWA,YAAAo4K,aAAA,WACE,OAAOj8K,KAAKg8K,cAAc/xK,MAAM,KAAKrG,KACvC,EACF,EA3DA,CAAmC,M,YA6DnCs4K,GAAM77K,UAAUgN,YAAc,M,kvBCpE9B,yB,8CAUA,QAVwC,QACtC,YAAAvG,SAAA,WACE,OAAO,SACF,kBAAmB,CACtBtE,KAAM,QACN25K,QAAS,KACTrpJ,OAAQ,EACRqT,MAAO,GAEX,EACF,EAVA,CAAwC,I,2fCUxC,eAQE,WAAYmnB,GAAZ,MACE,YAAMA,IAAW,KACjB,EAAKzqD,QAAUyqD,EACf,EAAKroD,WAAaqoD,EAAIroD,WACtB,IAAMgT,EAASq1C,EAAIr1C,QAAU,CAAC,EAC9B,EAAKA,OAASA,EACd,EAAKgsE,IAAMhsE,EAAOisE,aAAe,GAEjC,EAAKX,KAAOtrE,EAAOksE,cAAgB,GAEnC,EAAKjB,GAAKjrE,EAAOirE,GACjB,EAAKtuE,UAAY,EAAKqvE,IAAM,QAC5B,EAAKz5E,SAAS,EAAKrF,MAAO,iBAAkB,EAAKC,QAEjD,EAAKD,MAAMm9B,KAAO,EAClB,IAAM0f,EAAO,EAAKA,MAAQ,EAAKA,KAAKj2C,KAAK,G,OACzCi2C,GAAQA,EAAKsL,G,CACf,CAiDF,OA1EqE,QA2BnE,YAAA8uH,SAAA,WACU,IAAAl5F,EAAOljF,KAAI,GACb4wF,EAAK1N,aAAE,EAAFA,EAAI01D,OACf,OAAOhoD,aAAE,EAAFA,EAAIy2D,mBAAoB,CAAC,CAClC,EAEA,YAAA1qC,SAAA,SAASr6E,EAAiBy2G,GAChB,IAAA90D,EAAQjkF,KAAI,IACpB,MAAO,+BACSikF,EAAG,oCACbjkF,KAAKq8K,aAAY,8CAEPp4F,EAAG,4BACbjkF,KAAKs8K,UAAS,8CAEJr4F,EAAG,6EAIrB,EAOA,YAAAqY,aAAA,SAAa/1E,GACPA,GAAUA,EAAO9gB,MACnB8gB,EAAO9gB,IAAI,cAAc,IAAAlC,OAAMgjB,EAAO5iB,IAAI,gBAC1C4iB,EAAO9gB,IAAI,MAAOzF,KAAKmF,MAAMxB,IAAI,QAErC,EAEA,YAAA04K,WAAA,WACE,MAAO,EACT,EAEA,YAAAC,QAAA,WACE,MAAO,EACT,EAEA,YAAAzoK,OAAA,WACE,IAAMO,EAAKpU,KAAKoU,GAGhB,OAFAA,EAAG4yE,UAAYhnF,KAAK28G,SAAS38G,KAAMA,KAAKmF,OACxCiP,EAAGQ,UAAY5U,KAAK4U,UACb5U,IACT,EACF,EA1EA,CAAqE,M,gpBCPrE,4B,8CAoFA,QApF4C,QAC1C,YAAAq8K,WAAA,WACQ,MAAuBr8K,KAArBikF,EAAG,MAAEV,EAAI,OACX7mE,EADkB,QACN/Y,IAAI,OACtB,OAAOuyE,EAAI,wLACQ,4CAA6C,oCAC7C,cAAkB,+BADrB+N,EAA6CvnE,EAC7CunE,EAAiBV,EAEnC,EAEA,YAAA+4F,QAAA,WACQ,IAAEr4F,EAAejkF,KAAZ,IAAEmF,EAAUnF,KAAL,MACd2J,EAAOxE,EAAMxB,IAAI,QACjBwiC,EAAQhhC,EAAMxB,IAAI,SAClBmvB,EAAS3tB,EAAMxB,IAAI,UACnBu6D,EAAO/4D,EAAMxB,IAAI,WACjBikH,EAAMzhF,GAASrT,EAAS,UAAGqT,EAAK,YAAIrT,GAAM,OAAGorC,GAAS,GAE1D,OADAv0D,EAAOA,GAAQxE,EAAM62K,cACd9lG,EAAI,qIACQ,UAAa,8BACb,gBAAkB,kBADrB+N,EAAYt6E,EACZs6E,EAAkB2jC,EAEpC,EAGA,YAAA5lE,KAAA,SAAK7rB,GACH,IAAM8tD,EAAMjkF,KAAKikF,IACjBjkF,KAAK4U,WAAa,WAAIqvE,EAAG,cAC3B,EAMA,YAAAmN,QAAA,WACQ,IAAEjsF,EAAenF,KAAV,MAAEikF,EAAQjkF,KAAL,IACVkW,EAAWlW,KAAKo8K,WAAU,OAE1BhrF,EAAYpxF,KAAKiY,OAAM,QACzB+yE,EAAOhrF,KAAKiF,WAClB+lF,EAAKlnF,QAAQ,eACb9D,KAAK2T,IAAI2R,SAAS2+D,EAAM,cAEpB,IAAA5hF,YAAW6T,GACbA,EAAO/Q,GAAO,IACL,IAAA9C,YAAW+uF,GACpBA,EAAQjsF,GAGRnF,KAAKs8F,aAAatR,EAAKzkE,OAE3B,EAMA,YAAA8qE,WAAA,WACQ,IAAEnO,EAAcljF,KAAZ,GAAEmF,EAAUnF,KAAL,MACTkW,EAAWlW,KAAKo8K,WAAU,OAE1B/qF,EAAerxF,KAAKiY,OAAM,WAE5B,EAAuBjY,KAAKiF,WAA1BshB,EAAM,SAAE+pE,EAAQ,YAEpB,IAAAjuF,YAAW6T,GACbA,EAAO/Q,GAAO,IACL,IAAA9C,YAAWgvF,GACpBA,EAAWlsF,IAEXnF,KAAKs8F,aAAa/1E,GAClB28D,SAAAA,EAAI0J,MAAMxvE,UAEZ,IAAA/a,YAAWiuF,IAAaA,EAASnrF,EACnC,EAMA,YAAAk/F,SAAA,SAASn5F,GACPA,EAAE4uK,2BACF95K,KAAKmF,MAAMF,WAAWG,OAAOpF,KAAKmF,MACpC,EACF,EApFA,CAA4C,I,sBAsF5Co3K,GAAel8K,UAAUqJ,OAAS,CAEhC,mCAAoC,WACpCuiF,MAAO,UACPusD,SAAU,c,kPC3FNgkC,GAAqB,CACzB9wJ,MAAO,GAEPnkB,WAAU,SAAC/D,EAAQqG,GAAnB,gBAAmB,IAAAA,IAAAA,EAAA,IACT,IAAAq5E,EAAOr5E,EAAI,GACnB7J,KAAKkjF,GAAKA,EACVljF,KAAK6J,KAAOA,EACZ7J,KAAKmF,MAAQ,SAAC2H,EAAYjK,GACxB,IAAIgE,EAAOwM,EAAM7Q,EAEjB,QAHY,IAAAsK,IAAAA,EAAA,SAAY,IAAAjK,IAAAA,EAAA,IAGpBiK,GAASA,EAAMtK,KAAM,CACvB,IAAMi6K,EAAW,EAAKC,cAEtB71K,GADArE,EAAO,EAAK8lH,QAAQx7G,EAAMtK,OACXA,EAAK2C,MAAQs3K,EAASt3K,MACrCkO,EAAO7Q,EAAOA,EAAK8/B,KAAOm6I,EAASn6I,I,KAC9B,CACL,IAAMq6I,EAAY,EAAKC,cAAc9vK,GAErCjG,GADArE,EAAOm6K,EAAUn6K,MACJ2C,MACbkO,EAAO7Q,EAAK8/B,KACZx1B,EAAQ6vK,EAAU31K,U,CAGpB,IAAM7B,EAAQ,IAAI0B,EAAMiG,EAAO,SAAKjK,GAAO,CAAEqgF,GAAE,KAE/C,OADA/9E,EAAM03K,SAAWxpK,EACVlO,CACT,EACA,IAAM68C,EAAOhiD,KAAKgiD,MAAQhiD,KAAKgiD,KAAKj2C,KAAK/L,MACzCgiD,GAAQA,GACV,EAOA46H,cAAa,SAACl1K,GAGZ,IAFA,IAAMgkB,EAAQ1rB,KAAKozI,WAEVvzI,EAAI,EAAGA,EAAI6rB,EAAM/qB,OAAQd,IAAK,CACrC,IAAM2C,EAAOkpB,EAAM7rB,GACf88K,EAAYn6K,EAAKs6K,OAAOp1K,GAG5B,GAFAi1K,EAAgC,kBAAbA,GAA0BA,EAAY,CAAEn6K,KAAMA,EAAK8H,IAAOqyK,EAG3E,MAAO,CACLn6K,KAAI,EACJwE,WAAY21K,E,CAMlB,MAAO,CACLn6K,KAAMxC,KAAK08K,cACX11K,WAAYU,EAEhB,EAMAg1K,YAAW,WACT,IAAMhxJ,EAAQ1rB,KAAKozI,WACnB,OAAO1nH,EAAMA,EAAM/qB,OAAS,EAC9B,EAMAyyI,SAAQ,WACN,OAAOpzI,KAAK0rB,KACd,EAOA48F,QAAO,SAACh+G,GAGN,IAFA,IAAMohB,EAAQ1rB,KAAKozI,WAEVvzI,EAAI,EAAGA,EAAI6rB,EAAM/qB,OAAQd,IAAK,CACrC,IAAM2C,EAAOkpB,EAAM7rB,GACnB,GAAI2C,EAAK8H,KAAOA,EACd,OAAO9H,C,CAGb,EAeAs8I,QAAO,SAACx0I,EAAIy2G,GACV,IAAMv+G,EAAOxC,KAAKsoH,QAAQh+G,GACpBmyK,EAAWz8K,KAAK08K,cAChBK,EAAYv6K,EAAOA,EAAK2C,MAAQs3K,EAASt3K,MACzC63K,EAAWx6K,EAAOA,EAAK8/B,KAAOm6I,EAASn6I,KACvCn9B,EAAwB47G,EAAU,MAA3Bz+E,EAAiBy+E,EAAU,KAArB+7D,EAAW/7D,EAAU,OACxC57G,EAAQA,aAAiB,OAAS,IAAA9C,YAAW8C,GAASA,EAAQ43K,EAAUp2K,OAAOxB,GAAS,CAAC,GACzFm9B,EAAOA,aAAgB,OAAQ,IAAAjgC,YAAWigC,GAAQA,EAAO06I,EAASr2K,OAAO27B,GAAQ,CAAC,IAG9EtiC,KAAKi9K,eAAkBl8D,EAAW57G,OAAU47G,EAAWz+E,OACzDA,EAAOA,EAAK37B,OAAOo6G,IAGjBv+G,GACFA,EAAK2C,MAAQA,EACb3C,EAAK8/B,KAAOA,EACZ9/B,EAAKs6K,OAASA,GAAUt6K,EAAKs6K,SAE7B/7D,EAAWz2G,GAAKA,EAChBy2G,EAAW57G,MAAQA,EACnB47G,EAAWz+E,KAAOA,EAClBy+E,EAAW+7D,OACTA,GACA,SAAUp1K,GACR,GAAIA,GAASA,EAAMlF,MAAQ8H,EACzB,OAAO,CAEX,EACFtK,KAAKozI,WAAW1hI,QAAQqvG,GAE5B,GAGF,Y,2fCvIA,4B,8CAAkE,QAA9B,QAA8B,EAAlE,CAF8B,YAAkB,K,YAIhD63B,GAAOv4I,UAAUqrB,MAAQ,CACvB,CACEphB,GAAI,QACJnF,MAAO,GACPm9B,KAAM,GACNw6I,OAAM,SAACp1K,GACL,MAAoB,iBAATA,EACF,CACLlF,KAAM,QACNka,IAAKhV,GAGFA,CACT,I,2fClBJ,eAiCE,WAAYyuB,QAAA,IAAAA,IAAAA,EAAA,IAAZ,MACE,YAAMA,IAAE,KACR,EAAKtzB,QAAUszB,EACf,EAAKle,OAASke,EAAEle,OAChB,EAAKgsE,IAAM,EAAKhsE,OAAOisE,aAAe,GAEtC,EAAKX,KAAO,EAAKtrE,OAAOksE,cAAgB,GAExC,EAAKjB,GAAK,EAAKjrE,OAAOirE,GACtB,IAAM8H,EAAO,EAAK/lF,W,OAClB,EAAKuF,SAASwgF,EAAM,QAAS,EAAKkyF,cAClC,EAAK1yK,SAASwgF,EAAM,MAAO,EAAKmyF,YAChC,EAAK3yK,SAASwgF,EAAM,SAAU,EAAKoyF,cACnC,EAAK5yK,SAASwgF,EAAM,cAAe,EAAKqyF,a,CAC1C,CAoJF,OAnMwC,QAQtC,YAAA1gE,SAAA,SAAS,G,IAAE14B,EAAG,MAAEV,EAAI,OAAEL,EAAE,KAClBjU,EAAO,GAaX,OAZIjvE,KAAKiY,OAAO2jK,eACd3sG,EAAO,oCACYgV,EAAG,kDACFV,EAAI,iBAASU,EAAG,4DACNf,aAAE,EAAFA,EAAI5vB,EAAE,yBAAwB,iEAErCiwB,EAAI,sBAAaL,aAAE,EAAFA,EAAI5vB,EAAE,0BAAyB,uFAMlE,6BACO2wB,EAAG,8CACDA,EAAG,qCACbhV,EAAI,8CAEMgV,EAAG,+FAIrB,EAwBA,YAAAq5F,aAAA,SAAa9wK,GACXA,EAAG+gB,iBACH,IAAM+T,EAAQthC,KAAKu9K,cACbjuK,EAAMgyB,GAASA,EAAM55B,MAAM4gF,OAC3BggD,EAAYtoI,KAAKiY,OAAOqwH,UAE9B,GAAKh5H,EAAL,CAIAgyB,EAAM55B,MAAQ,GACd,IAAM81K,EAAWx9K,KAAKy9K,cAElBD,IACFA,EAASnxI,UAAY,GAGnBi8F,EACFA,EAAUv8H,KAAK/L,KAAfsoI,CAAqBh5H,GAErBtP,KAAK6C,QAAQ66K,iBAAiBp5K,IAAIgL,EAAK,CAAE7L,GAAI,G,CAEjD,EAOA,YAAAg6K,YAAA,WAEE,OAAOz9K,KAAKoU,GAAG8rB,cAAc,WAAIlgC,KAAKikF,IAAG,UAC3C,EAOA,YAAAs5F,YAAA,WAIE,OAHKv9K,KAAK29K,UAAa39K,KAAK29K,SAASj2K,QACnC1H,KAAK29K,SAAW39K,KAAKoU,GAAG8rB,cAAc,WAAIlgC,KAAKikF,IAAG,qBAE7CjkF,KAAK29K,QACd,EAOA,YAAAP,aAAA,SAAaj4K,GACNnF,KAAKiF,WAAWtE,QACnBX,KAAK49K,gBAET,EAMA,YAAAT,WAAA,SAAWh4K,GACqB,GAA1BnF,KAAKiF,WAAWtE,QAClBX,KAAK49K,gBAAe,GAEtB59K,KAAK69K,SAAS14K,EAChB,EASA,YAAA04K,SAAA,SAAS14K,EAAc2pH,QAAA,IAAAA,IAAAA,EAAA,MACrB,IAAM70G,EAAW60G,EACX7pH,EAAajF,KAAKiF,WAClBgT,EAASjY,KAAKiY,OAEds5E,EAAW,IAAIpsF,EAAM03K,SAAS,CAClC13K,MAAK,EACLF,WAAU,EACVgT,OAAM,IACLpE,SAASO,GAEZ,GAAI6F,EACFA,EAASwK,YAAY8sE,OAChB,CACL,IAAMisF,EAAWx9K,KAAKy9K,cAClBD,GACFA,EAASxgK,aAAau0E,EAAUisF,EAASvgK,W,CAI7C,OAAOs0E,CACT,EAOA,YAAAqsF,eAAA,SAAejqF,QAAA,IAAAA,IAAAA,GAAA,GACb,IAAM6pF,EAAWx9K,KAAK2T,IAAIC,KAAK,WAAI5T,KAAKikF,IAAG,WAE3C,GAAI0P,EACF6pF,EAASxrI,YACJ,CACL,IAAMspI,EAAWt7K,KAAKiY,OAAOqjK,SAC7BA,GAAYkC,EAASxqF,OAAOsoF,E,CAEhC,EAMA,YAAA+B,YAAA,WACE,IAAMp5F,EAAMjkF,KAAKikF,IACjBjkF,KAAK2T,IAAIC,KAAK,WAAIqwE,EAAG,cAAaoI,YAAY,UAAGpI,EAAG,aACtD,EAEA,YAAAi5F,aAAA,sBACQjjK,EAAWvF,SAASisB,yBACpB8wD,EAASzxF,KAAK2T,IAAIC,KAAK,WAAI5T,KAAKikF,IAAG,WACzCwN,EAAOz/C,QACPhyC,KAAK49K,iBAAiB59K,KAAKiF,WAAWtE,QACtCX,KAAKiF,WAAWM,MAAK,SAAAJ,GAAS,SAAK04K,SAAS14K,EAAO8U,EAArB,IAC9Bw3E,EAAOuB,OAAO/4E,EAChB,EAEA,YAAApG,OAAA,WACE,IAAMiqK,EAAa99K,KAAK6C,QAAQ81I,GAAG9kI,SAASO,GAK5C,OAJApU,KAAK2T,IAAIq+B,QACThyC,KAAK2T,IAAIq/E,OAAO8qF,GAAY9qF,OAAOhzF,KAAK28G,SAAS38G,OACjDA,KAAKoU,GAAGQ,UAAY,UAAG5U,KAAKujF,KAAI,iBAChCvjF,KAAKk9K,eACEl9K,IACT,EACF,EAnMA,CAAwC,M,YAqMxC+9K,GAAW19K,UAAUqJ,OAAS,CAE5BylE,OAAQ,gB,ooBC9LV,eAqCE,WAAYtlE,QAAA,IAAAA,IAAAA,EAAA,IAAZ,MACE,YAAMA,IAAK,KACX,EAAKhH,QAAUgH,EACf,IAAMk1E,EAAIl1E,EAAKoO,QAAU,CAAC,EAC1B,EAAKxY,OAASoK,EAAKpK,OACnB,EAAKwY,OAAS8mE,EAEd,EAAKmE,GAAK,EAAKjrE,OAAOirE,GACtB,EAAKe,IAAMlF,EAAEmF,aAAe,GAC5B,EAAKX,KAAOxE,EAAEoF,cAAgB,GAC9B,EAAK59D,OAAS,EAAK1jB,QAAQ66K,kBAAoB,CAAC,EAChD,EAAKM,SAAW,EAAK/5F,IAAM,aAC3B,EAAK5S,cAA+BhsE,IAApB05E,EAAEk/F,cAA8Bl/F,EAAEk/F,eAAiBl/F,EAAEi0E,SAAWj0E,EAAE28F,cAClF,EAAKF,iBAAgCn2K,IAAlB05E,EAAEy8F,aAA4Bz8F,EAAEy8F,YACnD,IAAM1iC,EAAa/5D,EAAE+5D,W,OAEjBA,EACF,EAAKA,WAAaA,EAAW/sI,KAAK,IACxBgzE,EAAEi0E,QAAUj0E,EAAE28F,gBACxB,EAAK5iC,WAAaolC,EAAiBxC,eAGrC,EAAKvnK,iB,CACP,CA2UF,OAvY8C,QAa5C,YAAAwoG,SAAA,SAAS,G,IAAE14B,EAAG,MAAEhmE,EAAK,QAAE+/J,EAAQ,WAAE3sG,EAAQ,WAAEmqG,EAAW,cACpD,OAAOtlG,EAAI,8VAEO,WAAe,yFAIb,oEAGc,eACG,kFARtB+N,EAAahmE,EAIhB+/J,EAGJ3sG,EAAW,WAAa,GACxBmqG,EAAc,WAAa,GAKrC,EAEA,YAAA9xK,OAAA,WACE,MAAO,CACL,sBAAuB,aAE3B,EA+BA,YAAAy0K,cAAA,WACU,IAAA1+K,EAAWO,KAAI,OACvBP,GAAUA,EAAO2+K,SAAS,qBAC5B,EAOA,YAAAC,YAAA,SAAYj6K,GACJ,IAAEuP,EAAgB3T,KAAb,IAAEP,EAAWO,KAAL,OACnBP,GAAUA,EAAO2+K,SAAS,mBAAoBh6K,GAC9C,IAAMk9B,EAAQ3tB,EAAIC,KAAK,SACvB0tB,GAASA,EAAMr7B,IAAI,GACrB,EAOA,YAAAq4K,cAAA,SAAcjsE,GACJ,IAAA5yG,EAAWO,KAAI,OACvBmjJ,QAAQr4I,MAAMunG,GACdryG,KAAKq+K,YAAYhsE,GACjB5yG,GAAUA,EAAO2+K,SAAS,qBAAsB/rE,EAClD,EAOA,YAAAksE,iBAAA,SAAiBx9J,EAAc6wH,GACvB,IACF/6D,EADE,EAA6B72E,KAA3BP,EAAM,SAAEwY,EAAM,SAAEsO,EAAM,SAE9B,IACEswD,EAAuB,iBAAT91D,EAAoBnI,KAAK3L,MAAM8T,GAAQA,C,CACrD,MAAO7V,GACP2rE,EAAO91D,C,CAGTthB,GAAUA,EAAO2+K,SAAS,wBAAyBvnG,GAE/C5+D,EAAOwrF,SAAWl9E,GACpBA,EAAOjiB,IAAIuyE,EAAKn+D,KAAM,CAAEjV,GAAI,IAG9BzD,KAAKq+K,YAAYt9J,GACjB6wH,SAAAA,EAAM/6D,EACR,EAQA,YAAAiiE,WAAA,SAAW5tI,EAAc0mI,GAAzB,WAEQ7+E,EAAQ7nD,EAAE8nD,aAAe9nD,EAAE8nD,aAAaD,MAAQ7nD,EAAEqb,OAAOwsC,MACvD96C,EAAWjY,KAAI,OACf27K,EAAiB1jK,EAAM,aAG/B,IAA6B,KADA0jK,GAAgBA,EAAa5oH,IAC1D,CAEA,IAAMj2C,EAAO,IAAI62I,SACTn7I,EAAsCP,EAAM,OAApCwjK,EAA8BxjK,EAAM,YAAvBu4I,EAAiBv4I,EAAM,aAEpD,IAAK,IAAIuC,KAAShC,EAChBsE,EAAKk2E,OAAOx4E,EAAOhC,EAAOgC,IAG5B,GAAIxa,KAAKw7K,YACP,IAAK,IAAI37K,EAAI,EAAGA,EAAIkzD,EAAMpyD,OAAQd,IAChCid,EAAKk2E,OAAO,UAAG/6E,EAAOsjK,WAAU,MAAMxoH,EAAMlzD,SAErCkzD,EAAMpyD,QACfmc,EAAKk2E,OAAO/6E,EAAOsjK,WAAaxoH,EAAM,IAGxC,IAAMzjD,EAAM2I,EAAO+6I,OACb5C,EAAUn4I,EAAOm4I,QACjBqD,EAAU,mBAMhB,QAJ+B,IAApBrD,EAAQqD,KACjBrD,EAAQqD,GAAW,kBAGjBnkJ,EAAK,CACPtP,KAAKm+K,gBACL,IAAM3qB,EAAY,CAChBvkJ,OAAQ,OACRwhJ,YAAax4I,EAAOw4I,aAAe,UACnCL,QAAO,EACPtzI,KAAI,GAEA0hK,GAAkBhuB,aAAY,EAAZA,EAAegD,KAAcA,EAMrD,OALoBioB,EAChBA,EAAYnsK,EAAKkvK,GACjB,GAAMlvK,EAAKkvK,GAAiBxtB,MAAK,SAAC5sJ,GAChC,OAA4B,IAA1BA,EAAIm6F,OAAS,IAAO,GAAUn6F,EAAI2c,OAAS3c,EAAI2c,OAAOiwI,MAAK,SAACjwI,GAAiB,OAAA0wI,QAAQt7I,OAAO4K,EAAf,GAA/E,KAGHiwI,MAAK,SAACjwI,GAAiB,SAAKw9J,iBAAiBx9J,EAAM6wH,EAA5B,IACvB0f,OAAM,SAACj/C,GAAe,SAAKisE,cAAcjsE,EAAnB,G,CAzCe,CA2C5C,EAMA,YAAAosE,SAAA,WACE,IAAIC,EAAO1+K,KAEX,IAAKA,KAAK2+K,WAAY,CACpB3+K,KAAK2+K,WAAa3+K,KAAK2T,IAAIC,KAAK,QAAQjQ,IAAI,GAC5C,IAAM,EAAS3D,KAAK2+K,WAEhB,cAAe,IACjB3+K,KAAK2+K,WAAWC,WAAa,WAE3B,OADA,EAAOhqK,UAAY8pK,EAAKz6F,IAAM,SACvB,CACT,EACAjkF,KAAK2+K,WAAWE,YAAc,WAE5B,OADA,EAAOjqK,UAAY,IACZ,CACT,EACA5U,KAAK2+K,WAAWG,OAAS,SAAUtyK,GACjC,EAAOoI,UAAY,GACnBpI,EAAG+gB,iBACHmxJ,EAAK5lC,WAAWtsI,EAElB,E,CAGN,EAEA,YAAAuyK,aAAA,SAAavyK,GAAb,WACMwyK,EAAW,EACTjgG,EAAI/+E,KAAKiY,OACTirE,EAAK12E,EAAGrH,MACR85K,EAAOzyK,EAAG4H,GACVmuE,EAASW,EAAG2T,OACZrH,EAAUtM,EAAGsB,OAAOI,UACpBrB,EAAOvjF,KAAKujF,KACZ27F,EAAa,UAAG37F,EAAI,mBACpB47F,EAAc,UAAG57F,EAAI,YACrB67F,EAAmB,WACvBH,EAAKrqK,UAAYqqK,EAAKrqK,UAAUnF,QAAQyvK,EAAY,IAAI52F,OACxD02F,EAAW,CACb,EACMzqH,EAAa,WAKjB,OAJKyqH,IACHC,EAAKrqK,WAAa,WAAIsqK,GACtBF,EAAW,IAEN,CACT,EACMK,EAAc,WAElB,OADAD,KACO,CACT,EACMvsH,EAAS,SAAC3nD,GAMd,GALAk0K,IACAl0K,EAAEqiB,iBACFriB,EAAEmjB,kBACF,EAAKyqH,WAAW5tI,GAEZ6zE,EAAE+8F,kBAAoBv5F,EAAQ,CAChC,IAAMh8D,EAASg8D,EAAOyG,cACtBzG,EAAOqT,WAAW,cAAe,CAC/BrvE,OAAM,EACN+pE,SAAQ,WACN/N,EAAOqK,MAAMxvE,QACbmlE,EAAOyO,aAAaG,UAAU,KAChC,G,CAIJ,OAAO,CACT,EAEA3kF,EAAGmH,IAAIq/E,OAAO,uBAAemsF,EAAW,cAAKpgG,EAAEg9F,gBAAe,WAC9DqD,IAEI,cAAeH,GACjB,CAACA,EAAMzvF,GAAS/5E,SAAQ,SAAAgxE,GACtBA,EAAKm4F,WAAarqH,EAClBkyB,EAAKo4F,YAAcQ,EACnB54F,EAAKq4F,OAASjsH,CAChB,GAEJ,EAEA,YAAAh/C,OAAA,WACQ,MAAmB7T,KAAjB2T,EAAG,MAAEswE,EAAG,MAAEf,EAAE,KAYpB,OAXAvvE,EAAIuiE,KACFl2E,KAAK28G,SAAS,CACZ1+F,MAAOilE,GAAMA,EAAG5vB,EAAE,4BAClB0qH,SAAUh+K,KAAKg+K,SACf3sG,SAAUrxE,KAAKqxE,SACfmqG,YAAax7K,KAAKw7K,YAClBv3F,IAAG,KAGPjkF,KAAKy+K,WACL9qK,EAAInM,KAAK,QAASy8E,EAAM,iBACjBjkF,IACT,EAEO,EAAA07K,cAAP,SAAqBxwK,EAAc0mI,GAAnC,WAGQ7+E,EAAQ7nD,EAAE8nD,aAAe9nD,EAAE8nD,aAAaD,MAAQ7nD,EAAEqb,OAAOwsC,MACzDwiG,EAAgC,CAAE78I,KAAM,IAG9C,GAAKw6C,WAAL,CASA,IAHA,IAAMosH,EAAW,GACXC,EAAkB,e,WAEb/rH,GAGT,IAAM0+F,EAAU,IAAIT,SAAQ,SAACr7C,EAASjgG,GACpC,IAAMu9C,EAAS,IAAIR,WACnBQ,EAAOp2C,iBAAiB,QAAQ,SAAA3K,GAC9B,IAAInQ,EACEmH,EAAO6pD,EAAK7pD,KAGZ0K,EAAQkrK,EAAgBhlK,KAAKi5C,EAAKhxD,MA4BxC,GAAa,WA1BXA,EADE6R,EACKA,EAAM,GAENm/C,EAAKhxD,MAwBQ,CACpB,IAAM,EAAO,CACXka,IAAKg3C,EAAOxmD,OACZvD,KAAI,EACJnH,KAAI,EACJswB,OAAQ,EACRqT,MAAO,GAGH,EAAQ,IAAIq5I,MAClB,EAAMliK,iBAAiB,SAAS,SAAAxS,GAC9BqL,EAAOrL,EACT,IACA,EAAMwS,iBAAiB,QAAQ,WAC7B,EAAKwV,OAAS,EAAMA,OACpB,EAAKqT,MAAQ,EAAMA,MACnBiwE,EAAQ,EACV,IAEA,EAAM15F,IAAM,EAAKA,G,MAGjB05F,EAFS5zG,EAED,CACNka,IAAKg3C,EAAOxmD,OACZvD,KAAI,EACJnH,KAAI,GAIEkxD,EAAOxmD,OAEnB,IACAwmD,EAAOp2C,iBAAiB,SAAS,SAAAxS,GAC/BqL,EAAOrL,EACT,IACA4oD,EAAOp2C,iBAAiB,SAAS,SAAAxS,GAC/BqL,EAAO,UACT,IAEAu9C,EAAO+rH,cAAcjsH,EACvB,IAEA8rH,EAAS36K,KAAKutJ,E,EAhFG,MAAAn/F,EAAA,eAAO,C,EAAX,K,CAmFf,OAAO0+F,QAAQrwJ,IAAIk+K,GAAUtuB,MAC3B,SAAAt4I,GACE68I,EAAS78I,KAAOA,EAEhB,EAAK6lK,iBAAiBhpB,EAAU3jB,EAClC,IACA,SAAA9mI,GAEE,EAAKwzK,cAAcxzK,EACrB,G,CAnGA9K,KAAKs+K,cAAc,IAAIvsK,MAAM,mDAqGjC,EACF,EAvYA,CAA8C,M,29BCqDjC,GAAQ,QACR,GAAQ,UAAG,GAAK,KAChB,GAAW,UAAG,GAAK,UACnB,GAAW,UAAG,GAAK,UACnB,GAAQ,UAAG,GAAK,OAChB,GAAW,UAAG,GAAK,UACnB,GAAiB,UAAG,GAAQ,WAC5B,GAAW,UAAG,GAAK,UACnB2tK,GAAS,UAAG,GAAK,QACjBC,GAAU,UAAG,GAAK,SAClBC,GAAW,UAAG,GAAK,UACnBC,GAAgB,UAAGD,GAAQ,UAC3BE,GAAc,UAAGF,GAAQ,QACzBG,GAAgB,UAAGH,GAAQ,UAC3BI,GAAc,UAAGJ,GAAQ,aAChCK,GAAW,cACXC,GAAc,CAClB9+K,IAAK,GACL8U,OAAQ,GACR2jC,OAAQ,GACRv1C,IAAK,GACLc,OAAQ,GACRghH,aAAc,GACdv1B,OAAQ,GACR1zE,KAAMuiK,GACNtiK,MAAOuiK,GACPQ,YAAaN,GACbO,UAAWN,GACXO,YAAaN,GACbO,eAAgBN,IAalB,eAeE,WAAY98F,GAAZ,MAEE,YAAMA,EAAI,eAAgB,IAAI,GAAO,GAAIA,GAAKg9F,GAAa,KAAS,KAhBtE,EAAAv6D,WAAa,SACb,EAAAu2D,MAAQ,GACR,EAAAtjC,OAAS,GAeD,MAAkB,EAAhBx3I,EAAG,MAAE6W,EAAM,SAEnB,EAAKsoK,UAAY,IAAI,GAAO,IAE5B,IAAMh9F,EAAOtrE,EAAOksE,aAWpB,OAVIZ,IACFtrE,EAAOisE,YAAc,UAAGX,GAAI,OAAGtrE,EAAOisE,cAIxC9iF,EAAIqG,GAAG,OAAO,SAACtC,GAAiB,SAAK4iJ,gBAAgBzjJ,IAAIa,EAAzB,IAChC/D,EAAIqG,GAAG,UAAU,SAACtC,GAAiB,SAAK4iJ,gBAAgB3iJ,OAAOD,EAA5B,IAEnC,EAAKkhH,cAAe,IAAA/+B,WAAS,WAAM,SAAKkK,aAAL,GAAoB,GAEhD,CACT,CAqVF,OAvX0C,QAoCxC,YAAA4sF,SAAA,SAAS5xK,G,YAAY,qDACnB,EAAAxM,KAAKkjF,IAAGp/E,QAAO,YAAC0I,GAAOkM,GAAI,KAC3B,EAAA1Y,KAAK2rF,UAAS7nF,QAAO,YAAC0I,GAAOkM,GAAI,GACnC,EAEA,YAAA84E,YAAA,WACE,IAAM41D,EAAMpnJ,KAAKqnJ,iBACXx2D,EAAS7wF,KAAK4mF,YAAYiK,QAE3Bu2D,EAAI3mG,WAAeowC,EAAe1zE,OAGvCnd,KAAKkjF,GAAGp/E,QAAQ9D,KAAK0J,OAAOmnF,OAAQ7wF,KAAK8wF,eAC3C,EAEA,YAAAA,aAAA,sBACQs2D,EAAMpnJ,KAAKqnJ,iBACjB,MAAO,CACLz2D,GAAI5wF,KACJmd,KAAMnd,KAAK45K,SACXnoF,OAAQzxF,KAAK2rF,SAASnoF,OACtBkoB,MAAO07H,EAAI17H,OAAS,GACpB+0B,UAAW2mG,EAAI3mG,UACfrjC,MAAO,WAAM,SAAKA,OAAL,EACbhY,OAAQ,SAAC2zI,EAAuBlvI,GAA+B,SAAKzE,OAAO2zI,EAAOlvI,EAAnB,EAC/DqM,OAAQ,SAAC6iI,EAAcC,GACrB,IAAM50I,EAAM,EAAKE,IAAIy0I,IACrB,IAAA12I,YAAW+kJ,EAAIlxI,SAAWkxI,EAAIlxI,OAAO9R,EAAK40I,EAC5C,EAEAn2I,QAASukJ,EAAIvkJ,SAAW,CAAC,EAE7B,EAsBA,YAAAsa,KAAA,SAAKta,QAAA,IAAAA,IAAAA,EAAA,IACS7C,KAAKkjF,GAAGiC,SAChBjD,IAAI+9F,GAAU,IAChBv0J,MAAO,CAAC,SACRxV,OAAQ,WAAO,GACZrT,GAEP,EAOA,YAAAua,MAAA,WACcpd,KAAKkjF,GAAGiC,SAChBxnE,KAAKsiK,GACX,EAQA,YAAArG,OAAA,WACE,IAAMlkH,EAAM11D,KAAKkjF,GAAGiC,SACpB,SAASzvB,aAAG,EAAHA,EAAK4/B,SAAS2qF,IACzB,EAqBA,YAAA37K,IAAA,SAAIy0I,EAAsDlvI,GAMxD,YANwD,IAAAA,IAAAA,EAAA,SAElC,IAAXA,EAAKpG,KACdoG,EAAKpG,GAAK,GAGLzD,KAAKoB,IAAIkD,IAAIy0I,EAAOlvI,EAC7B,EASA,YAAAlG,IAAA,SAAI+Y,GACF,OAAO1c,KAAKoB,IAAIsC,MAAM,CAAEgZ,IAAG,IAAI,IAAM,IACvC,EAMA,YAAAivE,OAAA,WACE,OAAO3rF,KAAKoB,GACd,EAMA,YAAA2mJ,cAAA,WACE,OAAO/nJ,KAAKugL,SACd,EAYA,YAAAn7K,OAAA,SAAO2zI,EAAuBlvI,GAC5B,OAAO7J,KAAKmmH,SAAS4yB,EAAOlvI,EAC9B,EAEA,YAAA0yF,MAAA,WACE,OAAOv8F,KAAK0lH,gBACd,EAEA,YAAA2G,KAAA,SAAK3zG,GACH,OAAO1Y,KAAK4lH,gBAAgBltG,EAC9B,EAMA,YAAAm2E,aAAA,W,MAEE,OADY7uF,KAAKqnJ,iBACN5mG,YAAoB,QAAP,EAAAzgD,KAAK4wF,UAAE,eAAEx8E,GACnC,EAOA,YAAAqpK,YAAA,W,MACE,OAAc,QAAP,EAAAz9K,KAAK4wF,UAAE,eAAEx8E,GAAG8rB,cAAc,mBACnC,EAiBA,YAAArsB,OAAA,SAAO2sK,GACL,IAAIxgL,KAAK4mF,YAAYiK,OAArB,CACA,IAAMq3D,EAAWs4B,GAASxgL,KAAK2rF,SAASnoF,OAExC,IAAKxD,KAAK4wF,GAAI,CACZ,IAAM5vF,EAAMhB,KAAKygL,eACjBz/K,EAAI23I,GAAK34I,KAAK64I,eACd74I,KAAK4wF,GAAK,IAAI,GAAW,MAAK5vF,IAC9BhB,KAAK4wF,GAAG/8E,Q,CAIV,OADA7T,KAAKugL,UAAUr6K,MAAMgiJ,GACdloJ,KAAK6uF,cAXuB,CAYrC,EAEA,YAAA4xF,aAAA,WACE,MAAO,CACLx7K,WAAYjF,KAAKugL,UACjB7C,iBAAkB19K,KAAKoB,IACvB6W,OAAQjY,KAAKiY,OACbxY,OAAQO,KACR24I,QAAItzI,EAER,EAiBA,YAAAy5I,QAAA,SAAQx0I,EAAYy2G,GAClB/gH,KAAK2rF,SAASmzD,QAAQx0I,EAAIy2G,EAC5B,EAQA,YAAAuH,QAAA,SAAQh+G,GACN,OAAOtK,KAAK2rF,SAAS28B,QAAQh+G,EAC/B,EAOA,YAAA8oI,SAAA,WACE,OAAOpzI,KAAK2rF,SAASynD,UACvB,EAIA,YAAA2qC,WAAA,WACE,OAAO/9K,KAAK4wF,EACd,EAEA,YAAAioD,aAAA,WAIE,OAHK74I,KAAK24I,KACR34I,KAAK24I,GAAK,IAAIE,GAAiB74I,KAAKygL,iBAE/BzgL,KAAK24I,EACd,EAEA,YAAA9sB,OAAA,sBACE7rH,KAAK2rF,SAASzlF,MAAMlG,KAAKiY,OAAOw5E,QAC1B,IAAEvO,EAAeljF,KAAb,GAAE0J,EAAW1J,KAAL,OAClBkjF,EAAGz7E,GAAG,cAAOw4K,KAAY,WAAM,SAAK7B,SAAS10K,EAAOyT,KAArB,IAC/B+lE,EAAGz7E,GAAG,eAAQw4K,KAAY,WAAM,SAAK7B,SAAS10K,EAAO0T,MAArB,GAClC,EAEA,YAAAo5H,WAAA,SAAWkqC,G,MACT1gL,KAAKiY,OAAO4jK,WAAmB,QAAP,EAAA77K,KAAK24I,UAAE,SAAEomC,aAAa2B,GAChD,EAOA,YAAAvvF,UAAA,SAAU3/E,GACRxR,KAAKugL,UAAUh6J,OAAS/U,CAC1B,EAOA,YAAA8+E,SAAA,SAASjqE,GACPrmB,KAAKugL,UAAUjwF,SAAWjqE,CAC5B,EAOA,YAAA+qE,QAAA,SAAQ7f,GAENvxE,KAAKiY,OAAOm5E,QAAU7f,CACxB,EAOA,YAAA8f,WAAA,SAAW9f,GAETvxE,KAAKiY,OAAOo5E,WAAa9f,CAC3B,EAEA,YAAA+f,YAAA,SAAYznF,GACV,YADU,IAAAA,IAAAA,EAAA,IACF7J,KAAK4nJ,KAAO,SACd5nJ,KAAK4nJ,MAAQ,CAAC,GACf/9I,EAEP,EAEA,YAAAw9I,eAAA,SAAex9I,GACb,YADa,IAAAA,IAAAA,EAAA,IACN7J,KAAK4nJ,MAAQ,CAAC,CACvB,EAEA,YAAAv4I,QAAA,W,QACErP,KAAKoB,IAAIkK,gBACTtL,KAAKoB,IAAI8E,QACTlG,KAAKugL,UAAUj1K,gBACftL,KAAKugL,UAAUr6K,QACR,QAAP,EAAAlG,KAAK24I,UAAE,SAAEvzI,SACF,QAAP,EAAApF,KAAK4wF,UAAE,SAAExrF,SACTpF,KAAK4nJ,KAAO,CAAC,CACf,EACF,EAvXA,CAA0Cr7B,G,YC7G1C,IAAMo0D,GAAiB,CAAE5xG,YAAa,iBCgDtC,SAT2B,CACzBi4D,OAAQ,KACR45C,eAAgB,KAChBC,cAAc,EACdr5F,OAAO,EACPs5F,SAAU,CAAEC,GD1Cd,CACE19D,aAAc,CACZ29D,UAAW,YACXC,SAAU,+BACV/vF,WAAY,eACZgwF,YAAa,sCAIfn9D,aAAc,CACZo9D,OAAQ,CACN,EAEFh7B,WAAY,CACV,GAGJ1iC,cAAe,CACb35G,MAAO,CACL,GAAI,MACJ88B,QAAS,OACT7lB,KAAM,OACNqgK,QAAS,UACTC,MAAO,QACPC,MAAO,QACP50G,MAAO,QACP0mC,KAAM,OACNtuG,IAAK,MACLyqG,MAAO,aACPD,MAAO,aACPD,MAAO,aACPH,MAAO,QACPqyE,IAAK,YACLC,KAAM,eAGV39D,cAAe,CACbwJ,OAAQ,SACRZ,QAAS,CACPg1D,QAAS,UACTC,OAAQ,SACRC,gBAAiB,mBACjBC,eAAgB,oBAGpBrvF,OAAQ,CACNtyB,QAAS,CACP4hH,OAAQ,CACNC,QAAS,UACTC,WAAY,aACZ,gBAAiB,kBACjB,kBAAmB,YACnB,UAAW,qBACX,UAAW,WACX,cAAe,qBACf,cAAe,iBAIrBn+D,gBAAiB,CACfl3C,MAAO,UACP1Y,SAAU,WACVguH,WAAY,YACZ1uG,OAAQ,CACN2uG,MAAO,QACP/iI,OAAQ,QACR,kBAAmB,aAGvB4kE,aAAc,CACZ9xE,MAAO,+CACPkwI,MAAO,QACPC,WAAY,SACZC,QAAS,CACPC,QAAS,UACTC,OAAQ,SACRC,WAAY,aACZC,YAAa,cACblmB,MAAO,QACPmmB,KAAM,OACNC,UAAW,aAIb9wJ,WAAY,CACV,gBAAiB,IACjB,gBAAiB,IACjB,mBAAoB,OACpB,oBAAqB,QACrB,eAAgB,IAChB,eAAgB,IAChB,kBAAmB,OACnB,oBAAqB,SACrB,mBAAoB,QACpB,kBAAmB,OACnB,iBAAkB,MAClB,mBAAoB,QACpB,oBAAqB,SACrB,kBAAmB,OACnB,kBAAmB,MACnB,oBAAqB,QACrB,qBAAsB,SACtB,mBAAoB,OACpB,mBAAoB,QACpB,mBAAoB,QACpB,mBAAoB,QACpB,6BAA8B,WAC9B,8BAA+B,YAC/B,iCAAkC,eAClC,gCAAiC,cACjC,qBAAsB,WACtB,qBAAsB,WACtB,qBAAsB,WACtB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,0BAA2B,WAC3B,0BAA2B,WAC3B,iCAAkC,SAClC,uBAAwB,QACxB,wBAAyB,SACzB,0BAA2B,WAC3B,4BAA6B,aAC7B,sBAAuB,SAU3BoyF,aAAc,CACZhyE,MAAO,+CACP06B,MAAO,qBACPi8D,OAAQ,CAENw4C,OAAQ,CAIN,EAGFn6K,WAAY,CACVsD,GAAIq2K,GACJnrH,IAAKmrH,GACL1iK,MAAO0iK,GACPnlK,KAAM,CAAEuzD,YAAa,2BAGvBlsE,QAAS,CACP0jB,OAAQ,CACNo8J,MAAO,cACPC,OAAQ,iBAKhBr/D,eAAgB,CACds/D,QAAS,6CCtHXC,iBAAaz9K,G,2fCTf,eAME,WAAY69E,GAAZ,MACE,YAAMA,EAAI,OAAQ,KAAS,KACrB5+E,EAAM,EAAK2T,OAAO6qK,Y,OACxBx+K,GAAO,EAAKy+K,YAAYz+K,GAEpB,EAAK2T,OAAO4oK,eACd,EAAK5oK,OAAO+uH,OAAS,EAAKg8C,c,CAE9B,CAkKF,OAhLwC,QA8BtC,YAAAC,UAAA,SAAUj8C,GACF,IAAE9jD,EAAeljF,KAAb,GAAEiY,EAAWjY,KAAL,OACZkjL,EAAQ,CAAEx7K,MAAOs/H,EAAQm8C,UAAWlrK,EAAO+uH,QAGjD,OAFA9jD,GAAMA,EAAGp/E,QAAQ,cAAeo/K,GAChCjrK,EAAO+uH,OAASA,EACThnI,IACT,EAMA,YAAAojL,UAAA,WACE,OAAOpjL,KAAKiY,OAAO+uH,MACrB,EAcA,YAAAq8C,YAAA,SAAYC,EAAcz5K,QAAA,IAAAA,IAAAA,EAAA,IACxB,IAAMi3K,EAAW9gL,KAAKiY,OAAO6oK,SAE7B,OADAwC,IAASxC,EAASwC,IAAStjL,KAAKujL,OAAO,WAAID,EAAI,yBAAyBz5K,GACjEy5K,EAAOxC,EAASwC,GAAQxC,CACjC,EAcA,YAAA0C,YAAA,SAAYC,GACJ,IAAEvgG,EAAeljF,KAAb,GAGV,OAHuBA,KAAL,OACX8gL,SAAW2C,EAClBvgG,GAAMA,EAAGp/E,QAAQ,cAAe2/K,GACzBzjL,IACT,EAcA,YAAA+iL,YAAA,SAAYU,GACF,IAAAvgG,EAAOljF,KAAI,GACX8gL,EAAa9gL,KAAKiY,OAAM,SAIhC,OAHAirE,GAAMA,EAAGp/E,QAAQ,WAAY2/K,GAC7BzjL,KAAKwjL,aAAY,IAAAjvE,WAAUusE,EAAW2C,IAE/BzjL,IACT,EAqBA,YAAAszD,EAAA,SAAEjyD,EAAawI,QAAA,IAAAA,IAAAA,EAAA,IACL,IAAAoO,EAAWjY,KAAI,OACjBwa,EAAQ3Q,EAAK2O,QAAU,CAAC,EACxBwuH,EAASn9H,EAAK5H,GAAKjC,KAAKojL,YACxBM,EAAY75K,EAAK85K,MAAQ1rK,EAAO2oK,eAClC1zK,EAASlN,KAAK4jL,QAAQviL,EAAK2lI,EAAQn9H,GAQvC,OALKqD,IAAQA,EAASlN,KAAK4jL,QAAQviL,EAAKqiL,EAAW75K,KAElDqD,GAAUlN,KAAKujL,OAAO,WAAIliL,EAAG,oCAA4B2lI,EAAM,UAAUn9H,GAC1EqD,EAASA,IAAU,IAAAgE,UAAShE,GAAUlN,KAAK6jL,WAAW32K,EAAQsN,GAAStN,CAGzE,EAEA,YAAA81K,WAAA,WACE,IAAMc,GAAO,IAAAtlF,WAAYz+F,OAAOsiB,WAAc,CAAC,EAEzCihK,EAAOQ,EAAIC,UAAYD,EAAIE,aACjC,OAAOV,EAAOA,EAAKr5K,MAAM,KAAK,GAAK,IACrC,EAEA,YAAA45K,WAAA,SAAWj6J,EAAapR,GACtB,IAAMk5H,EAAM,IAAIp3H,OAAO,iBAAkB,KACzC,OAAOsP,EAAIna,QAAQiiI,GAAK,SAAClgI,EAAGvL,GAAQ,OAAAuS,EAAOvS,IAAQ,EAAf,IAAmBqiF,MACzD,EAEA,YAAAs7F,QAAA,SAAQviL,EAAa2lI,EAAgBn9H,QAAA,IAAAA,IAAAA,EAAA,IACnC,IAAMo6K,EAASjkL,KAAKqjL,YAAYr8C,EAAQn9H,GAGxC,GAAKo6K,EAAL,CAEA,IAAI/2K,EAAS+2K,EAAO5iL,GAUpB,OAPK6L,GAAU7L,EAAIwD,QAAQ,KAAO,IAChCqI,EAAS7L,EAAI4I,MAAM,KAAK0L,QAAO,SAAC2tK,EAAMjiL,GACpC,KAAI,IAAAuoF,aAAY05F,GAChB,OAAOA,EAAKjiL,EACd,GAAG4iL,IAGE/2K,CAZY,CAarB,EAEA,YAAAq2K,OAAA,SAAO35J,EAAa/f,QAAA,IAAAA,IAAAA,EAAA,IACZ,IAAEq5E,EAAeljF,KAAb,GAAEiY,EAAWjY,KAAL,QACjB6J,EAAK29E,OAASvvE,EAAOuvE,QAAUtE,GAAMA,EAAGuC,WAAW77D,EACtD,EAEA,YAAAva,QAAA,WAAW,EACb,EAhLA,CAAwC,G,qvBC7BlC,GAAO,WAAO,EAkDpB,4B,8CAivCA,QAjvCoC,QAsDlC,YAAA9H,WAAA,SAAW+lD,QAAA,IAAAA,IAAAA,EAAA,IACTttD,KAAKstD,IAAMA,GAAO,CAAC,GACnB,IAAAg1B,SAAQtiF,KAAM,YAAa,SAAU,UAAW,WAAY,eAAgB,kBAC5E,IAAIm2B,EAAIm3B,GAAO,CAAC,EAChBttD,KAAKkkL,IAAM,EACXlkL,KAAKmkL,IAAM,EACXnkL,KAAKokL,aAAejuJ,EAAEiuJ,cAAgB,GAEtC,IAAIhwK,EAAK+hB,EAAEsqB,UACXzgD,KAAKoU,GAAmB,iBAAPA,EAAkBM,SAASwrB,cAAc9rB,GAAOA,EACjEpU,KAAK2T,KAAM,gBAAE3T,KAAKoU,IAElBpU,KAAKg/F,aAAe7oE,EAAE6oE,cAAgB,MACtCh/F,KAAKi/F,QAAU9oE,EAAE8oE,SAAW,MAC5Bj/F,KAAK4hD,UAAYzrB,EAAEyrB,YAAa,EAChC5hD,KAAKm/F,SAAWhpE,EAAEgpE,OAClBn/F,KAAKikF,IAAM9tD,EAAE8tD,KAAO,GACpBjkF,KAAKujF,KAAOptD,EAAEotD,MAAQ,GACtBvjF,KAAKqkL,YAAcluJ,EAAEkuJ,aAAerkL,KAAKikF,IAAM,UAC/CjkF,KAAK0jF,QAAUvtD,EAAEutD,SAAW,GAC5B1jF,KAAK2vF,UAAYx5D,EAAEw5D,UACnB3vF,KAAKwwH,aAAer6F,EAAEq6F,aACtBxwH,KAAK4jF,MAAQztD,EAAEytD,MACf5jF,KAAKurB,UAAY4K,EAAE5K,WAAa,IAChCvrB,KAAKqwF,UAAYl6D,EAAEkmE,OACnBr8F,KAAKskL,SAAWnuJ,EAAEmuJ,WAAY,EAC9BtkL,KAAKo3K,qBAAuBjhJ,EAAEihJ,mBAC9Bp3K,KAAKs4J,IAAMniI,EAAE2oE,OAEb9+F,KAAKk/F,QAAU/oE,EAAE+oE,SAAW,EAC5Bl/F,KAAKukL,OAASpuJ,EAAEiR,WAAa,EAC7BpnC,KAAKwkL,QAAUruJ,EAAEiZ,YAAc,EAC/BpvC,KAAK0U,SAAWyhB,EAAEzhB,UAAYA,SAC9B1U,KAAKkjF,GAAK/sD,EAAE+sD,GACZljF,KAAKo/F,iBAAmBjpE,EAAEipE,eAC1Bp/F,KAAKykL,aAAetuJ,EAAEqhJ,iBACtBx3K,KAAKq/F,MAAQlpE,EAAEkpE,MAEXr/F,KAAKkjF,IAAMljF,KAAKkjF,GAAGz7E,KACrBzH,KAAKkjF,GAAGz7E,GAAG,sBAAuBzH,KAAK20H,cACvC30H,KAAK20H,eAET,EAEA,YAAA+vD,SAAA,WACE,OAAO,IAAAx3K,QAAOlN,KAAM,UAAY,CAClC,EAEA,YAAA+kG,eAAA,SAAenK,GAGb,GAFIA,IAAM56F,KAAKoU,GAAKwmF,IAEf56F,KAAKoU,GAAI,CACZ,IAAIA,EAAKpU,KAAKstD,IAAI7M,UAClBzgD,KAAKoU,GAAmB,iBAAPA,EAAkBM,SAASwrB,cAAc9rB,GAAOA,EACjEpU,KAAK2T,KAAM,gBAAE3T,KAAKoU,G,CAGpB,OAAOpU,KAAKoU,EACd,EAEA,YAAAuwK,aAAA,SAAavwK,GACX,IAAM8uE,EAAKljF,KAAKkjF,GACVozD,EAAQliI,EAAKA,EAAG8b,cAAgBgzD,aAAE,EAAFA,EAAIsB,OAAOI,UAAU10D,cACrDgrE,EAAO,CAACxmF,UAEd,OADA4hI,GAASp7C,EAAKv2F,KAAK2xI,GACZp7C,CACT,EAKA,YAAAy5B,aAAA,W,MACQx5F,GAAgB,QAAP,EAAAn7B,KAAKkjF,UAAE,eAAEv/E,IAAI,kBAAmB,CAAC,EAChD3D,KAAKukL,OAASppJ,EAAO2N,IACrB9oC,KAAKwkL,QAAUrpJ,EAAOzL,IACxB,EAMA,YAAA+hG,eAAA,SAAe1yG,UACN/e,KAAK4kL,UACZ5kL,KAAK6kL,YAAc9lK,CACrB,EAEA,YAAA+lK,6BAAA,SAA6B55K,GACnB,IAAAg4E,EAAOljF,KAAI,GACnB,GAAKkjF,EAAL,CACA,IAAMsB,EAAStB,EAAGv/E,IAAI,UAChBohL,EAAYvgG,EAAOw3C,cACrB73G,EAAQ,KAEZ,GAAI4gK,EAAUC,oBAAqB,CAEjC,IAAMC,GAAS,IAAA39E,iBAAgBp8F,GAC/BiZ,EAAQ4gK,EAAUC,oBAAoBC,EAAOl1I,QAASk1I,EAAOj1I,Q,MACpD9kC,EAAEg6K,cAEX/gK,EAAQ4gK,EAAUr/J,eACZI,SAAS5a,EAAEg6K,YAAah6K,EAAEi6K,aAGlC,IAAMtzI,EAAM2yC,EAAOyT,YAAYjoE,eAC/Bw0D,EAAOoS,aAAa5hD,QACpBnD,EAAI6N,kBACJv7B,GAAS0tB,EAAI8N,SAASx7B,GACtBnkB,KAAKolL,mBAAmBplL,KAAKqlL,iBAAiB,EAnB/B,CAoBjB,EAEA,YAAAD,mBAAA,SAAmBjgL,EAAe6a,GAChC,GAAI7a,EAAO,CAET,IAAMiP,EAAKjP,EAAMwgF,QACbvxE,EAAGk4D,iBAAmBtsD,IAAM5L,EAAGk4D,gBAAkBtsD,E,CAEzD,EAMA,YAAAslK,iBAAA,SAAiBpmI,GACP,IAAAgkC,EAAOljF,KAAI,GACbgjG,EAAK9f,GAAMA,EAAGv/E,IAAI,UAIxBq/F,IAAO9jD,EAAS8jD,EAAGkwB,kBAAoBlwB,EAAG4wB,iBAC5C,EAOA,YAAAwxB,cAAA,SAAchxI,EAAiBzB,GAO7B,IANA,IAAMnG,EAAKmG,GAAS,GACd4yK,EAAWnxK,EAAGs6C,WAAU,GACxBpmB,EAAOl0B,EAAGob,wBACVgwF,EAAWh4E,iBAAiBpzB,GAC9BuI,EAAQ,GAEH9c,EAAI,EAAGA,EAAI2/G,EAAS7+G,OAAQd,IAAK,CACxC,IAAM4mB,EAAO+4F,EAAS3/G,GACtB8c,GAAS,UAAG8J,EAAI,YAAI+4F,EAAS3V,iBAAiBpjF,GAAK,I,EAGrD/R,SAASoI,KAAK2H,YAAY8gK,GAC1BA,EAAS3wK,WAAa,WAAI5U,KAAKikF,IAAG,SAClCshG,EAASxgK,aAAa,QAASpI,GAC/B3c,KAAKuvK,WAAagW,EAClBA,EAAS5oK,MAAMwpB,MAAQ,UAAGmC,EAAKnC,MAAK,MACpCo/I,EAAS5oK,MAAMmW,OAAS,UAAGwV,EAAKxV,OAAM,MACtCtmB,GAAMxM,KAAKwlL,eAAeh5K,GAGtBxM,KAAKkjF,MACM,gBAAEljF,KAAKkjF,GAAGsB,OAAOI,UAAU10D,eACnC/kB,IAAI,YAAanL,KAAKwlL,gBAAgB/9K,GAAG,YAAazH,KAAKwlL,iBAElE,gBAAE9wK,UAAUvJ,IAAI,YAAanL,KAAKwlL,gBAAgB/9K,GAAG,YAAazH,KAAKwlL,eACzE,EAMA,YAAAA,eAAA,SAAet6K,GACb,IAAMmnB,EAAOnnB,EAAEqb,OAAuB2J,cAEtC,GAAKlwB,KAAKuvK,YAAel9I,EAAzB,CAIA,IAAIozJ,EAAOv6K,EAAE24D,MACT6hH,EAAOx6K,EAAE04D,MACT65D,EAAS,EACTC,EAAU,EAGRvtC,GADS99D,EAAI40E,aAAgB50E,EAAI60E,cAClBopB,aACfq1D,EAAkB3lL,KAAKuvK,WAAW5yJ,MAOxC,GAAIwzE,EAAO,CACT,IAAM+oC,EAAY/oC,EAAM3gE,wBACxBiuG,EAASvE,EAAUpwF,IAAMp0B,SAASs3B,gBAAgBK,UAClDqxF,EAAUxE,EAAUxpG,KAAOhb,SAASs3B,gBAAgBC,WACpDw5I,EAAOv6K,EAAE8kC,QACT01I,EAAOx6K,EAAE6kC,O,CAGX41I,EAAgB78I,IAAM28I,EAAOhoD,EAAS,KACtCkoD,EAAgBj2J,KAAOg2J,EAAOhoD,EAAU,I,CAC1C,EAQA,YAAAhwH,QAAA,SAAQ0G,EAAiBV,GACvB,OAAO,EAAAhG,QAAA,KAAa0G,EAAIV,EAC1B,EAQA,YAAAu9F,QAAA,SAAQ78F,EAAiBV,GACvB,GAAKU,EAGL,IAFA,IAAIwmF,EAAOxmF,EAAG6Q,WAEP21E,GAA0B,IAAlBA,EAAK51E,UAAgB,CAClC,GAAIhlB,KAAK0N,QAAQktF,EAAqBlnF,GAAW,OAAOknF,EACxDA,EAAOA,EAAK31E,U,CAEhB,EAOA,YAAAkW,OAAA,SAAO/mB,GACL,IAAMk0B,EAAOl0B,EAAGob,wBAEhB,MAAO,CACLsZ,IAAKR,EAAKQ,IAAMp0B,SAASoI,KAAKuvB,UAC9B3c,KAAM4Y,EAAK5Y,KAAOhb,SAASoI,KAAKmvB,WAEpC,EAMA,YAAA25I,kBAAA,WACU,IAAA3hG,EAAQjkF,KAAI,IACdoU,EAAKM,SAASC,cAAc,OAC5BkxK,EAAMnxK,SAASC,cAAc,OAMnC,OALAP,EAAGQ,UAAYqvE,EAAM,cACrB7vE,EAAGuI,MAAMC,QAAU,OACnBxI,EAAGuI,MAAMqmC,cAAgB,OACzB6iI,EAAIjxK,UAAYqvE,EAAM,kBACtB7vE,EAAGqQ,YAAYohK,GACRzxK,CACT,EAMA,YAAAmrF,UAAA,SAAU7iF,EAAmB7S,G,aAAA,IAAAA,IAAAA,EAAA,IACrB,IAGFk2I,EAHE,EAAqC//I,KAAnCkjF,EAAE,KAAE+b,EAAO,UAAED,EAAY,eAAEs5D,EAAG,MAChC73G,EAAYzgD,KAAK+kG,eAAel7F,EAAK42C,WACrCy6C,EAAOl7F,KAAK2kL,aAAajoK,UAExB1c,KAAK4kL,iBACL5kL,KAAKumB,cACLvmB,KAAK8lL,WACZ9lL,KAAK0+D,OAAQ,EAGThiD,IAAQ1c,KAAK0N,QAAQgP,EAAK,UAAGuiF,EAAO,aAAKD,MAC3CtiF,EAAM1c,KAAKixG,QAAQv0F,EAAKuiF,IAG1Bj/F,KAAK+lL,SAAWrpK,EAGX47I,IACHt4J,KAAKs4J,IAAMt4J,KAAK4lL,oBAChBnlI,EAAUh8B,YAAYzkB,KAAKs4J,MAGzB57I,KACFqjI,EAAW//I,KAAKs3K,eAAe56J,KACnBqjI,EAASt6I,KAAOs6I,EAASt6I,IAAI,SAAU,WACnDzF,KAAK+/I,SAAWA,IAGlB,IAAAt4I,IAAGg5C,EAAW,qBAAsBzgD,KAAKq8F,SACzC,IAAA50F,IAAGyzF,EAAM,2BAA4Bl7F,KAAKuwF,UAC1C,IAAA9oF,IAAGyzF,EAAM,UAAWl7F,KAAK8vF,UACzB9vF,KAAK0jF,QAAQ,CACXgM,OAAQ1vF,KACRumB,OAAQw5H,EAERxhI,OAAQwhI,IAA2B,QAAf,EAAAA,EAASxhI,cAAM,wBAEnCzd,MAAOi/I,IAA0B,QAAd,EAAAA,EAASj/I,aAAK,0BAInCoiF,SAAAA,EAAI8iG,iBACJhmL,KAAKslL,kBAAiB,GACtBpiG,SAAAA,EAAIp/E,QAAQ,oBAAqB4Y,EAAKqjI,EACxC,EAMA,YAAAkmC,eAAA,SAAe7xK,GACb,IAAMwmF,EAAOxmF,GAAMpU,KAAKumB,OACxB,OAAO,gBAAEq0E,GAAMliF,KAAK,QACtB,EAMA,YAAA4+J,eAAA,SAAe/tJ,EAAsB,GAArC,WAAqC,aAAqC,CAAC,EAAC,EAArChD,EAAM,SAAE,IAAAwoH,cAAAA,OAAa,IAAG,IAAC,EACtD7rD,EAAiBljF,KAAf,GAAE+lL,EAAa/lL,KAAL,SACd0c,EAAM6M,GAAUw8J,EAChBnB,EAA2B5kL,KAAlB,UAAE6kL,EAAgB7kL,KAAL,YACtBo1I,EAAa,SAAC14H,GAClB,OAAAA,GAAO6J,GAAU7J,EAAI4wC,KAAO5wC,EAAI4wC,IAAIyhF,eAAiB,EAAKm3C,iBAAiBxpK,EAAK6J,EAAhF,EAEF,GAAIs+J,GAAe3hG,EAAI,CAKrB,GAJIkyD,EAAWwvC,KACbA,OAAYv/K,IAGTu/K,EAAW,CACd,IAAMxkD,EAAQl9C,EAAGuR,WAAWkqD,gBACtB90I,EAAO,CACXklI,cAAa,EACblmD,WAAY,EACZ+hD,iBAAkB,GAEdu7C,EAAY/lD,EAAM97H,IAAIugL,EAAa,SAAKh7K,GAAI,CAAEi/G,WAAW,KAM/D,GAHA87D,GADAA,EAAYxkD,EAAMh7H,OAAO+gL,EAAWt8K,cACHzJ,MAAQwkL,EAAU,GAAKA,EACxD5kL,KAAK4kL,UAAYA,EAEbxvC,EAAWwvC,GACb,OAAO5kL,KAAKs3K,eAAe56J,EAAK,CAAE6J,OAAM,EAAEwoH,cAAe,G,CAI7D,OAAO61C,C,CAGT,OAAOloK,IAAO,gBAAEA,GAAKhE,KAAK,QAC5B,EAMA,YAAA0tK,kBAAA,SAAkBjhL,EAAeokB,GAC/B,KAAIpkB,aAAiB,MAMjBokB,GAAUA,IAAWpkB,GAAzB,CAEQ,IAAAkhL,EAAgBrmL,KAAI,YAIxBqmL,GAAeA,IAAgBrmL,KAAK+/I,UACtCsmC,EAAY5gL,IAAI,SAAU,IAGxBN,GAASA,EAAMM,MACjBN,EAAMM,IAAI,SAAU,mBACpBzF,KAAKqmL,YAAclhL,EAZiB,CAcxC,EAMA,YAAAk3F,OAAA,SAAOnxF,GACL,IAAMsB,EAAKtB,EACL,EAAuClL,KAArCkjF,EAAE,KAAEmN,EAAS,YAAEioE,EAAG,MAAE9nC,EAAY,eACxCxwH,KAAK0+D,OAAQ,EAGb,IAAM4nH,EAAMhuB,EAAK37I,MAAMC,QAClB0pK,GAAe,SAARA,IAAgBhuB,EAAK37I,MAAMC,QAAU,SAGjD,IAAI2pK,EAAKvmL,KAAKm7B,OAAOn7B,KAAKoU,IAC1BpU,KAAKkkL,IAAMlkL,KAAKk/F,QAAUhzF,KAAK0kB,IAAI21J,EAAGz9I,KAAOy9I,EAAGz9I,IAChD9oC,KAAKmkL,IAAMnkL,KAAKk/F,QAAUhzF,KAAK0kB,IAAI21J,EAAG72J,MAAQ62J,EAAG72J,KACjD,IAAI82J,EAAKt7K,EAAE24D,MAAQ7jE,KAAKkkL,IAAMlkL,KAAKoU,GAAGi4B,UAClCo6I,EAAKv7K,EAAE04D,MAAQ5jE,KAAKmkL,IAAMnkL,KAAKoU,GAAG63B,WAEtC,GAAIjsC,KAAKo/F,gBAAkBlc,EAAI,CAC7B,IAAMwjG,EAAWxjG,EAAGv/E,IAAI,UAAU2lF,uBAAuBp+E,EAAG,CAAEg9E,SAAU,IACxEu+F,EAAKC,EAAS7yJ,EACd2yJ,EAAKE,EAAS94I,C,CAGhB5tC,KAAKymL,GAAKA,EACVzmL,KAAKwmL,GAAKA,EACVxmL,KAAK2mL,UAAYz7K,EAGjB,IAAM07K,EAAc5mL,KAAKs3K,iBACnB3oF,EAAW6hC,EAAeA,EAAa,CAAE9gC,OAAQ1vF,KAAM2S,MAAOzH,IAAOA,EAAEqb,OACvEid,EAAOxjC,KAAK6mL,eAAel4F,EAAyB83F,EAAID,GACxDjgK,EAASvmB,KAAKumB,OACd8/J,EAAc9/J,GAAUvmB,KAAKimL,eAAe1/J,GAGlD,GAFAvmB,KAAKomL,kBAAkBC,EAAaO,GAC/BP,IAAa/tB,EAAK37I,MAAMC,QAAU,QAClC2J,EAAL,CACAvmB,KAAK8mL,SAAWtjJ,EAChB,IAAM3hB,EAAM7hB,KAAK+mL,aAAavjJ,EAAMijJ,EAAID,GAEpCxmL,KAAKkmL,iBAAiBU,EAAaP,IACrCrmL,KAAKqlL,gBAAkBgB,EACvB/tB,EAAK37I,MAAMC,QAAU,OACrB5c,KAAKq/D,QAAUx9C,EACf7hB,KAAK8kL,6BAA6Bt4K,KAElCxM,KAAKgnL,yBACEhnL,KAAKqlL,gBAGPrlL,KAAKq/D,SAAWr/D,KAAKq/D,QAAQv+D,OAAS+gB,EAAI/gB,OAASd,KAAKq/D,QAAQpwD,QAAU4S,EAAI5S,SACjFjP,KAAKinL,gBAAgBjnL,KAAKs4J,IAAM90H,EAAM3hB,EAAK7hB,KAAKknL,eAC3ClnL,KAAKmnL,OAAMnnL,KAAKmnL,MAAO,gBAAEnnL,KAAKs4J,MAI9Bt4J,KAAKo/F,iBACJp/F,KAAKukL,QAAQvkL,KAAKmnL,KAAK7mJ,IAAI,MAAO,KAAOtgC,KAAKukL,OAAS,MACvDvkL,KAAKwkL,SAASxkL,KAAKmnL,KAAK7mJ,IAAI,OAAQ,KAAOtgC,KAAKwkL,QAAU,OAGhExkL,KAAKq/D,QAAUx9C,KAInB,IAAAxf,YAAWguF,IACTA,EAAU,CACR19E,MAAOzH,EACPqb,OAAQqgK,EACRroK,OAAQ8nK,EACRvlL,MAAO+gB,EAAI/gB,OAAuB,SAAd+gB,EAAI5S,OAAoB,EAAI,KAGpDi0E,GACEA,EAAGp/E,QAAQ,cAAe,CACxByiB,OAAM,EACN8/J,YAAW,EACXO,YAAW,EACXpjJ,KAAI,EACJ3hB,IAAG,EACHgS,EAAG4yJ,EACH74I,EAAG44I,GA7CY,CA+CrB,EAEA,YAAAN,iBAAA,SAAiBxpK,EAAU07E,G,MACzB,OAAe,QAAR,EAAA17E,aAAG,EAAHA,EAAK/Y,WAAG,sBAAG,eAAey0F,aAAG,EAAHA,EAAK45C,aAAa,QACrD,EAEA,YAAAg1C,gBAAA,WACU,IAAA3B,EAAoBrlL,KAAI,gBAEhCqlL,SAAAA,EAAiBpsF,UAAU2gD,iBAC3B55I,KAAKolL,mBAAmBC,GAAiB,EAC3C,EAUA,YAAA+B,SAAA,SAAShzK,EAAiBmK,GACxB,IAAKnK,EAAI,OAAO,EAEhBmK,EAASA,GAAU7J,SAASoI,KAC5B,IAEI89E,EAAOxmF,EAEX,OADIwmF,EAAKzrE,eACWnvB,KAAKqnL,YAAYzsF,EAAMr8E,EAE7C,EASA,YAAA8oK,YAAA,SAAYjzK,EAAiBmK,GAC3B,KAAI,IAAA+hF,YAAWlsF,GAAf,CACA,IAAMuI,EAAQvI,EAAGuI,OAAS,CAAC,EACrBhJ,GAAM,gBAAES,GACRkzK,EAAU/oK,IAAU,gBAAEA,GAE5B,IAAI5B,EAAM4qK,UAA+B,YAAnB5qK,EAAM4qK,SAA5B,CACA,IAAMC,EAAY7zK,EAAI2sB,IAAI,SAC1B,KAAIknJ,GAA2B,SAAdA,GACbF,GAAqC,QAA1BA,EAAQhnJ,IAAI,YAA0D,WAAlCgnJ,EAAQhnJ,IAAI,mBAA/D,CACA,OAAQ3jB,EAAM4pB,UACZ,IAAK,SACL,IAAK,WACL,IAAK,GACH,MACF,QACE,OAEJ,OAAQnyB,EAAGX,SACT,IAAK,KACL,IAAK,QACL,IAAK,QACL,IAAK,QACH,OAAO,EAEX,OAAQE,EAAI2sB,IAAI,YACd,IAAK,QACL,IAAK,YACL,IAAK,QACL,IAAK,OACL,IAAK,OACH,OAAO,EAtB0F,CAH3C,CALhC,CAiC5B,EAOA,YAAA2kH,YAAA,SAAY7sD,EAAkB17E,GAC5B,IAAM+qK,EAAWznL,KAAKimL,eAAe7tF,GAC/B2nD,EAAW//I,KAAKs3K,eAAe56J,EAAK,CAAE6J,OAAQkhK,IAIhDv6K,EAAS,CACXg4I,OAAO,EACPxoI,IAJFA,EAAMqjI,GAAYA,EAASz9G,MAAQy9G,EAASz9G,KAAKluB,GAK/C2rI,SAAQ,EACR3nD,IALFA,EAAMqvF,GAAYA,EAASnlJ,MAAQmlJ,EAASnlJ,KAAKluB,GAM/CqzK,SAAQ,EACR7lI,WAAW,EACX4yE,WAAW,EACXkzD,SAAU,GACVC,SAAU,IAGZ,IAAKjrK,IAAQ07E,EAEX,OADAlrF,EAAOg4I,OAAQ,EACRh4I,EAIT,IAAI00C,EAAYm+F,EAASp8I,IAAI,aAC7B,IAAI,IAAAtB,YAAWu/C,GAAY,CACzB,IAAMx9C,EAAMw9C,EAAUm+F,EAAU0nC,GAChCv6K,EAAOw6K,SAAWtjL,EAClB8I,EAAO00C,UAAYx9C,EACnBw9C,EAAYx9C,C,MAEZw9C,EAAYA,aAAqBxhD,MAAQwhD,EAAU6N,KAAK,MAAQ7N,EAChE10C,EAAOw6K,SAAW9lI,EAClBA,GAAY,IAAA1wC,UAAS0wC,GAAa5hD,KAAK0N,QAAQ0qF,EAAKx2C,GAAaA,EACjE10C,EAAO00C,UAAYA,EAIrB,IAAI4yE,EAAYizD,EAAS9jL,IAAI,aAC7B,IAAI,IAAAtB,YAAWmyH,GAAY,CACnBpwH,EAAMowH,EAAUurB,EAAU0nC,GAChCv6K,EAAOsnH,UAAYpwH,EACnB8I,EAAOy6K,SAAWvjL,EAClBowH,EAAYpwH,C,MAGZowH,GADAA,EAAYA,aAAqB,KAAa,EAAIA,aACjBp0H,MAAQo0H,EAAU/kE,KAAK,MAAQ+kE,EAChEtnH,EAAOy6K,SAAWnzD,EAClBA,GAAY,IAAAtjH,UAASsjH,GAAax0H,KAAK0N,QAAQgP,EAAK83G,GAAaA,EACjEA,EAAY5yE,GAAa5hD,KAAKkmL,iBAAiBnmC,EAAU0nC,GAAY,EAAIjzD,EACzEtnH,EAAOsnH,UAAYA,EAOrB,OAJKA,GAAc5yE,IACjB10C,EAAOg4I,OAAQ,GAGVh4I,CACT,EASA,YAAA25K,eAAA,SAAetgK,EAAqBkgK,EAAYD,GAC9C,IAAMtjG,EAAKljF,KAAKkjF,GACZ1/C,EAAc,GAElB,IAAKjd,EACH,OAAOid,EAaT,GATKxjC,KAAK0N,QAAQ6Y,EAAQ,UAAGvmB,KAAKi/F,QAAO,aAAKj/F,KAAKg/F,iBACjDz4E,EAASvmB,KAAKixG,QAAQ1qF,EAAQvmB,KAAKi/F,UAIjCj/F,KAAK4hD,qBAAqBxhD,QAC5BmmB,EAASvmB,KAAKixG,QAAQ1qF,EAAQvmB,KAAK4hD,UAAU6N,KAAK,QAG/ClpC,EACH,OAAOid,EAST,GALIxjC,KAAK8lL,YAAc9lL,KAAK8lL,YAAcv/J,UACjCvmB,KAAK8lL,YAIT9lL,KAAK8lL,WAAY,CACpB9lL,KAAK4nL,QAAU5nL,KAAKixG,QAAQ1qF,EAAQvmB,KAAKg/F,cAGzC,IAAI6oF,EAAc7nL,KAAKilJ,YAAY1+H,GAGnC,GAFA28D,GAAMA,EAAGp/E,QAAQ,yBAA0B+jL,IAEtCA,EAAY3iC,OAASllJ,KAAK4nL,QAC7B,OAAO5nL,KAAK6mL,eAAe7mL,KAAK4nL,QAASnB,EAAID,GAG/CxmL,KAAK8lL,WAAav/J,EAClBvmB,KAAKknL,cAAgBlnL,KAAK8nL,OAAOvhK,GACjCvmB,KAAK+nL,WAAa/nL,KAAKgoL,eAAehoL,KAAK4nL,SAC3C5nL,KAAKioL,UAAYjoL,KAAKgoL,eAAezhK,E,CAWvC,GAPIvmB,KAAK8lL,YAAcv/J,IAAQid,EAAOxjC,KAAKioL,WAG3CjoL,KAAKumB,OAASvmB,KAAK8lL,WAIf9lL,KAAKkoL,YAAYloL,KAAKknL,cAAgBT,EAAID,KAASxmL,KAAKm/F,SAAWn/F,KAAKioL,UAAWtnL,OAAS,CAC9F,IAAMwnL,EAAenoL,KAAK4nL,QAEtBO,GAAgBnoL,KAAKilJ,YAAYkjC,GAAcjjC,QACjD1hH,EAAOxjC,KAAK+nL,WACZ/nL,KAAKumB,OAAS4hK,E,CAKlB,cADOnoL,KAAKq/D,QACL77B,CACT,EAQA,YAAA4kJ,gBAAA,SAAgBh0K,GACd,IACI+zK,EADA5hK,EAASnS,EAETi0K,EAAaroL,KAAKqoL,WAChBnlG,EAAKljF,KAAKkjF,GACV8b,EAAeh/F,KAAKg/F,aACpBC,EAAUj/F,KAAKi/F,QAmBrB,GAhBKj/F,KAAK0N,QAAQ6Y,EAAQ,UAAG04E,EAAO,aAAKD,MACvCz4E,EAASvmB,KAAKixG,QAAQ1qF,EAAQ04E,IAK5Bj/F,KAAK4hD,qBAAqBxhD,QAC5BmmB,EAASvmB,KAAKixG,QAAQ1qF,EAAQvmB,KAAK4hD,UAAU6N,KAAK,OAIhD44H,GAAcA,GAAc9hK,UACvBvmB,KAAKqoL,YAITroL,KAAKqoL,WAAY,CACpBF,EAAenoL,KAAKixG,QAAQ1qF,EAAQy4E,GAIpC,IAAM6oF,EAAc7nL,KAAKilJ,YAAY1+H,GAGrC,GAFA28D,GAAMA,EAAGp/E,QAAQ,yBAA0B+jL,IAEtCA,EAAY3iC,OAASijC,EACxB,OAAOnoL,KAAKooL,gBAAgBD,GAG9BnoL,KAAKqoL,WAAa9hK,C,CAapB,OARIvmB,KAAKsoL,cAAc/hK,KACrB4hK,EAAenoL,KAAKixG,QAAQ1qF,EAAQy4E,KAEhBh/F,KAAKilJ,YAAYkjC,GAAcjjC,QACjD3+H,EAAS4hK,GAIN5hK,CACT,EAMA,YAAA+hK,cAAA,SAAcl0K,GACZ,IAAMjJ,EAAM,GACNm9B,EAAOl0B,EAAGob,wBACV1S,EAAO1I,EAAG8b,cAAcpT,KACxB,EAAW9c,KAAKuoL,gBAAd10J,EAAC,IAAE+Z,EAAC,IACN9E,EAAMR,EAAKQ,IAAMhsB,EAAKuvB,UACtB3c,EAAO4Y,EAAK5Y,KAAO5S,EAAKmvB,WACxB9F,EAAQmC,EAAKnC,MACbrT,EAASwV,EAAKxV,OAEpB,GACE8a,EAAI9E,EAAM39B,GACVyiC,EAAI9E,EAAMhW,EAAS3nB,GACnB0oB,EAAInE,EAAOvkB,GACX0oB,EAAInE,EAAOyW,EAAQh7B,EAEnB,OAAO,CAEX,EAEA,YAAAo9K,cAAA,WACE,IAAM/7K,EAAKxM,KAAK2mL,UAGhB,MAAO,CAAE9yJ,GAFCrnB,aAAE,EAAFA,EAAIo3D,QAAS,EAEXh2B,GADFphC,aAAE,EAAFA,EAAIq3D,QAAS,EAEzB,EAOA,YAAAikH,OAAA,SAAO1zK,GACC,IAGF00B,EAAKpZ,EAAMoD,EAAQqT,EAHf+8C,EAAuBljF,KAArB,GAAEo/F,EAAmBp/F,KAAL,eACpByiF,EAASS,aAAE,EAAFA,EAAIsB,OACbgkG,EAAU/lG,EAASA,EAAO43C,kBAAkBjmH,GAAM,CAAC,EAGzD,GAAIgrF,GAAkBlc,EAAI,CACxB,IAAMrhE,EAAM4gE,EAAQmF,cAAcxzE,EAAI,CAAE8zE,SAAU,IAClDp/C,EAAMjnB,EAAIinB,IACVpZ,EAAO7N,EAAI6N,KACXoD,EAASjR,EAAIiR,OACbqT,EAAQtkB,EAAIskB,K,KACP,CACL,IAAIhQ,EAAIn2B,KAAKm7B,OAAO/mB,GACpB00B,EAAM9oC,KAAKskL,SAAWlwK,EAAGgzB,UAAYjR,EAAE2S,KAAO9oC,KAAKk/F,SAAW,EAAI,GAAKl/F,KAAKkkL,IAC5Ex0J,EAAO1vB,KAAKskL,SAAWlwK,EAAGg7B,WAAajZ,EAAEzG,MAAQ1vB,KAAKk/F,SAAW,EAAI,GAAKl/F,KAAKmkL,IAC/ErxJ,EAAS1e,EAAG+a,aACZgX,EAAQ/xB,EAAGgb,W,CAGb,MAAO,CAAE0Z,IAAG,EAAEpZ,KAAI,EAAEoD,OAAM,EAAEqT,MAAK,EAAEqiJ,QAAO,EAC5C,EAOA,YAAAR,eAAA,SAAe5vF,GAAf,WACQ50D,EAAc,GACpB,IAAK40D,EAAK,OAAO50D,EAGjB,IAAMikJ,EAAWznL,KAAKimL,eAAe7tF,GACrC,GAAIqvF,GAAYA,EAASnlJ,OAAStiC,KAAKo3K,mBAAoB,CACzD,IAAM90I,EAAOmlJ,EAASl2C,eAAiBk2C,EAASl2C,iBAAmBk2C,EAASnlJ,KAC5E81D,EAAM91D,EAAKwzG,sB,CA0Bb,OAvBA,IAAAvwI,MAAK6yF,EAAI7lE,UAAU,SAACk2E,EAAK5oG,GACvB,IAAMuU,EAAKq0F,EACLtjG,GAAQ,IAAA4gF,UAAS3xE,EAAI,cACrBq0K,EAAUtjL,GAASA,EAAMrE,MAAQqE,EAAMrE,QAAUjB,EAEvD,IAAK,IAAAygG,YAAWlsF,IAAQ,EAAK1G,QAAQ0G,EAAI,EAAK6qF,SAA9C,CAIA,IAEIypF,EAFE9gE,EAAM,EAAKkgE,OAAO1zK,GACpByV,EAAM,EAAK0B,UAGCm9J,EAAL,KAAP7+J,GACY,KAAPA,GACO,EAAKu9J,SAAShzK,EAAIgkF,GAElCwvB,EAAI/9F,IAAM6+J,EACV9gE,EAAIxzG,GAAKA,EACTwzG,EAAI+gE,QAAUF,EACdjlJ,EAAK7+B,KAAKijH,E,CACZ,IAEOpkF,CACT,EASA,YAAA0kJ,YAAA,SAAYtgE,EAAU6+D,EAAYD,GAChC,IAAIt5K,GAAS,EACP/B,EAAMnL,KAAKokL,aACXvwJ,EAAI4yJ,GAAM,EACV74I,EAAI44I,GAAM,EACVlzH,EAAIs0D,EAAI9+E,IACR7mC,EAAI2lH,EAAIl4F,KACRwD,EAAI00F,EAAI90F,OACRijB,EAAI6xE,EAAIzhF,MAGd,OAFImtB,EAAInoD,EAAMyiC,GAAKA,EAAI0lB,EAAIpgC,EAAI/nB,GAAOlJ,EAAIkJ,EAAM0oB,GAAKA,EAAI5xB,EAAI8zC,EAAI5qC,KAAK+B,GAAS,GAExEA,CACT,EASA,YAAA65K,aAAA,SAAavjJ,EAAakiJ,EAAcD,GAYtC,IAXA,IAQI79D,EARE16G,EAAc,CAAEpM,MAAO,EAAG6nL,QAAS,EAAG15K,OAAQ,UAChD25K,EAAY,EACZC,EAAS,EAETC,EAAS,EACTC,EAAU,EACVC,EAAU,EACVC,EAAU,EAILppL,EAAI,EAAG4rB,EAAM+X,EAAK7iC,OAAQd,EAAI4rB,EAAK5rB,IAAK,CAEvC,OADR+nH,EAAMpkF,EAAK3jC,IAC6B,IAA3B6vB,EAAwBk4F,EAAG,KAArB90F,EAAkB80F,EAAG,OAAbzhF,EAAUyhF,EAAG,MAUxC,GANAqhE,EAAU,EAAMn2J,EAEhBi2J,EAAUr5J,EAAOyW,EAAQ,EAEzB6iJ,EAAU,EAAMl2J,EAAS,IAGtB+1J,GAAUn5J,EAAOm5J,GACjBC,GAAUE,GAAWF,GACrBF,GAXQl5J,EAAOyW,EAWSyiJ,GAM3B,GAHA17K,EAAOpM,MAAQjB,EACfqN,EAAOy7K,QAAU/gE,EAAI+gE,QAEhB/gE,EAAI/9F,IAUF,CAEL,GAAI47J,EAAOuD,EAAS,CAClB97K,EAAO+B,OAAS,SAChB,K,CACK/B,EAAO+B,OAAS,O,MAdnBw2K,EAAOwD,IAASH,EAASG,GAEzBvD,EAAOqD,GACTF,EAASE,EACT77K,EAAO+B,OAAS,WAEhB25K,EAAYG,EACZ77K,EAAO+B,OAAS,Q,CAWtB,OAAO/B,CACT,EASA,YAAA+5K,gBAAA,SAAgB3uB,EAAkB90H,EAAa3hB,EAAUqnK,GACvD,IAAIC,EAAO,EACP71H,EAAI,EACJrxD,EAAI,EACJ8zC,EAAI,GACJ7iB,EAAI,GACJ60D,EAAK,KACLqhG,EAAQ,EACRn6K,EAAS4S,EAAI5S,OACXo6K,EAAQ7lJ,EAAK3hB,EAAI/gB,OAMvB,GAHAw3J,EAAIh1E,UAAUl+E,OAAO,YACrBkzJ,EAAIh1E,UAAUh/E,IAAI,cAEd+kL,EAAO,CAED,MAA6BA,EAAK,IAA7B35J,EAAwB25J,EAAK,KAAvBv2J,EAAkBu2J,EAAK,OAAfljJ,EAAUkjJ,EAAK,MACrCA,EAAMx/J,KASTksB,EAAI5P,EAAQ4hD,EACZ70D,EAAI,OACJogC,EAAc,UAAVrkD,EAAqB,EAAMk6K,EAAO,EAAMr2J,EAASq2J,EACrDlnL,EAAIytB,IAXJqmB,EAAI,OACJ7iB,EAAIJ,EAAgB,EAAPq2J,EAAWphG,EACxBz0B,EAAI,EAAM61H,EACVlnL,EAAc,UAAVgN,EAAqBygB,EAAOy5J,EAAOz5J,EAAOyW,EAAQgjJ,EAEtD7wB,EAAIh1E,UAAUl+E,OAAO,cACrBkzJ,EAAIh1E,UAAUh/E,IAAI,Y,KAOf,CAEL,IAAKtE,KAAKm/F,OAER,YADAm5D,EAAI37I,MAAMC,QAAU,QAGtB,GAAIssK,EAAQ,CACV,IAAM/tJ,EAAS+tJ,EAAOV,SAAW,CAAC,EAC5Bc,EAAKnuJ,EAAO+L,YAAckiJ,EAC1BG,EAAKpuJ,EAAOmL,aAAe8iJ,EACjC91H,EAAI41H,EAAOpgJ,IAAMwgJ,EACjBrnL,EAAIinL,EAAOx5J,KAAO65J,EAClBxzI,EAAIrO,SAAS,UAAGwhJ,EAAO/iJ,QAAgB,EAALojJ,EAASxhG,EAC3C70D,EAAI,M,EAGRolI,EAAI37I,MAAMmsB,IAAMwqB,EAAIy0B,EACpBuwE,EAAI37I,MAAM+S,KAAOztB,EAAI8lF,EACjBhyC,IAAGuiH,EAAI37I,MAAMwpB,MAAQ4P,GACrB7iB,IAAGolI,EAAI37I,MAAMmW,OAASI,EAC5B,EAMA,YAAAg+E,QAAA,SAAQ/rG,GACN,OAAOA,EAAQ,CAACA,GAAOJ,OAAO/E,KAAKkxG,QAAQ/rG,EAAMoZ,WAAa,EAChE,EAOA,YAAAxN,KAAA,SAAKy4K,EAAWC,GAEd,IACMC,EADYF,EAAKt4E,QAAQj7F,QAAO,SAAC+lB,GAAW,OAAAytJ,EAAKv4E,QAAQ36F,SAASylB,EAAtB,IACvB,GAC3B,IAAK0tJ,EAEH,OAAOD,EAAKtkL,MAAMrE,QAAU0oL,EAAKrkL,MAAMrE,QAIzC,IAAM6oL,EAAKH,EAAKt4E,QAAQs4E,EAAKt4E,QAAQrsG,QAAQ6kL,GAAY,GAGzD,OAFWD,EAAKv4E,QAAQu4E,EAAKv4E,QAAQrsG,QAAQ6kL,GAAY,GAE/C5oL,QAAU6oL,EAAG7oL,OACzB,EAQA,YAAAyvF,QAAA,eAQMwvD,EARN,OACQrjI,EAAM1c,KAAK+lL,SACXrnH,EAAQ,GACRw8B,EAAOl7F,KAAK2kL,eACZlkI,EAAYzgD,KAAK+kG,iBACjBpV,EAAY3vF,KAAK2vF,UACjB/L,EAAQ5jF,KAAK4jF,MACXr9D,EAAoBvmB,KAAd,OAAEq/D,EAAYr/D,KAAL,QAevB,IAbA,IAAAmL,KAAIs1C,EAAW,qBAAsBzgD,KAAKq8F,SAC1C,IAAAlxF,KAAI+vF,EAAM,2BAA4Bl7F,KAAKuwF,UAC3C,IAAAplF,KAAI+vF,EAAM,UAAWl7F,KAAK8vF,UAC1B9vF,KAAKs4J,IAAK37I,MAAMC,QAAU,OAEtBF,IACFqjI,EAAW//I,KAAKs3K,iBACZt3K,KAAKykL,aAAe1kC,GAAYA,EAASt6I,MAC3Cs6I,EAASt6I,IAAI,SAAU,IACvBs6I,EAASt6I,IAAI,SAAU,cAIvBzF,KAAK0+D,OAASn4C,EAAQ,CACxB,IAAM6pE,EAASpwF,KAAKowF,OACdw5F,GAAY,IAAA1oL,SAAQkvF,GAAUA,EAASA,EAAS,CAACA,GAAU,CAAC1zE,GAC9D,EAAoB,EACC,IAArBktK,EAAUjpL,OAIZ+9D,EAAM/5D,KAAK3E,KAAKggE,KAAKz5C,EAAQqjK,EAAU,GAAKvqH,IAE5CuqH,EAEG9kL,KAAI,SAAAK,GAAS,OACZA,MAAK,EACL+rG,QAAS,EAAKA,QAAQ/rG,GAFV,IAKb4L,KAAK/Q,KAAK+Q,MAEV0E,SAAQ,SAAC,G,IAAEtQ,EAAK,QAETrE,EAAQqE,EAAMrE,QAEdyd,EAASpZ,EAAMoZ,SAASonE,QAE9BjnB,EAAM/5D,KACJ,EAAKq7D,KAAKz5C,EAAQphB,EAAQ,SACrBk6D,GAAQ,CACXspH,QAAStpH,EAASspH,QAAU,EAC5B7nL,MAAOu+D,EAASv+D,MAAQ,MAMxByd,IAAWgI,GAAUzlB,GAASu+D,EAASv+D,OAEzC,GAEJ,G,CAIFd,KAAKs4J,MAAKt4J,KAAKs4J,IAAI37I,MAAMC,QAAU,QACvC,IAAM2yJ,EAAavvK,KAAKuvK,WAexB,GAbIA,IACFA,EAAWtqJ,WAAYnH,YAAYyxJ,UAC5BvvK,KAAKuvK,YAGdvvK,KAAKgnL,kBACLhnL,KAAKomL,oBACLpmL,KAAKslL,0BAEEtlL,KAAKowF,cACLpwF,KAAK2mL,iBACL3mL,KAAK4kL,WAER,IAAAviL,YAAWstF,GAAY,CACzB,IAAM,EAAO,CACXppE,OAAQw5H,EAERxhI,OAAQwhI,GAAYA,EAASxhI,SAE7Bzd,MAAOi/I,GAAYA,EAASj/I,SAE9B49D,EAAM/9D,OAAS+9D,EAAMjpD,SAAQ,SAAAjE,GAAK,OAAAm+E,EAAUn+E,EAAG,EAAM,EAAnB,IAA4Bm+E,EAAU,KAAM3vF,KAAM,SAAK,GAAI,CAAE6mG,UAAW,I,EAG5G,IAAAxkG,YAAWuhF,IAAUA,EAAM,CAAE8L,OAAQ1vF,MACvC,EAQA,YAAAggE,KAAA,SAAK6pH,EAAkBntK,EAA0BmF,GACzC,IAQFioK,EAAazS,EARTn0F,EAAoBljF,KAAlB,GAAE6kL,EAAgB7kL,KAAL,YACjB+pL,GAAQ,IAAArlG,YAAWhoE,GACnBstK,EAAQ,GACRlpL,EAAuB,UAAf+gB,EAAI5S,OAAqB4S,EAAI8mK,QAAU,EAAI9mK,EAAI8mK,QACvDd,EAAc7nL,KAAKilJ,YAAY4kC,EAAKE,GACpCE,GAAmB,gBAAEJ,GAAKnxK,KAAK,cAC7B+uK,EAAkCI,EAAW,SAAnC9nC,EAAwB8nC,EAAW,SAAzBjmI,EAAcimI,EAAW,UAC/CrzD,EAAYizD,aAAoB,KAAa,EAAII,EAAYrzD,UAGnE,GAAIy1D,GAAoBz1D,GAAa5yE,EAAW,CAC9C,IAAM/3C,EAAY,CAAEpG,GAAI3C,EAAOyB,OAAQ,kBACjC6yI,EAAap1I,KAAKkmL,iBAAiBnmC,EAAU0nC,GAEnD,GAAK5C,EAgBHiF,GAAc,IAAAznL,YAAWwiL,GAAeA,IAAgBA,EACxDh7K,EAAK+gI,kBAAmB,EACxB/gI,EAAKtH,OAAS,oBAlBE,CAChB,IAAM2nL,EAAWnqC,EAAS96I,WAAWJ,QAAQk7I,GACvCoqC,EAAiBF,IAAqBlqC,EAAS96I,aAElCklL,KADDD,IAAappL,GAASopL,IAAappL,EAAQ,IACVs0I,KAGjD00C,EAAc/pC,EAAS96I,WAAWG,OAAO26I,EAAU,CACjDj3B,WAAW,IAETqhE,GAAkBrpL,EAAQopL,IAC5BrgL,EAAKpG,GAAK3C,EAAQ,G,CAUpBgpL,IACE10C,UACKvrI,EAAKpG,GACZ4zK,EAAUoQ,EAASxuF,UAAUwhD,gBAAgBqvC,EAAajgL,IAE1DwtK,EAAU4S,EAAiB3lL,IAAIwlL,EAAajgL,WAIzC7J,KAAK6kL,mBACL7kL,KAAK8lL,U,MACP,GAAI5iG,EAAI,CACb,IAAMykG,EAAWE,EAAYF,WAAYF,aAAQ,EAARA,EAAU9jL,IAAI,cACjD+jL,EAAWG,EAAYH,WAAY3nC,aAAQ,EAARA,EAAUp8I,IAAI,eAEtDsmL,GAAoBD,EAAMrlL,KAAK,gCAC/B6vH,GAAamzD,GAAYqC,EAAMrlL,KAAK,4CAAqCgjL,EAAQ,OACjF/lI,GAAa8lI,GAAYsC,EAAMrlL,KAAK,kDAA2C+iL,EAAQ,MACxFxkG,EAAGuC,WAAW,0BAA2B,CACvCyrE,OAAQ84B,EACR7kL,MAAO46I,EACPh2I,QAAS,SACTwc,OAAQkhK,G,CAaZ,OATAvkG,SAAAA,EAAIp/E,QAAQ,kBAAmB,CAC7BmmL,iBAAgB,EAChBH,YAAW,EACXE,MAAK,EACLnC,YAAW,EACXgC,IAAG,EACHE,MAAK,IAGA1S,CACT,EAOA,YAAAvnF,SAAA,SAAS5kF,IACP,IAAAC,KAAInL,KAAK2kL,eAAgB,UAAW3kL,KAAK8vF,UAG9B,KAFC5kF,EAAEnJ,OAASmJ,EAAEgrD,WAGvBl2D,KAAK0+D,OAAQ,EACb1+D,KAAKuwF,UAET,EACF,EAjvCA,CAAoC,M,8PCgLpC,cA6BE,WAAY1mF,QAAA,IAAAA,IAAAA,EAAA,IACV7J,KAAKo3H,QAAU,CACb0f,cAAc,EACdszC,kBAAmB,WAAO,EAC1Br2E,KAAM,EACNs2E,OAAQ,GACRC,OAAQljL,IACR80F,WAAY,KACZE,UAAW,KACXhB,UAAW,SACXC,SAAU,QACVC,aAAa,EACbivF,cAAc,EACdC,sBAAsB,EACtBjvF,gBAAgB,EAChBC,eAAe,EACfQ,YAAY,EACZF,WAAW,EACX2uF,IAAI,EACJlV,IAAI,EACJpmE,IAAI,EACJswB,IAAI,EACJirD,IAAI,EACJC,IAAI,EACJC,IAAI,EACJC,IAAI,GAEN7qL,KAAK6J,KAAO,MAAK7J,KAAKo3H,SACtBp3H,KAAK+P,WAAWlG,IAChB,IAAAy4E,SAAQtiF,KAAM,gBAAiB,kBAAmB,OAAQ,OAC5D,CAgcF,OA1bE,YAAA4mF,UAAA,WACE,OAAO5mF,KAAK6J,IACd,EAMA,YAAAkG,WAAA,SAAWlN,EAAuCqD,QAAvC,IAAArD,IAAAA,EAAA,IACT7C,KAAK6J,KAAO,SACN3D,EAAQlG,KAAKo3H,QAAUp3H,KAAK6J,MAC7BhH,GAEL7C,KAAK8qL,OACP,EAKA,YAAAA,MAAA,WACE,IAAMjhL,EAAO7J,KAAK6J,KACZo6E,EAAMp6E,EAAKmsF,QAAU,GACrBpE,EAAW/nF,EAAK+nF,UAAYl9E,SAASoI,KACvC2jC,EAAYzgD,KAAKygD,UAUrB,IAPKA,KACHA,EAAY/rC,SAASC,cAAc,QACzBC,UAAY,UAAGqvE,EAAG,aAC5B2N,EAASntE,YAAYg8B,GACrBzgD,KAAKygD,UAAYA,GAGZA,EAAUxjC,YACfwjC,EAAU3iC,YAAY2iC,EAAUxjC,YAIlC,IAAMjS,EAAqB,CAAC,EAM5B,IAAK,IAAI8b,IALT,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAMrR,SAE/C,SAAAs1K,GAAO,OAAC//K,EAAS+/K,GAAOlhL,EAAKkhL,GA7Hb,SAACphL,EAAcE,QAAA,IAAAA,IAAAA,EAAA,IACnC,IAAIo6E,EAAMp6E,EAAKmsF,QAAU,GACrB5hF,EAAKM,SAASC,cAAc,KAGhC,OAFAP,EAAGQ,UAAYqvE,EAAM,aAAeA,EAAM,aAAet6E,EACzDyK,EAAG2Q,aAAa,QAAUk/D,EAAM,UAAWt6E,GACpCyK,CACT,CAuH0C42K,CAAcD,EAAKlhL,GAAQ,IAAxD,IAGKmB,EAAU,CACtB,IAAMU,EAAUV,EAAS8b,GACzBpb,GAAW+0C,EAAUh8B,YAAY/Y,E,CAGnC1L,KAAKgL,SAAWA,EAChBhL,KAAKk2F,gBAAkBrsF,EAAKqsF,gBAC5Bl2F,KAAKs8F,aAAezyF,EAAKyyF,aACzBt8F,KAAKi2F,WAAapsF,EAAKosF,WACvBj2F,KAAK0jF,QAAU75E,EAAK65E,QACpB1jF,KAAKq8F,OAASxyF,EAAKwyF,OACnBr8F,KAAK4jF,MAAQ/5E,EAAK+5E,MAClB5jF,KAAKoqL,kBAAoBvgL,EAAKugL,iBAChC,EAMA,YAAAa,aAAA,SAAar9K,GACX,GAAI5N,KAAK6J,KAAK0gL,aAAc,CAC1B,IAAM,EAAS71K,SAAS0gF,iBAAiB,WACzC,IAAA7vF,MAAK,GAAQ,SAAA4qF,GAAS,OAACA,EAAMxzE,MAAMqmC,cAAgBp1C,EAAS,OAAS,EAA/C,G,CAE1B,EAOA,YAAAs9K,UAAA,SAAU92K,GACA,IAAApJ,EAAahL,KAAI,SAEzB,IAAK,IAAI8mB,KAAK9b,EACZ,GAAIA,EAAS8b,KAAO1S,EAAI,OAAO,EAGjC,OAAO,CACT,EAMA,YAAA+2K,aAAA,WACE,OAAOnrL,KAAKoU,EACd,EAMA,YAAAg3K,YAAA,W,MACE,OAAc,QAAP,EAAAprL,KAAKoU,UAAE,eAAEgc,aAClB,EAKA,YAAA00E,cAAA,WACE,MAAO,CAAC9kG,KAAKoU,GAAI8b,cAAexb,SAClC,EAQA,YAAAkzE,cAAA,SAAcxzE,EAAiBvK,QAAA,IAAAA,IAAAA,EAAA,IACrB,IAAAosF,EAAej2F,KAAI,WAC3B,OAAOi2F,EAAaA,EAAW7hF,EAAIvK,GAhMf,SAACuK,EAAiB4jF,GACxC,IAAIjiD,EAAIiiD,GAAOj4F,OACXuoC,EAAOl0B,EAAGob,wBACd,MAAO,CACLE,KAAM4Y,EAAK5Y,KAAOqmB,EAAEhK,YACpBjD,IAAKR,EAAKQ,IAAMiN,EAAE3J,YAClBjG,MAAOmC,EAAKnC,MACZrT,OAAQwV,EAAKxV,OAEjB,CAuL+Cu4J,CAAgBj3K,EAC7D,EAMA,YAAA4gC,MAAA,SAAM5gC,GAEAA,GAAMA,IAAOpU,KAAKoU,KAItBpU,KAAKoU,GAAKA,EACVpU,KAAKsrL,gBAAgB,CAAEC,WAAW,KAClC,IAAA9jL,IAAGzH,KAAK8kG,gBAAiB,cAAe9kG,KAAKwrL,iBAC/C,EAKA,YAAAzpH,KAAA,WACE/hE,KAAKygD,UAAW9jC,MAAMC,QAAU,OAE5B5c,KAAKoU,MACP,IAAAjJ,KAAInL,KAAK8kG,gBAAiB,cAAe9kG,KAAKwrL,wBACvCxrL,KAAKoU,GAEhB,EAMA,YAAA4H,MAAA,SAAMxP,GACJ,IAAMtB,EAAIsB,EAEV,GAAiB,IAAbtB,EAAEyjB,OAAN,CACAzjB,EAAEqiB,iBACFriB,EAAEmjB,kBACF,IAAMja,EAAKpU,KAAKoU,GACVm/H,EAAWvzI,KAAKorL,cAEhBnzK,EAASjY,KAAK6J,MAAQ,CAAC,EACvB4hL,EAAazrL,KAAKk2F,gBAClB6oC,EAAW,QAAU9mH,EAAO+9E,OAAS,UACrC1tD,EAAOtoC,KAAK4nF,cAAcxzE,EAAK,CAAEgmH,gBAAgB,EAAMF,kBAAkB,IACzEwxD,EAAa1rL,KAAK4nF,cAAc2rD,GAChChtH,EAASrb,EAAEqb,OACjBvmB,KAAK2rL,YAAcplK,EAAOwgB,aAAag4F,GACvC/+H,KAAK4rL,eAAiBrlK,EACtBvmB,KAAKi8F,SAAW,CACd3oC,EAAGhrB,EAAKQ,IACR7mC,EAAGqmC,EAAK5Y,KACRqmB,EAAGzN,EAAKnC,MACRjT,EAAGoV,EAAKxV,QAEV9yB,KAAK6rL,QAAU,CACbv4H,EAAGhrB,EAAKQ,IACR7mC,EAAGqmC,EAAK5Y,KACRqmB,EAAGzN,EAAKnC,MACRjT,EAAGoV,EAAKxV,QAEV9yB,KAAK8rL,SAAWL,EACZA,EAAWvgL,GACX,CACE2oB,EAAG3oB,EAAE6kC,QACLnC,EAAG1iC,EAAE8kC,SAEXhwC,KAAK+rL,UAAY,CACfz4H,EAAGo4H,EAAW5iJ,IACd7mC,EAAGypL,EAAWh8J,KACdqmB,EAAG21I,EAAWvlJ,MACdjT,EAAGw4J,EAAW54J,QAIhB,IAAMooE,EAAOl7F,KAAK8kG,gBAClB9kG,KAAKk7F,KAAOA,GACZ,IAAAzzF,IAAGyzF,EAAM,cAAel7F,KAAKggE,OAC7B,IAAAv4D,IAAGyzF,EAAM,UAAWl7F,KAAK84J,gBACzB,IAAArxJ,IAAGyzF,EAAM,YAAal7F,KAAK2d,OAC3B,IAAAtb,YAAWrC,KAAK0jF,UAAY1jF,KAAK0jF,QAAQx4E,EAAG,CAAEgwF,KAAI,EAAEjjF,OAAM,EAAE7D,GAAE,EAAE+mF,QAxChDn7F,OAyChBA,KAAKirL,cAAa,GAClBjrL,KAAKggE,KAAK90D,EA/CgB,CAgD5B,EAMA,YAAA80D,KAAA,SAAKxzD,GACH,IAAMtB,EAAIsB,EACJ6vF,EAASr8F,KAAKq8F,OACdovF,EAAazrL,KAAKk2F,gBAClBqP,EAAakmF,EACfA,EAAWvgL,GACX,CACE2oB,EAAG3oB,EAAE6kC,QACLnC,EAAG1iC,EAAE8kC,SAEXhwC,KAAKulG,WAAaA,EAClBvlG,KAAK6iD,MAAQ,CACXhvB,EAAG0xE,EAAW1xE,EAAI7zB,KAAK8rL,SAAUj4J,EACjC+Z,EAAG23D,EAAW33D,EAAI5tC,KAAK8rL,SAAUl+I,GAEnC5tC,KAAKiB,KAAO,CACV4C,MAAOqH,EAAEqrD,SACTd,KAAMvqD,EAAE0jB,QACR4mC,IAAKtqD,EAAEmrD,QAGTr2D,KAAK6rL,QAAU7rL,KAAKgsL,KAAKhsL,MACzBA,KAAKisL,YAAW,GAGhB5vF,GAAUA,EAAOnxF,EACnB,EAMA,YAAAyS,KAAA,SAAKzS,GACH,IAAMkJ,EAAKpU,KAAKoU,GACV6D,EAASjY,KAAK6J,KACdqxF,EAAOl7F,KAAKk7F,MAAQl7F,KAAK8kG,iBAC/B,IAAA35F,KAAI+vF,EAAM,cAAel7F,KAAKggE,OAC9B,IAAA70D,KAAI+vF,EAAM,UAAWl7F,KAAK84J,gBAC1B,IAAA3tJ,KAAI+vF,EAAM,YAAal7F,KAAK2d,MAC5B3d,KAAKisL,YAAW,GAChBjsL,KAAKirL,gBACL,IAAA5oL,YAAWrC,KAAK4jF,QAAU5jF,KAAK4jF,MAAM14E,EAAG,CAAEgwF,KAAI,EAAEjjF,OAAM,EAAE7D,GAAE,EAAE+mF,QAASn7F,cAC9DA,KAAKk7F,IACd,EAKA,YAAA+wF,WAAA,SAAW1vF,GACT,IAAMnoF,EAAKpU,KAAKoU,GAEV6D,EAASjY,KAAK6J,KACdy+B,EAAOtoC,KAAK6rL,QACZvvF,EAAet8F,KAAKs8F,aACpBE,EAAkBx8F,KAAKksL,qBACrBhwF,EAA+CjkF,EAAM,WAAzCmkF,EAAmCnkF,EAAM,UAA9BojF,EAAwBpjF,EAAM,SAApBmjF,EAAcnjF,EAAM,UAG7D,IAAI,IAAA5V,YAAWi6F,GACbA,EAAaloF,EAAIk0B,EAAM,CACrBi0D,MAAK,EACLC,gBAAe,EACfrB,QAZYn7F,KAaZiY,OAAM,QAEH,CACL,IAAMk0K,EAAU/3K,EAAGuI,MACnBwvK,EAAQ9wF,GAAa/yD,EAAKyN,EAAIqmD,EAC9B+vF,EAAQ/wF,GAAc9yD,EAAKpV,EAAIgpE,EAC/BiwF,EAAQrjJ,IAAMR,EAAKgrB,EAAI4oC,EACvBiwF,EAAQz8J,KAAO4Y,EAAKrmC,EAAIm6F,C,CAG1Bp8F,KAAKsrL,iBACP,EAEA,YAAAA,gBAAA,SAAgBh+H,G,WAAA,IAAAA,IAAAA,EAAA,IACR,MAA0BttD,KAAxB6J,EAAI,OAAE42C,EAAS,YAAErsC,EAAE,KACnBuI,EAAU8jC,EAAU,OAEvB52C,EAAK2gL,sBAAwBp2K,GAM5Bk5C,EAAIi+H,YAAW5uK,EAAMC,QAAU,SAGf,QAAtB,EAAA5c,KAAKoqL,yBAAiB,mBAAG,CACvBh2K,GAAIqsC,EACJ06C,QAASn7F,KACT6J,KAAM,SACDA,GACAyjD,IAGT,EAMA,YAAA4+H,mBAAA,WACE,IAAIlhL,EAAWhL,KAAKgL,SAEpB,GAAKhL,KAAKw8F,gBAIV,IAAK,IAAI11E,KAAK9b,EACZ,GAAIA,EAAS8b,KAAO9mB,KAAKw8F,gBAAiB,OAAO11E,CAErD,EAMA,YAAAgyI,cAAA,SAAc5tJ,GAEM,KAAdA,EAAEgrD,UAEJl2D,KAAK6rL,QAAU7rL,KAAKi8F,SACpBj8F,KAAK2d,KAAKzS,GAEd,EAMA,YAAAsgL,gBAAA,SAAgBtgL,GACd,IAAMkJ,EAAKlJ,EAAEqb,OAETvmB,KAAKkrL,UAAU92K,IACjBpU,KAAKw8F,gBAAkBpoF,EACvBpU,KAAKgc,MAAM9Q,IACFkJ,IAAOpU,KAAKoU,YACdpU,KAAKw8F,gBACZx8F,KAAK+hE,OAET,EAMA,YAAAiqH,KAAA,SAAKtzK,GACH,IAAIhR,EACEmC,EAAO7J,KAAK6J,MAAQ,CAAC,EACrBkqG,EAAOlqG,EAAKkqG,KACZ9X,EAAWj8F,KAAKi8F,SAChBouF,EAASxgL,EAAKwgL,OACdC,EAASzgL,EAAKygL,OACdnnI,EAASzqC,EAAKmqC,MAAOhvB,EACrBuvB,EAAS1qC,EAAKmqC,MAAOjV,EACrBw+I,EAAUpsL,KAAK+rL,UAAWh2I,EAC1Bs2I,EAAUrsL,KAAK+rL,UAAW74J,EAC1BkpE,EAAYp8F,KAAK6J,KAAKuyF,UACtBF,EAAal8F,KAAK6J,KAAKqyF,WACvBowF,EAAuB,MAAdlwF,EAAqBH,EAASlmD,EAAI,IAAOq2I,EAAUnwF,EAASlmD,EACrEw2I,EAAwB,MAAfrwF,EAAsBD,EAAS/oE,EAAI,IAAOm5J,EAAUpwF,EAAS/oE,EACtEib,EAAe,CACnBmlB,EAAG2oC,EAAS3oC,EACZrxD,EAAGg6F,EAASh6F,EACZ8zC,EAAGu2I,EACHp5J,EAAGq5J,GAGL,GAAK7zK,EAAL,CAEA,IAAIlR,EAAOkR,EAAKizK,aACXnkL,EAAK3C,QAAQ,OAChB6C,EACgB,MAAd00F,GACI,IAAA0X,iBAAiBw4E,EAASnpI,EAAS4wD,GAAQq4E,EAAW,IAAK,MAC3D,IAAAt4E,gBAAew4E,EAASnpI,EAAS4wD,EAAMA,GAC7CrsG,EAAQwE,KAAKC,IAAIk+K,EAAQ3iL,GACzB4iL,IAAW5iL,EAAQwE,KAAKiE,IAAIm6K,EAAQ5iL,IACpCymC,EAAI4H,EAAIruC,IAELF,EAAK3C,QAAQ,OAChB6C,EACiB,MAAfw0F,GACI,IAAA4X,iBAAiBy4E,EAASnpI,EAAS2wD,GAAQs4E,EAAW,IAAK,MAC3D,IAAAv4E,gBAAey4E,EAASnpI,EAAS2wD,EAAMA,GAC7CrsG,EAAQwE,KAAKC,IAAIk+K,EAAQ3iL,GACzB4iL,IAAW5iL,EAAQwE,KAAKiE,IAAIm6K,EAAQ5iL,IACpCymC,EAAIjb,EAAIxrB,IAELF,EAAK3C,QAAQ,OAChB6C,EACgB,MAAd00F,GACI,IAAA0X,iBAAiBw4E,EAASnpI,EAAS4wD,GAAQq4E,EAAW,IAAK,MAC3D,IAAAt4E,gBAAew4E,EAASnpI,EAAS4wD,EAAMA,GAC7CrsG,EAAQwE,KAAKC,IAAIk+K,EAAQ3iL,GACzB4iL,IAAW5iL,EAAQwE,KAAKiE,IAAIm6K,EAAQ5iL,IACpCymC,EAAI4H,EAAIruC,IAELF,EAAK3C,QAAQ,OAChB6C,EACiB,MAAfw0F,GACI,IAAA4X,iBAAiBy4E,EAASnpI,EAAS2wD,GAAQs4E,EAAW,IAAK,MAC3D,IAAAv4E,gBAAey4E,EAASnpI,EAAS2wD,EAAMA,GAC7CrsG,EAAQwE,KAAKC,IAAIk+K,EAAQ3iL,GACzB4iL,IAAW5iL,EAAQwE,KAAKiE,IAAIm6K,EAAQ5iL,IACpCymC,EAAIjb,EAAIxrB,GAIV,IAAI8kL,EAAc3iL,EAAKitI,cAAgBp+H,EAAKzX,KAAM4C,MAAQ6U,EAAKzX,KAAM4C,MACrE,GAAI2D,EAAK3C,QAAQ,KAAO,GAAK2nL,EAAa,CACxC,IAAIC,EAAQxwF,EAASlmD,EAAIkmD,EAAS/oE,EAC9Bib,EAAI4H,EAAI5H,EAAIjb,EAAIu5J,EAClBt+I,EAAIjb,EAAIhnB,KAAKikC,MAAMhC,EAAI4H,EAAI02I,GAE3Bt+I,EAAI4H,EAAI7pC,KAAKikC,MAAMhC,EAAIjb,EAAIu5J,E,CAW/B,IAAK,IAAMprL,KAPNmG,EAAK3C,QAAQ,OAChBspC,EAAIlsC,GAAKg6F,EAASlmD,EAAI5H,EAAI4H,IAEvBvuC,EAAK3C,QAAQ,OAChBspC,EAAImlB,GAAK2oC,EAAS/oE,EAAIib,EAAIjb,GAGVib,EAAK,CACrB,IAAMtuC,EAAIwB,EACV8sC,EAAItuC,GAAK6nC,SAAS,UAAGyG,EAAItuC,IAAM,G,CAGjC,OAAOsuC,CA/DU,CAgEnB,EACF,EA3fA,G,8vBClOA,YAME,WAAY+0C,GAAZ,MACE,YAAMA,EAAI,UAAQ,K,OANpB,EAAA2b,OAAS,GACT,EAAAtI,QAAU,GACV,EAAA2+B,QAAUA,GAAA,EACV,EAAA5uD,QAAU,MAAK,G,CAIf,CAGF,OAXyC,QAUvC,YAAAj3D,QAAA,WAAW,EACb,EAXA,CAAyC,GCHzC,IAAI81B,GACFjY,GAAY,CAAC,EACbw/J,GAAQ,CACN,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,GAENC,GAAS,MAETC,GAAa,CACX,IAAK,GACL/oL,MAAO,GACP,IAAK,GACL2xD,IAAK,GACLyI,OAAQ,GACR,IAAK,GACLxI,KAAM,GACNo3H,QAAS,GACT,IAAK,GACLr2F,QAAS,IAGXs2F,GAAO,CACLC,UAAW,EACXC,IAAK,EACLtkL,MAAO,GACP65D,MAAO,GACP0qH,OAAQ,GACRC,IAAK,GACL1/K,OAAQ,GACRsiC,MAAO,GACPpgB,KAAM,GACNmtC,GAAI,GACJltC,MAAO,GACPw9J,KAAM,GACNC,IAAK,GACLrqE,OAAQ,GACRsqE,KAAM,GACNrrK,IAAK,GACLsrK,OAAQ,GACRC,SAAU,GACV,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,KAAM,KAERviK,GAAO,SAAU6I,GACf,OAAOi5J,GAAKj5J,IAAMA,EAAE1K,cAAcO,WAAW,EAC/C,EACA8jK,GAAY,GAEd,IAAKroJ,GAAI,EAAGA,GAAI,GAAIA,KAAK2nJ,GAAK,IAAM3nJ,IAAK,IAAMA,GAG/C,SAASrkC,GAAMmP,EAAOw2E,GAEpB,IADA,IAAI5mF,EAAIoQ,EAAMtP,OACPd,QAASoQ,EAAMpQ,KAAO4mF,EAAM,OAAO5mF,EAC1C,OAAQ,CACV,CAGA,SAAS4tL,GAAahhL,EAAIC,GACxB,GAAID,EAAG9L,QAAU+L,EAAG/L,OAAQ,OAAO,EACnC,IAAK,IAAId,EAAI,EAAGA,EAAI4M,EAAG9L,OAAQd,IAC7B,GAAI4M,EAAG5M,KAAO6M,EAAG7M,GAAI,OAAO,EAE9B,OAAO,CACT,CAEA,IAAI6tL,GAAc,CAChB,GAAI,WACJ,GAAI,SACJ,GAAI,UACJ,GAAI,WAGN,SAASC,GAAkBh7K,GACzB,IAAKwyB,MAAKunJ,GAAOA,GAAMvnJ,IAAKxyB,EAAM+6K,GAAYvoJ,IAChD,CAuDA,SAASyoJ,GAAcj7K,GACrB,IACEwyB,EADE9jC,EAAMsR,EAAMujD,QAEdr2D,EAAIiB,GAAM0sL,GAAWnsL,GAQvB,GALIxB,GAAK,GACP2tL,GAAU5oL,OAAO/E,EAAG,GAGX,IAAPwB,GAAoB,KAAPA,IAAYA,EAAM,IAC/BA,KAAOqrL,GAET,IAAKvnJ,KADLunJ,GAAMrrL,IAAO,EACHurL,GAAgBA,GAAWznJ,IAAM9jC,IAAKwsL,GAAU1oJ,IAAK,EAEnE,CAEA,SAAS2oJ,KACP,IAAK3oJ,MAAKunJ,GAAOA,GAAMvnJ,KAAK,EAC5B,IAAKA,MAAKynJ,GAAYiB,GAAU1oJ,KAAK,CACvC,CAGA,SAAS0oJ,GAAUxsL,EAAK0sL,EAAO9+K,GAC7B,IAAIhO,EAAM+sL,EACV/sL,EAAOgtL,GAAQ5sL,QACAgE,IAAX4J,IACFA,EAAS8+K,EACTA,EAAQ,OAIV,IAAK,IAAIluL,EAAI,EAAGA,EAAIoB,EAAKN,OAAQd,IAE/BmuL,EAAO,IACP3sL,EAAMJ,EAAKpB,GAAGoK,MAAM,MACZtJ,OAAS,IACfqtL,EAAOE,GAAQ7sL,GACfA,EAAM,CAACA,EAAIA,EAAIV,OAAS,KAG1BU,EAAMA,EAAI,IACVA,EAAM2pB,GAAK3pB,MAEE6rB,KAAYA,GAAU7rB,GAAO,IAC1C6rB,GAAU7rB,GAAKsD,KAAK,CAClBwpL,SAAUltL,EAAKpB,GACfkuL,MAAOA,EACP9+K,OAAQA,EACR5N,IAAKJ,EAAKpB,GACVmuL,KAAMA,GAGZ,CA2DA,IAAK7oJ,MAAKynJ,GAAYiB,GAAU1oJ,KAAK,EAOrC,SAASipJ,KACP,OAAOzB,IAAU,KACnB,CAgBA,SAASsB,GAAQ5sL,GACf,IAAIJ,EAMJ,MAH6B,KAD7BA,GADAI,EAAMA,EAAIoO,QAAQ,MAAO,KACdxF,MAAM,MACRhJ,EAAKN,OAAS,KACrBM,EAAKA,EAAKN,OAAS,IAAM,KAEpBM,CACT,CAGA,SAASitL,GAAQ7sL,GAEf,IADA,IAAI2sL,EAAO3sL,EAAIf,MAAM,EAAGe,EAAIV,OAAS,GAC5B0tL,EAAK,EAAGA,EAAKL,EAAKrtL,OAAQ0tL,IAAML,EAAKK,GAAMzB,GAAWoB,EAAKK,IACpE,OAAOL,CACT,CAGA,SAASvgF,GAAS/qG,EAAQiQ,EAAO1D,GAC3BvM,EAAO4a,iBAAkB5a,EAAO4a,iBAAiB3K,EAAO1D,GAAQ,GAC3DvM,EAAO6a,aACd7a,EAAO6a,YAAY,KAAO5K,GAAO,WAC/B1D,EAAOlP,OAAO4S,MAChB,GACJ,CAGAk7K,GAAUS,SAjDV,SAAkBP,GAChBpB,GAASoB,GAAS,KACpB,EAgDAF,GAAUO,SAAWA,GACrBP,GAAUU,YA1CV,SAAqBR,GACnB,IAAI1sL,EAAK2J,EAAUnL,EAEnB,IAAKwB,KAAO6rB,GAEV,IADAliB,EAAWkiB,GAAU7rB,GAChBxB,EAAI,EAAGA,EAAImL,EAASrK,QACnBqK,EAASnL,GAAGkuL,QAAUA,EAAO/iL,EAASpG,OAAO/E,EAAG,GAC/CA,GAGX,EAiCAguL,GAAU53K,OA9DV,SAAgBtD,GACd,IAAIc,GAAWd,EAAM4T,QAAU5T,EAAM8b,YAAYhb,QAEjD,QAAoB,SAAXA,GAAiC,UAAXA,GAAkC,YAAXA,EACxD,EA2DAo6K,GAAUW,UA1EV,SAAmBt4H,GAIjB,MAHsB,iBAAXA,IACTA,EAAUlrC,GAAKkrC,KAEoB,GAA9Bp1D,GAAM0sL,GAAWt3H,EAC1B,EAsEA23H,GAAUY,mBApEV,WACE,OAAOjB,GAAUltL,MAAM,EACzB,EAmEAutL,GAAUhhL,OAlHV,SAAmBxL,EAAK0sL,GACtB,IAAIW,EACFztL,EAEApB,EACA4L,EACAzK,EAHAgtL,EAAO,GAOT,IAFAU,EAAeT,GAAQ5sL,GAElBoK,EAAI,EAAGA,EAAIijL,EAAa/tL,OAAQ8K,IAAK,CAaxC,IAZAxK,EAAOytL,EAAajjL,GAAGxB,MAAM,MAEpBtJ,OAAS,IAChBqtL,EAAOE,GAAQjtL,IAGjBI,EAAMJ,EAAKA,EAAKN,OAAS,GACzBU,EAAM2pB,GAAK3pB,QAEGgE,IAAV0oL,IACFA,EAAQK,OAELlhK,GAAU7rB,GACb,OAEF,IAAKxB,EAAI,EAAGA,EAAIqtB,GAAU7rB,GAAKV,OAAQd,KACrCmB,EAAMksB,GAAU7rB,GAAKxB,IAEbkuL,QAAUA,GAASN,GAAazsL,EAAIgtL,KAAMA,KAChD9gK,GAAU7rB,GAAKxB,GAAK,CAAC,E,CAI7B,EAiFAguL,GAAU7iL,SAAWkiB,GACrB2gK,GAAU7rI,KAAO,SAAAg2C,GAGfyV,GAASzV,EAAItjF,SAAU,WAAW,SAAU/B,IAnO9C,SAAkBA,GAChB,IAAItR,EAAKqK,EAASy5B,EAAGtlC,EAAG8uL,EAAgBZ,EASxC,GARA1sL,EAAMsR,EAAMujD,SAEkB,GAA1Bp1D,GAAM0sL,GAAWnsL,IACnBmsL,GAAU7oL,KAAKtD,GAIN,IAAPA,GAAoB,KAAPA,IAAYA,EAAM,IAC/BA,KAAOqrL,GAGT,IAAKvnJ,KAFLunJ,GAAMrrL,IAAO,EAEHurL,GAAgBA,GAAWznJ,IAAM9jC,IAAKwsL,GAAU1oJ,IAAK,QAOjE,GAJAwoJ,GAAkBh7K,GAIbk7K,GAAU53K,OAAOrV,KAAKZ,KAAM2S,IAG3BtR,KAAO6rB,GAKb,IAHA6gK,EAAQK,KAGHvuL,EAAI,EAAGA,EAAIqtB,GAAU7rB,GAAKV,OAAQd,IAIrC,IAHA6L,EAAUwhB,GAAU7rB,GAAKxB,IAGbkuL,OAASA,GAA0B,OAAjBriL,EAAQqiL,MAAgB,CAGpD,IAAK5oJ,KADLwpJ,EAAiBjjL,EAAQsiL,KAAKrtL,OAAS,EAC7B+rL,KACFA,GAAMvnJ,IAAMrkC,GAAM4K,EAAQsiL,MAAO7oJ,IAAM,GAAOunJ,GAAMvnJ,KAAkC,GAA5BrkC,GAAM4K,EAAQsiL,MAAO7oJ,MACnFwpJ,GAAiB,IAEO,GAAvBjjL,EAAQsiL,KAAKrtL,QAAgB+rL,GAAM,KAAQA,GAAM,KAAQA,GAAM,KAAQA,GAAM,OAAQiC,IACjD,IAAnCjjL,EAAQuD,OAAO0D,EAAOjH,KACpBiH,EAAM4a,eAAgB5a,EAAM4a,iBAC3B5a,EAAMwb,aAAc,EACrBxb,EAAM0b,iBAAiB1b,EAAM0b,kBAC7B1b,EAAM2b,eAAc3b,EAAM2b,cAAe,G,CAKvD,CAmLIsgK,CAASj8K,EACX,IACA86F,GAASzV,EAAItjF,SAAU,QAASk5K,IAChCngF,GAASzV,EAAK,QAAS81F,GACzB,EAEA,YCnQA,SA1C8B,CAC5BhnL,SAAU,CACR,YAAa,CACX7F,KAAM,cACNyK,QAAS,aAEX,YAAa,CACXzK,KAAM,0BACNyK,QAAS,aAEX,YAAa,CACXzK,KAAM,cACNyK,QAAS,aAEX,aAAc,CACZzK,KAAM,cACNyK,QAAS,cAEX,sBAAuB,CACrBzK,KAAM,IACNyK,QAAS,uBAEX,sBAAuB,CACrBzK,KAAM,IACNyK,QAAS,uBAEX,uBAAwB,CACtBzK,KAAM,IACNyK,QAAS,wBAEX,sBAAuB,CACrBzK,KAAM,IACNyK,QAAS,uBAEX,wBAAyB,CACvBzK,KAAM,oBACNyK,QAAS,wBACT7B,KAAM,CAAE02D,SAAS,M,+tBCTvB,IAAAi+B,WAAYqwF,GAAU7sI,KAAKjiD,QAE3B,mBAIE,WAAYmjF,GAAZ,MACE,YAAMA,EAAI,UAAW,KAAS,K,OAJhC,EAAA2rG,UAAiBA,GAKf,EAAKC,QAAU,CAAC,E,CAClB,CAqIF,OA5I2C,QASzC,YAAAjjE,OAAA,WACE,IAAMkjE,EAAU/uL,KAAKiY,OAAOnR,SAE5B,IAAK,IAAIwD,KAAMykL,EAAS,CACtB,IAAMrnL,EAAQqnL,EAAQzkL,GACtBtK,KAAKsE,IAAIgG,EAAI5C,EAAMzG,KAAMyG,EAAMgE,QAAShE,EAAMmC,MAAQ,CAAC,E,CAE3D,EAkCA,YAAAvF,IAAA,SAAIgG,EAAkBrJ,EAAsByK,EAA4B7B,QAAA,IAAAA,IAAAA,EAAA,IAC9D,IAAAq5E,EAAOljF,KAAI,GACb01D,EAAMwtB,EAAGiC,SACT5C,EAASW,EAAGzwB,YACZgwB,EAASS,EAAGsB,OACZ5uB,EAAiB,CAAEtrD,GAAE,EAAErJ,KAAI,EAAEyK,QAAO,GAsB1C,OArBW1L,KAAK8uL,QAAQxkL,IAClBtK,KAAKoF,OAAOkF,GAClBtK,KAAK8uL,QAAQxkL,GAAMsrD,EACnBi5H,GACE5tL,GACA,SAACiK,EAAQgoB,GAEP,IAAMo6B,EAAM,CAAE36C,MAAOzH,EAAGgoB,EAAC,GACnB87J,GAAa,IAAA99K,UAASxF,GAAWgqD,EAAI/xD,IAAI+H,GAAWA,EAE1D,IADmBw3E,EAAG4W,cAAgBvX,EAAOiC,OAAO0yC,kBACnCrtH,EAAK40C,MAAO,CAC3B50C,EAAK02D,SAAWkiB,EAAOC,gBAAgBn1D,eAAeriB,IACtD,IAAA7I,YAAW2sL,GAAcA,EAAWzsG,EAAQ,EAAGj1B,GAAOoI,EAAIkgC,WAAWo5F,EAAY1hI,GACjF,IAAM5sD,EAAO,CAAC4J,EAAI4oB,EAAEi7J,SAAUjjL,GAC9Bg4E,EAAGp/E,QAAO,MAAVo/E,EAAE,IAAS,eAAkBxiF,GAAI,IACjCwiF,EAAGp/E,QAAO,MAAVo/E,EAAE,IAAS,sBAAe54E,IAAS5J,GAAI,G,CAE3C,QACA2E,GAEF69E,EAAGp/E,QAAQ,aAAc8xD,GAClBA,CACT,EAUA,YAAAjyD,IAAA,SAAI2G,GACF,OAAOtK,KAAK8uL,QAAQxkL,EACtB,EASA,YAAAqhF,OAAA,WACE,OAAO3rF,KAAK8uL,OACd,EAUA,YAAA1pL,OAAA,SAAOkF,GACG,IAAA44E,EAAOljF,KAAI,GACb41D,EAAS51D,KAAK2D,IAAI2G,GAExB,GAAIsrD,EAOF,cANO51D,KAAK8uL,QAAQxkL,GACpBsrD,EAAO30D,KAAKgJ,MAAM,MAAMwL,SAAQ,SAAA0vB,GAE9B0pJ,GAAUhiL,OAAOs4B,EAAEmjD,OACrB,IACApF,SAAAA,EAAIp/E,QAAQ,gBAAiB8xD,GACtBA,CAEX,EAMA,YAAAq5H,UAAA,sBAGE,OAFAjmK,OAAO/nB,KAAKjB,KAAK8uL,SAASr5K,SAAQ,SAAAmgD,GAAU,SAAKxwD,OAAOwwD,EAAZ,IAC5Ci5H,GAAU7jL,SAAW,CAAC,EACfhL,IACT,EAEA,YAAAqP,QAAA,WACErP,KAAKivL,YACLjvL,KAAK8uL,QAAU,CAAC,CAClB,EACF,EA5IA,CAA2C,G,YCnB3C,SAT4B,CAC1B5qG,YAAa,OACbjmE,MAAO,GACPc,QAAS,GACTmwK,UAAU,EACVr+F,QAAQ,EACRlqF,OAAQ,CAAC,G,ogBC/BX,yB,8CAiBA,QAjBmC,QACjC,YAAAG,SAAA,WACE,MAAO,CACLmX,MAAO,GACPc,QAAS,GACT/X,WAAY,CAAC,EACbmW,MAAM,EAEV,EAEA,YAAAA,KAAA,WACEnd,KAAKyF,IAAI,QAAQ,EACnB,EAEA,YAAA2X,MAAA,WACEpd,KAAKyF,IAAI,QAAQ,EACnB,EACF,EAjBA,CAAmC,G,kvBCAnC,YA0BE,WAAY0wB,GAAZ,MACE,YAAMA,IAAE,KACFhxB,EAAQ,EAAKA,M,OACnB,EAAKqF,SAASrF,EAAO,cAAe,EAAKgqL,YACzC,EAAK3kL,SAASrF,EAAO,eAAgB,EAAKiqL,aAC1C,EAAK5kL,SAASrF,EAAO,iBAAkB,EAAK0uI,e,CAC9C,CA6GF,OA7IuC,QACrC,YAAAl3B,SAAA,SAAS,G,IAAE14B,EAAG,MAAEV,EAAI,OAAExkE,EAAO,UAAEd,EAAK,QAClC,MAAO,uBAAegmE,EAAG,kBAAUV,EAAI,kBAAUA,EAAI,4CACrCU,EAAG,2CACDA,EAAG,mBAAUhmE,EAAK,wCAClBgmE,EAAG,wFAELA,EAAG,yCACJA,EAAG,eAAMllE,EAAO,wGAIjBklE,EAAG,6CACnB,EAEA,YAAAv6E,OAAA,WACE,MAAO,CACLuiF,MAAO,UACP,2BAA4B,OAEhC,EAcA,YAAAmF,QAAA,SAAQlmF,GACMlL,KAAKiY,OAAOi3K,UACjBhkL,EAAEqb,SAAWvmB,KAAKoU,IAAMpU,KAAK2zF,MACtC,EAOA,YAAA07F,aAAA,WAEE,OADKrvL,KAAKsvL,aAAYtvL,KAAKsvL,WAAatvL,KAAK2T,IAAIC,KAAK,IAAM5T,KAAKikF,IAAM,cAChEjkF,KAAKsvL,UACd,EAMA,YAAAp1C,WAAA,WACE,IAAMj2D,EAAMjkF,KAAKikF,IAMjB,OAJKjkF,KAAKuvL,WACRvvL,KAAKuvL,SAAWvvL,KAAK2T,IAAIC,KAAK,WAAIqwE,EAAG,oBAAYA,EAAG,OAG/CjkF,KAAKuvL,QACd,EAOA,YAAAC,SAAA,SAAS3lL,GAEP,YAFO,IAAAA,IAAAA,EAAA,IACF7J,KAAKyvL,SAAQzvL,KAAKyvL,OAASzvL,KAAK2T,IAAIC,KAAK,IAAM5T,KAAKikF,IAAM,UACxDp6E,EAAKd,EAAI/I,KAAKyvL,OAASzvL,KAAKyvL,OAAO9rL,IAAI,EAChD,EAMA,YAAAkwI,cAAA,WACE,IAAI90H,EAAU/e,KAAKk6I,aACb3nH,EAAWxT,EAAQwT,WACnBy4D,EAAOhrF,KAAKqvL,eACZvyK,EAAO9c,KAAKmF,MAAMxB,IAAI,WAC5B4uB,EAAS5xB,QAAUqqF,EAAKgI,OAAOzgE,GAC/BxT,EAAQizB,QAAQghD,OAAOl2E,EACzB,EAMA,YAAAsyK,YAAA,WACE,IAAMnxK,EAAQje,KAAKwvL,SAAS,CAAEzmL,GAAG,IAEjCkV,GAASA,EAAM+zB,QAAQghD,OAAOhzF,KAAKmF,MAAMxB,IAAI,SAC/C,EAMA,YAAAwrL,WAAA,WACEnvL,KAAKoU,GAAGuI,MAAMC,QAAU5c,KAAKmF,MAAMxB,IAAI,QAAU,GAAK,MACxD,EAMA,YAAAgwF,KAAA,WACE3zF,KAAKmF,MAAMiY,OACb,EAMA,YAAAs2E,KAAA,WACE1zF,KAAKmF,MAAMgY,MACb,EAEA,YAAAuyK,WAAA,SAAWloL,GACH,MAAmBxH,KAAjBikF,EAAG,MAAEtwE,EAAG,MAAES,EAAE,KAEdu7K,EAAW,GAAGrvL,MAAMM,KAAKwT,EAAGpN,YAAYlC,KAAI,SAAAjF,GAAK,OAAAA,EAAE8J,IAAF,IACvDgK,EAAIq2F,WAAW2lF,EAASlgI,KAAK,MAC7B97C,EAAInM,KAAK,SACHA,GAAQ,CAAC,GAAE,CACf2lF,MAAO,UAAGlJ,EAAG,qBAAcz8E,GAAQA,EAAK2lF,OAAU,IAAK7E,SAE3D,EAEA,YAAAz0E,OAAA,WACE,IAAMO,EAAKpU,KAAK2T,IACV3S,EAAMhB,KAAKmF,MAAMmI,SAMvB,OALAtM,EAAIijF,IAAMjkF,KAAKikF,IACfjjF,EAAIuiF,KAAOvjF,KAAKujF,KAChBnvE,EAAG8hE,KAAKl2E,KAAK28G,SAAS37G,IACtBhB,KAAK0vL,aACL1vL,KAAKmvL,aACEnvL,IACT,EACF,EA7IA,CAAuC,I,ogBC4CvC,YAQE,WAAYkjF,GAAZ,MACE,YAAMA,EAAI,QAAS,KAAS,KAiB5B,OAfA,EAAK/9E,MAAQ,IAAI,GAAO,GACxB,EAAKA,MAAMsC,GAAG,eAAe,SAAC+J,EAAWyxE,GACvCC,EAAGp/E,QAAQ,gBAASm/E,EAAS,OAAS,SACxC,IACA,EAAK99E,MAAMsC,GACT,UACA,IAAA6/E,WAAS,WACP,IAAM5uE,EAAO,EAAKk3K,UACV/+F,EAAW,EAAK54E,OAAM,QAE9B,IAAA5V,YAAWwuF,IAAWA,EAAOn4E,GAC7BwqE,EAAGp/E,QAAQ,QAAS4U,EACtB,GAAG,IAGE,CACT,CAgMF,OA3NyC,QA6BvC,YAAAk3K,QAAA,sBACQC,EAAO7vL,KAAKwvL,WACZh+D,EAAMxxH,KAAKk6I,aACX,EAAuBl6I,KAAKmF,MAAM6B,WACxC,MAAO,CACLmW,KAFU,OAGVnW,WAHsB,aAItBiX,OAAO,IAAA/M,UAAS2+K,IAAQ,SAAWA,GAAQA,EAE3C9wK,SAAS,IAAA7N,UAASsgH,IAAO,SAAWA,GAAOA,EAAI7tH,IAAM6tH,EAAI7tH,IAAI,GAAK6tH,EAClEp0G,MAAO,WACL,EAAKA,OACP,EAEJ,EAEA,YAAAo5H,WAAA,SAAWl0G,GACT,IAAMluB,EAAKkuB,EAAKn9B,MAAM8S,OAAO7D,IAAMkuB,EAAKluB,GAClChQ,EAAMpE,KAAK6T,SACjBzP,IAAOgQ,SAAAA,EAAIqQ,YAAYrgB,GACzB,EAgBA,YAAA+Y,KAAA,SAAKtT,QAAA,IAAAA,IAAAA,EAAA,IACH,IAAMrC,EAAOqC,EAAK7C,YAAc,CAAC,EAMjC,OALA6C,EAAKoU,OAASje,KAAK8vL,SAASjmL,EAAKoU,OACjCpU,EAAKkV,SAAW/e,KAAKqtF,WAAWxjF,EAAKkV,SACrC/e,KAAKmF,MAAMM,IAAI,aAAc+B,GAC7BxH,KAAKmF,MAAMgY,OACXnd,KAAK2sF,OAAS3sF,KAAK2sF,MAAM+iG,WAAWloL,GAC7BxH,IACT,EAQA,YAAAod,MAAA,WAEE,OADApd,KAAKmF,MAAMiY,QACJpd,IACT,EAYA,YAAA+wF,UAAA,SAAU6gD,GAER,OADA5xI,KAAKkjF,GAAGr3E,KAAK,cAAe+lI,GACrB5xI,IACT,EAYA,YAAA+vL,SAAA,SAASn+C,GAEP,OADA5xI,KAAKkjF,GAAGr3E,KAAK,aAAc+lI,GACpB5xI,IACT,EAQA,YAAA45K,OAAA,WACE,QAAS55K,KAAKmF,MAAMxB,IAAI,OAC1B,EAcA,YAAAmsL,SAAA,SAAS7xK,GAEP,OADAje,KAAKmF,MAAMM,IAAI,QAASwY,GACjBje,IACT,EAQA,YAAAwvL,SAAA,WACE,OAAOxvL,KAAKmF,MAAMxB,IAAI,QACxB,EAcA,YAAA0pF,WAAA,SAAWtuE,GAGT,OAFA/e,KAAKmF,MAAMM,IAAI,UAAW,KAC1BzF,KAAKmF,MAAMM,IAAI,UAAWsZ,GACnB/e,IACT,EAQA,YAAAk6I,WAAA,WACE,OAAOl6I,KAAKmF,MAAMxB,IAAI,UACxB,EAOA,YAAAqsL,aAAA,W,MACE,OAAiB,QAAV,EAAAhwL,KAAK2sF,aAAK,eAAEutD,aAAav2I,IAAI,EACtC,EAOA,YAAAoiF,SAAA,WACE,OAAO/lF,KAAKmF,KACd,EAOA,YAAA0O,OAAA,W,MACE,IAAI7T,KAAKiY,OAAO44E,OAAhB,CACA,IAAMx9E,EAAO,UAAiBrT,KAAKiY,OAAOtR,QACpCyN,EAAKpU,KAAK2sF,OAAS3sF,KAAK2sF,MAAMv4E,GAMpC,OALApU,KAAK2sF,MAAQ,IAAIt5E,EAAK,CACpBe,GAAE,EACFjP,MAAOnF,KAAKmF,MACZ8S,OAAQjY,KAAKiY,SAEE,QAAV,EAAAjY,KAAK2sF,aAAK,eAAE94E,SAASO,EARE,CAShC,EAEA,YAAA/E,QAAA,W,MACY,QAAV,EAAArP,KAAK2sF,aAAK,SAAEvnF,QACd,EACF,EA3NA,CAAyC,GC7CzC,IAAM6qL,GAAM,gBACNC,GAAO,kBACPC,GAAM,UACNC,GAAM,UACNC,GAAM,cACNC,GAAM,cACNC,GAAM,aACNC,GAAM,UAuGZ,SA7E6B,CAC3BtsG,YAAa,MACbp9E,SAAU,CACR,CACEwD,GAAI,WACJ21D,QAAS,CAAC,CAAC,IAEb,CACE31D,GAAI,UACJ21D,QAAS,CACP,CACE/gB,QAAQ,EACR50C,GAAI2lL,GACJr7K,UAAW,iBACX4hF,QAAS,yBACTzsF,QAASkmL,GACTjpL,WAAY,CAAEiX,MAAO,oBAEvB,CACE3T,GAAIkmL,GACJ57K,UAAW,YACX4hF,QAASg6F,GACTzmL,QAASymL,GACTxpL,WAAY,CAAEiX,MAAO,YAEvB,CACE3T,GAAIimL,GACJ37K,UAAW,mBACX4hF,QAAS+5F,GACTxmL,QAASwmL,GACTvpL,WAAY,CAAEiX,MAAO,eAEvB,CACE3T,GAAI4lL,GACJt7K,UAAW,aACX4hF,QAAS05F,GACTlpL,WAAY,CAAEiX,MAAO,gBAI3B,CACE3T,GAAI,QACJ21D,QAAS,CACP,CACE31D,GAAI6lL,GACJv7K,UAAW,oBACX4hF,QAAS25F,GACTjxI,QAAQ,EACRuxI,WAAW,EACXzpL,WAAY,CAAEiX,MAAO,uBAEvB,CACE3T,GAAI8lL,GACJx7K,UAAW,YACX4hF,QAAS45F,GACTK,WAAW,EACXzpL,WAAY,CAAEiX,MAAO,aAEvB,CACE3T,GAAI+lL,GACJz7K,UAAW,aACX4hF,QAAS65F,GACTI,WAAW,EACXzpL,WAAY,CAAEiX,MAAO,uBAEvB,CACE3T,GAAIgmL,GACJ17K,UAAW,iBACX4hF,QAAS85F,GACTG,WAAW,EACXzpL,WAAY,CAAEiX,MAAO,oB,ogBCrG/B,YAkDE,WAAYxe,EAAsBoD,GAAlC,MACE,YAAMpD,EAAQoD,IAAQ,K,OAClB,EAAKc,IAAI,WAAWhD,QACtB,EAAK8E,IAAI,UAAW,IAAI,GAAQ,EAAKhG,OAAQ,EAAKkE,IAAI,a,CAE1D,CACF,OAxDoC,QAClC,YAAAmD,SAAA,WACE,MAAO,CACLwD,GAAI,GACJoiE,MAAO,GACPj5D,QAAS,OACTmB,UAAW,GACX4hF,QAAS,GACTzsF,QAAS,GACTk2D,QAAS,GACTj5D,WAAY,CAAC,EACbnE,QAAS,CAAC,EACVq8C,QAAQ,EACRqf,UAAU,EACVkyH,WAAW,EACXC,mBAAmB,EACnBC,oBAAoB,EACpBtiG,SAAS,EAEb,EAEA,sBAAI,wBAAS,C,IAAb,WACE,OAAOruF,KAAK2D,IAAI,YAClB,E,gCAEA,sBAAI,sBAAO,C,IAAX,WACE,OAAO3D,KAAK2D,IAAI,UAClB,E,gCAEA,sBAAI,qBAAM,C,IAAV,WACE,OAAO3D,KAAK2D,IAAI,SAClB,E,IACA,SAAW2xF,GACTt1F,KAAKyF,IAAI,SAAU6vF,EACrB,E,gCAEA,sBAAI,wBAAS,C,IAAb,WACE,OAAOt1F,KAAK2D,IAAI,YAClB,E,gCAEA,sBAAI,gCAAiB,C,IAArB,WACE,OAAO3D,KAAK2D,IAAI,oBAClB,E,gCACA,sBAAI,iCAAkB,C,IAAtB,WACE,OAAO3D,KAAK2D,IAAI,qBAClB,E,gCACA,sBAAI,sBAAO,C,IAAX,WACE,OAAO3D,KAAK2D,IAAI,UAClB,E,gCAQF,EAxDA,CAAoC,G,2fCApC,eACE,WAAYlE,EAAsB+D,G,OAChC,YAAM/D,EAAQ+D,EAAQ,KAAO,IAC/B,CA+DF,OAlEqC,QAWnC,YAAAotL,uBAAA,SAAuBC,EAAgBjrK,GACrC5lB,KAAKyV,SAAQ,SAACtQ,EAAOrE,GACfqE,IAAU0rL,IACZ1rL,EAAMM,IAAI,UAAU,GAChBmgB,GAAKzgB,EAAMxB,IAAI,WAAWhD,QAAQwE,EAAMxB,IAAI,WAAWitL,uBAAuBC,EAAQjrK,GAE9F,GACF,EAQA,YAAAkrK,cAAA,SAAcrwL,EAAcwkF,GAC1B,IAAMl7E,EAAUtJ,GAAO,GACvBT,KAAKyV,SAAQ,SAAAtQ,GACPA,EAAMxB,IAAI,YAAcoG,GAAW5E,IAAU8/E,GAE/C9/E,EAAMM,IAAI,UAAU,EAAO,CAAEsrL,gBAAgB,GAEjD,GACF,EAQA,YAAAC,kBAAA,SAAkBvwL,GAChB,IAAIsJ,EAAUtJ,GAAO,GACrBT,KAAKyV,SAAQ,SAACtQ,EAAOrE,GACfqE,EAAMxB,IAAI,YAAcoG,GAC1B5E,EAAMM,IAAI,WAAW,EAEzB,GACF,EASA,YAAAwrL,2BAAA,SAA2BJ,EAAgBjrK,GACzC5lB,KAAKyV,SAAQ,SAACtQ,EAAOrE,GACfqE,IAAU0rL,IACZ1rL,EAAMM,IAAI,WAAW,GACjBmgB,GAAKzgB,EAAMxB,IAAI,WAAWhD,QAAQwE,EAAMxB,IAAI,WAAWstL,2BAA2BJ,EAAQjrK,GAElG,GACF,EACF,EAlEA,CAAqC,G,YAoErCsrK,GAAQ7wL,UAAU8E,MAAQ,G,ogBChB1B,YAqBE,WAAY1F,EAAsBoD,GAAlC,MACE,YAAMpD,EAAQoD,IAA6C,KACrDsuL,EAAM,EAAKxtL,IAAI,YAAc,G,OACnC,EAAKs8D,QAAU,IAAI,GAAQxgE,EAAQ0xL,G,CACrC,CACF,OA1BmC,QACjC,YAAArqL,SAAA,WACE,MAAO,CACLwD,GAAI,GACJyU,QAAS,GACT2/B,SAAS,EACTuhB,QAAS,GACTj5D,WAAY,CAAC,EAEjB,EAEA,sBAAI,sBAAO,C,IAAX,WACE,OAAOhH,KAAK2D,IAAI,UAClB,E,IAEA,SAAoBs8D,GAClBjgE,KAAKyF,IAAI,UAAWw6D,EACtB,E,gCASF,EA1BA,CAAmC,G,2fCpDnC,eACE,WAAYxgE,EAAsB+D,G,OAChC,YAAM/D,EAAQ+D,EAAQ,KAAM,IAC9B,CACF,OAJoC,QAIpC,EAJA,CAAoC,G,YAMpCuuF,GAAO1xF,UAAU8E,MAAQ,G,yuBCLzB,eAoBE,WAAYgxB,GAAZ,MACE,YAAMA,IAAE,KACF,EAA2B,EAAzBhxB,EAAK,QAAE+9E,EAAE,KAAEe,EAAG,MAAEV,EAAI,OACtBr/D,EAAM/e,EAAMyP,UACZ,EAAsBzP,EAAM6B,WAA1BwvF,EAAO,UAAE46F,EAAM,SAevB,GAbA,EAAK9mL,GAAK25E,EAAM9+E,EAAMxB,IAAI,MAC1B,EAAK0tL,UAAY,UAAGptG,EAAG,kBAAUV,EAAI,cACrC,EAAK+tG,WAAa,UAAG/tG,EAAI,YACzB,EAAKguG,WAAa,UAAGttG,EAAG,WACxB,EAAKrvE,UAAYqvE,EAAM,OAAS//D,EAAM,IAAMA,EAAM,IAClD,EAAK1Z,SAASrF,EAAO,SAAU,EAAK0O,QACpC,EAAKrJ,SAASrF,EAAO,6BAA8B,EAAKqsL,cACxD,EAAKhnL,SAASrF,EAAO,cAAe,EAAKssL,aACzC,EAAKjnL,SAASrF,EAAO,iBAAkB,EAAKusL,eAC5C,EAAKlnL,SAASrF,EAAO,oBAAqB,EAAKswI,kBAC/C,EAAKjrI,SAASrF,EAAO,mBAAoB,EAAKwsL,iBAC9C,EAAKnnL,SAASrF,EAAO,iBAAkB,EAAKysL,eAExC1uG,IAAM,IAAAhyE,UAASslF,IAAY46F,EAAQ,CACrC,IAAM,EAAc,CAAES,YAAY,GAClC,EAAKrnL,SAAS04E,EAAI,cAAOsT,IAAW,WAAM,OAAArxF,EAAMM,IAAI,UAAU,EAAM,EAA1B,IAC1C,EAAK+E,SAAS04E,EAAI,eAAQsT,IAAW,WAAM,OAAArxF,EAAMM,IAAI,UAAU,EAAO,EAA3B,G,QAGzCy9E,GAAMA,EAAGv/E,MAAK,EAAKs0D,SAAWirB,EAAGv/E,IAAI,a,CAC3C,CAyIF,OAvLwC,QAEtC,YAAA8P,QAAA,WACE,OAAOzT,KAAKmF,MAAMxB,IAAI,UACxB,EAEA,YAAA+F,OAAA,WACE,MAAO,CACLuiF,MAAO,UAEX,EA2CQ,YAAA0lG,gBAAR,WACQ,IAAExsL,EAAenF,KAAV,MAAEikF,EAAQjkF,KAAL,IACZkkB,EAAM/e,EAAMyP,UACZ85H,EAAUvpI,EAAMxB,IAAI,cAAcwpF,MAClCk/C,EAAW,UAAGqC,GAAoB,GAAE,YAAIzqD,EAAG,eAAO//D,GAAY,IACpElkB,KAAK2T,IAAInM,KAAK,QAAS6kI,EAAS/jD,OAClC,EAOQ,YAAAmtD,iBAAR,WACQ,MAAqBz1I,KAAnBkjF,EAAE,KAAE/9E,EAAK,QAAEwO,EAAG,MAChBnM,EAAOrC,EAAMxB,IAAI,eAAiB,CAAC,EACnCsa,EAAQilE,GAAMA,EAAG5vB,GAAK4vB,EAAG5vB,EAAE,gCAAyBnuD,EAAMmF,KAChEqJ,EAAInM,KAAKA,GACTyW,GAAStK,EAAInM,KAAK,CAAEyW,MAAK,IAEzBje,KAAK2xL,iBACP,EAOQ,YAAAD,cAAR,WACO1xL,KAAK8xL,WAEN9xL,KAAKmF,MAAMxB,IAAI,WAAY3D,KAAK8xL,SAASxsK,SAAStlB,KAAKuxL,YACtDvxL,KAAK8xL,SAASzlG,YAAYrsF,KAAKuxL,YACtC,EAOQ,YAAAC,aAAR,SAAqBhgL,EAAQi6C,EAAQ5hD,G,WAAA,IAAAA,IAAAA,EAAA,IAC7B,MAAsC7J,KAApCmF,EAAK,QAAE8yD,EAAQ,WAAEtkD,EAAG,MAAE09K,EAAS,YAC/BN,EAA+BlnL,EAAI,eAAnBgoL,EAAehoL,EAAI,WACrCE,EAAU5E,EAAMxB,IAAI,WACpBd,EAAUsC,EAAMxB,IAAI,WACpBouL,EAAc5sL,EAAMqxF,QACtBA,EAAU,CAAC,EAEVu7F,IAED95H,IAAY,IAAA/mD,UAAS6gL,GACvBv7F,EAAUv+B,EAASt0D,IAAIouL,IAAgB,CAAC,GAC/B,IAAA1vL,YAAW0vL,GACpBv7F,EAAUv+B,EAAS/lD,OAAO,CAAEgwE,IAAK6vG,IACR,OAAhBA,IAAwB,IAAArrL,UAASqrL,KAC1Cv7F,EAAUv+B,EAAS/lD,OAAO6/K,IAGxB5sL,EAAM+5C,SACP6xI,IAA+C,QAA5B,EAAA5rL,EAAMF,kBAAsB,SAAE6rL,cAAc/mL,EAAS5E,IACzEA,EAAMM,IAAI,UAAU,EAAM,CAAEmI,QAAQ,IAAQ9J,QAAQ,gBACnD+tL,GAAc55H,EAAS29B,WAAWY,EAAS,SAAK3zF,GAAO,CAAEoiF,OAAQ9/E,KAIlEqxF,EAAQw7F,QAAU7sL,EAAMM,IAAI,UAAU,KAEtCkO,EAAI04E,YAAYglG,IACfQ,GAAc55H,EAAS6qB,YAAY0T,EAAS,SAAK3zF,GAAO,CAAEoiF,OAAQ9/E,EAAOs5C,MAAO,MAErF,EAEA,YAAAmzI,cAAA,WACQ,IAAEN,EAAsBtxL,KAAZ,WACZquF,EADwBruF,KAAL,MACHquF,QACtBruF,KAAK2T,IAAI06E,EAAU,WAAa,eAAeijG,EACjD,EAOA,YAAAG,YAAA,WACQ,MAA4BzxL,KAA1BmF,EAAK,QAAEwO,EAAG,MAAE09K,EAAS,YAC7BlsL,EAAM+5C,OAASvrC,EAAI2R,SAAS+rK,GAAa19K,EAAI04E,YAAYglG,EAC3D,EAQA,YAAAY,QAAA,SAAQ/mL,GACE,IAAA/F,EAAUnF,KAAI,MAElBmF,EAAMxB,IAAI,YAAcwB,EAAMkpF,UAAYlpF,EAAMqxF,SAEpDx2F,KAAKkyL,cACP,EAEQ,YAAAA,aAAR,WACQ,IAAE/sL,EAAcnF,KAAT,MAAEkjF,EAAOljF,KAAL,GACTk/C,EAAsB/5C,EAAK,OAAnBsrL,EAActrL,EAAK,UAE/B+5C,IAAWuxI,IAEftrL,EAAM+5C,QAAUA,EAGZA,EACE/5C,EAAMurL,mBAAmBxtG,EAAG2S,aAE5B1wF,EAAMwrL,oBAAoBztG,EAAGqS,cAErC,EAEO,YAAA1hF,OAAP,WACU,IAAA1O,EAAUnF,KAAI,MAChB0sE,EAAQvnE,EAAMxB,IAAI,SAChBgQ,EAAQ3T,KAAI,IAOpB,OANCmF,EAAMxB,IAAI,OAASgQ,EAAIq+B,QACxBhyC,KAAKy1I,mBACL/oE,GAAS/4D,EAAIq/E,OAAOtmB,GACpB1sE,KAAKyxL,cACLzxL,KAAK4xL,gBAEE5xL,IACT,EACF,EAvLA,CAAwC,I,ghBCCxC,YACE,WAAYiF,GAAZ,MACE,YAAM,CAAEA,WAAU,KAAG,K,OACrB,EAAKuF,SAAS,EAAKvF,WAAY,MAAO,EAAK4+F,OAC3C,EAAKr5F,SAAS,EAAKvF,WAAY,eAAgB,EAAK4O,QACpD,EAAKe,UAAY,EAAKqvE,IAAM,U,CAC9B,CA+CF,OArDyC,QAc/B,YAAA4f,MAAR,SAAc1+F,GACZnF,KAAK6uH,gBAAgB1pH,EACvB,EASQ,YAAA0pH,gBAAR,SAAwB1pH,EAAe2pH,GACrC,IAAM70G,EAAW60G,GAAc,KACzB16G,EAAKjP,EAAMxB,IAAI,MAKf4tF,EAJO,IAAI,GAAW,CAC1Bn9E,GAAE,EACFjP,MAAK,IAEe0O,SAASO,GAQ/B,OANI6F,EACFA,EAASwK,YAAY8sE,GAErBvxF,KAAK2T,IAAIq/E,OAAOzB,GAGXA,CACT,EAEO,YAAA19E,OAAP,sBACMoG,EAAWvF,SAASisB,yBAOxB,OANA3gC,KAAK2T,IAAIq+B,QAEThyC,KAAKiF,WAAWM,MAAK,SAAAJ,GAAS,SAAK0pH,gBAAgB1pH,EAAO8U,EAA5B,IAE9Bja,KAAK2T,IAAIq/E,OAAO/4E,GAChBja,KAAK2T,IAAInM,KAAK,SAAS,IAAA0F,QAAOlN,KAAM,cAC7BA,IACT,EACF,EArDA,CAAyC,I,yuBCDzC,eACE,WAAYmF,GAAZ,MACE,YAAM,CAAEA,MAAK,EAAEiP,GAAIjP,EAAMxB,IAAI,SAAkB,K,OAC/C,EAAKiR,UAAY,EAAKqvE,IAAM,QAC5B,EAAK35E,GAAK,EAAK25E,IAAM9+E,EAAMxB,IAAI,MAC/B,EAAK6G,SAASrF,EAAO,uBAAwB,EAAKgtL,eAClD,EAAK3nL,SAASrF,EAAO,iBAAkB,EAAK0uI,eAC5C,EAAKrpI,SAASrF,EAAO,iBAAkB,EAAKitL,eAC5CjtL,EAAMm9B,KAAO,E,CACf,CAmHF,OA5HuC,QAcrC,YAAA6vJ,cAAA,WACEnyL,KAAK2T,IAAIq/E,OAAOhzF,KAAKmF,MAAMxB,IAAI,iBACjC,EAKA,YAAAkwI,cAAA,WACE7zI,KAAK2T,IAAIuiE,KAAKl2E,KAAKmF,MAAMxB,IAAI,WAC/B,EAEA,YAAAyuL,cAAA,WACOpyL,KAAKmF,MAAMxB,IAAI,WAIpB3D,KAAK2T,IAAI04E,YAAY,UAAGrsF,KAAKujF,KAAI,WAH/BvjF,KAAK2T,IAAI2R,SAAS,UAAGtlB,KAAKujF,KAAI,UAIlC,EAGA,YAAAv8E,WAAA,WACE,OAAOhH,KAAKmF,MAAMxB,IAAI,aACxB,EAEA,YAAAy1F,WAAA,WACU,IAAAlW,EAAOljF,KAAI,GACbuiF,EAASW,aAAE,EAAFA,EAAI2T,OACbmE,EAAYh7F,KAAKmF,MAAMxB,IAAI,aAEjC,GAAI4+E,GAAUyY,EAAW,CACvB,IAAMq3F,GAAqB,IAAdr3F,EAAqB,EAAC,GAAM,GAAM,GAAM,GAAQA,EACvDs3F,EAAUD,EAAmB1xL,OAC/B40K,OAAE,EACJmV,OAAE,EACFE,OAAE,EACFnrD,GAAK,EAGP,GAAc,GAAV6yD,EAEF/c,GADMgd,EAAWF,GACH,GACdzH,EAAK2H,EAAS,GACd7H,EAAK6H,EAAS,GACd9yD,EAAK8yD,EAAS,QACT,GAAc,GAAVD,EAAa,CACtB,IAAMC,EACNhd,GADMgd,EAAWF,GACH,GACd3H,EAAK6H,EAAS,GACd3H,EAAK2H,EAAS,GACd9yD,EAAK8yD,EAAS,E,CAGhB,IAAM,EAAmB,IAAIhwG,EAAO+T,MAAMC,QAAQ,IAChDg/E,GAAE,EACFmV,GAAE,EACFE,GAAE,EACFnrD,GAAE,EACFgrD,IAAI,EACJt7E,IAAI,EACJw7E,IAAI,EACJE,IAAI,EACJj5F,SAAU5xF,KAAKoU,GACfm2K,cAAc,EACdC,sBAAsB,EACtBx0F,OAAQzT,EAAOqE,YAAY1C,YAC3BN,MAAK,WACHV,GAAMA,EAAGp/E,QAAQ,sBACnB,EACAmyF,WAAY,SAAC7hF,EAAiB,G,IAAEmS,EAAM,SAC9B5J,EAAQvI,EAAGuI,MACX1E,EAAS,EAAQ2uE,YACjByU,EAAWpjF,EAAOojF,SAClBD,EAAYnjF,EAAOmjF,UACnB9yD,EAAOl0B,EAAGob,wBACVgjK,EAAyB,aAAVjsK,EACfksK,EAAa91K,EAAM0+E,GACnBq3F,EAAc/1K,EAAMy+E,GAG1B,MAAO,CACL1rE,KAAM,EACNoZ,IAAK,EACL3C,MALYssJ,IAAeD,EAAejqG,WAAWkqG,GAAcnqJ,EAAKnC,MAMxErT,OALa4/J,IAAgBF,EAAejqG,WAAWmqG,GAAepqJ,EAAKxV,OAO/E,GACIkoE,GAAkC,kBAAdA,EAA0BA,EAAY,CAAC,IAEjE,EAAQj5B,KAAO,WAAO,EACtB,EAAQ/sB,MAAMh1C,KAAKoU,G,CAEvB,EAEA,YAAAP,OAAA,WACU,IAAAosD,EAAYjgE,KAAKmF,MAAK,QACxBwO,EAAM3T,KAAK2T,IACX4vE,EAAOvjF,KAAKujF,KACZr/D,EAAM,UAAGlkB,KAAK4U,UAAS,YAAI5U,KAAKsK,GAAE,YAAIi5E,EAAI,kBAAUA,EAAI,aAK9D,GAJA5vE,EAAI2R,SAASpB,GAEblkB,KAAKoyL,gBAEDnyH,EAAQt/D,OAAQ,CAClB,IAAIgyL,EAAc,IAAI,GAAY1yH,GAClCtsD,EAAIq/E,OAAO2/F,EAAY9+K,SAASO,G,CAIlC,OADAT,EAAIq/E,OAAOhzF,KAAKmF,MAAMxB,IAAI,YACnB3D,IACT,EACF,EA5HA,CAAuC,I,ghBCAvC,YACE,WAAYumB,GAAZ,MACE,YAAM,CAAEthB,WAAYshB,KAAS,K,OAC7B,EAAK/b,SAAS+b,EAAQ,MAAO,EAAKs9E,OAClC,EAAKr5F,SAAS+b,EAAQ,QAAS,EAAK1S,QACpC,EAAKrJ,SAAS+b,EAAQ,SAAU,EAAK89E,UACrC,EAAKzvF,UAAY,EAAKqvE,IAAM,S,CAC9B,CA4DF,OAnEwC,QAS9B,YAAAogB,SAAR,SAAiBl/F,GACf,IAAMm9B,EAAOn9B,EAAMm9B,KACnBA,GAAQA,EAAKl9B,QACf,EASQ,YAAAy+F,MAAR,SAAc1+F,GACZnF,KAAK6uH,gBAAgB1pH,EACvB,EAWQ,YAAA0pH,gBAAR,SAAwB1pH,EAAc2pH,GACpC,IAAM70G,EAAW60G,GAAc,KACzB16G,EAAKjP,EAAMxB,IAAI,MACf2+B,EAAO,IAAI,GAAUn9B,GACrBosF,EAAWjvD,EAAKzuB,SAASO,GACzBw9E,EAAWzsF,EAAMxB,IAAI,YAG3B,GAAIyQ,QACG,GAAIw9E,EAAU,CACnB,IAAMghG,EAAWl+K,SAASwrB,cAAc0xD,GACxCghG,SAAAA,EAAUnuK,YAAY8sE,E,MAElBt3E,EACFA,EAASwK,YAAY8sE,GAErBvxF,KAAK2T,IAAIq/E,OAAOzB,GAKpB,OADAjvD,EAAK82D,aACE7H,CACT,EAEO,YAAA19E,OAAP,sBACQF,EAAM3T,KAAK2T,IACX6gD,EAAO9/C,SAASisB,yBAKtB,OAJAhtB,EAAIq+B,QACJhyC,KAAKiF,WAAWM,MAAK,SAAAJ,GAAS,SAAK0pH,gBAAgB1pH,EAAOqvD,EAA5B,IAC9B7gD,EAAIq/E,OAAOx+B,GACX7gD,EAAInM,KAAK,QAASxH,KAAK4U,WAChB5U,IACT,EACF,EAnEA,CAAwC,I,ogBC6BxC,YASE,WAAYkjF,GAAZ,MACE,YAAMA,EAAI,SAAU,KAAS,KAE7B,IAAK,IAAIv5E,KADT,EAAK4oF,OAAS,IAAI,GAAO,EAAM,EAAKt6E,OAAOnR,UAC1B,GAET6C,KAAQ,EAAKsO,SAAS,EAAKA,OAAOtO,GAAQ,GAASA,IAE3D,OAAO,CACT,CA+KF,OAhM0C,QAuBxC,YAAAkrF,UAAA,WACE,OAAO70F,KAAKuyF,MACd,EAMA,YAAAsgG,YAAA,W,MACE,OAAyB,QAAlB,EAAA7yL,KAAK8yL,qBAAa,eAAE1+K,EAC7B,EAaA,YAAA69E,SAAA,SAASyD,GACP,OAAO11F,KAAKuyF,OAAOjuF,IAAIoxF,EACzB,EAcA,YAAAq9F,YAAA,SAAYr9F,GACV,OAAO11F,KAAKuyF,OAAOntF,OAAOswF,EAC5B,EASA,YAAA1D,SAAA,SAAS1nF,GACP,IAAMlG,EAAMpE,KAAKuyF,OAAO7uF,MAAM,CAAE4G,GAAE,IAClC,OAAOlG,EAAIzD,OAASyD,EAAI,GAAK,IAC/B,EAgCA,YAAA48K,UAAA,SAAUgS,EAAiBrkK,GACzB,IAAMmjE,EAAK9xF,KAAKgyF,SAASghG,GACzB,OAAOlhG,EAAKA,EAAG7xB,QAAQ37D,IAAIqqB,GAAU,IACvC,EAmBA,YAAAskK,aAAA,SAAaD,EAAiBrkK,GAC5B,IAAMmjE,EAAK9xF,KAAKgyF,SAASghG,GACzB,OAAOlhG,GAAMA,EAAG7xB,QAAQ76D,OAAOupB,EACjC,EAUA,YAAAukK,UAAA,SAAUF,EAAiB1oL,GACzB,IAAMwnF,EAAK9xF,KAAKgyF,SAASghG,GACzB,GAAIlhG,EAAI,CACN,IAAM1tF,EAAM0tF,EAAG7xB,QAAQv8D,MAAM,CAAE4G,GAAE,IACjC,OAAOlG,EAAIzD,OAASyD,EAAI,GAAK,I,CAE/B,OAAO,IACT,EAOA,YAAAyP,OAAA,W,MAGE,OAFkB,QAAlB,EAAA7T,KAAK8yL,qBAAa,SAAE1tL,SACpBpF,KAAK8yL,cAAgB,IAAI,GAAW9yL,KAAKuyF,QAClCvyF,KAAK8yL,cAAcj/K,SAASO,EACrC,EAMA,YAAA8qC,OAAA,WACEl/C,KAAK60F,YAAYtvF,MAAK,SAAAy2B,GACpBA,EAAEikC,QAAQ16D,MAAK,SAAA4rL,GACbA,EAAIxtL,IAAI,WAAawtL,EAAIrtL,QAAQ,eACnC,GACF,GACF,EAMA,YAAAqvL,eAAA,WACEnzL,KAAK60F,YAAYtvF,MAAK,SAAAy2B,GACpBA,EAAEikC,QAAQ16D,MAAK,SAAA4rL,GACTA,EAAIxtL,IAAI,YAAYwtL,EAAIrtL,QAAQ,iBACtC,GACF,GACF,EAEA,YAAAuL,QAAA,WACErP,KAAKuyF,OAAOrsF,QACZlG,KAAKuyF,OAAOjnF,gBACZtL,KAAK8yL,eAAiB9yL,KAAK8yL,cAAc1tL,QAC3C,EACF,EAhMA,CAA0C,GCf1C,SALkC,CAChC8+E,YAAa,MACbkvG,eAAgB,CAAC,G,02BCCnB,yB,8CAoCA,QApC2C,QACzC,YAAAjrD,MAAA,SAAMhjI,EAAkB0E,QAAA,IAAAA,IAAAA,EAAA,IACd,IAAAq5E,EAAoBr5E,EAAI,GAC1BwpL,EADiB,GAAKxpL,EAAtB,QAIN,GAAIA,EAAKypL,SAAWpwG,EAAI,CACtB,IACM,EADQA,EAAGglC,IAAIv8B,SAElBr+E,SACAxI,KAAI,SAAC8mF,GACJ,IAAMzwB,EAAOywB,EAAK28B,UACZ12E,EAAMspB,GAAwB,IAAhBA,EAAKx6D,QAAgBw6D,EAAK33D,OAAO,GACrD,OAAOquC,GAAOA,EAAIi0F,QAAUj0F,EAAIluC,IAAI,OACtC,IACCsS,OAAOuvE,SAEL6tG,EAASrsL,aACZqsL,EAASrsL,WAAa,SAACmb,EAAKrV,GAClB,IAAAxC,EAAOwC,EAAK,GAUpB,OARExC,GACU,MAAVA,EAAG,KACF6X,EAAIxe,IAAI,YACRwe,EAAIxe,IAAI,cAAe2G,IACxB,EAAQzF,QAAQyF,GAAM,UAEfwC,EAAMxC,GAERwC,CACT,E,CAIJ,OAAO3H,EAAMgwG,OAAOk+E,EACtB,EACF,EApCA,CAA2C,M,2fCX3C,4B,8CAgCA,QAhC2C,QACzC,YAAAlrD,MAAA,SAAMhjI,GAAN,WAEQ0xE,EAAO1xE,EAAMmI,SAmBnB,OAlBAtN,KAAKuzL,WAAW18G,IAEhB,IAAAtxE,MAAKsxE,GAAM,SAACprB,EAAGjkD,GACb,IAAMxG,EAAM61E,EAAKrvE,GACjB,GAAIxG,aAAe,KAEjB61E,EAAKrvE,GAAQ,EAAK2gI,MAAMnnI,QACnB,GAAIA,aAAe,KAAY,CACpC,IAAMgqF,EAAOhqF,EACb61E,EAAKrvE,GAAQ,GACTwjF,EAAKrqF,QACPqqF,EAAKv1E,SAAQ,SAACrB,EAAItT,GAChB+1E,EAAKrvE,GAAM1G,GAAS,EAAKqnI,MAAM/zH,EACjC,G,CAGN,IAEOyiE,CACT,EAMA,YAAA08G,WAAA,SAAWvyL,UACFA,EAAIu9F,MACb,EACF,EAhCA,CAA2C,M,ugBCS3C,gC,8CAsFA,QAtFyC,QAGvC,YAAAi1F,SAAA,SAASruL,G,MAAT,OACM6lB,EAAO,GACL6pD,EAAS1vE,EAAMxB,IAAI,kBAAoBwB,EAAMxB,IAAI,UACjDnB,EAAO2C,EAAMxB,IAAI,QACjBy8H,EAAQj7H,EAAMxB,IAAI,cAClB2G,EAAKnF,EAAMmlH,QAEjB,GAAIz1C,EAAQ,CAEV,IAAIrtE,EAAOrC,EAAMxB,IAAI,cACrB6D,GAAO,IAAAb,QAAO,CAAC,EAAGa,EAAM,CAAE8C,GAAE,IAC5BnF,EAAMM,IAAI,aAAc+B,EAAM,CAAEoG,QAAQ,IAExC,IAAM6jI,EAAStsI,EAAMw1H,gBAAgB9lD,GAC/B4+G,EAAWtuL,EAAMxB,IAAI,gBAG3B,GAAIwB,EAAMxB,IAAI,mBAAqB8vL,EACjCzzL,KAAK0zL,MAAMlxL,EAAO,IAAM8H,GAAM,CAAEiB,IAAK,CAACjB,GAAK0gB,KAAMymH,OAC5C,CACL,IAAI3oH,OAAK,EACHivH,EAAU/3I,KAAK0zL,MAAMlxL,GAM3B,GAJIixL,IACF3qK,EAAQ3jB,EAAM21H,oBAGZid,EACFA,EAAQxsI,IAAI5G,KAAK2F,GACbwe,IAAOivH,EAAQjvH,MAAOxe,GAAMwe,OAC3B,CACL,IAAM1kB,EAAiB,CAAEmH,IAAK,CAACjB,GAAK0gB,KAAMymH,GACtC3oH,IAAO1kB,EAAI0kB,QAAK,MAAMxe,GAAKwe,EAAK,IACpC9oB,KAAK0zL,MAAMlxL,GAAQ4B,C,GASzB,OAJAg8H,EAAM3qH,SAAQ,SAACtQ,GACb6lB,GAAQ,EAAKwoK,SAASruL,EACxB,IAEO6lB,CACT,EAEA,YAAAm9G,MAAA,SAAMhjI,GACJnF,KAAK0zL,MAAQ,CAAC,EACd1zL,KAAKwzL,SAASruL,GACd,IA9DqB3E,E,EA8DjBwqB,EAAO,GAEX,IAAK,IAAIxoB,KAAQxC,KAAK0zL,MAAO,CAC3B,IAAM37C,EAAU/3I,KAAK0zL,MAAMlxL,GAE3B,GAAKu1I,EAAQ/sH,KAIb,GAAI+sH,EAAQjvH,MAAO,CACjB,GAxEiBtoB,EAwEGu3I,EAAQ/sH,K,SAtE4B,MADT,QAArC,EAAAxqB,EAAGonB,WAAWvT,MAAM,yBAAiB,eAAG,KAAM,IAC/C5E,QAAQ,gBAAiB,IAAI64E,OAAO3nF,OAuE3C,SAGFqqB,GAAQ,kCACQpS,KAAKC,UAAUk/H,EAAQjvH,OAAM,kQAKtCivH,EAAQ/sH,KAAI,yC,KAEd,CAEL,IAAMzf,EAAM,IAAMwsI,EAAQxsI,IAAIkkD,KAAK,OACnCzkC,GAAQ,6DACmCzf,EAAG,yGAE1BwsI,EAAQ/sH,KAAI,sC,EAKpC,OAAOA,CACT,EACF,EAtFA,CAAyC,M,gBCXrCvM,G,suBAEA,IAAA+/E,YACF//E,GAAa,EAAQ,KACrB,EAAQ,KACR,EAAQ,KACR,EAAQ,MAGV,gC,8CAmGA,QAnG8C,QAI5C,YAAA3X,SAAA,WACE,MAAO,CACLw6B,MAAO,GACPorC,MAAO,GACPghB,SAAU,GACV5sB,MAAO,YACPjlC,UAAU,EACViJ,aAAa,EACb6uJ,YAAY,EAEhB,EAEA,YAAA3xI,KAAA,SAAK5tC,GAWH,OAVA,IAAAkuE,SAAQtiF,KAAM,YACdA,KAAKuiF,OAAS9jE,GAAWmwD,aAAax6D,EAAI,IACxCmqD,UAAU,EACV/1B,cAAc,EACdxoB,KAAMhgB,KAAK2D,IAAI,aACZ3D,KAAKgH,aAEVhH,KAAKgU,QAAUI,EACfpU,KAAKuiF,OAAO96E,GAAG,SAAUzH,KAAK02J,UAEvB12J,IACT,EAEA,YAAA02J,SAAA,WACE12J,KAAK8D,QAAQ,SAAU9D,KACzB,EAEA,YAAAyyD,UAAA,WACE,OAAOzyD,KAAKuiF,MACd,EAMA,YAAAmC,WAAA,WACE,OAAO1kF,KAAKgU,OACd,EASA,YAAAD,WAAA,SAAWK,GAET,OADApU,KAAKgU,QAAUI,EACRpU,IACT,EAMA,YAAAshE,QAAA,WAEE,OADAthE,KAAKyyD,YAAY6O,UACVthE,IACT,EAMA,YAAAg1C,MAAA,WAEE,OADAh1C,KAAKyyD,YAAYzd,QACVh1C,IACT,EAEA,YAAAk6I,WAAA,WACE,IAAM/3D,EAAKniF,KAAKyyD,YAChB,OAAO0vB,GAAMA,EAAG3yB,UAClB,EAGA,YAAA69B,WAAA,SAAW3lF,EAAemC,GAA1B,gBAA0B,IAAAA,IAAAA,EAAA,IAChB,IAAA04E,EAAWviF,KAAI,OACvB,GAAKuiF,EAAL,CACAA,EAAO5yB,SAASjoD,GAChB,IAAMisL,EAAa3zL,KAAK2D,IAAI,cAE1B4+E,EAAOqxG,mBACS,IAAfD,GAAwBvzL,MAAMc,QAAQyyL,IAAeA,EAAWp9K,SAASvW,KAAK2D,IAAI,gBAGnF8a,GAAWw5C,SAASxN,UAAU83B,GAC9BA,EAAOqxG,gBAAgBrxG,EAAOrgE,WAAU,GAAOqgE,EAAOrgE,WAAU,IAChEzD,GAAWw5C,SAASQ,WAAW8pB,KAGhC14E,EAAKgqL,WAAatsK,YAAW,WAAM,SAAK+5C,SAAL,GAbjB,CAcrB,EACF,EAnGA,CAA8C,M,YAsG9CwyH,GAAiBzzL,UAAUoe,WAAaA,G,6oBChHxC,yB,8CA4BA,QA5B4C,QAI1C,YAAAk+F,SAAA,SAAS,G,IAAE14B,EAAG,MAAEyJ,EAAQ,WAAEhhB,EAAK,QAC7B,OAAOwJ,EAAI,wLACQ,iBAAkB,GAAW,0BAC9B,WAAe,6BACf,uCAFF+N,EAAkBA,EAAMyJ,EACzBzJ,EAAavX,EACbuX,EAGjB,EAEA,YAAA18E,WAAA,SAAW4uB,GACTn2B,KAAKiY,OAASke,EAAEle,QAAU,CAAC,EAC3BjY,KAAKikF,IAAMjkF,KAAKiY,OAAOisE,WACzB,EAEA,YAAArwE,OAAA,W,QACQ,EAAsB7T,KAApBmF,EAAK,QAAE8+E,EAAG,MAAEtwE,EAAG,MACjB3S,EAAMmE,EAAMmI,SACZ4gI,EAAW/oI,EAAMxB,IAAI,WAAqC,QAAxB,GAAD,EAACwB,GAAcu/E,kBAAU,wBAKhE,OAJA1jF,EAAIijF,IAAMA,EACVtwE,EAAIuiE,KAAKl2E,KAAK28G,SAAS37G,IACvB2S,EAAInM,KAAK,QAAS,UAAGy8E,EAAG,aACxBtwE,EAAIC,KAAK,WAAIqwE,EAAG,SAAQ+O,OAAOk7C,GACxBluI,IACT,EACF,EA5BA,CAA4C,M,4uBC2BtC+zL,GAAgB,aAEtB,eAQE,WAAY7wG,GAAZ,MACE,YAAMA,EAAI,cAAe,KAAS,KAHpC,EAAA0K,WAAa,GAIH,IAAA31E,EAAW,EAAI,OACjBsrE,EAAOtrE,EAAOksE,a,OAChBZ,IAAMtrE,EAAOisE,YAAcX,EAAOtrE,EAAOisE,aAE7C,EAAK8vG,WAAa,CAAC,EACnB,EAAKC,QAAU,CAAC,EAChB,EAAKC,cAAgB,CACnBh+G,KAAM,IAAI,GACV51C,IAAK,IAAI,GACTu2C,KAAM,IAAI,GACVs9G,GAAI,IAAI,IAEV,EAAKC,WAAa,CAAE31K,WAAY,IAAI,IACpC,EAAK41K,wBAAwBC,qB,CAC/B,CA6JF,OArL+C,QAuC7C,YAAAC,aAAA,SAAajqL,EAAYkqL,GAEvB,OADAx0L,KAAKg0L,WAAW1pL,GAAMkqL,EACfx0L,IACT,EAYA,YAAAy0L,aAAA,SAAanqL,GACX,OAAOtK,KAAKg0L,WAAW1pL,EACzB,EAMA,YAAAoqL,cAAA,WACE,OAAO10L,KAAKg0L,UACd,EAoBA,YAAAW,UAAA,SAAUrqL,EAAYsqL,GAEpB,OADA50L,KAAKi0L,QAAQ3pL,GAAMsqL,EACZ50L,IACT,EASA,YAAA60L,UAAA,SAAUvqL,GACR,OAAOtK,KAAKi0L,QAAQ3pL,EACtB,EAMA,YAAAwqL,WAAA,WACE,OAAO90L,KAAKi0L,OACd,EAEA,YAAAtmG,aAAA,SAAa9jF,QAAA,IAAAA,IAAAA,EAAA,IACX,IAAMrH,GAAQ,IAAAonF,aAAY//E,EAAKrH,MAAoBuxL,GAAZlqL,EAAKrH,KACtCoyL,EAAS50L,KAAK60L,UAAUryL,IAASxC,KAAK60L,UAAUryL,GAAMe,QACtDw0E,EAAOrjE,SAASC,cAAc,OAC9BogL,EAAUrgL,SAASC,cAAc,YASvC,OARAojE,EAAKtzD,YAAYswK,GACjBH,EAAOnvL,IAAI,SACNzF,KAAKiY,OAAOm7K,gBACZvpL,IAEL+qL,EAAO5yI,KAAK+yI,GACZH,EAAO7gL,WAAWgkE,GAEX68G,CACT,EAaA,YAAAI,aAAA,SAAaJ,EAAa5pK,GACxB4pK,EAAOvnG,WAAWriE,EACpB,EAWA,YAAAiqK,QAAA,SAAQ9vL,EAAY+vL,EAAe5nI,QAAA,IAAAA,IAAAA,EAAA,IACjCA,EAAI41B,GAAKljF,KAAKkjF,GACd,IAAMsxG,EAAYx0L,KAAKy0L,aAAaS,GACpC,OAAOV,EAAYA,EAAUrsD,MAAMhjI,EAAOmoD,GAAO,EACnD,EAOA,YAAA+mI,sBAAA,WACE,IAAK,IAAM/pL,KAAMtK,KAAKk0L,cACpBl0L,KAAKu0L,aAAajqL,EAAItK,KAAKk0L,cAAc5pL,IAG3C,OAAOtK,IACT,EAOA,YAAAs0L,mBAAA,WACE,IAAK,IAAMhqL,KAAMtK,KAAKo0L,WACpBp0L,KAAK20L,UAAUrqL,EAAItK,KAAKo0L,WAAW9pL,IAGrC,OAAOtK,IACT,EAEA,YAAAqP,QAAA,WAAW,EACb,EArLA,CAA+C,G,qCCd/C,SALkC,CAChC9K,mBAAoB,IACpB4wL,gBAAgB,G,48BCuBZC,GAAU,SAACvrL,GAAc,OAAAA,EAAKg/E,YAAch/E,EAAKykH,MAAxB,EAEzB+mE,GAAa,SAACr0L,GAAa,OAAAgoB,OAAO/nB,KAAKD,EAAI4E,oBAAhB,EAEjC,eAIE,WAAYs9E,GAAZ,MACE,YAAMA,EAAI,cAAe,KAAS,KAE9B,EAAKjrE,OAAOgtG,WACd,EAAKhtG,OAAO1T,mBAAqB,GAGnC,IAAMslH,GAAW,E,OACjB,EAAKU,GAAK,IAAI,KAAJ,CAAgB,IAAEpmH,OAAO,EAAMhC,SAAU,IAAO,EAAK8V,SAC/D,EAAKsyG,GAAG/hH,eAAe,SAAU,CAC/BvE,UAAW,SAACvB,GACV,IAAM4yL,EAAU5yL,EAAOiB,IAAI,SAC3B,GAAI2xL,EAAS,CACX,IAAM,EAAU5yL,EAAOiB,IAAI,YAC3B,IAAI,IAAAzC,SAAQ,IACNm0L,GAAW3yL,GAAQ6O,MAAK,SAAAgkL,GAAO,SAAQ1wL,QAAQ0wL,IAAQ,CAAxB,IAA4B,OAAO,EAExE,IAAI,IAAA79E,WAAU49E,GAAU,OAAO,EAC/B,IAAI,IAAAp0L,SAAQo0L,IACND,GAAW3yL,GAAQ6O,MAAK,SAAAgkL,GAAO,OAAAD,EAAQzwL,QAAQ0wL,IAAQ,CAAxB,IAA4B,OAAO,C,CAG1E,OAAO,CACT,EACA9tL,GAAE,SAAC/E,EAAa+oD,EAAQ5hD,GAAxB,YACG7J,KAAKw1L,cAAgBx1L,KAAKw1L,YAAc9yL,EAAOoD,sBAChD,IAAMwnD,EAAMzjD,GAAQ4hD,GAAK,CAAC,EAK1B,GAJA6B,EAAIghE,QACF/mG,YAAW,WACT,EAAKiuK,YAAc,IACrB,KACEJ,GAAQ9nI,GAAZ,CAGE,IAAM1qD,EAAQF,EAAO4K,OAAO,CAAEu8G,SAAQ,IAChC38G,EAAS,CACbxK,OAAM,EACNC,OAAQ3C,KAAKw1L,YACb5yL,MAAK,GAIP,GAFA5C,KAAKw1L,YAAc,OAEf,IAAAlwL,SAAQ1C,GAEZ,OAAOsK,C,CAEX,IAEF,EAAKq9G,GAAG/hH,eAAe,MAAO,CAC5Bf,GAAI,SAACtC,EAAYF,EAAiBpC,GAChC,QADgC,IAAAA,IAAAA,EAAA,KAC5BuyL,GAAQvyL,IAAa,EAAK2B,aAAaS,GAC3C,MAAO,CACLvC,OAAQuC,EACRtC,YAAQ0C,EACRzC,MAAOuC,EACPtC,QAAS,SAAKA,GAAO,CAAEgnH,SAAQ,IAEnC,IAEF,EAAKU,GAAG/hH,eAAe,SAAU,CAC/Bf,GAAI,SAACtC,EAAYF,EAAiBpC,GAChC,QADgC,IAAAA,IAAAA,EAAA,KAC5BuyL,GAAQvyL,IAAa,EAAK2B,aAAaS,GAC3C,MAAO,CACLvC,OAAQuC,EACRtC,OAAQwC,EACRvC,WAAOyC,EACPxC,QAAS,SAAKA,GAAO,CAAEgnH,SAAQ,IAEnC,IAEF,EAAKU,GAAG/hH,eAAe,QAAS,CAC9BzB,KAAM,SAAC9B,EAAiBtC,GACtBsC,EAAWiB,MAAMvD,EAAQ,CAAEknH,SAAQ,GACrC,EACA5iH,KAAM,SAAChC,EAAiBugB,EAAQ5iB,GAC9BqC,EAAWiB,MAAMtD,EAAO,CAAEinH,SAAQ,GACpC,EACApiH,GAAI,SAACxC,EAAiBpC,GACpB,QADoB,IAAAA,IAAAA,EAAA,KAChBuyL,GAAQvyL,IAAa,EAAK2B,aAAaS,GAC3C,MAAO,CACLvC,OAAQuC,EACRtC,OAAQE,EAAQsD,eAChBvD,MAAO,MAAIqC,EAAWzB,QAAM,GAC5BX,QAAS,SAAKA,GAAO,CAAEgnH,SAAQ,IAEnC,IAGF,EAAKU,GAAG9iH,GAAG,aAAa,WACtBy7E,EAAGp/E,QAAQ,uBACXo/E,EAAGqC,iBAAiBzgF,KAAI,SAAAi6E,GAAK,OAAAA,EAAEj7E,QAAQ,iBAAV,GAC/B,IACA,CAAC,OAAQ,QAAQ2R,SAAQ,SAAAjJ,GAAM,SAAK+9G,GAAG9iH,GAAG+E,GAAI,WAAM,OAAA02E,EAAGp/E,QAAQ0I,EAAX,GAArB,I,CACjC,CAiQF,OAlW+C,QAmG7C,YAAA24G,SAAA,WACQ,IAAEltG,EAAejY,KAAT,OAAEkjF,EAAOljF,KAAL,GAClBiY,EAAOk9K,gBAAkBjyG,GAAMljF,KAAKsE,IAAI4+E,EAAGv/E,IAAI,YACjD,EAiBA,YAAAW,IAAA,SAAI2hH,GAEF,OADAjmH,KAAKuqH,GAAGpoH,SAAS8jH,GACVjmH,IACT,EASA,YAAAoF,OAAA,SAAO6gH,GAEL,OADAjmH,KAAKuqH,GAAGnoH,WAAW6jH,GACZjmH,IACT,EAQA,YAAAivL,UAAA,WAEE,OADAjvL,KAAKuqH,GAAGviH,gBACDhI,IACT,EAQA,YAAAgc,MAAA,WAEE,OADAhc,KAAKuqH,GAAG5iH,gBACD3H,IACT,EAQA,YAAA2d,KAAA,WAEE,OADA3d,KAAKuqH,GAAG1iH,eACD7H,IACT,EAQA,YAAA+G,KAAA,SAAK3F,QAAA,IAAAA,IAAAA,GAAA,GACG,IAAE8hF,EAAWljF,KAAT,GAAEuqH,EAAOvqH,KAAL,GAEd,OADCkjF,EAAG4W,aAAeywB,EAAGxjH,KAAK3F,GACpBpB,IACT,EAQA,YAAAiI,QAAA,WAEE,OADAjI,KAAKuqH,GAAGtiH,UACDjI,IACT,EAQA,YAAAiH,KAAA,SAAK7F,QAAA,IAAAA,IAAAA,GAAA,GACG,IAAE8hF,EAAWljF,KAAT,GAAEuqH,EAAOvqH,KAAL,GAEd,OADCkjF,EAAG4W,aAAeywB,EAAGtjH,KAAK7F,GACpBpB,IACT,EAQA,YAAAkI,QAAA,WAEE,OADAlI,KAAKuqH,GAAGriH,UACDlI,IACT,EAQA,YAAAs1L,QAAA,WACE,QAASt1L,KAAKuqH,GAAGpiH,YAAY,OAC/B,EAQA,YAAAstL,QAAA,WACE,QAASz1L,KAAKuqH,GAAGpiH,YAAY,OAC/B,EAQA,YAAA3D,aAAA,SAAaxD,GACX,QAAShB,KAAK01L,cAAcxzL,eAAesC,aAAaxD,EAC1D,EASA,YAAA20L,SAAA,WACE,OAAO31L,KAAKuqH,GAAGvnH,KACjB,EAaA,YAAA4yL,cAAA,WACE,IAAM1oL,EAAc,GACd23D,EAAgB,GAUtB,OARA7kE,KAAK21L,WAAWlgL,SAAQ,SAACgxE,GACvB,IAAM3lF,EAAQ2lF,EAAK9iF,IAAI,oBACnBkhE,EAAShgE,QAAQ/D,GAAS,IAC5B+jE,EAASlgE,KAAK7D,GACdoM,EAAOvI,KAAK8hF,GAEhB,IAEOv5E,CACT,EAEA,YAAA84C,KAAA,SAAK4rF,GACH5xI,KAAK2d,OACLi0H,IACA5xI,KAAKgc,OACP,EAEA,YAAA65K,gBAAA,WACE,IAAM3oL,EAA8B,CAAC,EAC/BlK,EAAQhD,KAAK21L,WAgBnB,OAXA3yL,EAAMyS,SAAQ,SAACgxE,EAAM5mF,GACnB,IAAMiB,EAAQ2lF,EAAK9iF,IAAI,oBACjB+D,EANW,SAAC++E,EAAW3lF,GACvB,MAAgD2lF,EAAKz/E,WAAnDxE,EAAI,OAAEI,EAAK,QAAED,EAAM,SAAED,EAAM,SAAE,IAAAG,QACrC,MAAO,CAAE/B,MAAK,EAAE0B,KAAI,EAAEI,MAAK,EAAED,OAAM,EAAED,OAAM,EAAEG,aADD,IAAG,GAAC,EAAC,EAEnD,CAGgBizL,CAAWrvG,EAAM5mF,GAE1BqN,EAAOpM,GAGVoM,EAAOpM,GAAO6D,KAAK+C,GAFnBwF,EAAOpM,GAAS,CAAC4G,EAIrB,IAEOshB,OAAO/nB,KAAKiM,GAAQpI,KAAI,SAAAhE,GAC7B,IAAMuC,EAAU6J,EAAOpM,GACvB,MAAO,CACLA,MAAOuC,EAAQA,EAAQ1C,OAAS,GAAGG,MACnCuC,QAAO,EACP89K,QAAQ,IAAAz3E,QACNrmG,EAAQsS,QAAO,SAACvR,EAAUqiF,G,MAClB/Z,EAAoB,QAAZ,EAAA+Z,EAAK5jF,eAAO,eAAEN,OAE5B,OADAmqE,GAAStoE,EAAIO,KAAK+nE,GACXtoE,CACT,GAAG,KAGT,GACF,EAEA,YAAA2xL,UAAA,SAAUlzJ,GAAV,WACE,GAAKA,EAAL,CACA,IAAM50B,EAAUjO,KAAKg2L,aACfC,EAAOpzJ,EAAM/hC,MAAQmN,GAC3B,IAAA4tG,OAAM3vG,KAAK0kB,IAAIqlK,IAAO,WACpB,EAAKA,EAAO,EAAI,OAAS,SAAQ,EACnC,GALkB,CAMpB,EAEA,YAAAD,WAAA,WAEE,OAAOh2L,KAAK21L,WAAWvyL,OACzB,EAQA,YAAAsF,MAAA,WAEE,OADA1I,KAAKuqH,GAAG7hH,QACD1I,IACT,EAEA,YAAA01L,YAAA,WACE,OAAO11L,KAAKuqH,EACd,EAEA,YAAAl7G,QAAA,WACErP,KAAK0I,QAAQumL,WACf,EACF,EAlWA,CAA+C,G,YCmB/C,SAPqC,CACnC/qG,YAAa,OACbgyG,eAAe,EACf7yL,QAAS,CAAC,OAAQ,SAAU,YAAa,gBAAiB,OAAQ,QAClEwtF,QAAQ,G,ICtCEslG,G,+OAAZ,SAAYA,GACV,0BACA,8BACA,8BACD,CAJD,CAAYA,KAAAA,GAAyB,KAmBrC,IAAMC,GAAU,OAEVC,GACI,EADJA,GAEM,EAFNA,IAGO,EAEPC,GAAa,SAAC78C,EAAqBhmI,QAAA,IAAAA,IAAAA,EAAA,KACjC,MAA4BgmI,EAAItpH,aAAe,CAAC,EAA9CgvB,EAAU,aAAEE,EAAS,YACvBk3I,EAAep3I,aAAU,EAAVA,EAAYl6B,WAC3BuxK,EAAcn3I,aAAS,EAATA,EAAWp6B,WAC/B,OAAOsxK,aAAY,EAAZA,EAAc92I,WAAYhsC,IAAW+iL,aAAW,EAAXA,EAAa/2I,WAAYhsC,CACvE,EAEMgjL,GAAe,gBAEfC,GAAmD,CACvDC,KAAM,CACJhtL,KAAM,OACNuwF,KAAM,WACNlzF,WAAY,CAAEiX,MAAO,QACrB/Q,OAAQ,SAAAusI,GAAO,OAAAA,EAAIl/H,KAAK,OAAT,GAEjBq8K,OAAQ,CACNjtL,KAAM,SACNuwF,KAAM,WACNlzF,WAAY,CAAEiX,MAAO,UACrB/Q,OAAQ,SAAAusI,GAAO,OAAAA,EAAIl/H,KAAK,SAAT,GAEjBs8K,UAAW,CACTltL,KAAM,YACNuwF,KAAM,WACNlzF,WAAY,CAAEiX,MAAO,aACrB/Q,OAAQ,SAAAusI,GAAO,OAAAA,EAAIl/H,KAAK,YAAT,GAEjBu8K,cAAe,CACbntL,KAAM,gBACNuwF,KAAM,WACNlzF,WAAY,CAAEiX,MAAO,kBACrB/Q,OAAQ,SAAAusI,GAAO,OAAAA,EAAIl/H,KAAK,gBAAT,GAEjB64F,KAAM,CACJlZ,KAAM,4UAGNvwF,KAAM,OACN3C,WAAY,CACV2V,MAAO,sCACPsB,MAAO,QAETgB,MAAO,SAAAw6H,GACL,OAAOA,GAAOA,EAAItpH,aAAemmK,GAAW78C,GAAO48C,GAAkBA,EACvE,EACAnpL,OAAQ,SAAAusI,GACF68C,GAAW78C,GACbA,EAAIl/H,KAAK,UAETk/H,EAAIs9C,WAAW,uBAAcN,GAAY,YAAIh9C,EAAItpH,YAAW,QAAQ,CAClEja,QAAQ,GAGd,GAEFguB,KAAM,CACJv6B,KAAM,OACNuwF,KAAM,2SAGNlzF,WAAY,CAAEiX,MAAO,kBACrBgB,MAAO,SAAAw6H,GACL,OAAOA,aAAG,EAAHA,EAAKtpH,cAAemmK,GAAW78C,EAAK,QAAU48C,GAAoBA,EAC3E,EACAnpL,OAAQ,SAAAusI,IACL68C,GAAW78C,EAAK,SACfA,EAAIs9C,WAAW,gBAASN,GAAY,YAAIh9C,EAAItpH,YAAW,WAAW,CAChEja,QAAQ,GAEd,IAIJ,cAWE,WAAYgtE,EAAiB9uE,EAA6CwoG,QAAA,IAAAA,IAAAA,EAAA,IAA1E,WAIE,GAHA58G,KAAKkjF,GAAKA,EACVljF,KAAK48G,SAAWA,EAEZxoG,EAAGgiL,IACL,OAAOhiL,EAAGgiL,IAGZhiL,EAAGgiL,IAAWp2L,KACdA,KAAKg3L,MAAM5iL,GACXpU,KAAKi3L,oBAAsBj3L,KAAKi3L,oBAAoBlrL,KAAK/L,MACzDA,KAAKk3L,YAAcl3L,KAAKk3L,YAAYnrL,KAAK/L,MACzCA,KAAKm3L,UAAYn3L,KAAKm3L,UAAUprL,KAAK/L,MAErC,IAAMo3L,GAAQx6E,EAASv5G,SAAW,IAAIyB,KAAI,SAAAvC,GACxC,IAAI2K,EAAS3K,EAMb,OALI,IAAA2O,UAAS3O,GACX2K,EAAS,MAAKwpL,GAAWn0L,IAChBm0L,GAAWn0L,EAAOoH,QAC3BuD,EAAS,SAAKwpL,GAAWn0L,EAAOoH,OAAUpH,IAErC2K,CACT,IACM7J,EAAU+zL,EAAKz2L,OAASy2L,EAAOpuK,OAAO/nB,KAAKy1L,IAAY5xL,KAAI,SAAAlF,GAAK,OAAA82L,GAAW92L,EAAX,IAEtEg9G,EAASnmF,QAAU,IACjB4gK,UAAW,YACX1oK,OAAQ,SACRuwB,OAAQ,SACRmyB,SAAU,WACVimH,SAAU,YACP16E,EAASnmF,SAGd,IAAMA,EAAUmmF,EAASnmF,QACrB4gK,EAAYz6E,EAASy6E,UAKzB,GAJAr3L,KAAKq3L,UAAYA,EACjBr3L,KAAKy2B,QAAUA,EACfz2B,KAAKqD,QAAUA,GAEVg0L,EAAW,CACd,IAAKr3L,KAAKu3L,SAAS36E,EAASn9G,QAAS,CACnC,IAAM+3L,EAAgB56E,EAAS66E,oBAC/BJ,EAAY3iL,SAASC,cAAc,QACzBC,UAAY6hB,EAAQ4gK,UAC9BG,SAAAA,EAAe/yK,YAAY4yK,GAC3Br3L,KAAKq3L,UAAYA,C,CAEnBh0L,EAAQoS,SAAQ,SAAAlT,GAAU,SAAKm1L,UAAUn1L,EAAf,G,CAI5B,OADAq6G,EAAS+6E,cAAgB33L,KAAKua,KAAK,gBAC5Bva,IACT,CAuQF,OArQE,YAAAu3L,SAAA,SAAS93L,GACP,IAAMg6I,EAAMh6I,GAAUO,KAAKkjF,GAAGw2D,eAC9B,UAAUD,aAAG,EAAHA,EAAKxhI,OAAO44E,WAAU4oD,aAAG,EAAHA,EAAKc,WACvC,EAEA,YAAAlrI,QAAA,WAAW,EAEX,YAAA2nL,MAAA,SAAM5iL,GACJpU,KAAKoU,GAAKA,EACVpU,KAAKqyB,IAAMje,EAAG8b,aAChB,EAEA,YAAA+mK,oBAAA,sBACQ5zL,EAAUrD,KAAK43L,aACrBv0L,EAAQoS,SAAQ,SAAAlT,GACN,IAAAs3C,EAAgBt3C,EAAM,OAAd4uL,EAAQ5uL,EAAM,IACxB,EAAiC,EAAKk0B,QAApCyoB,EAAM,SAAEo4I,EAAQ,WAAEjmH,EAAQ,WAC5BpyD,EAAQ1c,EAAO0c,MACftV,EAAOpH,EAAOoH,KACd0oB,EAAM,EAAKA,IACbwlK,EAAe1B,GAA0B2B,SAU7C,GARI3G,IACFA,EAAIv8K,UAAYu8K,EAAIv8K,UAAUnF,QAAQyvC,EAAQ,IAAIopC,OAClD6oG,EAAIv8K,UAAYu8K,EAAIv8K,UAAUnF,QAAQ6nL,EAAU,IAAIhvG,OACpD6oG,EAAIv8K,UAAYu8K,EAAIv8K,UAAUnF,QAAQ4hE,EAAU,IAAIiX,QAKlDrpE,EAAO,CACT,IAAM84K,EAAW94K,EAAM,EAAMoT,GAE7B,GADAwlK,EAAeE,EACX5G,EACF,OAAQ4G,GACN,KAAK1B,GACHlF,EAAIv8K,WAAa,WAAIsqC,GACrB,MACF,KAAKm3I,GACHlF,EAAIv8K,WAAa,WAAI0iL,GACrB,MACF,KAAKjB,GACHlF,EAAIv8K,WAAa,WAAIy8D,G,MAMvBh/C,EAAI2lK,sBAAsBruL,IAAS0oB,EAAI4lK,kBAAkBtuL,KAC3DwnL,IAAQA,EAAIv8K,WAAa,WAAIsqC,IAC7B24I,EAAe1B,GAA0B+B,QAG7C31L,EAAOs1L,aAAeA,EACtBh+I,SAAAA,EAAS,EAAMt3C,EACjB,IAEAc,EAAQ1C,QAAUX,KAAKkjF,GAAGw2D,eAAey+C,gBAC3C,EAEA,YAAAl1G,OAAA,SAAOp5E,GACL,OAAI7J,KAAKo4L,QAAgBp4L,KAClBA,KAAKq4L,iBAAgB,EAAMxuL,EACpC,EAEA,YAAAwkF,QAAA,WACE,OAAOruF,KAAKq4L,iBAAgB,EAC9B,EAEA,YAAAA,gBAAA,SAAgBp1G,EAAgBp5E,QAAhB,IAAAo5E,IAAAA,GAAA,QAAgB,IAAAp5E,IAAAA,EAAA,IAC9B,IAAMoF,EAASg0E,EAAS,EAAAx7E,GAAK,EAAA0D,IACrBiJ,EAAYpU,KAAV,GAAEqyB,EAAQryB,KAAL,IACTq3L,EAAYr3L,KAAKs4L,cAQvB,GAPAjB,IAAcA,EAAU16K,MAAMC,QAAUqmE,EAAS,GAAK,QACtD7uE,EAAGk4D,gBAAkB,YAAK2W,GAC1Bh0E,EAAOmF,EAAI,gBAAiBpU,KAAKi3L,qBACjChoL,EAAOojB,EAAK,UAAWryB,KAAKk3L,aAC5BjoL,EAAOojB,EAAK,QAASryB,KAAKm3L,WAC1Bn3L,KAAKo4L,QAAUn1G,EAEXA,EAAQ,CACF,MAAUp5E,EAAI,MAItB,GAHA7J,KAAKu4L,cACLv4L,KAAKi3L,sBAED,EAAO,CACT,IAAI9yK,EAAQ,KAEZ,GAAIkO,EAAI2yJ,oBAAqB,CAC3B,IAAMC,GAAS,IAAA39E,iBAAgB,GAC/BnjF,EAAQkO,EAAI2yJ,oBAAoBC,EAAOl1I,QAASk1I,EAAOj1I,Q,MAE9C,EAAMk1I,cACf/gK,EAAQkO,EAAI3M,eAENI,SAAS,EAAMo/J,YAAa,EAAMC,aAG1C,IAAMtzI,EAAMxf,EAAIrC,eAChB6hB,SAAAA,EAAK6N,kBACLv7B,IAAS0tB,SAAAA,EAAK8N,SAASx7B,G,CAGzB/P,EAAG4gC,O,CAGL,OAAOh1C,IACT,EAEA,YAAAk3L,YAAA,SAAYvkL,GACV,IAAMnG,EAAKmG,EACH0f,EAAQryB,KAAI,IAGL,UAAXwM,EAAGnL,KAFS,CAAC,oBAAqB,uBAEHkQ,MAAK,SAAAmkD,GAAO,OAAArjC,EAAI4lK,kBAAkBviI,EAAtB,MAC7CrjC,EAAI2oC,YAAY,mBAChBxuD,EAAG+gB,iBAEP,EAEA,YAAA4pK,UAAA,SAAU3qL,GAER,IAAMi5D,EAAgBj5D,EAAGi5D,eAAiB1lE,OAAO0lE,cAC3C1kD,EAAO0kD,EAAc1R,QAAQ,QAC7BykI,EAAW/yH,EAAc1R,QAAQ,aAEvC,GAAIhzC,IAASy3K,EAAU,CACrBhsL,EAAG+gB,iBACH,IAAM2oD,EAAOn1D,EAAKtR,QAAQ,kBAAmB,SAC7CzP,KAAKqyB,IAAI2oC,YAAY,cAAc,EAAOkb,E,CAE9C,EAKA,YAAAqiH,YAAA,sBACEv4L,KAAK43L,aAAaniL,SAAQ,SAAAlT,GACxB,GAAI,EAAK80L,aACF90L,EAAO0c,OAAU1c,EAAO0c,OAAS1c,EAAO0c,MAAM,EAAM,EAAKoT,MAAQ,GAAI,CACxE,IAAM,EAAQ9vB,EAAOoQ,OAAS,QACtBw+K,EAAQ5uL,EAAM,IAClB4uL,IACDA,EAAY,YAAK,IAAW,WAC3B5uL,EAAO2K,OAAO,EAAM3K,GACpB,EAAK00L,qBACP,E,CAIR,GACF,EAOA,YAAAS,UAAA,SAAUn1L,EAA8BsH,QAAA,IAAAA,IAAAA,EAAA,IAC9B,IAAA0D,EAAS1D,EAAI,KACfwtL,EAAYr3L,KAAKs4L,cAEvB,GAAIjB,EAAW,CACL,IAAAn9F,EAAgC33F,EAAM,KAAhC,EAA0BA,EAAM,WAApBiF,OAAI,IAAG,GAAC,EAAC,EAC7B2pL,EAAMz8K,SAASC,cAAc,QAInC,IAAK,IAAItT,KAHT8vL,EAAIv8K,UAAY5U,KAAKy2B,QAAQ9H,OAC7BpsB,EAAO4uL,IAAMA,EAEG3pL,EACd2pL,EAAIpsK,aAAa1jB,EAAKmG,EAAKnG,IAGV,iBAAR64F,EACTi3F,EAAInqG,UAAYkT,EAEhBi3F,EAAI1sK,YAAYy1E,GAGlBm9F,EAAU5yK,YAAY0sK,E,CAGpB5jL,IACFvN,KAAKqD,QAAQsB,KAAKpC,GAClBvC,KAAKu4L,cAET,EAMA,YAAAX,WAAA,WACE,OAAO53L,KAAKqD,OACd,EAMA,YAAA8sB,UAAA,WACE,OAAOnwB,KAAKqyB,IAAIrC,cAClB,EAQA,YAAAzV,KAAA,SAAKi8E,EAAiB9uF,GACpB1H,KAAKqyB,IAAI2oC,YAAYw7B,GAAS,EAAO9uF,EACvC,EAMA,YAAA4wL,YAAA,WACE,OAAOt4L,KAAKq3L,SACd,EAOA,YAAAN,WAAA,SAAWrvL,EAA6B,G,IAAEwO,QAAF,MAAmC,CAAC,EAAC,GAA7B,OACxC,EAAkBlW,KAAhBkjF,EAAE,KAAE7wD,EAAG,MAAEje,EAAE,KACby9B,EAAMxf,EAAIrC,eAEhB,GAAI6hB,GAAOA,EAAIm7B,WAAY,CACzB,IAAM,GAAQ,IAAA+Y,UAAS3xE,GACjBiQ,EAAOgO,EAAI1d,cAAc,OACzB,EAAQk9B,EAAIo7B,WAAW,GAC7B,EAAMwrH,kBAEF,IAAAvnL,UAASxJ,GACX2c,EAAK2iE,UAAYt/E,EACRA,GACT2c,EAAKI,YAAY/c,GAGnBtH,MAAMC,UAAUC,MAAMM,KAAKyjB,EAAKE,YAAY9O,SAAQ,SAAAijL,GAClD,EAAMC,WAAWD,EACnB,IAEA7mJ,EAAI6N,kBACJ7N,EAAI8N,SAAS,GACbvrC,EAAG4gC,QAEC9+B,GAAU,IACZ,EAAMrK,KAAK,eAAe,WACxB,IAAM+sL,EAAQ,EAAMhlL,KAAK,WAAI6iL,GAAY,MAAK,GACzCmC,IACL11G,EAAGwb,YAAYk6F,GACfA,EAAMntD,iBAAiBgrD,IACzB,IACA,EAAM3yL,QAAQ,W,CAGpB,EACF,EAvUA,G,opECrEM+0L,GAAW,oDAMX,GAAS,CACb51G,OALsB,aAMtBoL,QALuB,cAMvBwC,OALsB,cAYxB,eAmBE,WAAY3N,GAAZ,MACE,YAAMA,EAAI,iBAAkB,KAAS,KAVvC,EAAAx5E,OAAS,GAWC,IAAAuO,EAAW,EAAI,OACjBsrE,EAAOtrE,EAAOksE,aAEhBZ,IACFtrE,EAAOisE,YAAcX,EAAOtrE,EAAOisE,aAGrC,EAAKD,IAAMhsE,EAAOisE,YAClB,EAAK7gF,QAAU4U,EAAO5U,SAAW,GACjC,IAAM8B,EAAQ,IAAI,K,OAClB,EAAKA,MAAQA,EACbA,EAAMsC,GAAG,qBAAsB,EAAK+pF,YAAa,GACjD,EAAK2mG,gBAAiB,IAAA7wG,WAAS,WAAM,SAAKkK,aAAL,GAAoB,G,CAC3D,CAgUF,OAlWkD,QAoChD,YAAAq6B,OAAA,WACE,IAAK,IAAArtB,UAAL,CACQ,IAAAvmF,EAAWjY,KAAI,OACjBujF,EAAOtrE,EAAOksE,aACdozG,EAAWt/K,EAAO44E,OAClBoM,GAAU,SAAS,MAAO,CAC9B9P,OAAO,KAAAvZ,IAAG,UAAG2P,EAAI,gBAAgBg0G,GAAY,UAAGh0G,EAAI,kBAAUA,EAAI,qBAEpEvjF,KAAKi9F,QAAUA,EACfj9F,KAAK84L,SAAQ,SAAS,SAGtB,IAAArxL,IAAGw1F,EAAS,aAAa,SAAA/xF,GAAK,OAAAA,EAAEmjB,iBAAF,GAXT,CAYvB,EAEA,YAAAmjE,YAAA,WACQ,MAAwBxxF,KAAtBmF,EAAK,QAAE+9E,EAAE,KAAEx5E,EAAM,SACzBw5E,EAAGp/E,QAAQ4F,EAAOmnF,OAAQ,CACxBunG,UAAWjzL,EAAMxB,IAAI,eACrB88C,UAAWzgD,KAAKk1F,eAChB7xF,QAASrD,KAAK2rF,UAElB,EAEA,YAAAt8E,QAAA,W,UACgB,QAAd,EAAArP,KAAK+4L,iBAAS,SAAE1pL,UACO,QAAvB,EAAc,QAAd,EAAArP,KAAKu6I,iBAAS,eAAElrI,eAAO,iBACvBrP,KAAKmF,MAAMmG,gBAAgB5C,MAAM,CAAEkF,QAAQ,IAC3C5N,KAAKm4L,eAAevtI,UACpB,SAAS5qD,KAAKi9F,QAChB,EAOA,YAAAu5C,WAAA,SAAWhqI,GACT,IAAMi2E,EAASj2E,EAAGrH,MAAMxB,IAAI,UAC5B3D,KAAKi9F,QAAQtgF,MAAMqmC,cAAgB,MACnChjD,KAAKg5L,cACLv2G,EAAOqC,aAAargE,YAAYzkB,KAAKi9F,QACvC,EAQA,YAAA67F,QAAA,SAAQ1kL,GACA,IAAA2kL,EAAc/4L,KAAI,UAClB,EAAiCA,KAA/BkjF,EAAE,KAAEe,EAAG,MAAEozG,EAAS,YAAEp/K,EAAM,SAC5B5U,EAAUrD,KAAKqD,SAAW,MAAI4U,EAAO5U,SAAQ,GAC7CozB,EAAU,CACd4gK,UAAW,UAAGpzG,EAAG,aACjBt1D,OAAQ,UAAGs1D,EAAG,UACd/kC,OAAQ,UAAG+kC,EAAG,UACdqzG,SAAU,UAAGrzG,EAAG,YAChB5S,SAAU,UAAG4S,EAAG,aAyBlB,OAtBK80G,GAUHA,EAAU71G,GAAKA,EACf61G,EAAU/B,MAAM5iL,KAVhB2kL,EAAY,IAAI,GAAe71G,EAAI9uE,EAAI,CACrCqiB,QAAO,EACPpzB,QAAO,EACPg0L,UAAS,EACTI,mBAAoBz3L,KAAKi9F,QACzBx9F,OAAQO,OAEVA,KAAK+4L,UAAYA,GAMfA,EAAU1B,YACZr3L,KAAKq3L,UAAY0B,EAAU1B,WAGzB0B,EAAU11L,UACZrD,KAAKqD,QAAU01L,EAAU11L,SAGpB01L,CACT,EA+DA,YAAAz0L,IAAA,SAAIqF,EAAcpH,G,WAAA,IAAAA,IAAAA,EAAA,IAChBA,EAAOoH,KAAOA,EACA,QAAd,EAAA3J,KAAK+4L,iBAAS,SAAErB,UAAUn1L,EAAgC,CAAEgL,MAAM,GACpE,EAUA,YAAA5J,IAAA,SAAIgG,G,MACEuD,EAMJ,OALc,QAAd,EAAAlN,KAAK+4L,iBAAS,SAAEnB,aAAaniL,SAAQ,SAAAlT,GAC/BA,EAAOoH,MAAQA,IACjBuD,EAAS3K,EAEb,IACO2K,CACT,EAMA,YAAAy+E,OAAA,W,MACE,OAAqB,QAAd,EAAA3rF,KAAK+4L,iBAAS,eAAEnB,eAAgB,EACzC,EAUA,YAAAxyL,OAAA,SAAOuE,G,MACCtG,EAAUrD,KAAK2rF,SACfppF,EAASvC,KAAK2D,IAAIgG,GAExB,GAAIpH,EAAQ,CACV,IAAM4uL,EAAM5uL,EAAO4uL,IACbrwL,EAAQuC,EAAQwB,QAAQtC,GACf,QAAf,EAAA4uL,aAAG,EAAHA,EAAKlsK,kBAAU,SAAEnH,YAAYqzK,GAC7B9tL,EAAQuB,OAAO9D,EAAO,E,CAGxB,OAAOyB,CACT,EASA,YAAA2/E,IAAA,SAAI3/E,GACF,IAAMk3I,EAAMz5I,KAAK+4L,UACXE,GAAY,IAAA/nL,UAAS3O,GAAUvC,KAAK2D,IAAIpB,GAAUA,EAEpDk3I,GAAOw/C,IACTA,EAAU/rL,OAAOusI,EAAKw/C,GACtBx/C,EAAIw9C,sBAER,EAMA,YAAA/hG,aAAA,WACE,OAAOl1F,KAAKi9F,OACd,EAMA,YAAAi8F,eAAA,WACQ,IAAEh2G,EAAgBljF,KAAd,GAAEi9F,EAAYj9F,KAAL,QACb+nF,EAAK,KACLtF,EAASS,EAAGsB,OACV7nE,EAAUsgF,EAAO,MACnBp7E,EAAM4gE,EAAOgY,wBAAwBz6F,KAAK2nF,OAASsV,EAAS,CAChEtqF,MAAO,sBACP+c,KAAM,IAER,CAAC,MAAO,OAAQ,SAAU,SAASja,SAAQ,SAAApU,GACzC,IAAMqG,EAAQma,EAAIxgB,IACd,IAAAmiG,OAAM97F,KACRiV,EAAMtb,IAAc,IAAA6P,UAASxJ,GAASA,GAASA,GAAS,GAAKqgF,EAEjE,GACF,EAQM,YAAA9E,OAAN,SAAa3gD,EAAqBm3G,EAAqB5vI,G,YAAA,IAAAA,IAAAA,EAAA,I,mGAMrC,OALhB7J,KAAK2nF,OAASrlD,EAAKluB,GACXmmI,GAAF,EAAoBv6I,MAAT,UAAEkjF,EAAE,KACf9uE,EAAKkuB,EAAKwzG,uBAEhB91I,KAAKi9F,QAAQtgF,MAAMC,QAAU,GACb,GAAO29H,EAAYA,EAAUt3D,OAAO7uE,EAAIqlI,GAAOz5I,KAAK84L,QAAQ1kL,GAAI6uE,OAAOp5E,I,OAWvF,OAXMsvL,EAAU,SAEZj2G,IACF37D,WAAWvnB,KAAKk5L,eAAentL,KAAK/L,MAAO,GAC3CkjF,EAAG/3E,IAAI0tL,GAAU74L,KAAKk5L,eAAgBl5L,MACtCkjF,EAAGz7E,GAAGoxL,GAAU74L,KAAKk5L,eAAgBl5L,MACrCkjF,EAAGp/E,QAAQ,aAAcw+B,EAAM62J,IAGjCn5L,KAAKmF,MAAMM,IAAI,CAAE2zL,YAAa92J,IAEvB,CAAP,EAAO62J,G,QAGH,YAAAj/C,WAAN,SAAiB53G,EAAqBm3G,G,yGAC5Bc,EAAcv6I,KAAI,YAETy5I,IAAO,IAAAp3I,YAAWk4I,EAAUL,YACpC,GAAMK,EAAUL,WAAW53G,EAAKluB,GAAIqlI,IADzC,M,OACF,MAAO,CAAP,EAAO,U,OAEP,MAAO,CAAP,EAAOn3G,EAAKwzG,uBAAuB9uD,W,QAIvC,YAAAgyG,YAAA,WACE,IAAMr8K,EAAQ3c,KAAKi9F,QAAQtgF,MACrBjG,EAAO,UACbiG,EAAMmsB,IAAMpyB,EACZiG,EAAM+S,KAAOhZ,EACbiG,EAAMC,QAAU,MAClB,EAQA,YAAAyxE,QAAA,SAAQ/rD,EAAqBm3G,GACnB,IAAAv2D,EAAOljF,KAAI,GACbu6I,EAAYv6I,KAAKu6I,UAEjBnmI,EAAKkuB,EAAKwzG,uBAEZyE,EACFA,EAAUlsD,QAAQj6E,EAAIqlI,GAEtBA,GAAOA,EAAIprD,UAGbruF,KAAKg5L,cAED91G,IACFA,EAAG/3E,IAAI0tL,GAAU74L,KAAKk5L,eAAgBl5L,MACtCkjF,EAAGp/E,QAAQ,cAAew+B,EAAMm3G,IAGlCz5I,KAAKmF,MAAMK,MAAM,cACnB,EACF,EAlWA,CAAkD,G,0BCtClD,SAN+B,CAC7B0+E,YAAa,OACbp9E,SAAU,CAAC,EACX62G,QAAQ,G,48BC4BJ07E,GAAc,CAClB,CAAC,UAAW,UAAW,WACvB,CAAC,SAAU,SAAU,UACrB,CAAC,aAAc,aAAc,cAC7B,CAAC,OAAQ,iBACT,CAAC,QAAS,kBACV,CAAC,cAAe,cAChB,CAAC,eAAgB,eACjB,CAAC,YAAa,iBAAkB,mBAChC,CAAC,cAAe,aAAc,eAC9B,CAAC,cAAe,mBAAoB,WACpC,CAAC,cAAe,mBAAoB,WACpC,CAAC,cAAe,aAAc,eAC9B,CAAC,cAAe,aAAc,eAC9B,CAAC,mBAAoB,kBAAmB,eACxC,CAAC,oBAAqB,mBAAoB,iBAC1C,CAAC,mBAAoB,aAAc,eACnC,CAAC,iBAAkB,gBAAiB,aACpC,CAAC,iBAAkB,iBACnB,CAAC,iBAAkB,iBACnB,CAAC,kBAAmB,kBACpB,CAAC,iBAAkB,gBAAiB,iBACpC,CAAC,mBAAoB,mBACrB,CAAC,wBAAyB,uBAC1B,CAAC,iBAAkB,kBAGrB,eASE,WAAYn2G,GAAZ,MACE,YAAMA,EAAI,WAAY,KAAS,KATjC,EAAAo2G,gBAAkBA,GAAA,WAClB,EAAAC,gBAA2C,CAAC,EAC5C,EAAAthI,SAA0C,CAAC,EAC3C,EAAA/Y,OAA8B,CAAC,EAOrB,IAAAjnC,EAAW,EAAI,OACjBsrE,EAAOtrE,EAAOksE,aACZo1G,EAAoB,EAAI,gBAqHhC,IAAK,IAAMjvL,KAnHPi5E,IACFtrE,EAAOisE,YAAcX,EAAOtrE,EAAOisE,aAIrCl7D,OAAO/nB,KAAKgX,EAAOnR,UAAW2O,SAAQ,SAAA0vB,GACpC,IAAMnkC,EAAMiX,EAAOnR,SAAUq+B,GACzBnkC,EAAIsJ,IAAI,EAAKhG,IAAItD,EAAIsJ,GAAItJ,EAC/B,IAEAu4L,EAAgB,cAAgB,CAC9Br3G,IAAG,SAACC,GACF,OAAOA,EAAGyT,WAAW,wBACvB,GAGF2jG,EAAgB,aAAe,CAC7Br3G,IAAG,SAACC,GACFA,EAAGyT,WAAW,aACdzT,EAAGyT,WAAW,aAAc,CAAErzF,OAAQ,mBACxC,GAGFg3L,EAAgB,YAAc,CAC5Br3G,IAAG,SAACC,EAAI8C,EAAQp7E,QAAA,IAAAA,IAAAA,EAAA,IAEd,IAAMq5E,EAAKf,EAAG4D,WACRpzE,EAAQ9I,GAAQA,EAAK8I,MACnB4T,EAAW1c,EAAI,OACjBgoC,EAAMtrB,GAAU47D,EAAG6G,cACnBwwG,EAASjzK,EAAS,CAACA,GAAU,MAAI47D,EAAGoD,kBAAgB,GACpDk0G,EAAa9mL,GAAuB,aAAdA,EAAMnQ,KAC5Bk3L,EAAgB,CAAEj7F,iBAAkB,GAG1C,IAAK5sD,IAAQA,EAAIluC,IAAI,aACnB,OAAOu/E,EAAGuC,WAAW,gCAGvB,IAAMzlE,EAAO6xB,EAAIluC,IAAI,UAAYu/E,EAAGv/E,IAAI,SAClCg2L,EAAU,WAAM,OAAAz2G,EAAGqS,YAAYmkG,EAAf,EAChBE,GAAU,IAAArjL,UARF,CAAC,WAAY,aAQKyJ,GAChCw5K,EAAO/jL,SAAQ,SAAAo8B,GAAO,OAAAA,EAAI/tC,QAAQ,UAAZ,IAGtB21L,EAAalyK,WAAWoyK,EAAS,GAAKA,IAEtC,IAAMj2G,EAAU,SAAChrE,GACfwqE,EAAGp/E,QAAQ,UAAG8kI,GAAS,UAAUlwH,EACnC,EACMirE,EAAS,SAACjrE,GACdwqE,EAAGp/E,QAAQ8kI,GAAWlwH,EACxB,EACMkrE,EAAQ,SAAC14E,EAAQrB,EAAW6O,GAChC8gL,EAAO/jL,SAAQ,SAAAo8B,GAAO,OAAAA,EAAIpsC,IAAI,SAAU,WAAlB,IACtB08E,EAAGjsE,OAAOsjL,GACV3nJ,EAAI8iD,aACJzR,EAAGp/E,QAAQ,UAAG8kI,GAAS,QAAQlwH,GAG/B6O,YAAW,WAAM,OAAA27D,EAAG2S,WAAW6jG,EAAd,KAGhBE,GAAWlhL,EAAKmuF,YAAc3jB,EAAGz9E,IAAI,WAAY,EACpD,EAEA,GAAIm0L,EAEQz3G,EAAGyT,WAAW,sBAAuB,CAC7CpM,WAAY,EACZxpE,KAAI,EACJuG,OAAQsrB,EACR6xC,QAAO,EACPC,OAAM,EACNC,MAAK,EACLjxE,MAAK,QAEF,CACD8mL,GACF9mL,EAAMqgD,aAAaoB,aAAaviB,EAAIvP,KAAKluB,GAAI,EAAG,GAIlD,IAAMylL,EAAU13G,EAAGgD,SAASxhF,IAAI,aAChCk2L,EAAQn2G,QAAUA,EAClBm2G,EAAQl2G,OAASA,EACjBk2G,EAAQ7pG,mBAAqBpM,EAE7Bi2G,EAAQ5pG,qBAAqBupG,E,CAG/BA,EAAO/jL,SAAQ,SAAAo8B,GAAO,OAAAA,EAAIpsC,IAAI,SAAU,mBAAlB,GACxB,GAIF8zL,EAAgB,aAAe,SAAAruL,GAAK,OAAAA,EAAE5D,YAAYP,MAAd,EACpCwyL,EAAgB,aAAe,SAAAruL,GAAK,OAAAA,EAAE5D,YAAYL,MAAd,EACpCoyL,GAAY5jL,SAAQ,SAAAgxE,GAClB,IAAMqzG,EAASrzG,EAAK,GACd/wB,EAAM,OAAQ,YAAU+wB,EAAK,KAAM+lC,QACnCuqB,EAAU,eAAQtwD,EAAK,IAC7B8yG,EAAgBxiD,GAAWrhF,EACvBokI,IACFP,EAAgBO,GAAUpkI,EAE1B,CAAC,MAAO,QAAQjgD,SAAQ,SAAA9L,GACtBu5E,EAAGz7E,GAAG,UAAGkC,EAAI,YAAImwL,IAAU,W,IAAC,sDAAY,OAAA52G,EAAGp/E,QAAO,MAAVo/E,EAAE,IAAS,UAAGv5E,EAAI,YAAIotI,IAAcr2I,GAAI,GAAxC,GAC1C,IAEJ,IAGAuX,EAAO9S,MAAQ+9E,EAAGsB,OAED+0G,EACf,EAAKj1L,IAAIgG,EAAIivL,EAAgBjvL,IAG/B,OAAO,CACT,CAkOF,OAzW4C,QA2J1C,YAAAhG,IAAA,SAA8BgG,EAAYksF,GACxC,IAAItpF,GAAwB,IAAA7K,YAAWm0F,GAAW,CAAEtU,IAAKsU,GAAYA,EAWrE,OATKtpF,EAAOyQ,OACVzQ,EAAO8kL,QAAS,UAGX9kL,EAAO3F,WAEd2F,EAAO5C,GAAKA,EACZtK,KAAKi4D,SAAS3tD,GAAMgvL,GAAA,kBAAuBpsL,GAEpClN,IACT,EAUA,YAAA2D,IAAA,SAAI2G,GACF,IAAIksF,EAAex2F,KAAKi4D,SAAS3tD,GASjC,OAPI,IAAAjI,YAAWm0F,IACbA,EAAU,IAAIA,EAAQx2F,KAAKiY,QAC3BjY,KAAKi4D,SAAS3tD,GAAMksF,GACVA,GACVx2F,KAAKkjF,GAAGuC,WAAW,WAAIn7E,EAAE,wBAGpBksF,CACT,EAcA,YAAA7vF,OAAA,SAAO2D,EAAYorD,QAAA,IAAAA,IAAAA,EAAA,IACjB,IAAM8gC,EAAUx2F,KAAK2D,IAAI2G,GAEzB,GAAIksF,EAAS,CACX,IAAMujG,EAAS,SACVvjG,EAAQ7mF,YAAYtP,WACpBq1D,GAEL11D,KAAKsE,IAAIgG,EAAIyvL,GAEb,IAAMD,EAAST,GAAYpjL,QAAO,SAAAy/C,GAAO,qBAAQA,EAAI,MAASprD,GAAMorD,EAAI,EAA/B,IAAmC,GAC5EokI,GAAU95L,KAAKsE,IAAIw1L,EAAO,GAAIC,E,CAGhC,OAAO/5L,IACT,EAOA,YAAAyN,IAAA,SAAInD,GACF,QAAStK,KAAKi4D,SAAS3tD,EACzB,EAMA,YAAAqhF,OAAA,WACE,OAAO3rF,KAAKi4D,QACd,EAUA,YAAAiqB,IAAA,SAAI53E,EAAYzH,GACd,YADc,IAAAA,IAAAA,EAAA,IACP7C,KAAK41F,WAAW51F,KAAK2D,IAAI2G,GAAKzH,EACvC,EAUA,YAAA8a,KAAA,SAAKrT,EAAYzH,GACf,YADe,IAAAA,IAAAA,EAAA,IACR7C,KAAK8iF,YAAY9iF,KAAK2D,IAAI2G,GAAKzH,EACxC,EAiBA,YAAAyyF,SAAA,SAAShrF,GACP,OAAOtK,KAAKmmI,YAAYz/G,eAAepc,EACzC,EASA,YAAA67H,UAAA,WACE,OAAOnmI,KAAKk/C,MACd,EASA,YAAA02C,WAAA,SAAWY,EAAyB3zF,GAClC,IAAIqK,EAEJ,QAHkC,IAAArK,IAAAA,EAAA,IAG9B2zF,GAAWA,EAAQtU,IAAK,CACpB,IAAEgB,EAAeljF,KAAb,GAAEiY,EAAWjY,KAAL,OACZsK,EAAKksF,EAAQlsF,GACbi4E,EAASW,EAAG2T,OAEb72F,KAAKs1F,SAAShrF,KAAOzH,EAAQ47C,OAAUxmC,EAAO0lG,SAEjDzwG,EAASq1E,GAAUiU,EAAQzR,QAAQxC,EAAQ1/E,GAEvCyH,GAAMksF,EAAQ74E,OAAS64E,EAAQw7F,SAAWnvL,EAAQmiF,QACpDhlF,KAAKk/C,OAAO50C,GAAM4C,G,CAKxB,OAAOA,CACT,EASA,YAAA41E,YAAA,SAAY0T,EAAyB3zF,GACnC,IAAIqK,EAEJ,QAHmC,IAAArK,IAAAA,EAAA,IAG/B2zF,GAAWA,EAAQtU,IAAK,CACpB,IAAEgB,EAAeljF,KAAb,GAAEiY,EAAWjY,KAAL,OACZsK,EAAKksF,EAAQlsF,GACbi4E,EAASW,EAAG2T,QAEd72F,KAAKs1F,SAAShrF,IAAOzH,EAAQ47C,QAAUxmC,EAAO0lG,UAC5CrzG,UAAWtK,KAAKk/C,OAAO50C,GAE3B4C,EAASspF,EAAQtR,SAAS3C,EAAQ1/E,G,CAItC,OAAOqK,CACT,EAQA,YAAAgF,OAAA,SAAOskF,GAGL,OAFKA,EAAQ74E,OAAM64E,EAAQw7F,QAAS,GAE7B,IADKsH,GAAA,kBAAuB9iG,GAC5B,CAAQx2F,KAAKiY,OACtB,EAEA,YAAA5I,QAAA,WACErP,KAAKu5L,gBAAkB,CAAC,EACxBv5L,KAAKi4D,SAAW,CAAC,EACjBj4D,KAAKk/C,OAAS,CAAC,CACjB,EACF,EAzWA,CAA4C,G,YCb5C,IACEkjI,QAAS,CACP,CACEz4K,KAAM,UACNwT,MAAM,EACNyU,WAAY,CAAC,UAAW,QAAS,WAAY,MAAO,QAAS,OAAQ,WAEvE,CACEjoB,KAAM,OACNwT,MAAM,EACNyU,WAAY,CACV,iBACA,YACA,kBACA,cACA,gBACA,QACA,aACA,YACA,cACA,eAGJ,CACEjoB,KAAM,YACNwT,MAAM,EACNyU,WAAY,CAAC,QAAS,SAAU,YAAa,aAAc,SAAU,YAEvE,CACEjoB,KAAM,aACNwT,MAAM,EACNyU,WAAY,CACV,cACA,YACA,cACA,iBACA,QACA,cACA,aACA,gBAGJ,CACEjoB,KAAM,cACNwT,MAAM,EACNyU,WAAY,CAAC,mBAAoB,gBAAiB,SAAU,aAAc,eAE5E,CACEjoB,KAAM,QACNwT,MAAM,EACNyU,WAAY,CAAC,UAAW,aAAc,eAG1CggE,SAAU,GACV1N,YAAa,MACb2M,QAAQ,EACRmpG,iBAAiB,EACjBC,kBAAkB,EAClBC,mBAAmB,EACnBC,cAAc,EACdC,iBAAiB,EACjBC,cAAe,CAAC,QAAS,W,kzCC7B3B,4B,8CAmeA,QAneqF,QAI5E,EAAA3nD,YAAP,WACE,OAAO,IAAAxlI,QAAOlN,KAAKK,UAAW,WAChC,EAKA,YAAAyG,SAAA,WACE,MAAO,CACL6C,KAAM,GACN2yE,SAAU,GACV95E,KAAM,GACNsE,SAAU,GACVgrB,KAAM,GACNpqB,MAAO,GACPwyF,KAAM,GACNogG,aAAc,GACd/7F,OAAQ,GACR7/C,SAAS,EACT67I,YAAa,CAAC,UAAW,WACzBx/J,MAAM,EACN0zF,WAAW,EACX+rE,WAAW,EACXC,cAAUp1L,EACVq1L,eAAgB,KAChBC,aAAc,KAElB,EAEA,YAAApzL,WAAA,SAAWuhB,EAAYjf,QAAZ,IAAAif,IAAAA,EAAA,SAAY,IAAAjf,IAAAA,EAAA,IACrB7J,KAAKkjF,GAAKr5E,EAAKq5E,GACf,IAAM54E,EAAKtK,KAAKsqH,SAAW,GACrB3gH,EAAe3J,KAAK2D,IAAI,SAAW3D,KAAK2D,IAAI,UAAY,IAE7D3D,KAAK2D,IAAI,aAAe3D,KAAKyF,IAAI,YAAakE,GAAQW,GAAImF,QAAQ,KAAM,MACzE,IAAMgX,EAAOzmB,KAAK2D,IAAI,aACrB3D,KAAK2D,IAAI,OAAS3D,KAAKyF,IAAI,KAAMghB,IAEjC9c,GAAQ3J,KAAKyF,IAAI,QAAQ,IAAAwvG,YAAWxuF,GAAMhX,QAAQ,KAAM,MACzDzP,KAAKyH,GAAG,SAAUzH,KAAK46L,aAEvBC,EAASC,SAAS96L,KAAM8oB,EAAOjf,EACjC,EAEA,YAAAkxL,gBAAA,W,QAEE,OAA4B,QAArB,EAAe,QAAf,EAAA/6L,KAAKiF,kBAAU,eAAE4E,YAAI,eAAEmxL,UAChC,EAEA,YAAAJ,YAAA,SAAY5+J,EAASnyB,G,MAArB,YAAqB,IAAAA,IAAAA,EAAA,IACX,IACFwpF,EADSrzF,KAAI,GACL8oF,OACRn/E,EAAO3J,KAAK0sF,UACZuuG,EAAUpxL,EAAKyrH,QACf5tH,EAAQuzL,EAAU,GAAKj7L,KAAKk7L,eAAerxL,GAC3CmxL,EAAah7L,KAAK+6L,kBAElBr7K,EAAK1f,KAAK4F,oBACV6Z,GAAO,IAAAxe,MAAKye,GAAI/J,QAAO,SAAC/V,EAAGC,GAE/B,OADAD,EAAEC,GAAK,EAAK2O,SAAS3O,GACdD,CACT,GAAG,CAAC,GAEEu7L,EAAS,UAAI,IAAAl6L,MAAKjB,KAAKo7L,oBAAoB,GAAF,CAAE,QAAK,GAChDC,GAAU,IAAAp6L,MAAKye,GACf47K,GAAczxL,EAAK0xL,OAASP,IAAeC,GAAWE,EAAO5pL,MAAK,SAAA4zB,GAAK,OAAAk2J,EAAQx2L,QAAQsgC,IAAM,CAAtB,KACvEuxH,EAAW12J,KAAK2D,IAAI,YACpBqwH,EAAS,CAAE13C,SAAUt8E,KAAMyf,KAAI,EAAEC,GAAE,EAAEhY,MAAK,EAAEmC,KAAI,GACtDwpF,EAAGmoG,QAAQnoG,EAAG3pF,OAAO+xL,eAAgBznE,GACrC0iC,GAAYA,EAAS1iC,GACrBsnE,GAAct7L,KAAK07L,mBAAgB,MAAI/xL,GAAOjC,EAAK,GAAImC,EACzD,EAEA,YAAA6xL,iBAAA,SAAiB/+K,EAAmB9S,G,MAC5BwpF,EAAY,QAAP,EAAArzF,KAAKkjF,UAAE,eAAEv/E,IAAI,gBACxB0vF,SAAAA,EAAIsoG,gBAAgB,SAAKh/K,GAAK,CAAE+rE,MAAO7+E,EAAKg/E,aAAch/E,EAC5D,EAEA,YAAA+xL,IAAA,SAAI9yK,EAAmBjf,QAAA,IAAAA,IAAAA,EAAA,IACjBA,EAAKgyL,WAAUhyL,EAAK0xL,MAAO,GACvB,IAAAh+E,EAAqB1zG,EAAI,QAAbiN,EAAI,GAAKjN,EAAvB,aAGN,OADAif,EAAM4/D,OAAS5xE,EAAK+xE,aAAc00B,GAC3Bv9G,KAAKyF,IAAIqjB,EAAO,SAAKhS,GAAI,CAAE+xE,WAAY//D,EAAM4/D,MACtD,EAEA,YAAA7rB,GAAA,SAAG/zC,EAA6Bjf,QAAA,IAAAA,IAAAA,EAAA,IAE9B7J,KAAKyF,IAAIqjB,EAAO,SAAKjf,GAAI,CAAE0xL,MAAM,IACnC,EAEA,YAAAv5I,KAAA,WAAQ,EAMR,YAAAsoE,MAAA,WACE,OAAOtqH,KAAK2D,IAAI,KAClB,EAQA,YAAA2kH,QAAA,WACE,OAAOtoH,KAAK2D,IAAI,OAClB,EAMA,YAAA+oF,QAAA,WACE,OAAO1sF,KAAK2D,IAAI,WAClB,EAQA,YAAAsiI,SAAA,SAASp8H,G,WAAA,IAAAA,IAAAA,EAAA,IACC,MAAkBA,EAAI,OAAtBm9H,OAAM,IAAG,GAAI,EACf18H,EAAKtK,KAAKsqH,QACV3gH,EAAO3J,KAAK2D,IAAI,SAAW3D,KAAK2D,IAAI,SAC1C,OAAQqjI,IAAiB,QAAP,EAAAhnI,KAAKkjF,UAAE,eAAE5vB,EAAE,kCAA2BhpD,MAAUX,CACpE,EAQA,YAAA6lD,SAAA,SAAS3lD,QAAA,IAAAA,IAAAA,EAAA,IACC,IAAAksK,EAAclsK,EAAI,UACpB5D,EAAMjG,KAAK2D,IAAI,SACrB,OAAQ3D,KAAK87L,YAAe/lB,EAAqC9vK,EAAzBjG,KAAK+7L,iBAC/C,EAQA,YAAAD,SAAA,SAASjyL,QAAA,IAAAA,IAAAA,EAAA,IACC,IACFmyL,EADenyL,EAAI,UACO7J,KAAKi8L,kBAC/Bh2L,EAAMjG,KAAK2D,IAAI,SACrB,QAAQ,IAAAimF,aAAY3jF,IAAgB,KAARA,IAAe+1L,CAC7C,EAMA,YAAAE,eAAA,WACE,OAAOl8L,KAAK87L,aAAe97L,KAAK87L,SAAS,CAAEK,UAAU,GACvD,EAYA,YAAA1zG,SAAA,SAAS5+E,G,WAAA,IAAAA,IAAAA,EAAA,IACP,IAAMF,EAAO3J,KAAK0sF,UAElB,OAAO,EAAP,IADY7iF,EAAK++F,WAAY,IAAAA,WAAUj/F,GAAQA,GAC/B3J,KAAKk7L,eAAerxL,GAAK,CAC3C,EAMA,YAAAkyL,gBAAA,WACE,IAAM/3G,EAAMhkF,KAAK2D,IAAI,WACrB,MAAO,WAAI,IAAAimF,aAAY5F,GAAahkF,KAAK2D,IAAI,YAAfqgF,EAChC,EAUA,YAAAo4G,QAAA,SAAQ10L,EAAemC,QAAA,IAAAA,IAAAA,EAAA,IACrB,IAAMy5H,EAAmB,OAAV57H,GAA4B,KAAVA,EAAe1H,KAAKo7L,kBAAoBp7L,KAAKq8L,aAAa30L,EAAOmC,GAClG,OAAO7J,KAAK47L,IAAIt4D,EAAsBz5H,EACxC,EAMA,YAAA+nG,UAAA,WACE,QAAS5xG,KAAK2D,IAAI,UACpB,EAQA,YAAA+E,MAAA,SAAMmB,GAEJ,YAFI,IAAAA,IAAAA,EAAA,IACJ7J,KAAK47L,IAAI57L,KAAKo7L,kBAAmB,SAAKvxL,GAAI,CAAEyrH,SAAS,KAC9Ct1H,IACT,EAMA,YAAAs8L,SAAA,WACE,IAAM/9K,EAASve,KAAKu8L,YACpB,OAAOh+K,EAASA,EAAOi+K,eAAex8L,MAAQA,KAAK87L,SAAS,CAAEK,UAAU,GAC1E,EAMA,YAAAI,UAAA,WACE,OAAOv8L,KAAK+6L,iBACd,EAMA,YAAA0B,OAAA,WACE,QAASz8L,KAAK2D,IAAI,OACpB,EAEA,YAAA04L,aAAA,SAAa30L,EAAemC,GAC1B,OAAO7J,KAAK08L,WAAWh1L,EAAOmC,EAChC,EAEA,YAAAuxL,gBAAA,WACE,MAAO,CAAE1zL,MAAO,GAClB,EASA,YAAAioD,SAAA,SAASjoD,EAAesxI,EAAiBnvI,QAAjB,IAAAmvI,IAAAA,GAAA,QAAiB,IAAAnvI,IAAAA,EAAA,IACvC,IAAMy5H,EAAStjI,KAAK08L,WAAWh1L,GACzBmhF,GAAcmwD,GAEnBnwD,GAAc7oF,KAAKyF,IAAI,CAAEiC,WAAOrC,GAAa,CAAEwjF,WAAU,EAAEj7E,QAAQ,IACpE5N,KAAKyF,IAAI69H,EAAQ,IAAEz6C,WAAU,GAAKh/E,GACpC,EAYA,YAAAk+H,kBAAA,SAAkBrgI,EAAesxI,EAAmBnvI,QAAA,IAAAA,IAAAA,EAAA,IAClD7J,KAAK2vD,SAASjoD,EAAOsxI,EAAU,SAAKnvI,GAAI,CAAEwuJ,UAAW,IACvD,EAaA,YAAAqkC,WAAA,SAAWh1L,EAAemC,QAAA,IAAAA,IAAAA,EAAA,IACxB,IAAMqD,EAAS,CAAExF,MAAK,GAChBu6H,EAAM,aAOZ,IALI,IAAA/wH,UAASxJ,KAAkC,IAAxBA,EAAM7C,QAAQo9H,KACnC/0H,EAAOxF,MAAQA,EAAM+H,QAAQwyH,EAAK,IAAI35C,OACtCp7E,EAAOuhH,WAAY,IAGhBzuH,KAAK2D,IAAI,kBAAoBkG,EAAKmvI,SACrC,OAAO9rI,EAGT,IAAMxM,EAAO,GACTi8L,EAAW,UAAGzvL,EAAOxF,OACrBsU,EAAQ2gL,EAAS93L,QAAQ,KAAO,EAChCmd,EAAM26K,EAASvlL,YAAY,KACzBkjL,EAAeqC,EAASh8K,UAAU,EAAG3E,EAAQ,GAWnD,GAVIs+K,IAAcptL,EAAOotL,aAAeA,GACxC55L,EAAKiE,KAAKqX,GAGNgG,GAAO,GACTthB,EAAKiE,KAAKqd,GAGZ9U,EAAOxF,MAAQ4rB,OAAOjzB,UAAUsgB,UAAUpgB,MAAMo8L,EAAUj8L,GAEtDmJ,EAAK+yL,QAAS,CAChB,IAAMC,EAAMt0G,WAAWr7E,EAAOxF,OAC9BwF,EAAOgxD,KAAOhxD,EAAOxF,MAAM+H,QAAQotL,EAAK,IACxC3vL,EAAOxF,MAAQm1L,C,CAGjB,OAAO3vL,CACT,EAuCA,YAAAguL,eAAA,SAAe,G,IAAE4B,QAAF,MAAuB,CAAC,EAAC,GAAZ,YAC1B,OAAQ98L,KAAK87L,YAAcgB,EAAc98L,KAAK+7L,kBAAoB/7L,KAAK+8L,cACzE,EAUA,YAAAA,aAAA,SAAa92L,EAAc4D,QAAA,IAAAA,IAAAA,EAAA,IACzB,IAAMrJ,EAAKR,KAAK2D,IAAI,gBACdqgF,EAAMhkF,KAAK+7L,kBACbr0L,GAAQ,IAAAkiF,aAAY3jF,GAAQjG,KAAK2D,IAAI,SAAsBsC,EACzD61L,IAAY,IAAAlyG,aAAYliF,IAAoB,KAAVA,EAExC,GAAIA,GAASs8E,GAAOt8E,IAAUs8E,EAC5B,OAAOA,EAGT,GAAIxjF,GAAMs7L,EAAU,CAClB,IAAMkB,EAAqB,QAAPx8L,EAAe,WAAIkH,EAAM+H,QAAQ,OAAQ,IAAG,KAAM/H,EACtEA,EAAQ,UAAGlH,EAAE,YAAIw8L,EAAW,I,CAO9B,OAJIlB,GAAY97L,KAAK2D,IAAI,eAAiBkG,EAAKozL,gBAC7Cv1L,EAAQ,UAAGA,EAAK,gBAGXA,GAAS,EAClB,EAEA,YAAAw1L,kBAAA,SAAkBvC,GAChB36L,KAAK68D,GAAG,CAAE89H,aAAY,GACxB,EAEA,YAAAsB,gBAAA,WACE,OAAOj8L,KAAK2D,IAAI,iBAAmB,IACrC,EAEA,YAAAw5L,UAAA,SAAU77J,QAAA,IAAAA,IAAAA,EAAA,IACR,IAAMtlB,EAAQslB,EAAMz8B,QAAQ,KAAO,EAC7Bmd,EAAMsf,EAAMlqB,YAAY,KAE9B,MAAO,CACLzN,KAAM23B,EAAM3gB,UAAU,EAAG3E,EAAQ,GAAGssE,OACpC5gF,MAAO4rB,OAAOjzB,UAAUsgB,UAAUpgB,MAAM+gC,EAAO,CAACtlB,EAAOgG,GAAO,EAAIA,OAAM3c,IAAYijF,OAExF,EAEA,YAAA80G,kBAAA,SAAkB,G,IAAE72K,EAAM,SAAE++D,EAAS,YAAE88F,EAAO,UACtChqF,EAAM9S,GAAa/+D,EACzB,IAAK6xE,EAAK,OAAO,EAEjB,IAAM9tF,EAAKtK,KAAKsqH,QACVhuC,EAAWt8E,KAAK0sF,UAChB8tG,EAAYx6L,KAAK2D,IAAI,aACrB82L,EAAWz6L,KAAK2D,IAAI,YACpB+2L,EAAiB16L,KAAK2D,IAAI,kBAC1B0lI,EAAajxC,EAAIz0F,IAAI,cACrB05L,EAAcjlG,EAAIz0F,IAAI,oBACxBylI,EAAWhxC,EAAIz0F,IAAI,YAmBvB,IAfI,IAAAzC,SAAQkoI,KACVA,EAAWA,EAASvkI,QAAQy3E,IAAa,IAIvC,IAAAp7E,SAAQmoI,KACVD,EAAWC,EAAWxkI,QAAQy3E,GAAY,GAIxCk+G,IACFpxD,GAAY7iH,GAAW82K,IAAgBA,EAAYx4L,QAAQyF,IAAO,GAAK+yL,EAAYx4L,QAAQy3E,IAAa,IAItG8lG,GAAWqY,EAAU,CACvB,IAAM,GAAa,IAAAx5L,MAAKw5L,GACxBrY,EAAQ3sK,SAAQ,SAAA6nL,GACdA,EAAOC,gBAAgB9nL,SAAQ,SAAAtQ,GAC7B,IAAI,IAAAoR,UAAS,EAAYpR,EAAMmF,IAAK,CAClC,IAAM8H,EAASqoL,EAASt1L,EAAMmF,IAC9B8+H,EAAWA,IAAY,IAAA7yH,UAASnE,EAAQjN,EAAMxB,IAAI,S,CAEtD,GACF,G,CAIF,GAAI+2L,EAAgB,CAClB,IAAM,EAASp1G,GAAaA,EAAU/mE,SAChCg1H,EAAW,GAAU,EAAO5tD,QAClC,GAAI4tD,EAAU,CACZ,IAAM,GAA8B,IAAA/0C,UAAWz+F,OAAOynC,iBAAiB+rG,GAAY,CAAC,GACpF,IAAAhuI,MAAKm1L,GAAgB,SAACtoL,EAAQkqE,GAC5B8sD,EAAWA,GAAY,EAAO9sD,KAAa,IAAA/lE,UAASnE,EAAQ,EAAOkqE,GACrE,G,MAEA8sD,GAAW,C,CAIf,QAASA,CACX,EACF,EAneA,CAAqF,M,YAserFyxD,GAAS2C,eAAiB,SAAUlhH,EAAU77E,EAAKqoB,EAAOjf,QAAA,IAAAA,IAAAA,EAAA,IACxDyyE,EAASj8E,UAAUkH,WAAWhH,MAAME,EAAK,CACvCqoB,E,SAEKjf,GAAI,CACP4zL,SAAU,KAGhB,EAGA5C,GAASC,SAAW,SAAU/wL,EAAS+e,EAAOjf,QAAA,IAAAA,IAAAA,EAAA,KAC3CA,EAAK4zL,UAAY1zL,EAAQi4C,KAAKl5B,EAAOjf,EACxC,E,yuBC5kBA,4B,8CA+GA,QA/GmC,QAIjC,YAAA/C,SAAA,WACE,MAAO,CACLsL,OAAQ,CAAC,EAEb,EAEA,YAAA7K,WAAA,WACE,IAAMk4H,EAAKz/H,KAAKiF,WAEhBjF,KAAKymB,KAAOg5G,aAAE,EAAFA,EAAIh5G,IAClB,EAMA,YAAA6jG,MAAA,WACE,OAAOtqH,KAAKyE,GACd,EAMA,YAAAi5L,SAAA,WACE,IAAM1yG,EAAOhrF,KAAKiF,WAClB,OAAO+lF,EAAOA,EAAKnmF,QAAQ7E,OAAS,CACtC,EAQA,YAAA29L,UAAA,SAAU9zL,QAAA,IAAAA,IAAAA,EAAA,IACR,IAAMuI,EAASpS,KAAK2D,IAAI,UAExB,OAAOkG,EAAK++F,UACR5/E,OAAO/nB,KAAKmR,GAAQuD,QAAO,SAACvR,EAAK/C,GAE/B,OADA+C,GAAI,IAAAwkG,WAAUvnG,IAAQ+Q,EAAO/Q,GACtB+C,CACT,GAAG,CAAC,GACJgO,CACN,EAMA,YAAA6zH,SAAA,W,MACE,OAAgB,QAAT,EAAAjmI,KAAKymB,YAAI,eAAEm3K,cAAc59L,KAClC,EAMA,YAAA69L,WAAA,W,MACE,OAAgB,QAAT,EAAA79L,KAAKymB,YAAI,eAAEq3K,sBAAuB99L,IAC3C,EAKA,YAAAkW,OAAA,W,MACE,OAAgB,QAAT,EAAAlW,KAAKymB,YAAI,eAAEs3K,YAAY/9L,KAChC,EAKA,YAAAoF,OAAA,W,MACE,OAAgB,QAAT,EAAApF,KAAKymB,YAAI,eAAEu3K,YAAYh+L,KAChC,EAMA,YAAAggE,KAAA,SAAKl/D,G,MACH,OAAgB,QAAT,EAAAd,KAAKymB,YAAI,eAAEw3K,UAAUj+L,KAAMc,EACpC,EAOA,YAAAo9L,gBAAA,SAAgBr0L,G,MACd,YADc,IAAAA,IAAAA,EAAA,IACE,QAAT,EAAA7J,KAAKymB,YAAI,eAAEy3K,gBAAgBl+L,KAAM6J,EAC1C,EAMA,YAAAs0L,WAAA,W,MACE,SAAkB,QAAT,EAAAn+L,KAAKymB,YAAI,eAAE9iB,IAAI,WAC1B,EAEA,YAAAy6L,SAAA,SAASt1K,GACP,YADO,IAAAA,IAAAA,EAAA,IACA9oB,KAAKyF,IAAI,SAAU,SACrBzF,KAAK29L,aACL70K,GAEP,EACF,EA/GA,CAAmC,M,ugBCRnC,4B,8CAMA,QANoC,QAGlC,YAAAvhB,WAAA,SAAWy0B,EAAQnyB,QAAA,IAAAA,IAAAA,EAAA,IACjB7J,KAAKymB,KAAO5c,EAAK4c,IACnB,EACF,EANA,CAAoC,M,YAQpCwlG,GAAO5rH,UAAU8E,MAAQ,G,48BCHZk5L,GAAe,SAAC77L,GAAiB,MAAS,YAATA,GAA+B,WAATA,CAAtB,EA6E9C,4B,8CA4SA,QA5SuG,QACrG,YAAAsE,SAAA,WACE,OAAO,SACF,kBAAsB,CACzBw3L,UAAU,EACV1sK,WAAY,GACZ2sK,UAAW,IACX9uI,KAAM,KACN+uI,UAAW,KACXC,QAAS,KACT1jK,MAAM,GAEV,EAEA,YAAAxzB,WAAA,SAAWuhB,EAAYjf,QAAZ,IAAAif,IAAAA,EAAA,SAAY,IAAAjf,IAAAA,EAAA,IAErB,kBAAwB,GAAU7J,KAAM8oB,EAAOjf,GACvC,IAAAq5E,EAAOljF,KAAI,GACb4xB,EAAa,IAAI,GAAW5xB,KAAK2D,IAAI,eAAiB,GAAI,CAC9Du/E,GAAE,EACF83G,WAAYh7L,OAEdA,KAAKyF,IAAI,aAAcmsB,EAAY,CAAEhkB,QAAQ,IAC7C5N,KAAKwK,SAASonB,EAAY,SAAU5xB,KAAK0+L,gBAEzC,YAAkB1+L,KAAM8oB,EAAOjf,EACjC,EAEA,sBAAI,yBAAU,C,IAAd,WAEE,OAAO7J,KAAK2D,IAAI,eAAkB,EACpC,E,gCAMA,YAAA45L,cAAA,WAEE,OAAO,MAAIv9L,KAAK2D,IAAI,cAAcH,QAAM,EAC1C,EAOA,YAAAm7L,YAAA,SAAYr0L,GACV,OAAOtK,KAAK4xB,WAAW3b,QAAO,SAAAwQ,GAAQ,OAAAA,EAAK6jG,UAAYhgH,GAAMmc,EAAKimE,YAAcpiF,CAA1C,IAA8C,EACtF,EAOA,YAAAs0L,cAAA,SAAc99L,GAEZ,OAAOd,KAAK2D,IAAI,cAAcF,GAAG3C,EACnC,EAMA,YAAA+9L,WAAA,WACE,QAAS7+L,KAAK2D,IAAI,WACpB,EAYA,YAAAg6L,UAAA,SAAU,G,IAAEmB,QAAF,MAAmC,CAAC,EAAC,GAA7B,OAChB,OAAO9+L,KAAKu9L,gBAAgB5nL,QAAO,SAACvR,EAAKqiB,GAGvC,OADAriB,EADY06L,EAASr4K,EAAKimE,UAAYjmE,EAAK6jG,SAChC,UAAG7jG,EAAKy0K,kBACZ92L,CACT,GAAG,CAAC,EACN,EAMA,YAAA26L,aAAA,WACE,OAAO/+L,KAAKg/L,mBACd,EAMA,YAAAC,QAAA,WACE,OAAOj/L,KAAKk/L,WACd,EASA,YAAAC,kBAAA,SAAkBt1L,G,WAAA,IAAAA,IAAAA,EAAA,IAChB,IAAMF,EAAO3J,KAAK0sF,UACZj9B,EAAOzvD,KAAKk/L,YACZT,EAAUz+L,KAAK2D,IAAI,WACrByO,EAASpS,KAAK29L,YACdhhL,EAAoB,CAAC,EAEzB,GAAI8hL,EACF9hL,EAAQ8hL,EAAQrsL,EAAQ,CAAEq9C,KAAI,EAAE9lD,KAAI,EAAE2yE,SAAUt8E,YAIhD,GAFAoS,EAASpS,KAAK29L,UAAU,CAAEmB,QAAQ,IAE9B9+L,KAAK6+L,aACPliL,EAAQvK,MACH,CACL,IAAM1K,EAAQ1H,KAAKu9L,gBAChBz4L,KAAI,SAAAk3B,GAAK,OAAAA,EAAEk/J,eAAe,CAAE4B,YAAa,GAAhC,IACT7mL,OAAOuvE,SACP/1B,KAAKA,IACH,MAAM9lD,GAAOjC,EAAlBiV,EAAuB,C,CAiB3B,OAbI3c,KAAK6+L,aACPliL,EAAMhT,GAAQ,IAEdgT,EAAMhT,GAAQgT,EAAMhT,IAAS,GAC7BgT,EAAQ,SACHA,GACA3c,KAAKu9L,gBAAgB5nL,QAAO,SAACyrG,EAAK36F,GAEnC,OADA26F,EAAI36F,EAAKimE,WAAa,GACf00B,CACT,GAAG,CAAC,KAIDv3G,EAAK++F,UACR5/E,OAAO/nB,KAAK0b,GAAOhH,QAAO,SAACvR,EAAK/C,GAE9B,OADA+C,GAAI,IAAAwkG,WAAUvnG,IAAQsb,EAAMtb,GACrB+C,CACT,GAAG,CAAC,GACJuY,CACN,EAEA,YAAAqiL,kBAAA,WACE,OAAO,IAAI1kL,OAAO,UAAGta,KAAK2D,IAAI,aAAY,kBAC5C,EAEA,YAAA+6L,eAAA,SAAe1iK,EAAsBnyB,GACnC,QADmC,IAAAA,IAAAA,EAAA,KAC/BA,EAAK0xL,OAAQ1xL,EAAKu1L,UAAtB,CAEA,IAAMpE,EAAah7L,KAAK+6L,kBACxB,GAAIC,EAAY,OAAOA,EAAW0D,eAAe1+L,KAAa6J,GAE9D7J,KAAKq/L,sBAAsBx1L,EAAMmyB,EALM,CAMzC,EAEA,YAAAqjK,sBAAA,SAAsBx1L,EAAW4c,G,WAAX,IAAA5c,IAAAA,EAAA,IACpB,IAAI8S,EAAQ3c,KAAKm/L,oBAEjB,GAAIn/L,KAAK6+L,cAAgBp4K,EAAM,CAC7B,IAAM,EAAOA,EAAKimE,WACb,MAAM,GAAO/vE,EAAM,GAAxBA,EAA6B,C,CAG/B3c,KAAK07L,iBAAiB/+K,EAAO9S,EAC/B,EAEA,YAAA+xL,IAAA,SAAI9yK,EAAmBjf,GAGrB,YAHqB,IAAAA,IAAAA,EAAA,IACrB7J,KAAKs/L,gBAAgBt/L,KAAKu/L,gBAAgBz2K,EAAMphB,OAAQmC,GACxD,sBAA4B7J,KAAM8oB,EAAOjf,GAClC7J,IACT,EAEA,YAAAyoF,SAAA,SAAS5+E,GACP,OAAO7J,KAAKm/L,kBAAkBt1L,EAChC,EAEA,YAAAqxL,eAAA,SAAerxL,GACb,QADa,IAAAA,IAAAA,EAAA,IACT7J,KAAK6+L,cAAgBh1L,EAAKyrH,QAAS,MAAO,GAE9C,IAAMpoH,EAASlN,KAAKm/L,oBAAoBn/L,KAAK0sF,YAAc,GAE3D,OAAO+0C,GAAkBv0H,EAC3B,EAEA,YAAAgyL,UAAA,WACE,IAAMzvI,EAAOzvD,KAAK2D,IAAI,QACtB,OAAO,IAAAuN,UAASu+C,GAAQA,EAAOzvD,KAAK2D,IAAI,YAC1C,EAEA,YAAA67L,gBAAA,SAAgB7iL,QAAA,IAAAA,IAAAA,EAAA,IACd,IAAMhT,EAAO3J,KAAK0sF,UAEZ+yG,EADQz/L,KAAKu9L,gBACKz4L,KAAI,SAAA2hB,GAAQ,OAAAA,EAAKimE,SAAL,IAEpC,OADqB,IAAC/iF,GAAS81L,GAAS,GACpBluL,MAAK,SAAAkV,GAAQ,QAAC,IAAAmjE,aAAYjtE,EAAM8J,KAA0B,KAAhB9J,EAAM8J,EAAnC,GACnC,EAEA,YAAAi5K,aAAA,SAAah4L,EAA0Bo1E,GACrC,OAAO2kD,GAAkB/5H,GACtBuC,MAAM6yE,GACNh4E,KAAI,SAAA4C,GAAS,OAAAA,EAAM4gF,MAAN,IACbryE,OAAOuvE,QACZ,EAEA,YAAAm6G,iBAAA,SAAiBhjL,EAAmBhT,EAAcmzE,GAChD,OAAO98E,KAAK0/L,aAAa/iL,EAAMhT,IAAS,GAAImzE,EAC9C,EAEA,YAAAyiH,gBAAA,SAAgB73L,EAA+B,QAA/B,IAAAA,IAAAA,EAAA,I,IAAiCo3L,QAAF,MAA2B,CAAC,EAAC,GAArB,OAC/Ch2K,EAAQ9oB,KAAKu9L,gBACbqC,EAA8B,IAAjB92K,EAAMnoB,QAAgBmoB,EAAM1S,OAAM,SAAAqQ,GAAQ,OAAA43K,GAAa53K,EAAK6hG,UAAlB,IACvDl2G,EAASpS,KAAK0/L,aAAah4L,EAAO1H,KAAKg/L,qBACvC9xL,EAAqB,CAAC,EAkB5B,OAhBA4b,EAAMrT,SAAQ,SAACgR,EAAM5mB,GACnB,IAAM6H,EAAQ0K,EAAOvS,GACjBuE,GAAO,IAAAwlF,aAAYliF,GAAiB,GAARA,EAEhC,GAAIk4L,EAAY,CAId,IAAMn0K,EAAMrZ,EAAOzR,OACnByD,EAAMgO,EAAOvS,IAAMuS,EAAQvS,EAAI4rB,GAAe,GAAPA,GAAYA,EAAM,EAAI,EAAI,KAAOrnB,C,CAG1E,IAAM/C,EAAMy9L,EAASr4K,EAAKimE,UAAYjmE,EAAK6jG,QAC3Cp9G,EAAO7L,GAAO+C,GAAO,EACvB,IAEO8I,CACT,EAEA,YAAA2yL,oBAAA,SAAoBljL,EAAwB9S,GAC1C,QADkB,IAAA8S,IAAAA,EAAA,SAAwB,IAAA9S,IAAAA,EAAA,KACrC7J,KAAKw/L,gBAAgB7iL,GAAQ,OAAO,KAEjC,IAAAmiL,EAAWj1L,EAAI,OACjBF,EAAO3J,KAAK0sF,UACZ5jE,EAAQ9oB,KAAKu9L,gBACbzgH,EAAM98E,KAAKg/L,oBACXR,EAAYx+L,KAAK2D,IAAI,aACvBuJ,EAASsxL,EAAYA,EAAU7hL,EAAO,CAAE2/D,SAAUt8E,KAAM2J,KAAI,EAAE40L,UAAWzhH,IAAS,CAAC,EAcvF,OAZK0hH,IAEHtxL,EAASlN,KAAKu/L,gBAAgB5iL,EAAMhT,IAAS,GAAI,CAAEm1L,OAAM,IAGzDh2K,EAAMrT,SAAQ,SAAAgR,GACZ,IAAM/e,EAAQiV,EAAM8J,EAAKimE,WACnBrrF,EAAMy9L,EAASr4K,EAAKimE,UAAYjmE,EAAK6jG,SACtC,IAAA1gC,aAAYliF,IAAoB,KAAVA,IAAcwF,EAAO7L,GAAOqG,EACzD,KAGKwF,CACT,EAEA,YAAAoyL,gBAAA,SAAgBltL,EAAkCvI,QAAlC,IAAAuI,IAAAA,EAAA,SAAkC,IAAAvI,IAAAA,EAAA,IAChD7J,KAAKu9L,gBAAgB9nL,SAAQ,SAAAgR,GAC3B,IAAM/e,EAAQ0K,EAAOqU,EAAK6jG,SAC1B7jG,EAAKy0K,mBAAqBxzL,GAAS+e,EAAK21K,QAAQ10L,EAAOmC,EACzD,IAGA,IAAMi2L,GAAY,IAAA7+L,MAAKmR,GACpBtN,KAAI,SAAAqgC,GAAK,OAAA/yB,EAAO+yB,EAAP,IACTsqB,KAAK,KACRzvD,KAAKyF,IAAI,QAASq6L,EAAkB,CAAElyL,QAAQ,GAChD,EAEA,YAAAlF,MAAA,sBAGE,OAFA1I,KAAKu9L,gBAAgBz4L,KAAI,SAAAk3B,GAAK,OAAAA,EAAEtzB,MAAM,CAAE02L,WAAY,EAAKP,cAA3B,IAC9B,wBAA8B7+L,MACvBA,IACT,EAEA,YAAA87L,SAAA,SAASjyL,GACP,OAAO7J,KAAKu9L,gBAAgBhsL,MAAK,SAAAkV,GAAQ,OAAAA,EAAKq1K,SAASjyL,EAAd,GAC3C,EAEA,YAAAkzL,aAAA,WACE,OAAO/8L,KAAKk7L,gBACd,EAEA,YAAAsB,eAAA,SAAe/1K,GACb,OAAOzmB,KAAK6+L,cAAgBp4K,EAAKq1K,SAAS,CAAEK,UAAU,GACxD,EACF,EA5SA,CAAuG,I,2lCCpEjG4D,GAAa,gBACbC,GAAY,gBA6DlB,4B,8CAqdA,QArd2C,QACzC,YAAAl5L,SAAA,WACE,OAAO,SACF,kBAA+B,CAClCwrF,OAAQ,GACR2tG,eAAgB,KAChBC,UAAW,GACXvwF,QAAS,EACTmyE,SAAS,EACTqe,WAAY,KACZC,cAAe,MAEnB,EAEA,YAAA74L,WAAA,SAAWuhB,EAAYjf,QAAZ,IAAAif,IAAAA,EAAA,SAAY,IAAAjf,IAAAA,EAAA,IAErB,kBAAiC,GAAmB7J,KAAM8oB,EAAOjf,GACjE,IAAMyoF,EAAStyF,KAAK2D,IAAI,UAClB08L,EAAa,IAAI,GAAO/tG,EAAQ,CAAE7rE,KAAMzmB,OAE9CqgM,EAAW/jH,SAAWt8E,KAEtBqgM,EAAWzuK,WAAa5xB,KAAK2D,IAAI,cACjC3D,KAAKyF,IAAI,SAAU46L,EAAmB,CAAEzyL,QAAQ,IAChD5N,KAAKyH,GAAG,uBAAwBzH,KAAKsgM,cACrCtgM,KAAKwK,SAAS61L,EAAY,aAAcrgM,KAAKugM,YAE7C,YAA2BvgM,KAAM8oB,EAAOjf,EAC1C,EAMA,YAAA22L,UAAA,WACE,OAAOxgM,KAAKygM,cAAcj9L,MAC5B,EAEA,YAAAi9L,YAAA,WACE,OAAOzgM,KAAK2D,IAAI,SAClB,EAaA,YAAA+8L,SAAA,SAAS5/L,GACP,YADO,IAAAA,IAAAA,EAAA,GACAd,KAAKygM,cAAch9L,GAAG3C,SAAUuE,CACzC,EAMA,YAAAy4L,iBAAA,WACE,IAAM5b,EAAQliL,KAAK2D,IAAI,iBACvB,OAAOu+K,GAASA,EAAMwb,YAAc,EAAIxb,OAAQ78K,CAClD,EAUA,YAAA04L,YAAA,SAAY7b,GACV,OAAOliL,KAAKyF,IAAI,gBAAiBy8K,EAAO,CAAEye,UAAU,GACtD,EAQA,YAAAC,cAAA,SAAc9/L,QAAA,IAAAA,IAAAA,EAAA,GACZ,IAAMohL,EAAQliL,KAAK0gM,SAAS5/L,GAC5B,OAAOohL,GAASliL,KAAK+9L,YAAY7b,EACnC,EAUA,YAAA+b,UAAA,SAAU/b,EAAcphL,QAAA,IAAAA,IAAAA,EAAA,GACtB,IAAM+/L,EAAY3e,EAAQA,EAAMwb,YAAc,EAE1CmD,GAAa,IAAK,IAAAvoF,UAASx3G,IAAUA,GAAS,GAAKA,EAAQd,KAAKwgM,YAAY7/L,QAAUkgM,IAAc//L,IACtGd,KAAKg+L,YAAY9b,GACjBliL,KAAKygM,cAAcn8L,IAAI49K,EAAO,CAAEz+K,GAAI3C,IAExC,EAYA,YAAAggM,SAAA,SAASh4K,EAAyBjf,QAAzB,IAAAif,IAAAA,EAAA,SAAyB,IAAAjf,IAAAA,EAAA,IAChC,IAAMuI,EAAsB,CAAC,EAQ7B,OAPApS,KAAKu9L,gBAAgB9nL,SAAQ,SAAAgR,GAC3B,IAAMplB,EAAMolB,EAAK6jG,QACX5iH,EAAQohB,EAAMznB,GACpB+Q,EAAO/Q,IAAO,IAAAuoF,aAAYliF,GAAS+e,EAAKs1K,kBAAoBr0L,CAC9D,IACc1H,KAAKygM,cAAc97L,KAAK,CAAEyN,OAAM,GAAWvI,EAG3D,EAUA,YAAAm0L,YAAA,SAAY9b,GACV,OAAOliL,KAAKygM,cAAcr7L,OAAO88K,EACnC,EASA,YAAA6e,cAAA,SAAcjgM,QAAA,IAAAA,IAAAA,EAAA,GACZ,IAAMohL,EAAQliL,KAAK0gM,SAAS5/L,GAC5B,OAAOohL,EAAQliL,KAAKg+L,YAAY9b,GAAS,IAC3C,EAUA,YAAA0b,cAAA,SAAc1b,GACZ,IAAIh1K,EAAS,GAEb,GAAIg1K,EAAO,CACT,IAAMie,EAAangM,KAAK2D,IAAI,cACtB,EAASu+K,EAAMyb,YACf78L,EAAQohL,EAAMwb,WAEpB,GAAIyC,EACFjzL,EAASizL,EAAWje,EAAO,CAAEphL,MAAK,EAAEsR,OAAM,EAAEkqE,SAAUt8E,WACjD,CACL,IAAM,EAAkB,GACxBA,KAAKu9L,gBAAgBz4L,KAAI,SAAA2hB,GACvB,EAAM9hB,KAAK,EAAO8hB,EAAK6jG,SACzB,IACAp9G,EAAS,EAAM+I,OAAOuvE,SAAS/1B,KAAK,I,EAIxC,OAAOviD,CACT,EAUA,YAAA8zL,kBAAA,SAAkB9e,EAAcr4K,G,WAAA,IAAAA,IAAAA,EAAA,IAC9B,IAKI8S,EALE8yC,EAAOzvD,KAAKk/L,YACZ+B,EAAajhM,KAAKkhM,kBAClBzC,EAAUz+L,KAAK2D,IAAI,WACnBgG,EAAO3J,KAAK0sF,UACZt6E,EAAS8vK,EAAMyb,YAGrB,GAAIc,EACF9hL,EAAQ8hL,EAAQrsL,EAAQ,CACtBq9C,KAAI,EACJwxI,WAAU,EACVt3L,KAAI,EACJu4K,MAAK,EACL5lG,SAAUt8E,WAEP,CACL,IAAMkN,EAASlN,KAAKu9L,gBAAgBz4L,KAAI,SAAA2hB,GACtC,IAAM9c,EAAO8c,EAAKimE,UACZzmF,EAAMmM,EAAOqU,EAAK6jG,SACpB5iH,GAAQ,IAAAkiF,aAAY3jF,GAAOwgB,EAAKs1K,kBAAoB91L,EAGxD,GAAI4D,EAAKssK,QAAUkoB,GAAa53K,EAAK6hG,WAAY,CAC/C,IAAM64E,EAAU16K,EAAwBi2K,WAAWz2L,EAAK4D,EAAKssK,QAC7DzuK,EAAQ,UAAGy5L,EAAOz5L,OAAK,OAAGy5L,EAAOjjI,K,CAGnC,MAAO,CAAEv0D,KAAI,EAAEjC,MAAK,EACtB,IACAiV,EAAQ3c,KAAK6+L,aACT3xL,EAAOyI,QAAO,SAACyrG,EAAK36B,GAElB,OADA26B,EAAI36B,EAAK98E,MAAQ88E,EAAK/+E,MACf05G,CACT,GAAG,CAAC,KACL,MACIphH,KAAK0sF,WAAYx/E,EAAOpI,KAAI,SAAA8gB,GAAK,OAAAA,EAAEle,KAAF,IAAS+nD,KAAKA,G,GAIxD,OAAO5lD,EAAK++F,UACR5/E,OAAO/nB,KAAK0b,GAAOhH,QAAO,SAACvR,EAAK/C,GAE9B,OADA+C,GAAI,IAAAwkG,WAAUvnG,IAAQsb,EAAMtb,GACrB+C,CACT,GAAG,CAAC,GACJuY,CACN,EASA,YAAAuhL,gBAAA,SAAgBhc,EAAcr4K,QAAA,IAAAA,IAAAA,EAAA,IAC5B,IAAIqD,EAAS,CAAC,EAOd,OANgBlN,KAAK2D,IAAI,aAGvBuJ,EAASlN,KAAKghM,kBAAkB9e,EAAOr4K,IAGlCqD,CACT,EAMA,YAAAk0L,kBAAA,WACE,IAAMtkH,EAAM98E,KAAK2D,IAAI,kBACrB,OAAO,IAAAuN,UAAS4rE,GAAO,IAAIxiE,OAAO,UAAGwiE,EAAG,mBAAoBA,CAC9D,EAEA,YAAA4hH,eAAA,SAAej4K,EAAgB5c,G,WAAA,IAAAA,IAAAA,EAAA,IAC7B,IAAMq4K,EAAQliL,KAAK89L,mBACd5b,IACLA,EAAMkc,WAAQ,MAAI33K,EAAK6jG,SAAU7jG,EAAKy0K,iBAAgB,IAClDrxL,EAAK0xL,MACTv7L,KAAKq/L,sBAAsBx1L,GAC7B,EAEA,YAAA02L,WAAA,SAAW/uL,EAAQutE,EAAQ5oD,GACzBn2B,KAAKq/L,sBAAsBlpK,GAAK4oD,EAClC,EAEA,YAAA67G,YAAA,SAAY5+J,EAASnyB,GACnB,QADmB,IAAAA,IAAAA,EAAA,KACfA,EAAK82L,SACT,OAAO,8BAAwC3gM,KAAMg8B,EAAUnyB,EACjE,EAEA,YAAAw1L,sBAAA,SAAsBx1L,QAAA,IAAAA,IAAAA,EAAA,IACpB7J,KAAK07L,iBAAiB17L,KAAKqhM,qBAAsBx3L,EACnD,EAEA,YAAA6xL,iBAAA,SAAiB/+K,EAAmB9S,GAClC,OAAO,mCAA6C7J,KAAM2c,EAAO9S,EACnE,EAEA,YAAAy2L,aAAA,SAAa,EAAyCz2L,G,IAAvCi4H,QAAF,MAAqC,CAAC,EAAC,GAA9B,aAAgC,IAAAj4H,IAAAA,EAAA,IACpD,IAAMwpF,EAAKrzF,KAAKkjF,GAAG4F,OACb90B,EAAWh0D,KAAK89L,mBAChB1rL,EAAS4hD,aAAQ,EAARA,EAAU2pI,YAGzBvrL,GACEpS,KAAKu9L,gBAAgB9nL,SAAQ,SAAAgR,G,MACrB/e,EAA4B,QAApB,EAAA0K,EAAOqU,EAAK6jG,gBAAQ,QAAI,GACtC7jG,EAAKy0K,mBAAqBxzL,GAAS+e,EAAK21K,QAAQ10L,EAAO,SAAKmC,GAAI,CAAE0xL,MAAM,IAC1E,KAEDz5D,GAAWzuC,EAAGmoG,QAAQnoG,EAAG3pF,OAAO43L,YAAa,CAAEhlH,SAAUt8E,MAC5D,EAGA,YAAA47L,IAAA,SAAI9yK,EAAoCjf,QAAA,IAAAA,IAAAA,EAAA,IAC9B,MAA2Bif,EAAK,SAAhCy4K,OAAQ,IAAG,KAAE,EAAKzqL,EAAI,GAAKgS,EAA7B,cAKN,OAHC9oB,KAAK6+L,cAAgB7+L,KAAKwhM,YAAYD,GACvCvhM,KAAKsgM,aAAa,CAAEx+D,SAAS,GAAQj4H,GACrC,sBAAgC7J,KAAM8W,EAAMjN,GACrC7J,IACT,EAEA,YAAAwhM,YAAA,SAAYC,QAAA,IAAAA,IAAAA,EAAA,IACV,IAAMnvG,EAAStyF,KAAKygM,cACdiB,EAAYD,EAAU38L,KAAI,SAAAsN,GAAU,OAAGA,OAAM,EAAT,IAEtCkgF,EAAO3xF,SAAW+gM,EAAU/gM,OAC9B+gM,EAAU58L,KAAI,SAACo9K,EAAOp7J,GAAC,MAAK,OAAY,QAAZ,EAAAwrE,EAAO7uF,GAAGqjB,UAAE,eAAEs3K,SAASlc,EAAM9vK,OAAO,IAEhEpS,KAAKygM,cAAcv6L,MAAMw7L,GAG3B1hM,KAAKsgM,aAAa,CAAEx+D,SAAS,GAC/B,EAEA,YAAAu6D,aAAA,SAAa30L,GAAb,WACQwF,EAASlN,KAAK08L,WAAWh1L,GAO/B,OANAwF,EAAOq0L,SAAW75L,EACfuC,MAAM81L,IACNj7L,KAAI,SAAA2mD,GAAK,OAAAA,EAAE68B,MAAF,IACTxjF,KAAI,SAAA2mD,GAAK,SAAKk2I,aAAal2I,EAAlB,IACTx1C,OAAOuvE,SAEHt4E,CACT,EAEA,YAAAy0L,aAAA,SAAaj6L,GACX,IAAMk6L,EAAU5hM,KAAK2D,IAAI,cACnByO,EAAS1K,EAAMuC,MAAM+1L,IACrBpuK,EAAa5xB,KAAKu9L,gBACxB,OAAOqE,EACHA,EAAQ,CAAEl6L,MAAK,EAAE0K,OAAM,IACvBwf,EAAWjc,QAAO,SAACyrG,EAAK36F,EAAM5mB,GAC5B,IAAM6H,EAAQ0K,EAAOvS,GAErB,OADAuhH,EAAI36F,EAAK6jG,UAAY,IAAA1gC,aAAYliF,GAAiB+e,EAAKs1K,kBAAbr0L,EACnC05G,CACT,GAAG,CAAC,EACV,EAEA,YAAAygF,qBAAA,SAAqBllL,GAArB,WACE,QADmB,IAAAA,IAAAA,EAAA,KACd3c,KAAKw/L,gBAAgB7iL,GAAQ,OAAO,KAEzC,IAAMhT,EAAO3J,KAAK0sF,UACZ5jE,EAAQ9oB,KAAKu9L,gBACbzgH,EAAM98E,KAAKohM,oBACX5C,EAAYx+L,KAAK2D,IAAI,aACvBuJ,EAASsxL,EAAYA,EAAU7hL,EAAO,CAAE2/D,SAAUt8E,KAAM2J,KAAI,EAAEm4L,gBAAiBhlH,IAAS,GAE5F,IAAK0hH,EAAW,CAEd,IAAM,EAASx+L,KAAK2/L,iBAAiBhjL,EAAOhT,EAAMmzE,GAC/Ch4E,KAAI,SAAA4C,GAAS,OAAAA,EAAMuC,MAAM,EAAK+0L,oBAAjB,IACbl6L,KAAI,SAAAg3B,GACH,IAAM5uB,EAAqB,CAAC,EAK5B,OAJA4b,EAAMrT,SAAQ,SAACgR,EAAM5mB,GACnB,IAAM6H,EAAQo0B,EAAMj8B,GACpBqN,EAAOuZ,EAAK6jG,UAAY,IAAA1gC,aAAYliF,GAAiB+e,EAAKs1K,kBAAbr0L,CAC/C,IACOwF,CACT,IAEF4b,EAAMrT,SAAQ,SAAAgR,GACZ,IAAMnc,EAAKmc,EAAK6jG,QAChB,EAAKq1E,iBAAiBhjL,EAAO8J,EAAKimE,UAAW5P,GAC1Ch4E,KAAI,SAAA4C,G,MAAS,aAAI4C,GAAK5C,GAAS+e,EAAKs1K,kBAAiB,CAAxC,IACbtmL,SAAQ,SAACssL,EAASliM,GACjB,EAAOA,GAAK,EAAOA,GAAK,SAAK,EAAOA,IAAOkiM,GAAYA,CACzD,GACJ,IACA70L,EAAS,C,CAGX,OAAO,IAAAhM,SAAQgM,GAAUA,EAAS,CAACA,EACrC,EAEA,YAAAu7E,SAAA,SAAS5+E,GACP,YADO,IAAAA,IAAAA,EAAA,IACA7J,KAAKqhM,mBAAmBx3L,EACjC,EAEA,YAAAw3L,mBAAA,SAAmBx3L,GAAnB,gBAAmB,IAAAA,IAAAA,EAAA,IACjB,IAAIqD,EAAqB,CAAC,EACpBvD,EAAO3J,KAAK0sF,UACZ4F,EAAStyF,KAAKwgM,YACd13K,EAAQ9oB,KAAKu9L,gBAiBnB,GAhBejrG,EAAOxtF,KAAI,SAAA7C,GAAK,SAAK++L,kBAAkB/+L,EAAG4H,EAA1B,IACxB4L,SAAQ,SAAAkH,IACb,IAAA1b,MAAK0b,GAAO7X,KAAI,SAAAzD,GACT6L,EAAO7L,KAEV6L,EAAO7L,GAAO,IAGhB6L,EAAO7L,GAAKsD,KAAKgY,EAAMtb,GACzB,GACF,KACA,IAAAJ,MAAKiM,GAAQpI,KAAI,SAAAzD,GAEf6L,EAAO7L,GAAO6L,EAAO7L,GAAKouD,KAAK,EAAKyxI,kBACtC,IAEIlhM,KAAK6+L,aACP3xL,EAAOvD,GAAQ,IACd2oF,EAAO3xF,QACNmoB,EAAMhkB,KAAI,SAAA2hB,GACRvZ,EAAOuZ,EAAKimE,WAAa,EAC3B,QACG,CACL,IAAM/vE,EAAQmM,EAAMnT,QAAO,SAACyrG,EAAK36F,GAE/B,OADA26F,EAAI36F,EAAKimE,WAAa,GACf00B,CACT,GAAG,CAAC,GACJl0G,EAAOvD,GAAQuD,EAAOvD,IAAS,GAC/BuD,EAAS,SAAKA,GAAWyP,E,CAG3B,OAAOzP,CACT,EAEA,YAAAg0L,gBAAA,WACE,IAAMzxI,EAAOzvD,KAAK2D,IAAI,aAChBm5E,EAAM98E,KAAK2D,IAAI,kBAErB,OAAO8rD,KAAS,IAAAv+C,UAAS4rE,GAAOA,EAAMrtB,EACxC,EAEA,YAAAyrI,eAAA,WACE,GAAIl7L,KAAK2D,IAAI,YAAa,MAAO,GACjC,IAAMgZ,EAAQ3c,KAAKqhM,qBAEnB,OAAO5/D,GAAkB9kH,EAAM3c,KAAK0sF,WACtC,EAMA,YAAAovG,SAAA,SAASjyL,QAAA,IAAAA,IAAAA,EAAA,IACC,IACFmyL,EADenyL,EAAI,UACO7J,KAAKi8L,kBACrC,OAAOj8L,KAAKwgM,YAAY7/L,OAAS,IAAMq7L,CACzC,EAMA,YAAAtzL,MAAA,SAAMmB,GAIJ,YAJI,IAAAA,IAAAA,EAAA,IACJ7J,KAAKygM,cAAcv6L,QACnBlG,KAAKq/L,sBAAsBx1L,GAC3B,wBAAkC7J,MAC3BA,IACT,EAEA,YAAAw8L,eAAA,WACE,OAAO,CACT,EACF,EArdA,CAA2C,I,8zCCxErCwF,GAAY,mBAYlB,eAiBE,WAAY7rK,QAAA,IAAAA,IAAAA,EAAA,IAAZ,MACE,YAAMA,IAAE,MACR,IAAAmsD,SAAQ,EAAM,WAAY,iBAE1B,IAAMrqE,EAASke,EAAEle,QAAU,CAAC,EACpBirE,EAAOjrE,EAAM,GACrB,EAAKA,OAASA,EACd,EAAKirE,GAAKA,EACV,EAAKe,IAAMhsE,EAAOisE,aAAe,GACjC,EAAKX,KAAOtrE,EAAOksE,cAAgB,GACnC,EAAK89G,YAAc,EAAK5yL,QAAU,EAAKA,QAAQtD,KAAK,GAAQ,WAAO,EAC3D,IAAA5G,EAAU,EAAI,MAEtBA,EAAMm9B,KAAO,EAIb,EAAK0zH,eAAgB,IAAA1uE,UAAS,EAAK0uE,cAAcjqJ,KAAK,GAAO,IAC7D,EAAK6nI,cAAe,IAAAtsD,UAAS,EAAKssD,aAAa7nI,KAAK,GAAO,GAE3D,EAAKvB,SAASrF,EAAO,iBAAkB,EAAKC,QAC5C,EAAKoF,SAASrF,EAAO,iBAAkB,EAAK2gJ,kBAC5C,EAAKt7I,SAASrF,EAAO,2CAA4C,EAAK0O,QACtE,EAAKrJ,SAASrF,EAAO,eAAgB,EAAK6wJ,eAC1C,EAAKxrJ,SAASrF,EAAO,sBAAuB,EAAKyuI,cACjD,EAAKppI,SAAS04E,EAAI,gBAAiB,EAAK8yE,eAGxC,IAAMh0G,EAAO,EAAKA,MAAQ,EAAKA,KAAKj2C,KAAK,G,OACzCi2C,GAAQA,I,CACV,CAqNF,OApQ0C,QAiDxC,YAAAt4C,OAAA,W,MACE,OAAO,EAAP,CACEoxB,OAAQ,sBACP,iBAAUknK,GAAS,MAAM,Q,CAE9B,EAEA,YAAArlF,SAAA,SAASx3G,GACD,IAAE8+E,EAAcjkF,KAAX,IAAEujF,EAASvjF,KAAL,KACjB,MAAO,+BACSikF,EAAG,4DACHV,EAAI,uCAEtB,EAEA,YAAA4yE,cAAA,SAAchxJ,GACN,IAAE8+E,EAAYjkF,KAAT,IAAEkjF,EAAOljF,KAAL,GACPue,EAAWpZ,EAAK,OAClB,EAA2BA,EAAM6B,WAA/B,IAAAkzF,KAAAA,OAAI,IAAG,KAAE,EAAE,IAAApoE,KAAAA,OAAI,IAAG,KAAE,EACtB8wF,EAAQ1/B,aAAE,EAAFA,EAAI0D,YAAYg8B,MACxBs/E,GAAYt/E,aAAK,EAALA,EAAOxlG,QAAS,GAElC,MAAO,gCACU6mE,EAAG,gBAAQiW,EAAI,sBAAYpoE,EAAI,wBAC1C3sB,EAAM8gI,WAAU,kCAEjB1nH,EAA4F,GAAnF,uBAAe0lE,EAAG,2CAAgC+9G,GAAS,YAAIE,EAAS,UAAa,SAErG,EAEA,YAAA9rC,cAAA,SAAcjxJ,GACZ,MAAO,+BACSnF,KAAKujF,KAAI,kDACCp+E,EAAM42L,kBAAiB,2BAGnD,EAEA,YAAA32L,OAAA,sBAKE,OAJA,4BAA4BpF,KAAMmB,WAElC,CAAC,KAAM,QAAS,SAAU,QAAQsU,SAAQ,SAAA5V,GAAK,OAAC,EAAKA,GAAK,IAAX,IAC/CG,KAAKiiM,YAAYjiM,KAAKmiM,eACfniM,IACT,EAOA,YAAA4zI,aAAA,W,MACQ,EAA+B5zI,KAA7BmF,EAAK,QAAE8+E,EAAG,MAAEV,EAAI,OAAEtrE,EAAM,SAC1BinK,EAAa,UAAG37F,EAAI,cACpB6+G,EAAc,UAAG7+G,EAAI,cACrB8+G,EAAUriM,KAAK2T,IAAI4e,SAAS,WAAI0xD,EAAG,UACnCq+G,EAAetiM,KAAKuiM,aACpBC,EAAaF,EAAeA,EAAa3lL,MAAS,CAAC,EACzD0lL,EAAQh2G,YAAY,UAAG6yF,EAAU,YAAIkjB,IACrCI,EAAW5lL,QAAU,OAEjBzX,EAAM22L,SAAS,CAAEK,UAAU,KAAWlkL,EAAOgiL,kBAC/CoI,EAAQ/8K,SAAS45J,GACjBjnK,EAAOmiL,kBAAoBoI,EAAW5lL,QAAU,KACvCzX,EAAM22L,YAAc7jL,EAAOiiL,mBACpCmI,EAAQ/8K,SAAS88K,GAGR,QAAX,EAAApiM,KAAKue,cAAM,SAAEq1H,cACf,EAKA,YAAAlrI,MAAA,SAAM8D,GACJA,GAAMA,EAAG6hB,kBACTruB,KAAKmF,MAAMuD,OACb,EAMA,YAAA65L,WAAA,WAKE,OAJKviM,KAAKyiM,UACRziM,KAAKyiM,QAAUziM,KAAKoU,GAAG8rB,cAAc,WAAI8hK,GAAS,OAG7ChiM,KAAKyiM,OACd,EAMA,YAAAC,kBAAA,SAAkBl2L,GAChBA,GAAMA,EAAG6hB,kBAELruB,KAAK2iM,MACT3iM,KAAKmF,MAAMi3L,QAAQ5vL,EAAG+Z,OAAO7e,MAC/B,EAEA,YAAAsuJ,cAAA,SAAcxkJ,EAAQvL,EAAUqnD,QAAA,IAAAA,IAAAA,EAAA,IAC9BttD,KAAK2vD,SAAS3vD,KAAKmF,MAAM43L,kBAAa13L,EAAW,CAAE43L,eAAe,KAClEj9L,KAAK4zI,cACP,EAOA,YAAAjkF,SAAA,SAASjoD,GACC,IAAAvC,EAAUnF,KAAI,MAChBkN,GAAS,IAAA08E,aAAYliF,IAAoB,KAAVA,EAAevC,EAAM42L,kBAAoBr0L,EAC9E,GAAI1H,KAAK65C,OAAQ,OAAO75C,KAAK2sJ,SAASz/I,GACtClN,KAAK4iM,gBAAgB11L,EACvB,EAEA,YAAA01L,gBAAA,SAAgBl7L,GACd,IAAM45B,EAAQthC,KAAK6oJ,aACnBvnH,IAAUA,EAAM55B,MAAQA,EAC1B,EAEA,YAAAmhJ,WAAA,WAKE,OAJK7oJ,KAAKshC,QACRthC,KAAKshC,MAAQthC,KAAKoU,GAAG8rB,cAAc,UAG9BlgC,KAAKshC,KACd,EAEA,YAAAwkH,iBAAA,WACE9lJ,KAAKoU,GAAGuI,MAAMC,QAAU5c,KAAKmF,MAAMysG,YAAc,GAAK,MACxD,EAEA,YAAAixF,YAAA,kBACS7iM,KAAKyiM,eACLziM,KAAKshC,aACLthC,KAAK4qJ,MACd,EAEA,YAAAk4C,QAAA,WACE,IAAMt9L,EAAQxF,KAAKwF,OAASxF,KAAKwF,MAAMuG,KAAK/L,MAC5CwF,GAASA,EAAMxF,KAAKmiM,cACtB,EAEA,YAAAx1C,SAAA,SAASjlJ,GACP,IAAMmyC,EAAS75C,KAAK65C,QAAU75C,KAAK65C,OAAO9tC,KAAK/L,MAC/C65C,GACEA,EAAO,SACF75C,KAAKmiM,eAAa,CACrBz6L,MAAK,IAEX,EAEA,YAAAq7L,SAAA,W,IAAS,sDACP,IAAMJ,EAAO3iM,KAAK2iM,MAAQ3iM,KAAK2iM,KAAK52L,KAAK/L,MACzC2iM,GAAQA,EAAI,iBAAC3iM,KAAKmiM,eAAkBzhM,GAAI,GAC1C,EAEA,YAAAsiM,cAAA,SAAct7L,EAA4B,sBAAE,IAAAsxI,EAAQ,WAAEz7B,EAAO,UACnDp4G,GAD4D,KAA5B,wBACtBnF,KAAI,OAChBgoI,GAAqB,IAAbgR,IAAkC,IAAZz7B,GAEhC,IAAA72G,UAASgB,GACXvC,EAAMu2L,iBAAiBh0L,EAAqB,CAAEmhF,YAAam/C,IAE3D7iI,EAAMi3L,QAAQ10L,EAAO,CAAE61G,SAAUyqB,GAErC,EAEA,YAAAm6D,YAAA,WACQ,MAA2BniM,KAAzBmF,EAAK,QACb,MAAO,CACLiP,GAFe,KAGf6uL,UAH0B,YAI1B3mH,SAAUn3E,EACV2jB,MAAO3jB,EAAM6B,WACb8zB,OAAQ96B,KAAK+iM,SACbtvD,YAAazzI,KAAKgjM,cAEtB,EAEA,YAAAnvL,OAAA,WACE7T,KAAK6iM,cACC,MAA0B7iM,KAAxBikF,EAAG,MAAE9+E,EAAK,QAAEiP,EAAE,KAAET,EAAG,MACrBhK,EAAOxE,EAAMunF,UACblqF,EAAO2C,EAAMmjH,UACbpkG,EAAM/e,EAAMxB,IAAI,cAAgB,GAChCiR,EAAY,UAAGqvE,EAAG,YAElBi/G,EAAmB,WAAT1gM,EAAoB,UAAGyhF,GAAG,OAAGzhF,EAAI,YAAIyhF,EAAG,WAAY,UAAGA,GAAG,OAAGzhF,GAE7ExC,KAAKijM,WAAajjM,KAAKiiM,YAAYjiM,KAAKmiM,eACxCxuL,EAAIq+B,QAAQghD,OAAOhzF,KAAK28G,SAASx3G,IACjCwO,EAAIC,KAAK,mBAAmBo/E,OAAOhzF,KAAKm2J,cAAchxJ,IACtD,IAAM+M,EAASlS,KAAKkS,QAAUlS,KAAKkS,OAAOnG,KAAK/L,MAC/CA,KAAKijM,UAAY/wL,GAAUA,EAAOlS,KAAKmiM,eACvCxuL,EAAIC,KAAK,oBAAoBo/E,OAAOhzF,KAAKijM,WAAajjM,KAAKo2J,cAAcjxJ,IAEzEiP,EAAGQ,UAAY,UAAGA,EAAS,YAAIsuL,EAAO,YAAItuL,EAAS,aAAKjL,EAAI,YAAIua,GAAMokE,OACtEl0E,EAAGQ,WAAazP,EAAMs3L,SAAW,WAAI7nL,EAAS,UAAW,GAEzD,IAAMkiF,EAAW92F,KAAK82F,UAAY92F,KAAK82F,SAAS/qF,KAAK/L,MAGrD,OAFA82F,GAAYA,IACZ92F,KAAK2vD,SAASxqD,EAAMqqD,YACbxvD,IACT,EAEA,YAAA82F,SAAA,WAAY,EACd,EApQA,CAA0C,M,ugBCf1C,eAME,WAAY3gE,GAAZ,MACE,YAAMA,IAAE,KACR,EAAKle,OAASke,EAAEle,QAAU,CAAC,EAC3B,EAAKgsE,IAAM,EAAKhsE,OAAOisE,aAAe,GACtC,EAAKtyD,WAAa,GAClB,EAAKrT,OAAS4X,EAAE5X,OAChB,IAAMysE,EAAO,EAAK/lF,W,OAClB,EAAKuF,SAASwgF,EAAM,MAAO,EAAK6Y,OAChC,EAAKr5F,SAASwgF,EAAM,QAAS,EAAKn3E,Q,CACpC,CAsCF,OArD4C,QAiB1C,YAAAgwF,MAAA,SAAM1+F,EAAY6lF,EAAWnhF,GAC3B7J,KAAKsE,IAAIa,EAAO,KAAM0E,EACxB,EAEA,YAAAvF,IAAA,SAAIa,EAAYqvD,EAA+B3qD,QAAA,IAAAA,IAAAA,EAAA,IACvC,IAAE0U,EAAmBve,KAAb,OAAEiY,EAAWjY,KAAL,OAChB4xF,EAAWp9B,GAAQx0D,KAAKoU,GACxBkuB,EAAO,IAAIn9B,EAAM03K,SAAS,CAAE13K,MAAK,EAAE8S,OAAM,IAC/CsG,IAAW+jB,EAAK/jB,OAASA,GACzB+jB,EAAKzuB,SACL,IAAM09E,EAAWjvD,EAAKluB,GACtBpU,KAAK4xB,WAAWjtB,KAAK29B,IACrB,SAAcsvD,EAAUL,EAAU1nF,EAAKpG,GACzC,EAEA,YAAA2B,OAAA,WAGE,OAFA,4BAA4BpF,KAAMmB,WAClCnB,KAAKmkG,aACEnkG,IACT,EAEA,YAAAmkG,WAAA,WACEnkG,KAAK4xB,WAAWnc,SAAQ,SAAAgxE,GAAQ,OAAAA,EAAKrhF,QAAL,IAChCpF,KAAK4xB,WAAa,EACpB,EAEA,YAAA/d,OAAA,sBACUF,EAAa3T,KAAV,IAAEikF,EAAQjkF,KAAL,IAChBA,KAAKmkG,aACL,IAAMlqF,EAAWvF,SAASisB,yBAK1B,OAJA3gC,KAAKiF,WAAWwQ,SAAQ,SAAAtQ,GAAS,SAAKb,IAAIa,EAAO8U,EAAhB,IACjCtG,EAAIq+B,QACJr+B,EAAIq/E,OAAO/4E,GACXtG,EAAInM,KAAK,QAAS,UAAGy8E,EAAG,eACjBjkF,IACT,EACF,EArDA,CAA4C,M,8vBCA5C,yB,8CA+CA,QA/CmD,QAGjD,YAAAo2J,cAAA,WACU,IAAAnyE,EAAQjkF,KAAI,IACpB,MAAO,+BACSikF,EAAG,iBAASA,EAAG,4CACfA,EAAG,6CAGrB,EAEA,YAAA7+E,OAAA,W,MAGE,OAFU,QAAV,EAAApF,KAAK8oB,aAAK,SAAE1jB,SACZ,0BAAoCpF,KAAMmB,WACnCnB,IACT,EAEA,YAAAg2J,cAAA,WAAiB,EAEjB,YAAAl/D,SAAA,WACU,IAAA7S,EAAQjkF,KAAI,IACdmF,EAAQnF,KAAKmF,MACb2jB,EAAQ3jB,EAAMxB,IAAI,cAExB,GAAImlB,EAAMnoB,SAAWX,KAAK8oB,MAAO,CAC/B,IAAMw1K,EAAWn5L,EAAM05L,aACjBsE,EAAY,IAAI,GAAe,CACnClrL,OAAQ,SACHjY,KAAKiY,QAAM,CACdiiL,kBAAmBoE,EACnBrE,iBAAkBqE,IAGpBr5L,WAAY6jB,EACZvK,OAAQve,OAEVmjM,EAAUtvL,SACV7T,KAAK2T,IAAIC,KAAK,WAAIqwE,EAAG,iBAAgB+O,OAAOmwG,EAAU/uL,IACtDpU,KAAK8oB,MAAQq6K,C,CAEjB,EAEA,YAAAN,YAAA,WACE,+BAAyC7iM,KAAMmB,kBACxCnB,KAAK8oB,KACd,EACF,EA/CA,CAAmD,I,2fCEnD,4B,8CA+HA,QA/HuC,QAWrC,YAAApf,OAAA,WACE,MAAO,CACLuiF,MAAO,SACP,2BAA4B,aAC5B,8BAA+B,aAC/B,+BAAgC,aAEpC,EAEA,YAAA0wB,SAAA,WACQ,MAAoB38G,KAAlBikF,EAAG,MAAEV,EAAI,OAAEL,EAAE,KACf0/B,EAAQ1/B,aAAE,EAAFA,EAAI0D,YAAYg8B,MACxBs/E,GAAYt/E,aAAK,EAALA,EAAOxlG,QAAS,GAC5BgmL,GAAWxgF,aAAK,EAALA,EAAO5iD,OAAQ,GAEhC,MAAO,+BACSikB,EAAG,2CACJA,EAAG,0BAAgBV,EAAI,0DAC9B6/G,EAAQ,+CAEDn/G,EAAG,wDACHA,EAAG,iCAAuBA,EAAG,0FAC3BA,EAAG,6BAAmBA,EAAG,sFAE3BA,EAAG,iCAAuBA,EAAG,oDACpCi+G,EAAS,2DAGJj+G,EAAG,wCAElB,EAEA,YAAA18E,WAAA,SAAW4uB,QAAA,IAAAA,IAAAA,EAAA,IACD,IAAAhxB,EAAUnF,KAAI,MAChBiY,EAASke,EAAEle,QAAU,CAAC,EAC5BjY,KAAKkjF,GAAKjrE,EAAOirE,GACjBljF,KAAKiY,OAASA,EACdjY,KAAK0vF,OAASv5D,EAAEu5D,OAChB1vF,KAAKikF,IAAMhsE,EAAOisE,aAAe,GACjClkF,KAAKujF,KAAOtrE,EAAOksE,cAAgB,GACnCnkF,KAAKqjM,aAAeltK,EAAEktK,aACtB,IAAMC,EAAStjM,KAAKqjM,aAAal+L,MACjCnF,KAAKwK,SAASrF,EAAO,iBAAkBnF,KAAKoF,QAC5CpF,KAAKwK,SAASrF,EAAO,gBAAiBnF,KAAKujM,aAC3CvjM,KAAKwK,SAAS84L,EAAQ,uBAAwBtjM,KAAK8lJ,kBAGnD3gJ,EAAMm9B,KAAOtiC,KAEbmF,EAAMM,IAAI,CAAE+uH,UAAW,EAAG5yE,UAAW,IACrC5hD,KAAK2T,IAAI+E,KAAK,QAASvT,EACzB,EAEA,YAAAgqF,WAAA,W,MACa,QAAX,EAAAnvF,KAAK0vF,cAAM,SAAE6P,UAAUv/F,KAAKoU,GAC9B,EAEA,YAAAovL,WAAA,SAAWh3L,GACTA,GAAMA,EAAG6hB,kBACTruB,KAAKmF,MAAMC,QACb,EAEA,YAAA8Q,OAAA,WACElW,KAAKmF,MAAM+Q,QACb,EAEA,YAAAutL,qBAAA,WAEE,OADKzjM,KAAK0jM,cAAa1jM,KAAK0jM,YAAc1jM,KAAKoU,GAAG8rB,cAAc,sBACzDlgC,KAAK0jM,WACd,EAEA,YAAAC,aAAA,WAEE,OADK3jM,KAAK4jM,YAAW5jM,KAAK4jM,UAAY5jM,KAAKoU,GAAG8rB,cAAc,mBACrDlgC,KAAK4jM,SACd,EAEA,YAAAC,WAAA,WAEE,OADK7jM,KAAKqiM,UAASriM,KAAKqiM,QAAUriM,KAAKoU,GAAG8rB,cAAc,iBACjDlgC,KAAKqiM,OACd,EAEA,YAAAkB,YAAA,WACU,IAAAp+L,EAAUnF,KAAI,MAChB0sE,EAAQvnE,EAAM8gI,WAGpB,GAFAjmI,KAAK6jM,aAAa78G,UAAYta,EAE1BvnE,EAAMg5L,aAAc,CACtB,IAAM2F,EAAQ9jM,KAAK2jM,eACb,EAAQx+L,EAAM+4L,gBAAgB,CAAE/nB,OAAQ,CAAEhmK,KAAM,EAAGhE,IAAK,KACxDm1H,GAAW,IAAArgI,MAAK,GACnB6D,KAAI,SAAAqgC,GAAK,gBAAGA,EAAC,YAAI,EAAMA,GAAd,IACTsqB,KAAK,KACRq0I,EAAM/+K,aAAa,QAASu8G,E,CAEhC,EAEA,YAAAwkB,iBAAA,W,MACQ,EAA+B9lJ,KAA7BikF,EAAG,MAAE9+E,EAAK,QAAEk+L,EAAY,eAC1BU,EAAS/jM,KAAKyjM,uBACd5F,EAAa14L,EAAM04L,aACzBkG,EAAOpnL,MAAMC,QAAUihL,EAAa,GAAK,OACzC79L,KAAK2T,IAAIkqL,EAAa,WAAa,eAAe,UAAG55G,EAAG,WACxD45G,GAAckG,EAAOt/K,YAA8B,QAAlB,EAAA4+K,EAAav6K,aAAK,eAAE1U,GACvD,EAEA,YAAAP,OAAA,WACQ,MAAqB7T,KAAnBoU,EAAE,KAAE6vE,EAAG,MAAE9+E,EAAK,QAQtB,OAPAiP,EAAG4yE,UAAYhnF,KAAK28G,WACpBvoG,EAAGQ,UAAY,UAAGqvE,EAAG,SACjB9+E,EAAMg5L,eACP/pL,EAAG8rB,cAAc,sBAAsCvjB,MAAMC,QAAU,IAE1E5c,KAAKujM,cACLvjM,KAAK8lJ,mBACE9lJ,IACT,EACF,EA/HA,CAAuC,M,ugBCAvC,eAQE,WAAYm2B,GAAZ,MACE,YAAMA,IAAE,KACF60D,EAAO,EAAK/lF,WACZgT,EAASke,EAAEle,QAAU,CAAC,EACtBirE,EAAKjrE,EAAOirE,GACZe,EAAMhsE,EAAOisE,aAAe,GAC5BX,EAAOtrE,EAAOksE,cAAgB,GACpC,EAAKlsE,OAASA,EACd,EAAKgsE,IAAMA,EACX,EAAKV,KAAOA,EACZ,EAAK8/G,aAAeltK,EAAEktK,aACtB,EAAKzuL,UAAY,UAAGqvE,EAAG,kBAAUV,EAAI,SACrC,EAAK/4E,SAASwgF,EAAM,MAAO,EAAK6Y,OAChC,EAAKr5F,SAASwgF,EAAM,QAAS,EAAK9kF,OAClC,EAAK49F,MAAQ,GAGb,IAAMlF,EAAQ1b,aAAE,EAAFA,EAAIoT,M,OAClB,EAAK5G,OAASkP,EACV,IAAIA,EAAMC,OAAO,CAEfp+C,UAAW,EAAKrsC,GAChBgjK,mBAAoB,EACpBp4E,aAAc,WAAI/a,EAAG,UACrBgb,QAAS,WAAIhb,EAAG,SAChBA,IAAKhsE,EAAOksE,eAEd,GAEJ6G,EAAK1oD,KAAO,EACZ,EAAK3uB,IAAI+E,KAAK,QAASsyE,GACvB,EAAKr3E,IAAI+E,KAAK,aAAcsyE,G,CAC9B,CAwEF,OAhHwC,QA0CtC,YAAA6Y,MAAA,SAAM1+F,GACJ,IAAMtF,EAAIG,KAAKiF,WAAWJ,QAAQM,GAClCnF,KAAK6uH,gBAAgB1pH,EAAO,KAAMtF,EACpC,EAEA,YAAAgvH,gBAAA,SAAgB1pH,EAAc2pH,EAAqChuH,GACjE,IAAMmZ,EAAW60G,GAAc,KACzB,EAAwC9uH,KAAtCqjM,EAAY,eAAEprL,EAAM,SAAEy3E,EAAM,SAAE/7E,EAAG,MACnC2uB,EAAO,IAAI,GAAU,CACzBn9B,MAAK,EAEL8S,OAAM,EACNy3E,OAAM,EACN2zG,aAAY,IAER9xG,EAAWjvD,EAAKzuB,SAASO,GAG/B,GAFApU,KAAK8jG,MAAMn/F,KAAK29B,GAEZroB,EACFA,EAASwK,YAAY8sE,QAErB,QAAoB,IAATzwF,EAAsB,CAC/B,IAAImO,EAAS,SAET0E,EAAI4e,WAAW5xB,SAAWG,IAC5BA,IACAmO,EAAS,SAGPnO,EAAQ,EACV6S,EAAIq/E,OAAOzB,GAGX59E,EAAI4e,WAAWi2E,GAAG1nG,GAAOmO,GAAQsiF,E,MAGnC59E,EAAIq/E,OAAOzB,GAIf,OAAOA,CACT,EAEA,YAAArrF,MAAA,SAAM8kF,EAAWnhF,GACf7J,KAAKmkG,aACLnkG,KAAK6T,QACP,EAEA,YAAAzO,OAAA,WAGE,OAFApF,KAAKmkG,aACL,4BAA4BnkG,KAAMmB,WAC3BnB,IACT,EAEA,YAAAmkG,WAAA,WACEnkG,KAAK8jG,MAAMruF,SAAQ,SAAAgxE,GAAQ,OAAAA,EAAKrhF,QAAL,IAC3BpF,KAAK8jG,MAAQ,EACf,EAEA,YAAAjwF,OAAA,sBACUF,EAAgB3T,KAAb,IAAE0vF,EAAW1vF,KAAL,OACbw0D,EAAO9/C,SAASisB,yBAOtB,OANAhtB,EAAIq+B,QACJhyC,KAAKiF,WAAWwQ,SAAQ,SAAAjE,GAAK,SAAKq9G,gBAAgBr9G,EAAGgjD,EAAxB,IAC7B7gD,EAAIq/E,OAAOx+B,GACX7gD,EAAInM,KAAK,QAASxH,KAAK4U,WACnB86E,IAAQA,EAAO4oE,IAAM,MAElBt4J,IACT,EACF,EAhHA,CAAwC,M,qvBCDxC,4B,8CAqFA,QArF+C,QAK7C,YAAA0J,OAAA,WACE,OAAO,SACF,uBAAwC,CAC3C,yBAA0B,WAC1BoxB,OAAQ,IAEZ,EAEA,YAAAs7H,cAAA,WACQ,IAAEnyE,EAAYjkF,KAAT,IAAEkjF,EAAOljF,KAAL,GACT4iH,EAAQ1/B,aAAE,EAAFA,EAAI0D,YAAYg8B,MACxBohF,GAAWphF,aAAK,EAALA,EAAOC,OAAQ,IAChC,MAAO,+BACS5+B,EAAG,iBAASA,EAAG,0DACCA,EAAG,4CAC3B+/G,EAAQ,mFAKlB,EAEA,YAAAhiJ,KAAA,WACU,IAAA78C,EAAUnF,KAAI,MACtBA,KAAKwK,SAASrF,EAAMs7L,cAAe,eAAgBzgM,KAAK4zI,aAC1D,EAEA,YAAAktD,SAAA,WACE9gM,KAAKmF,MAAM27L,SAAS,CAAC,EAAG,CAAEr9L,GAAI,GAChC,EAOA,YAAAksD,SAAA,WAAY,EAEZ,YAAAvqD,OAAA,W,MAGE,OAFe,QAAf,EAAApF,KAAKikM,kBAAU,SAAE7+L,SACjB,0BAA6CpF,KAAMmB,WAC5CnB,IACT,EAEA,YAAA6iM,YAAA,WACE,+BAAkD7iM,KAAMmB,kBACjDnB,KAAKikM,UACd,EAEA,YAAAntG,SAAA,WACQ,MAAwB92F,KAAtBmF,EAAK,QAAEiP,EAAE,KAAE6D,EAAM,SACnB6Q,EAAQ3jB,EAAMxB,IAAI,cAExB,GAAImlB,EAAMnoB,SAAWX,KAAK8oB,MAAO,CAC/B,IAAMq6K,EAAY,IAAI,GAAe,CACnClrL,OAAQ,SACHA,GAAM,CACTiiL,mBAAmB,EACnBD,kBAAkB,IAGpBh1L,WAAY6jB,EACZvK,OAAQve,OAEVmjM,EAAUtvL,SAEV,IAAMowL,EAAa,IAAI,GAAW,CAChCh/L,WAAYE,EAAMs7L,cAElBxoL,OAAM,EACNorL,aAAcrjM,OAEhBikM,EAAWpwL,SAEKO,EAAG8rB,cAAc,yBACzBzb,YAAYw/K,EAAW7vL,IAC/BpU,KAAK8oB,MAAQq6K,EACbnjM,KAAKikM,WAAaA,C,CAEtB,EACF,EArFA,CAA+C,I,8vBCF/C,yB,8CAsDA,QAtD8C,QAC5C,YAAAv6L,OAAA,WACE,OAAO,SACF,uBAA+B,CAClC,2BAA4B,QAC5B,2BAA4B,oBAEhC,EAEA,YAAA0sJ,cAAA,W,MACUnyE,EAAYjkF,KAAT,IAAEkjF,EAAOljF,KAAL,GACT4iH,EAAe,QAAP,EAAA5iH,KAAKkjF,UAAE,eAAE0D,YAAYg8B,MAC7Bs/E,EAAYt/E,aAAK,EAALA,EAAOxlG,MAEzB,MAAO,+BACS6mE,EAAG,iBAASA,EAAG,qCAChBA,EAAG,kDACEA,EAAG,iDACEA,EAAG,sBAAYA,EAAG,qEAC/Bf,EAAG5vB,EAAE,2BAA0B,qIAK5B2wB,EAAG,iCAAuBA,EAAG,iEAC3BA,EAAG,kCAAwBA,EAAG,uEAC9BA,EAAG,2BAAiBA,EAAG,iDAAwCi+G,EAAS,6CAI3F,EAEA,YAAAU,gBAAA,SAAgBl7L,GACR,IAAEvC,EAAcnF,KAAT,MAAEoU,EAAOpU,KAAL,GACXg0G,EAAW7uG,EAAM42L,kBACjBmI,EAAW9vL,EAAG8rB,cAAc,sBAC5B4jK,EAAQ1vL,EAAG8rB,cAAc,kBAC/BgkK,EAASvnL,MAAMC,QAAWlV,GAASA,IAAUssG,EAAoB,GAAT,OACxD8vF,EAAMnnL,MAAMwnL,gBAAkBz8L,GAASvC,EAAM42L,iBAC/C,EAEA,YAAAqI,iBAAA,e,EAAA,OACQxzG,EAAY,QAAP,EAAA5wF,KAAKkjF,UAAE,eAAE01D,OAEpBhoD,SAAAA,EAAIzzE,KAAK,CACPjH,OAAQ,SAAC6iI,EAAOC,GACd,IAAM1pI,GAAM,IAAA4B,UAAS6nI,GAASA,EAAQA,EAAMp1I,IAAI,OAChD,EAAKwB,MAAMi3L,QAAQ9sL,EAAK,CAAEiuG,SAAUy7B,IACpCA,GAAYpoD,EAAGxzE,OACjB,EACAsO,MAAO,CAAC,SACRulE,OAAQ,WAEZ,EACF,EAtDA,CAA8C,I,ogBCD9C,yB,8CAmCA,QAnCgD,QAG9C,YAAAmlE,cAAA,SAAc5kJ,GACZ,MAAO,EACT,EAEA,YAAAwwC,KAAA,WACE,IAAM78C,EAAQnF,KAAKmF,MACnBnF,KAAKwK,SAASrF,EAAO,cAAenF,KAAKg2J,eACzCh2J,KAAKwK,SAASrF,EAAO,eAAgBnF,KAAK6T,OAC5C,EAEA,YAAA87C,SAAA,SAASlE,GAET,EAEA,YAAAqrC,SAAA,WACQ,MAAsB92F,KAApBujF,EAAI,OAAEp+E,EAAK,QAAEiP,EAAE,KAEvB,IAAKpU,KAAKqkM,UAAW,CACX,IAAA/iK,EAAUn8B,EAAY,MAC9Bm8B,EAAMiiD,KAAOA,EACbjiD,EAAMztB,SACSO,EAAG8rB,cAAc,WAAIqjD,EAAI,WACjC9+D,YAAY6c,EAAMltB,IACzBpU,KAAKshC,MAAQA,EAAMwnH,QAAQnlJ,IAAI,GAC/B3D,KAAKqkM,UAAY/iK,C,CAErB,EAEA,YAAAuhK,YAAA,WACE,+BAAyC7iM,KAAMmB,WAC/CnB,KAAKqkM,UAAY,IACnB,EACF,EAnCA,CAAgD,I,ogBCChD,yB,8CAqCA,QArC+C,QAC7C,YAAA10I,SAAA,SAASjoD,G,MACO,QAAd,EAAA1H,KAAKqkM,iBAAS,SAAE10I,SAASjoD,EAAO,CAC9BggI,WAAY,EACZ1jD,IAAKhkF,KAAKmF,MAAM42L,mBAEpB,EAEA,YAAA32L,OAAA,sBACE,0BAA0CpF,KAAMmB,WAChD,IAAM2iE,EAAM9jE,KAAKqkM,UAIjB,OAHAvgI,GAAOA,EAAI1+D,QAAU0+D,EAAI1+D,SAEzB,CAAC,YAAa,UAAUqQ,SAAQ,SAAA5V,GAAK,OAAC,EAAKA,GAAK,IAAX,IAC9BG,IACT,EAEA,YAAAskM,eAAA,SAAe58L,EAAe61G,GAC5Bv9G,KAAKmF,MAAMi3L,QAAQ10L,EAAO,CAAE61G,QAAO,GACrC,EAEA,YAAAzmB,SAAA,W,MACE,IAAK92F,KAAKqkM,UAAW,CACnBrkM,KAAKskM,eAAiBtkM,KAAKskM,eAAev4L,KAAK/L,MACzC,MAA0BA,KAAxBujF,EAAI,OAAEp+E,EAAK,QAAE+9E,EAAE,KAAE9uE,EAAE,KAOrBktB,EANa,IAAI,GAAW,CAChC/a,OAAQ28D,EACR/9E,MAAK,EACLo+E,KAAI,EACJmzE,SAAU12J,KAAKskM,iBAEQzwL,SACzBO,EAAG8rB,cAAc,WAAIqjD,EAAI,WAAW9+D,YAAY6c,EAAMltB,IACtDpU,KAAKshC,MAAqB,QAAb,EAAAA,EAAMwnH,eAAO,eAAEnlJ,IAAI,GAChC3D,KAAKqkM,UAAY/iK,C,CAErB,EACF,EArCA,CAA+C,I,q9BC8B/C,yB,8CAmFA,QAnF4C,QAC1C,YAAAx6B,SAAA,WACE,OAAO,SACF,kBAAsB,CACzBjE,QAAS,GACTk4B,KAAM,GAEV,EAMA,YAAAuyF,WAAA,WAEQ,MAAoBttH,KAAKgH,WAAvBnE,EAAO,UAAEugC,EAAI,OACrB,OAAQvgC,GAAWA,EAAQlC,OAASkC,EAAUugC,IAAS,EACzD,EAOA,YAAAliB,UAAA,SAAU5W,GAAV,WACQm+G,GAAQ,IAAAjlB,OAAMl5F,GAAMA,EAAKtK,KAAKwvD,WACpC,OAAOxvD,KAAKstH,aAAar3G,QAAO,SAAAkgB,GAAK,SAAKmxG,YAAYnxG,KAAOsyF,CAAxB,IAA+B,IAAM,IAC5E,EAMA,YAAA14G,WAAA,SAAWrI,GAET,YAFS,IAAAA,IAAAA,EAAA,IACT1H,KAAKyF,IAAI,UAAWiC,GACb1H,IACT,EAMA,YAAAukM,UAAA,SAAU78L,GACR,GAAIA,EAAO,CACT,IAAMmC,EAAO7J,KAAKstH,aAClBttH,KAAK+P,WAAW,SAAIlG,GAAM,GAAF,CAAEnC,IAAK,G,CAEjC,OAAO1H,IACT,EAOA,YAAAsnI,YAAA,SAAYrpE,GACV,OAAO,IAAAulC,OAAMvlC,EAAO3zD,IAAM2zD,EAAO3zD,GAAM2zD,EAAOv2D,KAChD,EASA,YAAA6/H,eAAA,SAAej9H,EAA2BT,G,WAAA,IAAAA,IAAAA,EAAA,IAChC,MAAkBA,EAAI,OAAtBm9H,OAAM,IAAG,GAAI,EACf/oE,IAAU,IAAA/sD,UAAS5G,GAAMtK,KAAKkhB,UAAU5W,GAAMA,IAAO,CAAC,EACtDk9H,EAAQxnI,KAAKsnI,YAAYrpE,GACzByO,EAAQzO,EAAOyO,OAASzO,EAAOt0D,MAAQ69H,EACvCg9D,EAAS36L,EAAKyyE,UAAYt8E,KAAKsqH,QACrC,OAAQ0c,IAAiB,QAAP,EAAAhnI,KAAKkjF,UAAE,eAAE5vB,EAAE,+BAAwBkxI,EAAM,YAAIh9D,MAAa96D,CAC9E,EAEA,YAAAnlE,WAAA,W,IAAW,sDACT,8BAAoCvH,KAAMU,GAC1CV,KAAKwK,SAASxK,KAAM,iBAAkBA,KAAKykM,iBAC7C,EAEA,YAAAA,iBAAA,WACEzkM,KAAKyF,IAAI,OAAQzF,KAAK2D,IAAI,WAC5B,EACF,EAnFA,CAA4C,I,ogBC9B5C,YAaE,WAAYwyB,GAAZ,MACE,YAAMA,IAAE,K,OACR,EAAK3rB,SAAS,EAAKrF,MAAO,iBAAkB,EAAKu/L,e,CACnD,CAqCF,OArDgD,QAC9C,YAAAtuC,cAAA,WACQ,IAAEnyE,EAAcjkF,KAAX,IAAEujF,EAASvjF,KAAL,KACjB,MAAO,+BACSujF,EAAI,iBAASA,EAAI,yCACjBU,EAAG,wDACDV,EAAI,gDACFA,EAAI,yDAI1B,EAOA,YAAAmhH,cAAA,kBACS1kM,KAAKshC,MACZthC,KAAK82F,UACP,EAEA,YAAAA,SAAA,WACU,IAAA7S,EAAQjkF,KAAI,IACdmF,EAAQnF,KAAKmF,MACbtC,EAAUsC,EAAMmoH,aAEtB,IAAKttH,KAAKshC,MAAO,CACf,IAAM,EAAuB,GAE7Bz+B,EAAQ4S,SAAQ,SAAAwoD,GACd,IAAM3zD,EAAKnF,EAAMmiI,YAAYrpE,GACvBt0D,EAAOxE,EAAMoiI,eAAej9H,GAC5BqS,EAAQshD,EAAOthD,MAAQshD,EAAOthD,MAAMlN,QAAQ,KAAM,UAAY,GAC9Dk1L,EAAYhoL,EAAQ,kBAAUA,EAAK,MAAM,GACzCjV,EAAQ4C,EAAGmF,QAAQ,KAAM,UAC/B,EAAW9K,KAAK,0BAAkB+C,EAAK,cAAKi9L,EAAS,YAAIh7L,EAAI,aAC/D,IAEA,IAAMi7L,EAAS5kM,KAAKoU,GAAG8rB,cAAc,WAAI+jD,EAAG,iBAC5C2gH,EAAO59G,UAAY,kBAAW,EAAWv3B,KAAK,IAAG,aACjDzvD,KAAKshC,MAAQsjK,EAAO3nL,U,CAExB,EAEA,YAAA2lL,gBAAA,SAAgBl7L,GACd,IAAMvC,EAAQnF,KAAKmF,MACbm8B,EAAQthC,KAAK6oJ,aACbg8C,EAAW1/L,EAAMmoH,aAAa,GAC9Bw3E,EAAUD,EAAW1/L,EAAMmiI,YAAYu9D,GAAY,GACzDvjK,IAAUA,EAAM55B,MAAQA,GAASo9L,EACnC,EACF,EArDA,CAAgD,I,kvBCDhD,yB,8CAOA,QAP2C,QACzC,YAAAh+L,SAAA,WACE,OAAO,SACF,kBAA4B,CAC/Bi0B,KAAM,GAEV,EACF,EAPA,CAA2C,I,ogBCC3C,yB,8CA6CA,QA7C+C,QAC7C,YAAAq7H,cAAA,WACU,IAAA7yE,EAASvjF,KAAI,KACrB,MAAO,uBAAeujF,EAAI,iBAASA,EAAI,uBACzC,EAEA,YAAAuT,SAAA,WACQ,IAAE7S,EAAcjkF,KAAX,IAAEujF,EAASvjF,KAAL,KACXmF,EAAQnF,KAAKmF,MACb4/L,EAAU,UAAGxhH,EAAI,oBACjB98D,EAAOthB,EAAMunF,UACb7pF,EAAUsC,EAAMmoH,aAChBirD,EAAW,UAAGt0F,EAAG,iBAASA,EAAG,iBAASx9D,GACpChiB,EAAQU,EAAK,IAErB,IAAKnF,KAAKshC,MAAO,CACf,IAAM,EAAuB,GAE7Bz+B,EAAQ4S,SAAQ,SAAA63C,GACd,IAAMppC,EAAMopC,EAAI14C,UAAY,UAAG04C,EAAI14C,UAAS,YAAIqvE,EAAG,gBAAQ8gH,GAAY,GACjEz6L,EAAKnF,EAAMmiI,YAAYh6E,GACvB03I,EAAO,UAAGv+K,EAAI,YAAInc,EAAE,YAAI7F,GACxB49L,EAAUn+K,EAAM,GAAK/e,EAAMoiI,eAAej9H,GAC1C26L,EAAY33I,EAAIrvC,MAAQ,kBAAUqvC,EAAIrvC,MAAK,MAAM,GACjD0wF,EAAUxpG,EAAMqqD,aAAellD,EAAK,UAAY,GACtD,EAAW3F,KAAK,mCACA4+E,EAAI,oEACag1F,EAAQ,mBAASysB,EAAI,qBAAWv+K,EAAI,YAAIhiB,EAAG,sBAAY6F,EAAE,cAAKqkG,EAAO,0CAClFzqF,GAAO6gL,EAAO,cAAKE,EAAS,kBAASD,EAAI,cAAK3C,EAAO,wCAG3E,IAEA,IAAM6C,EAAWllM,KAAKoU,GAAG8rB,cAAc,WAAIqjD,EAAI,UAC/C2hH,EAASl+G,UAAY,uBAAezD,EAAI,yBAAgB,EAAW9zB,KAAK,IAAG,UAC3EzvD,KAAKshC,MAAQ4jK,EAASjoL,U,CAE1B,EAEA,YAAA2lL,gBAAA,SAAgBl7L,G,MACNvC,EAAUnF,KAAI,MAChBsK,EAAK5C,GAASvC,EAAM42L,kBACpBoJ,EAA2B,QAAjB,EAAAnlM,KAAK6oJ,oBAAY,eAAE3oH,cAAc,mBAAW51B,EAAE,QAC9D66L,IAAYA,EAAQx2F,SAAU,EAChC,EACF,EA7CA,CAA+C,I,kvBCmC/C,yB,8CA0GA,QA1G4C,QAG1C,YAAA7nG,SAAA,WACE,OAAO,SACF,kBAAsB,CACzBoyJ,MAAO,GACPh7F,KAAM,GACN/tD,IAAK,GACLhE,IAAK,GACL4nG,KAAM,GAEV,EAMA,YAAAqxF,SAAA,WACE,OAAOplM,KAAK2D,IAAI,UAAY,EAC9B,EAMA,YAAA0hM,QAAA,WACE,OAAOrlM,KAAK2D,IAAI,OAClB,EAMA,YAAA2hM,OAAA,WACE,OAAOtlM,KAAK2D,IAAI,MAClB,EAMA,YAAA4hM,OAAA,WACE,OAAOvlM,KAAK2D,IAAI,MAClB,EAMA,YAAA6hM,QAAA,WACE,OAAOxlM,KAAK2D,IAAI,OAClB,EAUA,YAAA8hM,OAAA,SAAOvnI,EAAcr0D,GACnB,YADmB,IAAAA,IAAAA,EAAA,IACZ7J,KAAK47L,IAAI,CAAE19H,KAAI,GAAIr0D,EAC5B,EAEA,YAAAtC,WAAA,SAAWuhB,EAAYjf,QAAZ,IAAAif,IAAAA,EAAA,SAAY,IAAAjf,IAAAA,EAAA,IAErB,kBAAwB,GAAU7J,KAAM8oB,EAAOjf,GAC/C,IAAMq0D,EAAOl+D,KAAK2D,IAAI,QAChBu1J,EAAQl5J,KAAKolM,WACnBplM,KAAKshC,OAAQ,IAAAk9D,UAAW,IAAI,GAAY,CAAEr5F,MAAOnF,YAAUqF,EAEvD6zJ,EAAMv4J,SAAWu9D,GACnBl+D,KAAKyF,IAAI,OAAQyzJ,EAAM,GAAI,CAAEtrJ,QAAQ,IAGvC,YAAkB5N,KAAM8oB,EAAOjf,EACjC,EAEA,YAAAuxL,gBAAA,WACE,OAAO,SACF,gCAAoC,CACvCl9H,KAAM,IAEV,EAEA,YAAAw+H,WAAA,SAAWz2L,EAAU4D,QAAA,IAAAA,IAAAA,EAAA,IACnB,IAAMy5H,EAAS,8BAAoCtjI,KAAMmB,WACnD,EAAkBnB,KAAKshC,MAAOm3H,mBAAmBn1B,EAAO57H,MAAO,IACnEgxJ,UAAW,GACR7uJ,IAFGnC,EAAK,QAAEw2D,EAAI,OAMnB,OAFAolE,EAAO57H,MAAQA,EACf47H,EAAOplE,KAAOA,EACPolE,CACT,EAEA,YAAAy5D,aAAA,WACE,IAAM2I,EAAY1lM,KAAK2D,IAAI,SACrBgiM,EAAW3lM,KAAK2D,IAAI,QACpB+D,GAAS,IAAAkiF,aAAY87G,GAA8B,GAAjB,UAAGA,GACrCxnI,IAAQ,IAAA0rB,aAAY+7G,IAAaj+L,EAAQi+L,EAAW,GACpDz4L,EAAS,UAAGxF,GAAK,OAAGw2D,GAC1B,OAAO,gCAAsCl+D,KAAM,CAACkN,GACtD,EACF,EA1GA,CAA4C,I,kvBCpC5C,yB,8CAOA,QAP4C,QAC1C,YAAApG,SAAA,WACE,OAAO,SACF,kBAA4B,CAC/BwzJ,UAAW,GAEf,EACF,EAPA,CAA4C,I,kvBCC5C,yB,8CA4DA,QA5DgD,QAG9C,YAAA5wJ,OAAA,WACE,OAAO,SACF,uBAAqC,CACxC,sBAAuB,oBACvB,qBAAsB,wBACtBoxB,OAAQ,IAEZ,EAEA,YAAAs7H,cAAA,SAAcjxJ,GACJ,IAAAo+E,EAASvjF,KAAI,KACrB,MAAO,+BACSujF,EAAI,iBAASA,EAAI,+DACFp+E,EAAMxB,IAAI,OAAM,oBAAUwB,EAAMxB,IAAI,OAAM,qBAAWwB,EAAMxB,IAAI,QAAO,2BAGvG,EAEA,YAAAiiM,YAAA,WAKE,OAJK5lM,KAAKwvK,SACRxvK,KAAKwvK,OAASxvK,KAAKoU,GAAG8rB,cAAc,sBAG/BlgC,KAAKwvK,MACd,EAEA,YAAAkzB,kBAAA,SAAkBl2L,GAChBA,EAAG6hB,kBACHruB,KAAKmF,MAAMi3L,QAAQp8L,KAAK4lM,cAAcl+L,MACxC,EAEA,YAAAm+L,sBAAA,SAAsBr5L,GACpBA,EAAG6hB,kBACHruB,KAAKmF,MAAMi3L,QAAQp8L,KAAK4lM,cAAcl+L,MAAO,CAAE61G,SAAS,GAC1D,EAEA,YAAA5tD,SAAA,SAASjoD,GACC,IAAAvC,EAAUnF,KAAI,MAChBsjI,EAASn+H,EAAMu3L,WAAWh1L,GAEhC1H,KAAK4lM,cAAcl+L,MAAkB,KAAVA,EAAevC,EAAM42L,kBAAoBxzG,WAAW+6C,EAAO57H,OACtF,4BAA4C1H,KAAMmB,UACpD,EAEA,YAAA21F,SAAA,WACE,4BAA4C92F,KAAMmB,WAG7CnB,KAAKmF,MAAMxB,IAAI,eAClB3D,KAAKqkM,UAAUjwL,GAAGuI,MAAMC,QAAU,OAEtC,EAEA,YAAAimL,YAAA,WACE,+BAA+C7iM,KAAMmB,kBAC9CnB,KAAKwvK,MACd,EACF,EA5DA,CAAgD,ICqIhD,SArH8B,YAAkB,IAEP7oK,OAAO,CAC9Cs2K,cAAe,EAEfj7H,KAAI,WACI,IAAEn4C,EAAa7J,KAAT,KAAEkjF,EAAOljF,KAAL,GACVqzF,EAAKxpF,EAAKpK,SAAUyjF,aAAE,EAAFA,EAAIv/E,IAAI,iBAC9B0vF,IACFA,EAAGqzB,YAAY1mH,KAAMqzF,EAAG3pF,OAAOo8L,aAC/BzyG,EAAGszB,eAAe3mH,KAAMqzF,EAAG3pF,OAAOq8L,gBAEtC,EAEAr6K,MAAO,CACL,CACEphB,GAAI,QACJnF,MAAO,GACPm9B,KAAM,GACNw6I,OAAM,SAACp1K,GACL,GAAIA,GAAuB,SAAdA,EAAMlF,KACjB,OAAOkF,CAEX,GAEF,CACE4C,GAAI,YACJnF,MAAO,GACPm9B,KAAM,GACNw6I,OAAM,SAACp1K,GACL,GAAIA,GAAuB,aAAdA,EAAMlF,KACjB,OAAOkF,CAEX,GAEF,CACE4C,GAAI,OACJnF,MAAO,GACPm9B,KAAM,GACNw6I,OAAM,SAACp1K,GACL,GAAIA,GAAuB,QAAdA,EAAMlF,KACjB,OAAOkF,CAEX,GAEF,CACE4C,GAAI,QACJnF,MAAO,GACPm9B,KAAM,GACNw6I,OAAM,SAACp1K,GACL,GAAIA,GAAuB,SAAdA,EAAMlF,KACjB,OAAOkF,CAEX,GAEF,CACE4C,GAAI,SACJnF,MAAO,GACPm9B,KAAM,GACNw6I,OAAM,SAACp1K,GACL,GAAIA,GAAuB,UAAdA,EAAMlF,KACjB,OAAOkF,CAEX,GAEF,CACE4C,GAAI,QACJnF,MAAO,GACPm9B,KAAM,GACNw6I,OAAM,SAACp1K,GACL,GAAIA,GAAuB,SAAdA,EAAMlF,KACjB,OAAOkF,CAEX,GAEF,CACE4C,GAAI,SACJnF,MAAO,GACPm9B,KAAM,GACNw6I,OAAM,SAACp1K,GACL,GAAIA,GAAuB,UAAdA,EAAMlF,KACjB,OAAOkF,CAEX,GAEF,CACE4C,GAAI,UACJnF,MAAO,GACPm9B,KAAM,GACNw6I,OAAM,SAACp1K,GACL,GAAIA,GAAuB,WAAdA,EAAMlF,KACjB,OAAOkF,CAEX,GAEF,CACE4C,GAAI,SACJnF,MAAO,GACPm9B,KAAM,GACNw6I,OAAM,SAACp1K,GACL,GAAIA,GAAuB,UAAdA,EAAMlF,KACjB,OAAOkF,CAEX,GAEF,CACE4C,GAAI,OACJnF,MAAO,GACPm9B,KAAM,GACNw6I,OAAM,SAACp1K,GAEL,OADAA,EAAMlF,KAAO,OACNkF,CACT,M,2zCCxGN,YAiBE,WAAY6lI,EAAuB1jI,QAAA,IAAAA,IAAAA,EAAA,IAAnC,MACE,YAAM0jI,IAAI,KACFrqD,EAAOr5E,EAAI,GACnB,EAAKq5E,GAAKA,EACV,IAAM/sD,EAAIo3G,GAAO,CAAC,EACZy4D,EAAU,EAAKC,gBAAgB9vK,EAAE+vK,YACjCv8L,EAAO,EAAKhG,IAAI,SAAW,GAC7BmlB,EAAQ,IACX,EAAKnlB,IAAI,OAAS,EAAK8B,IAAI,KAAMkE,EAAK8F,QAAQ,KAAM,KAAK2Z,eAU1DN,GAHEA,EALGk9K,EAKK,EAAKG,iBAAiBH,GAJtB,EAAKriM,IAAI,cACdmB,KAAI,SAAA2hB,GAAQ,OAAC,IAAAvV,UAASuV,GAAQ,EAAKw/K,gBAAgBx/K,GAAM,GAAKA,CAAlD,IACZxQ,OAAOuvE,UAKE1gF,KAAI,SAAA2hB,GAAQ,SAAK2/K,YAAY3/K,EAAjB,IAE1B,IAAM4/K,EAAa,IAAI,GAAWv9K,EAAO,CAAEo6D,GAAE,I,OAC7CmjH,EAAW/I,OAAS,EACpB,EAAK73L,IAAI,aAAc4gM,G,CACzB,CAgKF,OAxMoC,QAGlC,YAAAv/L,SAAA,WACE,MAAO,CACLwD,GAAI,GACJX,KAAM,GACNwT,MAAM,EACNuhC,SAAS,EACT4nJ,eAAe,EACf10K,WAAY,GAEhB,EA8BA,sBAAI,yBAAU,C,IAAd,WACE,OAAO5xB,KAAK2D,IAAI,aAClB,E,gCAMA,YAAA2mH,MAAA,WACE,OAAOtqH,KAAK2D,IAAI,KAClB,EAMA,YAAA+oF,QAAA,W,MACQpiF,EAAKtK,KAAKsqH,QAChB,OAAc,QAAP,EAAAtqH,KAAKkjF,UAAE,eAAE5vB,EAAE,+BAAwBhpD,MAAStK,KAAK2D,IAAI,OAC9D,EAMA,YAAA6mH,QAAA,SAAQ9iH,GACN,OAAO1H,KAAKyF,IAAI,OAAQiC,EAC1B,EAMA,YAAAkyK,OAAA,WACE,QAAS55K,KAAK2D,IAAI,OACpB,EAMA,YAAAo2K,QAAA,SAAQryK,GACN,OAAO1H,KAAKyF,IAAI,OAAQiC,EAC1B,EAMA,YAAAkqG,UAAA,WACE,QAAS5xG,KAAK2D,IAAI,UACpB,EASA,YAAA45L,cAAA,SAAc1zL,QAAA,IAAAA,IAAAA,EAAA,IACZ,IAAMif,EAAQ9oB,KAAK2D,IAAI,cAEvB,OADamlB,EAAMtlB,OAAS,MAAIslB,EAAMtlB,QAAM,GAAIslB,GACrC7S,QAAO,SAAAwQ,GAChB,IAAIvZ,GAAS,GAETrD,EAAK08L,YACPr5L,EAASuZ,EAAKq1K,SAAS,CAAEK,UAAU,KAGjCtyL,EAAK28L,mBAEPt5L,GADeuZ,EAAKq1K,SAAS,CAAEK,UAAU,KACrB11K,EAAKq1K,YAG3B,OAAO5uL,CACT,GACF,EAEA,YAAAyxL,YAAA,SAAYr0L,GACV,OAAOtK,KAAKu9L,gBAAgBtnL,QAAO,SAAAwQ,GAAQ,OAAAA,EAAK9iB,IAAI,QAAU2G,CAAnB,IAAuB,SAAMjF,CAC1E,EAEA,YAAAohM,YAAA,SAAYnqH,EAAyBzyE,GAEnC,OAAO7J,KAAK2D,IAAI,cAAeW,IAAItE,KAAKomM,YAAY9pH,GAAWzyE,EACjE,EAUA,YAAAs8L,iBAAA,SAAiBr9K,EAAwB49K,EAA2Bn1C,QAAA,IAAAA,IAAAA,GAAA,GAMlE,IALA,IAAIo1C,EAAO79K,EAAMnoB,OACbimM,EAASF,GAAW1mM,KAAK2D,IAAI,cAC7BygC,EAAMpkC,KAAK2D,IAAI,iBACfkjM,EAAW,GAENhnM,EAAI,EAAG4rB,EAAMm7K,EAAOjmM,OAAQd,EAAI4rB,EAAK5rB,IAAK,CAIjD,IAHA,IAAIinM,EAAQF,EAAO/mM,GACfyqB,EAAQ,EAEH7e,EAAI,EAAGA,EAAIk7L,EAAMl7L,IAAK,CAC7B,IAAIgb,EAAOqC,EAAMrd,GACjB,GAAIq7L,EAAMxqH,UAAY71D,EAAK61D,UAAYwqH,EAAMx8L,IAAMmc,EAAK61D,cAAxD,CAEE,IAAIyqH,EAAUD,EAAMl1K,WAChBm1K,GAAWA,EAAQpmM,SAErBmmM,EAAMl1K,WAAa5xB,KAAKmmM,iBAAiB1/K,EAAKmL,YAAc,GAAIm1K,EAAS,IAE3Ej+K,EAAMrd,GAAK24B,GAAM,IAAAz9B,QAAO8f,EAAMqgL,GAASA,EACvCD,EAASp7L,GAAKqd,EAAMrd,GACpB6e,EAAQ,C,EAKPA,IACHxB,EAAMnkB,KAAKmiM,GACXD,EAASliM,KAAKmiM,G,CAIlB,OAAOv1C,EAAKs1C,EAAS5wL,QAAO,SAAApW,GAAK,OAAAA,CAAA,IAAKipB,CACxC,EAEA,YAAAs9K,YAAA,SAAY3/K,GACV,IAAM,IAAuB,IAAAvV,UAASuV,GAAQ,CAAE9f,OAAQ8f,GAASA,IAAS,CAAC,EAAnE9f,EAAM,SAAKmQ,EAAI,KAAjB,YACN,OAAInQ,EACK,SACD3G,KAAKimM,gBAAgB,CAACt/L,IAAS,IAAM,CAAC,GACvCmQ,GAGE2P,CAEX,EAQA,YAAAw/K,gBAAA,SAAgBn9K,G,MACRk+K,EAASl+K,GAAS,GAExB,IAAKk+K,EAAOrmM,OAAQ,MAAO,GAE3B,IAAMsmM,EAAiB,QAAP,EAAAjnM,KAAKkjF,UAAE,eAAEv/E,IAAI,gBAAgBsjM,QAE7C,OAAOA,aAAO,EAAPA,EAAS9+D,MAAM6+D,EACxB,EACF,EAxMA,CAAoC,M,kvBCvBpC,yB,8CAuBA,QAvBqC,QAInC,YAAAz/L,WAAA,SAAWkf,EAAW5c,QAAA,IAAAA,IAAAA,EAAA,IACZ,IAAApK,EAAeoK,EAAI,OAAXq5E,EAAOr5E,EAAI,GAC3B7J,KAAKkjF,GAAKA,EACVljF,KAAKP,OAASA,EACdO,KAAKwK,SAASxK,KAAM,QAASA,KAAKgqH,QACpC,EAGA,YAAA7kH,MAAA,SAAM2jB,EAAOjf,QAAA,IAAAA,IAAAA,EAAA,IAEH,IAAAq5E,EAAOr5E,EAAK5E,WAAU,GAC9B,OAAO,IAAI,GAAO6jB,EAAO,SAAKjf,GAAI,CAAEq5E,GAAE,IACxC,EAEA,YAAA8mC,QAAA,SAAQxmH,EAAaqG,QAAA,IAAAA,IAAAA,EAAA,KACNA,EAAK1D,gBAAkB,IAE/BsP,SAAQ,SAAAyxL,GAAQ,OAAAA,EAAKvjM,IAAI,cAAcuC,OAAvB,GACvB,EACF,EAvBA,CAAqC,M,2zBCY/BonH,GAAa,SAACxpB,GAA8B,OAAAA,EAAMh/F,KAAI,SAAA2hF,GAAQ,OAAGn8E,GAAIm8E,EAAP,GAAlB,EAElD,cAyCE,aAxCA,KAAA39D,MAAmD,CAAC,EAyClD9oB,KAAKmnM,WAAa,SAClBnnM,KAAKonM,UAAY,QACjBpnM,KAAKqnM,UAAY,QACjBrnM,KAAKsnM,WAAa,SAClBtnM,KAAKunM,SAAW,OAChBvnM,KAAKwnM,WAAa,SAClBxnM,KAAKynM,cAAgB,YACrBznM,KAAK0nM,UAAY,QACjB1nM,KAAK2nM,UAAY,CAAC,KAAM,IAAK,KAAM,MAAO,KAAM,MAChD3nM,KAAK4nM,gBAAkB,CAAC,KAAM,KAAM,MAAO,KAAM,MACjD5nM,KAAK6nM,UAAY,CAAC,IAAK,MACvB7nM,KAAK8nM,WAAa,CAAC,MAAO,MAAO,QACjC9nM,KAAKu6L,YAAc,CAAC,UAAW,UAAW,QAC1C,IAAMwN,EAAK,eACLC,EAAW,CAAC,aAAc,WAAY,UACtCC,EAAgB,SAAID,GAAU,GAAF,CAAE,WAAY,YAAS,GAEzDhoM,KAAKkoM,WAAa56E,GAAW,CAAC,OAAQ,QAAS,YAC/CttH,KAAKmoM,aAAe76E,GAAW,CAAC,SAAU,QAAS,UACnDttH,KAAKooM,aAAe96E,GAAW,CAAC,SAAU,WAAY,WAAY,cAClEttH,KAAKqoM,SAAW/6E,GAAW,CAAC,SAAU,OAAQ,iBAC9CttH,KAAKsoM,aAAeh7E,GAAW,CAAC,UAAW,SAAU,SAAU,SAC/DttH,KAAKuoM,QAAUj7E,GAAW,CAAC,MAAO,cAAe,SAAU,mBAC3DttH,KAAKwoM,YAAcl7E,GAAW,CAAC,QAAS,SAAU,eAAgB,OAAQ,SAC1EttH,KAAKyoM,cAAgBn7E,GAAW,CAAC,SAAU,OAAQ,UAAW,WAAY,gBAC1EttH,KAAK0oM,WAAap7E,GAAW,CAAC,OAAQ,UAAW,OAAQ,YAAa,OAAQ,WAAY,OAAQ,OAAQ,SAC1GttH,KAAK2oM,UAAYr7E,GAAW,CAAC,OAAQ,OAAQ,UAC7CttH,KAAK4oM,QAAUt7E,GAAW,CAAC,SAAU,WAAY,WAAY,UAC7DttH,KAAK6oM,cAAgBv7E,GAAW,CAAC,OAAQ,SAAU,QAAS,YAC5DttH,KAAKioM,cAAgB36E,GAAW26E,GAChCjoM,KAAK8oM,aAAex7E,GAAW,SAAI06E,GAAU,GAAF,CAAE,gBAAiB,eAAgB,iBAAc,IAC5FhoM,KAAK+oM,cAAgBz7E,GAAW,SAAI06E,GAAU,GAAF,CAAE,gBAAiB,eAAgB,YAAS,IACxFhoM,KAAKgpM,cAAgB17E,GAAW,IAAC,QAAW26E,GAAa,IACzDjoM,KAAKipM,gBAAkB37E,GAAW,CAChC,MACA,QACA,SACA,mBACA,YACA,aACA,YAEFttH,KAAKkpM,gBAAkB57E,GAAW,CAChC,OACA,QACA,SACA,SACA,SACA,SACA,QACA,QACA,WAEFttH,KAAKmpM,UAAY77E,GAAW,CAC1B,WACA,cACA,cACA,YACA,eACA,eACA,aACA,gBACA,kBAEFttH,KAAKopM,WAAa,CAChB,CAAE9+L,GAAI,MAAOoiE,MAAO,QACpB,CAAEpiE,GAAI,MAAOoiE,MAAO,eACpB,CAAEpiE,GAAI,MAAOoiE,MAAO,SACpB,CAAEpiE,GAAI,MAAOoiE,MAAO,UACpB,CAAEpiE,GAAI,MAAOoiE,MAAO,UACpB,CAAEpiE,GAAI,MAAOoiE,MAAO,aACpB,CAAEpiE,GAAI,MAAOoiE,MAAO,QACpB,CAAEpiE,GAAI,MAAOoiE,MAAO,cACpB,CAAEpiE,GAAI,MAAOoiE,MAAO,eAEtB1sE,KAAKqpM,eAAiB,CACpB,CAAE/+L,GAAI,GAAIoiE,MAAO,WACjB,CAAEpiE,GAAI,QAASoiE,MAAO,WAExB1sE,KAAKspM,UAAY,CACf,mBAAqBvB,EACrB,sBAAwBA,EACxB,kBAAoBA,EACpB,yBAA2BA,EAC3B,kCACA,iBACA,YAAcA,EACd,mBAAqBA,EACrB,qCAAuCA,EACvC,iBAAmBA,EACnB,gCACA,0BAA4BA,EAC5B,kBAAoBA,GACpBjjM,KAAI,SAAAykM,GACJ,MAAO,CAAEj/L,GAAIi/L,EAAM78H,MAAO68H,EAAKt/L,MAAM,KAAK,GAC5C,IAGAjK,KAAKwpM,eAAiB,CACpB,SACA,WACA,UACA,QACA,QACA,UACA,WACA,UACA,SACA,SACA,UACA,WAEFxpM,KAAKypM,cAAgB,CAAC,SAAU,UAAW,WAC3CzpM,KAAK0pM,YAAc,CAAE9sL,QAAS,CAAC,SAE/B5c,KAAKgiD,MACP,CAkXF,OAhXE,YAAA2nJ,MAAA,SAAM7lG,GAAN,WACE,OAAO,WACL,OAAAA,EAAMh/F,KAAI,SAAAk3B,GACR,IAAI,IAAA9qB,UAAS8qB,GAAI,OAAO,EAAKr4B,IAAIq4B,GACzB,IAAAr1B,EAAoBq1B,EAAC,OAAVllB,EAAI,GAAKklB,EAAtB,YACN,OAAO,SACF,EAAKr4B,IAAIgD,IACTmQ,EAEP,GAPA,CAQJ,EAEA,YAAAkrC,KAAA,sBACQ,EAA2ChiD,KAAzCu6L,EAAW,cAAEmP,EAAW,cAAEvC,EAAU,aAC5CnnM,KAAK8oB,MAAQ,CAAC,EAId,IAAM8gL,EAA6E,CAEjF,CAAC,gBAAiB,CAAEpnM,KAAM2kM,EAAY36E,QAAS,IAAK0sC,MAAOl5J,KAAK4nM,kBAChE,CAAC,MAAO,CAAEp7E,QAAS,OAAQ0sC,MAAOl5J,KAAK2nM,UAAWpN,YAAW,GAAI,iBACjE,CAAC,QAAS,CAAC,EAAG,OACd,CAAC,SAAU,CAAC,EAAG,OACf,CAAC,OAAQ,CAAC,EAAG,OACb,CAAC,aAAc,CAAE/tE,QAAS,KAAO,OACjC,CAAC,eAAgB,CAAC,EAAG,cACrB,CAAC,gBAAiB,CAAC,EAAG,cACtB,CAAC,cAAe,CAAC,EAAG,cACpB,CAAC,cAAe,CAAEr8G,IAAK,GAAK,cAC5B,CAAC,gBAAiB,CAAC,EAAG,eACtB,CAAC,iBAAkB,CAAC,EAAG,eACvB,CAAC,eAAgB,CAAC,EAAG,eACrB,CAAC,QAAS,CAAEA,IAAK,GAAK,OACtB,CAAC,YAAa,CAAC,EAAG,SAClB,CAAC,YAAa,CAAC,EAAG,SAClB,CAAC,SAAU,CAAC,EAAG,SACf,CAAC,aAAc,CAAC,EAAG,SACnB,CAAC,aAAc,CAAC,EAAG,SACnB,CAAC,aAAc,CAAEuqL,eAAgBgP,GAAe,SAChD,CAAC,YAAa,CAAEl9E,QAAS,SAAU+tE,YAAav6L,KAAKwpM,gBAAkB,SACvE,CAAC,iBAAkB,CAAEh9E,QAAS,SAAU+tE,YAAav6L,KAAKypM,eAAiB,OAC3E,CAAC,cAAe,CAAC,EAAG,kBACpB,CAAC,gBAAiB,CAAC,EAAG,iBACtB,CAAC,mBAAoB,CAAEt5L,IAAK,GAAK,iBACjC,CAAC,kBAAmB,CAAEmsE,SAAU,gBAAiBi+G,iBAAal1L,GAAa,eAC3E,CAAC,yBAA0B,CAAC,EAAG,mBAC/B,CAAC,0BAA2B,CAAC,EAAG,mBAChC,CAAC,4BAA6B,CAAC,EAAG,mBAClC,CAAC,6BAA8B,CAAC,EAAG,mBACnC,CAAC,eAAgB,CAAE6zJ,MAAOl5J,KAAK4nM,iBAAmB,mBAClD,CAAC,eAAgB,CAAC,EAAG,iBACrB,CAAC,eAAgB,CAAC,EAAG,iBACrB,CAAC,kBAAmB,CAAEp7E,QAAS,OAAS,oBACxC,CAAC,oBAAqB,CAAC,EAAG,iBAC1B,CAAC,sBAAuB,CAAEA,QAAS,KAAM0sC,MAAOl5J,KAAK6nM,WAAa,mBAClE,CAAC,cAAe,CAAC,EAAG,mBACpB,CAAC,QAAS,CAAErlM,KAAM2kM,EAAY36E,QAAS,IAAKkuE,eAAgBgP,IAC5D,CAAC,YAAa,CAAC,EAAG,SAClB,CAAC,cAAe,CAAEl9E,QAAS,KAAO,SAGlC,CAAC,QAAS,CAAEhqH,KAAMxC,KAAKqnM,UAAW76E,QAAS,OAAQ3pH,QAAS7C,KAAK2oM,YACjE,CAAC,WAAY,CAAEn8E,QAAS,SAAU3pH,QAAS7C,KAAK4oM,SAAW,SAC3D,CAAC,aAAc,CAAEp8E,QAAS,OAAQ3pH,QAAS7C,KAAK6oM,eAAiB,SAGjE,CAAC,QAAS,CAAErmM,KAAMxC,KAAKonM,UAAW56E,QAAS,QAASzxF,MAAM,IAC1D,CAAC,oBAAqB,CAAC,EAAG,SAC1B,CAAC,eAAgB,CAAC,EAAG,SACrB,CAAC,mBAAoB,CAAC,EAAG,SACzB,CAAC,mBAAoB,CAAEyxF,QAAS,QAAU,SAG1C,CACE,mBACA,CACEhqH,KAAMxC,KAAKunM,SACXjN,aAAc,MACd9tE,QAAS,OACTzxF,MAAM,IAKV,CAAC,UAAW,CAAEv4B,KAAMxC,KAAKwnM,WAAYh7E,QAAS,IAAKr8G,IAAK,EAAGhE,IAAK,EAAG4nG,KAAM,IAAMh5E,MAAM,IAGrF,CAAC,UAAW,CAAEv4B,KAAMxC,KAAKsnM,WAAY96E,QAAS,QAAS3pH,QAAS7C,KAAKwoM,cACrE,CAAC,iBAAkB,CAAEh8E,QAAS,MAAO3pH,QAAS7C,KAAKuoM,QAAS9N,SAAUiP,GAAe,WACrF,CAAC,YAAa,CAAEl9E,QAAS,SAAU3pH,QAAS7C,KAAKqoM,UAAY,kBAC7D,CAAC,kBAAmB,CAAE77E,QAAS,aAAc3pH,QAAS7C,KAAK8oM,cAAgB,aAC3E,CAAC,cAAe,CAAEt8E,QAAS,UAAW3pH,QAAS7C,KAAKioM,eAAiB,aACrE,CAAC,gBAAiB,CAAEplM,QAAS7C,KAAK+oM,eAAiB,eACnD,CACE,aACA,CACEv8E,QAAS,OACT3pH,QAAS7C,KAAKgpM,cACdtO,eAAgBgP,GAElB,WAEF,CAAC,cAAe,CAAEl9E,QAAS,+BAAgC3pH,QAAS7C,KAAKspM,WAAa,WACtF,CAAC,cAAe,CAAE98E,QAAS,MAAO3pH,QAAS7C,KAAKopM,YAAc,WAC9D,CAAC,eAAgB,CAAE58E,QAAS,QAAS3pH,QAAS7C,KAAKkpM,iBAAmB,WACtE,CAAC,kBAAmB,CAAE18E,QAAS,GAAI3pH,QAAS7C,KAAKqpM,gBAAkB,WACnE,CAAC,oBAAqB,CAAE78E,QAAS,SAAU3pH,QAAS7C,KAAKooM,cAAgB,WACzE,CAAC,sBAAuB,CAAE57E,QAAS,WAAY3pH,QAAS7C,KAAKmpM,WAAa,WAC1E,CAAC,wBAAyB,CAAE38E,QAAS,SAAU3pH,QAAS7C,KAAKmoM,cAAgB,WAC7E,CAAC,kBAAmB,CAAE37E,QAAS,OAAQ3pH,QAAS7C,KAAKkoM,YAAc,WACnE,CAAC,sBAAuB,CAAE17E,QAAS,QAAS3pH,QAAS7C,KAAKipM,iBAAmB,WAC7E,CAAC,6BAA8B,CAAEz8E,QAAS,OAAQ3pH,QAAS7C,KAAKyoM,eAAiB,WACjF,CAAC,SAAU,CAAEj8E,QAAS,OAAQ3pH,QAAS7C,KAAK0oM,YAAc,WAC1D,CAAC,WAAY,CAAEl8E,QAAS,UAAW3pH,QAAS7C,KAAKsoM,cAAgB,WACjE,CAAC,aAAc,CAAC,EAAG,YACnB,CAAC,aAAc,CAAC,EAAG,YAGnB,CACE,SACA,CACE9lM,KAAMxC,KAAKynM,cACX71K,WAAY5xB,KAAK2pM,MAAM,CACrB,CAAEhjM,OAAQ,aAAc2D,GAAI,kBAC5B,CAAE3D,OAAQ,eAAgB2D,GAAI,oBAC9B,CAAE3D,OAAQ,gBAAiB2D,GAAI,qBAC/B,CAAE3D,OAAQ,cAAe2D,GAAI,uBAInC,CACE,UACA,CACEsnB,WAAY5xB,KAAK2pM,MAAM,CACrB,CAAEhjM,OAAQ,cAAe2D,GAAI,mBAC7B,CAAE3D,OAAQ,gBAAiB2D,GAAI,qBAC/B,CAAE3D,OAAQ,iBAAkB2D,GAAI,sBAChC,CAAE3D,OAAQ,eAAgB2D,GAAI,uBAGlC,UAEF,CACE,SACA,CACEsnB,WAAY5xB,KAAK2pM,MAAM,CACrB,CAAEhjM,OAAQ,eAAgB2D,GAAI,oBAC9B,CAAE3D,OAAQ,eAAgB2D,GAAI,oBAC9B,CAAE3D,OAAQ,eAAgB2D,GAAI,uBAGlC,UAEF,CACE,gBACA,CACEsnB,WAAY5xB,KAAK2pM,MAAM,CACrB,CACEhjM,OAAQ,yBACR2D,GAAI,8BAEN,CACE3D,OAAQ,0BACR2D,GAAI,+BAEN,CACE3D,OAAQ,6BACR2D,GAAI,kCAEN,CACE3D,OAAQ,4BACR2D,GAAI,oCAIV,UAIF,CACE,aACA,CACE9H,KAAMxC,KAAK0nM,UACX91K,WAAY5xB,KAAK2pM,MAAM,CACrB,CAAEhjM,OAAQ,sBAAuB2D,GAAI,2BACrC,CAAE3D,OAAQ,sBAAuB2D,GAAI,2BACrC,CACE3D,OAAQ,6BACR2D,GAAI,sCAKZ,CACE,aACA,CACEw3K,SAAS,EACTqe,WAAY,SAACl+L,EAAG,G,IAAEmQ,EAAM,SAChByhB,EAAIzhB,EAAO,gBACXw7B,EAAIx7B,EAAO,gBACX2vD,EAAO3vD,EAAO,mBACdy3L,EAASz3L,EAAO,qBACtB,MAAO,UAAGyhB,EAAC,YAAI+Z,EAAC,YAAIm0B,EAAI,YAAI8nI,EAC9B,EACAj4K,WAAY5xB,KAAK2pM,MAAM,CACrB,eACA,eACA,kBACA,oBACA,mBACA,qBAGJ,cAEF,CACE,cACA,CACEn9E,QAAS,OACT2zE,WAAY,SAACl+L,EAAG,G,IAAEmQ,EAAM,SAChByhB,EAAIzhB,EAAO,iBACXw7B,EAAIx7B,EAAO,iBACX2vD,EAAO3vD,EAAO,oBACpB,MAAO,UAAGyhB,EAAC,YAAI+Z,EAAC,YAAIm0B,EACtB,EACAnwC,WAAY5xB,KAAK2pM,MAAM,CAAC,gBAAiB,gBAAiB,mBAAoB,uBAEhF,cAEF,CACE,aACA,CACErL,UAAU,EACV6B,WAAY,SAACl+L,EAAG,G,IAAEmQ,EAAM,SAKtB,MAAO,CAJQA,EAAO,0BAA4B,GACtCA,EAAO,4BAA8B,GACrCA,EAAO,8BAAgC,GACtCA,EAAO,wBAA0B,IACdq9C,KAAK,IACvC,EACA79B,WAAY5xB,KAAK2pM,MAAM,CACrB,CAAEhjM,OAAQ,mBAAoB2D,GAAI,wBAClC,CAAE3D,OAAQ,oBAAqB2D,GAAI,yBACnC,CAAE3D,OAAQ,sBAAuB2D,GAAI,2BACrC,CACE3D,OAAQ,wBACR2D,GAAI,6BAEN,CAAE3D,OAAQ,kBAAmB2D,GAAI,0BAGrC,cAEF,CACE,YACA,CACE9H,KAAM,QACNy9L,eAAgB,IAChBzB,UAAS,SAAC7hL,EAAO,G,IAAE2/D,EAAQ,WACnBrmE,EAAU0G,EADe,SACA,GACzBmgE,EAAMR,EAAS8kH,oBACrB,OAAOnrL,EACHA,EAAOhM,MAAM6yE,GAAKh4E,KAAI,SAAAw8B,GACd,MAAkBg7C,EAAS6gH,UAAU77J,GAC3C,MAAO,CACL,iBAFU,OAGV,kBAHiB,QAKrB,IACA,EACN,EACAm9J,QAAO,SAACrsL,EAAQ,G,MACd,OAAO,EAAP,IADoB,QACH,UAAGA,EAAO,kBAAiB,YAAIA,EAAO,mBAAkB,KAAG,CAC9E,EACAwf,WAAY,CACV,CACE0qD,SAAU,iBACV3yE,KAAM,OACNnH,KAAMxC,KAAKsnM,WACX96E,QAAS,UACTzxF,MAAM,EACNl4B,QAAS,CACP,CAAEyH,GAAI,SAAU8jJ,UAAW,CAAE8K,MAAO,CAAC,IAAKnlD,KAAM,MAChD,CAAEzpG,GAAI,SAAU8jJ,UAAW,CAAE8K,MAAO,CAAC,IAAKnlD,KAAM,MAChD,CAAEzpG,GAAI,SAAU8jJ,UAAW,CAAE8K,MAAO,CAAC,IAAKnlD,KAAM,MAChD,CACEzpG,GAAI,UACJ8jJ,UAAW,CAAE8K,MAAOl5J,KAAK8nM,WAAY/zF,KAAM,IAE7C,CACEzpG,GAAI,UACJ8jJ,UAAW,CAAE8K,MAAOl5J,KAAK8nM,WAAY/zF,KAAM,IAE7C,CACEzpG,GAAI,UACJ8jJ,UAAW,CAAE8K,MAAOl5J,KAAK8nM,WAAY/zF,KAAM,IAE7C,CACEzpG,GAAI,aACJ8jJ,UAAW,CAAE8K,MAAOl5J,KAAK2nM,UAAW5zF,KAAM,IAE5C,CACEzpG,GAAI,aACJ8jJ,UAAW,CAAE8K,MAAOl5J,KAAK2nM,UAAW5zF,KAAM,KAG9C2iD,SAAQ,SAAC,G,IAAEp6E,EAAQ,WACjB,GADqB,KACd50E,MAAO,CACZ,IAAMu2D,EAAUqe,EAA4Bp7D,YACtC4H,EAAQ,MAAMm1C,EAAOmwF,WAAa,CAAC,GACnC07C,EAAWxtH,EAASigH,YAAYoC,YAAY,mBAC5CzgI,EAAO4rI,EAASzE,YACjBnnI,IAAQp1C,aAAK,EAALA,EAAOowI,MAAMr0J,QAAQq5D,IAAQ,KACxCp1C,EAAMo1C,MAAOp1C,aAAK,EAALA,EAAOowI,MAAM,KAAM,IAElC4wC,EAASjtI,GAAG/zC,E,CAEhB,GAEF,CACEwzD,SAAU,kBACV95E,KAAMxC,KAAKmnM,WACX36E,QAAS,IACTzxF,MAAM,OAWhB,OAJA6uK,EAAcn0L,SAAQ,SAAC,G,IAACgR,EAAI,KAAEu9D,EAAG,KAAEvkE,EAAI,KACrC,EAAKnb,IAAImiB,EAAMu9D,GAAO,CAAC,EAAG,CAAEvkE,KAAI,GAClC,IAEOzf,IACT,EAEA,YAAAsE,IAAA,SAAIg4E,EAAkB0H,EAA+Bn6E,QAA/B,IAAAm6E,IAAAA,EAAA,SAA+B,IAAAn6E,IAAAA,EAAA,IACnD,IAAM4V,EAAO5V,EAAK4V,MAAQ,GACpBsqL,EAAU/pM,KAAK8oB,MAAMrJ,GAAQ68D,IAAa,CAAC,EAC3CpvE,EAAM,YAAa68L,GAAO,CAAEztH,SAAQ,IAAK0H,GAK/C,OAJI92E,EAAO0kB,aAAc,IAAAvvB,YAAW6K,EAAO0kB,cACzC1kB,EAAO0kB,WAAa1kB,EAAO0kB,cAE7B5xB,KAAK8oB,MAAMwzD,GAAYpvE,EAChBA,CACT,EAEA,YAAAvJ,IAAA,SAAI8iB,GACF,OAAOzmB,KAAK8oB,MAAMrC,EACpB,EAOA,YAAA0hH,MAAA,SAAMr/G,GAAN,WACQ5b,EAA0B,GAOhC,QANiB,IAAAgE,UAAS4X,GAAS,CAACA,GAASA,GAEpCrT,SAAQ,SAAAgR,GACfvZ,EAAOvI,KAAK,EAAKhB,IAAI8iB,IAAS,CAAE61D,SAAU71D,GAC5C,IAEOvZ,CACT,EACF,EAhhBA,G,gpBCXA,eAKE,WAAYipB,GAAZ,MACE,YAAMA,IAAE,KACFle,EAASke,EAAEle,QAAU,CAAC,EACpB9S,EAAU,EAAI,MAEd+9E,EAAOjrE,EAAM,G,OACrB,EAAKA,OAASA,EACd,EAAKirE,GAAKA,EACV,EAAKe,IAAMhsE,EAAOisE,aAAe,GACjC,EAAK15E,SAASrF,EAAO,iBAAkB,EAAKC,QAC5C,EAAKoF,SAASrF,EAAO,cAAe,EAAKgqL,YACzC,EAAK3kL,SAASrF,EAAO,iBAAkB,EAAK2gJ,kB,CAC9C,CA+DF,OAhFwC,QAmBtC,YAAAnpC,SAAA,SAAS,G,MAAE14B,EAAG,MAAEvX,EAAK,QACbk2C,EAAe,QAAP,EAAA5iH,KAAKkjF,UAAE,eAAE0D,YAAYg8B,MAC7BonF,GAAYpnF,aAAK,EAALA,EAAOE,QAAS,GAC5BmnF,EAAS,UAAGhmH,EAAG,WAErB,OAAO/N,EAAI,sMACW,oDACE,YAAoB,gCACpB,WAAe,gCAFvB+zH,EACEA,EAAiBD,EACjBC,EAAgBv9H,EAGpC,EAEA,YAAAhjE,OAAA,WACE,MAAO,CACL,4BAA6B,SAEjC,EAEA,YAAAylL,WAAA,WACQ,MAAsBnvL,KAApB2T,EAAG,MAAExO,EAAK,QAAE8+E,EAAG,MACjB21F,EAASz0K,EAAMy0K,SACrBjmK,EAAIimK,EAAS,WAAa,eAAe,UAAG31F,EAAG,SAC/CjkF,KAAKkqM,kBAAkBvtL,MAAMC,QAAUg9J,EAAS,GAAK,MACvD,EAEA,YAAA9zB,iBAAA,WACE9lJ,KAAKoU,GAAGuI,MAAMC,QAAU5c,KAAKmF,MAAMysG,YAAc,GAAK,MACxD,EAEA,YAAAs4F,gBAAA,WACQ,IAAEv2L,EAAa3T,KAAV,IAAEikF,EAAQjkF,KAAL,IAChB,OAAO2T,EAAIC,KAAK,WAAIqwE,EAAG,eAActgF,IAAI,EAC3C,EAEA,YAAA2+D,OAAA,WACU,IAAAn9D,EAAUnF,KAAI,MACtBmF,EAAM40K,SAAS50K,EAAMxB,IAAI,QAC3B,EAEA,YAAAwmM,iBAAA,WACQ,IAAEhlM,EAAkBnF,KAAb,MAAEiY,EAAWjY,KAAL,OACfoqM,EAAOjlM,EAAMxB,IAAI,cAEvB,GAAIymM,EAAM,CAER,IAAM9nK,EAAO,IAAI,GAAe,CAAEr9B,WAAYmlM,EAAMnyL,OAAM,IAC1DjY,KAAK2T,IAAIq/E,OAAO1wD,EAAKzuB,SAASO,G,CAElC,EAEA,YAAAP,OAAA,WACQ,MAAsB7T,KAApBikF,EAAG,MAAE9+E,EAAK,QAAEwO,EAAG,MACjBrJ,EAAKnF,EAAMmlH,QACX59C,EAAQvnE,EAAMunF,UAKpB,OAJA/4E,EAAIuiE,KAAKl2E,KAAK28G,SAAS,CAAE14B,IAAG,EAAEvX,MAAK,KACnC1sE,KAAKmqM,mBACLx2L,EAAInM,KAAK,QAAS,UAAGy8E,EAAG,kBAAUA,EAAG,mBAAW35E,EAAE,eAClDtK,KAAKmvL,aACEnvL,IACT,EACF,EAhFA,CAAwC,M,0gBCCxC,eAME,WACEm2B,QAAA,IAAAA,IAAAA,EAAA,IADF,MAIE,YAAMA,IAAE,KACA12B,EAAmB02B,EAAC,OAAZle,EAAWke,EAAC,OACtB60D,EAAO,EAAK/lF,W,OAClB,EAAKg/E,KAAMhsE,aAAM,EAANA,EAAQisE,cAAe,GAClC,EAAKX,MAAOtrE,aAAM,EAANA,EAAQksE,eAAgB,GACpC,EAAKlsE,OAASA,EACd,EAAKxY,OAASA,EACd,EAAK+K,SAASwgF,EAAM,MAAO,EAAK6Y,OAChC,EAAKr5F,SAASwgF,EAAM,QAAS,EAAKn3E,Q,CACpC,CAkCF,OArDyC,QAqBvC,YAAAzO,OAAA,sBAOE,OANA,4BAA4BpF,KAAMmB,WAClC,CAAC,SAAU,SAAU,MAAMsU,SACzB,SAAA5V,GAEE,OAAC,EAAKA,GAAK,CAAC,CAAZ,IAEGG,IACT,EAEA,YAAA6jG,MAAA,SAAM1+F,EAAe45E,EAAQl1E,QAAA,IAAAA,IAAAA,EAAA,IAC3B7J,KAAK6uH,gBAAgB1pH,EAAO,KAAM0E,EACpC,EAEA,YAAAglH,gBAAA,SAAgB1pH,EAAe2pH,EAAqCjlH,QAAA,IAAAA,IAAAA,EAAA,IAC5D,IAAEoO,EAAejY,KAAT,OAAEoU,EAAOpU,KAAL,GACZ4xF,EAAWk9B,GAAc16G,EACzBm9E,EAAW,IAAI,GAAW,CAAEpsF,MAAK,EAAE8S,OAAM,IAAIpE,SAASO,GAG5D,OAFA,SAAcw9E,EAAUL,EAAU1nF,EAAKpG,IAEhC8tF,CACT,EAEA,YAAA19E,OAAA,sBACQ,EAAqB7T,KAAnB2T,EAAG,MAAEswE,EAAG,MAAEV,EAAI,OACtB5vE,EAAIq+B,QACJ,IAAMwiB,EAAO9/C,SAASisB,yBAItB,OAHA3gC,KAAKiF,WAAWM,MAAK,SAAAJ,GAAS,SAAK0pH,gBAAgB1pH,EAAOqvD,EAA5B,IAC9B7gD,EAAIq/E,OAAOx+B,GACX7gD,EAAI2R,SAAS,UAAG2+D,EAAG,mBAAWV,EAAI,kBAAUA,EAAI,cACzCvjF,IACT,EACF,EArDA,CAAyC,M,w9BC0F5B,GAAQ,QACR,GAAQ,UAAG,GAAK,KAChBqqM,GAAW,UAAG,GAAK,UACnBC,GAAc,UAAGD,GAAQ,QACzBE,GAAiB,UAAGF,GAAQ,WAC5BG,GAAiB,UAAGH,GAAQ,WAC5BI,GAAS,UAAG,GAAK,YACjBC,GAAY,UAAGD,GAAM,QACrBE,GAAe,UAAGF,GAAM,WACxBG,GAAW,UAAGH,GAAM,WACpBI,GAAgB,UAAG,GAAK,gBACxBC,GAAW,UAAG,GAAK,UACnB,GAAW,UAAG,GAAK,UAI1BC,GAAU,SAACrjM,GAAe,OAAAA,GAAmB,IAAVA,CAAT,EAE1BsjM,GAAe,CACnB5pM,IAAK,GACL6pM,UAAWX,GACXY,aAAcX,GACdY,aAAcX,GACd1E,YAAa4E,GACb3E,eAAgB4E,GAChBlP,eAAgBmP,GAChBtJ,YAAauJ,GACbtkL,OAAQukL,GACRj6G,OAAQ,IAGV,eA2BE,WAAY3N,GAAZ,MACE,YAAMA,EAAI,eAAgB,IAAI,GAAQ,GAAI,CAAEA,GAAE,IAAK8nH,GAAc,KAAS,KAjB5E,EAAAI,OAAS,GACT,EAAAzlF,WAAa,IAiBX,IAAArjC,SAAQ,EAAM,sBACd,IAAMvD,EAAI,EAAK9mE,OACTsrE,EAAOxE,EAAEoF,aACXZ,IAAMxE,EAAEmF,YAAcX,EAAOxE,EAAEmF,aACnC,EAAK+iH,QAAU,IAAI,GACnB,EAAKr1K,WAAa,IAAI,GAAW,GAAI,CAAEsxD,GAAE,EAAEzjF,OAAQ,IACnD,EAAK2iL,QAAU,EAAKhhL,IACpB,IAAM+D,EAAQ,IAAI,KAAM,CAAE+lJ,QAAS,KACnC,EAAK/lJ,MAAQA,EAIb,EAAKkxK,OAAQ,IAAA/uF,WAAS,WAAM,SAAKgvF,SAAL,GAAgB,GAC5CnxK,EAAMqF,SAAS04E,EAFJ,oGAEY,EAAKmzF,OAE5BlxK,EAAMqF,SAAS04E,EAAI,oBAAqB,EAAKmoH,oBAG7C,IAAMC,GAAU,IAAAhkH,WAAS,WACvB,EAAKikH,YACL,EAAK/5G,aACP,GAAG,GACHrsF,EAAMqF,SAAS04E,EAAI,6BAA8BooH,GAGjD,IAAME,GAAY,IAAAlkH,WAAS,WAAM,SAAKkK,aAAL,GAAoB,G,OACrDrsF,EAAMqF,SAAS04E,EAAI,UAAG2nH,GAAa,YAAIC,IAAYU,GAGnDrmM,EAAMsC,GAAG,qBAAqB,WAAM,OAAAy7E,EAAGp/E,QAAQgnM,GAAU,EAAK9hH,cAA1B,I,CACtC,CAopBF,OA/sB0C,QA6DxC,YAAAstF,QAAA,WACEt2K,KAAKkW,OAAOlW,KAAKkjF,GAAGqC,iBACtB,EAEA,YAAAiM,YAAA,SAAY3nF,QAAA,IAAAA,IAAAA,EAAA,IACV7J,KAAK6sJ,MAAQ7sJ,KAAK6sJ,OAAShjJ,EAAK42C,UAChCzgD,KAAKkjF,GAAGp/E,QAAQ9D,KAAK0J,OAAOmnF,OAAQ,CAAEpwC,UAAWzgD,KAAK6sJ,OACxD,EAEA,YAAA2uC,QAAA,SAAQ7oL,G,UAAe,qDACrB,EAAA3S,KAAKkjF,IAAGp/E,QAAO,YAAC6O,GAAU+F,GAAI,GAChC,EAEA,YAAA2yL,mBAAA,sBACUnoH,EAAOljF,KAAI,GACbyrM,EAAczrM,KAAK0rM,mBACzBD,IACEvoH,SAAAA,EAAIl9B,MAAK,WACPk9B,EAAGglC,IAAI9iH,OAAOqmM,GACd,EAAKtmM,MAAMM,IAAI,CAAEgmM,YAAa,MAChC,IACJ,EAEA,YAAA5/E,OAAA,WAEE7rH,KAAKoiL,QAAQ99K,IAAItE,KAAKiY,OAAOmqK,QAAU,CAAEx0K,QAAQ,GACnD,EAEA,YAAA4oI,WAAA,WACEx2I,KAAKqlH,YACP,EAiBA,YAAAsmF,UAAA,SAAUrhM,EAAYgzL,EAA0Bz6L,QAAA,IAAAA,IAAAA,EAAA,IAC9C,IAAIqK,EAASlN,KAAK4rM,UAAUthM,GAO5B,OALK4C,IACHowL,EAAOhzL,GAAKA,EACZ4C,EAASlN,KAAKoiL,QAAQ99K,IAAIg5L,EAAQz6L,IAG7BqK,CACT,EASA,YAAA0+L,UAAA,SAAUthM,EAAYT,QAAA,IAAAA,IAAAA,EAAA,IACpB,IAAMzF,EAAMpE,KAAKoiL,QAAQ1+K,MAAM,CAAE4G,GAAE,IAAI,GAEvC,OADClG,GAAOyF,EAAKo6F,MAAQjkG,KAAK6rM,aAAavhM,GAChClG,GAAO,IAChB,EAUA,YAAA0nM,WAAA,SAA6DjiM,QAAA,IAAAA,IAAAA,EAAU,CAAC,GAC9D,IAAAu4K,EAAYpiL,KAAI,QAClBoE,EAAMg+K,GAAWA,EAAQ5+K,OAAUqG,EAAKoG,MAAQ,MAAImyK,EAAQ5+K,QAAM,GAAI4+K,EAAW,GACvF,OAAQv4K,EAAK60C,QAAUt6C,EAAI6R,QAAO,SAAA7N,GAAK,OAAAA,EAAEwpG,WAAF,IAAiBxtG,CAK1D,EASA,YAAA2nM,aAAA,SAAazhM,GACX,OAAOtK,KAAK8rM,aAAa1mM,OAAOpF,KAAK4rM,UAAUthM,EAAI,CAAE25F,MAAM,IAC7D,EAqBA,YAAAwiG,YAAA,SAAYuF,EAAkB1vH,EAAyBzyE,QAAA,IAAAA,IAAAA,EAAA,IACrD,IAAMyzL,EAASt9L,KAAK4rM,UAAUI,EAAU,CAAE/nG,MAAM,IAC5Cx9E,EAAO,KAGX,OAFI62K,IAAQ72K,EAAO62K,EAAOmJ,YAAYnqH,EAAUzyE,IAEzC4c,CACT,EAUA,YAAAk4K,YAAA,SAAYqN,EAAkB1hM,GAC5B,IACImc,EADE62K,EAASt9L,KAAK4rM,UAAUI,EAAU,CAAE/nG,MAAM,IAOhD,OAJIq5F,IACF72K,EAAO62K,EAAO1rK,WAAW3b,QAAO,SAAAwQ,GAAQ,OAAAA,EAAK9iB,IAAI,cAAgB2G,GAAMmc,EAAK9iB,IAAI,QAAU2G,CAAlD,IAAsD,IAGzFmc,CACT,EASA,YAAA82K,cAAA,SAAcyO,GACZ,IAAIljL,EACEw0K,EAASt9L,KAAK4rM,UAAUI,EAAU,CAAE/nG,MAAM,IAGhD,OAFIq5F,IAAQx0K,EAAQw0K,EAAO1rK,YAEpB9I,CACT,EAUA,YAAAmjL,eAAA,SAAeD,EAAkB1hM,GAC/B,IAAMwe,EAAQ9oB,KAAKu9L,cAAcyO,GACjC,OAAOljL,EAAQA,EAAM1jB,OAAOpF,KAAK2+L,YAAYqN,EAAU1hM,IAAQ,IACjE,EAgBA,YAAA4L,OAAA,SACEqQ,EACA1c,GAFF,gBAEE,IAAAA,IAAAA,EAAA,IAEQ,IAAAq5E,EAAOljF,KAAI,GACbmrJ,GAAO,IAAAjqJ,SAAQqlB,GAAUA,EAAS,CAACA,GACjC6iH,EAAav/H,EAAI,SACnBs5H,EAAOjgD,EAAGglC,IACZgjC,EAAyB,GAE7BC,EAAKl1I,OAAOuvE,SAAS/vE,SAAQ,SAAA8Q,GAC3B,IAAIphB,EAAQohB,EAEZ,IAAI,IAAArV,UAASqV,GAAS,CACpB,IAAMqlE,EAAOu3C,EAAK2gB,QAAQv9H,IAAW48G,EAAKwgB,QAAQp9H,KACjD,IAAAqjE,aAAYw/C,IAAax9C,EAAKnmF,IAAI,CAAE2jI,SAAQ,IAC7CjkI,EAAQymF,C,CAGVs/D,EAAQvmJ,KAAKQ,EACf,IAEA,IAAMmgF,EAAYz7E,EAAKy7E,WAAa4lE,EAAQj1I,QAAO,SAAAq9C,GAAK,WAAA4hD,aAAY5hD,EAAZ,IAAgBxmC,UAAU,GAClFo+H,EAAUA,EAAQpmJ,KAAI,SAAAwuD,GAAK,SAAKmoC,gBAAgBnoC,EAArB,IAC3B,IAAMr0C,EAAQikE,EAAGk/D,WACX8pD,EAAahhD,EAAQ5qJ,QAAQwsB,UAAU,GACvCq/K,EAAoBnsM,KAAKosM,eAAeF,EAAY,CACxDjtL,MAAK,EAELqmE,UAAS,IAEPmmH,EAAczrM,KAAK0rM,mBAgCvB,OA7BAxoH,EAAGl9B,MAAK,W,MAEN,GAAI/mC,IAA6B,QAApB,EAAAitL,aAAU,EAAVA,EAAY9pD,gBAAQ,wBAAM,CACrC,IAAMzlI,EAAQuvL,EAAWzjH,WACpBgjH,EAQHA,EAAY3rH,SAASnjE,GAPrB8uL,EAActoE,EAAKx3C,SAASrnF,IAAI,CAC9BikH,UAAW,eACX5rG,MAAK,EACLijI,SAAS,EACTnxB,WAAW,G,MAKNg9E,IACTtoE,EAAK/9H,OAAOqmM,GACZA,OAAcpmM,EAElB,IAEArF,KAAKmF,MAAMM,IAAI,CACbylJ,QAAO,EACPghD,WAAU,EACVC,kBAAiB,EACjBV,YAAW,EACXnmH,UAAS,IAEXtlF,KAAKurM,UAAU1hM,GAERqhJ,CACT,EAOA,YAAAliE,YAAA,WACE,OAAOhpF,KAAKmF,MAAMxB,IAAI,aACxB,EAMA,YAAA4hF,eAAA,WACE,OAAOvlF,KAAKmF,MAAMxB,IAAI,UACxB,EAMA,YAAA0oM,mBAAA,WACE,OAAOrsM,KAAKmF,MAAMxB,IAAI,sBAAwB,EAChD,EAEA,YAAA+nM,iBAAA,WACE,OAAO1rM,KAAKmF,MAAMxB,IAAI,cACxB,EASA,YAAAg4L,gBAAA,SAAgBh/K,EAAmB9S,GACjC7J,KAAKulF,iBAAiBzgF,KAAI,SAAAwuD,GAAK,OAAAA,EAAEs1B,SAASjsE,EAAO9S,EAAlB,IAC/B,IAAM0c,EAASvmB,KAAKgpF,cAGpBziE,GAAUvmB,KAAK+oF,qBAAqBpsE,GAGpC,IAAM2vL,EAActsM,KAAK0rM,mBACzBnlL,IAAU+lL,SAAAA,EAAaxsH,SAASv5D,EAAOkiE,WAAY5+E,GACrD,EASA,YAAA0iM,WAAA,SAAW9lL,GACT,OAAOzmB,KAAKinM,QAAQtjM,IAAI8iB,EAC1B,EAMA,YAAA+lL,cAAA,WACE,OAAOxsM,KAAKinM,QAAQn+K,KACtB,EAeA,YAAA2jL,WAAA,SAAWhmL,EAAcs6F,GACvB,OAAO/gH,KAAKinM,QAAQ3iM,IAAImiB,EAAMs6F,EAChC,EAWA,YAAAtlB,gBAAA,SAAgBt2F,EAAYtC,QAAA,IAAAA,IAAAA,EAAA,IAClB,IAAAqgF,EAAOljF,KAAI,GACXghJ,EAAYn+I,EAAO,QAE3B,GAAIqgF,IAAM/9E,aAAK,EAALA,EAAOgwG,QAAQ,CACvB,IAAMl9F,EAASirE,EAAG0D,YACZ2jC,EAAKrnC,EAAG57E,YACR6iJ,EAAOjnE,EAAGglC,IACV70B,EAAKnQ,EAAG4gD,UACR4oE,EAASr5G,EAAKA,EAAGzM,YAAc,CAAC,EAChC3nE,EAAShH,EAAOgqG,kBAAsC,GAAlB/+B,EAAGv/E,IAAI,SAE3CuhJ,EADU//I,EAAMxB,IAAI,WACJ6iI,eAChBmmE,EAAaznD,EAAMvkJ,OACnBisM,GAAcF,EAAOhkD,gBAAkB7lJ,EAAQ+pM,WAC/Ct4G,EAAU,CAAEy0B,QAAS,GACrBl/G,EAAO,CAAEoV,MAAK,EAAEq1E,QAAO,GACzB1I,OAAI,EAQR,GAFA2+B,EAAG5sG,OAECgvL,GAAcC,EAAY,CAC5B,IAAMC,EAAU3pH,EAAG+gE,mBACnBr4D,EAAOu+D,EAAKxmJ,IAAIuhJ,EAAOjmI,EAAO4tL,KAEhB7rD,IACZp1D,EAAOu+D,EAAK7lJ,IAAI4gJ,EAAOjmI,EAAO4tL,EAAS,CAAC,EAAGv4G,G,MAExC,GAAIr8E,EAAOuqG,iBAAkB,CAClC,IAAMl4G,EAAKnF,EAAMmlH,UACjB1+B,EAAOu+D,EAAKte,UAAUvhI,EAAIT,MAChBm3I,IAAYp1D,EAAOu+D,EAAKre,UAAUxhI,EAAI,CAAC,EAAGT,IAChD1E,EAAMokG,GAAG,YAEX3d,EAAMnmF,IAAI,UAAW,EAAG6uF,E,CAI5B1I,IAASzmF,EAAQymF,GACjB2+B,EAAGvuG,O,CAGL,OAAO7W,CACT,EAEA,YAAAinM,eAAA,SAAe7lL,EAAqB,G,IAAA,aAAkE,CAAC,EAAC,EAAlEtH,EAAK,QAAEqmE,EAAS,YAC5CpC,EAAOljF,KAAI,GACfkN,EAAoB,GAExB,GAAIg2E,GAAM38D,EAAQ,CAChB,IAAMsrB,EAAMyzC,EACN6kE,EAAOjnE,EAAGglC,IACV4kF,EAAS5pH,EAAG2J,YAAY4nG,aAAa,OAErC/gK,EAAMnN,EAAO4uF,OAAS5uF,EAASA,EAAO89F,eACtC0oF,EAAU,CAAEpmE,aAAa,EAAM12H,OAAO,GACxC+8L,EAAW,GACXC,EAAa,GACbvhH,EAAQ,GAGRh4D,GACFs5K,EAAW7iD,EAAK1mB,SAAS,WAAI/vG,EAAI42F,UAEjC5+B,GADAuhH,EAAap7J,EAAMs4G,EAAK1mB,SAAS5xF,EAAIqwF,eAAe8D,YAAY+mE,IAAsB,IACnEhoM,OAAOioM,KAE1BA,EAAWn7J,EAAMs4G,EAAK1mB,SAAS,WAAI5xF,EAAIy4E,UAAa,GACpD2iF,EAAa9iD,EAAK1mB,SAASl9G,EAAO27G,eAAe8D,YAAY+mE,IAC7DrhH,EAAQshH,EAASjoM,OAAOkoM,IAG1B,IAAM7rM,EAAMsqF,EACTz1E,QAAO,SAAA21E,GAAQ,OAAE,IAAAhC,aAAY3qE,GAAuC,EAA9B2sE,EAAKjoF,IAAI,WAAasb,CAA7C,IACflO,KAAK+7L,EAAOn9E,WACZ7iG,UAGH5f,EAAS9L,EAAId,MAAMc,EAAIyD,QAAQ0hB,GAAqB,E,CAGtD,OAAOrZ,CACT,EA8BA,YAAA4xI,QAAA,SAAWx0I,EAAYy2G,GACrB/gH,KAAK4xB,WAAWktH,QAAQx0I,EAAIy2G,EAC9B,EAOA,YAAAuH,QAAA,SAAQh+G,GACN,OAAOtK,KAAK4xB,WAAW02F,QAAQh+G,EACjC,EAMA,YAAA8oI,SAAA,WACE,OAAOpzI,KAAK4xB,WAAWwhH,UACzB,EAkBA,YAAA85D,WAAA,SAAW5iM,EAAY,G,IAAA,aAA4B,CAAC,EAAC,EAA5B,IAAAnF,MAAAA,OAAK,IAAG,GAAC,EAAC,EAAE,IAAAm9B,KAAAA,OAAI,IAAG,GAAC,EAAC,EACpCrqB,EAAWjY,KAAI,OACjBwC,EAAOxC,KAAKsoH,QAAQh+G,GAE1B,GAAI9H,EACF,OAAO,IAAIA,EAAK8/B,KAAK,IACnBn9B,MAAO,IAAI3C,EAAK2C,MAAMA,GACtB8S,OAAM,GACHqqB,GAGT,EAOA,YAAAzuB,OAAA,WACQ,MAA2B7T,KAAzBiY,EAAM,SAAEirE,EAAE,KAAEiqH,EAAQ,WACtB/4L,EAAK+4L,GAAYA,EAAS/4L,GAQhC,OAPApU,KAAKmtM,SAAW,IAAI,GAAY,CAC9B/4L,GAAE,EACF8uE,GAAE,EACFjrE,OAAM,EACNxY,OAAQO,KACRiF,WAAYjF,KAAKoiL,UAEZpiL,KAAKmtM,SAASt5L,SAASO,EAChC,EAEA,YAAAy3L,aAAA,SAAaG,GACH,IAAA9oH,EAAOljF,KAAI,GACnBkjF,GAAMA,EAAGuC,WAAW,WAAIumH,EAAQ,sBAClC,EAEA,YAAAjjH,qBAAA,SAAqBpsE,EAAmB9S,QAAA,IAAAA,IAAAA,EAAA,IAC9B,IAAAq5E,EAAOljF,KAAI,GACb2S,EAAQ,wBAGd,IAAKgK,EAAM+rE,IAAK,CACd,IAAMh1D,EAAM7pB,EAAKw7E,YAAcnC,EAAGqC,iBAC5Bq9C,EAAOxiI,MAAMc,QAAQwyB,GAAOA,EAAM,CAACA,GACnCmuG,EAAW,MAAKllH,UACfklH,EAASn5C,IAChB,IAAM,EAAY1/D,OAAO/nB,KAAK4gI,GACxB,EAAa,CAAEllH,MAAOklH,GAE5Be,EAAKntH,SAAQ,SAAA6vE,GACXpC,EAAGp/E,QAAQ6O,EAAO2yE,EAAW,GAC7B,EAAU7vE,SAAQ,SAAApU,GAAO,OAAA6hF,EAAGp/E,QAAQ,UAAG6O,EAAK,YAAItR,GAAOikF,EAAW,EAAzC,GAC3B,G,CAEJ,EAEA,YAAAimH,UAAA,SAAU1hM,GAAV,gBAAU,IAAAA,IAAAA,EAAA,IACR,IAAMqiM,EAAalsM,KAAKgpF,cACxB,GAAKkjH,EAAL,CAEQ,IAAA9pB,EAAYpiL,KAAI,QAClBslF,EAAYtlF,KAAKmF,MAAMxB,IAAI,aAC3BwoM,EAAoBnsM,KAAKqsM,qBACzB1vL,EAAQuvL,EAAWzjH,WACnB2kH,EAAejB,EAAkBrnM,KAAI,SAAAk3B,GAAK,OAC9CzV,OAAQyV,EACRrf,MAAOqf,EAAEysD,WAFqC,IAKhD25F,EAAQt9K,KAAI,SAAAw4L,GACVA,EAAOC,gBAAgBz4L,KAAI,SAAA2hB,GACzB,EAAK4mL,SAAS5mL,EAAM9J,EAAOywL,EAAcvjM,EAC3C,GACF,IAGAu4K,EAAQ3sK,SAAQ,SAAA6nL,GACd,IAAMx0K,EAAQw0K,EAAOC,gBACrBz0K,EAAMrT,SAAQ,SAAAgR,GACZ,IAAMmrF,EAAYnrF,EAAK22K,kBAAkB,CACvC72K,OAAQ2lL,EACR5mH,UAAS,EAET88F,QAAO,IAET37J,EAAKhhB,IAAI,UAAWmsG,EACtB,IACA,IAAM07F,EAAgBxkL,EAAMvX,MAAK,SAAAyqB,GAAK,OAAAA,EAAE41E,WAAF,IACtC0rF,EAAO73L,IAAI,UAAW6nM,EACxB,GA/BuB,CAgCzB,EAEA,YAAAD,SAAA,SAAS5mL,EAAW9J,EAAmBywL,EAAqBvjM,GAA5D,WACQF,EAAO8c,EAAKimE,UACZhlF,EAAQiV,EAAMhT,GACd4jM,EAASxC,GAAQrjM,GACjB8lM,EAA6B,UAAnB/mL,EAAK6hG,UACfmlF,EAAiC,cAAnBhnL,EAAK6hG,UACnBh7D,EAAM,SAAKzjD,GAAI,CAAE0xL,MAAM,IACvBmS,GAAaD,IAAgBD,EAC/B/L,EAAY+L,EAAU/mL,EAAKo7K,qBAAqBllL,GAAS,GACzDuyH,EAAWu+D,EAAchnL,EAAKo5K,oBAAoBljL,GAAS,CAAC,EAC5Dg3F,EAAW45F,EAAS7lM,EAAQ,KAC5BizL,EAAoB,KAExB,GAAK6S,GAAyB,OAAd/L,GAAwBgM,GAA4B,OAAbv+D,EAAoB,CACzE,IAAM,EAASs+D,EAAU,uBAAyB,sBAGlD,GAFMG,EAAaP,EAAan3L,QAAO,SAAA+lB,GAAK,OAA0B,OAA1BvV,EAAK,GAAQuV,EAAErf,MAAf,IAAgC,GAE5D,CACdg3F,EAAWg6F,EAAWhxL,MAAMhT,GAC5BgxL,EAAegT,EAAWpnL,OAC1B,IAAMtgB,EAAMwgB,EAAK,GAAQknL,EAAWhxL,OAChC6wL,EACF/L,EAAYx7L,EAEZipI,EAAWjpI,C,OAGV,IAAKsnM,EAAQ,CAElB,IAAMI,EADNh6F,EAAW,MACLg6F,EAAaP,EAAan3L,QAAO,SAAA+lB,GAAK,OAAA+uK,GAAQ/uK,EAAErf,MAAMhT,GAAhB,IAAwB,MAGlEgqG,EAAWg6F,EAAWhxL,MAAMhT,GAC5BgxL,EAAegT,EAAWpnL,O,CAO9B,GAHAE,EAAKy2K,kBAAkBvC,GACvB+S,GAAajnL,EAAKy0K,mBAAqBvnF,GAAYltF,EAAK21K,QAAQzoF,EAAUrmD,GAC1EkgJ,GAAW/mL,EAAK+6K,YAAYC,GAAa,IACrCgM,EAAa,CACf,IAAM3kL,EAAQrC,EAAK82K,gBAGnB,GAAI92K,EAAKo4K,aAAc,CACrB,IAAM,EAAWp4K,EAAKo5K,oBAAoBljL,EAAO,CAAEmiL,QAAQ,KAAW,CAAC,EACjE,EAAkBsO,EAAatoM,KAAI,SAAAk3B,GAAK,OAAC,SAC1CA,GAAC,CACJrf,MAAO8J,EAAKo5K,oBAAoB7jK,EAAErf,MAAO,CAAEmiL,QAAQ,KAAW,CAAC,GAFnB,IAI9Ch2K,EAAMhkB,KAAI,SAAC8nH,GAAY,SAAKygF,SAASzgF,EAAI,EAAU,EAAiB/iH,EAA7C,G,MAEvB4c,EAAK64K,gBAAgBpwD,GAAY,CAAC,EAAG5hF,GACrC7mC,EAAK82K,gBAAgBz4L,KAAI,SAAC8nH,GAAY,OAAAA,EAAGswE,kBAAkBvC,EAArB,G,CAG5C,EAEA,YAAAtrL,QAAA,W,MACE,CAACrP,KAAK4xB,WAAY5xB,KAAKoiL,SAAS3sK,SAAQ,SAAAu1E,GACtCA,EAAK9kF,QACL8kF,EAAK1/E,eACP,IACa,QAAb,EAAAtL,KAAKmtM,gBAAQ,SAAE/nM,SACfpF,KAAKmF,MAAMmG,gBACXtL,KAAKq2K,MAAMzrH,QACb,EACF,EA/sBA,CAA0C2hE,G,wuFCpF1C,MAAa,aAEb,IAAMqhF,GAA6C,CACjD,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAEIC,GAAuE,CAC3E,GACA,GACA,GACA,KCrEF,SAAgB,G,IAAE9kM,EAAC,IACjB,GAAIA,GAAKA,EAAE1I,WAA8C,WAAjC0I,EAAE1I,UAAUsP,YAAYhG,KAAmB,CACjE,IAAMnJ,EAAKuI,EAAEvI,GAIbA,EAAGmzF,KAAO,WACR,OAAO3zF,KAAKsgC,IAAI,UAAW,OAC7B,EAEA9/B,EAAGkzF,KAAO,WACR,OAAO1zF,KAAKsgC,IAAI,UAAW,QAC7B,EAEA9/B,EAAGw0C,MAAQ,WACT,IAAM5gC,EAAKpU,KAAK2D,IAAI,GAEpB,OADAyQ,GAAMA,EAAG4gC,QACFh1C,IACT,EAIAQ,EAAGuL,KAAO,SAAUS,EAAS0mB,GAC3B,OAAOlzB,KAAKyH,GAAG+E,EAAI0mB,EACrB,EAEA1yB,EAAGqM,OAAS,SAAUL,EAAS0mB,GAC7B,IAAI,IAAAxsB,UAAS8F,GAAK,CAChB,IAAK,IAAI,KAAQA,EACfA,EAAGka,eAAe,IAAS1mB,KAAKmL,IAAI,EAAMqB,EAAG,IAG/C,OAAOxM,I,CAEP,OAAOA,KAAKmL,IAAIqB,EAAI0mB,EAExB,EAEA1yB,EAAGyrF,MAAQ,SAAU/4D,GACnB,OAAOA,EAAIlzB,KAAKyH,GAAG,QAASyrB,GAAKlzB,KAAK8D,QAAQ,QAChD,EAEAtD,EAAGs6B,OAAS,SAAU5H,GACpB,OAAOA,EAAIlzB,KAAKyH,GAAG,SAAUyrB,GAAKlzB,KAAK8D,QAAQ,SACjD,EAEAtD,EAAGw5J,QAAU,SAAU9mI,GACrB,OAAOA,EAAIlzB,KAAKyH,GAAG,UAAWyrB,GAAKlzB,KAAK8D,QAAQ,UAClD,EAEAtD,EAAG8T,SAAW,SAAUZ,EAAehK,EAAagP,EAAWhN,GAK7D,OAJKA,IACHA,EAAUgN,GAGL1Y,KAAKyH,GAAGiC,EAAQgK,GAAU,SAAUxI,GACzCA,EAAEwN,KAAOA,EACThN,EAAQR,EACV,GACF,EAEA1K,EAAGyrC,WAAa,WACd,IAAI73B,EAAKpU,KAAK2D,IAAI,GAEdq0F,GADJ5jF,EAAoB,GAAfA,EAAG4Q,SAAgB5Q,EAAG6yF,YAAc7yF,aACjB05L,OAAS15L,EAAK,KACtC,OAAO4jF,EAAMA,EAAIjsD,YAAc33B,EAAG63B,YAAc,CAClD,EAEAzrC,EAAG6rC,UAAY,WACb,IAAIj4B,EAAKpU,KAAK2D,IAAI,GAEdq0F,GADJ5jF,EAAoB,GAAfA,EAAG4Q,SAAgB5Q,EAAG6yF,YAAc7yF,aACjB05L,OAAS15L,EAAK,KACtC,OAAO4jF,EAAMA,EAAI5rD,YAAch4B,EAAGi4B,WAAa,CACjD,EAEA,IAAM,EAAStjC,EAAE1I,UAAU86B,OAC3B36B,EAAG26B,OAAS,SAAU2R,GACpB,IAAIhE,EAAKpZ,EAcT,OAZIod,IACFhE,EAAMgE,EAAOhE,IACbpZ,EAAOod,EAAOpd,WAGE,IAAPoZ,GACT9oC,KAAKsgC,IAAI,MAAO,UAAGwI,EAAG,YAEL,IAARpZ,GACT1vB,KAAKsgC,IAAI,OAAQ,UAAG5Q,EAAI,OAGnB,EAAO9uB,KAAKZ,KACrB,EAEA+I,EAAEjE,IAAM,SAAUg/F,EAAY8tC,GAG5B,IAFA,IAAMm8D,EAAK,GAEFluM,EAAI,EAAGA,EAAIikG,EAAMnjG,OAAQd,IAChCkuM,EAAGppM,KAAKitI,EAAI9tC,EAAMjkG,GAAIA,IAGxB,OAAOkuM,CACT,EAEA,IAAM,EAAU3tM,MAAMC,UAAUwE,QAEhCkE,EAAEkoK,QAAU,SAAUhrK,EAAUpF,EAAUhB,GACxC,OAAc,MAAPgB,GAAe,EAAI,EAAQD,KAAKC,EAAKoF,EAAKpG,EACnD,EAEAkJ,EAAE8mE,MAAQ,SAAUnzD,EAAUoM,GAC5B,KAAM9oB,gBAAgB+I,EAAE8mE,OACtB,OAAO,IAAI9mE,EAAE8mE,MAAMnzD,EAAKoM,GAG1B9oB,KAAKwC,KAAOka,EACZ1c,KAAKwxK,mBAAqB,WAAM,SAClC,C,CAEH,CD/CD,CAAS,CAAEzoK,EAAC,eAEZ,IAAMilM,GAAO,CACXxmH,MAAO27D,QAAQvhC,IACf9vF,KAAMqxH,QAAQrxH,KACdm8K,QAAS9qD,QAAQl/C,KACjBn5F,MAAOq4I,QAAQr4I,OAGjB,eA4IE,WAAYk9G,QAAA,IAAAA,IAAAA,EAAA,IAAZ,MACE,cAAO,KA3HT,EAAAkmF,QAAS,EACT,EAAAC,gBAAiB,EACjB,EAAA54E,WAAY,EA0HV,EAAKrQ,QAAU8C,EACP,IAAA/vG,EAAW,EAAI,OACvB,EAAKxS,IAAI,SAAUuiH,GACnB,EAAKviH,IAAI,UAAW,IACpB,EAAKA,IAAI,SAAU,IACnB,EAAKA,IAAI,YAAa,IACtB,EAAKA,IAAI,WAAY,IAAI,GACzB,EAAKA,IAAI,QAASwS,EAAOm2L,UACjB,IAAAh6L,EAAY6D,EAAM,GAAd2pG,EAAQ3pG,EAAM,IACpBo2L,GAAgB,IAARzsF,GAAe,IAAA3gH,MAAK+sM,KAAQ,IAAA9sM,SAAQ0gH,GAAOA,EAAM,G,OAC/D,IAAAt/B,SAAQ,EAAM,uBAEVluE,GAAM6D,EAAOupG,cACfvpG,EAAOotE,WAAajxE,EAAG4yE,WAGzB,EAAKsnH,UAAYl6L,GACb,IAAAqC,SAAQrC,EAAGpN,YAAY2O,QAAO,SAACvR,EAAK+O,GAElC,OADA/O,EAAI+O,EAAKssC,UAAYtsC,EAAKm4D,UACnBlnE,CACT,GAAG,CAAC,GACJ,GAGA6T,EAAOotE,aAAeptE,EAAOs2L,cAC/Bt2L,EAAOs2L,YAAc,CAAE7iF,MAAO,CAAC,CAAEpmC,UAAWrtE,EAAOotE,eAIrDuoH,GAAKn4L,SAAQ,SAAA+4L,GAAU,SAAKC,WAAWD,EAAhB,IACvBX,GAAap4L,SAAQ,SAAA+4L,GAAU,SAAKE,mBAAmBF,EAAxB,IAC/B,EAAK/mM,GAAG,0BAA2B,EAAK+2I,iBAAkB,GAC1D,EAAK/2I,GAAG,sBAAuB,EAAKknM,cAAe,GACnD,EAAKlnM,GAAG,sCAAuC,EAAKmnM,YAAa,GACjEP,EAAM54L,SAAQ,SAAAvK,GAAK,SAAK2jM,UAAU3jM,EAAf,IAGnB,CAAC,CAAEuU,KAAM,2BAA4BC,GAAI,sBAAuBjK,SAAQ,SAAA9C,GACtE,IAAMm8L,EAAYn8L,EAAM8M,KAClBsvL,EAAUp8L,EAAM+M,GACtB,EAAKlV,SAAS,EAAMskM,GAAW,W,IAAC,sDAC9B,EAAKhrM,QAAO,MAAZ,EAAI,IAASirM,GAAYruM,GAAI,IAC7B,EAAK+kF,WAAW,qBAAcqpH,EAAS,6CAAqCC,EAAO,KACrF,GACF,I,CACF,CA6yBF,OAx+ByC,QACvC,YAAAjoM,SAAA,WACE,MAAO,CACLkoM,QAAS,EACTh7I,SAAU,EACVi7I,UAAW,KACXplE,MAAO,EACP2U,iBAAkB,KAClB0wD,cAAe,KACfxmF,aAAc,EACdymF,UAAW,GACXC,QAAS,GACTC,OAAQ,GACR13B,OAAQ,CAAC,EACTtqD,OAAQ,GAEZ,EAYA,sBAAI,wBAAS,C,IAAb,WACE,OAAOrtH,KAAK2D,IAAI,YAClB,E,gCAEA,sBAAI,sBAAO,C,IAAX,WACE,OAAO3D,KAAK2D,IAAI,UAClB,E,gCAEA,sBAAI,qBAAM,C,IAAV,WACE,OAAO3D,KAAK2D,IAAI,SAClB,E,gCAEA,sBAAI,uBAAQ,C,IAAZ,WACE,OAAO3D,KAAK2D,IAAI,WAClB,E,gCAEA,sBAAI,sBAAO,C,IAAX,WACE,OAAO3D,KAAK2D,IAAI,UAClB,E,gCAEA,sBAAI,mBAAI,C,IAAR,WACE,OAAO3D,KAAK2D,IAAI,OAClB,E,gCAEA,sBAAI,oBAAK,C,IAAT,WACE,OAAO3D,KAAK2D,IAAI,QAClB,E,gCAEA,sBAAI,uBAAQ,C,IAAZ,WACE,OAAO3D,KAAK2D,IAAI,WAClB,E,gCAEA,sBAAI,sBAAO,C,IAAX,WACE,OAAO3D,KAAK2D,IAAI,UAClB,E,gCAEA,sBAAI,oBAAK,C,IAAT,WACE,OAAO3D,KAAK2D,IAAI,QAClB,E,gCAEA,sBAAI,qBAAM,C,IAAV,WACE,OAAO3D,KAAK2D,IAAI,SAClB,E,gCAEA,sBAAI,0BAAW,C,IAAf,WACE,OAAO3D,KAAK2D,IAAI,cAClB,E,gCAEA,sBAAI,0BAAW,C,IAAf,WACE,OAAO3D,KAAK2D,IAAI,cAClB,E,gCAEA,sBAAI,6BAAc,C,IAAlB,WACE,OAAO3D,KAAK2D,IAAI,iBAClB,E,gCAEA,sBAAI,qBAAM,C,IAAV,WACE,OAAO3D,KAAK2D,IAAI,SAClB,E,gCAEA,sBAAI,qBAAM,C,IAAV,WACE,OAAO3D,KAAK2D,IAAI,SAClB,E,gCAEA,sBAAI,yBAAU,C,IAAd,WACE,OAAO3D,KAAK2D,IAAI,gBAClB,E,gCAEA,sBAAI,kBAAG,C,IAAP,WACE,OAAO3D,KAAK2D,IAAI,cAClB,E,gCAEA,sBAAI,qBAAM,C,IAAV,WACE,OAAO3D,KAAK2D,IAAI,eAClB,E,gCAEA,sBAAI,wBAAS,C,IAAb,WACE,OAAO3D,KAAK2D,IAAI,kBAClB,E,gCAEA,sBAAI,sBAAO,C,IAAX,WACE,OAAO3D,KAAK2D,IAAI,iBAClB,E,gCAEA,sBAAI,qBAAM,C,IAAV,WACE,OAAO3D,KAAK2D,IAAI,eAClB,E,gCAEA,sBAAI,qBAAM,C,IAAV,WACE,OAAO3D,KAAK2D,IAAI,SAClB,E,gCAEA,sBAAI,qBAAM,C,IAAV,WACE,OAAO3D,KAAK2D,IAAI,eAClB,E,gCAEA,sBAAI,qBAAM,C,IAAV,WACE,OAAO3D,KAAK2D,IAAI,eAClB,E,gCAEA,sBAAI,sBAAO,C,IAAX,WACE,OAAO3D,KAAK2D,IAAI,gBAClB,E,gCAEA,sBAAI,oBAAK,C,IAAT,WACE,OAAO3D,KAAK2D,IAAI,cAClB,E,gCAEA,sBAAI,qBAAM,C,IAAV,WACE,OAAO3D,KAAK2D,IAAI,eAClB,E,gCAmDA,YAAAirM,YAAA,WACM5uM,KAAK2D,IAAI,cAAgB3D,KAAK2D,IAAI,iBAAmB3D,KAAK2D,IAAI,UAChE3D,KAAKyF,IAAI,SAAS,EAEtB,EAEA,YAAAopF,aAAA,WACE,OAAO7uF,KAAKiY,OAAO7D,EACrB,EAEA,YAAAy6L,UAAA,SAAUl8L,GAER3S,KAAKwK,SAASxK,KAAM,cAAO2S,GAASq7L,GAAKr7L,GAC3C,EAEA,sBAAI,qBAAM,C,IAAV,WACE,OAAO3S,KAAKklH,OACd,E,gCAQA,YAAAt+B,UAAA,SAGEngE,GACQ,IAAAxO,EAAWjY,KAAI,OAEvB,OAAO,IAAA4pF,aAAYnjE,GAAQxO,EAASA,EAAOwO,EAC7C,EAMA,YAAA6oL,YAAA,sBACQ,EAA4BtvM,KAAKiY,OAA/BwpG,EAAW,cAAE8tF,EAAQ,WACvBl8G,EAAKrzF,KAAK2D,IAAI,kBAGpB3D,KAAKqvM,OAAOviL,UAAUrX,SAAQ,SAAAovH,GAAO,OAAAA,EAAIhZ,QAAJ,IAGrC,IAAM1G,EAAW,WACf,EAAKiqF,QAAQ35L,SAAQ,SAAAovH,GAAO,OAAAA,EAAI1f,UAAY0f,EAAI1f,SAAS,EAA7B,IAC5B,EAAK1/G,IAAI,YAAa,EACxB,EAEI8pM,GACF9tF,GAAezhH,KAAKwvM,SAAS/tF,GAC7B0D,KAGAnlH,KAAKyvM,gBAAkBloL,YAAW,iD,gEAC5Bk6F,GACFzhH,KAAKwvM,SAAS/tF,G,OADZ,M,YAEOpuB,aAAE,EAAFA,EAAIuiE,eAAJ,Y,iBAEP,O,sBAAA,GAAM51J,KAAKqsH,Q,cAAX,S,+BAEArsH,KAAKszI,SAAS,G,oBAGlBnuB,I,cAMJ,IAAMy6B,EAAU,IAAI8vD,EAAY,CAC9BhuF,gBAAgB,EAChB6B,gBAAgB,EAChBj7G,aAAa,IAGfs3I,EAAQv0D,MAAMwgC,SACd+zB,EAAQp7D,OAAO2gC,WACfnlH,KAAKyF,IAAI,UAAWm6I,EACtB,EAOA,YAAA+uD,cAAA,sBACQgB,EAAM3vM,KAAK2D,IAAI,kBACfkK,EAAU7N,KAAK4vM,gBACrB5vM,KAAK6vM,WAAapoL,aAAaznB,KAAK6vM,WACpC7vM,KAAK6vM,UAAYtoL,YAAW,WAAM,SAAKzjB,QAAQ,SAAb,IAE9B9D,KAAKiY,OAAOypG,iBACd3hH,OAAO+vM,eAAiBjiM,EAAU,WAAM,UAAO,MAG7C8hM,EAAIv7C,cAAgBvmJ,GAAW8hM,EAAIr7C,sBACrCt0J,KAAKu8F,QAAQ+0D,OAAM,SAAAj/C,GAAO,SAAKihC,SAASjhC,EAAd,GAE9B,EAKQ,YAAAo8F,WAAR,SAAmBsB,GACjB,IAAMC,EAAM,IAAID,EAAW/vM,MAI3B,OAHAA,KAAKyF,IAAIuqM,EAAIrmM,KAAMqmM,GACnBA,EAAInkF,QAAU7rH,KAAKqvM,OAAO1qM,KAAKqrM,GAC/BhwM,KAAKovM,QAAQzqM,KAAKqrM,GACXA,CACT,EAEQ,YAAAtB,mBAAR,SAA2BqB,GACzB,IAAMC,EAAMhwM,KAAKyuM,WAAWsB,GAE5B,OADA/vM,KAAKmvM,UAAUxqM,KAAKqrM,GACbA,CACT,EAQA,YAAAhuJ,KAAA,SAAKugC,EAAgB14E,QAAA,IAAAA,IAAAA,EAAA,IACf7J,KAAKu1H,YACPv1H,KAAKuH,WAAWsC,GAChB7J,KAAKu1H,WAAY,GAEnBv1H,KAAKyF,IAAI,SAAU88E,EACrB,EAEA,YAAA9vB,UAAA,WACE,OAAOzyD,KAAK2D,IAAI,SAClB,EAUA,YAAAssM,cAAA,SAAc9qM,EAAYc,EAAUqnD,GAApC,gBAAoC,IAAAA,IAAAA,EAAA,IAE9BttD,KAAKkuM,QAAU5gJ,EAAIw7D,WAAax7D,EAAIy7D,SAAWz7D,EAAIu7B,aAAe7oF,KAAK2D,IAAI,WAI/E3D,KAAKkwM,eAAiBzoL,aAAaznB,KAAKkwM,eACxClwM,KAAKkwM,cAAgB3oL,YAAW,WAC9B,IAAMg/G,EAAO,EAAKqpE,iBAAmB,EACnB/lM,GAASyjD,EAAG,MAAR,GAAKA,EAArB,YACN,EAAK7nD,IAAI,eAAgB8gI,EAAO,EAAG18H,EACrC,GAAG,GACL,EAEA,YAAAg/G,UAAA,SAAUh/G,GACR7J,KAAKiwM,cAAc,EAAG,EAAGpmM,EAC3B,EASA,YAAA20I,iBAAA,SAAiBj8D,EAAa+C,EAAgBziF,GAC5C,IAAMqL,EAAOlO,KAAKwO,SAAS,oBAC3BN,GAAQlO,KAAK8D,QAAQ,sBAAuBoK,EAAMrL,GAClDyiF,GAAatlF,KAAK8D,QAAQ,oBAAqBwhF,EAAWziF,EAC5D,EAOA,YAAAmmF,YAAA,WACE,OAAOhpF,KAAKg0D,SAASywD,eACvB,EAOA,YAAAl/B,eAAA,WACE,OAAOvlF,KAAKg0D,SAAS0wD,eACvB,EAQA,YAAAhmB,YAAA,SAAYtqF,EAA8BvK,GAA1C,gBAA0C,IAAAA,IAAAA,EAAA,IAChC,IAAA8I,EAAU9I,EAAI,MAChB+kB,EAAUjc,IAAUA,EAAMic,SAAWjc,EAAM2jD,SACzCC,GAAa5jD,GAAS,CAAC,GAAC,SAC1Bo9G,IAAO,IAAA7uH,SAAQkT,GAAMA,EAAK,CAACA,IAAKtP,KAAI,SAAAsP,GAAM,WAAA2xE,UAAS3xE,EAAI,aAAb,IAC1C4/C,EAAWh0D,KAAKulF,iBAChB4qH,EAASnwM,KAAK4mF,YAAY27B,kBAK1B6tF,GAAW,IAAAlvM,SAAQkT,GACzBg8L,GAAYpwM,KAAKqpJ,eAAer1F,EAAS/9C,QAAO,SAAA7N,GAAK,QAAC,IAAA1D,UAASqrH,EAAK3nH,EAAf,KAErD2nH,EAAIt6G,SAAQ,SAAArB,GACV,IAAIjP,GAAQ,IAAA4gF,UAAS3xE,OAAI/O,GAEzB,GAAIF,IACF,EAAKrB,QAAQ,0BAA2BqB,EAAO0E,IAG1C1E,EAAMxB,IAAI,eAAiBkG,EAAKm7E,OAAO,CAC1C,IAAIn7E,EAAK6uF,SAKP,OAHA,IADA,IAAI,EAASvzF,EAAMoZ,SACZ,IAAW,EAAO5a,IAAI,eAAe,EAAS,EAAO4a,SAC5DpZ,EAAQ,C,CAQd,GAAIypB,GAAWuhL,EACb,OAAO,EAAKE,eAAelrM,GACtB,GAAIoxD,GAAY45I,EAAQ,CAC7B,EAAKnqB,eAAe,EAAKriL,IAAI,UAAUs0F,aACvC,IAEI,EAAyB,EAFvB,EAAO9yF,EAAMF,WACb,EAAQE,EAAMrE,QAkBpB,GAdA,EAAKykF,iBAAiB9vE,SAAQ,SAAAo8B,GAC5B,IAAMy+J,EAAUz+J,EAAI5sC,WACdsrM,EAAW1+J,EAAI/wC,QACjBwvM,IAAY,IACVC,EAAW,EAEb,GAAM,IAAA3mH,aAAY,GAAO2mH,EAAWrkM,KAAKC,IAAI,EAAKokM,GACzCA,EAAW,IAEpB,GAAM,IAAA3mH,aAAY,GAAO2mH,EAAWrkM,KAAKiE,IAAI,EAAKogM,IAGxD,MAEK,IAAA3mH,aAAY,GACf,KAAO,IAAQ,GACb,EAAKqiE,YAAY,EAAKxoJ,GAAG,IACzB,IAIJ,KAAK,IAAAmmF,aAAY,GACf,KAAO,IAAQ,GACb,EAAKqiE,YAAY,EAAKxoJ,GAAG,IACzB,IAIJ,OAAO,EAAKwoJ,YAAY9mJ,E,EAGzBirM,GAAY,EAAK/mD,eAAer1F,EAAS/9C,QAAO,SAAA7N,GAAK,OAAAA,IAAMjD,CAAN,KACtD,EAAK8mJ,YAAY9mJ,EAAO0E,GAChB1E,CACV,GACF,EAQA,YAAA8mJ,YAAA,SAAY73I,EAA6BvK,GAAzC,gBAAyC,IAAAA,IAAAA,EAAA,IACvC,IAAM1E,GAAQ,IAAA4gF,UAAS3xE,EAAI,gBACZ,IAAAlT,SAAQiE,GAASA,EAAQ,CAACA,IAElCsQ,SAAQ,SAAAtQ,GACL,IAAA6uD,EAAa,EAAI,SAEtB7uD,GACAA,EAAMxB,IAAI,gBAEXwB,EAAM+rG,UAAU3/F,MAAK,SAACgN,GAAsB,OAAAy1C,EAASuwD,aAAahmG,EAAtB,MAI9C1U,EAAK0tK,aAAe,EAAKluB,eAAelkJ,EAAO0E,GAE5BmqD,EAAS0wD,gBAAgBzuG,QAAO,SAAAyd,GAAO,WAAAhvB,UAASgvB,EAAIw9E,UAAW/rG,EAAxB,IAC/CsQ,SAAQ,SAAAie,GAAO,SAAK21H,eAAe31H,EAAK7pB,EAAzB,IAE1BmqD,EAASswD,aAAan/G,EAAO0E,GAC7B1E,GAAS,EAAKrB,QAAQ,mBAAoBqB,EAAO0E,GACnD,GACF,EAQA,YAAAw/I,eAAA,SAAej1I,EAA6BvK,QAAA,IAAAA,IAAAA,EAAA,IAC1C7J,KAAKg0D,SAAS2wD,iBAAgB,IAAA5+B,UAAS3xE,EAAI,cAAIvK,EACjD,EAQA,YAAAwmM,eAAA,SAAej8L,EAA6BvK,GAA5C,gBAA4C,IAAAA,IAAAA,EAAA,IAC1C,IAAM1E,GAAQ,IAAA4gF,UAAS3xE,EAAI,gBACZ,IAAAlT,SAAQiE,GAASA,EAAQ,CAACA,IAElCsQ,SAAQ,SAAAtQ,GACT,EAAK6uD,SAASuwD,aAAap/G,GAC7B,EAAKkkJ,eAAelkJ,EAAO0E,GAE3B,EAAKoiJ,YAAY9mJ,EAAO0E,EAE5B,GACF,EAQA,YAAA4uF,WAAA,SAAWrkF,EAASvK,GAClB,QADkB,IAAAA,IAAAA,EAAA,KACbuK,EAAI,OAAOpU,KAAKyF,IAAI,mBAAoB,IAE7C,IAAM+G,EAAK,kBACPrH,GAAQ,IAAA4gF,UAAS3xE,OAAI/O,GAEzB,GAAKF,EAAL,CAMA,GAJA0E,EAAK0tK,aAAev3K,KAAKyF,IAAI,mBAAoB,IACjDzF,KAAK8D,QAAQ,UAAG0I,EAAE,WAAWrH,EAAO0E,IAG/B1E,EAAMxB,IAAI,aAAc,CAC3B,IAAIkG,EAAK6uF,UAAa7uF,EAAKm7E,MAKzB,OAHA,IADA,IAAI,EAAS7/E,GAASA,EAAMoZ,SACrB,IAAW,EAAO5a,IAAI,cAAc,EAAS,EAAO4a,SAC3DpZ,EAAQ,C,CAMP0E,EAAKm7E,QACRhlF,KAAKyF,IAAI,mBAAoBN,EAAO0E,GACpC7J,KAAK8D,QAAQ0I,EAAIrH,EAAO0E,GAlBR,CAoBpB,EAEA,YAAA2mM,WAAA,WACE,OAAOxwM,KAAK2D,IAAI,mBAClB,EASA,YAAAk7I,cAAA,SAAcx5D,EAA0B/3B,GACtC,YADsC,IAAAA,IAAAA,EAAA,IAC/BttD,KAAKy0F,WAAWoqD,cAAcx5D,EAAY/3B,EACnD,EAOA,YAAAqxF,cAAA,WACE,IAAMjrH,EAAM1zB,KAAKy0F,WACX90E,EAAK3f,KAAK6sF,YAEhB,GAAKn5D,GAAQ/T,EAAb,CAEA,IAAM6rE,EAAM93D,EAAIirH,gBAChB,OAAOh/H,EAAGs1K,QAAQzpG,EAAK,OAHA,CAIzB,EASA,YAAA1L,SAAA,SAASnjE,EAAY2wC,QAAA,IAAAA,IAAAA,EAAA,IACnB,IAAM61E,EAAOnjI,KAAKkoH,IAGlB,OAFAib,EAAKz6H,MAAM4kD,GACX61E,EAAKx3C,SAASrnF,IAAIqY,EAAO2wC,GAClBttD,IACT,EAQA,YAAA4oF,SAAA,SAASjsE,EAAY9S,QAAA,IAAAA,IAAAA,EAAA,IACnB,IAAMzF,EAAMpE,KAAKyoF,WAAWnkF,IAAIqY,EAAO9S,GACvC,OAAO,IAAA3I,SAAQkD,GAAOA,EAAM,CAACA,EAC/B,EAOA,YAAAqkF,SAAA,WACE,OAAOzoF,KAAKkoH,IAAIv8B,QAClB,EAOA,YAAA0hE,SAAA,SAAS3lJ,GAEP,OADA1H,KAAKyF,IAAI,QAASiC,GACX1H,IACT,EAMA,YAAAoiJ,SAAA,WACE,OAAOpiJ,KAAK2D,IAAI,UAAY,EAC9B,EAQA,YAAA2pF,QAAA,SAAQzjF,QAAA,IAAAA,IAAAA,EAAA,IACE,IAAAoO,EAAWjY,KAAI,OACfutF,EAAat1E,EAAM,SACrBk8K,EAAKl8K,EAAOqqG,SAAWtiH,KAAKywM,MAAM5mM,GAAQ,GAC1C6pB,EAAM7pB,EAAKy7E,WAAatlF,KAAKy0F,WAAW4vB,eAC1CnuC,EAAOxiD,EACP1zB,KAAK6sF,YAAYooG,QAAQvhK,EAAK,OAAQ,SACjC65D,GACA1jF,IAEL,GAEJ,OADAqsE,GAAQi+G,EAAK,kBAAWA,EAAE,cAAc,EAE1C,EAQA,YAAA3mG,OAAA,SAAO3jF,QAAA,IAAAA,IAAAA,EAAA,IACG,IAAAoO,EAAWjY,KAAI,OACfytF,EAAYx1E,EAAM,QACpBy4L,EAAY7mM,EAAK8mM,eACjB1sF,GAAoB,IAAAr6B,aAAY//E,EAAKo6G,kBAA4ChsG,EAAOgsG,iBAA/Bp6G,EAAKo6G,iBAC9Dkf,EAAOnjI,KAAKkoH,IACZ18B,EAAM3hF,EAAKy7E,WAAatlF,KAAKy0F,WAAW4vB,eACxCusF,EAAWF,EAAmC,GAAvBz4L,EAAO6pG,aAC9BxhF,EACJkrD,GACAxrF,KAAK6sF,YAAYooG,QAAQzpG,EAAK,MAAO,OACnC23C,KAAI,EACJlf,iBAAgB,GACbx2B,GACA5jF,IAEP,OAAO2hF,EAAO3hF,EAAKgtE,KAAOv2C,EAAMswK,EAAUtwK,EAAO,EACnD,EAOA,YAAAmwK,MAAA,SAAM5mM,QAAA,IAAAA,IAAAA,EAAA,IACJ,IAAI2hF,EAAM3hF,EAAKy7E,WAAatlF,KAAKy0F,WAAWy8B,aAC5C,OAAO1lC,EAAMxrF,KAAK6sF,YAAYooG,QAAQzpG,EAAK,MAAMlD,OAAS,EAC5D,EAMM,YAAAiU,MAAN,SAAY15F,G,kGAEV,OADM6V,EAAO1Y,KAAK6wM,YAClB,GAAM7wM,KAAK8wM,QAAQv0G,MAAM7jF,EAAM7V,I,OAE/B,OAFA,SACA7C,KAAK+wM,kBACE,CAAP,EAAOr4L,G,QAOH,YAAA2zG,KAAN,SAAWxpH,G,kGACM,SAAM7C,KAAK8wM,QAAQzkF,KAAKxpH,I,OAEvC,OAFMqK,EAAS,SACflN,KAAKwvM,SAAStiM,GACP,CAAP,EAAOA,G,QAGT,YAAA2jM,UAAA,WACE,IAAI3jM,EAAS,CAAC,EAER8jM,EAAahxM,KAAKg6I,aAMxB,OALAg3D,GAAcA,EAAWltM,QAAQ,eAAgB,CAAEilH,SAAS,IAE5D/oH,KAAKmvM,UAAU15L,SAAQ,SAAAjE,GACrBtE,EAAS,SAAKA,GAAWsE,EAAE+qF,MAAM,GACnC,IACO3jF,KAAK3L,MAAM2L,KAAKC,UAAU3L,GACnC,EAEA,YAAAsiM,SAAA,SAAS92L,GAKP,YALO,IAAAA,IAAAA,EAAA,KACF,IAAAs8F,YAAWt8F,KACd1Y,KAAKmvM,UAAU15L,SAAQ,SAAAhW,GAAU,OAAAA,EAAOiJ,OAAP,IACjC1I,KAAKmvM,UAAU15L,SAAQ,SAAAhW,GAAU,OAAAA,EAAO4sH,KAAK3zG,EAAZ,KAE5BA,CACT,EAOA,YAAA00G,eAAA,WACE,IAAMzjH,EAAO3J,KAAK2D,IAAI,UACtB,OAAO3D,KAAK8sH,QAAQnpH,IAAIgG,EAC1B,EAOA,YAAAksF,WAAA,SAAWhsF,QAAA,IAAAA,IAAAA,EAAA,IACT,IAAM2sF,EAAUx2F,KAAK2D,IAAI,YAAYA,IAAI3D,KAAKiY,OAAO+pG,gBAChDxrB,IAAWx2F,KAAKmuM,iBACrB33G,EAAQ74E,KAAK3d,KAAMA,KAAM6J,GACzB2sF,EAAQtU,IAAIliF,KAAMA,KAAM6J,GACxB7J,KAAKmuM,gBAAiB,EACxB,EAOA,YAAA54G,YAAA,SAAY1rF,QAAA,IAAAA,IAAAA,EAAA,IACV,IACM2sF,EADWx2F,KAAK2D,IAAI,YACDA,IAAI3D,KAAKiY,OAAO+pG,gBACpCxrB,GAAYx2F,KAAKmuM,iBACtB33G,EAAQ74E,KAAK3d,KAAMA,KAAM6J,GACzB7J,KAAKmuM,gBAAiB,EACxB,EAMA,YAAA/vG,cAAA,SAAcv0F,QAAA,IAAAA,IAAAA,EAAA,IACZ7J,KAAKyF,IAAI,eAAgB,MACzBzF,KAAKyF,IAAI,eAAgBzF,KAAKwkF,OAAO4sC,aACrCvnH,EAAKgoH,OAAS7xH,KAAK8D,QAAQ,qBAC7B,EAQA,YAAAkiL,eAAA,SAAehuF,G,MAEG,QAAhB,GADQA,GAAOj4F,QACbiwB,sBAAc,SAAE0vB,iBACpB,EAMA,YAAAukG,gBAAA,WACE,IAAMhsI,EAASjY,KAAKiY,OACdo1G,EAASrtH,KAAKotH,iBACdnpH,EAAYgU,EAAOiqG,eACnB4/D,EAAU7pK,EAAOgqG,kBACjB97E,EAAQknF,GAAUA,EAAO1pH,IAAI,cACnC,OAAO0pH,GAAUlnF,IAAU27I,EAAU,WAAI79K,EAAS,aAAKkiC,EAAK,KAAM,EACpE,EAMA,YAAA+qF,WAAA,WACE,OAAOlxH,KAAKy0F,WAAWy8B,YACzB,EAEA,YAAAgK,gBAAA,SAAgB5iC,GACd,OAAOt4F,KAAKyF,IAAI,eAAgB6yF,EAClC,EAEA,YAAA0lC,gBAAA,WACE,OAAOh+H,KAAK2D,IAAI,eAClB,EAEA,YAAA0qH,qBAAA,W,MACE,OAAqC,QAA7B,EAAAruH,KAAKg+H,mBAAqB,CAAC,SAAE,eAAE74H,KACzC,EAEA,YAAAg1F,QAAA,SAAQD,GAEN,OADcl6F,KAAKiY,OAAO2qG,OAAS,CAAC,GACvB1oB,IAAS,EACxB,EAOA,YAAA01G,cAAA,WACE,OAAO5vM,KAAK2D,IAAI,eAClB,EAEA,YAAAotM,gBAAA,WACE,OAAO/wM,KAAKyF,IAAI,eAAgB,EAClC,EAEA,YAAA65F,eAAA,WACE,OAAOt/F,KAAKwkF,OAAO8a,gBACrB,EAEA,YAAA61B,kBAAA,WACE,OAAOn1H,KAAKwkF,OAAO2wC,mBACrB,EAEA,YAAA+V,YAAA,SAAYxjI,GACV,OAAO1H,KAAKyF,IAAI,QAASiC,EAC3B,EAEA,YAAAk1F,YAAA,SAAYtX,GAEV,OADaA,aAAS,EAATA,EAAWsX,gBAAiB58F,KAAK2D,IAAI,UACnC,EACjB,EAEA,YAAA2vD,EAAA,W,IAAE,sDACA,IAAM8vD,EAAOpjH,KAAK2D,IAAI,QACtB,OAAOy/G,aAAI,EAAJA,EAAM9vD,EAAC,MAAP8vD,EAAW1iH,EACpB,EAMA,YAAAuwH,eAAA,SAAe3rC,GACb,MAAuC,aAAhCtlF,KAAK48F,YAAYtX,EAC1B,EAKA,YAAA2rH,WAAA,sBACUh5L,EAAiBjY,KAAX,OAAEsiC,EAAStiC,KAAL,KACduiF,EAASviF,KAAKyyD,YAEZ,GAAiBx6C,EAAOi5L,UAAY,CAAC,GAAC,QAAtCr8I,OAAO,IAAG,KAAE,EACd+qF,EAAU5/I,KAAK2D,IAAI,WACzB3D,KAAKyvM,iBAAmBhoL,aAAaznB,KAAKyvM,iBAC1C7vD,SAAAA,EAASqxD,aACTjxM,KAAKsL,gBACLtL,KAAKu1F,cACLv1F,KAAKovM,QACF9uM,QACAwsB,UACArX,SAAQ,SAAA0M,GAAO,OAAAA,EAAI9S,SAAJ,IAClBizB,GAAQA,EAAKl9B,SACbpF,KAAK0I,MAAM,CAAEkF,QAAQ,IACrB5N,KAAKu1H,WAAY,EACjB,CAAC,UAAW,OAAQ,sBAAuB,UAAW,cAAc9/G,SAElE,SAAA5V,GAAK,OAAC,EAAKA,GAAK,CAAC,CAAZ,IAEPg1D,EAAQjwD,OAAOiwD,EAAQhwD,QAAQ09E,GAAS,IAExC,IAAAic,YAAY,gBAAEvmF,EAAO7D,IAAI49B,QAAQxqC,KAAKxH,KAAKsuM,UAC7C,EAEA,YAAAt0D,WAAA,WACE,IAAM51I,EAAMpE,KAAK2D,IAAI,WACrB,OAAQS,GAAOA,EAAIe,YAAUE,CAC/B,EAEA,YAAA01I,WAAA,SAAWrzI,GAET,OADA1H,KAAKyF,IAAI,UAAWiC,GACb1H,IACT,EAEA,YAAA85F,UAAA,WACE,QAAS95F,KAAK2D,IAAI,UACpB,EAEA,YAAAi+G,IAAA,SAAI6hE,EAAa55K,QAAA,IAAAA,IAAAA,EAAA,IACP,IAAAm6F,EAAwBn6F,EAAI,GAAxB,EAAoBA,EAAI,MAAxB2gB,OAAK,IAAG,UAAO,EAI3B,GAHAxqB,KAAK8D,QAAQ,MAAO2/K,EAAK55K,GACzB2gB,GAASxqB,KAAK8D,QAAQ,cAAO0mB,GAASi5J,EAAK55K,GAEvCm6F,EAAI,CACN,IAAMmtG,EAAQ,cAAOntG,GACrBhkG,KAAK8D,QAAQqtM,EAAO1tB,EAAK55K,GACzB2gB,GAASxqB,KAAK8D,QAAQ,UAAGqtM,EAAK,YAAI3mL,GAASi5J,EAAK55K,E,CAEpD,EAEA,YAAAunM,QAAA,SAAQ3tB,EAAa55K,GACnB7J,KAAK4hH,IAAI6hE,EAAK,SAAK55K,GAAI,CAAE2gB,MAAO,SAClC,EAEA,YAAAi7D,WAAA,SAAWg+F,EAAa55K,GACtB7J,KAAK4hH,IAAI6hE,EAAK,SAAK55K,GAAI,CAAE2gB,MAAO,YAClC,EAEA,YAAA8oH,SAAA,SAASmwC,EAAa55K,GACpB7J,KAAK4hH,IAAI6hE,EAAK,SAAK55K,GAAI,CAAE2gB,MAAO,UAClC,EAEA,YAAA6mL,oBAAA,SAAoBj9L,EAASvK,QAAA,IAAAA,IAAAA,EAAA,IACnB,IAAAoO,EAAWjY,KAAI,OACf,EAAqBiY,EAAM,YAA3B69J,OAAW,IAAG,GAAC,EAAC,EAClBF,EAAa39J,EAAO7D,GACpBmvE,EAAOtrE,EAAOisE,YAGpB,OAAO,gBAAE9vE,GAAIioJ,SAAS,OACpBb,mBAAoB,UAAGj4E,EAAI,kBAAUA,EAAI,aACzCqO,SAAUgkF,GAAc,OACxB5a,iBAAkB,EAClBN,aAAa,EACbiB,QAAS,GACTD,WAAW,EACXR,WAAY,KACZD,WAAY,KACTpxJ,GACAisK,GAEP,EAOA,YAAA9vH,KAAA,SAAK4rF,GACH5xI,KAAKkuM,QAAS,EACd,IAAM3jF,EAAKvqH,KAAKsH,YAChBijH,EAAKA,EAAGvkE,KAAK4rF,GAAOA,IACpB5xI,KAAKkuM,QAAS,CAChB,EAUA,YAAAx1L,KAAA,SAAKtE,EAASzK,EAAcjC,GAC1B,IAAM4pM,EAAU,YAMhB,GAJKl9L,EAAGk9L,KACNl9L,EAAGk9L,GAAW,CAAC,IAGb,IAAA1nH,aAAYliF,GACd,OAAO0M,EAAGk9L,GAAS3nM,GAEnByK,EAAGk9L,GAAS3nM,GAAQjC,CAExB,EACF,EAx+BA,CAAyC,M,ugBE/EzC,eACE,WAAYvC,GAAZ,MACE,YAAM,CAAEA,MAAK,KAAG,KAEV,EAA0BA,EAAM6B,WAA9B+qF,EAAM,SAAEzqF,EAAW,c,OAC3BnC,EAAMm9B,KAAO,EACbn9B,EAAM0G,KAAK,gBAAgB,WACzBkmF,EAAO7yC,SACP6yC,EAAOohG,iBACP7rL,EAAYoB,QACZ6e,YAAW,WACTpiB,EAAMrB,QAAQ,OAAQqB,EAAMxB,IAAI,WAChCwB,EAAM4rM,iBACR,GACF,I,CACF,CAoCF,OAnDwC,QAiBtC,YAAAl9L,OAAA,sBACUF,EAAe3T,KAAZ,IAAEmF,EAAUnF,KAAL,MACZ,EAAqBmF,EAAM6B,WAAzB+qF,EAAM,SAAEvN,EAAM,SACdvsE,EAAoB9S,EAAK,OAAjBiqM,EAAYjqM,EAAK,QAC3B8+E,EAAMhsE,EAAOisE,YACbqtH,EAAa,CAAC,UAAGttH,EAAG,YACzBhsE,EAAOksG,UAAYotF,EAAW5sM,KAAK,UAAGs/E,EAAG,kBAAUA,EAAG,cAGvD,IAAMutH,GAAS,gBAAEv5L,EAAO7D,IAAM,eAAQ6D,EAAOwoC,YAC7CxoC,EAAO0qG,WAAY,IAAAzP,cAAaj7F,EAAO0qG,SAAU,CAAEjZ,QAAQ,EAAM2J,SAAS,IAC1E1/F,EAAIq+B,QAGA/5B,EAAOkuB,OAAOqrK,EAAOlxK,IAAI,QAASroB,EAAOkuB,OAEzCluB,EAAO6a,QAAQ0+K,EAAOlxK,IAAI,SAAUroB,EAAO6a,QAE/Cnf,EAAIq/E,OAAOxO,EAAO3wE,UAClBF,EAAIq/E,OAAOjB,EAAOl+E,UAGlB,IACM49L,EADUtsM,EAAMxB,IAAI,WACMA,IAAI,UAAUkQ,SAS9C,OARA49L,EAAgB90L,MAAMC,QAAU,OAChCjJ,EAAIq/E,OAAOy+G,GAEX99L,EAAInM,KAAK,QAAS+pM,EAAW9hJ,KAAK,MAElC+hJ,EAAOlsL,SAAS,UAAG2+D,EAAG,gBAAejyC,QAAQghD,OAAOr/E,GACpDy7L,EAAQ35L,SAAQ,SAAAywG,GAAM,OAAAA,EAAGswB,YAActwB,EAAGswB,WAAW,EAA/B,IAEfx2I,IACT,EACF,EAnDA,CAAwC,M,24DCyHxC,cAOE,WAAYiY,EAA2BpO,G,WAA3B,IAAAoO,IAAAA,EAAA,SAA2B,IAAApO,IAAAA,EAAA,IA8rBvC,KAAAqsE,KAAOA,EA7rBLl2E,KAAKiY,OAAS,YACT,GACAA,GAAM,CACTksE,aAAgC,QAAlB,EAAAlsE,EAAOisE,mBAAW,QAAI,gBAEtClkF,KAAKkjF,GAAK,IAAI,GAAYljF,KAAKiY,QAC/BjY,KAAK+I,EAAIc,EAAKd,EACd/I,KAAKkjF,GAAGlhC,KAAKhiD,MACbA,KAAKuiF,OAASviF,KAAKkjF,EACrB,CAqrBF,OAnrBE,sBAAI,qBAAM,C,IAAV,WACE,OAAOljF,KAAKkjF,GAAGjrE,MACjB,E,gCACA,sBAAI,mBAAI,C,IAAR,WACE,OAAOjY,KAAKkjF,GAAGwuH,IACjB,E,gCACA,sBAAI,oBAAK,C,IAAT,WACE,OAAO1xM,KAAKkjF,GAAGoT,KACjB,E,gCACA,sBAAI,uBAAQ,C,IAAZ,WACE,OAAOt2F,KAAKkjF,GAAGiC,QACjB,E,gCACA,sBAAI,sBAAO,C,IAAX,WACE,OAAOnlF,KAAKkjF,GAAGyuH,OACjB,E,gCACA,sBAAI,oBAAK,C,IAAT,WACE,OAAO3xM,KAAKkjF,GAAG0J,KACjB,E,gCACA,sBAAI,qBAAM,C,IAAV,WACE,OAAO5sF,KAAKkjF,GAAG6O,MACjB,E,gCACA,sBAAI,qBAAM,C,IAAV,WACE,OAAO/xF,KAAKkjF,GAAGsB,MACjB,E,gCACA,sBAAI,qBAAM,C,IAAV,WACE,OAAOxkF,KAAKkjF,GAAGmhD,MACjB,E,gCACA,sBAAI,0BAAW,C,IAAf,WACE,OAAOrkI,KAAKkjF,GAAG2J,WACjB,E,gCACA,sBAAI,0BAAW,C,IAAf,WACE,OAAO7sF,KAAKkjF,GAAG57E,WACjB,E,gCACA,sBAAI,6BAAc,C,IAAlB,WACE,OAAOtH,KAAKkjF,GAAGw2D,cACjB,E,gCACA,sBAAI,oBAAK,C,IAAT,WACE,OAAO15I,KAAKkjF,GAAGmI,KACjB,E,gCACA,sBAAI,yBAAU,C,IAAd,WACE,OAAOrrF,KAAKkjF,GAAGuR,UACjB,E,gCACA,sBAAI,4BAAa,C,IAAjB,WACE,OAAOz0F,KAAKkjF,GAAGuR,UACjB,E,gCACA,sBAAI,qBAAM,C,IAAV,WACE,OAAOz0F,KAAKkjF,GAAG+oC,MACjB,E,gCACA,sBAAI,2BAAY,C,IAAhB,WACE,OAAOjsH,KAAKkjF,GAAG+oC,MACjB,E,gCACA,sBAAI,kBAAG,C,IAAP,WACE,OAAOjsH,KAAKkjF,GAAGglC,GACjB,E,gCACA,sBAAI,0BAAW,C,IAAf,WACE,OAAOloH,KAAKkjF,GAAGglC,GACjB,E,gCACA,sBAAI,sBAAO,C,IAAX,WACE,OAAOloH,KAAKkjF,GAAG4tH,OACjB,E,gCACA,sBAAI,6BAAc,C,IAAlB,WACE,OAAO9wM,KAAKkjF,GAAG4tH,OACjB,E,gCACA,sBAAI,qBAAM,C,IAAV,WACE,OAAO9wM,KAAKkjF,GAAG01D,MACjB,E,gCACA,sBAAI,2BAAY,C,IAAhB,WACE,OAAO54I,KAAKkjF,GAAG01D,MACjB,E,gCACA,sBAAI,qBAAM,C,IAAV,WACE,OAAO54I,KAAKkjF,GAAGgP,MACjB,E,gCACA,sBAAI,2BAAY,C,IAAhB,WACE,OAAOlyF,KAAKkjF,GAAGgP,MACjB,E,gCACA,sBAAI,qBAAM,C,IAAV,WACE,OAAOlyF,KAAKkjF,GAAGslD,MACjB,E,gCACA,sBAAI,2BAAY,C,IAAhB,WACE,OAAOxoI,KAAKkjF,GAAGslD,MACjB,E,gCACA,sBAAI,wBAAS,C,IAAb,WACE,OAAOxoI,KAAKkjF,GAAG4gD,SACjB,E,gCACA,sBAAI,8BAAe,C,IAAnB,WACE,OAAO9jI,KAAKkjF,GAAG4gD,SACjB,E,gCACA,sBAAI,qBAAM,C,IAAV,WACE,OAAO9jI,KAAKkjF,GAAG4F,MACjB,E,gCACA,sBAAI,2BAAY,C,IAAhB,WACE,OAAO9oF,KAAKkjF,GAAG4F,MACjB,E,gCACA,sBAAI,sBAAO,C,IAAX,WACE,OAAO9oF,KAAKkjF,GAAG4pC,OACjB,E,gCACA,sBAAI,4BAAa,C,IAAjB,WACE,OAAO9sH,KAAKkjF,GAAG4pC,OACjB,E,gCAEA,sBAAIj2B,EAAA,wBAAW,C,IAAf,WACE,OAAO72F,KAAKkjF,EACd,E,gCAMA,YAAA0D,UAAA,SAGEngE,GACA,OAAOzmB,KAAKkjF,GAAG0D,UAAUngE,EAC3B,EASA,YAAA6mE,QAAA,SAAQzjF,GACN,OAAO7J,KAAKkjF,GAAGoK,QAAQzjF,EACzB,EAYA,YAAA2jF,OAAA,SAAO3jF,GACL,OAAO7J,KAAKkjF,GAAGsK,OAAO3jF,EACxB,EAQA,YAAA4mM,MAAA,SAAM5mM,GACJ,OAAO7J,KAAKkjF,GAAGutH,MAAM5mM,EACvB,EAMA,YAAA80I,cAAA,WACE,OAAO3+I,KAAKy0F,WAAWkqD,eACzB,EAMA,YAAAztB,WAAA,WACE,OAAOlxH,KAAKy0F,WAAWy8B,YACzB,EAgBA,YAAA2tB,cAAA,SAAcx5D,EAA0B/3B,GAEtC,YAFsC,IAAAA,IAAAA,EAAA,IACtCttD,KAAKkjF,GAAG27D,cAAcx5D,EAAY/3B,GAC3BttD,IACT,EAmBA,YAAA4xM,cAAA,SAAcvsH,EAA0Bx7E,GACtC,OAAO7J,KAAKkxH,aAAcl+B,OAAO3N,EAAYx7E,EAC/C,EAMA,YAAA4+E,SAAA,WACE,OAAOzoF,KAAKkjF,GAAGglC,IAAIv8B,QACrB,EAcA,YAAA7L,SAAA,SAASnjE,EAAY2wC,GAEnB,YAFmB,IAAAA,IAAAA,EAAA,IACnBttD,KAAKkjF,GAAGpD,SAASnjE,EAAO2wC,GACjBttD,IACT,EASA,YAAA4oF,SAAA,SAASjsE,EAAY9S,GACnB,YADmB,IAAAA,IAAAA,EAAA,IACZ7J,KAAKkjF,GAAG0F,SAASjsE,EAAO9S,EACjC,EAMA,YAAAm/E,YAAA,WACE,OAAOhpF,KAAKkjF,GAAG8F,aACjB,EAMA,YAAAzD,eAAA,WACE,OAAOvlF,KAAKkjF,GAAGqC,gBACjB,EAUA,YAAAssH,mBAAA,WACE,IAAI79I,EAAWh0D,KAAKkjF,GAAG8F,cAEvB,GAAIh1B,EACF,OAAOh0D,KAAK2yF,aAAa8I,gBAAgBznC,EAE7C,EAcA,YAAA99C,OAAA,SAAO9B,EAAyCvK,GAE9C,OADA7J,KAAKkjF,GAAGwb,YAAYtqF,EAAIvK,GACjB7J,IACT,EAUA,YAAAy+I,UAAA,SAAUrqI,GAER,OADApU,KAAKkjF,GAAG+oE,YAAY73I,GACbpU,IACT,EASA,YAAA0+I,aAAA,SAAatqI,GAEX,OADApU,KAAKkjF,GAAGmmE,eAAej1I,GAChBpU,IACT,EASA,YAAA8xM,aAAA,SAAa19L,GAEX,OADApU,KAAKkjF,GAAGmtH,eAAej8L,GAChBpU,IACT,EAWA,YAAAg6I,WAAA,WACE,OAAOh6I,KAAKkjF,GAAG82D,YACjB,EAUA,YAAA+3D,UAAA,SAAUpoM,GAER,OADA3J,KAAKkjF,GAAGz9E,IAAI,SAAUkE,GACf3J,IACT,EAUA,YAAAkiJ,UAAA,WACE,OAAOliJ,KAAKkjF,GAAGv/E,IAAI,SACrB,EAUA,YAAAiyF,WAAA,SAAWtrF,EAAYzH,GACrB,YADqB,IAAAA,IAAAA,EAAA,IACd7C,KAAKmlF,SAASjD,IAAI53E,EAAIzH,EAC/B,EAUA,YAAAigF,YAAA,SAAYx4E,EAAYzH,GACtB,YADsB,IAAAA,IAAAA,EAAA,IACf7C,KAAKmlF,SAASxnE,KAAKrT,EAAIzH,EAChC,EAUM,YAAA05F,MAAN,SAAY15F,G,4FACH,SAAM7C,KAAKkjF,GAAGqZ,MAAM15F,I,OAA3B,MAAO,CAAP,EAAO,U,QAUH,YAAAwpH,KAAN,SAAWxpH,G,4FACF,SAAM7C,KAAKkjF,GAAGmpC,KAAKxpH,I,OAA1B,MAAO,CAAP,EAAO,U,QAUT,YAAA6iH,eAAA,WACE,OAAO1lH,KAAKkjF,GAAG2tH,WACjB,EAQA,YAAAjrF,gBAAA,SAAgBltG,GACd,OAAO1Y,KAAKkjF,GAAGssH,SAAS92L,EAC1B,EAEA,YAAAm4L,UAAA,WACE,OAAO7wM,KAAKkjF,GAAG2tH,WACjB,EAEA,YAAArB,SAAA,SAAS92L,GACP,OAAO1Y,KAAKkjF,GAAGssH,SAAS92L,EAC1B,EAOA,YAAAm2E,aAAA,WACE,OAAO7uF,KAAKiY,OAAO7D,EACrB,EAOA,YAAAw7L,cAAA,WACE,OAAO5vM,KAAKkjF,GAAG0sH,eACjB,EAKA,YAAAmB,gBAAA,WACE,OAAO/wM,KAAKkjF,GAAG6tH,iBACjB,EAWA,YAAAzvI,QAAA,SAAQz3D,GACN7J,KAAKkjF,GAAGkb,cAAcv0F,EACxB,EA+BA,YAAAmoM,aAAA,SAAgBhxM,GACdhB,KAAK05I,eAAea,UAAYv5I,CAClC,EAqBA,YAAAixM,mBAAA,SAAmBjyH,GAEjB,OADAhgF,KAAKqkI,OAAOz9C,YAAY85C,UAAY1gD,EAC7BhgF,IACT,EAQA,YAAAkrI,YAAA,SAAYxjI,GAEV,OADA1H,KAAKkjF,GAAGgoD,YAAYxjI,GACb1H,IACT,EAiBA,YAAA4hH,IAAA,SAAI6hE,EAAa55K,GAEf,YAFe,IAAAA,IAAAA,EAAA,IACf7J,KAAKkjF,GAAG0+B,IAAI6hE,EAAK55K,GACV7J,IACT,EAgBA,YAAAszD,EAAA,W,UAAE,kDACA,OAAO,EAAAtzD,KAAKkjF,IAAG5vB,EAAC,QAAI5yD,EACtB,EAQA,YAAA+G,GAAA,SAAGkL,EAAoB/I,GAErB,OADA5J,KAAKkjF,GAAGz7E,GAAGkL,EAAO/I,GACX5J,IACT,EAQA,YAAA6L,KAAA,SAAK8G,EAAoB/I,GAEvB,OADA5J,KAAKkjF,GAAGr3E,KAAK8G,EAAO/I,GACb5J,IACT,EAQA,YAAAmL,IAAA,SAAIwH,EAAoB/I,GAEtB,OADA5J,KAAKkjF,GAAG/3E,IAAIwH,EAAO/I,GACZ5J,IACT,EAOA,YAAA8D,QAAA,SAAQ6O,G,IAAoB,wDAE1B,OADA3S,KAAKkjF,GAAGp/E,QAAQvD,MAAMP,KAAKkjF,GAAI,IAACvwE,GAAUjS,GAAI,IACvCV,IACT,EAKA,YAAAqP,QAAA,WACOrP,KAAKkjF,KACVljF,KAAKkjF,GAAG+tH,aACRjxM,KAAK0gL,gBAAar7K,EACpB,EAOA,YAAAsgF,MAAA,W,MACE,OAAsB,QAAf,EAAA3lF,KAAK0gL,kBAAU,eAAEtsK,EAC1B,EAOA,YAAA2xE,SAAA,WACE,OAAO/lF,KAAKkjF,EACd,EAMA,YAAArvE,OAAA,W,MAGE,OAFe,QAAf,EAAA7T,KAAK0gL,kBAAU,SAAEt7K,SACjBpF,KAAK0gL,WAAa,IAAI,GAAW1gL,KAAKkjF,IAC/BljF,KAAK0gL,WAAW7sK,SAASO,EAClC,EAWA,YAAA89L,QAAA,SAAQtgE,GACN5xI,KAAKkjF,GAAGv/E,IAAI,SAAWiuI,EAAI5xI,MAAQA,KAAKkjF,GAAGz7E,GAAG,OAAQmqI,EACxD,EAcF,EAtsBA,G,YCrHA,IAYaugE,GAAY,SAACC,EAA8BC,GACtD,OAAO,IAAAnhM,UAASkhM,GAbI,SAACE,EAAkBD,GACvC,IAAInlM,EAASmlM,EAAQ1uM,IAAI2uM,GAGzB,IAAKplM,EAAQ,CACX,IAAMqlM,GAAQ,IAAA1/F,aAAoBy/F,GAClCplM,GAASqlM,aAAI,EAAJA,EAAM/lF,UAAW+lF,C,CAG5B,OAAOrlM,CACT,CAG4BslM,CAAcJ,EAAQC,GAAWD,CAC7D,EAEaK,GAAgB,SAAClwH,EAAgB6vH,GAC5C7vH,EAAOwD,WAAWN,WAAW,iBAAU2sH,EAAM,cAAc,CACzDroM,QAAS,UACTqoM,OAAM,GAEV,E,SAEA,wBACE,KAAAC,QAAkC,CAAC,CAgDrC,QA/BE,YAAA/tM,IAAA,SAA6BgG,EAAY8nM,GACvC,IAAMM,EAAM1yM,KAAK2D,IAAI2G,GAErB,OAAIooM,IAKJ1yM,KAAKqyM,QAAQ/nM,GAAM8nM,EAEZA,EACT,EAUA,YAAAzuM,IAAA,SAA6B2G,GAC3B,OAAOtK,KAAKqyM,QAAQ/nM,EACtB,EAKA,YAAAqhF,OAAA,WACE,OAAO3rF,KAAKqyM,OACd,EACF,EAjDA,G,mPCzBA,WAwBE,IAAI,IAAA7zG,WAnBS,WAUX,IATA,IAAInqF,EACEs+L,EAAQ5yM,OAAOsiB,UAAUD,UACzBspE,EAA4B,CAChC,CAAC,OAAQ,qBACT,CAAC,KAAM,gBACP,CAAC,KAAM,uCACP,CAAC,KAAM,8CAGA7rF,EAAI,EAAGA,EAAI6rF,EAAM/qF,OAAQd,IAAK,CAGrC,GADAwU,EADaq3E,EAAM7rF,GACN,GAAG0a,KAAKo4L,GACV,K,CAGb,QAASt+L,CACX,CAEgBu+L,GAAQ,CACtB,IAAM,EAA6BC,kBAAkBxyM,UAAUyyM,mBAC/DD,kBAAkBxyM,UAAUyyM,mBAAqB,SAAA70L,GAE/C,OADKA,IAAOA,EAAQ,IACb,EAA2B1d,MAAMmU,SAASq+L,eAAgB,CAAC90L,GACpE,C,CAEH,CC1BD+0L,GAEA,IAAMX,GAAU,IAAI,GACdx9I,GAAoB,GAEbo+I,GAAY,SAAiCb,EAAWvoM,GACnE,IAAIqpM,EAAef,GAAUC,EAAQC,IAErC,OAAO,SAAC9vH,GACF2wH,EACFA,EAAa3wH,EAAQ14E,GAAQ,CAAC,GAE9B4oM,GAAclwH,EAAQ6vH,EAE1B,CACF,EAEalB,GAAW,CACtBnoM,EAAC,aAED8rD,QAAO,GAEPw9I,QAAO,GAEPY,UAAS,GAGTxhI,QAAS,SAkBTzvB,KAAI,SAAC/pC,QAAA,IAAAA,IAAAA,EAAA,IACK,IAAAs3L,EAAat3L,EAAM,SACrB83G,EAAM93G,EAAOwoC,UACnB,IAAKsvE,IAAQw/E,EAAU,MAAM,IAAIx9L,MAAM,2BACvC,IAAMohM,EAAU,OACdC,YAAY,EACZf,QAAS,GACTgB,YAAa,CAAC,GACXp7L,GAAM,CACTi5L,SAAUlxM,KACVoU,GAAIm7L,OAAWlqM,GAAY,IAAAupF,WAAUmhC,GAAOA,EAAOr7G,SAASwrB,cAAc6vF,KAEtExtC,EAAS,IAAI,GAAO4wH,EAAY,CAAEpqM,EAAC,eACnCm6E,EAAKX,EAAOwD,WAqBlB,OAlBAotH,EAAWd,QAAS58L,SAAQ,SAAA68L,GAC1B,IAAMF,EAASD,GAAUG,EAAUD,IAC7BiB,EAAaH,EAAWE,YAAaf,IAAuB,CAAC,EAE/DF,EACFA,EAAO7vH,EAAQ+wH,GAEfb,GAAclwH,EAAQ+vH,EAE1B,IAKApvH,EAAGosH,cACH6D,EAAWC,aAAe7D,GAAYhtH,EAAO1uE,SAC7CghD,GAAQlwD,KAAK49E,GAENA,CACT,GA6CF,W","sources":["webpack://grapesjs/webpack/universalModuleDefinition","webpack://grapesjs/./node_modules/backbone-undo/Backbone.Undo.js","webpack://grapesjs/./node_modules/backbone/backbone.js","webpack://grapesjs/./node_modules/codemirror-formatting/formatting.js","webpack://grapesjs/./node_modules/codemirror/lib/codemirror.js","webpack://grapesjs/./node_modules/codemirror/mode/css/css.js","webpack://grapesjs/./node_modules/codemirror/mode/htmlmixed/htmlmixed.js","webpack://grapesjs/./node_modules/codemirror/mode/javascript/javascript.js","webpack://grapesjs/./node_modules/codemirror/mode/xml/xml.js","webpack://grapesjs/./src/commands/view/CanvasClear.ts","webpack://grapesjs/./src/commands/view/CanvasMove.ts","webpack://grapesjs/./src/commands/view/CommandAbstract.ts","webpack://grapesjs/./src/commands/view/ComponentDelete.ts","webpack://grapesjs/./src/commands/view/ComponentDrag.ts","webpack://grapesjs/./src/commands/view/ComponentEnter.ts","webpack://grapesjs/./src/commands/view/ComponentExit.ts","webpack://grapesjs/./src/commands/view/ComponentNext.ts","webpack://grapesjs/./src/commands/view/ComponentPrev.ts","webpack://grapesjs/./src/commands/view/ComponentStyleClear.ts","webpack://grapesjs/./src/commands/view/CopyComponent.ts","webpack://grapesjs/./src/commands/view/DeleteComponent.ts","webpack://grapesjs/./src/commands/view/ExportTemplate.ts","webpack://grapesjs/./src/commands/view/Fullscreen.ts","webpack://grapesjs/./src/commands/view/MoveComponent.ts","webpack://grapesjs/./src/commands/view/OpenAssets.ts","webpack://grapesjs/./src/commands/view/OpenBlocks.ts","webpack://grapesjs/./src/commands/view/OpenLayers.ts","webpack://grapesjs/./src/commands/view/OpenStyleManager.ts","webpack://grapesjs/./src/commands/view/OpenTraitManager.ts","webpack://grapesjs/./src/commands/view/PasteComponent.ts","webpack://grapesjs/./src/commands/view/Preview.ts","webpack://grapesjs/./src/commands/view/Resize.ts","webpack://grapesjs/./src/dom_components/model/ToolbarButton.ts","webpack://grapesjs/./src/dom_components/model/Toolbar.ts","webpack://grapesjs/./src/dom_components/view/ToolbarButtonView.ts","webpack://grapesjs/./src/dom_components/view/ToolbarView.ts","webpack://grapesjs/./src/commands/view/SelectComponent.ts","webpack://grapesjs/./src/commands/view/SelectPosition.ts","webpack://grapesjs/./src/commands/view/ShowOffset.ts","webpack://grapesjs/./src/commands/view/SwitchVisibility.ts","webpack://grapesjs/./src/common/index.ts","webpack://grapesjs/./src/domain_abstract/view/DomainViews.ts","webpack://grapesjs/./src/utils/Dragger.ts","webpack://grapesjs/./src/utils/cash-dom.ts","webpack://grapesjs/./src/utils/dom.ts","webpack://grapesjs/./src/utils/mixins.ts","webpack://grapesjs/./src/commands/view/ sync ^\\.\\/.*$","webpack://grapesjs/./node_modules/underscore/modules/_setup.js","webpack://grapesjs/./node_modules/underscore/modules/restArguments.js","webpack://grapesjs/./node_modules/underscore/modules/isObject.js","webpack://grapesjs/./node_modules/underscore/modules/isNull.js","webpack://grapesjs/./node_modules/underscore/modules/isUndefined.js","webpack://grapesjs/./node_modules/underscore/modules/isBoolean.js","webpack://grapesjs/./node_modules/underscore/modules/isElement.js","webpack://grapesjs/./node_modules/underscore/modules/_tagTester.js","webpack://grapesjs/./node_modules/underscore/modules/isString.js","webpack://grapesjs/./node_modules/underscore/modules/isNumber.js","webpack://grapesjs/./node_modules/underscore/modules/isDate.js","webpack://grapesjs/./node_modules/underscore/modules/isRegExp.js","webpack://grapesjs/./node_modules/underscore/modules/isError.js","webpack://grapesjs/./node_modules/underscore/modules/isSymbol.js","webpack://grapesjs/./node_modules/underscore/modules/isArrayBuffer.js","webpack://grapesjs/./node_modules/underscore/modules/isFunction.js","webpack://grapesjs/./node_modules/underscore/modules/_hasObjectTag.js","webpack://grapesjs/./node_modules/underscore/modules/_stringTagBug.js","webpack://grapesjs/./node_modules/underscore/modules/isDataView.js","webpack://grapesjs/./node_modules/underscore/modules/isArray.js","webpack://grapesjs/./node_modules/underscore/modules/_has.js","webpack://grapesjs/./node_modules/underscore/modules/isArguments.js","webpack://grapesjs/./node_modules/underscore/modules/isFinite.js","webpack://grapesjs/./node_modules/underscore/modules/isNaN.js","webpack://grapesjs/./node_modules/underscore/modules/constant.js","webpack://grapesjs/./node_modules/underscore/modules/_createSizePropertyCheck.js","webpack://grapesjs/./node_modules/underscore/modules/_shallowProperty.js","webpack://grapesjs/./node_modules/underscore/modules/_getByteLength.js","webpack://grapesjs/./node_modules/underscore/modules/_isBufferLike.js","webpack://grapesjs/./node_modules/underscore/modules/isTypedArray.js","webpack://grapesjs/./node_modules/underscore/modules/_getLength.js","webpack://grapesjs/./node_modules/underscore/modules/_collectNonEnumProps.js","webpack://grapesjs/./node_modules/underscore/modules/keys.js","webpack://grapesjs/./node_modules/underscore/modules/isEmpty.js","webpack://grapesjs/./node_modules/underscore/modules/isMatch.js","webpack://grapesjs/./node_modules/underscore/modules/underscore.js","webpack://grapesjs/./node_modules/underscore/modules/_toBufferView.js","webpack://grapesjs/./node_modules/underscore/modules/isEqual.js","webpack://grapesjs/./node_modules/underscore/modules/allKeys.js","webpack://grapesjs/./node_modules/underscore/modules/_methodFingerprint.js","webpack://grapesjs/./node_modules/underscore/modules/isMap.js","webpack://grapesjs/./node_modules/underscore/modules/isWeakMap.js","webpack://grapesjs/./node_modules/underscore/modules/isSet.js","webpack://grapesjs/./node_modules/underscore/modules/isWeakSet.js","webpack://grapesjs/./node_modules/underscore/modules/values.js","webpack://grapesjs/./node_modules/underscore/modules/pairs.js","webpack://grapesjs/./node_modules/underscore/modules/invert.js","webpack://grapesjs/./node_modules/underscore/modules/functions.js","webpack://grapesjs/./node_modules/underscore/modules/_createAssigner.js","webpack://grapesjs/./node_modules/underscore/modules/extend.js","webpack://grapesjs/./node_modules/underscore/modules/extendOwn.js","webpack://grapesjs/./node_modules/underscore/modules/defaults.js","webpack://grapesjs/./node_modules/underscore/modules/_baseCreate.js","webpack://grapesjs/./node_modules/underscore/modules/create.js","webpack://grapesjs/./node_modules/underscore/modules/clone.js","webpack://grapesjs/./node_modules/underscore/modules/tap.js","webpack://grapesjs/./node_modules/underscore/modules/toPath.js","webpack://grapesjs/./node_modules/underscore/modules/_toPath.js","webpack://grapesjs/./node_modules/underscore/modules/_deepGet.js","webpack://grapesjs/./node_modules/underscore/modules/get.js","webpack://grapesjs/./node_modules/underscore/modules/has.js","webpack://grapesjs/./node_modules/underscore/modules/identity.js","webpack://grapesjs/./node_modules/underscore/modules/matcher.js","webpack://grapesjs/./node_modules/underscore/modules/property.js","webpack://grapesjs/./node_modules/underscore/modules/_optimizeCb.js","webpack://grapesjs/./node_modules/underscore/modules/_baseIteratee.js","webpack://grapesjs/./node_modules/underscore/modules/iteratee.js","webpack://grapesjs/./node_modules/underscore/modules/_cb.js","webpack://grapesjs/./node_modules/underscore/modules/mapObject.js","webpack://grapesjs/./node_modules/underscore/modules/noop.js","webpack://grapesjs/./node_modules/underscore/modules/propertyOf.js","webpack://grapesjs/./node_modules/underscore/modules/times.js","webpack://grapesjs/./node_modules/underscore/modules/random.js","webpack://grapesjs/./node_modules/underscore/modules/now.js","webpack://grapesjs/./node_modules/underscore/modules/_createEscaper.js","webpack://grapesjs/./node_modules/underscore/modules/_escapeMap.js","webpack://grapesjs/./node_modules/underscore/modules/escape.js","webpack://grapesjs/./node_modules/underscore/modules/unescape.js","webpack://grapesjs/./node_modules/underscore/modules/_unescapeMap.js","webpack://grapesjs/./node_modules/underscore/modules/templateSettings.js","webpack://grapesjs/./node_modules/underscore/modules/template.js","webpack://grapesjs/./node_modules/underscore/modules/result.js","webpack://grapesjs/./node_modules/underscore/modules/uniqueId.js","webpack://grapesjs/./node_modules/underscore/modules/chain.js","webpack://grapesjs/./node_modules/underscore/modules/_executeBound.js","webpack://grapesjs/./node_modules/underscore/modules/partial.js","webpack://grapesjs/./node_modules/underscore/modules/bind.js","webpack://grapesjs/./node_modules/underscore/modules/_isArrayLike.js","webpack://grapesjs/./node_modules/underscore/modules/_flatten.js","webpack://grapesjs/./node_modules/underscore/modules/bindAll.js","webpack://grapesjs/./node_modules/underscore/modules/memoize.js","webpack://grapesjs/./node_modules/underscore/modules/delay.js","webpack://grapesjs/./node_modules/underscore/modules/defer.js","webpack://grapesjs/./node_modules/underscore/modules/throttle.js","webpack://grapesjs/./node_modules/underscore/modules/debounce.js","webpack://grapesjs/./node_modules/underscore/modules/wrap.js","webpack://grapesjs/./node_modules/underscore/modules/negate.js","webpack://grapesjs/./node_modules/underscore/modules/compose.js","webpack://grapesjs/./node_modules/underscore/modules/after.js","webpack://grapesjs/./node_modules/underscore/modules/before.js","webpack://grapesjs/./node_modules/underscore/modules/once.js","webpack://grapesjs/./node_modules/underscore/modules/findKey.js","webpack://grapesjs/./node_modules/underscore/modules/_createPredicateIndexFinder.js","webpack://grapesjs/./node_modules/underscore/modules/findIndex.js","webpack://grapesjs/./node_modules/underscore/modules/findLastIndex.js","webpack://grapesjs/./node_modules/underscore/modules/sortedIndex.js","webpack://grapesjs/./node_modules/underscore/modules/_createIndexFinder.js","webpack://grapesjs/./node_modules/underscore/modules/indexOf.js","webpack://grapesjs/./node_modules/underscore/modules/lastIndexOf.js","webpack://grapesjs/./node_modules/underscore/modules/find.js","webpack://grapesjs/./node_modules/underscore/modules/findWhere.js","webpack://grapesjs/./node_modules/underscore/modules/each.js","webpack://grapesjs/./node_modules/underscore/modules/map.js","webpack://grapesjs/./node_modules/underscore/modules/_createReduce.js","webpack://grapesjs/./node_modules/underscore/modules/reduce.js","webpack://grapesjs/./node_modules/underscore/modules/reduceRight.js","webpack://grapesjs/./node_modules/underscore/modules/filter.js","webpack://grapesjs/./node_modules/underscore/modules/reject.js","webpack://grapesjs/./node_modules/underscore/modules/every.js","webpack://grapesjs/./node_modules/underscore/modules/some.js","webpack://grapesjs/./node_modules/underscore/modules/contains.js","webpack://grapesjs/./node_modules/underscore/modules/invoke.js","webpack://grapesjs/./node_modules/underscore/modules/pluck.js","webpack://grapesjs/./node_modules/underscore/modules/where.js","webpack://grapesjs/./node_modules/underscore/modules/max.js","webpack://grapesjs/./node_modules/underscore/modules/min.js","webpack://grapesjs/./node_modules/underscore/modules/toArray.js","webpack://grapesjs/./node_modules/underscore/modules/sample.js","webpack://grapesjs/./node_modules/underscore/modules/shuffle.js","webpack://grapesjs/./node_modules/underscore/modules/sortBy.js","webpack://grapesjs/./node_modules/underscore/modules/_group.js","webpack://grapesjs/./node_modules/underscore/modules/groupBy.js","webpack://grapesjs/./node_modules/underscore/modules/indexBy.js","webpack://grapesjs/./node_modules/underscore/modules/countBy.js","webpack://grapesjs/./node_modules/underscore/modules/partition.js","webpack://grapesjs/./node_modules/underscore/modules/size.js","webpack://grapesjs/./node_modules/underscore/modules/_keyInObj.js","webpack://grapesjs/./node_modules/underscore/modules/pick.js","webpack://grapesjs/./node_modules/underscore/modules/omit.js","webpack://grapesjs/./node_modules/underscore/modules/initial.js","webpack://grapesjs/./node_modules/underscore/modules/first.js","webpack://grapesjs/./node_modules/underscore/modules/rest.js","webpack://grapesjs/./node_modules/underscore/modules/last.js","webpack://grapesjs/./node_modules/underscore/modules/compact.js","webpack://grapesjs/./node_modules/underscore/modules/flatten.js","webpack://grapesjs/./node_modules/underscore/modules/difference.js","webpack://grapesjs/./node_modules/underscore/modules/without.js","webpack://grapesjs/./node_modules/underscore/modules/uniq.js","webpack://grapesjs/./node_modules/underscore/modules/union.js","webpack://grapesjs/./node_modules/underscore/modules/intersection.js","webpack://grapesjs/./node_modules/underscore/modules/unzip.js","webpack://grapesjs/./node_modules/underscore/modules/zip.js","webpack://grapesjs/./node_modules/underscore/modules/object.js","webpack://grapesjs/./node_modules/underscore/modules/range.js","webpack://grapesjs/./node_modules/underscore/modules/chunk.js","webpack://grapesjs/./node_modules/underscore/modules/_chainResult.js","webpack://grapesjs/./node_modules/underscore/modules/mixin.js","webpack://grapesjs/./node_modules/underscore/modules/underscore-array-methods.js","webpack://grapesjs/./node_modules/underscore/modules/index-default.js","webpack://grapesjs/webpack/bootstrap","webpack://grapesjs/webpack/runtime/compat get default export","webpack://grapesjs/webpack/runtime/define property getters","webpack://grapesjs/webpack/runtime/global","webpack://grapesjs/webpack/runtime/hasOwnProperty shorthand","webpack://grapesjs/webpack/runtime/make namespace object","webpack://grapesjs/./src/utils/html.ts","webpack://grapesjs/./src/editor/config/config.ts","webpack://grapesjs/./src/editor/model/Selected.ts","webpack://grapesjs/./src/abstract/Module.ts","webpack://grapesjs/./src/canvas/config/config.ts","webpack://grapesjs/./src/abstract/ModuleModel.ts","webpack://grapesjs/./src/abstract/ModuleCollection.ts","webpack://grapesjs/./src/canvas/model/Frame.ts","webpack://grapesjs/./src/canvas/model/Frames.ts","webpack://grapesjs/./src/pages/model/Page.ts","webpack://grapesjs/./src/pages/model/Pages.ts","webpack://grapesjs/./src/pages/index.ts","webpack://grapesjs/./src/device_manager/config/config.ts","webpack://grapesjs/./src/device_manager/model/Device.ts","webpack://grapesjs/./src/device_manager/model/Devices.ts","webpack://grapesjs/./src/device_manager/view/DevicesView.ts","webpack://grapesjs/./src/device_manager/index.ts","webpack://grapesjs/./src/canvas/model/Canvas.ts","webpack://grapesjs/./src/abstract/ModuleView.ts","webpack://grapesjs/./src/abstract/ModuleDomainViews.ts","webpack://grapesjs/./src/css_composer/view/CssRuleView.ts","webpack://grapesjs/./src/css_composer/view/CssGroupRuleView.ts","webpack://grapesjs/./src/css_composer/view/CssRulesView.ts","webpack://grapesjs/./src/utils/Droppable.ts","webpack://grapesjs/./src/canvas/view/FrameView.ts","webpack://grapesjs/./src/canvas/view/FrameWrapView.ts","webpack://grapesjs/./src/canvas/view/FramesView.ts","webpack://grapesjs/./src/canvas/view/CanvasView.ts","webpack://grapesjs/./src/canvas/index.ts","webpack://grapesjs/./src/dom_components/config/config.ts","webpack://grapesjs/./src/parser/model/BrowserParserHtml.ts","webpack://grapesjs/./src/parser/model/ParserHtml.ts","webpack://grapesjs/./src/domain_abstract/model/StyleableModel.ts","webpack://grapesjs/./src/dom_components/model/Components.ts","webpack://grapesjs/./src/selector_manager/model/Selector.ts","webpack://grapesjs/./src/selector_manager/model/Selectors.ts","webpack://grapesjs/./src/trait_manager/model/Trait.ts","webpack://grapesjs/./src/trait_manager/model/TraitFactory.ts","webpack://grapesjs/./src/trait_manager/model/Traits.ts","webpack://grapesjs/./src/dom_components/model/Component.ts","webpack://grapesjs/./src/dom_components/view/ComponentsView.ts","webpack://grapesjs/./src/dom_components/view/ComponentView.ts","webpack://grapesjs/./src/dom_components/view/ComponentWrapperView.ts","webpack://grapesjs/./src/dom_components/model/ComponentTableCell.ts","webpack://grapesjs/./src/dom_components/view/ComponentTableCellView.ts","webpack://grapesjs/./src/dom_components/model/ComponentTableRow.ts","webpack://grapesjs/./src/dom_components/view/ComponentTableRowView.ts","webpack://grapesjs/./src/dom_components/model/ComponentTable.ts","webpack://grapesjs/./src/dom_components/view/ComponentTableView.ts","webpack://grapesjs/./src/dom_components/model/ComponentTableBody.ts","webpack://grapesjs/./src/dom_components/model/ComponentTableHead.ts","webpack://grapesjs/./src/dom_components/view/ComponentTableHeadView.ts","webpack://grapesjs/./src/dom_components/view/ComponentTableBodyView.ts","webpack://grapesjs/./src/dom_components/model/ComponentTableFoot.ts","webpack://grapesjs/./src/dom_components/view/ComponentTableFootView.ts","webpack://grapesjs/./src/dom_components/model/ComponentImage.ts","webpack://grapesjs/./src/dom_components/model/ComponentMap.ts","webpack://grapesjs/./src/dom_components/view/ComponentImageView.ts","webpack://grapesjs/./src/dom_components/view/ComponentMapView.ts","webpack://grapesjs/./src/dom_components/model/ComponentText.ts","webpack://grapesjs/./src/dom_components/model/ComponentLink.ts","webpack://grapesjs/./src/dom_components/view/ComponentTextView.ts","webpack://grapesjs/./src/dom_components/view/ComponentLinkView.ts","webpack://grapesjs/./src/dom_components/model/ComponentLabel.ts","webpack://grapesjs/./src/dom_components/view/ComponentLabelView.ts","webpack://grapesjs/./src/dom_components/model/ComponentVideo.ts","webpack://grapesjs/./src/dom_components/view/ComponentVideoView.ts","webpack://grapesjs/./src/dom_components/model/ComponentScript.ts","webpack://grapesjs/./src/dom_components/view/ComponentScriptView.ts","webpack://grapesjs/./src/dom_components/model/ComponentSvg.ts","webpack://grapesjs/./src/dom_components/model/ComponentSvgIn.ts","webpack://grapesjs/./src/dom_components/view/ComponentSvgView.ts","webpack://grapesjs/./src/dom_components/model/ComponentTextNode.ts","webpack://grapesjs/./src/dom_components/model/ComponentComment.ts","webpack://grapesjs/./src/dom_components/view/ComponentTextNodeView.ts","webpack://grapesjs/./src/dom_components/view/ComponentCommentView.ts","webpack://grapesjs/./src/dom_components/model/ComponentWrapper.ts","webpack://grapesjs/./src/dom_components/model/ComponentFrame.ts","webpack://grapesjs/./src/dom_components/view/ComponentFrameView.ts","webpack://grapesjs/./src/dom_components/index.ts","webpack://grapesjs/./src/css_composer/config/config.ts","webpack://grapesjs/./src/code_manager/model/CssGenerator.ts","webpack://grapesjs/./src/css_composer/model/CssRule.ts","webpack://grapesjs/./src/css_composer/model/CssRules.ts","webpack://grapesjs/./src/css_composer/index.ts","webpack://grapesjs/./src/block_manager/config/config.ts","webpack://grapesjs/./src/block_manager/model/Block.ts","webpack://grapesjs/./src/block_manager/model/Blocks.ts","webpack://grapesjs/./src/block_manager/model/Category.ts","webpack://grapesjs/./src/block_manager/model/Categories.ts","webpack://grapesjs/./src/block_manager/view/BlockView.ts","webpack://grapesjs/./src/block_manager/view/CategoryView.ts","webpack://grapesjs/./src/block_manager/view/BlocksView.ts","webpack://grapesjs/./src/block_manager/index.ts","webpack://grapesjs/./src/selector_manager/config/config.ts","webpack://grapesjs/./src/selector_manager/model/State.ts","webpack://grapesjs/./src/selector_manager/view/ClassTagView.ts","webpack://grapesjs/./src/selector_manager/view/ClassTagsView.ts","webpack://grapesjs/./src/selector_manager/index.ts","webpack://grapesjs/./src/parser/config/config.ts","webpack://grapesjs/./src/parser/model/BrowserParserCss.ts","webpack://grapesjs/./src/parser/model/ParserCss.ts","webpack://grapesjs/./src/parser/index.ts","webpack://grapesjs/./src/storage_manager/config/config.ts","webpack://grapesjs/./src/storage_manager/model/LocalStorage.ts","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://grapesjs/./node_modules/promise-polyfill/src/finally.js","webpack://grapesjs/./node_modules/promise-polyfill/src/allSettled.js","webpack://grapesjs/./node_modules/promise-polyfill/src/any.js","webpack://grapesjs/./node_modules/promise-polyfill/src/index.js","webpack://grapesjs/./src/utils/fetch.ts","webpack://grapesjs/./src/storage_manager/model/RemoteStorage.ts","webpack://grapesjs/./src/storage_manager/index.ts","webpack://grapesjs/./src/trait_manager/config/config.ts","webpack://grapesjs/./src/trait_manager/view/TraitView.ts","webpack://grapesjs/./src/trait_manager/view/TraitsView.ts","webpack://grapesjs/./src/trait_manager/view/TraitSelectView.ts","webpack://grapesjs/./src/trait_manager/view/TraitCheckboxView.ts","webpack://grapesjs/./src/domain_abstract/ui/Input.ts","webpack://grapesjs/./src/domain_abstract/ui/InputNumber.ts","webpack://grapesjs/./src/trait_manager/view/TraitNumberView.ts","webpack://grapesjs/./src/domain_abstract/ui/InputColor.ts","webpack://grapesjs/./src/utils/ColorPicker.ts","webpack://grapesjs/./src/trait_manager/view/TraitColorView.ts","webpack://grapesjs/./src/trait_manager/view/TraitButtonView.ts","webpack://grapesjs/./src/trait_manager/index.ts","webpack://grapesjs/./src/navigator/config/config.ts","webpack://grapesjs/./src/navigator/view/ItemsView.ts","webpack://grapesjs/./src/navigator/view/ItemView.ts","webpack://grapesjs/./src/navigator/index.ts","webpack://grapesjs/./src/asset_manager/config/config.ts","webpack://grapesjs/./src/asset_manager/model/Asset.ts","webpack://grapesjs/./src/asset_manager/model/AssetImage.ts","webpack://grapesjs/./src/asset_manager/view/AssetView.ts","webpack://grapesjs/./src/asset_manager/view/AssetImageView.ts","webpack://grapesjs/./src/domain_abstract/model/TypeableCollection.ts","webpack://grapesjs/./src/asset_manager/model/Assets.ts","webpack://grapesjs/./src/asset_manager/view/AssetsView.ts","webpack://grapesjs/./src/asset_manager/view/FileUploader.ts","webpack://grapesjs/./src/asset_manager/index.ts","webpack://grapesjs/./src/i18n/locale/en.js","webpack://grapesjs/./src/i18n/config.ts","webpack://grapesjs/./src/i18n/index.ts","webpack://grapesjs/./src/utils/Sorter.ts","webpack://grapesjs/./src/utils/Resizer.ts","webpack://grapesjs/./src/utils/index.ts","webpack://grapesjs/./src/utils/keymaster.ts","webpack://grapesjs/./src/keymaps/config.ts","webpack://grapesjs/./src/keymaps/index.ts","webpack://grapesjs/./src/modal_dialog/config/config.ts","webpack://grapesjs/./src/modal_dialog/model/Modal.ts","webpack://grapesjs/./src/modal_dialog/view/ModalView.ts","webpack://grapesjs/./src/modal_dialog/index.ts","webpack://grapesjs/./src/panels/config/config.ts","webpack://grapesjs/./src/panels/model/Button.ts","webpack://grapesjs/./src/panels/model/Buttons.ts","webpack://grapesjs/./src/panels/model/Panel.ts","webpack://grapesjs/./src/panels/model/Panels.ts","webpack://grapesjs/./src/panels/view/ButtonView.ts","webpack://grapesjs/./src/panels/view/ButtonsView.ts","webpack://grapesjs/./src/panels/view/PanelView.ts","webpack://grapesjs/./src/panels/view/PanelsView.ts","webpack://grapesjs/./src/panels/index.ts","webpack://grapesjs/./src/code_manager/config/config.ts","webpack://grapesjs/./src/code_manager/model/HtmlGenerator.ts","webpack://grapesjs/./src/code_manager/model/JsonGenerator.ts","webpack://grapesjs/./src/code_manager/model/JsGenerator.ts","webpack://grapesjs/./src/code_manager/model/CodeMirrorEditor.ts","webpack://grapesjs/./src/code_manager/view/EditorView.ts","webpack://grapesjs/./src/code_manager/index.ts","webpack://grapesjs/./src/undo_manager/config.ts","webpack://grapesjs/./src/undo_manager/index.ts","webpack://grapesjs/./src/rich_text_editor/config/config.ts","webpack://grapesjs/./src/rich_text_editor/model/RichTextEditor.ts","webpack://grapesjs/./src/rich_text_editor/index.ts","webpack://grapesjs/./src/commands/config/config.ts","webpack://grapesjs/./src/commands/index.ts","webpack://grapesjs/./src/style_manager/config/config.ts","webpack://grapesjs/./src/style_manager/model/Property.ts","webpack://grapesjs/./src/style_manager/model/Layer.ts","webpack://grapesjs/./src/style_manager/model/Layers.ts","webpack://grapesjs/./src/style_manager/model/PropertyComposite.ts","webpack://grapesjs/./src/style_manager/model/PropertyStack.ts","webpack://grapesjs/./src/style_manager/view/PropertyView.ts","webpack://grapesjs/./src/style_manager/view/PropertiesView.ts","webpack://grapesjs/./src/style_manager/view/PropertyCompositeView.ts","webpack://grapesjs/./src/style_manager/view/LayerView.ts","webpack://grapesjs/./src/style_manager/view/LayersView.ts","webpack://grapesjs/./src/style_manager/view/PropertyStackView.ts","webpack://grapesjs/./src/style_manager/view/PropertyFileView.ts","webpack://grapesjs/./src/style_manager/view/PropertyNumberView.ts","webpack://grapesjs/./src/style_manager/view/PropertyColorView.ts","webpack://grapesjs/./src/style_manager/model/PropertySelect.ts","webpack://grapesjs/./src/style_manager/view/PropertySelectView.ts","webpack://grapesjs/./src/style_manager/model/PropertyRadio.ts","webpack://grapesjs/./src/style_manager/view/PropertyRadioView.ts","webpack://grapesjs/./src/style_manager/model/PropertyNumber.ts","webpack://grapesjs/./src/style_manager/model/PropertySlider.ts","webpack://grapesjs/./src/style_manager/view/PropertySliderView.ts","webpack://grapesjs/./src/style_manager/model/Properties.ts","webpack://grapesjs/./src/style_manager/model/Sector.ts","webpack://grapesjs/./src/style_manager/model/Sectors.ts","webpack://grapesjs/./src/style_manager/model/PropertyFactory.ts","webpack://grapesjs/./src/style_manager/view/SectorView.ts","webpack://grapesjs/./src/style_manager/view/SectorsView.ts","webpack://grapesjs/./src/style_manager/index.ts","webpack://grapesjs/./src/editor/model/Editor.ts","webpack://grapesjs/./src/utils/extender.ts","webpack://grapesjs/./src/editor/view/EditorView.ts","webpack://grapesjs/./src/editor/index.ts","webpack://grapesjs/./src/plugin_manager/index.ts","webpack://grapesjs/./src/utils/polyfills.ts","webpack://grapesjs/./src/index.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(typeof globalThis !== 'undefined' ? globalThis : (typeof window !== 'undefined' ? window : this), () => {\nreturn ","/*!\n * Backbone.Undo.js v0.2\n * \n * Copyright (c)2013 Oliver Sartun\n * Released under the MIT License\n *\n * Documentation and full license available at\n * https://github.com/osartun/Backbone.Undo.js\n */\n\n\n(function (factory) {\n\tif (typeof define === \"function\" && define.amd) {\n\t\t// AMD support\n\t\tdefine([\"underscore\", \"backbone\"], factory);\n\t} else if (typeof exports !== 'undefined') {\n\t\t// CommonJS support\n\t\tmodule.exports = factory(\n\t\t\trequire(\"underscore\"),\n\t\t\trequire(\"backbone\")\n\t\t);\n\t} else {\n\t\t// Non-modular execution\n\t\tfactory(_, Backbone);\n }\n})(function (_, Backbone) {\n\n\tvar core_slice = Array.prototype.slice;\n\n\t/**\n\t * As call is faster than apply, this is a faster version of apply as it uses call.\n\t * \n\t * @param {Function} fn \tThe function to execute \n\t * @param {Object} ctx \tThe context the function should be called in\n\t * @param {Array} args \tThe array of arguments that should be applied to the function\n\t * @return Forwards whatever the called function returns\n\t */\n\tfunction apply (fn, ctx, args) {\n\t\treturn args.length <= 4 ?\n\t\t\tfn.call(ctx, args[0], args[1], args[2], args[3]) :\n\t\t\tfn.apply(ctx, args);\n\t}\n\n\t/**\n\t * Uses slice on an array or an array-like object.\n\t * \n\t * @param {Array|Object} \tarr \tThe array or array-like object.\n\t * @param {Number} \t\t[index]\tThe index from where the array should be sliced. Default is 0.\n\t * @return {Array} The sliced array\n\t */\n\tfunction slice (arr, index) {\n\t\treturn core_slice.call(arr, index);\n\t}\n\n\t/**\n\t * Checks if an object has one or more specific keys. The keys \n\t * don't have to be an owned property.\n\t * You can call this function either this way:\n\t * hasKeys(obj, [\"a\", \"b\", \"c\"])\n\t * or this way:\n\t * hasKeys(obj, \"a\", \"b\", \"c\")\n\t * \n\t * @param {Object} \tobj \tThe object to check on\n\t * @param {Array} \tkeys \tThe keys to check for\n\t * @return {Boolean} True, if the object has all those keys\n\t */\n\tfunction hasKeys (obj, keys) {\n\t\tif (obj == null) return false;\n\t\tif (!_.isArray(keys)) {\n\t\t\tkeys = slice(arguments, 1);\n\t\t}\n\t\treturn _.all(keys, function (key) {\n\t\t\treturn key in obj;\n\t\t});\n\t}\n\n\t/**\n\t * Returns a number that is unique per call stack. The number gets \n\t * changed after the call stack has been completely processed.\n\t * \n\t * @return {number} MagicFusionIndex\n\t */\n\tvar getMagicFusionIndex = (function () {\n\t\t// If you add several models to a collection or set several\n\t\t// attributes on a model all in sequence and yet all for\n\t\t// example in one function, then several Undo-Actions are\n\t\t// generated.\n\t\t// If you want to undo your last action only the last model\n\t\t// would be removed from the collection or the last set\n\t\t// attribute would be changed back to its previous value.\n\t\t// To prevent that we have to figure out a way to combine\n\t\t// all those actions that happened \"at the same time\". \n\t\t// Timestamps aren't exact enough. A complex routine could \n\t\t// run several milliseconds and in that time produce a lot \n\t\t// of actions with different timestamps.\n\t\t// Instead we take advantage of the single-threadedness of\n\t\t// JavaScript:\n\n\t\tvar callstackWasIndexed = false, magicFusionIndex = -1;\n\t\tfunction indexCycle() {\n\t\t\tmagicFusionIndex++;\n\t\t\tcallstackWasIndexed = true;\n\t\t\t_.defer(function () {\n\t\t\t\t// Here comes the magic. With a Timeout of 0 \n\t\t\t\t// milliseconds this function gets called whenever\n\t\t\t\t// the current callstack is completed\n\t\t\t\tcallstackWasIndexed = false;\n\t\t\t})\n\t\t}\n\t\treturn function () {\n\t\t\tif (!callstackWasIndexed) {\n\t\t\t\tindexCycle();\n\t\t\t}\n\t\t\treturn magicFusionIndex;\n\t\t}\n\t})();\n\n\t/**\n\t * To prevent binding a listener several times to one \n\t * object, we register the objects in an ObjectRegistry\n\t *\n\t * @constructor\n\t */\n\tfunction ObjectRegistry () {\n\t\t// This uses two different ways of storing\n\t\t// objects: In case the object has a cid\n\t\t// (which Backbone objects typically have)\n\t\t// it uses this cid as an index. That way\n\t\t// the Array's length attribute doesn't \n\t\t// change and the object isn't an item \n\t\t// in the array, but an object-property.\n\t\t// Otherwise it's added to the Array as an\n\t\t// item.\n\t\t// That way we can use the fast property-\n\t\t// lookup and only have to fall back to \n\t\t// iterating over the array in case \n\t\t// non-Backbone-objects are registered.\n\t\tthis.registeredObjects = [];\n\t\t// To return a list of all registered \n\t\t// objects in the 'get' method we have to\n\t\t// store the objects that have a cid in\n\t\t// an additional array. \n\t\tthis.cidIndexes = [];\n\t}\n\tObjectRegistry.prototype = {\n\t\t/**\n\t\t * Returns whether the object is already registered in this ObjectRegistry or not.\n\t\t * \n\t\t * @this \t{ObjectRegistry}\n\t\t * @param \t{Object} \t\t obj \tThe object to check\n\t\t * @return \t{Boolean} True if the object is already registered\n\t\t */\n\t\tisRegistered: function (obj) {\n\t\t\t// This is where we get a performance boost \n\t\t\t// by using the two different ways of storing \n\t\t\t// objects.\n\t\t\treturn obj && obj.cid ? this.registeredObjects[obj.cid] : _.contains(this.registeredObjects, obj);\n\t\t},\n\t\t/**\n\t\t * Registers an object in this ObjectRegistry.\n\t\t * \n\t\t * @this \t{ObjectRegistry}\n\t\t * @param \t{Object} \t\t obj \tThe object to register\n\t\t * @return \t{undefined}\n\t\t */\n\t\tregister: function (obj) {\n\t\t\tif (!this.isRegistered(obj)) {\n\t\t\t\tif (obj && obj.cid) {\n\t\t\t\t\tthis.registeredObjects[obj.cid] = obj;\n\t\t\t\t\tthis.cidIndexes.push(obj.cid);\n\t\t\t\t} else {\n\t\t\t\t\tthis.registeredObjects.push(obj);\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\t/**\n\t\t * Unregisters an object from this ObjectRegistry.\n\t\t * \n\t\t * @this {ObjectRegistry}\n\t\t * @param {Object} obj The object to unregister\n\t\t * @return {undefined}\n\t\t */\n\t\tunregister: function (obj) {\n\t\t\tif (this.isRegistered(obj)) {\n\t\t\t\tif (obj && obj.cid) {\n\t\t\t\t\tdelete this.registeredObjects[obj.cid];\n\t\t\t\t\tthis.cidIndexes.splice(_.indexOf(this.cidIndexes, obj.cid), 1);\n\t\t\t\t} else {\n\t\t\t\t\tvar i = _.indexOf(this.registeredObjects, obj);\n\t\t\t\t\tthis.registeredObjects.splice(i, 1);\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\t/**\n\t\t * Returns an array of all objects that are currently in this ObjectRegistry.\n\t\t * \n\t\t * @return {Array} An array of all the objects which are currently in the ObjectRegistry\n\t\t */\n\t\tget: function () {\n\t\t\treturn (_.map(this.cidIndexes, function (cid) {return this.registeredObjects[cid];}, this)).concat(this.registeredObjects);\n\t\t}\n\t}\n\n\t/**\n\t * Binds or unbinds the \"all\"-listener for one or more objects.\n\t * \n\t * @param {String} which \tEither \"on\" or \"off\"\n\t * @param {Object[]} objects \tArray of the objects on which the \"all\"-listener should be bound / unbound to\n\t * @param {Function} [fn] \t\tThe function that should be bound / unbound. Optional in case of \"off\"\n\t * @param {Object} [ctx] \tThe context the function should be called in\n\t * @return {undefined}\n\t */\n\tfunction onoff(which, objects, fn, ctx) {\n\t\tfor (var i = 0, l = objects.length, obj; i < l; i++) {\n\t\t\tobj = objects[i];\n\t\t\tif (!obj) continue;\n\t\t\tif (which === \"on\") {\n\t\t\t\tif (!ctx.objectRegistry.register(obj)) {\n\t\t\t\t\t// register returned false, so obj was already registered\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (!ctx.objectRegistry.unregister(obj)) {\n\t\t\t\t\t// unregister returned false, so obj wasn't registered\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (_.isFunction(obj[which])) {\n\t\t\t\tobj[which](\"all\", fn, ctx);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Calls the undo/redo-function for a specific action.\n\t * \n\t * @param {String} which \tEither \"undo\" or \"redo\"\n\t * @param {Object} action \tThe Action's attributes\n\t * @return {undefined}\n\t */\n\tfunction actionUndoRedo (which, action) {\n\t\tvar type = action.type, undoTypes = action.undoTypes, fn = !undoTypes[type] || undoTypes[type][which];\n\t\tif (_.isFunction(fn)) {\n\t\t\tfn(action.object, action.before, action.after, action.options);\n\t\t}\n\t}\n\n\t/**\n\t * The main undo/redo function.\n\t *\n\t * @param {String} \t\twhich \t Either \"undo\" or \"redo\"\n\t * @param {UndoManager} \tmanager\t The UndoManager-instance on which an \"undo\"/\"redo\"-Event is triggered afterwards\n\t * @param {UndoStack} \t\tstack \t The UndoStack on which we perform\n\t * @param {Boolean} \t\tmagic \t If true, undoes / redoes all actions with the same magicFusionIndex\n\t * @param {Boolean} \t\teverything If true, undoes / redoes every action that had been tracked\n\t * @return {undefined}\n\t */\n\tfunction managerUndoRedo (which, manager, stack, magic, everything) {\n\t\tif (stack.isCurrentlyUndoRedoing || \n\t\t\t(which === \"undo\" && stack.pointer === -1) ||\n\t\t\t(which === \"redo\" && stack.pointer === stack.length - 1)) {\n\t\t\t// We're either currently in an undo- / redo-process or \n\t\t\t// we reached the end of the stack\n\t\t\treturn;\n\t\t}\n\t\tstack.isCurrentlyUndoRedoing = true;\n\t\tvar action, actions, isUndo = which === \"undo\";\n\t\tif (everything) {\n\t\t\t// Undo / Redo all steps until you reach the stack's beginning / end\n\t\t\tactions = isUndo && stack.pointer === stack.length - 1 || // If at the stack's end calling undo\n\t\t\t\t\t !isUndo && stack.pointer === -1 ? // or at the stack's beginning calling redo\n\t\t\t\t\t _.clone(stack.models) : // => Take all the models. Otherwise:\n\t\t\t\t\t core_slice.apply(stack.models, isUndo ? [0, stack.pointer] : [stack.pointer, stack.length - 1]);\n\t\t} else {\n\t\t\t// Undo / Redo only one step\n\t\t\taction = stack.at(isUndo ? stack.pointer : stack.pointer + 1);\n\t\t\tactions = magic ? stack.where({\"magicFusionIndex\": action.get(\"magicFusionIndex\")}) : [action];\n\t\t}\n\t\t\n\t\tstack.pointer += (isUndo ? -1 : 1) * actions.length;\n\t\twhile (action = isUndo ? actions.pop() : actions.shift()) {\n\t\t\t// Here we're calling the Action's undo / redo method\n\t\t\taction[which]();\n\t\t}\n\t\tstack.isCurrentlyUndoRedoing = false;\n\n\t\tmanager.trigger(which, manager);\n\t}\n\n\t/**\n\t * Checks whether an UndoAction should be created or not. Therefore it checks\n\t * whether a \"condition\" property is set in the undoTypes-object of the specific\n\t * event type. If not, it returns true. If it's set and a boolean, it returns it.\n\t * If it's a function, it returns its result, converting it into a boolean. \n\t * Otherwise it returns true.\n\t * \n\t * @param {Object} \tundoTypesType \tThe object within the UndoTypes that holds the function for this event type (i.e. \"change\")\n\t * @param {Arguments} \targs \t\tThe arguments the \"condition\" function is called with\n\t * @return {Boolean} \tTrue, if an UndoAction should be created\n\t */\n\tfunction validateUndoActionCreation (undoTypesType, args) {\n\t\tvar condition = undoTypesType.condition, type = typeof condition;\n\t\treturn type === \"function\" ? !!apply(condition, undoTypesType, args) :\n\t\t\ttype === \"boolean\" ? condition : true;\n\t}\n\n\t/**\n\t * Adds an Undo-Action to the stack.\n\t * \n\t * @param {UndoStack} \t\tstack \t\tThe undostack the action should be added to.\n\t * @param {String} \t\t\ttype \t\tThe event type (i.e. \"change\")\n\t * @param {Arguments} \t\targs \t\tThe arguments passed to the undoTypes' \"on\"-handler\n\t * @param {OwnedUndoTypes} \tundoTypes \tThe undoTypes-object which has the \"on\"-handler\n\t * @return {undefined}\n\t */\n\tfunction addToStack(stack, type, args, undoTypes) {\n\t\tif (stack.track && !stack.isCurrentlyUndoRedoing && type in undoTypes &&\n\t\t\tvalidateUndoActionCreation(undoTypes[type], args)) {\n\t\t\t// An UndoAction should be created\n\t\t\tvar res = apply(undoTypes[type][\"on\"], undoTypes[type], args), diff;\n\t\t\tif (hasKeys(res, \"object\", \"before\", \"after\")) {\n\t\t\t\tres.type = type;\n\t\t\t\tres.magicFusionIndex = getMagicFusionIndex();\n\t\t\t\tres.undoTypes = undoTypes;\n\t\t\t\tif (stack.pointer < stack.length - 1) {\n\t\t\t\t\t// New Actions must always be added to the end of the stack.\n\t\t\t\t\t// If the pointer is not pointed to the last action in the\n\t\t\t\t\t// stack, presumably because actions were undone before, then\n\t\t\t\t\t// all following actions must be discarded\n\t\t\t\t\tvar diff = stack.length - stack.pointer - 1;\n\t\t\t\t\twhile (diff--) {\n\t\t\t\t\t\tstack.pop();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstack.pointer = stack.length;\n\t\t\t\tstack.add(res);\n\t\t\t\tif (stack.length > stack.maximumStackLength) {\n\t\t\t\t\tstack.shift();\n\t\t\t\t\tstack.pointer--;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\n\t/**\n\t * Predefined UndoTypes object with default handlers for the most common events.\n\t * @type {Object}\n\t */\n\tvar UndoTypes = {\n\t\t\"add\": {\n\t\t\t\"undo\": function (collection, ignore, model, options) {\n\t\t\t\t// Undo add = remove\n\t\t\t\tcollection.remove(model, options);\n\t\t\t},\n\t\t\t\"redo\": function (collection, ignore, model, options) {\n\t\t\t\t// Redo add = add\n\t\t\t\tif (options.index) {\n\t\t\t\t\toptions.at = options.index;\n\t\t\t\t}\n\t\t\t\tcollection.add(model, options);\n\t\t\t},\n\t\t\t\"on\": function (model, collection, options) {\n\t\t\t\treturn {\n\t\t\t\t\tobject: collection,\n\t\t\t\t\tbefore: undefined,\n\t\t\t\t\tafter: model,\n\t\t\t\t\toptions: _.clone(options)\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t\t\"remove\": {\n\t\t\t\"undo\": function (collection, model, ignore, options) {\n\t\t\t\tif (\"index\" in options) {\n\t\t\t\t\toptions.at = options.index;\n\t\t\t\t}\n\t\t\t\tcollection.add(model, options);\n\t\t\t},\n\t\t\t\"redo\": function (collection, model, ignore, options) {\n\t\t\t\tcollection.remove(model, options);\n\t\t\t},\n\t\t\t\"on\": function (model, collection, options) {\n\t\t\t\treturn {\n\t\t\t\t\tobject: collection,\n\t\t\t\t\tbefore: model,\n\t\t\t\t\tafter: undefined,\n\t\t\t\t\toptions: _.clone(options)\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t\t\"change\": {\n\t\t\t\"undo\": function (model, before, after, options) {\n\t\t\t\tif (_.isEmpty(before)) {\n\t\t\t\t\t_.each(_.keys(after), model.unset, model);\n\t\t\t\t} else {\n\t\t\t\t\tmodel.set(before);\n\t\t\t\t\tif (options && options.unsetData && options.unsetData.before && options.unsetData.before.length) {\n\t\t\t\t\t\t_.each(options.unsetData.before, model.unset, model);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"redo\": function (model, before, after, options) {\n\t\t\t\tif (_.isEmpty(after)) {\n\t\t\t\t\t_.each(_.keys(before), model.unset, model);\n\t\t\t\t} else {\n\t\t\t\t\tmodel.set(after);\n\t\t\t\t\tif (options && options.unsetData && options.unsetData.after && options.unsetData.after.length) {\n\t\t\t\t\t\t_.each(options.unsetData.after, model.unset, model);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"on\": function (model, options) {\n\t\t\t\tvar\n\t\t\t\tafterAttributes = model.changedAttributes(),\n\t\t\t\tkeysAfter = _.keys(afterAttributes),\n\t\t\t\tpreviousAttributes = _.pick(model.previousAttributes(), keysAfter),\n\t\t\t\tkeysPrevious = _.keys(previousAttributes),\n\t\t\t\tunsetData = (options || (options = {})).unsetData = {\n\t\t\t\t\tafter: [],\n\t\t\t\t\tbefore: []\n\t\t\t\t};\n\n\t\t\t\tif (keysAfter.length != keysPrevious.length) {\n\t\t\t\t\t// There are new attributes or old attributes have been unset\n\t\t\t\t\tif (keysAfter.length > keysPrevious.length) {\n\t\t\t\t\t\t// New attributes have been added\n\t\t\t\t\t\t_.each(keysAfter, function (val) {\n\t\t\t\t\t\t\tif (!(val in previousAttributes)) {\n\t\t\t\t\t\t\t\tunsetData.before.push(val);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, this);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Old attributes have been unset\n\t\t\t\t\t\t_.each(keysPrevious, function (val) {\n\t\t\t\t\t\t\tif (!(val in afterAttributes)) {\n\t\t\t\t\t\t\t\tunsetData.after.push(val);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tobject: model,\n\t\t\t\t\tbefore: previousAttributes,\n\t\t\t\t\tafter: afterAttributes,\n\t\t\t\t\toptions: _.clone(options)\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t\t\"reset\": {\n\t\t\t\"undo\": function (collection, before, after) {\n\t\t\t\tcollection.reset(before);\n\t\t\t},\n\t\t\t\"redo\": function (collection, before, after) {\n\t\t\t\tcollection.reset(after);\n\t\t\t},\n\t\t\t\"on\": function (collection, options) {\n\t\t\t\treturn {\n\t\t\t\t\tobject: collection,\n\t\t\t\t\tbefore: options.previousModels,\n\t\t\t\t\tafter: _.clone(collection.models)\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t};\n\n\t/**\n\t * Every UndoManager instance has an own undoTypes object\n\t * which is an instance of OwnedUndoTypes. OwnedUndoTypes' \n\t * prototype is the global UndoTypes object. Changes to the \n\t * global UndoTypes object take effect on every instance of\n\t * UndoManager as the object is its prototype. And yet every \n\t * local UndoTypes object can be changed individually.\n\t *\n\t * @constructor\n\t */\n\tfunction OwnedUndoTypes () {}\n\tOwnedUndoTypes.prototype = UndoTypes;\n\n\t/**\n\t * Adds, changes or removes an undo-type from an UndoTypes-object.\n\t * You can call it this way:\n\t * manipulateUndoType (1, \"reset\", {\"on\": function () {}}, undoTypes)\n\t * or this way to perform bulk actions:\n\t * manipulateUndoType (1, {\"reset\": {\"on\": function () {}}}, undoTypes)\n\t * In case of removing undo-types you can pass an Array for performing\n\t * bulk actions:\n\t * manipulateUndoType(2, [\"reset\", \"change\"], undoTypes)\n\t * \n\t * @param {Number} \t\t\t\t manipType \t\tIndicates the kind of action to execute: 0 for add, 1 for change, 2 for remove\n\t * @param {String|Object|Array} \t undoType \t\t\tThe type of undoType that should be added/changed/removed. Can be an object / array to perform bulk actions\n\t * @param {Object} \t\t\t\t [fns] \t\t\tObject with the functions to add / change. Is optional in case you passed an object as undoType that contains these functions\n\t * @param {OwnedUndoTypes|UndoTypes} undoTypesInstance The undoTypes object to act on\n\t * @return {undefined}\n\t */\n\tfunction manipulateUndoType (manipType, undoType, fns, undoTypesInstance) {\n\t\t// manipType, passed by the calling function\n\t\t// 0: add\n\t\t// 1: change\n\t\t// 2: remove\n\t\tif (typeof undoType === \"object\") {\n\t\t\t// bulk action. Iterate over this data.\n\t\t\treturn _.each(undoType, function (val, key) {\n\t\t\t\t\tif (manipType === 2) { // remove\n\t\t\t\t\t\t// undoType is an array\n\t\t\t\t\t\tmanipulateUndoType (manipType, val, fns, undoTypesInstance);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// undoType is an object\n\t\t\t\t\t\tmanipulateUndoType (manipType, key, val, fns);\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t}\n\n\t\tswitch (manipType) {\n\t\t\tcase 0: // add\n\t\t\t\tif (hasKeys(fns, \"undo\", \"redo\", \"on\") && _.all(_.pick(fns, \"undo\", \"redo\", \"on\"), _.isFunction)) {\n\t\t\t\t\tundoTypesInstance[undoType] = fns;\n\t\t\t\t} \n\t\t\tbreak;\n\t\t\tcase 1: // change\n\t\t\t\tif (undoTypesInstance[undoType] && _.isObject(fns)) {\n\t\t\t\t\t// undoTypeInstance[undoType] may be a prototype's property\n\t\t\t\t\t// So, if we did this _.extend(undoTypeInstance[undoType], fns)\n\t\t\t\t\t// we would extend the object on the prototype which means\n\t\t\t\t\t// that this change would have a global effect\n\t\t\t\t\t// Instead we just want to manipulate this instance. That's why\n\t\t\t\t\t// we're doing this:\n\t\t\t\t\tundoTypesInstance[undoType] = _.extend({}, undoTypesInstance[undoType], fns);\n\t\t\t\t} \n\t\t\tbreak;\n\t\t\tcase 2: // remove\n\t\t\t\tdelete undoTypesInstance[undoType]; \n\t\t\tbreak;\n\t\t}\n\t\treturn this;\n\t}\n\n\t/**\n\t * Instantiating \"Action\" creates the UndoActions that \n\t * are collected in an UndoStack. It holds all relevant \n\t * data to undo / redo an action and has an undo / redo \n\t * method.\n\t */\n\tvar Action = Backbone.Model.extend({\n\t\tdefaults: {\n\t\t\ttype: null, // \"add\", \"change\", \"reset\", etc.\n\t\t\tobject: null, // The object on which the action occurred\n\t\t\tbefore: null, // The previous values which were changed with this action\n\t\t\tafter: null, // The values after this action\n\t\t\tmagicFusionIndex: null // The magicFusionIndex helps to combine \n\t\t\t// all actions that occurred \"at the same time\" to undo/redo them altogether\n\t\t},\n\t\t/**\n\t\t * Undoes this action.\n\t\t * @param {OwnedUndoTypes|UndoTypes} undoTypes The undoTypes object which contains the \"undo\"-handler that should be used\n\t\t * @return {undefined}\n\t\t */\n\t\tundo: function (undoTypes) {\n\t\t\tactionUndoRedo(\"undo\", this.attributes);\n\t\t},\n\t\t/**\n\t\t * Redoes this action.\n\t\t * @param {OwnedUndoTypes|UndoTypes} undoTypes The undoTypes object which contains the \"redo\"-handler that should be used\n\t\t * @return {undefined}\n\t\t */\n\t\tredo: function (undoTypes) {\n\t\t\tactionUndoRedo(\"redo\", this.attributes);\n\t\t}\n\t}),\n\t/**\n\t * An UndoStack is a collection of UndoActions in \n\t * chronological order.\n\t */\n\tUndoStack = Backbone.Collection.extend({\n\t\tmodel: Action,\n\t\tpointer: -1, // The pointer indicates the index where we are located within the stack. We start at -1\n\t\ttrack: false,\n\t\tisCurrentlyUndoRedoing: false,\n\t\tmaximumStackLength: Infinity,\n\t\tsetMaxLength: function (val) {\n\t\t\tthis.maximumStackLength = val;\n\t\t}\n\t}),\n\t/**\n\t * An instance of UndoManager can keep track of \n\t * changes to objects and helps to undo them.\n\t */\n\tUndoManager = Backbone.Model.extend({\n\t\tdefaults: {\n\t\t\tmaximumStackLength: Infinity,\n\t\t\ttrack: false\n\t\t},\n\t\t/**\n\t\t * The constructor function.\n\t\t * @param {attr} \t\t[attr] Object with parameters. The available parameters are:\n\t\t * \t - maximumStackLength {number} \tSet the undo-stack's maximum size\n\t\t * - track \t\t\t\t{boolean}\tStart tracking changes right away\n\t\t * @return {undefined}\n\t\t */\n\t\tinitialize: function (attr) {\n\t\t\tthis.stack = new UndoStack;\n\t\t\tthis.objectRegistry = new ObjectRegistry();\n\t\t\tthis.undoTypes = new OwnedUndoTypes();\n\n\t\t\t// sync the maximumStackLength attribute with our stack\n\t\t\tthis.stack.setMaxLength(this.get(\"maximumStackLength\"));\n\t\t\tthis.on(\"change:maximumStackLength\", function (model, value) {\n\t\t\t\tthis.stack.setMaxLength(value);\n\t\t\t}, this);\n\n\t\t\t// Start tracking, if attr.track == true\n\t\t\tif (attr && attr.track) {\n\t\t\t\tthis.startTracking();\n\t\t\t}\n\n\t\t\t// Register objects passed in the \"register\" attribute\n\t\t\tif (attr && attr.register) {\n\t\t\t\tif (_.isArray(attr.register) || _.isArguments(attr.register)) {\n\t\t\t\t\tapply(this.register, this, attr.register);\n\t\t\t\t} else {\n\t\t\t\t\tthis.register(attr.register);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Starts tracking. Changes of registered objects won't be processed until you've called this function\n\t\t * @return {undefined}\n\t\t */\n\t\tstartTracking: function () {\n\t\t\tthis.set(\"track\", true);\n\t\t\tthis.stack.track = true;\n\t\t},\n\t\t/**\n\t\t * Stops tracking. Afterwards changes of registered objects won't be processed.\n\t\t * @return {undefined}\n\t\t */\n\t\tstopTracking: function () {\n\t\t\tthis.set(\"track\", false);\n\t\t\tthis.stack.track = false;\n\t\t},\n\t\t/**\n\t\t * Return the state of the tracking\n\t\t * @return {boolean}\n\t\t */\n\t\tisTracking: function () {\n\t\t\treturn this.get(\"track\");\n\t\t},\n\t\t/**\n\t\t * This is the \"all\"-handler which is bound to registered \n\t\t * objects. It creates an UndoAction from the event and adds \n\t\t * it to the stack.\n\t\t * \n\t\t * @param {String} \ttype \tThe event type\n\t\t * @return {undefined}\n\t\t */\n\t\t_addToStack: function (type) {\n\t\t\taddToStack(this.stack, type, slice(arguments, 1), this.undoTypes);\n\t\t},\n\t\t/**\n\t\t * Registers one or more objects to track their changes.\n\t\t * @param {...Object} \tobj \tThe object or objects of which changes should be tracked\n\t\t * @return {undefined}\n\t\t */\n\t\tregister: function () {\n\t\t\tonoff(\"on\", arguments, this._addToStack, this);\n\t\t},\n\t\t/**\n\t\t * Unregisters one or more objects.\n\t\t * @param {...Object} \tobj \tThe object or objects of which changes shouldn't be tracked any longer\n\t\t * @return {undefined}\n\t\t */\n\t\tunregister: function () {\n\t\t\tonoff(\"off\", arguments, this._addToStack, this);\n\t\t},\n\t\t/**\n\t\t * Unregisters all previously registered objects.\n\t\t * @return {undefined}\n\t\t */\n\t\tunregisterAll: function () {\n\t\t\tapply(this.unregister, this, this.objectRegistry.get());\n\t\t},\n\t\t/**\n\t\t * Undoes the last action or the last set of actions in case 'magic' is true.\n\t\t * @param {Boolean} \t[magic] \tIf true, all actions that happened basically at the same time are undone together\n\t\t * @return {undefined}\n\t\t */\n\t\tundo: function (magic) {\n\t\t\tmanagerUndoRedo(\"undo\", this, this.stack, magic);\n\t\t},\n\n\t\t/**\n\t\t * Undoes all actions ever tracked by the undo manager\n\t\t * @return {undefined}\n\t\t */\n\t\tundoAll: function () {\n\t\t\tmanagerUndoRedo(\"undo\", this, this.stack, false, true);\n\t\t},\n\n\t\t/**\n\t\t * Redoes a previously undone action or a set of actions.\n\t\t * @param {Boolean} \t[magic] \tIf true, all actions that happened basically at the same time are redone together\n\t\t * @return {undefined}\n\t\t */\n\t\tredo: function (magic) {\n\t\t\tmanagerUndoRedo(\"redo\", this, this.stack, magic);\n\t\t},\n\n\t\t/**\n\t\t * Redoes all actions ever tracked by the undo manager\n\t\t * @return {undefined}\n\t\t */\n\t\tredoAll: function () {\n\t\t\tmanagerUndoRedo(\"redo\", this, this.stack, false, true);\n\t\t},\n\t\t/**\n\t\t * Checks if there's an action in the stack that can be undone / redone\n\t\t * @param {String} \ttype \tEither \"undo\" or \"redo\"\n\t\t * @return {Boolean} True if there is a set of actions which can be undone / redone\n\t\t */\n\t\tisAvailable: function (type) {\n\t\t\tvar s = this.stack, l = s.length;\n\n\t\t\tswitch (type) {\n\t\t\t\tcase \"undo\": return l > 0 && s.pointer > -1;\n\t\t\t\tcase \"redo\": return l > 0 && s.pointer < l - 1;\n\t\t\t\tdefault: return false;\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Sets the stack-reference to the stack of another undoManager.\n\t\t * @param {UndoManager} \tundoManager \tThe undoManager whose stack-reference is set to this stack\n\t\t * @return {undefined}\n\t\t */\n\t\tmerge: function (undoManager) {\n\t\t\t// This sets the stack-reference to the stack of another \n\t\t\t// undoManager so that the stack of this other undoManager \n\t\t\t// is used by two different managers.\n\t\t\t// This enables to set up a main-undoManager and besides it\n\t\t\t// several others for special, exceptional cases (by using\n\t\t\t// instance-based custom UndoTypes). Models / collections \n\t\t\t// which need this special treatment are only registered at \n\t\t\t// those special undoManagers. Those special ones are then \n\t\t\t// merged into the main-undoManager to write on its stack. \n\t\t\t// That way it's easier to manage exceptional cases.\n\t\t\tvar args = _.isArray(undoManager) ? undoManager : slice(arguments), manager;\n\t\t\twhile (manager = args.pop()) {\n\t\t\t\tif (manager instanceof UndoManager &&\n\t\t\t\t\tmanager.stack instanceof UndoStack) {\n\t\t\t\t\t// set the stack reference to our stack\n\t\t\t\t\tmanager.stack = this.stack;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Add an UndoType to this specific UndoManager-instance.\n\t\t * @param {String} type The event this UndoType is made for\n\t\t * @param {Object} fns An object of functions that are called to generate the data for an UndoAction or to process it. Must have the properties \"undo\", \"redo\" and \"on\". Can have the property \"condition\".\n\t\t * @return {undefined}\n\t\t */\n\t\taddUndoType: function (type, fns) {\n\t\t\tmanipulateUndoType(0, type, fns, this.undoTypes);\n\t\t},\n\t\t/**\n\t\t * Overwrite properties of an existing UndoType for this specific UndoManager-instance.\n\t\t * @param {String} type The event the UndoType is made for\n\t\t * @param {Object} fns An object of functions that are called to generate the data for an UndoAction or to process it. It extends the existing object.\n\t\t * @return {undefined}\n\t\t */\n\t\tchangeUndoType: function (type, fns) {\n\t\t\tmanipulateUndoType(1, type, fns, this.undoTypes);\n\t\t},\n\t\t/**\n\t\t * Remove one or more UndoTypes of this specific UndoManager-instance to fall back to the global UndoTypes.\n\t\t * @param {String|Array} type The event the UndoType that should be removed is made for. You can also pass an array of events.\n\t\t * @return {undefined}\n\t\t */\n\t\tremoveUndoType: function (type) {\n\t\t\tmanipulateUndoType(2, type, undefined, this.undoTypes);\n\t\t},\n\n\t\t/**\n\t\t * Removes all actions from the stack.\n\t\t * @return {undefined}\n\t\t */\n\t\tclear: function() {\n\t\t\tthis.stack.reset();\n\t\t\tthis.stack.pointer = -1;\n\t\t}\n\t});\n\n\t_.extend(UndoManager, {\n\t\t/**\n\t\t * Change the UndoManager's default attributes\n\t\t * @param {Object} defaultAttributes An object with the new default values.\n\t\t * @return {undefined}\n\t\t */\n\t\tdefaults: function (defaultAttributes) {\n\t\t\t_.extend(UndoManager.prototype.defaults, defaultAttributes);\n\t\t},\n\t\t/**\n\t\t * Add an UndoType to the global UndoTypes-object.\n\t\t * @param {String} type The event this UndoType is made for\n\t\t * @param {Object} fns An object of functions that are called to generate the data for an UndoAction or to process it. Must have the properties \"undo\", \"redo\" and \"on\". Can have the property \"condition\".\n\t\t * @return {undefined}\n\t\t */\n\t\t\"addUndoType\": function (type, fns) {\n\t\t\tmanipulateUndoType(0, type, fns, UndoTypes);\n\t\t},\n\t\t/**\n\t\t * Overwrite properties of an existing UndoType in the global UndoTypes-object.\n\t\t * @param {String} type The event the UndoType is made for\n\t\t * @param {Object} fns An object of functions that are called to generate the data for an UndoAction or to process it. It extends the existing object.\n\t\t * @return {undefined}\n\t\t */\n\t\t\"changeUndoType\": function (type, fns) {\n\t\t\tmanipulateUndoType(1, type, fns, UndoTypes)\n\t\t},\n\t\t/**\n\t\t * Remove one or more UndoTypes of this specific UndoManager-instance to fall back to the global UndoTypes.\n\t\t * @param {String|Array} type The event the UndoType that should be removed is made for. You can also pass an array of events.\n\t\t * @return {undefined}\n\t\t */\n\t\t\"removeUndoType\": function (type) {\n\t\t\tmanipulateUndoType(2, type, undefined, UndoTypes);\n\t\t}\n\t})\n\n\treturn Backbone.UndoManager = UndoManager;\n\n});\n","// Backbone.js 1.4.1\n\n// (c) 2010-2022 Jeremy Ashkenas and DocumentCloud\n// Backbone may be freely distributed under the MIT license.\n// For all details and documentation:\n// http://backbonejs.org\n\n(function(factory) {\n\n // Establish the root object, `window` (`self`) in the browser, or `global` on the server.\n // We use `self` instead of `window` for `WebWorker` support.\n var root = typeof self == 'object' && self.self === self && self ||\n typeof global == 'object' && global.global === global && global;\n\n // Set up Backbone appropriately for the environment. Start with AMD.\n if (typeof define === 'function' && define.amd) {\n define(['underscore', 'jquery', 'exports'], function(_, $, exports) {\n // Export global even in AMD case in case this script is loaded with\n // others that may still expect a global Backbone.\n root.Backbone = factory(root, exports, _, $);\n });\n\n // Next for Node.js or CommonJS. jQuery may not be needed as a module.\n } else if (typeof exports !== 'undefined') {\n var _ = require('underscore'), $;\n try { $ = require('jquery'); } catch (e) {}\n factory(root, exports, _, $);\n\n // Finally, as a browser global.\n } else {\n root.Backbone = factory(root, {}, root._, root.jQuery || root.Zepto || root.ender || root.$);\n }\n\n})(function(root, Backbone, _, $) {\n\n // Initial Setup\n // -------------\n\n // Save the previous value of the `Backbone` variable, so that it can be\n // restored later on, if `noConflict` is used.\n var previousBackbone = root.Backbone;\n\n // Create a local reference to a common array method we'll want to use later.\n var slice = Array.prototype.slice;\n\n // Current version of the library. Keep in sync with `package.json`.\n Backbone.VERSION = '1.4.1';\n\n // For Backbone's purposes, jQuery, Zepto, Ender, or My Library (kidding) owns\n // the `$` variable.\n Backbone.$ = $;\n\n // Runs Backbone.js in *noConflict* mode, returning the `Backbone` variable\n // to its previous owner. Returns a reference to this Backbone object.\n Backbone.noConflict = function() {\n root.Backbone = previousBackbone;\n return this;\n };\n\n // Turn on `emulateHTTP` to support legacy HTTP servers. Setting this option\n // will fake `\"PATCH\"`, `\"PUT\"` and `\"DELETE\"` requests via the `_method` parameter and\n // set a `X-Http-Method-Override` header.\n Backbone.emulateHTTP = false;\n\n // Turn on `emulateJSON` to support legacy servers that can't deal with direct\n // `application/json` requests ... this will encode the body as\n // `application/x-www-form-urlencoded` instead and will send the model in a\n // form param named `model`.\n Backbone.emulateJSON = false;\n\n // Backbone.Events\n // ---------------\n\n // A module that can be mixed in to *any object* in order to provide it with\n // a custom event channel. You may bind a callback to an event with `on` or\n // remove with `off`; `trigger`-ing an event fires all callbacks in\n // succession.\n //\n // var object = {};\n // _.extend(object, Backbone.Events);\n // object.on('expand', function(){ alert('expanded'); });\n // object.trigger('expand');\n //\n var Events = Backbone.Events = {};\n\n // Regular expression used to split event strings.\n var eventSplitter = /\\s+/;\n\n // A private global variable to share between listeners and listenees.\n var _listening;\n\n // Iterates over the standard `event, callback` (as well as the fancy multiple\n // space-separated events `\"change blur\", callback` and jQuery-style event\n // maps `{event: callback}`).\n var eventsApi = function(iteratee, events, name, callback, opts) {\n var i = 0, names;\n if (name && typeof name === 'object') {\n // Handle event maps.\n if (callback !== void 0 && 'context' in opts && opts.context === void 0) opts.context = callback;\n for (names = _.keys(name); i < names.length ; i++) {\n events = eventsApi(iteratee, events, names[i], name[names[i]], opts);\n }\n } else if (name && eventSplitter.test(name)) {\n // Handle space-separated event names by delegating them individually.\n for (names = name.split(eventSplitter); i < names.length; i++) {\n events = iteratee(events, names[i], callback, opts);\n }\n } else {\n // Finally, standard events.\n events = iteratee(events, name, callback, opts);\n }\n return events;\n };\n\n // Bind an event to a `callback` function. Passing `\"all\"` will bind\n // the callback to all events fired.\n Events.on = function(name, callback, context) {\n this._events = eventsApi(onApi, this._events || {}, name, callback, {\n context: context,\n ctx: this,\n listening: _listening\n });\n\n if (_listening) {\n var listeners = this._listeners || (this._listeners = {});\n listeners[_listening.id] = _listening;\n // Allow the listening to use a counter, instead of tracking\n // callbacks for library interop\n _listening.interop = false;\n }\n\n return this;\n };\n\n // Inversion-of-control versions of `on`. Tell *this* object to listen to\n // an event in another object... keeping track of what it's listening to\n // for easier unbinding later.\n Events.listenTo = function(obj, name, callback) {\n if (!obj) return this;\n var id = obj._listenId || (obj._listenId = _.uniqueId('l'));\n var listeningTo = this._listeningTo || (this._listeningTo = {});\n var listening = _listening = listeningTo[id];\n\n // This object is not listening to any other events on `obj` yet.\n // Setup the necessary references to track the listening callbacks.\n if (!listening) {\n this._listenId || (this._listenId = _.uniqueId('l'));\n listening = _listening = listeningTo[id] = new Listening(this, obj);\n }\n\n // Bind callbacks on obj.\n var error = tryCatchOn(obj, name, callback, this);\n _listening = void 0;\n\n if (error) throw error;\n // If the target obj is not Backbone.Events, track events manually.\n if (listening.interop) listening.on(name, callback);\n\n return this;\n };\n\n // The reducing API that adds a callback to the `events` object.\n var onApi = function(events, name, callback, options) {\n if (callback) {\n var handlers = events[name] || (events[name] = []);\n var context = options.context, ctx = options.ctx, listening = options.listening;\n if (listening) listening.count++;\n\n handlers.push({callback: callback, context: context, ctx: context || ctx, listening: listening});\n }\n return events;\n };\n\n // An try-catch guarded #on function, to prevent poisoning the global\n // `_listening` variable.\n var tryCatchOn = function(obj, name, callback, context) {\n try {\n obj.on(name, callback, context);\n } catch (e) {\n return e;\n }\n };\n\n // Remove one or many callbacks. If `context` is null, removes all\n // callbacks with that function. If `callback` is null, removes all\n // callbacks for the event. If `name` is null, removes all bound\n // callbacks for all events.\n Events.off = function(name, callback, context) {\n if (!this._events) return this;\n this._events = eventsApi(offApi, this._events, name, callback, {\n context: context,\n listeners: this._listeners\n });\n\n return this;\n };\n\n // Tell this object to stop listening to either specific events ... or\n // to every object it's currently listening to.\n Events.stopListening = function(obj, name, callback) {\n var listeningTo = this._listeningTo;\n if (!listeningTo) return this;\n\n var ids = obj ? [obj._listenId] : _.keys(listeningTo);\n for (var i = 0; i < ids.length; i++) {\n var listening = listeningTo[ids[i]];\n\n // If listening doesn't exist, this object is not currently\n // listening to obj. Break out early.\n if (!listening) break;\n\n listening.obj.off(name, callback, this);\n if (listening.interop) listening.off(name, callback);\n }\n if (_.isEmpty(listeningTo)) this._listeningTo = void 0;\n\n return this;\n };\n\n // The reducing API that removes a callback from the `events` object.\n var offApi = function(events, name, callback, options) {\n if (!events) return;\n\n var context = options.context, listeners = options.listeners;\n var i = 0, names;\n\n // Delete all event listeners and \"drop\" events.\n if (!name && !context && !callback) {\n for (names = _.keys(listeners); i < names.length; i++) {\n listeners[names[i]].cleanup();\n }\n return;\n }\n\n names = name ? [name] : _.keys(events);\n for (; i < names.length; i++) {\n name = names[i];\n var handlers = events[name];\n\n // Bail out if there are no events stored.\n if (!handlers) break;\n\n // Find any remaining events.\n var remaining = [];\n for (var j = 0; j < handlers.length; j++) {\n var handler = handlers[j];\n if (\n callback && callback !== handler.callback &&\n callback !== handler.callback._callback ||\n context && context !== handler.context\n ) {\n remaining.push(handler);\n } else {\n var listening = handler.listening;\n if (listening) listening.off(name, callback);\n }\n }\n\n // Replace events if there are any remaining. Otherwise, clean up.\n if (remaining.length) {\n events[name] = remaining;\n } else {\n delete events[name];\n }\n }\n\n return events;\n };\n\n // Bind an event to only be triggered a single time. After the first time\n // the callback is invoked, its listener will be removed. If multiple events\n // are passed in using the space-separated syntax, the handler will fire\n // once for each event, not once for a combination of all events.\n Events.once = function(name, callback, context) {\n // Map the event into a `{event: once}` object.\n var events = eventsApi(onceMap, {}, name, callback, this.off.bind(this));\n if (typeof name === 'string' && context == null) callback = void 0;\n return this.on(events, callback, context);\n };\n\n // Inversion-of-control versions of `once`.\n Events.listenToOnce = function(obj, name, callback) {\n // Map the event into a `{event: once}` object.\n var events = eventsApi(onceMap, {}, name, callback, this.stopListening.bind(this, obj));\n return this.listenTo(obj, events);\n };\n\n // Reduces the event callbacks into a map of `{event: onceWrapper}`.\n // `offer` unbinds the `onceWrapper` after it has been called.\n var onceMap = function(map, name, callback, offer) {\n if (callback) {\n var once = map[name] = _.once(function() {\n offer(name, once);\n callback.apply(this, arguments);\n });\n once._callback = callback;\n }\n return map;\n };\n\n // Trigger one or many events, firing all bound callbacks. Callbacks are\n // passed the same arguments as `trigger` is, apart from the event name\n // (unless you're listening on `\"all\"`, which will cause your callback to\n // receive the true name of the event as the first argument).\n Events.trigger = function(name) {\n if (!this._events) return this;\n\n var length = Math.max(0, arguments.length - 1);\n var args = Array(length);\n for (var i = 0; i < length; i++) args[i] = arguments[i + 1];\n\n eventsApi(triggerApi, this._events, name, void 0, args);\n return this;\n };\n\n // Handles triggering the appropriate event callbacks.\n var triggerApi = function(objEvents, name, callback, args) {\n if (objEvents) {\n var events = objEvents[name];\n var allEvents = objEvents.all;\n if (events && allEvents) allEvents = allEvents.slice();\n if (events) triggerEvents(events, args);\n if (allEvents) triggerEvents(allEvents, [name].concat(args));\n }\n return objEvents;\n };\n\n // A difficult-to-believe, but optimized internal dispatch function for\n // triggering events. Tries to keep the usual cases speedy (most internal\n // Backbone events have 3 arguments).\n var triggerEvents = function(events, args) {\n var ev, i = -1, l = events.length, a1 = args[0], a2 = args[1], a3 = args[2];\n switch (args.length) {\n case 0: while (++i < l) (ev = events[i]).callback.call(ev.ctx); return;\n case 1: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1); return;\n case 2: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2); return;\n case 3: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2, a3); return;\n default: while (++i < l) (ev = events[i]).callback.apply(ev.ctx, args); return;\n }\n };\n\n // A listening class that tracks and cleans up memory bindings\n // when all callbacks have been offed.\n var Listening = function(listener, obj) {\n this.id = listener._listenId;\n this.listener = listener;\n this.obj = obj;\n this.interop = true;\n this.count = 0;\n this._events = void 0;\n };\n\n Listening.prototype.on = Events.on;\n\n // Offs a callback (or several).\n // Uses an optimized counter if the listenee uses Backbone.Events.\n // Otherwise, falls back to manual tracking to support events\n // library interop.\n Listening.prototype.off = function(name, callback) {\n var cleanup;\n if (this.interop) {\n this._events = eventsApi(offApi, this._events, name, callback, {\n context: void 0,\n listeners: void 0\n });\n cleanup = !this._events;\n } else {\n this.count--;\n cleanup = this.count === 0;\n }\n if (cleanup) this.cleanup();\n };\n\n // Cleans up memory bindings between the listener and the listenee.\n Listening.prototype.cleanup = function() {\n delete this.listener._listeningTo[this.obj._listenId];\n if (!this.interop) delete this.obj._listeners[this.id];\n };\n\n // Aliases for backwards compatibility.\n Events.bind = Events.on;\n Events.unbind = Events.off;\n\n // Allow the `Backbone` object to serve as a global event bus, for folks who\n // want global \"pubsub\" in a convenient place.\n _.extend(Backbone, Events);\n\n // Backbone.Model\n // --------------\n\n // Backbone **Models** are the basic data object in the framework --\n // frequently representing a row in a table in a database on your server.\n // A discrete chunk of data and a bunch of useful, related methods for\n // performing computations and transformations on that data.\n\n // Create a new model with the specified attributes. A client id (`cid`)\n // is automatically generated and assigned for you.\n var Model = Backbone.Model = function(attributes, options) {\n var attrs = attributes || {};\n options || (options = {});\n this.preinitialize.apply(this, arguments);\n this.cid = _.uniqueId(this.cidPrefix);\n this.attributes = {};\n if (options.collection) this.collection = options.collection;\n if (options.parse) attrs = this.parse(attrs, options) || {};\n var defaults = _.result(this, 'defaults');\n attrs = _.defaults(_.extend({}, defaults, attrs), defaults);\n this.set(attrs, options);\n this.changed = {};\n this.initialize.apply(this, arguments);\n };\n\n // Attach all inheritable methods to the Model prototype.\n _.extend(Model.prototype, Events, {\n\n // A hash of attributes whose current and previous value differ.\n changed: null,\n\n // The value returned during the last failed validation.\n validationError: null,\n\n // The default name for the JSON `id` attribute is `\"id\"`. MongoDB and\n // CouchDB users may want to set this to `\"_id\"`.\n idAttribute: 'id',\n\n // The prefix is used to create the client id which is used to identify models locally.\n // You may want to override this if you're experiencing name clashes with model ids.\n cidPrefix: 'c',\n\n // preinitialize is an empty function by default. You can override it with a function\n // or object. preinitialize will run before any instantiation logic is run in the Model.\n preinitialize: function(){},\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // Return a copy of the model's `attributes` object.\n toJSON: function(options) {\n return _.clone(this.attributes);\n },\n\n // Proxy `Backbone.sync` by default -- but override this if you need\n // custom syncing semantics for *this* particular model.\n sync: function() {\n return Backbone.sync.apply(this, arguments);\n },\n\n // Get the value of an attribute.\n get: function(attr) {\n return this.attributes[attr];\n },\n\n // Get the HTML-escaped value of an attribute.\n escape: function(attr) {\n return _.escape(this.get(attr));\n },\n\n // Returns `true` if the attribute contains a value that is not null\n // or undefined.\n has: function(attr) {\n return this.get(attr) != null;\n },\n\n // Special-cased proxy to underscore's `_.matches` method.\n matches: function(attrs) {\n return !!_.iteratee(attrs, this)(this.attributes);\n },\n\n // Set a hash of model attributes on the object, firing `\"change\"`. This is\n // the core primitive operation of a model, updating the data and notifying\n // anyone who needs to know about the change in state. The heart of the beast.\n set: function(key, val, options) {\n if (key == null) return this;\n\n // Handle both `\"key\", value` and `{key: value}` -style arguments.\n var attrs;\n if (typeof key === 'object') {\n attrs = key;\n options = val;\n } else {\n (attrs = {})[key] = val;\n }\n\n options || (options = {});\n\n // Run validation.\n if (!this._validate(attrs, options)) return false;\n\n // Extract attributes and options.\n var unset = options.unset;\n var silent = options.silent;\n var changes = [];\n var changing = this._changing;\n this._changing = true;\n\n if (!changing) {\n this._previousAttributes = _.clone(this.attributes);\n this.changed = {};\n }\n\n var current = this.attributes;\n var changed = this.changed;\n var prev = this._previousAttributes;\n\n // For each `set` attribute, update or delete the current value.\n for (var attr in attrs) {\n val = attrs[attr];\n if (!_.isEqual(current[attr], val)) changes.push(attr);\n if (!_.isEqual(prev[attr], val)) {\n changed[attr] = val;\n } else {\n delete changed[attr];\n }\n unset ? delete current[attr] : current[attr] = val;\n }\n\n // Update the `id`.\n if (this.idAttribute in attrs) {\n var prevId = this.id;\n this.id = this.get(this.idAttribute);\n this.trigger('changeId', this, prevId, options);\n }\n\n // Trigger all relevant attribute changes.\n if (!silent) {\n if (changes.length) this._pending = options;\n for (var i = 0; i < changes.length; i++) {\n this.trigger('change:' + changes[i], this, current[changes[i]], options);\n }\n }\n\n // You might be wondering why there's a `while` loop here. Changes can\n // be recursively nested within `\"change\"` events.\n if (changing) return this;\n if (!silent) {\n while (this._pending) {\n options = this._pending;\n this._pending = false;\n this.trigger('change', this, options);\n }\n }\n this._pending = false;\n this._changing = false;\n return this;\n },\n\n // Remove an attribute from the model, firing `\"change\"`. `unset` is a noop\n // if the attribute doesn't exist.\n unset: function(attr, options) {\n return this.set(attr, void 0, _.extend({}, options, {unset: true}));\n },\n\n // Clear all attributes on the model, firing `\"change\"`.\n clear: function(options) {\n var attrs = {};\n for (var key in this.attributes) attrs[key] = void 0;\n return this.set(attrs, _.extend({}, options, {unset: true}));\n },\n\n // Determine if the model has changed since the last `\"change\"` event.\n // If you specify an attribute name, determine if that attribute has changed.\n hasChanged: function(attr) {\n if (attr == null) return !_.isEmpty(this.changed);\n return _.has(this.changed, attr);\n },\n\n // Return an object containing all the attributes that have changed, or\n // false if there are no changed attributes. Useful for determining what\n // parts of a view need to be updated and/or what attributes need to be\n // persisted to the server. Unset attributes will be set to undefined.\n // You can also pass an attributes object to diff against the model,\n // determining if there *would be* a change.\n changedAttributes: function(diff) {\n if (!diff) return this.hasChanged() ? _.clone(this.changed) : false;\n var old = this._changing ? this._previousAttributes : this.attributes;\n var changed = {};\n var hasChanged;\n for (var attr in diff) {\n var val = diff[attr];\n if (_.isEqual(old[attr], val)) continue;\n changed[attr] = val;\n hasChanged = true;\n }\n return hasChanged ? changed : false;\n },\n\n // Get the previous value of an attribute, recorded at the time the last\n // `\"change\"` event was fired.\n previous: function(attr) {\n if (attr == null || !this._previousAttributes) return null;\n return this._previousAttributes[attr];\n },\n\n // Get all of the attributes of the model at the time of the previous\n // `\"change\"` event.\n previousAttributes: function() {\n return _.clone(this._previousAttributes);\n },\n\n // Fetch the model from the server, merging the response with the model's\n // local attributes. Any changed attributes will trigger a \"change\" event.\n fetch: function(options) {\n options = _.extend({parse: true}, options);\n var model = this;\n var success = options.success;\n options.success = function(resp) {\n var serverAttrs = options.parse ? model.parse(resp, options) : resp;\n if (!model.set(serverAttrs, options)) return false;\n if (success) success.call(options.context, model, resp, options);\n model.trigger('sync', model, resp, options);\n };\n wrapError(this, options);\n return this.sync('read', this, options);\n },\n\n // Set a hash of model attributes, and sync the model to the server.\n // If the server returns an attributes hash that differs, the model's\n // state will be `set` again.\n save: function(key, val, options) {\n // Handle both `\"key\", value` and `{key: value}` -style arguments.\n var attrs;\n if (key == null || typeof key === 'object') {\n attrs = key;\n options = val;\n } else {\n (attrs = {})[key] = val;\n }\n\n options = _.extend({validate: true, parse: true}, options);\n var wait = options.wait;\n\n // If we're not waiting and attributes exist, save acts as\n // `set(attr).save(null, opts)` with validation. Otherwise, check if\n // the model will be valid when the attributes, if any, are set.\n if (attrs && !wait) {\n if (!this.set(attrs, options)) return false;\n } else if (!this._validate(attrs, options)) {\n return false;\n }\n\n // After a successful server-side save, the client is (optionally)\n // updated with the server-side state.\n var model = this;\n var success = options.success;\n var attributes = this.attributes;\n options.success = function(resp) {\n // Ensure attributes are restored during synchronous saves.\n model.attributes = attributes;\n var serverAttrs = options.parse ? model.parse(resp, options) : resp;\n if (wait) serverAttrs = _.extend({}, attrs, serverAttrs);\n if (serverAttrs && !model.set(serverAttrs, options)) return false;\n if (success) success.call(options.context, model, resp, options);\n model.trigger('sync', model, resp, options);\n };\n wrapError(this, options);\n\n // Set temporary attributes if `{wait: true}` to properly find new ids.\n if (attrs && wait) this.attributes = _.extend({}, attributes, attrs);\n\n var method = this.isNew() ? 'create' : options.patch ? 'patch' : 'update';\n if (method === 'patch' && !options.attrs) options.attrs = attrs;\n var xhr = this.sync(method, this, options);\n\n // Restore attributes.\n this.attributes = attributes;\n\n return xhr;\n },\n\n // Destroy this model on the server if it was already persisted.\n // Optimistically removes the model from its collection, if it has one.\n // If `wait: true` is passed, waits for the server to respond before removal.\n destroy: function(options) {\n options = options ? _.clone(options) : {};\n var model = this;\n var success = options.success;\n var wait = options.wait;\n\n var destroy = function() {\n model.stopListening();\n model.trigger('destroy', model, model.collection, options);\n };\n\n options.success = function(resp) {\n if (wait) destroy();\n if (success) success.call(options.context, model, resp, options);\n if (!model.isNew()) model.trigger('sync', model, resp, options);\n };\n\n var xhr = false;\n if (this.isNew()) {\n _.defer(options.success);\n } else {\n wrapError(this, options);\n xhr = this.sync('delete', this, options);\n }\n if (!wait) destroy();\n return xhr;\n },\n\n // Default URL for the model's representation on the server -- if you're\n // using Backbone's restful methods, override this to change the endpoint\n // that will be called.\n url: function() {\n var base =\n _.result(this, 'urlRoot') ||\n _.result(this.collection, 'url') ||\n urlError();\n if (this.isNew()) return base;\n var id = this.get(this.idAttribute);\n return base.replace(/[^\\/]$/, '$&/') + encodeURIComponent(id);\n },\n\n // **parse** converts a response into the hash of attributes to be `set` on\n // the model. The default implementation is just to pass the response along.\n parse: function(resp, options) {\n return resp;\n },\n\n // Create a new model with identical attributes to this one.\n clone: function() {\n return new this.constructor(this.attributes);\n },\n\n // A model is new if it has never been saved to the server, and lacks an id.\n isNew: function() {\n return !this.has(this.idAttribute);\n },\n\n // Check if the model is currently in a valid state.\n isValid: function(options) {\n return this._validate({}, _.extend({}, options, {validate: true}));\n },\n\n // Run validation against the next complete set of model attributes,\n // returning `true` if all is well. Otherwise, fire an `\"invalid\"` event.\n _validate: function(attrs, options) {\n if (!options.validate || !this.validate) return true;\n attrs = _.extend({}, this.attributes, attrs);\n var error = this.validationError = this.validate(attrs, options) || null;\n if (!error) return true;\n this.trigger('invalid', this, error, _.extend(options, {validationError: error}));\n return false;\n }\n\n });\n\n // Backbone.Collection\n // -------------------\n\n // If models tend to represent a single row of data, a Backbone Collection is\n // more analogous to a table full of data ... or a small slice or page of that\n // table, or a collection of rows that belong together for a particular reason\n // -- all of the messages in this particular folder, all of the documents\n // belonging to this particular author, and so on. Collections maintain\n // indexes of their models, both in order, and for lookup by `id`.\n\n // Create a new **Collection**, perhaps to contain a specific type of `model`.\n // If a `comparator` is specified, the Collection will maintain\n // its models in sort order, as they're added and removed.\n var Collection = Backbone.Collection = function(models, options) {\n options || (options = {});\n this.preinitialize.apply(this, arguments);\n if (options.model) this.model = options.model;\n if (options.comparator !== void 0) this.comparator = options.comparator;\n this._reset();\n this.initialize.apply(this, arguments);\n if (models) this.reset(models, _.extend({silent: true}, options));\n };\n\n // Default options for `Collection#set`.\n var setOptions = {add: true, remove: true, merge: true};\n var addOptions = {add: true, remove: false};\n\n // Splices `insert` into `array` at index `at`.\n var splice = function(array, insert, at) {\n at = Math.min(Math.max(at, 0), array.length);\n var tail = Array(array.length - at);\n var length = insert.length;\n var i;\n for (i = 0; i < tail.length; i++) tail[i] = array[i + at];\n for (i = 0; i < length; i++) array[i + at] = insert[i];\n for (i = 0; i < tail.length; i++) array[i + length + at] = tail[i];\n };\n\n // Define the Collection's inheritable methods.\n _.extend(Collection.prototype, Events, {\n\n // The default model for a collection is just a **Backbone.Model**.\n // This should be overridden in most cases.\n model: Model,\n\n\n // preinitialize is an empty function by default. You can override it with a function\n // or object. preinitialize will run before any instantiation logic is run in the Collection.\n preinitialize: function(){},\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // The JSON representation of a Collection is an array of the\n // models' attributes.\n toJSON: function(options) {\n return this.map(function(model) { return model.toJSON(options); });\n },\n\n // Proxy `Backbone.sync` by default.\n sync: function() {\n return Backbone.sync.apply(this, arguments);\n },\n\n // Add a model, or list of models to the set. `models` may be Backbone\n // Models or raw JavaScript objects to be converted to Models, or any\n // combination of the two.\n add: function(models, options) {\n return this.set(models, _.extend({merge: false}, options, addOptions));\n },\n\n // Remove a model, or a list of models from the set.\n remove: function(models, options) {\n options = _.extend({}, options);\n var singular = !_.isArray(models);\n models = singular ? [models] : models.slice();\n var removed = this._removeModels(models, options);\n if (!options.silent && removed.length) {\n options.changes = {added: [], merged: [], removed: removed};\n this.trigger('update', this, options);\n }\n return singular ? removed[0] : removed;\n },\n\n // Update a collection by `set`-ing a new list of models, adding new ones,\n // removing models that are no longer present, and merging models that\n // already exist in the collection, as necessary. Similar to **Model#set**,\n // the core operation for updating the data contained by the collection.\n set: function(models, options) {\n if (models == null) return;\n\n options = _.extend({}, setOptions, options);\n if (options.parse && !this._isModel(models)) {\n models = this.parse(models, options) || [];\n }\n\n var singular = !_.isArray(models);\n models = singular ? [models] : models.slice();\n\n var at = options.at;\n if (at != null) at = +at;\n if (at > this.length) at = this.length;\n if (at < 0) at += this.length + 1;\n\n var set = [];\n var toAdd = [];\n var toMerge = [];\n var toRemove = [];\n var modelMap = {};\n\n var add = options.add;\n var merge = options.merge;\n var remove = options.remove;\n\n var sort = false;\n var sortable = this.comparator && at == null && options.sort !== false;\n var sortAttr = _.isString(this.comparator) ? this.comparator : null;\n\n // Turn bare objects into model references, and prevent invalid models\n // from being added.\n var model, i;\n for (i = 0; i < models.length; i++) {\n model = models[i];\n\n // If a duplicate is found, prevent it from being added and\n // optionally merge it into the existing model.\n var existing = this.get(model);\n if (existing) {\n if (merge && model !== existing) {\n var attrs = this._isModel(model) ? model.attributes : model;\n if (options.parse) attrs = existing.parse(attrs, options);\n existing.set(attrs, options);\n toMerge.push(existing);\n if (sortable && !sort) sort = existing.hasChanged(sortAttr);\n }\n if (!modelMap[existing.cid]) {\n modelMap[existing.cid] = true;\n set.push(existing);\n }\n models[i] = existing;\n\n // If this is a new, valid model, push it to the `toAdd` list.\n } else if (add) {\n model = models[i] = this._prepareModel(model, options);\n if (model) {\n toAdd.push(model);\n this._addReference(model, options);\n modelMap[model.cid] = true;\n set.push(model);\n }\n }\n }\n\n // Remove stale models.\n if (remove) {\n for (i = 0; i < this.length; i++) {\n model = this.models[i];\n if (!modelMap[model.cid]) toRemove.push(model);\n }\n if (toRemove.length) this._removeModels(toRemove, options);\n }\n\n // See if sorting is needed, update `length` and splice in new models.\n var orderChanged = false;\n var replace = !sortable && add && remove;\n if (set.length && replace) {\n orderChanged = this.length !== set.length || _.some(this.models, function(m, index) {\n return m !== set[index];\n });\n this.models.length = 0;\n splice(this.models, set, 0);\n this.length = this.models.length;\n } else if (toAdd.length) {\n if (sortable) sort = true;\n splice(this.models, toAdd, at == null ? this.length : at);\n this.length = this.models.length;\n }\n\n // Silently sort the collection if appropriate.\n if (sort) this.sort({silent: true});\n\n // Unless silenced, it's time to fire all appropriate add/sort/update events.\n if (!options.silent) {\n for (i = 0; i < toAdd.length; i++) {\n if (at != null) options.index = at + i;\n model = toAdd[i];\n model.trigger('add', model, this, options);\n }\n if (sort || orderChanged) this.trigger('sort', this, options);\n if (toAdd.length || toRemove.length || toMerge.length) {\n options.changes = {\n added: toAdd,\n removed: toRemove,\n merged: toMerge\n };\n this.trigger('update', this, options);\n }\n }\n\n // Return the added (or merged) model (or models).\n return singular ? models[0] : models;\n },\n\n // When you have more items than you want to add or remove individually,\n // you can reset the entire set with a new list of models, without firing\n // any granular `add` or `remove` events. Fires `reset` when finished.\n // Useful for bulk operations and optimizations.\n reset: function(models, options) {\n options = options ? _.clone(options) : {};\n for (var i = 0; i < this.models.length; i++) {\n this._removeReference(this.models[i], options);\n }\n options.previousModels = this.models;\n this._reset();\n models = this.add(models, _.extend({silent: true}, options));\n if (!options.silent) this.trigger('reset', this, options);\n return models;\n },\n\n // Add a model to the end of the collection.\n push: function(model, options) {\n return this.add(model, _.extend({at: this.length}, options));\n },\n\n // Remove a model from the end of the collection.\n pop: function(options) {\n var model = this.at(this.length - 1);\n return this.remove(model, options);\n },\n\n // Add a model to the beginning of the collection.\n unshift: function(model, options) {\n return this.add(model, _.extend({at: 0}, options));\n },\n\n // Remove a model from the beginning of the collection.\n shift: function(options) {\n var model = this.at(0);\n return this.remove(model, options);\n },\n\n // Slice out a sub-array of models from the collection.\n slice: function() {\n return slice.apply(this.models, arguments);\n },\n\n // Get a model from the set by id, cid, model object with id or cid\n // properties, or an attributes object that is transformed through modelId.\n get: function(obj) {\n if (obj == null) return void 0;\n return this._byId[obj] ||\n this._byId[this.modelId(this._isModel(obj) ? obj.attributes : obj, obj.idAttribute)] ||\n obj.cid && this._byId[obj.cid];\n },\n\n // Returns `true` if the model is in the collection.\n has: function(obj) {\n return this.get(obj) != null;\n },\n\n // Get the model at the given index.\n at: function(index) {\n if (index < 0) index += this.length;\n return this.models[index];\n },\n\n // Return models with matching attributes. Useful for simple cases of\n // `filter`.\n where: function(attrs, first) {\n return this[first ? 'find' : 'filter'](attrs);\n },\n\n // Return the first model with matching attributes. Useful for simple cases\n // of `find`.\n findWhere: function(attrs) {\n return this.where(attrs, true);\n },\n\n // Force the collection to re-sort itself. You don't need to call this under\n // normal circumstances, as the set will maintain sort order as each item\n // is added.\n sort: function(options) {\n var comparator = this.comparator;\n if (!comparator) throw new Error('Cannot sort a set without a comparator');\n options || (options = {});\n\n var length = comparator.length;\n if (_.isFunction(comparator)) comparator = comparator.bind(this);\n\n // Run sort based on type of `comparator`.\n if (length === 1 || _.isString(comparator)) {\n this.models = this.sortBy(comparator);\n } else {\n this.models.sort(comparator);\n }\n if (!options.silent) this.trigger('sort', this, options);\n return this;\n },\n\n // Pluck an attribute from each model in the collection.\n pluck: function(attr) {\n return this.map(attr + '');\n },\n\n // Fetch the default set of models for this collection, resetting the\n // collection when they arrive. If `reset: true` is passed, the response\n // data will be passed through the `reset` method instead of `set`.\n fetch: function(options) {\n options = _.extend({parse: true}, options);\n var success = options.success;\n var collection = this;\n options.success = function(resp) {\n var method = options.reset ? 'reset' : 'set';\n collection[method](resp, options);\n if (success) success.call(options.context, collection, resp, options);\n collection.trigger('sync', collection, resp, options);\n };\n wrapError(this, options);\n return this.sync('read', this, options);\n },\n\n // Create a new instance of a model in this collection. Add the model to the\n // collection immediately, unless `wait: true` is passed, in which case we\n // wait for the server to agree.\n create: function(model, options) {\n options = options ? _.clone(options) : {};\n var wait = options.wait;\n model = this._prepareModel(model, options);\n if (!model) return false;\n if (!wait) this.add(model, options);\n var collection = this;\n var success = options.success;\n options.success = function(m, resp, callbackOpts) {\n if (wait) collection.add(m, callbackOpts);\n if (success) success.call(callbackOpts.context, m, resp, callbackOpts);\n };\n model.save(null, options);\n return model;\n },\n\n // **parse** converts a response into a list of models to be added to the\n // collection. The default implementation is just to pass it through.\n parse: function(resp, options) {\n return resp;\n },\n\n // Create a new collection with an identical list of models as this one.\n clone: function() {\n return new this.constructor(this.models, {\n model: this.model,\n comparator: this.comparator\n });\n },\n\n // Define how to uniquely identify models in the collection.\n modelId: function(attrs, idAttribute) {\n return attrs[idAttribute || this.model.prototype.idAttribute || 'id'];\n },\n\n // Get an iterator of all models in this collection.\n values: function() {\n return new CollectionIterator(this, ITERATOR_VALUES);\n },\n\n // Get an iterator of all model IDs in this collection.\n keys: function() {\n return new CollectionIterator(this, ITERATOR_KEYS);\n },\n\n // Get an iterator of all [ID, model] tuples in this collection.\n entries: function() {\n return new CollectionIterator(this, ITERATOR_KEYSVALUES);\n },\n\n // Private method to reset all internal state. Called when the collection\n // is first initialized or reset.\n _reset: function() {\n this.length = 0;\n this.models = [];\n this._byId = {};\n },\n\n // Prepare a hash of attributes (or other model) to be added to this\n // collection.\n _prepareModel: function(attrs, options) {\n if (this._isModel(attrs)) {\n if (!attrs.collection) attrs.collection = this;\n return attrs;\n }\n options = options ? _.clone(options) : {};\n options.collection = this;\n\n var model;\n if (this.model.prototype) {\n model = new this.model(attrs, options);\n } else {\n // ES class methods didn't have prototype\n model = this.model(attrs, options);\n }\n\n if (!model.validationError) return model;\n this.trigger('invalid', this, model.validationError, options);\n return false;\n },\n\n // Internal method called by both remove and set.\n _removeModels: function(models, options) {\n var removed = [];\n for (var i = 0; i < models.length; i++) {\n var model = this.get(models[i]);\n if (!model) continue;\n\n var index = this.indexOf(model);\n this.models.splice(index, 1);\n this.length--;\n\n // Remove references before triggering 'remove' event to prevent an\n // infinite loop. #3693\n delete this._byId[model.cid];\n var id = this.modelId(model.attributes, model.idAttribute);\n if (id != null) delete this._byId[id];\n\n if (!options.silent) {\n options.index = index;\n model.trigger('remove', model, this, options);\n }\n\n removed.push(model);\n this._removeReference(model, options);\n }\n return removed;\n },\n\n // Method for checking whether an object should be considered a model for\n // the purposes of adding to the collection.\n _isModel: function(model) {\n return model instanceof Model;\n },\n\n // Internal method to create a model's ties to a collection.\n _addReference: function(model, options) {\n this._byId[model.cid] = model;\n var id = this.modelId(model.attributes, model.idAttribute);\n if (id != null) this._byId[id] = model;\n model.on('all', this._onModelEvent, this);\n },\n\n // Internal method to sever a model's ties to a collection.\n _removeReference: function(model, options) {\n delete this._byId[model.cid];\n var id = this.modelId(model.attributes, model.idAttribute);\n if (id != null) delete this._byId[id];\n if (this === model.collection) delete model.collection;\n model.off('all', this._onModelEvent, this);\n },\n\n // Internal method called every time a model in the set fires an event.\n // Sets need to update their indexes when models change ids. All other\n // events simply proxy through. \"add\" and \"remove\" events that originate\n // in other collections are ignored.\n _onModelEvent: function(event, model, collection, options) {\n if (model) {\n if ((event === 'add' || event === 'remove') && collection !== this) return;\n if (event === 'destroy') this.remove(model, options);\n if (event === 'changeId') {\n var prevId = this.modelId(model.previousAttributes(), model.idAttribute);\n var id = this.modelId(model.attributes, model.idAttribute);\n if (prevId != null) delete this._byId[prevId];\n if (id != null) this._byId[id] = model;\n }\n }\n this.trigger.apply(this, arguments);\n }\n\n });\n\n // Defining an @@iterator method implements JavaScript's Iterable protocol.\n // In modern ES2015 browsers, this value is found at Symbol.iterator.\n /* global Symbol */\n var $$iterator = typeof Symbol === 'function' && Symbol.iterator;\n if ($$iterator) {\n Collection.prototype[$$iterator] = Collection.prototype.values;\n }\n\n // CollectionIterator\n // ------------------\n\n // A CollectionIterator implements JavaScript's Iterator protocol, allowing the\n // use of `for of` loops in modern browsers and interoperation between\n // Backbone.Collection and other JavaScript functions and third-party libraries\n // which can operate on Iterables.\n var CollectionIterator = function(collection, kind) {\n this._collection = collection;\n this._kind = kind;\n this._index = 0;\n };\n\n // This \"enum\" defines the three possible kinds of values which can be emitted\n // by a CollectionIterator that correspond to the values(), keys() and entries()\n // methods on Collection, respectively.\n var ITERATOR_VALUES = 1;\n var ITERATOR_KEYS = 2;\n var ITERATOR_KEYSVALUES = 3;\n\n // All Iterators should themselves be Iterable.\n if ($$iterator) {\n CollectionIterator.prototype[$$iterator] = function() {\n return this;\n };\n }\n\n CollectionIterator.prototype.next = function() {\n if (this._collection) {\n\n // Only continue iterating if the iterated collection is long enough.\n if (this._index < this._collection.length) {\n var model = this._collection.at(this._index);\n this._index++;\n\n // Construct a value depending on what kind of values should be iterated.\n var value;\n if (this._kind === ITERATOR_VALUES) {\n value = model;\n } else {\n var id = this._collection.modelId(model.attributes, model.idAttribute);\n if (this._kind === ITERATOR_KEYS) {\n value = id;\n } else { // ITERATOR_KEYSVALUES\n value = [id, model];\n }\n }\n return {value: value, done: false};\n }\n\n // Once exhausted, remove the reference to the collection so future\n // calls to the next method always return done.\n this._collection = void 0;\n }\n\n return {value: void 0, done: true};\n };\n\n // Backbone.View\n // -------------\n\n // Backbone Views are almost more convention than they are actual code. A View\n // is simply a JavaScript object that represents a logical chunk of UI in the\n // DOM. This might be a single item, an entire list, a sidebar or panel, or\n // even the surrounding frame which wraps your whole app. Defining a chunk of\n // UI as a **View** allows you to define your DOM events declaratively, without\n // having to worry about render order ... and makes it easy for the view to\n // react to specific changes in the state of your models.\n\n // Creating a Backbone.View creates its initial element outside of the DOM,\n // if an existing element is not provided...\n var View = Backbone.View = function(options) {\n this.cid = _.uniqueId('view');\n this.preinitialize.apply(this, arguments);\n _.extend(this, _.pick(options, viewOptions));\n this._ensureElement();\n this.initialize.apply(this, arguments);\n };\n\n // Cached regex to split keys for `delegate`.\n var delegateEventSplitter = /^(\\S+)\\s*(.*)$/;\n\n // List of view options to be set as properties.\n var viewOptions = ['model', 'collection', 'el', 'id', 'attributes', 'className', 'tagName', 'events'];\n\n // Set up all inheritable **Backbone.View** properties and methods.\n _.extend(View.prototype, Events, {\n\n // The default `tagName` of a View's element is `\"div\"`.\n tagName: 'div',\n\n // jQuery delegate for element lookup, scoped to DOM elements within the\n // current view. This should be preferred to global lookups where possible.\n $: function(selector) {\n return this.$el.find(selector);\n },\n\n // preinitialize is an empty function by default. You can override it with a function\n // or object. preinitialize will run before any instantiation logic is run in the View\n preinitialize: function(){},\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // **render** is the core function that your view should override, in order\n // to populate its element (`this.el`), with the appropriate HTML. The\n // convention is for **render** to always return `this`.\n render: function() {\n return this;\n },\n\n // Remove this view by taking the element out of the DOM, and removing any\n // applicable Backbone.Events listeners.\n remove: function() {\n this._removeElement();\n this.stopListening();\n return this;\n },\n\n // Remove this view's element from the document and all event listeners\n // attached to it. Exposed for subclasses using an alternative DOM\n // manipulation API.\n _removeElement: function() {\n this.$el.remove();\n },\n\n // Change the view's element (`this.el` property) and re-delegate the\n // view's events on the new element.\n setElement: function(element) {\n this.undelegateEvents();\n this._setElement(element);\n this.delegateEvents();\n return this;\n },\n\n // Creates the `this.el` and `this.$el` references for this view using the\n // given `el`. `el` can be a CSS selector or an HTML string, a jQuery\n // context or an element. Subclasses can override this to utilize an\n // alternative DOM manipulation API and are only required to set the\n // `this.el` property.\n _setElement: function(el) {\n this.$el = el instanceof Backbone.$ ? el : Backbone.$(el);\n this.el = this.$el[0];\n },\n\n // Set callbacks, where `this.events` is a hash of\n //\n // *{\"event selector\": \"callback\"}*\n //\n // {\n // 'mousedown .title': 'edit',\n // 'click .button': 'save',\n // 'click .open': function(e) { ... }\n // }\n //\n // pairs. Callbacks will be bound to the view, with `this` set properly.\n // Uses event delegation for efficiency.\n // Omitting the selector binds the event to `this.el`.\n delegateEvents: function(events) {\n events || (events = _.result(this, 'events'));\n if (!events) return this;\n this.undelegateEvents();\n for (var key in events) {\n var method = events[key];\n if (!_.isFunction(method)) method = this[method];\n if (!method) continue;\n var match = key.match(delegateEventSplitter);\n this.delegate(match[1], match[2], method.bind(this));\n }\n return this;\n },\n\n // Add a single event listener to the view's element (or a child element\n // using `selector`). This only works for delegate-able events: not `focus`,\n // `blur`, and not `change`, `submit`, and `reset` in Internet Explorer.\n delegate: function(eventName, selector, listener) {\n this.$el.on(eventName + '.delegateEvents' + this.cid, selector, listener);\n return this;\n },\n\n // Clears all callbacks previously bound to the view by `delegateEvents`.\n // You usually don't need to use this, but may wish to if you have multiple\n // Backbone views attached to the same DOM element.\n undelegateEvents: function() {\n if (this.$el) this.$el.off('.delegateEvents' + this.cid);\n return this;\n },\n\n // A finer-grained `undelegateEvents` for removing a single delegated event.\n // `selector` and `listener` are both optional.\n undelegate: function(eventName, selector, listener) {\n this.$el.off(eventName + '.delegateEvents' + this.cid, selector, listener);\n return this;\n },\n\n // Produces a DOM element to be assigned to your view. Exposed for\n // subclasses using an alternative DOM manipulation API.\n _createElement: function(tagName) {\n return document.createElement(tagName);\n },\n\n // Ensure that the View has a DOM element to render into.\n // If `this.el` is a string, pass it through `$()`, take the first\n // matching element, and re-assign it to `el`. Otherwise, create\n // an element from the `id`, `className` and `tagName` properties.\n _ensureElement: function() {\n if (!this.el) {\n var attrs = _.extend({}, _.result(this, 'attributes'));\n if (this.id) attrs.id = _.result(this, 'id');\n if (this.className) attrs['class'] = _.result(this, 'className');\n this.setElement(this._createElement(_.result(this, 'tagName')));\n this._setAttributes(attrs);\n } else {\n this.setElement(_.result(this, 'el'));\n }\n },\n\n // Set attributes from a hash on this view's element. Exposed for\n // subclasses using an alternative DOM manipulation API.\n _setAttributes: function(attributes) {\n this.$el.attr(attributes);\n }\n\n });\n\n // Proxy Backbone class methods to Underscore functions, wrapping the model's\n // `attributes` object or collection's `models` array behind the scenes.\n //\n // collection.filter(function(model) { return model.get('age') > 10 });\n // collection.each(this.addView);\n //\n // `Function#apply` can be slow so we use the method's arg count, if we know it.\n var addMethod = function(base, length, method, attribute) {\n switch (length) {\n case 1: return function() {\n return base[method](this[attribute]);\n };\n case 2: return function(value) {\n return base[method](this[attribute], value);\n };\n case 3: return function(iteratee, context) {\n return base[method](this[attribute], cb(iteratee, this), context);\n };\n case 4: return function(iteratee, defaultVal, context) {\n return base[method](this[attribute], cb(iteratee, this), defaultVal, context);\n };\n default: return function() {\n var args = slice.call(arguments);\n args.unshift(this[attribute]);\n return base[method].apply(base, args);\n };\n }\n };\n\n var addUnderscoreMethods = function(Class, base, methods, attribute) {\n _.each(methods, function(length, method) {\n if (base[method]) Class.prototype[method] = addMethod(base, length, method, attribute);\n });\n };\n\n // Support `collection.sortBy('attr')` and `collection.findWhere({id: 1})`.\n var cb = function(iteratee, instance) {\n if (_.isFunction(iteratee)) return iteratee;\n if (_.isObject(iteratee) && !instance._isModel(iteratee)) return modelMatcher(iteratee);\n if (_.isString(iteratee)) return function(model) { return model.get(iteratee); };\n return iteratee;\n };\n var modelMatcher = function(attrs) {\n var matcher = _.matches(attrs);\n return function(model) {\n return matcher(model.attributes);\n };\n };\n\n // Underscore methods that we want to implement on the Collection.\n // 90% of the core usefulness of Backbone Collections is actually implemented\n // right here:\n var collectionMethods = {forEach: 3, each: 3, map: 3, collect: 3, reduce: 0,\n foldl: 0, inject: 0, reduceRight: 0, foldr: 0, find: 3, detect: 3, filter: 3,\n select: 3, reject: 3, every: 3, all: 3, some: 3, any: 3, include: 3, includes: 3,\n contains: 3, invoke: 0, max: 3, min: 3, toArray: 1, size: 1, first: 3,\n head: 3, take: 3, initial: 3, rest: 3, tail: 3, drop: 3, last: 3,\n without: 0, difference: 0, indexOf: 3, shuffle: 1, lastIndexOf: 3,\n isEmpty: 1, chain: 1, sample: 3, partition: 3, groupBy: 3, countBy: 3,\n sortBy: 3, indexBy: 3, findIndex: 3, findLastIndex: 3};\n\n\n // Underscore methods that we want to implement on the Model, mapped to the\n // number of arguments they take.\n var modelMethods = {keys: 1, values: 1, pairs: 1, invert: 1, pick: 0,\n omit: 0, chain: 1, isEmpty: 1};\n\n // Mix in each Underscore method as a proxy to `Collection#models`.\n\n _.each([\n [Collection, collectionMethods, 'models'],\n [Model, modelMethods, 'attributes']\n ], function(config) {\n var Base = config[0],\n methods = config[1],\n attribute = config[2];\n\n Base.mixin = function(obj) {\n var mappings = _.reduce(_.functions(obj), function(memo, name) {\n memo[name] = 0;\n return memo;\n }, {});\n addUnderscoreMethods(Base, obj, mappings, attribute);\n };\n\n addUnderscoreMethods(Base, _, methods, attribute);\n });\n\n // Backbone.sync\n // -------------\n\n // Override this function to change the manner in which Backbone persists\n // models to the server. You will be passed the type of request, and the\n // model in question. By default, makes a RESTful Ajax request\n // to the model's `url()`. Some possible customizations could be:\n //\n // * Use `setTimeout` to batch rapid-fire updates into a single request.\n // * Send up the models as XML instead of JSON.\n // * Persist models via WebSockets instead of Ajax.\n //\n // Turn on `Backbone.emulateHTTP` in order to send `PUT` and `DELETE` requests\n // as `POST`, with a `_method` parameter containing the true HTTP method,\n // as well as all requests with the body as `application/x-www-form-urlencoded`\n // instead of `application/json` with the model in a param named `model`.\n // Useful when interfacing with server-side languages like **PHP** that make\n // it difficult to read the body of `PUT` requests.\n Backbone.sync = function(method, model, options) {\n var type = methodMap[method];\n\n // Default options, unless specified.\n _.defaults(options || (options = {}), {\n emulateHTTP: Backbone.emulateHTTP,\n emulateJSON: Backbone.emulateJSON\n });\n\n // Default JSON-request options.\n var params = {type: type, dataType: 'json'};\n\n // Ensure that we have a URL.\n if (!options.url) {\n params.url = _.result(model, 'url') || urlError();\n }\n\n // Ensure that we have the appropriate request data.\n if (options.data == null && model && (method === 'create' || method === 'update' || method === 'patch')) {\n params.contentType = 'application/json';\n params.data = JSON.stringify(options.attrs || model.toJSON(options));\n }\n\n // For older servers, emulate JSON by encoding the request into an HTML-form.\n if (options.emulateJSON) {\n params.contentType = 'application/x-www-form-urlencoded';\n params.data = params.data ? {model: params.data} : {};\n }\n\n // For older servers, emulate HTTP by mimicking the HTTP method with `_method`\n // And an `X-HTTP-Method-Override` header.\n if (options.emulateHTTP && (type === 'PUT' || type === 'DELETE' || type === 'PATCH')) {\n params.type = 'POST';\n if (options.emulateJSON) params.data._method = type;\n var beforeSend = options.beforeSend;\n options.beforeSend = function(xhr) {\n xhr.setRequestHeader('X-HTTP-Method-Override', type);\n if (beforeSend) return beforeSend.apply(this, arguments);\n };\n }\n\n // Don't process data on a non-GET request.\n if (params.type !== 'GET' && !options.emulateJSON) {\n params.processData = false;\n }\n\n // Pass along `textStatus` and `errorThrown` from jQuery.\n var error = options.error;\n options.error = function(xhr, textStatus, errorThrown) {\n options.textStatus = textStatus;\n options.errorThrown = errorThrown;\n if (error) error.call(options.context, xhr, textStatus, errorThrown);\n };\n\n // Make the request, allowing the user to override any Ajax options.\n var xhr = options.xhr = Backbone.ajax(_.extend(params, options));\n model.trigger('request', model, xhr, options);\n return xhr;\n };\n\n // Map from CRUD to HTTP for our default `Backbone.sync` implementation.\n var methodMap = {\n 'create': 'POST',\n 'update': 'PUT',\n 'patch': 'PATCH',\n 'delete': 'DELETE',\n 'read': 'GET'\n };\n\n // Set the default implementation of `Backbone.ajax` to proxy through to `$`.\n // Override this if you'd like to use a different library.\n Backbone.ajax = function() {\n return Backbone.$.ajax.apply(Backbone.$, arguments);\n };\n\n // Backbone.Router\n // ---------------\n\n // Routers map faux-URLs to actions, and fire events when routes are\n // matched. Creating a new one sets its `routes` hash, if not set statically.\n var Router = Backbone.Router = function(options) {\n options || (options = {});\n this.preinitialize.apply(this, arguments);\n if (options.routes) this.routes = options.routes;\n this._bindRoutes();\n this.initialize.apply(this, arguments);\n };\n\n // Cached regular expressions for matching named param parts and splatted\n // parts of route strings.\n var optionalParam = /\\((.*?)\\)/g;\n var namedParam = /(\\(\\?)?:\\w+/g;\n var splatParam = /\\*\\w+/g;\n var escapeRegExp = /[\\-{}\\[\\]+?.,\\\\\\^$|#\\s]/g;\n\n // Set up all inheritable **Backbone.Router** properties and methods.\n _.extend(Router.prototype, Events, {\n\n // preinitialize is an empty function by default. You can override it with a function\n // or object. preinitialize will run before any instantiation logic is run in the Router.\n preinitialize: function(){},\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // Manually bind a single named route to a callback. For example:\n //\n // this.route('search/:query/p:num', 'search', function(query, num) {\n // ...\n // });\n //\n route: function(route, name, callback) {\n if (!_.isRegExp(route)) route = this._routeToRegExp(route);\n if (_.isFunction(name)) {\n callback = name;\n name = '';\n }\n if (!callback) callback = this[name];\n var router = this;\n Backbone.history.route(route, function(fragment) {\n var args = router._extractParameters(route, fragment);\n if (router.execute(callback, args, name) !== false) {\n router.trigger.apply(router, ['route:' + name].concat(args));\n router.trigger('route', name, args);\n Backbone.history.trigger('route', router, name, args);\n }\n });\n return this;\n },\n\n // Execute a route handler with the provided parameters. This is an\n // excellent place to do pre-route setup or post-route cleanup.\n execute: function(callback, args, name) {\n if (callback) callback.apply(this, args);\n },\n\n // Simple proxy to `Backbone.history` to save a fragment into the history.\n navigate: function(fragment, options) {\n Backbone.history.navigate(fragment, options);\n return this;\n },\n\n // Bind all defined routes to `Backbone.history`. We have to reverse the\n // order of the routes here to support behavior where the most general\n // routes can be defined at the bottom of the route map.\n _bindRoutes: function() {\n if (!this.routes) return;\n this.routes = _.result(this, 'routes');\n var route, routes = _.keys(this.routes);\n while ((route = routes.pop()) != null) {\n this.route(route, this.routes[route]);\n }\n },\n\n // Convert a route string into a regular expression, suitable for matching\n // against the current location hash.\n _routeToRegExp: function(route) {\n route = route.replace(escapeRegExp, '\\\\$&')\n .replace(optionalParam, '(?:$1)?')\n .replace(namedParam, function(match, optional) {\n return optional ? match : '([^/?]+)';\n })\n .replace(splatParam, '([^?]*?)');\n return new RegExp('^' + route + '(?:\\\\?([\\\\s\\\\S]*))?$');\n },\n\n // Given a route, and a URL fragment that it matches, return the array of\n // extracted decoded parameters. Empty or unmatched parameters will be\n // treated as `null` to normalize cross-browser behavior.\n _extractParameters: function(route, fragment) {\n var params = route.exec(fragment).slice(1);\n return _.map(params, function(param, i) {\n // Don't decode the search params.\n if (i === params.length - 1) return param || null;\n return param ? decodeURIComponent(param) : null;\n });\n }\n\n });\n\n // Backbone.History\n // ----------------\n\n // Handles cross-browser history management, based on either\n // [pushState](http://diveintohtml5.info/history.html) and real URLs, or\n // [onhashchange](https://developer.mozilla.org/en-US/docs/DOM/window.onhashchange)\n // and URL fragments. If the browser supports neither (old IE, natch),\n // falls back to polling.\n var History = Backbone.History = function() {\n this.handlers = [];\n this.checkUrl = this.checkUrl.bind(this);\n\n // Ensure that `History` can be used outside of the browser.\n if (typeof window !== 'undefined') {\n this.location = window.location;\n this.history = window.history;\n }\n };\n\n // Cached regex for stripping a leading hash/slash and trailing space.\n var routeStripper = /^[#\\/]|\\s+$/g;\n\n // Cached regex for stripping leading and trailing slashes.\n var rootStripper = /^\\/+|\\/+$/g;\n\n // Cached regex for stripping urls of hash.\n var pathStripper = /#.*$/;\n\n // Has the history handling already been started?\n History.started = false;\n\n // Set up all inheritable **Backbone.History** properties and methods.\n _.extend(History.prototype, Events, {\n\n // The default interval to poll for hash changes, if necessary, is\n // twenty times a second.\n interval: 50,\n\n // Are we at the app root?\n atRoot: function() {\n var path = this.location.pathname.replace(/[^\\/]$/, '$&/');\n return path === this.root && !this.getSearch();\n },\n\n // Does the pathname match the root?\n matchRoot: function() {\n var path = this.decodeFragment(this.location.pathname);\n var rootPath = path.slice(0, this.root.length - 1) + '/';\n return rootPath === this.root;\n },\n\n // Unicode characters in `location.pathname` are percent encoded so they're\n // decoded for comparison. `%25` should not be decoded since it may be part\n // of an encoded parameter.\n decodeFragment: function(fragment) {\n return decodeURI(fragment.replace(/%25/g, '%2525'));\n },\n\n // In IE6, the hash fragment and search params are incorrect if the\n // fragment contains `?`.\n getSearch: function() {\n var match = this.location.href.replace(/#.*/, '').match(/\\?.+/);\n return match ? match[0] : '';\n },\n\n // Gets the true hash value. Cannot use location.hash directly due to bug\n // in Firefox where location.hash will always be decoded.\n getHash: function(window) {\n var match = (window || this).location.href.match(/#(.*)$/);\n return match ? match[1] : '';\n },\n\n // Get the pathname and search params, without the root.\n getPath: function() {\n var path = this.decodeFragment(\n this.location.pathname + this.getSearch()\n ).slice(this.root.length - 1);\n return path.charAt(0) === '/' ? path.slice(1) : path;\n },\n\n // Get the cross-browser normalized URL fragment from the path or hash.\n getFragment: function(fragment) {\n if (fragment == null) {\n if (this._usePushState || !this._wantsHashChange) {\n fragment = this.getPath();\n } else {\n fragment = this.getHash();\n }\n }\n return fragment.replace(routeStripper, '');\n },\n\n // Start the hash change handling, returning `true` if the current URL matches\n // an existing route, and `false` otherwise.\n start: function(options) {\n if (History.started) throw new Error('Backbone.history has already been started');\n History.started = true;\n\n // Figure out the initial configuration. Do we need an iframe?\n // Is pushState desired ... is it available?\n this.options = _.extend({root: '/'}, this.options, options);\n this.root = this.options.root;\n this._wantsHashChange = this.options.hashChange !== false;\n this._hasHashChange = 'onhashchange' in window && (document.documentMode === void 0 || document.documentMode > 7);\n this._useHashChange = this._wantsHashChange && this._hasHashChange;\n this._wantsPushState = !!this.options.pushState;\n this._hasPushState = !!(this.history && this.history.pushState);\n this._usePushState = this._wantsPushState && this._hasPushState;\n this.fragment = this.getFragment();\n\n // Normalize root to always include a leading and trailing slash.\n this.root = ('/' + this.root + '/').replace(rootStripper, '/');\n\n // Transition from hashChange to pushState or vice versa if both are\n // requested.\n if (this._wantsHashChange && this._wantsPushState) {\n\n // If we've started off with a route from a `pushState`-enabled\n // browser, but we're currently in a browser that doesn't support it...\n if (!this._hasPushState && !this.atRoot()) {\n var rootPath = this.root.slice(0, -1) || '/';\n this.location.replace(rootPath + '#' + this.getPath());\n // Return immediately as browser will do redirect to new url\n return true;\n\n // Or if we've started out with a hash-based route, but we're currently\n // in a browser where it could be `pushState`-based instead...\n } else if (this._hasPushState && this.atRoot()) {\n this.navigate(this.getHash(), {replace: true});\n }\n\n }\n\n // Proxy an iframe to handle location events if the browser doesn't\n // support the `hashchange` event, HTML5 history, or the user wants\n // `hashChange` but not `pushState`.\n if (!this._hasHashChange && this._wantsHashChange && !this._usePushState) {\n this.iframe = document.createElement('iframe');\n this.iframe.src = 'javascript:0';\n this.iframe.style.display = 'none';\n this.iframe.tabIndex = -1;\n var body = document.body;\n // Using `appendChild` will throw on IE < 9 if the document is not ready.\n var iWindow = body.insertBefore(this.iframe, body.firstChild).contentWindow;\n iWindow.document.open();\n iWindow.document.close();\n iWindow.location.hash = '#' + this.fragment;\n }\n\n // Add a cross-platform `addEventListener` shim for older browsers.\n var addEventListener = window.addEventListener || function(eventName, listener) {\n return attachEvent('on' + eventName, listener);\n };\n\n // Depending on whether we're using pushState or hashes, and whether\n // 'onhashchange' is supported, determine how we check the URL state.\n if (this._usePushState) {\n addEventListener('popstate', this.checkUrl, false);\n } else if (this._useHashChange && !this.iframe) {\n addEventListener('hashchange', this.checkUrl, false);\n } else if (this._wantsHashChange) {\n this._checkUrlInterval = setInterval(this.checkUrl, this.interval);\n }\n\n if (!this.options.silent) return this.loadUrl();\n },\n\n // Disable Backbone.history, perhaps temporarily. Not useful in a real app,\n // but possibly useful for unit testing Routers.\n stop: function() {\n // Add a cross-platform `removeEventListener` shim for older browsers.\n var removeEventListener = window.removeEventListener || function(eventName, listener) {\n return detachEvent('on' + eventName, listener);\n };\n\n // Remove window listeners.\n if (this._usePushState) {\n removeEventListener('popstate', this.checkUrl, false);\n } else if (this._useHashChange && !this.iframe) {\n removeEventListener('hashchange', this.checkUrl, false);\n }\n\n // Clean up the iframe if necessary.\n if (this.iframe) {\n document.body.removeChild(this.iframe);\n this.iframe = null;\n }\n\n // Some environments will throw when clearing an undefined interval.\n if (this._checkUrlInterval) clearInterval(this._checkUrlInterval);\n History.started = false;\n },\n\n // Add a route to be tested when the fragment changes. Routes added later\n // may override previous routes.\n route: function(route, callback) {\n this.handlers.unshift({route: route, callback: callback});\n },\n\n // Checks the current URL to see if it has changed, and if it has,\n // calls `loadUrl`, normalizing across the hidden iframe.\n checkUrl: function(e) {\n var current = this.getFragment();\n\n // If the user pressed the back button, the iframe's hash will have\n // changed and we should use that for comparison.\n if (current === this.fragment && this.iframe) {\n current = this.getHash(this.iframe.contentWindow);\n }\n\n if (current === this.fragment) return false;\n if (this.iframe) this.navigate(current);\n this.loadUrl();\n },\n\n // Attempt to load the current URL fragment. If a route succeeds with a\n // match, returns `true`. If no defined routes matches the fragment,\n // returns `false`.\n loadUrl: function(fragment) {\n // If the root doesn't match, no routes can match either.\n if (!this.matchRoot()) return false;\n fragment = this.fragment = this.getFragment(fragment);\n return _.some(this.handlers, function(handler) {\n if (handler.route.test(fragment)) {\n handler.callback(fragment);\n return true;\n }\n });\n },\n\n // Save a fragment into the hash history, or replace the URL state if the\n // 'replace' option is passed. You are responsible for properly URL-encoding\n // the fragment in advance.\n //\n // The options object can contain `trigger: true` if you wish to have the\n // route callback be fired (not usually desirable), or `replace: true`, if\n // you wish to modify the current URL without adding an entry to the history.\n navigate: function(fragment, options) {\n if (!History.started) return false;\n if (!options || options === true) options = {trigger: !!options};\n\n // Normalize the fragment.\n fragment = this.getFragment(fragment || '');\n\n // Don't include a trailing slash on the root.\n var rootPath = this.root;\n if (fragment === '' || fragment.charAt(0) === '?') {\n rootPath = rootPath.slice(0, -1) || '/';\n }\n var url = rootPath + fragment;\n\n // Strip the fragment of the query and hash for matching.\n fragment = fragment.replace(pathStripper, '');\n\n // Decode for matching.\n var decodedFragment = this.decodeFragment(fragment);\n\n if (this.fragment === decodedFragment) return;\n this.fragment = decodedFragment;\n\n // If pushState is available, we use it to set the fragment as a real URL.\n if (this._usePushState) {\n this.history[options.replace ? 'replaceState' : 'pushState']({}, document.title, url);\n\n // If hash changes haven't been explicitly disabled, update the hash\n // fragment to store history.\n } else if (this._wantsHashChange) {\n this._updateHash(this.location, fragment, options.replace);\n if (this.iframe && fragment !== this.getHash(this.iframe.contentWindow)) {\n var iWindow = this.iframe.contentWindow;\n\n // Opening and closing the iframe tricks IE7 and earlier to push a\n // history entry on hash-tag change. When replace is true, we don't\n // want this.\n if (!options.replace) {\n iWindow.document.open();\n iWindow.document.close();\n }\n\n this._updateHash(iWindow.location, fragment, options.replace);\n }\n\n // If you've told us that you explicitly don't want fallback hashchange-\n // based history, then `navigate` becomes a page refresh.\n } else {\n return this.location.assign(url);\n }\n if (options.trigger) return this.loadUrl(fragment);\n },\n\n // Update the hash location, either replacing the current entry, or adding\n // a new one to the browser history.\n _updateHash: function(location, fragment, replace) {\n if (replace) {\n var href = location.href.replace(/(javascript:|#).*$/, '');\n location.replace(href + '#' + fragment);\n } else {\n // Some browsers require that `hash` contains a leading #.\n location.hash = '#' + fragment;\n }\n }\n\n });\n\n // Create the default Backbone.history.\n Backbone.history = new History;\n\n // Helpers\n // -------\n\n // Helper function to correctly set up the prototype chain for subclasses.\n // Similar to `goog.inherits`, but uses a hash of prototype properties and\n // class properties to be extended.\n var extend = function(protoProps, staticProps) {\n var parent = this;\n var child;\n\n // The constructor function for the new subclass is either defined by you\n // (the \"constructor\" property in your `extend` definition), or defaulted\n // by us to simply call the parent constructor.\n if (protoProps && _.has(protoProps, 'constructor')) {\n child = protoProps.constructor;\n } else {\n child = function(){ return parent.apply(this, arguments); };\n }\n\n // Add static properties to the constructor function, if supplied.\n _.extend(child, parent, staticProps);\n\n // Set the prototype chain to inherit from `parent`, without calling\n // `parent`'s constructor function and add the prototype properties.\n child.prototype = _.create(parent.prototype, protoProps);\n child.prototype.constructor = child;\n\n // Set a convenience property in case the parent's prototype is needed\n // later.\n child.__super__ = parent.prototype;\n\n return child;\n };\n\n // Set up inheritance for the model, collection, router, view and history.\n Model.extend = Collection.extend = Router.extend = View.extend = History.extend = extend;\n\n // Throw an error when a URL is needed, and none is supplied.\n var urlError = function() {\n throw new Error('A \"url\" property or function must be specified');\n };\n\n // Wrap an optional error callback with a fallback error event.\n var wrapError = function(model, options) {\n var error = options.error;\n options.error = function(resp) {\n if (error) error.call(options.context, model, resp, options);\n model.trigger('error', model, resp, options);\n };\n };\n\n return Backbone;\n});\n","(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"codemirror/lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"codemirror/lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\n CodeMirror.extendMode(\"css\", {\n commentStart: \"/*\",\n commentEnd: \"*/\",\n newlineAfterToken: function(_type, content) {\n return /^[;{}]$/.test(content);\n }\n });\n\n CodeMirror.extendMode(\"javascript\", {\n commentStart: \"/*\",\n commentEnd: \"*/\",\n // FIXME semicolons inside of for\n newlineAfterToken: function(_type, content, textAfter, state) {\n if (this.jsonMode) {\n return /^[\\[,{]$/.test(content) || /^}/.test(textAfter);\n } else {\n if (content == \";\" && state.lexical && state.lexical.type == \")\") return false;\n return /^[;{}]$/.test(content) && !/^;/.test(textAfter);\n }\n }\n });\n\n var inlineElements = /^(a|abbr|acronym|area|base|bdo|big|br|button|caption|cite|code|col|colgroup|dd|del|dfn|em|frame|hr|iframe|img|input|ins|kbd|label|legend|link|map|object|optgroup|option|param|q|samp|script|select|small|span|strong|sub|sup|textarea|tt|var)$/;\n\n CodeMirror.extendMode(\"xml\", {\n commentStart: \"\",\n newlineAfterToken: function(type, content, textAfter, state) {\n var inline = false;\n if (this.configuration == \"html\")\n inline = state.context ? inlineElements.test(state.context.tagName) : false;\n return !inline && ((type == \"tag\" && />$/.test(content) && state.context) ||\n /^ -1 && endIndex > -1 && endIndex > startIndex) {\n // Take string till comment start\n selText = selText.substr(0, startIndex) +\n // From comment start till comment end\n selText.substring(startIndex + curMode.commentStart.length, endIndex) +\n // From comment end till string end\n selText.substr(endIndex + curMode.commentEnd.length);\n }\n cm.replaceRange(selText, from, to);\n }\n });\n });\n\n // Applies automatic mode-aware indentation to the specified range\n CodeMirror.defineExtension(\"autoIndentRange\", function (from, to) {\n var cmInstance = this;\n this.operation(function () {\n for (var i = from.line; i <= to.line; i++) {\n cmInstance.indentLine(i, \"smart\");\n }\n });\n });\n\n // Applies automatic formatting to the specified range\n CodeMirror.defineExtension(\"autoFormatRange\", function (from, to) {\n var cm = this;\n var outer = cm.getMode(), text = cm.getRange(from, to).split(\"\\n\");\n var state = CodeMirror.copyState(outer, cm.getTokenAt(from).state);\n var tabSize = cm.getOption(\"tabSize\");\n\n var out = \"\", lines = 0, atSol = from.ch === 0;\n function newline() {\n out += \"\\n\";\n atSol = true;\n ++lines;\n }\n\n for (var i = 0; i < text.length; ++i) {\n var stream = new CodeMirror.StringStream(text[i], tabSize);\n while (!stream.eol()) {\n var inner = CodeMirror.innerMode(outer, state);\n var style = outer.token(stream, state), cur = stream.current();\n stream.start = stream.pos;\n if (!atSol || /\\S/.test(cur)) {\n out += cur;\n atSol = false;\n }\n if (!atSol && inner.mode.newlineAfterToken &&\n inner.mode.newlineAfterToken(style, cur, stream.string.slice(stream.pos) || text[i+1] || \"\", inner.state))\n newline();\n }\n if (!stream.pos && outer.blankLine) outer.blankLine(state);\n if (!atSol && i < text.length - 1) newline();\n }\n\n cm.operation(function () {\n cm.replaceRange(out, from, to);\n for (var cur = from.line + 1, end = from.line + lines; cur <= end; ++cur)\n cm.indentLine(cur, \"smart\");\n cm.setSelection(from, cm.getCursor(false));\n });\n });\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/5/LICENSE\n\n// This is CodeMirror (https://codemirror.net/5), a code editor\n// implemented in JavaScript on top of the browser's DOM.\n//\n// You can find some technical background for some of the code below\n// at http://marijnhaverbeke.nl/blog/#cm-internals .\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.CodeMirror = factory());\n}(this, (function () { 'use strict';\n\n // Kludges for bugs and behavior differences that can't be feature\n // detected are enabled based on userAgent etc sniffing.\n var userAgent = navigator.userAgent;\n var platform = navigator.platform;\n\n var gecko = /gecko\\/\\d/i.test(userAgent);\n var ie_upto10 = /MSIE \\d/.test(userAgent);\n var ie_11up = /Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(userAgent);\n var edge = /Edge\\/(\\d+)/.exec(userAgent);\n var ie = ie_upto10 || ie_11up || edge;\n var ie_version = ie && (ie_upto10 ? document.documentMode || 6 : +(edge || ie_11up)[1]);\n var webkit = !edge && /WebKit\\//.test(userAgent);\n var qtwebkit = webkit && /Qt\\/\\d+\\.\\d+/.test(userAgent);\n var chrome = !edge && /Chrome\\/(\\d+)/.exec(userAgent);\n var chrome_version = chrome && +chrome[1];\n var presto = /Opera\\//.test(userAgent);\n var safari = /Apple Computer/.test(navigator.vendor);\n var mac_geMountainLion = /Mac OS X 1\\d\\D([8-9]|\\d\\d)\\D/.test(userAgent);\n var phantom = /PhantomJS/.test(userAgent);\n\n var ios = safari && (/Mobile\\/\\w+/.test(userAgent) || navigator.maxTouchPoints > 2);\n var android = /Android/.test(userAgent);\n // This is woefully incomplete. Suggestions for alternative methods welcome.\n var mobile = ios || android || /webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(userAgent);\n var mac = ios || /Mac/.test(platform);\n var chromeOS = /\\bCrOS\\b/.test(userAgent);\n var windows = /win/i.test(platform);\n\n var presto_version = presto && userAgent.match(/Version\\/(\\d*\\.\\d*)/);\n if (presto_version) { presto_version = Number(presto_version[1]); }\n if (presto_version && presto_version >= 15) { presto = false; webkit = true; }\n // Some browsers use the wrong event properties to signal cmd/ctrl on OS X\n var flipCtrlCmd = mac && (qtwebkit || presto && (presto_version == null || presto_version < 12.11));\n var captureRightClick = gecko || (ie && ie_version >= 9);\n\n function classTest(cls) { return new RegExp(\"(^|\\\\s)\" + cls + \"(?:$|\\\\s)\\\\s*\") }\n\n var rmClass = function(node, cls) {\n var current = node.className;\n var match = classTest(cls).exec(current);\n if (match) {\n var after = current.slice(match.index + match[0].length);\n node.className = current.slice(0, match.index) + (after ? match[1] + after : \"\");\n }\n };\n\n function removeChildren(e) {\n for (var count = e.childNodes.length; count > 0; --count)\n { e.removeChild(e.firstChild); }\n return e\n }\n\n function removeChildrenAndAdd(parent, e) {\n return removeChildren(parent).appendChild(e)\n }\n\n function elt(tag, content, className, style) {\n var e = document.createElement(tag);\n if (className) { e.className = className; }\n if (style) { e.style.cssText = style; }\n if (typeof content == \"string\") { e.appendChild(document.createTextNode(content)); }\n else if (content) { for (var i = 0; i < content.length; ++i) { e.appendChild(content[i]); } }\n return e\n }\n // wrapper for elt, which removes the elt from the accessibility tree\n function eltP(tag, content, className, style) {\n var e = elt(tag, content, className, style);\n e.setAttribute(\"role\", \"presentation\");\n return e\n }\n\n var range;\n if (document.createRange) { range = function(node, start, end, endNode) {\n var r = document.createRange();\n r.setEnd(endNode || node, end);\n r.setStart(node, start);\n return r\n }; }\n else { range = function(node, start, end) {\n var r = document.body.createTextRange();\n try { r.moveToElementText(node.parentNode); }\n catch(e) { return r }\n r.collapse(true);\n r.moveEnd(\"character\", end);\n r.moveStart(\"character\", start);\n return r\n }; }\n\n function contains(parent, child) {\n if (child.nodeType == 3) // Android browser always returns false when child is a textnode\n { child = child.parentNode; }\n if (parent.contains)\n { return parent.contains(child) }\n do {\n if (child.nodeType == 11) { child = child.host; }\n if (child == parent) { return true }\n } while (child = child.parentNode)\n }\n\n function activeElt() {\n // IE and Edge may throw an \"Unspecified Error\" when accessing document.activeElement.\n // IE < 10 will throw when accessed while the page is loading or in an iframe.\n // IE > 9 and Edge will throw when accessed in an iframe if document.body is unavailable.\n var activeElement;\n try {\n activeElement = document.activeElement;\n } catch(e) {\n activeElement = document.body || null;\n }\n while (activeElement && activeElement.shadowRoot && activeElement.shadowRoot.activeElement)\n { activeElement = activeElement.shadowRoot.activeElement; }\n return activeElement\n }\n\n function addClass(node, cls) {\n var current = node.className;\n if (!classTest(cls).test(current)) { node.className += (current ? \" \" : \"\") + cls; }\n }\n function joinClasses(a, b) {\n var as = a.split(\" \");\n for (var i = 0; i < as.length; i++)\n { if (as[i] && !classTest(as[i]).test(b)) { b += \" \" + as[i]; } }\n return b\n }\n\n var selectInput = function(node) { node.select(); };\n if (ios) // Mobile Safari apparently has a bug where select() is broken.\n { selectInput = function(node) { node.selectionStart = 0; node.selectionEnd = node.value.length; }; }\n else if (ie) // Suppress mysterious IE10 errors\n { selectInput = function(node) { try { node.select(); } catch(_e) {} }; }\n\n function bind(f) {\n var args = Array.prototype.slice.call(arguments, 1);\n return function(){return f.apply(null, args)}\n }\n\n function copyObj(obj, target, overwrite) {\n if (!target) { target = {}; }\n for (var prop in obj)\n { if (obj.hasOwnProperty(prop) && (overwrite !== false || !target.hasOwnProperty(prop)))\n { target[prop] = obj[prop]; } }\n return target\n }\n\n // Counts the column offset in a string, taking tabs into account.\n // Used mostly to find indentation.\n function countColumn(string, end, tabSize, startIndex, startValue) {\n if (end == null) {\n end = string.search(/[^\\s\\u00a0]/);\n if (end == -1) { end = string.length; }\n }\n for (var i = startIndex || 0, n = startValue || 0;;) {\n var nextTab = string.indexOf(\"\\t\", i);\n if (nextTab < 0 || nextTab >= end)\n { return n + (end - i) }\n n += nextTab - i;\n n += tabSize - (n % tabSize);\n i = nextTab + 1;\n }\n }\n\n var Delayed = function() {\n this.id = null;\n this.f = null;\n this.time = 0;\n this.handler = bind(this.onTimeout, this);\n };\n Delayed.prototype.onTimeout = function (self) {\n self.id = 0;\n if (self.time <= +new Date) {\n self.f();\n } else {\n setTimeout(self.handler, self.time - +new Date);\n }\n };\n Delayed.prototype.set = function (ms, f) {\n this.f = f;\n var time = +new Date + ms;\n if (!this.id || time < this.time) {\n clearTimeout(this.id);\n this.id = setTimeout(this.handler, ms);\n this.time = time;\n }\n };\n\n function indexOf(array, elt) {\n for (var i = 0; i < array.length; ++i)\n { if (array[i] == elt) { return i } }\n return -1\n }\n\n // Number of pixels added to scroller and sizer to hide scrollbar\n var scrollerGap = 50;\n\n // Returned or thrown by various protocols to signal 'I'm not\n // handling this'.\n var Pass = {toString: function(){return \"CodeMirror.Pass\"}};\n\n // Reused option objects for setSelection & friends\n var sel_dontScroll = {scroll: false}, sel_mouse = {origin: \"*mouse\"}, sel_move = {origin: \"+move\"};\n\n // The inverse of countColumn -- find the offset that corresponds to\n // a particular column.\n function findColumn(string, goal, tabSize) {\n for (var pos = 0, col = 0;;) {\n var nextTab = string.indexOf(\"\\t\", pos);\n if (nextTab == -1) { nextTab = string.length; }\n var skipped = nextTab - pos;\n if (nextTab == string.length || col + skipped >= goal)\n { return pos + Math.min(skipped, goal - col) }\n col += nextTab - pos;\n col += tabSize - (col % tabSize);\n pos = nextTab + 1;\n if (col >= goal) { return pos }\n }\n }\n\n var spaceStrs = [\"\"];\n function spaceStr(n) {\n while (spaceStrs.length <= n)\n { spaceStrs.push(lst(spaceStrs) + \" \"); }\n return spaceStrs[n]\n }\n\n function lst(arr) { return arr[arr.length-1] }\n\n function map(array, f) {\n var out = [];\n for (var i = 0; i < array.length; i++) { out[i] = f(array[i], i); }\n return out\n }\n\n function insertSorted(array, value, score) {\n var pos = 0, priority = score(value);\n while (pos < array.length && score(array[pos]) <= priority) { pos++; }\n array.splice(pos, 0, value);\n }\n\n function nothing() {}\n\n function createObj(base, props) {\n var inst;\n if (Object.create) {\n inst = Object.create(base);\n } else {\n nothing.prototype = base;\n inst = new nothing();\n }\n if (props) { copyObj(props, inst); }\n return inst\n }\n\n var nonASCIISingleCaseWordChar = /[\\u00df\\u0587\\u0590-\\u05f4\\u0600-\\u06ff\\u3040-\\u309f\\u30a0-\\u30ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\uac00-\\ud7af]/;\n function isWordCharBasic(ch) {\n return /\\w/.test(ch) || ch > \"\\x80\" &&\n (ch.toUpperCase() != ch.toLowerCase() || nonASCIISingleCaseWordChar.test(ch))\n }\n function isWordChar(ch, helper) {\n if (!helper) { return isWordCharBasic(ch) }\n if (helper.source.indexOf(\"\\\\w\") > -1 && isWordCharBasic(ch)) { return true }\n return helper.test(ch)\n }\n\n function isEmpty(obj) {\n for (var n in obj) { if (obj.hasOwnProperty(n) && obj[n]) { return false } }\n return true\n }\n\n // Extending unicode characters. A series of a non-extending char +\n // any number of extending chars is treated as a single unit as far\n // as editing and measuring is concerned. This is not fully correct,\n // since some scripts/fonts/browsers also treat other configurations\n // of code points as a group.\n var extendingChars = /[\\u0300-\\u036f\\u0483-\\u0489\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u065e\\u0670\\u06d6-\\u06dc\\u06de-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07eb-\\u07f3\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0900-\\u0902\\u093c\\u0941-\\u0948\\u094d\\u0951-\\u0955\\u0962\\u0963\\u0981\\u09bc\\u09be\\u09c1-\\u09c4\\u09cd\\u09d7\\u09e2\\u09e3\\u0a01\\u0a02\\u0a3c\\u0a41\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a70\\u0a71\\u0a75\\u0a81\\u0a82\\u0abc\\u0ac1-\\u0ac5\\u0ac7\\u0ac8\\u0acd\\u0ae2\\u0ae3\\u0b01\\u0b3c\\u0b3e\\u0b3f\\u0b41-\\u0b44\\u0b4d\\u0b56\\u0b57\\u0b62\\u0b63\\u0b82\\u0bbe\\u0bc0\\u0bcd\\u0bd7\\u0c3e-\\u0c40\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0cbc\\u0cbf\\u0cc2\\u0cc6\\u0ccc\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0d3e\\u0d41-\\u0d44\\u0d4d\\u0d57\\u0d62\\u0d63\\u0dca\\u0dcf\\u0dd2-\\u0dd4\\u0dd6\\u0ddf\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0eb1\\u0eb4-\\u0eb9\\u0ebb\\u0ebc\\u0ec8-\\u0ecd\\u0f18\\u0f19\\u0f35\\u0f37\\u0f39\\u0f71-\\u0f7e\\u0f80-\\u0f84\\u0f86\\u0f87\\u0f90-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102d-\\u1030\\u1032-\\u1037\\u1039\\u103a\\u103d\\u103e\\u1058\\u1059\\u105e-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108d\\u109d\\u135f\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b7-\\u17bd\\u17c6\\u17c9-\\u17d3\\u17dd\\u180b-\\u180d\\u18a9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193b\\u1a17\\u1a18\\u1a56\\u1a58-\\u1a5e\\u1a60\\u1a62\\u1a65-\\u1a6c\\u1a73-\\u1a7c\\u1a7f\\u1b00-\\u1b03\\u1b34\\u1b36-\\u1b3a\\u1b3c\\u1b42\\u1b6b-\\u1b73\\u1b80\\u1b81\\u1ba2-\\u1ba5\\u1ba8\\u1ba9\\u1c2c-\\u1c33\\u1c36\\u1c37\\u1cd0-\\u1cd2\\u1cd4-\\u1ce0\\u1ce2-\\u1ce8\\u1ced\\u1dc0-\\u1de6\\u1dfd-\\u1dff\\u200c\\u200d\\u20d0-\\u20f0\\u2cef-\\u2cf1\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\ua66f-\\ua672\\ua67c\\ua67d\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua825\\ua826\\ua8c4\\ua8e0-\\ua8f1\\ua926-\\ua92d\\ua947-\\ua951\\ua980-\\ua982\\ua9b3\\ua9b6-\\ua9b9\\ua9bc\\uaa29-\\uaa2e\\uaa31\\uaa32\\uaa35\\uaa36\\uaa43\\uaa4c\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uabe5\\uabe8\\uabed\\udc00-\\udfff\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe26\\uff9e\\uff9f]/;\n function isExtendingChar(ch) { return ch.charCodeAt(0) >= 768 && extendingChars.test(ch) }\n\n // Returns a number from the range [`0`; `str.length`] unless `pos` is outside that range.\n function skipExtendingChars(str, pos, dir) {\n while ((dir < 0 ? pos > 0 : pos < str.length) && isExtendingChar(str.charAt(pos))) { pos += dir; }\n return pos\n }\n\n // Returns the value from the range [`from`; `to`] that satisfies\n // `pred` and is closest to `from`. Assumes that at least `to`\n // satisfies `pred`. Supports `from` being greater than `to`.\n function findFirst(pred, from, to) {\n // At any point we are certain `to` satisfies `pred`, don't know\n // whether `from` does.\n var dir = from > to ? -1 : 1;\n for (;;) {\n if (from == to) { return from }\n var midF = (from + to) / 2, mid = dir < 0 ? Math.ceil(midF) : Math.floor(midF);\n if (mid == from) { return pred(mid) ? from : to }\n if (pred(mid)) { to = mid; }\n else { from = mid + dir; }\n }\n }\n\n // BIDI HELPERS\n\n function iterateBidiSections(order, from, to, f) {\n if (!order) { return f(from, to, \"ltr\", 0) }\n var found = false;\n for (var i = 0; i < order.length; ++i) {\n var part = order[i];\n if (part.from < to && part.to > from || from == to && part.to == from) {\n f(Math.max(part.from, from), Math.min(part.to, to), part.level == 1 ? \"rtl\" : \"ltr\", i);\n found = true;\n }\n }\n if (!found) { f(from, to, \"ltr\"); }\n }\n\n var bidiOther = null;\n function getBidiPartAt(order, ch, sticky) {\n var found;\n bidiOther = null;\n for (var i = 0; i < order.length; ++i) {\n var cur = order[i];\n if (cur.from < ch && cur.to > ch) { return i }\n if (cur.to == ch) {\n if (cur.from != cur.to && sticky == \"before\") { found = i; }\n else { bidiOther = i; }\n }\n if (cur.from == ch) {\n if (cur.from != cur.to && sticky != \"before\") { found = i; }\n else { bidiOther = i; }\n }\n }\n return found != null ? found : bidiOther\n }\n\n // Bidirectional ordering algorithm\n // See http://unicode.org/reports/tr9/tr9-13.html for the algorithm\n // that this (partially) implements.\n\n // One-char codes used for character types:\n // L (L): Left-to-Right\n // R (R): Right-to-Left\n // r (AL): Right-to-Left Arabic\n // 1 (EN): European Number\n // + (ES): European Number Separator\n // % (ET): European Number Terminator\n // n (AN): Arabic Number\n // , (CS): Common Number Separator\n // m (NSM): Non-Spacing Mark\n // b (BN): Boundary Neutral\n // s (B): Paragraph Separator\n // t (S): Segment Separator\n // w (WS): Whitespace\n // N (ON): Other Neutrals\n\n // Returns null if characters are ordered as they appear\n // (left-to-right), or an array of sections ({from, to, level}\n // objects) in the order in which they occur visually.\n var bidiOrdering = (function() {\n // Character types for codepoints 0 to 0xff\n var lowTypes = \"bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN\";\n // Character types for codepoints 0x600 to 0x6f9\n var arabicTypes = \"nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111\";\n function charType(code) {\n if (code <= 0xf7) { return lowTypes.charAt(code) }\n else if (0x590 <= code && code <= 0x5f4) { return \"R\" }\n else if (0x600 <= code && code <= 0x6f9) { return arabicTypes.charAt(code - 0x600) }\n else if (0x6ee <= code && code <= 0x8ac) { return \"r\" }\n else if (0x2000 <= code && code <= 0x200b) { return \"w\" }\n else if (code == 0x200c) { return \"b\" }\n else { return \"L\" }\n }\n\n var bidiRE = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac]/;\n var isNeutral = /[stwN]/, isStrong = /[LRr]/, countsAsLeft = /[Lb1n]/, countsAsNum = /[1n]/;\n\n function BidiSpan(level, from, to) {\n this.level = level;\n this.from = from; this.to = to;\n }\n\n return function(str, direction) {\n var outerType = direction == \"ltr\" ? \"L\" : \"R\";\n\n if (str.length == 0 || direction == \"ltr\" && !bidiRE.test(str)) { return false }\n var len = str.length, types = [];\n for (var i = 0; i < len; ++i)\n { types.push(charType(str.charCodeAt(i))); }\n\n // W1. Examine each non-spacing mark (NSM) in the level run, and\n // change the type of the NSM to the type of the previous\n // character. If the NSM is at the start of the level run, it will\n // get the type of sor.\n for (var i$1 = 0, prev = outerType; i$1 < len; ++i$1) {\n var type = types[i$1];\n if (type == \"m\") { types[i$1] = prev; }\n else { prev = type; }\n }\n\n // W2. Search backwards from each instance of a European number\n // until the first strong type (R, L, AL, or sor) is found. If an\n // AL is found, change the type of the European number to Arabic\n // number.\n // W3. Change all ALs to R.\n for (var i$2 = 0, cur = outerType; i$2 < len; ++i$2) {\n var type$1 = types[i$2];\n if (type$1 == \"1\" && cur == \"r\") { types[i$2] = \"n\"; }\n else if (isStrong.test(type$1)) { cur = type$1; if (type$1 == \"r\") { types[i$2] = \"R\"; } }\n }\n\n // W4. A single European separator between two European numbers\n // changes to a European number. A single common separator between\n // two numbers of the same type changes to that type.\n for (var i$3 = 1, prev$1 = types[0]; i$3 < len - 1; ++i$3) {\n var type$2 = types[i$3];\n if (type$2 == \"+\" && prev$1 == \"1\" && types[i$3+1] == \"1\") { types[i$3] = \"1\"; }\n else if (type$2 == \",\" && prev$1 == types[i$3+1] &&\n (prev$1 == \"1\" || prev$1 == \"n\")) { types[i$3] = prev$1; }\n prev$1 = type$2;\n }\n\n // W5. A sequence of European terminators adjacent to European\n // numbers changes to all European numbers.\n // W6. Otherwise, separators and terminators change to Other\n // Neutral.\n for (var i$4 = 0; i$4 < len; ++i$4) {\n var type$3 = types[i$4];\n if (type$3 == \",\") { types[i$4] = \"N\"; }\n else if (type$3 == \"%\") {\n var end = (void 0);\n for (end = i$4 + 1; end < len && types[end] == \"%\"; ++end) {}\n var replace = (i$4 && types[i$4-1] == \"!\") || (end < len && types[end] == \"1\") ? \"1\" : \"N\";\n for (var j = i$4; j < end; ++j) { types[j] = replace; }\n i$4 = end - 1;\n }\n }\n\n // W7. Search backwards from each instance of a European number\n // until the first strong type (R, L, or sor) is found. If an L is\n // found, then change the type of the European number to L.\n for (var i$5 = 0, cur$1 = outerType; i$5 < len; ++i$5) {\n var type$4 = types[i$5];\n if (cur$1 == \"L\" && type$4 == \"1\") { types[i$5] = \"L\"; }\n else if (isStrong.test(type$4)) { cur$1 = type$4; }\n }\n\n // N1. A sequence of neutrals takes the direction of the\n // surrounding strong text if the text on both sides has the same\n // direction. European and Arabic numbers act as if they were R in\n // terms of their influence on neutrals. Start-of-level-run (sor)\n // and end-of-level-run (eor) are used at level run boundaries.\n // N2. Any remaining neutrals take the embedding direction.\n for (var i$6 = 0; i$6 < len; ++i$6) {\n if (isNeutral.test(types[i$6])) {\n var end$1 = (void 0);\n for (end$1 = i$6 + 1; end$1 < len && isNeutral.test(types[end$1]); ++end$1) {}\n var before = (i$6 ? types[i$6-1] : outerType) == \"L\";\n var after = (end$1 < len ? types[end$1] : outerType) == \"L\";\n var replace$1 = before == after ? (before ? \"L\" : \"R\") : outerType;\n for (var j$1 = i$6; j$1 < end$1; ++j$1) { types[j$1] = replace$1; }\n i$6 = end$1 - 1;\n }\n }\n\n // Here we depart from the documented algorithm, in order to avoid\n // building up an actual levels array. Since there are only three\n // levels (0, 1, 2) in an implementation that doesn't take\n // explicit embedding into account, we can build up the order on\n // the fly, without following the level-based algorithm.\n var order = [], m;\n for (var i$7 = 0; i$7 < len;) {\n if (countsAsLeft.test(types[i$7])) {\n var start = i$7;\n for (++i$7; i$7 < len && countsAsLeft.test(types[i$7]); ++i$7) {}\n order.push(new BidiSpan(0, start, i$7));\n } else {\n var pos = i$7, at = order.length, isRTL = direction == \"rtl\" ? 1 : 0;\n for (++i$7; i$7 < len && types[i$7] != \"L\"; ++i$7) {}\n for (var j$2 = pos; j$2 < i$7;) {\n if (countsAsNum.test(types[j$2])) {\n if (pos < j$2) { order.splice(at, 0, new BidiSpan(1, pos, j$2)); at += isRTL; }\n var nstart = j$2;\n for (++j$2; j$2 < i$7 && countsAsNum.test(types[j$2]); ++j$2) {}\n order.splice(at, 0, new BidiSpan(2, nstart, j$2));\n at += isRTL;\n pos = j$2;\n } else { ++j$2; }\n }\n if (pos < i$7) { order.splice(at, 0, new BidiSpan(1, pos, i$7)); }\n }\n }\n if (direction == \"ltr\") {\n if (order[0].level == 1 && (m = str.match(/^\\s+/))) {\n order[0].from = m[0].length;\n order.unshift(new BidiSpan(0, 0, m[0].length));\n }\n if (lst(order).level == 1 && (m = str.match(/\\s+$/))) {\n lst(order).to -= m[0].length;\n order.push(new BidiSpan(0, len - m[0].length, len));\n }\n }\n\n return direction == \"rtl\" ? order.reverse() : order\n }\n })();\n\n // Get the bidi ordering for the given line (and cache it). Returns\n // false for lines that are fully left-to-right, and an array of\n // BidiSpan objects otherwise.\n function getOrder(line, direction) {\n var order = line.order;\n if (order == null) { order = line.order = bidiOrdering(line.text, direction); }\n return order\n }\n\n // EVENT HANDLING\n\n // Lightweight event framework. on/off also work on DOM nodes,\n // registering native DOM handlers.\n\n var noHandlers = [];\n\n var on = function(emitter, type, f) {\n if (emitter.addEventListener) {\n emitter.addEventListener(type, f, false);\n } else if (emitter.attachEvent) {\n emitter.attachEvent(\"on\" + type, f);\n } else {\n var map = emitter._handlers || (emitter._handlers = {});\n map[type] = (map[type] || noHandlers).concat(f);\n }\n };\n\n function getHandlers(emitter, type) {\n return emitter._handlers && emitter._handlers[type] || noHandlers\n }\n\n function off(emitter, type, f) {\n if (emitter.removeEventListener) {\n emitter.removeEventListener(type, f, false);\n } else if (emitter.detachEvent) {\n emitter.detachEvent(\"on\" + type, f);\n } else {\n var map = emitter._handlers, arr = map && map[type];\n if (arr) {\n var index = indexOf(arr, f);\n if (index > -1)\n { map[type] = arr.slice(0, index).concat(arr.slice(index + 1)); }\n }\n }\n }\n\n function signal(emitter, type /*, values...*/) {\n var handlers = getHandlers(emitter, type);\n if (!handlers.length) { return }\n var args = Array.prototype.slice.call(arguments, 2);\n for (var i = 0; i < handlers.length; ++i) { handlers[i].apply(null, args); }\n }\n\n // The DOM events that CodeMirror handles can be overridden by\n // registering a (non-DOM) handler on the editor for the event name,\n // and preventDefault-ing the event in that handler.\n function signalDOMEvent(cm, e, override) {\n if (typeof e == \"string\")\n { e = {type: e, preventDefault: function() { this.defaultPrevented = true; }}; }\n signal(cm, override || e.type, cm, e);\n return e_defaultPrevented(e) || e.codemirrorIgnore\n }\n\n function signalCursorActivity(cm) {\n var arr = cm._handlers && cm._handlers.cursorActivity;\n if (!arr) { return }\n var set = cm.curOp.cursorActivityHandlers || (cm.curOp.cursorActivityHandlers = []);\n for (var i = 0; i < arr.length; ++i) { if (indexOf(set, arr[i]) == -1)\n { set.push(arr[i]); } }\n }\n\n function hasHandler(emitter, type) {\n return getHandlers(emitter, type).length > 0\n }\n\n // Add on and off methods to a constructor's prototype, to make\n // registering events on such objects more convenient.\n function eventMixin(ctor) {\n ctor.prototype.on = function(type, f) {on(this, type, f);};\n ctor.prototype.off = function(type, f) {off(this, type, f);};\n }\n\n // Due to the fact that we still support jurassic IE versions, some\n // compatibility wrappers are needed.\n\n function e_preventDefault(e) {\n if (e.preventDefault) { e.preventDefault(); }\n else { e.returnValue = false; }\n }\n function e_stopPropagation(e) {\n if (e.stopPropagation) { e.stopPropagation(); }\n else { e.cancelBubble = true; }\n }\n function e_defaultPrevented(e) {\n return e.defaultPrevented != null ? e.defaultPrevented : e.returnValue == false\n }\n function e_stop(e) {e_preventDefault(e); e_stopPropagation(e);}\n\n function e_target(e) {return e.target || e.srcElement}\n function e_button(e) {\n var b = e.which;\n if (b == null) {\n if (e.button & 1) { b = 1; }\n else if (e.button & 2) { b = 3; }\n else if (e.button & 4) { b = 2; }\n }\n if (mac && e.ctrlKey && b == 1) { b = 3; }\n return b\n }\n\n // Detect drag-and-drop\n var dragAndDrop = function() {\n // There is *some* kind of drag-and-drop support in IE6-8, but I\n // couldn't get it to work yet.\n if (ie && ie_version < 9) { return false }\n var div = elt('div');\n return \"draggable\" in div || \"dragDrop\" in div\n }();\n\n var zwspSupported;\n function zeroWidthElement(measure) {\n if (zwspSupported == null) {\n var test = elt(\"span\", \"\\u200b\");\n removeChildrenAndAdd(measure, elt(\"span\", [test, document.createTextNode(\"x\")]));\n if (measure.firstChild.offsetHeight != 0)\n { zwspSupported = test.offsetWidth <= 1 && test.offsetHeight > 2 && !(ie && ie_version < 8); }\n }\n var node = zwspSupported ? elt(\"span\", \"\\u200b\") :\n elt(\"span\", \"\\u00a0\", null, \"display: inline-block; width: 1px; margin-right: -1px\");\n node.setAttribute(\"cm-text\", \"\");\n return node\n }\n\n // Feature-detect IE's crummy client rect reporting for bidi text\n var badBidiRects;\n function hasBadBidiRects(measure) {\n if (badBidiRects != null) { return badBidiRects }\n var txt = removeChildrenAndAdd(measure, document.createTextNode(\"A\\u062eA\"));\n var r0 = range(txt, 0, 1).getBoundingClientRect();\n var r1 = range(txt, 1, 2).getBoundingClientRect();\n removeChildren(measure);\n if (!r0 || r0.left == r0.right) { return false } // Safari returns null in some cases (#2780)\n return badBidiRects = (r1.right - r0.right < 3)\n }\n\n // See if \"\".split is the broken IE version, if so, provide an\n // alternative way to split lines.\n var splitLinesAuto = \"\\n\\nb\".split(/\\n/).length != 3 ? function (string) {\n var pos = 0, result = [], l = string.length;\n while (pos <= l) {\n var nl = string.indexOf(\"\\n\", pos);\n if (nl == -1) { nl = string.length; }\n var line = string.slice(pos, string.charAt(nl - 1) == \"\\r\" ? nl - 1 : nl);\n var rt = line.indexOf(\"\\r\");\n if (rt != -1) {\n result.push(line.slice(0, rt));\n pos += rt + 1;\n } else {\n result.push(line);\n pos = nl + 1;\n }\n }\n return result\n } : function (string) { return string.split(/\\r\\n?|\\n/); };\n\n var hasSelection = window.getSelection ? function (te) {\n try { return te.selectionStart != te.selectionEnd }\n catch(e) { return false }\n } : function (te) {\n var range;\n try {range = te.ownerDocument.selection.createRange();}\n catch(e) {}\n if (!range || range.parentElement() != te) { return false }\n return range.compareEndPoints(\"StartToEnd\", range) != 0\n };\n\n var hasCopyEvent = (function () {\n var e = elt(\"div\");\n if (\"oncopy\" in e) { return true }\n e.setAttribute(\"oncopy\", \"return;\");\n return typeof e.oncopy == \"function\"\n })();\n\n var badZoomedRects = null;\n function hasBadZoomedRects(measure) {\n if (badZoomedRects != null) { return badZoomedRects }\n var node = removeChildrenAndAdd(measure, elt(\"span\", \"x\"));\n var normal = node.getBoundingClientRect();\n var fromRange = range(node, 0, 1).getBoundingClientRect();\n return badZoomedRects = Math.abs(normal.left - fromRange.left) > 1\n }\n\n // Known modes, by name and by MIME\n var modes = {}, mimeModes = {};\n\n // Extra arguments are stored as the mode's dependencies, which is\n // used by (legacy) mechanisms like loadmode.js to automatically\n // load a mode. (Preferred mechanism is the require/define calls.)\n function defineMode(name, mode) {\n if (arguments.length > 2)\n { mode.dependencies = Array.prototype.slice.call(arguments, 2); }\n modes[name] = mode;\n }\n\n function defineMIME(mime, spec) {\n mimeModes[mime] = spec;\n }\n\n // Given a MIME type, a {name, ...options} config object, or a name\n // string, return a mode config object.\n function resolveMode(spec) {\n if (typeof spec == \"string\" && mimeModes.hasOwnProperty(spec)) {\n spec = mimeModes[spec];\n } else if (spec && typeof spec.name == \"string\" && mimeModes.hasOwnProperty(spec.name)) {\n var found = mimeModes[spec.name];\n if (typeof found == \"string\") { found = {name: found}; }\n spec = createObj(found, spec);\n spec.name = found.name;\n } else if (typeof spec == \"string\" && /^[\\w\\-]+\\/[\\w\\-]+\\+xml$/.test(spec)) {\n return resolveMode(\"application/xml\")\n } else if (typeof spec == \"string\" && /^[\\w\\-]+\\/[\\w\\-]+\\+json$/.test(spec)) {\n return resolveMode(\"application/json\")\n }\n if (typeof spec == \"string\") { return {name: spec} }\n else { return spec || {name: \"null\"} }\n }\n\n // Given a mode spec (anything that resolveMode accepts), find and\n // initialize an actual mode object.\n function getMode(options, spec) {\n spec = resolveMode(spec);\n var mfactory = modes[spec.name];\n if (!mfactory) { return getMode(options, \"text/plain\") }\n var modeObj = mfactory(options, spec);\n if (modeExtensions.hasOwnProperty(spec.name)) {\n var exts = modeExtensions[spec.name];\n for (var prop in exts) {\n if (!exts.hasOwnProperty(prop)) { continue }\n if (modeObj.hasOwnProperty(prop)) { modeObj[\"_\" + prop] = modeObj[prop]; }\n modeObj[prop] = exts[prop];\n }\n }\n modeObj.name = spec.name;\n if (spec.helperType) { modeObj.helperType = spec.helperType; }\n if (spec.modeProps) { for (var prop$1 in spec.modeProps)\n { modeObj[prop$1] = spec.modeProps[prop$1]; } }\n\n return modeObj\n }\n\n // This can be used to attach properties to mode objects from\n // outside the actual mode definition.\n var modeExtensions = {};\n function extendMode(mode, properties) {\n var exts = modeExtensions.hasOwnProperty(mode) ? modeExtensions[mode] : (modeExtensions[mode] = {});\n copyObj(properties, exts);\n }\n\n function copyState(mode, state) {\n if (state === true) { return state }\n if (mode.copyState) { return mode.copyState(state) }\n var nstate = {};\n for (var n in state) {\n var val = state[n];\n if (val instanceof Array) { val = val.concat([]); }\n nstate[n] = val;\n }\n return nstate\n }\n\n // Given a mode and a state (for that mode), find the inner mode and\n // state at the position that the state refers to.\n function innerMode(mode, state) {\n var info;\n while (mode.innerMode) {\n info = mode.innerMode(state);\n if (!info || info.mode == mode) { break }\n state = info.state;\n mode = info.mode;\n }\n return info || {mode: mode, state: state}\n }\n\n function startState(mode, a1, a2) {\n return mode.startState ? mode.startState(a1, a2) : true\n }\n\n // STRING STREAM\n\n // Fed to the mode parsers, provides helper functions to make\n // parsers more succinct.\n\n var StringStream = function(string, tabSize, lineOracle) {\n this.pos = this.start = 0;\n this.string = string;\n this.tabSize = tabSize || 8;\n this.lastColumnPos = this.lastColumnValue = 0;\n this.lineStart = 0;\n this.lineOracle = lineOracle;\n };\n\n StringStream.prototype.eol = function () {return this.pos >= this.string.length};\n StringStream.prototype.sol = function () {return this.pos == this.lineStart};\n StringStream.prototype.peek = function () {return this.string.charAt(this.pos) || undefined};\n StringStream.prototype.next = function () {\n if (this.pos < this.string.length)\n { return this.string.charAt(this.pos++) }\n };\n StringStream.prototype.eat = function (match) {\n var ch = this.string.charAt(this.pos);\n var ok;\n if (typeof match == \"string\") { ok = ch == match; }\n else { ok = ch && (match.test ? match.test(ch) : match(ch)); }\n if (ok) {++this.pos; return ch}\n };\n StringStream.prototype.eatWhile = function (match) {\n var start = this.pos;\n while (this.eat(match)){}\n return this.pos > start\n };\n StringStream.prototype.eatSpace = function () {\n var start = this.pos;\n while (/[\\s\\u00a0]/.test(this.string.charAt(this.pos))) { ++this.pos; }\n return this.pos > start\n };\n StringStream.prototype.skipToEnd = function () {this.pos = this.string.length;};\n StringStream.prototype.skipTo = function (ch) {\n var found = this.string.indexOf(ch, this.pos);\n if (found > -1) {this.pos = found; return true}\n };\n StringStream.prototype.backUp = function (n) {this.pos -= n;};\n StringStream.prototype.column = function () {\n if (this.lastColumnPos < this.start) {\n this.lastColumnValue = countColumn(this.string, this.start, this.tabSize, this.lastColumnPos, this.lastColumnValue);\n this.lastColumnPos = this.start;\n }\n return this.lastColumnValue - (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0)\n };\n StringStream.prototype.indentation = function () {\n return countColumn(this.string, null, this.tabSize) -\n (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0)\n };\n StringStream.prototype.match = function (pattern, consume, caseInsensitive) {\n if (typeof pattern == \"string\") {\n var cased = function (str) { return caseInsensitive ? str.toLowerCase() : str; };\n var substr = this.string.substr(this.pos, pattern.length);\n if (cased(substr) == cased(pattern)) {\n if (consume !== false) { this.pos += pattern.length; }\n return true\n }\n } else {\n var match = this.string.slice(this.pos).match(pattern);\n if (match && match.index > 0) { return null }\n if (match && consume !== false) { this.pos += match[0].length; }\n return match\n }\n };\n StringStream.prototype.current = function (){return this.string.slice(this.start, this.pos)};\n StringStream.prototype.hideFirstChars = function (n, inner) {\n this.lineStart += n;\n try { return inner() }\n finally { this.lineStart -= n; }\n };\n StringStream.prototype.lookAhead = function (n) {\n var oracle = this.lineOracle;\n return oracle && oracle.lookAhead(n)\n };\n StringStream.prototype.baseToken = function () {\n var oracle = this.lineOracle;\n return oracle && oracle.baseToken(this.pos)\n };\n\n // Find the line object corresponding to the given line number.\n function getLine(doc, n) {\n n -= doc.first;\n if (n < 0 || n >= doc.size) { throw new Error(\"There is no line \" + (n + doc.first) + \" in the document.\") }\n var chunk = doc;\n while (!chunk.lines) {\n for (var i = 0;; ++i) {\n var child = chunk.children[i], sz = child.chunkSize();\n if (n < sz) { chunk = child; break }\n n -= sz;\n }\n }\n return chunk.lines[n]\n }\n\n // Get the part of a document between two positions, as an array of\n // strings.\n function getBetween(doc, start, end) {\n var out = [], n = start.line;\n doc.iter(start.line, end.line + 1, function (line) {\n var text = line.text;\n if (n == end.line) { text = text.slice(0, end.ch); }\n if (n == start.line) { text = text.slice(start.ch); }\n out.push(text);\n ++n;\n });\n return out\n }\n // Get the lines between from and to, as array of strings.\n function getLines(doc, from, to) {\n var out = [];\n doc.iter(from, to, function (line) { out.push(line.text); }); // iter aborts when callback returns truthy value\n return out\n }\n\n // Update the height of a line, propagating the height change\n // upwards to parent nodes.\n function updateLineHeight(line, height) {\n var diff = height - line.height;\n if (diff) { for (var n = line; n; n = n.parent) { n.height += diff; } }\n }\n\n // Given a line object, find its line number by walking up through\n // its parent links.\n function lineNo(line) {\n if (line.parent == null) { return null }\n var cur = line.parent, no = indexOf(cur.lines, line);\n for (var chunk = cur.parent; chunk; cur = chunk, chunk = chunk.parent) {\n for (var i = 0;; ++i) {\n if (chunk.children[i] == cur) { break }\n no += chunk.children[i].chunkSize();\n }\n }\n return no + cur.first\n }\n\n // Find the line at the given vertical position, using the height\n // information in the document tree.\n function lineAtHeight(chunk, h) {\n var n = chunk.first;\n outer: do {\n for (var i$1 = 0; i$1 < chunk.children.length; ++i$1) {\n var child = chunk.children[i$1], ch = child.height;\n if (h < ch) { chunk = child; continue outer }\n h -= ch;\n n += child.chunkSize();\n }\n return n\n } while (!chunk.lines)\n var i = 0;\n for (; i < chunk.lines.length; ++i) {\n var line = chunk.lines[i], lh = line.height;\n if (h < lh) { break }\n h -= lh;\n }\n return n + i\n }\n\n function isLine(doc, l) {return l >= doc.first && l < doc.first + doc.size}\n\n function lineNumberFor(options, i) {\n return String(options.lineNumberFormatter(i + options.firstLineNumber))\n }\n\n // A Pos instance represents a position within the text.\n function Pos(line, ch, sticky) {\n if ( sticky === void 0 ) sticky = null;\n\n if (!(this instanceof Pos)) { return new Pos(line, ch, sticky) }\n this.line = line;\n this.ch = ch;\n this.sticky = sticky;\n }\n\n // Compare two positions, return 0 if they are the same, a negative\n // number when a is less, and a positive number otherwise.\n function cmp(a, b) { return a.line - b.line || a.ch - b.ch }\n\n function equalCursorPos(a, b) { return a.sticky == b.sticky && cmp(a, b) == 0 }\n\n function copyPos(x) {return Pos(x.line, x.ch)}\n function maxPos(a, b) { return cmp(a, b) < 0 ? b : a }\n function minPos(a, b) { return cmp(a, b) < 0 ? a : b }\n\n // Most of the external API clips given positions to make sure they\n // actually exist within the document.\n function clipLine(doc, n) {return Math.max(doc.first, Math.min(n, doc.first + doc.size - 1))}\n function clipPos(doc, pos) {\n if (pos.line < doc.first) { return Pos(doc.first, 0) }\n var last = doc.first + doc.size - 1;\n if (pos.line > last) { return Pos(last, getLine(doc, last).text.length) }\n return clipToLen(pos, getLine(doc, pos.line).text.length)\n }\n function clipToLen(pos, linelen) {\n var ch = pos.ch;\n if (ch == null || ch > linelen) { return Pos(pos.line, linelen) }\n else if (ch < 0) { return Pos(pos.line, 0) }\n else { return pos }\n }\n function clipPosArray(doc, array) {\n var out = [];\n for (var i = 0; i < array.length; i++) { out[i] = clipPos(doc, array[i]); }\n return out\n }\n\n var SavedContext = function(state, lookAhead) {\n this.state = state;\n this.lookAhead = lookAhead;\n };\n\n var Context = function(doc, state, line, lookAhead) {\n this.state = state;\n this.doc = doc;\n this.line = line;\n this.maxLookAhead = lookAhead || 0;\n this.baseTokens = null;\n this.baseTokenPos = 1;\n };\n\n Context.prototype.lookAhead = function (n) {\n var line = this.doc.getLine(this.line + n);\n if (line != null && n > this.maxLookAhead) { this.maxLookAhead = n; }\n return line\n };\n\n Context.prototype.baseToken = function (n) {\n if (!this.baseTokens) { return null }\n while (this.baseTokens[this.baseTokenPos] <= n)\n { this.baseTokenPos += 2; }\n var type = this.baseTokens[this.baseTokenPos + 1];\n return {type: type && type.replace(/( |^)overlay .*/, \"\"),\n size: this.baseTokens[this.baseTokenPos] - n}\n };\n\n Context.prototype.nextLine = function () {\n this.line++;\n if (this.maxLookAhead > 0) { this.maxLookAhead--; }\n };\n\n Context.fromSaved = function (doc, saved, line) {\n if (saved instanceof SavedContext)\n { return new Context(doc, copyState(doc.mode, saved.state), line, saved.lookAhead) }\n else\n { return new Context(doc, copyState(doc.mode, saved), line) }\n };\n\n Context.prototype.save = function (copy) {\n var state = copy !== false ? copyState(this.doc.mode, this.state) : this.state;\n return this.maxLookAhead > 0 ? new SavedContext(state, this.maxLookAhead) : state\n };\n\n\n // Compute a style array (an array starting with a mode generation\n // -- for invalidation -- followed by pairs of end positions and\n // style strings), which is used to highlight the tokens on the\n // line.\n function highlightLine(cm, line, context, forceToEnd) {\n // A styles array always starts with a number identifying the\n // mode/overlays that it is based on (for easy invalidation).\n var st = [cm.state.modeGen], lineClasses = {};\n // Compute the base array of styles\n runMode(cm, line.text, cm.doc.mode, context, function (end, style) { return st.push(end, style); },\n lineClasses, forceToEnd);\n var state = context.state;\n\n // Run overlays, adjust style array.\n var loop = function ( o ) {\n context.baseTokens = st;\n var overlay = cm.state.overlays[o], i = 1, at = 0;\n context.state = true;\n runMode(cm, line.text, overlay.mode, context, function (end, style) {\n var start = i;\n // Ensure there's a token end at the current position, and that i points at it\n while (at < end) {\n var i_end = st[i];\n if (i_end > end)\n { st.splice(i, 1, end, st[i+1], i_end); }\n i += 2;\n at = Math.min(end, i_end);\n }\n if (!style) { return }\n if (overlay.opaque) {\n st.splice(start, i - start, end, \"overlay \" + style);\n i = start + 2;\n } else {\n for (; start < i; start += 2) {\n var cur = st[start+1];\n st[start+1] = (cur ? cur + \" \" : \"\") + \"overlay \" + style;\n }\n }\n }, lineClasses);\n context.state = state;\n context.baseTokens = null;\n context.baseTokenPos = 1;\n };\n\n for (var o = 0; o < cm.state.overlays.length; ++o) loop( o );\n\n return {styles: st, classes: lineClasses.bgClass || lineClasses.textClass ? lineClasses : null}\n }\n\n function getLineStyles(cm, line, updateFrontier) {\n if (!line.styles || line.styles[0] != cm.state.modeGen) {\n var context = getContextBefore(cm, lineNo(line));\n var resetState = line.text.length > cm.options.maxHighlightLength && copyState(cm.doc.mode, context.state);\n var result = highlightLine(cm, line, context);\n if (resetState) { context.state = resetState; }\n line.stateAfter = context.save(!resetState);\n line.styles = result.styles;\n if (result.classes) { line.styleClasses = result.classes; }\n else if (line.styleClasses) { line.styleClasses = null; }\n if (updateFrontier === cm.doc.highlightFrontier)\n { cm.doc.modeFrontier = Math.max(cm.doc.modeFrontier, ++cm.doc.highlightFrontier); }\n }\n return line.styles\n }\n\n function getContextBefore(cm, n, precise) {\n var doc = cm.doc, display = cm.display;\n if (!doc.mode.startState) { return new Context(doc, true, n) }\n var start = findStartLine(cm, n, precise);\n var saved = start > doc.first && getLine(doc, start - 1).stateAfter;\n var context = saved ? Context.fromSaved(doc, saved, start) : new Context(doc, startState(doc.mode), start);\n\n doc.iter(start, n, function (line) {\n processLine(cm, line.text, context);\n var pos = context.line;\n line.stateAfter = pos == n - 1 || pos % 5 == 0 || pos >= display.viewFrom && pos < display.viewTo ? context.save() : null;\n context.nextLine();\n });\n if (precise) { doc.modeFrontier = context.line; }\n return context\n }\n\n // Lightweight form of highlight -- proceed over this line and\n // update state, but don't save a style array. Used for lines that\n // aren't currently visible.\n function processLine(cm, text, context, startAt) {\n var mode = cm.doc.mode;\n var stream = new StringStream(text, cm.options.tabSize, context);\n stream.start = stream.pos = startAt || 0;\n if (text == \"\") { callBlankLine(mode, context.state); }\n while (!stream.eol()) {\n readToken(mode, stream, context.state);\n stream.start = stream.pos;\n }\n }\n\n function callBlankLine(mode, state) {\n if (mode.blankLine) { return mode.blankLine(state) }\n if (!mode.innerMode) { return }\n var inner = innerMode(mode, state);\n if (inner.mode.blankLine) { return inner.mode.blankLine(inner.state) }\n }\n\n function readToken(mode, stream, state, inner) {\n for (var i = 0; i < 10; i++) {\n if (inner) { inner[0] = innerMode(mode, state).mode; }\n var style = mode.token(stream, state);\n if (stream.pos > stream.start) { return style }\n }\n throw new Error(\"Mode \" + mode.name + \" failed to advance stream.\")\n }\n\n var Token = function(stream, type, state) {\n this.start = stream.start; this.end = stream.pos;\n this.string = stream.current();\n this.type = type || null;\n this.state = state;\n };\n\n // Utility for getTokenAt and getLineTokens\n function takeToken(cm, pos, precise, asArray) {\n var doc = cm.doc, mode = doc.mode, style;\n pos = clipPos(doc, pos);\n var line = getLine(doc, pos.line), context = getContextBefore(cm, pos.line, precise);\n var stream = new StringStream(line.text, cm.options.tabSize, context), tokens;\n if (asArray) { tokens = []; }\n while ((asArray || stream.pos < pos.ch) && !stream.eol()) {\n stream.start = stream.pos;\n style = readToken(mode, stream, context.state);\n if (asArray) { tokens.push(new Token(stream, style, copyState(doc.mode, context.state))); }\n }\n return asArray ? tokens : new Token(stream, style, context.state)\n }\n\n function extractLineClasses(type, output) {\n if (type) { for (;;) {\n var lineClass = type.match(/(?:^|\\s+)line-(background-)?(\\S+)/);\n if (!lineClass) { break }\n type = type.slice(0, lineClass.index) + type.slice(lineClass.index + lineClass[0].length);\n var prop = lineClass[1] ? \"bgClass\" : \"textClass\";\n if (output[prop] == null)\n { output[prop] = lineClass[2]; }\n else if (!(new RegExp(\"(?:^|\\\\s)\" + lineClass[2] + \"(?:$|\\\\s)\")).test(output[prop]))\n { output[prop] += \" \" + lineClass[2]; }\n } }\n return type\n }\n\n // Run the given mode's parser over a line, calling f for each token.\n function runMode(cm, text, mode, context, f, lineClasses, forceToEnd) {\n var flattenSpans = mode.flattenSpans;\n if (flattenSpans == null) { flattenSpans = cm.options.flattenSpans; }\n var curStart = 0, curStyle = null;\n var stream = new StringStream(text, cm.options.tabSize, context), style;\n var inner = cm.options.addModeClass && [null];\n if (text == \"\") { extractLineClasses(callBlankLine(mode, context.state), lineClasses); }\n while (!stream.eol()) {\n if (stream.pos > cm.options.maxHighlightLength) {\n flattenSpans = false;\n if (forceToEnd) { processLine(cm, text, context, stream.pos); }\n stream.pos = text.length;\n style = null;\n } else {\n style = extractLineClasses(readToken(mode, stream, context.state, inner), lineClasses);\n }\n if (inner) {\n var mName = inner[0].name;\n if (mName) { style = \"m-\" + (style ? mName + \" \" + style : mName); }\n }\n if (!flattenSpans || curStyle != style) {\n while (curStart < stream.start) {\n curStart = Math.min(stream.start, curStart + 5000);\n f(curStart, curStyle);\n }\n curStyle = style;\n }\n stream.start = stream.pos;\n }\n while (curStart < stream.pos) {\n // Webkit seems to refuse to render text nodes longer than 57444\n // characters, and returns inaccurate measurements in nodes\n // starting around 5000 chars.\n var pos = Math.min(stream.pos, curStart + 5000);\n f(pos, curStyle);\n curStart = pos;\n }\n }\n\n // Finds the line to start with when starting a parse. Tries to\n // find a line with a stateAfter, so that it can start with a\n // valid state. If that fails, it returns the line with the\n // smallest indentation, which tends to need the least context to\n // parse correctly.\n function findStartLine(cm, n, precise) {\n var minindent, minline, doc = cm.doc;\n var lim = precise ? -1 : n - (cm.doc.mode.innerMode ? 1000 : 100);\n for (var search = n; search > lim; --search) {\n if (search <= doc.first) { return doc.first }\n var line = getLine(doc, search - 1), after = line.stateAfter;\n if (after && (!precise || search + (after instanceof SavedContext ? after.lookAhead : 0) <= doc.modeFrontier))\n { return search }\n var indented = countColumn(line.text, null, cm.options.tabSize);\n if (minline == null || minindent > indented) {\n minline = search - 1;\n minindent = indented;\n }\n }\n return minline\n }\n\n function retreatFrontier(doc, n) {\n doc.modeFrontier = Math.min(doc.modeFrontier, n);\n if (doc.highlightFrontier < n - 10) { return }\n var start = doc.first;\n for (var line = n - 1; line > start; line--) {\n var saved = getLine(doc, line).stateAfter;\n // change is on 3\n // state on line 1 looked ahead 2 -- so saw 3\n // test 1 + 2 < 3 should cover this\n if (saved && (!(saved instanceof SavedContext) || line + saved.lookAhead < n)) {\n start = line + 1;\n break\n }\n }\n doc.highlightFrontier = Math.min(doc.highlightFrontier, start);\n }\n\n // Optimize some code when these features are not used.\n var sawReadOnlySpans = false, sawCollapsedSpans = false;\n\n function seeReadOnlySpans() {\n sawReadOnlySpans = true;\n }\n\n function seeCollapsedSpans() {\n sawCollapsedSpans = true;\n }\n\n // TEXTMARKER SPANS\n\n function MarkedSpan(marker, from, to) {\n this.marker = marker;\n this.from = from; this.to = to;\n }\n\n // Search an array of spans for a span matching the given marker.\n function getMarkedSpanFor(spans, marker) {\n if (spans) { for (var i = 0; i < spans.length; ++i) {\n var span = spans[i];\n if (span.marker == marker) { return span }\n } }\n }\n\n // Remove a span from an array, returning undefined if no spans are\n // left (we don't store arrays for lines without spans).\n function removeMarkedSpan(spans, span) {\n var r;\n for (var i = 0; i < spans.length; ++i)\n { if (spans[i] != span) { (r || (r = [])).push(spans[i]); } }\n return r\n }\n\n // Add a span to a line.\n function addMarkedSpan(line, span, op) {\n var inThisOp = op && window.WeakSet && (op.markedSpans || (op.markedSpans = new WeakSet));\n if (inThisOp && line.markedSpans && inThisOp.has(line.markedSpans)) {\n line.markedSpans.push(span);\n } else {\n line.markedSpans = line.markedSpans ? line.markedSpans.concat([span]) : [span];\n if (inThisOp) { inThisOp.add(line.markedSpans); }\n }\n span.marker.attachLine(line);\n }\n\n // Used for the algorithm that adjusts markers for a change in the\n // document. These functions cut an array of spans at a given\n // character position, returning an array of remaining chunks (or\n // undefined if nothing remains).\n function markedSpansBefore(old, startCh, isInsert) {\n var nw;\n if (old) { for (var i = 0; i < old.length; ++i) {\n var span = old[i], marker = span.marker;\n var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= startCh : span.from < startCh);\n if (startsBefore || span.from == startCh && marker.type == \"bookmark\" && (!isInsert || !span.marker.insertLeft)) {\n var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= startCh : span.to > startCh)\n ;(nw || (nw = [])).push(new MarkedSpan(marker, span.from, endsAfter ? null : span.to));\n }\n } }\n return nw\n }\n function markedSpansAfter(old, endCh, isInsert) {\n var nw;\n if (old) { for (var i = 0; i < old.length; ++i) {\n var span = old[i], marker = span.marker;\n var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= endCh : span.to > endCh);\n if (endsAfter || span.from == endCh && marker.type == \"bookmark\" && (!isInsert || span.marker.insertLeft)) {\n var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= endCh : span.from < endCh)\n ;(nw || (nw = [])).push(new MarkedSpan(marker, startsBefore ? null : span.from - endCh,\n span.to == null ? null : span.to - endCh));\n }\n } }\n return nw\n }\n\n // Given a change object, compute the new set of marker spans that\n // cover the line in which the change took place. Removes spans\n // entirely within the change, reconnects spans belonging to the\n // same marker that appear on both sides of the change, and cuts off\n // spans partially within the change. Returns an array of span\n // arrays with one element for each line in (after) the change.\n function stretchSpansOverChange(doc, change) {\n if (change.full) { return null }\n var oldFirst = isLine(doc, change.from.line) && getLine(doc, change.from.line).markedSpans;\n var oldLast = isLine(doc, change.to.line) && getLine(doc, change.to.line).markedSpans;\n if (!oldFirst && !oldLast) { return null }\n\n var startCh = change.from.ch, endCh = change.to.ch, isInsert = cmp(change.from, change.to) == 0;\n // Get the spans that 'stick out' on both sides\n var first = markedSpansBefore(oldFirst, startCh, isInsert);\n var last = markedSpansAfter(oldLast, endCh, isInsert);\n\n // Next, merge those two ends\n var sameLine = change.text.length == 1, offset = lst(change.text).length + (sameLine ? startCh : 0);\n if (first) {\n // Fix up .to properties of first\n for (var i = 0; i < first.length; ++i) {\n var span = first[i];\n if (span.to == null) {\n var found = getMarkedSpanFor(last, span.marker);\n if (!found) { span.to = startCh; }\n else if (sameLine) { span.to = found.to == null ? null : found.to + offset; }\n }\n }\n }\n if (last) {\n // Fix up .from in last (or move them into first in case of sameLine)\n for (var i$1 = 0; i$1 < last.length; ++i$1) {\n var span$1 = last[i$1];\n if (span$1.to != null) { span$1.to += offset; }\n if (span$1.from == null) {\n var found$1 = getMarkedSpanFor(first, span$1.marker);\n if (!found$1) {\n span$1.from = offset;\n if (sameLine) { (first || (first = [])).push(span$1); }\n }\n } else {\n span$1.from += offset;\n if (sameLine) { (first || (first = [])).push(span$1); }\n }\n }\n }\n // Make sure we didn't create any zero-length spans\n if (first) { first = clearEmptySpans(first); }\n if (last && last != first) { last = clearEmptySpans(last); }\n\n var newMarkers = [first];\n if (!sameLine) {\n // Fill gap with whole-line-spans\n var gap = change.text.length - 2, gapMarkers;\n if (gap > 0 && first)\n { for (var i$2 = 0; i$2 < first.length; ++i$2)\n { if (first[i$2].to == null)\n { (gapMarkers || (gapMarkers = [])).push(new MarkedSpan(first[i$2].marker, null, null)); } } }\n for (var i$3 = 0; i$3 < gap; ++i$3)\n { newMarkers.push(gapMarkers); }\n newMarkers.push(last);\n }\n return newMarkers\n }\n\n // Remove spans that are empty and don't have a clearWhenEmpty\n // option of false.\n function clearEmptySpans(spans) {\n for (var i = 0; i < spans.length; ++i) {\n var span = spans[i];\n if (span.from != null && span.from == span.to && span.marker.clearWhenEmpty !== false)\n { spans.splice(i--, 1); }\n }\n if (!spans.length) { return null }\n return spans\n }\n\n // Used to 'clip' out readOnly ranges when making a change.\n function removeReadOnlyRanges(doc, from, to) {\n var markers = null;\n doc.iter(from.line, to.line + 1, function (line) {\n if (line.markedSpans) { for (var i = 0; i < line.markedSpans.length; ++i) {\n var mark = line.markedSpans[i].marker;\n if (mark.readOnly && (!markers || indexOf(markers, mark) == -1))\n { (markers || (markers = [])).push(mark); }\n } }\n });\n if (!markers) { return null }\n var parts = [{from: from, to: to}];\n for (var i = 0; i < markers.length; ++i) {\n var mk = markers[i], m = mk.find(0);\n for (var j = 0; j < parts.length; ++j) {\n var p = parts[j];\n if (cmp(p.to, m.from) < 0 || cmp(p.from, m.to) > 0) { continue }\n var newParts = [j, 1], dfrom = cmp(p.from, m.from), dto = cmp(p.to, m.to);\n if (dfrom < 0 || !mk.inclusiveLeft && !dfrom)\n { newParts.push({from: p.from, to: m.from}); }\n if (dto > 0 || !mk.inclusiveRight && !dto)\n { newParts.push({from: m.to, to: p.to}); }\n parts.splice.apply(parts, newParts);\n j += newParts.length - 3;\n }\n }\n return parts\n }\n\n // Connect or disconnect spans from a line.\n function detachMarkedSpans(line) {\n var spans = line.markedSpans;\n if (!spans) { return }\n for (var i = 0; i < spans.length; ++i)\n { spans[i].marker.detachLine(line); }\n line.markedSpans = null;\n }\n function attachMarkedSpans(line, spans) {\n if (!spans) { return }\n for (var i = 0; i < spans.length; ++i)\n { spans[i].marker.attachLine(line); }\n line.markedSpans = spans;\n }\n\n // Helpers used when computing which overlapping collapsed span\n // counts as the larger one.\n function extraLeft(marker) { return marker.inclusiveLeft ? -1 : 0 }\n function extraRight(marker) { return marker.inclusiveRight ? 1 : 0 }\n\n // Returns a number indicating which of two overlapping collapsed\n // spans is larger (and thus includes the other). Falls back to\n // comparing ids when the spans cover exactly the same range.\n function compareCollapsedMarkers(a, b) {\n var lenDiff = a.lines.length - b.lines.length;\n if (lenDiff != 0) { return lenDiff }\n var aPos = a.find(), bPos = b.find();\n var fromCmp = cmp(aPos.from, bPos.from) || extraLeft(a) - extraLeft(b);\n if (fromCmp) { return -fromCmp }\n var toCmp = cmp(aPos.to, bPos.to) || extraRight(a) - extraRight(b);\n if (toCmp) { return toCmp }\n return b.id - a.id\n }\n\n // Find out whether a line ends or starts in a collapsed span. If\n // so, return the marker for that span.\n function collapsedSpanAtSide(line, start) {\n var sps = sawCollapsedSpans && line.markedSpans, found;\n if (sps) { for (var sp = (void 0), i = 0; i < sps.length; ++i) {\n sp = sps[i];\n if (sp.marker.collapsed && (start ? sp.from : sp.to) == null &&\n (!found || compareCollapsedMarkers(found, sp.marker) < 0))\n { found = sp.marker; }\n } }\n return found\n }\n function collapsedSpanAtStart(line) { return collapsedSpanAtSide(line, true) }\n function collapsedSpanAtEnd(line) { return collapsedSpanAtSide(line, false) }\n\n function collapsedSpanAround(line, ch) {\n var sps = sawCollapsedSpans && line.markedSpans, found;\n if (sps) { for (var i = 0; i < sps.length; ++i) {\n var sp = sps[i];\n if (sp.marker.collapsed && (sp.from == null || sp.from < ch) && (sp.to == null || sp.to > ch) &&\n (!found || compareCollapsedMarkers(found, sp.marker) < 0)) { found = sp.marker; }\n } }\n return found\n }\n\n // Test whether there exists a collapsed span that partially\n // overlaps (covers the start or end, but not both) of a new span.\n // Such overlap is not allowed.\n function conflictingCollapsedRange(doc, lineNo, from, to, marker) {\n var line = getLine(doc, lineNo);\n var sps = sawCollapsedSpans && line.markedSpans;\n if (sps) { for (var i = 0; i < sps.length; ++i) {\n var sp = sps[i];\n if (!sp.marker.collapsed) { continue }\n var found = sp.marker.find(0);\n var fromCmp = cmp(found.from, from) || extraLeft(sp.marker) - extraLeft(marker);\n var toCmp = cmp(found.to, to) || extraRight(sp.marker) - extraRight(marker);\n if (fromCmp >= 0 && toCmp <= 0 || fromCmp <= 0 && toCmp >= 0) { continue }\n if (fromCmp <= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.to, from) >= 0 : cmp(found.to, from) > 0) ||\n fromCmp >= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.from, to) <= 0 : cmp(found.from, to) < 0))\n { return true }\n } }\n }\n\n // A visual line is a line as drawn on the screen. Folding, for\n // example, can cause multiple logical lines to appear on the same\n // visual line. This finds the start of the visual line that the\n // given line is part of (usually that is the line itself).\n function visualLine(line) {\n var merged;\n while (merged = collapsedSpanAtStart(line))\n { line = merged.find(-1, true).line; }\n return line\n }\n\n function visualLineEnd(line) {\n var merged;\n while (merged = collapsedSpanAtEnd(line))\n { line = merged.find(1, true).line; }\n return line\n }\n\n // Returns an array of logical lines that continue the visual line\n // started by the argument, or undefined if there are no such lines.\n function visualLineContinued(line) {\n var merged, lines;\n while (merged = collapsedSpanAtEnd(line)) {\n line = merged.find(1, true).line\n ;(lines || (lines = [])).push(line);\n }\n return lines\n }\n\n // Get the line number of the start of the visual line that the\n // given line number is part of.\n function visualLineNo(doc, lineN) {\n var line = getLine(doc, lineN), vis = visualLine(line);\n if (line == vis) { return lineN }\n return lineNo(vis)\n }\n\n // Get the line number of the start of the next visual line after\n // the given line.\n function visualLineEndNo(doc, lineN) {\n if (lineN > doc.lastLine()) { return lineN }\n var line = getLine(doc, lineN), merged;\n if (!lineIsHidden(doc, line)) { return lineN }\n while (merged = collapsedSpanAtEnd(line))\n { line = merged.find(1, true).line; }\n return lineNo(line) + 1\n }\n\n // Compute whether a line is hidden. Lines count as hidden when they\n // are part of a visual line that starts with another line, or when\n // they are entirely covered by collapsed, non-widget span.\n function lineIsHidden(doc, line) {\n var sps = sawCollapsedSpans && line.markedSpans;\n if (sps) { for (var sp = (void 0), i = 0; i < sps.length; ++i) {\n sp = sps[i];\n if (!sp.marker.collapsed) { continue }\n if (sp.from == null) { return true }\n if (sp.marker.widgetNode) { continue }\n if (sp.from == 0 && sp.marker.inclusiveLeft && lineIsHiddenInner(doc, line, sp))\n { return true }\n } }\n }\n function lineIsHiddenInner(doc, line, span) {\n if (span.to == null) {\n var end = span.marker.find(1, true);\n return lineIsHiddenInner(doc, end.line, getMarkedSpanFor(end.line.markedSpans, span.marker))\n }\n if (span.marker.inclusiveRight && span.to == line.text.length)\n { return true }\n for (var sp = (void 0), i = 0; i < line.markedSpans.length; ++i) {\n sp = line.markedSpans[i];\n if (sp.marker.collapsed && !sp.marker.widgetNode && sp.from == span.to &&\n (sp.to == null || sp.to != span.from) &&\n (sp.marker.inclusiveLeft || span.marker.inclusiveRight) &&\n lineIsHiddenInner(doc, line, sp)) { return true }\n }\n }\n\n // Find the height above the given line.\n function heightAtLine(lineObj) {\n lineObj = visualLine(lineObj);\n\n var h = 0, chunk = lineObj.parent;\n for (var i = 0; i < chunk.lines.length; ++i) {\n var line = chunk.lines[i];\n if (line == lineObj) { break }\n else { h += line.height; }\n }\n for (var p = chunk.parent; p; chunk = p, p = chunk.parent) {\n for (var i$1 = 0; i$1 < p.children.length; ++i$1) {\n var cur = p.children[i$1];\n if (cur == chunk) { break }\n else { h += cur.height; }\n }\n }\n return h\n }\n\n // Compute the character length of a line, taking into account\n // collapsed ranges (see markText) that might hide parts, and join\n // other lines onto it.\n function lineLength(line) {\n if (line.height == 0) { return 0 }\n var len = line.text.length, merged, cur = line;\n while (merged = collapsedSpanAtStart(cur)) {\n var found = merged.find(0, true);\n cur = found.from.line;\n len += found.from.ch - found.to.ch;\n }\n cur = line;\n while (merged = collapsedSpanAtEnd(cur)) {\n var found$1 = merged.find(0, true);\n len -= cur.text.length - found$1.from.ch;\n cur = found$1.to.line;\n len += cur.text.length - found$1.to.ch;\n }\n return len\n }\n\n // Find the longest line in the document.\n function findMaxLine(cm) {\n var d = cm.display, doc = cm.doc;\n d.maxLine = getLine(doc, doc.first);\n d.maxLineLength = lineLength(d.maxLine);\n d.maxLineChanged = true;\n doc.iter(function (line) {\n var len = lineLength(line);\n if (len > d.maxLineLength) {\n d.maxLineLength = len;\n d.maxLine = line;\n }\n });\n }\n\n // LINE DATA STRUCTURE\n\n // Line objects. These hold state related to a line, including\n // highlighting info (the styles array).\n var Line = function(text, markedSpans, estimateHeight) {\n this.text = text;\n attachMarkedSpans(this, markedSpans);\n this.height = estimateHeight ? estimateHeight(this) : 1;\n };\n\n Line.prototype.lineNo = function () { return lineNo(this) };\n eventMixin(Line);\n\n // Change the content (text, markers) of a line. Automatically\n // invalidates cached information and tries to re-estimate the\n // line's height.\n function updateLine(line, text, markedSpans, estimateHeight) {\n line.text = text;\n if (line.stateAfter) { line.stateAfter = null; }\n if (line.styles) { line.styles = null; }\n if (line.order != null) { line.order = null; }\n detachMarkedSpans(line);\n attachMarkedSpans(line, markedSpans);\n var estHeight = estimateHeight ? estimateHeight(line) : 1;\n if (estHeight != line.height) { updateLineHeight(line, estHeight); }\n }\n\n // Detach a line from the document tree and its markers.\n function cleanUpLine(line) {\n line.parent = null;\n detachMarkedSpans(line);\n }\n\n // Convert a style as returned by a mode (either null, or a string\n // containing one or more styles) to a CSS style. This is cached,\n // and also looks for line-wide styles.\n var styleToClassCache = {}, styleToClassCacheWithMode = {};\n function interpretTokenStyle(style, options) {\n if (!style || /^\\s*$/.test(style)) { return null }\n var cache = options.addModeClass ? styleToClassCacheWithMode : styleToClassCache;\n return cache[style] ||\n (cache[style] = style.replace(/\\S+/g, \"cm-$&\"))\n }\n\n // Render the DOM representation of the text of a line. Also builds\n // up a 'line map', which points at the DOM nodes that represent\n // specific stretches of text, and is used by the measuring code.\n // The returned object contains the DOM node, this map, and\n // information about line-wide styles that were set by the mode.\n function buildLineContent(cm, lineView) {\n // The padding-right forces the element to have a 'border', which\n // is needed on Webkit to be able to get line-level bounding\n // rectangles for it (in measureChar).\n var content = eltP(\"span\", null, null, webkit ? \"padding-right: .1px\" : null);\n var builder = {pre: eltP(\"pre\", [content], \"CodeMirror-line\"), content: content,\n col: 0, pos: 0, cm: cm,\n trailingSpace: false,\n splitSpaces: cm.getOption(\"lineWrapping\")};\n lineView.measure = {};\n\n // Iterate over the logical lines that make up this visual line.\n for (var i = 0; i <= (lineView.rest ? lineView.rest.length : 0); i++) {\n var line = i ? lineView.rest[i - 1] : lineView.line, order = (void 0);\n builder.pos = 0;\n builder.addToken = buildToken;\n // Optionally wire in some hacks into the token-rendering\n // algorithm, to deal with browser quirks.\n if (hasBadBidiRects(cm.display.measure) && (order = getOrder(line, cm.doc.direction)))\n { builder.addToken = buildTokenBadBidi(builder.addToken, order); }\n builder.map = [];\n var allowFrontierUpdate = lineView != cm.display.externalMeasured && lineNo(line);\n insertLineContent(line, builder, getLineStyles(cm, line, allowFrontierUpdate));\n if (line.styleClasses) {\n if (line.styleClasses.bgClass)\n { builder.bgClass = joinClasses(line.styleClasses.bgClass, builder.bgClass || \"\"); }\n if (line.styleClasses.textClass)\n { builder.textClass = joinClasses(line.styleClasses.textClass, builder.textClass || \"\"); }\n }\n\n // Ensure at least a single node is present, for measuring.\n if (builder.map.length == 0)\n { builder.map.push(0, 0, builder.content.appendChild(zeroWidthElement(cm.display.measure))); }\n\n // Store the map and a cache object for the current logical line\n if (i == 0) {\n lineView.measure.map = builder.map;\n lineView.measure.cache = {};\n } else {\n (lineView.measure.maps || (lineView.measure.maps = [])).push(builder.map)\n ;(lineView.measure.caches || (lineView.measure.caches = [])).push({});\n }\n }\n\n // See issue #2901\n if (webkit) {\n var last = builder.content.lastChild;\n if (/\\bcm-tab\\b/.test(last.className) || (last.querySelector && last.querySelector(\".cm-tab\")))\n { builder.content.className = \"cm-tab-wrap-hack\"; }\n }\n\n signal(cm, \"renderLine\", cm, lineView.line, builder.pre);\n if (builder.pre.className)\n { builder.textClass = joinClasses(builder.pre.className, builder.textClass || \"\"); }\n\n return builder\n }\n\n function defaultSpecialCharPlaceholder(ch) {\n var token = elt(\"span\", \"\\u2022\", \"cm-invalidchar\");\n token.title = \"\\\\u\" + ch.charCodeAt(0).toString(16);\n token.setAttribute(\"aria-label\", token.title);\n return token\n }\n\n // Build up the DOM representation for a single token, and add it to\n // the line map. Takes care to render special characters separately.\n function buildToken(builder, text, style, startStyle, endStyle, css, attributes) {\n if (!text) { return }\n var displayText = builder.splitSpaces ? splitSpaces(text, builder.trailingSpace) : text;\n var special = builder.cm.state.specialChars, mustWrap = false;\n var content;\n if (!special.test(text)) {\n builder.col += text.length;\n content = document.createTextNode(displayText);\n builder.map.push(builder.pos, builder.pos + text.length, content);\n if (ie && ie_version < 9) { mustWrap = true; }\n builder.pos += text.length;\n } else {\n content = document.createDocumentFragment();\n var pos = 0;\n while (true) {\n special.lastIndex = pos;\n var m = special.exec(text);\n var skipped = m ? m.index - pos : text.length - pos;\n if (skipped) {\n var txt = document.createTextNode(displayText.slice(pos, pos + skipped));\n if (ie && ie_version < 9) { content.appendChild(elt(\"span\", [txt])); }\n else { content.appendChild(txt); }\n builder.map.push(builder.pos, builder.pos + skipped, txt);\n builder.col += skipped;\n builder.pos += skipped;\n }\n if (!m) { break }\n pos += skipped + 1;\n var txt$1 = (void 0);\n if (m[0] == \"\\t\") {\n var tabSize = builder.cm.options.tabSize, tabWidth = tabSize - builder.col % tabSize;\n txt$1 = content.appendChild(elt(\"span\", spaceStr(tabWidth), \"cm-tab\"));\n txt$1.setAttribute(\"role\", \"presentation\");\n txt$1.setAttribute(\"cm-text\", \"\\t\");\n builder.col += tabWidth;\n } else if (m[0] == \"\\r\" || m[0] == \"\\n\") {\n txt$1 = content.appendChild(elt(\"span\", m[0] == \"\\r\" ? \"\\u240d\" : \"\\u2424\", \"cm-invalidchar\"));\n txt$1.setAttribute(\"cm-text\", m[0]);\n builder.col += 1;\n } else {\n txt$1 = builder.cm.options.specialCharPlaceholder(m[0]);\n txt$1.setAttribute(\"cm-text\", m[0]);\n if (ie && ie_version < 9) { content.appendChild(elt(\"span\", [txt$1])); }\n else { content.appendChild(txt$1); }\n builder.col += 1;\n }\n builder.map.push(builder.pos, builder.pos + 1, txt$1);\n builder.pos++;\n }\n }\n builder.trailingSpace = displayText.charCodeAt(text.length - 1) == 32;\n if (style || startStyle || endStyle || mustWrap || css || attributes) {\n var fullStyle = style || \"\";\n if (startStyle) { fullStyle += startStyle; }\n if (endStyle) { fullStyle += endStyle; }\n var token = elt(\"span\", [content], fullStyle, css);\n if (attributes) {\n for (var attr in attributes) { if (attributes.hasOwnProperty(attr) && attr != \"style\" && attr != \"class\")\n { token.setAttribute(attr, attributes[attr]); } }\n }\n return builder.content.appendChild(token)\n }\n builder.content.appendChild(content);\n }\n\n // Change some spaces to NBSP to prevent the browser from collapsing\n // trailing spaces at the end of a line when rendering text (issue #1362).\n function splitSpaces(text, trailingBefore) {\n if (text.length > 1 && !/ /.test(text)) { return text }\n var spaceBefore = trailingBefore, result = \"\";\n for (var i = 0; i < text.length; i++) {\n var ch = text.charAt(i);\n if (ch == \" \" && spaceBefore && (i == text.length - 1 || text.charCodeAt(i + 1) == 32))\n { ch = \"\\u00a0\"; }\n result += ch;\n spaceBefore = ch == \" \";\n }\n return result\n }\n\n // Work around nonsense dimensions being reported for stretches of\n // right-to-left text.\n function buildTokenBadBidi(inner, order) {\n return function (builder, text, style, startStyle, endStyle, css, attributes) {\n style = style ? style + \" cm-force-border\" : \"cm-force-border\";\n var start = builder.pos, end = start + text.length;\n for (;;) {\n // Find the part that overlaps with the start of this text\n var part = (void 0);\n for (var i = 0; i < order.length; i++) {\n part = order[i];\n if (part.to > start && part.from <= start) { break }\n }\n if (part.to >= end) { return inner(builder, text, style, startStyle, endStyle, css, attributes) }\n inner(builder, text.slice(0, part.to - start), style, startStyle, null, css, attributes);\n startStyle = null;\n text = text.slice(part.to - start);\n start = part.to;\n }\n }\n }\n\n function buildCollapsedSpan(builder, size, marker, ignoreWidget) {\n var widget = !ignoreWidget && marker.widgetNode;\n if (widget) { builder.map.push(builder.pos, builder.pos + size, widget); }\n if (!ignoreWidget && builder.cm.display.input.needsContentAttribute) {\n if (!widget)\n { widget = builder.content.appendChild(document.createElement(\"span\")); }\n widget.setAttribute(\"cm-marker\", marker.id);\n }\n if (widget) {\n builder.cm.display.input.setUneditable(widget);\n builder.content.appendChild(widget);\n }\n builder.pos += size;\n builder.trailingSpace = false;\n }\n\n // Outputs a number of spans to make up a line, taking highlighting\n // and marked text into account.\n function insertLineContent(line, builder, styles) {\n var spans = line.markedSpans, allText = line.text, at = 0;\n if (!spans) {\n for (var i$1 = 1; i$1 < styles.length; i$1+=2)\n { builder.addToken(builder, allText.slice(at, at = styles[i$1]), interpretTokenStyle(styles[i$1+1], builder.cm.options)); }\n return\n }\n\n var len = allText.length, pos = 0, i = 1, text = \"\", style, css;\n var nextChange = 0, spanStyle, spanEndStyle, spanStartStyle, collapsed, attributes;\n for (;;) {\n if (nextChange == pos) { // Update current marker set\n spanStyle = spanEndStyle = spanStartStyle = css = \"\";\n attributes = null;\n collapsed = null; nextChange = Infinity;\n var foundBookmarks = [], endStyles = (void 0);\n for (var j = 0; j < spans.length; ++j) {\n var sp = spans[j], m = sp.marker;\n if (m.type == \"bookmark\" && sp.from == pos && m.widgetNode) {\n foundBookmarks.push(m);\n } else if (sp.from <= pos && (sp.to == null || sp.to > pos || m.collapsed && sp.to == pos && sp.from == pos)) {\n if (sp.to != null && sp.to != pos && nextChange > sp.to) {\n nextChange = sp.to;\n spanEndStyle = \"\";\n }\n if (m.className) { spanStyle += \" \" + m.className; }\n if (m.css) { css = (css ? css + \";\" : \"\") + m.css; }\n if (m.startStyle && sp.from == pos) { spanStartStyle += \" \" + m.startStyle; }\n if (m.endStyle && sp.to == nextChange) { (endStyles || (endStyles = [])).push(m.endStyle, sp.to); }\n // support for the old title property\n // https://github.com/codemirror/CodeMirror/pull/5673\n if (m.title) { (attributes || (attributes = {})).title = m.title; }\n if (m.attributes) {\n for (var attr in m.attributes)\n { (attributes || (attributes = {}))[attr] = m.attributes[attr]; }\n }\n if (m.collapsed && (!collapsed || compareCollapsedMarkers(collapsed.marker, m) < 0))\n { collapsed = sp; }\n } else if (sp.from > pos && nextChange > sp.from) {\n nextChange = sp.from;\n }\n }\n if (endStyles) { for (var j$1 = 0; j$1 < endStyles.length; j$1 += 2)\n { if (endStyles[j$1 + 1] == nextChange) { spanEndStyle += \" \" + endStyles[j$1]; } } }\n\n if (!collapsed || collapsed.from == pos) { for (var j$2 = 0; j$2 < foundBookmarks.length; ++j$2)\n { buildCollapsedSpan(builder, 0, foundBookmarks[j$2]); } }\n if (collapsed && (collapsed.from || 0) == pos) {\n buildCollapsedSpan(builder, (collapsed.to == null ? len + 1 : collapsed.to) - pos,\n collapsed.marker, collapsed.from == null);\n if (collapsed.to == null) { return }\n if (collapsed.to == pos) { collapsed = false; }\n }\n }\n if (pos >= len) { break }\n\n var upto = Math.min(len, nextChange);\n while (true) {\n if (text) {\n var end = pos + text.length;\n if (!collapsed) {\n var tokenText = end > upto ? text.slice(0, upto - pos) : text;\n builder.addToken(builder, tokenText, style ? style + spanStyle : spanStyle,\n spanStartStyle, pos + tokenText.length == nextChange ? spanEndStyle : \"\", css, attributes);\n }\n if (end >= upto) {text = text.slice(upto - pos); pos = upto; break}\n pos = end;\n spanStartStyle = \"\";\n }\n text = allText.slice(at, at = styles[i++]);\n style = interpretTokenStyle(styles[i++], builder.cm.options);\n }\n }\n }\n\n\n // These objects are used to represent the visible (currently drawn)\n // part of the document. A LineView may correspond to multiple\n // logical lines, if those are connected by collapsed ranges.\n function LineView(doc, line, lineN) {\n // The starting line\n this.line = line;\n // Continuing lines, if any\n this.rest = visualLineContinued(line);\n // Number of logical lines in this visual line\n this.size = this.rest ? lineNo(lst(this.rest)) - lineN + 1 : 1;\n this.node = this.text = null;\n this.hidden = lineIsHidden(doc, line);\n }\n\n // Create a range of LineView objects for the given lines.\n function buildViewArray(cm, from, to) {\n var array = [], nextPos;\n for (var pos = from; pos < to; pos = nextPos) {\n var view = new LineView(cm.doc, getLine(cm.doc, pos), pos);\n nextPos = pos + view.size;\n array.push(view);\n }\n return array\n }\n\n var operationGroup = null;\n\n function pushOperation(op) {\n if (operationGroup) {\n operationGroup.ops.push(op);\n } else {\n op.ownsGroup = operationGroup = {\n ops: [op],\n delayedCallbacks: []\n };\n }\n }\n\n function fireCallbacksForOps(group) {\n // Calls delayed callbacks and cursorActivity handlers until no\n // new ones appear\n var callbacks = group.delayedCallbacks, i = 0;\n do {\n for (; i < callbacks.length; i++)\n { callbacks[i].call(null); }\n for (var j = 0; j < group.ops.length; j++) {\n var op = group.ops[j];\n if (op.cursorActivityHandlers)\n { while (op.cursorActivityCalled < op.cursorActivityHandlers.length)\n { op.cursorActivityHandlers[op.cursorActivityCalled++].call(null, op.cm); } }\n }\n } while (i < callbacks.length)\n }\n\n function finishOperation(op, endCb) {\n var group = op.ownsGroup;\n if (!group) { return }\n\n try { fireCallbacksForOps(group); }\n finally {\n operationGroup = null;\n endCb(group);\n }\n }\n\n var orphanDelayedCallbacks = null;\n\n // Often, we want to signal events at a point where we are in the\n // middle of some work, but don't want the handler to start calling\n // other methods on the editor, which might be in an inconsistent\n // state or simply not expect any other events to happen.\n // signalLater looks whether there are any handlers, and schedules\n // them to be executed when the last operation ends, or, if no\n // operation is active, when a timeout fires.\n function signalLater(emitter, type /*, values...*/) {\n var arr = getHandlers(emitter, type);\n if (!arr.length) { return }\n var args = Array.prototype.slice.call(arguments, 2), list;\n if (operationGroup) {\n list = operationGroup.delayedCallbacks;\n } else if (orphanDelayedCallbacks) {\n list = orphanDelayedCallbacks;\n } else {\n list = orphanDelayedCallbacks = [];\n setTimeout(fireOrphanDelayed, 0);\n }\n var loop = function ( i ) {\n list.push(function () { return arr[i].apply(null, args); });\n };\n\n for (var i = 0; i < arr.length; ++i)\n loop( i );\n }\n\n function fireOrphanDelayed() {\n var delayed = orphanDelayedCallbacks;\n orphanDelayedCallbacks = null;\n for (var i = 0; i < delayed.length; ++i) { delayed[i](); }\n }\n\n // When an aspect of a line changes, a string is added to\n // lineView.changes. This updates the relevant part of the line's\n // DOM structure.\n function updateLineForChanges(cm, lineView, lineN, dims) {\n for (var j = 0; j < lineView.changes.length; j++) {\n var type = lineView.changes[j];\n if (type == \"text\") { updateLineText(cm, lineView); }\n else if (type == \"gutter\") { updateLineGutter(cm, lineView, lineN, dims); }\n else if (type == \"class\") { updateLineClasses(cm, lineView); }\n else if (type == \"widget\") { updateLineWidgets(cm, lineView, dims); }\n }\n lineView.changes = null;\n }\n\n // Lines with gutter elements, widgets or a background class need to\n // be wrapped, and have the extra elements added to the wrapper div\n function ensureLineWrapped(lineView) {\n if (lineView.node == lineView.text) {\n lineView.node = elt(\"div\", null, null, \"position: relative\");\n if (lineView.text.parentNode)\n { lineView.text.parentNode.replaceChild(lineView.node, lineView.text); }\n lineView.node.appendChild(lineView.text);\n if (ie && ie_version < 8) { lineView.node.style.zIndex = 2; }\n }\n return lineView.node\n }\n\n function updateLineBackground(cm, lineView) {\n var cls = lineView.bgClass ? lineView.bgClass + \" \" + (lineView.line.bgClass || \"\") : lineView.line.bgClass;\n if (cls) { cls += \" CodeMirror-linebackground\"; }\n if (lineView.background) {\n if (cls) { lineView.background.className = cls; }\n else { lineView.background.parentNode.removeChild(lineView.background); lineView.background = null; }\n } else if (cls) {\n var wrap = ensureLineWrapped(lineView);\n lineView.background = wrap.insertBefore(elt(\"div\", null, cls), wrap.firstChild);\n cm.display.input.setUneditable(lineView.background);\n }\n }\n\n // Wrapper around buildLineContent which will reuse the structure\n // in display.externalMeasured when possible.\n function getLineContent(cm, lineView) {\n var ext = cm.display.externalMeasured;\n if (ext && ext.line == lineView.line) {\n cm.display.externalMeasured = null;\n lineView.measure = ext.measure;\n return ext.built\n }\n return buildLineContent(cm, lineView)\n }\n\n // Redraw the line's text. Interacts with the background and text\n // classes because the mode may output tokens that influence these\n // classes.\n function updateLineText(cm, lineView) {\n var cls = lineView.text.className;\n var built = getLineContent(cm, lineView);\n if (lineView.text == lineView.node) { lineView.node = built.pre; }\n lineView.text.parentNode.replaceChild(built.pre, lineView.text);\n lineView.text = built.pre;\n if (built.bgClass != lineView.bgClass || built.textClass != lineView.textClass) {\n lineView.bgClass = built.bgClass;\n lineView.textClass = built.textClass;\n updateLineClasses(cm, lineView);\n } else if (cls) {\n lineView.text.className = cls;\n }\n }\n\n function updateLineClasses(cm, lineView) {\n updateLineBackground(cm, lineView);\n if (lineView.line.wrapClass)\n { ensureLineWrapped(lineView).className = lineView.line.wrapClass; }\n else if (lineView.node != lineView.text)\n { lineView.node.className = \"\"; }\n var textClass = lineView.textClass ? lineView.textClass + \" \" + (lineView.line.textClass || \"\") : lineView.line.textClass;\n lineView.text.className = textClass || \"\";\n }\n\n function updateLineGutter(cm, lineView, lineN, dims) {\n if (lineView.gutter) {\n lineView.node.removeChild(lineView.gutter);\n lineView.gutter = null;\n }\n if (lineView.gutterBackground) {\n lineView.node.removeChild(lineView.gutterBackground);\n lineView.gutterBackground = null;\n }\n if (lineView.line.gutterClass) {\n var wrap = ensureLineWrapped(lineView);\n lineView.gutterBackground = elt(\"div\", null, \"CodeMirror-gutter-background \" + lineView.line.gutterClass,\n (\"left: \" + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + \"px; width: \" + (dims.gutterTotalWidth) + \"px\"));\n cm.display.input.setUneditable(lineView.gutterBackground);\n wrap.insertBefore(lineView.gutterBackground, lineView.text);\n }\n var markers = lineView.line.gutterMarkers;\n if (cm.options.lineNumbers || markers) {\n var wrap$1 = ensureLineWrapped(lineView);\n var gutterWrap = lineView.gutter = elt(\"div\", null, \"CodeMirror-gutter-wrapper\", (\"left: \" + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + \"px\"));\n gutterWrap.setAttribute(\"aria-hidden\", \"true\");\n cm.display.input.setUneditable(gutterWrap);\n wrap$1.insertBefore(gutterWrap, lineView.text);\n if (lineView.line.gutterClass)\n { gutterWrap.className += \" \" + lineView.line.gutterClass; }\n if (cm.options.lineNumbers && (!markers || !markers[\"CodeMirror-linenumbers\"]))\n { lineView.lineNumber = gutterWrap.appendChild(\n elt(\"div\", lineNumberFor(cm.options, lineN),\n \"CodeMirror-linenumber CodeMirror-gutter-elt\",\n (\"left: \" + (dims.gutterLeft[\"CodeMirror-linenumbers\"]) + \"px; width: \" + (cm.display.lineNumInnerWidth) + \"px\"))); }\n if (markers) { for (var k = 0; k < cm.display.gutterSpecs.length; ++k) {\n var id = cm.display.gutterSpecs[k].className, found = markers.hasOwnProperty(id) && markers[id];\n if (found)\n { gutterWrap.appendChild(elt(\"div\", [found], \"CodeMirror-gutter-elt\",\n (\"left: \" + (dims.gutterLeft[id]) + \"px; width: \" + (dims.gutterWidth[id]) + \"px\"))); }\n } }\n }\n }\n\n function updateLineWidgets(cm, lineView, dims) {\n if (lineView.alignable) { lineView.alignable = null; }\n var isWidget = classTest(\"CodeMirror-linewidget\");\n for (var node = lineView.node.firstChild, next = (void 0); node; node = next) {\n next = node.nextSibling;\n if (isWidget.test(node.className)) { lineView.node.removeChild(node); }\n }\n insertLineWidgets(cm, lineView, dims);\n }\n\n // Build a line's DOM representation from scratch\n function buildLineElement(cm, lineView, lineN, dims) {\n var built = getLineContent(cm, lineView);\n lineView.text = lineView.node = built.pre;\n if (built.bgClass) { lineView.bgClass = built.bgClass; }\n if (built.textClass) { lineView.textClass = built.textClass; }\n\n updateLineClasses(cm, lineView);\n updateLineGutter(cm, lineView, lineN, dims);\n insertLineWidgets(cm, lineView, dims);\n return lineView.node\n }\n\n // A lineView may contain multiple logical lines (when merged by\n // collapsed spans). The widgets for all of them need to be drawn.\n function insertLineWidgets(cm, lineView, dims) {\n insertLineWidgetsFor(cm, lineView.line, lineView, dims, true);\n if (lineView.rest) { for (var i = 0; i < lineView.rest.length; i++)\n { insertLineWidgetsFor(cm, lineView.rest[i], lineView, dims, false); } }\n }\n\n function insertLineWidgetsFor(cm, line, lineView, dims, allowAbove) {\n if (!line.widgets) { return }\n var wrap = ensureLineWrapped(lineView);\n for (var i = 0, ws = line.widgets; i < ws.length; ++i) {\n var widget = ws[i], node = elt(\"div\", [widget.node], \"CodeMirror-linewidget\" + (widget.className ? \" \" + widget.className : \"\"));\n if (!widget.handleMouseEvents) { node.setAttribute(\"cm-ignore-events\", \"true\"); }\n positionLineWidget(widget, node, lineView, dims);\n cm.display.input.setUneditable(node);\n if (allowAbove && widget.above)\n { wrap.insertBefore(node, lineView.gutter || lineView.text); }\n else\n { wrap.appendChild(node); }\n signalLater(widget, \"redraw\");\n }\n }\n\n function positionLineWidget(widget, node, lineView, dims) {\n if (widget.noHScroll) {\n (lineView.alignable || (lineView.alignable = [])).push(node);\n var width = dims.wrapperWidth;\n node.style.left = dims.fixedPos + \"px\";\n if (!widget.coverGutter) {\n width -= dims.gutterTotalWidth;\n node.style.paddingLeft = dims.gutterTotalWidth + \"px\";\n }\n node.style.width = width + \"px\";\n }\n if (widget.coverGutter) {\n node.style.zIndex = 5;\n node.style.position = \"relative\";\n if (!widget.noHScroll) { node.style.marginLeft = -dims.gutterTotalWidth + \"px\"; }\n }\n }\n\n function widgetHeight(widget) {\n if (widget.height != null) { return widget.height }\n var cm = widget.doc.cm;\n if (!cm) { return 0 }\n if (!contains(document.body, widget.node)) {\n var parentStyle = \"position: relative;\";\n if (widget.coverGutter)\n { parentStyle += \"margin-left: -\" + cm.display.gutters.offsetWidth + \"px;\"; }\n if (widget.noHScroll)\n { parentStyle += \"width: \" + cm.display.wrapper.clientWidth + \"px;\"; }\n removeChildrenAndAdd(cm.display.measure, elt(\"div\", [widget.node], null, parentStyle));\n }\n return widget.height = widget.node.parentNode.offsetHeight\n }\n\n // Return true when the given mouse event happened in a widget\n function eventInWidget(display, e) {\n for (var n = e_target(e); n != display.wrapper; n = n.parentNode) {\n if (!n || (n.nodeType == 1 && n.getAttribute(\"cm-ignore-events\") == \"true\") ||\n (n.parentNode == display.sizer && n != display.mover))\n { return true }\n }\n }\n\n // POSITION MEASUREMENT\n\n function paddingTop(display) {return display.lineSpace.offsetTop}\n function paddingVert(display) {return display.mover.offsetHeight - display.lineSpace.offsetHeight}\n function paddingH(display) {\n if (display.cachedPaddingH) { return display.cachedPaddingH }\n var e = removeChildrenAndAdd(display.measure, elt(\"pre\", \"x\", \"CodeMirror-line-like\"));\n var style = window.getComputedStyle ? window.getComputedStyle(e) : e.currentStyle;\n var data = {left: parseInt(style.paddingLeft), right: parseInt(style.paddingRight)};\n if (!isNaN(data.left) && !isNaN(data.right)) { display.cachedPaddingH = data; }\n return data\n }\n\n function scrollGap(cm) { return scrollerGap - cm.display.nativeBarWidth }\n function displayWidth(cm) {\n return cm.display.scroller.clientWidth - scrollGap(cm) - cm.display.barWidth\n }\n function displayHeight(cm) {\n return cm.display.scroller.clientHeight - scrollGap(cm) - cm.display.barHeight\n }\n\n // Ensure the lineView.wrapping.heights array is populated. This is\n // an array of bottom offsets for the lines that make up a drawn\n // line. When lineWrapping is on, there might be more than one\n // height.\n function ensureLineHeights(cm, lineView, rect) {\n var wrapping = cm.options.lineWrapping;\n var curWidth = wrapping && displayWidth(cm);\n if (!lineView.measure.heights || wrapping && lineView.measure.width != curWidth) {\n var heights = lineView.measure.heights = [];\n if (wrapping) {\n lineView.measure.width = curWidth;\n var rects = lineView.text.firstChild.getClientRects();\n for (var i = 0; i < rects.length - 1; i++) {\n var cur = rects[i], next = rects[i + 1];\n if (Math.abs(cur.bottom - next.bottom) > 2)\n { heights.push((cur.bottom + next.top) / 2 - rect.top); }\n }\n }\n heights.push(rect.bottom - rect.top);\n }\n }\n\n // Find a line map (mapping character offsets to text nodes) and a\n // measurement cache for the given line number. (A line view might\n // contain multiple lines when collapsed ranges are present.)\n function mapFromLineView(lineView, line, lineN) {\n if (lineView.line == line)\n { return {map: lineView.measure.map, cache: lineView.measure.cache} }\n if (lineView.rest) {\n for (var i = 0; i < lineView.rest.length; i++)\n { if (lineView.rest[i] == line)\n { return {map: lineView.measure.maps[i], cache: lineView.measure.caches[i]} } }\n for (var i$1 = 0; i$1 < lineView.rest.length; i$1++)\n { if (lineNo(lineView.rest[i$1]) > lineN)\n { return {map: lineView.measure.maps[i$1], cache: lineView.measure.caches[i$1], before: true} } }\n }\n }\n\n // Render a line into the hidden node display.externalMeasured. Used\n // when measurement is needed for a line that's not in the viewport.\n function updateExternalMeasurement(cm, line) {\n line = visualLine(line);\n var lineN = lineNo(line);\n var view = cm.display.externalMeasured = new LineView(cm.doc, line, lineN);\n view.lineN = lineN;\n var built = view.built = buildLineContent(cm, view);\n view.text = built.pre;\n removeChildrenAndAdd(cm.display.lineMeasure, built.pre);\n return view\n }\n\n // Get a {top, bottom, left, right} box (in line-local coordinates)\n // for a given character.\n function measureChar(cm, line, ch, bias) {\n return measureCharPrepared(cm, prepareMeasureForLine(cm, line), ch, bias)\n }\n\n // Find a line view that corresponds to the given line number.\n function findViewForLine(cm, lineN) {\n if (lineN >= cm.display.viewFrom && lineN < cm.display.viewTo)\n { return cm.display.view[findViewIndex(cm, lineN)] }\n var ext = cm.display.externalMeasured;\n if (ext && lineN >= ext.lineN && lineN < ext.lineN + ext.size)\n { return ext }\n }\n\n // Measurement can be split in two steps, the set-up work that\n // applies to the whole line, and the measurement of the actual\n // character. Functions like coordsChar, that need to do a lot of\n // measurements in a row, can thus ensure that the set-up work is\n // only done once.\n function prepareMeasureForLine(cm, line) {\n var lineN = lineNo(line);\n var view = findViewForLine(cm, lineN);\n if (view && !view.text) {\n view = null;\n } else if (view && view.changes) {\n updateLineForChanges(cm, view, lineN, getDimensions(cm));\n cm.curOp.forceUpdate = true;\n }\n if (!view)\n { view = updateExternalMeasurement(cm, line); }\n\n var info = mapFromLineView(view, line, lineN);\n return {\n line: line, view: view, rect: null,\n map: info.map, cache: info.cache, before: info.before,\n hasHeights: false\n }\n }\n\n // Given a prepared measurement object, measures the position of an\n // actual character (or fetches it from the cache).\n function measureCharPrepared(cm, prepared, ch, bias, varHeight) {\n if (prepared.before) { ch = -1; }\n var key = ch + (bias || \"\"), found;\n if (prepared.cache.hasOwnProperty(key)) {\n found = prepared.cache[key];\n } else {\n if (!prepared.rect)\n { prepared.rect = prepared.view.text.getBoundingClientRect(); }\n if (!prepared.hasHeights) {\n ensureLineHeights(cm, prepared.view, prepared.rect);\n prepared.hasHeights = true;\n }\n found = measureCharInner(cm, prepared, ch, bias);\n if (!found.bogus) { prepared.cache[key] = found; }\n }\n return {left: found.left, right: found.right,\n top: varHeight ? found.rtop : found.top,\n bottom: varHeight ? found.rbottom : found.bottom}\n }\n\n var nullRect = {left: 0, right: 0, top: 0, bottom: 0};\n\n function nodeAndOffsetInLineMap(map, ch, bias) {\n var node, start, end, collapse, mStart, mEnd;\n // First, search the line map for the text node corresponding to,\n // or closest to, the target character.\n for (var i = 0; i < map.length; i += 3) {\n mStart = map[i];\n mEnd = map[i + 1];\n if (ch < mStart) {\n start = 0; end = 1;\n collapse = \"left\";\n } else if (ch < mEnd) {\n start = ch - mStart;\n end = start + 1;\n } else if (i == map.length - 3 || ch == mEnd && map[i + 3] > ch) {\n end = mEnd - mStart;\n start = end - 1;\n if (ch >= mEnd) { collapse = \"right\"; }\n }\n if (start != null) {\n node = map[i + 2];\n if (mStart == mEnd && bias == (node.insertLeft ? \"left\" : \"right\"))\n { collapse = bias; }\n if (bias == \"left\" && start == 0)\n { while (i && map[i - 2] == map[i - 3] && map[i - 1].insertLeft) {\n node = map[(i -= 3) + 2];\n collapse = \"left\";\n } }\n if (bias == \"right\" && start == mEnd - mStart)\n { while (i < map.length - 3 && map[i + 3] == map[i + 4] && !map[i + 5].insertLeft) {\n node = map[(i += 3) + 2];\n collapse = \"right\";\n } }\n break\n }\n }\n return {node: node, start: start, end: end, collapse: collapse, coverStart: mStart, coverEnd: mEnd}\n }\n\n function getUsefulRect(rects, bias) {\n var rect = nullRect;\n if (bias == \"left\") { for (var i = 0; i < rects.length; i++) {\n if ((rect = rects[i]).left != rect.right) { break }\n } } else { for (var i$1 = rects.length - 1; i$1 >= 0; i$1--) {\n if ((rect = rects[i$1]).left != rect.right) { break }\n } }\n return rect\n }\n\n function measureCharInner(cm, prepared, ch, bias) {\n var place = nodeAndOffsetInLineMap(prepared.map, ch, bias);\n var node = place.node, start = place.start, end = place.end, collapse = place.collapse;\n\n var rect;\n if (node.nodeType == 3) { // If it is a text node, use a range to retrieve the coordinates.\n for (var i$1 = 0; i$1 < 4; i$1++) { // Retry a maximum of 4 times when nonsense rectangles are returned\n while (start && isExtendingChar(prepared.line.text.charAt(place.coverStart + start))) { --start; }\n while (place.coverStart + end < place.coverEnd && isExtendingChar(prepared.line.text.charAt(place.coverStart + end))) { ++end; }\n if (ie && ie_version < 9 && start == 0 && end == place.coverEnd - place.coverStart)\n { rect = node.parentNode.getBoundingClientRect(); }\n else\n { rect = getUsefulRect(range(node, start, end).getClientRects(), bias); }\n if (rect.left || rect.right || start == 0) { break }\n end = start;\n start = start - 1;\n collapse = \"right\";\n }\n if (ie && ie_version < 11) { rect = maybeUpdateRectForZooming(cm.display.measure, rect); }\n } else { // If it is a widget, simply get the box for the whole widget.\n if (start > 0) { collapse = bias = \"right\"; }\n var rects;\n if (cm.options.lineWrapping && (rects = node.getClientRects()).length > 1)\n { rect = rects[bias == \"right\" ? rects.length - 1 : 0]; }\n else\n { rect = node.getBoundingClientRect(); }\n }\n if (ie && ie_version < 9 && !start && (!rect || !rect.left && !rect.right)) {\n var rSpan = node.parentNode.getClientRects()[0];\n if (rSpan)\n { rect = {left: rSpan.left, right: rSpan.left + charWidth(cm.display), top: rSpan.top, bottom: rSpan.bottom}; }\n else\n { rect = nullRect; }\n }\n\n var rtop = rect.top - prepared.rect.top, rbot = rect.bottom - prepared.rect.top;\n var mid = (rtop + rbot) / 2;\n var heights = prepared.view.measure.heights;\n var i = 0;\n for (; i < heights.length - 1; i++)\n { if (mid < heights[i]) { break } }\n var top = i ? heights[i - 1] : 0, bot = heights[i];\n var result = {left: (collapse == \"right\" ? rect.right : rect.left) - prepared.rect.left,\n right: (collapse == \"left\" ? rect.left : rect.right) - prepared.rect.left,\n top: top, bottom: bot};\n if (!rect.left && !rect.right) { result.bogus = true; }\n if (!cm.options.singleCursorHeightPerLine) { result.rtop = rtop; result.rbottom = rbot; }\n\n return result\n }\n\n // Work around problem with bounding client rects on ranges being\n // returned incorrectly when zoomed on IE10 and below.\n function maybeUpdateRectForZooming(measure, rect) {\n if (!window.screen || screen.logicalXDPI == null ||\n screen.logicalXDPI == screen.deviceXDPI || !hasBadZoomedRects(measure))\n { return rect }\n var scaleX = screen.logicalXDPI / screen.deviceXDPI;\n var scaleY = screen.logicalYDPI / screen.deviceYDPI;\n return {left: rect.left * scaleX, right: rect.right * scaleX,\n top: rect.top * scaleY, bottom: rect.bottom * scaleY}\n }\n\n function clearLineMeasurementCacheFor(lineView) {\n if (lineView.measure) {\n lineView.measure.cache = {};\n lineView.measure.heights = null;\n if (lineView.rest) { for (var i = 0; i < lineView.rest.length; i++)\n { lineView.measure.caches[i] = {}; } }\n }\n }\n\n function clearLineMeasurementCache(cm) {\n cm.display.externalMeasure = null;\n removeChildren(cm.display.lineMeasure);\n for (var i = 0; i < cm.display.view.length; i++)\n { clearLineMeasurementCacheFor(cm.display.view[i]); }\n }\n\n function clearCaches(cm) {\n clearLineMeasurementCache(cm);\n cm.display.cachedCharWidth = cm.display.cachedTextHeight = cm.display.cachedPaddingH = null;\n if (!cm.options.lineWrapping) { cm.display.maxLineChanged = true; }\n cm.display.lineNumChars = null;\n }\n\n function pageScrollX() {\n // Work around https://bugs.chromium.org/p/chromium/issues/detail?id=489206\n // which causes page_Offset and bounding client rects to use\n // different reference viewports and invalidate our calculations.\n if (chrome && android) { return -(document.body.getBoundingClientRect().left - parseInt(getComputedStyle(document.body).marginLeft)) }\n return window.pageXOffset || (document.documentElement || document.body).scrollLeft\n }\n function pageScrollY() {\n if (chrome && android) { return -(document.body.getBoundingClientRect().top - parseInt(getComputedStyle(document.body).marginTop)) }\n return window.pageYOffset || (document.documentElement || document.body).scrollTop\n }\n\n function widgetTopHeight(lineObj) {\n var ref = visualLine(lineObj);\n var widgets = ref.widgets;\n var height = 0;\n if (widgets) { for (var i = 0; i < widgets.length; ++i) { if (widgets[i].above)\n { height += widgetHeight(widgets[i]); } } }\n return height\n }\n\n // Converts a {top, bottom, left, right} box from line-local\n // coordinates into another coordinate system. Context may be one of\n // \"line\", \"div\" (display.lineDiv), \"local\"./null (editor), \"window\",\n // or \"page\".\n function intoCoordSystem(cm, lineObj, rect, context, includeWidgets) {\n if (!includeWidgets) {\n var height = widgetTopHeight(lineObj);\n rect.top += height; rect.bottom += height;\n }\n if (context == \"line\") { return rect }\n if (!context) { context = \"local\"; }\n var yOff = heightAtLine(lineObj);\n if (context == \"local\") { yOff += paddingTop(cm.display); }\n else { yOff -= cm.display.viewOffset; }\n if (context == \"page\" || context == \"window\") {\n var lOff = cm.display.lineSpace.getBoundingClientRect();\n yOff += lOff.top + (context == \"window\" ? 0 : pageScrollY());\n var xOff = lOff.left + (context == \"window\" ? 0 : pageScrollX());\n rect.left += xOff; rect.right += xOff;\n }\n rect.top += yOff; rect.bottom += yOff;\n return rect\n }\n\n // Coverts a box from \"div\" coords to another coordinate system.\n // Context may be \"window\", \"page\", \"div\", or \"local\"./null.\n function fromCoordSystem(cm, coords, context) {\n if (context == \"div\") { return coords }\n var left = coords.left, top = coords.top;\n // First move into \"page\" coordinate system\n if (context == \"page\") {\n left -= pageScrollX();\n top -= pageScrollY();\n } else if (context == \"local\" || !context) {\n var localBox = cm.display.sizer.getBoundingClientRect();\n left += localBox.left;\n top += localBox.top;\n }\n\n var lineSpaceBox = cm.display.lineSpace.getBoundingClientRect();\n return {left: left - lineSpaceBox.left, top: top - lineSpaceBox.top}\n }\n\n function charCoords(cm, pos, context, lineObj, bias) {\n if (!lineObj) { lineObj = getLine(cm.doc, pos.line); }\n return intoCoordSystem(cm, lineObj, measureChar(cm, lineObj, pos.ch, bias), context)\n }\n\n // Returns a box for a given cursor position, which may have an\n // 'other' property containing the position of the secondary cursor\n // on a bidi boundary.\n // A cursor Pos(line, char, \"before\") is on the same visual line as `char - 1`\n // and after `char - 1` in writing order of `char - 1`\n // A cursor Pos(line, char, \"after\") is on the same visual line as `char`\n // and before `char` in writing order of `char`\n // Examples (upper-case letters are RTL, lower-case are LTR):\n // Pos(0, 1, ...)\n // before after\n // ab a|b a|b\n // aB a|B aB|\n // Ab |Ab A|b\n // AB B|A B|A\n // Every position after the last character on a line is considered to stick\n // to the last character on the line.\n function cursorCoords(cm, pos, context, lineObj, preparedMeasure, varHeight) {\n lineObj = lineObj || getLine(cm.doc, pos.line);\n if (!preparedMeasure) { preparedMeasure = prepareMeasureForLine(cm, lineObj); }\n function get(ch, right) {\n var m = measureCharPrepared(cm, preparedMeasure, ch, right ? \"right\" : \"left\", varHeight);\n if (right) { m.left = m.right; } else { m.right = m.left; }\n return intoCoordSystem(cm, lineObj, m, context)\n }\n var order = getOrder(lineObj, cm.doc.direction), ch = pos.ch, sticky = pos.sticky;\n if (ch >= lineObj.text.length) {\n ch = lineObj.text.length;\n sticky = \"before\";\n } else if (ch <= 0) {\n ch = 0;\n sticky = \"after\";\n }\n if (!order) { return get(sticky == \"before\" ? ch - 1 : ch, sticky == \"before\") }\n\n function getBidi(ch, partPos, invert) {\n var part = order[partPos], right = part.level == 1;\n return get(invert ? ch - 1 : ch, right != invert)\n }\n var partPos = getBidiPartAt(order, ch, sticky);\n var other = bidiOther;\n var val = getBidi(ch, partPos, sticky == \"before\");\n if (other != null) { val.other = getBidi(ch, other, sticky != \"before\"); }\n return val\n }\n\n // Used to cheaply estimate the coordinates for a position. Used for\n // intermediate scroll updates.\n function estimateCoords(cm, pos) {\n var left = 0;\n pos = clipPos(cm.doc, pos);\n if (!cm.options.lineWrapping) { left = charWidth(cm.display) * pos.ch; }\n var lineObj = getLine(cm.doc, pos.line);\n var top = heightAtLine(lineObj) + paddingTop(cm.display);\n return {left: left, right: left, top: top, bottom: top + lineObj.height}\n }\n\n // Positions returned by coordsChar contain some extra information.\n // xRel is the relative x position of the input coordinates compared\n // to the found position (so xRel > 0 means the coordinates are to\n // the right of the character position, for example). When outside\n // is true, that means the coordinates lie outside the line's\n // vertical range.\n function PosWithInfo(line, ch, sticky, outside, xRel) {\n var pos = Pos(line, ch, sticky);\n pos.xRel = xRel;\n if (outside) { pos.outside = outside; }\n return pos\n }\n\n // Compute the character position closest to the given coordinates.\n // Input must be lineSpace-local (\"div\" coordinate system).\n function coordsChar(cm, x, y) {\n var doc = cm.doc;\n y += cm.display.viewOffset;\n if (y < 0) { return PosWithInfo(doc.first, 0, null, -1, -1) }\n var lineN = lineAtHeight(doc, y), last = doc.first + doc.size - 1;\n if (lineN > last)\n { return PosWithInfo(doc.first + doc.size - 1, getLine(doc, last).text.length, null, 1, 1) }\n if (x < 0) { x = 0; }\n\n var lineObj = getLine(doc, lineN);\n for (;;) {\n var found = coordsCharInner(cm, lineObj, lineN, x, y);\n var collapsed = collapsedSpanAround(lineObj, found.ch + (found.xRel > 0 || found.outside > 0 ? 1 : 0));\n if (!collapsed) { return found }\n var rangeEnd = collapsed.find(1);\n if (rangeEnd.line == lineN) { return rangeEnd }\n lineObj = getLine(doc, lineN = rangeEnd.line);\n }\n }\n\n function wrappedLineExtent(cm, lineObj, preparedMeasure, y) {\n y -= widgetTopHeight(lineObj);\n var end = lineObj.text.length;\n var begin = findFirst(function (ch) { return measureCharPrepared(cm, preparedMeasure, ch - 1).bottom <= y; }, end, 0);\n end = findFirst(function (ch) { return measureCharPrepared(cm, preparedMeasure, ch).top > y; }, begin, end);\n return {begin: begin, end: end}\n }\n\n function wrappedLineExtentChar(cm, lineObj, preparedMeasure, target) {\n if (!preparedMeasure) { preparedMeasure = prepareMeasureForLine(cm, lineObj); }\n var targetTop = intoCoordSystem(cm, lineObj, measureCharPrepared(cm, preparedMeasure, target), \"line\").top;\n return wrappedLineExtent(cm, lineObj, preparedMeasure, targetTop)\n }\n\n // Returns true if the given side of a box is after the given\n // coordinates, in top-to-bottom, left-to-right order.\n function boxIsAfter(box, x, y, left) {\n return box.bottom <= y ? false : box.top > y ? true : (left ? box.left : box.right) > x\n }\n\n function coordsCharInner(cm, lineObj, lineNo, x, y) {\n // Move y into line-local coordinate space\n y -= heightAtLine(lineObj);\n var preparedMeasure = prepareMeasureForLine(cm, lineObj);\n // When directly calling `measureCharPrepared`, we have to adjust\n // for the widgets at this line.\n var widgetHeight = widgetTopHeight(lineObj);\n var begin = 0, end = lineObj.text.length, ltr = true;\n\n var order = getOrder(lineObj, cm.doc.direction);\n // If the line isn't plain left-to-right text, first figure out\n // which bidi section the coordinates fall into.\n if (order) {\n var part = (cm.options.lineWrapping ? coordsBidiPartWrapped : coordsBidiPart)\n (cm, lineObj, lineNo, preparedMeasure, order, x, y);\n ltr = part.level != 1;\n // The awkward -1 offsets are needed because findFirst (called\n // on these below) will treat its first bound as inclusive,\n // second as exclusive, but we want to actually address the\n // characters in the part's range\n begin = ltr ? part.from : part.to - 1;\n end = ltr ? part.to : part.from - 1;\n }\n\n // A binary search to find the first character whose bounding box\n // starts after the coordinates. If we run across any whose box wrap\n // the coordinates, store that.\n var chAround = null, boxAround = null;\n var ch = findFirst(function (ch) {\n var box = measureCharPrepared(cm, preparedMeasure, ch);\n box.top += widgetHeight; box.bottom += widgetHeight;\n if (!boxIsAfter(box, x, y, false)) { return false }\n if (box.top <= y && box.left <= x) {\n chAround = ch;\n boxAround = box;\n }\n return true\n }, begin, end);\n\n var baseX, sticky, outside = false;\n // If a box around the coordinates was found, use that\n if (boxAround) {\n // Distinguish coordinates nearer to the left or right side of the box\n var atLeft = x - boxAround.left < boxAround.right - x, atStart = atLeft == ltr;\n ch = chAround + (atStart ? 0 : 1);\n sticky = atStart ? \"after\" : \"before\";\n baseX = atLeft ? boxAround.left : boxAround.right;\n } else {\n // (Adjust for extended bound, if necessary.)\n if (!ltr && (ch == end || ch == begin)) { ch++; }\n // To determine which side to associate with, get the box to the\n // left of the character and compare it's vertical position to the\n // coordinates\n sticky = ch == 0 ? \"after\" : ch == lineObj.text.length ? \"before\" :\n (measureCharPrepared(cm, preparedMeasure, ch - (ltr ? 1 : 0)).bottom + widgetHeight <= y) == ltr ?\n \"after\" : \"before\";\n // Now get accurate coordinates for this place, in order to get a\n // base X position\n var coords = cursorCoords(cm, Pos(lineNo, ch, sticky), \"line\", lineObj, preparedMeasure);\n baseX = coords.left;\n outside = y < coords.top ? -1 : y >= coords.bottom ? 1 : 0;\n }\n\n ch = skipExtendingChars(lineObj.text, ch, 1);\n return PosWithInfo(lineNo, ch, sticky, outside, x - baseX)\n }\n\n function coordsBidiPart(cm, lineObj, lineNo, preparedMeasure, order, x, y) {\n // Bidi parts are sorted left-to-right, and in a non-line-wrapping\n // situation, we can take this ordering to correspond to the visual\n // ordering. This finds the first part whose end is after the given\n // coordinates.\n var index = findFirst(function (i) {\n var part = order[i], ltr = part.level != 1;\n return boxIsAfter(cursorCoords(cm, Pos(lineNo, ltr ? part.to : part.from, ltr ? \"before\" : \"after\"),\n \"line\", lineObj, preparedMeasure), x, y, true)\n }, 0, order.length - 1);\n var part = order[index];\n // If this isn't the first part, the part's start is also after\n // the coordinates, and the coordinates aren't on the same line as\n // that start, move one part back.\n if (index > 0) {\n var ltr = part.level != 1;\n var start = cursorCoords(cm, Pos(lineNo, ltr ? part.from : part.to, ltr ? \"after\" : \"before\"),\n \"line\", lineObj, preparedMeasure);\n if (boxIsAfter(start, x, y, true) && start.top > y)\n { part = order[index - 1]; }\n }\n return part\n }\n\n function coordsBidiPartWrapped(cm, lineObj, _lineNo, preparedMeasure, order, x, y) {\n // In a wrapped line, rtl text on wrapping boundaries can do things\n // that don't correspond to the ordering in our `order` array at\n // all, so a binary search doesn't work, and we want to return a\n // part that only spans one line so that the binary search in\n // coordsCharInner is safe. As such, we first find the extent of the\n // wrapped line, and then do a flat search in which we discard any\n // spans that aren't on the line.\n var ref = wrappedLineExtent(cm, lineObj, preparedMeasure, y);\n var begin = ref.begin;\n var end = ref.end;\n if (/\\s/.test(lineObj.text.charAt(end - 1))) { end--; }\n var part = null, closestDist = null;\n for (var i = 0; i < order.length; i++) {\n var p = order[i];\n if (p.from >= end || p.to <= begin) { continue }\n var ltr = p.level != 1;\n var endX = measureCharPrepared(cm, preparedMeasure, ltr ? Math.min(end, p.to) - 1 : Math.max(begin, p.from)).right;\n // Weigh against spans ending before this, so that they are only\n // picked if nothing ends after\n var dist = endX < x ? x - endX + 1e9 : endX - x;\n if (!part || closestDist > dist) {\n part = p;\n closestDist = dist;\n }\n }\n if (!part) { part = order[order.length - 1]; }\n // Clip the part to the wrapped line.\n if (part.from < begin) { part = {from: begin, to: part.to, level: part.level}; }\n if (part.to > end) { part = {from: part.from, to: end, level: part.level}; }\n return part\n }\n\n var measureText;\n // Compute the default text height.\n function textHeight(display) {\n if (display.cachedTextHeight != null) { return display.cachedTextHeight }\n if (measureText == null) {\n measureText = elt(\"pre\", null, \"CodeMirror-line-like\");\n // Measure a bunch of lines, for browsers that compute\n // fractional heights.\n for (var i = 0; i < 49; ++i) {\n measureText.appendChild(document.createTextNode(\"x\"));\n measureText.appendChild(elt(\"br\"));\n }\n measureText.appendChild(document.createTextNode(\"x\"));\n }\n removeChildrenAndAdd(display.measure, measureText);\n var height = measureText.offsetHeight / 50;\n if (height > 3) { display.cachedTextHeight = height; }\n removeChildren(display.measure);\n return height || 1\n }\n\n // Compute the default character width.\n function charWidth(display) {\n if (display.cachedCharWidth != null) { return display.cachedCharWidth }\n var anchor = elt(\"span\", \"xxxxxxxxxx\");\n var pre = elt(\"pre\", [anchor], \"CodeMirror-line-like\");\n removeChildrenAndAdd(display.measure, pre);\n var rect = anchor.getBoundingClientRect(), width = (rect.right - rect.left) / 10;\n if (width > 2) { display.cachedCharWidth = width; }\n return width || 10\n }\n\n // Do a bulk-read of the DOM positions and sizes needed to draw the\n // view, so that we don't interleave reading and writing to the DOM.\n function getDimensions(cm) {\n var d = cm.display, left = {}, width = {};\n var gutterLeft = d.gutters.clientLeft;\n for (var n = d.gutters.firstChild, i = 0; n; n = n.nextSibling, ++i) {\n var id = cm.display.gutterSpecs[i].className;\n left[id] = n.offsetLeft + n.clientLeft + gutterLeft;\n width[id] = n.clientWidth;\n }\n return {fixedPos: compensateForHScroll(d),\n gutterTotalWidth: d.gutters.offsetWidth,\n gutterLeft: left,\n gutterWidth: width,\n wrapperWidth: d.wrapper.clientWidth}\n }\n\n // Computes display.scroller.scrollLeft + display.gutters.offsetWidth,\n // but using getBoundingClientRect to get a sub-pixel-accurate\n // result.\n function compensateForHScroll(display) {\n return display.scroller.getBoundingClientRect().left - display.sizer.getBoundingClientRect().left\n }\n\n // Returns a function that estimates the height of a line, to use as\n // first approximation until the line becomes visible (and is thus\n // properly measurable).\n function estimateHeight(cm) {\n var th = textHeight(cm.display), wrapping = cm.options.lineWrapping;\n var perLine = wrapping && Math.max(5, cm.display.scroller.clientWidth / charWidth(cm.display) - 3);\n return function (line) {\n if (lineIsHidden(cm.doc, line)) { return 0 }\n\n var widgetsHeight = 0;\n if (line.widgets) { for (var i = 0; i < line.widgets.length; i++) {\n if (line.widgets[i].height) { widgetsHeight += line.widgets[i].height; }\n } }\n\n if (wrapping)\n { return widgetsHeight + (Math.ceil(line.text.length / perLine) || 1) * th }\n else\n { return widgetsHeight + th }\n }\n }\n\n function estimateLineHeights(cm) {\n var doc = cm.doc, est = estimateHeight(cm);\n doc.iter(function (line) {\n var estHeight = est(line);\n if (estHeight != line.height) { updateLineHeight(line, estHeight); }\n });\n }\n\n // Given a mouse event, find the corresponding position. If liberal\n // is false, it checks whether a gutter or scrollbar was clicked,\n // and returns null if it was. forRect is used by rectangular\n // selections, and tries to estimate a character position even for\n // coordinates beyond the right of the text.\n function posFromMouse(cm, e, liberal, forRect) {\n var display = cm.display;\n if (!liberal && e_target(e).getAttribute(\"cm-not-content\") == \"true\") { return null }\n\n var x, y, space = display.lineSpace.getBoundingClientRect();\n // Fails unpredictably on IE[67] when mouse is dragged around quickly.\n try { x = e.clientX - space.left; y = e.clientY - space.top; }\n catch (e$1) { return null }\n var coords = coordsChar(cm, x, y), line;\n if (forRect && coords.xRel > 0 && (line = getLine(cm.doc, coords.line).text).length == coords.ch) {\n var colDiff = countColumn(line, line.length, cm.options.tabSize) - line.length;\n coords = Pos(coords.line, Math.max(0, Math.round((x - paddingH(cm.display).left) / charWidth(cm.display)) - colDiff));\n }\n return coords\n }\n\n // Find the view element corresponding to a given line. Return null\n // when the line isn't visible.\n function findViewIndex(cm, n) {\n if (n >= cm.display.viewTo) { return null }\n n -= cm.display.viewFrom;\n if (n < 0) { return null }\n var view = cm.display.view;\n for (var i = 0; i < view.length; i++) {\n n -= view[i].size;\n if (n < 0) { return i }\n }\n }\n\n // Updates the display.view data structure for a given change to the\n // document. From and to are in pre-change coordinates. Lendiff is\n // the amount of lines added or subtracted by the change. This is\n // used for changes that span multiple lines, or change the way\n // lines are divided into visual lines. regLineChange (below)\n // registers single-line changes.\n function regChange(cm, from, to, lendiff) {\n if (from == null) { from = cm.doc.first; }\n if (to == null) { to = cm.doc.first + cm.doc.size; }\n if (!lendiff) { lendiff = 0; }\n\n var display = cm.display;\n if (lendiff && to < display.viewTo &&\n (display.updateLineNumbers == null || display.updateLineNumbers > from))\n { display.updateLineNumbers = from; }\n\n cm.curOp.viewChanged = true;\n\n if (from >= display.viewTo) { // Change after\n if (sawCollapsedSpans && visualLineNo(cm.doc, from) < display.viewTo)\n { resetView(cm); }\n } else if (to <= display.viewFrom) { // Change before\n if (sawCollapsedSpans && visualLineEndNo(cm.doc, to + lendiff) > display.viewFrom) {\n resetView(cm);\n } else {\n display.viewFrom += lendiff;\n display.viewTo += lendiff;\n }\n } else if (from <= display.viewFrom && to >= display.viewTo) { // Full overlap\n resetView(cm);\n } else if (from <= display.viewFrom) { // Top overlap\n var cut = viewCuttingPoint(cm, to, to + lendiff, 1);\n if (cut) {\n display.view = display.view.slice(cut.index);\n display.viewFrom = cut.lineN;\n display.viewTo += lendiff;\n } else {\n resetView(cm);\n }\n } else if (to >= display.viewTo) { // Bottom overlap\n var cut$1 = viewCuttingPoint(cm, from, from, -1);\n if (cut$1) {\n display.view = display.view.slice(0, cut$1.index);\n display.viewTo = cut$1.lineN;\n } else {\n resetView(cm);\n }\n } else { // Gap in the middle\n var cutTop = viewCuttingPoint(cm, from, from, -1);\n var cutBot = viewCuttingPoint(cm, to, to + lendiff, 1);\n if (cutTop && cutBot) {\n display.view = display.view.slice(0, cutTop.index)\n .concat(buildViewArray(cm, cutTop.lineN, cutBot.lineN))\n .concat(display.view.slice(cutBot.index));\n display.viewTo += lendiff;\n } else {\n resetView(cm);\n }\n }\n\n var ext = display.externalMeasured;\n if (ext) {\n if (to < ext.lineN)\n { ext.lineN += lendiff; }\n else if (from < ext.lineN + ext.size)\n { display.externalMeasured = null; }\n }\n }\n\n // Register a change to a single line. Type must be one of \"text\",\n // \"gutter\", \"class\", \"widget\"\n function regLineChange(cm, line, type) {\n cm.curOp.viewChanged = true;\n var display = cm.display, ext = cm.display.externalMeasured;\n if (ext && line >= ext.lineN && line < ext.lineN + ext.size)\n { display.externalMeasured = null; }\n\n if (line < display.viewFrom || line >= display.viewTo) { return }\n var lineView = display.view[findViewIndex(cm, line)];\n if (lineView.node == null) { return }\n var arr = lineView.changes || (lineView.changes = []);\n if (indexOf(arr, type) == -1) { arr.push(type); }\n }\n\n // Clear the view.\n function resetView(cm) {\n cm.display.viewFrom = cm.display.viewTo = cm.doc.first;\n cm.display.view = [];\n cm.display.viewOffset = 0;\n }\n\n function viewCuttingPoint(cm, oldN, newN, dir) {\n var index = findViewIndex(cm, oldN), diff, view = cm.display.view;\n if (!sawCollapsedSpans || newN == cm.doc.first + cm.doc.size)\n { return {index: index, lineN: newN} }\n var n = cm.display.viewFrom;\n for (var i = 0; i < index; i++)\n { n += view[i].size; }\n if (n != oldN) {\n if (dir > 0) {\n if (index == view.length - 1) { return null }\n diff = (n + view[index].size) - oldN;\n index++;\n } else {\n diff = n - oldN;\n }\n oldN += diff; newN += diff;\n }\n while (visualLineNo(cm.doc, newN) != newN) {\n if (index == (dir < 0 ? 0 : view.length - 1)) { return null }\n newN += dir * view[index - (dir < 0 ? 1 : 0)].size;\n index += dir;\n }\n return {index: index, lineN: newN}\n }\n\n // Force the view to cover a given range, adding empty view element\n // or clipping off existing ones as needed.\n function adjustView(cm, from, to) {\n var display = cm.display, view = display.view;\n if (view.length == 0 || from >= display.viewTo || to <= display.viewFrom) {\n display.view = buildViewArray(cm, from, to);\n display.viewFrom = from;\n } else {\n if (display.viewFrom > from)\n { display.view = buildViewArray(cm, from, display.viewFrom).concat(display.view); }\n else if (display.viewFrom < from)\n { display.view = display.view.slice(findViewIndex(cm, from)); }\n display.viewFrom = from;\n if (display.viewTo < to)\n { display.view = display.view.concat(buildViewArray(cm, display.viewTo, to)); }\n else if (display.viewTo > to)\n { display.view = display.view.slice(0, findViewIndex(cm, to)); }\n }\n display.viewTo = to;\n }\n\n // Count the number of lines in the view whose DOM representation is\n // out of date (or nonexistent).\n function countDirtyView(cm) {\n var view = cm.display.view, dirty = 0;\n for (var i = 0; i < view.length; i++) {\n var lineView = view[i];\n if (!lineView.hidden && (!lineView.node || lineView.changes)) { ++dirty; }\n }\n return dirty\n }\n\n function updateSelection(cm) {\n cm.display.input.showSelection(cm.display.input.prepareSelection());\n }\n\n function prepareSelection(cm, primary) {\n if ( primary === void 0 ) primary = true;\n\n var doc = cm.doc, result = {};\n var curFragment = result.cursors = document.createDocumentFragment();\n var selFragment = result.selection = document.createDocumentFragment();\n\n var customCursor = cm.options.$customCursor;\n if (customCursor) { primary = true; }\n for (var i = 0; i < doc.sel.ranges.length; i++) {\n if (!primary && i == doc.sel.primIndex) { continue }\n var range = doc.sel.ranges[i];\n if (range.from().line >= cm.display.viewTo || range.to().line < cm.display.viewFrom) { continue }\n var collapsed = range.empty();\n if (customCursor) {\n var head = customCursor(cm, range);\n if (head) { drawSelectionCursor(cm, head, curFragment); }\n } else if (collapsed || cm.options.showCursorWhenSelecting) {\n drawSelectionCursor(cm, range.head, curFragment);\n }\n if (!collapsed)\n { drawSelectionRange(cm, range, selFragment); }\n }\n return result\n }\n\n // Draws a cursor for the given range\n function drawSelectionCursor(cm, head, output) {\n var pos = cursorCoords(cm, head, \"div\", null, null, !cm.options.singleCursorHeightPerLine);\n\n var cursor = output.appendChild(elt(\"div\", \"\\u00a0\", \"CodeMirror-cursor\"));\n cursor.style.left = pos.left + \"px\";\n cursor.style.top = pos.top + \"px\";\n cursor.style.height = Math.max(0, pos.bottom - pos.top) * cm.options.cursorHeight + \"px\";\n\n if (/\\bcm-fat-cursor\\b/.test(cm.getWrapperElement().className)) {\n var charPos = charCoords(cm, head, \"div\", null, null);\n var width = charPos.right - charPos.left;\n cursor.style.width = (width > 0 ? width : cm.defaultCharWidth()) + \"px\";\n }\n\n if (pos.other) {\n // Secondary cursor, shown when on a 'jump' in bi-directional text\n var otherCursor = output.appendChild(elt(\"div\", \"\\u00a0\", \"CodeMirror-cursor CodeMirror-secondarycursor\"));\n otherCursor.style.display = \"\";\n otherCursor.style.left = pos.other.left + \"px\";\n otherCursor.style.top = pos.other.top + \"px\";\n otherCursor.style.height = (pos.other.bottom - pos.other.top) * .85 + \"px\";\n }\n }\n\n function cmpCoords(a, b) { return a.top - b.top || a.left - b.left }\n\n // Draws the given range as a highlighted selection\n function drawSelectionRange(cm, range, output) {\n var display = cm.display, doc = cm.doc;\n var fragment = document.createDocumentFragment();\n var padding = paddingH(cm.display), leftSide = padding.left;\n var rightSide = Math.max(display.sizerWidth, displayWidth(cm) - display.sizer.offsetLeft) - padding.right;\n var docLTR = doc.direction == \"ltr\";\n\n function add(left, top, width, bottom) {\n if (top < 0) { top = 0; }\n top = Math.round(top);\n bottom = Math.round(bottom);\n fragment.appendChild(elt(\"div\", null, \"CodeMirror-selected\", (\"position: absolute; left: \" + left + \"px;\\n top: \" + top + \"px; width: \" + (width == null ? rightSide - left : width) + \"px;\\n height: \" + (bottom - top) + \"px\")));\n }\n\n function drawForLine(line, fromArg, toArg) {\n var lineObj = getLine(doc, line);\n var lineLen = lineObj.text.length;\n var start, end;\n function coords(ch, bias) {\n return charCoords(cm, Pos(line, ch), \"div\", lineObj, bias)\n }\n\n function wrapX(pos, dir, side) {\n var extent = wrappedLineExtentChar(cm, lineObj, null, pos);\n var prop = (dir == \"ltr\") == (side == \"after\") ? \"left\" : \"right\";\n var ch = side == \"after\" ? extent.begin : extent.end - (/\\s/.test(lineObj.text.charAt(extent.end - 1)) ? 2 : 1);\n return coords(ch, prop)[prop]\n }\n\n var order = getOrder(lineObj, doc.direction);\n iterateBidiSections(order, fromArg || 0, toArg == null ? lineLen : toArg, function (from, to, dir, i) {\n var ltr = dir == \"ltr\";\n var fromPos = coords(from, ltr ? \"left\" : \"right\");\n var toPos = coords(to - 1, ltr ? \"right\" : \"left\");\n\n var openStart = fromArg == null && from == 0, openEnd = toArg == null && to == lineLen;\n var first = i == 0, last = !order || i == order.length - 1;\n if (toPos.top - fromPos.top <= 3) { // Single line\n var openLeft = (docLTR ? openStart : openEnd) && first;\n var openRight = (docLTR ? openEnd : openStart) && last;\n var left = openLeft ? leftSide : (ltr ? fromPos : toPos).left;\n var right = openRight ? rightSide : (ltr ? toPos : fromPos).right;\n add(left, fromPos.top, right - left, fromPos.bottom);\n } else { // Multiple lines\n var topLeft, topRight, botLeft, botRight;\n if (ltr) {\n topLeft = docLTR && openStart && first ? leftSide : fromPos.left;\n topRight = docLTR ? rightSide : wrapX(from, dir, \"before\");\n botLeft = docLTR ? leftSide : wrapX(to, dir, \"after\");\n botRight = docLTR && openEnd && last ? rightSide : toPos.right;\n } else {\n topLeft = !docLTR ? leftSide : wrapX(from, dir, \"before\");\n topRight = !docLTR && openStart && first ? rightSide : fromPos.right;\n botLeft = !docLTR && openEnd && last ? leftSide : toPos.left;\n botRight = !docLTR ? rightSide : wrapX(to, dir, \"after\");\n }\n add(topLeft, fromPos.top, topRight - topLeft, fromPos.bottom);\n if (fromPos.bottom < toPos.top) { add(leftSide, fromPos.bottom, null, toPos.top); }\n add(botLeft, toPos.top, botRight - botLeft, toPos.bottom);\n }\n\n if (!start || cmpCoords(fromPos, start) < 0) { start = fromPos; }\n if (cmpCoords(toPos, start) < 0) { start = toPos; }\n if (!end || cmpCoords(fromPos, end) < 0) { end = fromPos; }\n if (cmpCoords(toPos, end) < 0) { end = toPos; }\n });\n return {start: start, end: end}\n }\n\n var sFrom = range.from(), sTo = range.to();\n if (sFrom.line == sTo.line) {\n drawForLine(sFrom.line, sFrom.ch, sTo.ch);\n } else {\n var fromLine = getLine(doc, sFrom.line), toLine = getLine(doc, sTo.line);\n var singleVLine = visualLine(fromLine) == visualLine(toLine);\n var leftEnd = drawForLine(sFrom.line, sFrom.ch, singleVLine ? fromLine.text.length + 1 : null).end;\n var rightStart = drawForLine(sTo.line, singleVLine ? 0 : null, sTo.ch).start;\n if (singleVLine) {\n if (leftEnd.top < rightStart.top - 2) {\n add(leftEnd.right, leftEnd.top, null, leftEnd.bottom);\n add(leftSide, rightStart.top, rightStart.left, rightStart.bottom);\n } else {\n add(leftEnd.right, leftEnd.top, rightStart.left - leftEnd.right, leftEnd.bottom);\n }\n }\n if (leftEnd.bottom < rightStart.top)\n { add(leftSide, leftEnd.bottom, null, rightStart.top); }\n }\n\n output.appendChild(fragment);\n }\n\n // Cursor-blinking\n function restartBlink(cm) {\n if (!cm.state.focused) { return }\n var display = cm.display;\n clearInterval(display.blinker);\n var on = true;\n display.cursorDiv.style.visibility = \"\";\n if (cm.options.cursorBlinkRate > 0)\n { display.blinker = setInterval(function () {\n if (!cm.hasFocus()) { onBlur(cm); }\n display.cursorDiv.style.visibility = (on = !on) ? \"\" : \"hidden\";\n }, cm.options.cursorBlinkRate); }\n else if (cm.options.cursorBlinkRate < 0)\n { display.cursorDiv.style.visibility = \"hidden\"; }\n }\n\n function ensureFocus(cm) {\n if (!cm.hasFocus()) {\n cm.display.input.focus();\n if (!cm.state.focused) { onFocus(cm); }\n }\n }\n\n function delayBlurEvent(cm) {\n cm.state.delayingBlurEvent = true;\n setTimeout(function () { if (cm.state.delayingBlurEvent) {\n cm.state.delayingBlurEvent = false;\n if (cm.state.focused) { onBlur(cm); }\n } }, 100);\n }\n\n function onFocus(cm, e) {\n if (cm.state.delayingBlurEvent && !cm.state.draggingText) { cm.state.delayingBlurEvent = false; }\n\n if (cm.options.readOnly == \"nocursor\") { return }\n if (!cm.state.focused) {\n signal(cm, \"focus\", cm, e);\n cm.state.focused = true;\n addClass(cm.display.wrapper, \"CodeMirror-focused\");\n // This test prevents this from firing when a context\n // menu is closed (since the input reset would kill the\n // select-all detection hack)\n if (!cm.curOp && cm.display.selForContextMenu != cm.doc.sel) {\n cm.display.input.reset();\n if (webkit) { setTimeout(function () { return cm.display.input.reset(true); }, 20); } // Issue #1730\n }\n cm.display.input.receivedFocus();\n }\n restartBlink(cm);\n }\n function onBlur(cm, e) {\n if (cm.state.delayingBlurEvent) { return }\n\n if (cm.state.focused) {\n signal(cm, \"blur\", cm, e);\n cm.state.focused = false;\n rmClass(cm.display.wrapper, \"CodeMirror-focused\");\n }\n clearInterval(cm.display.blinker);\n setTimeout(function () { if (!cm.state.focused) { cm.display.shift = false; } }, 150);\n }\n\n // Read the actual heights of the rendered lines, and update their\n // stored heights to match.\n function updateHeightsInViewport(cm) {\n var display = cm.display;\n var prevBottom = display.lineDiv.offsetTop;\n var viewTop = Math.max(0, display.scroller.getBoundingClientRect().top);\n var oldHeight = display.lineDiv.getBoundingClientRect().top;\n var mustScroll = 0;\n for (var i = 0; i < display.view.length; i++) {\n var cur = display.view[i], wrapping = cm.options.lineWrapping;\n var height = (void 0), width = 0;\n if (cur.hidden) { continue }\n oldHeight += cur.line.height;\n if (ie && ie_version < 8) {\n var bot = cur.node.offsetTop + cur.node.offsetHeight;\n height = bot - prevBottom;\n prevBottom = bot;\n } else {\n var box = cur.node.getBoundingClientRect();\n height = box.bottom - box.top;\n // Check that lines don't extend past the right of the current\n // editor width\n if (!wrapping && cur.text.firstChild)\n { width = cur.text.firstChild.getBoundingClientRect().right - box.left - 1; }\n }\n var diff = cur.line.height - height;\n if (diff > .005 || diff < -.005) {\n if (oldHeight < viewTop) { mustScroll -= diff; }\n updateLineHeight(cur.line, height);\n updateWidgetHeight(cur.line);\n if (cur.rest) { for (var j = 0; j < cur.rest.length; j++)\n { updateWidgetHeight(cur.rest[j]); } }\n }\n if (width > cm.display.sizerWidth) {\n var chWidth = Math.ceil(width / charWidth(cm.display));\n if (chWidth > cm.display.maxLineLength) {\n cm.display.maxLineLength = chWidth;\n cm.display.maxLine = cur.line;\n cm.display.maxLineChanged = true;\n }\n }\n }\n if (Math.abs(mustScroll) > 2) { display.scroller.scrollTop += mustScroll; }\n }\n\n // Read and store the height of line widgets associated with the\n // given line.\n function updateWidgetHeight(line) {\n if (line.widgets) { for (var i = 0; i < line.widgets.length; ++i) {\n var w = line.widgets[i], parent = w.node.parentNode;\n if (parent) { w.height = parent.offsetHeight; }\n } }\n }\n\n // Compute the lines that are visible in a given viewport (defaults\n // the the current scroll position). viewport may contain top,\n // height, and ensure (see op.scrollToPos) properties.\n function visibleLines(display, doc, viewport) {\n var top = viewport && viewport.top != null ? Math.max(0, viewport.top) : display.scroller.scrollTop;\n top = Math.floor(top - paddingTop(display));\n var bottom = viewport && viewport.bottom != null ? viewport.bottom : top + display.wrapper.clientHeight;\n\n var from = lineAtHeight(doc, top), to = lineAtHeight(doc, bottom);\n // Ensure is a {from: {line, ch}, to: {line, ch}} object, and\n // forces those lines into the viewport (if possible).\n if (viewport && viewport.ensure) {\n var ensureFrom = viewport.ensure.from.line, ensureTo = viewport.ensure.to.line;\n if (ensureFrom < from) {\n from = ensureFrom;\n to = lineAtHeight(doc, heightAtLine(getLine(doc, ensureFrom)) + display.wrapper.clientHeight);\n } else if (Math.min(ensureTo, doc.lastLine()) >= to) {\n from = lineAtHeight(doc, heightAtLine(getLine(doc, ensureTo)) - display.wrapper.clientHeight);\n to = ensureTo;\n }\n }\n return {from: from, to: Math.max(to, from + 1)}\n }\n\n // SCROLLING THINGS INTO VIEW\n\n // If an editor sits on the top or bottom of the window, partially\n // scrolled out of view, this ensures that the cursor is visible.\n function maybeScrollWindow(cm, rect) {\n if (signalDOMEvent(cm, \"scrollCursorIntoView\")) { return }\n\n var display = cm.display, box = display.sizer.getBoundingClientRect(), doScroll = null;\n if (rect.top + box.top < 0) { doScroll = true; }\n else if (rect.bottom + box.top > (window.innerHeight || document.documentElement.clientHeight)) { doScroll = false; }\n if (doScroll != null && !phantom) {\n var scrollNode = elt(\"div\", \"\\u200b\", null, (\"position: absolute;\\n top: \" + (rect.top - display.viewOffset - paddingTop(cm.display)) + \"px;\\n height: \" + (rect.bottom - rect.top + scrollGap(cm) + display.barHeight) + \"px;\\n left: \" + (rect.left) + \"px; width: \" + (Math.max(2, rect.right - rect.left)) + \"px;\"));\n cm.display.lineSpace.appendChild(scrollNode);\n scrollNode.scrollIntoView(doScroll);\n cm.display.lineSpace.removeChild(scrollNode);\n }\n }\n\n // Scroll a given position into view (immediately), verifying that\n // it actually became visible (as line heights are accurately\n // measured, the position of something may 'drift' during drawing).\n function scrollPosIntoView(cm, pos, end, margin) {\n if (margin == null) { margin = 0; }\n var rect;\n if (!cm.options.lineWrapping && pos == end) {\n // Set pos and end to the cursor positions around the character pos sticks to\n // If pos.sticky == \"before\", that is around pos.ch - 1, otherwise around pos.ch\n // If pos == Pos(_, 0, \"before\"), pos and end are unchanged\n end = pos.sticky == \"before\" ? Pos(pos.line, pos.ch + 1, \"before\") : pos;\n pos = pos.ch ? Pos(pos.line, pos.sticky == \"before\" ? pos.ch - 1 : pos.ch, \"after\") : pos;\n }\n for (var limit = 0; limit < 5; limit++) {\n var changed = false;\n var coords = cursorCoords(cm, pos);\n var endCoords = !end || end == pos ? coords : cursorCoords(cm, end);\n rect = {left: Math.min(coords.left, endCoords.left),\n top: Math.min(coords.top, endCoords.top) - margin,\n right: Math.max(coords.left, endCoords.left),\n bottom: Math.max(coords.bottom, endCoords.bottom) + margin};\n var scrollPos = calculateScrollPos(cm, rect);\n var startTop = cm.doc.scrollTop, startLeft = cm.doc.scrollLeft;\n if (scrollPos.scrollTop != null) {\n updateScrollTop(cm, scrollPos.scrollTop);\n if (Math.abs(cm.doc.scrollTop - startTop) > 1) { changed = true; }\n }\n if (scrollPos.scrollLeft != null) {\n setScrollLeft(cm, scrollPos.scrollLeft);\n if (Math.abs(cm.doc.scrollLeft - startLeft) > 1) { changed = true; }\n }\n if (!changed) { break }\n }\n return rect\n }\n\n // Scroll a given set of coordinates into view (immediately).\n function scrollIntoView(cm, rect) {\n var scrollPos = calculateScrollPos(cm, rect);\n if (scrollPos.scrollTop != null) { updateScrollTop(cm, scrollPos.scrollTop); }\n if (scrollPos.scrollLeft != null) { setScrollLeft(cm, scrollPos.scrollLeft); }\n }\n\n // Calculate a new scroll position needed to scroll the given\n // rectangle into view. Returns an object with scrollTop and\n // scrollLeft properties. When these are undefined, the\n // vertical/horizontal position does not need to be adjusted.\n function calculateScrollPos(cm, rect) {\n var display = cm.display, snapMargin = textHeight(cm.display);\n if (rect.top < 0) { rect.top = 0; }\n var screentop = cm.curOp && cm.curOp.scrollTop != null ? cm.curOp.scrollTop : display.scroller.scrollTop;\n var screen = displayHeight(cm), result = {};\n if (rect.bottom - rect.top > screen) { rect.bottom = rect.top + screen; }\n var docBottom = cm.doc.height + paddingVert(display);\n var atTop = rect.top < snapMargin, atBottom = rect.bottom > docBottom - snapMargin;\n if (rect.top < screentop) {\n result.scrollTop = atTop ? 0 : rect.top;\n } else if (rect.bottom > screentop + screen) {\n var newTop = Math.min(rect.top, (atBottom ? docBottom : rect.bottom) - screen);\n if (newTop != screentop) { result.scrollTop = newTop; }\n }\n\n var gutterSpace = cm.options.fixedGutter ? 0 : display.gutters.offsetWidth;\n var screenleft = cm.curOp && cm.curOp.scrollLeft != null ? cm.curOp.scrollLeft : display.scroller.scrollLeft - gutterSpace;\n var screenw = displayWidth(cm) - display.gutters.offsetWidth;\n var tooWide = rect.right - rect.left > screenw;\n if (tooWide) { rect.right = rect.left + screenw; }\n if (rect.left < 10)\n { result.scrollLeft = 0; }\n else if (rect.left < screenleft)\n { result.scrollLeft = Math.max(0, rect.left + gutterSpace - (tooWide ? 0 : 10)); }\n else if (rect.right > screenw + screenleft - 3)\n { result.scrollLeft = rect.right + (tooWide ? 0 : 10) - screenw; }\n return result\n }\n\n // Store a relative adjustment to the scroll position in the current\n // operation (to be applied when the operation finishes).\n function addToScrollTop(cm, top) {\n if (top == null) { return }\n resolveScrollToPos(cm);\n cm.curOp.scrollTop = (cm.curOp.scrollTop == null ? cm.doc.scrollTop : cm.curOp.scrollTop) + top;\n }\n\n // Make sure that at the end of the operation the current cursor is\n // shown.\n function ensureCursorVisible(cm) {\n resolveScrollToPos(cm);\n var cur = cm.getCursor();\n cm.curOp.scrollToPos = {from: cur, to: cur, margin: cm.options.cursorScrollMargin};\n }\n\n function scrollToCoords(cm, x, y) {\n if (x != null || y != null) { resolveScrollToPos(cm); }\n if (x != null) { cm.curOp.scrollLeft = x; }\n if (y != null) { cm.curOp.scrollTop = y; }\n }\n\n function scrollToRange(cm, range) {\n resolveScrollToPos(cm);\n cm.curOp.scrollToPos = range;\n }\n\n // When an operation has its scrollToPos property set, and another\n // scroll action is applied before the end of the operation, this\n // 'simulates' scrolling that position into view in a cheap way, so\n // that the effect of intermediate scroll commands is not ignored.\n function resolveScrollToPos(cm) {\n var range = cm.curOp.scrollToPos;\n if (range) {\n cm.curOp.scrollToPos = null;\n var from = estimateCoords(cm, range.from), to = estimateCoords(cm, range.to);\n scrollToCoordsRange(cm, from, to, range.margin);\n }\n }\n\n function scrollToCoordsRange(cm, from, to, margin) {\n var sPos = calculateScrollPos(cm, {\n left: Math.min(from.left, to.left),\n top: Math.min(from.top, to.top) - margin,\n right: Math.max(from.right, to.right),\n bottom: Math.max(from.bottom, to.bottom) + margin\n });\n scrollToCoords(cm, sPos.scrollLeft, sPos.scrollTop);\n }\n\n // Sync the scrollable area and scrollbars, ensure the viewport\n // covers the visible area.\n function updateScrollTop(cm, val) {\n if (Math.abs(cm.doc.scrollTop - val) < 2) { return }\n if (!gecko) { updateDisplaySimple(cm, {top: val}); }\n setScrollTop(cm, val, true);\n if (gecko) { updateDisplaySimple(cm); }\n startWorker(cm, 100);\n }\n\n function setScrollTop(cm, val, forceScroll) {\n val = Math.max(0, Math.min(cm.display.scroller.scrollHeight - cm.display.scroller.clientHeight, val));\n if (cm.display.scroller.scrollTop == val && !forceScroll) { return }\n cm.doc.scrollTop = val;\n cm.display.scrollbars.setScrollTop(val);\n if (cm.display.scroller.scrollTop != val) { cm.display.scroller.scrollTop = val; }\n }\n\n // Sync scroller and scrollbar, ensure the gutter elements are\n // aligned.\n function setScrollLeft(cm, val, isScroller, forceScroll) {\n val = Math.max(0, Math.min(val, cm.display.scroller.scrollWidth - cm.display.scroller.clientWidth));\n if ((isScroller ? val == cm.doc.scrollLeft : Math.abs(cm.doc.scrollLeft - val) < 2) && !forceScroll) { return }\n cm.doc.scrollLeft = val;\n alignHorizontally(cm);\n if (cm.display.scroller.scrollLeft != val) { cm.display.scroller.scrollLeft = val; }\n cm.display.scrollbars.setScrollLeft(val);\n }\n\n // SCROLLBARS\n\n // Prepare DOM reads needed to update the scrollbars. Done in one\n // shot to minimize update/measure roundtrips.\n function measureForScrollbars(cm) {\n var d = cm.display, gutterW = d.gutters.offsetWidth;\n var docH = Math.round(cm.doc.height + paddingVert(cm.display));\n return {\n clientHeight: d.scroller.clientHeight,\n viewHeight: d.wrapper.clientHeight,\n scrollWidth: d.scroller.scrollWidth, clientWidth: d.scroller.clientWidth,\n viewWidth: d.wrapper.clientWidth,\n barLeft: cm.options.fixedGutter ? gutterW : 0,\n docHeight: docH,\n scrollHeight: docH + scrollGap(cm) + d.barHeight,\n nativeBarWidth: d.nativeBarWidth,\n gutterWidth: gutterW\n }\n }\n\n var NativeScrollbars = function(place, scroll, cm) {\n this.cm = cm;\n var vert = this.vert = elt(\"div\", [elt(\"div\", null, null, \"min-width: 1px\")], \"CodeMirror-vscrollbar\");\n var horiz = this.horiz = elt(\"div\", [elt(\"div\", null, null, \"height: 100%; min-height: 1px\")], \"CodeMirror-hscrollbar\");\n vert.tabIndex = horiz.tabIndex = -1;\n place(vert); place(horiz);\n\n on(vert, \"scroll\", function () {\n if (vert.clientHeight) { scroll(vert.scrollTop, \"vertical\"); }\n });\n on(horiz, \"scroll\", function () {\n if (horiz.clientWidth) { scroll(horiz.scrollLeft, \"horizontal\"); }\n });\n\n this.checkedZeroWidth = false;\n // Need to set a minimum width to see the scrollbar on IE7 (but must not set it on IE8).\n if (ie && ie_version < 8) { this.horiz.style.minHeight = this.vert.style.minWidth = \"18px\"; }\n };\n\n NativeScrollbars.prototype.update = function (measure) {\n var needsH = measure.scrollWidth > measure.clientWidth + 1;\n var needsV = measure.scrollHeight > measure.clientHeight + 1;\n var sWidth = measure.nativeBarWidth;\n\n if (needsV) {\n this.vert.style.display = \"block\";\n this.vert.style.bottom = needsH ? sWidth + \"px\" : \"0\";\n var totalHeight = measure.viewHeight - (needsH ? sWidth : 0);\n // A bug in IE8 can cause this value to be negative, so guard it.\n this.vert.firstChild.style.height =\n Math.max(0, measure.scrollHeight - measure.clientHeight + totalHeight) + \"px\";\n } else {\n this.vert.scrollTop = 0;\n this.vert.style.display = \"\";\n this.vert.firstChild.style.height = \"0\";\n }\n\n if (needsH) {\n this.horiz.style.display = \"block\";\n this.horiz.style.right = needsV ? sWidth + \"px\" : \"0\";\n this.horiz.style.left = measure.barLeft + \"px\";\n var totalWidth = measure.viewWidth - measure.barLeft - (needsV ? sWidth : 0);\n this.horiz.firstChild.style.width =\n Math.max(0, measure.scrollWidth - measure.clientWidth + totalWidth) + \"px\";\n } else {\n this.horiz.style.display = \"\";\n this.horiz.firstChild.style.width = \"0\";\n }\n\n if (!this.checkedZeroWidth && measure.clientHeight > 0) {\n if (sWidth == 0) { this.zeroWidthHack(); }\n this.checkedZeroWidth = true;\n }\n\n return {right: needsV ? sWidth : 0, bottom: needsH ? sWidth : 0}\n };\n\n NativeScrollbars.prototype.setScrollLeft = function (pos) {\n if (this.horiz.scrollLeft != pos) { this.horiz.scrollLeft = pos; }\n if (this.disableHoriz) { this.enableZeroWidthBar(this.horiz, this.disableHoriz, \"horiz\"); }\n };\n\n NativeScrollbars.prototype.setScrollTop = function (pos) {\n if (this.vert.scrollTop != pos) { this.vert.scrollTop = pos; }\n if (this.disableVert) { this.enableZeroWidthBar(this.vert, this.disableVert, \"vert\"); }\n };\n\n NativeScrollbars.prototype.zeroWidthHack = function () {\n var w = mac && !mac_geMountainLion ? \"12px\" : \"18px\";\n this.horiz.style.height = this.vert.style.width = w;\n this.horiz.style.visibility = this.vert.style.visibility = \"hidden\";\n this.disableHoriz = new Delayed;\n this.disableVert = new Delayed;\n };\n\n NativeScrollbars.prototype.enableZeroWidthBar = function (bar, delay, type) {\n bar.style.visibility = \"\";\n function maybeDisable() {\n // To find out whether the scrollbar is still visible, we\n // check whether the element under the pixel in the bottom\n // right corner of the scrollbar box is the scrollbar box\n // itself (when the bar is still visible) or its filler child\n // (when the bar is hidden). If it is still visible, we keep\n // it enabled, if it's hidden, we disable pointer events.\n var box = bar.getBoundingClientRect();\n var elt = type == \"vert\" ? document.elementFromPoint(box.right - 1, (box.top + box.bottom) / 2)\n : document.elementFromPoint((box.right + box.left) / 2, box.bottom - 1);\n if (elt != bar) { bar.style.visibility = \"hidden\"; }\n else { delay.set(1000, maybeDisable); }\n }\n delay.set(1000, maybeDisable);\n };\n\n NativeScrollbars.prototype.clear = function () {\n var parent = this.horiz.parentNode;\n parent.removeChild(this.horiz);\n parent.removeChild(this.vert);\n };\n\n var NullScrollbars = function () {};\n\n NullScrollbars.prototype.update = function () { return {bottom: 0, right: 0} };\n NullScrollbars.prototype.setScrollLeft = function () {};\n NullScrollbars.prototype.setScrollTop = function () {};\n NullScrollbars.prototype.clear = function () {};\n\n function updateScrollbars(cm, measure) {\n if (!measure) { measure = measureForScrollbars(cm); }\n var startWidth = cm.display.barWidth, startHeight = cm.display.barHeight;\n updateScrollbarsInner(cm, measure);\n for (var i = 0; i < 4 && startWidth != cm.display.barWidth || startHeight != cm.display.barHeight; i++) {\n if (startWidth != cm.display.barWidth && cm.options.lineWrapping)\n { updateHeightsInViewport(cm); }\n updateScrollbarsInner(cm, measureForScrollbars(cm));\n startWidth = cm.display.barWidth; startHeight = cm.display.barHeight;\n }\n }\n\n // Re-synchronize the fake scrollbars with the actual size of the\n // content.\n function updateScrollbarsInner(cm, measure) {\n var d = cm.display;\n var sizes = d.scrollbars.update(measure);\n\n d.sizer.style.paddingRight = (d.barWidth = sizes.right) + \"px\";\n d.sizer.style.paddingBottom = (d.barHeight = sizes.bottom) + \"px\";\n d.heightForcer.style.borderBottom = sizes.bottom + \"px solid transparent\";\n\n if (sizes.right && sizes.bottom) {\n d.scrollbarFiller.style.display = \"block\";\n d.scrollbarFiller.style.height = sizes.bottom + \"px\";\n d.scrollbarFiller.style.width = sizes.right + \"px\";\n } else { d.scrollbarFiller.style.display = \"\"; }\n if (sizes.bottom && cm.options.coverGutterNextToScrollbar && cm.options.fixedGutter) {\n d.gutterFiller.style.display = \"block\";\n d.gutterFiller.style.height = sizes.bottom + \"px\";\n d.gutterFiller.style.width = measure.gutterWidth + \"px\";\n } else { d.gutterFiller.style.display = \"\"; }\n }\n\n var scrollbarModel = {\"native\": NativeScrollbars, \"null\": NullScrollbars};\n\n function initScrollbars(cm) {\n if (cm.display.scrollbars) {\n cm.display.scrollbars.clear();\n if (cm.display.scrollbars.addClass)\n { rmClass(cm.display.wrapper, cm.display.scrollbars.addClass); }\n }\n\n cm.display.scrollbars = new scrollbarModel[cm.options.scrollbarStyle](function (node) {\n cm.display.wrapper.insertBefore(node, cm.display.scrollbarFiller);\n // Prevent clicks in the scrollbars from killing focus\n on(node, \"mousedown\", function () {\n if (cm.state.focused) { setTimeout(function () { return cm.display.input.focus(); }, 0); }\n });\n node.setAttribute(\"cm-not-content\", \"true\");\n }, function (pos, axis) {\n if (axis == \"horizontal\") { setScrollLeft(cm, pos); }\n else { updateScrollTop(cm, pos); }\n }, cm);\n if (cm.display.scrollbars.addClass)\n { addClass(cm.display.wrapper, cm.display.scrollbars.addClass); }\n }\n\n // Operations are used to wrap a series of changes to the editor\n // state in such a way that each change won't have to update the\n // cursor and display (which would be awkward, slow, and\n // error-prone). Instead, display updates are batched and then all\n // combined and executed at once.\n\n var nextOpId = 0;\n // Start a new operation.\n function startOperation(cm) {\n cm.curOp = {\n cm: cm,\n viewChanged: false, // Flag that indicates that lines might need to be redrawn\n startHeight: cm.doc.height, // Used to detect need to update scrollbar\n forceUpdate: false, // Used to force a redraw\n updateInput: 0, // Whether to reset the input textarea\n typing: false, // Whether this reset should be careful to leave existing text (for compositing)\n changeObjs: null, // Accumulated changes, for firing change events\n cursorActivityHandlers: null, // Set of handlers to fire cursorActivity on\n cursorActivityCalled: 0, // Tracks which cursorActivity handlers have been called already\n selectionChanged: false, // Whether the selection needs to be redrawn\n updateMaxLine: false, // Set when the widest line needs to be determined anew\n scrollLeft: null, scrollTop: null, // Intermediate scroll position, not pushed to DOM yet\n scrollToPos: null, // Used to scroll to a specific position\n focus: false,\n id: ++nextOpId, // Unique ID\n markArrays: null // Used by addMarkedSpan\n };\n pushOperation(cm.curOp);\n }\n\n // Finish an operation, updating the display and signalling delayed events\n function endOperation(cm) {\n var op = cm.curOp;\n if (op) { finishOperation(op, function (group) {\n for (var i = 0; i < group.ops.length; i++)\n { group.ops[i].cm.curOp = null; }\n endOperations(group);\n }); }\n }\n\n // The DOM updates done when an operation finishes are batched so\n // that the minimum number of relayouts are required.\n function endOperations(group) {\n var ops = group.ops;\n for (var i = 0; i < ops.length; i++) // Read DOM\n { endOperation_R1(ops[i]); }\n for (var i$1 = 0; i$1 < ops.length; i$1++) // Write DOM (maybe)\n { endOperation_W1(ops[i$1]); }\n for (var i$2 = 0; i$2 < ops.length; i$2++) // Read DOM\n { endOperation_R2(ops[i$2]); }\n for (var i$3 = 0; i$3 < ops.length; i$3++) // Write DOM (maybe)\n { endOperation_W2(ops[i$3]); }\n for (var i$4 = 0; i$4 < ops.length; i$4++) // Read DOM\n { endOperation_finish(ops[i$4]); }\n }\n\n function endOperation_R1(op) {\n var cm = op.cm, display = cm.display;\n maybeClipScrollbars(cm);\n if (op.updateMaxLine) { findMaxLine(cm); }\n\n op.mustUpdate = op.viewChanged || op.forceUpdate || op.scrollTop != null ||\n op.scrollToPos && (op.scrollToPos.from.line < display.viewFrom ||\n op.scrollToPos.to.line >= display.viewTo) ||\n display.maxLineChanged && cm.options.lineWrapping;\n op.update = op.mustUpdate &&\n new DisplayUpdate(cm, op.mustUpdate && {top: op.scrollTop, ensure: op.scrollToPos}, op.forceUpdate);\n }\n\n function endOperation_W1(op) {\n op.updatedDisplay = op.mustUpdate && updateDisplayIfNeeded(op.cm, op.update);\n }\n\n function endOperation_R2(op) {\n var cm = op.cm, display = cm.display;\n if (op.updatedDisplay) { updateHeightsInViewport(cm); }\n\n op.barMeasure = measureForScrollbars(cm);\n\n // If the max line changed since it was last measured, measure it,\n // and ensure the document's width matches it.\n // updateDisplay_W2 will use these properties to do the actual resizing\n if (display.maxLineChanged && !cm.options.lineWrapping) {\n op.adjustWidthTo = measureChar(cm, display.maxLine, display.maxLine.text.length).left + 3;\n cm.display.sizerWidth = op.adjustWidthTo;\n op.barMeasure.scrollWidth =\n Math.max(display.scroller.clientWidth, display.sizer.offsetLeft + op.adjustWidthTo + scrollGap(cm) + cm.display.barWidth);\n op.maxScrollLeft = Math.max(0, display.sizer.offsetLeft + op.adjustWidthTo - displayWidth(cm));\n }\n\n if (op.updatedDisplay || op.selectionChanged)\n { op.preparedSelection = display.input.prepareSelection(); }\n }\n\n function endOperation_W2(op) {\n var cm = op.cm;\n\n if (op.adjustWidthTo != null) {\n cm.display.sizer.style.minWidth = op.adjustWidthTo + \"px\";\n if (op.maxScrollLeft < cm.doc.scrollLeft)\n { setScrollLeft(cm, Math.min(cm.display.scroller.scrollLeft, op.maxScrollLeft), true); }\n cm.display.maxLineChanged = false;\n }\n\n var takeFocus = op.focus && op.focus == activeElt();\n if (op.preparedSelection)\n { cm.display.input.showSelection(op.preparedSelection, takeFocus); }\n if (op.updatedDisplay || op.startHeight != cm.doc.height)\n { updateScrollbars(cm, op.barMeasure); }\n if (op.updatedDisplay)\n { setDocumentHeight(cm, op.barMeasure); }\n\n if (op.selectionChanged) { restartBlink(cm); }\n\n if (cm.state.focused && op.updateInput)\n { cm.display.input.reset(op.typing); }\n if (takeFocus) { ensureFocus(op.cm); }\n }\n\n function endOperation_finish(op) {\n var cm = op.cm, display = cm.display, doc = cm.doc;\n\n if (op.updatedDisplay) { postUpdateDisplay(cm, op.update); }\n\n // Abort mouse wheel delta measurement, when scrolling explicitly\n if (display.wheelStartX != null && (op.scrollTop != null || op.scrollLeft != null || op.scrollToPos))\n { display.wheelStartX = display.wheelStartY = null; }\n\n // Propagate the scroll position to the actual DOM scroller\n if (op.scrollTop != null) { setScrollTop(cm, op.scrollTop, op.forceScroll); }\n\n if (op.scrollLeft != null) { setScrollLeft(cm, op.scrollLeft, true, true); }\n // If we need to scroll a specific position into view, do so.\n if (op.scrollToPos) {\n var rect = scrollPosIntoView(cm, clipPos(doc, op.scrollToPos.from),\n clipPos(doc, op.scrollToPos.to), op.scrollToPos.margin);\n maybeScrollWindow(cm, rect);\n }\n\n // Fire events for markers that are hidden/unidden by editing or\n // undoing\n var hidden = op.maybeHiddenMarkers, unhidden = op.maybeUnhiddenMarkers;\n if (hidden) { for (var i = 0; i < hidden.length; ++i)\n { if (!hidden[i].lines.length) { signal(hidden[i], \"hide\"); } } }\n if (unhidden) { for (var i$1 = 0; i$1 < unhidden.length; ++i$1)\n { if (unhidden[i$1].lines.length) { signal(unhidden[i$1], \"unhide\"); } } }\n\n if (display.wrapper.offsetHeight)\n { doc.scrollTop = cm.display.scroller.scrollTop; }\n\n // Fire change events, and delayed event handlers\n if (op.changeObjs)\n { signal(cm, \"changes\", cm, op.changeObjs); }\n if (op.update)\n { op.update.finish(); }\n }\n\n // Run the given function in an operation\n function runInOp(cm, f) {\n if (cm.curOp) { return f() }\n startOperation(cm);\n try { return f() }\n finally { endOperation(cm); }\n }\n // Wraps a function in an operation. Returns the wrapped function.\n function operation(cm, f) {\n return function() {\n if (cm.curOp) { return f.apply(cm, arguments) }\n startOperation(cm);\n try { return f.apply(cm, arguments) }\n finally { endOperation(cm); }\n }\n }\n // Used to add methods to editor and doc instances, wrapping them in\n // operations.\n function methodOp(f) {\n return function() {\n if (this.curOp) { return f.apply(this, arguments) }\n startOperation(this);\n try { return f.apply(this, arguments) }\n finally { endOperation(this); }\n }\n }\n function docMethodOp(f) {\n return function() {\n var cm = this.cm;\n if (!cm || cm.curOp) { return f.apply(this, arguments) }\n startOperation(cm);\n try { return f.apply(this, arguments) }\n finally { endOperation(cm); }\n }\n }\n\n // HIGHLIGHT WORKER\n\n function startWorker(cm, time) {\n if (cm.doc.highlightFrontier < cm.display.viewTo)\n { cm.state.highlight.set(time, bind(highlightWorker, cm)); }\n }\n\n function highlightWorker(cm) {\n var doc = cm.doc;\n if (doc.highlightFrontier >= cm.display.viewTo) { return }\n var end = +new Date + cm.options.workTime;\n var context = getContextBefore(cm, doc.highlightFrontier);\n var changedLines = [];\n\n doc.iter(context.line, Math.min(doc.first + doc.size, cm.display.viewTo + 500), function (line) {\n if (context.line >= cm.display.viewFrom) { // Visible\n var oldStyles = line.styles;\n var resetState = line.text.length > cm.options.maxHighlightLength ? copyState(doc.mode, context.state) : null;\n var highlighted = highlightLine(cm, line, context, true);\n if (resetState) { context.state = resetState; }\n line.styles = highlighted.styles;\n var oldCls = line.styleClasses, newCls = highlighted.classes;\n if (newCls) { line.styleClasses = newCls; }\n else if (oldCls) { line.styleClasses = null; }\n var ischange = !oldStyles || oldStyles.length != line.styles.length ||\n oldCls != newCls && (!oldCls || !newCls || oldCls.bgClass != newCls.bgClass || oldCls.textClass != newCls.textClass);\n for (var i = 0; !ischange && i < oldStyles.length; ++i) { ischange = oldStyles[i] != line.styles[i]; }\n if (ischange) { changedLines.push(context.line); }\n line.stateAfter = context.save();\n context.nextLine();\n } else {\n if (line.text.length <= cm.options.maxHighlightLength)\n { processLine(cm, line.text, context); }\n line.stateAfter = context.line % 5 == 0 ? context.save() : null;\n context.nextLine();\n }\n if (+new Date > end) {\n startWorker(cm, cm.options.workDelay);\n return true\n }\n });\n doc.highlightFrontier = context.line;\n doc.modeFrontier = Math.max(doc.modeFrontier, context.line);\n if (changedLines.length) { runInOp(cm, function () {\n for (var i = 0; i < changedLines.length; i++)\n { regLineChange(cm, changedLines[i], \"text\"); }\n }); }\n }\n\n // DISPLAY DRAWING\n\n var DisplayUpdate = function(cm, viewport, force) {\n var display = cm.display;\n\n this.viewport = viewport;\n // Store some values that we'll need later (but don't want to force a relayout for)\n this.visible = visibleLines(display, cm.doc, viewport);\n this.editorIsHidden = !display.wrapper.offsetWidth;\n this.wrapperHeight = display.wrapper.clientHeight;\n this.wrapperWidth = display.wrapper.clientWidth;\n this.oldDisplayWidth = displayWidth(cm);\n this.force = force;\n this.dims = getDimensions(cm);\n this.events = [];\n };\n\n DisplayUpdate.prototype.signal = function (emitter, type) {\n if (hasHandler(emitter, type))\n { this.events.push(arguments); }\n };\n DisplayUpdate.prototype.finish = function () {\n for (var i = 0; i < this.events.length; i++)\n { signal.apply(null, this.events[i]); }\n };\n\n function maybeClipScrollbars(cm) {\n var display = cm.display;\n if (!display.scrollbarsClipped && display.scroller.offsetWidth) {\n display.nativeBarWidth = display.scroller.offsetWidth - display.scroller.clientWidth;\n display.heightForcer.style.height = scrollGap(cm) + \"px\";\n display.sizer.style.marginBottom = -display.nativeBarWidth + \"px\";\n display.sizer.style.borderRightWidth = scrollGap(cm) + \"px\";\n display.scrollbarsClipped = true;\n }\n }\n\n function selectionSnapshot(cm) {\n if (cm.hasFocus()) { return null }\n var active = activeElt();\n if (!active || !contains(cm.display.lineDiv, active)) { return null }\n var result = {activeElt: active};\n if (window.getSelection) {\n var sel = window.getSelection();\n if (sel.anchorNode && sel.extend && contains(cm.display.lineDiv, sel.anchorNode)) {\n result.anchorNode = sel.anchorNode;\n result.anchorOffset = sel.anchorOffset;\n result.focusNode = sel.focusNode;\n result.focusOffset = sel.focusOffset;\n }\n }\n return result\n }\n\n function restoreSelection(snapshot) {\n if (!snapshot || !snapshot.activeElt || snapshot.activeElt == activeElt()) { return }\n snapshot.activeElt.focus();\n if (!/^(INPUT|TEXTAREA)$/.test(snapshot.activeElt.nodeName) &&\n snapshot.anchorNode && contains(document.body, snapshot.anchorNode) && contains(document.body, snapshot.focusNode)) {\n var sel = window.getSelection(), range = document.createRange();\n range.setEnd(snapshot.anchorNode, snapshot.anchorOffset);\n range.collapse(false);\n sel.removeAllRanges();\n sel.addRange(range);\n sel.extend(snapshot.focusNode, snapshot.focusOffset);\n }\n }\n\n // Does the actual updating of the line display. Bails out\n // (returning false) when there is nothing to be done and forced is\n // false.\n function updateDisplayIfNeeded(cm, update) {\n var display = cm.display, doc = cm.doc;\n\n if (update.editorIsHidden) {\n resetView(cm);\n return false\n }\n\n // Bail out if the visible area is already rendered and nothing changed.\n if (!update.force &&\n update.visible.from >= display.viewFrom && update.visible.to <= display.viewTo &&\n (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo) &&\n display.renderedView == display.view && countDirtyView(cm) == 0)\n { return false }\n\n if (maybeUpdateLineNumberWidth(cm)) {\n resetView(cm);\n update.dims = getDimensions(cm);\n }\n\n // Compute a suitable new viewport (from & to)\n var end = doc.first + doc.size;\n var from = Math.max(update.visible.from - cm.options.viewportMargin, doc.first);\n var to = Math.min(end, update.visible.to + cm.options.viewportMargin);\n if (display.viewFrom < from && from - display.viewFrom < 20) { from = Math.max(doc.first, display.viewFrom); }\n if (display.viewTo > to && display.viewTo - to < 20) { to = Math.min(end, display.viewTo); }\n if (sawCollapsedSpans) {\n from = visualLineNo(cm.doc, from);\n to = visualLineEndNo(cm.doc, to);\n }\n\n var different = from != display.viewFrom || to != display.viewTo ||\n display.lastWrapHeight != update.wrapperHeight || display.lastWrapWidth != update.wrapperWidth;\n adjustView(cm, from, to);\n\n display.viewOffset = heightAtLine(getLine(cm.doc, display.viewFrom));\n // Position the mover div to align with the current scroll position\n cm.display.mover.style.top = display.viewOffset + \"px\";\n\n var toUpdate = countDirtyView(cm);\n if (!different && toUpdate == 0 && !update.force && display.renderedView == display.view &&\n (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo))\n { return false }\n\n // For big changes, we hide the enclosing element during the\n // update, since that speeds up the operations on most browsers.\n var selSnapshot = selectionSnapshot(cm);\n if (toUpdate > 4) { display.lineDiv.style.display = \"none\"; }\n patchDisplay(cm, display.updateLineNumbers, update.dims);\n if (toUpdate > 4) { display.lineDiv.style.display = \"\"; }\n display.renderedView = display.view;\n // There might have been a widget with a focused element that got\n // hidden or updated, if so re-focus it.\n restoreSelection(selSnapshot);\n\n // Prevent selection and cursors from interfering with the scroll\n // width and height.\n removeChildren(display.cursorDiv);\n removeChildren(display.selectionDiv);\n display.gutters.style.height = display.sizer.style.minHeight = 0;\n\n if (different) {\n display.lastWrapHeight = update.wrapperHeight;\n display.lastWrapWidth = update.wrapperWidth;\n startWorker(cm, 400);\n }\n\n display.updateLineNumbers = null;\n\n return true\n }\n\n function postUpdateDisplay(cm, update) {\n var viewport = update.viewport;\n\n for (var first = true;; first = false) {\n if (!first || !cm.options.lineWrapping || update.oldDisplayWidth == displayWidth(cm)) {\n // Clip forced viewport to actual scrollable area.\n if (viewport && viewport.top != null)\n { viewport = {top: Math.min(cm.doc.height + paddingVert(cm.display) - displayHeight(cm), viewport.top)}; }\n // Updated line heights might result in the drawn area not\n // actually covering the viewport. Keep looping until it does.\n update.visible = visibleLines(cm.display, cm.doc, viewport);\n if (update.visible.from >= cm.display.viewFrom && update.visible.to <= cm.display.viewTo)\n { break }\n } else if (first) {\n update.visible = visibleLines(cm.display, cm.doc, viewport);\n }\n if (!updateDisplayIfNeeded(cm, update)) { break }\n updateHeightsInViewport(cm);\n var barMeasure = measureForScrollbars(cm);\n updateSelection(cm);\n updateScrollbars(cm, barMeasure);\n setDocumentHeight(cm, barMeasure);\n update.force = false;\n }\n\n update.signal(cm, \"update\", cm);\n if (cm.display.viewFrom != cm.display.reportedViewFrom || cm.display.viewTo != cm.display.reportedViewTo) {\n update.signal(cm, \"viewportChange\", cm, cm.display.viewFrom, cm.display.viewTo);\n cm.display.reportedViewFrom = cm.display.viewFrom; cm.display.reportedViewTo = cm.display.viewTo;\n }\n }\n\n function updateDisplaySimple(cm, viewport) {\n var update = new DisplayUpdate(cm, viewport);\n if (updateDisplayIfNeeded(cm, update)) {\n updateHeightsInViewport(cm);\n postUpdateDisplay(cm, update);\n var barMeasure = measureForScrollbars(cm);\n updateSelection(cm);\n updateScrollbars(cm, barMeasure);\n setDocumentHeight(cm, barMeasure);\n update.finish();\n }\n }\n\n // Sync the actual display DOM structure with display.view, removing\n // nodes for lines that are no longer in view, and creating the ones\n // that are not there yet, and updating the ones that are out of\n // date.\n function patchDisplay(cm, updateNumbersFrom, dims) {\n var display = cm.display, lineNumbers = cm.options.lineNumbers;\n var container = display.lineDiv, cur = container.firstChild;\n\n function rm(node) {\n var next = node.nextSibling;\n // Works around a throw-scroll bug in OS X Webkit\n if (webkit && mac && cm.display.currentWheelTarget == node)\n { node.style.display = \"none\"; }\n else\n { node.parentNode.removeChild(node); }\n return next\n }\n\n var view = display.view, lineN = display.viewFrom;\n // Loop over the elements in the view, syncing cur (the DOM nodes\n // in display.lineDiv) with the view as we go.\n for (var i = 0; i < view.length; i++) {\n var lineView = view[i];\n if (lineView.hidden) ; else if (!lineView.node || lineView.node.parentNode != container) { // Not drawn yet\n var node = buildLineElement(cm, lineView, lineN, dims);\n container.insertBefore(node, cur);\n } else { // Already drawn\n while (cur != lineView.node) { cur = rm(cur); }\n var updateNumber = lineNumbers && updateNumbersFrom != null &&\n updateNumbersFrom <= lineN && lineView.lineNumber;\n if (lineView.changes) {\n if (indexOf(lineView.changes, \"gutter\") > -1) { updateNumber = false; }\n updateLineForChanges(cm, lineView, lineN, dims);\n }\n if (updateNumber) {\n removeChildren(lineView.lineNumber);\n lineView.lineNumber.appendChild(document.createTextNode(lineNumberFor(cm.options, lineN)));\n }\n cur = lineView.node.nextSibling;\n }\n lineN += lineView.size;\n }\n while (cur) { cur = rm(cur); }\n }\n\n function updateGutterSpace(display) {\n var width = display.gutters.offsetWidth;\n display.sizer.style.marginLeft = width + \"px\";\n // Send an event to consumers responding to changes in gutter width.\n signalLater(display, \"gutterChanged\", display);\n }\n\n function setDocumentHeight(cm, measure) {\n cm.display.sizer.style.minHeight = measure.docHeight + \"px\";\n cm.display.heightForcer.style.top = measure.docHeight + \"px\";\n cm.display.gutters.style.height = (measure.docHeight + cm.display.barHeight + scrollGap(cm)) + \"px\";\n }\n\n // Re-align line numbers and gutter marks to compensate for\n // horizontal scrolling.\n function alignHorizontally(cm) {\n var display = cm.display, view = display.view;\n if (!display.alignWidgets && (!display.gutters.firstChild || !cm.options.fixedGutter)) { return }\n var comp = compensateForHScroll(display) - display.scroller.scrollLeft + cm.doc.scrollLeft;\n var gutterW = display.gutters.offsetWidth, left = comp + \"px\";\n for (var i = 0; i < view.length; i++) { if (!view[i].hidden) {\n if (cm.options.fixedGutter) {\n if (view[i].gutter)\n { view[i].gutter.style.left = left; }\n if (view[i].gutterBackground)\n { view[i].gutterBackground.style.left = left; }\n }\n var align = view[i].alignable;\n if (align) { for (var j = 0; j < align.length; j++)\n { align[j].style.left = left; } }\n } }\n if (cm.options.fixedGutter)\n { display.gutters.style.left = (comp + gutterW) + \"px\"; }\n }\n\n // Used to ensure that the line number gutter is still the right\n // size for the current document size. Returns true when an update\n // is needed.\n function maybeUpdateLineNumberWidth(cm) {\n if (!cm.options.lineNumbers) { return false }\n var doc = cm.doc, last = lineNumberFor(cm.options, doc.first + doc.size - 1), display = cm.display;\n if (last.length != display.lineNumChars) {\n var test = display.measure.appendChild(elt(\"div\", [elt(\"div\", last)],\n \"CodeMirror-linenumber CodeMirror-gutter-elt\"));\n var innerW = test.firstChild.offsetWidth, padding = test.offsetWidth - innerW;\n display.lineGutter.style.width = \"\";\n display.lineNumInnerWidth = Math.max(innerW, display.lineGutter.offsetWidth - padding) + 1;\n display.lineNumWidth = display.lineNumInnerWidth + padding;\n display.lineNumChars = display.lineNumInnerWidth ? last.length : -1;\n display.lineGutter.style.width = display.lineNumWidth + \"px\";\n updateGutterSpace(cm.display);\n return true\n }\n return false\n }\n\n function getGutters(gutters, lineNumbers) {\n var result = [], sawLineNumbers = false;\n for (var i = 0; i < gutters.length; i++) {\n var name = gutters[i], style = null;\n if (typeof name != \"string\") { style = name.style; name = name.className; }\n if (name == \"CodeMirror-linenumbers\") {\n if (!lineNumbers) { continue }\n else { sawLineNumbers = true; }\n }\n result.push({className: name, style: style});\n }\n if (lineNumbers && !sawLineNumbers) { result.push({className: \"CodeMirror-linenumbers\", style: null}); }\n return result\n }\n\n // Rebuild the gutter elements, ensure the margin to the left of the\n // code matches their width.\n function renderGutters(display) {\n var gutters = display.gutters, specs = display.gutterSpecs;\n removeChildren(gutters);\n display.lineGutter = null;\n for (var i = 0; i < specs.length; ++i) {\n var ref = specs[i];\n var className = ref.className;\n var style = ref.style;\n var gElt = gutters.appendChild(elt(\"div\", null, \"CodeMirror-gutter \" + className));\n if (style) { gElt.style.cssText = style; }\n if (className == \"CodeMirror-linenumbers\") {\n display.lineGutter = gElt;\n gElt.style.width = (display.lineNumWidth || 1) + \"px\";\n }\n }\n gutters.style.display = specs.length ? \"\" : \"none\";\n updateGutterSpace(display);\n }\n\n function updateGutters(cm) {\n renderGutters(cm.display);\n regChange(cm);\n alignHorizontally(cm);\n }\n\n // The display handles the DOM integration, both for input reading\n // and content drawing. It holds references to DOM nodes and\n // display-related state.\n\n function Display(place, doc, input, options) {\n var d = this;\n this.input = input;\n\n // Covers bottom-right square when both scrollbars are present.\n d.scrollbarFiller = elt(\"div\", null, \"CodeMirror-scrollbar-filler\");\n d.scrollbarFiller.setAttribute(\"cm-not-content\", \"true\");\n // Covers bottom of gutter when coverGutterNextToScrollbar is on\n // and h scrollbar is present.\n d.gutterFiller = elt(\"div\", null, \"CodeMirror-gutter-filler\");\n d.gutterFiller.setAttribute(\"cm-not-content\", \"true\");\n // Will contain the actual code, positioned to cover the viewport.\n d.lineDiv = eltP(\"div\", null, \"CodeMirror-code\");\n // Elements are added to these to represent selection and cursors.\n d.selectionDiv = elt(\"div\", null, null, \"position: relative; z-index: 1\");\n d.cursorDiv = elt(\"div\", null, \"CodeMirror-cursors\");\n // A visibility: hidden element used to find the size of things.\n d.measure = elt(\"div\", null, \"CodeMirror-measure\");\n // When lines outside of the viewport are measured, they are drawn in this.\n d.lineMeasure = elt(\"div\", null, \"CodeMirror-measure\");\n // Wraps everything that needs to exist inside the vertically-padded coordinate system\n d.lineSpace = eltP(\"div\", [d.measure, d.lineMeasure, d.selectionDiv, d.cursorDiv, d.lineDiv],\n null, \"position: relative; outline: none\");\n var lines = eltP(\"div\", [d.lineSpace], \"CodeMirror-lines\");\n // Moved around its parent to cover visible view.\n d.mover = elt(\"div\", [lines], null, \"position: relative\");\n // Set to the height of the document, allowing scrolling.\n d.sizer = elt(\"div\", [d.mover], \"CodeMirror-sizer\");\n d.sizerWidth = null;\n // Behavior of elts with overflow: auto and padding is\n // inconsistent across browsers. This is used to ensure the\n // scrollable area is big enough.\n d.heightForcer = elt(\"div\", null, null, \"position: absolute; height: \" + scrollerGap + \"px; width: 1px;\");\n // Will contain the gutters, if any.\n d.gutters = elt(\"div\", null, \"CodeMirror-gutters\");\n d.lineGutter = null;\n // Actual scrollable element.\n d.scroller = elt(\"div\", [d.sizer, d.heightForcer, d.gutters], \"CodeMirror-scroll\");\n d.scroller.setAttribute(\"tabIndex\", \"-1\");\n // The element in which the editor lives.\n d.wrapper = elt(\"div\", [d.scrollbarFiller, d.gutterFiller, d.scroller], \"CodeMirror\");\n\n // This attribute is respected by automatic translation systems such as Google Translate,\n // and may also be respected by tools used by human translators.\n d.wrapper.setAttribute('translate', 'no');\n\n // Work around IE7 z-index bug (not perfect, hence IE7 not really being supported)\n if (ie && ie_version < 8) { d.gutters.style.zIndex = -1; d.scroller.style.paddingRight = 0; }\n if (!webkit && !(gecko && mobile)) { d.scroller.draggable = true; }\n\n if (place) {\n if (place.appendChild) { place.appendChild(d.wrapper); }\n else { place(d.wrapper); }\n }\n\n // Current rendered range (may be bigger than the view window).\n d.viewFrom = d.viewTo = doc.first;\n d.reportedViewFrom = d.reportedViewTo = doc.first;\n // Information about the rendered lines.\n d.view = [];\n d.renderedView = null;\n // Holds info about a single rendered line when it was rendered\n // for measurement, while not in view.\n d.externalMeasured = null;\n // Empty space (in pixels) above the view\n d.viewOffset = 0;\n d.lastWrapHeight = d.lastWrapWidth = 0;\n d.updateLineNumbers = null;\n\n d.nativeBarWidth = d.barHeight = d.barWidth = 0;\n d.scrollbarsClipped = false;\n\n // Used to only resize the line number gutter when necessary (when\n // the amount of lines crosses a boundary that makes its width change)\n d.lineNumWidth = d.lineNumInnerWidth = d.lineNumChars = null;\n // Set to true when a non-horizontal-scrolling line widget is\n // added. As an optimization, line widget aligning is skipped when\n // this is false.\n d.alignWidgets = false;\n\n d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null;\n\n // Tracks the maximum line length so that the horizontal scrollbar\n // can be kept static when scrolling.\n d.maxLine = null;\n d.maxLineLength = 0;\n d.maxLineChanged = false;\n\n // Used for measuring wheel scrolling granularity\n d.wheelDX = d.wheelDY = d.wheelStartX = d.wheelStartY = null;\n\n // True when shift is held down.\n d.shift = false;\n\n // Used to track whether anything happened since the context menu\n // was opened.\n d.selForContextMenu = null;\n\n d.activeTouch = null;\n\n d.gutterSpecs = getGutters(options.gutters, options.lineNumbers);\n renderGutters(d);\n\n input.init(d);\n }\n\n // Since the delta values reported on mouse wheel events are\n // unstandardized between browsers and even browser versions, and\n // generally horribly unpredictable, this code starts by measuring\n // the scroll effect that the first few mouse wheel events have,\n // and, from that, detects the way it can convert deltas to pixel\n // offsets afterwards.\n //\n // The reason we want to know the amount a wheel event will scroll\n // is that it gives us a chance to update the display before the\n // actual scrolling happens, reducing flickering.\n\n var wheelSamples = 0, wheelPixelsPerUnit = null;\n // Fill in a browser-detected starting value on browsers where we\n // know one. These don't have to be accurate -- the result of them\n // being wrong would just be a slight flicker on the first wheel\n // scroll (if it is large enough).\n if (ie) { wheelPixelsPerUnit = -.53; }\n else if (gecko) { wheelPixelsPerUnit = 15; }\n else if (chrome) { wheelPixelsPerUnit = -.7; }\n else if (safari) { wheelPixelsPerUnit = -1/3; }\n\n function wheelEventDelta(e) {\n var dx = e.wheelDeltaX, dy = e.wheelDeltaY;\n if (dx == null && e.detail && e.axis == e.HORIZONTAL_AXIS) { dx = e.detail; }\n if (dy == null && e.detail && e.axis == e.VERTICAL_AXIS) { dy = e.detail; }\n else if (dy == null) { dy = e.wheelDelta; }\n return {x: dx, y: dy}\n }\n function wheelEventPixels(e) {\n var delta = wheelEventDelta(e);\n delta.x *= wheelPixelsPerUnit;\n delta.y *= wheelPixelsPerUnit;\n return delta\n }\n\n function onScrollWheel(cm, e) {\n // On Chrome 102, viewport updates somehow stop wheel-based\n // scrolling. Turning off pointer events during the scroll seems\n // to avoid the issue.\n if (chrome && chrome_version >= 102) {\n if (cm.display.chromeScrollHack == null) { cm.display.sizer.style.pointerEvents = \"none\"; }\n else { clearTimeout(cm.display.chromeScrollHack); }\n cm.display.chromeScrollHack = setTimeout(function () {\n cm.display.chromeScrollHack = null;\n cm.display.sizer.style.pointerEvents = \"\";\n }, 100);\n }\n var delta = wheelEventDelta(e), dx = delta.x, dy = delta.y;\n var pixelsPerUnit = wheelPixelsPerUnit;\n if (e.deltaMode === 0) {\n dx = e.deltaX;\n dy = e.deltaY;\n pixelsPerUnit = 1;\n }\n\n var display = cm.display, scroll = display.scroller;\n // Quit if there's nothing to scroll here\n var canScrollX = scroll.scrollWidth > scroll.clientWidth;\n var canScrollY = scroll.scrollHeight > scroll.clientHeight;\n if (!(dx && canScrollX || dy && canScrollY)) { return }\n\n // Webkit browsers on OS X abort momentum scrolls when the target\n // of the scroll event is removed from the scrollable element.\n // This hack (see related code in patchDisplay) makes sure the\n // element is kept around.\n if (dy && mac && webkit) {\n outer: for (var cur = e.target, view = display.view; cur != scroll; cur = cur.parentNode) {\n for (var i = 0; i < view.length; i++) {\n if (view[i].node == cur) {\n cm.display.currentWheelTarget = cur;\n break outer\n }\n }\n }\n }\n\n // On some browsers, horizontal scrolling will cause redraws to\n // happen before the gutter has been realigned, causing it to\n // wriggle around in a most unseemly way. When we have an\n // estimated pixels/delta value, we just handle horizontal\n // scrolling entirely here. It'll be slightly off from native, but\n // better than glitching out.\n if (dx && !gecko && !presto && pixelsPerUnit != null) {\n if (dy && canScrollY)\n { updateScrollTop(cm, Math.max(0, scroll.scrollTop + dy * pixelsPerUnit)); }\n setScrollLeft(cm, Math.max(0, scroll.scrollLeft + dx * pixelsPerUnit));\n // Only prevent default scrolling if vertical scrolling is\n // actually possible. Otherwise, it causes vertical scroll\n // jitter on OSX trackpads when deltaX is small and deltaY\n // is large (issue #3579)\n if (!dy || (dy && canScrollY))\n { e_preventDefault(e); }\n display.wheelStartX = null; // Abort measurement, if in progress\n return\n }\n\n // 'Project' the visible viewport to cover the area that is being\n // scrolled into view (if we know enough to estimate it).\n if (dy && pixelsPerUnit != null) {\n var pixels = dy * pixelsPerUnit;\n var top = cm.doc.scrollTop, bot = top + display.wrapper.clientHeight;\n if (pixels < 0) { top = Math.max(0, top + pixels - 50); }\n else { bot = Math.min(cm.doc.height, bot + pixels + 50); }\n updateDisplaySimple(cm, {top: top, bottom: bot});\n }\n\n if (wheelSamples < 20 && e.deltaMode !== 0) {\n if (display.wheelStartX == null) {\n display.wheelStartX = scroll.scrollLeft; display.wheelStartY = scroll.scrollTop;\n display.wheelDX = dx; display.wheelDY = dy;\n setTimeout(function () {\n if (display.wheelStartX == null) { return }\n var movedX = scroll.scrollLeft - display.wheelStartX;\n var movedY = scroll.scrollTop - display.wheelStartY;\n var sample = (movedY && display.wheelDY && movedY / display.wheelDY) ||\n (movedX && display.wheelDX && movedX / display.wheelDX);\n display.wheelStartX = display.wheelStartY = null;\n if (!sample) { return }\n wheelPixelsPerUnit = (wheelPixelsPerUnit * wheelSamples + sample) / (wheelSamples + 1);\n ++wheelSamples;\n }, 200);\n } else {\n display.wheelDX += dx; display.wheelDY += dy;\n }\n }\n }\n\n // Selection objects are immutable. A new one is created every time\n // the selection changes. A selection is one or more non-overlapping\n // (and non-touching) ranges, sorted, and an integer that indicates\n // which one is the primary selection (the one that's scrolled into\n // view, that getCursor returns, etc).\n var Selection = function(ranges, primIndex) {\n this.ranges = ranges;\n this.primIndex = primIndex;\n };\n\n Selection.prototype.primary = function () { return this.ranges[this.primIndex] };\n\n Selection.prototype.equals = function (other) {\n if (other == this) { return true }\n if (other.primIndex != this.primIndex || other.ranges.length != this.ranges.length) { return false }\n for (var i = 0; i < this.ranges.length; i++) {\n var here = this.ranges[i], there = other.ranges[i];\n if (!equalCursorPos(here.anchor, there.anchor) || !equalCursorPos(here.head, there.head)) { return false }\n }\n return true\n };\n\n Selection.prototype.deepCopy = function () {\n var out = [];\n for (var i = 0; i < this.ranges.length; i++)\n { out[i] = new Range(copyPos(this.ranges[i].anchor), copyPos(this.ranges[i].head)); }\n return new Selection(out, this.primIndex)\n };\n\n Selection.prototype.somethingSelected = function () {\n for (var i = 0; i < this.ranges.length; i++)\n { if (!this.ranges[i].empty()) { return true } }\n return false\n };\n\n Selection.prototype.contains = function (pos, end) {\n if (!end) { end = pos; }\n for (var i = 0; i < this.ranges.length; i++) {\n var range = this.ranges[i];\n if (cmp(end, range.from()) >= 0 && cmp(pos, range.to()) <= 0)\n { return i }\n }\n return -1\n };\n\n var Range = function(anchor, head) {\n this.anchor = anchor; this.head = head;\n };\n\n Range.prototype.from = function () { return minPos(this.anchor, this.head) };\n Range.prototype.to = function () { return maxPos(this.anchor, this.head) };\n Range.prototype.empty = function () { return this.head.line == this.anchor.line && this.head.ch == this.anchor.ch };\n\n // Take an unsorted, potentially overlapping set of ranges, and\n // build a selection out of it. 'Consumes' ranges array (modifying\n // it).\n function normalizeSelection(cm, ranges, primIndex) {\n var mayTouch = cm && cm.options.selectionsMayTouch;\n var prim = ranges[primIndex];\n ranges.sort(function (a, b) { return cmp(a.from(), b.from()); });\n primIndex = indexOf(ranges, prim);\n for (var i = 1; i < ranges.length; i++) {\n var cur = ranges[i], prev = ranges[i - 1];\n var diff = cmp(prev.to(), cur.from());\n if (mayTouch && !cur.empty() ? diff > 0 : diff >= 0) {\n var from = minPos(prev.from(), cur.from()), to = maxPos(prev.to(), cur.to());\n var inv = prev.empty() ? cur.from() == cur.head : prev.from() == prev.head;\n if (i <= primIndex) { --primIndex; }\n ranges.splice(--i, 2, new Range(inv ? to : from, inv ? from : to));\n }\n }\n return new Selection(ranges, primIndex)\n }\n\n function simpleSelection(anchor, head) {\n return new Selection([new Range(anchor, head || anchor)], 0)\n }\n\n // Compute the position of the end of a change (its 'to' property\n // refers to the pre-change end).\n function changeEnd(change) {\n if (!change.text) { return change.to }\n return Pos(change.from.line + change.text.length - 1,\n lst(change.text).length + (change.text.length == 1 ? change.from.ch : 0))\n }\n\n // Adjust a position to refer to the post-change position of the\n // same text, or the end of the change if the change covers it.\n function adjustForChange(pos, change) {\n if (cmp(pos, change.from) < 0) { return pos }\n if (cmp(pos, change.to) <= 0) { return changeEnd(change) }\n\n var line = pos.line + change.text.length - (change.to.line - change.from.line) - 1, ch = pos.ch;\n if (pos.line == change.to.line) { ch += changeEnd(change).ch - change.to.ch; }\n return Pos(line, ch)\n }\n\n function computeSelAfterChange(doc, change) {\n var out = [];\n for (var i = 0; i < doc.sel.ranges.length; i++) {\n var range = doc.sel.ranges[i];\n out.push(new Range(adjustForChange(range.anchor, change),\n adjustForChange(range.head, change)));\n }\n return normalizeSelection(doc.cm, out, doc.sel.primIndex)\n }\n\n function offsetPos(pos, old, nw) {\n if (pos.line == old.line)\n { return Pos(nw.line, pos.ch - old.ch + nw.ch) }\n else\n { return Pos(nw.line + (pos.line - old.line), pos.ch) }\n }\n\n // Used by replaceSelections to allow moving the selection to the\n // start or around the replaced test. Hint may be \"start\" or \"around\".\n function computeReplacedSel(doc, changes, hint) {\n var out = [];\n var oldPrev = Pos(doc.first, 0), newPrev = oldPrev;\n for (var i = 0; i < changes.length; i++) {\n var change = changes[i];\n var from = offsetPos(change.from, oldPrev, newPrev);\n var to = offsetPos(changeEnd(change), oldPrev, newPrev);\n oldPrev = change.to;\n newPrev = to;\n if (hint == \"around\") {\n var range = doc.sel.ranges[i], inv = cmp(range.head, range.anchor) < 0;\n out[i] = new Range(inv ? to : from, inv ? from : to);\n } else {\n out[i] = new Range(from, from);\n }\n }\n return new Selection(out, doc.sel.primIndex)\n }\n\n // Used to get the editor into a consistent state again when options change.\n\n function loadMode(cm) {\n cm.doc.mode = getMode(cm.options, cm.doc.modeOption);\n resetModeState(cm);\n }\n\n function resetModeState(cm) {\n cm.doc.iter(function (line) {\n if (line.stateAfter) { line.stateAfter = null; }\n if (line.styles) { line.styles = null; }\n });\n cm.doc.modeFrontier = cm.doc.highlightFrontier = cm.doc.first;\n startWorker(cm, 100);\n cm.state.modeGen++;\n if (cm.curOp) { regChange(cm); }\n }\n\n // DOCUMENT DATA STRUCTURE\n\n // By default, updates that start and end at the beginning of a line\n // are treated specially, in order to make the association of line\n // widgets and marker elements with the text behave more intuitive.\n function isWholeLineUpdate(doc, change) {\n return change.from.ch == 0 && change.to.ch == 0 && lst(change.text) == \"\" &&\n (!doc.cm || doc.cm.options.wholeLineUpdateBefore)\n }\n\n // Perform a change on the document data structure.\n function updateDoc(doc, change, markedSpans, estimateHeight) {\n function spansFor(n) {return markedSpans ? markedSpans[n] : null}\n function update(line, text, spans) {\n updateLine(line, text, spans, estimateHeight);\n signalLater(line, \"change\", line, change);\n }\n function linesFor(start, end) {\n var result = [];\n for (var i = start; i < end; ++i)\n { result.push(new Line(text[i], spansFor(i), estimateHeight)); }\n return result\n }\n\n var from = change.from, to = change.to, text = change.text;\n var firstLine = getLine(doc, from.line), lastLine = getLine(doc, to.line);\n var lastText = lst(text), lastSpans = spansFor(text.length - 1), nlines = to.line - from.line;\n\n // Adjust the line structure\n if (change.full) {\n doc.insert(0, linesFor(0, text.length));\n doc.remove(text.length, doc.size - text.length);\n } else if (isWholeLineUpdate(doc, change)) {\n // This is a whole-line replace. Treated specially to make\n // sure line objects move the way they are supposed to.\n var added = linesFor(0, text.length - 1);\n update(lastLine, lastLine.text, lastSpans);\n if (nlines) { doc.remove(from.line, nlines); }\n if (added.length) { doc.insert(from.line, added); }\n } else if (firstLine == lastLine) {\n if (text.length == 1) {\n update(firstLine, firstLine.text.slice(0, from.ch) + lastText + firstLine.text.slice(to.ch), lastSpans);\n } else {\n var added$1 = linesFor(1, text.length - 1);\n added$1.push(new Line(lastText + firstLine.text.slice(to.ch), lastSpans, estimateHeight));\n update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0));\n doc.insert(from.line + 1, added$1);\n }\n } else if (text.length == 1) {\n update(firstLine, firstLine.text.slice(0, from.ch) + text[0] + lastLine.text.slice(to.ch), spansFor(0));\n doc.remove(from.line + 1, nlines);\n } else {\n update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0));\n update(lastLine, lastText + lastLine.text.slice(to.ch), lastSpans);\n var added$2 = linesFor(1, text.length - 1);\n if (nlines > 1) { doc.remove(from.line + 1, nlines - 1); }\n doc.insert(from.line + 1, added$2);\n }\n\n signalLater(doc, \"change\", doc, change);\n }\n\n // Call f for all linked documents.\n function linkedDocs(doc, f, sharedHistOnly) {\n function propagate(doc, skip, sharedHist) {\n if (doc.linked) { for (var i = 0; i < doc.linked.length; ++i) {\n var rel = doc.linked[i];\n if (rel.doc == skip) { continue }\n var shared = sharedHist && rel.sharedHist;\n if (sharedHistOnly && !shared) { continue }\n f(rel.doc, shared);\n propagate(rel.doc, doc, shared);\n } }\n }\n propagate(doc, null, true);\n }\n\n // Attach a document to an editor.\n function attachDoc(cm, doc) {\n if (doc.cm) { throw new Error(\"This document is already in use.\") }\n cm.doc = doc;\n doc.cm = cm;\n estimateLineHeights(cm);\n loadMode(cm);\n setDirectionClass(cm);\n cm.options.direction = doc.direction;\n if (!cm.options.lineWrapping) { findMaxLine(cm); }\n cm.options.mode = doc.modeOption;\n regChange(cm);\n }\n\n function setDirectionClass(cm) {\n (cm.doc.direction == \"rtl\" ? addClass : rmClass)(cm.display.lineDiv, \"CodeMirror-rtl\");\n }\n\n function directionChanged(cm) {\n runInOp(cm, function () {\n setDirectionClass(cm);\n regChange(cm);\n });\n }\n\n function History(prev) {\n // Arrays of change events and selections. Doing something adds an\n // event to done and clears undo. Undoing moves events from done\n // to undone, redoing moves them in the other direction.\n this.done = []; this.undone = [];\n this.undoDepth = prev ? prev.undoDepth : Infinity;\n // Used to track when changes can be merged into a single undo\n // event\n this.lastModTime = this.lastSelTime = 0;\n this.lastOp = this.lastSelOp = null;\n this.lastOrigin = this.lastSelOrigin = null;\n // Used by the isClean() method\n this.generation = this.maxGeneration = prev ? prev.maxGeneration : 1;\n }\n\n // Create a history change event from an updateDoc-style change\n // object.\n function historyChangeFromChange(doc, change) {\n var histChange = {from: copyPos(change.from), to: changeEnd(change), text: getBetween(doc, change.from, change.to)};\n attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1);\n linkedDocs(doc, function (doc) { return attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1); }, true);\n return histChange\n }\n\n // Pop all selection events off the end of a history array. Stop at\n // a change event.\n function clearSelectionEvents(array) {\n while (array.length) {\n var last = lst(array);\n if (last.ranges) { array.pop(); }\n else { break }\n }\n }\n\n // Find the top change event in the history. Pop off selection\n // events that are in the way.\n function lastChangeEvent(hist, force) {\n if (force) {\n clearSelectionEvents(hist.done);\n return lst(hist.done)\n } else if (hist.done.length && !lst(hist.done).ranges) {\n return lst(hist.done)\n } else if (hist.done.length > 1 && !hist.done[hist.done.length - 2].ranges) {\n hist.done.pop();\n return lst(hist.done)\n }\n }\n\n // Register a change in the history. Merges changes that are within\n // a single operation, or are close together with an origin that\n // allows merging (starting with \"+\") into a single event.\n function addChangeToHistory(doc, change, selAfter, opId) {\n var hist = doc.history;\n hist.undone.length = 0;\n var time = +new Date, cur;\n var last;\n\n if ((hist.lastOp == opId ||\n hist.lastOrigin == change.origin && change.origin &&\n ((change.origin.charAt(0) == \"+\" && hist.lastModTime > time - (doc.cm ? doc.cm.options.historyEventDelay : 500)) ||\n change.origin.charAt(0) == \"*\")) &&\n (cur = lastChangeEvent(hist, hist.lastOp == opId))) {\n // Merge this change into the last event\n last = lst(cur.changes);\n if (cmp(change.from, change.to) == 0 && cmp(change.from, last.to) == 0) {\n // Optimized case for simple insertion -- don't want to add\n // new changesets for every character typed\n last.to = changeEnd(change);\n } else {\n // Add new sub-event\n cur.changes.push(historyChangeFromChange(doc, change));\n }\n } else {\n // Can not be merged, start a new event.\n var before = lst(hist.done);\n if (!before || !before.ranges)\n { pushSelectionToHistory(doc.sel, hist.done); }\n cur = {changes: [historyChangeFromChange(doc, change)],\n generation: hist.generation};\n hist.done.push(cur);\n while (hist.done.length > hist.undoDepth) {\n hist.done.shift();\n if (!hist.done[0].ranges) { hist.done.shift(); }\n }\n }\n hist.done.push(selAfter);\n hist.generation = ++hist.maxGeneration;\n hist.lastModTime = hist.lastSelTime = time;\n hist.lastOp = hist.lastSelOp = opId;\n hist.lastOrigin = hist.lastSelOrigin = change.origin;\n\n if (!last) { signal(doc, \"historyAdded\"); }\n }\n\n function selectionEventCanBeMerged(doc, origin, prev, sel) {\n var ch = origin.charAt(0);\n return ch == \"*\" ||\n ch == \"+\" &&\n prev.ranges.length == sel.ranges.length &&\n prev.somethingSelected() == sel.somethingSelected() &&\n new Date - doc.history.lastSelTime <= (doc.cm ? doc.cm.options.historyEventDelay : 500)\n }\n\n // Called whenever the selection changes, sets the new selection as\n // the pending selection in the history, and pushes the old pending\n // selection into the 'done' array when it was significantly\n // different (in number of selected ranges, emptiness, or time).\n function addSelectionToHistory(doc, sel, opId, options) {\n var hist = doc.history, origin = options && options.origin;\n\n // A new event is started when the previous origin does not match\n // the current, or the origins don't allow matching. Origins\n // starting with * are always merged, those starting with + are\n // merged when similar and close together in time.\n if (opId == hist.lastSelOp ||\n (origin && hist.lastSelOrigin == origin &&\n (hist.lastModTime == hist.lastSelTime && hist.lastOrigin == origin ||\n selectionEventCanBeMerged(doc, origin, lst(hist.done), sel))))\n { hist.done[hist.done.length - 1] = sel; }\n else\n { pushSelectionToHistory(sel, hist.done); }\n\n hist.lastSelTime = +new Date;\n hist.lastSelOrigin = origin;\n hist.lastSelOp = opId;\n if (options && options.clearRedo !== false)\n { clearSelectionEvents(hist.undone); }\n }\n\n function pushSelectionToHistory(sel, dest) {\n var top = lst(dest);\n if (!(top && top.ranges && top.equals(sel)))\n { dest.push(sel); }\n }\n\n // Used to store marked span information in the history.\n function attachLocalSpans(doc, change, from, to) {\n var existing = change[\"spans_\" + doc.id], n = 0;\n doc.iter(Math.max(doc.first, from), Math.min(doc.first + doc.size, to), function (line) {\n if (line.markedSpans)\n { (existing || (existing = change[\"spans_\" + doc.id] = {}))[n] = line.markedSpans; }\n ++n;\n });\n }\n\n // When un/re-doing restores text containing marked spans, those\n // that have been explicitly cleared should not be restored.\n function removeClearedSpans(spans) {\n if (!spans) { return null }\n var out;\n for (var i = 0; i < spans.length; ++i) {\n if (spans[i].marker.explicitlyCleared) { if (!out) { out = spans.slice(0, i); } }\n else if (out) { out.push(spans[i]); }\n }\n return !out ? spans : out.length ? out : null\n }\n\n // Retrieve and filter the old marked spans stored in a change event.\n function getOldSpans(doc, change) {\n var found = change[\"spans_\" + doc.id];\n if (!found) { return null }\n var nw = [];\n for (var i = 0; i < change.text.length; ++i)\n { nw.push(removeClearedSpans(found[i])); }\n return nw\n }\n\n // Used for un/re-doing changes from the history. Combines the\n // result of computing the existing spans with the set of spans that\n // existed in the history (so that deleting around a span and then\n // undoing brings back the span).\n function mergeOldSpans(doc, change) {\n var old = getOldSpans(doc, change);\n var stretched = stretchSpansOverChange(doc, change);\n if (!old) { return stretched }\n if (!stretched) { return old }\n\n for (var i = 0; i < old.length; ++i) {\n var oldCur = old[i], stretchCur = stretched[i];\n if (oldCur && stretchCur) {\n spans: for (var j = 0; j < stretchCur.length; ++j) {\n var span = stretchCur[j];\n for (var k = 0; k < oldCur.length; ++k)\n { if (oldCur[k].marker == span.marker) { continue spans } }\n oldCur.push(span);\n }\n } else if (stretchCur) {\n old[i] = stretchCur;\n }\n }\n return old\n }\n\n // Used both to provide a JSON-safe object in .getHistory, and, when\n // detaching a document, to split the history in two\n function copyHistoryArray(events, newGroup, instantiateSel) {\n var copy = [];\n for (var i = 0; i < events.length; ++i) {\n var event = events[i];\n if (event.ranges) {\n copy.push(instantiateSel ? Selection.prototype.deepCopy.call(event) : event);\n continue\n }\n var changes = event.changes, newChanges = [];\n copy.push({changes: newChanges});\n for (var j = 0; j < changes.length; ++j) {\n var change = changes[j], m = (void 0);\n newChanges.push({from: change.from, to: change.to, text: change.text});\n if (newGroup) { for (var prop in change) { if (m = prop.match(/^spans_(\\d+)$/)) {\n if (indexOf(newGroup, Number(m[1])) > -1) {\n lst(newChanges)[prop] = change[prop];\n delete change[prop];\n }\n } } }\n }\n }\n return copy\n }\n\n // The 'scroll' parameter given to many of these indicated whether\n // the new cursor position should be scrolled into view after\n // modifying the selection.\n\n // If shift is held or the extend flag is set, extends a range to\n // include a given position (and optionally a second position).\n // Otherwise, simply returns the range between the given positions.\n // Used for cursor motion and such.\n function extendRange(range, head, other, extend) {\n if (extend) {\n var anchor = range.anchor;\n if (other) {\n var posBefore = cmp(head, anchor) < 0;\n if (posBefore != (cmp(other, anchor) < 0)) {\n anchor = head;\n head = other;\n } else if (posBefore != (cmp(head, other) < 0)) {\n head = other;\n }\n }\n return new Range(anchor, head)\n } else {\n return new Range(other || head, head)\n }\n }\n\n // Extend the primary selection range, discard the rest.\n function extendSelection(doc, head, other, options, extend) {\n if (extend == null) { extend = doc.cm && (doc.cm.display.shift || doc.extend); }\n setSelection(doc, new Selection([extendRange(doc.sel.primary(), head, other, extend)], 0), options);\n }\n\n // Extend all selections (pos is an array of selections with length\n // equal the number of selections)\n function extendSelections(doc, heads, options) {\n var out = [];\n var extend = doc.cm && (doc.cm.display.shift || doc.extend);\n for (var i = 0; i < doc.sel.ranges.length; i++)\n { out[i] = extendRange(doc.sel.ranges[i], heads[i], null, extend); }\n var newSel = normalizeSelection(doc.cm, out, doc.sel.primIndex);\n setSelection(doc, newSel, options);\n }\n\n // Updates a single range in the selection.\n function replaceOneSelection(doc, i, range, options) {\n var ranges = doc.sel.ranges.slice(0);\n ranges[i] = range;\n setSelection(doc, normalizeSelection(doc.cm, ranges, doc.sel.primIndex), options);\n }\n\n // Reset the selection to a single range.\n function setSimpleSelection(doc, anchor, head, options) {\n setSelection(doc, simpleSelection(anchor, head), options);\n }\n\n // Give beforeSelectionChange handlers a change to influence a\n // selection update.\n function filterSelectionChange(doc, sel, options) {\n var obj = {\n ranges: sel.ranges,\n update: function(ranges) {\n this.ranges = [];\n for (var i = 0; i < ranges.length; i++)\n { this.ranges[i] = new Range(clipPos(doc, ranges[i].anchor),\n clipPos(doc, ranges[i].head)); }\n },\n origin: options && options.origin\n };\n signal(doc, \"beforeSelectionChange\", doc, obj);\n if (doc.cm) { signal(doc.cm, \"beforeSelectionChange\", doc.cm, obj); }\n if (obj.ranges != sel.ranges) { return normalizeSelection(doc.cm, obj.ranges, obj.ranges.length - 1) }\n else { return sel }\n }\n\n function setSelectionReplaceHistory(doc, sel, options) {\n var done = doc.history.done, last = lst(done);\n if (last && last.ranges) {\n done[done.length - 1] = sel;\n setSelectionNoUndo(doc, sel, options);\n } else {\n setSelection(doc, sel, options);\n }\n }\n\n // Set a new selection.\n function setSelection(doc, sel, options) {\n setSelectionNoUndo(doc, sel, options);\n addSelectionToHistory(doc, doc.sel, doc.cm ? doc.cm.curOp.id : NaN, options);\n }\n\n function setSelectionNoUndo(doc, sel, options) {\n if (hasHandler(doc, \"beforeSelectionChange\") || doc.cm && hasHandler(doc.cm, \"beforeSelectionChange\"))\n { sel = filterSelectionChange(doc, sel, options); }\n\n var bias = options && options.bias ||\n (cmp(sel.primary().head, doc.sel.primary().head) < 0 ? -1 : 1);\n setSelectionInner(doc, skipAtomicInSelection(doc, sel, bias, true));\n\n if (!(options && options.scroll === false) && doc.cm && doc.cm.getOption(\"readOnly\") != \"nocursor\")\n { ensureCursorVisible(doc.cm); }\n }\n\n function setSelectionInner(doc, sel) {\n if (sel.equals(doc.sel)) { return }\n\n doc.sel = sel;\n\n if (doc.cm) {\n doc.cm.curOp.updateInput = 1;\n doc.cm.curOp.selectionChanged = true;\n signalCursorActivity(doc.cm);\n }\n signalLater(doc, \"cursorActivity\", doc);\n }\n\n // Verify that the selection does not partially select any atomic\n // marked ranges.\n function reCheckSelection(doc) {\n setSelectionInner(doc, skipAtomicInSelection(doc, doc.sel, null, false));\n }\n\n // Return a selection that does not partially select any atomic\n // ranges.\n function skipAtomicInSelection(doc, sel, bias, mayClear) {\n var out;\n for (var i = 0; i < sel.ranges.length; i++) {\n var range = sel.ranges[i];\n var old = sel.ranges.length == doc.sel.ranges.length && doc.sel.ranges[i];\n var newAnchor = skipAtomic(doc, range.anchor, old && old.anchor, bias, mayClear);\n var newHead = range.head == range.anchor ? newAnchor : skipAtomic(doc, range.head, old && old.head, bias, mayClear);\n if (out || newAnchor != range.anchor || newHead != range.head) {\n if (!out) { out = sel.ranges.slice(0, i); }\n out[i] = new Range(newAnchor, newHead);\n }\n }\n return out ? normalizeSelection(doc.cm, out, sel.primIndex) : sel\n }\n\n function skipAtomicInner(doc, pos, oldPos, dir, mayClear) {\n var line = getLine(doc, pos.line);\n if (line.markedSpans) { for (var i = 0; i < line.markedSpans.length; ++i) {\n var sp = line.markedSpans[i], m = sp.marker;\n\n // Determine if we should prevent the cursor being placed to the left/right of an atomic marker\n // Historically this was determined using the inclusiveLeft/Right option, but the new way to control it\n // is with selectLeft/Right\n var preventCursorLeft = (\"selectLeft\" in m) ? !m.selectLeft : m.inclusiveLeft;\n var preventCursorRight = (\"selectRight\" in m) ? !m.selectRight : m.inclusiveRight;\n\n if ((sp.from == null || (preventCursorLeft ? sp.from <= pos.ch : sp.from < pos.ch)) &&\n (sp.to == null || (preventCursorRight ? sp.to >= pos.ch : sp.to > pos.ch))) {\n if (mayClear) {\n signal(m, \"beforeCursorEnter\");\n if (m.explicitlyCleared) {\n if (!line.markedSpans) { break }\n else {--i; continue}\n }\n }\n if (!m.atomic) { continue }\n\n if (oldPos) {\n var near = m.find(dir < 0 ? 1 : -1), diff = (void 0);\n if (dir < 0 ? preventCursorRight : preventCursorLeft)\n { near = movePos(doc, near, -dir, near && near.line == pos.line ? line : null); }\n if (near && near.line == pos.line && (diff = cmp(near, oldPos)) && (dir < 0 ? diff < 0 : diff > 0))\n { return skipAtomicInner(doc, near, pos, dir, mayClear) }\n }\n\n var far = m.find(dir < 0 ? -1 : 1);\n if (dir < 0 ? preventCursorLeft : preventCursorRight)\n { far = movePos(doc, far, dir, far.line == pos.line ? line : null); }\n return far ? skipAtomicInner(doc, far, pos, dir, mayClear) : null\n }\n } }\n return pos\n }\n\n // Ensure a given position is not inside an atomic range.\n function skipAtomic(doc, pos, oldPos, bias, mayClear) {\n var dir = bias || 1;\n var found = skipAtomicInner(doc, pos, oldPos, dir, mayClear) ||\n (!mayClear && skipAtomicInner(doc, pos, oldPos, dir, true)) ||\n skipAtomicInner(doc, pos, oldPos, -dir, mayClear) ||\n (!mayClear && skipAtomicInner(doc, pos, oldPos, -dir, true));\n if (!found) {\n doc.cantEdit = true;\n return Pos(doc.first, 0)\n }\n return found\n }\n\n function movePos(doc, pos, dir, line) {\n if (dir < 0 && pos.ch == 0) {\n if (pos.line > doc.first) { return clipPos(doc, Pos(pos.line - 1)) }\n else { return null }\n } else if (dir > 0 && pos.ch == (line || getLine(doc, pos.line)).text.length) {\n if (pos.line < doc.first + doc.size - 1) { return Pos(pos.line + 1, 0) }\n else { return null }\n } else {\n return new Pos(pos.line, pos.ch + dir)\n }\n }\n\n function selectAll(cm) {\n cm.setSelection(Pos(cm.firstLine(), 0), Pos(cm.lastLine()), sel_dontScroll);\n }\n\n // UPDATING\n\n // Allow \"beforeChange\" event handlers to influence a change\n function filterChange(doc, change, update) {\n var obj = {\n canceled: false,\n from: change.from,\n to: change.to,\n text: change.text,\n origin: change.origin,\n cancel: function () { return obj.canceled = true; }\n };\n if (update) { obj.update = function (from, to, text, origin) {\n if (from) { obj.from = clipPos(doc, from); }\n if (to) { obj.to = clipPos(doc, to); }\n if (text) { obj.text = text; }\n if (origin !== undefined) { obj.origin = origin; }\n }; }\n signal(doc, \"beforeChange\", doc, obj);\n if (doc.cm) { signal(doc.cm, \"beforeChange\", doc.cm, obj); }\n\n if (obj.canceled) {\n if (doc.cm) { doc.cm.curOp.updateInput = 2; }\n return null\n }\n return {from: obj.from, to: obj.to, text: obj.text, origin: obj.origin}\n }\n\n // Apply a change to a document, and add it to the document's\n // history, and propagating it to all linked documents.\n function makeChange(doc, change, ignoreReadOnly) {\n if (doc.cm) {\n if (!doc.cm.curOp) { return operation(doc.cm, makeChange)(doc, change, ignoreReadOnly) }\n if (doc.cm.state.suppressEdits) { return }\n }\n\n if (hasHandler(doc, \"beforeChange\") || doc.cm && hasHandler(doc.cm, \"beforeChange\")) {\n change = filterChange(doc, change, true);\n if (!change) { return }\n }\n\n // Possibly split or suppress the update based on the presence\n // of read-only spans in its range.\n var split = sawReadOnlySpans && !ignoreReadOnly && removeReadOnlyRanges(doc, change.from, change.to);\n if (split) {\n for (var i = split.length - 1; i >= 0; --i)\n { makeChangeInner(doc, {from: split[i].from, to: split[i].to, text: i ? [\"\"] : change.text, origin: change.origin}); }\n } else {\n makeChangeInner(doc, change);\n }\n }\n\n function makeChangeInner(doc, change) {\n if (change.text.length == 1 && change.text[0] == \"\" && cmp(change.from, change.to) == 0) { return }\n var selAfter = computeSelAfterChange(doc, change);\n addChangeToHistory(doc, change, selAfter, doc.cm ? doc.cm.curOp.id : NaN);\n\n makeChangeSingleDoc(doc, change, selAfter, stretchSpansOverChange(doc, change));\n var rebased = [];\n\n linkedDocs(doc, function (doc, sharedHist) {\n if (!sharedHist && indexOf(rebased, doc.history) == -1) {\n rebaseHist(doc.history, change);\n rebased.push(doc.history);\n }\n makeChangeSingleDoc(doc, change, null, stretchSpansOverChange(doc, change));\n });\n }\n\n // Revert a change stored in a document's history.\n function makeChangeFromHistory(doc, type, allowSelectionOnly) {\n var suppress = doc.cm && doc.cm.state.suppressEdits;\n if (suppress && !allowSelectionOnly) { return }\n\n var hist = doc.history, event, selAfter = doc.sel;\n var source = type == \"undo\" ? hist.done : hist.undone, dest = type == \"undo\" ? hist.undone : hist.done;\n\n // Verify that there is a useable event (so that ctrl-z won't\n // needlessly clear selection events)\n var i = 0;\n for (; i < source.length; i++) {\n event = source[i];\n if (allowSelectionOnly ? event.ranges && !event.equals(doc.sel) : !event.ranges)\n { break }\n }\n if (i == source.length) { return }\n hist.lastOrigin = hist.lastSelOrigin = null;\n\n for (;;) {\n event = source.pop();\n if (event.ranges) {\n pushSelectionToHistory(event, dest);\n if (allowSelectionOnly && !event.equals(doc.sel)) {\n setSelection(doc, event, {clearRedo: false});\n return\n }\n selAfter = event;\n } else if (suppress) {\n source.push(event);\n return\n } else { break }\n }\n\n // Build up a reverse change object to add to the opposite history\n // stack (redo when undoing, and vice versa).\n var antiChanges = [];\n pushSelectionToHistory(selAfter, dest);\n dest.push({changes: antiChanges, generation: hist.generation});\n hist.generation = event.generation || ++hist.maxGeneration;\n\n var filter = hasHandler(doc, \"beforeChange\") || doc.cm && hasHandler(doc.cm, \"beforeChange\");\n\n var loop = function ( i ) {\n var change = event.changes[i];\n change.origin = type;\n if (filter && !filterChange(doc, change, false)) {\n source.length = 0;\n return {}\n }\n\n antiChanges.push(historyChangeFromChange(doc, change));\n\n var after = i ? computeSelAfterChange(doc, change) : lst(source);\n makeChangeSingleDoc(doc, change, after, mergeOldSpans(doc, change));\n if (!i && doc.cm) { doc.cm.scrollIntoView({from: change.from, to: changeEnd(change)}); }\n var rebased = [];\n\n // Propagate to the linked documents\n linkedDocs(doc, function (doc, sharedHist) {\n if (!sharedHist && indexOf(rebased, doc.history) == -1) {\n rebaseHist(doc.history, change);\n rebased.push(doc.history);\n }\n makeChangeSingleDoc(doc, change, null, mergeOldSpans(doc, change));\n });\n };\n\n for (var i$1 = event.changes.length - 1; i$1 >= 0; --i$1) {\n var returned = loop( i$1 );\n\n if ( returned ) return returned.v;\n }\n }\n\n // Sub-views need their line numbers shifted when text is added\n // above or below them in the parent document.\n function shiftDoc(doc, distance) {\n if (distance == 0) { return }\n doc.first += distance;\n doc.sel = new Selection(map(doc.sel.ranges, function (range) { return new Range(\n Pos(range.anchor.line + distance, range.anchor.ch),\n Pos(range.head.line + distance, range.head.ch)\n ); }), doc.sel.primIndex);\n if (doc.cm) {\n regChange(doc.cm, doc.first, doc.first - distance, distance);\n for (var d = doc.cm.display, l = d.viewFrom; l < d.viewTo; l++)\n { regLineChange(doc.cm, l, \"gutter\"); }\n }\n }\n\n // More lower-level change function, handling only a single document\n // (not linked ones).\n function makeChangeSingleDoc(doc, change, selAfter, spans) {\n if (doc.cm && !doc.cm.curOp)\n { return operation(doc.cm, makeChangeSingleDoc)(doc, change, selAfter, spans) }\n\n if (change.to.line < doc.first) {\n shiftDoc(doc, change.text.length - 1 - (change.to.line - change.from.line));\n return\n }\n if (change.from.line > doc.lastLine()) { return }\n\n // Clip the change to the size of this doc\n if (change.from.line < doc.first) {\n var shift = change.text.length - 1 - (doc.first - change.from.line);\n shiftDoc(doc, shift);\n change = {from: Pos(doc.first, 0), to: Pos(change.to.line + shift, change.to.ch),\n text: [lst(change.text)], origin: change.origin};\n }\n var last = doc.lastLine();\n if (change.to.line > last) {\n change = {from: change.from, to: Pos(last, getLine(doc, last).text.length),\n text: [change.text[0]], origin: change.origin};\n }\n\n change.removed = getBetween(doc, change.from, change.to);\n\n if (!selAfter) { selAfter = computeSelAfterChange(doc, change); }\n if (doc.cm) { makeChangeSingleDocInEditor(doc.cm, change, spans); }\n else { updateDoc(doc, change, spans); }\n setSelectionNoUndo(doc, selAfter, sel_dontScroll);\n\n if (doc.cantEdit && skipAtomic(doc, Pos(doc.firstLine(), 0)))\n { doc.cantEdit = false; }\n }\n\n // Handle the interaction of a change to a document with the editor\n // that this document is part of.\n function makeChangeSingleDocInEditor(cm, change, spans) {\n var doc = cm.doc, display = cm.display, from = change.from, to = change.to;\n\n var recomputeMaxLength = false, checkWidthStart = from.line;\n if (!cm.options.lineWrapping) {\n checkWidthStart = lineNo(visualLine(getLine(doc, from.line)));\n doc.iter(checkWidthStart, to.line + 1, function (line) {\n if (line == display.maxLine) {\n recomputeMaxLength = true;\n return true\n }\n });\n }\n\n if (doc.sel.contains(change.from, change.to) > -1)\n { signalCursorActivity(cm); }\n\n updateDoc(doc, change, spans, estimateHeight(cm));\n\n if (!cm.options.lineWrapping) {\n doc.iter(checkWidthStart, from.line + change.text.length, function (line) {\n var len = lineLength(line);\n if (len > display.maxLineLength) {\n display.maxLine = line;\n display.maxLineLength = len;\n display.maxLineChanged = true;\n recomputeMaxLength = false;\n }\n });\n if (recomputeMaxLength) { cm.curOp.updateMaxLine = true; }\n }\n\n retreatFrontier(doc, from.line);\n startWorker(cm, 400);\n\n var lendiff = change.text.length - (to.line - from.line) - 1;\n // Remember that these lines changed, for updating the display\n if (change.full)\n { regChange(cm); }\n else if (from.line == to.line && change.text.length == 1 && !isWholeLineUpdate(cm.doc, change))\n { regLineChange(cm, from.line, \"text\"); }\n else\n { regChange(cm, from.line, to.line + 1, lendiff); }\n\n var changesHandler = hasHandler(cm, \"changes\"), changeHandler = hasHandler(cm, \"change\");\n if (changeHandler || changesHandler) {\n var obj = {\n from: from, to: to,\n text: change.text,\n removed: change.removed,\n origin: change.origin\n };\n if (changeHandler) { signalLater(cm, \"change\", cm, obj); }\n if (changesHandler) { (cm.curOp.changeObjs || (cm.curOp.changeObjs = [])).push(obj); }\n }\n cm.display.selForContextMenu = null;\n }\n\n function replaceRange(doc, code, from, to, origin) {\n var assign;\n\n if (!to) { to = from; }\n if (cmp(to, from) < 0) { (assign = [to, from], from = assign[0], to = assign[1]); }\n if (typeof code == \"string\") { code = doc.splitLines(code); }\n makeChange(doc, {from: from, to: to, text: code, origin: origin});\n }\n\n // Rebasing/resetting history to deal with externally-sourced changes\n\n function rebaseHistSelSingle(pos, from, to, diff) {\n if (to < pos.line) {\n pos.line += diff;\n } else if (from < pos.line) {\n pos.line = from;\n pos.ch = 0;\n }\n }\n\n // Tries to rebase an array of history events given a change in the\n // document. If the change touches the same lines as the event, the\n // event, and everything 'behind' it, is discarded. If the change is\n // before the event, the event's positions are updated. Uses a\n // copy-on-write scheme for the positions, to avoid having to\n // reallocate them all on every rebase, but also avoid problems with\n // shared position objects being unsafely updated.\n function rebaseHistArray(array, from, to, diff) {\n for (var i = 0; i < array.length; ++i) {\n var sub = array[i], ok = true;\n if (sub.ranges) {\n if (!sub.copied) { sub = array[i] = sub.deepCopy(); sub.copied = true; }\n for (var j = 0; j < sub.ranges.length; j++) {\n rebaseHistSelSingle(sub.ranges[j].anchor, from, to, diff);\n rebaseHistSelSingle(sub.ranges[j].head, from, to, diff);\n }\n continue\n }\n for (var j$1 = 0; j$1 < sub.changes.length; ++j$1) {\n var cur = sub.changes[j$1];\n if (to < cur.from.line) {\n cur.from = Pos(cur.from.line + diff, cur.from.ch);\n cur.to = Pos(cur.to.line + diff, cur.to.ch);\n } else if (from <= cur.to.line) {\n ok = false;\n break\n }\n }\n if (!ok) {\n array.splice(0, i + 1);\n i = 0;\n }\n }\n }\n\n function rebaseHist(hist, change) {\n var from = change.from.line, to = change.to.line, diff = change.text.length - (to - from) - 1;\n rebaseHistArray(hist.done, from, to, diff);\n rebaseHistArray(hist.undone, from, to, diff);\n }\n\n // Utility for applying a change to a line by handle or number,\n // returning the number and optionally registering the line as\n // changed.\n function changeLine(doc, handle, changeType, op) {\n var no = handle, line = handle;\n if (typeof handle == \"number\") { line = getLine(doc, clipLine(doc, handle)); }\n else { no = lineNo(handle); }\n if (no == null) { return null }\n if (op(line, no) && doc.cm) { regLineChange(doc.cm, no, changeType); }\n return line\n }\n\n // The document is represented as a BTree consisting of leaves, with\n // chunk of lines in them, and branches, with up to ten leaves or\n // other branch nodes below them. The top node is always a branch\n // node, and is the document object itself (meaning it has\n // additional methods and properties).\n //\n // All nodes have parent links. The tree is used both to go from\n // line numbers to line objects, and to go from objects to numbers.\n // It also indexes by height, and is used to convert between height\n // and line object, and to find the total height of the document.\n //\n // See also http://marijnhaverbeke.nl/blog/codemirror-line-tree.html\n\n function LeafChunk(lines) {\n this.lines = lines;\n this.parent = null;\n var height = 0;\n for (var i = 0; i < lines.length; ++i) {\n lines[i].parent = this;\n height += lines[i].height;\n }\n this.height = height;\n }\n\n LeafChunk.prototype = {\n chunkSize: function() { return this.lines.length },\n\n // Remove the n lines at offset 'at'.\n removeInner: function(at, n) {\n for (var i = at, e = at + n; i < e; ++i) {\n var line = this.lines[i];\n this.height -= line.height;\n cleanUpLine(line);\n signalLater(line, \"delete\");\n }\n this.lines.splice(at, n);\n },\n\n // Helper used to collapse a small branch into a single leaf.\n collapse: function(lines) {\n lines.push.apply(lines, this.lines);\n },\n\n // Insert the given array of lines at offset 'at', count them as\n // having the given height.\n insertInner: function(at, lines, height) {\n this.height += height;\n this.lines = this.lines.slice(0, at).concat(lines).concat(this.lines.slice(at));\n for (var i = 0; i < lines.length; ++i) { lines[i].parent = this; }\n },\n\n // Used to iterate over a part of the tree.\n iterN: function(at, n, op) {\n for (var e = at + n; at < e; ++at)\n { if (op(this.lines[at])) { return true } }\n }\n };\n\n function BranchChunk(children) {\n this.children = children;\n var size = 0, height = 0;\n for (var i = 0; i < children.length; ++i) {\n var ch = children[i];\n size += ch.chunkSize(); height += ch.height;\n ch.parent = this;\n }\n this.size = size;\n this.height = height;\n this.parent = null;\n }\n\n BranchChunk.prototype = {\n chunkSize: function() { return this.size },\n\n removeInner: function(at, n) {\n this.size -= n;\n for (var i = 0; i < this.children.length; ++i) {\n var child = this.children[i], sz = child.chunkSize();\n if (at < sz) {\n var rm = Math.min(n, sz - at), oldHeight = child.height;\n child.removeInner(at, rm);\n this.height -= oldHeight - child.height;\n if (sz == rm) { this.children.splice(i--, 1); child.parent = null; }\n if ((n -= rm) == 0) { break }\n at = 0;\n } else { at -= sz; }\n }\n // If the result is smaller than 25 lines, ensure that it is a\n // single leaf node.\n if (this.size - n < 25 &&\n (this.children.length > 1 || !(this.children[0] instanceof LeafChunk))) {\n var lines = [];\n this.collapse(lines);\n this.children = [new LeafChunk(lines)];\n this.children[0].parent = this;\n }\n },\n\n collapse: function(lines) {\n for (var i = 0; i < this.children.length; ++i) { this.children[i].collapse(lines); }\n },\n\n insertInner: function(at, lines, height) {\n this.size += lines.length;\n this.height += height;\n for (var i = 0; i < this.children.length; ++i) {\n var child = this.children[i], sz = child.chunkSize();\n if (at <= sz) {\n child.insertInner(at, lines, height);\n if (child.lines && child.lines.length > 50) {\n // To avoid memory thrashing when child.lines is huge (e.g. first view of a large file), it's never spliced.\n // Instead, small slices are taken. They're taken in order because sequential memory accesses are fastest.\n var remaining = child.lines.length % 25 + 25;\n for (var pos = remaining; pos < child.lines.length;) {\n var leaf = new LeafChunk(child.lines.slice(pos, pos += 25));\n child.height -= leaf.height;\n this.children.splice(++i, 0, leaf);\n leaf.parent = this;\n }\n child.lines = child.lines.slice(0, remaining);\n this.maybeSpill();\n }\n break\n }\n at -= sz;\n }\n },\n\n // When a node has grown, check whether it should be split.\n maybeSpill: function() {\n if (this.children.length <= 10) { return }\n var me = this;\n do {\n var spilled = me.children.splice(me.children.length - 5, 5);\n var sibling = new BranchChunk(spilled);\n if (!me.parent) { // Become the parent node\n var copy = new BranchChunk(me.children);\n copy.parent = me;\n me.children = [copy, sibling];\n me = copy;\n } else {\n me.size -= sibling.size;\n me.height -= sibling.height;\n var myIndex = indexOf(me.parent.children, me);\n me.parent.children.splice(myIndex + 1, 0, sibling);\n }\n sibling.parent = me.parent;\n } while (me.children.length > 10)\n me.parent.maybeSpill();\n },\n\n iterN: function(at, n, op) {\n for (var i = 0; i < this.children.length; ++i) {\n var child = this.children[i], sz = child.chunkSize();\n if (at < sz) {\n var used = Math.min(n, sz - at);\n if (child.iterN(at, used, op)) { return true }\n if ((n -= used) == 0) { break }\n at = 0;\n } else { at -= sz; }\n }\n }\n };\n\n // Line widgets are block elements displayed above or below a line.\n\n var LineWidget = function(doc, node, options) {\n if (options) { for (var opt in options) { if (options.hasOwnProperty(opt))\n { this[opt] = options[opt]; } } }\n this.doc = doc;\n this.node = node;\n };\n\n LineWidget.prototype.clear = function () {\n var cm = this.doc.cm, ws = this.line.widgets, line = this.line, no = lineNo(line);\n if (no == null || !ws) { return }\n for (var i = 0; i < ws.length; ++i) { if (ws[i] == this) { ws.splice(i--, 1); } }\n if (!ws.length) { line.widgets = null; }\n var height = widgetHeight(this);\n updateLineHeight(line, Math.max(0, line.height - height));\n if (cm) {\n runInOp(cm, function () {\n adjustScrollWhenAboveVisible(cm, line, -height);\n regLineChange(cm, no, \"widget\");\n });\n signalLater(cm, \"lineWidgetCleared\", cm, this, no);\n }\n };\n\n LineWidget.prototype.changed = function () {\n var this$1 = this;\n\n var oldH = this.height, cm = this.doc.cm, line = this.line;\n this.height = null;\n var diff = widgetHeight(this) - oldH;\n if (!diff) { return }\n if (!lineIsHidden(this.doc, line)) { updateLineHeight(line, line.height + diff); }\n if (cm) {\n runInOp(cm, function () {\n cm.curOp.forceUpdate = true;\n adjustScrollWhenAboveVisible(cm, line, diff);\n signalLater(cm, \"lineWidgetChanged\", cm, this$1, lineNo(line));\n });\n }\n };\n eventMixin(LineWidget);\n\n function adjustScrollWhenAboveVisible(cm, line, diff) {\n if (heightAtLine(line) < ((cm.curOp && cm.curOp.scrollTop) || cm.doc.scrollTop))\n { addToScrollTop(cm, diff); }\n }\n\n function addLineWidget(doc, handle, node, options) {\n var widget = new LineWidget(doc, node, options);\n var cm = doc.cm;\n if (cm && widget.noHScroll) { cm.display.alignWidgets = true; }\n changeLine(doc, handle, \"widget\", function (line) {\n var widgets = line.widgets || (line.widgets = []);\n if (widget.insertAt == null) { widgets.push(widget); }\n else { widgets.splice(Math.min(widgets.length, Math.max(0, widget.insertAt)), 0, widget); }\n widget.line = line;\n if (cm && !lineIsHidden(doc, line)) {\n var aboveVisible = heightAtLine(line) < doc.scrollTop;\n updateLineHeight(line, line.height + widgetHeight(widget));\n if (aboveVisible) { addToScrollTop(cm, widget.height); }\n cm.curOp.forceUpdate = true;\n }\n return true\n });\n if (cm) { signalLater(cm, \"lineWidgetAdded\", cm, widget, typeof handle == \"number\" ? handle : lineNo(handle)); }\n return widget\n }\n\n // TEXTMARKERS\n\n // Created with markText and setBookmark methods. A TextMarker is a\n // handle that can be used to clear or find a marked position in the\n // document. Line objects hold arrays (markedSpans) containing\n // {from, to, marker} object pointing to such marker objects, and\n // indicating that such a marker is present on that line. Multiple\n // lines may point to the same marker when it spans across lines.\n // The spans will have null for their from/to properties when the\n // marker continues beyond the start/end of the line. Markers have\n // links back to the lines they currently touch.\n\n // Collapsed markers have unique ids, in order to be able to order\n // them, which is needed for uniquely determining an outer marker\n // when they overlap (they may nest, but not partially overlap).\n var nextMarkerId = 0;\n\n var TextMarker = function(doc, type) {\n this.lines = [];\n this.type = type;\n this.doc = doc;\n this.id = ++nextMarkerId;\n };\n\n // Clear the marker.\n TextMarker.prototype.clear = function () {\n if (this.explicitlyCleared) { return }\n var cm = this.doc.cm, withOp = cm && !cm.curOp;\n if (withOp) { startOperation(cm); }\n if (hasHandler(this, \"clear\")) {\n var found = this.find();\n if (found) { signalLater(this, \"clear\", found.from, found.to); }\n }\n var min = null, max = null;\n for (var i = 0; i < this.lines.length; ++i) {\n var line = this.lines[i];\n var span = getMarkedSpanFor(line.markedSpans, this);\n if (cm && !this.collapsed) { regLineChange(cm, lineNo(line), \"text\"); }\n else if (cm) {\n if (span.to != null) { max = lineNo(line); }\n if (span.from != null) { min = lineNo(line); }\n }\n line.markedSpans = removeMarkedSpan(line.markedSpans, span);\n if (span.from == null && this.collapsed && !lineIsHidden(this.doc, line) && cm)\n { updateLineHeight(line, textHeight(cm.display)); }\n }\n if (cm && this.collapsed && !cm.options.lineWrapping) { for (var i$1 = 0; i$1 < this.lines.length; ++i$1) {\n var visual = visualLine(this.lines[i$1]), len = lineLength(visual);\n if (len > cm.display.maxLineLength) {\n cm.display.maxLine = visual;\n cm.display.maxLineLength = len;\n cm.display.maxLineChanged = true;\n }\n } }\n\n if (min != null && cm && this.collapsed) { regChange(cm, min, max + 1); }\n this.lines.length = 0;\n this.explicitlyCleared = true;\n if (this.atomic && this.doc.cantEdit) {\n this.doc.cantEdit = false;\n if (cm) { reCheckSelection(cm.doc); }\n }\n if (cm) { signalLater(cm, \"markerCleared\", cm, this, min, max); }\n if (withOp) { endOperation(cm); }\n if (this.parent) { this.parent.clear(); }\n };\n\n // Find the position of the marker in the document. Returns a {from,\n // to} object by default. Side can be passed to get a specific side\n // -- 0 (both), -1 (left), or 1 (right). When lineObj is true, the\n // Pos objects returned contain a line object, rather than a line\n // number (used to prevent looking up the same line twice).\n TextMarker.prototype.find = function (side, lineObj) {\n if (side == null && this.type == \"bookmark\") { side = 1; }\n var from, to;\n for (var i = 0; i < this.lines.length; ++i) {\n var line = this.lines[i];\n var span = getMarkedSpanFor(line.markedSpans, this);\n if (span.from != null) {\n from = Pos(lineObj ? line : lineNo(line), span.from);\n if (side == -1) { return from }\n }\n if (span.to != null) {\n to = Pos(lineObj ? line : lineNo(line), span.to);\n if (side == 1) { return to }\n }\n }\n return from && {from: from, to: to}\n };\n\n // Signals that the marker's widget changed, and surrounding layout\n // should be recomputed.\n TextMarker.prototype.changed = function () {\n var this$1 = this;\n\n var pos = this.find(-1, true), widget = this, cm = this.doc.cm;\n if (!pos || !cm) { return }\n runInOp(cm, function () {\n var line = pos.line, lineN = lineNo(pos.line);\n var view = findViewForLine(cm, lineN);\n if (view) {\n clearLineMeasurementCacheFor(view);\n cm.curOp.selectionChanged = cm.curOp.forceUpdate = true;\n }\n cm.curOp.updateMaxLine = true;\n if (!lineIsHidden(widget.doc, line) && widget.height != null) {\n var oldHeight = widget.height;\n widget.height = null;\n var dHeight = widgetHeight(widget) - oldHeight;\n if (dHeight)\n { updateLineHeight(line, line.height + dHeight); }\n }\n signalLater(cm, \"markerChanged\", cm, this$1);\n });\n };\n\n TextMarker.prototype.attachLine = function (line) {\n if (!this.lines.length && this.doc.cm) {\n var op = this.doc.cm.curOp;\n if (!op.maybeHiddenMarkers || indexOf(op.maybeHiddenMarkers, this) == -1)\n { (op.maybeUnhiddenMarkers || (op.maybeUnhiddenMarkers = [])).push(this); }\n }\n this.lines.push(line);\n };\n\n TextMarker.prototype.detachLine = function (line) {\n this.lines.splice(indexOf(this.lines, line), 1);\n if (!this.lines.length && this.doc.cm) {\n var op = this.doc.cm.curOp\n ;(op.maybeHiddenMarkers || (op.maybeHiddenMarkers = [])).push(this);\n }\n };\n eventMixin(TextMarker);\n\n // Create a marker, wire it up to the right lines, and\n function markText(doc, from, to, options, type) {\n // Shared markers (across linked documents) are handled separately\n // (markTextShared will call out to this again, once per\n // document).\n if (options && options.shared) { return markTextShared(doc, from, to, options, type) }\n // Ensure we are in an operation.\n if (doc.cm && !doc.cm.curOp) { return operation(doc.cm, markText)(doc, from, to, options, type) }\n\n var marker = new TextMarker(doc, type), diff = cmp(from, to);\n if (options) { copyObj(options, marker, false); }\n // Don't connect empty markers unless clearWhenEmpty is false\n if (diff > 0 || diff == 0 && marker.clearWhenEmpty !== false)\n { return marker }\n if (marker.replacedWith) {\n // Showing up as a widget implies collapsed (widget replaces text)\n marker.collapsed = true;\n marker.widgetNode = eltP(\"span\", [marker.replacedWith], \"CodeMirror-widget\");\n if (!options.handleMouseEvents) { marker.widgetNode.setAttribute(\"cm-ignore-events\", \"true\"); }\n if (options.insertLeft) { marker.widgetNode.insertLeft = true; }\n }\n if (marker.collapsed) {\n if (conflictingCollapsedRange(doc, from.line, from, to, marker) ||\n from.line != to.line && conflictingCollapsedRange(doc, to.line, from, to, marker))\n { throw new Error(\"Inserting collapsed marker partially overlapping an existing one\") }\n seeCollapsedSpans();\n }\n\n if (marker.addToHistory)\n { addChangeToHistory(doc, {from: from, to: to, origin: \"markText\"}, doc.sel, NaN); }\n\n var curLine = from.line, cm = doc.cm, updateMaxLine;\n doc.iter(curLine, to.line + 1, function (line) {\n if (cm && marker.collapsed && !cm.options.lineWrapping && visualLine(line) == cm.display.maxLine)\n { updateMaxLine = true; }\n if (marker.collapsed && curLine != from.line) { updateLineHeight(line, 0); }\n addMarkedSpan(line, new MarkedSpan(marker,\n curLine == from.line ? from.ch : null,\n curLine == to.line ? to.ch : null), doc.cm && doc.cm.curOp);\n ++curLine;\n });\n // lineIsHidden depends on the presence of the spans, so needs a second pass\n if (marker.collapsed) { doc.iter(from.line, to.line + 1, function (line) {\n if (lineIsHidden(doc, line)) { updateLineHeight(line, 0); }\n }); }\n\n if (marker.clearOnEnter) { on(marker, \"beforeCursorEnter\", function () { return marker.clear(); }); }\n\n if (marker.readOnly) {\n seeReadOnlySpans();\n if (doc.history.done.length || doc.history.undone.length)\n { doc.clearHistory(); }\n }\n if (marker.collapsed) {\n marker.id = ++nextMarkerId;\n marker.atomic = true;\n }\n if (cm) {\n // Sync editor state\n if (updateMaxLine) { cm.curOp.updateMaxLine = true; }\n if (marker.collapsed)\n { regChange(cm, from.line, to.line + 1); }\n else if (marker.className || marker.startStyle || marker.endStyle || marker.css ||\n marker.attributes || marker.title)\n { for (var i = from.line; i <= to.line; i++) { regLineChange(cm, i, \"text\"); } }\n if (marker.atomic) { reCheckSelection(cm.doc); }\n signalLater(cm, \"markerAdded\", cm, marker);\n }\n return marker\n }\n\n // SHARED TEXTMARKERS\n\n // A shared marker spans multiple linked documents. It is\n // implemented as a meta-marker-object controlling multiple normal\n // markers.\n var SharedTextMarker = function(markers, primary) {\n this.markers = markers;\n this.primary = primary;\n for (var i = 0; i < markers.length; ++i)\n { markers[i].parent = this; }\n };\n\n SharedTextMarker.prototype.clear = function () {\n if (this.explicitlyCleared) { return }\n this.explicitlyCleared = true;\n for (var i = 0; i < this.markers.length; ++i)\n { this.markers[i].clear(); }\n signalLater(this, \"clear\");\n };\n\n SharedTextMarker.prototype.find = function (side, lineObj) {\n return this.primary.find(side, lineObj)\n };\n eventMixin(SharedTextMarker);\n\n function markTextShared(doc, from, to, options, type) {\n options = copyObj(options);\n options.shared = false;\n var markers = [markText(doc, from, to, options, type)], primary = markers[0];\n var widget = options.widgetNode;\n linkedDocs(doc, function (doc) {\n if (widget) { options.widgetNode = widget.cloneNode(true); }\n markers.push(markText(doc, clipPos(doc, from), clipPos(doc, to), options, type));\n for (var i = 0; i < doc.linked.length; ++i)\n { if (doc.linked[i].isParent) { return } }\n primary = lst(markers);\n });\n return new SharedTextMarker(markers, primary)\n }\n\n function findSharedMarkers(doc) {\n return doc.findMarks(Pos(doc.first, 0), doc.clipPos(Pos(doc.lastLine())), function (m) { return m.parent; })\n }\n\n function copySharedMarkers(doc, markers) {\n for (var i = 0; i < markers.length; i++) {\n var marker = markers[i], pos = marker.find();\n var mFrom = doc.clipPos(pos.from), mTo = doc.clipPos(pos.to);\n if (cmp(mFrom, mTo)) {\n var subMark = markText(doc, mFrom, mTo, marker.primary, marker.primary.type);\n marker.markers.push(subMark);\n subMark.parent = marker;\n }\n }\n }\n\n function detachSharedMarkers(markers) {\n var loop = function ( i ) {\n var marker = markers[i], linked = [marker.primary.doc];\n linkedDocs(marker.primary.doc, function (d) { return linked.push(d); });\n for (var j = 0; j < marker.markers.length; j++) {\n var subMarker = marker.markers[j];\n if (indexOf(linked, subMarker.doc) == -1) {\n subMarker.parent = null;\n marker.markers.splice(j--, 1);\n }\n }\n };\n\n for (var i = 0; i < markers.length; i++) loop( i );\n }\n\n var nextDocId = 0;\n var Doc = function(text, mode, firstLine, lineSep, direction) {\n if (!(this instanceof Doc)) { return new Doc(text, mode, firstLine, lineSep, direction) }\n if (firstLine == null) { firstLine = 0; }\n\n BranchChunk.call(this, [new LeafChunk([new Line(\"\", null)])]);\n this.first = firstLine;\n this.scrollTop = this.scrollLeft = 0;\n this.cantEdit = false;\n this.cleanGeneration = 1;\n this.modeFrontier = this.highlightFrontier = firstLine;\n var start = Pos(firstLine, 0);\n this.sel = simpleSelection(start);\n this.history = new History(null);\n this.id = ++nextDocId;\n this.modeOption = mode;\n this.lineSep = lineSep;\n this.direction = (direction == \"rtl\") ? \"rtl\" : \"ltr\";\n this.extend = false;\n\n if (typeof text == \"string\") { text = this.splitLines(text); }\n updateDoc(this, {from: start, to: start, text: text});\n setSelection(this, simpleSelection(start), sel_dontScroll);\n };\n\n Doc.prototype = createObj(BranchChunk.prototype, {\n constructor: Doc,\n // Iterate over the document. Supports two forms -- with only one\n // argument, it calls that for each line in the document. With\n // three, it iterates over the range given by the first two (with\n // the second being non-inclusive).\n iter: function(from, to, op) {\n if (op) { this.iterN(from - this.first, to - from, op); }\n else { this.iterN(this.first, this.first + this.size, from); }\n },\n\n // Non-public interface for adding and removing lines.\n insert: function(at, lines) {\n var height = 0;\n for (var i = 0; i < lines.length; ++i) { height += lines[i].height; }\n this.insertInner(at - this.first, lines, height);\n },\n remove: function(at, n) { this.removeInner(at - this.first, n); },\n\n // From here, the methods are part of the public interface. Most\n // are also available from CodeMirror (editor) instances.\n\n getValue: function(lineSep) {\n var lines = getLines(this, this.first, this.first + this.size);\n if (lineSep === false) { return lines }\n return lines.join(lineSep || this.lineSeparator())\n },\n setValue: docMethodOp(function(code) {\n var top = Pos(this.first, 0), last = this.first + this.size - 1;\n makeChange(this, {from: top, to: Pos(last, getLine(this, last).text.length),\n text: this.splitLines(code), origin: \"setValue\", full: true}, true);\n if (this.cm) { scrollToCoords(this.cm, 0, 0); }\n setSelection(this, simpleSelection(top), sel_dontScroll);\n }),\n replaceRange: function(code, from, to, origin) {\n from = clipPos(this, from);\n to = to ? clipPos(this, to) : from;\n replaceRange(this, code, from, to, origin);\n },\n getRange: function(from, to, lineSep) {\n var lines = getBetween(this, clipPos(this, from), clipPos(this, to));\n if (lineSep === false) { return lines }\n if (lineSep === '') { return lines.join('') }\n return lines.join(lineSep || this.lineSeparator())\n },\n\n getLine: function(line) {var l = this.getLineHandle(line); return l && l.text},\n\n getLineHandle: function(line) {if (isLine(this, line)) { return getLine(this, line) }},\n getLineNumber: function(line) {return lineNo(line)},\n\n getLineHandleVisualStart: function(line) {\n if (typeof line == \"number\") { line = getLine(this, line); }\n return visualLine(line)\n },\n\n lineCount: function() {return this.size},\n firstLine: function() {return this.first},\n lastLine: function() {return this.first + this.size - 1},\n\n clipPos: function(pos) {return clipPos(this, pos)},\n\n getCursor: function(start) {\n var range = this.sel.primary(), pos;\n if (start == null || start == \"head\") { pos = range.head; }\n else if (start == \"anchor\") { pos = range.anchor; }\n else if (start == \"end\" || start == \"to\" || start === false) { pos = range.to(); }\n else { pos = range.from(); }\n return pos\n },\n listSelections: function() { return this.sel.ranges },\n somethingSelected: function() {return this.sel.somethingSelected()},\n\n setCursor: docMethodOp(function(line, ch, options) {\n setSimpleSelection(this, clipPos(this, typeof line == \"number\" ? Pos(line, ch || 0) : line), null, options);\n }),\n setSelection: docMethodOp(function(anchor, head, options) {\n setSimpleSelection(this, clipPos(this, anchor), clipPos(this, head || anchor), options);\n }),\n extendSelection: docMethodOp(function(head, other, options) {\n extendSelection(this, clipPos(this, head), other && clipPos(this, other), options);\n }),\n extendSelections: docMethodOp(function(heads, options) {\n extendSelections(this, clipPosArray(this, heads), options);\n }),\n extendSelectionsBy: docMethodOp(function(f, options) {\n var heads = map(this.sel.ranges, f);\n extendSelections(this, clipPosArray(this, heads), options);\n }),\n setSelections: docMethodOp(function(ranges, primary, options) {\n if (!ranges.length) { return }\n var out = [];\n for (var i = 0; i < ranges.length; i++)\n { out[i] = new Range(clipPos(this, ranges[i].anchor),\n clipPos(this, ranges[i].head || ranges[i].anchor)); }\n if (primary == null) { primary = Math.min(ranges.length - 1, this.sel.primIndex); }\n setSelection(this, normalizeSelection(this.cm, out, primary), options);\n }),\n addSelection: docMethodOp(function(anchor, head, options) {\n var ranges = this.sel.ranges.slice(0);\n ranges.push(new Range(clipPos(this, anchor), clipPos(this, head || anchor)));\n setSelection(this, normalizeSelection(this.cm, ranges, ranges.length - 1), options);\n }),\n\n getSelection: function(lineSep) {\n var ranges = this.sel.ranges, lines;\n for (var i = 0; i < ranges.length; i++) {\n var sel = getBetween(this, ranges[i].from(), ranges[i].to());\n lines = lines ? lines.concat(sel) : sel;\n }\n if (lineSep === false) { return lines }\n else { return lines.join(lineSep || this.lineSeparator()) }\n },\n getSelections: function(lineSep) {\n var parts = [], ranges = this.sel.ranges;\n for (var i = 0; i < ranges.length; i++) {\n var sel = getBetween(this, ranges[i].from(), ranges[i].to());\n if (lineSep !== false) { sel = sel.join(lineSep || this.lineSeparator()); }\n parts[i] = sel;\n }\n return parts\n },\n replaceSelection: function(code, collapse, origin) {\n var dup = [];\n for (var i = 0; i < this.sel.ranges.length; i++)\n { dup[i] = code; }\n this.replaceSelections(dup, collapse, origin || \"+input\");\n },\n replaceSelections: docMethodOp(function(code, collapse, origin) {\n var changes = [], sel = this.sel;\n for (var i = 0; i < sel.ranges.length; i++) {\n var range = sel.ranges[i];\n changes[i] = {from: range.from(), to: range.to(), text: this.splitLines(code[i]), origin: origin};\n }\n var newSel = collapse && collapse != \"end\" && computeReplacedSel(this, changes, collapse);\n for (var i$1 = changes.length - 1; i$1 >= 0; i$1--)\n { makeChange(this, changes[i$1]); }\n if (newSel) { setSelectionReplaceHistory(this, newSel); }\n else if (this.cm) { ensureCursorVisible(this.cm); }\n }),\n undo: docMethodOp(function() {makeChangeFromHistory(this, \"undo\");}),\n redo: docMethodOp(function() {makeChangeFromHistory(this, \"redo\");}),\n undoSelection: docMethodOp(function() {makeChangeFromHistory(this, \"undo\", true);}),\n redoSelection: docMethodOp(function() {makeChangeFromHistory(this, \"redo\", true);}),\n\n setExtending: function(val) {this.extend = val;},\n getExtending: function() {return this.extend},\n\n historySize: function() {\n var hist = this.history, done = 0, undone = 0;\n for (var i = 0; i < hist.done.length; i++) { if (!hist.done[i].ranges) { ++done; } }\n for (var i$1 = 0; i$1 < hist.undone.length; i$1++) { if (!hist.undone[i$1].ranges) { ++undone; } }\n return {undo: done, redo: undone}\n },\n clearHistory: function() {\n var this$1 = this;\n\n this.history = new History(this.history);\n linkedDocs(this, function (doc) { return doc.history = this$1.history; }, true);\n },\n\n markClean: function() {\n this.cleanGeneration = this.changeGeneration(true);\n },\n changeGeneration: function(forceSplit) {\n if (forceSplit)\n { this.history.lastOp = this.history.lastSelOp = this.history.lastOrigin = null; }\n return this.history.generation\n },\n isClean: function (gen) {\n return this.history.generation == (gen || this.cleanGeneration)\n },\n\n getHistory: function() {\n return {done: copyHistoryArray(this.history.done),\n undone: copyHistoryArray(this.history.undone)}\n },\n setHistory: function(histData) {\n var hist = this.history = new History(this.history);\n hist.done = copyHistoryArray(histData.done.slice(0), null, true);\n hist.undone = copyHistoryArray(histData.undone.slice(0), null, true);\n },\n\n setGutterMarker: docMethodOp(function(line, gutterID, value) {\n return changeLine(this, line, \"gutter\", function (line) {\n var markers = line.gutterMarkers || (line.gutterMarkers = {});\n markers[gutterID] = value;\n if (!value && isEmpty(markers)) { line.gutterMarkers = null; }\n return true\n })\n }),\n\n clearGutter: docMethodOp(function(gutterID) {\n var this$1 = this;\n\n this.iter(function (line) {\n if (line.gutterMarkers && line.gutterMarkers[gutterID]) {\n changeLine(this$1, line, \"gutter\", function () {\n line.gutterMarkers[gutterID] = null;\n if (isEmpty(line.gutterMarkers)) { line.gutterMarkers = null; }\n return true\n });\n }\n });\n }),\n\n lineInfo: function(line) {\n var n;\n if (typeof line == \"number\") {\n if (!isLine(this, line)) { return null }\n n = line;\n line = getLine(this, line);\n if (!line) { return null }\n } else {\n n = lineNo(line);\n if (n == null) { return null }\n }\n return {line: n, handle: line, text: line.text, gutterMarkers: line.gutterMarkers,\n textClass: line.textClass, bgClass: line.bgClass, wrapClass: line.wrapClass,\n widgets: line.widgets}\n },\n\n addLineClass: docMethodOp(function(handle, where, cls) {\n return changeLine(this, handle, where == \"gutter\" ? \"gutter\" : \"class\", function (line) {\n var prop = where == \"text\" ? \"textClass\"\n : where == \"background\" ? \"bgClass\"\n : where == \"gutter\" ? \"gutterClass\" : \"wrapClass\";\n if (!line[prop]) { line[prop] = cls; }\n else if (classTest(cls).test(line[prop])) { return false }\n else { line[prop] += \" \" + cls; }\n return true\n })\n }),\n removeLineClass: docMethodOp(function(handle, where, cls) {\n return changeLine(this, handle, where == \"gutter\" ? \"gutter\" : \"class\", function (line) {\n var prop = where == \"text\" ? \"textClass\"\n : where == \"background\" ? \"bgClass\"\n : where == \"gutter\" ? \"gutterClass\" : \"wrapClass\";\n var cur = line[prop];\n if (!cur) { return false }\n else if (cls == null) { line[prop] = null; }\n else {\n var found = cur.match(classTest(cls));\n if (!found) { return false }\n var end = found.index + found[0].length;\n line[prop] = cur.slice(0, found.index) + (!found.index || end == cur.length ? \"\" : \" \") + cur.slice(end) || null;\n }\n return true\n })\n }),\n\n addLineWidget: docMethodOp(function(handle, node, options) {\n return addLineWidget(this, handle, node, options)\n }),\n removeLineWidget: function(widget) { widget.clear(); },\n\n markText: function(from, to, options) {\n return markText(this, clipPos(this, from), clipPos(this, to), options, options && options.type || \"range\")\n },\n setBookmark: function(pos, options) {\n var realOpts = {replacedWith: options && (options.nodeType == null ? options.widget : options),\n insertLeft: options && options.insertLeft,\n clearWhenEmpty: false, shared: options && options.shared,\n handleMouseEvents: options && options.handleMouseEvents};\n pos = clipPos(this, pos);\n return markText(this, pos, pos, realOpts, \"bookmark\")\n },\n findMarksAt: function(pos) {\n pos = clipPos(this, pos);\n var markers = [], spans = getLine(this, pos.line).markedSpans;\n if (spans) { for (var i = 0; i < spans.length; ++i) {\n var span = spans[i];\n if ((span.from == null || span.from <= pos.ch) &&\n (span.to == null || span.to >= pos.ch))\n { markers.push(span.marker.parent || span.marker); }\n } }\n return markers\n },\n findMarks: function(from, to, filter) {\n from = clipPos(this, from); to = clipPos(this, to);\n var found = [], lineNo = from.line;\n this.iter(from.line, to.line + 1, function (line) {\n var spans = line.markedSpans;\n if (spans) { for (var i = 0; i < spans.length; i++) {\n var span = spans[i];\n if (!(span.to != null && lineNo == from.line && from.ch >= span.to ||\n span.from == null && lineNo != from.line ||\n span.from != null && lineNo == to.line && span.from >= to.ch) &&\n (!filter || filter(span.marker)))\n { found.push(span.marker.parent || span.marker); }\n } }\n ++lineNo;\n });\n return found\n },\n getAllMarks: function() {\n var markers = [];\n this.iter(function (line) {\n var sps = line.markedSpans;\n if (sps) { for (var i = 0; i < sps.length; ++i)\n { if (sps[i].from != null) { markers.push(sps[i].marker); } } }\n });\n return markers\n },\n\n posFromIndex: function(off) {\n var ch, lineNo = this.first, sepSize = this.lineSeparator().length;\n this.iter(function (line) {\n var sz = line.text.length + sepSize;\n if (sz > off) { ch = off; return true }\n off -= sz;\n ++lineNo;\n });\n return clipPos(this, Pos(lineNo, ch))\n },\n indexFromPos: function (coords) {\n coords = clipPos(this, coords);\n var index = coords.ch;\n if (coords.line < this.first || coords.ch < 0) { return 0 }\n var sepSize = this.lineSeparator().length;\n this.iter(this.first, coords.line, function (line) { // iter aborts when callback returns a truthy value\n index += line.text.length + sepSize;\n });\n return index\n },\n\n copy: function(copyHistory) {\n var doc = new Doc(getLines(this, this.first, this.first + this.size),\n this.modeOption, this.first, this.lineSep, this.direction);\n doc.scrollTop = this.scrollTop; doc.scrollLeft = this.scrollLeft;\n doc.sel = this.sel;\n doc.extend = false;\n if (copyHistory) {\n doc.history.undoDepth = this.history.undoDepth;\n doc.setHistory(this.getHistory());\n }\n return doc\n },\n\n linkedDoc: function(options) {\n if (!options) { options = {}; }\n var from = this.first, to = this.first + this.size;\n if (options.from != null && options.from > from) { from = options.from; }\n if (options.to != null && options.to < to) { to = options.to; }\n var copy = new Doc(getLines(this, from, to), options.mode || this.modeOption, from, this.lineSep, this.direction);\n if (options.sharedHist) { copy.history = this.history\n ; }(this.linked || (this.linked = [])).push({doc: copy, sharedHist: options.sharedHist});\n copy.linked = [{doc: this, isParent: true, sharedHist: options.sharedHist}];\n copySharedMarkers(copy, findSharedMarkers(this));\n return copy\n },\n unlinkDoc: function(other) {\n if (other instanceof CodeMirror) { other = other.doc; }\n if (this.linked) { for (var i = 0; i < this.linked.length; ++i) {\n var link = this.linked[i];\n if (link.doc != other) { continue }\n this.linked.splice(i, 1);\n other.unlinkDoc(this);\n detachSharedMarkers(findSharedMarkers(this));\n break\n } }\n // If the histories were shared, split them again\n if (other.history == this.history) {\n var splitIds = [other.id];\n linkedDocs(other, function (doc) { return splitIds.push(doc.id); }, true);\n other.history = new History(null);\n other.history.done = copyHistoryArray(this.history.done, splitIds);\n other.history.undone = copyHistoryArray(this.history.undone, splitIds);\n }\n },\n iterLinkedDocs: function(f) {linkedDocs(this, f);},\n\n getMode: function() {return this.mode},\n getEditor: function() {return this.cm},\n\n splitLines: function(str) {\n if (this.lineSep) { return str.split(this.lineSep) }\n return splitLinesAuto(str)\n },\n lineSeparator: function() { return this.lineSep || \"\\n\" },\n\n setDirection: docMethodOp(function (dir) {\n if (dir != \"rtl\") { dir = \"ltr\"; }\n if (dir == this.direction) { return }\n this.direction = dir;\n this.iter(function (line) { return line.order = null; });\n if (this.cm) { directionChanged(this.cm); }\n })\n });\n\n // Public alias.\n Doc.prototype.eachLine = Doc.prototype.iter;\n\n // Kludge to work around strange IE behavior where it'll sometimes\n // re-fire a series of drag-related events right after the drop (#1551)\n var lastDrop = 0;\n\n function onDrop(e) {\n var cm = this;\n clearDragCursor(cm);\n if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e))\n { return }\n e_preventDefault(e);\n if (ie) { lastDrop = +new Date; }\n var pos = posFromMouse(cm, e, true), files = e.dataTransfer.files;\n if (!pos || cm.isReadOnly()) { return }\n // Might be a file drop, in which case we simply extract the text\n // and insert it.\n if (files && files.length && window.FileReader && window.File) {\n var n = files.length, text = Array(n), read = 0;\n var markAsReadAndPasteIfAllFilesAreRead = function () {\n if (++read == n) {\n operation(cm, function () {\n pos = clipPos(cm.doc, pos);\n var change = {from: pos, to: pos,\n text: cm.doc.splitLines(\n text.filter(function (t) { return t != null; }).join(cm.doc.lineSeparator())),\n origin: \"paste\"};\n makeChange(cm.doc, change);\n setSelectionReplaceHistory(cm.doc, simpleSelection(clipPos(cm.doc, pos), clipPos(cm.doc, changeEnd(change))));\n })();\n }\n };\n var readTextFromFile = function (file, i) {\n if (cm.options.allowDropFileTypes &&\n indexOf(cm.options.allowDropFileTypes, file.type) == -1) {\n markAsReadAndPasteIfAllFilesAreRead();\n return\n }\n var reader = new FileReader;\n reader.onerror = function () { return markAsReadAndPasteIfAllFilesAreRead(); };\n reader.onload = function () {\n var content = reader.result;\n if (/[\\x00-\\x08\\x0e-\\x1f]{2}/.test(content)) {\n markAsReadAndPasteIfAllFilesAreRead();\n return\n }\n text[i] = content;\n markAsReadAndPasteIfAllFilesAreRead();\n };\n reader.readAsText(file);\n };\n for (var i = 0; i < files.length; i++) { readTextFromFile(files[i], i); }\n } else { // Normal drop\n // Don't do a replace if the drop happened inside of the selected text.\n if (cm.state.draggingText && cm.doc.sel.contains(pos) > -1) {\n cm.state.draggingText(e);\n // Ensure the editor is re-focused\n setTimeout(function () { return cm.display.input.focus(); }, 20);\n return\n }\n try {\n var text$1 = e.dataTransfer.getData(\"Text\");\n if (text$1) {\n var selected;\n if (cm.state.draggingText && !cm.state.draggingText.copy)\n { selected = cm.listSelections(); }\n setSelectionNoUndo(cm.doc, simpleSelection(pos, pos));\n if (selected) { for (var i$1 = 0; i$1 < selected.length; ++i$1)\n { replaceRange(cm.doc, \"\", selected[i$1].anchor, selected[i$1].head, \"drag\"); } }\n cm.replaceSelection(text$1, \"around\", \"paste\");\n cm.display.input.focus();\n }\n }\n catch(e$1){}\n }\n }\n\n function onDragStart(cm, e) {\n if (ie && (!cm.state.draggingText || +new Date - lastDrop < 100)) { e_stop(e); return }\n if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e)) { return }\n\n e.dataTransfer.setData(\"Text\", cm.getSelection());\n e.dataTransfer.effectAllowed = \"copyMove\";\n\n // Use dummy image instead of default browsers image.\n // Recent Safari (~6.0.2) have a tendency to segfault when this happens, so we don't do it there.\n if (e.dataTransfer.setDragImage && !safari) {\n var img = elt(\"img\", null, null, \"position: fixed; left: 0; top: 0;\");\n img.src = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n if (presto) {\n img.width = img.height = 1;\n cm.display.wrapper.appendChild(img);\n // Force a relayout, or Opera won't use our image for some obscure reason\n img._top = img.offsetTop;\n }\n e.dataTransfer.setDragImage(img, 0, 0);\n if (presto) { img.parentNode.removeChild(img); }\n }\n }\n\n function onDragOver(cm, e) {\n var pos = posFromMouse(cm, e);\n if (!pos) { return }\n var frag = document.createDocumentFragment();\n drawSelectionCursor(cm, pos, frag);\n if (!cm.display.dragCursor) {\n cm.display.dragCursor = elt(\"div\", null, \"CodeMirror-cursors CodeMirror-dragcursors\");\n cm.display.lineSpace.insertBefore(cm.display.dragCursor, cm.display.cursorDiv);\n }\n removeChildrenAndAdd(cm.display.dragCursor, frag);\n }\n\n function clearDragCursor(cm) {\n if (cm.display.dragCursor) {\n cm.display.lineSpace.removeChild(cm.display.dragCursor);\n cm.display.dragCursor = null;\n }\n }\n\n // These must be handled carefully, because naively registering a\n // handler for each editor will cause the editors to never be\n // garbage collected.\n\n function forEachCodeMirror(f) {\n if (!document.getElementsByClassName) { return }\n var byClass = document.getElementsByClassName(\"CodeMirror\"), editors = [];\n for (var i = 0; i < byClass.length; i++) {\n var cm = byClass[i].CodeMirror;\n if (cm) { editors.push(cm); }\n }\n if (editors.length) { editors[0].operation(function () {\n for (var i = 0; i < editors.length; i++) { f(editors[i]); }\n }); }\n }\n\n var globalsRegistered = false;\n function ensureGlobalHandlers() {\n if (globalsRegistered) { return }\n registerGlobalHandlers();\n globalsRegistered = true;\n }\n function registerGlobalHandlers() {\n // When the window resizes, we need to refresh active editors.\n var resizeTimer;\n on(window, \"resize\", function () {\n if (resizeTimer == null) { resizeTimer = setTimeout(function () {\n resizeTimer = null;\n forEachCodeMirror(onResize);\n }, 100); }\n });\n // When the window loses focus, we want to show the editor as blurred\n on(window, \"blur\", function () { return forEachCodeMirror(onBlur); });\n }\n // Called when the window resizes\n function onResize(cm) {\n var d = cm.display;\n // Might be a text scaling operation, clear size caches.\n d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null;\n d.scrollbarsClipped = false;\n cm.setSize();\n }\n\n var keyNames = {\n 3: \"Pause\", 8: \"Backspace\", 9: \"Tab\", 13: \"Enter\", 16: \"Shift\", 17: \"Ctrl\", 18: \"Alt\",\n 19: \"Pause\", 20: \"CapsLock\", 27: \"Esc\", 32: \"Space\", 33: \"PageUp\", 34: \"PageDown\", 35: \"End\",\n 36: \"Home\", 37: \"Left\", 38: \"Up\", 39: \"Right\", 40: \"Down\", 44: \"PrintScrn\", 45: \"Insert\",\n 46: \"Delete\", 59: \";\", 61: \"=\", 91: \"Mod\", 92: \"Mod\", 93: \"Mod\",\n 106: \"*\", 107: \"=\", 109: \"-\", 110: \".\", 111: \"/\", 145: \"ScrollLock\",\n 173: \"-\", 186: \";\", 187: \"=\", 188: \",\", 189: \"-\", 190: \".\", 191: \"/\", 192: \"`\", 219: \"[\", 220: \"\\\\\",\n 221: \"]\", 222: \"'\", 224: \"Mod\", 63232: \"Up\", 63233: \"Down\", 63234: \"Left\", 63235: \"Right\", 63272: \"Delete\",\n 63273: \"Home\", 63275: \"End\", 63276: \"PageUp\", 63277: \"PageDown\", 63302: \"Insert\"\n };\n\n // Number keys\n for (var i = 0; i < 10; i++) { keyNames[i + 48] = keyNames[i + 96] = String(i); }\n // Alphabetic keys\n for (var i$1 = 65; i$1 <= 90; i$1++) { keyNames[i$1] = String.fromCharCode(i$1); }\n // Function keys\n for (var i$2 = 1; i$2 <= 12; i$2++) { keyNames[i$2 + 111] = keyNames[i$2 + 63235] = \"F\" + i$2; }\n\n var keyMap = {};\n\n keyMap.basic = {\n \"Left\": \"goCharLeft\", \"Right\": \"goCharRight\", \"Up\": \"goLineUp\", \"Down\": \"goLineDown\",\n \"End\": \"goLineEnd\", \"Home\": \"goLineStartSmart\", \"PageUp\": \"goPageUp\", \"PageDown\": \"goPageDown\",\n \"Delete\": \"delCharAfter\", \"Backspace\": \"delCharBefore\", \"Shift-Backspace\": \"delCharBefore\",\n \"Tab\": \"defaultTab\", \"Shift-Tab\": \"indentAuto\",\n \"Enter\": \"newlineAndIndent\", \"Insert\": \"toggleOverwrite\",\n \"Esc\": \"singleSelection\"\n };\n // Note that the save and find-related commands aren't defined by\n // default. User code or addons can define them. Unknown commands\n // are simply ignored.\n keyMap.pcDefault = {\n \"Ctrl-A\": \"selectAll\", \"Ctrl-D\": \"deleteLine\", \"Ctrl-Z\": \"undo\", \"Shift-Ctrl-Z\": \"redo\", \"Ctrl-Y\": \"redo\",\n \"Ctrl-Home\": \"goDocStart\", \"Ctrl-End\": \"goDocEnd\", \"Ctrl-Up\": \"goLineUp\", \"Ctrl-Down\": \"goLineDown\",\n \"Ctrl-Left\": \"goGroupLeft\", \"Ctrl-Right\": \"goGroupRight\", \"Alt-Left\": \"goLineStart\", \"Alt-Right\": \"goLineEnd\",\n \"Ctrl-Backspace\": \"delGroupBefore\", \"Ctrl-Delete\": \"delGroupAfter\", \"Ctrl-S\": \"save\", \"Ctrl-F\": \"find\",\n \"Ctrl-G\": \"findNext\", \"Shift-Ctrl-G\": \"findPrev\", \"Shift-Ctrl-F\": \"replace\", \"Shift-Ctrl-R\": \"replaceAll\",\n \"Ctrl-[\": \"indentLess\", \"Ctrl-]\": \"indentMore\",\n \"Ctrl-U\": \"undoSelection\", \"Shift-Ctrl-U\": \"redoSelection\", \"Alt-U\": \"redoSelection\",\n \"fallthrough\": \"basic\"\n };\n // Very basic readline/emacs-style bindings, which are standard on Mac.\n keyMap.emacsy = {\n \"Ctrl-F\": \"goCharRight\", \"Ctrl-B\": \"goCharLeft\", \"Ctrl-P\": \"goLineUp\", \"Ctrl-N\": \"goLineDown\",\n \"Ctrl-A\": \"goLineStart\", \"Ctrl-E\": \"goLineEnd\", \"Ctrl-V\": \"goPageDown\", \"Shift-Ctrl-V\": \"goPageUp\",\n \"Ctrl-D\": \"delCharAfter\", \"Ctrl-H\": \"delCharBefore\", \"Alt-Backspace\": \"delWordBefore\", \"Ctrl-K\": \"killLine\",\n \"Ctrl-T\": \"transposeChars\", \"Ctrl-O\": \"openLine\"\n };\n keyMap.macDefault = {\n \"Cmd-A\": \"selectAll\", \"Cmd-D\": \"deleteLine\", \"Cmd-Z\": \"undo\", \"Shift-Cmd-Z\": \"redo\", \"Cmd-Y\": \"redo\",\n \"Cmd-Home\": \"goDocStart\", \"Cmd-Up\": \"goDocStart\", \"Cmd-End\": \"goDocEnd\", \"Cmd-Down\": \"goDocEnd\", \"Alt-Left\": \"goGroupLeft\",\n \"Alt-Right\": \"goGroupRight\", \"Cmd-Left\": \"goLineLeft\", \"Cmd-Right\": \"goLineRight\", \"Alt-Backspace\": \"delGroupBefore\",\n \"Ctrl-Alt-Backspace\": \"delGroupAfter\", \"Alt-Delete\": \"delGroupAfter\", \"Cmd-S\": \"save\", \"Cmd-F\": \"find\",\n \"Cmd-G\": \"findNext\", \"Shift-Cmd-G\": \"findPrev\", \"Cmd-Alt-F\": \"replace\", \"Shift-Cmd-Alt-F\": \"replaceAll\",\n \"Cmd-[\": \"indentLess\", \"Cmd-]\": \"indentMore\", \"Cmd-Backspace\": \"delWrappedLineLeft\", \"Cmd-Delete\": \"delWrappedLineRight\",\n \"Cmd-U\": \"undoSelection\", \"Shift-Cmd-U\": \"redoSelection\", \"Ctrl-Up\": \"goDocStart\", \"Ctrl-Down\": \"goDocEnd\",\n \"fallthrough\": [\"basic\", \"emacsy\"]\n };\n keyMap[\"default\"] = mac ? keyMap.macDefault : keyMap.pcDefault;\n\n // KEYMAP DISPATCH\n\n function normalizeKeyName(name) {\n var parts = name.split(/-(?!$)/);\n name = parts[parts.length - 1];\n var alt, ctrl, shift, cmd;\n for (var i = 0; i < parts.length - 1; i++) {\n var mod = parts[i];\n if (/^(cmd|meta|m)$/i.test(mod)) { cmd = true; }\n else if (/^a(lt)?$/i.test(mod)) { alt = true; }\n else if (/^(c|ctrl|control)$/i.test(mod)) { ctrl = true; }\n else if (/^s(hift)?$/i.test(mod)) { shift = true; }\n else { throw new Error(\"Unrecognized modifier name: \" + mod) }\n }\n if (alt) { name = \"Alt-\" + name; }\n if (ctrl) { name = \"Ctrl-\" + name; }\n if (cmd) { name = \"Cmd-\" + name; }\n if (shift) { name = \"Shift-\" + name; }\n return name\n }\n\n // This is a kludge to keep keymaps mostly working as raw objects\n // (backwards compatibility) while at the same time support features\n // like normalization and multi-stroke key bindings. It compiles a\n // new normalized keymap, and then updates the old object to reflect\n // this.\n function normalizeKeyMap(keymap) {\n var copy = {};\n for (var keyname in keymap) { if (keymap.hasOwnProperty(keyname)) {\n var value = keymap[keyname];\n if (/^(name|fallthrough|(de|at)tach)$/.test(keyname)) { continue }\n if (value == \"...\") { delete keymap[keyname]; continue }\n\n var keys = map(keyname.split(\" \"), normalizeKeyName);\n for (var i = 0; i < keys.length; i++) {\n var val = (void 0), name = (void 0);\n if (i == keys.length - 1) {\n name = keys.join(\" \");\n val = value;\n } else {\n name = keys.slice(0, i + 1).join(\" \");\n val = \"...\";\n }\n var prev = copy[name];\n if (!prev) { copy[name] = val; }\n else if (prev != val) { throw new Error(\"Inconsistent bindings for \" + name) }\n }\n delete keymap[keyname];\n } }\n for (var prop in copy) { keymap[prop] = copy[prop]; }\n return keymap\n }\n\n function lookupKey(key, map, handle, context) {\n map = getKeyMap(map);\n var found = map.call ? map.call(key, context) : map[key];\n if (found === false) { return \"nothing\" }\n if (found === \"...\") { return \"multi\" }\n if (found != null && handle(found)) { return \"handled\" }\n\n if (map.fallthrough) {\n if (Object.prototype.toString.call(map.fallthrough) != \"[object Array]\")\n { return lookupKey(key, map.fallthrough, handle, context) }\n for (var i = 0; i < map.fallthrough.length; i++) {\n var result = lookupKey(key, map.fallthrough[i], handle, context);\n if (result) { return result }\n }\n }\n }\n\n // Modifier key presses don't count as 'real' key presses for the\n // purpose of keymap fallthrough.\n function isModifierKey(value) {\n var name = typeof value == \"string\" ? value : keyNames[value.keyCode];\n return name == \"Ctrl\" || name == \"Alt\" || name == \"Shift\" || name == \"Mod\"\n }\n\n function addModifierNames(name, event, noShift) {\n var base = name;\n if (event.altKey && base != \"Alt\") { name = \"Alt-\" + name; }\n if ((flipCtrlCmd ? event.metaKey : event.ctrlKey) && base != \"Ctrl\") { name = \"Ctrl-\" + name; }\n if ((flipCtrlCmd ? event.ctrlKey : event.metaKey) && base != \"Mod\") { name = \"Cmd-\" + name; }\n if (!noShift && event.shiftKey && base != \"Shift\") { name = \"Shift-\" + name; }\n return name\n }\n\n // Look up the name of a key as indicated by an event object.\n function keyName(event, noShift) {\n if (presto && event.keyCode == 34 && event[\"char\"]) { return false }\n var name = keyNames[event.keyCode];\n if (name == null || event.altGraphKey) { return false }\n // Ctrl-ScrollLock has keyCode 3, same as Ctrl-Pause,\n // so we'll use event.code when available (Chrome 48+, FF 38+, Safari 10.1+)\n if (event.keyCode == 3 && event.code) { name = event.code; }\n return addModifierNames(name, event, noShift)\n }\n\n function getKeyMap(val) {\n return typeof val == \"string\" ? keyMap[val] : val\n }\n\n // Helper for deleting text near the selection(s), used to implement\n // backspace, delete, and similar functionality.\n function deleteNearSelection(cm, compute) {\n var ranges = cm.doc.sel.ranges, kill = [];\n // Build up a set of ranges to kill first, merging overlapping\n // ranges.\n for (var i = 0; i < ranges.length; i++) {\n var toKill = compute(ranges[i]);\n while (kill.length && cmp(toKill.from, lst(kill).to) <= 0) {\n var replaced = kill.pop();\n if (cmp(replaced.from, toKill.from) < 0) {\n toKill.from = replaced.from;\n break\n }\n }\n kill.push(toKill);\n }\n // Next, remove those actual ranges.\n runInOp(cm, function () {\n for (var i = kill.length - 1; i >= 0; i--)\n { replaceRange(cm.doc, \"\", kill[i].from, kill[i].to, \"+delete\"); }\n ensureCursorVisible(cm);\n });\n }\n\n function moveCharLogically(line, ch, dir) {\n var target = skipExtendingChars(line.text, ch + dir, dir);\n return target < 0 || target > line.text.length ? null : target\n }\n\n function moveLogically(line, start, dir) {\n var ch = moveCharLogically(line, start.ch, dir);\n return ch == null ? null : new Pos(start.line, ch, dir < 0 ? \"after\" : \"before\")\n }\n\n function endOfLine(visually, cm, lineObj, lineNo, dir) {\n if (visually) {\n if (cm.doc.direction == \"rtl\") { dir = -dir; }\n var order = getOrder(lineObj, cm.doc.direction);\n if (order) {\n var part = dir < 0 ? lst(order) : order[0];\n var moveInStorageOrder = (dir < 0) == (part.level == 1);\n var sticky = moveInStorageOrder ? \"after\" : \"before\";\n var ch;\n // With a wrapped rtl chunk (possibly spanning multiple bidi parts),\n // it could be that the last bidi part is not on the last visual line,\n // since visual lines contain content order-consecutive chunks.\n // Thus, in rtl, we are looking for the first (content-order) character\n // in the rtl chunk that is on the last line (that is, the same line\n // as the last (content-order) character).\n if (part.level > 0 || cm.doc.direction == \"rtl\") {\n var prep = prepareMeasureForLine(cm, lineObj);\n ch = dir < 0 ? lineObj.text.length - 1 : 0;\n var targetTop = measureCharPrepared(cm, prep, ch).top;\n ch = findFirst(function (ch) { return measureCharPrepared(cm, prep, ch).top == targetTop; }, (dir < 0) == (part.level == 1) ? part.from : part.to - 1, ch);\n if (sticky == \"before\") { ch = moveCharLogically(lineObj, ch, 1); }\n } else { ch = dir < 0 ? part.to : part.from; }\n return new Pos(lineNo, ch, sticky)\n }\n }\n return new Pos(lineNo, dir < 0 ? lineObj.text.length : 0, dir < 0 ? \"before\" : \"after\")\n }\n\n function moveVisually(cm, line, start, dir) {\n var bidi = getOrder(line, cm.doc.direction);\n if (!bidi) { return moveLogically(line, start, dir) }\n if (start.ch >= line.text.length) {\n start.ch = line.text.length;\n start.sticky = \"before\";\n } else if (start.ch <= 0) {\n start.ch = 0;\n start.sticky = \"after\";\n }\n var partPos = getBidiPartAt(bidi, start.ch, start.sticky), part = bidi[partPos];\n if (cm.doc.direction == \"ltr\" && part.level % 2 == 0 && (dir > 0 ? part.to > start.ch : part.from < start.ch)) {\n // Case 1: We move within an ltr part in an ltr editor. Even with wrapped lines,\n // nothing interesting happens.\n return moveLogically(line, start, dir)\n }\n\n var mv = function (pos, dir) { return moveCharLogically(line, pos instanceof Pos ? pos.ch : pos, dir); };\n var prep;\n var getWrappedLineExtent = function (ch) {\n if (!cm.options.lineWrapping) { return {begin: 0, end: line.text.length} }\n prep = prep || prepareMeasureForLine(cm, line);\n return wrappedLineExtentChar(cm, line, prep, ch)\n };\n var wrappedLineExtent = getWrappedLineExtent(start.sticky == \"before\" ? mv(start, -1) : start.ch);\n\n if (cm.doc.direction == \"rtl\" || part.level == 1) {\n var moveInStorageOrder = (part.level == 1) == (dir < 0);\n var ch = mv(start, moveInStorageOrder ? 1 : -1);\n if (ch != null && (!moveInStorageOrder ? ch >= part.from && ch >= wrappedLineExtent.begin : ch <= part.to && ch <= wrappedLineExtent.end)) {\n // Case 2: We move within an rtl part or in an rtl editor on the same visual line\n var sticky = moveInStorageOrder ? \"before\" : \"after\";\n return new Pos(start.line, ch, sticky)\n }\n }\n\n // Case 3: Could not move within this bidi part in this visual line, so leave\n // the current bidi part\n\n var searchInVisualLine = function (partPos, dir, wrappedLineExtent) {\n var getRes = function (ch, moveInStorageOrder) { return moveInStorageOrder\n ? new Pos(start.line, mv(ch, 1), \"before\")\n : new Pos(start.line, ch, \"after\"); };\n\n for (; partPos >= 0 && partPos < bidi.length; partPos += dir) {\n var part = bidi[partPos];\n var moveInStorageOrder = (dir > 0) == (part.level != 1);\n var ch = moveInStorageOrder ? wrappedLineExtent.begin : mv(wrappedLineExtent.end, -1);\n if (part.from <= ch && ch < part.to) { return getRes(ch, moveInStorageOrder) }\n ch = moveInStorageOrder ? part.from : mv(part.to, -1);\n if (wrappedLineExtent.begin <= ch && ch < wrappedLineExtent.end) { return getRes(ch, moveInStorageOrder) }\n }\n };\n\n // Case 3a: Look for other bidi parts on the same visual line\n var res = searchInVisualLine(partPos + dir, dir, wrappedLineExtent);\n if (res) { return res }\n\n // Case 3b: Look for other bidi parts on the next visual line\n var nextCh = dir > 0 ? wrappedLineExtent.end : mv(wrappedLineExtent.begin, -1);\n if (nextCh != null && !(dir > 0 && nextCh == line.text.length)) {\n res = searchInVisualLine(dir > 0 ? 0 : bidi.length - 1, dir, getWrappedLineExtent(nextCh));\n if (res) { return res }\n }\n\n // Case 4: Nowhere to move\n return null\n }\n\n // Commands are parameter-less actions that can be performed on an\n // editor, mostly used for keybindings.\n var commands = {\n selectAll: selectAll,\n singleSelection: function (cm) { return cm.setSelection(cm.getCursor(\"anchor\"), cm.getCursor(\"head\"), sel_dontScroll); },\n killLine: function (cm) { return deleteNearSelection(cm, function (range) {\n if (range.empty()) {\n var len = getLine(cm.doc, range.head.line).text.length;\n if (range.head.ch == len && range.head.line < cm.lastLine())\n { return {from: range.head, to: Pos(range.head.line + 1, 0)} }\n else\n { return {from: range.head, to: Pos(range.head.line, len)} }\n } else {\n return {from: range.from(), to: range.to()}\n }\n }); },\n deleteLine: function (cm) { return deleteNearSelection(cm, function (range) { return ({\n from: Pos(range.from().line, 0),\n to: clipPos(cm.doc, Pos(range.to().line + 1, 0))\n }); }); },\n delLineLeft: function (cm) { return deleteNearSelection(cm, function (range) { return ({\n from: Pos(range.from().line, 0), to: range.from()\n }); }); },\n delWrappedLineLeft: function (cm) { return deleteNearSelection(cm, function (range) {\n var top = cm.charCoords(range.head, \"div\").top + 5;\n var leftPos = cm.coordsChar({left: 0, top: top}, \"div\");\n return {from: leftPos, to: range.from()}\n }); },\n delWrappedLineRight: function (cm) { return deleteNearSelection(cm, function (range) {\n var top = cm.charCoords(range.head, \"div\").top + 5;\n var rightPos = cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, \"div\");\n return {from: range.from(), to: rightPos }\n }); },\n undo: function (cm) { return cm.undo(); },\n redo: function (cm) { return cm.redo(); },\n undoSelection: function (cm) { return cm.undoSelection(); },\n redoSelection: function (cm) { return cm.redoSelection(); },\n goDocStart: function (cm) { return cm.extendSelection(Pos(cm.firstLine(), 0)); },\n goDocEnd: function (cm) { return cm.extendSelection(Pos(cm.lastLine())); },\n goLineStart: function (cm) { return cm.extendSelectionsBy(function (range) { return lineStart(cm, range.head.line); },\n {origin: \"+move\", bias: 1}\n ); },\n goLineStartSmart: function (cm) { return cm.extendSelectionsBy(function (range) { return lineStartSmart(cm, range.head); },\n {origin: \"+move\", bias: 1}\n ); },\n goLineEnd: function (cm) { return cm.extendSelectionsBy(function (range) { return lineEnd(cm, range.head.line); },\n {origin: \"+move\", bias: -1}\n ); },\n goLineRight: function (cm) { return cm.extendSelectionsBy(function (range) {\n var top = cm.cursorCoords(range.head, \"div\").top + 5;\n return cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, \"div\")\n }, sel_move); },\n goLineLeft: function (cm) { return cm.extendSelectionsBy(function (range) {\n var top = cm.cursorCoords(range.head, \"div\").top + 5;\n return cm.coordsChar({left: 0, top: top}, \"div\")\n }, sel_move); },\n goLineLeftSmart: function (cm) { return cm.extendSelectionsBy(function (range) {\n var top = cm.cursorCoords(range.head, \"div\").top + 5;\n var pos = cm.coordsChar({left: 0, top: top}, \"div\");\n if (pos.ch < cm.getLine(pos.line).search(/\\S/)) { return lineStartSmart(cm, range.head) }\n return pos\n }, sel_move); },\n goLineUp: function (cm) { return cm.moveV(-1, \"line\"); },\n goLineDown: function (cm) { return cm.moveV(1, \"line\"); },\n goPageUp: function (cm) { return cm.moveV(-1, \"page\"); },\n goPageDown: function (cm) { return cm.moveV(1, \"page\"); },\n goCharLeft: function (cm) { return cm.moveH(-1, \"char\"); },\n goCharRight: function (cm) { return cm.moveH(1, \"char\"); },\n goColumnLeft: function (cm) { return cm.moveH(-1, \"column\"); },\n goColumnRight: function (cm) { return cm.moveH(1, \"column\"); },\n goWordLeft: function (cm) { return cm.moveH(-1, \"word\"); },\n goGroupRight: function (cm) { return cm.moveH(1, \"group\"); },\n goGroupLeft: function (cm) { return cm.moveH(-1, \"group\"); },\n goWordRight: function (cm) { return cm.moveH(1, \"word\"); },\n delCharBefore: function (cm) { return cm.deleteH(-1, \"codepoint\"); },\n delCharAfter: function (cm) { return cm.deleteH(1, \"char\"); },\n delWordBefore: function (cm) { return cm.deleteH(-1, \"word\"); },\n delWordAfter: function (cm) { return cm.deleteH(1, \"word\"); },\n delGroupBefore: function (cm) { return cm.deleteH(-1, \"group\"); },\n delGroupAfter: function (cm) { return cm.deleteH(1, \"group\"); },\n indentAuto: function (cm) { return cm.indentSelection(\"smart\"); },\n indentMore: function (cm) { return cm.indentSelection(\"add\"); },\n indentLess: function (cm) { return cm.indentSelection(\"subtract\"); },\n insertTab: function (cm) { return cm.replaceSelection(\"\\t\"); },\n insertSoftTab: function (cm) {\n var spaces = [], ranges = cm.listSelections(), tabSize = cm.options.tabSize;\n for (var i = 0; i < ranges.length; i++) {\n var pos = ranges[i].from();\n var col = countColumn(cm.getLine(pos.line), pos.ch, tabSize);\n spaces.push(spaceStr(tabSize - col % tabSize));\n }\n cm.replaceSelections(spaces);\n },\n defaultTab: function (cm) {\n if (cm.somethingSelected()) { cm.indentSelection(\"add\"); }\n else { cm.execCommand(\"insertTab\"); }\n },\n // Swap the two chars left and right of each selection's head.\n // Move cursor behind the two swapped characters afterwards.\n //\n // Doesn't consider line feeds a character.\n // Doesn't scan more than one line above to find a character.\n // Doesn't do anything on an empty line.\n // Doesn't do anything with non-empty selections.\n transposeChars: function (cm) { return runInOp(cm, function () {\n var ranges = cm.listSelections(), newSel = [];\n for (var i = 0; i < ranges.length; i++) {\n if (!ranges[i].empty()) { continue }\n var cur = ranges[i].head, line = getLine(cm.doc, cur.line).text;\n if (line) {\n if (cur.ch == line.length) { cur = new Pos(cur.line, cur.ch - 1); }\n if (cur.ch > 0) {\n cur = new Pos(cur.line, cur.ch + 1);\n cm.replaceRange(line.charAt(cur.ch - 1) + line.charAt(cur.ch - 2),\n Pos(cur.line, cur.ch - 2), cur, \"+transpose\");\n } else if (cur.line > cm.doc.first) {\n var prev = getLine(cm.doc, cur.line - 1).text;\n if (prev) {\n cur = new Pos(cur.line, 1);\n cm.replaceRange(line.charAt(0) + cm.doc.lineSeparator() +\n prev.charAt(prev.length - 1),\n Pos(cur.line - 1, prev.length - 1), cur, \"+transpose\");\n }\n }\n }\n newSel.push(new Range(cur, cur));\n }\n cm.setSelections(newSel);\n }); },\n newlineAndIndent: function (cm) { return runInOp(cm, function () {\n var sels = cm.listSelections();\n for (var i = sels.length - 1; i >= 0; i--)\n { cm.replaceRange(cm.doc.lineSeparator(), sels[i].anchor, sels[i].head, \"+input\"); }\n sels = cm.listSelections();\n for (var i$1 = 0; i$1 < sels.length; i$1++)\n { cm.indentLine(sels[i$1].from().line, null, true); }\n ensureCursorVisible(cm);\n }); },\n openLine: function (cm) { return cm.replaceSelection(\"\\n\", \"start\"); },\n toggleOverwrite: function (cm) { return cm.toggleOverwrite(); }\n };\n\n\n function lineStart(cm, lineN) {\n var line = getLine(cm.doc, lineN);\n var visual = visualLine(line);\n if (visual != line) { lineN = lineNo(visual); }\n return endOfLine(true, cm, visual, lineN, 1)\n }\n function lineEnd(cm, lineN) {\n var line = getLine(cm.doc, lineN);\n var visual = visualLineEnd(line);\n if (visual != line) { lineN = lineNo(visual); }\n return endOfLine(true, cm, line, lineN, -1)\n }\n function lineStartSmart(cm, pos) {\n var start = lineStart(cm, pos.line);\n var line = getLine(cm.doc, start.line);\n var order = getOrder(line, cm.doc.direction);\n if (!order || order[0].level == 0) {\n var firstNonWS = Math.max(start.ch, line.text.search(/\\S/));\n var inWS = pos.line == start.line && pos.ch <= firstNonWS && pos.ch;\n return Pos(start.line, inWS ? 0 : firstNonWS, start.sticky)\n }\n return start\n }\n\n // Run a handler that was bound to a key.\n function doHandleBinding(cm, bound, dropShift) {\n if (typeof bound == \"string\") {\n bound = commands[bound];\n if (!bound) { return false }\n }\n // Ensure previous input has been read, so that the handler sees a\n // consistent view of the document\n cm.display.input.ensurePolled();\n var prevShift = cm.display.shift, done = false;\n try {\n if (cm.isReadOnly()) { cm.state.suppressEdits = true; }\n if (dropShift) { cm.display.shift = false; }\n done = bound(cm) != Pass;\n } finally {\n cm.display.shift = prevShift;\n cm.state.suppressEdits = false;\n }\n return done\n }\n\n function lookupKeyForEditor(cm, name, handle) {\n for (var i = 0; i < cm.state.keyMaps.length; i++) {\n var result = lookupKey(name, cm.state.keyMaps[i], handle, cm);\n if (result) { return result }\n }\n return (cm.options.extraKeys && lookupKey(name, cm.options.extraKeys, handle, cm))\n || lookupKey(name, cm.options.keyMap, handle, cm)\n }\n\n // Note that, despite the name, this function is also used to check\n // for bound mouse clicks.\n\n var stopSeq = new Delayed;\n\n function dispatchKey(cm, name, e, handle) {\n var seq = cm.state.keySeq;\n if (seq) {\n if (isModifierKey(name)) { return \"handled\" }\n if (/\\'$/.test(name))\n { cm.state.keySeq = null; }\n else\n { stopSeq.set(50, function () {\n if (cm.state.keySeq == seq) {\n cm.state.keySeq = null;\n cm.display.input.reset();\n }\n }); }\n if (dispatchKeyInner(cm, seq + \" \" + name, e, handle)) { return true }\n }\n return dispatchKeyInner(cm, name, e, handle)\n }\n\n function dispatchKeyInner(cm, name, e, handle) {\n var result = lookupKeyForEditor(cm, name, handle);\n\n if (result == \"multi\")\n { cm.state.keySeq = name; }\n if (result == \"handled\")\n { signalLater(cm, \"keyHandled\", cm, name, e); }\n\n if (result == \"handled\" || result == \"multi\") {\n e_preventDefault(e);\n restartBlink(cm);\n }\n\n return !!result\n }\n\n // Handle a key from the keydown event.\n function handleKeyBinding(cm, e) {\n var name = keyName(e, true);\n if (!name) { return false }\n\n if (e.shiftKey && !cm.state.keySeq) {\n // First try to resolve full name (including 'Shift-'). Failing\n // that, see if there is a cursor-motion command (starting with\n // 'go') bound to the keyname without 'Shift-'.\n return dispatchKey(cm, \"Shift-\" + name, e, function (b) { return doHandleBinding(cm, b, true); })\n || dispatchKey(cm, name, e, function (b) {\n if (typeof b == \"string\" ? /^go[A-Z]/.test(b) : b.motion)\n { return doHandleBinding(cm, b) }\n })\n } else {\n return dispatchKey(cm, name, e, function (b) { return doHandleBinding(cm, b); })\n }\n }\n\n // Handle a key from the keypress event\n function handleCharBinding(cm, e, ch) {\n return dispatchKey(cm, \"'\" + ch + \"'\", e, function (b) { return doHandleBinding(cm, b, true); })\n }\n\n var lastStoppedKey = null;\n function onKeyDown(e) {\n var cm = this;\n if (e.target && e.target != cm.display.input.getField()) { return }\n cm.curOp.focus = activeElt();\n if (signalDOMEvent(cm, e)) { return }\n // IE does strange things with escape.\n if (ie && ie_version < 11 && e.keyCode == 27) { e.returnValue = false; }\n var code = e.keyCode;\n cm.display.shift = code == 16 || e.shiftKey;\n var handled = handleKeyBinding(cm, e);\n if (presto) {\n lastStoppedKey = handled ? code : null;\n // Opera has no cut event... we try to at least catch the key combo\n if (!handled && code == 88 && !hasCopyEvent && (mac ? e.metaKey : e.ctrlKey))\n { cm.replaceSelection(\"\", null, \"cut\"); }\n }\n if (gecko && !mac && !handled && code == 46 && e.shiftKey && !e.ctrlKey && document.execCommand)\n { document.execCommand(\"cut\"); }\n\n // Turn mouse into crosshair when Alt is held on Mac.\n if (code == 18 && !/\\bCodeMirror-crosshair\\b/.test(cm.display.lineDiv.className))\n { showCrossHair(cm); }\n }\n\n function showCrossHair(cm) {\n var lineDiv = cm.display.lineDiv;\n addClass(lineDiv, \"CodeMirror-crosshair\");\n\n function up(e) {\n if (e.keyCode == 18 || !e.altKey) {\n rmClass(lineDiv, \"CodeMirror-crosshair\");\n off(document, \"keyup\", up);\n off(document, \"mouseover\", up);\n }\n }\n on(document, \"keyup\", up);\n on(document, \"mouseover\", up);\n }\n\n function onKeyUp(e) {\n if (e.keyCode == 16) { this.doc.sel.shift = false; }\n signalDOMEvent(this, e);\n }\n\n function onKeyPress(e) {\n var cm = this;\n if (e.target && e.target != cm.display.input.getField()) { return }\n if (eventInWidget(cm.display, e) || signalDOMEvent(cm, e) || e.ctrlKey && !e.altKey || mac && e.metaKey) { return }\n var keyCode = e.keyCode, charCode = e.charCode;\n if (presto && keyCode == lastStoppedKey) {lastStoppedKey = null; e_preventDefault(e); return}\n if ((presto && (!e.which || e.which < 10)) && handleKeyBinding(cm, e)) { return }\n var ch = String.fromCharCode(charCode == null ? keyCode : charCode);\n // Some browsers fire keypress events for backspace\n if (ch == \"\\x08\") { return }\n if (handleCharBinding(cm, e, ch)) { return }\n cm.display.input.onKeyPress(e);\n }\n\n var DOUBLECLICK_DELAY = 400;\n\n var PastClick = function(time, pos, button) {\n this.time = time;\n this.pos = pos;\n this.button = button;\n };\n\n PastClick.prototype.compare = function (time, pos, button) {\n return this.time + DOUBLECLICK_DELAY > time &&\n cmp(pos, this.pos) == 0 && button == this.button\n };\n\n var lastClick, lastDoubleClick;\n function clickRepeat(pos, button) {\n var now = +new Date;\n if (lastDoubleClick && lastDoubleClick.compare(now, pos, button)) {\n lastClick = lastDoubleClick = null;\n return \"triple\"\n } else if (lastClick && lastClick.compare(now, pos, button)) {\n lastDoubleClick = new PastClick(now, pos, button);\n lastClick = null;\n return \"double\"\n } else {\n lastClick = new PastClick(now, pos, button);\n lastDoubleClick = null;\n return \"single\"\n }\n }\n\n // A mouse down can be a single click, double click, triple click,\n // start of selection drag, start of text drag, new cursor\n // (ctrl-click), rectangle drag (alt-drag), or xwin\n // middle-click-paste. Or it might be a click on something we should\n // not interfere with, such as a scrollbar or widget.\n function onMouseDown(e) {\n var cm = this, display = cm.display;\n if (signalDOMEvent(cm, e) || display.activeTouch && display.input.supportsTouch()) { return }\n display.input.ensurePolled();\n display.shift = e.shiftKey;\n\n if (eventInWidget(display, e)) {\n if (!webkit) {\n // Briefly turn off draggability, to allow widgets to do\n // normal dragging things.\n display.scroller.draggable = false;\n setTimeout(function () { return display.scroller.draggable = true; }, 100);\n }\n return\n }\n if (clickInGutter(cm, e)) { return }\n var pos = posFromMouse(cm, e), button = e_button(e), repeat = pos ? clickRepeat(pos, button) : \"single\";\n window.focus();\n\n // #3261: make sure, that we're not starting a second selection\n if (button == 1 && cm.state.selectingText)\n { cm.state.selectingText(e); }\n\n if (pos && handleMappedButton(cm, button, pos, repeat, e)) { return }\n\n if (button == 1) {\n if (pos) { leftButtonDown(cm, pos, repeat, e); }\n else if (e_target(e) == display.scroller) { e_preventDefault(e); }\n } else if (button == 2) {\n if (pos) { extendSelection(cm.doc, pos); }\n setTimeout(function () { return display.input.focus(); }, 20);\n } else if (button == 3) {\n if (captureRightClick) { cm.display.input.onContextMenu(e); }\n else { delayBlurEvent(cm); }\n }\n }\n\n function handleMappedButton(cm, button, pos, repeat, event) {\n var name = \"Click\";\n if (repeat == \"double\") { name = \"Double\" + name; }\n else if (repeat == \"triple\") { name = \"Triple\" + name; }\n name = (button == 1 ? \"Left\" : button == 2 ? \"Middle\" : \"Right\") + name;\n\n return dispatchKey(cm, addModifierNames(name, event), event, function (bound) {\n if (typeof bound == \"string\") { bound = commands[bound]; }\n if (!bound) { return false }\n var done = false;\n try {\n if (cm.isReadOnly()) { cm.state.suppressEdits = true; }\n done = bound(cm, pos) != Pass;\n } finally {\n cm.state.suppressEdits = false;\n }\n return done\n })\n }\n\n function configureMouse(cm, repeat, event) {\n var option = cm.getOption(\"configureMouse\");\n var value = option ? option(cm, repeat, event) : {};\n if (value.unit == null) {\n var rect = chromeOS ? event.shiftKey && event.metaKey : event.altKey;\n value.unit = rect ? \"rectangle\" : repeat == \"single\" ? \"char\" : repeat == \"double\" ? \"word\" : \"line\";\n }\n if (value.extend == null || cm.doc.extend) { value.extend = cm.doc.extend || event.shiftKey; }\n if (value.addNew == null) { value.addNew = mac ? event.metaKey : event.ctrlKey; }\n if (value.moveOnDrag == null) { value.moveOnDrag = !(mac ? event.altKey : event.ctrlKey); }\n return value\n }\n\n function leftButtonDown(cm, pos, repeat, event) {\n if (ie) { setTimeout(bind(ensureFocus, cm), 0); }\n else { cm.curOp.focus = activeElt(); }\n\n var behavior = configureMouse(cm, repeat, event);\n\n var sel = cm.doc.sel, contained;\n if (cm.options.dragDrop && dragAndDrop && !cm.isReadOnly() &&\n repeat == \"single\" && (contained = sel.contains(pos)) > -1 &&\n (cmp((contained = sel.ranges[contained]).from(), pos) < 0 || pos.xRel > 0) &&\n (cmp(contained.to(), pos) > 0 || pos.xRel < 0))\n { leftButtonStartDrag(cm, event, pos, behavior); }\n else\n { leftButtonSelect(cm, event, pos, behavior); }\n }\n\n // Start a text drag. When it ends, see if any dragging actually\n // happen, and treat as a click if it didn't.\n function leftButtonStartDrag(cm, event, pos, behavior) {\n var display = cm.display, moved = false;\n var dragEnd = operation(cm, function (e) {\n if (webkit) { display.scroller.draggable = false; }\n cm.state.draggingText = false;\n if (cm.state.delayingBlurEvent) {\n if (cm.hasFocus()) { cm.state.delayingBlurEvent = false; }\n else { delayBlurEvent(cm); }\n }\n off(display.wrapper.ownerDocument, \"mouseup\", dragEnd);\n off(display.wrapper.ownerDocument, \"mousemove\", mouseMove);\n off(display.scroller, \"dragstart\", dragStart);\n off(display.scroller, \"drop\", dragEnd);\n if (!moved) {\n e_preventDefault(e);\n if (!behavior.addNew)\n { extendSelection(cm.doc, pos, null, null, behavior.extend); }\n // Work around unexplainable focus problem in IE9 (#2127) and Chrome (#3081)\n if ((webkit && !safari) || ie && ie_version == 9)\n { setTimeout(function () {display.wrapper.ownerDocument.body.focus({preventScroll: true}); display.input.focus();}, 20); }\n else\n { display.input.focus(); }\n }\n });\n var mouseMove = function(e2) {\n moved = moved || Math.abs(event.clientX - e2.clientX) + Math.abs(event.clientY - e2.clientY) >= 10;\n };\n var dragStart = function () { return moved = true; };\n // Let the drag handler handle this.\n if (webkit) { display.scroller.draggable = true; }\n cm.state.draggingText = dragEnd;\n dragEnd.copy = !behavior.moveOnDrag;\n on(display.wrapper.ownerDocument, \"mouseup\", dragEnd);\n on(display.wrapper.ownerDocument, \"mousemove\", mouseMove);\n on(display.scroller, \"dragstart\", dragStart);\n on(display.scroller, \"drop\", dragEnd);\n\n cm.state.delayingBlurEvent = true;\n setTimeout(function () { return display.input.focus(); }, 20);\n // IE's approach to draggable\n if (display.scroller.dragDrop) { display.scroller.dragDrop(); }\n }\n\n function rangeForUnit(cm, pos, unit) {\n if (unit == \"char\") { return new Range(pos, pos) }\n if (unit == \"word\") { return cm.findWordAt(pos) }\n if (unit == \"line\") { return new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0))) }\n var result = unit(cm, pos);\n return new Range(result.from, result.to)\n }\n\n // Normal selection, as opposed to text dragging.\n function leftButtonSelect(cm, event, start, behavior) {\n if (ie) { delayBlurEvent(cm); }\n var display = cm.display, doc = cm.doc;\n e_preventDefault(event);\n\n var ourRange, ourIndex, startSel = doc.sel, ranges = startSel.ranges;\n if (behavior.addNew && !behavior.extend) {\n ourIndex = doc.sel.contains(start);\n if (ourIndex > -1)\n { ourRange = ranges[ourIndex]; }\n else\n { ourRange = new Range(start, start); }\n } else {\n ourRange = doc.sel.primary();\n ourIndex = doc.sel.primIndex;\n }\n\n if (behavior.unit == \"rectangle\") {\n if (!behavior.addNew) { ourRange = new Range(start, start); }\n start = posFromMouse(cm, event, true, true);\n ourIndex = -1;\n } else {\n var range = rangeForUnit(cm, start, behavior.unit);\n if (behavior.extend)\n { ourRange = extendRange(ourRange, range.anchor, range.head, behavior.extend); }\n else\n { ourRange = range; }\n }\n\n if (!behavior.addNew) {\n ourIndex = 0;\n setSelection(doc, new Selection([ourRange], 0), sel_mouse);\n startSel = doc.sel;\n } else if (ourIndex == -1) {\n ourIndex = ranges.length;\n setSelection(doc, normalizeSelection(cm, ranges.concat([ourRange]), ourIndex),\n {scroll: false, origin: \"*mouse\"});\n } else if (ranges.length > 1 && ranges[ourIndex].empty() && behavior.unit == \"char\" && !behavior.extend) {\n setSelection(doc, normalizeSelection(cm, ranges.slice(0, ourIndex).concat(ranges.slice(ourIndex + 1)), 0),\n {scroll: false, origin: \"*mouse\"});\n startSel = doc.sel;\n } else {\n replaceOneSelection(doc, ourIndex, ourRange, sel_mouse);\n }\n\n var lastPos = start;\n function extendTo(pos) {\n if (cmp(lastPos, pos) == 0) { return }\n lastPos = pos;\n\n if (behavior.unit == \"rectangle\") {\n var ranges = [], tabSize = cm.options.tabSize;\n var startCol = countColumn(getLine(doc, start.line).text, start.ch, tabSize);\n var posCol = countColumn(getLine(doc, pos.line).text, pos.ch, tabSize);\n var left = Math.min(startCol, posCol), right = Math.max(startCol, posCol);\n for (var line = Math.min(start.line, pos.line), end = Math.min(cm.lastLine(), Math.max(start.line, pos.line));\n line <= end; line++) {\n var text = getLine(doc, line).text, leftPos = findColumn(text, left, tabSize);\n if (left == right)\n { ranges.push(new Range(Pos(line, leftPos), Pos(line, leftPos))); }\n else if (text.length > leftPos)\n { ranges.push(new Range(Pos(line, leftPos), Pos(line, findColumn(text, right, tabSize)))); }\n }\n if (!ranges.length) { ranges.push(new Range(start, start)); }\n setSelection(doc, normalizeSelection(cm, startSel.ranges.slice(0, ourIndex).concat(ranges), ourIndex),\n {origin: \"*mouse\", scroll: false});\n cm.scrollIntoView(pos);\n } else {\n var oldRange = ourRange;\n var range = rangeForUnit(cm, pos, behavior.unit);\n var anchor = oldRange.anchor, head;\n if (cmp(range.anchor, anchor) > 0) {\n head = range.head;\n anchor = minPos(oldRange.from(), range.anchor);\n } else {\n head = range.anchor;\n anchor = maxPos(oldRange.to(), range.head);\n }\n var ranges$1 = startSel.ranges.slice(0);\n ranges$1[ourIndex] = bidiSimplify(cm, new Range(clipPos(doc, anchor), head));\n setSelection(doc, normalizeSelection(cm, ranges$1, ourIndex), sel_mouse);\n }\n }\n\n var editorSize = display.wrapper.getBoundingClientRect();\n // Used to ensure timeout re-tries don't fire when another extend\n // happened in the meantime (clearTimeout isn't reliable -- at\n // least on Chrome, the timeouts still happen even when cleared,\n // if the clear happens after their scheduled firing time).\n var counter = 0;\n\n function extend(e) {\n var curCount = ++counter;\n var cur = posFromMouse(cm, e, true, behavior.unit == \"rectangle\");\n if (!cur) { return }\n if (cmp(cur, lastPos) != 0) {\n cm.curOp.focus = activeElt();\n extendTo(cur);\n var visible = visibleLines(display, doc);\n if (cur.line >= visible.to || cur.line < visible.from)\n { setTimeout(operation(cm, function () {if (counter == curCount) { extend(e); }}), 150); }\n } else {\n var outside = e.clientY < editorSize.top ? -20 : e.clientY > editorSize.bottom ? 20 : 0;\n if (outside) { setTimeout(operation(cm, function () {\n if (counter != curCount) { return }\n display.scroller.scrollTop += outside;\n extend(e);\n }), 50); }\n }\n }\n\n function done(e) {\n cm.state.selectingText = false;\n counter = Infinity;\n // If e is null or undefined we interpret this as someone trying\n // to explicitly cancel the selection rather than the user\n // letting go of the mouse button.\n if (e) {\n e_preventDefault(e);\n display.input.focus();\n }\n off(display.wrapper.ownerDocument, \"mousemove\", move);\n off(display.wrapper.ownerDocument, \"mouseup\", up);\n doc.history.lastSelOrigin = null;\n }\n\n var move = operation(cm, function (e) {\n if (e.buttons === 0 || !e_button(e)) { done(e); }\n else { extend(e); }\n });\n var up = operation(cm, done);\n cm.state.selectingText = up;\n on(display.wrapper.ownerDocument, \"mousemove\", move);\n on(display.wrapper.ownerDocument, \"mouseup\", up);\n }\n\n // Used when mouse-selecting to adjust the anchor to the proper side\n // of a bidi jump depending on the visual position of the head.\n function bidiSimplify(cm, range) {\n var anchor = range.anchor;\n var head = range.head;\n var anchorLine = getLine(cm.doc, anchor.line);\n if (cmp(anchor, head) == 0 && anchor.sticky == head.sticky) { return range }\n var order = getOrder(anchorLine);\n if (!order) { return range }\n var index = getBidiPartAt(order, anchor.ch, anchor.sticky), part = order[index];\n if (part.from != anchor.ch && part.to != anchor.ch) { return range }\n var boundary = index + ((part.from == anchor.ch) == (part.level != 1) ? 0 : 1);\n if (boundary == 0 || boundary == order.length) { return range }\n\n // Compute the relative visual position of the head compared to the\n // anchor (<0 is to the left, >0 to the right)\n var leftSide;\n if (head.line != anchor.line) {\n leftSide = (head.line - anchor.line) * (cm.doc.direction == \"ltr\" ? 1 : -1) > 0;\n } else {\n var headIndex = getBidiPartAt(order, head.ch, head.sticky);\n var dir = headIndex - index || (head.ch - anchor.ch) * (part.level == 1 ? -1 : 1);\n if (headIndex == boundary - 1 || headIndex == boundary)\n { leftSide = dir < 0; }\n else\n { leftSide = dir > 0; }\n }\n\n var usePart = order[boundary + (leftSide ? -1 : 0)];\n var from = leftSide == (usePart.level == 1);\n var ch = from ? usePart.from : usePart.to, sticky = from ? \"after\" : \"before\";\n return anchor.ch == ch && anchor.sticky == sticky ? range : new Range(new Pos(anchor.line, ch, sticky), head)\n }\n\n\n // Determines whether an event happened in the gutter, and fires the\n // handlers for the corresponding event.\n function gutterEvent(cm, e, type, prevent) {\n var mX, mY;\n if (e.touches) {\n mX = e.touches[0].clientX;\n mY = e.touches[0].clientY;\n } else {\n try { mX = e.clientX; mY = e.clientY; }\n catch(e$1) { return false }\n }\n if (mX >= Math.floor(cm.display.gutters.getBoundingClientRect().right)) { return false }\n if (prevent) { e_preventDefault(e); }\n\n var display = cm.display;\n var lineBox = display.lineDiv.getBoundingClientRect();\n\n if (mY > lineBox.bottom || !hasHandler(cm, type)) { return e_defaultPrevented(e) }\n mY -= lineBox.top - display.viewOffset;\n\n for (var i = 0; i < cm.display.gutterSpecs.length; ++i) {\n var g = display.gutters.childNodes[i];\n if (g && g.getBoundingClientRect().right >= mX) {\n var line = lineAtHeight(cm.doc, mY);\n var gutter = cm.display.gutterSpecs[i];\n signal(cm, type, cm, line, gutter.className, e);\n return e_defaultPrevented(e)\n }\n }\n }\n\n function clickInGutter(cm, e) {\n return gutterEvent(cm, e, \"gutterClick\", true)\n }\n\n // CONTEXT MENU HANDLING\n\n // To make the context menu work, we need to briefly unhide the\n // textarea (making it as unobtrusive as possible) to let the\n // right-click take effect on it.\n function onContextMenu(cm, e) {\n if (eventInWidget(cm.display, e) || contextMenuInGutter(cm, e)) { return }\n if (signalDOMEvent(cm, e, \"contextmenu\")) { return }\n if (!captureRightClick) { cm.display.input.onContextMenu(e); }\n }\n\n function contextMenuInGutter(cm, e) {\n if (!hasHandler(cm, \"gutterContextMenu\")) { return false }\n return gutterEvent(cm, e, \"gutterContextMenu\", false)\n }\n\n function themeChanged(cm) {\n cm.display.wrapper.className = cm.display.wrapper.className.replace(/\\s*cm-s-\\S+/g, \"\") +\n cm.options.theme.replace(/(^|\\s)\\s*/g, \" cm-s-\");\n clearCaches(cm);\n }\n\n var Init = {toString: function(){return \"CodeMirror.Init\"}};\n\n var defaults = {};\n var optionHandlers = {};\n\n function defineOptions(CodeMirror) {\n var optionHandlers = CodeMirror.optionHandlers;\n\n function option(name, deflt, handle, notOnInit) {\n CodeMirror.defaults[name] = deflt;\n if (handle) { optionHandlers[name] =\n notOnInit ? function (cm, val, old) {if (old != Init) { handle(cm, val, old); }} : handle; }\n }\n\n CodeMirror.defineOption = option;\n\n // Passed to option handlers when there is no old value.\n CodeMirror.Init = Init;\n\n // These two are, on init, called from the constructor because they\n // have to be initialized before the editor can start at all.\n option(\"value\", \"\", function (cm, val) { return cm.setValue(val); }, true);\n option(\"mode\", null, function (cm, val) {\n cm.doc.modeOption = val;\n loadMode(cm);\n }, true);\n\n option(\"indentUnit\", 2, loadMode, true);\n option(\"indentWithTabs\", false);\n option(\"smartIndent\", true);\n option(\"tabSize\", 4, function (cm) {\n resetModeState(cm);\n clearCaches(cm);\n regChange(cm);\n }, true);\n\n option(\"lineSeparator\", null, function (cm, val) {\n cm.doc.lineSep = val;\n if (!val) { return }\n var newBreaks = [], lineNo = cm.doc.first;\n cm.doc.iter(function (line) {\n for (var pos = 0;;) {\n var found = line.text.indexOf(val, pos);\n if (found == -1) { break }\n pos = found + val.length;\n newBreaks.push(Pos(lineNo, found));\n }\n lineNo++;\n });\n for (var i = newBreaks.length - 1; i >= 0; i--)\n { replaceRange(cm.doc, val, newBreaks[i], Pos(newBreaks[i].line, newBreaks[i].ch + val.length)); }\n });\n option(\"specialChars\", /[\\u0000-\\u001f\\u007f-\\u009f\\u00ad\\u061c\\u200b\\u200e\\u200f\\u2028\\u2029\\ufeff\\ufff9-\\ufffc]/g, function (cm, val, old) {\n cm.state.specialChars = new RegExp(val.source + (val.test(\"\\t\") ? \"\" : \"|\\t\"), \"g\");\n if (old != Init) { cm.refresh(); }\n });\n option(\"specialCharPlaceholder\", defaultSpecialCharPlaceholder, function (cm) { return cm.refresh(); }, true);\n option(\"electricChars\", true);\n option(\"inputStyle\", mobile ? \"contenteditable\" : \"textarea\", function () {\n throw new Error(\"inputStyle can not (yet) be changed in a running editor\") // FIXME\n }, true);\n option(\"spellcheck\", false, function (cm, val) { return cm.getInputField().spellcheck = val; }, true);\n option(\"autocorrect\", false, function (cm, val) { return cm.getInputField().autocorrect = val; }, true);\n option(\"autocapitalize\", false, function (cm, val) { return cm.getInputField().autocapitalize = val; }, true);\n option(\"rtlMoveVisually\", !windows);\n option(\"wholeLineUpdateBefore\", true);\n\n option(\"theme\", \"default\", function (cm) {\n themeChanged(cm);\n updateGutters(cm);\n }, true);\n option(\"keyMap\", \"default\", function (cm, val, old) {\n var next = getKeyMap(val);\n var prev = old != Init && getKeyMap(old);\n if (prev && prev.detach) { prev.detach(cm, next); }\n if (next.attach) { next.attach(cm, prev || null); }\n });\n option(\"extraKeys\", null);\n option(\"configureMouse\", null);\n\n option(\"lineWrapping\", false, wrappingChanged, true);\n option(\"gutters\", [], function (cm, val) {\n cm.display.gutterSpecs = getGutters(val, cm.options.lineNumbers);\n updateGutters(cm);\n }, true);\n option(\"fixedGutter\", true, function (cm, val) {\n cm.display.gutters.style.left = val ? compensateForHScroll(cm.display) + \"px\" : \"0\";\n cm.refresh();\n }, true);\n option(\"coverGutterNextToScrollbar\", false, function (cm) { return updateScrollbars(cm); }, true);\n option(\"scrollbarStyle\", \"native\", function (cm) {\n initScrollbars(cm);\n updateScrollbars(cm);\n cm.display.scrollbars.setScrollTop(cm.doc.scrollTop);\n cm.display.scrollbars.setScrollLeft(cm.doc.scrollLeft);\n }, true);\n option(\"lineNumbers\", false, function (cm, val) {\n cm.display.gutterSpecs = getGutters(cm.options.gutters, val);\n updateGutters(cm);\n }, true);\n option(\"firstLineNumber\", 1, updateGutters, true);\n option(\"lineNumberFormatter\", function (integer) { return integer; }, updateGutters, true);\n option(\"showCursorWhenSelecting\", false, updateSelection, true);\n\n option(\"resetSelectionOnContextMenu\", true);\n option(\"lineWiseCopyCut\", true);\n option(\"pasteLinesPerSelection\", true);\n option(\"selectionsMayTouch\", false);\n\n option(\"readOnly\", false, function (cm, val) {\n if (val == \"nocursor\") {\n onBlur(cm);\n cm.display.input.blur();\n }\n cm.display.input.readOnlyChanged(val);\n });\n\n option(\"screenReaderLabel\", null, function (cm, val) {\n val = (val === '') ? null : val;\n cm.display.input.screenReaderLabelChanged(val);\n });\n\n option(\"disableInput\", false, function (cm, val) {if (!val) { cm.display.input.reset(); }}, true);\n option(\"dragDrop\", true, dragDropChanged);\n option(\"allowDropFileTypes\", null);\n\n option(\"cursorBlinkRate\", 530);\n option(\"cursorScrollMargin\", 0);\n option(\"cursorHeight\", 1, updateSelection, true);\n option(\"singleCursorHeightPerLine\", true, updateSelection, true);\n option(\"workTime\", 100);\n option(\"workDelay\", 100);\n option(\"flattenSpans\", true, resetModeState, true);\n option(\"addModeClass\", false, resetModeState, true);\n option(\"pollInterval\", 100);\n option(\"undoDepth\", 200, function (cm, val) { return cm.doc.history.undoDepth = val; });\n option(\"historyEventDelay\", 1250);\n option(\"viewportMargin\", 10, function (cm) { return cm.refresh(); }, true);\n option(\"maxHighlightLength\", 10000, resetModeState, true);\n option(\"moveInputWithCursor\", true, function (cm, val) {\n if (!val) { cm.display.input.resetPosition(); }\n });\n\n option(\"tabindex\", null, function (cm, val) { return cm.display.input.getField().tabIndex = val || \"\"; });\n option(\"autofocus\", null);\n option(\"direction\", \"ltr\", function (cm, val) { return cm.doc.setDirection(val); }, true);\n option(\"phrases\", null);\n }\n\n function dragDropChanged(cm, value, old) {\n var wasOn = old && old != Init;\n if (!value != !wasOn) {\n var funcs = cm.display.dragFunctions;\n var toggle = value ? on : off;\n toggle(cm.display.scroller, \"dragstart\", funcs.start);\n toggle(cm.display.scroller, \"dragenter\", funcs.enter);\n toggle(cm.display.scroller, \"dragover\", funcs.over);\n toggle(cm.display.scroller, \"dragleave\", funcs.leave);\n toggle(cm.display.scroller, \"drop\", funcs.drop);\n }\n }\n\n function wrappingChanged(cm) {\n if (cm.options.lineWrapping) {\n addClass(cm.display.wrapper, \"CodeMirror-wrap\");\n cm.display.sizer.style.minWidth = \"\";\n cm.display.sizerWidth = null;\n } else {\n rmClass(cm.display.wrapper, \"CodeMirror-wrap\");\n findMaxLine(cm);\n }\n estimateLineHeights(cm);\n regChange(cm);\n clearCaches(cm);\n setTimeout(function () { return updateScrollbars(cm); }, 100);\n }\n\n // A CodeMirror instance represents an editor. This is the object\n // that user code is usually dealing with.\n\n function CodeMirror(place, options) {\n var this$1 = this;\n\n if (!(this instanceof CodeMirror)) { return new CodeMirror(place, options) }\n\n this.options = options = options ? copyObj(options) : {};\n // Determine effective options based on given values and defaults.\n copyObj(defaults, options, false);\n\n var doc = options.value;\n if (typeof doc == \"string\") { doc = new Doc(doc, options.mode, null, options.lineSeparator, options.direction); }\n else if (options.mode) { doc.modeOption = options.mode; }\n this.doc = doc;\n\n var input = new CodeMirror.inputStyles[options.inputStyle](this);\n var display = this.display = new Display(place, doc, input, options);\n display.wrapper.CodeMirror = this;\n themeChanged(this);\n if (options.lineWrapping)\n { this.display.wrapper.className += \" CodeMirror-wrap\"; }\n initScrollbars(this);\n\n this.state = {\n keyMaps: [], // stores maps added by addKeyMap\n overlays: [], // highlighting overlays, as added by addOverlay\n modeGen: 0, // bumped when mode/overlay changes, used to invalidate highlighting info\n overwrite: false,\n delayingBlurEvent: false,\n focused: false,\n suppressEdits: false, // used to disable editing during key handlers when in readOnly mode\n pasteIncoming: -1, cutIncoming: -1, // help recognize paste/cut edits in input.poll\n selectingText: false,\n draggingText: false,\n highlight: new Delayed(), // stores highlight worker timeout\n keySeq: null, // Unfinished key sequence\n specialChars: null\n };\n\n if (options.autofocus && !mobile) { display.input.focus(); }\n\n // Override magic textarea content restore that IE sometimes does\n // on our hidden textarea on reload\n if (ie && ie_version < 11) { setTimeout(function () { return this$1.display.input.reset(true); }, 20); }\n\n registerEventHandlers(this);\n ensureGlobalHandlers();\n\n startOperation(this);\n this.curOp.forceUpdate = true;\n attachDoc(this, doc);\n\n if ((options.autofocus && !mobile) || this.hasFocus())\n { setTimeout(function () {\n if (this$1.hasFocus() && !this$1.state.focused) { onFocus(this$1); }\n }, 20); }\n else\n { onBlur(this); }\n\n for (var opt in optionHandlers) { if (optionHandlers.hasOwnProperty(opt))\n { optionHandlers[opt](this, options[opt], Init); } }\n maybeUpdateLineNumberWidth(this);\n if (options.finishInit) { options.finishInit(this); }\n for (var i = 0; i < initHooks.length; ++i) { initHooks[i](this); }\n endOperation(this);\n // Suppress optimizelegibility in Webkit, since it breaks text\n // measuring on line wrapping boundaries.\n if (webkit && options.lineWrapping &&\n getComputedStyle(display.lineDiv).textRendering == \"optimizelegibility\")\n { display.lineDiv.style.textRendering = \"auto\"; }\n }\n\n // The default configuration options.\n CodeMirror.defaults = defaults;\n // Functions to run when options are changed.\n CodeMirror.optionHandlers = optionHandlers;\n\n // Attach the necessary event handlers when initializing the editor\n function registerEventHandlers(cm) {\n var d = cm.display;\n on(d.scroller, \"mousedown\", operation(cm, onMouseDown));\n // Older IE's will not fire a second mousedown for a double click\n if (ie && ie_version < 11)\n { on(d.scroller, \"dblclick\", operation(cm, function (e) {\n if (signalDOMEvent(cm, e)) { return }\n var pos = posFromMouse(cm, e);\n if (!pos || clickInGutter(cm, e) || eventInWidget(cm.display, e)) { return }\n e_preventDefault(e);\n var word = cm.findWordAt(pos);\n extendSelection(cm.doc, word.anchor, word.head);\n })); }\n else\n { on(d.scroller, \"dblclick\", function (e) { return signalDOMEvent(cm, e) || e_preventDefault(e); }); }\n // Some browsers fire contextmenu *after* opening the menu, at\n // which point we can't mess with it anymore. Context menu is\n // handled in onMouseDown for these browsers.\n on(d.scroller, \"contextmenu\", function (e) { return onContextMenu(cm, e); });\n on(d.input.getField(), \"contextmenu\", function (e) {\n if (!d.scroller.contains(e.target)) { onContextMenu(cm, e); }\n });\n\n // Used to suppress mouse event handling when a touch happens\n var touchFinished, prevTouch = {end: 0};\n function finishTouch() {\n if (d.activeTouch) {\n touchFinished = setTimeout(function () { return d.activeTouch = null; }, 1000);\n prevTouch = d.activeTouch;\n prevTouch.end = +new Date;\n }\n }\n function isMouseLikeTouchEvent(e) {\n if (e.touches.length != 1) { return false }\n var touch = e.touches[0];\n return touch.radiusX <= 1 && touch.radiusY <= 1\n }\n function farAway(touch, other) {\n if (other.left == null) { return true }\n var dx = other.left - touch.left, dy = other.top - touch.top;\n return dx * dx + dy * dy > 20 * 20\n }\n on(d.scroller, \"touchstart\", function (e) {\n if (!signalDOMEvent(cm, e) && !isMouseLikeTouchEvent(e) && !clickInGutter(cm, e)) {\n d.input.ensurePolled();\n clearTimeout(touchFinished);\n var now = +new Date;\n d.activeTouch = {start: now, moved: false,\n prev: now - prevTouch.end <= 300 ? prevTouch : null};\n if (e.touches.length == 1) {\n d.activeTouch.left = e.touches[0].pageX;\n d.activeTouch.top = e.touches[0].pageY;\n }\n }\n });\n on(d.scroller, \"touchmove\", function () {\n if (d.activeTouch) { d.activeTouch.moved = true; }\n });\n on(d.scroller, \"touchend\", function (e) {\n var touch = d.activeTouch;\n if (touch && !eventInWidget(d, e) && touch.left != null &&\n !touch.moved && new Date - touch.start < 300) {\n var pos = cm.coordsChar(d.activeTouch, \"page\"), range;\n if (!touch.prev || farAway(touch, touch.prev)) // Single tap\n { range = new Range(pos, pos); }\n else if (!touch.prev.prev || farAway(touch, touch.prev.prev)) // Double tap\n { range = cm.findWordAt(pos); }\n else // Triple tap\n { range = new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0))); }\n cm.setSelection(range.anchor, range.head);\n cm.focus();\n e_preventDefault(e);\n }\n finishTouch();\n });\n on(d.scroller, \"touchcancel\", finishTouch);\n\n // Sync scrolling between fake scrollbars and real scrollable\n // area, ensure viewport is updated when scrolling.\n on(d.scroller, \"scroll\", function () {\n if (d.scroller.clientHeight) {\n updateScrollTop(cm, d.scroller.scrollTop);\n setScrollLeft(cm, d.scroller.scrollLeft, true);\n signal(cm, \"scroll\", cm);\n }\n });\n\n // Listen to wheel events in order to try and update the viewport on time.\n on(d.scroller, \"mousewheel\", function (e) { return onScrollWheel(cm, e); });\n on(d.scroller, \"DOMMouseScroll\", function (e) { return onScrollWheel(cm, e); });\n\n // Prevent wrapper from ever scrolling\n on(d.wrapper, \"scroll\", function () { return d.wrapper.scrollTop = d.wrapper.scrollLeft = 0; });\n\n d.dragFunctions = {\n enter: function (e) {if (!signalDOMEvent(cm, e)) { e_stop(e); }},\n over: function (e) {if (!signalDOMEvent(cm, e)) { onDragOver(cm, e); e_stop(e); }},\n start: function (e) { return onDragStart(cm, e); },\n drop: operation(cm, onDrop),\n leave: function (e) {if (!signalDOMEvent(cm, e)) { clearDragCursor(cm); }}\n };\n\n var inp = d.input.getField();\n on(inp, \"keyup\", function (e) { return onKeyUp.call(cm, e); });\n on(inp, \"keydown\", operation(cm, onKeyDown));\n on(inp, \"keypress\", operation(cm, onKeyPress));\n on(inp, \"focus\", function (e) { return onFocus(cm, e); });\n on(inp, \"blur\", function (e) { return onBlur(cm, e); });\n }\n\n var initHooks = [];\n CodeMirror.defineInitHook = function (f) { return initHooks.push(f); };\n\n // Indent the given line. The how parameter can be \"smart\",\n // \"add\"/null, \"subtract\", or \"prev\". When aggressive is false\n // (typically set to true for forced single-line indents), empty\n // lines are not indented, and places where the mode returns Pass\n // are left alone.\n function indentLine(cm, n, how, aggressive) {\n var doc = cm.doc, state;\n if (how == null) { how = \"add\"; }\n if (how == \"smart\") {\n // Fall back to \"prev\" when the mode doesn't have an indentation\n // method.\n if (!doc.mode.indent) { how = \"prev\"; }\n else { state = getContextBefore(cm, n).state; }\n }\n\n var tabSize = cm.options.tabSize;\n var line = getLine(doc, n), curSpace = countColumn(line.text, null, tabSize);\n if (line.stateAfter) { line.stateAfter = null; }\n var curSpaceString = line.text.match(/^\\s*/)[0], indentation;\n if (!aggressive && !/\\S/.test(line.text)) {\n indentation = 0;\n how = \"not\";\n } else if (how == \"smart\") {\n indentation = doc.mode.indent(state, line.text.slice(curSpaceString.length), line.text);\n if (indentation == Pass || indentation > 150) {\n if (!aggressive) { return }\n how = \"prev\";\n }\n }\n if (how == \"prev\") {\n if (n > doc.first) { indentation = countColumn(getLine(doc, n-1).text, null, tabSize); }\n else { indentation = 0; }\n } else if (how == \"add\") {\n indentation = curSpace + cm.options.indentUnit;\n } else if (how == \"subtract\") {\n indentation = curSpace - cm.options.indentUnit;\n } else if (typeof how == \"number\") {\n indentation = curSpace + how;\n }\n indentation = Math.max(0, indentation);\n\n var indentString = \"\", pos = 0;\n if (cm.options.indentWithTabs)\n { for (var i = Math.floor(indentation / tabSize); i; --i) {pos += tabSize; indentString += \"\\t\";} }\n if (pos < indentation) { indentString += spaceStr(indentation - pos); }\n\n if (indentString != curSpaceString) {\n replaceRange(doc, indentString, Pos(n, 0), Pos(n, curSpaceString.length), \"+input\");\n line.stateAfter = null;\n return true\n } else {\n // Ensure that, if the cursor was in the whitespace at the start\n // of the line, it is moved to the end of that space.\n for (var i$1 = 0; i$1 < doc.sel.ranges.length; i$1++) {\n var range = doc.sel.ranges[i$1];\n if (range.head.line == n && range.head.ch < curSpaceString.length) {\n var pos$1 = Pos(n, curSpaceString.length);\n replaceOneSelection(doc, i$1, new Range(pos$1, pos$1));\n break\n }\n }\n }\n }\n\n // This will be set to a {lineWise: bool, text: [string]} object, so\n // that, when pasting, we know what kind of selections the copied\n // text was made out of.\n var lastCopied = null;\n\n function setLastCopied(newLastCopied) {\n lastCopied = newLastCopied;\n }\n\n function applyTextInput(cm, inserted, deleted, sel, origin) {\n var doc = cm.doc;\n cm.display.shift = false;\n if (!sel) { sel = doc.sel; }\n\n var recent = +new Date - 200;\n var paste = origin == \"paste\" || cm.state.pasteIncoming > recent;\n var textLines = splitLinesAuto(inserted), multiPaste = null;\n // When pasting N lines into N selections, insert one line per selection\n if (paste && sel.ranges.length > 1) {\n if (lastCopied && lastCopied.text.join(\"\\n\") == inserted) {\n if (sel.ranges.length % lastCopied.text.length == 0) {\n multiPaste = [];\n for (var i = 0; i < lastCopied.text.length; i++)\n { multiPaste.push(doc.splitLines(lastCopied.text[i])); }\n }\n } else if (textLines.length == sel.ranges.length && cm.options.pasteLinesPerSelection) {\n multiPaste = map(textLines, function (l) { return [l]; });\n }\n }\n\n var updateInput = cm.curOp.updateInput;\n // Normal behavior is to insert the new text into every selection\n for (var i$1 = sel.ranges.length - 1; i$1 >= 0; i$1--) {\n var range = sel.ranges[i$1];\n var from = range.from(), to = range.to();\n if (range.empty()) {\n if (deleted && deleted > 0) // Handle deletion\n { from = Pos(from.line, from.ch - deleted); }\n else if (cm.state.overwrite && !paste) // Handle overwrite\n { to = Pos(to.line, Math.min(getLine(doc, to.line).text.length, to.ch + lst(textLines).length)); }\n else if (paste && lastCopied && lastCopied.lineWise && lastCopied.text.join(\"\\n\") == textLines.join(\"\\n\"))\n { from = to = Pos(from.line, 0); }\n }\n var changeEvent = {from: from, to: to, text: multiPaste ? multiPaste[i$1 % multiPaste.length] : textLines,\n origin: origin || (paste ? \"paste\" : cm.state.cutIncoming > recent ? \"cut\" : \"+input\")};\n makeChange(cm.doc, changeEvent);\n signalLater(cm, \"inputRead\", cm, changeEvent);\n }\n if (inserted && !paste)\n { triggerElectric(cm, inserted); }\n\n ensureCursorVisible(cm);\n if (cm.curOp.updateInput < 2) { cm.curOp.updateInput = updateInput; }\n cm.curOp.typing = true;\n cm.state.pasteIncoming = cm.state.cutIncoming = -1;\n }\n\n function handlePaste(e, cm) {\n var pasted = e.clipboardData && e.clipboardData.getData(\"Text\");\n if (pasted) {\n e.preventDefault();\n if (!cm.isReadOnly() && !cm.options.disableInput && cm.hasFocus())\n { runInOp(cm, function () { return applyTextInput(cm, pasted, 0, null, \"paste\"); }); }\n return true\n }\n }\n\n function triggerElectric(cm, inserted) {\n // When an 'electric' character is inserted, immediately trigger a reindent\n if (!cm.options.electricChars || !cm.options.smartIndent) { return }\n var sel = cm.doc.sel;\n\n for (var i = sel.ranges.length - 1; i >= 0; i--) {\n var range = sel.ranges[i];\n if (range.head.ch > 100 || (i && sel.ranges[i - 1].head.line == range.head.line)) { continue }\n var mode = cm.getModeAt(range.head);\n var indented = false;\n if (mode.electricChars) {\n for (var j = 0; j < mode.electricChars.length; j++)\n { if (inserted.indexOf(mode.electricChars.charAt(j)) > -1) {\n indented = indentLine(cm, range.head.line, \"smart\");\n break\n } }\n } else if (mode.electricInput) {\n if (mode.electricInput.test(getLine(cm.doc, range.head.line).text.slice(0, range.head.ch)))\n { indented = indentLine(cm, range.head.line, \"smart\"); }\n }\n if (indented) { signalLater(cm, \"electricInput\", cm, range.head.line); }\n }\n }\n\n function copyableRanges(cm) {\n var text = [], ranges = [];\n for (var i = 0; i < cm.doc.sel.ranges.length; i++) {\n var line = cm.doc.sel.ranges[i].head.line;\n var lineRange = {anchor: Pos(line, 0), head: Pos(line + 1, 0)};\n ranges.push(lineRange);\n text.push(cm.getRange(lineRange.anchor, lineRange.head));\n }\n return {text: text, ranges: ranges}\n }\n\n function disableBrowserMagic(field, spellcheck, autocorrect, autocapitalize) {\n field.setAttribute(\"autocorrect\", autocorrect ? \"\" : \"off\");\n field.setAttribute(\"autocapitalize\", autocapitalize ? \"\" : \"off\");\n field.setAttribute(\"spellcheck\", !!spellcheck);\n }\n\n function hiddenTextarea() {\n var te = elt(\"textarea\", null, null, \"position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; min-height: 1em; outline: none\");\n var div = elt(\"div\", [te], null, \"overflow: hidden; position: relative; width: 3px; height: 0px;\");\n // The textarea is kept positioned near the cursor to prevent the\n // fact that it'll be scrolled into view on input from scrolling\n // our fake cursor out of view. On webkit, when wrap=off, paste is\n // very slow. So make the area wide instead.\n if (webkit) { te.style.width = \"1000px\"; }\n else { te.setAttribute(\"wrap\", \"off\"); }\n // If border: 0; -- iOS fails to open keyboard (issue #1287)\n if (ios) { te.style.border = \"1px solid black\"; }\n disableBrowserMagic(te);\n return div\n }\n\n // The publicly visible API. Note that methodOp(f) means\n // 'wrap f in an operation, performed on its `this` parameter'.\n\n // This is not the complete set of editor methods. Most of the\n // methods defined on the Doc type are also injected into\n // CodeMirror.prototype, for backwards compatibility and\n // convenience.\n\n function addEditorMethods(CodeMirror) {\n var optionHandlers = CodeMirror.optionHandlers;\n\n var helpers = CodeMirror.helpers = {};\n\n CodeMirror.prototype = {\n constructor: CodeMirror,\n focus: function(){window.focus(); this.display.input.focus();},\n\n setOption: function(option, value) {\n var options = this.options, old = options[option];\n if (options[option] == value && option != \"mode\") { return }\n options[option] = value;\n if (optionHandlers.hasOwnProperty(option))\n { operation(this, optionHandlers[option])(this, value, old); }\n signal(this, \"optionChange\", this, option);\n },\n\n getOption: function(option) {return this.options[option]},\n getDoc: function() {return this.doc},\n\n addKeyMap: function(map, bottom) {\n this.state.keyMaps[bottom ? \"push\" : \"unshift\"](getKeyMap(map));\n },\n removeKeyMap: function(map) {\n var maps = this.state.keyMaps;\n for (var i = 0; i < maps.length; ++i)\n { if (maps[i] == map || maps[i].name == map) {\n maps.splice(i, 1);\n return true\n } }\n },\n\n addOverlay: methodOp(function(spec, options) {\n var mode = spec.token ? spec : CodeMirror.getMode(this.options, spec);\n if (mode.startState) { throw new Error(\"Overlays may not be stateful.\") }\n insertSorted(this.state.overlays,\n {mode: mode, modeSpec: spec, opaque: options && options.opaque,\n priority: (options && options.priority) || 0},\n function (overlay) { return overlay.priority; });\n this.state.modeGen++;\n regChange(this);\n }),\n removeOverlay: methodOp(function(spec) {\n var overlays = this.state.overlays;\n for (var i = 0; i < overlays.length; ++i) {\n var cur = overlays[i].modeSpec;\n if (cur == spec || typeof spec == \"string\" && cur.name == spec) {\n overlays.splice(i, 1);\n this.state.modeGen++;\n regChange(this);\n return\n }\n }\n }),\n\n indentLine: methodOp(function(n, dir, aggressive) {\n if (typeof dir != \"string\" && typeof dir != \"number\") {\n if (dir == null) { dir = this.options.smartIndent ? \"smart\" : \"prev\"; }\n else { dir = dir ? \"add\" : \"subtract\"; }\n }\n if (isLine(this.doc, n)) { indentLine(this, n, dir, aggressive); }\n }),\n indentSelection: methodOp(function(how) {\n var ranges = this.doc.sel.ranges, end = -1;\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n if (!range.empty()) {\n var from = range.from(), to = range.to();\n var start = Math.max(end, from.line);\n end = Math.min(this.lastLine(), to.line - (to.ch ? 0 : 1)) + 1;\n for (var j = start; j < end; ++j)\n { indentLine(this, j, how); }\n var newRanges = this.doc.sel.ranges;\n if (from.ch == 0 && ranges.length == newRanges.length && newRanges[i].from().ch > 0)\n { replaceOneSelection(this.doc, i, new Range(from, newRanges[i].to()), sel_dontScroll); }\n } else if (range.head.line > end) {\n indentLine(this, range.head.line, how, true);\n end = range.head.line;\n if (i == this.doc.sel.primIndex) { ensureCursorVisible(this); }\n }\n }\n }),\n\n // Fetch the parser token for a given character. Useful for hacks\n // that want to inspect the mode state (say, for completion).\n getTokenAt: function(pos, precise) {\n return takeToken(this, pos, precise)\n },\n\n getLineTokens: function(line, precise) {\n return takeToken(this, Pos(line), precise, true)\n },\n\n getTokenTypeAt: function(pos) {\n pos = clipPos(this.doc, pos);\n var styles = getLineStyles(this, getLine(this.doc, pos.line));\n var before = 0, after = (styles.length - 1) / 2, ch = pos.ch;\n var type;\n if (ch == 0) { type = styles[2]; }\n else { for (;;) {\n var mid = (before + after) >> 1;\n if ((mid ? styles[mid * 2 - 1] : 0) >= ch) { after = mid; }\n else if (styles[mid * 2 + 1] < ch) { before = mid + 1; }\n else { type = styles[mid * 2 + 2]; break }\n } }\n var cut = type ? type.indexOf(\"overlay \") : -1;\n return cut < 0 ? type : cut == 0 ? null : type.slice(0, cut - 1)\n },\n\n getModeAt: function(pos) {\n var mode = this.doc.mode;\n if (!mode.innerMode) { return mode }\n return CodeMirror.innerMode(mode, this.getTokenAt(pos).state).mode\n },\n\n getHelper: function(pos, type) {\n return this.getHelpers(pos, type)[0]\n },\n\n getHelpers: function(pos, type) {\n var found = [];\n if (!helpers.hasOwnProperty(type)) { return found }\n var help = helpers[type], mode = this.getModeAt(pos);\n if (typeof mode[type] == \"string\") {\n if (help[mode[type]]) { found.push(help[mode[type]]); }\n } else if (mode[type]) {\n for (var i = 0; i < mode[type].length; i++) {\n var val = help[mode[type][i]];\n if (val) { found.push(val); }\n }\n } else if (mode.helperType && help[mode.helperType]) {\n found.push(help[mode.helperType]);\n } else if (help[mode.name]) {\n found.push(help[mode.name]);\n }\n for (var i$1 = 0; i$1 < help._global.length; i$1++) {\n var cur = help._global[i$1];\n if (cur.pred(mode, this) && indexOf(found, cur.val) == -1)\n { found.push(cur.val); }\n }\n return found\n },\n\n getStateAfter: function(line, precise) {\n var doc = this.doc;\n line = clipLine(doc, line == null ? doc.first + doc.size - 1: line);\n return getContextBefore(this, line + 1, precise).state\n },\n\n cursorCoords: function(start, mode) {\n var pos, range = this.doc.sel.primary();\n if (start == null) { pos = range.head; }\n else if (typeof start == \"object\") { pos = clipPos(this.doc, start); }\n else { pos = start ? range.from() : range.to(); }\n return cursorCoords(this, pos, mode || \"page\")\n },\n\n charCoords: function(pos, mode) {\n return charCoords(this, clipPos(this.doc, pos), mode || \"page\")\n },\n\n coordsChar: function(coords, mode) {\n coords = fromCoordSystem(this, coords, mode || \"page\");\n return coordsChar(this, coords.left, coords.top)\n },\n\n lineAtHeight: function(height, mode) {\n height = fromCoordSystem(this, {top: height, left: 0}, mode || \"page\").top;\n return lineAtHeight(this.doc, height + this.display.viewOffset)\n },\n heightAtLine: function(line, mode, includeWidgets) {\n var end = false, lineObj;\n if (typeof line == \"number\") {\n var last = this.doc.first + this.doc.size - 1;\n if (line < this.doc.first) { line = this.doc.first; }\n else if (line > last) { line = last; end = true; }\n lineObj = getLine(this.doc, line);\n } else {\n lineObj = line;\n }\n return intoCoordSystem(this, lineObj, {top: 0, left: 0}, mode || \"page\", includeWidgets || end).top +\n (end ? this.doc.height - heightAtLine(lineObj) : 0)\n },\n\n defaultTextHeight: function() { return textHeight(this.display) },\n defaultCharWidth: function() { return charWidth(this.display) },\n\n getViewport: function() { return {from: this.display.viewFrom, to: this.display.viewTo}},\n\n addWidget: function(pos, node, scroll, vert, horiz) {\n var display = this.display;\n pos = cursorCoords(this, clipPos(this.doc, pos));\n var top = pos.bottom, left = pos.left;\n node.style.position = \"absolute\";\n node.setAttribute(\"cm-ignore-events\", \"true\");\n this.display.input.setUneditable(node);\n display.sizer.appendChild(node);\n if (vert == \"over\") {\n top = pos.top;\n } else if (vert == \"above\" || vert == \"near\") {\n var vspace = Math.max(display.wrapper.clientHeight, this.doc.height),\n hspace = Math.max(display.sizer.clientWidth, display.lineSpace.clientWidth);\n // Default to positioning above (if specified and possible); otherwise default to positioning below\n if ((vert == 'above' || pos.bottom + node.offsetHeight > vspace) && pos.top > node.offsetHeight)\n { top = pos.top - node.offsetHeight; }\n else if (pos.bottom + node.offsetHeight <= vspace)\n { top = pos.bottom; }\n if (left + node.offsetWidth > hspace)\n { left = hspace - node.offsetWidth; }\n }\n node.style.top = top + \"px\";\n node.style.left = node.style.right = \"\";\n if (horiz == \"right\") {\n left = display.sizer.clientWidth - node.offsetWidth;\n node.style.right = \"0px\";\n } else {\n if (horiz == \"left\") { left = 0; }\n else if (horiz == \"middle\") { left = (display.sizer.clientWidth - node.offsetWidth) / 2; }\n node.style.left = left + \"px\";\n }\n if (scroll)\n { scrollIntoView(this, {left: left, top: top, right: left + node.offsetWidth, bottom: top + node.offsetHeight}); }\n },\n\n triggerOnKeyDown: methodOp(onKeyDown),\n triggerOnKeyPress: methodOp(onKeyPress),\n triggerOnKeyUp: onKeyUp,\n triggerOnMouseDown: methodOp(onMouseDown),\n\n execCommand: function(cmd) {\n if (commands.hasOwnProperty(cmd))\n { return commands[cmd].call(null, this) }\n },\n\n triggerElectric: methodOp(function(text) { triggerElectric(this, text); }),\n\n findPosH: function(from, amount, unit, visually) {\n var dir = 1;\n if (amount < 0) { dir = -1; amount = -amount; }\n var cur = clipPos(this.doc, from);\n for (var i = 0; i < amount; ++i) {\n cur = findPosH(this.doc, cur, dir, unit, visually);\n if (cur.hitSide) { break }\n }\n return cur\n },\n\n moveH: methodOp(function(dir, unit) {\n var this$1 = this;\n\n this.extendSelectionsBy(function (range) {\n if (this$1.display.shift || this$1.doc.extend || range.empty())\n { return findPosH(this$1.doc, range.head, dir, unit, this$1.options.rtlMoveVisually) }\n else\n { return dir < 0 ? range.from() : range.to() }\n }, sel_move);\n }),\n\n deleteH: methodOp(function(dir, unit) {\n var sel = this.doc.sel, doc = this.doc;\n if (sel.somethingSelected())\n { doc.replaceSelection(\"\", null, \"+delete\"); }\n else\n { deleteNearSelection(this, function (range) {\n var other = findPosH(doc, range.head, dir, unit, false);\n return dir < 0 ? {from: other, to: range.head} : {from: range.head, to: other}\n }); }\n }),\n\n findPosV: function(from, amount, unit, goalColumn) {\n var dir = 1, x = goalColumn;\n if (amount < 0) { dir = -1; amount = -amount; }\n var cur = clipPos(this.doc, from);\n for (var i = 0; i < amount; ++i) {\n var coords = cursorCoords(this, cur, \"div\");\n if (x == null) { x = coords.left; }\n else { coords.left = x; }\n cur = findPosV(this, coords, dir, unit);\n if (cur.hitSide) { break }\n }\n return cur\n },\n\n moveV: methodOp(function(dir, unit) {\n var this$1 = this;\n\n var doc = this.doc, goals = [];\n var collapse = !this.display.shift && !doc.extend && doc.sel.somethingSelected();\n doc.extendSelectionsBy(function (range) {\n if (collapse)\n { return dir < 0 ? range.from() : range.to() }\n var headPos = cursorCoords(this$1, range.head, \"div\");\n if (range.goalColumn != null) { headPos.left = range.goalColumn; }\n goals.push(headPos.left);\n var pos = findPosV(this$1, headPos, dir, unit);\n if (unit == \"page\" && range == doc.sel.primary())\n { addToScrollTop(this$1, charCoords(this$1, pos, \"div\").top - headPos.top); }\n return pos\n }, sel_move);\n if (goals.length) { for (var i = 0; i < doc.sel.ranges.length; i++)\n { doc.sel.ranges[i].goalColumn = goals[i]; } }\n }),\n\n // Find the word at the given position (as returned by coordsChar).\n findWordAt: function(pos) {\n var doc = this.doc, line = getLine(doc, pos.line).text;\n var start = pos.ch, end = pos.ch;\n if (line) {\n var helper = this.getHelper(pos, \"wordChars\");\n if ((pos.sticky == \"before\" || end == line.length) && start) { --start; } else { ++end; }\n var startChar = line.charAt(start);\n var check = isWordChar(startChar, helper)\n ? function (ch) { return isWordChar(ch, helper); }\n : /\\s/.test(startChar) ? function (ch) { return /\\s/.test(ch); }\n : function (ch) { return (!/\\s/.test(ch) && !isWordChar(ch)); };\n while (start > 0 && check(line.charAt(start - 1))) { --start; }\n while (end < line.length && check(line.charAt(end))) { ++end; }\n }\n return new Range(Pos(pos.line, start), Pos(pos.line, end))\n },\n\n toggleOverwrite: function(value) {\n if (value != null && value == this.state.overwrite) { return }\n if (this.state.overwrite = !this.state.overwrite)\n { addClass(this.display.cursorDiv, \"CodeMirror-overwrite\"); }\n else\n { rmClass(this.display.cursorDiv, \"CodeMirror-overwrite\"); }\n\n signal(this, \"overwriteToggle\", this, this.state.overwrite);\n },\n hasFocus: function() { return this.display.input.getField() == activeElt() },\n isReadOnly: function() { return !!(this.options.readOnly || this.doc.cantEdit) },\n\n scrollTo: methodOp(function (x, y) { scrollToCoords(this, x, y); }),\n getScrollInfo: function() {\n var scroller = this.display.scroller;\n return {left: scroller.scrollLeft, top: scroller.scrollTop,\n height: scroller.scrollHeight - scrollGap(this) - this.display.barHeight,\n width: scroller.scrollWidth - scrollGap(this) - this.display.barWidth,\n clientHeight: displayHeight(this), clientWidth: displayWidth(this)}\n },\n\n scrollIntoView: methodOp(function(range, margin) {\n if (range == null) {\n range = {from: this.doc.sel.primary().head, to: null};\n if (margin == null) { margin = this.options.cursorScrollMargin; }\n } else if (typeof range == \"number\") {\n range = {from: Pos(range, 0), to: null};\n } else if (range.from == null) {\n range = {from: range, to: null};\n }\n if (!range.to) { range.to = range.from; }\n range.margin = margin || 0;\n\n if (range.from.line != null) {\n scrollToRange(this, range);\n } else {\n scrollToCoordsRange(this, range.from, range.to, range.margin);\n }\n }),\n\n setSize: methodOp(function(width, height) {\n var this$1 = this;\n\n var interpret = function (val) { return typeof val == \"number\" || /^\\d+$/.test(String(val)) ? val + \"px\" : val; };\n if (width != null) { this.display.wrapper.style.width = interpret(width); }\n if (height != null) { this.display.wrapper.style.height = interpret(height); }\n if (this.options.lineWrapping) { clearLineMeasurementCache(this); }\n var lineNo = this.display.viewFrom;\n this.doc.iter(lineNo, this.display.viewTo, function (line) {\n if (line.widgets) { for (var i = 0; i < line.widgets.length; i++)\n { if (line.widgets[i].noHScroll) { regLineChange(this$1, lineNo, \"widget\"); break } } }\n ++lineNo;\n });\n this.curOp.forceUpdate = true;\n signal(this, \"refresh\", this);\n }),\n\n operation: function(f){return runInOp(this, f)},\n startOperation: function(){return startOperation(this)},\n endOperation: function(){return endOperation(this)},\n\n refresh: methodOp(function() {\n var oldHeight = this.display.cachedTextHeight;\n regChange(this);\n this.curOp.forceUpdate = true;\n clearCaches(this);\n scrollToCoords(this, this.doc.scrollLeft, this.doc.scrollTop);\n updateGutterSpace(this.display);\n if (oldHeight == null || Math.abs(oldHeight - textHeight(this.display)) > .5 || this.options.lineWrapping)\n { estimateLineHeights(this); }\n signal(this, \"refresh\", this);\n }),\n\n swapDoc: methodOp(function(doc) {\n var old = this.doc;\n old.cm = null;\n // Cancel the current text selection if any (#5821)\n if (this.state.selectingText) { this.state.selectingText(); }\n attachDoc(this, doc);\n clearCaches(this);\n this.display.input.reset();\n scrollToCoords(this, doc.scrollLeft, doc.scrollTop);\n this.curOp.forceScroll = true;\n signalLater(this, \"swapDoc\", this, old);\n return old\n }),\n\n phrase: function(phraseText) {\n var phrases = this.options.phrases;\n return phrases && Object.prototype.hasOwnProperty.call(phrases, phraseText) ? phrases[phraseText] : phraseText\n },\n\n getInputField: function(){return this.display.input.getField()},\n getWrapperElement: function(){return this.display.wrapper},\n getScrollerElement: function(){return this.display.scroller},\n getGutterElement: function(){return this.display.gutters}\n };\n eventMixin(CodeMirror);\n\n CodeMirror.registerHelper = function(type, name, value) {\n if (!helpers.hasOwnProperty(type)) { helpers[type] = CodeMirror[type] = {_global: []}; }\n helpers[type][name] = value;\n };\n CodeMirror.registerGlobalHelper = function(type, name, predicate, value) {\n CodeMirror.registerHelper(type, name, value);\n helpers[type]._global.push({pred: predicate, val: value});\n };\n }\n\n // Used for horizontal relative motion. Dir is -1 or 1 (left or\n // right), unit can be \"codepoint\", \"char\", \"column\" (like char, but\n // doesn't cross line boundaries), \"word\" (across next word), or\n // \"group\" (to the start of next group of word or\n // non-word-non-whitespace chars). The visually param controls\n // whether, in right-to-left text, direction 1 means to move towards\n // the next index in the string, or towards the character to the right\n // of the current position. The resulting position will have a\n // hitSide=true property if it reached the end of the document.\n function findPosH(doc, pos, dir, unit, visually) {\n var oldPos = pos;\n var origDir = dir;\n var lineObj = getLine(doc, pos.line);\n var lineDir = visually && doc.direction == \"rtl\" ? -dir : dir;\n function findNextLine() {\n var l = pos.line + lineDir;\n if (l < doc.first || l >= doc.first + doc.size) { return false }\n pos = new Pos(l, pos.ch, pos.sticky);\n return lineObj = getLine(doc, l)\n }\n function moveOnce(boundToLine) {\n var next;\n if (unit == \"codepoint\") {\n var ch = lineObj.text.charCodeAt(pos.ch + (dir > 0 ? 0 : -1));\n if (isNaN(ch)) {\n next = null;\n } else {\n var astral = dir > 0 ? ch >= 0xD800 && ch < 0xDC00 : ch >= 0xDC00 && ch < 0xDFFF;\n next = new Pos(pos.line, Math.max(0, Math.min(lineObj.text.length, pos.ch + dir * (astral ? 2 : 1))), -dir);\n }\n } else if (visually) {\n next = moveVisually(doc.cm, lineObj, pos, dir);\n } else {\n next = moveLogically(lineObj, pos, dir);\n }\n if (next == null) {\n if (!boundToLine && findNextLine())\n { pos = endOfLine(visually, doc.cm, lineObj, pos.line, lineDir); }\n else\n { return false }\n } else {\n pos = next;\n }\n return true\n }\n\n if (unit == \"char\" || unit == \"codepoint\") {\n moveOnce();\n } else if (unit == \"column\") {\n moveOnce(true);\n } else if (unit == \"word\" || unit == \"group\") {\n var sawType = null, group = unit == \"group\";\n var helper = doc.cm && doc.cm.getHelper(pos, \"wordChars\");\n for (var first = true;; first = false) {\n if (dir < 0 && !moveOnce(!first)) { break }\n var cur = lineObj.text.charAt(pos.ch) || \"\\n\";\n var type = isWordChar(cur, helper) ? \"w\"\n : group && cur == \"\\n\" ? \"n\"\n : !group || /\\s/.test(cur) ? null\n : \"p\";\n if (group && !first && !type) { type = \"s\"; }\n if (sawType && sawType != type) {\n if (dir < 0) {dir = 1; moveOnce(); pos.sticky = \"after\";}\n break\n }\n\n if (type) { sawType = type; }\n if (dir > 0 && !moveOnce(!first)) { break }\n }\n }\n var result = skipAtomic(doc, pos, oldPos, origDir, true);\n if (equalCursorPos(oldPos, result)) { result.hitSide = true; }\n return result\n }\n\n // For relative vertical movement. Dir may be -1 or 1. Unit can be\n // \"page\" or \"line\". The resulting position will have a hitSide=true\n // property if it reached the end of the document.\n function findPosV(cm, pos, dir, unit) {\n var doc = cm.doc, x = pos.left, y;\n if (unit == \"page\") {\n var pageSize = Math.min(cm.display.wrapper.clientHeight, window.innerHeight || document.documentElement.clientHeight);\n var moveAmount = Math.max(pageSize - .5 * textHeight(cm.display), 3);\n y = (dir > 0 ? pos.bottom : pos.top) + dir * moveAmount;\n\n } else if (unit == \"line\") {\n y = dir > 0 ? pos.bottom + 3 : pos.top - 3;\n }\n var target;\n for (;;) {\n target = coordsChar(cm, x, y);\n if (!target.outside) { break }\n if (dir < 0 ? y <= 0 : y >= doc.height) { target.hitSide = true; break }\n y += dir * 5;\n }\n return target\n }\n\n // CONTENTEDITABLE INPUT STYLE\n\n var ContentEditableInput = function(cm) {\n this.cm = cm;\n this.lastAnchorNode = this.lastAnchorOffset = this.lastFocusNode = this.lastFocusOffset = null;\n this.polling = new Delayed();\n this.composing = null;\n this.gracePeriod = false;\n this.readDOMTimeout = null;\n };\n\n ContentEditableInput.prototype.init = function (display) {\n var this$1 = this;\n\n var input = this, cm = input.cm;\n var div = input.div = display.lineDiv;\n div.contentEditable = true;\n disableBrowserMagic(div, cm.options.spellcheck, cm.options.autocorrect, cm.options.autocapitalize);\n\n function belongsToInput(e) {\n for (var t = e.target; t; t = t.parentNode) {\n if (t == div) { return true }\n if (/\\bCodeMirror-(?:line)?widget\\b/.test(t.className)) { break }\n }\n return false\n }\n\n on(div, \"paste\", function (e) {\n if (!belongsToInput(e) || signalDOMEvent(cm, e) || handlePaste(e, cm)) { return }\n // IE doesn't fire input events, so we schedule a read for the pasted content in this way\n if (ie_version <= 11) { setTimeout(operation(cm, function () { return this$1.updateFromDOM(); }), 20); }\n });\n\n on(div, \"compositionstart\", function (e) {\n this$1.composing = {data: e.data, done: false};\n });\n on(div, \"compositionupdate\", function (e) {\n if (!this$1.composing) { this$1.composing = {data: e.data, done: false}; }\n });\n on(div, \"compositionend\", function (e) {\n if (this$1.composing) {\n if (e.data != this$1.composing.data) { this$1.readFromDOMSoon(); }\n this$1.composing.done = true;\n }\n });\n\n on(div, \"touchstart\", function () { return input.forceCompositionEnd(); });\n\n on(div, \"input\", function () {\n if (!this$1.composing) { this$1.readFromDOMSoon(); }\n });\n\n function onCopyCut(e) {\n if (!belongsToInput(e) || signalDOMEvent(cm, e)) { return }\n if (cm.somethingSelected()) {\n setLastCopied({lineWise: false, text: cm.getSelections()});\n if (e.type == \"cut\") { cm.replaceSelection(\"\", null, \"cut\"); }\n } else if (!cm.options.lineWiseCopyCut) {\n return\n } else {\n var ranges = copyableRanges(cm);\n setLastCopied({lineWise: true, text: ranges.text});\n if (e.type == \"cut\") {\n cm.operation(function () {\n cm.setSelections(ranges.ranges, 0, sel_dontScroll);\n cm.replaceSelection(\"\", null, \"cut\");\n });\n }\n }\n if (e.clipboardData) {\n e.clipboardData.clearData();\n var content = lastCopied.text.join(\"\\n\");\n // iOS exposes the clipboard API, but seems to discard content inserted into it\n e.clipboardData.setData(\"Text\", content);\n if (e.clipboardData.getData(\"Text\") == content) {\n e.preventDefault();\n return\n }\n }\n // Old-fashioned briefly-focus-a-textarea hack\n var kludge = hiddenTextarea(), te = kludge.firstChild;\n cm.display.lineSpace.insertBefore(kludge, cm.display.lineSpace.firstChild);\n te.value = lastCopied.text.join(\"\\n\");\n var hadFocus = activeElt();\n selectInput(te);\n setTimeout(function () {\n cm.display.lineSpace.removeChild(kludge);\n hadFocus.focus();\n if (hadFocus == div) { input.showPrimarySelection(); }\n }, 50);\n }\n on(div, \"copy\", onCopyCut);\n on(div, \"cut\", onCopyCut);\n };\n\n ContentEditableInput.prototype.screenReaderLabelChanged = function (label) {\n // Label for screenreaders, accessibility\n if(label) {\n this.div.setAttribute('aria-label', label);\n } else {\n this.div.removeAttribute('aria-label');\n }\n };\n\n ContentEditableInput.prototype.prepareSelection = function () {\n var result = prepareSelection(this.cm, false);\n result.focus = activeElt() == this.div;\n return result\n };\n\n ContentEditableInput.prototype.showSelection = function (info, takeFocus) {\n if (!info || !this.cm.display.view.length) { return }\n if (info.focus || takeFocus) { this.showPrimarySelection(); }\n this.showMultipleSelections(info);\n };\n\n ContentEditableInput.prototype.getSelection = function () {\n return this.cm.display.wrapper.ownerDocument.getSelection()\n };\n\n ContentEditableInput.prototype.showPrimarySelection = function () {\n var sel = this.getSelection(), cm = this.cm, prim = cm.doc.sel.primary();\n var from = prim.from(), to = prim.to();\n\n if (cm.display.viewTo == cm.display.viewFrom || from.line >= cm.display.viewTo || to.line < cm.display.viewFrom) {\n sel.removeAllRanges();\n return\n }\n\n var curAnchor = domToPos(cm, sel.anchorNode, sel.anchorOffset);\n var curFocus = domToPos(cm, sel.focusNode, sel.focusOffset);\n if (curAnchor && !curAnchor.bad && curFocus && !curFocus.bad &&\n cmp(minPos(curAnchor, curFocus), from) == 0 &&\n cmp(maxPos(curAnchor, curFocus), to) == 0)\n { return }\n\n var view = cm.display.view;\n var start = (from.line >= cm.display.viewFrom && posToDOM(cm, from)) ||\n {node: view[0].measure.map[2], offset: 0};\n var end = to.line < cm.display.viewTo && posToDOM(cm, to);\n if (!end) {\n var measure = view[view.length - 1].measure;\n var map = measure.maps ? measure.maps[measure.maps.length - 1] : measure.map;\n end = {node: map[map.length - 1], offset: map[map.length - 2] - map[map.length - 3]};\n }\n\n if (!start || !end) {\n sel.removeAllRanges();\n return\n }\n\n var old = sel.rangeCount && sel.getRangeAt(0), rng;\n try { rng = range(start.node, start.offset, end.offset, end.node); }\n catch(e) {} // Our model of the DOM might be outdated, in which case the range we try to set can be impossible\n if (rng) {\n if (!gecko && cm.state.focused) {\n sel.collapse(start.node, start.offset);\n if (!rng.collapsed) {\n sel.removeAllRanges();\n sel.addRange(rng);\n }\n } else {\n sel.removeAllRanges();\n sel.addRange(rng);\n }\n if (old && sel.anchorNode == null) { sel.addRange(old); }\n else if (gecko) { this.startGracePeriod(); }\n }\n this.rememberSelection();\n };\n\n ContentEditableInput.prototype.startGracePeriod = function () {\n var this$1 = this;\n\n clearTimeout(this.gracePeriod);\n this.gracePeriod = setTimeout(function () {\n this$1.gracePeriod = false;\n if (this$1.selectionChanged())\n { this$1.cm.operation(function () { return this$1.cm.curOp.selectionChanged = true; }); }\n }, 20);\n };\n\n ContentEditableInput.prototype.showMultipleSelections = function (info) {\n removeChildrenAndAdd(this.cm.display.cursorDiv, info.cursors);\n removeChildrenAndAdd(this.cm.display.selectionDiv, info.selection);\n };\n\n ContentEditableInput.prototype.rememberSelection = function () {\n var sel = this.getSelection();\n this.lastAnchorNode = sel.anchorNode; this.lastAnchorOffset = sel.anchorOffset;\n this.lastFocusNode = sel.focusNode; this.lastFocusOffset = sel.focusOffset;\n };\n\n ContentEditableInput.prototype.selectionInEditor = function () {\n var sel = this.getSelection();\n if (!sel.rangeCount) { return false }\n var node = sel.getRangeAt(0).commonAncestorContainer;\n return contains(this.div, node)\n };\n\n ContentEditableInput.prototype.focus = function () {\n if (this.cm.options.readOnly != \"nocursor\") {\n if (!this.selectionInEditor() || activeElt() != this.div)\n { this.showSelection(this.prepareSelection(), true); }\n this.div.focus();\n }\n };\n ContentEditableInput.prototype.blur = function () { this.div.blur(); };\n ContentEditableInput.prototype.getField = function () { return this.div };\n\n ContentEditableInput.prototype.supportsTouch = function () { return true };\n\n ContentEditableInput.prototype.receivedFocus = function () {\n var this$1 = this;\n\n var input = this;\n if (this.selectionInEditor())\n { setTimeout(function () { return this$1.pollSelection(); }, 20); }\n else\n { runInOp(this.cm, function () { return input.cm.curOp.selectionChanged = true; }); }\n\n function poll() {\n if (input.cm.state.focused) {\n input.pollSelection();\n input.polling.set(input.cm.options.pollInterval, poll);\n }\n }\n this.polling.set(this.cm.options.pollInterval, poll);\n };\n\n ContentEditableInput.prototype.selectionChanged = function () {\n var sel = this.getSelection();\n return sel.anchorNode != this.lastAnchorNode || sel.anchorOffset != this.lastAnchorOffset ||\n sel.focusNode != this.lastFocusNode || sel.focusOffset != this.lastFocusOffset\n };\n\n ContentEditableInput.prototype.pollSelection = function () {\n if (this.readDOMTimeout != null || this.gracePeriod || !this.selectionChanged()) { return }\n var sel = this.getSelection(), cm = this.cm;\n // On Android Chrome (version 56, at least), backspacing into an\n // uneditable block element will put the cursor in that element,\n // and then, because it's not editable, hide the virtual keyboard.\n // Because Android doesn't allow us to actually detect backspace\n // presses in a sane way, this code checks for when that happens\n // and simulates a backspace press in this case.\n if (android && chrome && this.cm.display.gutterSpecs.length && isInGutter(sel.anchorNode)) {\n this.cm.triggerOnKeyDown({type: \"keydown\", keyCode: 8, preventDefault: Math.abs});\n this.blur();\n this.focus();\n return\n }\n if (this.composing) { return }\n this.rememberSelection();\n var anchor = domToPos(cm, sel.anchorNode, sel.anchorOffset);\n var head = domToPos(cm, sel.focusNode, sel.focusOffset);\n if (anchor && head) { runInOp(cm, function () {\n setSelection(cm.doc, simpleSelection(anchor, head), sel_dontScroll);\n if (anchor.bad || head.bad) { cm.curOp.selectionChanged = true; }\n }); }\n };\n\n ContentEditableInput.prototype.pollContent = function () {\n if (this.readDOMTimeout != null) {\n clearTimeout(this.readDOMTimeout);\n this.readDOMTimeout = null;\n }\n\n var cm = this.cm, display = cm.display, sel = cm.doc.sel.primary();\n var from = sel.from(), to = sel.to();\n if (from.ch == 0 && from.line > cm.firstLine())\n { from = Pos(from.line - 1, getLine(cm.doc, from.line - 1).length); }\n if (to.ch == getLine(cm.doc, to.line).text.length && to.line < cm.lastLine())\n { to = Pos(to.line + 1, 0); }\n if (from.line < display.viewFrom || to.line > display.viewTo - 1) { return false }\n\n var fromIndex, fromLine, fromNode;\n if (from.line == display.viewFrom || (fromIndex = findViewIndex(cm, from.line)) == 0) {\n fromLine = lineNo(display.view[0].line);\n fromNode = display.view[0].node;\n } else {\n fromLine = lineNo(display.view[fromIndex].line);\n fromNode = display.view[fromIndex - 1].node.nextSibling;\n }\n var toIndex = findViewIndex(cm, to.line);\n var toLine, toNode;\n if (toIndex == display.view.length - 1) {\n toLine = display.viewTo - 1;\n toNode = display.lineDiv.lastChild;\n } else {\n toLine = lineNo(display.view[toIndex + 1].line) - 1;\n toNode = display.view[toIndex + 1].node.previousSibling;\n }\n\n if (!fromNode) { return false }\n var newText = cm.doc.splitLines(domTextBetween(cm, fromNode, toNode, fromLine, toLine));\n var oldText = getBetween(cm.doc, Pos(fromLine, 0), Pos(toLine, getLine(cm.doc, toLine).text.length));\n while (newText.length > 1 && oldText.length > 1) {\n if (lst(newText) == lst(oldText)) { newText.pop(); oldText.pop(); toLine--; }\n else if (newText[0] == oldText[0]) { newText.shift(); oldText.shift(); fromLine++; }\n else { break }\n }\n\n var cutFront = 0, cutEnd = 0;\n var newTop = newText[0], oldTop = oldText[0], maxCutFront = Math.min(newTop.length, oldTop.length);\n while (cutFront < maxCutFront && newTop.charCodeAt(cutFront) == oldTop.charCodeAt(cutFront))\n { ++cutFront; }\n var newBot = lst(newText), oldBot = lst(oldText);\n var maxCutEnd = Math.min(newBot.length - (newText.length == 1 ? cutFront : 0),\n oldBot.length - (oldText.length == 1 ? cutFront : 0));\n while (cutEnd < maxCutEnd &&\n newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1))\n { ++cutEnd; }\n // Try to move start of change to start of selection if ambiguous\n if (newText.length == 1 && oldText.length == 1 && fromLine == from.line) {\n while (cutFront && cutFront > from.ch &&\n newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1)) {\n cutFront--;\n cutEnd++;\n }\n }\n\n newText[newText.length - 1] = newBot.slice(0, newBot.length - cutEnd).replace(/^\\u200b+/, \"\");\n newText[0] = newText[0].slice(cutFront).replace(/\\u200b+$/, \"\");\n\n var chFrom = Pos(fromLine, cutFront);\n var chTo = Pos(toLine, oldText.length ? lst(oldText).length - cutEnd : 0);\n if (newText.length > 1 || newText[0] || cmp(chFrom, chTo)) {\n replaceRange(cm.doc, newText, chFrom, chTo, \"+input\");\n return true\n }\n };\n\n ContentEditableInput.prototype.ensurePolled = function () {\n this.forceCompositionEnd();\n };\n ContentEditableInput.prototype.reset = function () {\n this.forceCompositionEnd();\n };\n ContentEditableInput.prototype.forceCompositionEnd = function () {\n if (!this.composing) { return }\n clearTimeout(this.readDOMTimeout);\n this.composing = null;\n this.updateFromDOM();\n this.div.blur();\n this.div.focus();\n };\n ContentEditableInput.prototype.readFromDOMSoon = function () {\n var this$1 = this;\n\n if (this.readDOMTimeout != null) { return }\n this.readDOMTimeout = setTimeout(function () {\n this$1.readDOMTimeout = null;\n if (this$1.composing) {\n if (this$1.composing.done) { this$1.composing = null; }\n else { return }\n }\n this$1.updateFromDOM();\n }, 80);\n };\n\n ContentEditableInput.prototype.updateFromDOM = function () {\n var this$1 = this;\n\n if (this.cm.isReadOnly() || !this.pollContent())\n { runInOp(this.cm, function () { return regChange(this$1.cm); }); }\n };\n\n ContentEditableInput.prototype.setUneditable = function (node) {\n node.contentEditable = \"false\";\n };\n\n ContentEditableInput.prototype.onKeyPress = function (e) {\n if (e.charCode == 0 || this.composing) { return }\n e.preventDefault();\n if (!this.cm.isReadOnly())\n { operation(this.cm, applyTextInput)(this.cm, String.fromCharCode(e.charCode == null ? e.keyCode : e.charCode), 0); }\n };\n\n ContentEditableInput.prototype.readOnlyChanged = function (val) {\n this.div.contentEditable = String(val != \"nocursor\");\n };\n\n ContentEditableInput.prototype.onContextMenu = function () {};\n ContentEditableInput.prototype.resetPosition = function () {};\n\n ContentEditableInput.prototype.needsContentAttribute = true;\n\n function posToDOM(cm, pos) {\n var view = findViewForLine(cm, pos.line);\n if (!view || view.hidden) { return null }\n var line = getLine(cm.doc, pos.line);\n var info = mapFromLineView(view, line, pos.line);\n\n var order = getOrder(line, cm.doc.direction), side = \"left\";\n if (order) {\n var partPos = getBidiPartAt(order, pos.ch);\n side = partPos % 2 ? \"right\" : \"left\";\n }\n var result = nodeAndOffsetInLineMap(info.map, pos.ch, side);\n result.offset = result.collapse == \"right\" ? result.end : result.start;\n return result\n }\n\n function isInGutter(node) {\n for (var scan = node; scan; scan = scan.parentNode)\n { if (/CodeMirror-gutter-wrapper/.test(scan.className)) { return true } }\n return false\n }\n\n function badPos(pos, bad) { if (bad) { pos.bad = true; } return pos }\n\n function domTextBetween(cm, from, to, fromLine, toLine) {\n var text = \"\", closing = false, lineSep = cm.doc.lineSeparator(), extraLinebreak = false;\n function recognizeMarker(id) { return function (marker) { return marker.id == id; } }\n function close() {\n if (closing) {\n text += lineSep;\n if (extraLinebreak) { text += lineSep; }\n closing = extraLinebreak = false;\n }\n }\n function addText(str) {\n if (str) {\n close();\n text += str;\n }\n }\n function walk(node) {\n if (node.nodeType == 1) {\n var cmText = node.getAttribute(\"cm-text\");\n if (cmText) {\n addText(cmText);\n return\n }\n var markerID = node.getAttribute(\"cm-marker\"), range;\n if (markerID) {\n var found = cm.findMarks(Pos(fromLine, 0), Pos(toLine + 1, 0), recognizeMarker(+markerID));\n if (found.length && (range = found[0].find(0)))\n { addText(getBetween(cm.doc, range.from, range.to).join(lineSep)); }\n return\n }\n if (node.getAttribute(\"contenteditable\") == \"false\") { return }\n var isBlock = /^(pre|div|p|li|table|br)$/i.test(node.nodeName);\n if (!/^br$/i.test(node.nodeName) && node.textContent.length == 0) { return }\n\n if (isBlock) { close(); }\n for (var i = 0; i < node.childNodes.length; i++)\n { walk(node.childNodes[i]); }\n\n if (/^(pre|p)$/i.test(node.nodeName)) { extraLinebreak = true; }\n if (isBlock) { closing = true; }\n } else if (node.nodeType == 3) {\n addText(node.nodeValue.replace(/\\u200b/g, \"\").replace(/\\u00a0/g, \" \"));\n }\n }\n for (;;) {\n walk(from);\n if (from == to) { break }\n from = from.nextSibling;\n extraLinebreak = false;\n }\n return text\n }\n\n function domToPos(cm, node, offset) {\n var lineNode;\n if (node == cm.display.lineDiv) {\n lineNode = cm.display.lineDiv.childNodes[offset];\n if (!lineNode) { return badPos(cm.clipPos(Pos(cm.display.viewTo - 1)), true) }\n node = null; offset = 0;\n } else {\n for (lineNode = node;; lineNode = lineNode.parentNode) {\n if (!lineNode || lineNode == cm.display.lineDiv) { return null }\n if (lineNode.parentNode && lineNode.parentNode == cm.display.lineDiv) { break }\n }\n }\n for (var i = 0; i < cm.display.view.length; i++) {\n var lineView = cm.display.view[i];\n if (lineView.node == lineNode)\n { return locateNodeInLineView(lineView, node, offset) }\n }\n }\n\n function locateNodeInLineView(lineView, node, offset) {\n var wrapper = lineView.text.firstChild, bad = false;\n if (!node || !contains(wrapper, node)) { return badPos(Pos(lineNo(lineView.line), 0), true) }\n if (node == wrapper) {\n bad = true;\n node = wrapper.childNodes[offset];\n offset = 0;\n if (!node) {\n var line = lineView.rest ? lst(lineView.rest) : lineView.line;\n return badPos(Pos(lineNo(line), line.text.length), bad)\n }\n }\n\n var textNode = node.nodeType == 3 ? node : null, topNode = node;\n if (!textNode && node.childNodes.length == 1 && node.firstChild.nodeType == 3) {\n textNode = node.firstChild;\n if (offset) { offset = textNode.nodeValue.length; }\n }\n while (topNode.parentNode != wrapper) { topNode = topNode.parentNode; }\n var measure = lineView.measure, maps = measure.maps;\n\n function find(textNode, topNode, offset) {\n for (var i = -1; i < (maps ? maps.length : 0); i++) {\n var map = i < 0 ? measure.map : maps[i];\n for (var j = 0; j < map.length; j += 3) {\n var curNode = map[j + 2];\n if (curNode == textNode || curNode == topNode) {\n var line = lineNo(i < 0 ? lineView.line : lineView.rest[i]);\n var ch = map[j] + offset;\n if (offset < 0 || curNode != textNode) { ch = map[j + (offset ? 1 : 0)]; }\n return Pos(line, ch)\n }\n }\n }\n }\n var found = find(textNode, topNode, offset);\n if (found) { return badPos(found, bad) }\n\n // FIXME this is all really shaky. might handle the few cases it needs to handle, but likely to cause problems\n for (var after = topNode.nextSibling, dist = textNode ? textNode.nodeValue.length - offset : 0; after; after = after.nextSibling) {\n found = find(after, after.firstChild, 0);\n if (found)\n { return badPos(Pos(found.line, found.ch - dist), bad) }\n else\n { dist += after.textContent.length; }\n }\n for (var before = topNode.previousSibling, dist$1 = offset; before; before = before.previousSibling) {\n found = find(before, before.firstChild, -1);\n if (found)\n { return badPos(Pos(found.line, found.ch + dist$1), bad) }\n else\n { dist$1 += before.textContent.length; }\n }\n }\n\n // TEXTAREA INPUT STYLE\n\n var TextareaInput = function(cm) {\n this.cm = cm;\n // See input.poll and input.reset\n this.prevInput = \"\";\n\n // Flag that indicates whether we expect input to appear real soon\n // now (after some event like 'keypress' or 'input') and are\n // polling intensively.\n this.pollingFast = false;\n // Self-resetting timeout for the poller\n this.polling = new Delayed();\n // Used to work around IE issue with selection being forgotten when focus moves away from textarea\n this.hasSelection = false;\n this.composing = null;\n };\n\n TextareaInput.prototype.init = function (display) {\n var this$1 = this;\n\n var input = this, cm = this.cm;\n this.createField(display);\n var te = this.textarea;\n\n display.wrapper.insertBefore(this.wrapper, display.wrapper.firstChild);\n\n // Needed to hide big blue blinking cursor on Mobile Safari (doesn't seem to work in iOS 8 anymore)\n if (ios) { te.style.width = \"0px\"; }\n\n on(te, \"input\", function () {\n if (ie && ie_version >= 9 && this$1.hasSelection) { this$1.hasSelection = null; }\n input.poll();\n });\n\n on(te, \"paste\", function (e) {\n if (signalDOMEvent(cm, e) || handlePaste(e, cm)) { return }\n\n cm.state.pasteIncoming = +new Date;\n input.fastPoll();\n });\n\n function prepareCopyCut(e) {\n if (signalDOMEvent(cm, e)) { return }\n if (cm.somethingSelected()) {\n setLastCopied({lineWise: false, text: cm.getSelections()});\n } else if (!cm.options.lineWiseCopyCut) {\n return\n } else {\n var ranges = copyableRanges(cm);\n setLastCopied({lineWise: true, text: ranges.text});\n if (e.type == \"cut\") {\n cm.setSelections(ranges.ranges, null, sel_dontScroll);\n } else {\n input.prevInput = \"\";\n te.value = ranges.text.join(\"\\n\");\n selectInput(te);\n }\n }\n if (e.type == \"cut\") { cm.state.cutIncoming = +new Date; }\n }\n on(te, \"cut\", prepareCopyCut);\n on(te, \"copy\", prepareCopyCut);\n\n on(display.scroller, \"paste\", function (e) {\n if (eventInWidget(display, e) || signalDOMEvent(cm, e)) { return }\n if (!te.dispatchEvent) {\n cm.state.pasteIncoming = +new Date;\n input.focus();\n return\n }\n\n // Pass the `paste` event to the textarea so it's handled by its event listener.\n var event = new Event(\"paste\");\n event.clipboardData = e.clipboardData;\n te.dispatchEvent(event);\n });\n\n // Prevent normal selection in the editor (we handle our own)\n on(display.lineSpace, \"selectstart\", function (e) {\n if (!eventInWidget(display, e)) { e_preventDefault(e); }\n });\n\n on(te, \"compositionstart\", function () {\n var start = cm.getCursor(\"from\");\n if (input.composing) { input.composing.range.clear(); }\n input.composing = {\n start: start,\n range: cm.markText(start, cm.getCursor(\"to\"), {className: \"CodeMirror-composing\"})\n };\n });\n on(te, \"compositionend\", function () {\n if (input.composing) {\n input.poll();\n input.composing.range.clear();\n input.composing = null;\n }\n });\n };\n\n TextareaInput.prototype.createField = function (_display) {\n // Wraps and hides input textarea\n this.wrapper = hiddenTextarea();\n // The semihidden textarea that is focused when the editor is\n // focused, and receives input.\n this.textarea = this.wrapper.firstChild;\n };\n\n TextareaInput.prototype.screenReaderLabelChanged = function (label) {\n // Label for screenreaders, accessibility\n if(label) {\n this.textarea.setAttribute('aria-label', label);\n } else {\n this.textarea.removeAttribute('aria-label');\n }\n };\n\n TextareaInput.prototype.prepareSelection = function () {\n // Redraw the selection and/or cursor\n var cm = this.cm, display = cm.display, doc = cm.doc;\n var result = prepareSelection(cm);\n\n // Move the hidden textarea near the cursor to prevent scrolling artifacts\n if (cm.options.moveInputWithCursor) {\n var headPos = cursorCoords(cm, doc.sel.primary().head, \"div\");\n var wrapOff = display.wrapper.getBoundingClientRect(), lineOff = display.lineDiv.getBoundingClientRect();\n result.teTop = Math.max(0, Math.min(display.wrapper.clientHeight - 10,\n headPos.top + lineOff.top - wrapOff.top));\n result.teLeft = Math.max(0, Math.min(display.wrapper.clientWidth - 10,\n headPos.left + lineOff.left - wrapOff.left));\n }\n\n return result\n };\n\n TextareaInput.prototype.showSelection = function (drawn) {\n var cm = this.cm, display = cm.display;\n removeChildrenAndAdd(display.cursorDiv, drawn.cursors);\n removeChildrenAndAdd(display.selectionDiv, drawn.selection);\n if (drawn.teTop != null) {\n this.wrapper.style.top = drawn.teTop + \"px\";\n this.wrapper.style.left = drawn.teLeft + \"px\";\n }\n };\n\n // Reset the input to correspond to the selection (or to be empty,\n // when not typing and nothing is selected)\n TextareaInput.prototype.reset = function (typing) {\n if (this.contextMenuPending || this.composing) { return }\n var cm = this.cm;\n if (cm.somethingSelected()) {\n this.prevInput = \"\";\n var content = cm.getSelection();\n this.textarea.value = content;\n if (cm.state.focused) { selectInput(this.textarea); }\n if (ie && ie_version >= 9) { this.hasSelection = content; }\n } else if (!typing) {\n this.prevInput = this.textarea.value = \"\";\n if (ie && ie_version >= 9) { this.hasSelection = null; }\n }\n };\n\n TextareaInput.prototype.getField = function () { return this.textarea };\n\n TextareaInput.prototype.supportsTouch = function () { return false };\n\n TextareaInput.prototype.focus = function () {\n if (this.cm.options.readOnly != \"nocursor\" && (!mobile || activeElt() != this.textarea)) {\n try { this.textarea.focus(); }\n catch (e) {} // IE8 will throw if the textarea is display: none or not in DOM\n }\n };\n\n TextareaInput.prototype.blur = function () { this.textarea.blur(); };\n\n TextareaInput.prototype.resetPosition = function () {\n this.wrapper.style.top = this.wrapper.style.left = 0;\n };\n\n TextareaInput.prototype.receivedFocus = function () { this.slowPoll(); };\n\n // Poll for input changes, using the normal rate of polling. This\n // runs as long as the editor is focused.\n TextareaInput.prototype.slowPoll = function () {\n var this$1 = this;\n\n if (this.pollingFast) { return }\n this.polling.set(this.cm.options.pollInterval, function () {\n this$1.poll();\n if (this$1.cm.state.focused) { this$1.slowPoll(); }\n });\n };\n\n // When an event has just come in that is likely to add or change\n // something in the input textarea, we poll faster, to ensure that\n // the change appears on the screen quickly.\n TextareaInput.prototype.fastPoll = function () {\n var missed = false, input = this;\n input.pollingFast = true;\n function p() {\n var changed = input.poll();\n if (!changed && !missed) {missed = true; input.polling.set(60, p);}\n else {input.pollingFast = false; input.slowPoll();}\n }\n input.polling.set(20, p);\n };\n\n // Read input from the textarea, and update the document to match.\n // When something is selected, it is present in the textarea, and\n // selected (unless it is huge, in which case a placeholder is\n // used). When nothing is selected, the cursor sits after previously\n // seen text (can be empty), which is stored in prevInput (we must\n // not reset the textarea when typing, because that breaks IME).\n TextareaInput.prototype.poll = function () {\n var this$1 = this;\n\n var cm = this.cm, input = this.textarea, prevInput = this.prevInput;\n // Since this is called a *lot*, try to bail out as cheaply as\n // possible when it is clear that nothing happened. hasSelection\n // will be the case when there is a lot of text in the textarea,\n // in which case reading its value would be expensive.\n if (this.contextMenuPending || !cm.state.focused ||\n (hasSelection(input) && !prevInput && !this.composing) ||\n cm.isReadOnly() || cm.options.disableInput || cm.state.keySeq)\n { return false }\n\n var text = input.value;\n // If nothing changed, bail.\n if (text == prevInput && !cm.somethingSelected()) { return false }\n // Work around nonsensical selection resetting in IE9/10, and\n // inexplicable appearance of private area unicode characters on\n // some key combos in Mac (#2689).\n if (ie && ie_version >= 9 && this.hasSelection === text ||\n mac && /[\\uf700-\\uf7ff]/.test(text)) {\n cm.display.input.reset();\n return false\n }\n\n if (cm.doc.sel == cm.display.selForContextMenu) {\n var first = text.charCodeAt(0);\n if (first == 0x200b && !prevInput) { prevInput = \"\\u200b\"; }\n if (first == 0x21da) { this.reset(); return this.cm.execCommand(\"undo\") }\n }\n // Find the part of the input that is actually new\n var same = 0, l = Math.min(prevInput.length, text.length);\n while (same < l && prevInput.charCodeAt(same) == text.charCodeAt(same)) { ++same; }\n\n runInOp(cm, function () {\n applyTextInput(cm, text.slice(same), prevInput.length - same,\n null, this$1.composing ? \"*compose\" : null);\n\n // Don't leave long text in the textarea, since it makes further polling slow\n if (text.length > 1000 || text.indexOf(\"\\n\") > -1) { input.value = this$1.prevInput = \"\"; }\n else { this$1.prevInput = text; }\n\n if (this$1.composing) {\n this$1.composing.range.clear();\n this$1.composing.range = cm.markText(this$1.composing.start, cm.getCursor(\"to\"),\n {className: \"CodeMirror-composing\"});\n }\n });\n return true\n };\n\n TextareaInput.prototype.ensurePolled = function () {\n if (this.pollingFast && this.poll()) { this.pollingFast = false; }\n };\n\n TextareaInput.prototype.onKeyPress = function () {\n if (ie && ie_version >= 9) { this.hasSelection = null; }\n this.fastPoll();\n };\n\n TextareaInput.prototype.onContextMenu = function (e) {\n var input = this, cm = input.cm, display = cm.display, te = input.textarea;\n if (input.contextMenuPending) { input.contextMenuPending(); }\n var pos = posFromMouse(cm, e), scrollPos = display.scroller.scrollTop;\n if (!pos || presto) { return } // Opera is difficult.\n\n // Reset the current text selection only if the click is done outside of the selection\n // and 'resetSelectionOnContextMenu' option is true.\n var reset = cm.options.resetSelectionOnContextMenu;\n if (reset && cm.doc.sel.contains(pos) == -1)\n { operation(cm, setSelection)(cm.doc, simpleSelection(pos), sel_dontScroll); }\n\n var oldCSS = te.style.cssText, oldWrapperCSS = input.wrapper.style.cssText;\n var wrapperBox = input.wrapper.offsetParent.getBoundingClientRect();\n input.wrapper.style.cssText = \"position: static\";\n te.style.cssText = \"position: absolute; width: 30px; height: 30px;\\n top: \" + (e.clientY - wrapperBox.top - 5) + \"px; left: \" + (e.clientX - wrapperBox.left - 5) + \"px;\\n z-index: 1000; background: \" + (ie ? \"rgba(255, 255, 255, .05)\" : \"transparent\") + \";\\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);\";\n var oldScrollY;\n if (webkit) { oldScrollY = window.scrollY; } // Work around Chrome issue (#2712)\n display.input.focus();\n if (webkit) { window.scrollTo(null, oldScrollY); }\n display.input.reset();\n // Adds \"Select all\" to context menu in FF\n if (!cm.somethingSelected()) { te.value = input.prevInput = \" \"; }\n input.contextMenuPending = rehide;\n display.selForContextMenu = cm.doc.sel;\n clearTimeout(display.detectingSelectAll);\n\n // Select-all will be greyed out if there's nothing to select, so\n // this adds a zero-width space so that we can later check whether\n // it got selected.\n function prepareSelectAllHack() {\n if (te.selectionStart != null) {\n var selected = cm.somethingSelected();\n var extval = \"\\u200b\" + (selected ? te.value : \"\");\n te.value = \"\\u21da\"; // Used to catch context-menu undo\n te.value = extval;\n input.prevInput = selected ? \"\" : \"\\u200b\";\n te.selectionStart = 1; te.selectionEnd = extval.length;\n // Re-set this, in case some other handler touched the\n // selection in the meantime.\n display.selForContextMenu = cm.doc.sel;\n }\n }\n function rehide() {\n if (input.contextMenuPending != rehide) { return }\n input.contextMenuPending = false;\n input.wrapper.style.cssText = oldWrapperCSS;\n te.style.cssText = oldCSS;\n if (ie && ie_version < 9) { display.scrollbars.setScrollTop(display.scroller.scrollTop = scrollPos); }\n\n // Try to detect the user choosing select-all\n if (te.selectionStart != null) {\n if (!ie || (ie && ie_version < 9)) { prepareSelectAllHack(); }\n var i = 0, poll = function () {\n if (display.selForContextMenu == cm.doc.sel && te.selectionStart == 0 &&\n te.selectionEnd > 0 && input.prevInput == \"\\u200b\") {\n operation(cm, selectAll)(cm);\n } else if (i++ < 10) {\n display.detectingSelectAll = setTimeout(poll, 500);\n } else {\n display.selForContextMenu = null;\n display.input.reset();\n }\n };\n display.detectingSelectAll = setTimeout(poll, 200);\n }\n }\n\n if (ie && ie_version >= 9) { prepareSelectAllHack(); }\n if (captureRightClick) {\n e_stop(e);\n var mouseup = function () {\n off(window, \"mouseup\", mouseup);\n setTimeout(rehide, 20);\n };\n on(window, \"mouseup\", mouseup);\n } else {\n setTimeout(rehide, 50);\n }\n };\n\n TextareaInput.prototype.readOnlyChanged = function (val) {\n if (!val) { this.reset(); }\n this.textarea.disabled = val == \"nocursor\";\n this.textarea.readOnly = !!val;\n };\n\n TextareaInput.prototype.setUneditable = function () {};\n\n TextareaInput.prototype.needsContentAttribute = false;\n\n function fromTextArea(textarea, options) {\n options = options ? copyObj(options) : {};\n options.value = textarea.value;\n if (!options.tabindex && textarea.tabIndex)\n { options.tabindex = textarea.tabIndex; }\n if (!options.placeholder && textarea.placeholder)\n { options.placeholder = textarea.placeholder; }\n // Set autofocus to true if this textarea is focused, or if it has\n // autofocus and no other element is focused.\n if (options.autofocus == null) {\n var hasFocus = activeElt();\n options.autofocus = hasFocus == textarea ||\n textarea.getAttribute(\"autofocus\") != null && hasFocus == document.body;\n }\n\n function save() {textarea.value = cm.getValue();}\n\n var realSubmit;\n if (textarea.form) {\n on(textarea.form, \"submit\", save);\n // Deplorable hack to make the submit method do the right thing.\n if (!options.leaveSubmitMethodAlone) {\n var form = textarea.form;\n realSubmit = form.submit;\n try {\n var wrappedSubmit = form.submit = function () {\n save();\n form.submit = realSubmit;\n form.submit();\n form.submit = wrappedSubmit;\n };\n } catch(e) {}\n }\n }\n\n options.finishInit = function (cm) {\n cm.save = save;\n cm.getTextArea = function () { return textarea; };\n cm.toTextArea = function () {\n cm.toTextArea = isNaN; // Prevent this from being ran twice\n save();\n textarea.parentNode.removeChild(cm.getWrapperElement());\n textarea.style.display = \"\";\n if (textarea.form) {\n off(textarea.form, \"submit\", save);\n if (!options.leaveSubmitMethodAlone && typeof textarea.form.submit == \"function\")\n { textarea.form.submit = realSubmit; }\n }\n };\n };\n\n textarea.style.display = \"none\";\n var cm = CodeMirror(function (node) { return textarea.parentNode.insertBefore(node, textarea.nextSibling); },\n options);\n return cm\n }\n\n function addLegacyProps(CodeMirror) {\n CodeMirror.off = off;\n CodeMirror.on = on;\n CodeMirror.wheelEventPixels = wheelEventPixels;\n CodeMirror.Doc = Doc;\n CodeMirror.splitLines = splitLinesAuto;\n CodeMirror.countColumn = countColumn;\n CodeMirror.findColumn = findColumn;\n CodeMirror.isWordChar = isWordCharBasic;\n CodeMirror.Pass = Pass;\n CodeMirror.signal = signal;\n CodeMirror.Line = Line;\n CodeMirror.changeEnd = changeEnd;\n CodeMirror.scrollbarModel = scrollbarModel;\n CodeMirror.Pos = Pos;\n CodeMirror.cmpPos = cmp;\n CodeMirror.modes = modes;\n CodeMirror.mimeModes = mimeModes;\n CodeMirror.resolveMode = resolveMode;\n CodeMirror.getMode = getMode;\n CodeMirror.modeExtensions = modeExtensions;\n CodeMirror.extendMode = extendMode;\n CodeMirror.copyState = copyState;\n CodeMirror.startState = startState;\n CodeMirror.innerMode = innerMode;\n CodeMirror.commands = commands;\n CodeMirror.keyMap = keyMap;\n CodeMirror.keyName = keyName;\n CodeMirror.isModifierKey = isModifierKey;\n CodeMirror.lookupKey = lookupKey;\n CodeMirror.normalizeKeyMap = normalizeKeyMap;\n CodeMirror.StringStream = StringStream;\n CodeMirror.SharedTextMarker = SharedTextMarker;\n CodeMirror.TextMarker = TextMarker;\n CodeMirror.LineWidget = LineWidget;\n CodeMirror.e_preventDefault = e_preventDefault;\n CodeMirror.e_stopPropagation = e_stopPropagation;\n CodeMirror.e_stop = e_stop;\n CodeMirror.addClass = addClass;\n CodeMirror.contains = contains;\n CodeMirror.rmClass = rmClass;\n CodeMirror.keyNames = keyNames;\n }\n\n // EDITOR CONSTRUCTOR\n\n defineOptions(CodeMirror);\n\n addEditorMethods(CodeMirror);\n\n // Set up methods on CodeMirror's prototype to redirect to the editor's document.\n var dontDelegate = \"iter insert remove copy getEditor constructor\".split(\" \");\n for (var prop in Doc.prototype) { if (Doc.prototype.hasOwnProperty(prop) && indexOf(dontDelegate, prop) < 0)\n { CodeMirror.prototype[prop] = (function(method) {\n return function() {return method.apply(this.doc, arguments)}\n })(Doc.prototype[prop]); } }\n\n eventMixin(Doc);\n CodeMirror.inputStyles = {\"textarea\": TextareaInput, \"contenteditable\": ContentEditableInput};\n\n // Extra arguments are stored as the mode's dependencies, which is\n // used by (legacy) mechanisms like loadmode.js to automatically\n // load a mode. (Preferred mechanism is the require/define calls.)\n CodeMirror.defineMode = function(name/*, mode, …*/) {\n if (!CodeMirror.defaults.mode && name != \"null\") { CodeMirror.defaults.mode = name; }\n defineMode.apply(this, arguments);\n };\n\n CodeMirror.defineMIME = defineMIME;\n\n // Minimal default mode.\n CodeMirror.defineMode(\"null\", function () { return ({token: function (stream) { return stream.skipToEnd(); }}); });\n CodeMirror.defineMIME(\"text/plain\", \"null\");\n\n // EXTENSIONS\n\n CodeMirror.defineExtension = function (name, func) {\n CodeMirror.prototype[name] = func;\n };\n CodeMirror.defineDocExtension = function (name, func) {\n Doc.prototype[name] = func;\n };\n\n CodeMirror.fromTextArea = fromTextArea;\n\n addLegacyProps(CodeMirror);\n\n CodeMirror.version = \"5.65.6\";\n\n return CodeMirror;\n\n})));\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/5/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"css\", function(config, parserConfig) {\n var inline = parserConfig.inline\n if (!parserConfig.propertyKeywords) parserConfig = CodeMirror.resolveMode(\"text/css\");\n\n var indentUnit = config.indentUnit,\n tokenHooks = parserConfig.tokenHooks,\n documentTypes = parserConfig.documentTypes || {},\n mediaTypes = parserConfig.mediaTypes || {},\n mediaFeatures = parserConfig.mediaFeatures || {},\n mediaValueKeywords = parserConfig.mediaValueKeywords || {},\n propertyKeywords = parserConfig.propertyKeywords || {},\n nonStandardPropertyKeywords = parserConfig.nonStandardPropertyKeywords || {},\n fontProperties = parserConfig.fontProperties || {},\n counterDescriptors = parserConfig.counterDescriptors || {},\n colorKeywords = parserConfig.colorKeywords || {},\n valueKeywords = parserConfig.valueKeywords || {},\n allowNested = parserConfig.allowNested,\n lineComment = parserConfig.lineComment,\n supportsAtComponent = parserConfig.supportsAtComponent === true,\n highlightNonStandardPropertyKeywords = config.highlightNonStandardPropertyKeywords !== false;\n\n var type, override;\n function ret(style, tp) { type = tp; return style; }\n\n // Tokenizers\n\n function tokenBase(stream, state) {\n var ch = stream.next();\n if (tokenHooks[ch]) {\n var result = tokenHooks[ch](stream, state);\n if (result !== false) return result;\n }\n if (ch == \"@\") {\n stream.eatWhile(/[\\w\\\\\\-]/);\n return ret(\"def\", stream.current());\n } else if (ch == \"=\" || (ch == \"~\" || ch == \"|\") && stream.eat(\"=\")) {\n return ret(null, \"compare\");\n } else if (ch == \"\\\"\" || ch == \"'\") {\n state.tokenize = tokenString(ch);\n return state.tokenize(stream, state);\n } else if (ch == \"#\") {\n stream.eatWhile(/[\\w\\\\\\-]/);\n return ret(\"atom\", \"hash\");\n } else if (ch == \"!\") {\n stream.match(/^\\s*\\w*/);\n return ret(\"keyword\", \"important\");\n } else if (/\\d/.test(ch) || ch == \".\" && stream.eat(/\\d/)) {\n stream.eatWhile(/[\\w.%]/);\n return ret(\"number\", \"unit\");\n } else if (ch === \"-\") {\n if (/[\\d.]/.test(stream.peek())) {\n stream.eatWhile(/[\\w.%]/);\n return ret(\"number\", \"unit\");\n } else if (stream.match(/^-[\\w\\\\\\-]*/)) {\n stream.eatWhile(/[\\w\\\\\\-]/);\n if (stream.match(/^\\s*:/, false))\n return ret(\"variable-2\", \"variable-definition\");\n return ret(\"variable-2\", \"variable\");\n } else if (stream.match(/^\\w+-/)) {\n return ret(\"meta\", \"meta\");\n }\n } else if (/[,+>*\\/]/.test(ch)) {\n return ret(null, \"select-op\");\n } else if (ch == \".\" && stream.match(/^-?[_a-z][_a-z0-9-]*/i)) {\n return ret(\"qualifier\", \"qualifier\");\n } else if (/[:;{}\\[\\]\\(\\)]/.test(ch)) {\n return ret(null, ch);\n } else if (stream.match(/^[\\w-.]+(?=\\()/)) {\n if (/^(url(-prefix)?|domain|regexp)$/i.test(stream.current())) {\n state.tokenize = tokenParenthesized;\n }\n return ret(\"variable callee\", \"variable\");\n } else if (/[\\w\\\\\\-]/.test(ch)) {\n stream.eatWhile(/[\\w\\\\\\-]/);\n return ret(\"property\", \"word\");\n } else {\n return ret(null, null);\n }\n }\n\n function tokenString(quote) {\n return function(stream, state) {\n var escaped = false, ch;\n while ((ch = stream.next()) != null) {\n if (ch == quote && !escaped) {\n if (quote == \")\") stream.backUp(1);\n break;\n }\n escaped = !escaped && ch == \"\\\\\";\n }\n if (ch == quote || !escaped && quote != \")\") state.tokenize = null;\n return ret(\"string\", \"string\");\n };\n }\n\n function tokenParenthesized(stream, state) {\n stream.next(); // Must be '('\n if (!stream.match(/^\\s*[\\\"\\')]/, false))\n state.tokenize = tokenString(\")\");\n else\n state.tokenize = null;\n return ret(null, \"(\");\n }\n\n // Context management\n\n function Context(type, indent, prev) {\n this.type = type;\n this.indent = indent;\n this.prev = prev;\n }\n\n function pushContext(state, stream, type, indent) {\n state.context = new Context(type, stream.indentation() + (indent === false ? 0 : indentUnit), state.context);\n return type;\n }\n\n function popContext(state) {\n if (state.context.prev)\n state.context = state.context.prev;\n return state.context.type;\n }\n\n function pass(type, stream, state) {\n return states[state.context.type](type, stream, state);\n }\n function popAndPass(type, stream, state, n) {\n for (var i = n || 1; i > 0; i--)\n state.context = state.context.prev;\n return pass(type, stream, state);\n }\n\n // Parser\n\n function wordAsValue(stream) {\n var word = stream.current().toLowerCase();\n if (valueKeywords.hasOwnProperty(word))\n override = \"atom\";\n else if (colorKeywords.hasOwnProperty(word))\n override = \"keyword\";\n else\n override = \"variable\";\n }\n\n var states = {};\n\n states.top = function(type, stream, state) {\n if (type == \"{\") {\n return pushContext(state, stream, \"block\");\n } else if (type == \"}\" && state.context.prev) {\n return popContext(state);\n } else if (supportsAtComponent && /@component/i.test(type)) {\n return pushContext(state, stream, \"atComponentBlock\");\n } else if (/^@(-moz-)?document$/i.test(type)) {\n return pushContext(state, stream, \"documentTypes\");\n } else if (/^@(media|supports|(-moz-)?document|import)$/i.test(type)) {\n return pushContext(state, stream, \"atBlock\");\n } else if (/^@(font-face|counter-style)/i.test(type)) {\n state.stateArg = type;\n return \"restricted_atBlock_before\";\n } else if (/^@(-(moz|ms|o|webkit)-)?keyframes$/i.test(type)) {\n return \"keyframes\";\n } else if (type && type.charAt(0) == \"@\") {\n return pushContext(state, stream, \"at\");\n } else if (type == \"hash\") {\n override = \"builtin\";\n } else if (type == \"word\") {\n override = \"tag\";\n } else if (type == \"variable-definition\") {\n return \"maybeprop\";\n } else if (type == \"interpolation\") {\n return pushContext(state, stream, \"interpolation\");\n } else if (type == \":\") {\n return \"pseudo\";\n } else if (allowNested && type == \"(\") {\n return pushContext(state, stream, \"parens\");\n }\n return state.context.type;\n };\n\n states.block = function(type, stream, state) {\n if (type == \"word\") {\n var word = stream.current().toLowerCase();\n if (propertyKeywords.hasOwnProperty(word)) {\n override = \"property\";\n return \"maybeprop\";\n } else if (nonStandardPropertyKeywords.hasOwnProperty(word)) {\n override = highlightNonStandardPropertyKeywords ? \"string-2\" : \"property\";\n return \"maybeprop\";\n } else if (allowNested) {\n override = stream.match(/^\\s*:(?:\\s|$)/, false) ? \"property\" : \"tag\";\n return \"block\";\n } else {\n override += \" error\";\n return \"maybeprop\";\n }\n } else if (type == \"meta\") {\n return \"block\";\n } else if (!allowNested && (type == \"hash\" || type == \"qualifier\")) {\n override = \"error\";\n return \"block\";\n } else {\n return states.top(type, stream, state);\n }\n };\n\n states.maybeprop = function(type, stream, state) {\n if (type == \":\") return pushContext(state, stream, \"prop\");\n return pass(type, stream, state);\n };\n\n states.prop = function(type, stream, state) {\n if (type == \";\") return popContext(state);\n if (type == \"{\" && allowNested) return pushContext(state, stream, \"propBlock\");\n if (type == \"}\" || type == \"{\") return popAndPass(type, stream, state);\n if (type == \"(\") return pushContext(state, stream, \"parens\");\n\n if (type == \"hash\" && !/^#([0-9a-fA-f]{3,4}|[0-9a-fA-f]{6}|[0-9a-fA-f]{8})$/.test(stream.current())) {\n override += \" error\";\n } else if (type == \"word\") {\n wordAsValue(stream);\n } else if (type == \"interpolation\") {\n return pushContext(state, stream, \"interpolation\");\n }\n return \"prop\";\n };\n\n states.propBlock = function(type, _stream, state) {\n if (type == \"}\") return popContext(state);\n if (type == \"word\") { override = \"property\"; return \"maybeprop\"; }\n return state.context.type;\n };\n\n states.parens = function(type, stream, state) {\n if (type == \"{\" || type == \"}\") return popAndPass(type, stream, state);\n if (type == \")\") return popContext(state);\n if (type == \"(\") return pushContext(state, stream, \"parens\");\n if (type == \"interpolation\") return pushContext(state, stream, \"interpolation\");\n if (type == \"word\") wordAsValue(stream);\n return \"parens\";\n };\n\n states.pseudo = function(type, stream, state) {\n if (type == \"meta\") return \"pseudo\";\n\n if (type == \"word\") {\n override = \"variable-3\";\n return state.context.type;\n }\n return pass(type, stream, state);\n };\n\n states.documentTypes = function(type, stream, state) {\n if (type == \"word\" && documentTypes.hasOwnProperty(stream.current())) {\n override = \"tag\";\n return state.context.type;\n } else {\n return states.atBlock(type, stream, state);\n }\n };\n\n states.atBlock = function(type, stream, state) {\n if (type == \"(\") return pushContext(state, stream, \"atBlock_parens\");\n if (type == \"}\" || type == \";\") return popAndPass(type, stream, state);\n if (type == \"{\") return popContext(state) && pushContext(state, stream, allowNested ? \"block\" : \"top\");\n\n if (type == \"interpolation\") return pushContext(state, stream, \"interpolation\");\n\n if (type == \"word\") {\n var word = stream.current().toLowerCase();\n if (word == \"only\" || word == \"not\" || word == \"and\" || word == \"or\")\n override = \"keyword\";\n else if (mediaTypes.hasOwnProperty(word))\n override = \"attribute\";\n else if (mediaFeatures.hasOwnProperty(word))\n override = \"property\";\n else if (mediaValueKeywords.hasOwnProperty(word))\n override = \"keyword\";\n else if (propertyKeywords.hasOwnProperty(word))\n override = \"property\";\n else if (nonStandardPropertyKeywords.hasOwnProperty(word))\n override = highlightNonStandardPropertyKeywords ? \"string-2\" : \"property\";\n else if (valueKeywords.hasOwnProperty(word))\n override = \"atom\";\n else if (colorKeywords.hasOwnProperty(word))\n override = \"keyword\";\n else\n override = \"error\";\n }\n return state.context.type;\n };\n\n states.atComponentBlock = function(type, stream, state) {\n if (type == \"}\")\n return popAndPass(type, stream, state);\n if (type == \"{\")\n return popContext(state) && pushContext(state, stream, allowNested ? \"block\" : \"top\", false);\n if (type == \"word\")\n override = \"error\";\n return state.context.type;\n };\n\n states.atBlock_parens = function(type, stream, state) {\n if (type == \")\") return popContext(state);\n if (type == \"{\" || type == \"}\") return popAndPass(type, stream, state, 2);\n return states.atBlock(type, stream, state);\n };\n\n states.restricted_atBlock_before = function(type, stream, state) {\n if (type == \"{\")\n return pushContext(state, stream, \"restricted_atBlock\");\n if (type == \"word\" && state.stateArg == \"@counter-style\") {\n override = \"variable\";\n return \"restricted_atBlock_before\";\n }\n return pass(type, stream, state);\n };\n\n states.restricted_atBlock = function(type, stream, state) {\n if (type == \"}\") {\n state.stateArg = null;\n return popContext(state);\n }\n if (type == \"word\") {\n if ((state.stateArg == \"@font-face\" && !fontProperties.hasOwnProperty(stream.current().toLowerCase())) ||\n (state.stateArg == \"@counter-style\" && !counterDescriptors.hasOwnProperty(stream.current().toLowerCase())))\n override = \"error\";\n else\n override = \"property\";\n return \"maybeprop\";\n }\n return \"restricted_atBlock\";\n };\n\n states.keyframes = function(type, stream, state) {\n if (type == \"word\") { override = \"variable\"; return \"keyframes\"; }\n if (type == \"{\") return pushContext(state, stream, \"top\");\n return pass(type, stream, state);\n };\n\n states.at = function(type, stream, state) {\n if (type == \";\") return popContext(state);\n if (type == \"{\" || type == \"}\") return popAndPass(type, stream, state);\n if (type == \"word\") override = \"tag\";\n else if (type == \"hash\") override = \"builtin\";\n return \"at\";\n };\n\n states.interpolation = function(type, stream, state) {\n if (type == \"}\") return popContext(state);\n if (type == \"{\" || type == \";\") return popAndPass(type, stream, state);\n if (type == \"word\") override = \"variable\";\n else if (type != \"variable\" && type != \"(\" && type != \")\") override = \"error\";\n return \"interpolation\";\n };\n\n return {\n startState: function(base) {\n return {tokenize: null,\n state: inline ? \"block\" : \"top\",\n stateArg: null,\n context: new Context(inline ? \"block\" : \"top\", base || 0, null)};\n },\n\n token: function(stream, state) {\n if (!state.tokenize && stream.eatSpace()) return null;\n var style = (state.tokenize || tokenBase)(stream, state);\n if (style && typeof style == \"object\") {\n type = style[1];\n style = style[0];\n }\n override = style;\n if (type != \"comment\")\n state.state = states[state.state](type, stream, state);\n return override;\n },\n\n indent: function(state, textAfter) {\n var cx = state.context, ch = textAfter && textAfter.charAt(0);\n var indent = cx.indent;\n if (cx.type == \"prop\" && (ch == \"}\" || ch == \")\")) cx = cx.prev;\n if (cx.prev) {\n if (ch == \"}\" && (cx.type == \"block\" || cx.type == \"top\" ||\n cx.type == \"interpolation\" || cx.type == \"restricted_atBlock\")) {\n // Resume indentation from parent context.\n cx = cx.prev;\n indent = cx.indent;\n } else if (ch == \")\" && (cx.type == \"parens\" || cx.type == \"atBlock_parens\") ||\n ch == \"{\" && (cx.type == \"at\" || cx.type == \"atBlock\")) {\n // Dedent relative to current context.\n indent = Math.max(0, cx.indent - indentUnit);\n }\n }\n return indent;\n },\n\n electricChars: \"}\",\n blockCommentStart: \"/*\",\n blockCommentEnd: \"*/\",\n blockCommentContinue: \" * \",\n lineComment: lineComment,\n fold: \"brace\"\n };\n});\n\n function keySet(array) {\n var keys = {};\n for (var i = 0; i < array.length; ++i) {\n keys[array[i].toLowerCase()] = true;\n }\n return keys;\n }\n\n var documentTypes_ = [\n \"domain\", \"regexp\", \"url\", \"url-prefix\"\n ], documentTypes = keySet(documentTypes_);\n\n var mediaTypes_ = [\n \"all\", \"aural\", \"braille\", \"handheld\", \"print\", \"projection\", \"screen\",\n \"tty\", \"tv\", \"embossed\"\n ], mediaTypes = keySet(mediaTypes_);\n\n var mediaFeatures_ = [\n \"width\", \"min-width\", \"max-width\", \"height\", \"min-height\", \"max-height\",\n \"device-width\", \"min-device-width\", \"max-device-width\", \"device-height\",\n \"min-device-height\", \"max-device-height\", \"aspect-ratio\",\n \"min-aspect-ratio\", \"max-aspect-ratio\", \"device-aspect-ratio\",\n \"min-device-aspect-ratio\", \"max-device-aspect-ratio\", \"color\", \"min-color\",\n \"max-color\", \"color-index\", \"min-color-index\", \"max-color-index\",\n \"monochrome\", \"min-monochrome\", \"max-monochrome\", \"resolution\",\n \"min-resolution\", \"max-resolution\", \"scan\", \"grid\", \"orientation\",\n \"device-pixel-ratio\", \"min-device-pixel-ratio\", \"max-device-pixel-ratio\",\n \"pointer\", \"any-pointer\", \"hover\", \"any-hover\", \"prefers-color-scheme\",\n \"dynamic-range\", \"video-dynamic-range\"\n ], mediaFeatures = keySet(mediaFeatures_);\n\n var mediaValueKeywords_ = [\n \"landscape\", \"portrait\", \"none\", \"coarse\", \"fine\", \"on-demand\", \"hover\",\n \"interlace\", \"progressive\",\n \"dark\", \"light\",\n \"standard\", \"high\"\n ], mediaValueKeywords = keySet(mediaValueKeywords_);\n\n var propertyKeywords_ = [\n \"align-content\", \"align-items\", \"align-self\", \"alignment-adjust\",\n \"alignment-baseline\", \"all\", \"anchor-point\", \"animation\", \"animation-delay\",\n \"animation-direction\", \"animation-duration\", \"animation-fill-mode\",\n \"animation-iteration-count\", \"animation-name\", \"animation-play-state\",\n \"animation-timing-function\", \"appearance\", \"azimuth\", \"backdrop-filter\",\n \"backface-visibility\", \"background\", \"background-attachment\",\n \"background-blend-mode\", \"background-clip\", \"background-color\",\n \"background-image\", \"background-origin\", \"background-position\",\n \"background-position-x\", \"background-position-y\", \"background-repeat\",\n \"background-size\", \"baseline-shift\", \"binding\", \"bleed\", \"block-size\",\n \"bookmark-label\", \"bookmark-level\", \"bookmark-state\", \"bookmark-target\",\n \"border\", \"border-bottom\", \"border-bottom-color\", \"border-bottom-left-radius\",\n \"border-bottom-right-radius\", \"border-bottom-style\", \"border-bottom-width\",\n \"border-collapse\", \"border-color\", \"border-image\", \"border-image-outset\",\n \"border-image-repeat\", \"border-image-slice\", \"border-image-source\",\n \"border-image-width\", \"border-left\", \"border-left-color\", \"border-left-style\",\n \"border-left-width\", \"border-radius\", \"border-right\", \"border-right-color\",\n \"border-right-style\", \"border-right-width\", \"border-spacing\", \"border-style\",\n \"border-top\", \"border-top-color\", \"border-top-left-radius\",\n \"border-top-right-radius\", \"border-top-style\", \"border-top-width\",\n \"border-width\", \"bottom\", \"box-decoration-break\", \"box-shadow\", \"box-sizing\",\n \"break-after\", \"break-before\", \"break-inside\", \"caption-side\", \"caret-color\",\n \"clear\", \"clip\", \"color\", \"color-profile\", \"column-count\", \"column-fill\",\n \"column-gap\", \"column-rule\", \"column-rule-color\", \"column-rule-style\",\n \"column-rule-width\", \"column-span\", \"column-width\", \"columns\", \"contain\",\n \"content\", \"counter-increment\", \"counter-reset\", \"crop\", \"cue\", \"cue-after\",\n \"cue-before\", \"cursor\", \"direction\", \"display\", \"dominant-baseline\",\n \"drop-initial-after-adjust\", \"drop-initial-after-align\",\n \"drop-initial-before-adjust\", \"drop-initial-before-align\", \"drop-initial-size\",\n \"drop-initial-value\", \"elevation\", \"empty-cells\", \"fit\", \"fit-content\", \"fit-position\",\n \"flex\", \"flex-basis\", \"flex-direction\", \"flex-flow\", \"flex-grow\",\n \"flex-shrink\", \"flex-wrap\", \"float\", \"float-offset\", \"flow-from\", \"flow-into\",\n \"font\", \"font-family\", \"font-feature-settings\", \"font-kerning\",\n \"font-language-override\", \"font-optical-sizing\", \"font-size\",\n \"font-size-adjust\", \"font-stretch\", \"font-style\", \"font-synthesis\",\n \"font-variant\", \"font-variant-alternates\", \"font-variant-caps\",\n \"font-variant-east-asian\", \"font-variant-ligatures\", \"font-variant-numeric\",\n \"font-variant-position\", \"font-variation-settings\", \"font-weight\", \"gap\",\n \"grid\", \"grid-area\", \"grid-auto-columns\", \"grid-auto-flow\", \"grid-auto-rows\",\n \"grid-column\", \"grid-column-end\", \"grid-column-gap\", \"grid-column-start\",\n \"grid-gap\", \"grid-row\", \"grid-row-end\", \"grid-row-gap\", \"grid-row-start\",\n \"grid-template\", \"grid-template-areas\", \"grid-template-columns\",\n \"grid-template-rows\", \"hanging-punctuation\", \"height\", \"hyphens\", \"icon\",\n \"image-orientation\", \"image-rendering\", \"image-resolution\", \"inline-box-align\",\n \"inset\", \"inset-block\", \"inset-block-end\", \"inset-block-start\", \"inset-inline\",\n \"inset-inline-end\", \"inset-inline-start\", \"isolation\", \"justify-content\",\n \"justify-items\", \"justify-self\", \"left\", \"letter-spacing\", \"line-break\",\n \"line-height\", \"line-height-step\", \"line-stacking\", \"line-stacking-ruby\",\n \"line-stacking-shift\", \"line-stacking-strategy\", \"list-style\",\n \"list-style-image\", \"list-style-position\", \"list-style-type\", \"margin\",\n \"margin-bottom\", \"margin-left\", \"margin-right\", \"margin-top\", \"marks\",\n \"marquee-direction\", \"marquee-loop\", \"marquee-play-count\", \"marquee-speed\",\n \"marquee-style\", \"mask-clip\", \"mask-composite\", \"mask-image\", \"mask-mode\",\n \"mask-origin\", \"mask-position\", \"mask-repeat\", \"mask-size\",\"mask-type\",\n \"max-block-size\", \"max-height\", \"max-inline-size\",\n \"max-width\", \"min-block-size\", \"min-height\", \"min-inline-size\", \"min-width\",\n \"mix-blend-mode\", \"move-to\", \"nav-down\", \"nav-index\", \"nav-left\", \"nav-right\",\n \"nav-up\", \"object-fit\", \"object-position\", \"offset\", \"offset-anchor\",\n \"offset-distance\", \"offset-path\", \"offset-position\", \"offset-rotate\",\n \"opacity\", \"order\", \"orphans\", \"outline\", \"outline-color\", \"outline-offset\",\n \"outline-style\", \"outline-width\", \"overflow\", \"overflow-style\",\n \"overflow-wrap\", \"overflow-x\", \"overflow-y\", \"padding\", \"padding-bottom\",\n \"padding-left\", \"padding-right\", \"padding-top\", \"page\", \"page-break-after\",\n \"page-break-before\", \"page-break-inside\", \"page-policy\", \"pause\",\n \"pause-after\", \"pause-before\", \"perspective\", \"perspective-origin\", \"pitch\",\n \"pitch-range\", \"place-content\", \"place-items\", \"place-self\", \"play-during\",\n \"position\", \"presentation-level\", \"punctuation-trim\", \"quotes\",\n \"region-break-after\", \"region-break-before\", \"region-break-inside\",\n \"region-fragment\", \"rendering-intent\", \"resize\", \"rest\", \"rest-after\",\n \"rest-before\", \"richness\", \"right\", \"rotate\", \"rotation\", \"rotation-point\",\n \"row-gap\", \"ruby-align\", \"ruby-overhang\", \"ruby-position\", \"ruby-span\",\n \"scale\", \"scroll-behavior\", \"scroll-margin\", \"scroll-margin-block\",\n \"scroll-margin-block-end\", \"scroll-margin-block-start\", \"scroll-margin-bottom\",\n \"scroll-margin-inline\", \"scroll-margin-inline-end\",\n \"scroll-margin-inline-start\", \"scroll-margin-left\", \"scroll-margin-right\",\n \"scroll-margin-top\", \"scroll-padding\", \"scroll-padding-block\",\n \"scroll-padding-block-end\", \"scroll-padding-block-start\",\n \"scroll-padding-bottom\", \"scroll-padding-inline\", \"scroll-padding-inline-end\",\n \"scroll-padding-inline-start\", \"scroll-padding-left\", \"scroll-padding-right\",\n \"scroll-padding-top\", \"scroll-snap-align\", \"scroll-snap-type\",\n \"shape-image-threshold\", \"shape-inside\", \"shape-margin\", \"shape-outside\",\n \"size\", \"speak\", \"speak-as\", \"speak-header\", \"speak-numeral\",\n \"speak-punctuation\", \"speech-rate\", \"stress\", \"string-set\", \"tab-size\",\n \"table-layout\", \"target\", \"target-name\", \"target-new\", \"target-position\",\n \"text-align\", \"text-align-last\", \"text-combine-upright\", \"text-decoration\",\n \"text-decoration-color\", \"text-decoration-line\", \"text-decoration-skip\",\n \"text-decoration-skip-ink\", \"text-decoration-style\", \"text-emphasis\",\n \"text-emphasis-color\", \"text-emphasis-position\", \"text-emphasis-style\",\n \"text-height\", \"text-indent\", \"text-justify\", \"text-orientation\",\n \"text-outline\", \"text-overflow\", \"text-rendering\", \"text-shadow\",\n \"text-size-adjust\", \"text-space-collapse\", \"text-transform\",\n \"text-underline-position\", \"text-wrap\", \"top\", \"touch-action\", \"transform\", \"transform-origin\",\n \"transform-style\", \"transition\", \"transition-delay\", \"transition-duration\",\n \"transition-property\", \"transition-timing-function\", \"translate\",\n \"unicode-bidi\", \"user-select\", \"vertical-align\", \"visibility\", \"voice-balance\",\n \"voice-duration\", \"voice-family\", \"voice-pitch\", \"voice-range\", \"voice-rate\",\n \"voice-stress\", \"voice-volume\", \"volume\", \"white-space\", \"widows\", \"width\",\n \"will-change\", \"word-break\", \"word-spacing\", \"word-wrap\", \"writing-mode\", \"z-index\",\n // SVG-specific\n \"clip-path\", \"clip-rule\", \"mask\", \"enable-background\", \"filter\", \"flood-color\",\n \"flood-opacity\", \"lighting-color\", \"stop-color\", \"stop-opacity\", \"pointer-events\",\n \"color-interpolation\", \"color-interpolation-filters\",\n \"color-rendering\", \"fill\", \"fill-opacity\", \"fill-rule\", \"image-rendering\",\n \"marker\", \"marker-end\", \"marker-mid\", \"marker-start\", \"paint-order\", \"shape-rendering\", \"stroke\",\n \"stroke-dasharray\", \"stroke-dashoffset\", \"stroke-linecap\", \"stroke-linejoin\",\n \"stroke-miterlimit\", \"stroke-opacity\", \"stroke-width\", \"text-rendering\",\n \"baseline-shift\", \"dominant-baseline\", \"glyph-orientation-horizontal\",\n \"glyph-orientation-vertical\", \"text-anchor\", \"writing-mode\",\n ], propertyKeywords = keySet(propertyKeywords_);\n\n var nonStandardPropertyKeywords_ = [\n \"accent-color\", \"aspect-ratio\", \"border-block\", \"border-block-color\", \"border-block-end\",\n \"border-block-end-color\", \"border-block-end-style\", \"border-block-end-width\",\n \"border-block-start\", \"border-block-start-color\", \"border-block-start-style\",\n \"border-block-start-width\", \"border-block-style\", \"border-block-width\",\n \"border-inline\", \"border-inline-color\", \"border-inline-end\",\n \"border-inline-end-color\", \"border-inline-end-style\",\n \"border-inline-end-width\", \"border-inline-start\", \"border-inline-start-color\",\n \"border-inline-start-style\", \"border-inline-start-width\",\n \"border-inline-style\", \"border-inline-width\", \"content-visibility\", \"margin-block\",\n \"margin-block-end\", \"margin-block-start\", \"margin-inline\", \"margin-inline-end\",\n \"margin-inline-start\", \"overflow-anchor\", \"overscroll-behavior\", \"padding-block\", \"padding-block-end\",\n \"padding-block-start\", \"padding-inline\", \"padding-inline-end\",\n \"padding-inline-start\", \"scroll-snap-stop\", \"scrollbar-3d-light-color\",\n \"scrollbar-arrow-color\", \"scrollbar-base-color\", \"scrollbar-dark-shadow-color\",\n \"scrollbar-face-color\", \"scrollbar-highlight-color\", \"scrollbar-shadow-color\",\n \"scrollbar-track-color\", \"searchfield-cancel-button\", \"searchfield-decoration\",\n \"searchfield-results-button\", \"searchfield-results-decoration\", \"shape-inside\", \"zoom\"\n ], nonStandardPropertyKeywords = keySet(nonStandardPropertyKeywords_);\n\n var fontProperties_ = [\n \"font-display\", \"font-family\", \"src\", \"unicode-range\", \"font-variant\",\n \"font-feature-settings\", \"font-stretch\", \"font-weight\", \"font-style\"\n ], fontProperties = keySet(fontProperties_);\n\n var counterDescriptors_ = [\n \"additive-symbols\", \"fallback\", \"negative\", \"pad\", \"prefix\", \"range\",\n \"speak-as\", \"suffix\", \"symbols\", \"system\"\n ], counterDescriptors = keySet(counterDescriptors_);\n\n var colorKeywords_ = [\n \"aliceblue\", \"antiquewhite\", \"aqua\", \"aquamarine\", \"azure\", \"beige\",\n \"bisque\", \"black\", \"blanchedalmond\", \"blue\", \"blueviolet\", \"brown\",\n \"burlywood\", \"cadetblue\", \"chartreuse\", \"chocolate\", \"coral\", \"cornflowerblue\",\n \"cornsilk\", \"crimson\", \"cyan\", \"darkblue\", \"darkcyan\", \"darkgoldenrod\",\n \"darkgray\", \"darkgreen\", \"darkgrey\", \"darkkhaki\", \"darkmagenta\", \"darkolivegreen\",\n \"darkorange\", \"darkorchid\", \"darkred\", \"darksalmon\", \"darkseagreen\",\n \"darkslateblue\", \"darkslategray\", \"darkslategrey\", \"darkturquoise\", \"darkviolet\",\n \"deeppink\", \"deepskyblue\", \"dimgray\", \"dimgrey\", \"dodgerblue\", \"firebrick\",\n \"floralwhite\", \"forestgreen\", \"fuchsia\", \"gainsboro\", \"ghostwhite\",\n \"gold\", \"goldenrod\", \"gray\", \"grey\", \"green\", \"greenyellow\", \"honeydew\",\n \"hotpink\", \"indianred\", \"indigo\", \"ivory\", \"khaki\", \"lavender\",\n \"lavenderblush\", \"lawngreen\", \"lemonchiffon\", \"lightblue\", \"lightcoral\",\n \"lightcyan\", \"lightgoldenrodyellow\", \"lightgray\", \"lightgreen\", \"lightgrey\", \"lightpink\",\n \"lightsalmon\", \"lightseagreen\", \"lightskyblue\", \"lightslategray\", \"lightslategrey\",\n \"lightsteelblue\", \"lightyellow\", \"lime\", \"limegreen\", \"linen\", \"magenta\",\n \"maroon\", \"mediumaquamarine\", \"mediumblue\", \"mediumorchid\", \"mediumpurple\",\n \"mediumseagreen\", \"mediumslateblue\", \"mediumspringgreen\", \"mediumturquoise\",\n \"mediumvioletred\", \"midnightblue\", \"mintcream\", \"mistyrose\", \"moccasin\",\n \"navajowhite\", \"navy\", \"oldlace\", \"olive\", \"olivedrab\", \"orange\", \"orangered\",\n \"orchid\", \"palegoldenrod\", \"palegreen\", \"paleturquoise\", \"palevioletred\",\n \"papayawhip\", \"peachpuff\", \"peru\", \"pink\", \"plum\", \"powderblue\",\n \"purple\", \"rebeccapurple\", \"red\", \"rosybrown\", \"royalblue\", \"saddlebrown\",\n \"salmon\", \"sandybrown\", \"seagreen\", \"seashell\", \"sienna\", \"silver\", \"skyblue\",\n \"slateblue\", \"slategray\", \"slategrey\", \"snow\", \"springgreen\", \"steelblue\", \"tan\",\n \"teal\", \"thistle\", \"tomato\", \"turquoise\", \"violet\", \"wheat\", \"white\",\n \"whitesmoke\", \"yellow\", \"yellowgreen\"\n ], colorKeywords = keySet(colorKeywords_);\n\n var valueKeywords_ = [\n \"above\", \"absolute\", \"activeborder\", \"additive\", \"activecaption\", \"afar\",\n \"after-white-space\", \"ahead\", \"alias\", \"all\", \"all-scroll\", \"alphabetic\", \"alternate\",\n \"always\", \"amharic\", \"amharic-abegede\", \"antialiased\", \"appworkspace\",\n \"arabic-indic\", \"armenian\", \"asterisks\", \"attr\", \"auto\", \"auto-flow\", \"avoid\", \"avoid-column\", \"avoid-page\",\n \"avoid-region\", \"axis-pan\", \"background\", \"backwards\", \"baseline\", \"below\", \"bidi-override\", \"binary\",\n \"bengali\", \"blink\", \"block\", \"block-axis\", \"blur\", \"bold\", \"bolder\", \"border\", \"border-box\",\n \"both\", \"bottom\", \"break\", \"break-all\", \"break-word\", \"brightness\", \"bullets\", \"button\",\n \"buttonface\", \"buttonhighlight\", \"buttonshadow\", \"buttontext\", \"calc\", \"cambodian\",\n \"capitalize\", \"caps-lock-indicator\", \"caption\", \"captiontext\", \"caret\",\n \"cell\", \"center\", \"checkbox\", \"circle\", \"cjk-decimal\", \"cjk-earthly-branch\",\n \"cjk-heavenly-stem\", \"cjk-ideographic\", \"clear\", \"clip\", \"close-quote\",\n \"col-resize\", \"collapse\", \"color\", \"color-burn\", \"color-dodge\", \"column\", \"column-reverse\",\n \"compact\", \"condensed\", \"conic-gradient\", \"contain\", \"content\", \"contents\",\n \"content-box\", \"context-menu\", \"continuous\", \"contrast\", \"copy\", \"counter\", \"counters\", \"cover\", \"crop\",\n \"cross\", \"crosshair\", \"cubic-bezier\", \"currentcolor\", \"cursive\", \"cyclic\", \"darken\", \"dashed\", \"decimal\",\n \"decimal-leading-zero\", \"default\", \"default-button\", \"dense\", \"destination-atop\",\n \"destination-in\", \"destination-out\", \"destination-over\", \"devanagari\", \"difference\",\n \"disc\", \"discard\", \"disclosure-closed\", \"disclosure-open\", \"document\",\n \"dot-dash\", \"dot-dot-dash\",\n \"dotted\", \"double\", \"down\", \"drop-shadow\", \"e-resize\", \"ease\", \"ease-in\", \"ease-in-out\", \"ease-out\",\n \"element\", \"ellipse\", \"ellipsis\", \"embed\", \"end\", \"ethiopic\", \"ethiopic-abegede\",\n \"ethiopic-abegede-am-et\", \"ethiopic-abegede-gez\", \"ethiopic-abegede-ti-er\",\n \"ethiopic-abegede-ti-et\", \"ethiopic-halehame-aa-er\",\n \"ethiopic-halehame-aa-et\", \"ethiopic-halehame-am-et\",\n \"ethiopic-halehame-gez\", \"ethiopic-halehame-om-et\",\n \"ethiopic-halehame-sid-et\", \"ethiopic-halehame-so-et\",\n \"ethiopic-halehame-ti-er\", \"ethiopic-halehame-ti-et\", \"ethiopic-halehame-tig\",\n \"ethiopic-numeric\", \"ew-resize\", \"exclusion\", \"expanded\", \"extends\", \"extra-condensed\",\n \"extra-expanded\", \"fantasy\", \"fast\", \"fill\", \"fill-box\", \"fixed\", \"flat\", \"flex\", \"flex-end\", \"flex-start\", \"footnotes\",\n \"forwards\", \"from\", \"geometricPrecision\", \"georgian\", \"grayscale\", \"graytext\", \"grid\", \"groove\",\n \"gujarati\", \"gurmukhi\", \"hand\", \"hangul\", \"hangul-consonant\", \"hard-light\", \"hebrew\",\n \"help\", \"hidden\", \"hide\", \"higher\", \"highlight\", \"highlighttext\",\n \"hiragana\", \"hiragana-iroha\", \"horizontal\", \"hsl\", \"hsla\", \"hue\", \"hue-rotate\", \"icon\", \"ignore\",\n \"inactiveborder\", \"inactivecaption\", \"inactivecaptiontext\", \"infinite\",\n \"infobackground\", \"infotext\", \"inherit\", \"initial\", \"inline\", \"inline-axis\",\n \"inline-block\", \"inline-flex\", \"inline-grid\", \"inline-table\", \"inset\", \"inside\", \"intrinsic\", \"invert\",\n \"italic\", \"japanese-formal\", \"japanese-informal\", \"justify\", \"kannada\",\n \"katakana\", \"katakana-iroha\", \"keep-all\", \"khmer\",\n \"korean-hangul-formal\", \"korean-hanja-formal\", \"korean-hanja-informal\",\n \"landscape\", \"lao\", \"large\", \"larger\", \"left\", \"level\", \"lighter\", \"lighten\",\n \"line-through\", \"linear\", \"linear-gradient\", \"lines\", \"list-item\", \"listbox\", \"listitem\",\n \"local\", \"logical\", \"loud\", \"lower\", \"lower-alpha\", \"lower-armenian\",\n \"lower-greek\", \"lower-hexadecimal\", \"lower-latin\", \"lower-norwegian\",\n \"lower-roman\", \"lowercase\", \"ltr\", \"luminosity\", \"malayalam\", \"manipulation\", \"match\", \"matrix\", \"matrix3d\",\n \"media-play-button\", \"media-slider\", \"media-sliderthumb\",\n \"media-volume-slider\", \"media-volume-sliderthumb\", \"medium\",\n \"menu\", \"menulist\", \"menulist-button\",\n \"menutext\", \"message-box\", \"middle\", \"min-intrinsic\",\n \"mix\", \"mongolian\", \"monospace\", \"move\", \"multiple\", \"multiple_mask_images\", \"multiply\", \"myanmar\", \"n-resize\",\n \"narrower\", \"ne-resize\", \"nesw-resize\", \"no-close-quote\", \"no-drop\",\n \"no-open-quote\", \"no-repeat\", \"none\", \"normal\", \"not-allowed\", \"nowrap\",\n \"ns-resize\", \"numbers\", \"numeric\", \"nw-resize\", \"nwse-resize\", \"oblique\", \"octal\", \"opacity\", \"open-quote\",\n \"optimizeLegibility\", \"optimizeSpeed\", \"oriya\", \"oromo\", \"outset\",\n \"outside\", \"outside-shape\", \"overlay\", \"overline\", \"padding\", \"padding-box\",\n \"painted\", \"page\", \"paused\", \"persian\", \"perspective\", \"pinch-zoom\", \"plus-darker\", \"plus-lighter\",\n \"pointer\", \"polygon\", \"portrait\", \"pre\", \"pre-line\", \"pre-wrap\", \"preserve-3d\",\n \"progress\", \"push-button\", \"radial-gradient\", \"radio\", \"read-only\",\n \"read-write\", \"read-write-plaintext-only\", \"rectangle\", \"region\",\n \"relative\", \"repeat\", \"repeating-linear-gradient\", \"repeating-radial-gradient\",\n \"repeating-conic-gradient\", \"repeat-x\", \"repeat-y\", \"reset\", \"reverse\",\n \"rgb\", \"rgba\", \"ridge\", \"right\", \"rotate\", \"rotate3d\", \"rotateX\", \"rotateY\",\n \"rotateZ\", \"round\", \"row\", \"row-resize\", \"row-reverse\", \"rtl\", \"run-in\", \"running\",\n \"s-resize\", \"sans-serif\", \"saturate\", \"saturation\", \"scale\", \"scale3d\", \"scaleX\", \"scaleY\", \"scaleZ\", \"screen\",\n \"scroll\", \"scrollbar\", \"scroll-position\", \"se-resize\", \"searchfield\",\n \"searchfield-cancel-button\", \"searchfield-decoration\",\n \"searchfield-results-button\", \"searchfield-results-decoration\", \"self-start\", \"self-end\",\n \"semi-condensed\", \"semi-expanded\", \"separate\", \"sepia\", \"serif\", \"show\", \"sidama\",\n \"simp-chinese-formal\", \"simp-chinese-informal\", \"single\",\n \"skew\", \"skewX\", \"skewY\", \"skip-white-space\", \"slide\", \"slider-horizontal\",\n \"slider-vertical\", \"sliderthumb-horizontal\", \"sliderthumb-vertical\", \"slow\",\n \"small\", \"small-caps\", \"small-caption\", \"smaller\", \"soft-light\", \"solid\", \"somali\",\n \"source-atop\", \"source-in\", \"source-out\", \"source-over\", \"space\", \"space-around\", \"space-between\", \"space-evenly\", \"spell-out\", \"square\",\n \"square-button\", \"start\", \"static\", \"status-bar\", \"stretch\", \"stroke\", \"stroke-box\", \"sub\",\n \"subpixel-antialiased\", \"svg_masks\", \"super\", \"sw-resize\", \"symbolic\", \"symbols\", \"system-ui\", \"table\",\n \"table-caption\", \"table-cell\", \"table-column\", \"table-column-group\",\n \"table-footer-group\", \"table-header-group\", \"table-row\", \"table-row-group\",\n \"tamil\",\n \"telugu\", \"text\", \"text-bottom\", \"text-top\", \"textarea\", \"textfield\", \"thai\",\n \"thick\", \"thin\", \"threeddarkshadow\", \"threedface\", \"threedhighlight\",\n \"threedlightshadow\", \"threedshadow\", \"tibetan\", \"tigre\", \"tigrinya-er\",\n \"tigrinya-er-abegede\", \"tigrinya-et\", \"tigrinya-et-abegede\", \"to\", \"top\",\n \"trad-chinese-formal\", \"trad-chinese-informal\", \"transform\",\n \"translate\", \"translate3d\", \"translateX\", \"translateY\", \"translateZ\",\n \"transparent\", \"ultra-condensed\", \"ultra-expanded\", \"underline\", \"unidirectional-pan\", \"unset\", \"up\",\n \"upper-alpha\", \"upper-armenian\", \"upper-greek\", \"upper-hexadecimal\",\n \"upper-latin\", \"upper-norwegian\", \"upper-roman\", \"uppercase\", \"urdu\", \"url\",\n \"var\", \"vertical\", \"vertical-text\", \"view-box\", \"visible\", \"visibleFill\", \"visiblePainted\",\n \"visibleStroke\", \"visual\", \"w-resize\", \"wait\", \"wave\", \"wider\",\n \"window\", \"windowframe\", \"windowtext\", \"words\", \"wrap\", \"wrap-reverse\", \"x-large\", \"x-small\", \"xor\",\n \"xx-large\", \"xx-small\"\n ], valueKeywords = keySet(valueKeywords_);\n\n var allWords = documentTypes_.concat(mediaTypes_).concat(mediaFeatures_).concat(mediaValueKeywords_)\n .concat(propertyKeywords_).concat(nonStandardPropertyKeywords_).concat(colorKeywords_)\n .concat(valueKeywords_);\n CodeMirror.registerHelper(\"hintWords\", \"css\", allWords);\n\n function tokenCComment(stream, state) {\n var maybeEnd = false, ch;\n while ((ch = stream.next()) != null) {\n if (maybeEnd && ch == \"/\") {\n state.tokenize = null;\n break;\n }\n maybeEnd = (ch == \"*\");\n }\n return [\"comment\", \"comment\"];\n }\n\n CodeMirror.defineMIME(\"text/css\", {\n documentTypes: documentTypes,\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n mediaValueKeywords: mediaValueKeywords,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n fontProperties: fontProperties,\n counterDescriptors: counterDescriptors,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n tokenHooks: {\n \"/\": function(stream, state) {\n if (!stream.eat(\"*\")) return false;\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n }\n },\n name: \"css\"\n });\n\n CodeMirror.defineMIME(\"text/x-scss\", {\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n mediaValueKeywords: mediaValueKeywords,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n fontProperties: fontProperties,\n allowNested: true,\n lineComment: \"//\",\n tokenHooks: {\n \"/\": function(stream, state) {\n if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return [\"comment\", \"comment\"];\n } else if (stream.eat(\"*\")) {\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n } else {\n return [\"operator\", \"operator\"];\n }\n },\n \":\": function(stream) {\n if (stream.match(/^\\s*\\{/, false))\n return [null, null]\n return false;\n },\n \"$\": function(stream) {\n stream.match(/^[\\w-]+/);\n if (stream.match(/^\\s*:/, false))\n return [\"variable-2\", \"variable-definition\"];\n return [\"variable-2\", \"variable\"];\n },\n \"#\": function(stream) {\n if (!stream.eat(\"{\")) return false;\n return [null, \"interpolation\"];\n }\n },\n name: \"css\",\n helperType: \"scss\"\n });\n\n CodeMirror.defineMIME(\"text/x-less\", {\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n mediaValueKeywords: mediaValueKeywords,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n fontProperties: fontProperties,\n allowNested: true,\n lineComment: \"//\",\n tokenHooks: {\n \"/\": function(stream, state) {\n if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return [\"comment\", \"comment\"];\n } else if (stream.eat(\"*\")) {\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n } else {\n return [\"operator\", \"operator\"];\n }\n },\n \"@\": function(stream) {\n if (stream.eat(\"{\")) return [null, \"interpolation\"];\n if (stream.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\\b/i, false)) return false;\n stream.eatWhile(/[\\w\\\\\\-]/);\n if (stream.match(/^\\s*:/, false))\n return [\"variable-2\", \"variable-definition\"];\n return [\"variable-2\", \"variable\"];\n },\n \"&\": function() {\n return [\"atom\", \"atom\"];\n }\n },\n name: \"css\",\n helperType: \"less\"\n });\n\n CodeMirror.defineMIME(\"text/x-gss\", {\n documentTypes: documentTypes,\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n fontProperties: fontProperties,\n counterDescriptors: counterDescriptors,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n supportsAtComponent: true,\n tokenHooks: {\n \"/\": function(stream, state) {\n if (!stream.eat(\"*\")) return false;\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n }\n },\n name: \"css\",\n helperType: \"gss\"\n });\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/5/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"), require(\"../xml/xml\"), require(\"../javascript/javascript\"), require(\"../css/css\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\", \"../xml/xml\", \"../javascript/javascript\", \"../css/css\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n var defaultTags = {\n script: [\n [\"lang\", /(javascript|babel)/i, \"javascript\"],\n [\"type\", /^(?:text|application)\\/(?:x-)?(?:java|ecma)script$|^module$|^$/i, \"javascript\"],\n [\"type\", /./, \"text/plain\"],\n [null, null, \"javascript\"]\n ],\n style: [\n [\"lang\", /^css$/i, \"css\"],\n [\"type\", /^(text\\/)?(x-)?(stylesheet|css)$/i, \"css\"],\n [\"type\", /./, \"text/plain\"],\n [null, null, \"css\"]\n ]\n };\n\n function maybeBackup(stream, pat, style) {\n var cur = stream.current(), close = cur.search(pat);\n if (close > -1) {\n stream.backUp(cur.length - close);\n } else if (cur.match(/<\\/?$/)) {\n stream.backUp(cur.length);\n if (!stream.match(pat, false)) stream.match(cur);\n }\n return style;\n }\n\n var attrRegexpCache = {};\n function getAttrRegexp(attr) {\n var regexp = attrRegexpCache[attr];\n if (regexp) return regexp;\n return attrRegexpCache[attr] = new RegExp(\"\\\\s+\" + attr + \"\\\\s*=\\\\s*('|\\\")?([^'\\\"]+)('|\\\")?\\\\s*\");\n }\n\n function getAttrValue(text, attr) {\n var match = text.match(getAttrRegexp(attr))\n return match ? /^\\s*(.*?)\\s*$/.exec(match[2])[1] : \"\"\n }\n\n function getTagRegexp(tagName, anchored) {\n return new RegExp((anchored ? \"^\" : \"\") + \"<\\/\\\\s*\" + tagName + \"\\\\s*>\", \"i\");\n }\n\n function addTags(from, to) {\n for (var tag in from) {\n var dest = to[tag] || (to[tag] = []);\n var source = from[tag];\n for (var i = source.length - 1; i >= 0; i--)\n dest.unshift(source[i])\n }\n }\n\n function findMatchingMode(tagInfo, tagText) {\n for (var i = 0; i < tagInfo.length; i++) {\n var spec = tagInfo[i];\n if (!spec[0] || spec[1].test(getAttrValue(tagText, spec[0]))) return spec[2];\n }\n }\n\n CodeMirror.defineMode(\"htmlmixed\", function (config, parserConfig) {\n var htmlMode = CodeMirror.getMode(config, {\n name: \"xml\",\n htmlMode: true,\n multilineTagIndentFactor: parserConfig.multilineTagIndentFactor,\n multilineTagIndentPastTag: parserConfig.multilineTagIndentPastTag,\n allowMissingTagName: parserConfig.allowMissingTagName,\n });\n\n var tags = {};\n var configTags = parserConfig && parserConfig.tags, configScript = parserConfig && parserConfig.scriptTypes;\n addTags(defaultTags, tags);\n if (configTags) addTags(configTags, tags);\n if (configScript) for (var i = configScript.length - 1; i >= 0; i--)\n tags.script.unshift([\"type\", configScript[i].matches, configScript[i].mode])\n\n function html(stream, state) {\n var style = htmlMode.token(stream, state.htmlState), tag = /\\btag\\b/.test(style), tagName\n if (tag && !/[<>\\s\\/]/.test(stream.current()) &&\n (tagName = state.htmlState.tagName && state.htmlState.tagName.toLowerCase()) &&\n tags.hasOwnProperty(tagName)) {\n state.inTag = tagName + \" \"\n } else if (state.inTag && tag && />$/.test(stream.current())) {\n var inTag = /^([\\S]+) (.*)/.exec(state.inTag)\n state.inTag = null\n var modeSpec = stream.current() == \">\" && findMatchingMode(tags[inTag[1]], inTag[2])\n var mode = CodeMirror.getMode(config, modeSpec)\n var endTagA = getTagRegexp(inTag[1], true), endTag = getTagRegexp(inTag[1], false);\n state.token = function (stream, state) {\n if (stream.match(endTagA, false)) {\n state.token = html;\n state.localState = state.localMode = null;\n return null;\n }\n return maybeBackup(stream, endTag, state.localMode.token(stream, state.localState));\n };\n state.localMode = mode;\n state.localState = CodeMirror.startState(mode, htmlMode.indent(state.htmlState, \"\", \"\"));\n } else if (state.inTag) {\n state.inTag += stream.current()\n if (stream.eol()) state.inTag += \" \"\n }\n return style;\n };\n\n return {\n startState: function () {\n var state = CodeMirror.startState(htmlMode);\n return {token: html, inTag: null, localMode: null, localState: null, htmlState: state};\n },\n\n copyState: function (state) {\n var local;\n if (state.localState) {\n local = CodeMirror.copyState(state.localMode, state.localState);\n }\n return {token: state.token, inTag: state.inTag,\n localMode: state.localMode, localState: local,\n htmlState: CodeMirror.copyState(htmlMode, state.htmlState)};\n },\n\n token: function (stream, state) {\n return state.token(stream, state);\n },\n\n indent: function (state, textAfter, line) {\n if (!state.localMode || /^\\s*<\\//.test(textAfter))\n return htmlMode.indent(state.htmlState, textAfter, line);\n else if (state.localMode.indent)\n return state.localMode.indent(state.localState, textAfter, line);\n else\n return CodeMirror.Pass;\n },\n\n innerMode: function (state) {\n return {state: state.localState || state.htmlState, mode: state.localMode || htmlMode};\n }\n };\n }, \"xml\", \"javascript\", \"css\");\n\n CodeMirror.defineMIME(\"text/html\", \"htmlmixed\");\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/5/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"javascript\", function(config, parserConfig) {\n var indentUnit = config.indentUnit;\n var statementIndent = parserConfig.statementIndent;\n var jsonldMode = parserConfig.jsonld;\n var jsonMode = parserConfig.json || jsonldMode;\n var trackScope = parserConfig.trackScope !== false\n var isTS = parserConfig.typescript;\n var wordRE = parserConfig.wordCharacters || /[\\w$\\xa1-\\uffff]/;\n\n // Tokenizer\n\n var keywords = function(){\n function kw(type) {return {type: type, style: \"keyword\"};}\n var A = kw(\"keyword a\"), B = kw(\"keyword b\"), C = kw(\"keyword c\"), D = kw(\"keyword d\");\n var operator = kw(\"operator\"), atom = {type: \"atom\", style: \"atom\"};\n\n return {\n \"if\": kw(\"if\"), \"while\": A, \"with\": A, \"else\": B, \"do\": B, \"try\": B, \"finally\": B,\n \"return\": D, \"break\": D, \"continue\": D, \"new\": kw(\"new\"), \"delete\": C, \"void\": C, \"throw\": C,\n \"debugger\": kw(\"debugger\"), \"var\": kw(\"var\"), \"const\": kw(\"var\"), \"let\": kw(\"var\"),\n \"function\": kw(\"function\"), \"catch\": kw(\"catch\"),\n \"for\": kw(\"for\"), \"switch\": kw(\"switch\"), \"case\": kw(\"case\"), \"default\": kw(\"default\"),\n \"in\": operator, \"typeof\": operator, \"instanceof\": operator,\n \"true\": atom, \"false\": atom, \"null\": atom, \"undefined\": atom, \"NaN\": atom, \"Infinity\": atom,\n \"this\": kw(\"this\"), \"class\": kw(\"class\"), \"super\": kw(\"atom\"),\n \"yield\": C, \"export\": kw(\"export\"), \"import\": kw(\"import\"), \"extends\": C,\n \"await\": C\n };\n }();\n\n var isOperatorChar = /[+\\-*&%=<>!?|~^@]/;\n var isJsonldKeyword = /^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)\"/;\n\n function readRegexp(stream) {\n var escaped = false, next, inSet = false;\n while ((next = stream.next()) != null) {\n if (!escaped) {\n if (next == \"/\" && !inSet) return;\n if (next == \"[\") inSet = true;\n else if (inSet && next == \"]\") inSet = false;\n }\n escaped = !escaped && next == \"\\\\\";\n }\n }\n\n // Used as scratch variables to communicate multiple values without\n // consing up tons of objects.\n var type, content;\n function ret(tp, style, cont) {\n type = tp; content = cont;\n return style;\n }\n function tokenBase(stream, state) {\n var ch = stream.next();\n if (ch == '\"' || ch == \"'\") {\n state.tokenize = tokenString(ch);\n return state.tokenize(stream, state);\n } else if (ch == \".\" && stream.match(/^\\d[\\d_]*(?:[eE][+\\-]?[\\d_]+)?/)) {\n return ret(\"number\", \"number\");\n } else if (ch == \".\" && stream.match(\"..\")) {\n return ret(\"spread\", \"meta\");\n } else if (/[\\[\\]{}\\(\\),;\\:\\.]/.test(ch)) {\n return ret(ch);\n } else if (ch == \"=\" && stream.eat(\">\")) {\n return ret(\"=>\", \"operator\");\n } else if (ch == \"0\" && stream.match(/^(?:x[\\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/)) {\n return ret(\"number\", \"number\");\n } else if (/\\d/.test(ch)) {\n stream.match(/^[\\d_]*(?:n|(?:\\.[\\d_]*)?(?:[eE][+\\-]?[\\d_]+)?)?/);\n return ret(\"number\", \"number\");\n } else if (ch == \"/\") {\n if (stream.eat(\"*\")) {\n state.tokenize = tokenComment;\n return tokenComment(stream, state);\n } else if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return ret(\"comment\", \"comment\");\n } else if (expressionAllowed(stream, state, 1)) {\n readRegexp(stream);\n stream.match(/^\\b(([gimyus])(?![gimyus]*\\2))+\\b/);\n return ret(\"regexp\", \"string-2\");\n } else {\n stream.eat(\"=\");\n return ret(\"operator\", \"operator\", stream.current());\n }\n } else if (ch == \"`\") {\n state.tokenize = tokenQuasi;\n return tokenQuasi(stream, state);\n } else if (ch == \"#\" && stream.peek() == \"!\") {\n stream.skipToEnd();\n return ret(\"meta\", \"meta\");\n } else if (ch == \"#\" && stream.eatWhile(wordRE)) {\n return ret(\"variable\", \"property\")\n } else if (ch == \"<\" && stream.match(\"!--\") ||\n (ch == \"-\" && stream.match(\"->\") && !/\\S/.test(stream.string.slice(0, stream.start)))) {\n stream.skipToEnd()\n return ret(\"comment\", \"comment\")\n } else if (isOperatorChar.test(ch)) {\n if (ch != \">\" || !state.lexical || state.lexical.type != \">\") {\n if (stream.eat(\"=\")) {\n if (ch == \"!\" || ch == \"=\") stream.eat(\"=\")\n } else if (/[<>*+\\-|&?]/.test(ch)) {\n stream.eat(ch)\n if (ch == \">\") stream.eat(ch)\n }\n }\n if (ch == \"?\" && stream.eat(\".\")) return ret(\".\")\n return ret(\"operator\", \"operator\", stream.current());\n } else if (wordRE.test(ch)) {\n stream.eatWhile(wordRE);\n var word = stream.current()\n if (state.lastType != \".\") {\n if (keywords.propertyIsEnumerable(word)) {\n var kw = keywords[word]\n return ret(kw.type, kw.style, word)\n }\n if (word == \"async\" && stream.match(/^(\\s|\\/\\*([^*]|\\*(?!\\/))*?\\*\\/)*[\\[\\(\\w]/, false))\n return ret(\"async\", \"keyword\", word)\n }\n return ret(\"variable\", \"variable\", word)\n }\n }\n\n function tokenString(quote) {\n return function(stream, state) {\n var escaped = false, next;\n if (jsonldMode && stream.peek() == \"@\" && stream.match(isJsonldKeyword)){\n state.tokenize = tokenBase;\n return ret(\"jsonld-keyword\", \"meta\");\n }\n while ((next = stream.next()) != null) {\n if (next == quote && !escaped) break;\n escaped = !escaped && next == \"\\\\\";\n }\n if (!escaped) state.tokenize = tokenBase;\n return ret(\"string\", \"string\");\n };\n }\n\n function tokenComment(stream, state) {\n var maybeEnd = false, ch;\n while (ch = stream.next()) {\n if (ch == \"/\" && maybeEnd) {\n state.tokenize = tokenBase;\n break;\n }\n maybeEnd = (ch == \"*\");\n }\n return ret(\"comment\", \"comment\");\n }\n\n function tokenQuasi(stream, state) {\n var escaped = false, next;\n while ((next = stream.next()) != null) {\n if (!escaped && (next == \"`\" || next == \"$\" && stream.eat(\"{\"))) {\n state.tokenize = tokenBase;\n break;\n }\n escaped = !escaped && next == \"\\\\\";\n }\n return ret(\"quasi\", \"string-2\", stream.current());\n }\n\n var brackets = \"([{}])\";\n // This is a crude lookahead trick to try and notice that we're\n // parsing the argument patterns for a fat-arrow function before we\n // actually hit the arrow token. It only works if the arrow is on\n // the same line as the arguments and there's no strange noise\n // (comments) in between. Fallback is to only notice when we hit the\n // arrow, and not declare the arguments as locals for the arrow\n // body.\n function findFatArrow(stream, state) {\n if (state.fatArrowAt) state.fatArrowAt = null;\n var arrow = stream.string.indexOf(\"=>\", stream.start);\n if (arrow < 0) return;\n\n if (isTS) { // Try to skip TypeScript return type declarations after the arguments\n var m = /:\\s*(?:\\w+(?:<[^>]*>|\\[\\])?|\\{[^}]*\\})\\s*$/.exec(stream.string.slice(stream.start, arrow))\n if (m) arrow = m.index\n }\n\n var depth = 0, sawSomething = false;\n for (var pos = arrow - 1; pos >= 0; --pos) {\n var ch = stream.string.charAt(pos);\n var bracket = brackets.indexOf(ch);\n if (bracket >= 0 && bracket < 3) {\n if (!depth) { ++pos; break; }\n if (--depth == 0) { if (ch == \"(\") sawSomething = true; break; }\n } else if (bracket >= 3 && bracket < 6) {\n ++depth;\n } else if (wordRE.test(ch)) {\n sawSomething = true;\n } else if (/[\"'\\/`]/.test(ch)) {\n for (;; --pos) {\n if (pos == 0) return\n var next = stream.string.charAt(pos - 1)\n if (next == ch && stream.string.charAt(pos - 2) != \"\\\\\") { pos--; break }\n }\n } else if (sawSomething && !depth) {\n ++pos;\n break;\n }\n }\n if (sawSomething && !depth) state.fatArrowAt = pos;\n }\n\n // Parser\n\n var atomicTypes = {\"atom\": true, \"number\": true, \"variable\": true, \"string\": true,\n \"regexp\": true, \"this\": true, \"import\": true, \"jsonld-keyword\": true};\n\n function JSLexical(indented, column, type, align, prev, info) {\n this.indented = indented;\n this.column = column;\n this.type = type;\n this.prev = prev;\n this.info = info;\n if (align != null) this.align = align;\n }\n\n function inScope(state, varname) {\n if (!trackScope) return false\n for (var v = state.localVars; v; v = v.next)\n if (v.name == varname) return true;\n for (var cx = state.context; cx; cx = cx.prev) {\n for (var v = cx.vars; v; v = v.next)\n if (v.name == varname) return true;\n }\n }\n\n function parseJS(state, style, type, content, stream) {\n var cc = state.cc;\n // Communicate our context to the combinators.\n // (Less wasteful than consing up a hundred closures on every call.)\n cx.state = state; cx.stream = stream; cx.marked = null, cx.cc = cc; cx.style = style;\n\n if (!state.lexical.hasOwnProperty(\"align\"))\n state.lexical.align = true;\n\n while(true) {\n var combinator = cc.length ? cc.pop() : jsonMode ? expression : statement;\n if (combinator(type, content)) {\n while(cc.length && cc[cc.length - 1].lex)\n cc.pop()();\n if (cx.marked) return cx.marked;\n if (type == \"variable\" && inScope(state, content)) return \"variable-2\";\n return style;\n }\n }\n }\n\n // Combinator utils\n\n var cx = {state: null, column: null, marked: null, cc: null};\n function pass() {\n for (var i = arguments.length - 1; i >= 0; i--) cx.cc.push(arguments[i]);\n }\n function cont() {\n pass.apply(null, arguments);\n return true;\n }\n function inList(name, list) {\n for (var v = list; v; v = v.next) if (v.name == name) return true\n return false;\n }\n function register(varname) {\n var state = cx.state;\n cx.marked = \"def\";\n if (!trackScope) return\n if (state.context) {\n if (state.lexical.info == \"var\" && state.context && state.context.block) {\n // FIXME function decls are also not block scoped\n var newContext = registerVarScoped(varname, state.context)\n if (newContext != null) {\n state.context = newContext\n return\n }\n } else if (!inList(varname, state.localVars)) {\n state.localVars = new Var(varname, state.localVars)\n return\n }\n }\n // Fall through means this is global\n if (parserConfig.globalVars && !inList(varname, state.globalVars))\n state.globalVars = new Var(varname, state.globalVars)\n }\n function registerVarScoped(varname, context) {\n if (!context) {\n return null\n } else if (context.block) {\n var inner = registerVarScoped(varname, context.prev)\n if (!inner) return null\n if (inner == context.prev) return context\n return new Context(inner, context.vars, true)\n } else if (inList(varname, context.vars)) {\n return context\n } else {\n return new Context(context.prev, new Var(varname, context.vars), false)\n }\n }\n\n function isModifier(name) {\n return name == \"public\" || name == \"private\" || name == \"protected\" || name == \"abstract\" || name == \"readonly\"\n }\n\n // Combinators\n\n function Context(prev, vars, block) { this.prev = prev; this.vars = vars; this.block = block }\n function Var(name, next) { this.name = name; this.next = next }\n\n var defaultVars = new Var(\"this\", new Var(\"arguments\", null))\n function pushcontext() {\n cx.state.context = new Context(cx.state.context, cx.state.localVars, false)\n cx.state.localVars = defaultVars\n }\n function pushblockcontext() {\n cx.state.context = new Context(cx.state.context, cx.state.localVars, true)\n cx.state.localVars = null\n }\n pushcontext.lex = pushblockcontext.lex = true\n function popcontext() {\n cx.state.localVars = cx.state.context.vars\n cx.state.context = cx.state.context.prev\n }\n popcontext.lex = true\n function pushlex(type, info) {\n var result = function() {\n var state = cx.state, indent = state.indented;\n if (state.lexical.type == \"stat\") indent = state.lexical.indented;\n else for (var outer = state.lexical; outer && outer.type == \")\" && outer.align; outer = outer.prev)\n indent = outer.indented;\n state.lexical = new JSLexical(indent, cx.stream.column(), type, null, state.lexical, info);\n };\n result.lex = true;\n return result;\n }\n function poplex() {\n var state = cx.state;\n if (state.lexical.prev) {\n if (state.lexical.type == \")\")\n state.indented = state.lexical.indented;\n state.lexical = state.lexical.prev;\n }\n }\n poplex.lex = true;\n\n function expect(wanted) {\n function exp(type) {\n if (type == wanted) return cont();\n else if (wanted == \";\" || type == \"}\" || type == \")\" || type == \"]\") return pass();\n else return cont(exp);\n };\n return exp;\n }\n\n function statement(type, value) {\n if (type == \"var\") return cont(pushlex(\"vardef\", value), vardef, expect(\";\"), poplex);\n if (type == \"keyword a\") return cont(pushlex(\"form\"), parenExpr, statement, poplex);\n if (type == \"keyword b\") return cont(pushlex(\"form\"), statement, poplex);\n if (type == \"keyword d\") return cx.stream.match(/^\\s*$/, false) ? cont() : cont(pushlex(\"stat\"), maybeexpression, expect(\";\"), poplex);\n if (type == \"debugger\") return cont(expect(\";\"));\n if (type == \"{\") return cont(pushlex(\"}\"), pushblockcontext, block, poplex, popcontext);\n if (type == \";\") return cont();\n if (type == \"if\") {\n if (cx.state.lexical.info == \"else\" && cx.state.cc[cx.state.cc.length - 1] == poplex)\n cx.state.cc.pop()();\n return cont(pushlex(\"form\"), parenExpr, statement, poplex, maybeelse);\n }\n if (type == \"function\") return cont(functiondef);\n if (type == \"for\") return cont(pushlex(\"form\"), pushblockcontext, forspec, statement, popcontext, poplex);\n if (type == \"class\" || (isTS && value == \"interface\")) {\n cx.marked = \"keyword\"\n return cont(pushlex(\"form\", type == \"class\" ? type : value), className, poplex)\n }\n if (type == \"variable\") {\n if (isTS && value == \"declare\") {\n cx.marked = \"keyword\"\n return cont(statement)\n } else if (isTS && (value == \"module\" || value == \"enum\" || value == \"type\") && cx.stream.match(/^\\s*\\w/, false)) {\n cx.marked = \"keyword\"\n if (value == \"enum\") return cont(enumdef);\n else if (value == \"type\") return cont(typename, expect(\"operator\"), typeexpr, expect(\";\"));\n else return cont(pushlex(\"form\"), pattern, expect(\"{\"), pushlex(\"}\"), block, poplex, poplex)\n } else if (isTS && value == \"namespace\") {\n cx.marked = \"keyword\"\n return cont(pushlex(\"form\"), expression, statement, poplex)\n } else if (isTS && value == \"abstract\") {\n cx.marked = \"keyword\"\n return cont(statement)\n } else {\n return cont(pushlex(\"stat\"), maybelabel);\n }\n }\n if (type == \"switch\") return cont(pushlex(\"form\"), parenExpr, expect(\"{\"), pushlex(\"}\", \"switch\"), pushblockcontext,\n block, poplex, poplex, popcontext);\n if (type == \"case\") return cont(expression, expect(\":\"));\n if (type == \"default\") return cont(expect(\":\"));\n if (type == \"catch\") return cont(pushlex(\"form\"), pushcontext, maybeCatchBinding, statement, poplex, popcontext);\n if (type == \"export\") return cont(pushlex(\"stat\"), afterExport, poplex);\n if (type == \"import\") return cont(pushlex(\"stat\"), afterImport, poplex);\n if (type == \"async\") return cont(statement)\n if (value == \"@\") return cont(expression, statement)\n return pass(pushlex(\"stat\"), expression, expect(\";\"), poplex);\n }\n function maybeCatchBinding(type) {\n if (type == \"(\") return cont(funarg, expect(\")\"))\n }\n function expression(type, value) {\n return expressionInner(type, value, false);\n }\n function expressionNoComma(type, value) {\n return expressionInner(type, value, true);\n }\n function parenExpr(type) {\n if (type != \"(\") return pass()\n return cont(pushlex(\")\"), maybeexpression, expect(\")\"), poplex)\n }\n function expressionInner(type, value, noComma) {\n if (cx.state.fatArrowAt == cx.stream.start) {\n var body = noComma ? arrowBodyNoComma : arrowBody;\n if (type == \"(\") return cont(pushcontext, pushlex(\")\"), commasep(funarg, \")\"), poplex, expect(\"=>\"), body, popcontext);\n else if (type == \"variable\") return pass(pushcontext, pattern, expect(\"=>\"), body, popcontext);\n }\n\n var maybeop = noComma ? maybeoperatorNoComma : maybeoperatorComma;\n if (atomicTypes.hasOwnProperty(type)) return cont(maybeop);\n if (type == \"function\") return cont(functiondef, maybeop);\n if (type == \"class\" || (isTS && value == \"interface\")) { cx.marked = \"keyword\"; return cont(pushlex(\"form\"), classExpression, poplex); }\n if (type == \"keyword c\" || type == \"async\") return cont(noComma ? expressionNoComma : expression);\n if (type == \"(\") return cont(pushlex(\")\"), maybeexpression, expect(\")\"), poplex, maybeop);\n if (type == \"operator\" || type == \"spread\") return cont(noComma ? expressionNoComma : expression);\n if (type == \"[\") return cont(pushlex(\"]\"), arrayLiteral, poplex, maybeop);\n if (type == \"{\") return contCommasep(objprop, \"}\", null, maybeop);\n if (type == \"quasi\") return pass(quasi, maybeop);\n if (type == \"new\") return cont(maybeTarget(noComma));\n return cont();\n }\n function maybeexpression(type) {\n if (type.match(/[;\\}\\)\\],]/)) return pass();\n return pass(expression);\n }\n\n function maybeoperatorComma(type, value) {\n if (type == \",\") return cont(maybeexpression);\n return maybeoperatorNoComma(type, value, false);\n }\n function maybeoperatorNoComma(type, value, noComma) {\n var me = noComma == false ? maybeoperatorComma : maybeoperatorNoComma;\n var expr = noComma == false ? expression : expressionNoComma;\n if (type == \"=>\") return cont(pushcontext, noComma ? arrowBodyNoComma : arrowBody, popcontext);\n if (type == \"operator\") {\n if (/\\+\\+|--/.test(value) || isTS && value == \"!\") return cont(me);\n if (isTS && value == \"<\" && cx.stream.match(/^([^<>]|<[^<>]*>)*>\\s*\\(/, false))\n return cont(pushlex(\">\"), commasep(typeexpr, \">\"), poplex, me);\n if (value == \"?\") return cont(expression, expect(\":\"), expr);\n return cont(expr);\n }\n if (type == \"quasi\") { return pass(quasi, me); }\n if (type == \";\") return;\n if (type == \"(\") return contCommasep(expressionNoComma, \")\", \"call\", me);\n if (type == \".\") return cont(property, me);\n if (type == \"[\") return cont(pushlex(\"]\"), maybeexpression, expect(\"]\"), poplex, me);\n if (isTS && value == \"as\") { cx.marked = \"keyword\"; return cont(typeexpr, me) }\n if (type == \"regexp\") {\n cx.state.lastType = cx.marked = \"operator\"\n cx.stream.backUp(cx.stream.pos - cx.stream.start - 1)\n return cont(expr)\n }\n }\n function quasi(type, value) {\n if (type != \"quasi\") return pass();\n if (value.slice(value.length - 2) != \"${\") return cont(quasi);\n return cont(maybeexpression, continueQuasi);\n }\n function continueQuasi(type) {\n if (type == \"}\") {\n cx.marked = \"string-2\";\n cx.state.tokenize = tokenQuasi;\n return cont(quasi);\n }\n }\n function arrowBody(type) {\n findFatArrow(cx.stream, cx.state);\n return pass(type == \"{\" ? statement : expression);\n }\n function arrowBodyNoComma(type) {\n findFatArrow(cx.stream, cx.state);\n return pass(type == \"{\" ? statement : expressionNoComma);\n }\n function maybeTarget(noComma) {\n return function(type) {\n if (type == \".\") return cont(noComma ? targetNoComma : target);\n else if (type == \"variable\" && isTS) return cont(maybeTypeArgs, noComma ? maybeoperatorNoComma : maybeoperatorComma)\n else return pass(noComma ? expressionNoComma : expression);\n };\n }\n function target(_, value) {\n if (value == \"target\") { cx.marked = \"keyword\"; return cont(maybeoperatorComma); }\n }\n function targetNoComma(_, value) {\n if (value == \"target\") { cx.marked = \"keyword\"; return cont(maybeoperatorNoComma); }\n }\n function maybelabel(type) {\n if (type == \":\") return cont(poplex, statement);\n return pass(maybeoperatorComma, expect(\";\"), poplex);\n }\n function property(type) {\n if (type == \"variable\") {cx.marked = \"property\"; return cont();}\n }\n function objprop(type, value) {\n if (type == \"async\") {\n cx.marked = \"property\";\n return cont(objprop);\n } else if (type == \"variable\" || cx.style == \"keyword\") {\n cx.marked = \"property\";\n if (value == \"get\" || value == \"set\") return cont(getterSetter);\n var m // Work around fat-arrow-detection complication for detecting typescript typed arrow params\n if (isTS && cx.state.fatArrowAt == cx.stream.start && (m = cx.stream.match(/^\\s*:\\s*/, false)))\n cx.state.fatArrowAt = cx.stream.pos + m[0].length\n return cont(afterprop);\n } else if (type == \"number\" || type == \"string\") {\n cx.marked = jsonldMode ? \"property\" : (cx.style + \" property\");\n return cont(afterprop);\n } else if (type == \"jsonld-keyword\") {\n return cont(afterprop);\n } else if (isTS && isModifier(value)) {\n cx.marked = \"keyword\"\n return cont(objprop)\n } else if (type == \"[\") {\n return cont(expression, maybetype, expect(\"]\"), afterprop);\n } else if (type == \"spread\") {\n return cont(expressionNoComma, afterprop);\n } else if (value == \"*\") {\n cx.marked = \"keyword\";\n return cont(objprop);\n } else if (type == \":\") {\n return pass(afterprop)\n }\n }\n function getterSetter(type) {\n if (type != \"variable\") return pass(afterprop);\n cx.marked = \"property\";\n return cont(functiondef);\n }\n function afterprop(type) {\n if (type == \":\") return cont(expressionNoComma);\n if (type == \"(\") return pass(functiondef);\n }\n function commasep(what, end, sep) {\n function proceed(type, value) {\n if (sep ? sep.indexOf(type) > -1 : type == \",\") {\n var lex = cx.state.lexical;\n if (lex.info == \"call\") lex.pos = (lex.pos || 0) + 1;\n return cont(function(type, value) {\n if (type == end || value == end) return pass()\n return pass(what)\n }, proceed);\n }\n if (type == end || value == end) return cont();\n if (sep && sep.indexOf(\";\") > -1) return pass(what)\n return cont(expect(end));\n }\n return function(type, value) {\n if (type == end || value == end) return cont();\n return pass(what, proceed);\n };\n }\n function contCommasep(what, end, info) {\n for (var i = 3; i < arguments.length; i++)\n cx.cc.push(arguments[i]);\n return cont(pushlex(end, info), commasep(what, end), poplex);\n }\n function block(type) {\n if (type == \"}\") return cont();\n return pass(statement, block);\n }\n function maybetype(type, value) {\n if (isTS) {\n if (type == \":\") return cont(typeexpr);\n if (value == \"?\") return cont(maybetype);\n }\n }\n function maybetypeOrIn(type, value) {\n if (isTS && (type == \":\" || value == \"in\")) return cont(typeexpr)\n }\n function mayberettype(type) {\n if (isTS && type == \":\") {\n if (cx.stream.match(/^\\s*\\w+\\s+is\\b/, false)) return cont(expression, isKW, typeexpr)\n else return cont(typeexpr)\n }\n }\n function isKW(_, value) {\n if (value == \"is\") {\n cx.marked = \"keyword\"\n return cont()\n }\n }\n function typeexpr(type, value) {\n if (value == \"keyof\" || value == \"typeof\" || value == \"infer\" || value == \"readonly\") {\n cx.marked = \"keyword\"\n return cont(value == \"typeof\" ? expressionNoComma : typeexpr)\n }\n if (type == \"variable\" || value == \"void\") {\n cx.marked = \"type\"\n return cont(afterType)\n }\n if (value == \"|\" || value == \"&\") return cont(typeexpr)\n if (type == \"string\" || type == \"number\" || type == \"atom\") return cont(afterType);\n if (type == \"[\") return cont(pushlex(\"]\"), commasep(typeexpr, \"]\", \",\"), poplex, afterType)\n if (type == \"{\") return cont(pushlex(\"}\"), typeprops, poplex, afterType)\n if (type == \"(\") return cont(commasep(typearg, \")\"), maybeReturnType, afterType)\n if (type == \"<\") return cont(commasep(typeexpr, \">\"), typeexpr)\n if (type == \"quasi\") { return pass(quasiType, afterType); }\n }\n function maybeReturnType(type) {\n if (type == \"=>\") return cont(typeexpr)\n }\n function typeprops(type) {\n if (type.match(/[\\}\\)\\]]/)) return cont()\n if (type == \",\" || type == \";\") return cont(typeprops)\n return pass(typeprop, typeprops)\n }\n function typeprop(type, value) {\n if (type == \"variable\" || cx.style == \"keyword\") {\n cx.marked = \"property\"\n return cont(typeprop)\n } else if (value == \"?\" || type == \"number\" || type == \"string\") {\n return cont(typeprop)\n } else if (type == \":\") {\n return cont(typeexpr)\n } else if (type == \"[\") {\n return cont(expect(\"variable\"), maybetypeOrIn, expect(\"]\"), typeprop)\n } else if (type == \"(\") {\n return pass(functiondecl, typeprop)\n } else if (!type.match(/[;\\}\\)\\],]/)) {\n return cont()\n }\n }\n function quasiType(type, value) {\n if (type != \"quasi\") return pass();\n if (value.slice(value.length - 2) != \"${\") return cont(quasiType);\n return cont(typeexpr, continueQuasiType);\n }\n function continueQuasiType(type) {\n if (type == \"}\") {\n cx.marked = \"string-2\";\n cx.state.tokenize = tokenQuasi;\n return cont(quasiType);\n }\n }\n function typearg(type, value) {\n if (type == \"variable\" && cx.stream.match(/^\\s*[?:]/, false) || value == \"?\") return cont(typearg)\n if (type == \":\") return cont(typeexpr)\n if (type == \"spread\") return cont(typearg)\n return pass(typeexpr)\n }\n function afterType(type, value) {\n if (value == \"<\") return cont(pushlex(\">\"), commasep(typeexpr, \">\"), poplex, afterType)\n if (value == \"|\" || type == \".\" || value == \"&\") return cont(typeexpr)\n if (type == \"[\") return cont(typeexpr, expect(\"]\"), afterType)\n if (value == \"extends\" || value == \"implements\") { cx.marked = \"keyword\"; return cont(typeexpr) }\n if (value == \"?\") return cont(typeexpr, expect(\":\"), typeexpr)\n }\n function maybeTypeArgs(_, value) {\n if (value == \"<\") return cont(pushlex(\">\"), commasep(typeexpr, \">\"), poplex, afterType)\n }\n function typeparam() {\n return pass(typeexpr, maybeTypeDefault)\n }\n function maybeTypeDefault(_, value) {\n if (value == \"=\") return cont(typeexpr)\n }\n function vardef(_, value) {\n if (value == \"enum\") {cx.marked = \"keyword\"; return cont(enumdef)}\n return pass(pattern, maybetype, maybeAssign, vardefCont);\n }\n function pattern(type, value) {\n if (isTS && isModifier(value)) { cx.marked = \"keyword\"; return cont(pattern) }\n if (type == \"variable\") { register(value); return cont(); }\n if (type == \"spread\") return cont(pattern);\n if (type == \"[\") return contCommasep(eltpattern, \"]\");\n if (type == \"{\") return contCommasep(proppattern, \"}\");\n }\n function proppattern(type, value) {\n if (type == \"variable\" && !cx.stream.match(/^\\s*:/, false)) {\n register(value);\n return cont(maybeAssign);\n }\n if (type == \"variable\") cx.marked = \"property\";\n if (type == \"spread\") return cont(pattern);\n if (type == \"}\") return pass();\n if (type == \"[\") return cont(expression, expect(']'), expect(':'), proppattern);\n return cont(expect(\":\"), pattern, maybeAssign);\n }\n function eltpattern() {\n return pass(pattern, maybeAssign)\n }\n function maybeAssign(_type, value) {\n if (value == \"=\") return cont(expressionNoComma);\n }\n function vardefCont(type) {\n if (type == \",\") return cont(vardef);\n }\n function maybeelse(type, value) {\n if (type == \"keyword b\" && value == \"else\") return cont(pushlex(\"form\", \"else\"), statement, poplex);\n }\n function forspec(type, value) {\n if (value == \"await\") return cont(forspec);\n if (type == \"(\") return cont(pushlex(\")\"), forspec1, poplex);\n }\n function forspec1(type) {\n if (type == \"var\") return cont(vardef, forspec2);\n if (type == \"variable\") return cont(forspec2);\n return pass(forspec2)\n }\n function forspec2(type, value) {\n if (type == \")\") return cont()\n if (type == \";\") return cont(forspec2)\n if (value == \"in\" || value == \"of\") { cx.marked = \"keyword\"; return cont(expression, forspec2) }\n return pass(expression, forspec2)\n }\n function functiondef(type, value) {\n if (value == \"*\") {cx.marked = \"keyword\"; return cont(functiondef);}\n if (type == \"variable\") {register(value); return cont(functiondef);}\n if (type == \"(\") return cont(pushcontext, pushlex(\")\"), commasep(funarg, \")\"), poplex, mayberettype, statement, popcontext);\n if (isTS && value == \"<\") return cont(pushlex(\">\"), commasep(typeparam, \">\"), poplex, functiondef)\n }\n function functiondecl(type, value) {\n if (value == \"*\") {cx.marked = \"keyword\"; return cont(functiondecl);}\n if (type == \"variable\") {register(value); return cont(functiondecl);}\n if (type == \"(\") return cont(pushcontext, pushlex(\")\"), commasep(funarg, \")\"), poplex, mayberettype, popcontext);\n if (isTS && value == \"<\") return cont(pushlex(\">\"), commasep(typeparam, \">\"), poplex, functiondecl)\n }\n function typename(type, value) {\n if (type == \"keyword\" || type == \"variable\") {\n cx.marked = \"type\"\n return cont(typename)\n } else if (value == \"<\") {\n return cont(pushlex(\">\"), commasep(typeparam, \">\"), poplex)\n }\n }\n function funarg(type, value) {\n if (value == \"@\") cont(expression, funarg)\n if (type == \"spread\") return cont(funarg);\n if (isTS && isModifier(value)) { cx.marked = \"keyword\"; return cont(funarg); }\n if (isTS && type == \"this\") return cont(maybetype, maybeAssign)\n return pass(pattern, maybetype, maybeAssign);\n }\n function classExpression(type, value) {\n // Class expressions may have an optional name.\n if (type == \"variable\") return className(type, value);\n return classNameAfter(type, value);\n }\n function className(type, value) {\n if (type == \"variable\") {register(value); return cont(classNameAfter);}\n }\n function classNameAfter(type, value) {\n if (value == \"<\") return cont(pushlex(\">\"), commasep(typeparam, \">\"), poplex, classNameAfter)\n if (value == \"extends\" || value == \"implements\" || (isTS && type == \",\")) {\n if (value == \"implements\") cx.marked = \"keyword\";\n return cont(isTS ? typeexpr : expression, classNameAfter);\n }\n if (type == \"{\") return cont(pushlex(\"}\"), classBody, poplex);\n }\n function classBody(type, value) {\n if (type == \"async\" ||\n (type == \"variable\" &&\n (value == \"static\" || value == \"get\" || value == \"set\" || (isTS && isModifier(value))) &&\n cx.stream.match(/^\\s+[\\w$\\xa1-\\uffff]/, false))) {\n cx.marked = \"keyword\";\n return cont(classBody);\n }\n if (type == \"variable\" || cx.style == \"keyword\") {\n cx.marked = \"property\";\n return cont(classfield, classBody);\n }\n if (type == \"number\" || type == \"string\") return cont(classfield, classBody);\n if (type == \"[\")\n return cont(expression, maybetype, expect(\"]\"), classfield, classBody)\n if (value == \"*\") {\n cx.marked = \"keyword\";\n return cont(classBody);\n }\n if (isTS && type == \"(\") return pass(functiondecl, classBody)\n if (type == \";\" || type == \",\") return cont(classBody);\n if (type == \"}\") return cont();\n if (value == \"@\") return cont(expression, classBody)\n }\n function classfield(type, value) {\n if (value == \"!\") return cont(classfield)\n if (value == \"?\") return cont(classfield)\n if (type == \":\") return cont(typeexpr, maybeAssign)\n if (value == \"=\") return cont(expressionNoComma)\n var context = cx.state.lexical.prev, isInterface = context && context.info == \"interface\"\n return pass(isInterface ? functiondecl : functiondef)\n }\n function afterExport(type, value) {\n if (value == \"*\") { cx.marked = \"keyword\"; return cont(maybeFrom, expect(\";\")); }\n if (value == \"default\") { cx.marked = \"keyword\"; return cont(expression, expect(\";\")); }\n if (type == \"{\") return cont(commasep(exportField, \"}\"), maybeFrom, expect(\";\"));\n return pass(statement);\n }\n function exportField(type, value) {\n if (value == \"as\") { cx.marked = \"keyword\"; return cont(expect(\"variable\")); }\n if (type == \"variable\") return pass(expressionNoComma, exportField);\n }\n function afterImport(type) {\n if (type == \"string\") return cont();\n if (type == \"(\") return pass(expression);\n if (type == \".\") return pass(maybeoperatorComma);\n return pass(importSpec, maybeMoreImports, maybeFrom);\n }\n function importSpec(type, value) {\n if (type == \"{\") return contCommasep(importSpec, \"}\");\n if (type == \"variable\") register(value);\n if (value == \"*\") cx.marked = \"keyword\";\n return cont(maybeAs);\n }\n function maybeMoreImports(type) {\n if (type == \",\") return cont(importSpec, maybeMoreImports)\n }\n function maybeAs(_type, value) {\n if (value == \"as\") { cx.marked = \"keyword\"; return cont(importSpec); }\n }\n function maybeFrom(_type, value) {\n if (value == \"from\") { cx.marked = \"keyword\"; return cont(expression); }\n }\n function arrayLiteral(type) {\n if (type == \"]\") return cont();\n return pass(commasep(expressionNoComma, \"]\"));\n }\n function enumdef() {\n return pass(pushlex(\"form\"), pattern, expect(\"{\"), pushlex(\"}\"), commasep(enummember, \"}\"), poplex, poplex)\n }\n function enummember() {\n return pass(pattern, maybeAssign);\n }\n\n function isContinuedStatement(state, textAfter) {\n return state.lastType == \"operator\" || state.lastType == \",\" ||\n isOperatorChar.test(textAfter.charAt(0)) ||\n /[,.]/.test(textAfter.charAt(0));\n }\n\n function expressionAllowed(stream, state, backUp) {\n return state.tokenize == tokenBase &&\n /^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\\[{}\\(,;:]|=>)$/.test(state.lastType) ||\n (state.lastType == \"quasi\" && /\\{\\s*$/.test(stream.string.slice(0, stream.pos - (backUp || 0))))\n }\n\n // Interface\n\n return {\n startState: function(basecolumn) {\n var state = {\n tokenize: tokenBase,\n lastType: \"sof\",\n cc: [],\n lexical: new JSLexical((basecolumn || 0) - indentUnit, 0, \"block\", false),\n localVars: parserConfig.localVars,\n context: parserConfig.localVars && new Context(null, null, false),\n indented: basecolumn || 0\n };\n if (parserConfig.globalVars && typeof parserConfig.globalVars == \"object\")\n state.globalVars = parserConfig.globalVars;\n return state;\n },\n\n token: function(stream, state) {\n if (stream.sol()) {\n if (!state.lexical.hasOwnProperty(\"align\"))\n state.lexical.align = false;\n state.indented = stream.indentation();\n findFatArrow(stream, state);\n }\n if (state.tokenize != tokenComment && stream.eatSpace()) return null;\n var style = state.tokenize(stream, state);\n if (type == \"comment\") return style;\n state.lastType = type == \"operator\" && (content == \"++\" || content == \"--\") ? \"incdec\" : type;\n return parseJS(state, style, type, content, stream);\n },\n\n indent: function(state, textAfter) {\n if (state.tokenize == tokenComment || state.tokenize == tokenQuasi) return CodeMirror.Pass;\n if (state.tokenize != tokenBase) return 0;\n var firstChar = textAfter && textAfter.charAt(0), lexical = state.lexical, top\n // Kludge to prevent 'maybelse' from blocking lexical scope pops\n if (!/^\\s*else\\b/.test(textAfter)) for (var i = state.cc.length - 1; i >= 0; --i) {\n var c = state.cc[i];\n if (c == poplex) lexical = lexical.prev;\n else if (c != maybeelse && c != popcontext) break;\n }\n while ((lexical.type == \"stat\" || lexical.type == \"form\") &&\n (firstChar == \"}\" || ((top = state.cc[state.cc.length - 1]) &&\n (top == maybeoperatorComma || top == maybeoperatorNoComma) &&\n !/^[,\\.=+\\-*:?[\\(]/.test(textAfter))))\n lexical = lexical.prev;\n if (statementIndent && lexical.type == \")\" && lexical.prev.type == \"stat\")\n lexical = lexical.prev;\n var type = lexical.type, closing = firstChar == type;\n\n if (type == \"vardef\") return lexical.indented + (state.lastType == \"operator\" || state.lastType == \",\" ? lexical.info.length + 1 : 0);\n else if (type == \"form\" && firstChar == \"{\") return lexical.indented;\n else if (type == \"form\") return lexical.indented + indentUnit;\n else if (type == \"stat\")\n return lexical.indented + (isContinuedStatement(state, textAfter) ? statementIndent || indentUnit : 0);\n else if (lexical.info == \"switch\" && !closing && parserConfig.doubleIndentSwitch != false)\n return lexical.indented + (/^(?:case|default)\\b/.test(textAfter) ? indentUnit : 2 * indentUnit);\n else if (lexical.align) return lexical.column + (closing ? 0 : 1);\n else return lexical.indented + (closing ? 0 : indentUnit);\n },\n\n electricInput: /^\\s*(?:case .*?:|default:|\\{|\\})$/,\n blockCommentStart: jsonMode ? null : \"/*\",\n blockCommentEnd: jsonMode ? null : \"*/\",\n blockCommentContinue: jsonMode ? null : \" * \",\n lineComment: jsonMode ? null : \"//\",\n fold: \"brace\",\n closeBrackets: \"()[]{}''\\\"\\\"``\",\n\n helperType: jsonMode ? \"json\" : \"javascript\",\n jsonldMode: jsonldMode,\n jsonMode: jsonMode,\n\n expressionAllowed: expressionAllowed,\n\n skipExpression: function(state) {\n parseJS(state, \"atom\", \"atom\", \"true\", new CodeMirror.StringStream(\"\", 2, null))\n }\n };\n});\n\nCodeMirror.registerHelper(\"wordChars\", \"javascript\", /[\\w$]/);\n\nCodeMirror.defineMIME(\"text/javascript\", \"javascript\");\nCodeMirror.defineMIME(\"text/ecmascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/javascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/x-javascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/ecmascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/json\", { name: \"javascript\", json: true });\nCodeMirror.defineMIME(\"application/x-json\", { name: \"javascript\", json: true });\nCodeMirror.defineMIME(\"application/manifest+json\", { name: \"javascript\", json: true })\nCodeMirror.defineMIME(\"application/ld+json\", { name: \"javascript\", jsonld: true });\nCodeMirror.defineMIME(\"text/typescript\", { name: \"javascript\", typescript: true });\nCodeMirror.defineMIME(\"application/typescript\", { name: \"javascript\", typescript: true });\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/5/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nvar htmlConfig = {\n autoSelfClosers: {'area': true, 'base': true, 'br': true, 'col': true, 'command': true,\n 'embed': true, 'frame': true, 'hr': true, 'img': true, 'input': true,\n 'keygen': true, 'link': true, 'meta': true, 'param': true, 'source': true,\n 'track': true, 'wbr': true, 'menuitem': true},\n implicitlyClosed: {'dd': true, 'li': true, 'optgroup': true, 'option': true, 'p': true,\n 'rp': true, 'rt': true, 'tbody': true, 'td': true, 'tfoot': true,\n 'th': true, 'tr': true},\n contextGrabbers: {\n 'dd': {'dd': true, 'dt': true},\n 'dt': {'dd': true, 'dt': true},\n 'li': {'li': true},\n 'option': {'option': true, 'optgroup': true},\n 'optgroup': {'optgroup': true},\n 'p': {'address': true, 'article': true, 'aside': true, 'blockquote': true, 'dir': true,\n 'div': true, 'dl': true, 'fieldset': true, 'footer': true, 'form': true,\n 'h1': true, 'h2': true, 'h3': true, 'h4': true, 'h5': true, 'h6': true,\n 'header': true, 'hgroup': true, 'hr': true, 'menu': true, 'nav': true, 'ol': true,\n 'p': true, 'pre': true, 'section': true, 'table': true, 'ul': true},\n 'rp': {'rp': true, 'rt': true},\n 'rt': {'rp': true, 'rt': true},\n 'tbody': {'tbody': true, 'tfoot': true},\n 'td': {'td': true, 'th': true},\n 'tfoot': {'tbody': true},\n 'th': {'td': true, 'th': true},\n 'thead': {'tbody': true, 'tfoot': true},\n 'tr': {'tr': true}\n },\n doNotIndent: {\"pre\": true},\n allowUnquoted: true,\n allowMissing: true,\n caseFold: true\n}\n\nvar xmlConfig = {\n autoSelfClosers: {},\n implicitlyClosed: {},\n contextGrabbers: {},\n doNotIndent: {},\n allowUnquoted: false,\n allowMissing: false,\n allowMissingTagName: false,\n caseFold: false\n}\n\nCodeMirror.defineMode(\"xml\", function(editorConf, config_) {\n var indentUnit = editorConf.indentUnit\n var config = {}\n var defaults = config_.htmlMode ? htmlConfig : xmlConfig\n for (var prop in defaults) config[prop] = defaults[prop]\n for (var prop in config_) config[prop] = config_[prop]\n\n // Return variables for tokenizers\n var type, setStyle;\n\n function inText(stream, state) {\n function chain(parser) {\n state.tokenize = parser;\n return parser(stream, state);\n }\n\n var ch = stream.next();\n if (ch == \"<\") {\n if (stream.eat(\"!\")) {\n if (stream.eat(\"[\")) {\n if (stream.match(\"CDATA[\")) return chain(inBlock(\"atom\", \"]]>\"));\n else return null;\n } else if (stream.match(\"--\")) {\n return chain(inBlock(\"comment\", \"-->\"));\n } else if (stream.match(\"DOCTYPE\", true, true)) {\n stream.eatWhile(/[\\w\\._\\-]/);\n return chain(doctype(1));\n } else {\n return null;\n }\n } else if (stream.eat(\"?\")) {\n stream.eatWhile(/[\\w\\._\\-]/);\n state.tokenize = inBlock(\"meta\", \"?>\");\n return \"meta\";\n } else {\n type = stream.eat(\"/\") ? \"closeTag\" : \"openTag\";\n state.tokenize = inTag;\n return \"tag bracket\";\n }\n } else if (ch == \"&\") {\n var ok;\n if (stream.eat(\"#\")) {\n if (stream.eat(\"x\")) {\n ok = stream.eatWhile(/[a-fA-F\\d]/) && stream.eat(\";\");\n } else {\n ok = stream.eatWhile(/[\\d]/) && stream.eat(\";\");\n }\n } else {\n ok = stream.eatWhile(/[\\w\\.\\-:]/) && stream.eat(\";\");\n }\n return ok ? \"atom\" : \"error\";\n } else {\n stream.eatWhile(/[^&<]/);\n return null;\n }\n }\n inText.isInText = true;\n\n function inTag(stream, state) {\n var ch = stream.next();\n if (ch == \">\" || (ch == \"/\" && stream.eat(\">\"))) {\n state.tokenize = inText;\n type = ch == \">\" ? \"endTag\" : \"selfcloseTag\";\n return \"tag bracket\";\n } else if (ch == \"=\") {\n type = \"equals\";\n return null;\n } else if (ch == \"<\") {\n state.tokenize = inText;\n state.state = baseState;\n state.tagName = state.tagStart = null;\n var next = state.tokenize(stream, state);\n return next ? next + \" tag error\" : \"tag error\";\n } else if (/[\\'\\\"]/.test(ch)) {\n state.tokenize = inAttribute(ch);\n state.stringStartCol = stream.column();\n return state.tokenize(stream, state);\n } else {\n stream.match(/^[^\\s\\u00a0=<>\\\"\\']*[^\\s\\u00a0=<>\\\"\\'\\/]/);\n return \"word\";\n }\n }\n\n function inAttribute(quote) {\n var closure = function(stream, state) {\n while (!stream.eol()) {\n if (stream.next() == quote) {\n state.tokenize = inTag;\n break;\n }\n }\n return \"string\";\n };\n closure.isInAttribute = true;\n return closure;\n }\n\n function inBlock(style, terminator) {\n return function(stream, state) {\n while (!stream.eol()) {\n if (stream.match(terminator)) {\n state.tokenize = inText;\n break;\n }\n stream.next();\n }\n return style;\n }\n }\n\n function doctype(depth) {\n return function(stream, state) {\n var ch;\n while ((ch = stream.next()) != null) {\n if (ch == \"<\") {\n state.tokenize = doctype(depth + 1);\n return state.tokenize(stream, state);\n } else if (ch == \">\") {\n if (depth == 1) {\n state.tokenize = inText;\n break;\n } else {\n state.tokenize = doctype(depth - 1);\n return state.tokenize(stream, state);\n }\n }\n }\n return \"meta\";\n };\n }\n\n function lower(tagName) {\n return tagName && tagName.toLowerCase();\n }\n\n function Context(state, tagName, startOfLine) {\n this.prev = state.context;\n this.tagName = tagName || \"\";\n this.indent = state.indented;\n this.startOfLine = startOfLine;\n if (config.doNotIndent.hasOwnProperty(tagName) || (state.context && state.context.noIndent))\n this.noIndent = true;\n }\n function popContext(state) {\n if (state.context) state.context = state.context.prev;\n }\n function maybePopContext(state, nextTagName) {\n var parentTagName;\n while (true) {\n if (!state.context) {\n return;\n }\n parentTagName = state.context.tagName;\n if (!config.contextGrabbers.hasOwnProperty(lower(parentTagName)) ||\n !config.contextGrabbers[lower(parentTagName)].hasOwnProperty(lower(nextTagName))) {\n return;\n }\n popContext(state);\n }\n }\n\n function baseState(type, stream, state) {\n if (type == \"openTag\") {\n state.tagStart = stream.column();\n return tagNameState;\n } else if (type == \"closeTag\") {\n return closeTagNameState;\n } else {\n return baseState;\n }\n }\n function tagNameState(type, stream, state) {\n if (type == \"word\") {\n state.tagName = stream.current();\n setStyle = \"tag\";\n return attrState;\n } else if (config.allowMissingTagName && type == \"endTag\") {\n setStyle = \"tag bracket\";\n return attrState(type, stream, state);\n } else {\n setStyle = \"error\";\n return tagNameState;\n }\n }\n function closeTagNameState(type, stream, state) {\n if (type == \"word\") {\n var tagName = stream.current();\n if (state.context && state.context.tagName != tagName &&\n config.implicitlyClosed.hasOwnProperty(lower(state.context.tagName)))\n popContext(state);\n if ((state.context && state.context.tagName == tagName) || config.matchClosing === false) {\n setStyle = \"tag\";\n return closeState;\n } else {\n setStyle = \"tag error\";\n return closeStateErr;\n }\n } else if (config.allowMissingTagName && type == \"endTag\") {\n setStyle = \"tag bracket\";\n return closeState(type, stream, state);\n } else {\n setStyle = \"error\";\n return closeStateErr;\n }\n }\n\n function closeState(type, _stream, state) {\n if (type != \"endTag\") {\n setStyle = \"error\";\n return closeState;\n }\n popContext(state);\n return baseState;\n }\n function closeStateErr(type, stream, state) {\n setStyle = \"error\";\n return closeState(type, stream, state);\n }\n\n function attrState(type, _stream, state) {\n if (type == \"word\") {\n setStyle = \"attribute\";\n return attrEqState;\n } else if (type == \"endTag\" || type == \"selfcloseTag\") {\n var tagName = state.tagName, tagStart = state.tagStart;\n state.tagName = state.tagStart = null;\n if (type == \"selfcloseTag\" ||\n config.autoSelfClosers.hasOwnProperty(lower(tagName))) {\n maybePopContext(state, tagName);\n } else {\n maybePopContext(state, tagName);\n state.context = new Context(state, tagName, tagStart == state.indented);\n }\n return baseState;\n }\n setStyle = \"error\";\n return attrState;\n }\n function attrEqState(type, stream, state) {\n if (type == \"equals\") return attrValueState;\n if (!config.allowMissing) setStyle = \"error\";\n return attrState(type, stream, state);\n }\n function attrValueState(type, stream, state) {\n if (type == \"string\") return attrContinuedState;\n if (type == \"word\" && config.allowUnquoted) {setStyle = \"string\"; return attrState;}\n setStyle = \"error\";\n return attrState(type, stream, state);\n }\n function attrContinuedState(type, stream, state) {\n if (type == \"string\") return attrContinuedState;\n return attrState(type, stream, state);\n }\n\n return {\n startState: function(baseIndent) {\n var state = {tokenize: inText,\n state: baseState,\n indented: baseIndent || 0,\n tagName: null, tagStart: null,\n context: null}\n if (baseIndent != null) state.baseIndent = baseIndent\n return state\n },\n\n token: function(stream, state) {\n if (!state.tagName && stream.sol())\n state.indented = stream.indentation();\n\n if (stream.eatSpace()) return null;\n type = null;\n var style = state.tokenize(stream, state);\n if ((style || type) && style != \"comment\") {\n setStyle = null;\n state.state = state.state(type || style, stream, state);\n if (setStyle)\n style = setStyle == \"error\" ? style + \" error\" : setStyle;\n }\n return style;\n },\n\n indent: function(state, textAfter, fullLine) {\n var context = state.context;\n // Indent multi-line strings (e.g. css).\n if (state.tokenize.isInAttribute) {\n if (state.tagStart == state.indented)\n return state.stringStartCol + 1;\n else\n return state.indented + indentUnit;\n }\n if (context && context.noIndent) return CodeMirror.Pass;\n if (state.tokenize != inTag && state.tokenize != inText)\n return fullLine ? fullLine.match(/^(\\s*)/)[0].length : 0;\n // Indent the starts of attribute names.\n if (state.tagName) {\n if (config.multilineTagIndentPastTag !== false)\n return state.tagStart + state.tagName.length + 2;\n else\n return state.tagStart + indentUnit * (config.multilineTagIndentFactor || 1);\n }\n if (config.alignCDATA && /$/,\n blockCommentStart: \"\",\n\n configuration: config.htmlMode ? \"html\" : \"xml\",\n helperType: config.htmlMode ? \"html\" : \"xml\",\n\n skipAttribute: function(state) {\n if (state.state == attrValueState)\n state.state = attrState\n },\n\n xmlCurrentTag: function(state) {\n return state.tagName ? {name: state.tagName, close: state.type == \"closeTag\"} : null\n },\n\n xmlCurrentContext: function(state) {\n var context = []\n for (var cx = state.context; cx; cx = cx.prev)\n context.push(cx.tagName)\n return context.reverse()\n }\n };\n});\n\nCodeMirror.defineMIME(\"text/xml\", \"xml\");\nCodeMirror.defineMIME(\"application/xml\", \"xml\");\nif (!CodeMirror.mimeModes.hasOwnProperty(\"text/html\"))\n CodeMirror.defineMIME(\"text/html\", {name: \"xml\", htmlMode: true});\n\n});\n","import { CommandObject } from './CommandAbstract';\n\nexport default {\n run(ed) {\n ed.DomComponents.clear();\n ed.CssComposer.clear();\n },\n} as CommandObject;\n","import { bindAll } from 'underscore';\nimport { on, off, getKeyChar } from '../../utils/mixins';\nimport Dragger from '../../utils/Dragger';\nimport { CommandObject } from './CommandAbstract';\n\nexport default {\n run(ed) {\n bindAll(this, 'onKeyUp', 'enableDragger', 'disableDragger');\n this.editor = ed;\n this.canvasModel = this.canvas.getCanvasView().model;\n this.toggleMove(1);\n },\n stop(ed) {\n this.toggleMove();\n this.disableDragger();\n },\n\n onKeyUp(ev: KeyboardEvent) {\n if (getKeyChar(ev) === ' ') {\n this.editor.stopCommand(this.id);\n }\n },\n\n enableDragger(ev: Event) {\n this.toggleDragger(1, ev);\n },\n\n disableDragger(ev: Event) {\n this.toggleDragger(0, ev);\n },\n\n toggleDragger(enable: boolean, ev: Event) {\n const { canvasModel, em } = this;\n let { dragger } = this;\n const methodCls = enable ? 'add' : 'remove';\n this.getCanvas().classList[methodCls](`${this.ppfx}is__grabbing`);\n\n if (!dragger) {\n dragger = new Dragger({\n getPosition() {\n return {\n x: canvasModel.get('x'),\n y: canvasModel.get('y'),\n };\n },\n setPosition({ x, y }) {\n canvasModel.set({ x, y });\n },\n onStart(ev, dragger) {\n em.trigger('canvas:move:start', dragger);\n },\n onDrag(ev, dragger) {\n em.trigger('canvas:move', dragger);\n },\n onEnd(ev, dragger) {\n em.trigger('canvas:move:end', dragger);\n },\n });\n this.dragger = dragger;\n }\n\n enable ? dragger.start(ev) : dragger.stop();\n },\n\n toggleMove(enable: boolean) {\n const { ppfx } = this;\n const methodCls = enable ? 'add' : 'remove';\n const methodEv = enable ? 'on' : 'off';\n const methodsEv = { on, off };\n const canvas = this.getCanvas();\n const classes = [`${ppfx}is__grab`];\n !enable && classes.push(`${ppfx}is__grabbing`);\n classes.forEach(cls => canvas.classList[methodCls](cls));\n methodsEv[methodEv](document, 'keyup', this.onKeyUp);\n methodsEv[methodEv](canvas, 'mousedown', this.enableDragger);\n methodsEv[methodEv](document, 'mouseup', this.disableDragger);\n },\n} as CommandObject<\n any,\n {\n [key: string]: any;\n }\n>;\n","import CanvasModule from '../../canvas';\nimport { Model, ObjectAny } from '../../common';\nimport Editor from '../../editor';\nimport EditorModel from '../../editor/model/Editor';\n\ninterface ICommand {\n run?: CommandAbstract['run'];\n stop?: CommandAbstract['stop'];\n id?: string;\n [key: string]: unknown;\n}\n\nexport type CommandFunction = CommandAbstract['run'];\n\nexport type Command = CommandObject | CommandFunction;\n\nexport type CommandOptions = Record;\n\nexport type CommandObject = ICommand &\n T &\n ThisType>;\n\nexport function defineCommand(def: CommandObject) {\n return def;\n}\n\nexport default class CommandAbstract extends Model {\n config: any;\n em: EditorModel;\n pfx: string;\n ppfx: string;\n hoverClass: string;\n badgeClass: string;\n plhClass: string;\n freezClass: string;\n canvas: CanvasModule;\n\n constructor(o: any) {\n super(0);\n this.config = o || {};\n this.em = this.config.em || {};\n const pfx = this.config.stylePrefix;\n this.pfx = pfx;\n this.ppfx = this.config.pStylePrefix;\n this.hoverClass = `${pfx}hover`;\n this.badgeClass = `${pfx}badge`;\n this.plhClass = `${pfx}placeholder`;\n this.freezClass = `${this.ppfx}freezed`;\n this.canvas = this.em.Canvas;\n this.init(this.config);\n }\n\n /**\n * On frame scroll callback\n * @param {[type]} e [description]\n * @return {[type]} [description]\n */\n onFrameScroll(e: any) {}\n\n /**\n * Returns canval element\n * @return {HTMLElement}\n */\n getCanvas() {\n return this.canvas.getElement();\n }\n\n /**\n * Get canvas body element\n * @return {HTMLElement}\n */\n getCanvasBody() {\n return this.canvas.getBody();\n }\n\n /**\n * Get canvas wrapper element\n * @return {HTMLElement}\n */\n getCanvasTools() {\n return this.canvas.getToolsEl();\n }\n\n /**\n * Get the offset of the element\n * @param {HTMLElement} el\n * @return {Object}\n */\n offset(el: HTMLElement) {\n var rect = el.getBoundingClientRect();\n return {\n top: rect.top + el.ownerDocument.body.scrollTop,\n left: rect.left + el.ownerDocument.body.scrollLeft,\n };\n }\n\n /**\n * Callback triggered after initialize\n * @param {Object} o Options\n * @private\n * */\n init(o: any) {}\n\n /**\n * Method that run command\n * @param {Object} editor Editor instance\n * @param {Object} [options={}] Options\n * @private\n * */\n callRun(editor: Editor, options: any = {}) {\n const id = this.id;\n editor.trigger(`run:${id}:before`, options);\n\n if (options && options.abort) {\n editor.trigger(`abort:${id}`, options);\n return;\n }\n\n const sender = options.sender || editor;\n const result = this.run(editor, sender, options);\n editor.trigger(`run:${id}`, result, options);\n editor.trigger('run', id, result, options);\n return result;\n }\n\n /**\n * Method that run command\n * @param {Object} editor Editor instance\n * @param {Object} [options={}] Options\n * @private\n * */\n callStop(editor: Editor, options: any = {}) {\n const id = this.id;\n const sender = options.sender || editor;\n editor.trigger(`stop:${id}:before`, options);\n const result = this.stop(editor, sender, options);\n editor.trigger(`stop:${id}`, result, options);\n editor.trigger('stop', id, result, options);\n return result;\n }\n\n /**\n * Stop current command\n */\n stopCommand(opts?: any) {\n this.em.Commands.stop(this.id as string, opts);\n }\n\n /**\n * Method that run command\n * @param {Object} em Editor model\n * @param {Object} sender Button sender\n * @private\n * */\n run(em: Editor, sender: any, options: O) {}\n\n /**\n * Method that stop command\n * @param {Object} em Editor model\n * @param {Object} sender Button sender\n * @private\n * */\n stop(em: Editor, sender: any, options: O) {}\n}\n","import { isArray } from 'underscore';\nimport Component from '../../dom_components/model/Component';\nimport { CommandObject } from './CommandAbstract';\n\nconst command: CommandObject<{ component?: Component }> = {\n run(ed, s, opts = {}) {\n const toSelect: Component[] = [];\n let components = opts.component || ed.getSelectedAll();\n components = isArray(components) ? [...components] : [components];\n\n components.filter(Boolean).forEach(component => {\n if (!component.get('removable')) {\n toSelect.push(component);\n return this.em.logWarning('The element is not removable', {\n component,\n });\n }\n component.remove();\n });\n\n ed.select(toSelect);\n\n return components;\n },\n};\n\nexport default command;\n","import { keys, bindAll, each, isUndefined, debounce } from 'underscore';\nimport Dragger from '../../utils/Dragger';\nimport { CommandObject } from './CommandAbstract';\n\ntype Rect = { left: number; width: number; top: number; height: number };\ntype OrigRect = { left: number; width: number; top: number; height: number; rect: Rect };\n\ntype Guide = {\n type: string;\n y: number;\n x: number;\n origin: HTMLElement;\n originRect: OrigRect;\n guide: HTMLElement;\n};\n\nconst evName = 'dmode';\n\nexport default {\n run(editor, sender, opts = {}) {\n bindAll(\n this,\n 'setPosition',\n 'onStart',\n 'onDrag',\n 'onEnd',\n 'getPosition',\n 'getGuidesStatic',\n 'renderGuide',\n 'getGuidesTarget'\n );\n const { target, event, mode, dragger = {} } = opts;\n const el = target.getEl();\n const config = {\n doc: el.ownerDocument,\n onStart: this.onStart,\n onEnd: this.onEnd,\n onDrag: this.onDrag,\n getPosition: this.getPosition,\n setPosition: this.setPosition,\n guidesStatic: () => this.guidesStatic,\n guidesTarget: () => this.guidesTarget,\n ...dragger,\n };\n this.setupGuides();\n this.opts = opts;\n this.editor = editor;\n this.em = editor.getModel();\n this.target = target;\n this.isTran = mode == 'translate';\n this.guidesContainer = this.getGuidesContainer();\n this.guidesTarget = this.getGuidesTarget();\n this.guidesStatic = this.getGuidesStatic();\n let drg = this.dragger;\n\n if (!drg) {\n drg = new Dragger(config);\n this.dragger = drg;\n } else {\n drg.setOptions(config);\n }\n\n event && drg.start(event);\n this.toggleDrag(1);\n this.em.trigger(`${evName}:start`, this.getEventOpts());\n\n return drg;\n },\n\n getEventOpts() {\n return {\n mode: this.opts.mode,\n target: this.target,\n guidesTarget: this.guidesTarget,\n guidesStatic: this.guidesStatic,\n };\n },\n\n stop() {\n this.toggleDrag();\n },\n\n setupGuides() {\n (this.guides || []).forEach((item: any) => {\n const { guide } = item;\n guide && guide.parentNode.removeChild(guide);\n });\n this.guides = [];\n },\n\n getGuidesContainer() {\n let { guidesEl } = this;\n\n if (!guidesEl) {\n const { editor, em, opts } = this;\n const pfx = editor.getConfig().stylePrefix;\n const elInfoX = document.createElement('div');\n const elInfoY = document.createElement('div');\n const guideContent = ``;\n guidesEl = document.createElement('div');\n guidesEl.className = `${pfx}guides`;\n elInfoX.className = `${pfx}guide-info ${pfx}guide-info__x`;\n elInfoY.className = `${pfx}guide-info ${pfx}guide-info__y`;\n elInfoX.innerHTML = guideContent;\n elInfoY.innerHTML = guideContent;\n guidesEl.appendChild(elInfoX);\n guidesEl.appendChild(elInfoY);\n editor.Canvas.getGlobalToolsEl().appendChild(guidesEl);\n this.guidesEl = guidesEl;\n this.elGuideInfoX = elInfoX;\n this.elGuideInfoY = elInfoY;\n this.elGuideInfoContentX = elInfoX.querySelector(`.${pfx}guide-info__content`);\n this.elGuideInfoContentY = elInfoY.querySelector(`.${pfx}guide-info__content`);\n\n em.on(\n 'canvas:update frame:scroll',\n debounce(() => {\n this.updateGuides();\n opts.debug && this.guides?.forEach((item: any) => this.renderGuide(item));\n }, 200)\n );\n }\n\n return guidesEl;\n },\n\n getGuidesStatic() {\n let result: any = [];\n const el = this.target.getEl();\n const { parentNode = {} } = el;\n each(parentNode.children, item => (result = result.concat(el !== item ? this.getElementGuides(item) : [])));\n\n return result.concat(this.getElementGuides(parentNode));\n },\n\n getGuidesTarget() {\n return this.getElementGuides(this.target.getEl());\n },\n\n updateGuides(guides: any) {\n let lastEl: any;\n let lastPos: any;\n (guides || this.guides).forEach((item: any) => {\n const { origin } = item;\n const pos = lastEl === origin ? lastPos : this.getElementPos(origin);\n lastEl = origin;\n lastPos = pos;\n each(this.getGuidePosUpdate(item, pos), (val, key) => (item[key] = val));\n item.originRect = pos;\n });\n },\n\n getGuidePosUpdate(item: any, rect: any) {\n const result: { x?: number; y?: number } = {};\n const { top, height, left, width } = rect;\n\n switch (item.type) {\n case 't':\n result.y = top;\n break;\n case 'b':\n result.y = top + height;\n break;\n case 'l':\n result.x = left;\n break;\n case 'r':\n result.x = left + width;\n break;\n case 'x':\n result.x = left + width / 2;\n break;\n case 'y':\n result.y = top + height / 2;\n break;\n }\n\n return result;\n },\n\n renderGuide(item: any = {}) {\n const el = item.guide || document.createElement('div');\n const un = 'px';\n const guideSize = item.active ? 2 : 1;\n let numEl = el.children[0];\n el.style = `position: absolute; background-color: ${item.active ? 'green' : 'red'};`;\n\n if (!el.children.length) {\n numEl = document.createElement('div');\n numEl.style = 'position: absolute; color: red; padding: 5px; top: 0; left: 0;';\n el.appendChild(numEl);\n }\n\n if (item.y) {\n el.style.width = '100%';\n el.style.height = `${guideSize}${un}`;\n el.style.top = `${item.y}${un}`;\n el.style.left = 0;\n } else {\n el.style.width = `${guideSize}${un}`;\n el.style.height = '100%';\n el.style.left = `${item.x}${un}`;\n el.style.top = `0${un}`;\n }\n\n !item.guide && this.guidesContainer.appendChild(el);\n return el;\n },\n\n getElementPos(el: HTMLElement) {\n return this.editor.Canvas.getElementPos(el, { noScroll: 1 });\n },\n\n getElementGuides(el: HTMLElement) {\n const { opts } = this;\n const originRect = this.getElementPos(el);\n const { top, height, left, width } = originRect;\n // @ts-ignore\n const guides: Guide[] = [\n { type: 't', y: top }, // Top\n { type: 'b', y: top + height }, // Bottom\n { type: 'l', x: left }, // Left\n { type: 'r', x: left + width }, // Right\n { type: 'x', x: left + width / 2 }, // Mid x\n { type: 'y', y: top + height / 2 }, // Mid y\n ].map(item => ({\n ...item,\n origin: el,\n originRect,\n guide: opts.debug && this.renderGuide(item),\n }));\n guides.forEach(item => this.guides?.push(item));\n\n return guides;\n },\n\n getTranslate(transform: string, axis = 'x') {\n let result = 0;\n (transform || '').split(' ').forEach(item => {\n const itemStr = item.trim();\n const fn = `translate${axis.toUpperCase()}(`;\n if (itemStr.indexOf(fn) === 0) result = parseFloat(itemStr.replace(fn, ''));\n });\n return result;\n },\n\n setTranslate(transform: string, axis: string, value: string) {\n const fn = `translate${axis.toUpperCase()}(`;\n const val = `${fn}${value})`;\n let result = (transform || '')\n .split(' ')\n .map(item => {\n const itemStr = item.trim();\n if (itemStr.indexOf(fn) === 0) item = val;\n return item;\n })\n .join(' ');\n if (result.indexOf(fn) < 0) result += ` ${val}`;\n\n return result;\n },\n\n getPosition() {\n const { target, isTran } = this;\n const { left, top, transform } = target.getStyle();\n let x = 0;\n let y = 0;\n\n if (isTran) {\n x = this.getTranslate(transform);\n y = this.getTranslate(transform, 'y');\n } else {\n x = parseFloat(left || 0);\n y = parseFloat(top || 0);\n }\n\n return { x, y };\n },\n\n setPosition({ x, y, end, position, width, height }: any) {\n const { target, isTran, em } = this;\n const unit = 'px';\n const __p = !end; // Indicate if partial change\n const left = `${parseInt(x, 10)}${unit}`;\n const top = `${parseInt(y, 10)}${unit}`;\n let styleUp = {};\n\n if (isTran) {\n let transform = target.getStyle()['transform'] || '';\n transform = this.setTranslate(transform, 'x', left);\n transform = this.setTranslate(transform, 'y', top);\n styleUp = { transform, __p };\n target.addStyle(styleUp, { avoidStore: !end });\n } else {\n const adds: any = { position, width, height };\n const style: any = { left, top, __p };\n keys(adds).forEach(add => {\n const prop = adds[add];\n if (prop) style[add] = prop;\n });\n styleUp = style;\n target.addStyle(styleUp, { avoidStore: !end });\n }\n\n em?.Styles.__emitCmpStyleUpdate(styleUp, { components: em.getSelected() });\n },\n\n _getDragData() {\n const { target } = this;\n return {\n target,\n parent: target.parent(),\n index: target.index(),\n };\n },\n\n onStart(event: Event) {\n const { target, editor, isTran, opts } = this;\n const { center, onStart } = opts;\n const { Canvas } = editor;\n const style = target.getStyle();\n const position = 'absolute';\n const relPos = [position, 'relative'];\n onStart && onStart(this._getDragData());\n if (isTran) return;\n\n if (style.position !== position) {\n let { left, top, width, height } = Canvas.offset(target.getEl());\n let parent = target.parent();\n let parentRel;\n\n // Check for the relative parent\n do {\n const pStyle = parent.getStyle();\n parentRel = relPos.indexOf(pStyle.position) >= 0 ? parent : null;\n parent = parent.parent();\n } while (parent && !parentRel);\n\n // Center the target to the pointer position (used in Droppable for Blocks)\n if (center) {\n const { x, y } = Canvas.getMouseRelativeCanvas(event);\n left = x;\n top = y;\n } else if (parentRel) {\n const offsetP = Canvas.offset(parentRel.getEl());\n left = left - offsetP.left;\n top = top - offsetP.top;\n }\n\n this.setPosition({\n x: left,\n y: top,\n width: `${width}px`,\n height: `${height}px`,\n position,\n });\n }\n },\n\n onDrag(...args: any) {\n const { guidesTarget, opts } = this;\n const { onDrag } = opts;\n this.updateGuides(guidesTarget);\n opts.debug && guidesTarget.forEach((item: any) => this.renderGuide(item));\n opts.guidesInfo && this.renderGuideInfo(guidesTarget.filter((item: any) => item.active));\n onDrag && onDrag(this._getDragData());\n },\n\n onEnd(ev: Event, dragger: any, opt = {}) {\n const { editor, opts, id } = this;\n const { onEnd } = opts;\n onEnd && onEnd(ev, opt, { event: ev, ...opt, ...this._getDragData() });\n editor.stopCommand(id);\n this.hideGuidesInfo();\n this.em.trigger(`${evName}:end`, this.getEventOpts());\n },\n\n hideGuidesInfo() {\n ['X', 'Y'].forEach(item => {\n const guide = this[`elGuideInfo${item}`];\n if (guide) guide.style.display = 'none';\n });\n },\n\n /**\n * Render guides with spacing information\n */\n renderGuideInfo(guides: Guide[] = []) {\n const { guidesStatic } = this;\n this.hideGuidesInfo();\n guides.forEach(item => {\n const { origin, x } = item;\n const rectOrigin = this.getElementPos(origin);\n const axis = isUndefined(x) ? 'y' : 'x';\n const isY = axis === 'y';\n const origEdge1 = rectOrigin[isY ? 'left' : 'top'];\n const origEdge1Raw = rectOrigin.rect[isY ? 'left' : 'top'];\n const origEdge2 = isY ? origEdge1 + rectOrigin.width : origEdge1 + rectOrigin.height;\n const origEdge2Raw = isY ? origEdge1Raw + rectOrigin.rect.width : origEdge1Raw + rectOrigin.rect.height;\n const elGuideInfo = this[`elGuideInfo${axis.toUpperCase()}`];\n const elGuideInfoCnt = this[`elGuideInfoContent${axis.toUpperCase()}`];\n const guideInfoStyle = elGuideInfo.style;\n\n // Find the nearest element\n const res = guidesStatic\n ?.filter(stat => stat.type === item.type)\n .map(stat => {\n const { left, width, top, height } = stat.originRect;\n const statEdge1 = isY ? left : top;\n const statEdge2 = isY ? left + width : top + height;\n return {\n gap: statEdge2 < origEdge1 ? origEdge1 - statEdge2 : statEdge1 - origEdge2,\n guide: stat,\n };\n })\n .filter(item => item.gap > 0)\n .sort((a, b) => a.gap - b.gap)\n .map(item => item.guide)[0];\n\n if (res) {\n const { left, width, top, height, rect } = res.originRect;\n const isEdge1 = isY ? left < rectOrigin.left : top < rectOrigin.top;\n const statEdge1 = isY ? left : top;\n const statEdge1Raw = isY ? rect.left : rect.top;\n const statEdge2 = isY ? left + width : top + height;\n const statEdge2Raw = isY ? rect.left + rect.width : rect.top + rect.height;\n const posFirst = isY ? item.y : item.x;\n const posSecond = isEdge1 ? statEdge2 : origEdge2;\n const pos2 = `${posFirst}px`;\n const size = isEdge1 ? origEdge1 - statEdge2 : statEdge1 - origEdge2;\n const sizeRaw = isEdge1 ? origEdge1Raw - statEdge2Raw : statEdge1Raw - origEdge2Raw;\n guideInfoStyle.display = '';\n guideInfoStyle[isY ? 'top' : 'left'] = pos2;\n guideInfoStyle[isY ? 'left' : 'top'] = `${posSecond}px`;\n guideInfoStyle[isY ? 'width' : 'height'] = `${size}px`;\n elGuideInfoCnt.innerHTML = `${Math.round(sizeRaw)}px`;\n this.em.trigger(`${evName}:active`, {\n ...this.getEventOpts(),\n guide: item,\n guidesStatic,\n matched: res,\n posFirst,\n posSecond,\n size,\n sizeRaw,\n elGuideInfo,\n elGuideInfoCnt,\n });\n }\n });\n },\n\n toggleDrag(enable: boolean) {\n const { ppfx, editor } = this;\n const methodCls = enable ? 'add' : 'remove';\n const classes = [`${ppfx}is__grabbing`];\n const { Canvas } = editor;\n const body = Canvas.getBody();\n classes.forEach(cls => body.classList[methodCls](cls));\n Canvas[enable ? 'startAutoscroll' : 'stopAutoscroll']();\n },\n} as CommandObject<\n any,\n {\n guidesStatic?: Guide[];\n guides?: Guide[];\n [k: string]: any;\n }\n>;\n","import Component from '../../dom_components/model/Component';\nimport { CommandObject } from './CommandAbstract';\n\nexport default {\n run(ed) {\n if (!ed.Canvas.hasFocus()) return;\n const toSelect: Component[] = [];\n\n ed.getSelectedAll().forEach(component => {\n const coll = component.components();\n const next = coll && coll.filter((c: any) => c.get('selectable'))[0];\n next && toSelect.push(next);\n });\n\n toSelect.length && ed.select(toSelect);\n },\n} as CommandObject;\n","import Component from '../../dom_components/model/Component';\nimport { CommandObject } from './CommandAbstract';\n\nexport default {\n run(ed, snd, opts = {}) {\n if (!ed.Canvas.hasFocus() && !opts.force) return;\n const toSelect: Component[] = [];\n\n ed.getSelectedAll().forEach(component => {\n let next = component.parent();\n\n // Recurse through the parent() chain until a selectable parent is found\n while (next && !next.get('selectable')) {\n next = next.parent();\n }\n\n next && toSelect.push(next);\n });\n\n toSelect.length && ed.select(toSelect);\n },\n} as CommandObject;\n","import Component from '../../dom_components/model/Component';\nimport { CommandObject } from './CommandAbstract';\n\nexport default {\n run(ed) {\n if (!ed.Canvas.hasFocus()) return;\n const toSelect: Component[] = [];\n\n ed.getSelectedAll().forEach(cmp => {\n const parent = cmp.parent();\n if (!parent) return;\n\n const len = parent.components().length;\n let incr = 0;\n let at = 0;\n let next: any;\n\n // Get the next selectable component\n do {\n incr++;\n at = cmp.index() + incr;\n next = at <= len ? parent.getChildAt(at) : null;\n } while (next && !next.get('selectable'));\n\n toSelect.push(next || cmp);\n });\n\n toSelect.length && ed.select(toSelect);\n },\n} as CommandObject;\n","import Component from '../../dom_components/model/Component';\nimport { CommandObject } from './CommandAbstract';\n\nexport default {\n run(ed) {\n if (!ed.Canvas.hasFocus()) return;\n const toSelect: Component[] = [];\n\n ed.getSelectedAll().forEach(cmp => {\n const parent = cmp.parent();\n if (!parent) return;\n\n let incr = 0;\n let at = 0;\n let next: any;\n\n // Get the first selectable component\n do {\n incr++;\n at = cmp.index() - incr;\n next = at >= 0 ? parent.getChildAt(at) : null;\n } while (next && !next.get('selectable'));\n\n toSelect.push(next || cmp);\n });\n\n toSelect.length && ed.select(toSelect);\n },\n} as CommandObject;\n","import { flatten } from 'underscore';\nimport CssRule from '../../css_composer/model/CssRule';\nimport { CommandObject } from './CommandAbstract';\n\nexport default {\n run(ed, s, opts = {}) {\n const { target } = opts;\n let toRemove: CssRule[] = [];\n\n if (!target.get('styles')) return toRemove;\n\n // Find all components in the project, of the target component type\n const type = target.get('type');\n const wrappers = ed.Pages.getAllWrappers();\n const len = flatten(wrappers.map(wrp => wrp.findType(type))).length;\n\n // Remove component related styles only if there are no more components\n // of that type in the project\n if (!len) {\n const rules = ed.CssComposer.getAll();\n toRemove = rules.filter(rule => rule.get('group') === `cmp:${type}`);\n rules.remove(toRemove);\n }\n\n return toRemove;\n },\n} as CommandObject;\n","import { CommandObject } from './CommandAbstract';\n\nexport default {\n run(ed) {\n const em = ed.getModel();\n const models = [...ed.getSelectedAll()];\n models.length && em.set('clipboard', models);\n },\n} as CommandObject;\n","import { bindAll, extend } from 'underscore';\nimport { $ } from '../../common';\nimport Component from '../../dom_components/model/Component';\nimport { CommandObject } from './CommandAbstract';\nimport SelectComponent from './SelectComponent';\n\nexport default extend({}, SelectComponent, {\n init() {\n bindAll(this, 'startDelete', 'stopDelete', 'onDelete');\n this.hoverClass = this.pfx + 'hover-delete';\n this.badgeClass = this.pfx + 'badge-red';\n },\n\n enable() {\n var that = this;\n this.$el.find('*').mouseover(this.startDelete).mouseout(this.stopDelete).click(this.onDelete);\n },\n\n /**\n * Start command\n * @param {Object} e\n * @private\n */\n startDelete(e: any) {\n e.stopPropagation();\n var $this = $(e.target);\n\n // Show badge if possible\n if ($this.data('model').get('removable')) {\n $this.addClass(this.hoverClass);\n this.attachBadge($this.get(0));\n }\n },\n\n /**\n * Stop command\n * @param {Object} e\n * @private\n */\n stopDelete(e: any) {\n e.stopPropagation();\n var $this = $(e.target);\n $this.removeClass(this.hoverClass);\n\n // Hide badge if possible\n if (this.badge) this.badge.css({ left: -1000, top: -1000 });\n },\n\n /**\n * Delete command\n * @param {Object} e\n * @private\n */\n onDelete(e: any) {\n e.stopPropagation();\n var $this = $(e.target);\n\n // Do nothing in case can't remove\n if (!$this.data('model').get('removable')) return;\n\n $this.data('model').destroy();\n this.removeBadge();\n this.clean();\n },\n\n /**\n * Updates badge label\n * @param {Object} model\n * @private\n * */\n updateBadgeLabel(model: Component) {\n this.badge.html('Remove ' + model.getName());\n },\n} as CommandObject<{}, { [k: string]: any }>);\n","import { CommandObject } from './CommandAbstract';\nimport { EditorParam } from '../../editor';\nimport { createEl } from '../../utils/dom';\n\ninterface ExportTemplateRunOptions {\n optsHtml?: EditorParam<'getHtml', 0>;\n optsCss?: EditorParam<'getCss', 0>;\n}\n\nexport default {\n run(editor, sender, opts: ExportTemplateRunOptions = {}) {\n sender && sender.set && sender.set('active', 0);\n const config = editor.getConfig();\n const modal = editor.Modal;\n const pfx = config.stylePrefix;\n this.cm = editor.CodeManager || null;\n\n if (!this.editors) {\n const oHtmlEd = this.buildEditor('htmlmixed', 'hopscotch', 'HTML');\n const oCsslEd = this.buildEditor('css', 'hopscotch', 'CSS');\n this.htmlEditor = oHtmlEd.model;\n this.cssEditor = oCsslEd.model;\n const editors = createEl('div', { class: `${pfx}export-dl` });\n editors.appendChild(oHtmlEd.el);\n editors.appendChild(oCsslEd.el);\n this.editors = editors;\n }\n\n modal\n .open({\n title: config.textViewCode,\n content: this.editors,\n })\n .getModel()\n .once('change:open', () => editor.stopCommand(`${this.id}`));\n this.htmlEditor.setContent(editor.getHtml(opts.optsHtml));\n this.cssEditor.setContent(editor.getCss(opts.optsCss));\n },\n\n stop(editor) {\n const modal = editor.Modal;\n modal && modal.close();\n },\n\n buildEditor(codeName: string, theme: string, label: string) {\n const cm = this.em.CodeManager;\n const model = cm.createViewer({\n label,\n codeName,\n theme,\n });\n\n const el = new cm.EditorView({\n model,\n config: cm.getConfig(),\n } as any).render().el;\n\n return { model, el };\n },\n} as CommandObject<{}, { [k: string]: any }>;\n","import { isElement } from 'underscore';\nimport { CommandObject } from './CommandAbstract';\n\nexport default {\n /**\n * Check if fullscreen mode is enabled\n * @return {Boolean}\n */\n isEnabled() {\n const d = document;\n // @ts-ignore\n if (d.fullscreenElement || d.webkitFullscreenElement || d.mozFullScreenElement) {\n return true;\n }\n return false;\n },\n\n /**\n * Enable fullscreen mode and return browser prefix\n * @param {HTMLElement} el\n * @return {string}\n */\n enable(el: any) {\n let pfx = '';\n\n if (el.requestFullscreen) {\n el.requestFullscreen();\n } else if (el.webkitRequestFullscreen) {\n pfx = 'webkit';\n el.webkitRequestFullscreen();\n } else if (el.mozRequestFullScreen) {\n pfx = 'moz';\n el.mozRequestFullScreen();\n } else if (el.msRequestFullscreen) {\n el.msRequestFullscreen();\n }\n\n return pfx;\n },\n\n /**\n * Disable fullscreen mode\n */\n disable() {\n const d: any = document;\n\n if (this.isEnabled()) {\n if (d.exitFullscreen) d.exitFullscreen();\n else if (d.webkitExitFullscreen) d.webkitExitFullscreen();\n else if (d.mozCancelFullScreen) d.mozCancelFullScreen();\n else if (d.msExitFullscreen) d.msExitFullscreen();\n }\n },\n\n /**\n * Triggered when the state of the fullscreen is changed. Inside detects if\n * it's enabled\n * @param {strinf} pfx Browser prefix\n * @param {Event} e\n */\n fsChanged(pfx: string) {\n if (!this.isEnabled()) {\n this.stopCommand({ sender: this.sender });\n document.removeEventListener(`${pfx || ''}fullscreenchange`, this.fsChanged);\n }\n },\n\n run(editor, sender, opts = {}) {\n this.sender = sender;\n const { target } = opts;\n const targetEl = isElement(target) ? target : document.querySelector(target!);\n const pfx = this.enable(targetEl || editor.getContainer());\n this.fsChanged = this.fsChanged.bind(this, pfx);\n document.addEventListener(pfx + 'fullscreenchange', this.fsChanged);\n editor.trigger('change:canvasOffset');\n },\n\n stop(editor, sender) {\n if (sender && sender.set) sender.set('active', false);\n this.disable();\n if (editor) editor.trigger('change:canvasOffset');\n },\n} as CommandObject<{ target?: HTMLElement | string }, { [k: string]: any }>;\n","import { extend, bindAll } from 'underscore';\nimport { $ } from '../../common';\nimport { on, off } from '../../utils/mixins';\nimport SelectComponent from './SelectComponent';\nimport SelectPosition from './SelectPosition';\nimport { CommandObject } from './CommandAbstract';\nimport Component from '../../dom_components/model/Component';\n\nexport default extend({}, SelectPosition, SelectComponent, {\n init(o: any) {\n SelectComponent.init.apply(this, arguments);\n bindAll(this, 'initSorter', 'rollback', 'onEndMove');\n this.opt = o;\n this.hoverClass = this.ppfx + 'highlighter-warning';\n this.badgeClass = this.ppfx + 'badge-warning';\n this.noSelClass = this.ppfx + 'no-select';\n },\n\n enable(...args: any) {\n SelectComponent.enable.apply(this, args);\n this.getBadgeEl().addClass(this.badgeClass);\n this.getHighlighterEl().addClass(this.hoverClass);\n var wp = this.$wrapper;\n wp.css('cursor', 'move');\n wp.on('mousedown', this.initSorter);\n\n // Avoid strange moving behavior\n wp.addClass(this.noSelClass);\n },\n\n /**\n * Overwrite for doing nothing\n * @private\n */\n toggleClipboard() {},\n\n /**\n * Delegate sorting\n * @param {Event} e\n * @private\n * */\n initSorter(e: any) {\n var el = $(e.target).data('model');\n var drag = el.get('draggable');\n if (!drag) return;\n\n // Avoid badge showing on move\n this.cacheEl = null;\n this.startSelectPosition(e.target, this.frameEl.contentDocument);\n this.sorter.draggable = drag;\n this.sorter.onEndMove = this.onEndMove.bind(this);\n this.stopSelectComponent();\n this.$wrapper.off('mousedown', this.initSorter);\n on(this.getContentWindow(), 'keydown', this.rollback);\n },\n\n /**\n * Init sorter from model\n * @param {Object} model\n * @private\n */\n initSorterFromModel(model: Component) {\n var drag = model.get('draggable');\n if (!drag) return;\n // Avoid badge showing on move\n this.cacheEl = null;\n // @ts-ignore\n var el = model.view.el;\n this.startSelectPosition(el, this.frameEl.contentDocument);\n this.sorter.draggable = drag;\n this.sorter.onEndMove = this.onEndMoveFromModel.bind(this);\n\n /*\n this.sorter.setDragHelper(el);\n var dragHelper = this.sorter.dragHelper;\n dragHelper.className = this.ppfx + 'drag-helper';\n dragHelper.innerHTML = '';\n dragHelper.backgroundColor = 'white';\n */\n\n this.stopSelectComponent();\n on(this.getContentWindow(), 'keydown', this.rollback);\n },\n\n /**\n * Init sorter from models\n * @param {Object} model\n * @private\n */\n initSorterFromModels(models: Component[]) {\n // TODO: if one only check for `draggable`\n // Avoid badge showing on move\n this.cacheEl = null;\n const lastModel = models[models.length - 1];\n const frame = (this.em.get('currentFrame') || {}).model;\n const el = lastModel.getEl(frame)!;\n const doc = el.ownerDocument;\n this.startSelectPosition(el, doc, { onStart: this.onStart });\n this.sorter.draggable = lastModel.get('draggable');\n this.sorter.toMove = models;\n this.sorter.onMoveClb = this.onDrag;\n this.sorter.onEndMove = this.onEndMoveFromModel.bind(this);\n this.stopSelectComponent();\n on(this.getContentWindow(), 'keydown', this.rollback);\n },\n\n onEndMoveFromModel() {\n off(this.getContentWindow(), 'keydown', this.rollback);\n },\n\n /**\n * Callback after sorting\n * @private\n */\n onEndMove() {\n this.enable();\n off(this.getContentWindow(), 'keydown', this.rollback);\n },\n\n /**\n * Say what to do after the component was selected (selectComponent)\n * @param {Event} e\n * @param {Object} Selected element\n * @private\n * */\n onSelect(e: any, el: any) {},\n\n /**\n * Used to bring the previous situation before start moving the component\n * @param {Event} e\n * @param {Boolean} Indicates if rollback in anycase\n * @private\n * */\n rollback(e: any, force: boolean) {\n var key = e.which || e.keyCode;\n if (key == 27 || force) {\n this.sorter.moved = false;\n this.sorter.endMove();\n }\n return;\n },\n\n /**\n * Returns badge element\n * @return {HTMLElement}\n * @private\n */\n getBadgeEl() {\n if (!this.$badge) this.$badge = $(this.getBadge());\n return this.$badge;\n },\n\n /**\n * Returns highlighter element\n * @return {HTMLElement}\n * @private\n */\n getHighlighterEl() {\n if (!this.$hl) this.$hl = $(this.canvas.getHighlighter());\n return this.$hl;\n },\n\n stop(...args) {\n // @ts-ignore\n SelectComponent.stop.apply(this, args);\n this.getBadgeEl().removeClass(this.badgeClass);\n this.getHighlighterEl().removeClass(this.hoverClass);\n var wp = this.$wrapper;\n wp.css('cursor', '').unbind().removeClass(this.noSelClass);\n },\n} as CommandObject<{}, { [k: string]: any }>);\n","import { isFunction } from 'underscore';\nimport Asset from '../../asset_manager/model/Asset';\nimport { createEl } from '../../utils/dom';\nimport { CommandObject } from './CommandAbstract';\n\nexport default {\n open(content: string) {\n const { editor, title, config, am } = this;\n const { custom } = config;\n if (isFunction(custom.open)) {\n return custom.open(am.__customData());\n }\n const { Modal } = editor;\n Modal.open({ title, content }).onceClose(() => editor.stopCommand(this.id));\n },\n\n close() {\n const { custom } = this.config;\n if (isFunction(custom.close)) {\n return custom.close(this.am.__customData());\n }\n const { Modal } = this.editor;\n Modal && Modal.close();\n },\n\n run(editor, sender, opts = {}) {\n const am = editor.AssetManager;\n const config = am.getConfig();\n const { types = [], accept, select } = opts;\n this.title = opts.modalTitle || editor.t('assetManager.modalTitle') || '';\n this.editor = editor;\n this.config = config;\n this.am = am;\n\n am.setTarget(opts.target);\n am.onClick(opts.onClick);\n am.onDblClick(opts.onDblClick);\n am.onSelect(opts.onSelect);\n am.__behaviour({\n select,\n types,\n options: opts,\n });\n\n if (config.custom) {\n this.rendered = this.rendered || createEl('div');\n this.rendered.className = `${config.stylePrefix}custom-wrp`;\n am.__behaviour({ container: this.rendered });\n am.__trgCustom();\n } else {\n if (!this.rendered || types) {\n let assets: Asset[] = am.getAll().filter((i: Asset) => i);\n\n if (types && types.length) {\n assets = assets.filter(a => types.indexOf(a.get('type')) !== -1);\n }\n\n am.render(assets);\n this.rendered = am.getContainer();\n }\n\n if (accept) {\n const uploadEl = this.rendered.querySelector(`input#${config.stylePrefix}uploadFile`);\n uploadEl && uploadEl.setAttribute('accept', accept);\n }\n }\n\n this.open(this.rendered);\n return this;\n },\n\n stop(editor) {\n this.editor = editor;\n this.close(this.rendered);\n },\n} as CommandObject;\n","import { isFunction } from 'underscore';\nimport { createEl } from '../../utils/dom';\nimport { CommandObject } from './CommandAbstract';\n\nexport default {\n open() {\n const { container, editor, bm, config } = this;\n const { custom, appendTo } = config;\n\n if (isFunction(custom.open)) {\n return custom.open(bm.__customData());\n }\n\n if (this.firstRender && !appendTo) {\n const id = 'views-container';\n const pn = editor.Panels;\n const panels = pn.getPanel(id) || pn.addPanel({ id });\n panels.set('appendContent', container).trigger('change:appendContent');\n if (!custom) container.appendChild(bm.render());\n }\n\n if (container) container.style.display = 'block';\n },\n\n close() {\n const { container, config } = this;\n const { custom } = config;\n\n if (isFunction(custom.close)) {\n return custom.close(this.bm.__customData());\n }\n\n if (container) container.style.display = 'none';\n },\n\n run(editor) {\n const bm = editor.Blocks;\n this.config = bm.getConfig();\n this.firstRender = !this.container;\n this.container = this.container || createEl('div');\n this.editor = editor;\n this.bm = bm;\n const { container } = this;\n bm.__behaviour({\n container,\n });\n\n if (this.config.custom) {\n bm.__trgCustom();\n }\n\n this.open();\n },\n\n stop() {\n this.close();\n },\n} as CommandObject<{}, { [k: string]: any }>;\n","import { CommandObject } from './CommandAbstract';\n\nexport default {\n run(editor) {\n const lm = editor.LayerManager;\n const pn = editor.Panels;\n const lmConfig = lm.getConfig();\n\n if (lmConfig.appendTo) return;\n\n if (!this.layers) {\n const id = 'views-container';\n const layers = document.createElement('div');\n // @ts-ignore\n const panels = pn.getPanel(id) || pn.addPanel({ id });\n\n if (lmConfig.custom) {\n lm.__trgCustom({ container: layers });\n } else {\n layers.appendChild(lm.render());\n }\n\n panels.set('appendContent', layers).trigger('change:appendContent');\n this.layers = layers;\n }\n\n this.layers.style.display = 'block';\n },\n\n stop() {\n const { layers } = this;\n layers && (layers.style.display = 'none');\n },\n} as CommandObject<{}, { [k: string]: any }>;\n","import { $ } from '../../common';\nimport { CommandObject } from './CommandAbstract';\n\nexport default {\n run(editor, sender) {\n this.sender = sender;\n\n if (!this.$cnt) {\n const config = editor.getConfig();\n const { Panels, DeviceManager, SelectorManager, StyleManager } = editor;\n const trgEvCnt = 'change:appendContent';\n const $cnt = $('');\n const $cntInner = $('');\n const $cntSlm = $('');\n const $cntSm = $('');\n this.$cnt = $cnt;\n this.$cntInner = $cntInner;\n $cntInner.append($cntSlm);\n $cntInner.append($cntSm);\n $cnt.append($cntInner);\n\n // Device Manager\n if (DeviceManager && config.showDevices) {\n const devicePanel = Panels.addPanel({ id: 'devices-c' });\n const dvEl = DeviceManager.render();\n devicePanel.set('appendContent', dvEl).trigger(trgEvCnt);\n }\n\n // Selector Manager container\n const slmConfig = SelectorManager.getConfig();\n if (slmConfig.custom) {\n SelectorManager.__trgCustom({ container: $cntSlm.get(0) });\n } else if (!slmConfig.appendTo) {\n $cntSlm.append(SelectorManager.render([]));\n }\n\n // Style Manager\n this.sm = StyleManager;\n const smConfig = StyleManager.getConfig();\n const pfx = smConfig.stylePrefix;\n this.$header = $(``);\n $cnt.append(this.$header);\n\n if (smConfig.custom) {\n StyleManager.__trgCustom({ container: $cntSm.get(0) });\n } else if (!smConfig.appendTo) {\n $cntSm.append(StyleManager.render());\n }\n\n // Create panel if not exists\n const pnCnt = 'views-container';\n const pnl = Panels.getPanel(pnCnt) || Panels.addPanel({ id: pnCnt });\n\n // Add all containers to the panel\n pnl.set('appendContent', $cnt).trigger(trgEvCnt);\n\n // Toggle Style Manager on target selection\n const em = editor.getModel();\n this.listenTo(em, StyleManager.events.target, this.toggleSm);\n }\n\n this.toggleSm();\n },\n\n /**\n * Toggle Style Manager visibility\n * @private\n */\n toggleSm() {\n const { sender, sm, $cntInner, $header } = this;\n if ((sender && sender.get && !sender.get('active')) || !sm) return;\n\n if (sm.getSelected()) {\n $cntInner?.show();\n $header?.hide();\n } else {\n $cntInner?.hide();\n $header?.show();\n }\n },\n\n stop() {\n this.$cntInner?.hide();\n this.$header?.hide();\n },\n} as CommandObject<{}, { [k: string]: any }>;\n","import { CommandObject } from './CommandAbstract';\nimport { $ } from '../../common';\n\nexport default {\n run(editor, sender) {\n this.sender = sender;\n const em = editor.getModel();\n\n const config = editor.Config;\n const pfx = config.stylePrefix;\n const tm = editor.TraitManager;\n const confTm = tm.getConfig();\n let panelC;\n\n if (confTm.appendTo) return;\n\n if (!this.$cn) {\n this.$cn = $('');\n this.$cn2 = $('');\n this.$cn.append(this.$cn2);\n this.$header = $('').append(``);\n this.$cn.append(this.$header);\n\n if (confTm.custom) {\n tm.__trgCustom({ container: this.$cn2.get(0) });\n } else {\n this.$cn2.append(`
${em.t('traitManager.label')}
`);\n this.$cn2.append(tm.render());\n }\n\n var panels = editor.Panels;\n\n if (!panels.getPanel('views-container')) {\n // @ts-ignore\n panelC = panels.addPanel({ id: 'views-container' });\n } else {\n panelC = panels.getPanel('views-container');\n }\n\n panelC?.set('appendContent', this.$cn.get(0)).trigger('change:appendContent');\n\n this.target = editor.getModel();\n this.listenTo(this.target, 'component:toggled', this.toggleTm);\n }\n\n this.toggleTm();\n },\n\n /**\n * Toggle Trait Manager visibility\n * @private\n */\n toggleTm() {\n const sender = this.sender;\n if (sender && sender.get && !sender.get('active')) return;\n\n if (this.target.getSelectedAll().length === 1) {\n this.$cn2.show();\n this.$header.hide();\n } else {\n this.$cn2.hide();\n this.$header.show();\n }\n },\n\n stop() {\n this.$cn2 && this.$cn2.hide();\n this.$header && this.$header.hide();\n },\n} as CommandObject<{}, { [k: string]: any }>;\n","import { isArray, contains } from 'underscore';\nimport Component from '../../dom_components/model/Component';\nimport { CommandObject } from './CommandAbstract';\n\nexport default {\n run(ed, s, opts = {}) {\n const em = ed.getModel();\n const clp: Component[] = em.get('clipboard');\n const lastSelected = ed.getSelected();\n\n if (clp && lastSelected) {\n ed.getSelectedAll().forEach(selected => {\n const { collection } = selected;\n if (!collection) return;\n\n let added;\n const at = selected.index() + 1;\n const addOpts = { at, action: opts.action || 'paste-component' };\n\n if (contains(clp, selected) && selected.get('copyable')) {\n // @ts-ignore\n added = collection.add(selected.clone(), addOpts);\n } else {\n const copyable = clp.filter(cop => cop.get('copyable'));\n const pasteable = copyable.filter(cop => ed.Components.canMove(selected.parent()!, cop).result);\n added = collection.add(\n // @ts-ignore\n pasteable.map(cop => cop.clone()),\n addOpts\n );\n }\n\n added = isArray(added) ? added : [added];\n added.forEach(add => ed.trigger('component:paste', add));\n });\n\n lastSelected.emitUpdate();\n }\n },\n} as CommandObject;\n","import { each } from 'underscore';\nimport Editor from '../../editor';\nimport { CommandObject } from './CommandAbstract';\n\nconst cmdOutline = 'core:component-outline';\n\nexport default {\n getPanels(editor: Editor) {\n if (!this.panels) {\n this.panels = editor.Panels.getPanels();\n }\n\n return this.panels;\n },\n\n preventDrag(opts: any) {\n opts.abort = 1;\n },\n\n tglEffects(on: boolean) {\n const { em } = this;\n const mthEv = on ? 'on' : 'off';\n if (em) {\n const canvas = em.Canvas;\n const body = canvas.getBody();\n const tlb = canvas.getToolbarEl();\n tlb && (tlb.style.display = on ? 'none' : '');\n const elP = body.querySelectorAll(`.${this.ppfx}no-pointer`);\n each(elP, item => ((item as HTMLElement).style.pointerEvents = on ? 'all' : ''));\n em[mthEv]('run:tlb-move:before', this.preventDrag);\n }\n },\n\n run(editor, sender) {\n this.sender = sender;\n this.selected = [...editor.getSelectedAll()];\n editor.select();\n\n if (!this.shouldRunSwVisibility) {\n this.shouldRunSwVisibility = editor.Commands.isActive(cmdOutline);\n }\n\n this.shouldRunSwVisibility && editor.stopCommand(cmdOutline);\n editor.getModel().stopDefault();\n\n const panels = this.getPanels(editor);\n const canvas = editor.Canvas.getElement();\n const editorEl = editor.getEl()!;\n const pfx = editor.Config.stylePrefix;\n\n if (!this.helper) {\n const helper = document.createElement('span');\n helper.className = `${pfx}off-prv fa fa-eye-slash`;\n editorEl.appendChild(helper);\n helper.onclick = () => this.stopCommand();\n this.helper = helper;\n }\n\n this.helper.style.display = 'inline-block';\n\n panels.forEach((panel: any) => panel.set('visible', false));\n\n const canvasS = canvas.style;\n canvasS.width = '100%';\n canvasS.height = '100%';\n canvasS.top = '0';\n canvasS.left = '0';\n canvasS.padding = '0';\n canvasS.margin = '0';\n editor.refresh();\n this.tglEffects(1);\n },\n\n stop(editor) {\n const { sender = {}, selected } = this;\n sender.set && sender.set('active', 0);\n const panels = this.getPanels(editor);\n\n if (this.shouldRunSwVisibility) {\n editor.runCommand(cmdOutline);\n this.shouldRunSwVisibility = false;\n }\n\n editor.getModel().runDefault();\n panels.forEach((panel: any) => panel.set('visible', true));\n\n const canvas = editor.Canvas.getElement();\n canvas.setAttribute('style', '');\n selected && editor.select(selected);\n delete this.selected;\n\n if (this.helper) {\n this.helper.style.display = 'none';\n }\n\n editor.refresh();\n this.tglEffects();\n },\n} as CommandObject<{}, { [k: string]: any }>;\n","import Resizer from '../../utils/Resizer';\nimport { CommandObject } from './CommandAbstract';\n\nexport default {\n run(editor, sender, opts) {\n const opt = opts || {};\n const canvas = editor.Canvas;\n const canvasView = canvas.getCanvasView();\n const options = {\n appendTo: canvas.getResizerEl(),\n prefix: editor.getConfig().stylePrefix,\n posFetcher: canvasView.getElementPos.bind(canvasView),\n mousePosFetcher: canvas.getMouseRelativePos,\n ...(opt.options || {}),\n };\n let { canvasResizer } = this;\n\n // Create the resizer for the canvas if not yet created\n if (!canvasResizer || opt.forceNew) {\n this.canvasResizer = new editor.Utils.Resizer(options);\n canvasResizer = this.canvasResizer;\n }\n\n canvasResizer.setOptions(options, true);\n canvasResizer.blur();\n canvasResizer.focus(opt.el);\n return canvasResizer;\n },\n\n stop() {\n this.canvasResizer?.blur();\n },\n} as CommandObject<{ options?: {}; forceNew?: boolean; el: HTMLElement }, { canvasResizer?: Resizer }>;\n","import { CommandFunction } from '../../commands/view/CommandAbstract';\nimport { Model, ObjectAny } from '../../common';\n\nexport interface ToolbarButtonProps {\n /**\n * Command name.\n */\n command: CommandFunction | string;\n\n /**\n * Button label.\n */\n label?: string;\n\n id?: string;\n attributes?: ObjectAny;\n events?: ObjectAny;\n}\n\nexport default class ToolbarButton extends Model
{\n defaults() {\n return {\n command: '',\n attributes: {},\n };\n }\n}\n","import { Collection } from '../../common';\nimport ToolbarButton from './ToolbarButton';\n\nexport default class Toolbar extends Collection {}\n\nToolbar.prototype.model = ToolbarButton;\n","import { isFunction, isString } from 'underscore';\nimport { View } from '../../common';\nimport EditorModel from '../../editor/model/Editor';\nimport ToolbarButton from '../model/ToolbarButton';\n\nexport type ToolbarViewProps = { em: EditorModel };\n\nexport default class ToolbarButtonView extends View {\n em: EditorModel;\n\n events() {\n return (\n this.model.get('events') || {\n mousedown: 'handleClick',\n }\n );\n }\n\n // @ts-ignore\n attributes() {\n return this.model.get('attributes');\n }\n\n constructor(props: { config: ToolbarViewProps; model: ToolbarButton }) {\n super(props);\n this.em = props.config.em;\n }\n\n handleClick(event: MouseEvent) {\n event.preventDefault();\n event.stopPropagation();\n\n /*\n * Since the toolbar lives outside the canvas frame, the event's\n * generated on it have clientX and clientY relative to the page.\n *\n * This causes issues during events like dragging, where they depend\n * on the clientX and clientY.\n *\n * This makes sure the offsets are calculated.\n *\n * More information on\n * https://github.com/GrapesJS/grapesjs/issues/2372\n * https://github.com/GrapesJS/grapesjs/issues/2207\n */\n\n const { em } = this;\n const { left, top } = em.Canvas.getFrameEl().getBoundingClientRect();\n const ev = {\n ...event,\n clientX: event.clientX - left,\n clientY: event.clientY - top,\n };\n\n em.trigger('toolbar:run:before', { event: ev });\n this.execCommand(ev);\n }\n\n execCommand(event: MouseEvent) {\n const { em, model } = this;\n const opts = { event };\n const command = model.get('command');\n const editor = em.Editor;\n\n if (isFunction(command)) {\n command(editor, null, opts);\n }\n\n if (isString(command)) {\n editor.runCommand(command, opts);\n }\n }\n\n render() {\n const { em, $el, model } = this;\n const id = model.get('id');\n const label = model.get('label');\n const pfx = em.getConfig().stylePrefix;\n $el.addClass(`${pfx}toolbar-item`);\n id && $el.addClass(`${pfx}toolbar-item__${id}`);\n label && $el.append(label);\n return this;\n }\n}\n","import DomainViews from '../../domain_abstract/view/DomainViews';\nimport EditorModel from '../../editor/model/Editor';\nimport ToolbarButtonView, { ToolbarViewProps } from './ToolbarButtonView';\n\nexport default class ToolbarView extends DomainViews {\n em: EditorModel;\n\n constructor(opts: ToolbarViewProps) {\n super(opts);\n const { em } = opts;\n this.em = em;\n this.config = { em };\n this.listenTo(this.collection, 'reset', this.render);\n }\n\n onRender() {\n const pfx = this.em.config.stylePrefix!;\n this.el.className = `${pfx}toolbar-items`;\n }\n}\n\n// @ts-ignore\nToolbarView.prototype.itemView = ToolbarButtonView;\n","import { bindAll, debounce, isElement } from 'underscore';\nimport { $ } from '../../common';\nimport Component from '../../dom_components/model/Component';\nimport Toolbar from '../../dom_components/model/Toolbar';\nimport ToolbarView from '../../dom_components/view/ToolbarView';\nimport { isDoc, isVisible } from '../../utils/dom';\nimport { getUnitFromValue, getViewEl, hasWin, isTaggableNode, off, on } from '../../utils/mixins';\nimport { CommandObject } from './CommandAbstract';\n\nlet showOffsets: boolean;\n/**\n * This command is responsible for show selecting components and displaying\n * all the necessary tools around (component toolbar, badge, highlight box, etc.)\n *\n * The command manages different boxes to display tools and when something in\n * the canvas is updated, the command triggers the appropriate method to update\n * their position (across multiple frames/components):\n * - Global Tools (updateToolsGlobal/updateGlobalPos)\n * This box contains tools intended to be displayed only on ONE component per time,\n * like Component Toolbar (updated by updateToolbar/updateToolbarPos), this means\n * you won't be able to see more than one Component Toolbar (even with multiple\n * frames or multiple selected components)\n * - Local Tools (updateToolsLocal/updateLocalPos)\n * Each frame in the canvas has its own local box, so we're able to see more than\n * one active container at the same time. When you put a mouse over an element\n * you can see stuff like the highlight box, badge, margins/paddings offsets, etc.\n * so those elements are inside the Local Tools box\n *\n *\n */\nexport default {\n init(o: any) {\n bindAll(this, 'onHover', 'onOut', 'onClick', 'onFrameScroll', 'onFrameUpdated', 'onContainerChange');\n },\n\n enable() {\n this.frameOff = this.canvasOff = this.adjScroll = null;\n this.startSelectComponent();\n showOffsets = true;\n },\n\n /**\n * Start select component event\n * @private\n * */\n startSelectComponent() {\n this.toggleSelectComponent(1);\n this.em.getSelected() && this.onSelect();\n },\n\n /**\n * Stop select component event\n * @private\n * */\n stopSelectComponent() {\n this.toggleSelectComponent();\n },\n\n /**\n * Toggle select component event\n * @private\n * */\n toggleSelectComponent(enable: boolean) {\n const { em } = this;\n const listenToEl = em.getConfig().listenToEl!;\n const { parentNode } = em.getContainer()!;\n const method = enable ? 'on' : 'off';\n const methods = { on, off };\n !listenToEl.length && parentNode && listenToEl.push(parentNode as HTMLElement);\n const trigger = (win: Window, body: HTMLBodyElement) => {\n methods[method](body, 'mouseover', this.onHover);\n methods[method](body, 'mouseleave', this.onOut);\n methods[method](body, 'click', this.onClick);\n // @ts-ignore\n methods[method](win, 'scroll', this.onFrameScroll, true);\n };\n methods[method](window, 'resize', this.onFrameUpdated);\n methods[method](listenToEl, 'scroll', this.onContainerChange);\n em[method]('component:toggled component:update undo redo', this.onSelect, this);\n em[method]('change:componentHovered', this.onHovered, this);\n em[method](\n 'component:resize styleable:change component:input', // component:styleUpdate\n this.updateGlobalPos,\n this\n );\n em[method]('component:update:toolbar', this._upToolbar, this);\n em[method]('change:canvasOffset', this.updateAttached, this);\n em[method]('frame:updated', this.onFrameUpdated, this);\n em[method]('canvas:updateTools', this.onFrameUpdated, this);\n em.Canvas.getFrames().forEach(frame => {\n const { view } = frame;\n const win = view?.getWindow();\n win && trigger(win, view?.getBody()!);\n });\n },\n\n /**\n * Hover command\n * @param {Object} e\n * @private\n */\n onHover(e: any) {\n e.stopPropagation();\n const { em } = this;\n const trg = e.target;\n const view = getViewEl(trg);\n const frameView = view && view._getFrame();\n const $el = $(trg);\n let model = $el.data('model');\n\n // Get first valid model\n if (!model) {\n let parent = $el.parent();\n while (!model && parent.length && !isDoc(parent[0])) {\n model = parent.data('model');\n parent = parent.parent();\n }\n }\n\n this.currentDoc = trg.ownerDocument;\n em.setHovered(model, { useValid: true });\n frameView && em.set('currentFrame', frameView);\n },\n\n onFrameUpdated() {\n this.updateLocalPos();\n this.updateGlobalPos();\n },\n\n onHovered(em: any, component: Component) {\n let result = {};\n\n if (component) {\n component.views?.forEach(view => {\n const el = view.el;\n const pos = this.getElementPos(el);\n result = { el, pos, component, view: getViewEl(el) };\n this.updateToolsLocal(result);\n\n if (el.ownerDocument === this.currentDoc) this.elHovered = result;\n });\n } else {\n this.currentDoc = null;\n this.elHovered = 0;\n this.updateToolsLocal();\n this.canvas.getFrames().forEach(frame => {\n const { view } = frame;\n const el = view && view.getToolsEl();\n el && this.toggleToolsEl(0, 0, { el });\n });\n }\n },\n\n /**\n * Say what to do after the component was selected\n * @param {Object} e\n * @param {Object} el\n * @private\n * */\n onSelect: debounce(function () {\n // @ts-ignore\n const { em } = this;\n const component = em.getSelected();\n const currentFrame = em.get('currentFrame') || {};\n const view = component && component.getView(currentFrame.model);\n let el = view && view.el;\n let result = {};\n\n if (el && isVisible(el)) {\n // @ts-ignore\n const pos = this.getElementPos(el);\n result = { el, pos, component, view: getViewEl(el) };\n }\n\n // @ts-ignore\n this.elSelected = result;\n // @ts-ignore\n this.updateToolsGlobal();\n // @ts-ignore This will hide some elements from the select component\n this.updateLocalPos(result);\n // @ts-ignore\n this.initResize(component);\n }, 0),\n\n updateGlobalPos() {\n const sel = this.getElSelected();\n if (!sel.el) return;\n sel.pos = this.getElementPos(sel.el);\n this.updateToolsGlobal();\n },\n\n updateLocalPos(data: any) {\n const sel = this.getElHovered();\n if (!sel.el) return;\n sel.pos = this.getElementPos(sel.el);\n this.updateToolsLocal(data);\n },\n\n getElHovered() {\n return this.elHovered || {};\n },\n\n getElSelected() {\n return this.elSelected || {};\n },\n\n onOut() {\n this.em.setHovered(0);\n },\n\n toggleToolsEl(on: boolean, view: any, opts: any = {}) {\n const el = opts.el || this.canvas.getToolsEl(view);\n el && (el.style.display = on ? '' : 'none');\n return el || {};\n },\n\n /**\n * Show element offset viewer\n * @param {HTMLElement} el\n * @param {Object} pos\n */\n showElementOffset(el: HTMLElement, pos: any, opts: any = {}) {\n if (!showOffsets) return;\n this.editor.runCommand('show-offset', {\n el,\n elPos: pos,\n view: opts.view,\n force: 1,\n top: 0,\n left: 0,\n });\n },\n\n /**\n * Hide element offset viewer\n * @param {HTMLElement} el\n * @param {Object} pos\n */\n hideElementOffset(view: any) {\n this.editor.stopCommand('show-offset', {\n view,\n });\n },\n\n /**\n * Show fixed element offset viewer\n * @param {HTMLElement} el\n * @param {Object} pos\n */\n showFixedElementOffset(el: HTMLElement, pos: any) {\n this.editor.runCommand('show-offset', {\n el,\n elPos: pos,\n state: 'Fixed',\n });\n },\n\n /**\n * Hide fixed element offset viewer\n * @param {HTMLElement} el\n * @param {Object} pos\n */\n hideFixedElementOffset() {\n if (this.editor) this.editor.stopCommand('show-offset', { state: 'Fixed' });\n },\n\n /**\n * Hide Highlighter element\n */\n hideHighlighter(view: any) {\n this.canvas.getHighlighter(view).style.opacity = 0;\n },\n\n /**\n * On element click\n * @param {Event} e\n * @private\n */\n onClick(ev: any) {\n ev.stopPropagation();\n ev.preventDefault();\n const { em } = this;\n if (em.get('_cmpDrag')) return em.set('_cmpDrag');\n const $el = $(ev.target);\n let model = $el.data('model');\n\n if (!model) {\n let parent = $el.parent();\n while (!model && parent.length && !isDoc(parent[0])) {\n model = parent.data('model');\n parent = parent.parent();\n }\n }\n\n if (model) {\n // Avoid selection of inner text components during editing\n if (em.isEditing() && !model.get('textable') && model.isChildOf('text')) {\n return;\n }\n this.select(model, ev);\n }\n },\n\n /**\n * Select component\n * @param {Component} model\n * @param {Event} event\n */\n select(model: Component, event = {}) {\n if (!model) return;\n this.editor.select(model, { event, useValid: true });\n this.initResize(model);\n },\n\n /**\n * Update badge for the component\n * @param {Object} Component\n * @param {Object} pos Position object\n * @private\n * */\n updateBadge(el: HTMLElement, pos: any, opts: any = {}) {\n const { canvas } = this;\n const model = $(el).data('model');\n if (!model || !model.get('badgable')) return;\n const badge = this.getBadge(opts);\n\n if (!opts.posOnly) {\n const config = this.canvas.getConfig();\n const icon = model.getIcon();\n const ppfx = config.pStylePrefix || '';\n const clsBadge = `${ppfx}badge`;\n const customeLabel = config.customBadgeLabel;\n const badgeLabel = `${icon ? `${icon}
` : ''}\n ${model.getName()}
`;\n badge.innerHTML = customeLabel ? customeLabel(model) : badgeLabel;\n }\n\n const un = 'px';\n const bStyle = badge.style;\n bStyle.display = 'block';\n\n const targetToElem = canvas.getTargetToElementFixed(el, badge, {\n pos: pos,\n });\n\n const top = targetToElem.top; //opts.topOff - badgeH < 0 ? -opts.topOff : posTop;\n const left = opts.leftOff < 0 ? -opts.leftOff : 0;\n\n bStyle.top = top + un;\n bStyle.left = left + un;\n },\n\n /**\n * Update highlighter element\n * @param {HTMLElement} el\n * @param {Object} pos Position object\n * @private\n */\n showHighlighter(view: any) {\n this.canvas.getHighlighter(view).style.opacity = '';\n },\n\n /**\n * Init resizer on the element if possible\n * @param {HTMLElement|Component} elem\n * @private\n */\n initResize(elem: HTMLElement) {\n const { em, canvas } = this;\n const editor = em?.Editor;\n const config = em?.config;\n const pfx = config.stylePrefix || '';\n const resizeClass = `${pfx}resizing`;\n const model = !isElement(elem) && isTaggableNode(elem) ? elem : em.getSelected();\n const resizable = model && model.get('resizable');\n let options = {};\n let modelToStyle: any;\n\n var toggleBodyClass = (method: string, e: any, opts: any) => {\n const docs = opts.docs;\n docs &&\n docs.forEach((doc: Document) => {\n const body = doc.body;\n const cls = body.className || '';\n body.className = (method == 'add' ? `${cls} ${resizeClass}` : cls.replace(resizeClass, '')).trim();\n });\n };\n\n if (editor && resizable) {\n const el = isElement(elem) ? elem : model.getEl();\n options = {\n // Here the resizer is updated with the current element height and width\n onStart(e: Event, opts: any = {}) {\n const { el, config, resizer } = opts;\n const { keyHeight, keyWidth, currentUnit, keepAutoHeight, keepAutoWidth } = config;\n toggleBodyClass('add', e, opts);\n modelToStyle = em.Styles.getModelToStyle(model);\n canvas.toggleFramesEvents(false);\n const computedStyle = getComputedStyle(el);\n const modelStyle = modelToStyle.getStyle();\n\n let currentWidth = modelStyle[keyWidth];\n config.autoWidth = keepAutoWidth && currentWidth === 'auto';\n if (isNaN(parseFloat(currentWidth))) {\n currentWidth = computedStyle[keyWidth];\n }\n\n let currentHeight = modelStyle[keyHeight];\n config.autoHeight = keepAutoHeight && currentHeight === 'auto';\n if (isNaN(parseFloat(currentHeight))) {\n currentHeight = computedStyle[keyHeight];\n }\n\n resizer.startDim.w = parseFloat(currentWidth);\n resizer.startDim.h = parseFloat(currentHeight);\n showOffsets = false;\n\n if (currentUnit) {\n config.unitHeight = getUnitFromValue(currentHeight);\n config.unitWidth = getUnitFromValue(currentWidth);\n }\n },\n\n // Update all positioned elements (eg. component toolbar)\n onMove() {\n editor.trigger('component:resize');\n },\n\n onEnd(e: Event, opts: any) {\n toggleBodyClass('remove', e, opts);\n editor.trigger('component:resize');\n canvas.toggleFramesEvents(true);\n showOffsets = true;\n },\n\n updateTarget(el: any, rect: any, options: any = {}) {\n if (!modelToStyle) {\n return;\n }\n\n const { store, selectedHandler, config } = options;\n const { keyHeight, keyWidth, autoHeight, autoWidth, unitWidth, unitHeight } = config;\n const onlyHeight = ['tc', 'bc'].indexOf(selectedHandler) >= 0;\n const onlyWidth = ['cl', 'cr'].indexOf(selectedHandler) >= 0;\n const style: any = {};\n\n if (!onlyHeight) {\n const bodyw = canvas.getBody().offsetWidth;\n const width = rect.w < bodyw ? rect.w : bodyw;\n style[keyWidth] = autoWidth ? 'auto' : `${width}${unitWidth}`;\n }\n\n if (!onlyWidth) {\n style[keyHeight] = autoHeight ? 'auto' : `${rect.h}${unitHeight}`;\n }\n\n if (em.getDragMode(model)) {\n style.top = `${rect.t}${unitHeight}`;\n style.left = `${rect.l}${unitWidth}`;\n }\n\n const finalStyle = {\n ...style,\n // value for the partial update\n __p: !store,\n };\n modelToStyle.addStyle(finalStyle, { avoidStore: !store });\n em.Styles.__emitCmpStyleUpdate(finalStyle, { components: em.getSelected() });\n },\n };\n\n if (typeof resizable == 'object') {\n options = { ...options, ...resizable, parent: options };\n }\n\n this.resizer = editor.runCommand('resize', { el, options, force: 1 });\n } else {\n editor.stopCommand('resize');\n this.resizer = null;\n }\n },\n\n /**\n * Update toolbar if the component has one\n * @param {Object} mod\n */\n updateToolbar(mod: Component) {\n const { em } = this.config;\n const model = mod == em ? em.getSelected() : mod;\n const toolbarEl = this.canvas.getToolbarEl()!;\n const toolbarStyle = toolbarEl.style;\n const toolbar = model.get('toolbar');\n const showToolbar = em.config.showToolbar;\n\n if (model && showToolbar && toolbar && toolbar.length) {\n toolbarStyle.display = '';\n if (!this.toolbar) {\n toolbarEl.innerHTML = '';\n this.toolbar = new Toolbar(toolbar);\n // @ts-ignore\n const toolbarView = new ToolbarView({ collection: this.toolbar, em });\n toolbarEl.appendChild(toolbarView.render().el);\n }\n\n this.toolbar.reset(toolbar);\n toolbarStyle.top = '-100px';\n toolbarStyle.left = '0';\n } else {\n toolbarStyle.display = 'none';\n }\n },\n\n /**\n * Update toolbar positions\n * @param {HTMLElement} el\n * @param {Object} pos\n */\n updateToolbarPos(pos: any) {\n const unit = 'px';\n const { style } = this.canvas.getToolbarEl()!;\n style.top = `${pos.top}${unit}`;\n style.left = `${pos.left}${unit}`;\n style.opacity = '';\n },\n\n /**\n * Return canvas dimensions and positions\n * @return {Object}\n */\n getCanvasPosition() {\n return this.canvas.getCanvasView().getPosition();\n },\n\n /**\n * Returns badge element\n * @return {HTMLElement}\n * @private\n */\n getBadge(opts: any = {}) {\n return this.canvas.getBadgeEl(opts.view);\n },\n\n /**\n * On frame scroll callback\n * @private\n */\n onFrameScroll() {\n this.updateTools();\n },\n\n updateTools() {\n this.updateLocalPos();\n this.updateGlobalPos();\n },\n\n isCompSelected(comp: Component) {\n return comp && comp.get('status') === 'selected';\n },\n\n /**\n * Update tools visible on hover\n * @param {HTMLElement} el\n * @param {Object} pos\n */\n updateToolsLocal(data: any) {\n const config = this.em.getConfig();\n const { el, pos, view, component } = data || this.getElHovered();\n\n if (!el) {\n this.lastHovered = 0;\n return;\n }\n\n const isHoverEn = component.get('hoverable');\n const isNewEl = this.lastHovered !== el;\n const badgeOpts = isNewEl ? {} : { posOnly: 1 };\n\n if (isNewEl && isHoverEn) {\n this.lastHovered = el;\n this.showHighlighter(view);\n this.showElementOffset(el, pos, { view });\n }\n\n if (this.isCompSelected(component)) {\n this.hideHighlighter(view);\n !config.showOffsetsSelected && this.hideElementOffset(view);\n }\n\n const unit = 'px';\n const toolsEl = this.toggleToolsEl(1, view);\n const { style } = toolsEl;\n const frameOff = this.canvas.canvasRectOffset(el, pos);\n const topOff = frameOff.top;\n const leftOff = frameOff.left;\n\n this.updateBadge(el, pos, {\n ...badgeOpts,\n view,\n topOff,\n leftOff,\n });\n\n style.top = topOff + unit;\n style.left = leftOff + unit;\n style.width = pos.width + unit;\n style.height = pos.height + unit;\n\n this._trgToolUp('local', {\n component,\n el: toolsEl,\n top: topOff,\n left: leftOff,\n width: pos.width,\n height: pos.height,\n });\n },\n\n _upToolbar: debounce(function () {\n // @ts-ignore\n this.updateToolsGlobal({ force: 1 });\n }, 0),\n\n _trgToolUp(type: string, opts = {}) {\n this.em.trigger('canvas:tools:update', {\n type,\n ...opts,\n });\n },\n\n updateToolsGlobal(opts: any = {}) {\n const { el, pos, component } = this.getElSelected();\n\n if (!el) {\n this.toggleToolsEl(); // Hides toolbar\n this.lastSelected = 0;\n return;\n }\n\n const { canvas } = this;\n const isNewEl = this.lastSelected !== el;\n\n if (isNewEl || opts.force) {\n this.lastSelected = el;\n this.updateToolbar(component);\n }\n\n const unit = 'px';\n const toolsEl = this.toggleToolsEl(1);\n const { style } = toolsEl;\n const targetToElem = canvas.getTargetToElementFixed(el, canvas.getToolbarEl()!, { pos });\n const topOff = targetToElem.canvasOffsetTop;\n const leftOff = targetToElem.canvasOffsetLeft;\n style.top = topOff + unit;\n style.left = leftOff + unit;\n style.width = pos.width + unit;\n style.height = pos.height + unit;\n\n this.updateToolbarPos({ top: targetToElem.top, left: targetToElem.left });\n this._trgToolUp('global', {\n component,\n el: toolsEl,\n top: topOff,\n left: leftOff,\n width: pos.width,\n height: pos.height,\n });\n },\n\n /**\n * Update attached elements, eg. component toolbar\n */\n updateAttached: debounce(function () {\n // @ts-ignore\n this.updateGlobalPos();\n }, 0),\n\n onContainerChange: debounce(function () {\n // @ts-ignore\n this.em.refreshCanvas();\n }, 150),\n\n /**\n * Returns element's data info\n * @param {HTMLElement} el\n * @return {Object}\n * @private\n */\n getElementPos(el: HTMLElement) {\n return this.canvas.getCanvasView().getElementPos(el, { noScroll: true });\n },\n\n /**\n * Hide badge\n * @private\n * */\n hideBadge() {\n this.getBadge().style.display = 'none';\n },\n\n /**\n * Clean previous model from different states\n * @param {Component} model\n * @private\n */\n cleanPrevious(model: Component) {\n model &&\n model.set({\n status: '',\n state: '',\n });\n },\n\n /**\n * Returns content window\n * @private\n */\n getContentWindow() {\n return this.canvas.getWindow();\n },\n\n run(editor) {\n if (!hasWin()) return;\n // @ts-ignore\n this.editor = editor && editor.get('Editor');\n this.enable();\n },\n\n stop(ed, sender, opts = {}) {\n if (!hasWin()) return;\n const { em, editor } = this;\n this.onHovered(); // force to hide toolbar\n this.stopSelectComponent();\n !opts.preserveSelected && em.setSelected();\n this.toggleToolsEl();\n editor && editor.stopCommand('resize');\n },\n} as CommandObject;\n","import { $ } from '../../common';\nimport { CommandObject } from './CommandAbstract';\n\nexport default {\n /**\n * Start select position event\n * @param {HTMLElement} trg\n * @private\n * */\n startSelectPosition(trg: HTMLElement, doc: Document, opts: any = {}) {\n this.isPointed = false;\n const utils = this.em.Utils;\n const container = trg.ownerDocument.body;\n\n if (utils && !this.sorter)\n this.sorter = new utils.Sorter({\n // @ts-ignore\n container,\n placer: this.canvas.getPlacerEl(),\n containerSel: '*',\n itemSel: '*',\n pfx: this.ppfx,\n direction: 'a',\n document: doc,\n wmargin: 1,\n nested: 1,\n em: this.em,\n canvasRelative: 1,\n scale: () => this.em.getZoomDecimal(),\n });\n\n if (opts.onStart) this.sorter.onStart = opts.onStart;\n trg && this.sorter.startSort(trg, { container });\n },\n\n /**\n * Get frame position\n * @return {Object}\n * @private\n */\n getOffsetDim() {\n var frameOff = this.offset(this.canvas.getFrameEl());\n var canvasOff = this.offset(this.canvas.getElement());\n var top = frameOff.top - canvasOff.top;\n var left = frameOff.left - canvasOff.left;\n return { top, left };\n },\n\n /**\n * Stop select position event\n * @private\n * */\n stopSelectPosition() {\n this.posTargetCollection = null;\n this.posIndex = this.posMethod == 'after' && this.cDim.length !== 0 ? this.posIndex + 1 : this.posIndex; //Normalize\n if (this.sorter) {\n this.sorter.moved = 0;\n this.sorter.endMove();\n }\n if (this.cDim) {\n this.posIsLastEl = this.cDim.length !== 0 && this.posMethod == 'after' && this.posIndex == this.cDim.length;\n this.posTargetEl =\n this.cDim.length === 0\n ? $(this.outsideElem)\n : !this.posIsLastEl && this.cDim[this.posIndex]\n ? $(this.cDim[this.posIndex][5]).parent()\n : $(this.outsideElem);\n this.posTargetModel = this.posTargetEl.data('model');\n this.posTargetCollection = this.posTargetEl.data('model-comp');\n }\n },\n\n /**\n * Enabel select position\n * @private\n */\n enable() {\n this.startSelectPosition();\n },\n\n /**\n * Check if the pointer is near to the float component\n * @param {number} index\n * @param {string} method\n * @param {Array} dims\n * @return {Boolean}\n * @private\n * */\n nearFloat(index: number, method: string, dims: any[]) {\n var i = index || 0;\n var m = method || 'before';\n var len = dims.length;\n var isLast = len !== 0 && m == 'after' && i == len;\n if (len !== 0 && ((!isLast && !dims[i][4]) || (dims[i - 1] && !dims[i - 1][4]) || (isLast && !dims[i - 1][4])))\n return 1;\n return 0;\n },\n\n run() {\n this.enable();\n },\n\n stop() {\n this.stopSelectPosition();\n this.$wrapper.css('cursor', '');\n this.$wrapper.unbind();\n },\n} as CommandObject<{}, { [k: string]: any }>;\n","import { isUndefined } from 'underscore';\nimport { $ } from '../../common';\nimport { isTextNode } from '../../utils/mixins';\nimport { CommandObject } from './CommandAbstract';\n\nexport default {\n getOffsetMethod(state: string) {\n var method = state || '';\n return 'get' + method + 'OffsetViewerEl';\n },\n\n run(editor, sender, opts) {\n var opt = opts || {};\n var state = opt.state || '';\n var config = editor.getConfig();\n const zoom = this.em.getZoomDecimal();\n const el = opt.el || '';\n\n if (!config.showOffsets || isTextNode(el) || (!config.showOffsetsSelected && state == 'Fixed')) {\n editor.stopCommand(`${this.id}`, opts);\n return;\n }\n\n var canvas = editor.Canvas;\n var pos = { ...(opt.elPos || canvas.getElementPos(el)) };\n\n if (!isUndefined(opt.top)) {\n pos.top = opt.top;\n }\n if (!isUndefined(opt.left)) {\n pos.left = opt.left;\n }\n\n var style = window.getComputedStyle(el);\n var ppfx = this.ppfx;\n var stateVar = state + 'State';\n var method = this.getOffsetMethod(state);\n // @ts-ignore\n var offsetViewer = canvas[method](opts.view);\n offsetViewer.style.opacity = '';\n\n let marginT = this['marginT' + state];\n let marginB = this['marginB' + state];\n let marginL = this['marginL' + state];\n let marginR = this['marginR' + state];\n let padT = this['padT' + state];\n let padB = this['padB' + state];\n let padL = this['padL' + state];\n let padR = this['padR' + state];\n\n if (offsetViewer.childNodes.length) {\n this[stateVar] = '1';\n marginT = offsetViewer.querySelector('[data-offset-m-t]');\n marginB = offsetViewer.querySelector('[data-offset-m-b]');\n marginL = offsetViewer.querySelector('[data-offset-m-l]');\n marginR = offsetViewer.querySelector('[data-offset-m-r]');\n padT = offsetViewer.querySelector('[data-offset-p-t]');\n padB = offsetViewer.querySelector('[data-offset-p-b]');\n padL = offsetViewer.querySelector('[data-offset-p-l]');\n padR = offsetViewer.querySelector('[data-offset-p-r]');\n }\n\n if (!this[stateVar]) {\n var stateLow = state.toLowerCase();\n var marginName = stateLow + 'margin-v';\n var paddingName = stateLow + 'padding-v';\n var marginV = $(``).get(0) as HTMLElement;\n var paddingV = $(`
`).get(0) as HTMLElement;\n var marginEls = ppfx + marginName + '-el';\n var paddingEls = ppfx + paddingName + '-el';\n const fullMargName = `${marginEls} ${ppfx + marginName}`;\n const fullPadName = `${paddingEls} ${ppfx + paddingName}`;\n marginT = $(`
`).get(0);\n marginB = $(`
`).get(0);\n marginL = $(`
`).get(0);\n marginR = $(`
`).get(0);\n padT = $(`
`).get(0);\n padB = $(`
`).get(0);\n padL = $(`
`).get(0);\n padR = $(`
`).get(0);\n this['marginT' + state] = marginT;\n this['marginB' + state] = marginB;\n this['marginL' + state] = marginL;\n this['marginR' + state] = marginR;\n this['padT' + state] = padT;\n this['padB' + state] = padB;\n this['padL' + state] = padL;\n this['padR' + state] = padR;\n marginV.appendChild(marginT);\n marginV.appendChild(marginB);\n marginV.appendChild(marginL);\n marginV.appendChild(marginR);\n paddingV.appendChild(padT);\n paddingV.appendChild(padB);\n paddingV.appendChild(padL);\n paddingV.appendChild(padR);\n offsetViewer.appendChild(marginV);\n offsetViewer.appendChild(paddingV);\n this[stateVar] = '1';\n }\n\n var unit = 'px';\n var marginLeftSt = parseFloat(style.marginLeft.replace(unit, '')) * zoom;\n var marginRightSt = parseFloat(style.marginRight.replace(unit, '')) * zoom;\n var marginTopSt = parseFloat(style.marginTop.replace(unit, '')) * zoom;\n var marginBottomSt = parseFloat(style.marginBottom.replace(unit, '')) * zoom;\n var mtStyle = marginT.style;\n var mbStyle = marginB.style;\n var mlStyle = marginL.style;\n var mrStyle = marginR.style;\n var ptStyle = padT.style;\n var pbStyle = padB.style;\n var plStyle = padL.style;\n var prStyle = padR.style;\n var posLeft = parseFloat(pos.left);\n var widthEl = parseFloat(style.width) * zoom + unit;\n\n // Margin style\n mtStyle.height = marginTopSt + unit;\n mtStyle.width = widthEl;\n mtStyle.top = pos.top - marginTopSt + unit;\n mtStyle.left = posLeft + unit;\n\n mbStyle.height = marginBottomSt + unit;\n mbStyle.width = widthEl;\n mbStyle.top = pos.top + pos.height + unit;\n mbStyle.left = posLeft + unit;\n\n var marginSideH = pos.height + marginTopSt + marginBottomSt + unit;\n var marginSideT = pos.top - marginTopSt + unit;\n mlStyle.height = marginSideH;\n mlStyle.width = marginLeftSt + unit;\n mlStyle.top = marginSideT;\n mlStyle.left = posLeft - marginLeftSt + unit;\n\n mrStyle.height = marginSideH;\n mrStyle.width = marginRightSt + unit;\n mrStyle.top = marginSideT;\n mrStyle.left = posLeft + pos.width + unit;\n\n // Padding style\n var padTop = parseFloat(style.paddingTop) * zoom;\n ptStyle.height = padTop + unit;\n // ptStyle.width = widthEl;\n // ptStyle.top = pos.top + unit;\n // ptStyle.left = posLeft + unit;\n\n var padBot = parseFloat(style.paddingBottom) * zoom;\n pbStyle.height = padBot + unit;\n // pbStyle.width = widthEl;\n // pbStyle.top = pos.top + pos.height - padBot + unit;\n // pbStyle.left = posLeft + unit;\n\n var padSideH = pos.height - padBot - padTop + unit;\n var padSideT = pos.top + padTop + unit;\n plStyle.height = padSideH;\n plStyle.width = parseFloat(style.paddingLeft) * zoom + unit;\n plStyle.top = padSideT;\n // plStyle.left = pos.left + unit;\n // plStyle.right = 0;\n\n var padRight = parseFloat(style.paddingRight) * zoom;\n prStyle.height = padSideH;\n prStyle.width = padRight + unit;\n prStyle.top = padSideT;\n // prStyle.left = pos.left + pos.width - padRight + unit;\n // prStyle.left = 0;\n },\n\n stop(editor, sender, opts = {}) {\n var opt = opts || {};\n var state = opt.state || '';\n var method = this.getOffsetMethod(state);\n var canvas = editor.Canvas;\n // @ts-ignore\n var offsetViewer = canvas[method](opts.view);\n offsetViewer.style.opacity = 0;\n },\n} as CommandObject
;\n","import { bindAll } from 'underscore';\nimport Frame from '../../canvas/model/Frame';\nimport Editor from '../../editor';\nimport { CommandObject } from './CommandAbstract';\nimport { isDef } from '../../utils/mixins';\n\nexport default {\n init() {\n bindAll(this, '_onFramesChange');\n },\n\n run(ed) {\n this.toggleVis(ed, true);\n },\n\n stop(ed) {\n this.toggleVis(ed, false);\n },\n\n toggleVis(ed: Editor, active = true) {\n if (!ed.Commands.isActive('preview')) {\n const cv = ed.Canvas;\n const mth = active ? 'on' : 'off';\n const canvasModel = cv.getModel();\n canvasModel[mth]('change:frames', this._onFramesChange);\n this.handleFrames(cv.getFrames(), active);\n }\n },\n\n handleFrames(frames: Frame[], active?: boolean) {\n frames.forEach((frame: Frame & { __ol?: boolean }) => {\n frame.view?.loaded && this._upFrame(frame, active);\n\n if (!frame.__ol) {\n frame.on('loaded', () => this._upFrame(frame));\n frame.__ol = true;\n }\n });\n },\n\n _onFramesChange(_: any, frames: Frame[]) {\n this.handleFrames(frames);\n },\n\n _upFrame(frame: Frame, active?: boolean) {\n const { ppfx, em, id } = this;\n const isActive = isDef(active) ? active : em.Commands.isActive(id as string);\n const method = isActive ? 'add' : 'remove';\n const cls = `${ppfx}dashed`;\n frame.view?.getBody().classList[method](cls);\n },\n} as CommandObject<\n {},\n {\n [key: string]: any;\n }\n>;\n","import Backbone from 'backbone';\nexport { default as $ } from '../utils/cash-dom';\n\ninterface NOOP {}\n\nexport type Debounced = Function & { cancel(): void };\n\nexport type SetOptions = Backbone.ModelSetOptions & { avoidStore?: boolean };\n\nexport type AddOptions = Backbone.AddOptions & { temporary?: boolean };\n\nexport type RemoveOptions = Backbone.Silenceable;\n\nexport type EventHandler = Backbone.EventHandler;\n\nexport type ObjectHash = Backbone.ObjectHash;\n\nexport type ObjectAny = Record;\n\nexport type ObjectStrings = Record;\n\n// https://github.com/microsoft/TypeScript/issues/29729#issuecomment-1483854699\nexport type LiteralUnion = T | (U & NOOP);\n\nexport type Position = {\n x: number;\n y: number;\n};\n\nexport interface Coordinates {\n x: number;\n y: number;\n}\n\nexport interface Dimensions {\n height: number;\n width: number;\n}\n\nexport interface BoxRect extends Coordinates, Dimensions {}\n\nexport type ElementRect = {\n top: number;\n left: number;\n width: number;\n height: number;\n};\n\nexport type CombinedModelConstructorOptions<\n E,\n M extends Model = Model\n> = Backbone.ModelConstructorOptions & E;\n\nexport interface ViewOptions\n extends Backbone.ViewOptions {}\n\nexport class Model extends Backbone.Model {}\n\nexport class Collection extends Backbone.Collection {}\n\nexport class View extends Backbone.View {}\n\nexport type PickMatching = { [K in keyof T as T[K] extends V ? K : never]: T[K] };\n\nexport type ExtractMethods = PickMatching