{"version":3,"sources":["kendo.editor.js"],"names":["f","define","kendo","UndoRedoStack","Observable","extend","init","options","fn","call","this","clear","events","push","command","stack","slice","currentCommandIndex","undo","canUndo","trigger","redo","canRedo","length","deepExtend","util","amd","a1","a2","a3","$","undefined","Tool","FormatTool","bomFill","emptyElementContent","window","Class","Widget","ui","os","support","mobileOS","browser","proxy","keys","ToolTemplate","getHtml","template","useWithBlock","EditorUtils","editorWrapperTemplate","buttonTemplate","colorPickerTemplate","comboBoxTemplate","dropDownListTemplate","separatorTemplate","overflowAnchorTemplate","formatByName","name","format","i","inArray","tags","registerTool","toolName","tool","toolOptions","cssClass","toLowerCase","Editor","defaultTools","registerFormat","formatName","formats","messages","bold","italic","underline","strikethrough","superscript","subscript","justifyCenter","justifyLeft","justifyRight","justifyFull","insertUnorderedList","insertOrderedList","indent","outdent","createLink","unlink","insertImage","insertFile","insertHtml","viewHtml","fontName","fontNameInherit","fontSize","fontSizeInherit","formatBlock","formatting","foreColor","backColor","style","emptyFolder","editAreaTitle","uploadFile","orderBy","orderBySize","orderByName","invalidFileType","deleteFile","overwriteFile","directoryNotFound","imageWebAddress","imageAltText","imageWidth","imageHeight","fileWebAddress","fileTitle","linkWebAddress","linkText","linkToolTip","linkOpenInNewWindow","dialogUpdate","dialogInsert","dialogCancel","createTable","createTableHint","addColumnLeft","addColumnRight","addRowAbove","addRowBelow","deleteRow","deleteColumn","supportedBrowser","ios","flatVersion","document","documentElement","contentEditable","toolGroups","basic","alignment","lists","indenting","links","tables","element","value","toolbarContainer","toolbarOptions","type","domElement","that","editorNS","editor","dom","Dom","tools","_registerHandler","closest","update","_wrapTextarea","wrapper","find","id","attr","addClass","popup","insertBefore","toolbar","Toolbar","bindTo","setTimeout","heightStyle","height","expectedHeight","parseInt","actualHeight","indexOf","isNaN","_resizable","_initializeContentElement","keyboard","Keyboard","BackspaceHandler","TypingHandler","SystemHandler","clipboard","Clipboard","undoRedoStack","textarea","encoded","trim","defaultValue","replace","innerHTML","mousedown","_endTyping","mouseup","_mouseup","resize","notify","setOptions","isTypingInProgress","endTyping","saveSelection","e","_selectionChange","_selectionStarted","resizable","isResizable","isPlainObject","content","insertAfter","kendoResizable","start","currentTarget","initialSize","append","delta","y","initialDelta","newSize","min","max","Infinity","Math","resizeend","remove","w","width","h","editorWrap","editArea","appendTo","css","_createContentElement","stylesheets","iframe","wnd","doc","specifiedDomain","domain","domainScript","src","location","hostname","hide","title","frameBorder","tabIndex","contentWindow","contentDocument","one","decorateFrom","body","open","write","isRtl","map","href","join","close","_blur","old","val","_oldValue","encodedValue","_spellCorrect","beforeCorrection","falseTrigger","contextmenu","_spellCorrectTimeout","RestorePoint","getRange","input","mozilla","_finishUpdate","handler","t","NS","_handlers","hasOwnProperty","split","on","_deregisterHandlers","handlers","off","blurTrigger","execCommand","touch","selectionchange","keydown","_activeElement","focus","dragstart","preventDefault","range","left","container","offset","direction","keyCode","BACKSPACE","DELETE","getAttribute","F10","LEFT","RIGHT","nodeType","nodeValue","setStart","collapse","selectRange","toolFromShortcut","keyPressCommand","test","exec","_runPostContentKeyCommands","clearTimeout","keypress","keyup","selectionCodes","ctrlKey","altKey","shiftKey","gecko","target","which","is","click","createRange","selectNode","cut copy paste","focusin","hasAttribute","show","focusout","active","contains","focused","removeClass","o","cmd","toolsFromShortcut","changesContent","refresh","deserialization","custom","serialization","entities","semantic","scripts","pasteCleanup","all","keepNewLines","msAllFormatting","msConvertLists","msTags","none","span","dialogOptions","modal","draggable","animation","imageBrowser","fileBrowser","text","concat","destroy","_focusOutside","msie","tempInput","blur","state","textNodes","finder","RangeUtils","collapsed","startContainer","getFormat","isFormatted","html","currentHtml","Serializer","domToXhtml","htmlToDom","selectionRestorePoint","refreshTools","commonAncestorContainer","_focusBody","scrollTop","activeElement","restoreSelection","toRange","encode","getSelection","SelectionUtils","selectionFromDocument","selection","removeAllRanges","addRange","rangeCount","getRangeAt","endContainer","startOffset","endOffset","selectedHtml","cloneContents","paste","InsertHtmlCommand","params","prevented","Error","toolById","managesUndoRedo","async","change","key","ctrl","plugin","initialize","unselectable","children","commandArguments","noop","FormatCommand","formatter","nodes","toggleClass","version","_bomFill","PDFMixin","prototype","_drawPDF","drawing","drawDOM","pdf","saveAsPDF","paperSize","progress","Deferred","promise","args","then","root","exportPDF","done","dataURI","saveAs","fileName","proxyURL","forceProxy","resolve","fail","err","reject","jQuery","makeMap","items","len","obj","whitespace","emptyspace","rgb","bom","whitespaceOrBom","persistedScrollTop","cssAttributes","htmlRe","entityRe","entityTable","STYLE","FLOAT","CSSFLOAT","STYLEFLOAT","CLASS","KMARKER","empty","nonListBlockElements","blockElements","block","inlineElements","inline","fillAttrs","normalize","node","parent","firstChild","prev","nextSibling",34,38,39,60,62,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,402,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,977,978,982,8226,8230,8242,8243,8254,8260,8472,8465,8476,8482,8501,8592,8593,8594,8595,8596,8629,8656,8657,8658,8659,8660,8704,8706,8707,8709,8711,8712,8713,8715,8719,8721,8722,8727,8730,8733,8734,8736,8743,8744,8745,8746,8747,8756,8764,8773,8776,8800,8801,8804,8805,8834,8835,8836,8838,8839,8853,8855,8869,8901,8968,8969,8970,8971,9001,9002,9674,9824,9827,9829,9830,338,339,352,353,376,710,732,8194,8195,8201,8204,8205,8206,8207,8211,8212,8216,8217,8218,8220,8221,8222,8224,8225,8240,8249,8250,8364,"findNodeIndex","skipText","previousSibling","isDataNode","data","isAncestorOf","parentNode","isAncestorOrSelf","findClosestAncestor","getNodeLength","childNodes","splitDataNode","temp","newNode","cloneNode","denormalizedText","iterator","deleteData","attrEquals","attributes","cssFloat","blockParentOrBody","parentOfType","ownerDocument","blockParents","blocks","windowFromDocument","defaultView","parentWindow","toHex","color","matches","x","toString","encodableChars","c","charCode","charCodeAt","entity","stripBom","stripBomNode","removeChild","insignificant","className","_moz_dirty","_moz_editor_bogus_node","significantNodes","grep","child","emptyNode","nodeName","significantChildNodes","isWhitespace","lastTextNode","result","lastChild","isMarker","isEmptyspace","isBlock","isEmpty","isInline","scrollContainer","webkit","compatMode","scrollTo","elementTop","elementHeight","windowHeight","innerHeight","top","offsetHeight","ceil","persistScrollTop","restoreScrollTop","insertAt","newElement","position","referenceElement","removeTextSiblings","tag","sibling","next","ofType","changeTag","tagName","skipAttributes","attribute","create","specified","cssText","setAttribute","appendChild","editableParent","wrap","unwrap","createElement","removeAttribute","unstyle","inlineStyle","getEffectiveBackground","backgroundStyle","innerText","classNames","classes","commonAncestor","ancestors","first","j","count","arguments","paths","minPathLength","output","reverse","closestSplittableParent","editableParents","editableAncestor","apply","closestEditable","types","editable","closestEditableOfType","filter","invert","ensureTrailingBreaks","elements","ensureTrailingBreak","removeTrailingBreak","br","supportsLeadingWhitespace","isFunction","fontSizeMappings","quoteRe","brRe","pixelRe","emptyPRe","cssDeclaration","sizzleAttr","scriptAttr","onerrorRe","div","toEditableHtml","match","_fillEmptyElements","each","p","_removeSystemElements","_resetOrderedLists","ol","originalStart","ols","getElementsByTagName","_preventScriptExecution","l","legacyIE","originalSrc","originalHref","semanticFilter","cssProperties","property","properties","lastIndex","styleAttr","specifiedAttributes","$node","sort","a","b","htmlEncode","skip","skipEncoding","childNode","isEmptyBomNode","mapper","previous","tagMap","end","textOnly","childrenCount","textChild","runCustom","k:script","font","size","semanticAttributes","textDecoration","fontFamily","strong","em","u","face","script","compareBoundaries","startAncestor","endAncestor","fixIvalidRange","toStart","isInvalidRange","ex","updateRangeProperties","textRangeContainer","textRange","duplicate","right","parentElement","adoptContainer","cursorNode","textOffset","isData","anchorNode","anchorParent","cursor","createTextRange","moveToElementText","setEndPoint","adoptEndPoint","index","comparison","appended","compareEndPoints","RangeIterator","W3CSelection","RangeEnumerator","Marker","boundary","selectionFromWindow","selectionFromRange","rangeDocument","documentFromRange","W3CRange","setEnd","setStartBefore","setStartAfter","setEndBefore","setEndAfter","selectNodeContents","deleteContents","cloneRange","deleteSubtree","hasPartialSubtree","getSubtreeIterator","cloneSubtree","frag","createDocumentFragment","extractContents","extractSubtree","originalRange","insertNode","startNodeName","endNodeName","fromNode","_current","_next","_end","hasNext","current","traverse","callback","nodeIndex","inStartContainer","inEndContainer","subRange","select","movedStart","movedEnd","item","enumerate","visit","rootNode","getEditable","nodeToPath","lastType","restoreHtml","path","toRangePoint","denormalizedOffset","caret","addCaret","removeCaret","containerIndex","textNode","add","expand","rangeBoundary","isExpandable","_removeDeadMarkers","createTextNode","_normalizedIndex","pointer","shouldNormalizeStart","shouldNormalizeEnd","shouldNormalize","collapsedToStart","startParent","endParent","startIndex","endIndex","image","stringify","partition","contents","partitionRange","mapAll","mapped","getAll","predicate","selector","getMarkers","isStartOf","isEndOf","wrapSelectedElements","isEnd","startEditable","endEditable","beforeCaret","afterCaret","search","substring","finishUpdate","startRestorePoint","endRestorePoint","GenericCommand","Command","restorePoint","marker","lockRange","releaseRange","point","createDialog","kendoWindow","toggle","genericCommand","postProcess","InsertHtmlTool","initOptions","dataSource","_selectBox","SelectBox","dataTextField","dataValueField","highlightFirst","selectbox","isTypingKey","evt","Event","isDefaultPrevented","startTyping","_addCaret","_restoreCaret","_handleDelete","_merge","_cleanBomBefore","_handleBackspace","li","ListFormatter","_handleSelection","ancestor","table","emptyParagraphContent","_join","_root","dest","method","backspace","del","systemCommandIsInProgress","createUndoCommand","changed","isModifierKey","isSystem","typingInProgress","isCharacter","String","fromCharCode","alt","shift","matchesKey","found","matchKey","toolKey","isArray","onEndTyping","stopTyping","force","timeout","what","cleaners","ScriptCleaner","TabCleaner","MSWordFormatCleaner","WebkitFormatCleaner","HtmlTagsCleaner","HtmlAttrCleaner","HtmlContentCleaner","CustomCleaner","htmlToFragment","fragment","_startModification","_inProgress","_endModification","modificationInfo","_contentModification","before","after","_removeBomNodes","_onBeforeCopy","oncopy","oncut","_fileToDataURL","blob","deferred","reader","FileReader","File","getAsFile","onload","readAsDataURL","_triggerPaste","_handleImagePaste","clipboardData","images","originalEvent","files","when","results","Array","onpaste","r","clipboardRange","clipboardNode","unbind","bind","containers","clean","splittableParent","splittable","fragmentsHtml","rangeEnd","applicable","display","Cleaner","replacements","customReplacements","replacement","junkReplacements","convertFontMatch","$0","$1","closing","faceRe","family","stripEmptyAnchors","listType","listData","startingSymbol","matchSymbol","symbol","isNumber","trimStartText","_guessUnorderedListStyle","_guessOrderedListStyle","_convertToLi","extractListLevels","msoListRegExp","list","level","placeholder","rootMargin","listContainer","margin","listIndex","levelType","blockChildren","lastMargin","levels","parseFloat","marginLeft","listStyleType","removeAttributes","removeAttributeNode","createColGroup","row","cells","colgroup","cell","prependTo","convertHeaders","boldedCells","removeParagraphs","paragraphs","removeDefaultColors","spans","rows","firstRow","longestRow","eq","headers","titles","removeFormatting","filters","DomCleaner","cleanDom","collectTags","collectAttr","removeAttr","TextContainer","HtmlTextLines","separators","line","lines","inlineBlockText","resetLine","appendText","textContainer","appendInlineBlockText","flashInlineBlockText","endLine","il","il1","jl","jl1","DomEnumerator","preventDown","hasText","enumerator","buildText","getDefaultSeparators","htmlLines","action","actions","ul","thead","tbody","td","cleaner","tdCleaner","cellText","PrintCommand","print","ExportPdfCommand","initialValue","InlineFormatFinder","numberOfSiblings","referenceNode","textNodesCount","elementNodesCount","markerCount","findSuitable","sourceNode","findFormat","InlineFormatter","values","activate","formatNode","formatNodes","consolidate","last","pop","GreedyInlineFormatFinder","greedyProperty","getInlineCssValue","attributeValue","pair","cssIndex","propertyAndValue","getFormatInner","parents","parentsUntil","addBack","toArray","GreedyInlineFormatter","toCamelCase","InlineFormatTool","DelayedExecutionTool","FontTool","cssAttr","domAttr","ColorTool","palette","_widget","ColorPicker","toolIcon","fontWeight","fontStyle","listElements","BlockFormatFinder","candidate","suitable","BlockFormatter","nonImages","imageFormat","imageAttributes","namedFormat","GreedyBlockFormatter","formatTag","BlockFormatTool","textAlign","float","marginRight","listStylePosition","ParagraphCommand","_insertMarker","_moveFocus","focusNode","shouldTrim","startInBlock","endInBlock","_blankAfter","paragraph","heading","rng","siblings","NewLineCommand","filler","oldIE","ListFormatFinder","unwrapTag","isList","containsAny","_parentLists","merge","breakable","applyOnSection","section","pushAncestor","lastSection","lastNodes","sections","ListCommand","ListTool","lastIndexOfRegExp","str","indexOfRegExp","HTTP_PROTOCOL","protocolRegExp","endLinkCharsRegExp","LinkFormatFinder","LinkFormatter","markers","ref","UnlinkCommand","LinkCommand","url","_dialogTemplate","img","dialog","_initialText","_range","_close","visible","_apply","_keydown","linkUrl","_dialog","center","ENTER","ESC","textInput","anchor","AutoLinkCommand","linkMarker","linkRange","detectedLink","detectLink","_ensureWebProtocol","traverser","LeftDomTextTraverser","cancelAtNode","detection","DomTextLinkDetection","hasProtocol","_hasProtocolPrefix","_prefixWithWebProtocol","UnlinkTool","DomPos","puntuationOptions","puntuationTraverser","_detectEnd","blank","clone","_detectStart","_isLinkDetected","extendOptions","RightDomTextTraverser","_skipStartPuntuation","ii","DomTextTraverser","cancel","_traverse","edgeNode","subText","splitIndex","SPACEBAR","KEDITORFILEURL","KEDITORFILETITLE","FileCommand","file","showBrowser","applied","keyDown","FileBrowser","transport","read","_fileBrowser","KEDITORIMAGEURL","KEDITORIMAGETITLE","KEDITORIMAGEWIDTH","KEDITORIMAGEHEIGHT","ImageCommand","removeIEAttributes","onerror","ImageBrowser","_imageBrowser","DropDownList","_initSelectOverlay","autoSize","listWidth","whiteSpace","_listWidth","scrollbar","selectBox","view","decorate","indentDirection","IndentFormatter","parentList","siblingList","nestedList","targetIndex","targets","splice","targetNode","listParent","nextAll","IndentCommand","OutdentCommand","OutdentTool","isOutdentable","listParentsCount","ViewHtmlCommand","unwrapListItem","listFormatter","FormattingTool","toFormattingItem","dot","context","kendoSelectBox","dataItem","toJSON","dataBound","getFormattingValue","n","_ancestor","field","operator","CleanFormatCommand","tagsToClean","OVERFLOWANCHOR","focusable","OverflowAnchorTool","overflowPopup","_initPopup","_resizeHandler","onResize","groups","advanced","fonts","colors","overflowFlaseTools","prepend","dragHandle","effects","minHeight","autoFocus","dragend","_moved","_toggleOverflowStyles","_initOverflowPopup","popupTemplate","kendoPopup","origin","copyAnchorStyles","focusOverflowPopup","toolGroupFor","isCustomTool","_editor","expandTools","render","combobox","DOWN","dropDown","isOpened","stopImmediatePropagation","_attachEvents","inheritText","_toolName","overflowAnchor","description","tooltip","_appendShortcutSequence","editorElement","editorOffset","editorOptions","outerWidth","outerHeight","TABINDEX","localizedText","res","_nativeTools","currentTool","nativeTools","endGroup","group","groupPosition","startGroup","toolElement","groupName","newGroupName","toolConfig","hasClass","updateGroups","angular","unbindResize","buttons","enabledButtons","disabledButtons","popupElement","move","constrain","focusElement","currentContainer","UP","TAB","button","stopPropagation","lastIndexOf","_resize","containerWidth","_refreshWidths","_shrink","_stretch","idx","visibleGroups","_groupsWidth","_visibleGroups","_hideGroup","hiddenGroups","_hiddenGroups","_showGroup","detach","ACTIVESTATE","SELECTEDSTATE","editableCell","tableFormatFinder","TableCommand","_tableHtml","columns","insertedTable","PopupTool","_open","_activate","_toggle","_popup","InsertTableTool","cols","tableFromLocation","floor","clientY","cellHeight","col","clientX","scrollLeft","cellWidth","firstCell","lastCell","getOffset","offsetWidth","_setTableSize","_exec","_valid","status","selectedRows","selectedColumns","tableSize","InsertRowCommand","cellCount","newRow","InsertColumnCommand","columnIndex","newCell","DeleteRowCommand","DeleteColumnCommand","columnCount","TableModificationTool"],"mappings":"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AK,OACLC,IAAK,QACLC,IAAK,SACLC,IAAK,MACLC,IAAK,SACLC,IAAK,OACLC,IAAK,MACLC,IAAK,OACLC,IAAK,OACLC,IAAK,QACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,OACLC,IAAK,MACLC,IAAK,SACLC,IAAK,OACLC,IAAK,OACLC,IAAK,QACLC,IAAK,QACLC,IAAK,OACLC,IAAK,SACLC,IAAK,QACLC,IAAK,OACLC,IAAK,OACLC,IAAK,QACLC,IAAK,SACLC,IAAK,SACLC,IAAK,SACLC,IAAK,SACLC,IAAK,SACLC,IAAK,SACLC,IAAK,QACLC,IAAK,SACLC,IAAK,OACLC,IAAK,QACLC,IAAK,QACLC,IAAK,SACLC,IAAK,SACLC,IAAK,SACLC,IAAK,QACLC,IAAK,OACLC,IAAK,SACLC,IAAK,SACLC,IAAK,QACLC,IAAK,OACLC,IAAK,MACLC,IAAK,SACLC,IAAK,SACLC,IAAK,SACLC,IAAK,QACLC,IAAK,SACLC,IAAK,OACLC,IAAK,QACLC,IAAK,SACLC,IAAK,SACLC,IAAK,SACLC,IAAK,QACLC,IAAK,OACLC,IAAK,SACLC,IAAK,QACLC,IAAK,QACLC,IAAK,SACLC,IAAK,SACLC,IAAK,QACLC,IAAK,SACLC,IAAK,OACLC,IAAK,QACLC,IAAK,QACLC,IAAK,SACLC,IAAK,SACLC,IAAK,SACLC,IAAK,QACLC,IAAK,OACLC,IAAK,SACLC,IAAK,SACLC,IAAK,QACLC,IAAK,OACLC,IAAK,MACLC,IAAK,SACLC,IAAK,SACLC,IAAK,SACLC,IAAK,QACLC,IAAK,SACLC,IAAK,OACLC,IAAK,SACLC,IAAK,SACLC,IAAK,SACLC,IAAK,SACLC,IAAK,QACLC,IAAK,OACLC,IAAK,SACLC,IAAK,QACLC,IAAK,OACLC,IAAK,OACLC,IAAK,QACLC,IAAK,OACLC,IAAK,QACLC,IAAK,QACLC,IAAK,UACLC,IAAK,OACLC,IAAK,MACLC,IAAK,QACLC,IAAK,OACLC,IAAK,QACLC,IAAK,SACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,UACLC,IAAK,KACLC,IAAK,MACLC,IAAK,QACLC,IAAK,MACLC,IAAK,UACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,QACLC,IAAK,QACLC,IAAK,OACLC,IAAK,QACLC,IAAK,QACLC,IAAK,UACLC,IAAK,OACLC,IAAK,MACLC,IAAK,QACLC,IAAK,OACLC,IAAK,QACLC,IAAK,SACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,UACLC,IAAK,KACLC,IAAK,MACLC,IAAK,SACLC,IAAK,QACLC,IAAK,MACLC,IAAK,UACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,QACLC,IAAK,WACLC,IAAK,QACLC,IAAK,MACLC,KAAM,OACNC,KAAM,SACNC,KAAM,QACNC,KAAM,QACNC,KAAM,QACNC,KAAM,QACNC,KAAM,SACNC,KAAM,QACNC,KAAM,OACNC,KAAM,QACNC,KAAM,UACNC,KAAM,OACNC,KAAM,OACNC,KAAM,OACNC,KAAM,OACNC,KAAM,OACNC,KAAM,QACNC,KAAM,OACNC,KAAM,OACNC,KAAM,OACNC,KAAM,OACNC,KAAM,OACNC,KAAM,SACNC,KAAM,OACNC,KAAM,QACNC,KAAM,QACNC,KAAM,QACNC,KAAM,OACNC,KAAM,QACNC,KAAM,KACNC,KAAM,OACNC,KAAM,MACNC,KAAM,QACNC,KAAM,SACNC,KAAM,QACNC,KAAM,OACNC,KAAM,QACNC,KAAM,MACNC,KAAM,MACNC,KAAM,KACNC,KAAM,MACNC,KAAM,MACNC,KAAM,MACNC,KAAM,SACNC,KAAM,MACNC,KAAM,OACNC,KAAM,QACNC,KAAM,KACNC,KAAM,QACNC,KAAM,KACNC,KAAM,KACNC,KAAM,MACNC,KAAM,MACNC,KAAM,OACNC,KAAM,OACNC,KAAM,OACNC,KAAM,QACNC,KAAM,SACNC,KAAM,OACNC,KAAM,OACNC,KAAM,QACNC,KAAM,QACNC,KAAM,SACNC,KAAM,SACNC,KAAM,OACNC,KAAM,OACNC,KAAM,MACNC,KAAM,SACNC,KAAM,QACNC,KAAM,SACNC,KAAM,QACNC,IAAK,QACLC,IAAK,QACLC,IAAK,SACLC,IAAK,SACLC,IAAK,OACLC,IAAK,OACLC,IAAK,QACLC,KAAM,OACNC,KAAM,OACNC,KAAM,SACNC,KAAM,OACNC,KAAM,MACNC,KAAM,MACNC,KAAM,MACNC,KAAM,QACNC,KAAM,QACNC,KAAM,QACNC,KAAM,QACNC,KAAM,QACNC,KAAM,QACNC,KAAM,QACNC,KAAM,QACNC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,KAAM,QAEV3kB,GACAqU,MAAOA,EACPE,OAAQA,EACRqQ,cAAe,SAAUlQ,EAAMmQ,GAC3B,GAAI/qB,GAAI,CACR,KAAK4a,EACD,MAAO,EAEX,QAAa,CAET,GADAA,EAAOA,EAAKoQ,iBACPpQ,EACD,KAEEmQ,IAA6B,GAAjBnQ,EAAKjL,UACnB3P,IAGR,MAAOA,IAEXirB,WAAY,SAAUrQ,GAClB,MAAOA,IAA2B,OAAnBA,EAAKhL,WAAoC,OAAdgL,EAAKsQ,MAEnDC,aAAc,SAAUtQ,EAAQD,GAC5B,IACI,OAAQ1U,EAAI+kB,WAAWpQ,KAAY5c,EAAEwT,SAASoJ,EAAQ3U,EAAI+kB,WAAWrQ,GAAQA,EAAKwQ,WAAaxQ,IAASA,EAAKwQ,YAAcvQ,GAC7H,MAAOzR,GACL,OAAO,IAGfiiB,iBAAkB,SAAUlT,EAAMyC,GAC9B,MAAO1U,GAAIilB,aAAahT,EAAMyC,IAASzC,GAAQyC,GAEnD0Q,oBAAqB,SAAUnT,EAAMyC,GACjC,GAAI1U,EAAIilB,aAAahT,EAAMyC,GACvB,KAAOA,GAAQA,EAAKwQ,YAAcjT,GAC9ByC,EAAOA,EAAKwQ,UAGpB,OAAOxQ,IAEX2Q,cAAe,SAAU3Q,GACrB,MAAO1U,GAAI+kB,WAAWrQ,GAAQA,EAAKld,OAASkd,EAAK4Q,WAAW9tB,QAEhE+tB,cAAe,SAAU7Q,EAAM1L,GAK3B,IALW,GAIPwc,GAHAC,EAAU/Q,EAAKgR,WAAU,GACzBC,EAAmB,GACnBC,EAAWlR,EAAKI,YAEb8Q,GAAiC,GAArBA,EAASnc,UAAiBmc,EAASlc,WAClDic,GAAoBC,EAASlc,UAC7B8b,EAAOI,EACPA,EAAWA,EAAS9Q,YACpB9U,EAAIwE,OAAOghB,EAEf9Q,GAAKmR,WAAW7c,EAAQ0L,EAAKld,QAC7BiuB,EAAQI,WAAW,EAAG7c,GACtByc,EAAQ/b,WAAaic,EACrB3lB,EAAIyD,YAAYgiB,EAAS/Q,IAE7BoR,WAAY,SAAUpR,EAAMqR,GAAhB,GACCzV,GACD/Q,CADR,KAAS+Q,IAAOyV,GAKZ,GAJIxmB,EAAQmV,EAAKpE,GACbA,GAAOuD,IACPtU,EAAQmV,EAAKve,EAAMuC,QAAQstB,SAAWlS,EAAWC,IAEjC,gBAATxU,IACP,IAAKS,EAAI8lB,WAAWvmB,EAAOwmB,EAAWzV,IAClC,OAAO,MAER,IAAI/Q,GAASwmB,EAAWzV,GAC3B,OAAO,CAGf,QAAO,GAEX2V,kBAAmB,SAAUvR,GACzB,MAAO1U,GAAIkmB,aAAaxR,EAAMN,IAAkBM,EAAKyR,cAAchgB,MAEvEigB,aAAc,SAAUpV,GAAV,GACOlX,GAAGkZ,EAEZqB,EAFJgS,IACJ,KAAKvsB,EAAI,EAAGkZ,EAAMhC,EAAMxZ,OAAYwb,EAAJlZ,EAASA,IACjCua,EAAQrU,EAAIkmB,aAAalV,EAAMlX,GAAIkG,EAAIoU,eACvCC,GAAStc,EAAEgC,QAAQsa,EAAOgS,GAAU,GACpCA,EAAOvvB,KAAKud,EAGpB,OAAOgS,IAEXC,mBAAoB,SAAU1nB,GAC1B,MAAOA,GAAS2nB,aAAe3nB,EAAS4nB,cAE5C/R,UAAWA,EACXL,cAAeA,EACfD,qBAAsBA,EACtBG,eAAgBA,EAChBJ,MAAOA,EACPM,UAAWA,EACXiS,MAAO,SAAUC,GACb,GAAIC,GAAUvT,EAAInJ,KAAKyc,EACvB,OAAKC,GAGE,IAAMpgB,EAAIogB,EAAQ1vB,MAAM,GAAI,SAAU2vB,GAEzC,MADAA,GAAIxlB,SAASwlB,EAAG,IAAIC,SAAS,IACtBD,EAAEpvB,OAAS,EAAIovB,EAAI,IAAMA,IACjCngB,KAAK,IALGigB,GAOf3X,OAAQ,SAAUxP,EAAO/I,GACrB,GAAIswB,IAAkBtwB,GAAWA,EAAQ0V,SAAWwH,EAAWD,CAC/D,OAAOlU,GAAM+C,QAAQwkB,EAAgB,SAAUC,GAAV,GAC7BC,GAAWD,EAAEE,WAAW,GACxBC,EAASvT,EAAYqT,EACzB,OAAOE,GAAS,IAAMA,EAAS,IAAMH,KAG7CI,SAAU,SAAUha,GAChB,OAAQA,GAAQ,IAAI7K,QAAQ+Q,EAAK,KAErC+T,aAAc,SAAU1S,GAChBA,GAA0B,IAAlBA,EAAKjL,UAAqC,WAAnBiL,EAAKhL,WACpCgL,EAAKwQ,WAAWmC,YAAY3S,IAGpC4S,cAAe,SAAU5S,GACrB,GAAIjU,GAAOiU,EAAKqR,UAChB,OAAyB,YAAlBrR,EAAK6S,WAA2BvnB,EAAI6K,GAAG6J,EAAM,QAA4B,QAAlBA,EAAK6S,WAAuB9mB,EAAK+mB,YAAc/mB,EAAKgnB,yBAEtHC,iBAAkB,SAAU1W,GACxB,MAAOjZ,GAAE4vB,KAAK3W,EAAO,SAAU4W,GAC3B,GAAIhuB,GAAOoG,EAAIpG,KAAKguB,EACpB,OAAY,MAARhuB,GACO,EACAoG,EAAIsnB,cAAcM,IAClB,EACkB,GAAlBA,EAAMne,UAAiB6J,EAAgBtJ,KAAK4d,EAAMle,YAClD,EACkB,GAAlBke,EAAMne,WAAkByK,EAAMta,IAASoG,EAAI6nB,UAAUD,IACrD,GAEJ,KAGfC,UAAW,SAAUnT,GACjB,MAAwB,IAAjBA,EAAKjL,WAAkBzJ,EAAI0nB,iBAAiBhT,EAAK4Q,YAAY9tB,QAExEoC,KAAM,SAAU8a,GACZ,MAAOA,GAAKoT,SAASxtB,eAEzBytB,sBAAuB,SAAUrT,GAC7B,MAAO3c,GAAE4vB,KAAKjT,EAAK4Q,WAAY,SAAUsC,GACrC,MAAyB,IAAlBA,EAAMne,WAAkBzJ,EAAIgoB,aAAaJ,MAGxDK,aAAc,SAAUvT,GAAV,GAKDkT,GAJLM,EAAS,IACb,IAAqB,GAAjBxT,EAAKjL,SACL,MAAOiL,EAEX,KAASkT,EAAQlT,EAAKyT,UAAWP,EAAOA,EAAQA,EAAM9C,gBAElD,GADAoD,EAASloB,EAAIioB,aAAaL,GAEtB,MAAOM,EAGf,OAAOA,IAEXrd,GAAI,SAAU6J,EAAMoT,GAChB,MAAO9nB,GAAIpG,KAAK8a,IAASoT,GAE7BM,SAAU,SAAU1T,GAChB,MAAOA,GAAK6S,WAAatT,GAE7B+T,aAAc,SAAUtT,GACpB,MAAOxB,GAAWlJ,KAAK0K,EAAKhL,YAEhC2e,aAAc,SAAU3T,GACpB,MAAOvB,GAAWnJ,KAAK0K,EAAKhL,YAEhC4e,QAAS,SAAU5T,GACf,MAAOL,GAAMrU,EAAIpG,KAAK8a,KAE1B6T,QAAS,SAAU7T,GACf,MAAOR,GAAMlU,EAAIpG,KAAK8a,KAE1B8T,SAAU,SAAU9T,GAChB,MAAOH,GAAOvU,EAAIpG,KAAK8a,KAE3B+T,gBAAiB,SAAUrjB,GACvB,GAAID,GAAMnF,EAAIsmB,mBAAmBlhB,GAAMqjB,GAAmBtjB,EAAIY,eAAiBZ,GAAKvG,UAAYuG,EAAIghB,eAAiBhhB,CAMrH,OAJIsjB,GADAtyB,EAAMuC,QAAQE,QAAQ8vB,QAAwC,cAA9BD,EAAgBE,WAC9BF,EAAgBtiB,KAEhBsiB,EAAgB5pB,iBAI1C+pB,SAAU,SAAUlU,GAChB,GAAkJmU,GAAYC,EAA1JxpB,EAAUvH,EAAEiI,EAAI+kB,WAAWrQ,GAAQA,EAAKwQ,WAAaxQ,GAAOvP,EAAMnF,EAAIsmB,mBAAmB5R,EAAKyR,eAAgB4C,EAAe5jB,EAAI6jB,YAAwCP,EAAkBzoB,EAAIyoB,gBAAgB/T,EAAKyR,cACxN0C,GAAavpB,EAAQ0J,SAASigB,IAC9BH,EAAgBxpB,EAAQ,GAAG4pB,aACtBJ,IACDA,EAAgB1nB,SAAS9B,EAAQyF,IAAI,eAAgB,KAAOT,KAAK6kB,KAAK,IAAM/nB,SAAS9B,EAAQyF,IAAI,aAAc,MAAQ,IAEvH+jB,EAAgBD,EAAaJ,EAAgB9Z,UAAYoa,IACzDN,EAAgB9Z,UAAYma,EAAgBD,EAAaE,IAGjEK,iBAAkB,SAAUhkB,GACxBmO,EAAqBvT,EAAIyoB,gBAAgBrjB,GAAKuJ,WAElD0a,iBAAkB,SAAUjkB,GACxBpF,EAAIyoB,gBAAgBrjB,GAAKuJ,UAAY4E,GAEzC+V,SAAU,SAAU3U,EAAQ4U,EAAYC,GACpC7U,EAAO/T,aAAa2oB,EAAY5U,EAAO2Q,WAAWkE,IAAa,OAEnE5oB,aAAc,SAAU2oB,EAAYE,GAChC,MAAIA,GAAiBvE,WACVuE,EAAiBvE,WAAWtkB,aAAa2oB,EAAYE,GAErDA,GAGfhmB,YAAa,SAAU8lB,EAAYE,GAC/B,MAAOA,GAAiBvE,WAAWtkB,aAAa2oB,EAAYE,EAAiB3U,cAEjFtQ,OAAQ,SAAUkQ,GACdA,EAAKwQ,WAAWmC,YAAY3S,IAEhCgV,mBAAoB,SAAUhV,GAE1B,IADA,GAAIwQ,GAAaxQ,EAAKwQ,WACfxQ,EAAKI,aAA4C,GAA7BJ,EAAKI,YAAYrL,UACxCyb,EAAWmC,YAAY3S,EAAKI,YAEhC,MAAOJ,EAAKoQ,iBAAoD,GAAjCpQ,EAAKoQ,gBAAgBrb,UAChDyb,EAAWmC,YAAY3S,EAAKoQ,kBAGpC1iB,KAAM,SAAUuS,GAAV,GACO7a,GACD4a,CADR,KAAS5a,EAAI6a,EAAO2Q,WAAW9tB,OAAS,EAAGsC,GAAK,EAAGA,IAC3C4a,EAAOC,EAAO2Q,WAAWxrB,GACzBkG,EAAI+kB,WAAWrQ,IACV1U,EAAImnB,SAASzS,EAAKhL,WAAWlS,QAC9BwI,EAAIwE,OAAOkQ,GAEX1U,EAAIgoB,aAAatT,IACjB1U,EAAIY,aAAa8T,EAAMC,IAEpBD,EAAK6S,WAAatT,IACzBjU,EAAIoC,KAAKsS,GACJA,EAAK4Q,WAAW9tB,QAAWwI,EAAIuoB,QAAQ7T,IACxC1U,EAAIwE,OAAOkQ,GAIvB,OAAOC,IAEXxU,QAAS,SAAUuU,EAAMiV,GACrB,KAAOjV,GAAQ1U,EAAIpG,KAAK8a,IAASiV,GAC7BjV,EAAOA,EAAKwQ,UAEhB,OAAOxQ,IAEXkV,QAAS,SAAUlV,EAAMzL,GACrB,EACIyL,GAAOA,EAAKzL,SACPyL,GAAyB,GAAjBA,EAAKjL,SACtB,OAAOiL,IAEXmV,KAAM,SAAUnV,GACZ,MAAO1U,GAAI4pB,QAAQlV,EAAM,gBAE7BG,KAAM,SAAUH,GACZ,MAAO1U,GAAI4pB,QAAQlV,EAAM,oBAE7BwR,aAAc,SAAUxR,EAAM1a,GAC1B,EACI0a,GAAOA,EAAKwQ,iBACPxQ,IAAS1U,EAAI8pB,OAAOpV,EAAM1a,GACnC,OAAO0a,IAEXoV,OAAQ,SAAUpV,EAAM1a,GACpB,MAAOjC,GAAEgC,QAAQiG,EAAIpG,KAAK8a,GAAO1a,IAAS,GAE9C+vB,UAAW,SAAUN,EAAkBO,EAASC,GAC5C,GAAgHnwB,GAAGkZ,EAAKpZ,EAAM2F,EAAO2qB,EAAjIX,EAAavpB,EAAImqB,OAAOV,EAAiBtD,cAAe6D,GAAUjE,EAAa0D,EAAiB1D,UACpG,KAAKkE,EACD,IAAKnwB,EAAI,EAAGkZ,EAAM+S,EAAWvuB,OAAYwb,EAAJlZ,EAASA,IAC1CowB,EAAYnE,EAAWjsB,GACnBowB,EAAUE,YACVxwB,EAAOswB,EAAUpC,SACjBvoB,EAAQ2qB,EAAUxgB,UACd9P,GAAQoa,EACRuV,EAAWhC,UAAYhoB,EAChB3F,GAAQga,EACf2V,EAAW9sB,MAAM4tB,QAAUZ,EAAiBhtB,MAAM4tB,QAElDd,EAAWe,aAAa1wB,EAAM2F,GAK9C,MAAOkqB,EAAiB7U,YACpB2U,EAAWgB,YAAYd,EAAiB7U,WAI5C,OAFA5U,GAAIY,aAAa2oB,EAAYE,GAC7BzpB,EAAIwE,OAAOilB,GACJF,GAEXiB,eAAgB,SAAU9V,GACtB,KAAOA,IAA0B,GAAjBA,EAAKjL,UAA0C,SAAzBiL,EAAK5V,kBACvC4V,EAAOA,EAAKwQ,UAEhB,OAAOxQ,IAEX+V,KAAM,SAAU/V,EAAMpU,GAGlB,MAFAN,GAAIY,aAAaN,EAASoU,GAC1BpU,EAAQiqB,YAAY7V,GACbpU,GAEXoqB,OAAQ,SAAUhW,GAEd,IADA,GAAIC,GAASD,EAAKwQ,WACXxQ,EAAKE,YACRD,EAAO/T,aAAa8T,EAAKE,WAAYF,EAEzCC,GAAO0S,YAAY3S,IAEvByV,OAAQ,SAAUvrB,EAAUorB,EAASjE,GACjC,MAAO/lB,GAAIS,KAAK7B,EAAS+rB,cAAcX,GAAUjE,IAErDtlB,KAAM,SAAUnB,EAASymB,GACrBA,EAAazvB,KAAWyvB,GACpBA,GAAcnS,IAASmS,KACvB/lB,EAAIvD,MAAM6C,EAASymB,EAAWtpB,aACvBspB,GAAWtpB,MAEtB,KAAK,GAAIgE,KAAQslB,GACY,OAArBA,EAAWtlB,IACXnB,EAAQsrB,gBAAgBnqB,SACjBslB,GAAWtlB,IACH,aAARA,IACPnB,EAAQmB,GAAQslB,EAAWtlB,GAGnC,OAAOnK,GAAOgJ,EAASymB,IAE3BtpB,MAAO,SAAUiY,EAAMnV,GACnBxH,EAAE2c,GAAM3P,IAAIxF,QAEhBsrB,QAAS,SAAUnW,EAAMnV,GACrB,IAAK,GAAI+Q,KAAO/Q,GACR+Q,GAAOuD,IACPvD,EAAMna,EAAMuC,QAAQstB,SAAWlS,EAAWC,GAE9CW,EAAKjY,MAAM6T,GAAO,EAEK,MAAvBoE,EAAKjY,MAAM4tB,SACX3V,EAAKkW,gBAAgBhX,IAG7BkX,YAAa,SAAU3kB,EAAMvM,EAAMmsB,GAC/B,GAAgEtpB,GAA5DmQ,EAAO7U,EAAEiI,EAAImqB,OAAOhkB,EAAKggB,cAAevsB,EAAMmsB,GAUlD,OATA5f,GAAKokB,YAAY3d,EAAK,IACtBnQ,EAAQ8J,EAAIiN,EAAe,SAAUjU,GACjC,MAAI3G,GAAQ2U,MAAiB,eAAThO,GAA6C,OAAnBqN,EAAK7H,IAAIxF,GAC5C,kBAEAA,EAAQ,IAAMqN,EAAK7H,IAAIxF,KAEnCkH,KAAK,KACRmG,EAAKpI,SACE/H,GAEXsuB,uBAAwB,SAAUzrB,GAC9B,GAAI0rB,GAAkB1rB,EAAQyF,IAAI,mBAClC,OAAIimB,GAAgB1pB,QAAQ,mBAAqB,GAAyB,gBAApB0pB,EAC3CA,EACqC,SAArC1rB,EAAQ,GAAG0qB,QAAQ1vB,cACnB,SAEA0F,EAAI+qB,uBAAuBzrB,EAAQqV,WAGlDsW,UAAW,SAAUvW,GACjB,GAAIvH,GAAOuH,EAAKnS,SAGhB,OAFA4K,GAAOA,EAAK7K,QAAQ,oBAAqB,IACzC6K,EAAOA,EAAK7K,QAAQ,mBAAoB,KAG5CmJ,YAAa,SAAUiJ,EAAMwW,GACzB,GAA6EpxB,GAAGkZ,EAA5EuU,EAAY,IAAM7S,EAAK6S,UAAY,IAAK4D,EAAUD,EAAWnjB,MAAM,IACvE,KAAKjO,EAAI,EAAGkZ,EAAMmY,EAAQ3zB,OAAYwb,EAAJlZ,EAASA,IACvCytB,EAAYA,EAAUjlB,QAAQ,IAAM6oB,EAAQrxB,GAAK,IAAK,IAE1DytB,GAAYxvB,EAAEqK,KAAKmlB,GACfA,EAAU/vB,OACVkd,EAAK6S,UAAYA,EAEjB7S,EAAKkW,gBAAgB5W,IAG7BoX,eAAgB,WACZ,GAAmFtxB,GAAGuxB,EAAW3W,EAAM4W,EAAOC,EAA1GC,EAAQC,UAAUj0B,OAAQk0B,KAAYC,EAAgBtnB,EAAAA,EAAUunB,EAAS,IAC7E,KAAKJ,EACD,MAAO,KAEX,IAAa,GAATA,EACA,MAAOC,WAAU,EAErB,KAAK3xB,EAAI,EAAO0xB,EAAJ1xB,EAAWA,IAAK,CAGxB,IAFAuxB,KACA3W,EAAO+W,UAAU3xB,GACV4a,GACH2W,EAAUv0B,KAAK4d,GACfA,EAAOA,EAAKwQ,UAEhBwG,GAAM50B,KAAKu0B,EAAUQ,WACrBF,EAAgBrnB,KAAKH,IAAIwnB,EAAeN,EAAU7zB,QAEtD,GAAa,GAATg0B,EACA,MAAOE,GAAM,GAAG,EAEpB,KAAK5xB,EAAI,EAAO6xB,EAAJ7xB,EAAmBA,IAAK,CAEhC,IADAwxB,EAAQI,EAAM,GAAG5xB,GACZyxB,EAAI,EAAOC,EAAJD,EAAWA,IACnB,GAAID,GAASI,EAAMH,GAAGzxB,GAClB,MAAO8xB,EAGfA,GAASN,EAEb,MAAOM,IAEXE,wBAAyB,SAAU9a,GAAV,GACjBkX,GAkBA6D,EACAC,CAIJ,OArBI9D,GADgB,GAAhBlX,EAAMxZ,OACGwI,EAAIkmB,aAAalV,EAAM,IAC5B,KACA,OAGKhR,EAAIorB,eAAea,MAAM,KAAMjb,GAEvCkX,IACDA,EAASloB,EAAIkmB,aAAalV,EAAM,IAC5B,IACA,QACEA,EAAM,GAAGmV,cAAchgB,MAE7BnG,EAAIwoB,SAASN,KACbA,EAASloB,EAAIimB,kBAAkBiC,IAE/B6D,EAAkBxlB,EAAIyK,EAAOhR,EAAIwqB,gBACjCwB,EAAmBhsB,EAAIorB,eAAeW,GAAiB,GACvDh0B,EAAEwT,SAAS2c,EAAQ8D,KACnB9D,EAAS8D,GAEN9D,GAEXgE,gBAAiB,SAAUxX,EAAMyX,GAAhB,GACThsB,GACAisB,EAAWpsB,EAAIwqB,eAAe9V,EAWlC,OATIvU,GADAH,EAAI8pB,OAAOpV,EAAMyX,GACPzX,EAEA1U,EAAIkmB,aAAaxR,EAAMyX,GAEjChsB,GAAWisB,GAAYr0B,EAAEwT,SAASpL,EAASisB,GAC3CjsB,EAAUisB,GACFjsB,GAAWisB,IACnBjsB,EAAUisB,GAEPjsB,GAEXksB,sBAAuB,SAAU3X,EAAMyX,GACnC,GAAIC,GAAWpsB,EAAIksB,gBAAgBxX,EAAMyX,EACzC,OAAIC,IAAYpsB,EAAI8pB,OAAOsC,EAAUD,GAC1BC,EADX,QAIJE,OAAQ,SAAUtC,EAAShZ,EAAOub,GAK9B,IALI,GAIA3yB,GAHAE,EAAI,EACJkZ,EAAMhC,EAAMxZ,OACZ0wB,KAEOlV,EAAJlZ,EAASA,IACZF,EAAOoG,EAAIpG,KAAKoX,EAAMlX,MACjByyB,GAAU3yB,GAAQowB,GAAWuC,GAAU3yB,GAAQowB,IAChD9B,EAAOpxB,KAAKka,EAAMlX;AAG1B,MAAOouB,IAEXsE,qBAAsB,SAAU9X,GAAV,GACd+X,GAAW10B,EAAE2c,GAAMnU,KAAK,WACxB/I,EAASi1B,EAASj1B,OAClBsC,EAAI,CACR,IAAItC,EACA,KAAWA,EAAJsC,EAAYA,IACfkG,EAAI0sB,oBAAoBD,EAAS3yB,QAGrCkG,GAAI0sB,oBAAoBhY,IAGhCiY,oBAAqB,SAAUjY,GAC3B3c,EAAE2c,GAAMnU,KAAK,uBAAuBiE,UAExCkoB,oBAAqB,SAAUhY,GAAV,GAEbyT,GACAvuB,EACAgzB,CAHJ5sB,GAAI2sB,oBAAoBjY,GACpByT,EAAYzT,EAAKyT,UACjBvuB,EAAOuuB,GAAanoB,EAAIpG,KAAKuuB,KAE5BvuB,GAAgB,MAARA,GAAwB,OAARA,GAAyB,MAARA,GAAuC,QAAvBuuB,EAAUZ,aACpEqF,EAAKlY,EAAKyR,cAAcwE,cAAc,MACtCiC,EAAGrF,UAAY,OACf7S,EAAK6V,YAAYqC,MAI7Bz2B,EAAMqC,GAAGsH,OAAOE,IAAMA,GACxB3H,OAAOlC,MAAM0c,SACC,kBAAV3c,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,qBAAsB,cAAeD,IAC9C,YACG,SAAU8B,EAAGC,GAAb,GAgBO60B,GAEAC,EACA1e,EAlBAjY,EAAQkC,OAAOlC,MACfoE,EAASpE,EAAMqC,GAAGsH,OAClBC,EAAMxF,EAAOyF,IACb1J,EAASyB,EAAEzB,OACXy2B,EAAmB,uDAAuDhlB,MAAM,KAChFilB,EAAU,KACVC,EAAO,aACPC,EAAU,sBACVC,EAAW,uBACXC,EAAiB,qGACjBC,EAAa,eACbC,EAAa,cACbC,EAAY,gDACZC,EAAM5uB,SAAS+rB,cAAc,MACjC6C,GAAIjrB,UAAY,QACZsqB,EAAwD,IAA5BW,EAAI5Y,WAAWnL,SAC/C+jB,EAAM,KACFV,EAAa/0B,EAAE+0B,WACf1e,GACAqf,eAAgB,SAAUvf,GACtB,GAAI0e,GAAK,mBAET,OADA1e,GAAOA,GAAQ,GACRA,EAAK5L,QAAQ,yBAA0B,sBAAsBA,QAAQ,yBAA0B,kBAAkBA,QAAQ,iBAAkB,SAAUorB,GACxJ,MAAOA,GAAMprB,QAAQirB,EAAW,MACjCjrB,QAAQ,kCAAmC,MAAMA,QAAQ,wBAAyBsqB,EAAK,OAAOtqB,QAAQ,yBAA0B,MAAMA,QAAQ,2BAA4B,QAAUsqB,IAE3Le,mBAAoB,SAAUxnB,GAC1BpO,EAAEoO,GAAM5F,KAAK,QAAQqtB,KAAK,WAAA,GAGdlZ,GAFJmZ,EAAI91B,EAAEpB,KACV,IAAI,SAASqT,KAAK6jB,EAAE1gB,UAAY0gB,EAAEttB,KAAK,aAAa/I,OAAQ,CAExD,IADIkd,EAAO/d,KACJ+d,EAAKE,YAA0C,GAA5BF,EAAKE,WAAWnL,UACtCiL,EAAOA,EAAKE,UAEK,IAAjBF,EAAKjL,UAAkB1J,EAAImU,MAAMnU,EAAInG,KAAK8a,MAC1CA,EAAKnS,UAAYpM,EAAMqC,GAAGsH,OAAO1H,yBAKjD01B,sBAAuB,SAAU3nB,GAC7BpO,EAAE,qBAAsBoO,GAAM3B,UAElCupB,mBAAoB,SAAU9b,GAC1B,GAA2CnY,GAAGk0B,EAAIC,EAA9CC,EAAMjc,EAAKkc,qBAAqB,KACpC,KAAKr0B,EAAI,EAAOo0B,EAAI12B,OAARsC,EAAgBA,IACxBk0B,EAAKE,EAAIp0B,GACTm0B,EAAgBD,EAAG3kB,aAAa,SAChC2kB,EAAG1D,aAAa,QAAS,GACrB2D,EACAD,EAAG1D,aAAa,QAAS2D,GAEzBD,EAAGpD,gBAAgBqD,IAI/BG,wBAAyB,SAAUnc,GAC/Bla,EAAEka,GAAM1R,KAAK,KAAKqtB,KAAK,WAAA,GAEf1D,GAAWpwB,EAAGu0B,EAAGz0B,EADjBmsB,EAAapvB,KAAKovB,UAEtB,KAAKjsB,EAAI,EAAGu0B,EAAItI,EAAWvuB,OAAY62B,EAAJv0B,EAAOA,IACtCowB,EAAYnE,EAAWjsB,GACvBF,EAAOswB,EAAUpC,SACboC,EAAUE,WAAa,OAAOpgB,KAAKpQ,KACnCjD,KAAK2zB,aAAa,YAAc1wB,EAAMswB,EAAU3qB,OAChD5I,KAAKi0B,gBAAgBhxB,OAKrC0U,UAAW,SAAUJ,EAAM+D,EAAMzb,GAAtB,GACHoC,GAAUzC,EAAMuC,QAAQE,QACxB2U,EAAO3U,EAAQ2U,KACf+gB,EAAW/gB,GAA0B,EAAlB3U,EAAQsY,QAC3Bqd,EAAc,cACdC,EAAe,eACf9iB,EAAIlV,KAgCR,OA/BA0X,GAAOE,EAAWqf,eAAevf,GAC7BogB,IACApgB,EAAO,QAAUA,EACjBA,EAAOA,EAAK5L,QAAQ,yCAA0CksB,EAAe,SAC7EtgB,EAAOA,EAAK5L,QAAQ,wCAAyCisB,EAAc,UAE3EzB,EAAWphB,EAAEM,UACbkC,EAAOxC,EAAEM,OAAOkC,IAASA,GAE7B+D,EAAK1P,UAAY2L,EACbogB,GACAvuB,EAAIyE,OAAOyN,EAAK2C,YAChB7c,EAAEka,GAAM1R,KAAK,gCAAgCqtB,KAAK,WAC9C,GAAIlZ,GAAO/d,IACP+d,GAAK8Z,KACL9Z,EAAK4V,aAAa,OAAQ5V,EAAK8Z,IAC/B9Z,EAAKkW,gBAAgB4D,IAErB9Z,EAAK6Z,KACL7Z,EAAK4V,aAAa,MAAO5V,EAAK6Z,IAC9B7Z,EAAKkW,gBAAgB2D,OAGtBhhB,IACPxN,EAAI0U,UAAUxC,GACd7D,EAAW2f,mBAAmB9b,IAElC7D,EAAWggB,wBAAwBnc,GACnC7D,EAAWuf,mBAAmB1b,GAC9B7D,EAAW0f,sBAAsB7b,GACjCla,EAAE,QAASka,GAAMvR,SAAS,WACnBuR,GAEX5D,WAAY,SAAU4D,EAAMzb,GAExB,QAASi4B,GAAe1I,GACpB,MAAOhuB,GAAE4vB,KAAK5B,EAAY,SAAUtlB,GAChC,MAAoB,SAAbA,EAAK7G,OAkJpB,QAAS80B,GAAcrE,GAAvB,GAGQqD,GACAiB,EAAUpvB,EAHV6C,EAAOrK,EAAEqK,KACT2C,EAAM3C,EAAKioB,GAGXuE,IAEJ,KADAxB,EAAeyB,UAAY,IACd,CAET,GADAnB,EAAQN,EAAenjB,KAAKlF,IACvB2oB,EACD,KAEJiB,GAAWvsB,EAAKsrB,EAAM,GAAGpzB,eACzBiF,EAAQ6C,EAAKsrB,EAAM,IACH,oBAAZiB,GAA8C,gBAAZA,IAGlCA,EAASrtB,QAAQ,UAAY,EAC7B/B,EAAQQ,EAAI0mB,MAAMlnB,GACXovB,EAASrtB,QAAQ,SAAW,EACnC/B,EAAQA,EAAM+C,QAAQ0qB,EAAS,KACxB,WAAWhjB,KAAKzK,KACvBA,EAAQA,EAAM+C,QAAQ0qB,EAAS,KAEnC4B,EAAW93B,MACP63B,SAAUA,EACVpvB,MAAOA,KAGf,MAAOqvB,GAEX,QAASE,GAAUzE,GAAnB,GAEQvwB,GADA80B,EAAaF,EAAcrE,EAE/B,KAAKvwB,EAAI,EAAO80B,EAAWp3B,OAAfsC,EAAuBA,IAC/BouB,EAAOpxB,KAAK83B,EAAW90B,GAAG60B,UAC1BzG,EAAOpxB,KAAK,KACZoxB,EAAOpxB,KAAK83B,EAAW90B,GAAGyF,OAC1B2oB,EAAOpxB,KAAK,KAGpB,QAASi4B,GAAoBra,GAA7B,GAGQwV,GAAWpwB,EAAGu0B,EACdz0B,EAAM2F,EAAO6qB,EAHblC,KACAnC,EAAarR,EAAKqR,UAGtB,KAAKjsB,EAAI,EAAGu0B,EAAItI,EAAWvuB,OAAY62B,EAAJv0B,EAAOA,IACtCowB,EAAYnE,EAAWjsB,GACvBF,EAAOswB,EAAUpC,SACjBvoB,EAAQ2qB,EAAU3qB,MAClB6qB,EAAYF,EAAUE,UACV,SAARxwB,GAAmB,SAAW8a,IAAQA,EAAKnV,MAC3C6qB,GAAY,EACG,QAARxwB,GAA2B,QAAT2F,EACzB6qB,GAAY,EACG,SAARxwB,GAAoB2F,EAEpB8tB,EAAWrjB,KAAKpQ,GACvBwwB,GAAY,EACG,YAARxwB,EACPwwB,GAAY,EACG,WAARxwB,EACPwwB,GAAY,EACG,SAARxwB,GAAmBmG,EAAI8K,GAAG6J,EAAM,MACvC0V,GAAY,EACG,SAARxwB,GAAmBmG,EAAI8K,GAAG6J,EAAM,OAAkB,KAATnV,EAChD6qB,GAAY,EACLxwB,EAAK0H,QAAQ,SAAW,EAC/B8oB,GAAY,EACLkD,EAAWtjB,KAAKpQ,KACvBwwB,IAAc5zB,EAAQ4V,SAdtBge,GAAY,EAgBZA,GACAlC,EAAOpxB,KAAKozB,EAGpB,OAAOhC,GAEX,QAASznB,GAAKiU,EAAMqR,GAApB,GACQjsB,GAAGu0B,EAAGnE,EAAWtwB,EAAM2F,EAGnBmF,EAA0BxD,EAA4B8tB,CAU9D,IAZAjJ,EAAaA,GAAcgJ,EAAoBra,GAC3C3U,EAAI8K,GAAG6J,EAAM,SACThQ,EAAQgQ,EAAKjY,MAAMiI,MAAOxD,EAASwT,EAAKjY,MAAMyE,OAAQ8tB,EAAQj3B,EAAE2c,GAChEhQ,GAASwoB,EAAQljB,KAAKtF,KACtBsqB,EAAMvuB,KAAK,QAASW,SAASsD,EAAO,KACpC3E,EAAI8qB,QAAQnW,GAAQhQ,MAAO1M,KAE3BkJ,GAAUgsB,EAAQljB,KAAK9I,KACvB8tB,EAAMvuB,KAAK,SAAUW,SAASF,EAAQ,KACtCnB,EAAI8qB,QAAQnW,GAAQxT,OAAQlJ,MAG/B+tB,EAAWvuB,OAMhB,IAHAuuB,EAAWkJ,KAAK,SAAUC,EAAGC,GACzB,MAAOD,GAAEpH,SAAWqH,EAAErH,SAAW,EAAiBqH,EAAErH,SAAfoH,EAAEpH,SAAwB,GAAK,IAEnEhuB,EAAI,EAAGu0B,EAAItI,EAAWvuB,OAAY62B,EAAJv0B,EAAOA,IACtCowB,EAAYnE,EAAWjsB,GACvBF,EAAOswB,EAAUpC,SACjBvoB,EAAQ2qB,EAAU3qB,OACN,SAAR3F,GAA4B,WAAT2F,KAGvB3F,EAAOA,EAAK0I,QAAQgrB,EAAY,IAChCpF,EAAOpxB,KAAK,KACZoxB,EAAOpxB,KAAK8C,GACZsuB,EAAOpxB,KAAK,MACA,SAAR8C,EACAk1B,EAAUvvB,GAASmV,EAAKjY,MAAM4tB,SAE9BnC,EAAOpxB,KADQ,OAAR8C,GAAyB,QAARA,EACZzD,EAAMi5B,WAAW1a,EAAKrL,aAAazP,EAAM,IAEzCmG,EAAIyU,UAAU5a,GAAQA,EAAO2F,GAE7C2oB,EAAOpxB,KAAK,MAGpB,QAAS6Z,GAAS+D,EAAM2a,EAAMC,GAC1B,IAAK,GAAIC,GAAY7a,EAAKE,WAAY2a,EAAWA,EAAYA,EAAUza,YACnE8S,EAAM2H,EAAWF,EAAMC,GAG/B,QAASniB,GAAKuH,GACV,MAAOA,GAAKhL,UAAUpH,QAAQ,UAAW,IAE7C,QAASktB,GAAe9a,GACpB,GAAuB,WAAnBA,EAAKhL,UAAwB,CAC7B,EAEI,IADAgL,EAAOA,EAAKwQ,WACRnlB,EAAI8K,GAAG6J,EAAM,OAAoC,IAA3BA,EAAK4Q,WAAW9tB,OACtC,OAAO,SAELuI,EAAIuoB,QAAQ5T,GACtB,QAAO,EAEX,OAAO,EAEX,QAASkT,GAAMlT,EAAM2a,EAAMC,GACvB,GAA8BtF,GAASyF,EAAQ9a,EAAQpV,EAAOmwB,EAA1DjmB,EAAWiL,EAAKjL,QACpB,IAAgB,GAAZA,EAAe,CAEf,GADAugB,EAAUjqB,EAAInG,KAAK8a,IACdsV,GAAWjqB,EAAIunB,cAAc5S,GAC9B,MAEJ,KAAKle,EAAQ4V,UAAuB,UAAX4d,GAAkC,YAAXA,GAC5C,MAGJ,IADAyF,EAASE,EAAO3F,GACZyF,IAC8B,IAAnBA,EAAOtjB,UAA2B3V,EAAQ2V,SAAWsjB,EAAOtjB,UAInE,MAHAsjB,GAAO9rB,MAAM+Q,GACb/D,EAAS+D,GAAM,EAAO+a,EAAOH,cAC7BG,EAAOG,IAAIlb,GACX,CAGRwT,GAAOpxB,KAAK,KACZoxB,EAAOpxB,KAAKkzB,GACZvpB,EAAKiU,GACD3U,EAAImU,MAAM8V,GACV9B,EAAOpxB,KAAK,QAEZoxB,EAAOpxB,KAAK,KACZ6Z,EAAS+D,EAAM2a,GAAQtvB,EAAI8K,GAAG6J,EAAM,QACpCwT,EAAOpxB,KAAK,MACZoxB,EAAOpxB,KAAKkzB,GACZ9B,EAAOpxB,KAAK,UAEb,IAAgB,GAAZ2S,EAAe,CACtB,GAAI+lB,EAAe9a,GAEf,MADAwT,GAAOpxB,KAAK,UACZ,CAEJyI,GAAQ4N,EAAKuH,IACR2a,GAAQxC,IACTlY,EAASD,EAAKwQ,WACdwK,EAAWhb,EAAKoQ,gBACX4K,IACDA,GAAY3vB,EAAIyoB,SAAS7T,GAAUA,EAASD,GAAMoQ,mBAEjD4K,GAAmC,KAAvBA,EAASntB,WAAoBxC,EAAIuoB,QAAQoH,MACtDnwB,EAAQA,EAAM+C,QAAQ,kBAAmB,KAE7C/C,EAAQA,EAAM+C,QAAQ,KAAM,MAEhC4lB,EAAOpxB,KAAKw4B,EAAe/vB,EAAQQ,EAAIgP,OAAOxP,EAAO/I,QAClC,IAAZiT,GACPye,EAAOpxB,KAAK,aACZoxB,EAAOpxB,KAAK4d,EAAKsQ,MACjBkD,EAAOpxB,KAAK,QACO,GAAZ2S,IACHiL,EAAKsQ,KAAK1jB,QAAQ,WAAa,GAC/B4mB,EAAOpxB,KAAK,QACZoxB,EAAOpxB,KAAK4d,EAAKsQ,MACjBkD,EAAOpxB,KAAK,SAEZoxB,EAAOpxB,KAAK,MACZoxB,EAAOpxB,KAAK4d,EAAKsQ,MACjBkD,EAAOpxB,KAAK,OAIxB,QAAS+4B,GAAS5d,GAAlB,GACQ6d,GAAgB7d,EAAKqT,WAAW9tB,OAChCu4B,EAAYD,GAA6C,GAA5B7d,EAAK2C,WAAWnL,QACjD,OAAOsmB,KAA+B,GAAjBD,GAAuC,GAAjBA,GAAsB/vB,EAAIunB,cAAcrV,EAAKkW,YAE5F,QAAS6H,KACDj4B,EAAE+0B,WAAWt2B,EAAQwV,UACrBkc,EAAS1xB,EAAQwV,OAAOkc,IAAWA,GAzWnC,GACJA,MAMAyH,GACAzqB,QACIvB,MAAO,SAAU+Q,GACbwT,EAAOpxB,KAAK,WACZ2J,EAAKiU,GACLwT,EAAOpxB,KAAK,MAEhB84B,IAAK,WACD1H,EAAOpxB,KAAK,eAGpBm5B,YACItsB,MAAO,SAAU+Q,GACbwT,EAAOpxB,KAAK,WACZ2J,EAAKiU,GACLwT,EAAOpxB,KAAK,MAEhB84B,IAAK,WACD1H,EAAOpxB,KAAK,cAEhBw4B,cAAc,GAElB1iB,MACIT,UAAU,EACVxI,MAAO,SAAU+Q,GAAV,GAYCwb,GAQIC,EAnBJ1zB,EAAQiY,EAAKjY,MACbspB,EAAagJ,EAAoBra,GACjC0b,EAAqB3B,EAAe1I,EACpCqK,GAAmB54B,SACnB0wB,EAAOpxB,KAAK,SACZ2J,EAAKiU,EAAM0b,GACXlI,EAAOpxB,KAAK,MAEY,aAAxB2F,EAAM4zB,gBACNnI,EAAOpxB,KAAK,OAEZo5B,KACAzzB,EAAMiqB,OACNwJ,EAAKp5B,KAAK,UAAYiJ,EAAI0mB,MAAMhqB,EAAMiqB,OAAS,KAE/CjqB,EAAM6zB,YACNJ,EAAKp5B,KAAK,SAAW2F,EAAM6zB,WAAa,KAExC7zB,EAAMN,WACFg0B,EAAOp4B,EAAEgC,QAAQ0C,EAAMN,SAAU4wB,GACrCmD,EAAKp5B,KAAK,SAAWq5B,EAAO,MAE5BD,EAAK14B,QACL0wB,EAAOpxB,KAAK,SAAWo5B,EAAKzpB,KAAK,KAAO,MAGhDmpB,IAAK,SAAUlb,GACX,GAAIjY,GAAQiY,EAAKjY,OACbA,EAAMiqB,OAASjqB,EAAM6zB,YAAc7zB,EAAMN,WACzC+rB,EAAOpxB,KAAK,WAEY,aAAxB2F,EAAM4zB,gBACNnI,EAAOpxB,KAAK,QAEZ23B,EAAeM,EAAoBra,IAAOld,QAC1C0wB,EAAOpxB,KAAK,aAIxBy5B,QACIpkB,UAAU,EACVxI,MAAO,WACHukB,EAAOpxB,KAAK,QAEhB84B,IAAK,WACD1H,EAAOpxB,KAAK,UAGpB05B,IACIrkB,UAAU,EACVxI,MAAO,WACHukB,EAAOpxB,KAAK,QAEhB84B,IAAK,WACD1H,EAAOpxB,KAAK,UAGpBq4B,GACIhjB,UAAU,EACVxI,MAAO,WACHukB,EAAOpxB,KAAK,aAEhB84B,IAAK,WACD1H,EAAOpxB,KAAK,eAGpBgD,GACIqS,UAAU,EACVxI,MAAO,WACHukB,EAAOpxB,KAAK,SAEhB84B,IAAK,WACD1H,EAAOpxB,KAAK,WAGpB25B,GACItkB,UAAU,EACVxI,MAAO,WACHukB,EAAOpxB,KAAK,8CAEhB84B,IAAK,WACD1H,EAAOpxB,KAAK,aAGpBo5B,MACI/jB,UAAU,EACVxI,MAAO,SAAU+Q,GAAV,GAECgS,GACAyJ,EACAO,CAHJxI,GAAOpxB,KAAK,iBACR4vB,EAAQhS,EAAKrL,aAAa,SAC1B8mB,EAAOpD,EAAiBrY,EAAKrL,aAAa,SAC1CqnB,EAAOhc,EAAKrL,aAAa,QACzBqd,IACAwB,EAAOpxB,KAAK,UACZoxB,EAAOpxB,KAAKiJ,EAAI0mB,MAAMC,IACtBwB,EAAOpxB,KAAK,MAEZ45B,IACAxI,EAAOpxB,KAAK,gBACZoxB,EAAOpxB,KAAK45B,GACZxI,EAAOpxB,KAAK,MAEZq5B,IACAjI,EAAOpxB,KAAK,cACZoxB,EAAOpxB,KAAKq5B,GACZjI,EAAOpxB,KAAK,MAEhBoxB,EAAOpxB,KAAK,OAEhB84B,IAAK,WACD1H,EAAOpxB,KAAK,aA+NxB,OA3NA64B,GAAOgB,OAAShB,EAAO,YACvBn5B,EAAUA,MACqB,IAApBA,EAAQ2V,WACf3V,EAAQ2V,UAAW,GAwNnB0jB,EAAS5d,IACTiW,EAASnoB,EAAIgP,OAAO5B,EAAK8E,EAAK2C,YAAYtS,QAAQ,iBAAkB,KAAM9L,GAC1Ew5B,IACO9H,IAEXvX,EAASsB,GACTiW,EAASA,EAAOzhB,KAAK,IACrBupB,IACuD,KAAnD9H,EAAO5lB,QAAQ2qB,EAAM,IAAI3qB,QAAQ6qB,EAAU,IACpC,GAEJjF,KAGf5xB,EAAOiE,GAAU6T,WAAYA,KAC/B/V,OAAOlC,MAAM0c,SACC,kBAAV3c,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,gBAAiB,qBAAsBD,IAChD,YACG,SAAU8B,GAgKP,QAAS64B,GAAkBjtB,EAAOisB,EAAKngB,EAAaC,GAApD,GAIQ3G,GAcAkJ,EACA4e,EAOAC,CAzBJ,IAAIntB,GAASisB,EACT,MAAOlgB,GAAYD,CAGvB,KADI1G,EAAY6mB,EACT7mB,GAAaA,EAAUmc,YAAcvhB,GACxCoF,EAAYA,EAAUmc,UAE1B,IAAInc,EACA,MAAO6b,GAAc7b,GAAa0G,CAGtC,KADA1G,EAAYpF,EACLoF,GAAaA,EAAUmc,YAAc0K,GACxC7mB,EAAYA,EAAUmc,UAE1B,IAAInc,EACA,MAAO2G,GAAYkV,EAAc7b,GAAa,CAIlD,KAFIkJ,EAAOlS,EAAIqrB,eAAeznB,EAAOisB,GACjCiB,EAAgBltB,EACbktB,GAAiBA,EAAc3L,YAAcjT,GAChD4e,EAAgBA,EAAc3L,UAMlC,KAJK2L,IACDA,EAAgB5e,GAEhB6e,EAAclB,EACXkB,GAAeA,EAAY5L,YAAcjT,GAC5C6e,EAAcA,EAAY5L,UAK9B,OAHK4L,KACDA,EAAc7e,GAEd4e,GAAiBC,EACV,EAEJlM,EAAckM,GAAelM,EAAciM,GAEtD,QAASE,GAAeloB,EAAOmoB,GAC3B,QAASC,GAAepoB,GACpB,IACI,MAAO+nB,GAAkB/nB,EAAMkF,eAAgBlF,EAAM2G,aAAc3G,EAAM4G,YAAa5G,EAAM6G,WAAa,EAC3G,MAAOwhB,GACL,OAAO,GAGXD,EAAepoB,KACXmoB,GACAnoB,EAAM4F,wBAA0B5F,EAAM2G,aAAe3G,EAAMkF,eAC3DlF,EAAM6G,UAAY7G,EAAM4G,cAExB5G,EAAM4F,wBAA0B5F,EAAMkF,eAAiBlF,EAAM2G,aAC7D3G,EAAM4G,YAAc5G,EAAM6G,WAE9B7G,EAAMiF,WAAY,GAG1B,QAASqjB,GAAsBtoB,GAC3BA,EAAMiF,UAAYjF,EAAMkF,gBAAkBlF,EAAM2G,cAAgB3G,EAAM4G,aAAe5G,EAAM6G,SAE3F,KADA,GAAIgF,GAAO7L,EAAMkF,eACV2G,GAAQA,GAAQ7L,EAAM2G,eAAiBzP,EAAIklB,aAAavQ,EAAM7L,EAAM2G,eACvEkF,EAAOA,EAAKwQ,UAEhBrc,GAAM4F,wBAA0BiG,EA8JpC,QAAS0c,GAAmBC,GACxB,GAAIvoB,GAAOuoB,EAAUC,YAAaC,EAAQF,EAAUC,WAGpD,OAFAxoB,GAAKc,UAAS,GACd2nB,EAAM3nB,UAAS,GACR7J,EAAIqrB,eAAeiG,EAAUG,gBAAiB1oB,EAAK0oB,gBAAiBD,EAAMC,iBAErF,QAASC,GAAeJ,EAAWxoB,EAAOlF,GACtC,GAAyW+tB,GAArW3oB,EAAYF,EAAMlF,EAAQ,iBAAmB,gBAAiBqF,EAASH,EAAMlF,EAAQ,cAAgB,aAAcguB,EAAa,EAAGC,EAAS7M,EAAWhc,GAAY8oB,EAAaD,EAAS7oB,EAAYA,EAAUuc,WAAWtc,IAAW,KAAM8oB,EAAeF,EAAS7oB,EAAUmc,WAAanc,EAAW3D,EAAMyD,EAAMsd,cAAe4L,EAAS3sB,EAAIe,KAAK6rB,mBAC5T,GAAtBjpB,EAAUU,UAAuC,GAAtBV,EAAUU,YACrCkoB,EAAa3oB,GAEZ8oB,IACDA,EAAe1sB,EAAIe,MAEoB,OAAvC2rB,EAAahK,SAASxtB,eACtBy3B,EAAOE,kBAAkBH,GACzBC,EAAOnoB,UAAS,GAChBynB,EAAUa,YAAYvuB,EAAQ,eAAiB,aAAcouB,KAE7DL,EAAaI,EAAalxB,aAAab,EAAIoqB,OAAO/kB,EAAK,KAAMysB,GAC7DE,EAAOE,kBAAkBP,GACzB3xB,EAAIyE,OAAOktB,GACXK,EAAOpuB,EAAQ,YAAc,WAAW,YAAaguB,GACrDI,EAAOnoB,UAAS,GAChBynB,EAAUa,YAAYvuB,EAAQ,eAAiB,aAAcouB,IAGrE,QAASI,GAAcd,EAAWxoB,EAAOuiB,EAAgBznB,GACrD,GAA2IukB,GAAQvT,EAAQhK,EAAQ+kB,EAAU7F,EAAM9X,EAAMqgB,EAArLV,EAAa3xB,EAAIoqB,OAAOthB,EAAMsd,cAAe,KAAM4L,EAASV,EAAUC,YAAae,EAAa1uB,EAAQ,eAAiB,aAAmE2uB,GAAW,CAC3MZ,GAAWnvB,UAAY,SACvBwvB,EAAOnoB,SAASjG,GAChBgR,EAASod,EAAOP,gBACXzxB,EAAIolB,iBAAiBiG,EAAgBzW,KACtCA,EAASyW,EAEb,GACQkH,GACA3d,EAAO/T,aAAa8wB,EAAYA,EAAW5M,kBAE3CnQ,EAAO4V,YAAYmH,GACnBY,GAAW,GAEfP,EAAOE,kBAAkBP,UACnBxJ,EAAS6J,EAAOQ,iBAAiBF,EAAYhB,IAAc,GAAKK,EAAW5M,gBACrFna,GAAS+mB,EAAW5c,YACN,IAAVoT,GAAgBnD,EAAWpa,IAC3BonB,EAAOG,YAAYvuB,EAAQ,aAAe,WAAY0tB,GACtDtxB,EAAIyE,OAAOktB,GACX3f,GACIpH,EACAonB,EAAO5kB,KAAK3V,UAGhBk4B,GAAY/rB,GAAS+tB,EAAW5M,gBAChC+E,EAAOlmB,GAAS+tB,EAAW5c,YACvBiQ,EAAW8E,GACX9X,GACI8X,EACA,GAEG9E,EAAW2K,GAClB3d,GACI2d,EACAA,EAASl4B,SAGb46B,EAAQxN,EAAc8M,GAElB3f,EADA4C,EAAOG,aAAesd,GAASzd,EAAO2Q,WAAW9tB,OAAS,GAEtDmd,EAAOG,YACP,IAIAH,EACAyd,IAIZryB,EAAIyE,OAAOktB,IAEf7oB,EAAMlF,EAAQ,WAAa,UAAUsoB,MAAMpjB,EAAOkJ,GA9czD,GAiOOygB,GA6FAC,EAkJAC,EAoBArrB,EAwEAsrB,EAkKAC,EACA/kB,EA9sBA1X,EAAQkC,OAAOlC,MAAOmC,EAAQnC,EAAMmC,MAAOhC,EAASyB,EAAEzB,OAAQiE,EAASpE,EAAMqC,GAAGsH,OAAQlH,EAAUzC,EAAMuC,QAAQE,QAASmH,EAAMxF,EAAOyF,IAAK4kB,EAAgB7kB,EAAI6kB,cAAeG,EAAahlB,EAAIglB,WAAYK,EAAsBrlB,EAAIqlB,oBAAqBC,EAAgBtlB,EAAIslB,cAAe5Q,EAAY1U,EAAI0U,UAC7SxF,GACA4jB,oBAAqB,SAAUx6B,GAC3B,MAAM,gBAAkBA,GAGjBA,EAAO2W,eAFH,GAAIyjB,GAAap6B,EAAOuG,WAIvCk0B,mBAAoB,SAAUjqB,GAC1B,GAAIkqB,GAAgBllB,EAAWmlB,kBAAkBnqB,EACjD,OAAOoG,GAAeC,sBAAsB6jB,IAEhD7jB,sBAAuB,SAAUtQ,GAC7B,MAAOqQ,GAAe4jB,oBAAoB9yB,EAAIumB,mBAAmB1nB,MAGrEq0B,EAAW36B,EAAMhC,QACjBC,KAAM,SAAU6O,GACZrN,EAAEzB,OAAOK,MACLwvB,cAAe/gB,EACf2I,eAAgB3I,EAChBoK,aAAcpK,EACdqJ,wBAAyBrJ,EACzBqK,YAAa,EACbC,UAAW,EACX5B,WAAW,KAGnBnE,SAAU,SAAU+K,EAAM1L,GACtBrS,KAAKoX,eAAiB2G,EACtB/d,KAAK8Y,YAAczG,EACnBmoB,EAAsBx6B,MACtBo6B,EAAep6B,MAAM,IAEzBu8B,OAAQ,SAAUxe,EAAM1L,GACpBrS,KAAK6Y,aAAekF,EACpB/d,KAAK+Y,UAAY1G,EACjBmoB,EAAsBx6B,MACtBo6B,EAAep6B,MAAM,IAEzBw8B,eAAgB,SAAUze,GACtB/d,KAAKgT,SAAS+K,EAAKwQ,WAAYN,EAAclQ,KAEjD0e,cAAe,SAAU1e,GACrB/d,KAAKgT,SAAS+K,EAAKwQ,WAAYN,EAAclQ,GAAQ,IAEzD2e,aAAc,SAAU3e,GACpB/d,KAAKu8B,OAAOxe,EAAKwQ,WAAYN,EAAclQ,KAE/C4e,YAAa,SAAU5e,GACnB/d,KAAKu8B,OAAOxe,EAAKwQ,WAAYN,EAAclQ,GAAQ,IAEvD1J,WAAY,SAAU0J,GAClB/d,KAAKw8B,eAAeze,GACpB/d,KAAK28B,YAAY5e,IAErB6e,mBAAoB,SAAU7e,GAC1B/d,KAAKgT,SAAS+K,EAAM,GACpB/d,KAAKu8B,OAAOxe,EAAMA,EAAuB,IAAlBA,EAAKjL,SAAiB,aAAe,aAAajS,SAE7EoS,SAAU,SAAUonB,GAChB,GAAIpxB,GAAOjJ,IACPq6B,GACApxB,EAAKszB,OAAOtzB,EAAKmO,eAAgBnO,EAAK6P,aAEtC7P,EAAK+J,SAAS/J,EAAK4P,aAAc5P,EAAK8P,YAG9C8jB,eAAgB,WACZ,GAAI5zB,GAAOjJ,KAAMkS,EAAQjJ,EAAK6zB,YAC1B7zB,GAAKmO,gBAAkBnO,EAAK6O,yBAC5B7O,EAAKwzB,cAAchO,EAAoBxlB,EAAK6O,wBAAyB7O,EAAKmO,iBAE9EnO,EAAKgK,UAAS,GACb,QAAS8pB,GAAc9N,GACpB,KAAOA,EAASiE,QACRjE,EAAS+N,oBACTD,EAAc9N,EAASgO,sBAEvBhO,EAASphB,UAGnB,GAAIguB,GAAc3pB,KAExB+G,cAAe,WACX,GAAIhR,GAAWiP,EAAWmlB,kBAAkBr8B,KAC5C,OAAO,SAASk9B,GAAajO,GAEzB,IADA,GAAIlR,GAAMof,EAAOl1B,EAASm1B,yBACnBrf,EAAOkR,EAASiE,QACnBnV,EAAOA,EAAKgR,WAAWE,EAAS+N,qBAC5B/N,EAAS+N,qBACTjf,EAAK6V,YAAYsJ,EAAajO,EAASgO,uBAE3CE,EAAKvJ,YAAY7V,EAErB,OAAOof,IACT,GAAItB,GAAc77B,QAExBq9B,gBAAiB,WAAA,GAMTp1B,GALAgB,EAAOjJ,KAAMkS,EAAQjJ,EAAK6zB,YAM9B,OALI7zB,GAAKmO,gBAAkBnO,EAAK6O,yBAC5B7O,EAAKwzB,cAAchO,EAAoBxlB,EAAK6O,wBAAyB7O,EAAKmO,iBAE9EnO,EAAKgK,UAAS,GACVhL,EAAWiP,EAAWmlB,kBAAkBpzB,GACrC,QAASq0B,GAAerO,GAE3B,IADA,GAAIlR,GAAMof,EAAOl1B,EAASm1B,yBACnBrf,EAAOkR,EAASiE,QACfjE,EAAS+N,qBACTjf,EAAOA,EAAKgR,WAAU,GACtBhR,EAAK6V,YAAY0J,EAAerO,EAASgO,wBAEzChO,EAASphB,OAAO5E,EAAKs0B,eAEzBJ,EAAKvJ,YAAY7V,EAErB,OAAOof,IACT,GAAItB,GAAc3pB,KAExBsrB,WAAY,SAAUzf,GAClB,GAAI9U,GAAOjJ,IACPouB,GAAWnlB,EAAKmO,iBACZnO,EAAK6P,aAAe7P,EAAKmO,eAAerE,UAAUlS,QAClDuI,EAAIwlB,cAAc3lB,EAAKmO,eAAgBnO,EAAK6P,aAEhD1P,EAAI0D,YAAYiR,EAAM9U,EAAKmO,iBAE3BhO,EAAIupB,SAAS1pB,EAAKmO,eAAgB2G,EAAM9U,EAAK6P,aAEjD7P,EAAK+J,SAAS/J,EAAKmO,eAAgBnO,EAAK6P,cAE5CgkB,WAAY,WACR,MAAO17B,GAAEzB,OAAO,GAAI28B,GAASt8B,KAAKwvB,gBAC9BpY,eAAgBpX,KAAKoX,eACrByB,aAAc7Y,KAAK6Y,aACnBf,wBAAyB9X,KAAK8X,wBAC9BgB,YAAa9Y,KAAK8Y,YAClBC,UAAW/Y,KAAK+Y,UAChB5B,UAAWnX,KAAKmX,UAChBomB,cAAev9B,QAGvBkwB,SAAU,WACN,GAAIuN,GAAgBz9B,KAAKoX,eAAe+Z,SAAUuM,EAAc19B,KAAK6Y,aAAasY,QAClF,QACqB,SAAjBsM,EAA2Bz9B,KAAKoX,eAAerE,UAAY0qB,GAC3D,IACAz9B,KAAK8Y,YACL,QACe,SAAf4kB,EAAyB19B,KAAK6Y,aAAa9F,UAAY2qB,GACvD,IACA19B,KAAK+Y,UACL,MAIZujB,GAASqB,SAAW,SAAU5f,GAC1B,MAAO,IAAIue,GAASve,EAAKyR,gBAmEzBqM,EAAgBl6B,EAAMhC,QACtBC,KAAM,SAAUsS,GAOZ,GANA9Q,EAAEzB,OAAOK,MACLkS,MAAOA,EACP0rB,SAAU,KACVC,MAAO,KACPC,KAAM,QAEN5rB,EAAMiF,UAAV,CAGA,GAAImE,GAAOpJ,EAAM4F,uBACjB9X,MAAK69B,MAAQ3rB,EAAMkF,gBAAkBkE,GAAS8S,EAAWlc,EAAMkF,gBAAuEqX,EAAoBnT,EAAMpJ,EAAMkF,gBAArFlF,EAAMkF,eAAeuX,WAAWzc,EAAM4G,aACvH9Y,KAAK89B,KAAO5rB,EAAM2G,cAAgByC,GAAS8S,EAAWlc,EAAM2G,cAAiE4V,EAAoBnT,EAAMpJ,EAAM2G,cAAcsF,YAA/FjM,EAAM2G,aAAa8V,WAAWzc,EAAM6G,aAEpHglB,QAAS,WACL,QAAS/9B,KAAK69B,OAElB3K,KAAM,WACF,GAAIjqB,GAAOjJ,KAAMg+B,EAAU/0B,EAAK20B,SAAW30B,EAAK40B,KAYhD,OAXA50B,GAAK40B,MAAQ50B,EAAK20B,UAAY30B,EAAK20B,SAASzf,aAAelV,EAAK60B,KAAO70B,EAAK20B,SAASzf,YAAc,KAC/FiQ,EAAWnlB,EAAK20B,YACZ30B,EAAKiJ,MAAM2G,cAAgB5P,EAAK20B,WAChCI,EAAUA,EAAQjP,WAAU,GAC5BiP,EAAQ9O,WAAWjmB,EAAKiJ,MAAM6G,UAAWilB,EAAQn9B,OAASoI,EAAKiJ,MAAM6G,YAErE9P,EAAKiJ,MAAMkF,gBAAkBnO,EAAK20B,WAClCI,EAAUA,EAAQjP,WAAU,GAC5BiP,EAAQ9O,WAAW,EAAGjmB,EAAKiJ,MAAM4G,eAGlCklB,GAEXC,SAAU,SAAUC,GAEhB,QAAShL,KAGL,MAFAjqB,GAAK20B,SAAW30B,EAAK40B,MACrB50B,EAAK40B,MAAQ50B,EAAK20B,UAAY30B,EAAK20B,SAASzf,aAAelV,EAAK60B,KAAO70B,EAAK20B,SAASzf,YAAc,KAC5FlV,EAAK20B,SAEhB,IANA,GAAiBI,GAAb/0B,EAAOjJ,KAMJg+B,EAAU9K,KACTjqB,EAAK+zB,oBACL/zB,EAAKg0B,qBAAqBgB,SAASC,GAEnCA,EAASF,EAGjB,OAAOA,IAEXnwB,OAAQ,SAAU0vB,GAAV,GACuIvwB,GAAOisB,EAAK7rB,EAe/I4Q,EAEImgB,EAjBRl1B,EAAOjJ,KAAMo+B,EAAmBn1B,EAAKiJ,MAAMkF,gBAAkBnO,EAAK20B,SAAUS,EAAiBp1B,EAAKiJ,MAAM2G,cAAgB5P,EAAK20B,QAC7HxP,GAAWnlB,EAAK20B,YAAcQ,GAAoBC,IAClDrxB,EAAQoxB,EAAmBn1B,EAAKiJ,MAAM4G,YAAc,EACpDmgB,EAAMoF,EAAiBp1B,EAAKiJ,MAAM6G,UAAY9P,EAAK20B,SAAS/8B,OAC5DuM,EAAQ6rB,EAAMjsB,EACVuwB,IAAkBa,GAAoBC,KAClCp1B,EAAK20B,UAAYL,EAAcnmB,gBAA2BmmB,EAAczkB,aAAvB9L,IACjDuwB,EAAczkB,aAAe1L,GAE7BnE,EAAK20B,UAAYL,EAAc1kB,cAAuB0kB,EAAcxkB,WAArBkgB,IAC/CsE,EAAcxkB,WAAa3L,IAGnCnE,EAAK20B,SAAS1O,WAAWliB,EAAOI,KAE5B4Q,EAAS/U,EAAK20B,SAASrP,YACvBgP,GAAkBt0B,EAAKiJ,MAAMkF,gBAAkB4G,GAAU/U,EAAKiJ,MAAM2G,cAAgBmF,IAChFmgB,EAAYlQ,EAAchlB,EAAK20B,UAC/B5f,GAAUuf,EAAcnmB,gBAA+BmmB,EAAczkB,aAA3BqlB,IAC1CZ,EAAczkB,aAAe,GAE7BkF,GAAUuf,EAAc1kB,cAA4B0kB,EAAcxkB,UAA1BolB,IACxCZ,EAAcxkB,WAAa,IAGnC3P,EAAIyE,OAAO5E,EAAK20B,YAGxBZ,kBAAmB,WACf,OAAQ5O,EAAWpuB,KAAK49B,YAAcx0B,EAAIolB,iBAAiBxuB,KAAK49B,SAAU59B,KAAKkS,MAAMkF,iBAAmBhO,EAAIolB,iBAAiBxuB,KAAK49B,SAAU59B,KAAKkS,MAAM2G,gBAE3JokB,mBAAoB,WAChB,GAAIh0B,GAAOjJ,KAAMs+B,EAAWr1B,EAAKiJ,MAAM4qB,YAQvC,OAPAwB,GAAS1B,mBAAmB3zB,EAAK20B,UAC7Bx0B,EAAIolB,iBAAiBvlB,EAAK20B,SAAU30B,EAAKiJ,MAAMkF,iBAC/CknB,EAAStrB,SAAS/J,EAAKiJ,MAAMkF,eAAgBnO,EAAKiJ,MAAM4G,aAExD1P,EAAIolB,iBAAiBvlB,EAAK20B,SAAU30B,EAAKiJ,MAAM2G,eAC/CylB,EAAS/B,OAAOtzB,EAAKiJ,MAAM2G,aAAc5P,EAAKiJ,MAAM6G,WAEjD,GAAI8iB,GAAcyC,MAG7BxC,EAAen6B,EAAMhC,QACrBC,KAAM,SAAU6O,GACZzO,KAAKwvB,cAAgB/gB,EACrBzO,KAAK2Y,WAAa,GAEtBD,SAAU,SAAUxG,GAChB,GAAIwoB,GAAY16B,KAAKwvB,cAAchgB,KAAK6rB,iBACxCP,GAAeJ,EAAWxoB,GAAO,GACjC4oB,EAAeJ,EAAWxoB,GAAO,GACjCwoB,EAAU6D,UAEd9lB,gBAAiB,WACb,GAAID,GAAYxY,KAAKwvB,cAAchX,SACb,SAAlBA,EAAUzP,MACVyP,EAAU+E,SAGlB3E,WAAY,WAAA,GACJ8hB,GAA+F/xB,EAAS8rB,EAyBpGrd,EAAuCyB,EAAmCrJ,EAEtEgvB,EAAoBC,EA3BjBvsB,EAAQ,GAAIoqB,GAASt8B,KAAKwvB,eAAgBhX,EAAYxY,KAAKwvB,cAAchX,SACxF,KAGI,GAFAkiB,EAAYliB,EAAUpE,cACtBzL,EAAU+xB,EAAUgE,KAAOhE,EAAUgE,KAAK,GAAKhE,EAAUG,gBACrDlyB,EAAQ6mB,eAAiBxvB,KAAKwvB,cAC9B,MAAOtd,GAEb,MAAOqoB,GACL,MAAOroB,GAEX,GAAsB,WAAlBsG,EAAUzP,KACVmJ,EAAMmC,WAAWqmB,EAAUgE,KAAK,QAehC,IAbAjK,EAAiBgG,EAAmBC,GACpCc,EAAcd,EAAWxoB,EAAOuiB,GAAgB,GAChD+G,EAAcd,EAAWxoB,EAAOuiB,GAAgB,GACX,GAAjCviB,EAAMkF,eAAetE,UACrBZ,EAAMc,SAASd,EAAM2G,aAAc3G,EAAM4G,aAEV,GAA/B5G,EAAM2G,aAAa/F,UACnBZ,EAAMqqB,OAAOrqB,EAAMkF,eAAgBlF,EAAM6G,WAEe,IAAxD2hB,EAAUkB,iBAAiB,aAAclB,IACzCxoB,EAAMe,UAAS,GAEfmE,EAAiBlF,EAAMkF,eAAgByB,EAAe3G,EAAM2G,aAAcrJ,EAAOxP,KAAKwvB,cAAchgB,OACnG0C,EAAMiF,WAAmC,IAAtBjF,EAAM4G,aAAqB5G,EAAM6G,WAAa2V,EAAcxc,EAAM2G,eAAmBzB,GAAkByB,GAAgBuV,EAAWhX,IAAmBA,EAAemX,YAAc/e,GAAO,CAE7M,IADIgvB,GAAa,EAAOC,GAAW,EACM,IAAlCxQ,EAAc7W,IAAyBA,GAAkBA,EAAemX,WAAWtQ,YAAc7G,GAAkB5H,GACtH4H,EAAiBA,EAAemX,WAChCiQ,GAAa,CAEjB,MAAOvQ,EAAcpV,IAAiB6V,EAAc7V,EAAa0V,YAAc,GAAK1V,GAAgBA,EAAa0V,WAAWiD,WAAa3Y,GAAgBrJ,GACrJqJ,EAAeA,EAAa0V,WAC5BkQ,GAAW,CAEXrnB,IAAkB5H,GAAQqJ,GAAgBrJ,GAAQgvB,GAAcC,IAChEvsB,EAAMc,SAASoE,EAAgB,GAC/BlF,EAAMqqB,OAAO1jB,EAAc6V,EAAclf,KAIrD,MAAO0C,MAsFX6pB,EAAkBp6B,EAAMhC,QACxBC,KAAM,SAAUsS,GACZlS,KAAK2+B,UAAY,WAEb,QAASC,GAAM7gB,GACX,GAAI3U,EAAI8K,GAAG6J,EAAM,QAA2B,GAAjBA,EAAKjL,YAAmB1J,EAAIsoB,aAAa3T,IAA2B,UAAlBA,EAAKhL,WAC9EsH,EAAMla,KAAK4d,OAGX,KADAA,EAAOA,EAAKE,WACLF,GACH6gB,EAAM7gB,GACNA,EAAOA,EAAKI,YARxB,GAAI9D,KAaJ,OADA,IAAIwhB,GAAc3pB,GAAO+rB,SAASW,GAC3BvkB,MAIf3J,EAAe/O,EAAMhC,QACrBC,KAAM,SAAUsS,EAAO1C,GACnB,GAAIvG,GAAOjJ,IACXiJ,GAAKiJ,MAAQA,EACbjJ,EAAK41B,SAAW3nB,EAAWmlB,kBAAkBnqB,GAC7CjJ,EAAKuG,KAAOA,GAAQvG,EAAK61B,YAAY5sB,GACV,QAAvB9I,EAAInG,KAAKgG,EAAKuG,QACdvG,EAAK41B,SAAW51B,EAAKuG,MAEzBvG,EAAKsO,KAAOtO,EAAKuG,KAAK5D,UACtB3C,EAAKmO,eAAiBnO,EAAK81B,WAAW7sB,EAAMkF,gBAC5CnO,EAAK4P,aAAe5P,EAAK81B,WAAW7sB,EAAM2G,cAC1C5P,EAAK6P,YAAc7P,EAAKoJ,OAAOH,EAAMkF,eAAgBlF,EAAM4G,aAC3D7P,EAAK8P,UAAY9P,EAAKoJ,OAAOH,EAAM2G,aAAc3G,EAAM6G,YAE3D0iB,MAAO,SAAU1d,GAEb,IAFG,GAGKjL,GAFJye,EAAS,EAAGyN,EAAWjhB,EAAKjL,SACzBiL,EAAOA,EAAKoQ,iBACXrb,EAAWiL,EAAKjL,UACJ,GAAZA,GAAiBksB,GAAYlsB,IAC7Bye,IAEJyN,EAAWlsB,CAEf,OAAOye,IAEXuN,YAAa,SAAU5sB,GAEnB,IADA,GAAIoJ,GAAOpJ,EAAM4F,wBACVwD,IAA0B,GAAjBA,EAAKxI,UAAiBwI,EAAK8T,aAAe9T,EAAK8T,WAAWjnB,kBACtEmT,EAAOA,EAAKiT,UAEhB,OAAOjT,IAEX2jB,YAAa,WACTj/B,KAAKwP,KAAK5D,UAAY5L,KAAKuX,MAE/BlF,OAAQ,SAAU0L,EAAMnV,GACpB,GAAqB,GAAjBmV,EAAKjL,SACL,MAAQiL,EAAOA,EAAKoQ,kBAAqC,GAAjBpQ,EAAKjL,UACzClK,GAASmV,EAAKhL,UAAUlS,MAGhC,OAAO+H,IAEXm2B,WAAY,SAAUhhB,GAElB,IADA,GAAImhB,MACGnhB,GAAQ/d,KAAK6+B,UAChBK,EAAK/+B,KAAKH,KAAKy7B,MAAM1d,IACrBA,EAAOA,EAAKwQ,UAEhB,OAAO2Q,IAEXC,aAAc,SAAUjtB,EAAOlF,EAAOkyB,EAAME,GAExC,IADA,GAAIrhB,GAAO/d,KAAK6+B,SAAUh+B,EAASq+B,EAAKr+B,OAAQwR,EAAS+sB,EAClDv+B,KACHkd,EAAOA,EAAK4Q,WAAWuQ,EAAKr+B,GAEhC,MAAOkd,GAAyB,GAAjBA,EAAKjL,UAAyCT,EAAxB0L,EAAKhL,UAAUlS,QAChDwR,GAAU0L,EAAKhL,UAAUlS,OACzBkd,EAAOA,EAAKI,WAEZJ,IAAQ1L,GAAU,GAClBH,EAAMlF,EAAQ,WAAa,UAAU+Q,EAAM1L,IAGnD8F,QAAS,WACL,GAAIlP,GAAOjJ,KAAMuxB,EAAStoB,EAAKiJ,MAAM4qB,YAGrC,OAFA7zB,GAAKk2B,aAAa5N,GAAQ,EAAMtoB,EAAKmO,eAAgBnO,EAAK6P,aAC1D7P,EAAKk2B,aAAa5N,GAAQ,EAAOtoB,EAAK4P,aAAc5P,EAAK8P,WAClDwY,KAGXyK,EAASr6B,EAAMhC,QACfC,KAAM,WACFI,KAAKq/B,MAAQ,MAEjBC,SAAU,SAAUptB,GAChB,GAAIjJ,GAAOjJ,IAIX,OAHAiJ,GAAKo2B,MAAQj2B,EAAIoqB,OAAOtc,EAAWmlB,kBAAkBnqB,GAAQ,QAAU0e,UAAW,aAClF1e,EAAMsrB,WAAWv0B,EAAKo2B,OACtBntB,EAAMmC,WAAWpL,EAAKo2B,OACfp2B,EAAKo2B,OAEhBE,YAAa,SAAUrtB,GAAV,GAKLE,GACAotB,EAGAzhB,EAII0hB,EAZJx2B,EAAOjJ,KAAM+4B,EAAW9vB,EAAKo2B,MAAMlR,gBAAiBrV,EAAc,CAClEigB,KACAjgB,EAAcsV,EAAW2K,GAAYA,EAAShmB,UAAUlS,OAASotB,EAAc8K,IAE/E3mB,EAAYnJ,EAAKo2B,MAAM9Q,WACvBiR,EAAiBzG,EAAW9K,EAAc8K,GAAY,EAC1D3vB,EAAIyE,OAAO5E,EAAKo2B,OAChBvhB,EAAU1L,GACN2L,EAAO3L,EAAUuc,WAAW6Q,GAC5BpR,EAAWrQ,GACX7L,EAAMc,SAAS+K,EAAMjF,GACdiF,GACH0hB,EAAWr2B,EAAIkoB,aAAavT,GAC5B0hB,EACAvtB,EAAMc,SAASysB,EAAUA,EAAS1sB,UAAUlS,QAE5CqR,EAAM6mB,EAAW,gBAAkB,kBAAkBhb,KAGpD9b,EAAQ2U,MAASxE,EAAUxG,YAC5BwG,EAAUxG,UAAY,wBAE1BsG,EAAM0qB,mBAAmBxqB,IAE7BF,EAAMe,UAAS,IAEnBysB,IAAK,SAAUxtB,EAAOytB,GAAjB,GAQGC,GAUIljB,EAjBJzT,EAAOjJ,KACPmX,EAAYjF,EAAMiF,YAAcD,EAAW2oB,aAAa3tB,GACxDzD,EAAMyI,EAAWmlB,kBAAkBnqB,EAsBvC,OArBIytB,IAAUztB,EAAMiF,YAChBlO,EAAKq2B,SAASptB,GACdA,EAAQgF,EAAWyoB,OAAOztB,IAE1B0tB,EAAgB1tB,EAAM4qB,aAC1B8C,EAAc3sB,UAAS,GACvBhK,EAAKgwB,IAAM7vB,EAAIoqB,OAAO/kB,EAAK,QAAUmiB,UAAW,aAChDgP,EAAcpC,WAAWv0B,EAAKgwB,KAC9B2G,EAAgB1tB,EAAM4qB,aACtB8C,EAAc3sB,UAAS,GACvBhK,EAAK+D,MAAQ/D,EAAKgwB,IAAIlK,WAAU,GAChC6Q,EAAcpC,WAAWv0B,EAAK+D,OAC9B/D,EAAK62B,mBAAmB72B,EAAK+D,MAAO/D,EAAKgwB,KACrC9hB,IACIuF,EAAMjO,EAAIsxB,eAAe,UAC7B32B,EAAI0D,YAAY4P,EAAIqS,YAAa9lB,EAAK+D,OACtC5D,EAAIa,aAAayS,EAAKzT,EAAKgwB,MAE/Bnb,EAAU5L,EAAM4F,yBAChB5F,EAAMsqB,eAAevzB,EAAK+D,OAC1BkF,EAAMyqB,YAAY1zB,EAAKgwB,KAChB/mB,GAEX4tB,mBAAoB,SAAU9yB,EAAOisB,GAC7BjsB,EAAMmhB,iBAAsD,UAAnCnhB,EAAMmhB,gBAAgBpb,WAC/C3J,EAAIyE,OAAOb,EAAMmhB,iBAEjB8K,EAAI9a,aAA4C,UAA7B8a,EAAI9a,YAAYpL,WACnC3J,EAAIyE,OAAOorB,EAAI9a,cAGvB6hB,iBAAkB,SAAUjiB,GAGxB,IAHc,GACV0d,GAAQxN,EAAclQ,GACtBkiB,EAAUliB,EACPkiB,EAAQ9R,iBACa,GAApB8R,EAAQntB,UAAqD,GAApCmtB,EAAQ9R,gBAAgBrb,UACjD2oB,IAEJwE,EAAUA,EAAQ9R,eAEtB,OAAOsN,IAEX5tB,OAAQ,SAAUqE,GAAV,GACiDguB,GAAsBC,EAAoBC,EAa3FjpB,EACAkpB,EAaAvnB,EACAC,EAaAunB,EACAC,EACAC,EACAC,EA5CAx3B,EAAOjJ,KAAMgN,EAAQ/D,EAAK+D,MAAOisB,EAAMhwB,EAAKgwB,GAEhD,KADAnb,EAAU5L,EAAM4F,0BACR9K,EAAMmR,aAAenR,EAAMuhB,YAC/BvhB,EAAQA,EAAMuhB,UAElB,OAAQ0K,EAAI9K,iBAAmB8K,EAAI1K,YAC/B0K,EAAMA,EAAI1K,UAgBd,IAdA2R,EAAuBlzB,EAAMmhB,iBAAqD,GAAlCnhB,EAAMmhB,gBAAgBrb,UAAkB9F,EAAMmR,aAA6C,GAA9BnR,EAAMmR,YAAYrL,SAC/HqtB,EAAqBlH,EAAI9K,iBAAmD,GAAhC8K,EAAI9K,gBAAgBrb,UAAkBmmB,EAAI9a,aAA2C,GAA5B8a,EAAI9a,YAAYrL,SACrHstB,EAAkBF,GAAwBC,EAC1CnzB,EAAQA,EAAMmR,YACd8a,EAAMA,EAAI9K,gBACNhX,GAAY,EACZkpB,GAAmB,EACnBrzB,GAAS/D,EAAKgwB,MACdoH,IAAqBp3B,EAAK+D,MAAMmhB,gBAChCnhB,EAAQisB,EAAMhwB,EAAK+D,MAAMmhB,iBAAmBllB,EAAKgwB,IAAI9a,YACrDhH,GAAY,GAEhB/N,EAAIyE,OAAO5E,EAAK+D,OAChB5D,EAAIyE,OAAO5E,EAAKgwB,MACXjsB,IAAUisB,EAGX,MAFA/mB,GAAM0qB,mBAAmB1qB,EAAM4F,6BAC/B5F,GAAMe,UAAS,EAKnB,IAFI6F,EAAc3B,EAAYiX,EAAWphB,GAASA,EAAM+F,UAAUlS,OAASmM,EAAM2hB,WAAW9tB,OAAS,EACjGkY,EAAYqV,EAAW6K,GAAOA,EAAIlmB,UAAUlS,OAASo4B,EAAItK,WAAW9tB,OAClD,GAAlBmM,EAAM8F,SACN,KAAO9F,EAAMmhB,iBAAqD,GAAlCnhB,EAAMmhB,gBAAgBrb,UAClD9F,EAAQA,EAAMmhB,gBACdrV,GAAe9L,EAAM+F,UAAUlS,MAGvC,IAAoB,GAAhBo4B,EAAInmB,SACJ,KAAOmmB,EAAI9K,iBAAmD,GAAhC8K,EAAI9K,gBAAgBrb,UAC9CmmB,EAAMA,EAAI9K,gBACVpV,GAAakgB,EAAIlmB,UAAUlS,MAG/By/B,GAActzB,EAAMuhB,WACpBgS,EAAYtH,EAAI1K,WAChBiS,EAAaxgC,KAAKggC,iBAAiBhzB,GACnCyzB,EAAWzgC,KAAKggC,iBAAiB/G,GACrCnb,EAAUwiB,GACY,GAAlBtzB,EAAM8F,WACN9F,EAAQszB,EAAY3R,WAAW6R,IAEnC1iB,EAAUyiB,GACU,GAAhBtH,EAAInmB,WACJmmB,EAAMsH,EAAU5R,WAAW8R,IAE3BtpB,GACsB,GAAlBnK,EAAM8F,SACNZ,EAAMc,SAAShG,EAAO8L,GAEtB5G,EAAMmuB,EAAmB,gBAAkB,kBAAkBrzB,GAEjEkF,EAAMe,UAAS,KAEO,GAAlBjG,EAAM8F,SACNZ,EAAMc,SAAShG,EAAO8L,GAEtB5G,EAAMsqB,eAAexvB,GAEL,GAAhBisB,EAAInmB,SACJZ,EAAMqqB,OAAOtD,EAAKlgB,GAElB7G,EAAMyqB,YAAY1D,IAGtBhwB,EAAKo2B,OACLp2B,EAAKs2B,YAAYrtB,MAIzB+pB,EAAW,2DACX/kB,GACAmD,MAAO,SAAUnI,GACb,GAAImI,GAAQnD,EAAWF,UAAU9E,EAQjC,OAPKmI,GAAMxZ,SACPqR,EAAM0qB,mBAAmB1qB,EAAM4F,yBAC/BuC,EAAQnD,EAAWF,UAAU9E,GACxBmI,EAAMxZ,SACPwZ,EAAQjR,EAAIgoB,sBAAsBlf,EAAM4F,2BAGzCuC,GAEXrD,UAAW,SAAU9E,GACjB,MAAO,IAAI6pB,GAAgB7pB,GAAOysB,aAEtCtC,kBAAmB,SAAUnqB,GACzB,GAAIkF,GAAiBlF,EAAMkF,cAC3B,OAAkC,IAA3BA,EAAetE,SAAgBsE,EAAiBA,EAAeoY,eAE1Epb,YAAa,SAAUnM,GACnB,MAAIhG,GAAQ2U,MAA0B,EAAlB3U,EAAQsY,QACjB,GAAI+hB,GAASr0B,GAEjBA,EAASmM,eAEpBlB,YAAa,SAAUhB,GAAV,GAMLsG,GALAkoB,EAAQxpB,EAAWwpB,MAAMxuB,EACzBwuB,KACAxuB,EAAMuqB,cAAciE,GACpBxuB,EAAMyqB,YAAY+D,IAElBloB,EAAYF,EAAe6jB,mBAAmBjqB,GAClDsG,EAAUC,kBACVD,EAAUE,SAASxG,IAEvByuB,UAAW,SAAUzuB,GACjB,MAAO1S,GAAM0D,OAAO,oBAAqBkG,EAAInG,KAAKiP,EAAMkF,gBAAiBlF,EAAM4G,YAAa1P,EAAInG,KAAKiP,EAAM2G,cAAe3G,EAAM6G,YAEpI3H,MAAO,SAAUc,EAAO6L,EAAMtS,GAC1B,QAASm1B,GAAU5zB,GAAnB,GAIQ6zB,GAHAC,EAAiB5uB,EAAM4qB,YAC3BgE,GAAe7tB,SAASjG,GACxB8zB,EAAe9zB,EAAQ,iBAAmB,eAAe+Q,GACrD8iB,EAAWC,EAAezD,kBAC1B5xB,IACAo1B,EAAWz3B,EAAIqC,KAAKo1B,IAExBz3B,EAAI4D,EAAQ,eAAiB,eAAe6zB,EAAU9iB,GAE1D6iB,GAAU,GACVA,GAAU,IAEdG,OAAQ,SAAU7uB,EAAOtC,GACrB,GAAIyK,KAOJ,OANA,IAAIwhB,GAAc3pB,GAAO+rB,SAAS,SAAUlgB,GACxC,GAAIijB,GAASpxB,EAAImO,EACbijB,IAAU5/B,EAAEgC,QAAQ49B,EAAQ3mB,GAAS,GACrCA,EAAMla,KAAK6gC,KAGZ3mB,GAEX4mB,OAAQ,SAAU/uB,EAAOgvB,GACrB,GAAIC,GAAWD,CAMf,OALwB,gBAAbA,KACPA,EAAY,SAAUnjB,GAClB,MAAO3U,GAAI8K,GAAG6J,EAAMojB,KAGrBjqB,EAAW6pB,OAAO7uB,EAAO,SAAU6L,GACtC,MAAImjB,GAAUnjB,GACHA,EADX,UAKRqjB,WAAY,SAAUlvB,GAClB,MAAOgF,GAAW+pB,OAAO/uB,EAAO,SAAU6L,GACtC,MAAyB,YAAlBA,EAAK6S,aAGpB8P,MAAO,SAAUxuB,GACb,GAAImI,GAAQnD,EAAW+pB,OAAO/uB,EAAO,MACrC,OAAoB,IAAhBmI,EAAMxZ,OACCwZ,EAAM,GADjB,QAIJgnB,UAAW,SAAU9D,EAAexf,GAAzB,GAIH7L,GAEIupB,EACAzd,CANR,IAAkC,IAA9Buf,EAAczkB,YACd,OAAO,CAGX,KADI5G,EAAQqrB,EAAcT,aACG,IAAtB5qB,EAAM4G,aAAqB5G,EAAMkF,gBAAkB2G,GAAM,CAG5D,IAFI0d,EAAQryB,EAAI6kB,cAAc/b,EAAMkF,gBAChC4G,EAAS9L,EAAMkF,eAAemX,WAC3BkN,EAAQ,GAAKzd,EAAOyd,EAAQ,IAAMryB,EAAIunB,cAAc3S,EAAOyd,EAAQ,KACtEA,GAEJvpB,GAAMc,SAASgL,EAAQyd,GAE3B,MAA6B,KAAtBvpB,EAAM4G,aAAqB5G,EAAMkF,gBAAkB2G,GAE9DujB,QAAS,SAAU/D,EAAexf,GAU9B,QAAS6gB,GAAM7gB,GACN3U,EAAIunB,cAAc5S,IACnB1D,EAAMla,KAAK4d,GAZd,GAGD/Q,GAMAqN,EARAnI,EAAQqrB,EAAcT,YAe1B,OAdA5qB,GAAMe,UAAS,GACXjG,EAAQkF,EAAMkF,eACdhO,EAAIglB,WAAWphB,IAAUkF,EAAM4G,aAAe1P,EAAIslB,cAAc1hB,KAChEkF,EAAMc,SAAShG,EAAMuhB,WAAYnlB,EAAI6kB,cAAcjhB,GAAS,GAC5DkF,EAAMe,UAAS,IAEnBf,EAAMqqB,OAAOxe,EAAM3U,EAAIslB,cAAc3Q,IACjC1D,KAMJ,GAAIwhB,GAAc3pB,GAAO+rB,SAASW,IAC1BvkB,EAAMxZ,QAElB0gC,qBAAsB,SAAUrvB,GAM5B,QAASsvB,GAAMnvB,EAAQD,GAAvB,GAKajP,GAJLtC,EAASuI,EAAIslB,cAActc,EAC/B,IAAIC,GAAUxR,EACV,OAAO,CAEX,KAASsC,EAAIkP,EAAYxR,EAAJsC,EAAYA,IAC7B,IAAKiG,EAAIunB,cAAcve,EAAUuc,WAAWxrB,IACxC,OAAO,CAGf,QAAO,EAbX,IAHkB,GACds+B,GAAgBr4B,EAAIyqB,eAAe3hB,EAAMkF,gBACzCsqB,EAAct4B,EAAIyqB,eAAe3hB,EAAM2G,cACd,IAAtB3G,EAAM4G,aAAqB5G,EAAMkF,gBAAkBqqB,GACtDvvB,EAAMc,SAASd,EAAMkF,eAAemX,WAAYnlB,EAAI6kB,cAAc/b,EAAMkF,gBAc5E,MAAOoqB,EAAMtvB,EAAM6G,UAAW7G,EAAM2G,eAAiB3G,EAAM2G,cAAgB6oB,GACvExvB,EAAMqqB,OAAOrqB,EAAM2G,aAAa0V,WAAYnlB,EAAI6kB,cAAc/b,EAAM2G,cAAgB,EAExF,OAAO3G,IAEXytB,OAAQ,SAAUztB,GAAV,GAOAyvB,GACAC,EAIA9oB,EACAC,EAZAwY,EAASrf,EAAM4qB,aACf1lB,EAAiBma,EAAOna,eAAeuX,WAAkC,IAAvB4C,EAAOzY,YAAoB,EAAIyY,EAAOzY,YAAc,GACtGD,EAAe0Y,EAAO1Y,aAAa8V,WAAW4C,EAAOxY,UACzD,OAAKqV,GAAWhX,IAAoBgX,EAAWvV,IAG3C8oB,EAAcvqB,EAAerE,UAC7B6uB,EAAa/oB,EAAa9F,UACzB4uB,GAAgBC,GAGjB9oB,EAAc6oB,EAAYvwB,MAAM,IAAI8jB,UAAUplB,KAAK,IAAI+xB,OAAO5F,GAC9DljB,EAAY6oB,EAAWC,OAAO5F,GAC7BnjB,GAAgBC,GAGrBA,EAAyB,IAAbA,EAAkB6oB,EAAW/gC,OAASkY,EAClDD,EAA6B,IAAfA,EAAoB,EAAI6oB,EAAY9gC,OAASiY,EAC3DyY,EAAOve,SAASoE,EAAgB0B,GAChCyY,EAAOgL,OAAO1jB,EAAcE,GACrBwY,GANIA,GALAA,GALAA,GAkBfsO,aAAc,SAAU3tB,GAAV,GAMNqf,GACA3oB,EAIA+4B,EACAC,EACA9oB,EAAiBC,EAZjBgF,EAAO7L,EAAMkF,eACbglB,EAAgBllB,EAAWmlB,kBAAkBnqB,EACjD,OAAI6L,IAAQqe,GAAiBre,GAAQqe,EAAc5sB,MACxC,GAEP+hB,EAASrf,EAAM4qB,cACfl0B,EAAQmV,EAAKhL,YAIb4uB,EAAc/4B,EAAMk5B,UAAU,EAAGvQ,EAAOzY,aACxC8oB,EAAah5B,EAAMk5B,UAAUvQ,EAAOzY,aACpCA,EAAc,EAAGC,EAAY,EAC7B4oB,IACA7oB,EAAc6oB,EAAYvwB,MAAM,IAAI8jB,UAAUplB,KAAK,IAAI+xB,OAAO5F,IAE9D2F,IACA7oB,EAAY6oB,EAAWC,OAAO5F,IAE3BnjB,GAAeC,IAXX,KAcnBpZ,EAAOiE,GACH0U,eAAgBA,EAChBgkB,SAAUA,EACVT,cAAeA,EACfC,aAAcA,EACdC,gBAAiBA,EACjBrrB,aAAcA,EACdsrB,OAAQA,EACR9kB,WAAYA,KAElBxV,OAAOlC,MAAM0c,SACC,kBAAV3c,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,iBAAkB,gBAAiBD,IAC5C,YACG,SAAU8B,GAEP,QAAS2gC,GAAa54B,EAAQ64B,GAA9B,GACQC,GAAkB94B,EAAOyO,sBAAwB,GAAIlH,GAAavH,EAAOwH,YACzEvQ,EAAU,GAAI8hC,GAAeF,EAAmBC,EAGpD,OAFA7hC,GAAQ+I,OAASA,EACjBA,EAAOmC,cAAcnL,KAAKC,GACnB6hC,EAPd,GACOziC,GAAQkC,OAAOlC,MAAOmC,EAAQnC,EAAMmC,MAAOuH,EAAW1J,EAAMqC,GAAGsH,OAAQ3G,EAAc0G,EAAS1G,YAAac,EAAed,EAAYc,aAAc8F,EAAMF,EAASG,IAAK/H,EAAO4H,EAAS5H,KAAMc,EAAe8G,EAAS9G,aAAcsO,EAAexH,EAASwH,aAAcsrB,EAAS9yB,EAAS8yB,OAAQr8B,EAASyB,EAAEzB,OAQ/SwiC,EAAUxgC,EAAMhC,QAChBC,KAAM,SAAUC,GACZG,KAAKH,QAAUA,EACfG,KAAKoiC,aAAe,GAAI1xB,GAAa7Q,EAAQqS,OAC7ClS,KAAKqiC,OAAS,GAAIrG,GAClBh8B,KAAKoa,UAAYva,EAAQua,WAE7BzJ,SAAU,WACN,MAAO3Q,MAAKoiC,aAAajqB,WAE7BmqB,UAAW,SAAU3C,GACjB,MAAO3/B,MAAKqiC,OAAO3C,IAAI1/B,KAAK2Q,WAAYgvB,IAE5C4C,aAAc,SAAUrwB,GACpBlS,KAAKqiC,OAAOx0B,OAAOqE,GACnBlS,KAAKmJ,OAAO+J,YAAYhB,IAE5B1R,KAAM,WACF,GAAIgiC,GAAQxiC,KAAKoiC,YACjBI,GAAMvD,cACNj/B,KAAKmJ,OAAO+J,YAAYsvB,EAAMrqB,YAElCxX,KAAM,WACFX,KAAKsT,QAETmvB,aAAc,SAAU51B,EAAShN,GAC7B,GAAIsJ,GAASnJ,KAAKmJ,MAClB,OAAO/H,GAAEyL,GAASsB,SAASlG,SAASuH,MAAMkzB,YAAY/iC,KAAWwJ,EAAOtJ,QAAQqW,cAAerW,IAAU2J,QAAQ,aAAa8Q,YAAY,QAAS9a,EAAMuC,QAAQ4N,MAAMxG,EAAOQ,UAAUsvB,OAE5L3lB,KAAM,WACF,GAAIpB,GAAQlS,KAAKsiC,WAAU,EAC3BtiC,MAAKoa,UAAUjR,OAASnJ,KAAKmJ,OAC7BnJ,KAAKoa,UAAUuoB,OAAOzwB,GACtBlS,KAAKuiC,aAAarwB,MAGtBgwB,EAAiBvgC,EAAMhC,QACvBC,KAAM,SAAUoiC,EAAmBC,GAC/BjiC,KAAKwP,KAAOwyB,EAAkBxyB,KAC9BxP,KAAKgiC,kBAAoBA,EACzBhiC,KAAKiiC,gBAAkBA,GAE3BthC,KAAM,WACFX,KAAKwP,KAAK5D,UAAY5L,KAAKiiC,gBAAgB1qB,KAC3CvX,KAAKmJ,OAAO+J,YAAYlT,KAAKiiC,gBAAgB9pB,YAEjD3X,KAAM,WACFR,KAAKwP,KAAK5D,UAAY5L,KAAKgiC,kBAAkBzqB,KAC7CvX,KAAKmJ,OAAO+J,YAAYlT,KAAKgiC,kBAAkB7pB,cAGnDgB,EAAoBgpB,EAAQxiC,QAC5BC,KAAM,SAAUC,GACZsiC,EAAQriC,GAAGF,KAAKG,KAAKC,KAAMH,GAC3BG,KAAKwZ,iBAAkB,GAE3BlG,KAAM,WAAA,GAYEsvB,GAXAz5B,EAASnJ,KAAKmJ,OACdtJ,EAAUG,KAAKH,QACfqS,EAAQrS,EAAQqS,MAChB1C,EAAOrG,EAAOqG,KACdwyB,EAAoB,GAAItxB,GAAawB,EAAO1C,GAC5C+H,EAAO1X,EAAQ0X,MAAQ1X,EAAQ+I,OAAS,EAC5CO,GAAO+J,YAAYhB,GACnB/I,EAAOiC,UAAU8N,MAAM3B,EAAM1X,GACzBA,EAAQgjC,aACRhjC,EAAQgjC,YAAY15B,EAAQA,EAAOwH,YAEnCiyB,EAAiB,GAAIV,GAAeF,EAAmB,GAAItxB,GAAavH,EAAOwH,WAAYnB,IAC/FozB,EAAez5B,OAASA,EACxBA,EAAOmC,cAAcnL,KAAKyiC,GAC1Bz5B,EAAO4I,WAGX+wB,EAAiBxhC,EAAK3B,QACtBma,WAAY,SAAUjY,EAAIkhC,GACtB,GAAI55B,GAAS45B,EAAY55B,OAAQtJ,EAAUG,KAAKH,QAASmjC,EAAanjC,EAAQuc,MAAQvc,EAAQuc,MAAQjT,EAAOtJ,QAAQuF,UACrHpF,MAAKijC,WAAa,GAAI/5B,GAASg6B,UAAUrhC,GACrCmhC,WAAYA,EACZG,cAAe,OACfC,eAAgB,QAChB1pB,OAAQ,WACJpY,EAAKgS,KAAKnK,EAAQ,aAAcnJ,KAAK4I,UAEzCqG,MAAO9F,EAAOtJ,QAAQoE,SAASmB,WAC/Bi+B,gBAAgB,KAGxBjjC,QAAS,SAAU6Z,GACf,MAAO,IAAId,GAAkBc,IAEjCxQ,OAAQ,SAAU5H,GACd,GAAIyhC,GAAYzhC,EAAGwsB,KAAK,mBAAqBxsB,EAAG+H,KAAK,UAAUykB,KAAK,iBACpEiV,GAAUvzB,QACVuzB,EAAU16B,MAAM06B,EAAUzjC,QAAQoP,UAGtC/D,EAAgBvJ,EAAMhC,QACtBC,KAAM,SAAUuJ,GACZnJ,KAAKmJ,OAASA,GAElB0I,QAAS,SAAUtF,GAAV,GAQG2F,GAPJjJ,EAAOjJ,KAAMmJ,EAASF,EAAKE,OAAQ4B,EAAW5B,EAAO4B,SAAUw4B,EAAcx4B,EAASw4B,YAAYh3B,GAAIi3B,EAAM7jC,EAAOyB,EAAEqiC,QAASl3B,EAElI,OADAtD,GAAKE,OAAOzI,QAAQ,UAAW8iC,GAC3BA,EAAIE,sBACJn3B,EAAE0F,kBACK,GAENuxB,EAAIE,uBAAwBH,GAAgBx4B,EAASqB,sBAQnD,GAPC8F,EAAQ/I,EAAOwH,WACnB1H,EAAK+4B,kBAAoB,GAAItxB,GAAawB,GAC1CnH,EAAS44B,YAAY,WACjB16B,EAAKg5B,gBAAkBF,EAAa54B,EAAQF,EAAK+4B,sBAE9C,IAIftuB,MAAO,SAAUnH,GACb,GAAIxB,GAAW/K,KAAKmJ,OAAO4B,QAE3B,OADA/K,MAAKmJ,OAAOzI,QAAQ,QAAS6L,GACzBxB,EAASqB,sBACTrB,EAASsB,aACF,IAEJ,KAGXpB,EAAmBtJ,EAAMhC,QACzBC,KAAM,SAAUuJ,GACZnJ,KAAKmJ,OAASA,GAElBy6B,UAAW,SAAUxxB,GACjB,GAAIitB,GAAQj2B,EAAIoqB,OAAOxzB,KAAKmJ,OAAOlB,SAAU,IAE7C,OADAmB,GAAIupB,SAASvgB,EAAWitB,EAAO,GACxBA,GAEXwE,cAAe,SAAUxE,GACrB,GAAIntB,GAAQlS,KAAKmJ,OAAOiL,aACxBlC,GAAMuqB,cAAc4C,GACpBntB,EAAMe,UAAS,GACfjT,KAAKmJ,OAAO+J,YAAYhB,GACxB9I,EAAIyE,OAAOwxB,IAEfyE,cAAe,SAAU5xB,GAAV,GAIHghB,GAIAmM,EAPJthB,EAAO7L,EAAM2G,aACb6E,EAAQtU,EAAIssB,sBAAsB3X,EAAM3U,EAAIqU,cAChD,OAAIC,IAASxU,EAASgO,WAAWoqB,QAAQpvB,EAAOwL,IACxCwV,EAAO9pB,EAAI8pB,KAAKxV,GACfwV,GAA0B,KAAlB9pB,EAAInG,KAAKiwB,IAGlBmM,EAAQr/B,KAAK4jC,UAAU1Q,GAC3BlzB,KAAK+jC,OAAOrmB,EAAOwV,GACnBlzB,KAAK6jC,cAAcxE,IACZ,IALI,IAOR,GAEX2E,gBAAiB,SAAU9xB,GAKvB,IALa,GACTG,GAASH,EAAM4G,YACfiF,EAAO7L,EAAMkF,eACbZ,EAAOuH,EAAKhL,UACZ8hB,EAAQ,EACLxiB,EAASwiB,GAAS,GAAiC,UAA5Bre,EAAKnE,EAASwiB,EAAQ,IAChDA,GAEAA,GAAQ,IACR9W,EAAKmR,WAAW7c,EAASwiB,EAAOA,GAChC3iB,EAAMc,SAAS+K,EAAMpQ,KAAKF,IAAI,EAAG4E,EAASwiB,IAC1C3iB,EAAMe,UAAS,GACfjT,KAAKmJ,OAAO+J,YAAYhB,KAGhC+xB,iBAAkB,SAAU/xB,GAAV,GAQNgM,GACAmhB,EAMApO,EAKA7W,EAnBJ2D,EAAO7L,EAAMkF,eACb8sB,EAAK96B,EAAIssB,sBAAsB3X,GAAO,OACtCL,EAAQtU,EAAIssB,sBAAsB3X,EAAM,sBAAsB3M,MAAM,KAIxE,OAHIhI,GAAIglB,WAAWrQ,IACf/d,KAAKgkC,gBAAgB9xB,GAErBwL,GAASA,EAAMyQ,iBAAmBjlB,EAASgO,WAAWmqB,UAAUnvB,EAAOwL,IACnEQ,EAAOR,EAAMyQ,gBACbkR,EAAQr/B,KAAK4jC,UAAUlmB,GAC3B1d,KAAK+jC,OAAO7lB,EAAMR,GAClB1d,KAAK6jC,cAAcxE,IACZ,GAEP6E,GAAMh7B,EAASgO,WAAWmqB,UAAUnvB,EAAOgyB,IACvCjT,EAAQiT,EAAGjmB,WACVgT,IACDiT,EAAGt4B,UAAY1C,EAASzH,oBACxBwvB,EAAQiT,EAAGjmB,YAEX7D,EAAY,GAAIlR,GAASi7B,cAAc/6B,EAAInG,KAAKihC,EAAG3V,YAAa,KACpErc,EAAM0qB,mBAAmBsH,GACzB9pB,EAAUuoB,OAAOzwB,GACb9I,EAAIunB,cAAcM,GAClB/e,EAAMsqB,eAAevL,GAErB/e,EAAMc,SAASie,EAAO,GAE1BjxB,KAAKmJ,OAAO+J,YAAYhB,IACjB,IAEJ,GAEXkyB,iBAAkB,SAAUlyB,GAAV,GAOVmwB,GAIAr1B,EACAisB,EAXAoL,EAAWnyB,EAAM4F,wBACjBwsB,EAAQl7B,EAAII,QAAQ66B,EAAU,SAC9BE,EAAwBr7B,EAASzH,mBA8BrC,OA7BI,gBAAgB4R,KAAKjK,EAAInG,KAAKohC,KAC9BnyB,EAAMmC,WAAWiwB,GAEjBjC,EAAS,GAAIrG,GACjBqG,EAAO3C,IAAIxtB,GAAO,GAClBA,EAAMuqB,cAAc4F,EAAOr1B,OAC3BkF,EAAMwqB,aAAa2F,EAAOpJ,KACtBjsB,EAAQkF,EAAMkF,eACd6hB,EAAM/mB,EAAM2G,aAChB3G,EAAM2qB,iBACFyH,GAA6B,KAApBljC,EAAEkjC,GAAO9tB,SAClBtE,EAAMmC,WAAWiwB,GACjBpyB,EAAM2qB,kBAEVwH,EAAWnyB,EAAM4F,wBACU,MAAvB1O,EAAInG,KAAKohC,IAA4C,KAAvBA,EAASz4B,YACvCy4B,EAASz4B,UAAY24B,EACrBryB,EAAMc,SAASqxB,EAAU,IAE7BrkC,KAAKwkC,MAAMx3B,EAAOisB,GAClB7vB,EAAI0D,YAAY9M,KAAKmJ,OAAOlB,SAAS83B,eAAe,UAAWsC,EAAOr1B,OACtEq1B,EAAOx0B,OAAOqE,GACdlF,EAAQkF,EAAMkF,eACS,MAAnBhO,EAAInG,KAAK+J,KACTA,EAAQA,EAAM2hB,WAAWhhB,KAAKF,IAAI,EAAGyE,EAAM4G,YAAc,IACzD5G,EAAMc,SAAShG,EAAO5D,EAAIslB,cAAc1hB,KAE5CkF,EAAMe,UAAS,GACfjT,KAAKmJ,OAAO+J,YAAYhB,IACjB,GAEXuyB,MAAO,SAAU1mB,GACb,KAAOA,GAAQA,EAAKwQ,YAA2C,QAA7BnlB,EAAInG,KAAK8a,EAAKwQ,aAC5CxQ,EAAOA,EAAKwQ,UAEhB,OAAOxQ,IAEXymB,MAAO,SAAUx3B,EAAOisB,GACpBjsB,EAAQhN,KAAKykC,MAAMz3B,GACnBisB,EAAMj5B,KAAKykC,MAAMxL,GACbjsB,GAASisB,GAAO7vB,EAAI8K,GAAG+kB,EAAK,MAC5Bj5B,KAAK+jC,OAAO/2B,EAAOisB,IAG3B8K,OAAQ,SAAUW,EAAM71B,GAEpB,IADAzF,EAAI4sB,oBAAoB0O,GACjB71B,EAAIoP,YACc,GAAjBymB,EAAK5xB,SACL4xB,EAAK9Q,YAAY/kB,EAAIoP,YAErBymB,EAAKnW,WAAWqF,YAAY/kB,EAAIoP,WAGxC7U,GAAIyE,OAAOgB,IAEfgD,QAAS,SAAUtF,GAAV,GACDo4B,GAAQ3C,EACR9vB,EAAQlS,KAAKmJ,OAAOwH,WACpB4B,EAAUhG,EAAEgG,QACZpQ,EAAO3C,EAAM2C,KACbyiC,EAAYryB,IAAYpQ,EAAKqQ,UAC7BqyB,EAAMtyB,GAAWpQ,EAAKsQ,QACrBmyB,IAAaC,GAAS3yB,EAAMiF,UAEtBytB,EACPD,EAAS,mBACFE,IACPF,EAAS,iBAJTA,EAAS,mBAMRA,IAGL3C,EAAoB,GAAItxB,GAAawB,GACjClS,KAAK2kC,GAAQzyB,KACb3F,EAAE0F,iBACF8vB,EAAa/hC,KAAKmJ,OAAQ64B,MAGlCtuB,MAAOtS,EAAE8Y,OAET/O,EAAgBxJ,EAAMhC,QACtBC,KAAM,SAAUuJ,GACZnJ,KAAKmJ,OAASA,EACdnJ,KAAK8kC,2BAA4B,GAErCC,kBAAmB,WACf/kC,KAAKgiC,kBAAoBhiC,KAAKiiC,gBAAkBF,EAAa/hC,KAAKmJ,OAAQnJ,KAAKgiC,oBAEnFgD,QAAS,WACL,MAAIhlC,MAAKgiC,kBACEhiC,KAAKgiC,kBAAkBzqB,MAAQvX,KAAKmJ,OAAOqG,KAAK5D,WAEpD,GAEXiG,QAAS,SAAUtF,GACf,GAAItD,GAAOjJ,KAAMmJ,EAASF,EAAKE,OAAQ4B,EAAW5B,EAAO4B,QACzD,OAAIA,GAASk6B,cAAc14B,IACnBxB,EAASqB,sBACTrB,EAASsB,WAAU,GAEvBpD,EAAK+4B,kBAAoB,GAAItxB,GAAavH,EAAOwH,aAC1C,GAEP5F,EAASm6B,SAAS34B,IAClBtD,EAAK67B,2BAA4B,EAC7B77B,EAAK+7B,YACL/7B,EAAK67B,2BAA4B,EACjC77B,EAAK87B,sBAEF,IAEJ,GAEXrxB,MAAO,WACH,GAAIzK,GAAOjJ,IACX,OAAIiJ,GAAK67B,2BAA6B77B,EAAK+7B,WACvC/7B,EAAK67B,2BAA4B,EACjC77B,EAAK87B,qBACE,IAEJ,KAGX/5B,EAAWrJ,EAAMhC,QACjBC,KAAM,SAAU2R,GACZvR,KAAKuR,SAAWA,EAChBvR,KAAKmlC,kBAAmB,GAE5BC,YAAa,SAAU7yB,GACnB,MAAOA,IAAW,IAAiB,IAAXA,GAAiBA,GAAW,IAAiB,KAAXA,GAAkBA,GAAW,KAAkB,KAAXA,GAAkBA,GAAW,KAAkB,KAAXA,GAA6B,KAAXA,GAExJY,iBAAkB,SAAU7J,EAAOiD,GAC/B,GAA0ChJ,GAAUE,EAAhDkW,EAAM0rB,OAAOC,aAAa/4B,EAAEgG,QAChC,KAAKhP,IAAY+F,GAMb,GALA7F,EAAcrC,EAAEzB,QACZia,MAAM,EACN2rB,KAAK,EACLC,OAAO,GACRl8B,EAAM/F,GAAU1D,UACd4D,EAAYkW,KAAOA,GAAOlW,EAAYkW,KAAOpN,EAAEgG,UAAY9O,EAAYmW,MAAQrN,EAAEqH,SAAWnQ,EAAY8hC,KAAOh5B,EAAEsH,QAAUpQ,EAAY+hC,OAASj5B,EAAEuH,SACnJ,MAAOvQ,IAInB0R,kBAAmB,SAAU3L,EAAOiD,GAAjB,GAC2BhJ,GAAUwR,EAAG0wB,EAAnD9rB,EAAM0rB,OAAOC,aAAa/4B,EAAEgG,SAAmCmzB,KAC/DC,EAAW,SAAUC,GACrB,MAAOA,IAAWjsB,GAAOisB,GAAWr5B,EAAEgG,QAE1C,KAAKhP,IAAY+F,GACbyL,EAAI3T,EAAEzB,QACFia,MAAM,EACN2rB,KAAK,EACLC,OAAO,GACRl8B,EAAM/F,GAAU1D,SACnB4lC,EAAarkC,EAAEykC,QAAQ9wB,EAAE4E,KAAOvY,EAAE4vB,KAAKjc,EAAE4E,IAAKgsB,GAAU9kC,OAAS,EAAI8kC,EAAS5wB,EAAE4E,KAC5E8rB,GAAc1wB,EAAE6E,MAAQrN,EAAEqH,SAAWmB,EAAEwwB,KAAOh5B,EAAEsH,QAAUkB,EAAEywB,OAASj5B,EAAEuH,UACvE4xB,EAAMvlC,KAAKmJ,EAAM/F,GAGzB,OAAOmiC,IAEXnC,YAAa,SAAUh3B,GACnB,GAAIgG,GAAUhG,EAAEgG,OAChB,OAAOvS,MAAKolC,YAAY7yB,KAAahG,EAAEqH,UAAYrH,EAAEsH,QAAqB,IAAXtB,GAA4B,IAAXA,GAA4B,GAAXA,GAA2B,IAAXA,IAAkBhG,EAAEuH,WAAavH,EAAEqH,UAAYrH,EAAEsH,QAEtKoxB,cAAe,SAAU14B,GACrB,GAAIgG,GAAUhG,EAAEgG,OAChB,OAAkB,KAAXA,IAAkBhG,EAAEuH,WAAavH,EAAEsH,QAAqB,IAAXtB,IAAkBhG,EAAEqH,UAAYrH,EAAEsH,QAAqB,IAAXtB,IAAkBhG,EAAEqH,UAAYrH,EAAEuH,UAEtIoxB,SAAU,SAAU34B,GAChB,MAAoB,KAAbA,EAAEgG,SAAiBhG,EAAEqH,UAAYrH,EAAEsH,SAAWtH,EAAEuH,UAE3D6vB,YAAa,SAAUzF,GACnBl+B,KAAK8lC,YAAc5H,EACnBl+B,KAAKmlC,kBAAmB,GAE5BY,WAAY,WACJ/lC,KAAKmlC,kBAAoBnlC,KAAK8lC,aAC9B9lC,KAAK8lC,cAET9lC,KAAKmlC,kBAAmB,GAE5B94B,UAAW,SAAU25B,GACjB,GAAI/8B,GAAOjJ,IACXiJ,GAAKuK,eACDwyB,EACA/8B,EAAK88B,aAEL98B,EAAKg9B,QAAUvkC,OAAO2I,WAAWjJ,EAAEc,MAAM+G,EAAK88B,WAAY98B,GAAO,MAGzEmD,mBAAoB,WAChB,MAAOpM,MAAKmlC,kBAEhB3xB,aAAc,WACV9R,OAAO8R,aAAaxT,KAAKimC,UAE7B/5B,OAAQ,SAAUK,EAAG25B,GACjB,GAAI/iC,GAAGoO,EAAWvR,KAAKuR;AACvB,IAAKpO,EAAI,EAAOoO,EAAS1Q,OAAbsC,IACJoO,EAASpO,GAAG+iC,GAAM35B,GADOpJ,OAMrC0O,QAAS,SAAUtF,GACfvM,KAAKkM,OAAOK,EAAG,YAEnBmH,MAAO,SAAUnH,GACbvM,KAAKkM,OAAOK,EAAG,YAGnBlB,EAAY1J,EAAMhC,QAClBC,KAAM,SAAUuJ,GACZnJ,KAAKmJ,OAASA,CACd,IAAIuM,GAAevM,EAAOtJ,QAAQ6V,YAClC1V,MAAKmmC,UACD,GAAIC,GAAc1wB,GAClB,GAAI2wB,GAAW3wB,GACf,GAAI4wB,GAAoB5wB,GACxB,GAAI6wB,GAAoB7wB,GACxB,GAAI8wB,GAAgB9wB,GACpB,GAAI+wB,GAAgB/wB,GACpB,GAAIgxB,GAAmBhxB,GACvB,GAAIixB,GAAcjxB,KAG1BkxB,eAAgB,SAAUrvB,GACtB,GAAIpO,GAASnJ,KAAKmJ,OAAQsF,EAAMtF,EAAOlB,SAAUmK,EAAYhJ,EAAIoqB,OAAO/kB,EAAK,OAAQo4B,EAAWp4B,EAAI2uB,wBAEpG,KADAhrB,EAAUxG,UAAY2L,EACfnF,EAAU6L,YACb4oB,EAASjT,YAAYxhB,EAAU6L,WAEnC,OAAO4oB,IAEXlV,QAAS,SAAUpa,GACf,MAAO,+BAA+BlE,KAAKkE,IAE/CuvB,mBAAoB,WAAA,GACZ50B,GACAkwB,EACAj5B,EAASnJ,KAAKmJ,MAClB,KAAInJ,KAAK+mC,YAOT,MAJA/mC,MAAK+mC,aAAc,EACnB70B,EAAQ/I,EAAOwH,WACfyxB,EAAe,GAAI1xB,GAAawB,GAChC9I,EAAIqpB,iBAAiBtpB,EAAOlB,WAExBiK,MAAOA,EACPkwB,aAAcA,IAGtB4E,iBAAkB,SAAUC,GACxBlF,EAAa/hC,KAAKmJ,OAAQ89B,EAAiB7E,cAC3CpiC,KAAKmJ,OAAOqD,mBACZxM,KAAK+mC,aAAc,GAEvBG,qBAAsB,SAAUC,EAAQC,GAAlB,GACdn+B,GAAOjJ,KACPmJ,EAASF,EAAKE,OACd89B,EAAmBh+B,EAAK69B,oBACvBG,KAGLE,EAAOpnC,KAAKkJ,EAAME,EAAQ89B,EAAiB/0B,OAC3C7H,WAAW,WACP+8B,EAAMrnC,KAAKkJ,EAAME,EAAQ89B,EAAiB/0B,OAC1CjJ,EAAK+9B,iBAAiBC,OAG9BI,gBAAiB,SAAUn1B,GAAV,GAEJ/O,GADLkX,EAAQnR,EAASgO,WAAWF,UAAU9E,EAC1C,KAAS/O,EAAI,EAAOkX,EAAMxZ,OAAVsC,EAAkBA,IAC9BkX,EAAMlX,GAAG4P,UAAY3J,EAAIonB,SAASnW,EAAMlX,GAAG4P,YAGnDu0B,cAAe,SAAUp1B,GACrB,GAAImwB,GAAS,GAAIrG,EACjBqG,GAAO3C,IAAIxtB,GACXlS,KAAKqnC,gBAAgBn1B,GACrBmwB,EAAOx0B,OAAOqE,GACdlS,KAAKmJ,OAAO+J,YAAYhB,IAE5Bq1B,OAAQ,WACJvnC,KAAKsnC,cAActnC,KAAKmJ,OAAOwH,aAEnC62B,MAAO,WACHxnC,KAAKsnC,cAActnC,KAAKmJ,OAAOwH,YAC/B3Q,KAAKknC,qBAAqB9lC,EAAE8Y,KAAM9Y,EAAE8Y,OAExCutB,eAAgB,SAAUC,GAAV,GACRC,GAAWvmC,EAAE8Z,WACb0sB,EAAS,GAAIC,WAMjB,OALMH,aAAgBhmC,QAAOomC,OAASJ,EAAKK,YACvCL,EAAOA,EAAKK,aAEhBH,EAAOI,OAAS5mC,EAAEc,MAAMylC,EAAS7rB,QAAS6rB,GAC1CC,EAAOK,cAAcP,GACdC,EAASxsB,WAEpB+sB,cAAe,SAAU3wB,EAAM1X,GAC3B,GAAIub,IAAS7D,KAAMA,GAAQ,GAC3B6D,GAAK7D,KAAO6D,EAAK7D,KAAK5L,QAAQ,UAAW,IACzC3L,KAAKmJ,OAAOzI,QAAQ,QAAS0a,GAC7Bpb,KAAKkZ,MAAMkC,EAAK7D,KAAM1X,QAE1BsoC,kBAAmB,SAAU57B,GAAV,GAIX67B,GACAhsB,EAIAisB,EAGA9wB,EAMA0vB,CAjBJ,IAAM,cAAgBvlC,UAGlB0mC,EAAgB77B,EAAE67B,eAAiB77B,EAAE+7B,cAAcF,eAAiB1mC,OAAO0mC,kBAC3EhsB,EAAQgsB,EAAchsB,OAASgsB,EAAcG,MAC5CnsB,IAGDisB,EAASjnC,EAAE4vB,KAAK5U,EAAO,SAAUsiB,GACjC,MAAO,YAAYrrB,KAAKqrB,EAAK31B,QAE7BwO,EAAOnW,EAAE4vB,KAAK5U,EAAO,SAAUsiB,GAC/B,MAAO,eAAerrB,KAAKqrB,EAAK31B,SAEhCwO,EAAK1W,QAAWwnC,EAAOxnC,SAGvBomC,EAAmBjnC,KAAK8mC,wBAY5B,MARA1lC,GAAEonC,KAAKlT,MAAMl0B,EAAGA,EAAEwO,IAAIy4B,EAAQroC,KAAKynC,iBAAiBjsB,KAAKpa,EAAEc,MAAM,WAAA,GACzDumC,GAAUC,MAAMhuB,UAAUpa,MAAMP,KAAK+0B,WACrCvd,EAAOnW,EAAEwO,IAAI64B,EAAS,SAAUl8B,GAChC,MAAO,aAAeA,EAAEyH,OAAOud,OAAS,SACzCzhB,KAAK,GACR9P,MAAKkoC,cAAc3wB,GACnBvX,KAAKgnC,iBAAiBC,IACvBjnC,QACI,GAEX2oC,QAAS,SAAUp8B,GACf,MAAIvM,MAAKmoC,kBAAkB57B,OACvBA,GAAE0F,qBAGNjS,MAAKknC,qBAAqB,SAAqB/9B,EAAQ+I,GAA7B,GASd02B,GAGAlO,EAMAmO,EAjBJC,EAAgB1/B,EAAIoqB,OAAOrqB,EAAOlB,SAAU,OAC5C2oB,UAAW,oBACXhlB,UAAW,WAEX3J,EAAUzC,EAAMuC,QAAQE,OAC5BkH,GAAOqG,KAAKokB,YAAYkV,GACpB7mC,EAAQ2U,MAA0B,GAAlB3U,EAAQsY,SACxBhO,EAAE0F,iBACE22B,EAAIz/B,EAAOiL,cACfw0B,EAAEhM,mBAAmBkM,GACrB3/B,EAAO+J,YAAY01B,GACflO,EAAYvxB,EAAOlB,SAASuH,KAAK6rB,kBACrCX,EAAUY,kBAAkBwN,GAC5B1nC,EAAE+H,EAAOqG,MAAMu5B,OAAO,SACtBrO,EAAUhpB,YAAY,SACtBtQ,EAAE+H,EAAOqG,MAAMw5B,KAAK,QAAS5nC,EAAEc,MAAMlC,KAAK2oC,QAAS3oC,SAE/C6oC,EAAiB1/B,EAAOiL,cAC5By0B,EAAejM,mBAAmBkM,GAClC3/B,EAAO+J,YAAY21B,IAEvB32B,EAAM2qB,kBACP,SAAoB1zB,EAAQ+I,GAC3B,GAAe+2B,GAAX1xB,EAAO,EACXpO,GAAO+J,YAAYhB,GACnB+2B,EAAa7nC,EAAE+H,EAAOqG,MAAMwK,SAAS,sBACrCivB,EAAWhS,KAAK,WACZ,GAAIzF,GAAYxxB,KAAKwxB,SACjBA,IAAapoB,EAAI8K,GAAGsd,EAAW,OAC/BpoB,EAAIyE,OAAO2jB,GAEfja,GAAQvX,KAAK4L,YAEjBq9B,EAAWp7B,SACX7N,KAAKkoC,cAAc3wB,GAAQ2xB,OAAO,OAG1CC,iBAAkB,SAAUzrB,EAAOK,GAC/B,GAAIwQ,GAAY/e,CAChB,IAAIkO,EACA,MAAOtU,GAAIssB,sBAAsB3X,GAC7B,IACA,KACA,QACEA,EAAKwQ,UAIf,IAFAA,EAAaxQ,EAAKwQ,WAClB/e,EAAOuO,EAAKyR,cAAchgB,KACtBpG,EAAIyoB,SAAStD,GACb,KAAOA,EAAWA,YAAc/e,IAASpG,EAAIuoB,QAAQpD,EAAWA,aAC5DA,EAAaA,EAAWA,UAGhC,OAAOA,IAEXrV,MAAO,SAAU3B,EAAM1X,GAAhB,GACuBsD,GAAGu0B,EAezBha,EAEAxL,EAKAmwB,EACAhD,EACArhB,EACA+V,EACAqV,EAMAvC,EAEIwC,EAoBJC,EAtDAngC,EAASnJ,KAAKmJ,MAKlB,KAJAtJ,EAAUF,GACNupC,OAAO,EACP93B,OAAO,GACRvR,GACEsD,EAAI,EAAGu0B,EAAI13B,KAAKmmC,SAAStlC,OAAY62B,EAAJv0B,EAAOA,IACrCnD,KAAKmmC,SAAShjC,GAAGomC,WAAWhyB,KAC5BA,EAAOvX,KAAKmmC,SAAShjC,GAAG+lC,MAAM3xB,GA0BtC,IAvBI1X,EAAQqpC,QACR3xB,EAAOA,EAAK5L,QAAQ,8CAA+C,MACnE4L,EAAOA,EAAK5L,QAAQ,0BAA2B,KAEnD4L,EAAOA,EAAK5L,QAAQ,QAAS,WAAWA,QAAQ,QAAS,YACrD+R,EAAQ1d,KAAK2xB,QAAQpa,GACzBpO,EAAO4I,QACHG,EAAQ/I,EAAOwH,WACnBuB,EAAM2qB,iBACF3qB,EAAMkF,gBAAkBjO,EAAOlB,UAC/BiK,EAAM0qB,mBAAmBzzB,EAAOqG,MAEhC6yB,EAAS,GAAIrG,GACbqD,EAAQgD,EAAO/C,SAASptB,GACxB8L,EAAShe,KAAKmpC,iBAAiBzrB,EAAO2hB,GACtCtL,GAAS,EACTqV,EAAaprB,GAAU7U,EAAOqG,OAASpG,EAAI8K,GAAG8J,EAAQ,MACtDne,EAAQuR,OAASg4B,IAAe1rB,GAAStU,EAAIyoB,SAAS7T,MACtD9L,EAAMmC,WAAWgrB,GACjBn2B,EAASgO,WAAW9F,MAAMc,EAAO8L,GAAQ,GACzC+V,GAAS,GAET8S,EAAW7mC,KAAK4mC,eAAervB,GAC/BsvB,EAAS5oB,YAAgD,sBAAlC4oB,EAAS5oB,WAAW2S,UAAmC,CAE9E,IADIyY,KACClmC,EAAI,EAAGu0B,EAAImP,EAASlY,WAAW9tB,OAAY62B,EAAJv0B,EAAOA,IAC/CkmC,EAAclpC,KAAK0mC,EAASlY,WAAWxrB,GAAGyI,UAE9Ci7B,GAAW7mC,KAAK4mC,eAAeyC,EAAcv5B,KAAK,WAKtD,GAHA1O,EAAEylC,EAASlY,YAAYgH,OAAO,SAAS5rB,SAAS,WAAWkvB,MAAMrvB,KAAK,SAASG,SAAS,WACxFmI,EAAMsrB,WAAWqJ,GACjB7oB,EAAShe,KAAKmpC,iBAAiBzrB,EAAO2hB,GAClCtL,EAAQ,CACR,KAAOsL,EAAM9Q,YAAcvQ,GACvB5U,EAAI2qB,OAAOsL,EAAM9Q,WAErBnlB,GAAI2qB,OAAOsL,EAAM9Q,YAErBnlB,EAAI0U,UAAU5L,EAAM4F,yBACpBunB,EAAMv5B,MAAM0jC,QAAU,SACtBpgC,EAAIspB,iBAAiBvpB,EAAOlB,UAC5BmB,EAAI6oB,SAASoN,GACbgD,EAAO9C,YAAYrtB,GACfo3B,EAAWp3B,EAAM4F,wBAAwByW,WACzCrc,EAAMiF,WAAmC,SAAtB/N,EAAInG,KAAKqmC,KAC5Bp3B,EAAMuqB,cAAcr7B,EAAEkoC,GAAU9/B,QAAQ,SAAS,IACjD0I,EAAMe,UAAS,IAEnB9J,EAAO+J,YAAYhB,MAGvBu3B,EAAU9nC,EAAMhC,QAChBC,KAAM,SAAUC,GACZG,KAAKH,QAAUA,MACfG,KAAK0pC,iBAETR,MAAO,SAAU3xB,EAAMoyB,GACnB,GAAyExmC,GAAGu0B,EAAxEzuB,EAAOjJ,KAAM0pC,EAAeC,GAAsB1gC,EAAKygC,YAC3D,KAAKvmC,EAAI,EAAGu0B,EAAIgS,EAAa7oC,OAAY62B,EAAJv0B,EAAOA,GAAK,EAC7CoU,EAAOA,EAAK5L,QAAQ+9B,EAAavmC,GAAIumC,EAAavmC,EAAI,GAE1D,OAAOoU,MAGX6uB,EAAgBqD,EAAQ9pC,QACxBC,KAAM,SAAUC,GACZ4pC,EAAQ3pC,GAAGF,KAAKG,KAAKC,KAAMH,GAC3BG,KAAK0pC,cACD,wBACA,yBAGRH,WAAY,SAAUhyB,GAClB,OAAQvX,KAAKH,QAAQmW,MAAQ,iBAAiB3C,KAAKkE,MAGvD8uB,EAAaoD,EAAQ9pC,QACrBC,KAAM,SAAUC,GACZ4pC,EAAQ3pC,GAAGF,KAAKG,KAAKC,KAAMH,EAC3B,IAAI+pC,GAAc,GAClB5pC,MAAK0pC,cACD,oDACAE,EACA,OACAA,EACA,wBACAA,IAGRL,WAAY,SAAUhyB,GAClB,MAAO,8CAA8ClE,KAAKkE,MAG9D+uB,EAAsBmD,EAAQ9pC,QAC9BC,KAAM,SAAUC,GACZ4pC,EAAQ3pC,GAAGF,KAAKG,KAAKC,KAAMH,GAC3BG,KAAK6pC,kBACD,iBACA,GACA,mBACA,GACA,UACA,IACA,uBACA,SACA,yFACA,GACA,SACA,IAEJ7pC,KAAK0pC,aAAe1pC,KAAK6pC,iBAAiBpzB,QACtC,+LACA,KACA,YACA,WACA,cACA,IACA,iCACA,cACA,gCACA,GACA,sCACA,GACA,sCACA,GACA,YACA,OACA,kBACA,GACA,4BACA,GACA,iBACA,GACA,uBACA,eACA,0BACAzW,KAAK8pC,iBACL,uBACA,WACA,sBACA,GACA,kBACA,SAAUC,EAAIC,GACV,MAAOA,GAAKD,EAAK,QAI7BD,iBAAkB,SAAU/S,EAAOkT,EAAS7uB,GAA1B,GACV8uB,GAAS,yBACTnQ,EAAOmQ,EAAO52B,KAAK8H,GACnB+uB,EAAS/uB,GAAQ2e,GAAQA,EAAK,EAClC,OAAIkQ,GACO,UACAE,EACA,4BAA8BA,EAAS,KAEvC,UAGfZ,WAAY,SAAUhyB,GAClB,MAAO,eAAelE,KAAKkE,IAAS,oBAAoBlE,KAAKkE,IAAS,mCAAmClE,KAAKkE,IAElH6yB,kBAAmB,SAAU7yB,GACzB,MAAOA,GAAK5L,QAAQ,uBAAwB,SAAU4sB,EAAGnJ,GACrD,OAAKA,GAAcA,EAAWzkB,QAAQ,QAAU,EACrC,GAEJ4tB,KAGf8R,SAAU,SAAUnT,EAAGoT,GAAb,GAGFC,GAFAhzB,EAAO2f,EAAEtrB,UACT4K,EAAOpN,EAAIkrB,UAAU4C,GAErBsT,EAAcjzB,EAAKwf,MAAM,+EACzB0T,EAASD,GAAeA,EAAY,GACpCE,EAAW,YAAYr3B,KAAKo3B,GAC5BE,EAAgB,SAAUn0B,GAC1B,MAAOA,GAAK7K,QAAQ,8BAA+B,IAMvD,OAJI6+B,KACAD,GAAiB,GAErBhzB,EAAOA,EAAK5L,QAAQ,iBAAkB,IAAIA,QAAQ,UAAW,MACxD4+B,GAAkB,sCAAsCl3B,KAAKkE,IAASgzB,GAAkB,YAAYl3B,KAAKkE,IAASkzB,IAAWC,GAAYJ,GAEtItX,IAAK,KACLltB,MAAO9F,KAAK4qC,yBAAyBD,EAAcn0B,KAGvD,6BAA6BnD,KAAKkE,IAE9Byb,IAAK,KACLltB,MAAO9F,KAAK6qC,uBAAuBF,EAAcn0B,KAHzD,QAOJs0B,aAAc,SAAU5T,GACpB,GAAIrqB,EAgBJ,OAf2B,IAAvBqqB,EAAEvI,WAAW9tB,OACbgM,EAAUqqB,EAAEjZ,WAAWrS,UAAUD,QAAQ,uBAAwB,KAEjEvC,EAAIyE,OAAOqpB,EAAEjZ,YACgB,GAAzBiZ,EAAEjZ,WAAWnL,UACT,kBAAkBO,KAAK6jB,EAAEjZ,WAAWlL,YACpC3J,EAAIyE,OAAOqpB,EAAEjZ,YAGjB,kBAAkB5K,KAAK6jB,EAAEjZ,WAAWrS,YACpCxC,EAAIyE,OAAOqpB,EAAEjZ,YAEjBpR,EAAUqqB,EAAEtrB,WAEhBxC,EAAIyE,OAAOqpB,GACJ9tB,EAAIoqB,OAAOvrB,SAAU,MAAQ2D,UAAWiB,KAEnD+9B,yBAA0B,SAAUH,GAChC,MAAI,sCAAsCp3B,KAAKo3B,GACpC,KACA,KAAKp3B,KAAKo3B,GACV,SAEA,UAGfI,uBAAwB,SAAUJ,GAC9B,GAAIJ,GAAW,IAIf,OAHK,MAAMh3B,KAAKo3B,KACZJ,GAAY,SAASh3B,KAAKo3B,GAAU,SAAW,WAAa,cAAcp3B,KAAKo3B,GAAU,QAAU,UAEhGJ,GAEXU,kBAAmB,SAAUxzB,GACzB,GAAIyzB,GAAgB,uEAIpB,OAHAzzB,GAAOA,EAAK5L,QAAQq/B,EAAe,SAAUjU,EAAOkU,EAAMC,GACtD,MAAO1rC,GAAM0D,OAAO,uCAAwC+nC,EAAMC,EAAOnU,MAIjFxuB,MAAO,SAAU4iC,GAAV,GACoFloC,GAAqCmoC,EAAYC,EAAeloC,EAAG+zB,EAAGnuB,EAAMuiC,EAAQL,EAAMX,EAIzKiB,EAKAlB,EAeAmB,EAxBJC,EAAgBrqC,EAAE+pC,GAAavhC,KAAKR,EAAIqU,cAAc3N,KAAK,MAAO47B,EAAa,GAAUC,KAAazH,EAAKiH,CAC/G,KAAKhoC,EAAI,EAAOsoC,EAAc5qC,OAAlBsC,EAA0BA,IAClC+zB,EAAIuU,EAActoC,GAClBmnC,EAAWlpC,EAAE81B,GAAG7I,OACZkd,EAAYjB,EAASW,KACzBhoC,EAAOmG,EAAInG,KAAKi0B,GACJ,MAARj0B,IAGAonC,EAAWrqC,KAAKqqC,SAASnT,EAAGoT,GAChCvhC,EAAOshC,GAAYA,EAASrX,IACvBjqB,GAAgB,KAAR9F,GASbqoC,EAASM,WAAW1U,EAAEpxB,MAAM+lC,YAAc,GACvBxqC,SAAf+pC,IACAA,EAAaE,GAEbE,EAAYziC,EAAOwiC,EAClBI,EAAOL,KACRK,EAAOL,OAEXL,EAAOU,EAAOL,GAAQE,IAClBF,EAASI,IAAeT,KACxBA,EAAO7hC,EAAIoqB,OAAOvrB,SAAUc,GAAQjD,OAASgmC,cAAezB,EAASvkC,SACjEo+B,GAAMiH,GAAyBO,GAAVJ,GACjBD,GAAiBD,IAAeE,EAChCD,EAAczX,YAAYqX,GAE1B7hC,EAAIa,aAAaghC,EAAM/T,GAE3ByU,EAAOL,QAEPD,EAAgBnH,EAChBA,EAAGtQ,YAAYqX,IAEnBU,EAAOL,GAAQE,GAAaP,GAEhC/G,EAAKlkC,KAAK8qC,aAAa5T,GACvB+T,EAAKrX,YAAYsQ,GACjBwH,EAAaJ,GAlCJpU,EAAEtrB,WAGH8/B,EAAa,GACbxH,EAAKiH,GAHL/hC,EAAIyE,OAAOqpB,KAoC3B6U,iBAAkB,SAAUpjC,GAExB,IADA,GAAIymB,GAAazmB,EAAQymB,WAAYjsB,EAAIisB,EAAWvuB,OAC7CsC,KAC4B,WAA3BiG,EAAInG,KAAKmsB,EAAWjsB,KACpBwF,EAAQqjC,oBAAoB5c,EAAWjsB,KAInD8oC,eAAgB,SAAUC,GAAV,GACRC,GAAQD,EAAIC,MACZ7H,EAAQljC,EAAE8qC,GAAK1iC,QAAQ,SACvB4iC,EAAW9H,EAAMtqB,SAAS,WACX,GAAfmyB,EAAMtrC,SAECurC,EAASvrC,SAChBsrC,EAAQC,EAASpyB,WACjBoyB,EAAS,GAAG7d,WAAWmC,YAAY0b,EAAS,KAEhDA,EAAWhrC,EAAEA,EAAEwO,IAAIu8B,EAAO,SAAUE,GAChC,GAAIt+B,GAAQs+B,EAAKt+B,KACjB,OAAIA,IAAiC,IAAxBtD,SAASsD,EAAO,IAClBvO,EAAM0D,OAAO,8BAA+B6K,GAEhD,YACR+B,KAAK,KACHs8B,EAASl4B,GAAG,cACbk4B,EAAWhrC,EAAE,eAAe+L,OAAOi/B,IAEvCA,EAASE,UAAUhI,KAEvBiI,eAAgB,SAAUL,GACtB,GAAuB/oC,GAAnBgpC,EAAQD,EAAIC,MAAUK,EAAcprC,EAAEwO,IAAIu8B,EAAO,SAAUE,GACvD,GAAIpb,GAAQ7vB,EAAEirC,GAAMryB,SAAS,KAAKA,SAAS,UAAU,EACrD,OAAIiX,IAA4B,UAAnB7nB,EAAInG,KAAKguB,GACXA,EADX,QAIR,IAAIub,EAAY3rC,QAAUsrC,EAAMtrC,OAAQ,CACpC,IAAKsC,EAAI,EAAOqpC,EAAY3rC,OAAhBsC,EAAwBA,IAChCiG,EAAI2qB,OAAOyY,EAAYrpC,GAG3B,KADA/B,EAAE8qC,GAAK1iC,QAAQ,SAASI,KAAK,YAAYw9B,MAAM,mBAAmBnO,MAAMrvB,KAAK,SAASuD,OAAO++B,GACxF/oC,EAAI,EAAOgpC,EAAMtrC,OAAVsC,EAAkBA,IAC1BiG,EAAIgqB,UAAU+Y,EAAMhpC,GAAI,QAIpCspC,iBAAkB,SAAUN,GACxB,GAAIhpC,GAAGyxB,EAAGvY,EAAKgwB,EAAMK,CACrB,KAAKvpC,EAAI,EAAOgpC,EAAMtrC,OAAVsC,EAAkBA,IAI1B,IAHAnD,KAAK+rC,iBAAiBI,EAAMhpC,IAC5BkpC,EAAOjrC,EAAE+qC,EAAMhpC,IACfupC,EAAaL,EAAKryB,SAAS,KACtB4a,EAAI,EAAGvY,EAAMqwB,EAAW7rC,OAAYwb,EAAJuY,EAASA,IAClCvY,EAAM,EAAVuY,GACAxrB,EAAI0D,YAAY1D,EAAIoqB,OAAOvrB,SAAU,MAAOykC,EAAW9X,IAE3DxrB,EAAI2qB,OAAO2Y,EAAW9X,KAIlC+X,oBAAqB,SAAUC,GAC3B,IAAK,GAAIzpC,GAAI,EAAOypC,EAAM/rC,OAAVsC,EAAkBA,IAC1B,yBAAyBkQ,KAAKu5B,EAAMzpC,GAAG2C,MAAM4tB,UAC7CtqB,EAAI2qB,OAAO6Y,EAAMzpC,KAI7BuF,OAAQ,SAAUyiC,GACd,GAAwD0B,GAAMC,EAAUC,EAAY5pC,EAAGyxB,EAAnFlsB,EAAStH,EAAE+pC,GAAavhC,KAAK,SAAUX,EAAOjJ,IAClD,KAAKmD,EAAI,EAAOuF,EAAO7H,OAAXsC,EAAmBA,IAAK,CAGhC,IAFA0pC,EAAOnkC,EAAOvF,GAAG0pC,KACjBE,EAAaD,EAAWD,EAAK,GACxBjY,EAAI,EAAOiY,EAAKhsC,OAAT+zB,EAAiBA,IACrBiY,EAAKjY,GAAGuX,MAAMtrC,OAASksC,EAAWZ,MAAMtrC,SACxCksC,EAAaF,EAAKjY,GAG1B3rB,GAAKgjC,eAAec,GACpB9jC,EAAKsjC,eAAeO,GACpB7jC,EAAK8iC,iBAAiBrjC,EAAOvF,IAC7B8F,EAAKwjC,iBAAiB/jC,EAAOskC,GAAG7pC,GAAGyG,KAAK,UACxCX,EAAK0jC,oBAAoBjkC,EAAOskC,GAAG7pC,GAAGyG,KAAK,WAGnDqjC,QAAS,SAAU9B,GAAV,GAEIhoC,GADL+pC,EAAS9rC,EAAE+pC,GAAavhC,KAAK,aACjC,KAASzG,EAAI,EAAO+pC,EAAOrsC,OAAXsC,EAAmBA,IAC/BiG,EAAIgqB,UAAU8Z,EAAO/pC,GAAI,OAGjCgqC,iBAAkB,SAAUhC,GACxB/pC,EAAE+pC,GAAavhC,KAAK,KAAKwE,KACrB5I,SAAU,GACVm0B,WAAY,MAGpBuP,MAAO,SAAU3xB,GAAV,GACc4zB,GAAbliC,EAAOjJ,KACPotC,EAAUptC,KAAKH,OAmBnB,OAlBIutC,GAAQp3B,MACRuB,EAAOkyB,EAAQ3pC,GAAGopC,MAAMnpC,KAAKkJ,EAAMsO,EAAMvX,KAAK6pC,kBAC9CtyB,EAAOtO,EAAKmhC,kBAAkB7yB,KAE9BA,EAAOvX,KAAK+qC,kBAAkBxzB,GAC9BA,EAAOkyB,EAAQ3pC,GAAGopC,MAAMnpC,KAAKkJ,EAAMsO,GACnCA,EAAOtO,EAAKmhC,kBAAkB7yB,GAC9B4zB,EAAc/hC,EAAIoqB,OAAOvrB,SAAU,OAAS2D,UAAW2L,IACvDtO,EAAKgkC,QAAQ9B,GACTiC,EAAQt3B,gBACR7M,EAAKV,MAAM4iC,GAEfliC,EAAKP,OAAOyiC,GACRiC,EAAQv3B,iBACR5M,EAAKkkC,iBAAiBhC,GAE1B5zB,EAAO4zB,EAAYv/B,UAAUD,QAAQ,kCAAmC,OAErE4L,KAGXgvB,EAAsBkD,EAAQ9pC,QAC9BC,KAAM,SAAUC,GACZ4pC,EAAQ3pC,GAAGF,KAAKG,KAAKC,KAAMH,GAC3BG,KAAK0pC,cACD,qCACA,GACA,oCACA,MACA,qBACA,OAGRH,WAAY,SAAUhyB,GAClB,MAAO,0DAA0DlE,KAAKkE,MAG1E81B,EAAa5D,EAAQ9pC,QACrBupC,MAAO,SAAU3xB,GACb,GAAInF,GAAYhJ,EAAIoqB,OAAOvrB,SAAU,OAAS2D,UAAW2L,GAEzD,OADAnF,GAAYpS,KAAKstC,SAASl7B,GACnBA,EAAUxG,WAErB0hC,SAAU,SAAUl7B,GAChB,MAAOA,MAGXo0B,EAAkB6G,EAAW1tC,QAC7B2tC,SAAU,SAAUl7B,GAChB,GAAI/O,GAAOrD,KAAKutC,aAIhB,OAHAnsC,GAAEgR,GAAWxI,KAAKvG,GAAM4zB,KAAK,WACzB7tB,EAAI2qB,OAAO/zB,QAERoS,GAEXm7B,YAAa,WACT,MAAIvtC,MAAKH,QAAQoW,KACN,OADX,QAIJszB,WAAY,WACR,MAAOvpC,MAAKH,QAAQoW,QAGxBwwB,EAAkB4G,EAAW1tC,QAC7B2tC,SAAU,SAAUl7B,GAAV,GACFgd,GAAapvB,KAAKwtC,cAClBnzB,EAAQjZ,EAAEgR,GAAWxI,KAAK,IAAMwlB,EAAWtf,KAAK,OAAS,IAE7D,OADAuK,GAAMozB,WAAWre,EAAWtf,KAAK,MAC1BsC,GAEXo7B,YAAa,WACT,MAAIxtC,MAAKH,QAAQuO,KAET,QACA,aAKZm7B,WAAY,WACR,MAAOvpC,MAAKH,QAAQuO,OAGxBs/B,EAAgB,WAChB1tC,KAAKwW,KAAO,GACZxW,KAAK0/B,IAAM,SAAUlpB,GACjBxW,KAAKwW,MAAQA,IAGjBm3B,EAAgBhsC,EAAMhC,QACtBC,KAAM,SAAUguC,GACZ5tC,KAAK4tC,WAAaA,IACdp3B,KAAM,IACNq3B,KAAM,SAEV7tC,KAAK8tC,SACL9tC,KAAK+tC,mBACL/tC,KAAKguC,aAETC,WAAY,SAAUz3B,GACI,IAAlBA,EAAK1D,WACL0D,EAAOA,EAAKzD,WAEhB/S,KAAKkuC,cAAcxO,IAAIlpB,IAE3B23B,sBAAuB,SAAU33B,GAC7BxW,KAAK+tC,gBAAgB5tC,KAAKqW,IAE9B43B,qBAAsB,WACdpuC,KAAK+tC,gBAAgBltC,SACrBb,KAAKiuC,WAAWjuC,KAAK+tC,gBAAgBj+B,KAAK,MAC1C9P,KAAK+tC,qBAGbM,QAAS,WACLruC,KAAKouC,uBACLpuC,KAAKguC,aAETz2B,KAAM,WAAA,GAKOpU,GAAOmrC,EAAmBC,EAC3BV,EACKjZ,EAAO4Z,EAAkBC,EAC1Bj4B,EAPRo3B,EAAa5tC,KAAK4tC,WAClBrc,EAAS,GACTuc,EAAQ9tC,KAAK8tC,KAEjB,KADA9tC,KAAKouC,uBACIjrC,EAAI,EAAGmrC,EAAKR,EAAMjtC,OAAQ0tC,EAAMD,EAAK,EAAOA,EAAJnrC,EAAQA,IAAK,CAE1D,IADI0qC,EAAOC,EAAM3qC,GACRyxB,EAAI,EAAG4Z,EAAKX,EAAKhtC,OAAQ4tC,EAAMD,EAAK,EAAOA,EAAJ5Z,EAAQA,IAChDpe,EAAOq3B,EAAKjZ,GAAGpe,KACnB+a,GAAU/a,EACNoe,IAAM6Z,IACNld,GAAUqc,EAAWp3B,KAGzBrT,KAAMorC,IACNhd,GAAUqc,EAAWC,MAG7B,MAAOtc,IAEXyc,UAAW,WACPhuC,KAAKkuC,cAAgB,GAAIR,GACzB1tC,KAAK6tC,QACL7tC,KAAK6tC,KAAK1tC,KAAKH,KAAKkuC,eACpBluC,KAAK8tC,MAAM3tC,KAAKH,KAAK6tC,SAGzBa,EAAgB/sC,EAAMhC,QACtBC,KAAM,SAAUs+B,GACZl+B,KAAKk+B,SAAWA,GAEpBS,UAAW,SAAU5gB,GAAV,GAIH4wB,GACA1d,CAJClT,KAGD4wB,EAAc3uC,KAAKk+B,SAASngB,GAC5BkT,EAAQlT,EAAKE,YACZ0wB,GAAe1d,GAChBjxB,KAAK2+B,UAAU1N,GAEnBjxB,KAAK2+B,UAAU5gB,EAAKI,iBAGxBuoB,EAAqB+C,EAAQ9pC,QAC7BC,KAAM,SAAUC,GACZ4pC,EAAQ3pC,GAAGF,KAAKG,KAAKC,KAAMH,GAC3BG,KAAK4uC,SAAU,EACf5uC,KAAK6uC,WAAa,GAAIH,GAActtC,EAAEc,MAAMlC,KAAK8uC,UAAW9uC,QAEhEkpC,MAAO,SAAU3xB,GACb,GAAInF,GAAYhJ,EAAIoqB,OAAOvrB,SAAU,OAAS2D,UAAW2L,GACzD,OAAOvX,MAAKstC,SAASl7B,IAEzBk7B,SAAU,SAAUl7B,GAKhB,MAJApS,MAAK4tC,WAAa5tC,KAAK+uC,uBACvB/uC,KAAKgvC,UAAY,GAAIrB,GAAc3tC,KAAK4tC,YACxC5tC,KAAK6uC,WAAWlQ,UAAUvsB,EAAU6L,YACpCje,KAAK4uC,SAAU,EACR5uC,KAAKgvC,UAAUz3B,QAE1Bu3B,UAAW,SAAU/wB,GACjB,GAAI3U,EAAIglB,WAAWrQ,GAAO,CACtB,GAAI3U,EAAIsoB,aAAa3T,GACjB,MAEJ/d,MAAKgvC,UAAUf,WAAWlwB,EAAKhL,UAAUpH,QAAQ,KAAM3L,KAAK4tC,WAAWC,OACvE7tC,KAAK4uC,SAAU,MACZ,IAAIxlC,EAAIuoB,QAAQ5T,IAAS/d,KAAK4uC,QAAS,CAC1C,GAAIK,GAASjvC,KAAKkvC,QAAQ9lC,EAAInG,KAAK8a,KAAU/d,KAAKkvC,QAAQxxB,KAC1D,OAAOuxB,GAAOjvC,KAAM+d,KAG5BwrB,WAAY,WACR,GAAIx0B,GAAI/U,KAAKH,OACb,OAAOkV,GAAEY,KAAOZ,EAAEa,cAEtBm5B,qBAAsB,WAClB,MAAI/uC,MAAKH,QAAQ8V,KAETa,KAAM,IACNq3B,KAAM,MAINr3B,KAAM,IACNq3B,KAAM,UAIlBqB,SACIC,GAAI/tC,EAAE8Y,KACNmd,GAAIj2B,EAAE8Y,KACNoqB,MAAOljC,EAAE8Y,KACTk1B,MAAOhuC,EAAE8Y,KACTm1B,MAAOjuC,EAAE8Y,KACTo1B,GAAI,SAAUC,EAASxxB,GAAnB,GACIyxB,GAAY,GAAI9I,IAAqB/wB,KAAK,IAC1C85B,EAAWD,EAAUlC,SAASvvB,EAElC,OADAwxB,GAAQP,UAAUb,sBAAsBsB,IACjC,GAEX/xB,MAAO,SAAU6xB,GACbA,EAAQP,UAAUX,cAI1B1H,EAAgB8C,EAAQ9pC,QACxBupC,MAAO,SAAU3xB,GACb,MAAOvX,MAAKH,QAAQwV,OAAOkC,IAE/BgyB,WAAY,WACR,MAAsC,kBAAxBvpC,MAAKH,QAAQwV,UAG/Bq6B,EAAevN,EAAQxiC,QACvBC,KAAM,SAAUC,GACZsiC,EAAQriC,GAAGF,KAAKG,KAAKC,KAAMH,GAC3BG,KAAKwZ,iBAAkB,GAE3BlG,KAAM,WACF,GAAInK,GAASnJ,KAAKmJ,MACd3J,GAAMuC,QAAQE,QAAQ2U,KACtBzN,EAAOlB,SAASyJ,YAAY,SAAS,EAAO,MACrCvI,EAAOzH,OAAOiuC,OACrBxmC,EAAOzH,OAAOiuC,WAItBC,EAAmBzN,EAAQxiC,QAC3BC,KAAM,SAAUC,GACZG,KAAKyZ,OAAQ,EACb0oB,EAAQriC,GAAGF,KAAKG,KAAKC,KAAMH,IAE/ByT,KAAM,WAAA,GACErK,GAAOjJ,KACPkS,EAAQlS,KAAKsiC,WAAU,EAC3BtiC,MAAKmJ,OAAO4R,YAAYM,KAAK,WACzBpS,EAAKs5B,aAAarwB,OAI9BvS,GAAOuJ,GACH4H,cAAeixB,EACfI,QAASA,EACTD,eAAgBA,EAChB/oB,kBAAmBA,EACnB2pB,eAAgBA,EAChB53B,cAAeA,EACfC,cAAeA,EACfF,iBAAkBA,EAClBD,SAAUA,EACVK,UAAWA,EACXo+B,QAASA,EACTrD,cAAeA,EACfC,WAAYA,EACZC,oBAAqBA,EACrBC,oBAAqBA,EACrBC,gBAAiBA,EACjBC,gBAAiBA,EACjBC,mBAAoBA,EACpBiH,cAAeA,EACfhH,cAAeA,EACf+I,aAAcA,EACdE,iBAAkBA,IAEtBtsC,EAAa,aAAc,GAAIw/B,IAC3BxgC,SAAU,GAAIF,IACVE,SAAUE,EAAYK,qBACtBoM,MAAO,cACP4gC,aAAc,mBAGtBvsC,EAAa,QAAS,GAAIhC,IACtBlB,QAASsvC,EACTptC,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBuM,MAAO,aAGf3L,EAAa,MAAO,GAAIhC,IACpBlB,QAASwvC,EACTttC,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBuM,MAAO,mBAGjBvN,OAAOlC,MAAM0c,SACC,kBAAV3c,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,uBAAwB,iBAAkBD,IACnD,YACG,SAAU8B,GAAV,GACO5B,GAAQkC,OAAOlC,MAAOmC,EAAQnC,EAAMmC,MAAOiC,EAASpE,EAAMqC,GAAGsH,OAAQnF,EAAUxE,EAAMqC,GAAG+B,OAAO9D,GAAGD,QAAQmE,QAASxB,EAAcoB,EAAOpB,YAAalB,EAAOsC,EAAOtC,KAAMc,EAAewB,EAAOxB,aAAcb,EAAaqC,EAAOrC,WAAY6H,EAAMxF,EAAOyF,IAAK6N,EAAatT,EAAOsT,WAAYvX,EAASyB,EAAEzB,OAAQ2D,EAAeM,EAAOpB,YAAYc,aAAcQ,EAAiBF,EAAOpB,YAAYsB,eAAgBwZ,EAAU,WAChawyB,EAAqBnuC,EAAMhC,QAC3BC,KAAM,SAAUsD,GACZlD,KAAKkD,OAASA,GAElB6sC,iBAAkB,SAAUC,GACxB,GAAuGjyB,GAAnGkyB,EAAiB,EAAGC,EAAoB,EAAGC,EAAc,EAAG5hB,EAAayhB,EAAczhB,UAC3F,KAAKxQ,EAAOwQ,EAAWtQ,WAAYF,EAAMA,EAAOA,EAAKI,YAC7CJ,GAAQiyB,IACJjyB,EAAK6S,WAAatT,EAClB6yB,IACwB,GAAjBpyB,EAAKjL,SACZm9B,IAEAC,IAIZ,OAAIC,GAAc,GAAK5hB,EAAWtQ,WAAW2S,WAAatT,GAAWiR,EAAWiD,UAAUZ,WAAatT,EAC5F,EAEA4yB,EAAoBD,GAGnCG,aAAc,SAAUC,EAAY3X,GAAtB,GAIN3a,GACA1a,CAJJ,KAAKq1B,GAAQ14B,KAAK+vC,iBAAiBM,GAAc,EAC7C,MAAO,KAIX,KAFItyB,EAAOsyB,EAAW9hB,WAClBlrB,EAAOrD,KAAKkD,OAAO,GAAGG,MAClB+F,EAAI+pB,OAAOpV,EAAM1a,IAAO,CAC5B,GAAIrD,KAAK+vC,iBAAiBhyB,GAAQ,EAC9B,MAAO,KAEXA,GAAOA,EAAKwQ,WAEhB,MAAOxQ,IAEXuyB,WAAY,SAAUD,GAClB,GAAuDltC,GAAGkZ,EAAK0B,EAAM1a,EAAM+rB,EAAvElsB,EAASlD,KAAKkD,OAAQisB,EAAa/lB,EAAI+lB,UAC3C,KAAKhsB,EAAI,EAAGkZ,EAAMnZ,EAAOrC,OAAYwb,EAAJlZ,EAASA,IAAK,CAI3C,GAHA4a,EAAOsyB,EACPhtC,EAAOH,EAAOC,GAAGE,KACjB+rB,EAAalsB,EAAOC,GAAG2G,KACnBiU,GAAQ3U,EAAI+pB,OAAOpV,EAAM1a,IAAS8rB,EAAWpR,EAAMqR,GACnD,MAAOrR,EAEX,MAAOA,GAEH,GADAA,EAAO3U,EAAImmB,aAAaxR,EAAM1a,GAC1B0a,GAAQoR,EAAWpR,EAAMqR,GACzB,MAAOrR,GAInB,MAAO,OAEXzG,YAAa,SAAU+C,GACnB,GAAIlX,GAAGkZ,CACP,KAAKlZ,EAAI,EAAGkZ,EAAMhC,EAAMxZ,OAAYwb,EAAJlZ,EAASA,IACrC,GAAInD,KAAKswC,WAAWj2B,EAAMlX,IACtB,OAAO,CAGf,QAAO,KAGXotC,EAAkB5uC,EAAMhC,QACxBC,KAAM,SAAUsD,EAAQstC,GACpBxwC,KAAKiX,OAAS,GAAI64B,GAAmB5sC,GACrClD,KAAKovB,WAAazvB,KAAWuD,EAAO,GAAG4G,KAAM0mC,GAC7CxwC,KAAKgzB,IAAM9vB,EAAO,GAAGG,KAAK,IAE9BywB,KAAM,SAAU/V,GACZ,MAAO3U,GAAI0qB,KAAK/V,EAAM3U,EAAIoqB,OAAOzV,EAAKyR,cAAexvB,KAAKgzB,IAAKhzB,KAAKovB,cAExEqhB,SAAU,SAAUv+B,EAAOmI,GACnBra,KAAKiX,OAAOK,YAAY+C,IACxBra,KAAKoR,MAAMc,GACXlS,KAAK6N,OAAOwM,IAEZra,KAAKs1B,MAAMjb,IAGnBsoB,OAAQ,SAAUzwB,GACd,GAAImI,GAAQnD,EAAWF,UAAU9E,EAC7BmI,GAAMxZ,OAAS,GACfb,KAAKywC,SAASv+B,EAAOmI,IAG7Bib,MAAO,SAAUjb,GAAV,GAEClX,GAAGu0B,EAAG3Z,EAAM2yB,EADZC,IAEJ,KAAKxtC,EAAI,EAAGu0B,EAAIrd,EAAMxZ,OAAY62B,EAAJv0B,EAAOA,IAAK,CAGtC,GAFA4a,EAAO1D,EAAMlX,GACbutC,EAAa1wC,KAAKiX,OAAOm5B,aAAaryB,GAElC3U,EAAIU,KAAK4mC,EAAY1wC,KAAKovB,gBACvB,CACH,MAAQhmB,EAAIuoB,QAAQ5T,EAAKwQ,aAAoD,GAArCxQ,EAAKwQ,WAAWI,WAAW9tB,QAAmD,SAApCkd,EAAKwQ,WAAWpmB,iBAC9F4V,EAAOA,EAAKwQ,UAEhBmiB,GAAa1wC,KAAK8zB,KAAK/V,GAE3B4yB,EAAYxwC,KAAKuwC,GAErB1wC,KAAK4wC,YAAYD,IAErB9iC,OAAQ,SAAUwM,GACd,GAAIlX,GAAGu0B,EAAGgZ,CACV,KAAKvtC,EAAI,EAAGu0B,EAAIrd,EAAMxZ,OAAY62B,EAAJv0B,EAAOA,IACjCutC,EAAa1wC,KAAKiX,OAAOq5B,WAAWj2B,EAAMlX,IACtCutC,IACI1wC,KAAKovB,YAAcpvB,KAAKovB,WAAWtpB,OACnCsD,EAAI8qB,QAAQwc,EAAY1wC,KAAKovB,WAAWtpB,OACnC4qC,EAAW5qC,MAAM4tB,SAAYgd,EAAWthB,WAAW,UACpDhmB,EAAI2qB,OAAO2c,IAGftnC,EAAI2qB,OAAO2c,KAK3Bt/B,MAAO,SAAUc,GAAV,GAGC/O,GAAGutC,EAFHr2B,EAAQnD,EAAWF,UAAU9E,GAC7BwlB,EAAIrd,EAAMxZ,MAEd,IAAI62B,EAAI,EACJ,IAAKv0B,EAAI,EAAOu0B,EAAJv0B,EAAOA,IACfutC,EAAa1wC,KAAKiX,OAAOq5B,WAAWj2B,EAAMlX,IACtCutC,GACAx5B,EAAW9F,MAAMc,EAAOw+B,GAAY,IAKpDE,YAAa,SAAUv2B,GAEnB,IADA,GAAI0D,GAAM8yB,EACHx2B,EAAMxZ,OAAS,GAMlB,GALAkd,EAAO1D,EAAMy2B,MACbD,EAAOx2B,EAAMA,EAAMxZ,OAAS,GACxBkd,EAAKoQ,iBAAmBpQ,EAAKoQ,gBAAgByC,WAAatT,GAC1DuzB,EAAKjd,YAAY7V,EAAKoQ,iBAEtBpQ,EAAKsV,SAAWwd,EAAKxd,SAAWtV,EAAKoQ,iBAAmB0iB,GAAQ9yB,EAAKjY,MAAM4tB,SAAWmd,EAAK/qC,MAAM4tB,QAAS,CAC1G,KAAO3V,EAAKE,YACR4yB,EAAKjd,YAAY7V,EAAKE,WAE1B7U,GAAIyE,OAAOkQ,OAKvBgzB,EAA2BjB,EAAmBnwC,QAC9CC,KAAM,SAAUsD,EAAQ8tC,GACpBhxC,KAAKkD,OAASA,EACdlD,KAAKgxC,eAAiBA,EACtBlB,EAAmBhwC,GAAGF,KAAKG,KAAKC,KAAMkD,IAE1C+tC,kBAAmB,SAAUlzB,GAAV,GAGX5a,GAAGu0B,EAAGnE,EAAWtwB,EAAMiuC,EAAgB9iC,EAAK+iC,EAAMC,EAAU/0B,EAC5Dg1B,EAAkBrZ,EAAUpvB,EAH5BwmB,EAAarR,EAAKqR,WAClB3jB,EAAOrK,EAAEqK,IAGb,IAAK2jB,EAGL,IAAKjsB,EAAI,EAAGu0B,EAAItI,EAAWvuB,OAAY62B,EAAJv0B,EAAOA,IAItC,GAHAowB,EAAYnE,EAAWjsB,GACvBF,EAAOswB,EAAUpC,SACjB+f,EAAiB3d,EAAUxgB,UACvBwgB,EAAUE,WAAqB,SAARxwB,EAEvB,IADAmL,EAAM3C,EAAKylC,GAAkBnzB,EAAKjY,MAAM4tB,SAAStiB,MAAM,KAClDggC,EAAW,EAAG/0B,EAAMjO,EAAIvN,OAAmBwb,EAAX+0B,EAAgBA,IAEjD,GADAD,EAAO/iC,EAAIgjC,GACPD,EAAKtwC,OAAQ,CAIb,GAHAwwC,EAAmBF,EAAK//B,MAAM,KAC9B4mB,EAAWvsB,EAAK4lC,EAAiB,GAAG1tC,eACpCiF,EAAQ6C,EAAK4lC,EAAiB,IAC1BrZ,GAAYh4B,KAAKgxC,eACjB,QAEJ,OAAOhZ,GAASrtB,QAAQ,UAAY,EAAIvB,EAAI0mB,MAAMlnB,GAASA,IAM/E0oC,eAAgB,SAAUvzB,GAAV,GAGR5a,GAAGkZ,EAAKzT,EAFRyvB,EAAQj3B,EAAEgI,EAAIglB,WAAWrQ,GAAQA,EAAKwQ,WAAaxQ,GACnDwzB,EAAUlZ,EAAMmZ,aAAa,qBAAqBC,UAAUC,UAAUxc,SAE1E,KAAK/xB,EAAI,EAAGkZ,EAAMk1B,EAAQ1wC,OAAYwb,EAAJlZ,EAASA,IAEvC,GADAyF,EAA+B,aAAvB5I,KAAKgxC,eAAgCO,EAAQpuC,GAAGytB,UAAY5wB,KAAKixC,kBAAkBM,EAAQpuC,IAE/F,MAAOyF,EAGf,OAAO,WAEXyO,UAAW,SAAUgD,GACjB,GAA4ClX,GAAGkZ,EAA3CkV,EAASvxB,KAAKsxC,eAAej3B,EAAM,GACvC,KAAKlX,EAAI,EAAGkZ,EAAMhC,EAAMxZ,OAAYwb,EAAJlZ,EAASA,IACrC,GAAIouB,GAAUvxB,KAAKsxC,eAAej3B,EAAMlX,IACpC,MAAO,EAGf,OAAOouB,IAEXja,YAAa,SAAU+C,GACnB,MAAiC,KAA1Bra,KAAKqX,UAAUgD,MAG1Bs3B,EAAwBpB,EAAgB5wC,QACxCC,KAAM,SAAUsD,EAAQstC,EAAQQ,GAC5BT,EAAgBzwC,GAAGF,KAAKG,KAAKC,KAAMkD,EAAQstC,GAC3CxwC,KAAKwwC,OAASA,EACdxwC,KAAKiX,OAAS,GAAI85B,GAAyB7tC,EAAQ8tC,GAC/CA,IACAhxC,KAAKgxC,eAAiBxxC,EAAMoyC,YAAYZ,KAGhDP,SAAU,SAAUv+B,EAAOmI,GAAjB,GACF22B,GAAiBhxC,KAAKgxC,eACtB/B,EAAS,OACbjvC,MAAKoR,MAAMc,GACP8+B,GAAuD,WAArChxC,KAAKwwC,OAAO1qC,MAAMkrC,KACpC/B,EAAS,UAEbjvC,KAAKivC,GAAQ50B,MAGjBw3B,EAAmBtwC,EAAW5B,QAC9BC,KAAM,SAAUC,GACZ0B,EAAWzB,GAAGF,KAAKG,KAAKC,KAAML,EAAOE,GACjCoX,OAAQ,GAAI64B,GAAmBjwC,EAAQqD,QACvCkX,UAAW,WACP,MAAO,IAAIm2B,GAAgB1wC,EAAQqD,eAK/C4uC,EAAuBxwC,EAAK3B,QAC5B8J,OAAQ,SAAU5H,EAAIwY,GAClB,GAAI4wB,GAAOppC,EAAGwsB,KAAKruB,KAAK+I,KACxBkiC,GAAKl7B,QACLk7B,EAAKriC,MAAM5I,KAAKiX,OAAOI,UAAUgD,OAGrC03B,EAAWD,EAAqBnyC,QAChCC,KAAM,SAAUC,GACZyB,EAAKxB,GAAGF,KAAKG,KAAKC,KAAMH,GACxBG,KAAK+I,KAAOvJ,EAAMuC,QAAQE,QAAQ2U,MAAQpX,EAAMuC,QAAQ4P,MAAQ,oBAAsB,gBACtF3R,KAAKkD,SAAYG,MAAO,UACxBrD,KAAKiX,OAAS,GAAI85B,GAAyB/wC,KAAKkD,OAAQrD,EAAQmyC,UAEpE5xC,QAAS,SAAU6Z,GACf,GAAIpa,GAAUG,KAAKH,QAASqD,EAASlD,KAAKkD,OAAQ4C,IAClD,OAAO,IAAIlC,GAAOuW,cAAcxa,EAAOsa,GACnCG,UAAW,WAEP,MADAtU,GAAMjG,EAAQoyC,SAAWh4B,EAAiBrR,MACnC,GAAI+oC,GAAsBzuC,GAAU4C,MAAOA,GAASjG,EAAQmyC,cAI/El4B,WAAY,SAAUjY,EAAIkhC,GACtB,GAAkFC,GAA9E75B,EAAS45B,EAAY55B,OAAQtJ,EAAUG,KAAKH,QAAS0D,EAAW1D,EAAQoD,KAAkByI,IAC1F7L,GAAQ6L,eACRA,IACQ8K,KAAMrN,EAAOtJ,QAAQoE,SAASpE,EAAQ6L,aAAa,GAAG8K,MACtD5N,MAAO/I,EAAQ6L,aAAa,GAAG9C,SAG3Co6B,EAAat3B,EAAa+K,OAAO5W,EAAQuc,MAAQvc,EAAQuc,MAAQjT,EAAOtJ,QAAQ0D,QAChF1B,EAAGiI,MAAOmF,MAAO8zB,EAAY9zB,QAC7BpN,EAAG7B,KAAK+I,OACJo6B,cAAe,OACfC,eAAgB,QAChBJ,WAAYA,EACZtpB,OAAQ,WACJpY,EAAKgS,KAAKnK,EAAQ5F,EAAUvD,KAAK4I,UAErCy6B,gBAAgB,IAEpBxhC,EAAG2H,QAAQ,aAAasL,YAAY,KAAOvR,GAAUqG,KAAK,KAAK6nC,UAAU3nC,KAAK,eAAgB,MAC9FjI,EAAGwsB,KAAKruB,KAAK+I,MAAMH,MAAM,cAG7BspC,EAAY5wC,EAAK3B,QACjBC,KAAM,SAAUC,GACZyB,EAAKxB,GAAGF,KAAKG,KAAKC,KAAMH,GACxBG,KAAKkD,SAAYG,MAAO,UACxBrD,KAAKiX,OAAS,GAAI85B,GAAyB/wC,KAAKkD,OAAQrD,EAAQmyC,UAEpEnyC,SAAWsyC,QAAS,WACpB1oC,OAAQ,WACJzJ,KAAKoyC,QAAQriC,SAEjB3P,QAAS,SAAU6Z,GACf,GAAIpa,GAAUG,KAAKH,QAASqD,EAASlD,KAAKkD,OAAQ4C,IAClD,OAAO,IAAIlC,GAAOuW,cAAcxa,EAAOsa,GACnCG,UAAW,WAEP,MADAtU,GAAMjG,EAAQoyC,SAAWh4B,EAAiBrR,MACnC,GAAI+oC,GAAsBzuC,GAAU4C,MAAOA,GAASjG,EAAQmyC,cAI/El4B,WAAY,SAAUjY,EAAIkhC,GACtB,GAAI55B,GAAS45B,EAAY55B,OAAQ5F,EAAWvD,KAAKiD,KAAMpD,EAAUF,KAAWuyC,EAAUpyC,GAAGD,QAASG,KAAKH,SAAUsyC,EAAUtyC,EAAQsyC,OACnItwC,GAAK7B,KAAKoyC,QAAU,GAAI5yC,GAAMqC,GAAGwwC,YAAYxwC,GACzCywC,SAAU,KAAOzyC,EAAQoD,KACzBkvC,QAASA,EACTz4B,OAAQ,WACJ,GAAIqW,GAAQluB,EAAG+G,OACXmnB,IACAzuB,EAAKgS,KAAKnK,EAAQ5F,EAAUwsB,GAEhC5mB,EAAO4I,SAEX0+B,SAAU,SAAUlkC,GAChBA,EAAE0F,iBACFpQ,EAAGnB,QAAQ,aAGnBmB,EAAG8H,QAAQG,MACPmF,MAAO8zB,EAAY9zB,MACnB8K,aAAc,OACfnQ,KAAK,KAAKE,KAAK,eAAgB,QAG1CnK,GAAOiE,GACHksC,mBAAoBA,EACpBS,gBAAiBA,EACjBuB,qBAAsBA,EACtBf,yBAA0BA,EAC1BY,sBAAuBA,EACvBE,iBAAkBA,EAClBE,SAAUA,EACVG,UAAWA,IAEfpuC,EAAe,SAEPT,MACI,SACA,OAIJA,MAAO,QACPyG,MAAQhE,OAASysC,WAAY,YAGrCjvC,EAAa,OAAQ,GAAIuuC,IACrBl4B,IAAK,IACLC,MAAM,EACN1W,OAAQc,EAAQE,KAChB5B,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBuM,MAAO,YAGfnL,EAAe,WAEPT,MACI,KACA,OAIJA,MAAO,QACPyG,MAAQhE,OAAS0sC,UAAW,cAGpClvC,EAAa,SAAU,GAAIuuC,IACvBl4B,IAAK,IACLC,MAAM,EACN1W,OAAQc,EAAQG,OAChB7B,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBuM,MAAO,cAGfnL,EAAe,cAEPT,MAAO,QACPyG,MAAQhE,OAAS4zB,eAAgB,gBAEnCr2B,MAAO,QAEbC,EAAa,YAAa,GAAIuuC,IAC1Bl4B,IAAK,IACLC,MAAM,EACN1W,OAAQc,EAAQI,UAChB9B,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBuM,MAAO,iBAGfnL,EAAe,kBAEPT,MACI,MACA,YAIJA,MAAO,QACPyG,MAAQhE,OAAS4zB,eAAgB,oBAGzCp2B,EAAa,gBAAiB,GAAIuuC,IAC9B3uC,OAAQc,EAAQK,cAChB/B,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBuM,MAAO,qBAGfnL,EAAe,gBAAkBT,MAAO,UACxCC,EAAa,cAAe,GAAIuuC,IAC5B3uC,OAAQc,EAAQM,YAChBhC,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBuM,MAAO,mBAGfnL,EAAe,cAAgBT,MAAO,UACtCC,EAAa,YAAa,GAAIuuC,IAC1B3uC,OAAQc,EAAQO,UAChBjC,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBuM,MAAO,iBAGf3L,EAAa,YAAa,GAAI4uC,IAC1BF,QAAS,QACTC,QAAS,QACThvC,KAAM,YACNX,SAAU,GAAIF,IACVE,SAAUE,EAAYG,oBACtBsM,MAAO,aAGf3L,EAAa,YAAa,GAAI4uC,IAC1BF,QAAS,mBACTC,QAAS,kBACThvC,KAAM,YACNX,SAAU,GAAIF,IACVE,SAAUE,EAAYG,oBACtBsM,MAAO,wBAGf3L,EAAa,WAAY,GAAIyuC,IACzBC,QAAS,cACTC,QAAS,aACThvC,KAAM,WACNyI,eACQ8K,KAAM,kBACN5N,MAAO,YAEftG,SAAU,GAAIF,IACVE,SAAUE,EAAYI,iBACtBqM,MAAO,iBAGf3L,EAAa,WAAY,GAAIyuC,IACzBC,QAAS,YACTC,QAAS,WACThvC,KAAM,WACNyI,eACQ8K,KAAM,kBACN5N,MAAO,YAEftG,SAAU,GAAIF,IACVE,SAAUE,EAAYI,iBACtBqM,MAAO,kBAGjBvN,OAAOlC,MAAM0c,SACC,kBAAV3c,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,sBAAuB,uBAAwBD,IACxD,YACG,SAAU8B,GAAV,GAuOOqxC,GAtOAjzC,EAAQkC,OAAOlC,MAAOmC,EAAQnC,EAAMmC,MAAOhC,EAASyB,EAAEzB,OAAQiE,EAASpE,EAAMqC,GAAGsH,OAAQnF,EAAUxE,EAAMqC,GAAG+B,OAAO9D,GAAGD,QAAQmE,QAASoF,EAAMxF,EAAOyF,IAAK84B,EAAUv+B,EAAOu+B,QAAS//B,EAAewB,EAAOxB,aAAcb,EAAaqC,EAAOrC,WAAYiB,EAAcoB,EAAOpB,YAAac,EAAed,EAAYc,aAAcQ,EAAiBtB,EAAYsB,eAAgBoT,EAAatT,EAAOsT,WAClYw7B,EAAoB/wC,EAAMhC,QAC1BC,KAAM,SAAUsD,GACZlD,KAAKkD,OAASA,GAElB0R,SAAU,SAAUmJ,EAAM/D,GACtB,GAAI7W,GAAGkZ,EAAK4U,CACZ,KAAK9tB,EAAI,EAAGkZ,EAAMrC,EAASnZ,OAAYwb,EAAJlZ,EAASA,IAExC,GADA8tB,EAAQjX,EAAS7W,IACZ8tB,IAAU7nB,EAAIolB,iBAAiBzQ,EAAMkT,GACtC,OAAO,CAGf,QAAO,GAEXmf,aAAc,SAAU/1B,GAAV,GAC+BlX,GAAGkZ,EAAKs2B,EAEpCrzC,EAFT4D,EAASlD,KAAKkD,OAAQ0vC,IAC1B,KAAKzvC,EAAI,EAAGkZ,EAAMhC,EAAMxZ,OAAYwb,EAAJlZ,EAASA,IAAK,CAC1C,IAAS7D,EAAI4D,EAAOrC,OAAS,EAAGvB,GAAK,KACjCqzC,EAAYvpC,EAAI+pB,OAAO9Y,EAAMlX,GAAID,EAAO5D,GAAG+D,MAAQgX,EAAMlX,GAAKiG,EAAIssB,sBAAsBrb,EAAMlX,GAAID,EAAO5D,GAAG+D,OADxE/D,KAMxC,IAAKqzC,GAA2C,SAA9BA,EAAUxqC,gBACxB,QAEA/G,GAAEgC,QAAQuvC,EAAWC,GAAY,GACjCA,EAASzyC,KAAKwyC,GAGtB,IAAKxvC,EAAI,EAAGkZ,EAAMu2B,EAAS/xC,OAAYwb,EAAJlZ,EAASA,IACxC,GAAInD,KAAK4U,SAASg+B,EAASzvC,GAAIyvC,GAC3B,OAAQA,EAASzvC,GAGzB,OAAOyvC,IAEXtC,WAAY,SAAUD,GAAV,GACkBltC,GAAGkZ,EAAK0B,EAAM1a,EAAM+rB,EAA1ClsB,EAASlD,KAAKkD,OACd2wB,EAAiBzqB,EAAIyqB,eAAewc,EACxC,KAAKltC,EAAI,EAAGkZ,EAAMnZ,EAAOrC,OAAYwb,EAAJlZ,EAASA,IAItC,IAHA4a,EAAOsyB,EACPhtC,EAAOH,EAAOC,GAAGE,KACjB+rB,EAAalsB,EAAOC,GAAG2G,KAChBiU,GAAQ3U,EAAIklB,aAAauF,EAAgB9V,IAAO,CACnD,GAAI3U,EAAI+pB,OAAOpV,EAAM1a,IAAS+F,EAAI+lB,WAAWpR,EAAMqR,GAC/C,MAAOrR,EAEXA,GAAOA,EAAKwQ,WAGpB,MAAO,OAEXlX,UAAW,SAAUgD,GACjB,GAEsClX,GAAGkZ,EAFrCpT,EAAOjJ,KAAMswC,EAAa,SAAUvyB,GAChC,MAAO9U,GAAKqnC,WAAWlnC,EAAIglB,WAAWrQ,GAAQA,EAAKwQ,WAAaxQ,IACjEwT,EAAS+e,EAAWj2B,EAAM,GACjC,KAAKkX,EACD,MAAO,EAEX,KAAKpuB,EAAI,EAAGkZ,EAAMhC,EAAMxZ,OAAYwb,EAAJlZ,EAASA,IACrC,GAAIouB,GAAU+e,EAAWj2B,EAAMlX,IAC3B,MAAO,EAGf,OAAOouB,GAAOJ,SAASxtB,eAE3B2T,YAAa,SAAU+C,GACnB,IAAK,GAAIlX,GAAI,EAAGkZ,EAAMhC,EAAMxZ,OAAYwb,EAAJlZ,EAASA,IACzC,IAAKnD,KAAKswC,WAAWj2B,EAAMlX,IACvB,OAAO,CAGf,QAAO,KAGX0vC,EAAiBlxC,EAAMhC,QACvBC,KAAM,SAAUsD,EAAQstC,GACpBxwC,KAAKkD,OAASA,EACdlD,KAAKwwC,OAASA,EACdxwC,KAAKiX,OAAS,GAAIy7B,GAAkBxvC,IAExC4wB,KAAM,SAAUd,EAAK5D,EAAY/U,GAA3B,GAKEqa,GAAuD7B,EAA4ClpB,EAAqExG,EAAGkhC,EAJ3K5P,EAAiC,GAAhBpa,EAAMxZ,OAAcuI,EAAIkmB,kBAAkBjV,EAAM,IAAMjR,EAAIqrB,eAAea,MAAM,KAAMjb,EAK1G,KAJIjR,EAAIyoB,SAAS4C,KACbA,EAAiBrrB,EAAIkmB,kBAAkBmF,IAEvCC,EAAYtrB,EAAIgoB,sBAAsBqD,GAAiB5B,EAAWzpB,EAAI6kB,cAAcyG,EAAU,IAAK/qB,EAAUP,EAAIoqB,OAAOiB,EAAejF,cAAewD,EAAK5D,GAC1JjsB,EAAI,EAAOuxB,EAAU7zB,OAAdsC,EAAsBA,IAC9BkhC,EAAW3P,EAAUvxB,GACjBiG,EAAIuoB,QAAQ0S,IACZj7B,EAAIU,KAAKu6B,EAAUjV,GACfzlB,EAAQglB,WAAW9tB,SACnBuI,EAAIa,aAAaN,EAAS06B,GAC1B16B,EAAUA,EAAQolB,WAAU,IAEhC8D,EAAWzpB,EAAI6kB,cAAcoW,GAAY,GAG7C16B,EAAQiqB,YAAYyQ,EAEpB16B,GAAQsU,YACR7U,EAAIupB,SAAS8B,EAAgB9qB,EAASkpB,IAG9CyC,MAAO,SAAUjb,GAEb,QAAS+U,GAAWlsB,GAChB,MAAOvD,MAAWuD,GAAUA,EAAO4G,KAAM0mC,GAH1C,GACCttC,GAaA4vC,EACAnC,EAESxtC,EAAOkZ,EAhBRm0B,EAASxwC,KAAKwwC,OAItBnI,EAASj/B,EAAIusB,OAAO,MAAOtb,GAC3B04B,EAAcvwC,EAAYQ,aAAa,MAAOhD,KAAKkD,QACnD8vC,EAAkB5jB,EAAW2jB,EAIjC,IAHA3xC,EAAE61B,KAAKoR,EAAQ,WACXj/B,EAAIU,KAAK9J,KAAMgzC,KAEf3K,EAAOxnC,QAAUwZ,EAAMxZ,OAK3B,GAFIiyC,EAAY1pC,EAAIusB,OAAO,MAAOtb,GAAO,GACrCs2B,EAAc3wC,KAAKiX,OAAOm5B,aAAa0C,GACvCnC,EAAY9vC,OACZ,IAASsC,EAAI,EAAGkZ,EAAMs0B,EAAY9vC,OAAYwb,EAAJlZ,EAASA,IAC/CD,EAASV,EAAYQ,aAAaoG,EAAInG,KAAK0tC,EAAYxtC,IAAKnD,KAAKkD,QACjEkG,EAAIU,KAAK6mC,EAAYxtC,GAAIisB,EAAWlsB,QAGxCA,GAASlD,KAAKkD,OAAO,GACrBlD,KAAK8zB,KAAK5wB,EAAOG,KAAK,GAAI+rB,EAAWlsB,GAAS4vC,IAGtDjlC,OAAQ,SAAUwM,GACd,GAAIlX,GAAGu0B,EAAGgZ,EAAYuC,EAAahwC,CACnC,KAAKE,EAAI,EAAGu0B,EAAIrd,EAAMxZ,OAAY62B,EAAJv0B,EAAOA,IACjCutC,EAAa1wC,KAAKiX,OAAOq5B,WAAWj2B,EAAMlX,IACtCutC,IACAztC,EAAOmG,EAAInG,KAAKytC,GACJ,OAARztC,GAAkBytC,EAAWh+B,aAAa,UAG1CugC,EAAczwC,EAAYQ,aAAaC,EAAMjD,KAAKkD,QAC9C+vC,EAAYnpC,KAAKhE,OACjBsD,EAAI8qB,QAAQwc,EAAYuC,EAAYnpC,KAAKhE,OAEzCmtC,EAAYnpC,KAAK8mB,WACjBxnB,EAAI0L,YAAY47B,EAAYuC,EAAYnpC,KAAK8mB,YAPjDxnB,EAAI2qB,OAAO2c,KAa3B/N,OAAQ,SAAUzwB,GACd,GAAIjJ,GAAOjJ,KAAMqa,EAAQnD,EAAWmD,MAAMnI,EACtCjJ,GAAKgO,OAAOK,YAAY+C,GACxBpR,EAAK4E,OAAOwM,GAEZpR,EAAKqsB,MAAMjb,MAInB64B,EAAuBvxC,EAAMhC,QAC7BC,KAAM,SAAUsD,EAAQstC,GACpB,GAAIvnC,GAAOjJ,IACXiJ,GAAK/F,OAASA,EACd+F,EAAKunC,OAASA,EACdvnC,EAAKgO,OAAS,GAAIy7B,GAAkBxvC,IAExCoyB,MAAO,SAAUjb,GAAV,GAIClX,GAAGkZ,EAAK4uB,EAAM7wB,EAAWlI,EACzBvJ,EACA0qB,EALAnwB,EAASlD,KAAKkD,OACdwsB,EAAStmB,EAAIqmB,aAAapV,GAC1B84B,EAAYjwC,EAAO,GAAGG,KAAK,EAI/B,IAAIqsB,EAAO7uB,OACP,IAAKsC,EAAI,EAAGkZ,EAAMqT,EAAO7uB,OAAYwb,EAAJlZ,EAASA,IACtCkwB,EAAUjqB,EAAInG,KAAKysB,EAAOvsB,IACX,MAAXkwB,GACA4X,EAAOvb,EAAOvsB,GAAGorB,WACjBnU,EAAY,GAAIxW,GAAOugC,cAAc8G,EAAK9Z,SAASxtB,cAAewvC,GAClEjhC,EAAQlS,KAAKmJ,OAAOiL,cACpBlC,EAAMmC,WAAWqb,EAAOvsB,IACxBiX,EAAUuoB,OAAOzwB,IACVihC,IAAyB,MAAX9f,GAAmB3D,EAAOvsB,GAAGisB,WAAWjnB,iBAC7D,GAAI0qC,GAAe3vC,EAAQlD,KAAKwwC,QAAQlb,MAAM5F,EAAOvsB,GAAGwrB,aAExDhmB,EAAUS,EAAIgqB,UAAU1D,EAAOvsB,GAAIgwC,GACnC/pC,EAAIU,KAAKnB,EAASzF,EAAO,GAAG4G,WAIpC,IAAI+oC,GAAe3vC,EAAQlD,KAAKwwC,QAAQlb,MAAMjb,IAGtDsoB,OAAQ,SAAUzwB,GACd,GAAImI,GAAQnD,EAAWF,UAAU9E,EAC5BmI,GAAMxZ,SACPqR,EAAM0qB,mBAAmB1qB,EAAM4F,yBAC/BuC,EAAQnD,EAAWF,UAAU9E,GACxBmI,EAAMxZ,SACPwZ,EAAQjR,EAAIgoB,sBAAsBlf,EAAM4F,2BAGhD9X,KAAKs1B,MAAMjb,MAGfF,EAAgBgoB,EAAQxiC,QACxBC,KAAM,SAAUC,GACZA,EAAQua,UAAYva,EAAQua,YAC5B+nB,EAAQriC,GAAGF,KAAKG,KAAKC,KAAMH,MAG/BuzC,EAAkB7xC,EAAW5B,QAC7BC,KAAM,SAAUC,GACZ0B,EAAWzB,GAAGF,KAAKG,KAAKC,KAAML,EAAOE,GACjCoX,OAAQ,GAAIy7B,GAAkB7yC,EAAQqD,QACtCkX,UAAW,WACP,MAAO,IAAIy4B,GAAehzC,EAAQqD,cAKlDvD,GAAOiE,GACH8uC,kBAAmBA,EACnBG,eAAgBA,EAChBK,qBAAsBA,EACtB/4B,cAAeA,EACfi5B,gBAAiBA,IAEjBX,GACA,KACA,KACA,MAEJ3uC,EAAe,gBAEPT,KAAM+F,EAAIoU,qBACV1T,MAAQhE,OAASutC,UAAW,WAG5BhwC,MAAO,OACPyG,MACIhE,OACIwtC,QAAS,OACT9J,QAAS,GACTqC,WAAY,GACZ0H,YAAa,OAKrBlwC,KAAMovC,EACN3oC,MACIhE,OACIutC,UAAW,OACXG,kBAAmB,QAKnClwC,EAAa,cAAe,GAAI8vC,IAC5BlwC,OAAQc,EAAQS,YAChBnC,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBuM,MAAO,oBAGfnL,EAAe,kBAEPT,KAAM+F,EAAIoU,qBACV1T,MAAQhE,OAASutC,UAAW,aAG5BhwC,MAAO,OACPyG,MACIhE,OACI0jC,QAAS,QACTqC,WAAY,OACZ0H,YAAa,OACbD,QAAS,OAKjBjwC,KAAMovC,EACN3oC,MACIhE,OACIutC,UAAW,SACXG,kBAAmB,cAKnClwC,EAAa,gBAAiB,GAAI8vC,IAC9BlwC,OAAQc,EAAQQ,cAChBlC,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBuM,MAAO,sBAGfnL,EAAe,iBAEPT,KAAM+F,EAAIoU,qBACV1T,MAAQhE,OAASutC,UAAW,YAG5BhwC,MAAO,OACPyG,MACIhE,OACIwtC,QAAS,QACT9J,QAAS,GACTqC,WAAY,GACZ0H,YAAa,OAKrBlwC,KAAMovC,EACN3oC,MACIhE,OACIutC,UAAW,QACXG,kBAAmB,cAKnClwC,EAAa,eAAgB,GAAI8vC,IAC7BlwC,OAAQc,EAAQU,aAChBpC,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBuM,MAAO,qBAGfnL,EAAe,gBAEPT,KAAM+F,EAAIoU,qBACV1T,MAAQhE,OAASutC,UAAW,cAG5BhwC,MAAO,OACPyG,MACIhE,OACI0jC,QAAS,QACTqC,WAAY,OACZ0H,YAAa,OACbD,QAAS,OAKjBjwC,KAAMovC,EACN3oC,MACIhE,OACIutC,UAAW,UACXG,kBAAmB,QAKnClwC,EAAa,cAAe,GAAI8vC,IAC5BlwC,OAAQc,EAAQW,YAChBrC,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBuM,MAAO,qBAGjBvN,OAAOlC,MAAM0c,SACC,kBAAV3c,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,oBAAqB,sBAAuBD,IACrD,YACG,SAAU8B,GAAV,GACO5B,GAAQkC,OAAOlC,MAAOG,EAASyB,EAAEzB,OAAQuJ,EAAW1J,EAAMqC,GAAGsH,OAAQC,EAAMF,EAASG,IAAK84B,EAAUj5B,EAASi5B,QAAS7gC,EAAO4H,EAAS5H,KAAMuxC,EAAiB3pC,EAAS2pC,eAAgB/0B,EAAY1U,EAAI0U,UAAW5G,EAAahO,EAASgO,WAAY5T,EAAe4F,EAAS1G,YAAYc,aACtRmwC,EAAmBtR,EAAQxiC,QAC3BC,KAAM,SAAUC,GACZG,KAAKH,QAAUA,EACfsiC,EAAQriC,GAAGF,KAAKG,KAAKC,KAAMH,IAE/B6zC,cAAe,SAAUjlC,EAAKyD,GAC1B,GAAmCE,GAA/BiwB,EAASj5B,EAAIoqB,OAAO/kB,EAAK,IAS7B,OARA4zB,GAAOzR,UAAY,WACnB1e,EAAMsrB,WAAW6E,GACZA,EAAO9T,aACRnc,EAAYF,EAAM4F,wBAClB1F,EAAUxG,UAAY,GACtBwG,EAAUwhB,YAAYyO,IAE1BvkB,EAAUukB,EAAO9T,YACV8T,GAEXsR,WAAY,SAAUzhC,EAAOygC,GACzB,GAAIvpC,EAAIwoB,QAAQ+gB,GACZzgC,EAAMsqB,eAAemW,OAClB,CACHzgC,EAAM0qB,mBAAmB+V,EACzB,IAAIiB,GAAY18B,EAAWF,UAAU9E,GAAO,EAC5C,KAAK0hC,EAAW,CACZ,KAAOjB,EAAUhkB,WAAW9tB,SAAWuI,EAAI8K,GAAGy+B,EAAU10B,WAAY,OAChE00B,EAAYA,EAAU10B,UAE1B21B,GAAYjB,EAEZvpC,EAAIwoB,QAAQgiB,GACZ1hC,EAAMsqB,eAAeoX,IAEjBxqC,EAAI8nB,UAAU0iB,KACdA,EAAUhoC,UAAY,UAE1BsG,EAAMsqB,eAAeoX,EAAU31B,YAAc21B,MAIzDC,WAAY,SAAU3hC,GAClB,GAAIwd,GAAS,sBAAsBte,MAAM,KAAM0iC,EAAe1qC,EAAImmB,aAAard,EAAMkF,eAAgBsY,GAASqkB,EAAa3qC,EAAImmB,aAAard,EAAM2G,aAAc6W,EAChK,OAAOokB,KAAiBC,IAAeD,GAAgBC,GAE3DC,YAAa,SAAUj2B,GACnB,KAAOA,IAAS3U,EAAIqoB,SAAS1T,IAA0C,KAAjC3U,EAAIonB,SAASzS,EAAKhL,aACpDgL,EAAOA,EAAKI,WAEhB,QAAQJ,GAEZzK,KAAM,WACF,GAAwE0K,GAAQ+a,EAAU7F,EAA4D+gB,EAAW5R,EAAQ6B,EAAIgQ,EAASC,EAAlLjiC,EAAQlS,KAAK2Q,WAAYlC,EAAMyI,EAAWmlB,kBAAkBnqB,GAAgCqyB,EAAwBr7B,EAASzH,oBAA0DoyC,EAAa7zC,KAAK6zC,WAAW3hC,EACxNA,GAAM2qB,iBACNwF,EAASriC,KAAK0zC,cAAcjlC,EAAKyD,GACjC9I,EAAIqnB,aAAa4R,EAAOlU,iBACxB/kB,EAAIqnB,aAAa4R,EAAOlkB,aACxB+lB,EAAK96B,EAAIssB,sBAAsB2M,GAAS,OACxC6R,EAAU9qC,EAAIssB,sBAAsB2M,EAAQ,oBAAoBjxB,MAAM,MAClE8yB,EACI96B,EAAI8nB,UAAUgT,KACd+P,EAAY7qC,EAAIoqB,OAAO/kB,EAAK,KACxBy1B,EAAG/lB,cACHg2B,EAAMjiC,EAAM4qB,aACZqX,EAAI9/B,WAAW6vB,GACfhtB,EAAW9F,MAAM+iC,EAAKjQ,EAAG3V,aAE7BnlB,EAAI0D,YAAYmnC,EAAW/P,EAAG3V,YAC9BnlB,EAAIyE,OAA0C,GAAnCq2B,EAAG3V,WAAWI,WAAW9tB,OAAcqjC,EAAG3V,WAAa2V,GAClE+P,EAAUroC,UAAY24B,EACtBrR,EAAO+gB,GAEJC,GAAWl0C,KAAKg0C,YAAY3R,KACnC4R,EAAY7qC,EAAIoqB,OAAO/kB,EAAK,KAC5BrF,EAAI0D,YAAYmnC,EAAWC,GAC3BD,EAAUroC,UAAY24B,EACtBn7B,EAAIyE,OAAOw0B,GACXnP,EAAO+gB,GAEN/gB,IACKgR,GAAMgQ,GACR,GAAIrB,KAAkBxvC,MAAO,QAASiyB,OAAO+M,IAEjDnwB,EAAMmC,WAAWguB,GACjBrkB,EAAS5U,EAAImmB,aAAa8S,GAAS6B,EAAK,KAAOgQ,EAAU9qC,EAAInG,KAAKixC,GAAW,MAC7Eh9B,EAAW9F,MAAMc,EAAO8L,EAAQ61B,GAChC9a,EAAW/a,EAAOmQ,gBACd/kB,EAAI8K,GAAG6kB,EAAU,OAASA,EAAS9a,aAAe7U,EAAI8K,GAAG6kB,EAAS9a,WAAY,QAC9E8a,EAAWA,EAAS9a,YAExBiV,EAAOlV,EAAOG,YACdne,KAAKkpC,MAAMnQ,GACX/4B,KAAKkpC,MAAMhW,GAAQzqB,OAAO,IACtBW,EAAI8K,GAAGgf,EAAM,OAASA,EAAKjV,aAAe7U,EAAI8K,GAAGgf,EAAKjV,WAAY,QAClEiV,EAAOA,EAAKjV,YAEhB7U,EAAIyE,OAAOmQ,GACXF,EAAUib,IAEdjb,EAAUoV,GACVlzB,KAAK2zC,WAAWzhC,EAAOghB,GACvBhhB,EAAMe,UAAS,GACf7J,EAAI6oB,SAASiB,GACbhc,EAAWhE,YAAYhB,IAE3Bg3B,MAAO,SAAUnrB,EAAMle,GAAhB,GASKu0C,GARJ94B,EAAOyC,CAOX,IANIA,EAAKE,YAAc7U,EAAI8K,GAAG6J,EAAKE,WAAY,OAC3C7U,EAAIyE,OAAOkQ,EAAKE,YAEhB7U,EAAIglB,WAAWrQ,KAAUA,EAAKhL,YAC9BgL,EAAOA,EAAKwQ,YAEZxQ,EAAM,CAEN,IADIq2B,GAAW,EACRr2B,EAAKE,YAA0C,GAA5BF,EAAKE,WAAWnL,UACtCshC,EAAWA,GAAYhrC,EAAI2nB,iBAAiBhT,EAAK4Q,YAAY9tB,OAAS,EACtEkd,EAAOA,EAAKE,UAMhB,IAJK7U,EAAIwoB,QAAQ7T,KAAS,QAAQ1K,KAAK0K,EAAKnS,YAAewoC,IACvDhzC,EAAEka,GAAM1R,KAAK,SAASiE,SACtBkQ,EAAKnS,UAAY1C,EAASzH,qBAE1B5B,GAAWA,EAAQ4I,MACnB,KAAOsV,GAAQzC,GAAM,CACjB,GAAIlS,EAAI8K,GAAG6J,EAAM,MAAQ3U,EAAI8nB,UAAUnT,GAAO,CAC1C3U,EAAI2qB,OAAOhW,EACX,OAEJA,EAAOA,EAAKwQ,gBAM5B8lB,EAAiBlS,EAAQxiC,QACzBC,KAAM,SAAUC,GACZG,KAAKH,QAAUA,EACfsiC,EAAQriC,GAAGF,KAAKG,KAAKC,KAAMH,IAE/ByT,KAAM,WAAA,GAGEghC,GAFApiC,EAAQlS,KAAK2Q,WACbslB,EAAK7sB,EAAIoqB,OAAOtc,EAAWmlB,kBAAkBnqB,GAAQ,MAErDjQ,EAAUzC,EAAMuC,QAAQE,QACxBsyC,EAAQtyC,EAAQ2U,MAA0B,GAAlB3U,EAAQsY,OACpCrI,GAAM2qB,iBACN3qB,EAAMsrB,WAAWvH,GACjBnY,EAAUmY,EAAG1H,YACRgmB,GAAWte,EAAG9X,cAAe/U,EAAIioB,aAAa4E,EAAG9X,eAClDm2B,EAASre,EAAGlH,WAAU,GACtBulB,EAAO1jB,UAAY,OACnBxnB,EAAI0D,YAAYwnC,EAAQre,IAE5B/jB,EAAMuqB,cAAcxG,GACpB/jB,EAAMe,UAAS,GACf7J,EAAI6oB,SAASgE,EAAG9X,aAAe8X,GAC/B/e,EAAWhE,YAAYhB,KAG/BvS,GAAOuJ,GACHuqC,iBAAkBA,EAClBY,eAAgBA,IAEpB/wC,EAAa,kBAAmB,GAAIhC,IAChCqY,IAAK,GACL6rB,OAAO,EACPplC,QAASi0C,KAEb/wC,EAAa,kBAAmB,GAAIhC,IAChCqY,IAAK,GACLvZ,QAASqzC,MAEf/xC,OAAOlC,MAAM0c,SACC,kBAAV3c,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,gBAAiB,oBAAqBD,IAC/C,YACG,SAAU8B,GAAV,GACO5B,GAAQkC,OAAOlC,MAAOmC,EAAQnC,EAAMmC,MAAOhC,EAASyB,EAAEzB,OAAQiE,EAASpE,EAAMqC,GAAGsH,OAAQC,EAAMxF,EAAOyF,IAAK6N,EAAatT,EAAOsT,WAAY1U,EAAcoB,EAAOpB,YAAa2/B,EAAUv+B,EAAOu+B,QAAS//B,EAAewB,EAAOxB,aAAcb,EAAaqC,EAAOrC,WAAYmxC,EAAoB9uC,EAAO8uC,kBAAmB17B,EAAYE,EAAWF,UAAW1T,EAAeM,EAAOpB,YAAYc,aAC5XkxC,EAAmB9B,EAAkB/yC,QACrCC,KAAM,SAAUozB,GACZhzB,KAAKgzB,IAAMA,CACX,IAAI3vB,GAAOrD,KAAKqD,MACL,MAAP2vB,EAAc,KAAO,KACrBA,EAEJ0f,GAAkB5yC,GAAGF,KAAKG,KAAKC,OAASqD,KAAMA,MAElDiU,YAAa,SAAU+C,GAAV,GAELq2B,GAAYvtC,EADZwtC,IAEJ,KAAKxtC,EAAI,EAAOkX,EAAMxZ,OAAVsC,EAAkBA,IAC1ButC,EAAa1wC,KAAKswC,WAAWj2B,EAAMlX,IAC/ButC,GAActnC,EAAInG,KAAKytC,IAAe1wC,KAAKgzB,KAC3C2d,EAAYxwC,KAAKuwC,EAGzB,IAAyB,EAArBC,EAAY9vC,OACZ,OAAO,CAEX,IAAI8vC,EAAY9vC,QAAUwZ,EAAMxZ,OAC5B,OAAO,CAEX,KAAKsC,EAAI,EAAOwtC,EAAY9vC,OAAhBsC,GACJwtC,EAAYxtC,GAAGorB,YAAcmiB,EAAWniB,WADZprB,IAIhC,GAAIwtC,EAAYxtC,IAAMutC,EAClB,OAAO,CAGf,QAAO,GAEXN,aAAc,SAAU/1B,GACpB,GAAIs4B,GAAY3yC,KAAKswC,WAAWj2B,EAAM,GACtC,OAAIs4B,IAAavpC,EAAInG,KAAK0vC,IAAc3yC,KAAKgzB,IAClC2f,EAEJ,QAGXxO,EAAgBxiC,EAAMhC,QACtBC,KAAM,SAAUozB,EAAKyhB;AACjB,GAAIxrC,GAAOjJ,IACXiJ,GAAKgO,OAAS,GAAIu9B,GAAiBxhB,GACnC/pB,EAAK+pB,IAAMA,EACX/pB,EAAKwrC,UAAYA,GAErBC,OAAQ,SAAU32B,GACd,GAAI9a,GAAOmG,EAAInG,KAAK8a,EACpB,OAAe,MAAR9a,GAAwB,MAARA,GAAwB,MAARA,GAE3C6wB,KAAM,SAAUmX,EAAM5wB,GAClB,GAA+ClX,GAAG4a,EAA9CmmB,EAAK96B,EAAIoqB,OAAOyX,EAAKzb,cAAe,KACxC,KAAKrsB,EAAI,EAAOkX,EAAMxZ,OAAVsC,EAAkBA,IAE1B,GADA4a,EAAO1D,EAAMlX,GACTiG,EAAI8K,GAAG6J,EAAM,MACbktB,EAAKrX,YAAY7V,OAGrB,IAAI/d,KAAK00C,OAAO32B,GACZ,KAAOA,EAAKE,YACRgtB,EAAKrX,YAAY7V,EAAKE,gBAI9B,IAAI7U,EAAI8K,GAAG6J,EAAM,MAAjB,CACI,KAAOA,EAAKE,YACRimB,EAAGtQ,YAAY7V,EAAKE,WAExBgtB,GAAKrX,YAAYsQ,GACjBnmB,EAAK6V,YAAYqX,GACjBA,EAAOA,EAAKlc,WAAU,GACtBmV,EAAKA,EAAGnV,WAAU,OAGtBmV,GAAGtQ,YAAY7V,GACX3U,EAAIuoB,QAAQ5T,KACZktB,EAAKrX,YAAYsQ,GACjB96B,EAAI2qB,OAAOhW,GACXmmB,EAAKA,EAAGnV,WAAU,GAGtBmV,GAAGjmB,YACHgtB,EAAKrX,YAAYsQ,IAGzByQ,YAAa,SAAU32B,EAAQ3D,GAC3B,IAAK,GAAIlX,GAAI,EAAOkX,EAAMxZ,OAAVsC,EAAkBA,IAC9B,GAAIiG,EAAIolB,iBAAiBxQ,EAAQ3D,EAAMlX,IACnC,OAAO,CAGf,QAAO,GAEXyvC,SAAU,SAAUD,EAAWt4B,GAC3B,GAA2B,YAAvBs4B,EAAU/hB,UAAyB,CACnC,GAAIqC,GAAU0f,EAAUx0B,WACxB,IAAI8U,GAAW7pB,EAAIuoB,QAAQsB,GACvB,OAAO,CAGX,IADAA,EAAU0f,EAAUxkB,gBAChB8E,GAAW7pB,EAAIuoB,QAAQsB,GACvB,OAAO,EAGf,MAAOjzB,MAAK20C,YAAYhC,EAAWt4B,IAAUjR,EAAIyoB,SAAS8gB,IAAoC,GAAtBA,EAAU7/B,UAEtF8hC,aAAc,SAAU72B,GACpB,GAAI0X,GAAWrsB,EAAImsB,gBAAgBxX,EACnC,OAAO3c,GAAE2c,GAAMyzB,aAAa/b,EAAU,UAE1CrkB,MAAO,SAAUc,GAAV,GAEClF,GAAOisB,EAAKsY,EAMHpuC,EAAOu0B,EACRgZ,EARRr2B,EAAQrD,EAAU9E,EAEtB,IAAImI,EAAMxZ,OAKN,IAJAmM,EAAQ5D,EAAImmB,aAAalV,EAAM,IAAK,OACpC4e,EAAM7vB,EAAImmB,aAAalV,EAAMA,EAAMxZ,OAAS,IAAK,OACjDqR,EAAMsqB,eAAexvB,GACrBkF,EAAMyqB,YAAY1D,GACT91B,EAAI,EAAGu0B,EAAIrd,EAAMxZ,OAAY62B,EAAJv0B,EAAOA,IACjCutC,EAAa1wC,KAAKiX,OAAOq5B,WAAWj2B,EAAMlX,IAC1CutC,IACAa,EAAUvxC,KAAK40C,aAAalE,GACxBa,EAAQ1wC,OACRqW,EAAW9F,MAAMc,EAAOq/B,EAAQV,OAAO,IAAI,GAE3C35B,EAAW9F,MAAMc,EAAOw+B,GAAY,KAMxDmE,MAAO,SAAU7hB,EAAK0d,GAElB,IADA,GAAuCxd,GAAnChV,EAAOwyB,EAAWviB,gBACfjQ,IAA2B,YAAlBA,EAAK0S,WAA4C,GAAjB1S,EAAKpL,UAAiB1J,EAAIioB,aAAanT,KACnFA,EAAOA,EAAKiQ,eAEhB,IAAIjQ,GAAQ9U,EAAInG,KAAKib,IAAS8U,EAAK,CAC/B,KAAO0d,EAAWzyB,YACdC,EAAK0V,YAAY8c,EAAWzyB,WAEhC7U,GAAIyE,OAAO6iC,GACXA,EAAaxyB,EAGjB,IADAgV,EAAOwd,EAAWvyB,YACX+U,IAA2B,YAAlBA,EAAKtC,WAA4C,GAAjBsC,EAAKpgB,UAAiB1J,EAAIioB,aAAa6B,KACnFA,EAAOA,EAAK/U,WAEhB,IAAI+U,GAAQ9pB,EAAInG,KAAKiwB,IAASF,EAAK,CAC/B,KAAO0d,EAAWlf,WACd0B,EAAKjpB,aAAaymC,EAAWlf,UAAW0B,EAAKjV,WAEjD7U,GAAIyE,OAAO6iC,KAGnBoE,UAAW,SAAU/2B,GACjB,MAAOA,IAAQA,EAAKyR,cAAchgB,OAAS,oBAAoB6D,KAAKjK,EAAInG,KAAK8a,MAAWA,EAAKqR,WAAWjnB,iBAE5G4sC,eAAgB,SAAUC,EAAS36B,GAwB/B,QAAS46B,KACLvgB,EAAUv0B,KAAKH,MAzBP,GAQR2uB,GAmBKxrB,EACD8tB,EACA2hB,EA5BJ5f,EAAMhzB,KAAKgzB,IACXyB,EAAiBrrB,EAAI+rB,wBAAwB9a,GAC7Cqa,KACAgc,EAAa1wC,KAAKiX,OAAOm5B,aAAa/1B,EAuB1C,KAtBKq2B,IACDA,EAAa,GAAI8D,GAAwB,MAAPxhB,EAAc,KAAO,MAAMod,aAAa/1B,IAG1E,cAAchH,KAAKjK,EAAInG,KAAKwxB,IAC5B9F,EAAavtB,EAAEwO,IAAIyK,EAAO,SAAU0D,GAChC,MAAO3U,GAAImmB,aAAaxR,GAAO,UAGnC4Q,EAAavlB,EAAIgoB,sBAAsBqD,GACnCrzB,EAAE4vB,KAAKrC,EAAYvlB,EAAIuoB,SAAS9wB,SAChC8tB,EAAavtB,EAAE4vB,KAAKrC,EAAYvtB,EAAEc,MAAM,SAAU6b,GAC9C,MAAO/d,MAAK20C,YAAY52B,EAAM1D,IAC/Bra,QAEF2uB,EAAW9tB,SACZ8tB,EAAatU,IAMZlX,EAAI,EAAOwrB,EAAW9tB,OAAfsC,EAAuBA,IAC/B8tB,EAAQtC,EAAWxrB,GACnByvC,IAAalC,IAAetnC,EAAIolB,iBAAiBkiB,EAAYzf,KAAWjxB,KAAK4yC,SAAS3hB,EAAO5W,GAC5Fu4B,IAGDlC,GAAc1wC,KAAK00C,OAAOzjB,IAC1B7vB,EAAE61B,KAAKhG,EAAMtC,WAAYsmB,GACzB7rC,EAAIyE,OAAOojB,IAEXyD,EAAUv0B,KAAK8wB,GAGnByD,GAAU7zB,QAAU8tB,EAAW9tB,QAAUb,KAAK80C,UAAUrgB,KACxDC,GAAaD,IAEZic,IACDA,EAAatnC,EAAIoqB,OAAOiB,EAAejF,cAAewD,GACtD5pB,EAAIa,aAAaymC,EAAYhc,EAAU,KAE3C10B,KAAK8zB,KAAK4c,EAAYhc,GACjBtrB,EAAI8K,GAAGw8B,EAAY1d,IACpB5pB,EAAIgqB,UAAUsd,EAAY1d,GAE9BhzB,KAAK60C,MAAM7hB,EAAK0d,IAEpBpb,MAAO,SAAUjb,GACb,GAA0B66B,GAAaC,EAAWH,EAA9C7xC,EAAI,EAAGiyC,IACX,GACIJ,GAAU5rC,EAAImsB,gBAAgBlb,EAAMlX,IAChC,KACA,SAEC+xC,GAAeF,GAAWE,EAU3BC,EAAUh1C,KAAKka,EAAMlX,KATjB+xC,GACAE,EAASj1C,MACL60C,QAASE,EACT76B,MAAO86B,IAGfA,GAAa96B,EAAMlX,IACnB+xC,EAAcF,GAIlB7xC,UACSkX,EAAMxZ,OAAVsC,EAKT,KAJAiyC,EAASj1C,MACL60C,QAASE,EACT76B,MAAO86B,IAENhyC,EAAI,EAAOiyC,EAASv0C,OAAbsC,EAAqBA,IAC7BnD,KAAK+0C,eAAeK,EAASjyC,GAAG6xC,QAASI,EAASjyC,GAAGkX,QAG7D0Z,OAAQ,SAAUob,GACd,GAAsFoC,GAASrN,EAAIhN,EAAGjG,EAAlG4V,EAAWsI,EAAG3f,cAAc4N,yBAA0BqX,EAAYz0C,KAAKy0C,SAC3E,KAAKvQ,EAAKiL,EAAGlxB,WAAYimB,EAAIA,EAAKA,EAAG/lB,YAAa,CAE9C,IADA+Y,EAAI9tB,EAAIoqB,OAAO2b,EAAG3f,cAAeilB,GAAa,KACvCvQ,EAAGjmB,YACNgT,EAAQiT,EAAGjmB,WACP7U,EAAIuoB,QAAQV,IACRiG,EAAEjZ,aACF4oB,EAASjT,YAAYsD,GACrBA,EAAI9tB,EAAIoqB,OAAO2b,EAAG3f,cAAeilB,GAAa,MAElD5N,EAASjT,YAAY3C,IAErBiG,EAAEtD,YAAY3C,EAGlBiG,GAAEjZ,YACF4oB,EAASjT,YAAYsD,GAG7Bqa,EAAUvxC,KAAK40C,aAAazF,GACxBoC,EAAQ,IACRnoC,EAAI0D,YAAY+5B,EAAU0K,EAAQV,OAAO,IACzCU,EAAQV,OAAOhjC,UAEfzE,EAAI0D,YAAY+5B,EAAUsI,GAE9B/lC,EAAIyE,OAAOshC,IAEfthC,OAAQ,SAAUwM,GAAV,GACAq2B,GACKvtC,EAAOu0B,CAAhB,KAASv0B,EAAI,EAAGu0B,EAAIrd,EAAMxZ,OAAY62B,EAAJv0B,EAAOA,IACrCutC,EAAa1wC,KAAKiX,OAAOq5B,WAAWj2B,EAAMlX,IACtCutC,GACA1wC,KAAK+zB,OAAO2c,IAIxB/N,OAAQ,SAAUzwB,GAAV,GAMQsE,GALRvN,EAAOjJ,KAAMqa,EAAQrD,EAAU9E,GAAQmyB,EAAWnyB,EAAM4F,uBACvDuC,GAAMxZ,SACPqR,EAAM0qB,mBAAmByH,GACzBhqB,EAAQrD,EAAU9E,GACbmI,EAAMxZ,SACH2V,EAAO6tB,EAAS7U,cAAcuQ,eAAe,IACjD7tB,EAAMkF,eAAewc,YAAYpd,GACjC6D,GAAS7D,GACTtE,EAAMmC,WAAWmC,EAAK+X,cAG1BtlB,EAAKgO,OAAOK,YAAY+C,IACxBpR,EAAKmI,MAAMc,GACXjJ,EAAK4E,OAAOwM,IAEZpR,EAAKqsB,MAAMjb,MAInBg7B,EAAclT,EAAQxiC,QACtBC,KAAM,SAAUC,GACZA,EAAQua,UAAY,GAAI+pB,GAActkC,EAAQmzB,KAC9CmP,EAAQriC,GAAGF,KAAKG,KAAKC,KAAMH,MAG/By1C,EAAW/zC,EAAW5B,QACtBC,KAAM,SAAUC,GACZG,KAAKH,QAAUA,EACf0B,EAAWzB,GAAGF,KAAKG,KAAKC,KAAML,EAAOE,GAAWoX,OAAQ,GAAIu9B,GAAiB30C,EAAQmzB,SAEzF5yB,QAAS,SAAU6Z,GACf,MAAO,IAAIo7B,GAAY11C,EAAOsa,GAAoB+Y,IAAKhzB,KAAKH,QAAQmzB,SAG5ErzB,GAAOiE,GACH4wC,iBAAkBA,EAClBrQ,cAAeA,EACfkR,YAAaA,EACbC,SAAUA,IAEdhyC,EAAa,sBAAuB,GAAIgyC,IACpCtiB,IAAK,KACL1wB,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBuM,MAAO,6BAGf3L,EAAa,oBAAqB,GAAIgyC,IAClCtiB,IAAK,KACL1wB,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBuM,MAAO,4BAGjBvN,OAAOlC,MAAM0c,SACC,kBAAV3c,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,eAAgB,gBAAiBD,IAC1C,YACG,SAAU8B,EAAGC,GAkTV,QAASk0C,GAAkBC,EAAK3T,GAE5B,IADA,GAAI1+B,GAAIqyC,EAAI30C,OACLsC,MAAQ0+B,EAAOxuB,KAAKmiC,EAAIryC,MAE/B,MAAOA,GAEX,QAASsyC,GAAcD,EAAK3T,GACxB,GAAI+G,GAAI/G,EAAOvuB,KAAKkiC,EACpB,OAAO5M,GAAIA,EAAEnN,MAAQ,GA1T5B,GACOj8B,GAAQkC,OAAOlC,MAAOmC,EAAQnC,EAAMmC,MAAOhC,EAASyB,EAAEzB,OAAQuC,EAAQd,EAAEc,MAAO0B,EAASpE,EAAMqC,GAAGsH,OAAQC,EAAMxF,EAAOyF,IAAK6N,EAAatT,EAAOsT,WAAY1U,EAAcoB,EAAOpB,YAAa2/B,EAAUv+B,EAAOu+B,QAAS7gC,EAAOsC,EAAOtC,KAAMc,EAAewB,EAAOxB,aAAcmuC,EAAkB3sC,EAAO2sC,gBAAiBT,EAAqBlsC,EAAOksC,mBAAoB94B,EAAYE,EAAWF,UAAW1T,EAAeM,EAAOpB,YAAYc,aAAcnB,EAAO3C,EAAM2C,KACxcuzC,EAAgB,UAChBC,EAAiB,YACjBC,EAAqB,mBACrBC,EAAmBl0C,EAAMhC,QACzBywC,aAAc,SAAUC,GACpB,MAAOjnC,GAAImmB,aAAa8gB,GAAa,SAGzCyF,EAAgBn0C,EAAMhC,QACtBC,KAAM,WACFI,KAAKiX,OAAS,GAAI4+B,IAEtBvgB,MAAO,SAAUpjB,EAAOkd,GAAjB,GAEC2mB,GAAStnC,EAAK2L,EAAWme,EAAGva,EAcxBg4B,EACK7yC,EAhBTkX,EAAQrD,EAAU9E,EAEtB,IAAIkd,EAAWxjB,UAAW,CActB,IAbA6C,EAAMyI,EAAWmlB,kBAAkBnqB,GACnC6jC,EAAU7+B,EAAWkqB,WAAWlvB,GAChCA,EAAM2qB,iBACNtE,EAAInvB,EAAIoqB,OAAO/kB,EAAK,IAAK2gB,GACzBld,EAAMsrB,WAAWjF,GACjBva,EAASua,EAAEhK,WACa,KAApBnlB,EAAInG,KAAK+a,IACT5U,EAAI0D,YAAYyrB,EAAGva,GAEnB5U,EAAI8nB,UAAUlT,IACd5U,EAAIyE,OAAOmQ,GAEXg4B,EAAMzd,EACDp1B,EAAI,EAAO4yC,EAAQl1C,OAAZsC,EAAoBA,IAChCiG,EAAI0D,YAAYipC,EAAQ5yC,GAAI6yC,GAC5BA,EAAMD,EAAQ5yC,EAEd4yC,GAAQl1C,SACRuI,EAAIa,aAAawE,EAAIsxB,eAAe,UAAWgW,EAAQ,IACvD3sC,EAAI0D,YAAY2B,EAAIsxB,eAAe,UAAWgW,EAAQ,IACtD7jC,EAAMsqB,eAAeuZ,EAAQ,IAC7B7jC,EAAMyqB,YAAYoZ,EAAQA,EAAQl1C,OAAS,SAG/CuZ,GAAY,GAAIm2B,KAAmBltC,MAAO,OAAS+rB,GACnDhV,EAAUnD,OAASjX,KAAKiX,OACxBmD,EAAUkb,MAAMjb,MAIxB47B,EAAgB9T,EAAQxiC,QACxBC,KAAM,SAAUC,GACZA,EAAQua,WACJuoB,OAAQ,SAAUzwB,GACd,GAAIq+B,KAAmBltC,MAAO,QAASwK,OAAOmJ,EAAU9E,MAGhElS,KAAKH,QAAUA,EACfsiC,EAAQriC,GAAGF,KAAKG,KAAKC,KAAMH,MAG/Bq2C,EAAc/T,EAAQxiC,QACtBC,KAAM,SAAUC,GACZG,KAAKH,QAAUA,EACfsiC,EAAQriC,GAAGF,KAAKG,KAAKC,KAAMH,GAC3BG,KAAKoa,UAAY,GAAI07B,GAChBj2C,EAAQs2C,IAITn2C,KAAKsT,KAAO,WACRtT,KAAKoa,UAAUkb,MAAMz1B,EAAQqS,OACzBrC,KAAMhQ,EAAQs2C,IACdvqC,UAAW/L,EAAQ2W,MAAQ3W,EAAQs2C,IACnCniC,OAAQnU,EAAQmU,WAPxBhU,KAAKovB,WAAa,KAClBpvB,KAAKyZ,OAAQ,IAWrB28B,gBAAiB,WACb,MAAO52C,GAAM8C,SAAS,ipCAA40C2B,SAAUjE,KAAKmJ,OAAOtJ,QAAQoE,YAEp4CqP,KAAM,WAAA,GAIE+G,GACAke,EACA8d,EACAC,EANAryC,EAAWjE,KAAKmJ,OAAOtJ,QAAQoE,QACnCjE,MAAKu2C,aAAe,GACpBv2C,KAAKw2C,OAASx2C,KAAKsiC,WAAU,GACzBjoB,EAAQrD,EAAUhX,KAAKw2C,QACvBje,EAAIle,EAAMxZ,OAASb,KAAKoa,UAAUnD,OAAOm5B,aAAa/1B,EAAM,IAAM,KAClEg8B,EAAMh8B,EAAMxZ,QAAgC,OAAtBuI,EAAInG,KAAKoX,EAAM,IACrCi8B,EAASt2C,KAAKyiC,aAAaziC,KAAKo2C,mBAChCnnC,MAAOhL,EAASe,WAChB+K,MAAO7N,EAAMlC,KAAKy2C,OAAQz2C,MAC1B02C,SAAS,IAETne,IACAv4B,KAAKw2C,OAAO5Z,mBAAmBrE,GAC/Ble,EAAQrD,EAAUhX,KAAKw2C,SAE3Bx2C,KAAKu2C,aAAev2C,KAAKgH,SAASqT,GAClCi8B,EAAO1sC,KAAK,oBAAoBuK,MAAMjS,EAAMlC,KAAK22C,OAAQ32C,OAAOi5B,MAAMrvB,KAAK,mBAAmBuK,MAAMjS,EAAMlC,KAAKy2C,OAAQz2C,OAAOi5B,MAAMrvB,KAAK,uBAAuBiI,QAAQ3P,EAAMlC,KAAK42C,SAAU52C,OAAOi5B,MAAMrvB,KAAK,sBAAsBsG,IAAIlQ,KAAK62C,QAAQte,IAAIU,MAAMrvB,KAAK,uBAAuBsG,IAAIlQ,KAAKu2C,cAActd,MAAMrvB,KAAK,wBAAwBsG,IAAIqoB,EAAIA,EAAEtpB,MAAQ,IAAIgqB,MAAMrvB,KAAK,yBAAyBE,KAAK,UAAWyuB,EAAgB,UAAZA,EAAEvkB,QAAqB,GAAOilB,MAAMrvB,KAAK,2BAA2B+4B,QAAQ0T,GAChfr2C,KAAK82C,QAAUR,EAAOjoB,KAAK,eAAe0oB,SAAStnC,OACnDrO,EAAE,qBAAsBk1C,GAAQvkC,QAAQwsB,UAE5CqY,SAAU,SAAUrqC,GAChB,GAAIpK,GAAO3C,EAAM2C,IACboK,GAAEgG,SAAWpQ,EAAK60C,MAClBh3C,KAAK22C,OAAOpqC,GACLA,EAAEgG,SAAWpQ,EAAK80C,KACzBj3C,KAAKy2C,OAAOlqC,IAGpBoqC,OAAQ,SAAUpqC,GAAV,GAGA0C,GAAOuH,EAAMxC,EAFbrL,EAAU3I,KAAK82C,QAAQnuC,QACvBkH,EAAOzO,EAAE,qBAAsBuH,GAASuH,MAExCgnC,EAAY91C,EAAE,sBAAuBuH,EACrCkH,IAAQA,GAAQ6lC,IACZ7lC,EAAKlF,QAAQ,KAAO,IAAM,kBAAkB0I,KAAKxD,KACjDA,EAAO,UAAYA,GAEvB7P,KAAKovB,YAAevf,KAAMA,GAC1BZ,EAAQ7N,EAAE,uBAAwBuH,GAASuH,MACvCjB,IACAjP,KAAKovB,WAAWngB,MAAQA,GAExBioC,EAAUhjC,GAAG,cACbsC,EAAO0gC,EAAUhnC,MACZsG,GAASxW,KAAKu2C,aAER//B,GAAQA,IAASxW,KAAKu2C,eAC7Bv2C,KAAKovB,WAAWxjB,UAAYxC,EAAIonB,SAASha,IAFzCxW,KAAKovB,WAAWxjB,UAAYiE,GAKpCmE,EAAS5S,EAAE,wBAAyBuH,GAASuL,GAAG,YAChDlU,KAAKovB,WAAWpb,OAASA,EAAS,SAAW,KAC7ChU,KAAKoa,UAAUkb,MAAMt1B,KAAKw2C,OAAQx2C,KAAKovB,aAE3CpvB,KAAKy2C,OAAOlqC,GACRvM,KAAK0Z,QACL1Z,KAAK0Z,UAGb+8B,OAAQ,SAAUlqC,GACdA,EAAE0F,iBACFjS,KAAK82C,QAAQpgC,UACbtN,EAAIumB,mBAAmBzY,EAAWmlB,kBAAkBr8B,KAAKw2C,SAASzkC,QAClE/R,KAAKuiC,aAAaviC,KAAKw2C,SAE3BK,QAAS,SAAUM,GACf,MAAIA,GACOA,EAAOzkC,aAAa,OAAQ,GAEhCgjC,GAEX1uC,SAAU,SAAUqT,GAAV,GAEFlX,GADAqT,EAAO,EAEX,KAAKrT,EAAI,EAAOkX,EAAMxZ,OAAVsC,EAAkBA,IAC1BqT,GAAQ6D,EAAMlX,GAAG4P,SAErB,OAAO3J,GAAIonB,SAASha,GAAQ,KAEhC7V,KAAM,WACF,GAAIuR,GAAQlS,KAAKsiC,WAAU,EAC3BtiC,MAAKoa,UAAUkb,MAAMpjB,EAAOlS,KAAKovB,YACjCpvB,KAAKuiC,aAAarwB,MAGtBklC,EAAkBjV,EAAQxiC,QAC1BC,KAAM,SAAUC,GACZsiC,EAAQriC,GAAGF,KAAKG,KAAKC,KAAMH,GAC3BG,KAAKoa,UAAY,GAAI07B,IAEzBxiC,KAAM,WAAA,GAKEpB,GACAmlC,EACAC,EANAC,EAAev3C,KAAKw3C,YACnBD,KAGDrlC,EAAQlS,KAAK2Q,WACb0mC,EAAa,GAAI73C,GAAMqC,GAAGsH,OAAO6yB,OACjCsb,EAAYplC,EAAM4qB,aACtBwa,EAAUtkC,SAASukC,EAAavqC,MAAM+Q,KAAMw5B,EAAavqC,MAAMqF,QAC/DilC,EAAU/a,OAAOgb,EAAate,IAAIlb,KAAMw5B,EAAate,IAAI5mB,QACzDH,EAAQlS,KAAKsiC,YACb+U,EAAW3X,IAAI4X,GACft3C,KAAKoa,UAAUkb,MAAMgiB,GAAaznC,KAAM7P,KAAKy3C,mBAAmBF,EAAa/gC,QAC7E6gC,EAAWxpC,OAAOypC,GAClBt3C,KAAKuiC,aAAarwB,KAEtBslC,WAAY,WAAA,GACJtlC,GAAQlS,KAAK2Q,WACb+mC,EAAY,GAAIC,IAChB55B,KAAM7L,EAAMkF,eACZ/E,OAAQH,EAAM4G,YACd8+B,aAAc,SAAU75B,GACpB,MAAOA,IAA2B,MAAnB3U,EAAInG,KAAK8a,MAG5B85B,EAAY,GAAIC,GAAqBJ,EACzC,OAAOG,GAAUL,cAErBtiC,eAAgB,WACZ,QAASlV,KAAKw3C,cAElBC,mBAAoB,SAAUzwC,GAC1B,GAAI+wC,GAAc/3C,KAAKg4C,mBAAmBhxC,EAC1C,OAAO+wC,GAAc/wC,EAAWhH,KAAKi4C,uBAAuBjxC,IAEhEgxC,mBAAoB,SAAUhxC,GAC1B,MAAO2uC,GAAetiC,KAAKrM,IAE/BixC,uBAAwB,SAAUjxC,GAC9B,MAAO0uC,GAAgB1uC,KAG3BkxC,EAAa52C,EAAK3B,QAClBC,KAAM,SAAUC,GACZG,KAAKH,QAAUA,EACfG,KAAKiX,OAAS,GAAI64B,KAAsBzsC,MAAO,QAC/C/B,EAAKxB,GAAGF,KAAKG,KAAKC,KAAMoB,EAAEzB,OAAOE,GAAWO,QAAS61C,MAEzDn8B,WAAY,SAAUjY,EAAIhC,GACtByB,EAAKxB,GAAGga,WAAW/Z,KAAKC,KAAM6B,EAAIhC,GAClCgC,EAAGkI,SAAS,qBAEhBN,OAAQ,SAAU5H,EAAIwY,GAClBxY,EAAGyY,YAAY,oBAAqBta,KAAKiX,OAAOK,YAAY+C,IAAQvF,YAAY,oBAGpFgjC,EAAuBn2C,EAAMhC,QAC7BC,KAAM,SAAU83C,GACZ13C,KAAK03C,UAAYA,EACjB13C,KAAKgN,MAAQmrC,IACbn4C,KAAKi5B,IAAMkf,IACXn4C,KAAKwW,KAAO,IAEhBghC,WAAY,WAAA,GAIAhhC,GAKA0gB,EAUIkhB,EACAC,EAnBRt6B,EAAO/d,KAAK03C,UAAU35B,KACtB1L,EAASrS,KAAK03C,UAAUrlC,MAC5B,IAAIjJ,EAAIglB,WAAWrQ,IAEf,GADIvH,EAAOuH,EAAKsQ,KAAKyT,UAAU,EAAGzvB,GAC9B,SAASgB,KAAKjK,EAAIonB,SAASha,IAC3B,WAEc,KAAXnE,IACH6kB,EAAI9tB,EAAIssB,sBAAsB3X,EAAM3U,EAAIqU,eACxCyZ,GAAKA,EAAE/I,iBACPnuB,KAAK03C,UAAU93C,MAAOme,KAAMmZ,EAAE/I,kBAgBtC,OAbAnuB,MAAK03C,UAAUzZ,SAAS78B,EAAEc,MAAMlC,KAAKs4C,WAAYt4C,OAC5CA,KAAKi5B,IAAIsf,UACVv4C,KAAK03C,UAAY13C,KAAK03C,UAAUc,MAAMx4C,KAAKi5B,KAC3Cj5B,KAAK03C,UAAUzZ,SAAS78B,EAAEc,MAAMlC,KAAKy4C,aAAcz4C,OAC9CA,KAAK04C,oBACFN,EAAoBp4C,KAAK03C,UAAUiB,cAAc34C,KAAKgN,OACtDqrC,EAAsB,GAAIO,GAAsBR,GACpDC,EAAoBpa,SAAS78B,EAAEc,MAAMlC,KAAK64C,qBAAsB74C,OAC3DA,KAAK04C,oBACN14C,KAAKgN,MAAQmrC,OAIrBn4C,KAAKgN,MAAMurC,QACJ,MAGHvrC,MAAOhN,KAAKgN,MACZisB,IAAKj5B,KAAKi5B,IACVziB,KAAMxW,KAAKwW,OAIvBkiC,gBAAiB,WACb,MAAO/C,GAAetiC,KAAKrT,KAAKwW,OAAS,WAAWnD,KAAKrT,KAAKwW,OAElE8hC,WAAY,SAAU9hC,EAAMuH,GACxB,GAAI5a,GAAIoyC,EAAkB/+B,EAAMo/B,EAChC,OAAIzyC,GAAI,IACJnD,KAAKi5B,IAAIlb,KAAOA,EAChB/d,KAAKi5B,IAAI5mB,OAASlP,EAAI,GACf,GAHX,GAMJs1C,aAAc,SAAUjiC,EAAMuH,GAAhB,GACN5a,GAAIoyC,EAAkB/+B,EAAM,MAC5BsiC,EAAK31C,EAAI,CAIb,OAHAnD,MAAKwW,KAAOA,EAAKsrB,UAAUgX,GAAM94C,KAAKwW,KACtCxW,KAAKgN,MAAM+Q,KAAOA,EAClB/d,KAAKgN,MAAMqF,OAASymC,EAChB31C,EAAI,IACG,EADX,GAIJ01C,qBAAsB,SAAUriC,EAAMuH,EAAM1L,GAAtB,GACdlP,GAAIsyC,EAAcj/B,EAAM,MACxBsiC,EAAK31C,CAOT,OANU,KAANA,IACA21C,EAAKtiC,EAAK3V,QAEdb,KAAKwW,KAAOxW,KAAKwW,KAAKsrB,UAAUgX,GAChC94C,KAAKgN,MAAM+Q,KAAOA,EAClB/d,KAAKgN,MAAMqF,OAASymC,GAAe,EAATzmC,GACtBlP,EAAI,IACG,EADX,KAeJg1C,EAAS,WACT,OACIp6B,KAAM,KACN1L,OAAQ,KACRkmC,MAAO,WACH,MAAqB,QAAdv4C,KAAK+d,MAAiC,OAAhB/d,KAAKqS,UAI1C0mC,EAAmBp3C,EAAMhC,QACzBC,KAAM,SAAUC,GACZG,KAAK+d,KAAOle,EAAQke,KACpB/d,KAAKqS,OAASxS,EAAQwS,SAAWhR,EAAY+H,EAAIglB,WAAWpuB,KAAK+d,OAAS/d,KAAK+d,KAAKld,QAAU,EAAIhB,EAAQwS,OAC1GrS,KAAK43C,aAAe/3C,EAAQ+3C,cAAgB53C,KAAK43C,cAAgBx2C,EAAE8Y,MAEvE+jB,SAAU,SAAUC,GACXA,IAGLl+B,KAAKg5C,QAAS,EACdh5C,KAAKi5C,UAAU/a,EAAUl+B,KAAK+d,KAAM/d,KAAKqS,UAE7C4mC,UAAW,SAAU/a,EAAUngB,EAAM1L,GAA1B,GAKCmE,GAMA0iC,EAIJhmB,EAEIlV,CAhBR,IAAKD,IAAQ/d,KAAKg5C,OAAlB,CAGA,GAAsB,IAAlBj7B,EAAKjL,SASL,MAFIomC,GAAWl5C,KAAKk5C,SAASn7B,GAC7B/d,KAAKg5C,OAASh5C,KAAKg5C,QAAUh5C,KAAK43C,aAAasB,GACxCl5C,KAAKi5C,UAAU/a,EAAUgb,EAGpC,IAXQ1iC,EAAOuH,EAAKsQ,KACZhc,IAAWhR,IACXmV,EAAOxW,KAAKm5C,QAAQ3iC,EAAMnE,IAE9BrS,KAAKg5C,OAAS9a,EAAS1nB,EAAMuH,EAAM1L,MAAY,EAM/C6gB,EAAOlzB,KAAKkzB,KAAKnV,IAChBmV,EAED,IADIlV,EAASD,EAAKwQ,YACV2E,GAAQ9pB,EAAIyoB,SAAS7T,IACzBkV,EAAOlzB,KAAKkzB,KAAKlV,GACjBA,EAASA,EAAOuQ,UAGxBvuB,MAAKg5C,OAASh5C,KAAKg5C,QAAUh5C,KAAK43C,aAAa1kB,GAC/ClzB,KAAKi5C,UAAU/a,EAAUhL,KAE7BylB,cAAe,SAAU5jC,GACrB,MAAO3T,GAAEzB,QACLoe,KAAM/d,KAAK+d,KACX1L,OAAQrS,KAAKqS,OACbulC,aAAc53C,KAAK43C,cACpB7iC,QAEPmkC,SAAU,SAAUn7B,KAEpBmV,KAAM,SAAUnV,KAEhBo7B,QAAS,SAAU3iC,EAAMnE,OAGzBslC,EAAuBoB,EAAiBp5C,QACxCw5C,QAAS,SAAU3iC,EAAM4iC,GACrB,MAAO5iC,GAAKsrB,UAAU,EAAGsX,IAE7BlmB,KAAM,SAAUnV,GACZ,MAAOA,GAAKoQ,iBAEhB+qB,SAAU,SAAUn7B,GAChB,MAAOA,GAAKyT,WAEhBgnB,MAAO,SAAU34C,GACb,GAAIkV,GAAI/U,KAAK24C,cAAc94C,EAC3B,OAAO,IAAI83C,GAAqB5iC,MAGpC6jC,EAAwBG,EAAiBp5C,QACzCw5C,QAAS,SAAU3iC,EAAM4iC,GACrB,MAAO5iC,GAAKsrB,UAAUsX,IAE1BlmB,KAAM,SAAUnV,GACZ,MAAOA,GAAKI,aAEhB+6B,SAAU,SAAUn7B,GAChB,MAAOA,GAAKE,YAEhBu6B,MAAO,SAAU34C,GACb,GAAIkV,GAAI/U,KAAK24C,cAAc94C,EAC3B,OAAO,IAAI+4C,GAAsB7jC,KAGzCpV,GAAOH,EAAMqC,GAAGsH,QACZ0sC,iBAAkBA,EAClBC,cAAeA,EACfG,cAAeA,EACfC,YAAaA,EACbkB,gBAAiBA,EACjBc,WAAYA,EACZJ,qBAAsBA,EACtBH,qBAAsBA,EACtBiB,sBAAuBA,IAE3Bt1C,EAAa,aAAc,GAAIhC,IAC3BqY,IAAK,IACLC,MAAM,EACNxZ,QAAS81C,EACT5zC,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBuM,MAAO,mBAGf3L,EAAa,SAAU,GAAI40C,IACvBv+B,IAAK,IACLC,MAAM,EACN4rB,OAAO,EACPljC,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBuM,MAAO,mBAGf3L,EAAa,WAAY,GAAIhC,IACzBqY,KACIxX,EAAK60C,MACL70C,EAAKk3C,UAETjmC,iBAAiB,EACjBhT,QAASg3C,MAEf11C,OAAOlC,MAAM0c,SACC,kBAAV3c,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,eACH,oBACA,eACDD,IACL,YACG,SAAU8B,EAAGC,GAAb,GACO7B,GAAQkC,OAAOlC,MAAOG,EAASyB,EAAEzB,OAAQiE,EAASpE,EAAMqC,GAAGsH,OAAQ3G,EAAcoB,EAAOpB,YAAa4G,EAAMxF,EAAOyF,IAAK/F,EAAed,EAAYc,aAAclB,EAAewB,EAAOxB,aAAc8U,EAAatT,EAAOsT,WAAYirB,EAAUv+B,EAAOu+B,QAAS2T,EAAgBlyC,EAAOkyC,cAAe9+B,EAAYE,EAAWF,UAAW7U,EAAO3C,EAAM2C,KAAMm3C,EAAiB,qBAAsBC,EAAmB,uBACnZC,EAAcrX,EAAQxiC,QACtBC,KAAM,SAAUC,GACZ,GAAIoJ,GAAOjJ,IACXmiC,GAAQriC,GAAGF,KAAKG,KAAKkJ,EAAMpJ,GAC3BoJ,EAAKmR,UAAY,GAAI07B,GACrB7sC,EAAKwQ,OAAQ,EACbxQ,EAAKmmB,eAETjqB,WAAY,SAAUs0C,EAAMvnC,GAAhB,GACJkd,GAAapvB,KAAKovB,WAClB3gB,EAAMyI,EAAWmlB,kBAAkBnqB,EACvC,IAAIkd,EAAWvf,MAA2B,WAAnBuf,EAAWvf,KAAmB,CACjD,IAAK4pC,EAWD,MAVAA,GAAOrwC,EAAIoqB,OAAO/kB,EAAK,KAAOoB,KAAMuf,EAAWvf,OAC/C4pC,EAAK7tC,UAAYwjB,EAAWxjB,UAC5BsG,EAAM2qB,iBACN3qB,EAAMsrB,WAAWic,GACZA,EAAKt7B,aACN/U,EAAI0D,YAAY2B,EAAIsxB,eAAe,UAAW0Z,GAElDvnC,EAAMuqB,cAAcgd,GACpBvnC,EAAMyqB,YAAY8c,GAClBviC,EAAWhE,YAAYhB,IAChB,CAEP9I,GAAIU,KAAK2vC,EAAMrqB,GAGvB,OAAO,GAEXgnB,gBAAiB,SAAUsD,GACvB,MAAOl6C,GAAM8C,SAAS,ovBAClB2B,SAAUjE,KAAKmJ,OAAOtJ,QAAQoE,SAC9By1C,YAAaA,KAGrB/4C,KAAM,WACF,GAAIsI,GAAOjJ,KAAMkS,EAAQjJ,EAAKq5B,WAC9BtiC,MAAKoa,UAAUkb,MAAMpjB,EAAOlS,KAAKovB,YACjCnmB,EAAKs5B,aAAarwB,IAEtBoB,KAAM,WAMF,QAASgiB,GAAM/oB,GACX,GAAI5D,GAAU2tC,EAAO3tC,QAASkH,EAAOlH,EAAQiB,KAAK0vC,GAAgBppC,MAAMvE,QAAQ,KAAM,OAAQC,EAAYjD,EAAQiB,KAAK2vC,GAAkBrpC,KACzIjH,GAAKmmB,YACDvf,KAAMA,EACNjE,UAAyB,KAAdA,EAAmBA,EAAYiE,GAE9C8pC,EAAU1wC,EAAK9D,WAAWs0C,EAAMvnC,GAChCnC,EAAMxD,GACFtD,EAAKyQ,QACLzQ,EAAKyQ,SAGb,QAAS3J,GAAMxD,GACXA,EAAE0F,iBACFqkC,EAAO5/B,UACPtN,EAAIumB,mBAAmBzY,EAAWmlB,kBAAkBnqB,IAAQH,QACvD4nC,GACD1wC,EAAKs5B,aAAarwB,GAG1B,QAAS0nC,GAAQrtC,GACTA,EAAEgG,SAAWpQ,EAAK60C,MAClB1hB,EAAM/oB,GACCA,EAAEgG,SAAWpQ,EAAK80C,KACzBlnC,EAAMxD,GA7Bd,GAAiK+pC,GAA7JrtC,EAAOjJ,KAAMkS,EAAQjJ,EAAKq5B,YAAajoB,EAAQrD,EAAU9E,GAAQynC,GAAU,EAAOF,EAAOp/B,EAAMxZ,OAASb,KAAKoa,UAAUnD,OAAOm5B,aAAa/1B,EAAM,IAAM,KAAcxa,EAAUoJ,EAAKE,OAAOtJ,QAASoE,EAAWpE,EAAQoE,SAAUsS,EAAc1W,EAAQ0W,YAAamjC,KAAiBl6C,EAAMqC,GAAGg4C,aAAetjC,GAAeA,EAAYujC,WAAavjC,EAAYujC,UAAUC,OAAS14C,GAAY6U,GAC5XjH,MAAOhL,EAASkB,WAChBuxC,SAAS,EACThqC,UAAWgtC,EA6BnBxjC,GAAcnG,MAAQA,EAClB2pC,IACAxjC,EAAcnI,MAAQ,KAE1BuoC,EAASt2C,KAAKyiC,aAAax5B,EAAKmtC,gBAAgBsD,GAAcxjC,GAAeoE,YAAY,uBAAwBo/B,GAAa9vC,KAAK,oBAAoBuK,MAAMmhB,GAAO2D,MAAMrvB,KAAK,mBAAmBuK,MAAMpE,GAAOkpB,MAAMrvB,KAAK,uBAAuBiI,QAAQ+nC,GAAS3gB,MAAMrvB,KAAK0vC,GAAgBppC,IAAIupC,EAAOA,EAAK/mC,aAAa,OAAQ,GAAK,WAAWumB,MAAMrvB,KAAK2vC,GAAkBrpC,IAAIupC,EAAOA,EAAKxqC,MAAQ,IAAIgqB,MAAM5K,KAAK,eAClZqrB,IACAzwC,EAAK+wC,aAAe,GAAIx6C,GAAMqC,GAAGg4C,YAAYvD,EAAO3tC,QAAQiB,KAAK,kBAAmBjK,KAAW4W,GAC3FmD,OAAQ,WACJ48B,EAAO3tC,QAAQiB,KAAK0vC,GAAgBppC,IAAIlQ,KAAK4I,UAEjD0sB,MAAOA,MAGfghB,EAAOS,SAAStnC,OAChB6mC,EAAO3tC,QAAQiB,KAAK0vC,GAAgBvnC,QAAQwsB,WAGpD/+B,GAAMqC,GAAGsH,OAAOqwC,YAAcA,EAC9Bl2C,EAAa,aAAc,GAAIM,GAAOtC,MAClClB,QAASo5C,EACTl3C,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBuM,MAAO,oBAGjBvN,OAAOlC,MAAM0c,SACC,kBAAV3c,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,gBACH,qBACA,eACDD,IACL,YACG,SAAU8B,EAAGC,GAAb,GACO7B,GAAQkC,OAAOlC,MAAOG,EAASyB,EAAEzB,OAAQiE,EAASpE,EAAMqC,GAAGsH,OAAQ3G,EAAcoB,EAAOpB,YAAa4G,EAAMxF,EAAOyF,IAAK/F,EAAed,EAAYc,aAAclB,EAAewB,EAAOxB,aAAc8U,EAAatT,EAAOsT,WAAYirB,EAAUv+B,EAAOu+B,QAAShgC,EAAO3C,EAAM2C,KAAM83C,EAAkB,sBAAuBC,EAAoB,wBAAyBC,EAAoB,wBAAyBC,EAAqB,yBACzaC,EAAelY,EAAQxiC,QACvBC,KAAM,SAAUC,GACZ,GAAIoJ,GAAOjJ,IACXmiC,GAAQriC,GAAGF,KAAKG,KAAKkJ,EAAMpJ,GAC3BoJ,EAAKwQ,OAAQ,EACbxQ,EAAKmmB,eAETlqB,YAAa,SAAUmxC,EAAKnkC,GAAf,GAIDooC,GAHJlrB,EAAapvB,KAAKovB,WAClB3gB,EAAMyI,EAAWmlB,kBAAkBnqB,EACvC,IAAIkd,EAAWvgB,KAAyB,WAAlBugB,EAAWvgB,IAAkB,CAY/C,GAXIyrC,EAAqB,WACrBjwC,WAAW,WACF+kB,EAAWrhB,OACZsoC,EAAIpiB,gBAAgB,SAEnB7E,EAAW7kB,QACZ8rC,EAAIpiB,gBAAgB,UAExBoiB,EAAIpiB,gBAAgB,gBAGvBoiB,EAYD,MAXAA,GAAMjtC,EAAIoqB,OAAO/kB,EAAK,MAAO2gB,GAC7BinB,EAAIrO,OAASqO,EAAIkE,QAAUD,EAC3BpoC,EAAM2qB,iBACN3qB,EAAMsrB,WAAW6Y,GACZA,EAAIl4B,aACL/U,EAAI0D,YAAY2B,EAAIsxB,eAAe,UAAWsW,GAElDiE,IACApoC,EAAMuqB,cAAc4Z,GACpBnkC,EAAMyqB,YAAY0Z,GAClBn/B,EAAWhE,YAAYhB,IAChB,CAEPmkC,GAAIrO,OAASqO,EAAIkE,QAAUD,EAC3BlxC,EAAIU,KAAKusC,EAAKjnB,GACdkrB,IAGR,OAAO,GAEXlE,gBAAiB,SAAUsD,GACvB,MAAOl6C,GAAM8C,SAAS,wqCAClB2B,SAAUjE,KAAKmJ,OAAOtJ,QAAQoE,SAC9By1C,YAAaA,KAGrB/4C,KAAM,WACF,GAAIsI,GAAOjJ,KAAMkS,EAAQjJ,EAAKq5B,WACzBr5B,GAAK/D,YAAYgS,EAAWwpB,MAAMxuB,GAAQA,IAC3CjJ,EAAKs5B,aAAarwB,IAG1BoB,KAAM,WAMF,QAASgiB,GAAM/oB,GACX,GAAI5D,GAAU2tC,EAAO3tC,QAASmF,EAAIrD,SAAS9B,EAAQiB,KAAKuwC,GAAmBjqC,MAAO,IAAKlC,EAAIvD,SAAS9B,EAAQiB,KAAKwwC,GAAoBlqC,MAAO,GAC5IjH,GAAKmmB,YACDvgB,IAAKlG,EAAQiB,KAAKqwC,GAAiB/pC,MAAMvE,QAAQ,KAAM,OACvD45B,IAAK58B,EAAQiB,KAAKswC,GAAmBhqC,OAEzCjH,EAAKmmB,WAAWrhB,MAAQ,KACxB9E,EAAKmmB,WAAW7kB,OAAS,MACpBK,MAAMkD,IAAMA,EAAI,IACjB7E,EAAKmmB,WAAWrhB,MAAQD,IAEvBlD,MAAMoD,IAAMA,EAAI,IACjB/E,EAAKmmB,WAAW7kB,OAASyD,GAE7B2rC,EAAU1wC,EAAK/D,YAAYmxC,EAAKnkC,GAChCnC,EAAMxD,GACFtD,EAAKyQ,QACLzQ,EAAKyQ,SAGb,QAAS3J,GAAMxD,GACXA,EAAE0F,iBACFqkC,EAAO5/B,UACPtN,EAAIumB,mBAAmBzY,EAAWmlB,kBAAkBnqB,IAAQH,QACvD4nC,GACD1wC,EAAKs5B,aAAarwB,GAG1B,QAAS0nC,GAAQrtC,GACTA,EAAEgG,SAAWpQ,EAAK60C,MAClB1hB,EAAM/oB,GACCA,EAAEgG,SAAWpQ,EAAK80C,KACzBlnC,EAAMxD,GArCd,GAAuM+pC,GAAnMrtC,EAAOjJ,KAAMkS,EAAQjJ,EAAKq5B,YAAaqX,GAAU,EAAOtD,EAAMn/B,EAAWwpB,MAAMxuB,GAAQvL,EAAa0vC,GAAOA,EAAI3jC,aAAa,UAAY,GAAI9L,EAAcyvC,GAAOA,EAAI3jC,aAAa,WAAa,GAAY7S,EAAUoJ,EAAKE,OAAOtJ,QAASoE,EAAWpE,EAAQoE,SAAUqS,EAAezW,EAAQyW,aAAcojC,KAAiBl6C,EAAMqC,GAAG24C,cAAgBlkC,GAAgBA,EAAawjC,WAAaxjC,EAAawjC,UAAUC,OAAS14C,GAAY6U,GACxajH,MAAOhL,EAASiB,YAChBwxC,SAAS,EACThqC,UAAWgtC,EAqCnBxjC,GAAcnG,MAAQA,EAClB2pC,IACAxjC,EAAcnI,MAAQ,KAE1BuoC,EAASt2C,KAAKyiC,aAAax5B,EAAKmtC,gBAAgBsD,GAAcxjC,GAAeoE,YAAY,uBAAwBo/B,GAAa9vC,KAAK,oBAAoBuK,MAAMmhB,GAAO2D,MAAMrvB,KAAK,mBAAmBuK,MAAMpE,GAAOkpB,MAAMrvB,KAAK,uBAAuBiI,QAAQ+nC,GAAS3gB,MAAMrvB,KAAKqwC,GAAiB/pC,IAAImmC,EAAMA,EAAI3jC,aAAa,MAAO,GAAK,WAAWumB,MAAMrvB,KAAKswC,GAAmBhqC,IAAImmC,EAAMA,EAAI9Q,IAAM,IAAItM,MAAMrvB,KAAKuwC,GAAmBjqC,IAAIvJ,GAAYsyB,MAAMrvB,KAAKwwC,GAAoBlqC,IAAItJ,GAAaqyB,MAAM5K,KAAK,eAC3eqrB,IACA15C,KAAKy6C,cAAgB,GAAIj7C,GAAMqC,GAAG24C,aAAalE,EAAO3tC,QAAQiB,KAAK,mBAAoBjK,KAAW2W,GAC9FoD,OAAQ,WACJ48B,EAAO3tC,QAAQiB,KAAKqwC,GAAiB/pC,IAAIlQ,KAAK4I,UAElD0sB,MAAOA,MAGfghB,EAAOS,SAAStnC,OAChB6mC,EAAO3tC,QAAQiB,KAAKqwC,GAAiBloC,QAAQwsB,WAGrD/+B,GAAMqC,GAAGsH,OAAOkxC,aAAeA,EAC/B/2C,EAAa,cAAe,GAAIM,GAAOtC,MACnClB,QAASi6C,EACT/3C,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBuM,MAAO,qBAGjBvN,OAAOlC,MAAM0c,SACC,kBAAV3c,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,qBAAsB,gBAAiBD,IAChD,YACG,SAAU8B,EAAGC,GAAb,GACO7B,GAAQkC,OAAOlC,MAAOk7C,EAAel7C,EAAMqC,GAAG64C,aAActxC,EAAM5J,EAAMqC,GAAGsH,OAAOE,IAClF65B,EAAYwX,EAAa/6C,QACzBC,KAAM,SAAU+I,EAAS9I,GACrB,GAAIoJ,GAAOjJ,IACX06C,GAAa56C,GAAGF,KAAKG,KAAKkJ,EAAMN,EAAS9I,GACrCL,EAAMuC,QAAQC,SAAS+F,MACvB/H,KAAK26C,qBACL36C,KAAKgpC,KAAK,YAAa5nC,EAAEc,MAAMlC,KAAK26C,mBAAoB36C,QAE5DiJ,EAAKuN,KAAKvN,EAAKpJ,QAAQoP,OACvBhG,EAAK+/B,KAAK,OAAQ,WACd,GAAI//B,EAAKpJ,QAAQ+6C,SAAU,CACvB,GAAsBC,GAAlB5P,EAAOhiC,EAAKgiC,IAChBA,GAAK78B,KACD0sC,WAAY,SACZ/sC,MAAO,SAEX8sC,EAAY5P,EAAKl9B,QACb8sC,EACAA,GAAa,GAEbA,EAAY5xC,EAAK8xC,WAErB9P,EAAK78B,IAAI,QAASysC,EAAYr7C,EAAMuC,QAAQi5C,aAC5C/xC,EAAK8xC,WAAaF,MAI9Bh7C,SACIoD,KAAM,YACNw4B,MAAO,IAEXkf,mBAAoB,WAAA,GAIZjc,GAGKv7B,EAQLo7B,EACA50B,EAfAsxC,EAAYj7C,KACZ4I,EAAQqyC,EAAUryC,QAClBsyC,EAAOl7C,KAAKgjC,WAAWkY,OAEvB3jC,EAAO,GACPa,EAAS5Y,EAAMi5B,UACnB,KAASt1B,EAAI,EAAO+3C,EAAKr6C,OAATsC,EAAiBA,IAC7Bu7B,EAAOwc,EAAK/3C,GACZoU,GAAQ,kBAAqBa,EAAOsmB,EAAK91B,OAAS,IAC9C81B,EAAK91B,OAASA,IACd2O,GAAQ,aAEZA,GAAQ,IAAMa,EAAOsmB,EAAKloB,MAAQ,WAElC+nB,GAASn9B,EAAE,oCAAwCmW,EAAO,aAC1D5N,EAAUvI,EAAEpB,KAAK2I,SAASa,QAAQ,aACtCG,EAAQupB,KAAK,qBAAqBrlB,SAClC0wB,EAAOzxB,YAAYnD,GACnB40B,EAAOltB,GAAG,SAAU,WAChB4pC,EAAUryC,MAAM5I,KAAK4I,OACrBqyC,EAAUv6C,QAAQ,aAG1BkI,MAAO,SAAUA,GACb,GAAIK,GAAOjJ,KAAMuxB,EAASmpB,EAAa56C,GAAG8I,MAAM7I,KAAKkJ,EAAML,EAC3D,OAAIA,KAAUvH,EACHkwB,GAENmpB,EAAa56C,GAAG8I,MAAM7I,KAAKkJ,IAC5BA,EAAKuN,KAAKvN,EAAKpJ,QAAQoP,OAD3B,IAIJksC,SAAU,SAAU3rC,GAChB,GAA0ErM,GAAG6vB,EAAKpC,EAAW9qB,EAAzFmD,EAAOjJ,KAAMgjC,EAAa/5B,EAAK+5B,WAAY5mB,EAAQ4mB,EAAW3U,MAIlE,KAHI7e,GACAvG,EAAKgiC,KAAK78B,IAAI,mBAAoBhF,EAAIgrB,uBAAuBhzB,EAAEoO,KAE9DrM,EAAI,EAAOiZ,EAAMvb,OAAVsC,EAAkBA,IAC1B6vB,EAAM5W,EAAMjZ,GAAG6vB,KAAO,OACtBpC,EAAYxU,EAAMjZ,GAAGytB,UACrB9qB,EAAQsD,EAAI+qB,YAAY3kB,EAAMwjB,GAAOpC,UAAWA,IAChD9qB,EAAQA,EAAM6F,QAAQ,KAAM,KAC5ByQ,EAAMjZ,GAAG2C,MAAQA,EAAQ,uBAE7Bk9B,GAAWtiC,QAAQ,YAG3BlB,GAAMqC,GAAGgY,OAAOqpB,GAChB1jC,EAAMqC,GAAGsH,OAAO+5B,UAAYA,GAC9BxhC,OAAOlC,MAAM0c,SACC,kBAAV3c,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,iBAAkB,qBAAsBD,IACjD,YACG,SAAU8B,EAAGC,GAEV,QAASyD,GAAOiZ,EAAMnV,GAClB,GAAI+G,GAAoC,OAA5BvO,EAAE2c,GAAM3P,IAAI,aAAuBgtC,EAAkBzrC,EAAQ,QAAU,OAAQqoB,EAA6B,MAAlB5uB,EAAInG,KAAK8a,GAAgB,SAAWq9B,EAAkB,UAAYA,CACxK,OAAIxyC,KAAUvH,EACH0c,EAAKjY,MAAMkyB,IAAa,GAE3BpvB,EAAQ,EACRmV,EAAKjY,MAAMkyB,GAAYpvB,EAAQ,MAE/BmV,EAAKjY,MAAMkyB,GAAY,GAClBja,EAAKjY,MAAM4tB,SACZ3V,EAAKkW,gBAAgB,UAL7B,GAPX,GACOz0B,GAAQkC,OAAOlC,MAAOmC,EAAQnC,EAAMmC,MAAOhC,EAASyB,EAAEzB,OAAQiE,EAASpE,EAAMqC,GAAGsH,OAAQC,EAAMxF,EAAOyF,IAAK7G,EAAcoB,EAAOpB,YAAac,EAAed,EAAYc,aAAc6+B,EAAUv+B,EAAOu+B,QAAS7gC,EAAOsC,EAAOtC,KAAMc,EAAewB,EAAOxB,aAAc8U,EAAatT,EAAOsT,WAAYuG,EAAgBrU,EAAIqU,cAAei1B,EAAoB9uC,EAAO8uC,kBAAmBG,EAAiBjvC,EAAOivC,eAgBhZwI,EAAkB15C,EAAMhC,QACxBC,KAAM,WACFI,KAAKiX,OAAS,GAAIy7B,KAAqBrvC,KAAM+F,EAAIqU,kBAErD6X,MAAO,SAAUjb,GAAV,GAC8DlX,GAAGkZ,EAAKq0B,EAAY4K,EAAYroB,EAkBjFsoB,EACAC,EAsBA3P,EAEK4P,EAQbrhC,EAnDJu2B,EAAc3wC,KAAKiX,OAAOm5B,aAAa/1B,GAAQqhC,IACnD,IAAI/K,EAAY9vC,OAAQ,CACpB,IAAKsC,EAAI,EAAGkZ,EAAMs0B,EAAY9vC,OAAYwb,EAAJlZ,EAASA,IACvCiG,EAAI8K,GAAGy8B,EAAYxtC,GAAI,MAClB/B,EAAEuvC,EAAYxtC,IAAIs4B,QAEZr6B,EAAEgC,QAAQutC,EAAYxtC,GAAGorB,WAAYmtB,GAAW,GACvDA,EAAQv7C,KAAKwwC,EAAYxtC,IAFzBu4C,EAAQv7C,KAAKwwC,EAAYxtC,GAAGorB,YAKhCmtB,EAAQv7C,KAAKwwC,EAAYxtC,GAGjC,MAAOu4C,EAAQ76C,QAEX,GADA6vC,EAAagL,EAAQlW,QACjBp8B,EAAI8K,GAAGw8B,EAAY,MAKnB,GAJA4K,EAAa5K,EAAWniB,WACxB0E,EAAU7xB,EAAEsvC,GAAYxyB,KAAK,MACzBq9B,EAActoB,EAAQrpB,KAAK,SAASinC,OACpC2K,EAAap6C,EAAEsvC,GAAY12B,SAAS,SAAS,GAC7CwhC,GAAcvoB,EAAQ,GAClBsoB,EAAY,IACZA,EAAYpuC,OAAOujC,GACnB6K,EAAYpuC,OAAO/L,EAAEo6C,GAAYxhC,YACjC5Q,EAAIyE,OAAO2tC,KAEXvoB,EAAQ9lB,OAAOquC,GACfA,EAAWvxC,aAAaymC,EAAY8K,EAAWv9B,iBAQnD,KALAu9B,EAAavoB,EAAQjZ,SAAS,SAAS,GAClCwhC,IACDA,EAAapyC,EAAIoqB,OAAOkd,EAAWlhB,cAAepmB,EAAInG,KAAKq4C,IAC3DroB,EAAQ9lB,OAAOquC,IAEZ9K,GAAcA,EAAWniB,YAAc+sB,GAC1CE,EAAW5nB,YAAY8c,GACvBA,EAAagL,EAAQlW,YAM7B,KAFIqG,EAAaphC,SAAS3F,EAAO4rC,GAAa,IAAM,GACpD5rC,EAAO4rC,EAAY7E,GACV4P,EAAc,EAAiBC,EAAQ76C,OAAtB46C,EAA8BA,IAChDr6C,EAAEwT,SAAS87B,EAAYgL,EAAQD,KAC/BC,EAAQC,OAAOF,EAAa,OAMxCrhC,GAAY,GAAIy4B,KAAkBxvC,MAAO,QAAWyC,OAAS+lC,WAAY,MAC7EzxB,EAAUkb,MAAMjb,IAGxBxM,OAAQ,SAAUwM,GACd,GAAmDuhC,GAAYz4C,EAAGkZ,EAAK4uB,EAAM4Q,EAAYzH,EAAU1D,EAAY7E,EAA3G8E,EAAc3wC,KAAKiX,OAAOm5B,aAAa/1B,EAC3C,KAAKlX,EAAI,EAAGkZ,EAAMs0B,EAAY9vC,OAAYwb,EAAJlZ,EAASA,IAAK,CAEhD,GADAutC,EAAatvC,EAAEuvC,EAAYxtC,IACvButC,EAAWx8B,GAAG,MAAO,CAGrB,GAFA+2B,EAAOyF,EAAW1yB,SAClB69B,EAAa5Q,EAAKjtB,SACd69B,EAAW3nC,GAAG,cAAgBpP,EAAOmmC,EAAK,IAAK,CAC/C,GAAI2Q,GAAcx6C,EAAEwT,SAASgnC,EAAYC,EAAW,IAChD,QAEJzH,GAAW1D,EAAWoL,QAAQ,MAC1B1H,EAASvzC,QACTO,EAAE6pC,EAAK,GAAGlc,WAAU,IAAQ5gB,SAASuiC,GAAYvjC,OAAOinC,GAExDyH,EAAW3nC,GAAG,MACdw8B,EAAW5jC,YAAY+uC,GAEvBnL,EAAWviC,SAAS0tC,GAEnB5Q,EAAKjxB,SAAS,MAAMnZ,QACrBoqC,EAAKp9B,QAET,UAEA,GAAI+tC,GAAc3Q,EAAK,GACnB,QAEJ2Q,GAAa3Q,EAAK,OAGtB2Q,GAAajL,EAAYxtC,EAE7B0oC,GAAaphC,SAAS3F,EAAO82C,GAAa,IAAM,GAChD92C,EAAO82C,EAAY/P,OAI3BkQ,EAAgB5Z,EAAQxiC,QACxBC,KAAM,SAAUC,GACZA,EAAQua,WACJuoB,OAAQ,SAAUzwB,IACd,GAAImpC,IAAkB/lB,MAAMpe,EAAWmD,MAAMnI,MAGrDiwB,EAAQriC,GAAGF,KAAKG,KAAKC,KAAMH,MAG/Bm8C,EAAiB7Z,EAAQxiC,QACzBC,KAAM,SAAUC,GACZA,EAAQua,WACJuoB,OAAQ,SAAUzwB,IACd,GAAImpC,IAAkBxtC,OAAOqJ,EAAWmD,MAAMnI,MAGtDiwB,EAAQriC,GAAGF,KAAKG,KAAKC,KAAMH,MAG/Bo8C,EAAc36C,EAAK3B,QACnBC,KAAM,SAAUC,GACZyB,EAAKxB,GAAGF,KAAKG,KAAKC,KAAMH,GACxBG,KAAKiX,OAAS,GAAIy7B,KAAqBrvC,KAAMoa,MAEjD3D,WAAY,SAAUjY,EAAIhC,GACtByB,EAAKxB,GAAGga,WAAW/Z,KAAKC,KAAM6B,EAAIhC,GAClCgC,EAAGkI,SAAS,qBAEhBN,OAAQ,SAAU5H,EAAIwY,GAClB,GAAgD6hC,GAAeC,EAAkBh5C,EAAGkZ,EAAhFu2B,EAAW5yC,KAAKiX,OAAOm5B,aAAa/1B,EACxC,KAAKlX,EAAI,EAAGkZ,EAAMu2B,EAAS/xC,OAAYwb,EAAJlZ,EAASA,IASxC,GARA+4C,EAAgBp3C,EAAO8tC,EAASzvC,IAC3B+4C,IACDC,EAAmB/6C,EAAEwxC,EAASzvC,IAAIouC,QAAQ,SAAS1wC,OACnDq7C,EAAgB9yC,EAAI8K,GAAG0+B,EAASzvC,GAAI,QAAUg5C,EAAmB,GAAKr3C,EAAO8tC,EAASzvC,GAAGorB,cAAgBnlB,EAAI+pB,OAAOyf,EAASzvC,IACzH,KACA,QACEg5C,EAAmB,GAEzBD,EAEA,MADAr6C,GAAGiT,YAAY,oBACf,CAGRjT,GAAGkI,SAAS,oBAAoB+K,YAAY,mBAGpDnV,GAAOiE,GACHy3C,gBAAiBA,EACjBU,cAAeA,EACfC,eAAgBA,EAChBC,YAAaA,IAEjB34C,EAAa,SAAU,GAAIhC,IACvBlB,QAAS27C,EACTz5C,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBuM,MAAO,cAGf3L,EAAa,UAAW,GAAI24C,IACxB77C,QAAS47C,EACT15C,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBuM,MAAO,gBAGjBvN,OAAOlC,MAAM0c,SACC,kBAAV3c,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,mBAAoB,iBAAkBD,IAC/C,YACG,SAAU8B,EAAGC,GAAb,GACO7B,GAAQkC,OAAOlC,MAAOG,EAASyB,EAAEzB,OAAQiE,EAASpE,EAAMqC,GAAGsH,OAAQ3G,EAAcoB,EAAOpB,YAAa2/B,EAAUv+B,EAAOu+B,QAAS7gC,EAAOsC,EAAOtC,KAAMc,EAAewB,EAAOxB,aACzKg6C,EAAkBja,EAAQxiC,QAC1BC,KAAM,SAAUC,GACZ,GAAImV,GAAMhV,IACVgV,GAAInV,QAAUA,EACdsiC,EAAQriC,GAAGF,KAAKG,KAAKiV,EAAKnV,GAC1BmV,EAAIoa,WAAa,KACjBpa,EAAIyE,OAAQ,GAEhBnG,KAAM,WAEF,QAASgiB,GAAM/oB,GACXpD,EAAOP,MAAM0tC,EAAO1sC,KAAK2B,GAAU2E,OACnCH,EAAMxD,GACFtD,EAAKyQ,QACLzQ,EAAKyQ,SAETvQ,EAAOzI,QAAQ,UAEnB,QAASqP,GAAMxD,GACXA,EAAE0F,iBACFqkC,EAAOjoB,KAAK,eAAe3X,UAC3BvN,EAAO4I,QAZX,GAAI9I,GAAOjJ,KAAMmJ,EAASF,EAAKE,OAAQlF,EAAWkF,EAAOtJ,QAAQoE,SAAUqyC,EAASl1C,EAAE5B,EAAM8C,SAAS85C,EAAgB95C,UAAU2B,IAAWkK,SAASlG,SAASuH,MAAO3C,EAAUuvC,EAAgBt3C,OAAOqE,EAAOP,SAAU2C,EAAW,oBAchOvL,MAAKyiC,aAAa6T,GACdrnC,MAAOhL,EAASoB,SAChB0K,MAAOA,EACP2mC,SAAS,IACV9sC,KAAK2B,GAAU2E,IAAIrD,GAASosB,MAAMrvB,KAAK,oBAAoBuK,MAAMmhB,GAAO2D,MAAMrvB,KAAK,mBAAmBuK,MAAMpE,GAAOkpB,MAAM5K,KAAK,eAAe0oB,SAAStnC,OACzJ6mC,EAAO1sC,KAAK2B,GAAUwG,UAG9BpS,GAAOy8C,GACH95C,SAAU,wVACVwC,OAAQ,SAAU+H,GACd,MAAOA,GAAQlB,QAAQ,2CAA4C,WAAWA,QAAQ,wBAAyB,eAAeA,QAAQ,YAAa,YAAYA,QAAQ,MAAO,OAGtLnM,EAAMqC,GAAGsH,OAAOizC,gBAAkBA,EAClCx4C,EAAOpB,YAAYc,aAAa,WAAY,GAAIhC,IAC5ClB,QAASg8C,EACT95C,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBuM,MAAO,kBAGjBvN,OAAOlC,MAAM0c,SACC,kBAAV3c,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,qBAAsB,mBAAoBD,IACnD,YACG,SAAU8B,GAkNP,QAASi7C,GAAet+B,GAAxB,GAGYu+B,GACApqC,EAHJgyB,EAAK96B,EAAIssB,sBAAsB3X,GAAO,MACtCmmB,KACIoY,EAAgB,GAAI14C,GAAOugC,cAAc/6B,EAAInG,KAAKihC,EAAG3V,aACrDrc,EAAQ1S,EAAMqC,GAAGsH,OAAOmzB,SAASqB,SAAS5f,GAC9C7L,EAAMmC,WAAW6vB,GACjBoY,EAAc3Z,OAAOzwB,IAxNhC,GACO1S,GAAQkC,OAAOlC,MAAOoE,EAASpE,EAAMqC,GAAGsH,OAAQ7H,EAAOsC,EAAOtC,KAAMc,EAAewB,EAAOxB,aAAc0vC,EAAuBluC,EAAOkuC,qBAAsB3P,EAAUv+B,EAAOu+B,QAAS/4B,EAAMxF,EAAOyF,IAAK7G,EAAcoB,EAAOpB,YAAa0U,EAAatT,EAAOsT,WAAY5T,EAAed,EAAYc,aACrSi5C,EAAiBzK,EAAqBnyC,QACtCC,KAAM,SAAUC,GACZ,GAAIoJ,GAAOjJ,IACXsB,GAAKxB,GAAGF,KAAKG,KAAKkJ,EAAMzJ,EAAMsB,cAAemI,EAAKpJ,QAASA,IAC3DoJ,EAAKF,KAAO,iBACZE,EAAKgO,QACDI,UAAW,WACP,MAAO,MAInBxX,SACIuc,QAEQ5F,KAAM,YACN5N,MAAO,MAGP4N,KAAM,YACN5N,MAAO,eAGP4N,KAAM,YACN5N,MAAO,OAGP4N,KAAM,YACN5N,MAAO,OAGP4N,KAAM,YACN5N,MAAO,OAGP4N,KAAM,YACN5N,MAAO,OAGP4N,KAAM,YACN5N,MAAO,OAGP4N,KAAM,YACN5N,MAAO,OAGfmF,MAAO,KAEXyuC,iBAAkB,SAAU9d,GAAV,GAQV+d,GAPA7zC,EAAQ81B,EAAK91B,KACjB,OAAKA,GAGD81B,EAAK1L,KAAO0L,EAAK9N,UACV8N,GAEP+d,EAAM7zC,EAAM+B,QAAQ,KACZ,IAAR8xC,EACA/d,EAAK9N,UAAYhoB,EAAMk5B,UAAU,GACnB,IAAP2a,EACP/d,EAAK1L,IAAMpqB,GAEX81B,EAAK1L,IAAMpqB,EAAMk5B,UAAU,EAAG2a,GAC9B/d,EAAK9N,UAAYhoB,EAAMk5B,UAAU2a,EAAM,IAEpC/d,GAdIA,GAgBft+B,QAAS,SAAUgb,GACf,GAAIsjB,GAAOtjB,EAAKxS,KAEhB,OADA81B,GAAO1+B,KAAKw8C,iBAAiB9d,GACtB,GAAI96B,GAAOuW,eACdjI,MAAOkJ,EAAKlJ,MACZkI,UAAW,WACP,GAAIA,GAAW/W,GAAQq7B,EAAK1L,KAAO0L,EAAKge,SAAW,QAAQtrC,MAAM,KAAMlO,IAC3DG,KAAMA,EACNyG,MAAQ8mB,UAAW8N,EAAK9N,WAAa,KAOjD,OAJIxW,GADAhZ,EAAEgC,QAAQC,EAAK,GAAI+F,EAAIuU,iBAAmB,EAC9B,GAAI/Z,GAAO+tC,sBAAsBzuC,GAEjC,GAAIU,GAAOsvC,qBAAqBhwC,OAM5D4W,WAAY,SAAUjY,EAAIkhC,GAAd,GACJ55B,GAAS45B,EAAY55B,OACrBtJ,EAAUG,KAAKH,QACf0D,EAAW1D,EAAQoD,KACnBgG,EAAOjJ,IACX6B,GAAGkM,MAAMlO,EAAQkO,OACjBlM,EAAG86C,gBACCxZ,cAAe,OACfC,eAAgB,QAChBJ,WAAYnjC,EAAQuc,OAASjT,EAAOtJ,QAAQ0D,GAC5C0L,MAAO9F,EAAOtJ,QAAQoE,SAASV,GAC/Bq3C,UAAU,EACVlhC,OAAQ,WACJ,GAAIkjC,GAAW58C,KAAK48C,UAChBA,IACAt7C,EAAKgS,KAAKnK,EAAQ5F,EAAUq5C,EAASC,WAG7CC,UAAW,WACP,GAAI35C,GAAGiZ,EAAQpc,KAAKgjC,WAAW3U,MAC/B,KAAKlrB,EAAI,EAAOiZ,EAAMvb,OAAVsC,EAAkBA,IAC1BiZ,EAAMjZ,GAAK8F,EAAKuzC,iBAAiBpgC,EAAMjZ,KAG/CkgC,gBAAgB,EAChB/gC,SAAU9C,EAAM8C,SAAS,2FAE7BT,EAAGkI,SAAS,eAAeP,QAAQ,aAAasL,YAAY,KAAOvR,GAAUqG,KAAK,KAAK6nC,UAAU3nC,KAAK,eAAgB,OAE1HizC,mBAAoB,SAAU3gC,EAAO/B,GAAjB,GACPlX,GACDu7B,EACA1L,EACApC,EACAuQ,EACAx4B,EAOKq0C,CAZb,KAAS75C,EAAI,EAAOiZ,EAAMvb,OAAVsC,EAAkBA,IAM9B,GALIu7B,EAAOtiB,EAAMjZ,GACb6vB,EAAM0L,EAAK1L,KAAO0L,EAAKge,SAAW,GAClC9rB,EAAY8N,EAAK9N,UAAY,IAAM8N,EAAK9N,UAAY,GACpDuQ,EAAWnO,EAAMpC,EACjBjoB,EAAUvH,EAAEiZ,EAAM,IAAI7Q,QAAQ23B,GAAU,GAC5C,CAGA,GAAoB,GAAhB9mB,EAAMxZ,OACN,MAAO69B,GAAK91B,KAEhB,KAASo0C,EAAI,EAAO3iC,EAAMxZ,OAAVm8C,GACP57C,EAAEiZ,EAAM2iC,IAAIxzC,QAAQ23B,GAAU,GADL6b,IAGvB,GAAIA,GAAK3iC,EAAMxZ,OAAS,EAC3B,MAAO69B,GAAK91B,MAIxB,MAAO,IAEXa,OAAQ,SAAU5H,EAAIwY,GAAd,GAKA2oB,GAAmC5mB,EAA2BjZ,EAAGu5C,EAASrY,EAJ1E4W,EAAY75C,EAAES,GAAIwsB,KAAKruB,KAAK+I,KAChC,IAAKkyC,IAGDjY,EAAaiY,EAAUjY,WAAY5mB,EAAQ4mB,EAAW3U,OAAoBgW,EAAWj7B,EAAIqrB,eAAea,MAAM,KAAMjb,GACpHgqB,GAAYj7B,EAAImsB,gBAAgB8O,IAAarkC,KAAKi9C,WAAa5Y,GAAnE,CAKA,IAFIrkC,KAAKi9C,UAAY5Y,EAEhBlhC,EAAI,EAAOiZ,EAAMvb,OAAVsC,EAAkBA,IAC1Bu5C,EAAUtgC,EAAMjZ,GAAGu5C,QACnBtgC,EAAMjZ,GAAGuzC,SAAWgG,KAAat7C,EAAEijC,GAAU76B,QAAQkzC,GAAS77C,MAElEmiC,GAAWrN,SACHunB,MAAO,UACPC,SAAU,KACVv0C,OAAO,KAEfkpC,EAAqBhyC,GAAG2J,OAAO1J,KAAKC,KAAM6B,EAAIwY,GAC9C4gC,EAAUryC,MAAM5I,KAAK+8C,mBAAmB/Z,EAAWkY,OAAQ7gC,IAC3D4gC,EAAUtxC,QAAQ2Q,YAAY,oBAAqB0oB,EAAWkY,OAAOr6C,UAEzE6V,QAAS,WACL1W,KAAKi9C,UAAY,QAGrBG,EAAqBjb,EAAQxiC,QAC7B2T,KAAM,WAAA,GAIE+G,GAGK+V,EANLle,EAAQlS,KAAKsiC,WAAU,EAM3B,KALAtiC,KAAKq9C,YAAcr9C,KAAKH,QAAQgO,QAAU,wCAAwCuD,MAAM,KACxF8F,EAAWqqB,qBAAqBrvB,GAC5BmI,EAAQnD,EAAW6pB,OAAO7uB,EAAO,SAAU6L,GAC3C,MAAOA,KAEFqS,EAAI/V,EAAMxZ,OAAS,EAAGuvB,GAAK,EAAGA,IACnCpwB,KAAKkpC,MAAM7uB,EAAM+V,GAErBpwB,MAAKuiC,aAAarwB,IAEtBg3B,MAAO,SAAUnrB,GAAV,GAIC9a,GAEIq5C,EACAp+B,EACAgV,EAQK/vB,CAfb,IAAK4a,IAAQ3U,EAAIqoB,SAAS1T,GAA1B,CAIA,GADI9a,EAAOmG,EAAInG,KAAK8a,GACR,MAAR9a,GAAwB,MAARA,EAKhB,IAJIq5C,EAAgB,GAAI14C,GAAOugC,cAAclhC,GACzCib,EAAOH,EAAKoQ,gBACZ+E,EAAOnV,EAAKI,YAChBm+B,EAAcvoB,OAAOhW,GACdG,GAAQA,GAAQgV,EAAMhV,EAAOA,EAAKC,YACrCne,KAAKkpC,MAAMhrB,OAEZ,IAAY,cAARjb,EACPmG,EAAIgqB,UAAUrV,EAAM,SACjB,IAAqB,GAAjBA,EAAKjL,UAAkB1J,EAAIunB,cAAc5S,GAOhDs+B,EAAet+B,OAPwC,CACvD,IAAS5a,EAAI4a,EAAK4Q,WAAW9tB,OAAS,EAAGsC,GAAK,EAAGA,IAC7CnD,KAAKkpC,MAAMnrB,EAAK4Q,WAAWxrB,GAE/B4a,GAAKkW,gBAAgB,SACrBlW,EAAKkW,gBAAgB,SAIrB7yB,EAAEgC,QAAQH,EAAMjD,KAAKq9C,aAAe,IACpCj0C,EAAI2qB,OAAOhW,MAavB3c,GAAEzB,OAAOiE,GACL24C,eAAgBA,EAChBa,mBAAoBA,IAExB95C,EAAa,aAAc,GAAIi5C,IAC3Bj6C,SAAU,GAAIF,IACVE,SAAUE,EAAYK,qBACtBoM,MAAO,cAGf3L,EAAa,kBAAmB,GAAIhC,IAChClB,QAASg9C,EACT96C,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBuM,MAAO,yBAGjBvN,OAAOlC,MAAM0c,SACC,kBAAV3c,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,kBAAmB,qBAAsBD,IAClD,YACG,SAAU8B,EAAGC,GAAb,GAgCO8I,GA/BA3K,EAAQkC,OAAOlC,MACfqC,EAAKrC,EAAMqC,GACXqH,EAAWrH,EAAGsH,OACdvH,EAASC,EAAGD,OACZjC,EAASyB,EAAEzB,OACXuC,EAAQd,EAAEc,MACVC,EAAO3C,EAAM2C,KACb8O,EAAK,eACLzO,EAAchD,EAAMqC,GAAGsH,OAAO3G,YAC9BJ,EAAe5C,EAAMqC,GAAGsH,OAAO/G,aAC/Bd,EAAO9B,EAAMqC,GAAGsH,OAAO7H,KACvBg8C,EAAiB,iBACjBC,EAAY,gPACZC,EAAqBl8C,EAAK3B,QAC1Bma,WAAY,SAAUjY,EAAIhC,GACtBgC,EAAGiI,MAAOiQ,aAAc,MACxB,IAAI7P,GAAUrK,EAAQsJ,OAAOe,OAC7BrI,GAAGwP,GAAG,QAASjQ,EAAEc,MAAM,WACnBlC,KAAKy9C,cAAc9a,UACpBz4B,KAEPrK,SAAWoD,KAAMq6C,GACjBl9C,QAASgB,EAAE8Y,KACXzQ,OAAQrI,EAAE8Y,KACVxD,QAAStV,EAAE8Y,MAEf1X,GAAYc,aAAag6C,EAAgB,GAAIE,IACzC7jC,IAAK,GACLC,MAAM,EACNtX,SAAU,GAAIF,IAAeE,SAAUE,EAAYO,4BAEnDoH,EAAUvI,EAAOjC,QACjBC,KAAM,SAAU+I,EAAS9I,GACrB,GAAIoJ,GAAOjJ,IACXH,GAAUF,KAAWE,GAAWoD,KAAM,kBACtCrB,EAAO9B,GAAGF,KAAKG,KAAKkJ,EAAMN,EAAS9I,GAC/BA,EAAQmK,OACRf,EAAKy0C,aAEL79C,EAAQ6M,WAAa7M,EAAQ6M,UAAUxC,UACvCjB,EAAK00C,eAAiBn+C,EAAMo+C,SAAS,WACjC30C,EAAKgD,WAEThD,EAAKN,QAAQoB,SAAS,yBAG9B7J,QAAS,WACT29C,QACIx1C,OACI,OACA,SACA,YACA,iBAEJoN,SACI,YACA,eAEJnN,WACI,cACA,gBACA,eACA,eAEJG,OACI,cACA,aACA,aACA,UAEJF,OACI,sBACA,oBACA,SACA,WAEJG,QACI,cACA,gBACA,iBACA,cACA,cACA,YACA;AAEJo1C,UACI,WACA,kBACA,QACA,OAEJC,OACI,WACA,YAEJC,QACI,YACA,cAGRC,oBACI,aACA,WACA,WACA,YACA,YACA,cAEJP,WAAY,WACR19C,KAAK0B,OAASN,EAAEpB,KAAK2I,SAASmrB,KAAK,gDAAkD9V,SAASkgC,QAAQ,+GAAmHxb,aACrNzzB,OAAO,EACPvC,WAAW,EACX0J,WAAa+nC,WAAY,+BACzB9nC,WACI5G,MAAQ2uC,QAAS,WACjBruC,OAASquC,QAAS,aAEtBC,UAAW,GACX3H,SAAS,EACT4H,WAAW,EACXpP,WACAqP,QAAS,WACLv+C,KAAKw+C,QAAS,KAEnBntC,GAAG,YAAa,SAAU9E,GACpBnL,EAAEmL,EAAEyH,QAAQE,GAAG,YAChB3H,EAAE0F,mBAEPoc,KAAK,gBAEZowB,sBAAuB,SAAU91C,EAAS8L,GACtC9L,EAAQiB,KAAK,MAAM0Q,YAAY,yBAA0B7F,GAAM7K,KAAK,qDAAqD0Q,YAAY,6BAA8B7F,IAEvKiqC,mBAAoB,SAAU78C,GAAV,GACZoH,GAAOjJ,KACP2+C,EAAgB,iFACpB11C,GAAKw0C,cAAgBr8C,EAAEu9C,GAAexwC,SAAS,QAAQywC,YACnDzH,OAAQt1C,EACRg9C,OAAQ,eACRhsB,SAAU,YACVisB,kBAAkB,EAClBrvC,KAAM,SAAUlD,GACRvM,KAAK2I,QAAQuL,GAAG,WAChB3H,EAAE0F,iBAENhJ,EAAKw1C,sBAAsBz+C,KAAK2I,SAAS,IAE7C8nC,SAAUvuC,EAAM+G,EAAK81C,mBAAoB91C,KAC1ColB,KAAK,eAEZjS,MAAO,WACH,GAA4EpS,GAAOunB,EAA/E5kB,EAAc3M,KAAKH,QAAQ6M,WAAa1M,KAAKH,QAAQ6M,UAAUxC,OAMnE,OALAqnB,GAASvxB,KAAK2I,QAAQqR,WAAWpQ,KAAK,eAClC+C,IACA3C,EAAQhK,KAAKy9C,cACblsB,EAASA,EAAOmO,IAAI11B,EAAMrB,QAAQqR,WAAWpQ,KAAK,SAE/C2nB,GAEX1c,QAAS,WACL,MAAO7U,MAAK2I,QAAQiB,KAAK,oBAAoB/I,OAAS,GAE1D0Y,SAAU,SAAUtW,GAChB,GAAI4G,GAAIP,EAAQtJ,KAAKsJ,KACrB,KAAKO,IAAMP,GACP,GAAIO,EAAGlG,eAAiBV,EACpB,MAAOqG,GAAMO,IAIzBm1C,aAAc,SAAUz7C,GACpB,GAAIJ,GAAG06C,EAAS79C,KAAK69C,MACrB,IAAI79C,KAAKi/C,aAAa17C,GAClB,MAAO,QAEX,KAAKJ,IAAK06C,GACN,GAAIz8C,EAAEgC,QAAQG,EAAUs6C,EAAO16C,KAAO,EAClC,MAAOA,IAInBiH,OAAQ,SAAUjB,GACd,GAAIF,GAAOjJ,KAAM0B,EAASuH,EAAKvH,MAC3BuH,GAAKi2C,SACLj2C,EAAKi2C,QAAQnW,OAAO,SAAU7mC,EAAM+G,EAAKgD,OAAQhD,IAErDA,EAAKi2C,QAAU/1C,EACXF,EAAKpJ,QAAQ6M,WAAazD,EAAKpJ,QAAQ6M,UAAUxC,SACjDf,EAAOtJ,QAAQyJ,MAAMnJ,KAAKm9C,GAE9Br0C,EAAKK,MAAQL,EAAKk2C,YAAYh2C,EAAOtJ,QAAQyJ,OAC7CL,EAAKm2C,SACLn2C,EAAKN,QAAQiB,KAAK,wBAAwBiI,QAAQ,SAAUtF,GACxD,GAAI8yC,GAAWj+C,EAAEpB,MAAMwJ,QAAQ,eAAe6kB,KAAK,iBAAkB1U,EAAMpN,EAAEgG,OACzEoH,IAAOxX,EAAK0Q,OAAS8G,GAAOxX,EAAKyQ,KACjCysC,EAAStvC,QACF4J,GAAOxX,EAAKm9C,OACdD,EAASE,SAASC,aACnBjzC,EAAEkzC,2BACFJ,EAAS5vC,WAIrBxG,EAAKy2C,gBACLz2C,EAAKmT,QAAQ6a,KAAK,WAAA,GAMN0oB,GALJp8C,EAAW0F,EAAK22C,UAAU5/C,MAAOwD,EAAoB,SAAbD,EAAsB0F,EAAKK,MAAM/F,GAAY0F,EAAKK,MAAMu2C,eAAgBhgD,EAAU2D,GAAQA,EAAK3D,QAASoE,EAAWkF,EAAOtJ,QAAQoE,SAAU67C,EAAcjgD,GAAWA,EAAQkgD,SAAW97C,EAASV,GAAW1B,EAAKT,EAAEpB,KAC1PwD,IAASA,EAAKsW,cAGH,YAAZvW,GAAsC,YAAZA,KACtBo8C,EAAc17C,EAASV,EAAW,WACtC1B,EAAG+H,KAAK,SAASsG,IAAIyvC,GAAa1mB,MAAMrvB,KAAK,gBAAgB4M,KAAKmpC,GAAa1mB,OAEnFz1B,EAAKsW,WAAWjY,GACZoN,MAAOhG,EAAK+2C,wBAAwBF,EAAat8C,GACjD2F,OAAQF,EAAKi2C,UAEjBr9C,EAAG2H,QAAQ,YAAaP,EAAKN,SAASoB,SAAS,mBAC/ClI,EAAG2H,QAAQ,iBAAkBP,EAAKN,SAASuqB,KAAK,kBAAkBnpB,SAAS,sBAE/EZ,EAAO6/B,KAAK,SAAU9mC,EAAM+G,EAAKgD,OAAQhD,IACzCA,EAAKQ,SACD/H,GACAA,EAAOiI,QAAQyE,KACXkkB,IAAK,GACLngB,KAAM,GACNpE,MAAO,MAInB0G,KAAM,WACF,GAA4E9K,GAASs2C,EAAeC,EAAhGj3C,EAAOjJ,KAAM0B,EAASuH,EAAKvH,OAAQy+C,EAAgBl3C,EAAKpJ,QAAQsJ,MAChEzH,KACAiI,EAAUjI,EAAOiI,QACjBs2C,EAAgBE,EAAcx3C,QACzBgB,EAAQuK,GAAG,aAAgBjL,EAAKvH,OAAO7B,QAAQ62C,UAC3C/sC,EAAQ,GAAG7D,MAAMiI,OAClBpE,EAAQoE,MAAMkyC,EAAcG,aAAe31C,SAASd,EAAQyE,IAAI,qBAAsB,IAAM3D,SAASd,EAAQyE,IAAI,sBAAuB,KAEvI1M,EAAO88C,SACR0B,EAAeD,EAAc5tC,SAC7B1I,EAAQyE,KACJkkB,IAAK3kB,KAAKF,IAAI,EAAGhD,SAASy1C,EAAa5tB,IAAK,IAAM3oB,EAAQ02C,cAAgB51C,SAASxB,EAAKvH,OAAOiH,QAAQyF,IAAI,kBAAmB,KAC9H+D,KAAMxE,KAAKF,IAAI,EAAGhD,SAASy1C,EAAa/tC,KAAM,QAGtDzQ,EAAO+N,UAInBT,KAAM,WACEhP,KAAK0B,QACL1B,KAAK0B,OAAOqO,SAGpBgC,MAAO,WAAA,GACCuuC,GAAW,WACX33C,EAAU3I,KAAK2I,QACfwG,EAAWnP,KAAKk/C,QAAQv2C,QAAQmB,KAAKw2C,EACzC33C,GAAQmB,KAAKw2C,EAAUnxC,GAAY,GAAG4C,QAAQnI,KAAK2zC,GAAW5oB,QAAQ5iB,QACjE5C,GAAyB,IAAbA,GACbxG,EAAQ8kC,WAAW6S,IAG3BvB,mBAAoB,WAAA,GACZuB,GAAW,WACX33C,EAAU3I,KAAKy9C,cAAc90C,QAC7BwG,EAAWnP,KAAKk/C,QAAQv2C,QAAQmB,KAAKw2C,EACzC33C,GAAQa,QAAQ,0BAA0BO,SAAS,sBACnDpB,EAAQmB,KAAKw2C,EAAUnxC,GAAY,GAAGvF,KAAK2zC,GAAW5oB,QAAQ5iB,QACzD5C,GAAyB,IAAbA,GACbxG,EAAQ8kC,WAAW6S,IAG3BN,wBAAyB,SAAUO,EAAe/8C,GAC9C,IAAKA,EAAKmW,IACN,MAAO4mC,EAEX,IAAIC,GAAMD,EAAgB,IAW1B,OAVI/8C,GAAKoW,OACL4mC,GAAO,WAEPh9C,EAAKgiC,QACLgb,GAAO,YAEPh9C,EAAK+hC,MACLib,GAAO,UAEXA,GAAOh9C,EAAKmW,IAAM,KAGtB8mC,cACI,kBACA,kBACA,OACA,OACA,YAEJn3C,SACA21C,aAAc,SAAU17C,GACpB,QAASA,IAAY/D,GAAMqC,GAAG+B,OAAOC,eAEzCs7C,YAAa,SAAU71C,GACnB,GAAIo3C,GAAav9C,EAAoCtD,EAAyFoD,EAA1H09C,EAAc3gD,KAAKygD,aAAuB58C,EAAerE,EAAMsB,cAAetB,EAAMqC,GAAG+B,OAAOC,cAAe0tB,IACjI,KAAKpuB,EAAI,EAAOmG,EAAMzI,OAAVsC,EAAkBA,IAC1Bu9C,EAAcp3C,EAAMnG,GACpBF,EAAOy9C,EAAYz9C,KACf7B,EAAEwL,cAAc8zC,GACZz9C,GAAQY,EAAaZ,IACrBsuB,EAAOtuB,GAAQtD,KAAWkE,EAAaZ,IACvCtD,EAAO4xB,EAAOtuB,GAAMpD,QAAS6gD,KAE7B7gD,EAAUF,GACN+D,SAAU,aACVqF,KAAM,SACNkG,MAAO,IACRyxC,GACE7gD,EAAQoD,OACTpD,EAAQoD,KAAO,UAEnBpD,EAAQ6D,SAAW,MAAwB,UAAhB7D,EAAQoD,KAAmB,WAAapD,EAAQoD,MACtEpD,EAAQyC,UAA4B,UAAhBzC,EAAQkJ,OAC7BlJ,EAAQyC,SAAW4G,EAAS1G,YAAYE,eACxC7C,EAAQoP,MAAQpP,EAAQoP,OAASpP,EAAQkgD,SAE7CxuB,EAAOtuB,IAAUpD,QAASA,IAEvBgE,EAAa68C,KACpBnvB,EAAOmvB,GAAe78C,EAAa68C,GAG3C,KAAKv9C,EAAI,EAAOw9C,EAAY9/C,OAAhBsC,EAAwBA,IAC3BouB,EAAOovB,EAAYx9C,MACpBouB,EAAOovB,EAAYx9C,IAAMU,EAAa88C,EAAYx9C,IAG1D,OAAOouB,IAEX6tB,OAAQ,WAEJ,QAASze,GAAUr+B,GACf,GAAIivB,EASJ,OARIjvB,GAASD,QACTkvB,EAASjvB,EAASD,WAEbjB,EAAE+0B,WAAW7zB,KACdA,EAAW9C,EAAM8C,SAASA,IAE9BivB,EAASjvB,EAASzC,IAEfuB,EAAEqK,KAAK8lB,GAElB,QAASqvB,KACDC,EAAM7mC,WAAWnZ,SACb6L,IACAm0C,EAAMxyB,KAAK,WAAYyyB,GACvBA,KAEJD,EAAM1yC,SAASxF,IAGvB,QAASo4C,GAAWx9C,GACZA,IAAa+5C,GACbuD,EAAQz/C,EAAE,mDACVy/C,EAAMxyB,KAAK,WAAwD,KAA5CjtB,EAAEgC,QAAQG,EAAU06C,IAA6B,GAAO,IAE/E4C,EAAQz/C,EAAE,mCA3BlB,GAAqCvB,GAASyC,EAAU0+C,EAAaz9C,EAAgF09C,EAAWC,EAAwFL,EAAO19C,EAA3P8F,EAAOjJ,KAAMsJ,EAAQL,EAAKK,MAAiD22C,EAAgBh3C,EAAKi2C,QAAQv2C,QAASA,EAAUM,EAAKN,QAAQ4U,QAAkC4jC,EAAal4C,EAAKi2C,QAAQr/C,QAAQyJ,MAAOrH,EAAUzC,EAAMuC,QAAQE,QAAmB6+C,EAAgB,EAAGp0C,EAAYzD,EAAKpJ,QAAQ6M,WAAazD,EAAKpJ,QAAQ6M,UAAUxC,QAAS+zC,EAAqBj+C,KAAKi+C,kBAmCrX,KALAt1C,EAAQ4U,QACJ4jC,EAAWtgD,SACX0C,EAAW49C,EAAW,GAAGl+C,MAAQk+C,EAAW,IAEhDJ,EAAWx9C,EAAU06C,GAChB96C,EAAI,EAAOg+C,EAAWtgD,OAAfsC,EAAuBA,IAC/BI,EAAW49C,EAAWh+C,GAAGF,MAAQk+C,EAAWh+C,GAC5CtD,EAAUyJ,EAAM/F,IAAa+F,EAAM/F,GAAU1D,SACxCA,GAAWuB,EAAEwL,cAAcrJ,KAC5B1D,EAAU0D,GAEdjB,EAAWzC,GAAWA,EAAQyC,SACd,SAAZiB,IACAq9C,IACAx/C,EAAE,8BAAgC+M,SAASlF,EAAKN,SAChDo4C,EAAWx9C,EAAU06C,IAEpB37C,IAGL4+C,EAAej4C,EAAK+1C,aAAaz7C,IAC7B09C,GAAaC,GAAgB39C,GAAY+5C,KACzCsD,IACAG,EAAWx9C,EAAU06C,GACrBgD,EAAYC,GAEhB5+C,EAAWq+B,EAAUr+B,GACrB0+C,EAAc5/C,EAAEkB,GAAU6L,SAAS0yC,GACf,UAAhBK,IACAN,IACAG,EAAWx9C,EAAU06C,IAErBp+C,EAAQyT,MAAQ0tC,EAAYI,SAAS,WACrCJ,EAAY7sC,MAAMjS,EAAMrC,EAAQyT,KAAM2sC,EAAc,KAG5DW,KACAx/C,EAAE6H,EAAKN,SAASqR,SAAS,mBAAmBjQ,SAAS,kBACjDd,EAAKpJ,QAAQmK,OAAS/H,EAAQ2U,MAA0B,EAAlB3U,EAAQsY,SAC9CtR,EAAKvH,OAAOiI,QAAQC,KAAK,KAAKE,KAAK,eAAgB,MAEvDb,EAAKo4C,eACD30C,GACAzD,EAAKy1C,mBAAmBz1C,EAAKN,QAAQiB,KAAK,uBAE9CX,EAAKq4C,QAAQ,UAAW,WACpB,OAASxrB,SAAU7sB,EAAKN,YAGhC04C,aAAc,WACVjgD,EAAEpB,KAAK2I,SAASqR,WAAWid,KAAK,WAC5B71B,EAAEpB,MAAMga,WAAW2b,OAAO,WACtB,OAAQv0B,EAAEpB,MAAMohD,SAAS,sBAC1BtsC,YAAY,eAAe6f,QAAQ5qB,SAAS,iBAAiBkvB,MAAM4X,OAAO9mC,SAAS,eAAekvB,SAG7G1pB,aAAc,SAAUC,GACpBxP,KAAKoc,QAAQuZ,OAAO,gBAAgBsB,KAAK,WACrC,GAAIgkB,GAAY75C,EAAEpB,MAAMquB,KAAK,iBACzB4sB,IACAA,EAAUE,SAAS3rC,MAI/BkH,QAAS,WACL9U,EAAO9B,GAAG4W,QAAQ3W,KAAKC,KACvB,IAAI6J,GAAIP,EAAQtJ,KAAKsJ,KACrB,KAAKO,IAAMP,GACHA,EAAMO,GAAI6M,SACVpN,EAAMO,GAAI6M,SAGd1W,MAAK0B,QACL1B,KAAK0B,OAAOgV,UAEZ1W,KAAK29C,gBACLn+C,EAAM+hD,aAAavhD,KAAK29C,gBAExB39C,KAAKy9C,eACLz9C,KAAKy9C,cAAc/mC,WAG3BgpC,cAAe,WACX,GAAIz2C,GAAOjJ,KAAMwhD,EAAU,uBAAwBC,EAAiBD,EAAU,0BAA2BE,EAAkBF,EAAU,oBAAqBG,EAAe14C,EAAKw0C,cAAgBx0C,EAAKw0C,cAAc90C,QAAUvH,KAC3N6H,GAAKN,QAAQ+2B,IAAIiiB,GAAcnwC,IAAIP,GAAII,GAAG,aAAeJ,EAAIwwC,EAAgB,WACzErgD,EAAEpB,MAAM+J,SAAS,mBAClBsH,GAAG,aAAeJ,EAAIwwC,EAAgB,WACrCrgD,EAAEpB,MAAM8U,YAAY,mBACrBzD,GAAG,YAAcJ,EAAIuwC,EAAS,SAAUj1C,GACvCA,EAAE0F,mBACHZ,GAAG,UAAYJ,EAAIssC,EAAW,SAAUhxC,GAIvC,QAASq1C,GAAKtvC,EAAWF,EAAWyvC,GAApC,GACQv4C,GAAQ8I,EAAUxI,KAAK2zC,GACvB9hB,EAAQnyB,EAAMmyB,MAAMuC,GAAW1rB,CAInC,OAHIuvC,KACApmB,EAAQ9tB,KAAKF,IAAI,EAAGE,KAAKH,IAAIlE,EAAMzI,OAAS,EAAG46B,KAE5CnyB,EAAMmyB,GAVY,GAGzBqmB,GAAcC,EAFd/jB,EAAUh+B,KACV0M,EAAYzD,EAAKpJ,QAAQ6M,WAAazD,EAAKpJ,QAAQ6M,UAAUxC,QAC7BqI,EAAUhG,EAAEgG,OAS5CA,IAAWpQ,EAAK0Q,OAASN,GAAWpQ,EAAKyQ,KACpCxR,EAAE48B,GAASojB,SAAS,iBACrBU,EAAeF,EAAKrvC,GAAWpQ,EAAK0Q,MAAQ,EAAI,GAAI5J,EAAKN,SAAS,KAE/D+D,GAAc6F,GAAWpQ,EAAK6/C,IAAMzvC,GAAWpQ,EAAKm9C,KAEpD/sC,GAAWpQ,EAAK80C,KACnBhuC,EAAKw0C,cAAc/G,WACnBztC,EAAKw0C,cAAc1tC,QAEvB+xC,EAAe74C,EAAKi2C,SACb3sC,GAAWpQ,EAAK8/C,KAAS11C,EAAEqH,SAAWrH,EAAEsH,SAE3CkuC,EADAr1C,GACmBtL,EAAE48B,EAAQnD,eAAeumB,SAAS,yBAA2Bn4C,EAAKw0C,cAAc90C,QAEhFM,EAAKN,QAExB4D,EAAEuH,SACFguC,EAAeF,EAAK,GAAIG,IAExBD,EAAeF,EAAK,EAAGG,GAClBD,IACDA,EAAe74C,EAAKi2C,WAjB5B4C,EAAeF,EAAKrvC,GAAWpQ,EAAKm9C,KAAO,EAAI,GAAIr2C,EAAKw0C,cAAc90C,SAAS,GAqB/Em5C,IACAv1C,EAAE0F,iBACF6vC,EAAa/vC,WAElBV,GAAG,QAAUJ,EAAIwwC,EAAgB,SAAUl1C,GAC1C,GAAI21C,GAAS9gD,EAAEpB,KACfuM,GAAE0F,iBACF1F,EAAE41C,kBACFD,EAAOptC,YAAY,iBACdotC,EAAOhuC,GAAG,iBACXjL,EAAKi2C,QAAQ5rC,KAAKrK,EAAK22C,UAAU5/C,SAEtCqR,GAAG,QAAUJ,EAAIywC,EAAiB,SAAUn1C,GAC3CA,EAAE0F,oBAGV2tC,UAAW,SAAUj3C,GAAV,GAIHioB,GAIAptB,CAPJ,IAAKmF,EAUL,MAPIioB,GAAYjoB,EAAQioB,UACpB,YAAYvd,KAAKud,KACjBA,EAAYjoB,EAAQsV,WAAW2S,WAE/BptB,EAAOpC,EAAE4vB,KAAKJ,EAAUxf,MAAM,KAAM,SAAU6e,GAC9C,OAAQ,+FAA+F5c,KAAK4c,KAEzGzsB,EAAK,GAAKA,EAAK,GAAGs+B,UAAUt+B,EAAK,GAAG4+C,YAAY,KAAO,GAAK,UAEvEvqC,aAAc,WACV,GAAI5O,GAAOjJ,KAAMmJ,EAASF,EAAKi2C,QAAShtC,EAAQ/I,EAAOwH,WAAY0J,EAAQ7a,EAAMqC,GAAGsH,OAAO+N,WAAWF,UAAU9E,EAC3GmI,GAAMxZ,SACPwZ,GAASnI,EAAMkF,iBAEnBnO,EAAKmT,QAAQ6a,KAAK,WACd,GAAIzzB,GAAOyF,EAAKK,MAAML,EAAK22C,UAAU5/C,MACjCwD,IAAQA,EAAKiG,QACbjG,EAAKiG,OAAOrI,EAAEpB,MAAOqa,KAG7Bra,KAAKyJ,UAETA,OAAQ,WACJzJ,KAAKqhD,gBAETgB,QAAS,SAAU91C,GAAV,GACD+1C,GAAiB/1C,EAAEwB,MACnBrB,EAAY1M,KAAKH,QAAQ6M,WAAa1M,KAAKH,QAAQ6M,UAAUxC,QAC7DF,EAAQhK,KAAKy9C,aACjBz9C,MAAK6X,eACAnL,IAGD1C,EAAM0sC,WACN1sC,EAAM+F,OAAM,GAEhB/P,KAAKuiD,iBACLviD,KAAKwiD,QAAQF,GACbtiD,KAAKyiD,SAASH,GACdtiD,KAAKy+C,sBAAsBz+C,KAAK2I,SAAS,GACzC3I,KAAKy+C,sBAAsBz+C,KAAKy9C,cAAc90C,SAAS,GACvD3I,KAAK2I,QAAQqR,SAAS,uBAAuB5L,IAAI,aAAcpE,EAAMrB,QAAQuL,GAAG,UAAY,SAAW,aAE3GquC,eAAgB,WACZviD,KAAK2I,QAAQqR,SAAS,MAAMid,KAAK,SAAUyrB,EAAK/5C,GAC5C,GAAIk4C,GAAQz/C,EAAEuH,EACdk4C,GAAMxyB,KAAK,aAAcwyB,EAAMT,YAAW,OAGlDoC,QAAS,SAAUz0C,GAAV,GACD8yC,GAAO8B,EAGEx/C,CAFb,IAAI4K,EAAQ/N,KAAK4iD,eAEb,IADAD,EAAgB3iD,KAAK6iD,iBAAiBltB,OAAO,2BACpCxyB,EAAIw/C,EAAc9hD,OAAS,EAAGsC,GAAK,IACxC09C,EAAQ8B,EAAc3V,GAAG7pC,KACrB4K,EAAQ/N,KAAK4iD,iBAF0Bz/C,IAKvCnD,KAAK8iD,WAAWjC,IAKhC4B,SAAU,SAAU10C,GAAV,GACF8yC,GAAOkC,EAGE5/C,CAFb,IAAI4K,EAAQ/N,KAAK4iD,eAEb,IADAG,EAAe/iD,KAAKgjD,gBACX7/C,EAAI,EAAO4/C,EAAaliD,OAAjBsC,IACZ09C,EAAQkC,EAAa/V,GAAG7pC,KACpB4K,EAAQ/N,KAAK4iD,iBAAmB5iD,KAAKijD,WAAWpC,EAAO9yC,IAFtB5K,OAQjD6/C,cAAe,WAAA,GACPh5C,GAAQhK,KAAKy9C,cACbsF,EAAe/iD,KAAK2I,QAAQqR,SAAS,mBAAmB2b,OAAO,UAKnE,OAJAotB,GAAeA,EAAarjB,IAAI11B,EAAMrB,QAAQqR,SAAS,OACvD+oC,EAAazqB,KAAK,SAAUC,EAAGC,GAC3B,MAAOp3B,GAAEm3B,GAAGlK,KAAK,YAAcjtB,EAAEo3B,GAAGnK,KAAK,YAAc,EAAI,KAExD00B,GAEXF,eAAgB,WACZ,MAAO7iD,MAAK2I,QAAQqR,SAAS,wCAAwC2b,OAAO,aAEhFitB,aAAc,WACV,GAAI70C,GAAQ,CAIZ,OAHA/N,MAAK6iD,iBAAiB5rB,KAAK,WACvBlpB,GAAS3M,EAAEpB,MAAMquB,KAAK,gBAEnB1gB,KAAK6kB,KAAKzkB,IAErB+0C,WAAY,SAAUjC,GAClB,GAAIA,EAAMxyB,KAAK,YAAa,CACxB,GAAIrkB,GAAQhK,KAAKy9C,aACjBoD,GAAMqC,SAAS5W,UAAUtiC,EAAMrB,SAASoB,SAAS,6BAEjD82C,GAAM7xC,QAGdi0C,WAAY,SAAUpC,EAAO9yC,GACzB,GAAI8kB,GAAUkG,CACd,OAAI8nB,GAAMhgD,QAAUkN,EAAQ/N,KAAK4iD,eAAiB/B,EAAMxyB,KAAK,eACrDwyB,EAAMO,SAAS,0BACfvuB,EAAWguB,EAAMxyB,KAAK,YACL,IAAbwE,EACAguB,EAAMqC,SAAS5W,UAAUtsC,KAAK2I,UAE9BowB,EAAW/4B,KAAK2I,QAAQqR,WAAW2b,OAAO,SAAU+sB,EAAK/5C,GACrD,MAAOvH,GAAEuH,GAAS0lB,KAAK,cAAgBwE,EAAW,IAEtDguB,EAAMqC,SAASp2C,YAAYisB,IAE/B8nB,EAAM/rC,YAAY,0BAElB+rC,EAAMpsC,QAEH,IAEJ,KAGfrT,EAAEzB,OAAOuJ,GAAYiB,QAASA,KAChCzI,OAAOwa,SACO,kBAAV3c,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,iBAAkB,kBAAmBD,IAC9C,YACG,SAAU8B,EAAGC,GAAb,GACO7B,GAAQkC,OAAOlC,MAAOG,EAASyB,EAAEzB,OAAQuC,EAAQd,EAAEc,MAAO0B,EAASpE,EAAMqC,GAAGsH,OAAQC,EAAMxF,EAAOyF,IAAK7G,EAAcoB,EAAOpB,YAAa0U,EAAatT,EAAOsT,WAAYirB,EAAUv+B,EAAOu+B,QAASlxB,EAAK,eAAgBkyC,EAAc,iBAAkBC,EAAgB,mBAAoB9hD,EAAOsC,EAAOtC,KAAMc,EAAewB,EAAOxB,aAAc+W,EAAoBvV,EAAOuV,kBAAmBu5B,EAAoB9uC,EAAO8uC,kBAAmBpvC,EAAeM,EAAOpB,YAAYc,aACjd+/C,EAAe,OAASz/C,EAAOnC,oBAAsB,QACrD6hD,EAAoB,GAAI5Q,KAAqBrvC,MAAO,YACpDkgD,EAAepqC,EAAkBxZ,QACjC6jD,WAAY,SAAU3W,EAAM4W,GAGxB,MAFA5W,GAAOA,GAAQ,EACf4W,EAAUA,GAAW,EACd,oCAA4C/a,MAAMmE,EAAO,GAAG/8B,KAAK,OAAa44B,MAAM+a,EAAU,GAAG3zC,KAAKuzC,GAAgB,SAAW,YAE5IxgB,YAAa,SAAU15B,EAAQ+I,GAC3B,GAAIwxC,GAAgBtiD,EAAE,mBAAoB+H,EAAOlB,UAAUwlC,WAAW,YACtEv7B,GAAMc,SAAS0wC,EAAc95C,KAAK,MAAM,GAAI,GAC5CsI,EAAMe,UAAS,GACf9J,EAAO+J,YAAYhB,IAEvBoB,KAAM,WACF,GAAIzT,GAAUG,KAAKH,OACnBA,GAAQ0X,KAAOvX,KAAKwjD,WAAW3jD,EAAQgtC,KAAMhtC,EAAQ4jD,SACrD5jD,EAAQgjC,YAAc7iC,KAAK6iC,YAC3B1pB,EAAkBrZ,GAAGwT,KAAKvT,KAAKC,SAGnC2jD,EAAYriD,EAAK3B,QACjBma,WAAY,SAAUjY,EAAIhC,GACtByB,EAAKxB,GAAGga,WAAW/Z,KAAKC,KAAM6B,EAAIhC,EAClC,IAAImK,GAAQ5I,EAAEpB,KAAKH,QAAQ8+C,eAAexwC,SAAS,QAAQywC,YACvDzH,OAAQt1C,EACRi9C,kBAAkB,EAClBrvC,KAAMvN,EAAMlC,KAAK4jD,MAAO5jD,MACxBywC,SAAUvuC,EAAMlC,KAAK6jD,UAAW7jD,MAChC+P,MAAO7N,EAAMlC,KAAKy2C,OAAQz2C,QAC3BquB,KAAK,aACRxsB,GAAGsS,MAAMjS,EAAMlC,KAAK8jD,QAAS9jD,OAAO6R,QAAQ3P,EAAMlC,KAAK42C,SAAU52C,OACjEA,KAAKk/C,QAAUr/C,EAAQsJ,OACvBnJ,KAAK+jD,OAAS/5C,GAElBA,MAAO,WACH,MAAOhK,MAAK+jD,QAEhBF,UAAWziD,EAAE8Y,KACb0pC,MAAO,WACH5jD,KAAK+jD,OAAOlkD,QAAQs3C,OAAOptC,SAASo5C,IAExC1M,OAAQ,WACJz2C,KAAK+jD,OAAOlkD,QAAQs3C,OAAOriC,YAAYquC,IAE3CvM,SAAU,SAAUrqC,GAAV,GACFpK,GAAO3C,EAAM2C,KACbwX,EAAMpN,EAAEgG,OACRoH,IAAOxX,EAAKm9C,MAAQ/yC,EAAEsH,OACtB7T,KAAK+jD,OAAOt0C,OACLkK,GAAOxX,EAAK80C,KACnBj3C,KAAK+jD,OAAOh0C,SAGpB+zC,QAAS,SAAUv3C,GACf,GAAI21C,GAAS9gD,EAAEmL,EAAEyH,QAAQxK,QAAQ,UAC5B04C,GAAOd,SAAS,qBACjBphD,KAAKgK,QAAQ24B,UAGrBl5B,OAAQ,SAAU5H,GACd,GAAImI,GAAQhK,KAAKgK,OACbA,GAAML,SAA2C,SAAhCK,EAAML,QAAQyE,IAAI,YACnCpE,EAAM+F,QAEVlO,EAAGiT,YAAY,kBAEnB4B,QAAS,WACL1W,KAAK+jD,OAAOrtC,aAGhBstC,EAAkBL,EAAUhkD,QAC5BC,KAAM,SAAUC,GACZG,KAAKikD,KAAO,EACZjkD,KAAK6sC,KAAO,EACZ8W,EAAU7jD,GAAGF,KAAKG,KAAKC,KAAMoB,EAAEzB,OAAOE,GAClCO,QAASmjD,EACT5E,cAAe,2BAAmCjW,MAAM1oC,KAAKikD,KAAOjkD,KAAK6sC,KAAO,GAAG/8B,KAAK,+CAAmD,yCAGnJ+zC,UAAW,WAOP,QAASK,GAAkB33C,GACvB,GAAIuB,GAAI1M,EAAEM,OACV,QACIwqC,IAAKv+B,KAAKw2C,OAAO53C,EAAE63C,QAAUt2C,EAAEkK,YAAchL,EAAMslB,KAAO+xB,GAAc,EACxEC,IAAK32C,KAAKw2C,OAAO53C,EAAEg4C,QAAUz2C,EAAE02C,aAAex3C,EAAMmF,MAAQsyC,GAAa,GAVjF,GAA6PA,GAAWJ,EAApQp7C,EAAOjJ,KAAM2I,EAAUM,EAAK86C,OAAOp7C,QAASwjC,EAAQxjC,EAAQiB,KAAK,cAAe86C,EAAYvY,EAAMa,GAAG,GAAI2X,EAAWxY,EAAMa,GAAGb,EAAMtrC,OAAS,GAAImM,EAAQxN,EAAMolD,UAAUF,GAAYzrB,EAAMz5B,EAAMolD,UAAUD,GAAWV,EAAOh7C,EAAKg7C,KAAMpX,EAAO5jC,EAAK4jC,IACvPlkC,GAAQiB,KAAK,KAAK6nC,UAAU3nC,KAAK,eAAgB,MACjDmvB,EAAI9mB,MAAQwyC,EAAS,GAAGE,YACxB5rB,EAAI3G,KAAOqyB,EAAS,GAAGpyB,aACvBkyB,GAAaxrB,EAAI9mB,KAAOnF,EAAMmF,MAAQ8xC,EACtCI,GAAcprB,EAAI3G,IAAMtlB,EAAMslB,KAAOua,EAQrClkC,EAAQ0I,GAAG,YAAcJ,EAAI,SAAU1E,GACnCtD,EAAK67C,cAAcZ,EAAkB33C,MACtC8E,GAAG,aAAeJ,EAAI,WACrBhI,EAAK67C,kBACNzzC,GAAG,UAAYJ,EAAI,SAAU1E,GAC5BtD,EAAK87C,MAAMb,EAAkB33C,OAGrCy4C,OAAQ,SAAUxrB,GACd,MAAOA,IAAQA,EAAK0S,IAAM,GAAK1S,EAAK8qB,IAAM,GAAiBtkD,KAAK6sC,MAAjBrT,EAAK0S,KAAgClsC,KAAKikD,MAAjBzqB,EAAK8qB,KAEjFS,MAAO,SAAUvrB,GACTx5B,KAAKglD,OAAOxrB,KACZx5B,KAAKk/C,QAAQ5rC,KAAK,eACdu5B,KAAMrT,EAAK0S,IACXuX,QAASjqB,EAAK8qB,MAElBtkD,KAAK+jD,OAAOh0C,UAGpB+0C,cAAe,SAAUtrB,GAAV,GACP7wB,GAAU3I,KAAK+jD,OAAOp7C,QACtBs8C,EAASt8C,EAAQiB,KAAK,aACtBuiC,EAAQxjC,EAAQiB,KAAK,cACrBq6C,EAAOjkD,KAAKikD,KACZhgD,EAAWjE,KAAKk/C,QAAQr/C,QAAQoE,QAChCjE,MAAKglD,OAAOxrB,IACZyrB,EAAOzuC,KAAKhX,EAAM0D,OAAOe,EAASsD,gBAAiBiyB,EAAK0S,IAAK1S,EAAK8qB,MAClEnY,EAAMlV,KAAK,SAAU9zB,GACjB/B,EAAEpB,MAAMsa,YAAY8oC,EAA0B5pB,EAAK8qB,IAAhBnhD,EAAI8gD,GAA8BzqB,EAAK0S,IAAhB/oC,EAAI8gD,OAGlEgB,EAAOzuC,KAAKvS,EAASoD,cACrB8kC,EAAMr3B,YAAYsuC,KAG1BxM,SAAU,SAAUrqC,GAAV,GAKFpK,GACAwX,EACAwyB,EACAp6B,EACAmzC,EACAC,EACAngB,EAcAogB,CAxBJzB,GAAU7jD,GAAG82C,SAAS72C,KAAKC,KAAMuM,GAC5BvM,KAAK+jD,OAAOrN,YAGbv0C,EAAO3C,EAAM2C,KACbwX,EAAMpN,EAAEgG,QACR45B,EAAQnsC,KAAK+jD,OAAOp7C,QAAQiB,KAAK,cACjCmI,EAAQpE,KAAKF,IAAI0+B,EAAMxW,OAAO,qBAAqBkb,OAAOpV,QAAS,GACnEypB,EAAev3C,KAAKw2C,MAAMpyC,EAAQ/R,KAAKikD,MACvCkB,EAAkBpzC,EAAQ/R,KAAKikD,KAC/Bjf,GAAU,EACVrrB,GAAOxX,EAAKm9C,MAAS/yC,EAAEsH,OAGhB8F,GAAOxX,EAAK6/C,IACnBhd,GAAU,EACVkgB,KACOvrC,GAAOxX,EAAK0Q,OACnBmyB,GAAU,EACVmgB,KACOxrC,GAAOxX,EAAKyQ,OACnBoyB,GAAU,EACVmgB,MAVAngB,GAAU,EACVkgB,KAWAE,GACAlZ,IAAKv+B,KAAKF,IAAI,EAAGE,KAAKH,IAAIxN,KAAK6sC,KAAMqY,EAAe,IACpDZ,IAAK32C,KAAKF,IAAI,EAAGE,KAAKH,IAAIxN,KAAKikD,KAAMkB,EAAkB,KAEvDxrC,GAAOxX,EAAK60C,MACZh3C,KAAK+kD,MAAMK,GAEXplD,KAAK8kD,cAAcM,GAEnBpgB,IACAz4B,EAAE0F,iBACF1F,EAAEkzC,8BAGVmE,MAAO,WACH,GAAI3/C,GAAWjE,KAAKk/C,QAAQr/C,QAAQoE,QACpC0/C,GAAU7jD,GAAG8jD,MAAM7jD,KAAKC,MACxBA,KAAKgK,QAAQrB,QAAQiB,KAAK,aAAa4M,KAAKvS,EAASoD,cAAc4xB,MAAMrvB,KAAK,cAAckL,YAAYsuC,IAE5G3M,OAAQ,WACJkN,EAAU7jD,GAAG22C,OAAO12C,KAAKC,MACzBA,KAAKgK,QAAQrB,QAAQ6I,IAAIP,IAE7BxH,OAAQ,SAAU5H,EAAIwY,GAClB,GAAI/C,EACJqsC,GAAU7jD,GAAG2J,OAAO1J,KAAKC,KAAM6B,GAC/ByV,EAAcgsC,EAAkBhsC,YAAY+C,GAC5CxY,EAAGyY,YAAY,mBAAoBhD,MAGvC+tC,EAAmBljB,EAAQxiC,QAC3B2T,KAAM,WAEF,IAFE,GACyDgyC,GAAWpZ,EAAKqZ,EAOlEpiD,EAPL+O,EAAQlS,KAAKsiC,WAAU,GAAOgN,EAAKp9B,EAAM2G,aACtB,MAAhBzP,EAAInG,KAAKqsC,IACZA,EAAKA,EAAG/gB,UAKZ,KAHA2d,EAAMoD,EAAG/gB,WACT+2B,EAAYpZ,EAAIlyB,SAASnZ,OACzB0kD,EAASrZ,EAAInd,WAAU,GACd5rB,EAAI,EAAO+oC,EAAIC,MAAMtrC,OAAdsC,EAAsBA,IAClCoiD,EAAOpZ,MAAMhpC,GAAGyI,UAAYhI,EAAOnC,mBAEV,WAAzBzB,KAAKH,QAAQgzB,SACbzpB,EAAIa,aAAas7C,EAAQrZ,GAEzB9iC,EAAI0D,YAAYy4C,EAAQrZ,GAE5BlsC,KAAKuiC,aAAarwB,MAGtBszC,EAAsBrjB,EAAQxiC,QAC9B2T,KAAM,WACF,GAAgHmyC,GAAatiD,EAAsBkpC,EAAMqZ,EAArJxzC,EAAQlS,KAAKsiC,WAAU,GAAOgN,EAAKlmC,EAAII,QAAQ0I,EAAM2G,aAAc,MAAOyrB,EAAQl7B,EAAII,QAAQ8lC,EAAI,SAA0BzC,EAAOvI,EAAMuI,KAAqBha,EAAW7yB,KAAKH,QAAQgzB,QAE1L,KADA4yB,EAAcr8C,EAAI6kB,cAAcqhB,GAAI,GAC/BnsC,EAAI,EAAO0pC,EAAKhsC,OAATsC,EAAiBA,IACzBkpC,EAAOQ,EAAK1pC,GAAGgpC,MAAMsZ,GACrBC,EAAUrZ,EAAKtd,YACf22B,EAAQ95C,UAAYhI,EAAOnC,oBACX,UAAZoxB,EACAzpB,EAAIa,aAAay7C,EAASrZ,GAE1BjjC,EAAI0D,YAAY44C,EAASrZ,EAGjCrsC,MAAKuiC,aAAarwB,MAGtByzC,EAAmBxjB,EAAQxiC,QAC3B2T,KAAM,WAAA,GAMEwuC,GAQS3+C,EACD+oC,EAdRh6B,EAAQlS,KAAKsiC,YACbuK,EAAO31B,EAAW6pB,OAAO7uB,EAAO,SAAU6L,GAC1C,MAAO3c,GAAE2c,GAAMvU,QAAQ,MAAM,KAE7B86B,EAAQl7B,EAAII,QAAQqjC,EAAK,GAAI,QAEjC,IAAyBA,EAAKhsC,QAA1ByjC,EAAMuI,KAAKhsC,OACXihD,EAAe14C,EAAI8pB,KAAKoR,KACnBwd,GAAgB14C,EAAIunB,cAAcmxB,MACnCA,EAAe14C,EAAI8U,KAAKomB,IAE5Bl7B,EAAIyE,OAAOy2B,OAEX,KAASnhC,EAAI,EAAO0pC,EAAKhsC,OAATsC,EAAiBA,IACzB+oC,EAAMW,EAAK1pC,GACfiG,EAAI2pB,mBAAmBmZ,GACvB4V,EAAe14C,EAAI8pB,KAAKgZ,IAAQ9iC,EAAI8U,KAAKguB,GACzC4V,EAAeA,EAAa3V,MAAM,GAClC/iC,EAAIyE,OAAOq+B,EAGf4V,KACA5vC,EAAMc,SAAS8uC,EAAc,GAC7B5vC,EAAMe,UAAS,GACfjT,KAAKmJ,OAAO+J,YAAYhB,OAIhC0zC,EAAsBzjB,EAAQxiC,QAC9B2T,KAAM,WACF,GAA8MwuC,GAAc3+C,EAAxN+O,EAAQlS,KAAKsiC,YAAagN,EAAKlmC,EAAII,QAAQ0I,EAAM2G,aAAc,MAAOyrB,EAAQl7B,EAAII,QAAQ8lC,EAAI,SAAUzC,EAAOvI,EAAMuI,KAAM4Y,EAAcr8C,EAAI6kB,cAAcqhB,GAAI,GAAOuW,EAAchZ,EAAK,GAAGV,MAAMtrC,MACtM,IAAmB,GAAfglD,EACA/D,EAAe14C,EAAI8pB,KAAKoR,KACnBwd,GAAgB14C,EAAIunB,cAAcmxB,MACnCA,EAAe14C,EAAI8U,KAAKomB,IAE5Bl7B,EAAIyE,OAAOy2B,OAIX,KAFAl7B,EAAI2pB,mBAAmBuc,GACvBwS,EAAe14C,EAAI8pB,KAAKoc,IAAOlmC,EAAI8U,KAAKoxB,GACnCnsC,EAAI,EAAO0pC,EAAKhsC,OAATsC,EAAiBA,IACzBiG,EAAIyE,OAAOg/B,EAAK1pC,GAAGgpC,MAAMsZ,GAG7B3D,KACA5vC,EAAMc,SAAS8uC,EAAc,GAC7B5vC,EAAMe,UAAS,GACfjT,KAAKmJ,OAAO+J,YAAYhB,OAIhC4zC,EAAwBxkD,EAAK3B,QAC7BS,QAAS,SAAUP,GAEf,MADAA,GAAUF,EAAOE,EAASG,KAAKH,SACT,UAAlBA,EAAQovC,OACY,OAAhBpvC,EAAQkJ,KACD,GAAI48C,GAAiB9lD,GAErB,GAAI+lD,GAAoB/lD,GAGf,OAAhBA,EAAQkJ,KACD,GAAIs8C,GAAiBxlD,GAErB,GAAI2lD,GAAoB3lD,IAI3Cia,WAAY,SAAUjY,EAAIhC,GACtByB,EAAKxB,GAAGga,WAAW/Z,KAAKC,KAAM6B,EAAIhC,GAClCgC,EAAGkI,SAAS,qBAEhBN,OAAQ,SAAU5H,EAAIwY,GAClB,GAAI/C,IAAegsC,EAAkBhsC,YAAY+C,EACjDxY,GAAGyY,YAAY,mBAAoBhD,KAG3C3X,GAAOH,EAAMqC,GAAGsH,QACZw6C,UAAWA,EACXJ,aAAcA,EACdS,gBAAiBA,EACjB8B,sBAAuBA,EACvBT,iBAAkBA,EAClBG,oBAAqBA,EACrBG,iBAAkBA,EAClBC,oBAAqBA,IAEzBtiD,EAAa,cAAe,GAAI0gD,IAC5B1hD,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBsH,OAAO,EACPiF,MAAO,oBAGf3L,EAAa,gBAAiB,GAAIwiD,IAC9B/8C,KAAM,SACN8pB,SAAU,SACVvwB,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBuM,MAAO,8BAGf3L,EAAa,iBAAkB,GAAIwiD,IAC/B/8C,KAAM,SACNzG,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBuM,MAAO,+BAGf3L,EAAa,cAAe,GAAIwiD,IAC5B/8C,KAAM,MACN8pB,SAAU,SACVvwB,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBuM,MAAO,qBAGf3L,EAAa,cAAe,GAAIwiD,IAC5B/8C,KAAM,MACNzG,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBuM,MAAO,qBAGf3L,EAAa,YAAa,GAAIwiD,IAC1B/8C,KAAM,MACNkmC,OAAQ,SACR3sC,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBuM,MAAO,kBAGf3L,EAAa,eAAgB,GAAIwiD,IAC7B/8C,KAAM,SACNkmC,OAAQ,SACR3sC,SAAU,GAAIF,IACVE,SAAUE,EAAYE,eACtBuM,MAAO,sBAGjBvN,OAAOlC,MAAM0c,SACC,kBAAV3c,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAU5B,EAAGC,QACVA,OAAO,gBACH,iBACA,qBACA,kBACA,eACA,oBACA,qBACA,qBACA,cACA,aACA,oBACA,eACA,gBACA,sBACA,qBACA,mBACA,eACA,cACA,cACA,eACA,oBACA,gBACA,kBACA,oBACA,iBACA,iBACDD,IACL,aAoCkB,kBAAVC,SAAwBA,OAAOyB,IAAMzB,OAAS,SAAU0B,EAAIC,EAAIC,IACrEA,GAAMD","file":"kendo.editor.min.js","sourcesContent":["/*!\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n*/\n(function (f, define) {\n define('util/undoredostack', ['kendo.core'], f);\n}(function () {\n (function (kendo) {\n var UndoRedoStack = kendo.Observable.extend({\n init: function (options) {\n kendo.Observable.fn.init.call(this, options);\n this.clear();\n },\n events: [\n 'undo',\n 'redo'\n ],\n push: function (command) {\n this.stack = this.stack.slice(0, this.currentCommandIndex + 1);\n this.currentCommandIndex = this.stack.push(command) - 1;\n },\n undo: function () {\n if (this.canUndo()) {\n var command = this.stack[this.currentCommandIndex--];\n command.undo();\n this.trigger('undo', { command: command });\n }\n },\n redo: function () {\n if (this.canRedo()) {\n var command = this.stack[++this.currentCommandIndex];\n command.redo();\n this.trigger('redo', { command: command });\n }\n },\n clear: function () {\n this.stack = [];\n this.currentCommandIndex = -1;\n },\n canUndo: function () {\n return this.currentCommandIndex >= 0;\n },\n canRedo: function () {\n return this.currentCommandIndex != this.stack.length - 1;\n }\n });\n kendo.deepExtend(kendo, { util: { UndoRedoStack: UndoRedoStack } });\n }(kendo));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/main', [\n 'util/undoredostack',\n 'kendo.combobox',\n 'kendo.dropdownlist',\n 'kendo.window',\n 'kendo.colorpicker'\n ], f);\n}(function () {\n (function ($, undefined) {\n var kendo = window.kendo, Class = kendo.Class, Widget = kendo.ui.Widget, os = kendo.support.mobileOS, browser = kendo.support.browser, extend = $.extend, proxy = $.proxy, deepExtend = kendo.deepExtend, keys = kendo.keys;\n var ToolTemplate = Class.extend({\n init: function (options) {\n this.options = options;\n },\n getHtml: function () {\n var options = this.options;\n return kendo.template(options.template, { useWithBlock: false })(options);\n }\n });\n var EditorUtils = {\n editorWrapperTemplate: '' + '' + '' + '
    ',\n buttonTemplate: '#= data.title #',\n colorPickerTemplate: '
    ',\n comboBoxTemplate: '',\n separatorTemplate: '',\n overflowAnchorTemplate: '',\n formatByName: function (name, format) {\n for (var i = 0; i < format.length; i++) {\n if ($.inArray(name, format[i].tags) >= 0) {\n return format[i];\n }\n }\n },\n registerTool: function (toolName, tool) {\n var toolOptions = tool.options;\n if (toolOptions && toolOptions.template) {\n toolOptions.template.options.cssClass = 'k-' + toolName;\n }\n if (!tool.name) {\n tool.options.name = toolName;\n tool.name = toolName.toLowerCase();\n }\n Editor.defaultTools[toolName] = tool;\n },\n registerFormat: function (formatName, format) {\n Editor.fn.options.formats[formatName] = format;\n }\n };\n var messages = {\n bold: 'Bold',\n italic: 'Italic',\n underline: 'Underline',\n strikethrough: 'Strikethrough',\n superscript: 'Superscript',\n subscript: 'Subscript',\n justifyCenter: 'Center text',\n justifyLeft: 'Align text left',\n justifyRight: 'Align text right',\n justifyFull: 'Justify',\n insertUnorderedList: 'Insert unordered list',\n insertOrderedList: 'Insert ordered list',\n indent: 'Indent',\n outdent: 'Outdent',\n createLink: 'Insert hyperlink',\n unlink: 'Remove hyperlink',\n insertImage: 'Insert image',\n insertFile: 'Insert file',\n insertHtml: 'Insert HTML',\n viewHtml: 'View HTML',\n fontName: 'Select font family',\n fontNameInherit: '(inherited font)',\n fontSize: 'Select font size',\n fontSizeInherit: '(inherited size)',\n formatBlock: 'Format',\n formatting: 'Format',\n foreColor: 'Color',\n backColor: 'Background color',\n style: 'Styles',\n emptyFolder: 'Empty Folder',\n editAreaTitle: 'Editable area. Press F10 for toolbar.',\n uploadFile: 'Upload',\n orderBy: 'Arrange by:',\n orderBySize: 'Size',\n orderByName: 'Name',\n invalidFileType: 'The selected file \"{0}\" is not valid. Supported file types are {1}.',\n deleteFile: 'Are you sure you want to delete \"{0}\"?',\n overwriteFile: 'A file with name \"{0}\" already exists in the current directory. Do you want to overwrite it?',\n directoryNotFound: 'A directory with this name was not found.',\n imageWebAddress: 'Web address',\n imageAltText: 'Alternate text',\n imageWidth: 'Width (px)',\n imageHeight: 'Height (px)',\n fileWebAddress: 'Web address',\n fileTitle: 'Title',\n linkWebAddress: 'Web address',\n linkText: 'Text',\n linkToolTip: 'ToolTip',\n linkOpenInNewWindow: 'Open link in new window',\n dialogUpdate: 'Update',\n dialogInsert: 'Insert',\n dialogCancel: 'Cancel',\n createTable: 'Create table',\n createTableHint: 'Create a {0} x {1} table',\n addColumnLeft: 'Add column on the left',\n addColumnRight: 'Add column on the right',\n addRowAbove: 'Add row above',\n addRowBelow: 'Add row below',\n deleteRow: 'Delete row',\n deleteColumn: 'Delete column'\n };\n var supportedBrowser = !os || os.ios && os.flatVersion >= 500 || !os.ios && typeof document.documentElement.contentEditable != 'undefined';\n var toolGroups = {\n basic: [\n 'bold',\n 'italic',\n 'underline'\n ],\n alignment: [\n 'justifyLeft',\n 'justifyCenter',\n 'justifyRight'\n ],\n lists: [\n 'insertUnorderedList',\n 'insertOrderedList'\n ],\n indenting: [\n 'indent',\n 'outdent'\n ],\n links: [\n 'createLink',\n 'unlink'\n ],\n tables: [\n 'createTable',\n 'addColumnLeft',\n 'addColumnRight',\n 'addRowAbove',\n 'addRowBelow',\n 'deleteRow',\n 'deleteColumn'\n ]\n };\n var Editor = Widget.extend({\n init: function (element, options) {\n var that = this, value, editorNS = kendo.ui.editor, toolbarContainer, toolbarOptions, type;\n var domElement;\n var dom = editorNS.Dom;\n if (!supportedBrowser) {\n return;\n }\n Widget.fn.init.call(that, element, options);\n that.options = deepExtend({}, that.options, options);\n that.options.tools = that.options.tools.slice();\n element = that.element;\n domElement = element[0];\n type = dom.name(domElement);\n this._registerHandler(element.closest('form'), 'submit', proxy(that.update, that, undefined));\n toolbarOptions = extend({}, that.options);\n toolbarOptions.editor = that;\n if (type == 'textarea') {\n that._wrapTextarea();\n toolbarContainer = that.wrapper.find('.k-editor-toolbar');\n if (domElement.id) {\n toolbarContainer.attr('aria-controls', domElement.id);\n }\n } else {\n that.element.attr('contenteditable', true).addClass('k-widget k-editor k-editor-inline');\n toolbarOptions.popup = true;\n toolbarContainer = $('');\n var block = this.isBlock(html);\n editor.focus();\n var range = editor.getRange();\n range.deleteContents();\n if (range.startContainer == editor.document) {\n range.selectNodeContents(editor.body);\n }\n var marker = new Marker();\n var caret = marker.addCaret(range);\n var parent = this.splittableParent(block, caret);\n var unwrap = false;\n var splittable = parent != editor.body && !dom.is(parent, 'td');\n if (options.split && splittable && (block || dom.isInline(parent))) {\n range.selectNode(caret);\n editorNS.RangeUtils.split(range, parent, true);\n unwrap = true;\n }\n var fragment = this.htmlToFragment(html);\n if (fragment.firstChild && fragment.firstChild.className === 'k-paste-container') {\n var fragmentsHtml = [];\n for (i = 0, l = fragment.childNodes.length; i < l; i++) {\n fragmentsHtml.push(fragment.childNodes[i].innerHTML);\n }\n fragment = this.htmlToFragment(fragmentsHtml.join('
    '));\n }\n $(fragment.childNodes).filter('table').addClass('k-table').end().find('table').addClass('k-table');\n range.insertNode(fragment);\n parent = this.splittableParent(block, caret);\n if (unwrap) {\n while (caret.parentNode != parent) {\n dom.unwrap(caret.parentNode);\n }\n dom.unwrap(caret.parentNode);\n }\n dom.normalize(range.commonAncestorContainer);\n caret.style.display = 'inline';\n dom.restoreScrollTop(editor.document);\n dom.scrollTo(caret);\n marker.removeCaret(range);\n var rangeEnd = range.commonAncestorContainer.parentNode;\n if (range.collapsed && dom.name(rangeEnd) == 'tbody') {\n range.setStartAfter($(rangeEnd).closest('table')[0]);\n range.collapse(true);\n }\n editor.selectRange(range);\n }\n });\n var Cleaner = Class.extend({\n init: function (options) {\n this.options = options || {};\n this.replacements = [];\n },\n clean: function (html, customReplacements) {\n var that = this, replacements = customReplacements || that.replacements, i, l;\n for (i = 0, l = replacements.length; i < l; i += 2) {\n html = html.replace(replacements[i], replacements[i + 1]);\n }\n return html;\n }\n });\n var ScriptCleaner = Cleaner.extend({\n init: function (options) {\n Cleaner.fn.init.call(this, options);\n this.replacements = [\n /<(\\/?)script([^>]*)>/i,\n '<$1telerik:script$2>'\n ];\n },\n applicable: function (html) {\n return !this.options.none && /]*>/i.test(html);\n }\n });\n var TabCleaner = Cleaner.extend({\n init: function (options) {\n Cleaner.fn.init.call(this, options);\n var replacement = ' ';\n this.replacements = [\n /]*>\\s*<\\/span>/gi,\n replacement,\n /\\t/gi,\n replacement,\n /    /gi,\n replacement\n ];\n },\n applicable: function (html) {\n return /    |class=\"?Apple-tab-span/i.test(html);\n }\n });\n var MSWordFormatCleaner = Cleaner.extend({\n init: function (options) {\n Cleaner.fn.init.call(this, options);\n this.junkReplacements = [\n /<\\?xml[^>]*>/gi,\n '',\n //g,\n '',\n /"/g,\n '\\'',\n / <\\/o:p>/gi,\n ' ',\n /<\\/?(meta|link|style|o:|v:|x:)[^>]*>((?:.|\\n)*?<\\/(meta|link|style|o:|v:|x:)[^>]*>)?/gi,\n '',\n /<\\/o>/g,\n ''\n ];\n this.replacements = this.junkReplacements.concat([\n /(?:
     [\\s\\r\\n]+|
    )*(<\\/?(h[1-6]|hr|p|div|table|tbody|thead|tfoot|th|tr|td|li|ol|ul|caption|address|pre|form|blockquote|dl|dt|dd|dir|fieldset)[^>]*>)(?:
     [\\s\\r\\n]+|
    )*/g,\n '$1',\n /

    /g,\n '

    ',\n /
    (?!\\n)/g,\n ' ',\n /]*)>(\\s| )+]*>(\\s| )*<\\/tr>/gi,\n '',\n /]*>(\\s| )*<\\/tbody>/gi,\n '',\n /]*>(\\s| )*<\\/table>/gi,\n '',\n /

    /g,\n '
    ',\n /^\\s*( )+/gi,\n '',\n /( |]*>)+\\s*$/gi,\n '',\n /mso-[^;\"]*;?/gi,\n '',\n /<(\\/?)b(\\s[^>]*)?>/gi,\n '<$1strong$2>',\n /<(\\/?)font(\\s[^>]*)?>/gi,\n this.convertFontMatch,\n /<(\\/?)i(\\s[^>]*)?>/gi,\n '<$1em$2>',\n /style=([\"|'])\\s*\\1/g,\n '',\n /(]*>)?\\n/g,\n function ($0, $1) {\n return $1 ? $0 : ' ';\n }\n ]);\n },\n convertFontMatch: function (match, closing, args) {\n var faceRe = /face=['\"]([^'\"]+)['\"]/i;\n var face = faceRe.exec(args);\n var family = args && face && face[1];\n if (closing) {\n return '
    ';\n } else if (family) {\n return '';\n } else {\n return '';\n }\n },\n applicable: function (html) {\n return /class=\"?Mso/i.test(html) || /style=\"[^\"]*mso-/i.test(html) || /urn:schemas-microsoft-com:office/.test(html);\n },\n stripEmptyAnchors: function (html) {\n return html.replace(/]*)>\\s*<\\/a>/gi, function (a, attributes) {\n if (!attributes || attributes.indexOf('href') < 0) {\n return '';\n }\n return a;\n });\n },\n listType: function (p, listData) {\n var html = p.innerHTML;\n var text = dom.innerText(p);\n var startingSymbol;\n var matchSymbol = html.match(/^(?:]*texhtml[^>]*>)?]*(?:Symbol|Wingdings)[^>]*>([^<]+)/i);\n var symbol = matchSymbol && matchSymbol[1];\n var isNumber = /^[a-z\\d]/i.test(symbol);\n var trimStartText = function (text) {\n return text.replace(/^(?: |[\\u00a0\\n\\r\\s])+/, '');\n };\n if (matchSymbol) {\n startingSymbol = true;\n }\n html = html.replace(/<\\/?\\w+[^>]*>/g, '').replace(/ /g, '\\xA0');\n if (!startingSymbol && /^[\\u2022\\u00b7\\u00a7\\u00d8o]\\u00a0+/.test(html) || startingSymbol && /^.\\u00a0+/.test(html) || symbol && !isNumber && listData) {\n return {\n tag: 'ul',\n style: this._guessUnorderedListStyle(trimStartText(text))\n };\n }\n if (/^\\s*\\w+[\\.\\)][\\u00a0 ]{2,}/.test(html)) {\n return {\n tag: 'ol',\n style: this._guessOrderedListStyle(trimStartText(text))\n };\n }\n },\n _convertToLi: function (p) {\n var content;\n if (p.childNodes.length == 1) {\n content = p.firstChild.innerHTML.replace(/^\\w+[\\.\\)]( )+ /, '');\n } else {\n dom.remove(p.firstChild);\n if (p.firstChild.nodeType == 3) {\n if (/^[ivxlcdm]+\\.$/i.test(p.firstChild.nodeValue)) {\n dom.remove(p.firstChild);\n }\n }\n if (/^( |\\s)+$/i.test(p.firstChild.innerHTML)) {\n dom.remove(p.firstChild);\n }\n content = p.innerHTML;\n }\n dom.remove(p);\n return dom.create(document, 'li', { innerHTML: content });\n },\n _guessUnorderedListStyle: function (symbol) {\n if (/^[\\u2022\\u00b7\\u00FC\\u00D8\\u002dv-]/.test(symbol)) {\n return null;\n } else if (/^o/.test(symbol)) {\n return 'circle';\n } else {\n return 'square';\n }\n },\n _guessOrderedListStyle: function (symbol) {\n var listType = null;\n if (!/^\\d/.test(symbol)) {\n listType = (/^[a-z]/.test(symbol) ? 'lower-' : 'upper-') + (/^[ivxlcdm]/i.test(symbol) ? 'roman' : 'alpha');\n }\n return listType;\n },\n extractListLevels: function (html) {\n var msoListRegExp = /style=['\"]?[^'\"]*?mso-list:\\s?[a-zA-Z]+(\\d+)\\s[a-zA-Z]+(\\d+)\\s(\\w+)/gi;\n html = html.replace(msoListRegExp, function (match, list, level) {\n return kendo.format('data-list=\"{0}\" data-level=\"{1}\" {2}', list, level, match);\n });\n return html;\n },\n lists: function (placeholder) {\n var blockChildren = $(placeholder).find(dom.blockElements.join(',')), lastMargin = -1, name, levels = {}, li = placeholder, rootMargin, listContainer, i, p, type, margin, list, listData;\n for (i = 0; i < blockChildren.length; i++) {\n p = blockChildren[i];\n listData = $(p).data();\n var listIndex = listData.list;\n name = dom.name(p);\n if (name == 'td') {\n continue;\n }\n var listType = this.listType(p, listData);\n type = listType && listType.tag;\n if (!type || name != 'p') {\n if (!p.innerHTML) {\n dom.remove(p);\n } else {\n lastMargin = -1;\n li = placeholder;\n }\n continue;\n }\n margin = parseFloat(p.style.marginLeft || 0);\n if (rootMargin === undefined) {\n rootMargin = margin;\n }\n var levelType = type + listIndex;\n if (!levels[margin]) {\n levels[margin] = {};\n }\n list = levels[margin][levelType];\n if (margin > lastMargin || !list) {\n list = dom.create(document, type, { style: { listStyleType: listType.style } });\n if (li == placeholder || margin <= lastMargin) {\n if (listContainer && rootMargin !== margin) {\n listContainer.appendChild(list);\n } else {\n dom.insertBefore(list, p);\n }\n levels[margin] = {};\n } else {\n listContainer = li;\n li.appendChild(list);\n }\n levels[margin][levelType] = list;\n }\n li = this._convertToLi(p);\n list.appendChild(li);\n lastMargin = margin;\n }\n },\n removeAttributes: function (element) {\n var attributes = element.attributes, i = attributes.length;\n while (i--) {\n if (dom.name(attributes[i]) != 'colspan') {\n element.removeAttributeNode(attributes[i]);\n }\n }\n },\n createColGroup: function (row) {\n var cells = row.cells;\n var table = $(row).closest('table');\n var colgroup = table.children('colgroup');\n if (cells.length < 2) {\n return;\n } else if (colgroup.length) {\n cells = colgroup.children();\n colgroup[0].parentNode.removeChild(colgroup[0]);\n }\n colgroup = $($.map(cells, function (cell) {\n var width = cell.width;\n if (width && parseInt(width, 10) !== 0) {\n return kendo.format('', width);\n }\n return '';\n }).join(''));\n if (!colgroup.is('colgroup')) {\n colgroup = $('').append(colgroup);\n }\n colgroup.prependTo(table);\n },\n convertHeaders: function (row) {\n var cells = row.cells, i, boldedCells = $.map(cells, function (cell) {\n var child = $(cell).children('p').children('strong')[0];\n if (child && dom.name(child) == 'strong') {\n return child;\n }\n });\n if (boldedCells.length == cells.length) {\n for (i = 0; i < boldedCells.length; i++) {\n dom.unwrap(boldedCells[i]);\n }\n $(row).closest('table').find('colgroup').after('').end().find('thead').append(row);\n for (i = 0; i < cells.length; i++) {\n dom.changeTag(cells[i], 'th');\n }\n }\n },\n removeParagraphs: function (cells) {\n var i, j, len, cell, paragraphs;\n for (i = 0; i < cells.length; i++) {\n this.removeAttributes(cells[i]);\n cell = $(cells[i]);\n paragraphs = cell.children('p');\n for (j = 0, len = paragraphs.length; j < len; j++) {\n if (j < len - 1) {\n dom.insertAfter(dom.create(document, 'br'), paragraphs[j]);\n }\n dom.unwrap(paragraphs[j]);\n }\n }\n },\n removeDefaultColors: function (spans) {\n for (var i = 0; i < spans.length; i++) {\n if (/^\\s*color:\\s*[^;]*;?$/i.test(spans[i].style.cssText)) {\n dom.unwrap(spans[i]);\n }\n }\n },\n tables: function (placeholder) {\n var tables = $(placeholder).find('table'), that = this, rows, firstRow, longestRow, i, j;\n for (i = 0; i < tables.length; i++) {\n rows = tables[i].rows;\n longestRow = firstRow = rows[0];\n for (j = 1; j < rows.length; j++) {\n if (rows[j].cells.length > longestRow.cells.length) {\n longestRow = rows[j];\n }\n }\n that.createColGroup(longestRow);\n that.convertHeaders(firstRow);\n that.removeAttributes(tables[i]);\n that.removeParagraphs(tables.eq(i).find('td,th'));\n that.removeDefaultColors(tables.eq(i).find('span'));\n }\n },\n headers: function (placeholder) {\n var titles = $(placeholder).find('p.MsoTitle');\n for (var i = 0; i < titles.length; i++) {\n dom.changeTag(titles[i], 'h1');\n }\n },\n removeFormatting: function (placeholder) {\n $(placeholder).find('*').css({\n fontSize: '',\n fontFamily: ''\n });\n },\n clean: function (html) {\n var that = this, placeholder;\n var filters = this.options;\n if (filters.none) {\n html = Cleaner.fn.clean.call(that, html, this.junkReplacements);\n html = that.stripEmptyAnchors(html);\n } else {\n html = this.extractListLevels(html);\n html = Cleaner.fn.clean.call(that, html);\n html = that.stripEmptyAnchors(html);\n placeholder = dom.create(document, 'div', { innerHTML: html });\n that.headers(placeholder);\n if (filters.msConvertLists) {\n that.lists(placeholder);\n }\n that.tables(placeholder);\n if (filters.msAllFormatting) {\n that.removeFormatting(placeholder);\n }\n html = placeholder.innerHTML.replace(/(<[^>]*)\\s+class=\"?[^\"\\s>]*\"?/gi, '$1');\n }\n return html;\n }\n });\n var WebkitFormatCleaner = Cleaner.extend({\n init: function (options) {\n Cleaner.fn.init.call(this, options);\n this.replacements = [\n /\\s+class=\"Apple-style-span[^\"]*\"/gi,\n '',\n /<(div|p|h[1-6])\\s+style=\"[^\"]*\"/gi,\n '<$1',\n /^
    (.*)<\\/div>$/,\n '$1'\n ];\n },\n applicable: function (html) {\n return /class=\"?Apple-style-span|style=\"[^\"]*-webkit-nbsp-mode/i.test(html);\n }\n });\n var DomCleaner = Cleaner.extend({\n clean: function (html) {\n var container = dom.create(document, 'div', { innerHTML: html });\n container = this.cleanDom(container);\n return container.innerHTML;\n },\n cleanDom: function (container) {\n return container;\n }\n });\n var HtmlTagsCleaner = DomCleaner.extend({\n cleanDom: function (container) {\n var tags = this.collectTags();\n $(container).find(tags).each(function () {\n dom.unwrap(this);\n });\n return container;\n },\n collectTags: function () {\n if (this.options.span) {\n return 'span';\n }\n },\n applicable: function () {\n return this.options.span;\n }\n });\n var HtmlAttrCleaner = DomCleaner.extend({\n cleanDom: function (container) {\n var attributes = this.collectAttr();\n var nodes = $(container).find('[' + attributes.join('],[') + ']');\n nodes.removeAttr(attributes.join(' '));\n return container;\n },\n collectAttr: function () {\n if (this.options.css) {\n return [\n 'class',\n 'style'\n ];\n }\n return [];\n },\n applicable: function () {\n return this.options.css;\n }\n });\n var TextContainer = function () {\n this.text = '';\n this.add = function (text) {\n this.text += text;\n };\n };\n var HtmlTextLines = Class.extend({\n init: function (separators) {\n this.separators = separators || {\n text: ' ',\n line: '
    '\n };\n this.lines = [];\n this.inlineBlockText = [];\n this.resetLine();\n },\n appendText: function (text) {\n if (text.nodeType === 3) {\n text = text.nodeValue;\n }\n this.textContainer.add(text);\n },\n appendInlineBlockText: function (text) {\n this.inlineBlockText.push(text);\n },\n flashInlineBlockText: function () {\n if (this.inlineBlockText.length) {\n this.appendText(this.inlineBlockText.join(' '));\n this.inlineBlockText = [];\n }\n },\n endLine: function () {\n this.flashInlineBlockText();\n this.resetLine();\n },\n html: function () {\n var separators = this.separators;\n var result = '';\n var lines = this.lines;\n this.flashInlineBlockText();\n for (var i = 0, il = lines.length, il1 = il - 1; i < il; i++) {\n var line = lines[i];\n for (var j = 0, jl = line.length, jl1 = jl - 1; j < jl; j++) {\n var text = line[j].text;\n result += text;\n if (j !== jl1) {\n result += separators.text;\n }\n }\n if (i !== il1) {\n result += separators.line;\n }\n }\n return result;\n },\n resetLine: function () {\n this.textContainer = new TextContainer();\n this.line = [];\n this.line.push(this.textContainer);\n this.lines.push(this.line);\n }\n });\n var DomEnumerator = Class.extend({\n init: function (callback) {\n this.callback = callback;\n },\n enumerate: function (node) {\n if (!node) {\n return;\n }\n var preventDown = this.callback(node);\n var child = node.firstChild;\n if (!preventDown && child) {\n this.enumerate(child);\n }\n this.enumerate(node.nextSibling);\n }\n });\n var HtmlContentCleaner = Cleaner.extend({\n init: function (options) {\n Cleaner.fn.init.call(this, options);\n this.hasText = false;\n this.enumerator = new DomEnumerator($.proxy(this.buildText, this));\n },\n clean: function (html) {\n var container = dom.create(document, 'div', { innerHTML: html });\n return this.cleanDom(container);\n },\n cleanDom: function (container) {\n this.separators = this.getDefaultSeparators();\n this.htmlLines = new HtmlTextLines(this.separators);\n this.enumerator.enumerate(container.firstChild);\n this.hasText = false;\n return this.htmlLines.html();\n },\n buildText: function (node) {\n if (dom.isDataNode(node)) {\n if (dom.isEmptyspace(node)) {\n return;\n }\n this.htmlLines.appendText(node.nodeValue.replace('\\n', this.separators.line));\n this.hasText = true;\n } else if (dom.isBlock(node) && this.hasText) {\n var action = this.actions[dom.name(node)] || this.actions.block;\n return action(this, node);\n }\n },\n applicable: function () {\n var o = this.options;\n return o.all || o.keepNewLines;\n },\n getDefaultSeparators: function () {\n if (this.options.all) {\n return {\n text: ' ',\n line: ' '\n };\n } else {\n return {\n text: ' ',\n line: '
    '\n };\n }\n },\n actions: {\n ul: $.noop,\n ol: $.noop,\n table: $.noop,\n thead: $.noop,\n tbody: $.noop,\n td: function (cleaner, node) {\n var tdCleaner = new HtmlContentCleaner({ all: true });\n var cellText = tdCleaner.cleanDom(node);\n cleaner.htmlLines.appendInlineBlockText(cellText);\n return true;\n },\n block: function (cleaner) {\n cleaner.htmlLines.endLine();\n }\n }\n });\n var CustomCleaner = Cleaner.extend({\n clean: function (html) {\n return this.options.custom(html);\n },\n applicable: function () {\n return typeof this.options.custom === 'function';\n }\n });\n var PrintCommand = Command.extend({\n init: function (options) {\n Command.fn.init.call(this, options);\n this.managesUndoRedo = true;\n },\n exec: function () {\n var editor = this.editor;\n if (kendo.support.browser.msie) {\n editor.document.execCommand('print', false, null);\n } else if (editor.window.print) {\n editor.window.print();\n }\n }\n });\n var ExportPdfCommand = Command.extend({\n init: function (options) {\n this.async = true;\n Command.fn.init.call(this, options);\n },\n exec: function () {\n var that = this;\n var range = this.lockRange(true);\n this.editor.saveAsPDF().then(function () {\n that.releaseRange(range);\n });\n }\n });\n extend(editorNS, {\n _finishUpdate: finishUpdate,\n Command: Command,\n GenericCommand: GenericCommand,\n InsertHtmlCommand: InsertHtmlCommand,\n InsertHtmlTool: InsertHtmlTool,\n TypingHandler: TypingHandler,\n SystemHandler: SystemHandler,\n BackspaceHandler: BackspaceHandler,\n Keyboard: Keyboard,\n Clipboard: Clipboard,\n Cleaner: Cleaner,\n ScriptCleaner: ScriptCleaner,\n TabCleaner: TabCleaner,\n MSWordFormatCleaner: MSWordFormatCleaner,\n WebkitFormatCleaner: WebkitFormatCleaner,\n HtmlTagsCleaner: HtmlTagsCleaner,\n HtmlAttrCleaner: HtmlAttrCleaner,\n HtmlContentCleaner: HtmlContentCleaner,\n HtmlTextLines: HtmlTextLines,\n CustomCleaner: CustomCleaner,\n PrintCommand: PrintCommand,\n ExportPdfCommand: ExportPdfCommand\n });\n registerTool('insertHtml', new InsertHtmlTool({\n template: new ToolTemplate({\n template: EditorUtils.dropDownListTemplate,\n title: 'Insert HTML',\n initialValue: 'Insert HTML'\n })\n }));\n registerTool('print', new Tool({\n command: PrintCommand,\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Print'\n })\n }));\n registerTool('pdf', new Tool({\n command: ExportPdfCommand,\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Export PDF'\n })\n }));\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/inlineformat', ['editor/system'], f);\n}(function () {\n (function ($) {\n var kendo = window.kendo, Class = kendo.Class, Editor = kendo.ui.editor, formats = kendo.ui.Editor.fn.options.formats, EditorUtils = Editor.EditorUtils, Tool = Editor.Tool, ToolTemplate = Editor.ToolTemplate, FormatTool = Editor.FormatTool, dom = Editor.Dom, RangeUtils = Editor.RangeUtils, extend = $.extend, registerTool = Editor.EditorUtils.registerTool, registerFormat = Editor.EditorUtils.registerFormat, KMARKER = 'k-marker';\n var InlineFormatFinder = Class.extend({\n init: function (format) {\n this.format = format;\n },\n numberOfSiblings: function (referenceNode) {\n var textNodesCount = 0, elementNodesCount = 0, markerCount = 0, parentNode = referenceNode.parentNode, node;\n for (node = parentNode.firstChild; node; node = node.nextSibling) {\n if (node != referenceNode) {\n if (node.className == KMARKER) {\n markerCount++;\n } else if (node.nodeType == 3) {\n textNodesCount++;\n } else {\n elementNodesCount++;\n }\n }\n }\n if (markerCount > 1 && parentNode.firstChild.className == KMARKER && parentNode.lastChild.className == KMARKER) {\n return 0;\n } else {\n return elementNodesCount + textNodesCount;\n }\n },\n findSuitable: function (sourceNode, skip) {\n if (!skip && this.numberOfSiblings(sourceNode) > 0) {\n return null;\n }\n var node = sourceNode.parentNode;\n var tags = this.format[0].tags;\n while (!dom.ofType(node, tags)) {\n if (this.numberOfSiblings(node) > 0) {\n return null;\n }\n node = node.parentNode;\n }\n return node;\n },\n findFormat: function (sourceNode) {\n var format = this.format, attrEquals = dom.attrEquals, i, len, node, tags, attributes;\n for (i = 0, len = format.length; i < len; i++) {\n node = sourceNode;\n tags = format[i].tags;\n attributes = format[i].attr;\n if (node && dom.ofType(node, tags) && attrEquals(node, attributes)) {\n return node;\n }\n while (node) {\n node = dom.parentOfType(node, tags);\n if (node && attrEquals(node, attributes)) {\n return node;\n }\n }\n }\n return null;\n },\n isFormatted: function (nodes) {\n var i, len;\n for (i = 0, len = nodes.length; i < len; i++) {\n if (this.findFormat(nodes[i])) {\n return true;\n }\n }\n return false;\n }\n });\n var InlineFormatter = Class.extend({\n init: function (format, values) {\n this.finder = new InlineFormatFinder(format);\n this.attributes = extend({}, format[0].attr, values);\n this.tag = format[0].tags[0];\n },\n wrap: function (node) {\n return dom.wrap(node, dom.create(node.ownerDocument, this.tag, this.attributes));\n },\n activate: function (range, nodes) {\n if (this.finder.isFormatted(nodes)) {\n this.split(range);\n this.remove(nodes);\n } else {\n this.apply(nodes);\n }\n },\n toggle: function (range) {\n var nodes = RangeUtils.textNodes(range);\n if (nodes.length > 0) {\n this.activate(range, nodes);\n }\n },\n apply: function (nodes) {\n var formatNodes = [];\n var i, l, node, formatNode;\n for (i = 0, l = nodes.length; i < l; i++) {\n node = nodes[i];\n formatNode = this.finder.findSuitable(node);\n if (formatNode) {\n dom.attr(formatNode, this.attributes);\n } else {\n while (!dom.isBlock(node.parentNode) && node.parentNode.childNodes.length == 1 && node.parentNode.contentEditable !== 'true') {\n node = node.parentNode;\n }\n formatNode = this.wrap(node);\n }\n formatNodes.push(formatNode);\n }\n this.consolidate(formatNodes);\n },\n remove: function (nodes) {\n var i, l, formatNode;\n for (i = 0, l = nodes.length; i < l; i++) {\n formatNode = this.finder.findFormat(nodes[i]);\n if (formatNode) {\n if (this.attributes && this.attributes.style) {\n dom.unstyle(formatNode, this.attributes.style);\n if (!formatNode.style.cssText && !formatNode.attributes['class']) {\n dom.unwrap(formatNode);\n }\n } else {\n dom.unwrap(formatNode);\n }\n }\n }\n },\n split: function (range) {\n var nodes = RangeUtils.textNodes(range);\n var l = nodes.length;\n var i, formatNode;\n if (l > 0) {\n for (i = 0; i < l; i++) {\n formatNode = this.finder.findFormat(nodes[i]);\n if (formatNode) {\n RangeUtils.split(range, formatNode, true);\n }\n }\n }\n },\n consolidate: function (nodes) {\n var node, last;\n while (nodes.length > 1) {\n node = nodes.pop();\n last = nodes[nodes.length - 1];\n if (node.previousSibling && node.previousSibling.className == KMARKER) {\n last.appendChild(node.previousSibling);\n }\n if (node.tagName == last.tagName && node.previousSibling == last && node.style.cssText == last.style.cssText) {\n while (node.firstChild) {\n last.appendChild(node.firstChild);\n }\n dom.remove(node);\n }\n }\n }\n });\n var GreedyInlineFormatFinder = InlineFormatFinder.extend({\n init: function (format, greedyProperty) {\n this.format = format;\n this.greedyProperty = greedyProperty;\n InlineFormatFinder.fn.init.call(this, format);\n },\n getInlineCssValue: function (node) {\n var attributes = node.attributes;\n var trim = $.trim;\n var i, l, attribute, name, attributeValue, css, pair, cssIndex, len;\n var propertyAndValue, property, value;\n if (!attributes) {\n return;\n }\n for (i = 0, l = attributes.length; i < l; i++) {\n attribute = attributes[i];\n name = attribute.nodeName;\n attributeValue = attribute.nodeValue;\n if (attribute.specified && name == 'style') {\n css = trim(attributeValue || node.style.cssText).split(';');\n for (cssIndex = 0, len = css.length; cssIndex < len; cssIndex++) {\n pair = css[cssIndex];\n if (pair.length) {\n propertyAndValue = pair.split(':');\n property = trim(propertyAndValue[0].toLowerCase());\n value = trim(propertyAndValue[1]);\n if (property != this.greedyProperty) {\n continue;\n }\n return property.indexOf('color') >= 0 ? dom.toHex(value) : value;\n }\n }\n }\n }\n },\n getFormatInner: function (node) {\n var $node = $(dom.isDataNode(node) ? node.parentNode : node);\n var parents = $node.parentsUntil('[contentEditable]').addBack().toArray().reverse();\n var i, len, value;\n for (i = 0, len = parents.length; i < len; i++) {\n value = this.greedyProperty == 'className' ? parents[i].className : this.getInlineCssValue(parents[i]);\n if (value) {\n return value;\n }\n }\n return 'inherit';\n },\n getFormat: function (nodes) {\n var result = this.getFormatInner(nodes[0]), i, len;\n for (i = 1, len = nodes.length; i < len; i++) {\n if (result != this.getFormatInner(nodes[i])) {\n return '';\n }\n }\n return result;\n },\n isFormatted: function (nodes) {\n return this.getFormat(nodes) !== '';\n }\n });\n var GreedyInlineFormatter = InlineFormatter.extend({\n init: function (format, values, greedyProperty) {\n InlineFormatter.fn.init.call(this, format, values);\n this.values = values;\n this.finder = new GreedyInlineFormatFinder(format, greedyProperty);\n if (greedyProperty) {\n this.greedyProperty = kendo.toCamelCase(greedyProperty);\n }\n },\n activate: function (range, nodes) {\n var greedyProperty = this.greedyProperty;\n var action = 'apply';\n this.split(range);\n if (greedyProperty && this.values.style[greedyProperty] == 'inherit') {\n action = 'remove';\n }\n this[action](nodes);\n }\n });\n var InlineFormatTool = FormatTool.extend({\n init: function (options) {\n FormatTool.fn.init.call(this, extend(options, {\n finder: new InlineFormatFinder(options.format),\n formatter: function () {\n return new InlineFormatter(options.format);\n }\n }));\n }\n });\n var DelayedExecutionTool = Tool.extend({\n update: function (ui, nodes) {\n var list = ui.data(this.type);\n list.close();\n list.value(this.finder.getFormat(nodes));\n }\n });\n var FontTool = DelayedExecutionTool.extend({\n init: function (options) {\n Tool.fn.init.call(this, options);\n this.type = kendo.support.browser.msie || kendo.support.touch ? 'kendoDropDownList' : 'kendoComboBox';\n this.format = [{ tags: ['span'] }];\n this.finder = new GreedyInlineFormatFinder(this.format, options.cssAttr);\n },\n command: function (commandArguments) {\n var options = this.options, format = this.format, style = {};\n return new Editor.FormatCommand(extend(commandArguments, {\n formatter: function () {\n style[options.domAttr] = commandArguments.value;\n return new GreedyInlineFormatter(format, { style: style }, options.cssAttr);\n }\n }));\n },\n initialize: function (ui, initOptions) {\n var editor = initOptions.editor, options = this.options, toolName = options.name, dataSource, defaultValue = [];\n if (options.defaultValue) {\n defaultValue = [{\n text: editor.options.messages[options.defaultValue[0].text],\n value: options.defaultValue[0].value\n }];\n }\n dataSource = defaultValue.concat(options.items ? options.items : editor.options[toolName] || []);\n ui.attr({ title: initOptions.title });\n ui[this.type]({\n dataTextField: 'text',\n dataValueField: 'value',\n dataSource: dataSource,\n change: function () {\n Tool.exec(editor, toolName, this.value());\n },\n highlightFirst: false\n });\n ui.closest('.k-widget').removeClass('k-' + toolName).find('*').addBack().attr('unselectable', 'on');\n ui.data(this.type).value('inherit');\n }\n });\n var ColorTool = Tool.extend({\n init: function (options) {\n Tool.fn.init.call(this, options);\n this.format = [{ tags: ['span'] }];\n this.finder = new GreedyInlineFormatFinder(this.format, options.cssAttr);\n },\n options: { palette: 'websafe' },\n update: function () {\n this._widget.close();\n },\n command: function (commandArguments) {\n var options = this.options, format = this.format, style = {};\n return new Editor.FormatCommand(extend(commandArguments, {\n formatter: function () {\n style[options.domAttr] = commandArguments.value;\n return new GreedyInlineFormatter(format, { style: style }, options.cssAttr);\n }\n }));\n },\n initialize: function (ui, initOptions) {\n var editor = initOptions.editor, toolName = this.name, options = extend({}, ColorTool.fn.options, this.options), palette = options.palette;\n ui = this._widget = new kendo.ui.ColorPicker(ui, {\n toolIcon: 'k-' + options.name,\n palette: palette,\n change: function () {\n var color = ui.value();\n if (color) {\n Tool.exec(editor, toolName, color);\n }\n editor.focus();\n },\n activate: function (e) {\n e.preventDefault();\n ui.trigger('change');\n }\n });\n ui.wrapper.attr({\n title: initOptions.title,\n unselectable: 'on'\n }).find('*').attr('unselectable', 'on');\n }\n });\n extend(Editor, {\n InlineFormatFinder: InlineFormatFinder,\n InlineFormatter: InlineFormatter,\n DelayedExecutionTool: DelayedExecutionTool,\n GreedyInlineFormatFinder: GreedyInlineFormatFinder,\n GreedyInlineFormatter: GreedyInlineFormatter,\n InlineFormatTool: InlineFormatTool,\n FontTool: FontTool,\n ColorTool: ColorTool\n });\n registerFormat('bold', [\n {\n tags: [\n 'strong',\n 'b'\n ]\n },\n {\n tags: ['span'],\n attr: { style: { fontWeight: 'bold' } }\n }\n ]);\n registerTool('bold', new InlineFormatTool({\n key: 'B',\n ctrl: true,\n format: formats.bold,\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Bold'\n })\n }));\n registerFormat('italic', [\n {\n tags: [\n 'em',\n 'i'\n ]\n },\n {\n tags: ['span'],\n attr: { style: { fontStyle: 'italic' } }\n }\n ]);\n registerTool('italic', new InlineFormatTool({\n key: 'I',\n ctrl: true,\n format: formats.italic,\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Italic'\n })\n }));\n registerFormat('underline', [\n {\n tags: ['span'],\n attr: { style: { textDecoration: 'underline' } }\n },\n { tags: ['u'] }\n ]);\n registerTool('underline', new InlineFormatTool({\n key: 'U',\n ctrl: true,\n format: formats.underline,\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Underline'\n })\n }));\n registerFormat('strikethrough', [\n {\n tags: [\n 'del',\n 'strike'\n ]\n },\n {\n tags: ['span'],\n attr: { style: { textDecoration: 'line-through' } }\n }\n ]);\n registerTool('strikethrough', new InlineFormatTool({\n format: formats.strikethrough,\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Strikethrough'\n })\n }));\n registerFormat('superscript', [{ tags: ['sup'] }]);\n registerTool('superscript', new InlineFormatTool({\n format: formats.superscript,\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Superscript'\n })\n }));\n registerFormat('subscript', [{ tags: ['sub'] }]);\n registerTool('subscript', new InlineFormatTool({\n format: formats.subscript,\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Subscript'\n })\n }));\n registerTool('foreColor', new ColorTool({\n cssAttr: 'color',\n domAttr: 'color',\n name: 'foreColor',\n template: new ToolTemplate({\n template: EditorUtils.colorPickerTemplate,\n title: 'Color'\n })\n }));\n registerTool('backColor', new ColorTool({\n cssAttr: 'background-color',\n domAttr: 'backgroundColor',\n name: 'backColor',\n template: new ToolTemplate({\n template: EditorUtils.colorPickerTemplate,\n title: 'Background Color'\n })\n }));\n registerTool('fontName', new FontTool({\n cssAttr: 'font-family',\n domAttr: 'fontFamily',\n name: 'fontName',\n defaultValue: [{\n text: 'fontNameInherit',\n value: 'inherit'\n }],\n template: new ToolTemplate({\n template: EditorUtils.comboBoxTemplate,\n title: 'Font Name'\n })\n }));\n registerTool('fontSize', new FontTool({\n cssAttr: 'font-size',\n domAttr: 'fontSize',\n name: 'fontSize',\n defaultValue: [{\n text: 'fontSizeInherit',\n value: 'inherit'\n }],\n template: new ToolTemplate({\n template: EditorUtils.comboBoxTemplate,\n title: 'Font Size'\n })\n }));\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/formatblock', ['editor/inlineformat'], f);\n}(function () {\n (function ($) {\n var kendo = window.kendo, Class = kendo.Class, extend = $.extend, Editor = kendo.ui.editor, formats = kendo.ui.Editor.fn.options.formats, dom = Editor.Dom, Command = Editor.Command, ToolTemplate = Editor.ToolTemplate, FormatTool = Editor.FormatTool, EditorUtils = Editor.EditorUtils, registerTool = EditorUtils.registerTool, registerFormat = EditorUtils.registerFormat, RangeUtils = Editor.RangeUtils;\n var BlockFormatFinder = Class.extend({\n init: function (format) {\n this.format = format;\n },\n contains: function (node, children) {\n var i, len, child;\n for (i = 0, len = children.length; i < len; i++) {\n child = children[i];\n if (!child || !dom.isAncestorOrSelf(node, child)) {\n return false;\n }\n }\n return true;\n },\n findSuitable: function (nodes) {\n var format = this.format, suitable = [], i, len, candidate;\n for (i = 0, len = nodes.length; i < len; i++) {\n for (var f = format.length - 1; f >= 0; f--) {\n candidate = dom.ofType(nodes[i], format[f].tags) ? nodes[i] : dom.closestEditableOfType(nodes[i], format[f].tags);\n if (candidate) {\n break;\n }\n }\n if (!candidate || candidate.contentEditable === 'true') {\n return [];\n }\n if ($.inArray(candidate, suitable) < 0) {\n suitable.push(candidate);\n }\n }\n for (i = 0, len = suitable.length; i < len; i++) {\n if (this.contains(suitable[i], suitable)) {\n return [suitable[i]];\n }\n }\n return suitable;\n },\n findFormat: function (sourceNode) {\n var format = this.format, i, len, node, tags, attributes;\n var editableParent = dom.editableParent(sourceNode);\n for (i = 0, len = format.length; i < len; i++) {\n node = sourceNode;\n tags = format[i].tags;\n attributes = format[i].attr;\n while (node && dom.isAncestorOf(editableParent, node)) {\n if (dom.ofType(node, tags) && dom.attrEquals(node, attributes)) {\n return node;\n }\n node = node.parentNode;\n }\n }\n return null;\n },\n getFormat: function (nodes) {\n var that = this, findFormat = function (node) {\n return that.findFormat(dom.isDataNode(node) ? node.parentNode : node);\n }, result = findFormat(nodes[0]), i, len;\n if (!result) {\n return '';\n }\n for (i = 1, len = nodes.length; i < len; i++) {\n if (result != findFormat(nodes[i])) {\n return '';\n }\n }\n return result.nodeName.toLowerCase();\n },\n isFormatted: function (nodes) {\n for (var i = 0, len = nodes.length; i < len; i++) {\n if (!this.findFormat(nodes[i])) {\n return false;\n }\n }\n return true;\n }\n });\n var BlockFormatter = Class.extend({\n init: function (format, values) {\n this.format = format;\n this.values = values;\n this.finder = new BlockFormatFinder(format);\n },\n wrap: function (tag, attributes, nodes) {\n var commonAncestor = nodes.length == 1 ? dom.blockParentOrBody(nodes[0]) : dom.commonAncestor.apply(null, nodes);\n if (dom.isInline(commonAncestor)) {\n commonAncestor = dom.blockParentOrBody(commonAncestor);\n }\n var ancestors = dom.significantChildNodes(commonAncestor), position = dom.findNodeIndex(ancestors[0]), wrapper = dom.create(commonAncestor.ownerDocument, tag, attributes), i, ancestor;\n for (i = 0; i < ancestors.length; i++) {\n ancestor = ancestors[i];\n if (dom.isBlock(ancestor)) {\n dom.attr(ancestor, attributes);\n if (wrapper.childNodes.length) {\n dom.insertBefore(wrapper, ancestor);\n wrapper = wrapper.cloneNode(false);\n }\n position = dom.findNodeIndex(ancestor) + 1;\n continue;\n }\n wrapper.appendChild(ancestor);\n }\n if (wrapper.firstChild) {\n dom.insertAt(commonAncestor, wrapper, position);\n }\n },\n apply: function (nodes) {\n var format, values = this.values;\n function attributes(format) {\n return extend({}, format && format.attr, values);\n }\n var images = dom.filter('img', nodes);\n var imageFormat = EditorUtils.formatByName('img', this.format);\n var imageAttributes = attributes(imageFormat);\n $.each(images, function () {\n dom.attr(this, imageAttributes);\n });\n if (images.length == nodes.length) {\n return;\n }\n var nonImages = dom.filter('img', nodes, true);\n var formatNodes = this.finder.findSuitable(nonImages);\n if (formatNodes.length) {\n for (var i = 0, len = formatNodes.length; i < len; i++) {\n format = EditorUtils.formatByName(dom.name(formatNodes[i]), this.format);\n dom.attr(formatNodes[i], attributes(format));\n }\n } else {\n format = this.format[0];\n this.wrap(format.tags[0], attributes(format), nonImages);\n }\n },\n remove: function (nodes) {\n var i, l, formatNode, namedFormat, name;\n for (i = 0, l = nodes.length; i < l; i++) {\n formatNode = this.finder.findFormat(nodes[i]);\n if (formatNode) {\n name = dom.name(formatNode);\n if (name == 'div' && !formatNode.getAttribute('class')) {\n dom.unwrap(formatNode);\n } else {\n namedFormat = EditorUtils.formatByName(name, this.format);\n if (namedFormat.attr.style) {\n dom.unstyle(formatNode, namedFormat.attr.style);\n }\n if (namedFormat.attr.className) {\n dom.removeClass(formatNode, namedFormat.attr.className);\n }\n }\n }\n }\n },\n toggle: function (range) {\n var that = this, nodes = RangeUtils.nodes(range);\n if (that.finder.isFormatted(nodes)) {\n that.remove(nodes);\n } else {\n that.apply(nodes);\n }\n }\n });\n var GreedyBlockFormatter = Class.extend({\n init: function (format, values) {\n var that = this;\n that.format = format;\n that.values = values;\n that.finder = new BlockFormatFinder(format);\n },\n apply: function (nodes) {\n var format = this.format;\n var blocks = dom.blockParents(nodes);\n var formatTag = format[0].tags[0];\n var i, len, list, formatter, range;\n var element;\n var tagName;\n if (blocks.length) {\n for (i = 0, len = blocks.length; i < len; i++) {\n tagName = dom.name(blocks[i]);\n if (tagName == 'li') {\n list = blocks[i].parentNode;\n formatter = new Editor.ListFormatter(list.nodeName.toLowerCase(), formatTag);\n range = this.editor.createRange();\n range.selectNode(blocks[i]);\n formatter.toggle(range);\n } else if (formatTag && (tagName == 'td' || blocks[i].attributes.contentEditable)) {\n new BlockFormatter(format, this.values).apply(blocks[i].childNodes);\n } else {\n element = dom.changeTag(blocks[i], formatTag);\n dom.attr(element, format[0].attr);\n }\n }\n } else {\n new BlockFormatter(format, this.values).apply(nodes);\n }\n },\n toggle: function (range) {\n var nodes = RangeUtils.textNodes(range);\n if (!nodes.length) {\n range.selectNodeContents(range.commonAncestorContainer);\n nodes = RangeUtils.textNodes(range);\n if (!nodes.length) {\n nodes = dom.significantChildNodes(range.commonAncestorContainer);\n }\n }\n this.apply(nodes);\n }\n });\n var FormatCommand = Command.extend({\n init: function (options) {\n options.formatter = options.formatter();\n Command.fn.init.call(this, options);\n }\n });\n var BlockFormatTool = FormatTool.extend({\n init: function (options) {\n FormatTool.fn.init.call(this, extend(options, {\n finder: new BlockFormatFinder(options.format),\n formatter: function () {\n return new BlockFormatter(options.format);\n }\n }));\n }\n });\n extend(Editor, {\n BlockFormatFinder: BlockFormatFinder,\n BlockFormatter: BlockFormatter,\n GreedyBlockFormatter: GreedyBlockFormatter,\n FormatCommand: FormatCommand,\n BlockFormatTool: BlockFormatTool\n });\n var listElements = [\n 'ul',\n 'ol',\n 'li'\n ];\n registerFormat('justifyLeft', [\n {\n tags: dom.nonListBlockElements,\n attr: { style: { textAlign: 'left' } }\n },\n {\n tags: ['img'],\n attr: {\n style: {\n 'float': 'left',\n display: '',\n marginLeft: '',\n marginRight: ''\n }\n }\n },\n {\n tags: listElements,\n attr: {\n style: {\n textAlign: 'left',\n listStylePosition: ''\n }\n }\n }\n ]);\n registerTool('justifyLeft', new BlockFormatTool({\n format: formats.justifyLeft,\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Justify Left'\n })\n }));\n registerFormat('justifyCenter', [\n {\n tags: dom.nonListBlockElements,\n attr: { style: { textAlign: 'center' } }\n },\n {\n tags: ['img'],\n attr: {\n style: {\n display: 'block',\n marginLeft: 'auto',\n marginRight: 'auto',\n 'float': ''\n }\n }\n },\n {\n tags: listElements,\n attr: {\n style: {\n textAlign: 'center',\n listStylePosition: 'inside'\n }\n }\n }\n ]);\n registerTool('justifyCenter', new BlockFormatTool({\n format: formats.justifyCenter,\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Justify Center'\n })\n }));\n registerFormat('justifyRight', [\n {\n tags: dom.nonListBlockElements,\n attr: { style: { textAlign: 'right' } }\n },\n {\n tags: ['img'],\n attr: {\n style: {\n 'float': 'right',\n display: '',\n marginLeft: '',\n marginRight: ''\n }\n }\n },\n {\n tags: listElements,\n attr: {\n style: {\n textAlign: 'right',\n listStylePosition: 'inside'\n }\n }\n }\n ]);\n registerTool('justifyRight', new BlockFormatTool({\n format: formats.justifyRight,\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Justify Right'\n })\n }));\n registerFormat('justifyFull', [\n {\n tags: dom.nonListBlockElements,\n attr: { style: { textAlign: 'justify' } }\n },\n {\n tags: ['img'],\n attr: {\n style: {\n display: 'block',\n marginLeft: 'auto',\n marginRight: 'auto',\n 'float': ''\n }\n }\n },\n {\n tags: listElements,\n attr: {\n style: {\n textAlign: 'justify',\n listStylePosition: ''\n }\n }\n }\n ]);\n registerTool('justifyFull', new BlockFormatTool({\n format: formats.justifyFull,\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Justify Full'\n })\n }));\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/linebreak', ['editor/formatblock'], f);\n}(function () {\n (function ($) {\n var kendo = window.kendo, extend = $.extend, editorNS = kendo.ui.editor, dom = editorNS.Dom, Command = editorNS.Command, Tool = editorNS.Tool, BlockFormatter = editorNS.BlockFormatter, normalize = dom.normalize, RangeUtils = editorNS.RangeUtils, registerTool = editorNS.EditorUtils.registerTool;\n var ParagraphCommand = Command.extend({\n init: function (options) {\n this.options = options;\n Command.fn.init.call(this, options);\n },\n _insertMarker: function (doc, range) {\n var marker = dom.create(doc, 'a'), container;\n marker.className = 'k-marker';\n range.insertNode(marker);\n if (!marker.parentNode) {\n container = range.commonAncestorContainer;\n container.innerHTML = '';\n container.appendChild(marker);\n }\n normalize(marker.parentNode);\n return marker;\n },\n _moveFocus: function (range, candidate) {\n if (dom.isEmpty(candidate)) {\n range.setStartBefore(candidate);\n } else {\n range.selectNodeContents(candidate);\n var focusNode = RangeUtils.textNodes(range)[0];\n if (!focusNode) {\n while (candidate.childNodes.length && !dom.is(candidate.firstChild, 'br')) {\n candidate = candidate.firstChild;\n }\n focusNode = candidate;\n }\n if (dom.isEmpty(focusNode)) {\n range.setStartBefore(focusNode);\n } else {\n if (dom.emptyNode(focusNode)) {\n focusNode.innerHTML = '\\uFEFF';\n }\n range.setStartBefore(focusNode.firstChild || focusNode);\n }\n }\n },\n shouldTrim: function (range) {\n var blocks = 'p,h1,h2,h3,h4,h5,h6'.split(','), startInBlock = dom.parentOfType(range.startContainer, blocks), endInBlock = dom.parentOfType(range.endContainer, blocks);\n return startInBlock && !endInBlock || !startInBlock && endInBlock;\n },\n _blankAfter: function (node) {\n while (node && (dom.isMarker(node) || dom.stripBom(node.nodeValue) === '')) {\n node = node.nextSibling;\n }\n return !node;\n },\n exec: function () {\n var range = this.getRange(), doc = RangeUtils.documentFromRange(range), parent, previous, next, emptyParagraphContent = editorNS.emptyElementContent, paragraph, marker, li, heading, rng, shouldTrim = this.shouldTrim(range);\n range.deleteContents();\n marker = this._insertMarker(doc, range);\n dom.stripBomNode(marker.previousSibling);\n dom.stripBomNode(marker.nextSibling);\n li = dom.closestEditableOfType(marker, ['li']);\n heading = dom.closestEditableOfType(marker, 'h1,h2,h3,h4,h5,h6'.split(','));\n if (li) {\n if (dom.emptyNode(li)) {\n paragraph = dom.create(doc, 'p');\n if (li.nextSibling) {\n rng = range.cloneRange();\n rng.selectNode(li);\n RangeUtils.split(rng, li.parentNode);\n }\n dom.insertAfter(paragraph, li.parentNode);\n dom.remove(li.parentNode.childNodes.length == 1 ? li.parentNode : li);\n paragraph.innerHTML = emptyParagraphContent;\n next = paragraph;\n }\n } else if (heading && this._blankAfter(marker)) {\n paragraph = dom.create(doc, 'p');\n dom.insertAfter(paragraph, heading);\n paragraph.innerHTML = emptyParagraphContent;\n dom.remove(marker);\n next = paragraph;\n }\n if (!next) {\n if (!(li || heading)) {\n new BlockFormatter([{ tags: ['p'] }]).apply([marker]);\n }\n range.selectNode(marker);\n parent = dom.parentOfType(marker, [li ? 'li' : heading ? dom.name(heading) : 'p']);\n RangeUtils.split(range, parent, shouldTrim);\n previous = parent.previousSibling;\n if (dom.is(previous, 'li') && previous.firstChild && !dom.is(previous.firstChild, 'br')) {\n previous = previous.firstChild;\n }\n next = parent.nextSibling;\n this.clean(previous);\n this.clean(next, { links: true });\n if (dom.is(next, 'li') && next.firstChild && !dom.is(next.firstChild, 'br')) {\n next = next.firstChild;\n }\n dom.remove(parent);\n normalize(previous);\n }\n normalize(next);\n this._moveFocus(range, next);\n range.collapse(true);\n dom.scrollTo(next);\n RangeUtils.selectRange(range);\n },\n clean: function (node, options) {\n var root = node;\n if (node.firstChild && dom.is(node.firstChild, 'br')) {\n dom.remove(node.firstChild);\n }\n if (dom.isDataNode(node) && !node.nodeValue) {\n node = node.parentNode;\n }\n if (node) {\n var siblings = false;\n while (node.firstChild && node.firstChild.nodeType == 1) {\n siblings = siblings || dom.significantNodes(node.childNodes).length > 1;\n node = node.firstChild;\n }\n if (!dom.isEmpty(node) && /^\\s*$/.test(node.innerHTML) && !siblings) {\n $(root).find('.k-br').remove();\n node.innerHTML = editorNS.emptyElementContent;\n }\n if (options && options.links) {\n while (node != root) {\n if (dom.is(node, 'a') && dom.emptyNode(node)) {\n dom.unwrap(node);\n break;\n }\n node = node.parentNode;\n }\n }\n }\n }\n });\n var NewLineCommand = Command.extend({\n init: function (options) {\n this.options = options;\n Command.fn.init.call(this, options);\n },\n exec: function () {\n var range = this.getRange();\n var br = dom.create(RangeUtils.documentFromRange(range), 'br');\n var filler;\n var browser = kendo.support.browser;\n var oldIE = browser.msie && browser.version < 11;\n range.deleteContents();\n range.insertNode(br);\n normalize(br.parentNode);\n if (!oldIE && (!br.nextSibling || dom.isWhitespace(br.nextSibling))) {\n filler = br.cloneNode(true);\n filler.className = 'k-br';\n dom.insertAfter(filler, br);\n }\n range.setStartAfter(br);\n range.collapse(true);\n dom.scrollTo(br.nextSibling || br);\n RangeUtils.selectRange(range);\n }\n });\n extend(editorNS, {\n ParagraphCommand: ParagraphCommand,\n NewLineCommand: NewLineCommand\n });\n registerTool('insertLineBreak', new Tool({\n key: 13,\n shift: true,\n command: NewLineCommand\n }));\n registerTool('insertParagraph', new Tool({\n key: 13,\n command: ParagraphCommand\n }));\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/lists', ['editor/linebreak'], f);\n}(function () {\n (function ($) {\n var kendo = window.kendo, Class = kendo.Class, extend = $.extend, Editor = kendo.ui.editor, dom = Editor.Dom, RangeUtils = Editor.RangeUtils, EditorUtils = Editor.EditorUtils, Command = Editor.Command, ToolTemplate = Editor.ToolTemplate, FormatTool = Editor.FormatTool, BlockFormatFinder = Editor.BlockFormatFinder, textNodes = RangeUtils.textNodes, registerTool = Editor.EditorUtils.registerTool;\n var ListFormatFinder = BlockFormatFinder.extend({\n init: function (tag) {\n this.tag = tag;\n var tags = this.tags = [\n tag == 'ul' ? 'ol' : 'ul',\n tag\n ];\n BlockFormatFinder.fn.init.call(this, [{ tags: tags }]);\n },\n isFormatted: function (nodes) {\n var formatNodes = [];\n var formatNode, i;\n for (i = 0; i < nodes.length; i++) {\n formatNode = this.findFormat(nodes[i]);\n if (formatNode && dom.name(formatNode) == this.tag) {\n formatNodes.push(formatNode);\n }\n }\n if (formatNodes.length < 1) {\n return false;\n }\n if (formatNodes.length != nodes.length) {\n return false;\n }\n for (i = 0; i < formatNodes.length; i++) {\n if (formatNodes[i].parentNode != formatNode.parentNode) {\n break;\n }\n if (formatNodes[i] != formatNode) {\n return false;\n }\n }\n return true;\n },\n findSuitable: function (nodes) {\n var candidate = this.findFormat(nodes[0]);\n if (candidate && dom.name(candidate) == this.tag) {\n return candidate;\n }\n return null;\n }\n });\n var ListFormatter = Class.extend({\n init: function (tag, unwrapTag) {\n var that = this;\n that.finder = new ListFormatFinder(tag);\n that.tag = tag;\n that.unwrapTag = unwrapTag;\n },\n isList: function (node) {\n var name = dom.name(node);\n return name == 'ul' || name == 'ol' || name == 'dl';\n },\n wrap: function (list, nodes) {\n var li = dom.create(list.ownerDocument, 'li'), i, node;\n for (i = 0; i < nodes.length; i++) {\n node = nodes[i];\n if (dom.is(node, 'li')) {\n list.appendChild(node);\n continue;\n }\n if (this.isList(node)) {\n while (node.firstChild) {\n list.appendChild(node.firstChild);\n }\n continue;\n }\n if (dom.is(node, 'td')) {\n while (node.firstChild) {\n li.appendChild(node.firstChild);\n }\n list.appendChild(li);\n node.appendChild(list);\n list = list.cloneNode(false);\n li = li.cloneNode(false);\n continue;\n }\n li.appendChild(node);\n if (dom.isBlock(node)) {\n list.appendChild(li);\n dom.unwrap(node);\n li = li.cloneNode(false);\n }\n }\n if (li.firstChild) {\n list.appendChild(li);\n }\n },\n containsAny: function (parent, nodes) {\n for (var i = 0; i < nodes.length; i++) {\n if (dom.isAncestorOrSelf(parent, nodes[i])) {\n return true;\n }\n }\n return false;\n },\n suitable: function (candidate, nodes) {\n if (candidate.className == 'k-marker') {\n var sibling = candidate.nextSibling;\n if (sibling && dom.isBlock(sibling)) {\n return false;\n }\n sibling = candidate.previousSibling;\n if (sibling && dom.isBlock(sibling)) {\n return false;\n }\n }\n return this.containsAny(candidate, nodes) || dom.isInline(candidate) || candidate.nodeType == 3;\n },\n _parentLists: function (node) {\n var editable = dom.closestEditable(node);\n return $(node).parentsUntil(editable, 'ul,ol');\n },\n split: function (range) {\n var nodes = textNodes(range);\n var start, end, parents;\n if (nodes.length) {\n start = dom.parentOfType(nodes[0], ['li']);\n end = dom.parentOfType(nodes[nodes.length - 1], ['li']);\n range.setStartBefore(start);\n range.setEndAfter(end);\n for (var i = 0, l = nodes.length; i < l; i++) {\n var formatNode = this.finder.findFormat(nodes[i]);\n if (formatNode) {\n parents = this._parentLists(formatNode);\n if (parents.length) {\n RangeUtils.split(range, parents.last()[0], true);\n } else {\n RangeUtils.split(range, formatNode, true);\n }\n }\n }\n }\n },\n merge: function (tag, formatNode) {\n var prev = formatNode.previousSibling, next;\n while (prev && (prev.className == 'k-marker' || prev.nodeType == 3 && dom.isWhitespace(prev))) {\n prev = prev.previousSibling;\n }\n if (prev && dom.name(prev) == tag) {\n while (formatNode.firstChild) {\n prev.appendChild(formatNode.firstChild);\n }\n dom.remove(formatNode);\n formatNode = prev;\n }\n next = formatNode.nextSibling;\n while (next && (next.className == 'k-marker' || next.nodeType == 3 && dom.isWhitespace(next))) {\n next = next.nextSibling;\n }\n if (next && dom.name(next) == tag) {\n while (formatNode.lastChild) {\n next.insertBefore(formatNode.lastChild, next.firstChild);\n }\n dom.remove(formatNode);\n }\n },\n breakable: function (node) {\n return node != node.ownerDocument.body && !/table|tbody|tr|td/.test(dom.name(node)) && !node.attributes.contentEditable;\n },\n applyOnSection: function (section, nodes) {\n var tag = this.tag;\n var commonAncestor = dom.closestSplittableParent(nodes);\n var ancestors = [];\n var formatNode = this.finder.findSuitable(nodes);\n if (!formatNode) {\n formatNode = new ListFormatFinder(tag == 'ul' ? 'ol' : 'ul').findSuitable(nodes);\n }\n var childNodes;\n if (/table|tbody/.test(dom.name(commonAncestor))) {\n childNodes = $.map(nodes, function (node) {\n return dom.parentOfType(node, ['td']);\n });\n } else {\n childNodes = dom.significantChildNodes(commonAncestor);\n if ($.grep(childNodes, dom.isBlock).length) {\n childNodes = $.grep(childNodes, $.proxy(function (node) {\n return this.containsAny(node, nodes);\n }, this));\n }\n if (!childNodes.length) {\n childNodes = nodes;\n }\n }\n function pushAncestor() {\n ancestors.push(this);\n }\n for (var i = 0; i < childNodes.length; i++) {\n var child = childNodes[i];\n var suitable = (!formatNode || !dom.isAncestorOrSelf(formatNode, child)) && this.suitable(child, nodes);\n if (!suitable) {\n continue;\n }\n if (formatNode && this.isList(child)) {\n $.each(child.childNodes, pushAncestor);\n dom.remove(child);\n } else {\n ancestors.push(child);\n }\n }\n if (ancestors.length == childNodes.length && this.breakable(commonAncestor)) {\n ancestors = [commonAncestor];\n }\n if (!formatNode) {\n formatNode = dom.create(commonAncestor.ownerDocument, tag);\n dom.insertBefore(formatNode, ancestors[0]);\n }\n this.wrap(formatNode, ancestors);\n if (!dom.is(formatNode, tag)) {\n dom.changeTag(formatNode, tag);\n }\n this.merge(tag, formatNode);\n },\n apply: function (nodes) {\n var i = 0, sections = [], lastSection, lastNodes, section;\n do {\n section = dom.closestEditable(nodes[i], [\n 'td',\n 'body'\n ]);\n if (!lastSection || section != lastSection) {\n if (lastSection) {\n sections.push({\n section: lastSection,\n nodes: lastNodes\n });\n }\n lastNodes = [nodes[i]];\n lastSection = section;\n } else {\n lastNodes.push(nodes[i]);\n }\n i++;\n } while (i < nodes.length);\n sections.push({\n section: lastSection,\n nodes: lastNodes\n });\n for (i = 0; i < sections.length; i++) {\n this.applyOnSection(sections[i].section, sections[i].nodes);\n }\n },\n unwrap: function (ul) {\n var fragment = ul.ownerDocument.createDocumentFragment(), unwrapTag = this.unwrapTag, parents, li, p, child;\n for (li = ul.firstChild; li; li = li.nextSibling) {\n p = dom.create(ul.ownerDocument, unwrapTag || 'p');\n while (li.firstChild) {\n child = li.firstChild;\n if (dom.isBlock(child)) {\n if (p.firstChild) {\n fragment.appendChild(p);\n p = dom.create(ul.ownerDocument, unwrapTag || 'p');\n }\n fragment.appendChild(child);\n } else {\n p.appendChild(child);\n }\n }\n if (p.firstChild) {\n fragment.appendChild(p);\n }\n }\n parents = this._parentLists(ul);\n if (parents[0]) {\n dom.insertAfter(fragment, parents.last()[0]);\n parents.last().remove();\n } else {\n dom.insertAfter(fragment, ul);\n }\n dom.remove(ul);\n },\n remove: function (nodes) {\n var formatNode;\n for (var i = 0, l = nodes.length; i < l; i++) {\n formatNode = this.finder.findFormat(nodes[i]);\n if (formatNode) {\n this.unwrap(formatNode);\n }\n }\n },\n toggle: function (range) {\n var that = this, nodes = textNodes(range), ancestor = range.commonAncestorContainer;\n if (!nodes.length) {\n range.selectNodeContents(ancestor);\n nodes = textNodes(range);\n if (!nodes.length) {\n var text = ancestor.ownerDocument.createTextNode('');\n range.startContainer.appendChild(text);\n nodes = [text];\n range.selectNode(text.parentNode);\n }\n }\n if (that.finder.isFormatted(nodes)) {\n that.split(range);\n that.remove(nodes);\n } else {\n that.apply(nodes);\n }\n }\n });\n var ListCommand = Command.extend({\n init: function (options) {\n options.formatter = new ListFormatter(options.tag);\n Command.fn.init.call(this, options);\n }\n });\n var ListTool = FormatTool.extend({\n init: function (options) {\n this.options = options;\n FormatTool.fn.init.call(this, extend(options, { finder: new ListFormatFinder(options.tag) }));\n },\n command: function (commandArguments) {\n return new ListCommand(extend(commandArguments, { tag: this.options.tag }));\n }\n });\n extend(Editor, {\n ListFormatFinder: ListFormatFinder,\n ListFormatter: ListFormatter,\n ListCommand: ListCommand,\n ListTool: ListTool\n });\n registerTool('insertUnorderedList', new ListTool({\n tag: 'ul',\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Insert unordered list'\n })\n }));\n registerTool('insertOrderedList', new ListTool({\n tag: 'ol',\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Insert ordered list'\n })\n }));\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/link', ['editor/lists'], f);\n}(function () {\n (function ($, undefined) {\n var kendo = window.kendo, Class = kendo.Class, extend = $.extend, proxy = $.proxy, Editor = kendo.ui.editor, dom = Editor.Dom, RangeUtils = Editor.RangeUtils, EditorUtils = Editor.EditorUtils, Command = Editor.Command, Tool = Editor.Tool, ToolTemplate = Editor.ToolTemplate, InlineFormatter = Editor.InlineFormatter, InlineFormatFinder = Editor.InlineFormatFinder, textNodes = RangeUtils.textNodes, registerTool = Editor.EditorUtils.registerTool, keys = kendo.keys;\n var HTTP_PROTOCOL = 'http://';\n var protocolRegExp = /^\\w*:\\/\\//;\n var endLinkCharsRegExp = /[\\w\\/\\$\\-_\\*\\?]/i;\n var LinkFormatFinder = Class.extend({\n findSuitable: function (sourceNode) {\n return dom.parentOfType(sourceNode, ['a']);\n }\n });\n var LinkFormatter = Class.extend({\n init: function () {\n this.finder = new LinkFormatFinder();\n },\n apply: function (range, attributes) {\n var nodes = textNodes(range);\n var markers, doc, formatter, a, parent;\n if (attributes.innerHTML) {\n doc = RangeUtils.documentFromRange(range);\n markers = RangeUtils.getMarkers(range);\n range.deleteContents();\n a = dom.create(doc, 'a', attributes);\n range.insertNode(a);\n parent = a.parentNode;\n if (dom.name(parent) == 'a') {\n dom.insertAfter(a, parent);\n }\n if (dom.emptyNode(parent)) {\n dom.remove(parent);\n }\n var ref = a;\n for (var i = 0; i < markers.length; i++) {\n dom.insertAfter(markers[i], ref);\n ref = markers[i];\n }\n if (markers.length) {\n dom.insertBefore(doc.createTextNode('\\uFEFF'), markers[1]);\n dom.insertAfter(doc.createTextNode('\\uFEFF'), markers[1]);\n range.setStartBefore(markers[0]);\n range.setEndAfter(markers[markers.length - 1]);\n }\n } else {\n formatter = new InlineFormatter([{ tags: ['a'] }], attributes);\n formatter.finder = this.finder;\n formatter.apply(nodes);\n }\n }\n });\n var UnlinkCommand = Command.extend({\n init: function (options) {\n options.formatter = {\n toggle: function (range) {\n new InlineFormatter([{ tags: ['a'] }]).remove(textNodes(range));\n }\n };\n this.options = options;\n Command.fn.init.call(this, options);\n }\n });\n var LinkCommand = Command.extend({\n init: function (options) {\n this.options = options;\n Command.fn.init.call(this, options);\n this.formatter = new LinkFormatter();\n if (!options.url) {\n this.attributes = null;\n this.async = true;\n } else {\n this.exec = function () {\n this.formatter.apply(options.range, {\n href: options.url,\n innerHTML: options.text || options.url,\n target: options.target\n });\n };\n }\n },\n _dialogTemplate: function () {\n return kendo.template('
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '
    ' + '' + '' + '
    ' + '
    ' + '' + '' + '
    ' + '
    ')({ messages: this.editor.options.messages });\n },\n exec: function () {\n var messages = this.editor.options.messages;\n this._initialText = '';\n this._range = this.lockRange(true);\n var nodes = textNodes(this._range);\n var a = nodes.length ? this.formatter.finder.findSuitable(nodes[0]) : null;\n var img = nodes.length && dom.name(nodes[0]) == 'img';\n var dialog = this.createDialog(this._dialogTemplate(), {\n title: messages.createLink,\n close: proxy(this._close, this),\n visible: false\n });\n if (a) {\n this._range.selectNodeContents(a);\n nodes = textNodes(this._range);\n }\n this._initialText = this.linkText(nodes);\n dialog.find('.k-dialog-insert').click(proxy(this._apply, this)).end().find('.k-dialog-close').click(proxy(this._close, this)).end().find('.k-edit-field input').keydown(proxy(this._keydown, this)).end().find('#k-editor-link-url').val(this.linkUrl(a)).end().find('#k-editor-link-text').val(this._initialText).end().find('#k-editor-link-title').val(a ? a.title : '').end().find('#k-editor-link-target').attr('checked', a ? a.target == '_blank' : false).end().find('.k-editor-link-text-row').toggle(!img);\n this._dialog = dialog.data('kendoWindow').center().open();\n $('#k-editor-link-url', dialog).focus().select();\n },\n _keydown: function (e) {\n var keys = kendo.keys;\n if (e.keyCode == keys.ENTER) {\n this._apply(e);\n } else if (e.keyCode == keys.ESC) {\n this._close(e);\n }\n },\n _apply: function (e) {\n var element = this._dialog.element;\n var href = $('#k-editor-link-url', element).val();\n var title, text, target;\n var textInput = $('#k-editor-link-text', element);\n if (href && href != HTTP_PROTOCOL) {\n if (href.indexOf('@') > 0 && !/^(\\w+:)|(\\/\\/)/i.test(href)) {\n href = 'mailto:' + href;\n }\n this.attributes = { href: href };\n title = $('#k-editor-link-title', element).val();\n if (title) {\n this.attributes.title = title;\n }\n if (textInput.is(':visible')) {\n text = textInput.val();\n if (!text && !this._initialText) {\n this.attributes.innerHTML = href;\n } else if (text && text !== this._initialText) {\n this.attributes.innerHTML = dom.stripBom(text);\n }\n }\n target = $('#k-editor-link-target', element).is(':checked');\n this.attributes.target = target ? '_blank' : null;\n this.formatter.apply(this._range, this.attributes);\n }\n this._close(e);\n if (this.change) {\n this.change();\n }\n },\n _close: function (e) {\n e.preventDefault();\n this._dialog.destroy();\n dom.windowFromDocument(RangeUtils.documentFromRange(this._range)).focus();\n this.releaseRange(this._range);\n },\n linkUrl: function (anchor) {\n if (anchor) {\n return anchor.getAttribute('href', 2);\n }\n return HTTP_PROTOCOL;\n },\n linkText: function (nodes) {\n var text = '';\n var i;\n for (i = 0; i < nodes.length; i++) {\n text += nodes[i].nodeValue;\n }\n return dom.stripBom(text || '');\n },\n redo: function () {\n var range = this.lockRange(true);\n this.formatter.apply(range, this.attributes);\n this.releaseRange(range);\n }\n });\n var AutoLinkCommand = Command.extend({\n init: function (options) {\n Command.fn.init.call(this, options);\n this.formatter = new LinkFormatter();\n },\n exec: function () {\n var detectedLink = this.detectLink();\n if (!detectedLink) {\n return;\n }\n var range = this.getRange();\n var linkMarker = new kendo.ui.editor.Marker();\n var linkRange = range.cloneRange();\n linkRange.setStart(detectedLink.start.node, detectedLink.start.offset);\n linkRange.setEnd(detectedLink.end.node, detectedLink.end.offset);\n range = this.lockRange();\n linkMarker.add(linkRange);\n this.formatter.apply(linkRange, { href: this._ensureWebProtocol(detectedLink.text) });\n linkMarker.remove(linkRange);\n this.releaseRange(range);\n },\n detectLink: function () {\n var range = this.getRange();\n var traverser = new LeftDomTextTraverser({\n node: range.startContainer,\n offset: range.startOffset,\n cancelAtNode: function (node) {\n return node && dom.name(node) === 'a';\n }\n });\n var detection = new DomTextLinkDetection(traverser);\n return detection.detectLink();\n },\n changesContent: function () {\n return !!this.detectLink();\n },\n _ensureWebProtocol: function (linkText) {\n var hasProtocol = this._hasProtocolPrefix(linkText);\n return hasProtocol ? linkText : this._prefixWithWebProtocol(linkText);\n },\n _hasProtocolPrefix: function (linkText) {\n return protocolRegExp.test(linkText);\n },\n _prefixWithWebProtocol: function (linkText) {\n return HTTP_PROTOCOL + linkText;\n }\n });\n var UnlinkTool = Tool.extend({\n init: function (options) {\n this.options = options;\n this.finder = new InlineFormatFinder([{ tags: ['a'] }]);\n Tool.fn.init.call(this, $.extend(options, { command: UnlinkCommand }));\n },\n initialize: function (ui, options) {\n Tool.fn.initialize.call(this, ui, options);\n ui.addClass('k-state-disabled');\n },\n update: function (ui, nodes) {\n ui.toggleClass('k-state-disabled', !this.finder.isFormatted(nodes)).removeClass('k-state-hover');\n }\n });\n var DomTextLinkDetection = Class.extend({\n init: function (traverser) {\n this.traverser = traverser;\n this.start = DomPos();\n this.end = DomPos();\n this.text = '';\n },\n detectLink: function () {\n var node = this.traverser.node;\n var offset = this.traverser.offset;\n if (dom.isDataNode(node)) {\n var text = node.data.substring(0, offset);\n if (/\\s{2}$/.test(dom.stripBom(text))) {\n return;\n }\n } else if (offset === 0) {\n var p = dom.closestEditableOfType(node, dom.blockElements);\n if (p && p.previousSibling) {\n this.traverser.init({ node: p.previousSibling });\n }\n }\n this.traverser.traverse($.proxy(this._detectEnd, this));\n if (!this.end.blank()) {\n this.traverser = this.traverser.clone(this.end);\n this.traverser.traverse($.proxy(this._detectStart, this));\n if (!this._isLinkDetected()) {\n var puntuationOptions = this.traverser.extendOptions(this.start);\n var puntuationTraverser = new RightDomTextTraverser(puntuationOptions);\n puntuationTraverser.traverse($.proxy(this._skipStartPuntuation, this));\n if (!this._isLinkDetected()) {\n this.start = DomPos();\n }\n }\n }\n if (this.start.blank()) {\n return null;\n } else {\n return {\n start: this.start,\n end: this.end,\n text: this.text\n };\n }\n },\n _isLinkDetected: function () {\n return protocolRegExp.test(this.text) || /^w{3}\\./i.test(this.text);\n },\n _detectEnd: function (text, node) {\n var i = lastIndexOfRegExp(text, endLinkCharsRegExp);\n if (i > -1) {\n this.end.node = node;\n this.end.offset = i + 1;\n return false;\n }\n },\n _detectStart: function (text, node) {\n var i = lastIndexOfRegExp(text, /\\s/);\n var ii = i + 1;\n this.text = text.substring(ii) + this.text;\n this.start.node = node;\n this.start.offset = ii;\n if (i > -1) {\n return false;\n }\n },\n _skipStartPuntuation: function (text, node, offset) {\n var i = indexOfRegExp(text, /\\w/);\n var ii = i;\n if (i === -1) {\n ii = text.length;\n }\n this.text = this.text.substring(ii);\n this.start.node = node;\n this.start.offset = ii + (offset | 0);\n if (i > -1) {\n return false;\n }\n }\n });\n function lastIndexOfRegExp(str, search) {\n var i = str.length;\n while (i-- && !search.test(str[i])) {\n }\n return i;\n }\n function indexOfRegExp(str, search) {\n var r = search.exec(str);\n return r ? r.index : -1;\n }\n var DomPos = function () {\n return {\n node: null,\n offset: null,\n blank: function () {\n return this.node === null && this.offset === null;\n }\n };\n };\n var DomTextTraverser = Class.extend({\n init: function (options) {\n this.node = options.node;\n this.offset = options.offset === undefined ? dom.isDataNode(this.node) && this.node.length || 0 : options.offset;\n this.cancelAtNode = options.cancelAtNode || this.cancelAtNode || $.noop;\n },\n traverse: function (callback) {\n if (!callback) {\n return;\n }\n this.cancel = false;\n this._traverse(callback, this.node, this.offset);\n },\n _traverse: function (callback, node, offset) {\n if (!node || this.cancel) {\n return;\n }\n if (node.nodeType === 3) {\n var text = node.data;\n if (offset !== undefined) {\n text = this.subText(text, offset);\n }\n this.cancel = callback(text, node, offset) === false;\n } else {\n var edgeNode = this.edgeNode(node);\n this.cancel = this.cancel || this.cancelAtNode(edgeNode);\n return this._traverse(callback, edgeNode);\n }\n var next = this.next(node);\n if (!next) {\n var parent = node.parentNode;\n while (!next && dom.isInline(parent)) {\n next = this.next(parent);\n parent = parent.parentNode;\n }\n }\n this.cancel = this.cancel || this.cancelAtNode(next);\n this._traverse(callback, next);\n },\n extendOptions: function (o) {\n return $.extend({\n node: this.node,\n offset: this.offset,\n cancelAtNode: this.cancelAtNode\n }, o || {});\n },\n edgeNode: function (node) {\n },\n next: function (node) {\n },\n subText: function (text, offset) {\n }\n });\n var LeftDomTextTraverser = DomTextTraverser.extend({\n subText: function (text, splitIndex) {\n return text.substring(0, splitIndex);\n },\n next: function (node) {\n return node.previousSibling;\n },\n edgeNode: function (node) {\n return node.lastChild;\n },\n clone: function (options) {\n var o = this.extendOptions(options);\n return new LeftDomTextTraverser(o);\n }\n });\n var RightDomTextTraverser = DomTextTraverser.extend({\n subText: function (text, splitIndex) {\n return text.substring(splitIndex);\n },\n next: function (node) {\n return node.nextSibling;\n },\n edgeNode: function (node) {\n return node.firstChild;\n },\n clone: function (options) {\n var o = this.extendOptions(options);\n return new RightDomTextTraverser(o);\n }\n });\n extend(kendo.ui.editor, {\n LinkFormatFinder: LinkFormatFinder,\n LinkFormatter: LinkFormatter,\n UnlinkCommand: UnlinkCommand,\n LinkCommand: LinkCommand,\n AutoLinkCommand: AutoLinkCommand,\n UnlinkTool: UnlinkTool,\n DomTextLinkDetection: DomTextLinkDetection,\n LeftDomTextTraverser: LeftDomTextTraverser,\n RightDomTextTraverser: RightDomTextTraverser\n });\n registerTool('createLink', new Tool({\n key: 'K',\n ctrl: true,\n command: LinkCommand,\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Create Link'\n })\n }));\n registerTool('unlink', new UnlinkTool({\n key: 'K',\n ctrl: true,\n shift: true,\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Remove Link'\n })\n }));\n registerTool('autoLink', new Tool({\n key: [\n keys.ENTER,\n keys.SPACEBAR\n ],\n keyPressCommand: true,\n command: AutoLinkCommand\n }));\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/file', [\n 'kendo.filebrowser',\n 'editor/link'\n ], f);\n}(function () {\n (function ($, undefined) {\n var kendo = window.kendo, extend = $.extend, Editor = kendo.ui.editor, EditorUtils = Editor.EditorUtils, dom = Editor.Dom, registerTool = EditorUtils.registerTool, ToolTemplate = Editor.ToolTemplate, RangeUtils = Editor.RangeUtils, Command = Editor.Command, LinkFormatter = Editor.LinkFormatter, textNodes = RangeUtils.textNodes, keys = kendo.keys, KEDITORFILEURL = '#k-editor-file-url', KEDITORFILETITLE = '#k-editor-file-title';\n var FileCommand = Command.extend({\n init: function (options) {\n var that = this;\n Command.fn.init.call(that, options);\n that.formatter = new LinkFormatter();\n that.async = true;\n that.attributes = {};\n },\n insertFile: function (file, range) {\n var attributes = this.attributes;\n var doc = RangeUtils.documentFromRange(range);\n if (attributes.href && attributes.href != 'http://') {\n if (!file) {\n file = dom.create(doc, 'a', { href: attributes.href });\n file.innerHTML = attributes.innerHTML;\n range.deleteContents();\n range.insertNode(file);\n if (!file.nextSibling) {\n dom.insertAfter(doc.createTextNode('\\uFEFF'), file);\n }\n range.setStartAfter(file);\n range.setEndAfter(file);\n RangeUtils.selectRange(range);\n return true;\n } else {\n dom.attr(file, attributes);\n }\n }\n return false;\n },\n _dialogTemplate: function (showBrowser) {\n return kendo.template('
    ' + '# if (showBrowser) { #' + '
    ' + '# } #' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '' + '
    ' + '
    ')({\n messages: this.editor.options.messages,\n showBrowser: showBrowser\n });\n },\n redo: function () {\n var that = this, range = that.lockRange();\n this.formatter.apply(range, this.attributes);\n that.releaseRange(range);\n },\n exec: function () {\n var that = this, range = that.lockRange(), nodes = textNodes(range), applied = false, file = nodes.length ? this.formatter.finder.findSuitable(nodes[0]) : null, dialog, options = that.editor.options, messages = options.messages, fileBrowser = options.fileBrowser, showBrowser = !!(kendo.ui.FileBrowser && fileBrowser && fileBrowser.transport && fileBrowser.transport.read !== undefined), dialogOptions = {\n title: messages.insertFile,\n visible: false,\n resizable: showBrowser\n };\n function apply(e) {\n var element = dialog.element, href = element.find(KEDITORFILEURL).val().replace(/ /g, '%20'), innerHTML = element.find(KEDITORFILETITLE).val();\n that.attributes = {\n href: href,\n innerHTML: innerHTML !== '' ? innerHTML : href\n };\n applied = that.insertFile(file, range);\n close(e);\n if (that.change) {\n that.change();\n }\n }\n function close(e) {\n e.preventDefault();\n dialog.destroy();\n dom.windowFromDocument(RangeUtils.documentFromRange(range)).focus();\n if (!applied) {\n that.releaseRange(range);\n }\n }\n function keyDown(e) {\n if (e.keyCode == keys.ENTER) {\n apply(e);\n } else if (e.keyCode == keys.ESC) {\n close(e);\n }\n }\n dialogOptions.close = close;\n if (showBrowser) {\n dialogOptions.width = 750;\n }\n dialog = this.createDialog(that._dialogTemplate(showBrowser), dialogOptions).toggleClass('k-filebrowser-dialog', showBrowser).find('.k-dialog-insert').click(apply).end().find('.k-dialog-close').click(close).end().find('.k-edit-field input').keydown(keyDown).end().find(KEDITORFILEURL).val(file ? file.getAttribute('href', 2) : 'http://').end().find(KEDITORFILETITLE).val(file ? file.title : '').end().data('kendoWindow');\n if (showBrowser) {\n that._fileBrowser = new kendo.ui.FileBrowser(dialog.element.find('.k-filebrowser'), extend({}, fileBrowser, {\n change: function () {\n dialog.element.find(KEDITORFILEURL).val(this.value());\n },\n apply: apply\n }));\n }\n dialog.center().open();\n dialog.element.find(KEDITORFILEURL).focus().select();\n }\n });\n kendo.ui.editor.FileCommand = FileCommand;\n registerTool('insertFile', new Editor.Tool({\n command: FileCommand,\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Insert File'\n })\n }));\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/image', [\n 'kendo.imagebrowser',\n 'editor/link'\n ], f);\n}(function () {\n (function ($, undefined) {\n var kendo = window.kendo, extend = $.extend, Editor = kendo.ui.editor, EditorUtils = Editor.EditorUtils, dom = Editor.Dom, registerTool = EditorUtils.registerTool, ToolTemplate = Editor.ToolTemplate, RangeUtils = Editor.RangeUtils, Command = Editor.Command, keys = kendo.keys, KEDITORIMAGEURL = '#k-editor-image-url', KEDITORIMAGETITLE = '#k-editor-image-title', KEDITORIMAGEWIDTH = '#k-editor-image-width', KEDITORIMAGEHEIGHT = '#k-editor-image-height';\n var ImageCommand = Command.extend({\n init: function (options) {\n var that = this;\n Command.fn.init.call(that, options);\n that.async = true;\n that.attributes = {};\n },\n insertImage: function (img, range) {\n var attributes = this.attributes;\n var doc = RangeUtils.documentFromRange(range);\n if (attributes.src && attributes.src != 'http://') {\n var removeIEAttributes = function () {\n setTimeout(function () {\n if (!attributes.width) {\n img.removeAttribute('width');\n }\n if (!attributes.height) {\n img.removeAttribute('height');\n }\n img.removeAttribute('complete');\n });\n };\n if (!img) {\n img = dom.create(doc, 'img', attributes);\n img.onload = img.onerror = removeIEAttributes;\n range.deleteContents();\n range.insertNode(img);\n if (!img.nextSibling) {\n dom.insertAfter(doc.createTextNode('\\uFEFF'), img);\n }\n removeIEAttributes();\n range.setStartAfter(img);\n range.setEndAfter(img);\n RangeUtils.selectRange(range);\n return true;\n } else {\n img.onload = img.onerror = removeIEAttributes;\n dom.attr(img, attributes);\n removeIEAttributes();\n }\n }\n return false;\n },\n _dialogTemplate: function (showBrowser) {\n return kendo.template('
    ' + '# if (showBrowser) { #' + '
    ' + '# } #' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '
    ' + '
    ' + '' + '' + '
    ' + '
    ')({\n messages: this.editor.options.messages,\n showBrowser: showBrowser\n });\n },\n redo: function () {\n var that = this, range = that.lockRange();\n if (!that.insertImage(RangeUtils.image(range), range)) {\n that.releaseRange(range);\n }\n },\n exec: function () {\n var that = this, range = that.lockRange(), applied = false, img = RangeUtils.image(range), imageWidth = img && img.getAttribute('width') || '', imageHeight = img && img.getAttribute('height') || '', dialog, options = that.editor.options, messages = options.messages, imageBrowser = options.imageBrowser, showBrowser = !!(kendo.ui.ImageBrowser && imageBrowser && imageBrowser.transport && imageBrowser.transport.read !== undefined), dialogOptions = {\n title: messages.insertImage,\n visible: false,\n resizable: showBrowser\n };\n function apply(e) {\n var element = dialog.element, w = parseInt(element.find(KEDITORIMAGEWIDTH).val(), 10), h = parseInt(element.find(KEDITORIMAGEHEIGHT).val(), 10);\n that.attributes = {\n src: element.find(KEDITORIMAGEURL).val().replace(/ /g, '%20'),\n alt: element.find(KEDITORIMAGETITLE).val()\n };\n that.attributes.width = null;\n that.attributes.height = null;\n if (!isNaN(w) && w > 0) {\n that.attributes.width = w;\n }\n if (!isNaN(h) && h > 0) {\n that.attributes.height = h;\n }\n applied = that.insertImage(img, range);\n close(e);\n if (that.change) {\n that.change();\n }\n }\n function close(e) {\n e.preventDefault();\n dialog.destroy();\n dom.windowFromDocument(RangeUtils.documentFromRange(range)).focus();\n if (!applied) {\n that.releaseRange(range);\n }\n }\n function keyDown(e) {\n if (e.keyCode == keys.ENTER) {\n apply(e);\n } else if (e.keyCode == keys.ESC) {\n close(e);\n }\n }\n dialogOptions.close = close;\n if (showBrowser) {\n dialogOptions.width = 750;\n }\n dialog = this.createDialog(that._dialogTemplate(showBrowser), dialogOptions).toggleClass('k-filebrowser-dialog', showBrowser).find('.k-dialog-insert').click(apply).end().find('.k-dialog-close').click(close).end().find('.k-edit-field input').keydown(keyDown).end().find(KEDITORIMAGEURL).val(img ? img.getAttribute('src', 2) : 'http://').end().find(KEDITORIMAGETITLE).val(img ? img.alt : '').end().find(KEDITORIMAGEWIDTH).val(imageWidth).end().find(KEDITORIMAGEHEIGHT).val(imageHeight).end().data('kendoWindow');\n if (showBrowser) {\n this._imageBrowser = new kendo.ui.ImageBrowser(dialog.element.find('.k-imagebrowser'), extend({}, imageBrowser, {\n change: function () {\n dialog.element.find(KEDITORIMAGEURL).val(this.value());\n },\n apply: apply\n }));\n }\n dialog.center().open();\n dialog.element.find(KEDITORIMAGEURL).focus().select();\n }\n });\n kendo.ui.editor.ImageCommand = ImageCommand;\n registerTool('insertImage', new Editor.Tool({\n command: ImageCommand,\n template: new ToolTemplate({\n template: EditorUtils.buttonTemplate,\n title: 'Insert Image'\n })\n }));\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('editor/components', ['editor/image'], f);\n}(function () {\n (function ($, undefined) {\n var kendo = window.kendo, DropDownList = kendo.ui.DropDownList, dom = kendo.ui.editor.Dom;\n var SelectBox = DropDownList.extend({\n init: function (element, options) {\n var that = this;\n DropDownList.fn.init.call(that, element, options);\n if (kendo.support.mobileOS.ios) {\n this._initSelectOverlay();\n this.bind('dataBound', $.proxy(this._initSelectOverlay, this));\n }\n that.text(that.options.title);\n that.bind('open', function () {\n if (that.options.autoSize) {\n var list = that.list, listWidth;\n list.css({\n whiteSpace: 'nowrap',\n width: 'auto'\n });\n listWidth = list.width();\n if (listWidth) {\n listWidth += 20;\n } else {\n listWidth = that._listWidth;\n }\n list.css('width', listWidth + kendo.support.scrollbar());\n that._listWidth = listWidth;\n }\n });\n },\n options: {\n name: 'SelectBox',\n index: -1\n },\n _initSelectOverlay: function () {\n var selectBox = this;\n var value = selectBox.value();\n var view = this.dataSource.view();\n var item;\n var html = '';\n var encode = kendo.htmlEncode;\n for (var i = 0; i < view.length; i++) {\n item = view[i];\n html += '