{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/trix/dist/trix.js","webpack:///(webpack)/buildin/global.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/activestorage/app/assets/javascripts/activestorage.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/actiontext/app/javascript/actiontext/attachment_upload.js","webpack:///./node_modules/sortablejs/modular/sortable.esm.js","webpack:///./node_modules/actiontext/app/javascript/actiontext/index.js","webpack:///./app/javascript/packs/application.js","webpack:///./node_modules/@rails/actiontext/app/javascript/actiontext/attachment_upload.js","webpack:///./node_modules/@rails/actiontext/app/javascript/actiontext/index.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","_typeof","iterator","obj","constructor","this","window","Set","clear","values","has","indexOf","add","push","e","splice","forEach","apply","arguments","TypeError","_state","_handled","_value","_deferreds","h","onFulfilled","onRejected","promise","then","a","length","setTimeout","u","setImmediate","console","warn","all","Array","slice","resolve","reject","race","_setImmediateFn","_setUnhandledRejectionFn","Promise","customElements","document","registerElement","WeakMap","Date","now","Math","random","set","writable","A","b","g","sort","uid_","takeRecords","nodes_","observer","removeTransientObservers","callback_","parentNode","options","subtree","enqueue","records_","C","type","target","addedNodes","removedNodes","previousSibling","nextSibling","attributeName","attributeNamespace","oldValue","x","w","f","transientObservedNodes","JsMutationObserver","test","navigator","userAgent","v","y","String","addEventListener","data","postMessage","observe","ShadowDOMPolyfill","wrapIfNeeded","childList","attributes","characterData","attributeOldValue","attributeFilter","characterDataOldValue","SyntaxError","removeListeners","addListeners","disconnect","addListeners_","removeListeners_","removeEventListener","addTransientObserver","handleEvent","stopImmediatePropagation","attrName","relatedNode","namespaceURI","attrChange","MutationEvent","ADDITION","prevValue","MutationObserver","_isPolyfilled","self","performance","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","clearTimeout","createEvent","initEvent","preventDefault","defaultPrevented","Event","cancelable","configurable","CustomEvent","initCustomEvent","Boolean","bubbles","detail","WebComponents","CustomElements","flags","addModule","initializeModules","hasNative","isIE","useNative","register","HTMLImports","firstElementChild","firstChild","nodeType","Node","ELEMENT_NODE","nextElementSibling","shadowRoot","olderShadowRoot","wrap","querySelectorAll","import","IMPORT_LINK_TYPE","forDocumentTree","forSubtree","upgrade","__upgraded__","__attached","attachedCallback","detachedCallback","dom","host","URL","_URL","localName","split","shift","pop","group","DOCUMENT_FRAGMENT_NODE","E","groupEnd","__observer","baseURI","hasPolyfillMutations","hasThrottledAttached","S","Element","createShadowRoot","watchShadow","__watched","log","upgradeDocumentTree","upgradeDocument","upgradeSubtree","upgradeAll","attached","is","setAttribute","createdCallback","__proto__","HTMLElement","getOwnPropertyNames","getOwnPropertyDescriptor","getPrototypeOf","native","HTMLTemplateElement","decorate","getAttribute","getRegisteredDefinition","tag","extends","upgradeWithDefinition","implementPrototype","_polyfilled","removeAttribute","toLowerCase","attributeChangedCallback","concat","ctor","createElement","createElementNS","Error","__name","lifecycle","ancestry","ready","registry","instanceof","reservedTagList","readyTime","elapsed","dispatchEvent","unwrap","unwrapIfNeeded","__importsParsingHook","readyState","eager","attachEvent","Trix","VERSION","ZERO_WIDTH_SPACE","NON_BREAKING_SPACE","OBJECT_REPLACEMENT_CHARACTER","browser","composesExistingText","forcesObjectResizing","supportsInputEvents","InputEvent","config","BasicObject","proxyMethod","toMethod","toProperty","optional","match","Function","_t","__super__","id","fromJSONString","fromJSON","JSON","parse","hasSameConstructorAs","isEqualTo","inspect","contentsForInspection","join","toJSONString","stringify","toUTF16String","UTF16String","box","getCacheKey","toString","extend","defer","normalizeSpaces","replace","RegExp","normalizeNewlines","breakableWhitespacePattern","squishBreakableWhitespace","source","summarizeStringChange","added","removed","_n","utf16String","offset","codepoints","fromCodepoints","_t2","charAt","copyObject","objectsAreEqual","keys","arraysAreEqual","arrayStartsWith","spliceArray","summarizeArrayChange","getAllAttributeNames","getTextAttributeNames","getBlockAttributeNames","getBlockConfig","blockAttributes","getTextConfig","textAttributes","getListAttributeNames","listAttribute","documentElement","matchesSelector","webkitMatchesSelector","msMatchesSelector","mozMatchesSelector","_s","onElement","matchingSelector","withCallback","inPhase","times","destroy","findClosestElementFromNode","handleEventOnce","triggerEvent","elementMatchesSelector","untilNode","closest","findInnerElement","innerElementIsActive","activeElement","elementContainsNode","findNodeFromContainerAndOffset","TEXT_NODE","childNodes","item","findElementFromContainerAndOffset","findChildIndexOfNode","removeNode","removeChild","walkTree","onlyNodesOfType","usingFilter","expandEntityReferences","NodeFilter","SHOW_ELEMENT","SHOW_TEXT","SHOW_COMMENT","SHOW_ALL","createTreeWalker","tagName","makeElement","editable","contenteditable","style","dataset","className","classList","textContent","appendChild","getBlockTagNames","blockTagNames","nodeIsBlockContainer","nodeIsBlockStartComment","nodeProbablyIsBlockContainer","nodeIsBlockStart","strict","nodeIsCommentNode","COMMENT_NODE","nodeIsCursorTarget","nodeIsTextNode","trixCursorTarget","nodeIsAttachmentElement","AttachmentView","attachmentSelector","nodeIsEmptyTextNode","normalizeRange","isArray","rangeIsCollapsed","rangesAreEqual","defaultCSS","head","insertBefore","querySelector","_t3","initialize","connect","initialized","connectedCallback","disconnectedCallback","_n2","Reflect","construct","setPrototypeOf","defineProperties","define","getDOMSelection","getSelection","rangeCount","getDOMRange","getRangeAt","setDOMRange","removeAllRanges","addRange","selectionChangeObserver","update","_t4","startContainer","endContainer","dataTransferIsPlainText","getData","DOMParser","parseFromString","body","dataTransferIsWritable","setData","keyEventIsKeyboardCommand","platform","metaKey","ctrlKey","RTL_PATTERN","getDirection","dir","dirName","FormData","matches","trim","Hash","fromCommonAttributesOfObjects","getKeys","getKeysCommonToHash","merge","remove","toArray","isEmpty","array","toObject","toJSON","ObjectGroup","objects","depth","asTree","groupObjects","canBeGrouped","canBeGroupedWith","getObjects","getDepth","_t5","ObjectMap","find","ElementStore","reset","elements","trixStoreKey","_t6","Operation","isPerforming","performing","hasPerformed","performed","hasSucceeded","succeeded","hasFailed","getPromise","perform","release","cancel","ucs2String","ucs2Length","fromUCS2String","offsetToUCS2Offset","max","offsetFromUCS2Offset","from","codePointAt","fromCodePoint","map","charCodeAt","fromCharCode","lang","attachFiles","bold","bullets","bytes","captionPlaceholder","code","heading1","indent","italic","link","numbers","outdent","quote","redo","strike","undo","unlink","url","urlPlaceholder","GB","KB","MB","PB","TB","css","attachment","attachmentCaption","attachmentCaptionEditor","attachmentMetadata","attachmentMetadataContainer","attachmentName","attachmentProgress","attachmentSize","attachmentToolbar","attachmentGallery","nestable","terminal","breakOnReturn","text","plaintext","bulletList","bullet","numberList","number","exclusive","fileSize","prefix","precision","formatter","byte","floor","pow","toFixed","inheritable","parser","getComputedStyle","fontWeight","fontStyle","href","groupTagName","frozen","backgroundColor","serializers","Document","fromHTML","innerHTML","toSerializableDocument","DocumentView","render","cloneNode","deserializers","serializeToContentType","deserializeFromContentType","toolbar","getDefaultHTML","undoInterval","attachments","preview","presentation","caption","size","file","keyNames","input","level2Enabled","getLevel","pickFiles","multiple","hidden","fileInputId","files","getElementById","click","_t7","ObjectView","childViews","rootView","getNodes","nodes","createNodes","invalidate","parentView","invalidateViewForObject","findViewForObject","findOrCreateCachedChildView","getCachedViewForObject","recordChildView","createChildView","cacheViewForObject","viewClass","ObjectGroupView","getAllChildViews","findElement","findElementForObject","element","getViewCache","isViewCachingEnabled","viewCache","shouldCacheViews","enableViewCaching","disableViewCaching","garbageCollectCachedViews","_t8","objectGroup","getChildViews","createContainerElement","_t9","Controller","didMutate","start","_h","stop","mutations","findSignificantMutations","delegate","elementDidMutate","getMutationSummary","mutationIsSignificant","nodeIsMutable","nodesModifiedByMutation","nodeIsSignificant","getTextMutationSummary","getTextChangesFromCharacterData","additions","deletions","getTextChangesFromChildList","textAdded","textDeleted","getMutationsByType","_t10","FileVerificationOperation","FileReader","onerror","onload","abort","readAsArrayBuffer","InputController","mutationObserver","events","handlerFor","editorWillSyncDocumentView","editorDidSyncDocumentView","requestRender","inputControllerDidRequestRender","requestReparse","inputControllerDidRequestReparse","handleInput","inputControllerWillAttachFiles","responder","insertFiles","eventName","inputControllerWillHandleInput","inputControllerDidHandleInput","createLinkHTML","outerHTML","Level0InputController","resetInputSummary","setInputSummary","inputSummary","isComposing","inputControllerDidAllowUnhandledInput","mutationIsExpected","preferDocument","didDelete","getSelectedRange","positionIsBlockBreak","compositionInput","getEndData","keydown","didInput","keyCode","keyName","inputControllerDidReceiveKeyboardCommand","keypress","altKey","inputControllerWillPerformTyping","insertString","selectionIsExpanded","textInput","toUpperCase","setSelectedRange","dragenter","dragstart","serializeSelectionToDataTransfer","dataTransfer","draggedRange","inputControllerDidStartDrag","dragover","canAcceptDataTransfer","clientX","clientY","draggingPoint","inputControllerDidReceiveDragOverPoint","dragend","inputControllerDidCancelDrag","drop","setLocationRangeFromPointRange","inputControllerWillMoveText","moveTextFromRange","insertDocument","cut","clipboardData","inputControllerWillCutText","deleteInDirection","copy","paste","R","k","D","L","testClipboardData","clipboard","getPastedHTMLUsingHiddenElement","html","inputControllerWillPaste","insertHTML","inputControllerDidPaste","string","types","items","getAsFile","insertFile","compositionstart","getCompositionInput","compositionupdate","compositionend","end","beforeinput","stopPropagation","backspace","insertLineBreak","tab","canIncreaseNestingLevel","increaseNestingLevel","left","selectionIsInCursorTarget","moveCursorInDirection","right","control","updatePosition","canDecreaseNestingLevel","decreaseNestingLevel","expandSelectionInDirection","alt","meta","isEnded","getSelectedDocument","Files","position","pageXOffset","top","pageYOffset","opacity","focus","which","charCode","inputController","isSignificant","insertPlaceholder","range","selectPlaceholder","forgetPlaceholder","canApplyToDocument","Level2InputController","scheduledRender","composing","reparse","scheduleRender","afterRender","shiftKey","withEvent","inputTypes","inputType","selectionContainsAttachments","dragging","point","ArrowLeft","shouldManageMovingCursorInDirection","event","ArrowRight","Backspace","shouldManageDeletingInDirection","Tab","deleteByComposition","recordUndoEntry","deleteByCut","deleteByDrag","withTargetDOMRange","deleteByDragRange","deleteCompositionText","deleteContent","deleteContentBackward","deleteContentForward","deleteEntireSoftLine","deleteHardLineBackward","deleteHardLineForward","deleteSoftLineBackward","deleteSoftLineForward","deleteWordBackward","deleteWordForward","formatBackColor","activateAttributeIfSupported","formatBold","toggleAttributeIfSupported","formatFontColor","formatFontName","formatIndent","formatItalic","formatJustifyCenter","formatJustifyFull","formatJustifyLeft","formatJustifyRight","formatOutdent","formatRemove","getCurrentAttributes","removeCurrentAttribute","formatSetBlockTextDirection","formatSetInlineTextDirection","formatStrikeThrough","formatSubscript","formatSuperscript","formatUnderline","historyRedo","inputControllerWillPerformRedo","historyUndo","inputControllerWillPerformUndo","insertCompositionText","insertFromComposition","insertFromDrop","insertFromPaste","insertFromYank","insertLink","insertOrderedList","insertParagraph","insertReplacementText","insertText","insertTranspose","insertUnorderedList","inputControllerWillPerformFormatting","toggleCurrentAttribute","setCurrentAttribute","getTargetDOMRange","minLength","getTargetRanges","createRange","setStart","startOffset","setEnd","endOffset","AttachmentEditorController","attachmentPiece","container","didBlurCaption","didChangeCaption","didInputCaption","didKeyDownCaption","didClickActionButton","didClickToolbar","install","undos","makeElementMutable","addToolbar","isPreviewable","installCaptionEditor","uninstall","savePendingCaption","didUninstallAttachmentEditor","pendingCaption","attachmentEditorDidRequestUpdatingAttributesForAttachment","attachmentEditorDidRequestRemovingAttributeForAttachment","trixMutable","title","trixAction","getFilename","getFormattedFilesize","placeholder","getCaption","tabIndex","height","scrollHeight","display","parentElement","editCaption","attachmentEditorDidRequestRemovalOfAttachment","attachmentEditorDidRequestDeselectingAttachment","uploadProgressDelegate","piece","createContentNodes","getClassName","getHref","tabindex","hasContent","getContent","createCaptionElement","isPending","progressElement","getUploadProgress","getCaptionConfig","createTextNode","getType","getExtension","trixAttachment","trixContentType","getContentType","trixId","trixAttributes","trixSerialize","findProgressElement","attachmentDidChangeUploadProgress","PreviewableAttachmentView","previewDelegate","image","src","refresh","updateAttributesForImage","getURL","getPreviewURL","getWidth","getHeight","width","attachmentDidChangeAttributes","PieceView","getAttributes","textConfig","context","createAttachmentNodes","createStringNodes","preserveSpaces","styleProperty","isLast","isFirst","followsWhitespace","_t11","TextView","getPieces","hasAttribute","BlockView","block","createComment","getLastAttribute","shouldAddExtraNewlineElement","isRTL","getBlockBreakPosition","elementStore","setDocument","sync","shadowElement","getBlocks","isSynced","createDocumentFragmentForSync","lastChild","didSync","createDocumentFragment","replaceChild","CompositionController","composition","didClickAttachment","didBlur","didFocus","documentView","focused","compositionControllerDidFocus","blurPromise","compositionControllerDidBlur","findAttachmentForElement","compositionControllerDidSelectAttachment","getSerializableElement","isEditingAttachment","revision","canSyncDocumentView","compositionControllerWillSyncDocumentView","compositionControllerDidSyncDocumentView","compositionControllerDidRender","rerenderViewForObject","refreshViewCache","attachmentEditor","installAttachmentEditorForAttachment","uninstallAttachmentEditor","getAttachmentPieceForAttachment","compositionControllerWillUpdateAttachment","updateAttributesForAttachment","removeAttributeForAttachment","compositionControllerDidRequestRemovalOfAttachment","compositionControllerDidRequestDeselectingAttachment","getAttachmentById","parseInt","ToolbarController","didKeyDownDialogInput","didClickDialogButton","didClickAttributeButton","actions","resetDialogInputs","toolbarDidClickButton","getDialog","toggleDialog","toolbarDidInvokeAction","toolbarDidToggleAttribute","refreshAttributeButtons","hideDialog","updateActions","refreshActionButtons","eachActionButton","disabled","updateAttributes","eachAttributeButton","dialogIsVisible","applyKeyboardCommand","showDialog","toolbarWillShowDialog","select","toolbarDidShowDialog","willValidate","checkValidity","toolbarDidUpdateAttribute","toolbarDidRemoveAttribute","toolbarDidHideDialog","_t12","ImagePreloadOperation","Image","naturalWidth","naturalHeight","_t13","Attachment","releaseFile","didChangeAttributes","previewablePattern","attachmentForFile","attributesForFile","setFile","filename","filesize","contentType","setAttributes","preloadURL","getFilesize","getFile","preloadFile","releasePreloadedFile","uploadProgress","setUploadProgress","previewURL","preloadingURL","setPreviewURL","attachmentDidChangePreviewURL","preload","fileObjectURL","createObjectURL","revokeObjectURL","_t14","Piece","registerType","copyWithAttributes","getValue","copyWithAdditionalAttributes","copyWithoutAttribute","getAttributesHash","getCommonAttributes","pieceList","getPieceAtIndex","eachPiece","hasSameStringValueAsPiece","hasSameAttributesAsPiece","isBlockBreak","isSerializable","getLength","canBeConsolidatedWith","_t15","AttachmentPiece","ensureAttachmentExclusivelyHasAttribute","removeProhibitedAttributes","permittedAttributes","toConsole","StringPiece","consolidateWith","splitAtOffset","SplittableList","eachObject","insertObjectAtIndex","insertSplittableListAtIndex","insertSplittableListAtPosition","splitObjectAtPosition","editObjectAtIndex","replaceObjectAtIndex","removeObjectAtIndex","getObjectAtIndex","getSplittableListInRange","splitObjectsAtRange","selectSplittableList","removeObjectsInRange","transformObjectsInRange","getObjectAtPosition","findIndexAndOffsetAtPosition","index","consolidate","consolidateFromIndexToIndex","findPositionAtIndexAndOffset","getEndPosition","endPosition","_t16","Text","textForAttachmentWithAttributes","textForStringWithAttributes","copyWithPieceList","copyUsingObjectMap","appendText","insertTextAtPosition","removeTextAtRange","replaceTextAtRange","moveTextFromRangeToPosition","getTextAtRange","addAttributeAtRange","addAttributesAtRange","removeAttributeAtRange","setAttributesAtRange","getAttributesAtPosition","getCommonAttributesAtRange","getExpandedRangeForAttributeAtOffset","getStringAtRange","getStringAtPosition","startsWithString","endsWithString","getAttachmentPieces","getAttachments","getAttachmentAndPositionById","getRangeOfAttachment","getPieceAtPosition","toSerializableText","Block","copyWithText","copyWithoutText","copyWithoutAttributes","addAttribute","removeLastAttribute","getAttributeLevel","getAttributeAtLevel","hasAttributes","getLastNestableAttribute","getNestableAttributes","getNestingLevel","lastIndexOf","getListItemAttributes","isListItem","isTerminalBlock","breaksOnReturn","findLineBreakInDirectionFromPosition","getTextWithoutBlockBreak","blockBreak","HTMLSanitizer","allowedAttributes","forbiddenProtocols","forbiddenElements","sanitize","sanitizeElements","normalizeListElementNesting","getHTML","getBody","nextNode","currentNode","elementIsRemovable","sanitizeElement","protocol","previousElementSibling","elementIsForbidden","elementIsntSerializable","implementation","createHTMLDocument","HTMLParser","referenceElement","blocks","blockElements","processedElements","getDocument","createHiddenContainer","containerElement","processNode","translateBlockElementMarginsToNewlines","removeHiddenContainer","FILTER_REJECT","FILTER_ACCEPT","isInsignificantTextNode","appendBlockForTextNode","processTextNode","appendBlockForElement","processElement","currentBlockElement","isBlockElement","appendStringWithAttributes","getBlockAttributes","currentBlock","appendBlockForAttributesWithElement","findParentBlockElement","appendEmptyBlock","getTextAttributes","appendAttachmentWithAttributes","isExtraBR","appendPiece","appendStringToTextAtIndex","prependStringToTextAtIndex","unshift","findBlockElementAncestors","reverse","whiteSpace","getMarginOfDefaultBlockElement","getMarginOfBlockElementAtIndex","bottom","marginTop","marginBottom","blockList","fromString","getBlockAtIndex","consolidateBlocks","copyUsingObjectsFromDocument","copyWithBaseBlockAttributes","replaceBlock","insertDocumentAtRange","locationFromPosition","getBlockAtPosition","mergeDocumentAtRange","getBaseBlockAttributes","getBlockCount","insertTextAtRange","locationRangeFromRange","getDocumentAtRange","eachBlockAtRange","eachBlock","getTextAtIndex","insertBlockBreakAtRange","applyBlockAttributeAtRange","expandRangeToLineBreaksAndSplitBlocks","removeLastListAttributeAtRange","exceptAttributeName","convertLineBreaksToBlockBreaksInRange","removeBlockAttributesAtRange","removeLastTerminalAttributeAtRange","consolidateBlocksAtRange","positionFromLocation","getTextAtPosition","getCharacterAtPosition","getEditCount","editCount","getCommonAttributesAtPosition","getRangeOfCommonAttributeAtPosition","min","getLocationRangeOfAttachment","findRangesForBlockAttribute","findRangesForTextAttribute","withValue","locationRangeFromPosition","rangeFromLocationRange","getTexts","LineBreakInsertion","startPosition","startLocation","endLocation","previousCharacter","nextCharacter","shouldInsertBlockBreak","shouldBreakFormattedBlock","shouldDecreaseListLevel","shouldPrependListItem","shouldRemoveLastBlockAttribute","Composition","currentAttributes","refreshAttachments","compositionDidChangeDocument","getSnapshot","selectedRange","loadSnapshot","compositionWillLoadSnapshot","setSelection","compositionDidLoadSnapshot","notifyDelegateOfInsertionAtRange","insertBlock","getCurrentTextAttributes","insertBlockBreak","decreaseListLevel","removeLastBlockAttribute","breakFormattedBlock","replaceHTML","getLocationRange","compositionShouldAcceptFile","insertAttachments","insertAttachment","canDecreaseBlockAttributeLevel","getBlock","decreaseBlockAttributeLevel","getExpandedRangeInDirection","getAttachmentAtRange","editAttachment","removeAttachment","stopEditingAttachment","placeholderPosition","getPosition","hasCurrentAttribute","canSetCurrentAttribute","canSetCurrentBlockAttribute","canSetCurrentTextAttribute","setBlockAttribute","setTextAttribute","notifyDelegateOfCurrentAttributesChange","removeBlockAttribute","updateCurrentAttributes","removeTextAttribute","getPreviousBlock","ignoreLock","freezeSelection","thawSelection","hasFrozenSelection","compositionDidRequestChangingSelectionToLocationRange","getSelectionManager","setLocationRange","targetLocationRange","withTargetLocationRange","withTargetRange","createLocationRangeFromDOMRange","translateUTF16PositionFromOffset","editingAttachment","expandSelectionForEditing","expandSelectionAroundCommonAttribute","getSelectedAttachments","positionIsCursorTarget","locationIsCursorTarget","compositionDidRemoveAttachment","compositionDidAddAttachment","compositionDidEditAttachment","compositionDidChangeAttachmentPreviewURL","compositionDidStartEditingAttachment","compositionDidStopEditingAttachment","compositionDidChangeCurrentAttributes","compositionDidPerformInsertionAtRange","_t17","UndoManager","undoEntries","redoEntries","consolidatable","createEntry","description","snapshot","canUndo","canRedo","attachmentGalleryFilter","applyBlockAttribute","findRangesOfBlocks","findRangesOfPieces","moveSelectedRangeForward","Editor","selectionManager","_t18","undoManager","filters","loadDocument","loadHTML","loadJSON","getClientRectAtPosition","getClientRectAtLocationRange","activateAttribute","attributeIsActive","canActivateAttribute","deactivateAttribute","_t19","ManagedAttachment","attachmentManager","requestRemovalOfAttachment","_t20","AttachmentManager","managedAttachments","manageAttachment","attachmentIsManaged","attachmentManagerDidRequestRemovalOfAttachment","unmanageAttachment","LocationMapper","findLocationFromContainerAndOffset","findAttachmentElementParentForNode","findContainerAndOffsetFromLocation","findNodeAndOffsetFromLocation","getSignificantNodesForIndex","PointMapper","createDOMRangeFromPoint","caretPositionFromPoint","offsetNode","caretRangeFromPoint","createTextRange","moveToPoint","getClientRectsForDOMRange","getClientRects","SelectionChangeObserver","run","selectionManagers","started","registerSelectionManager","unregisterSelectionManager","notifySelectionManagersOfSelectionChange","selectionDidChange","domRange","SelectionManager","didMouseDown","locationMapper","pointMapper","lockCount","currentLocationRange","lockedLocationRange","createDOMRangeFromLocationRange","updateCurrentLocationRange","getLocationAtPoint","lock","unlock","clearSelection","selectionIsCollapsed","collapsed","domRangeWithinElement","pauseTemporarily","paused","locationRangeDidChange","EditorController","editorElement","compositionController","toolbarController","toolbarElement","editor","notifyEditorElement","handlingInput","updateCurrentActions","pasting","pastedRange","attachmentLocationRange","loadingSnapshot","isFocused","requestedLocationRange","compositionRevisionWhenLocationRangeRequested","renderedCompositionRevision","runEditorFilters","isFocusedInvisibly","requestedRender","recordTypingUndoEntry","recordFormattingUndoEntry","locationRangeBeforeDrag","invokeAction","selectionFrozen","dialogName","canInvokeAction","actionIsExternal","actionName","getCurrentActions","currentActions","updateInputElement","setInputElementValue","documentChangedSinceLastRender","notify","getUndoContext","getLocationContext","getTimeContext","getTime","ownerDocument","queryCommandSupported","execCommand","labels","contains","inputElement","editorController","defaultValue","registerResetListener","registerClickListener","unregisterResetListener","unregisterClickListener","resetListener","resetBubbled","clickListener","clickBubbled","form","webpackPolyfill","deprecate","paths","children","factory","sparkMd5","fn","createCommonjsModule","undefined","hex_chr","md5cycle","md5blk","md5blks","md5blk_array","md51","tail","tmp","lo","hi","state","substring","md51_array","subarray","Uint8Array","rhex","j","hex","toUtf8","str","unescape","encodeURIComponent","utf8Str2ArrayBuffer","returnUInt8Array","buff","ArrayBuffer","arr","arrayBuffer2Utf8Str","concatenateArrayBuffers","first","second","result","byteLength","buffer","hexToBinaryString","substr","SparkMD5","clamp","val","to","num","targetArray","sourceArray","begin","append","appendBinary","contents","_buff","_length","_hash","raw","ret","_finish","getState","hash","setState","hashBinary","content","classCallCheck","instance","Constructor","createClass","props","descriptor","protoProps","staticProps","fileSlice","File","mozSlice","webkitSlice","FileChecksum","chunkSize","chunkCount","ceil","chunkIndex","callback","_this","md5Buffer","fileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","root","selector","eventInit","toArray$1","BlobRecord","checksum","content_type","byte_size","xhr","XMLHttpRequest","open","responseType","setRequestHeader","getMetaValue","requestDidLoad","requestDidError","send","blob","status","response","direct_upload","directUploadData","_xhr","BlobUpload","_blob$directUploadDat","headers","DirectUpload","error","upload","methodName","_len","messages","_key","DirectUploadController","directUpload","dispatch","hiddenInput","insertAdjacentElement","dispatchError","signed_id","progress","loaded","total","alert","_this2","uploadRequestDidProgress","DirectUploadsController","inputs","filter","controllers","createDirectUploadControllers","startNextController","controller","processingAttribute","submitButtonsByForm","didClick","didSubmitForm","didSubmitRemoteElement","handleFormSubmissionEvent","disable","enable","button","delete","submitForm","ActiveStorage","Rails","linkClickSelector","buttonClickSelector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","nonce","loadCSPNonce","ref","cspNonce","oMatchesSelector","$","csrfParam","csrfToken","CSRFProtection","token","refreshCSRFTokens","param","fire","params","evt","stopEverything","eventType","handler","AcceptHeaders","createXHR","prepareOptions","processResponse","xml","json","script","ajax","responseText","getResponseHeader","success","statusText","complete","beforeSend","OPENED","location","dataType","accept","done","crossDomain","withCredentials","onreadystatechange","DONE","isCrossDomain","originAnchor","urlAnchor","serializeElement","additionalParam","option","selected","checked","formElements","el","allowAction","handleConfirm","confirm","message","answer","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","originalText","handleMethod","formContent","method","action","isRemote","handleRemote","enctype","args","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","jQuery","rails","ajaxPrefilter","originalOptions","_rails_loaded","Timeout","clearFn","_id","_clearFn","scope","setInterval","clearInterval","timeout","close","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","_onTimeout","global","clearImmediate","registerImmediate","channel","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","doc","attachTo","process","handle","nextTick","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","canUsePostMessage","MessageChannel","port1","port2","task","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","len","marker","runClearTimeout","Item","noop","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","umask","_defineProperties","AttachmentUpload","_classCallCheck","directUploadUrl","directUploadDidComplete","sgid","attachable_sgid","createBlobUrl","signedId","blobUrlTemplate","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","_objectSpread2","_defineProperty","getOwnPropertyDescriptors","_extends","assign","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","pattern","IE11OrLess","Edge","FireFox","Safari","IOS","ChromeForAndroid","captureMode","capture","passive","_","getParentOrHost","ctx","includeCTX","_throttleTimeout","R_SPACE","toggleClass","prop","defaultView","currentStyle","matrix","selfOnly","appliedTransforms","transform","matrixFn","DOMMatrix","WebKitCSSMatrix","CSSMatrix","MSCSSMatrix","list","getElementsByTagName","getWindowScrollingElement","scrollingElement","getRect","relativeToContainingBlock","relativeToNonStaticParent","undoScale","getBoundingClientRect","elRect","innerHeight","innerWidth","containerRect","elMatrix","scaleX","scaleY","isScrolledPast","elSide","parentSide","parent","getParentAutoScrollElement","elSideVal","parentSideVal","getChild","childNum","includeDragEl","currentChild","Sortable","ghost","dragged","draggable","last","lastElementChild","nodeName","clone","getRelativeScrollOffset","offsetLeft","offsetTop","winScroller","scrollLeft","scrollTop","includeSelf","elem","gotSelf","clientWidth","scrollWidth","clientHeight","elemCSS","overflowX","overflowY","isRectEqual","rect1","rect2","round","throttle","ms","scrollBy","Polymer","Zepto","expando","AnimationStateManager","animationCallbackId","animationStates","captureAnimationState","animation","child","rect","fromRect","thisAnimationDuration","childMatrix","addAnimationState","removeAnimationState","Number","indexOfObject","animateAll","animating","animationTime","time","toRect","prevFromRect","prevToRect","animatingRect","targetMatrix","sqrt","calculateRealTime","animate","animationResetTimer","currentRect","duration","translateX","translateY","animatingX","animatingY","forRepaintDummy","offsetWidth","repaint","easing","animated","plugins","defaults","initializeByDefault","PluginManager","mount","plugin","pluginName","pluginEvent","sortable","eventCanceled","eventNameGlobal","initializePlugins","modified","modifyOption","getEventProperties","eventProperties","modifiedValue","optionListeners","_ref","rootEl","targetEl","cloneEl","toEl","fromEl","oldIndex","newIndex","oldDraggableIndex","newDraggableIndex","originalEvent","putSortable","extraEventProperties","onName","pullMode","lastPutMode","allEventProperties","_excluded","dragEl","parentEl","ghostEl","nextEl","lastDownEl","cloneHidden","dragStarted","moved","activeSortable","hideGhostForTarget","_hideGhostForTarget","unhideGhostForTarget","_unhideGhostForTarget","cloneNowHidden","cloneNowShown","dispatchSortableEvent","_dispatchEvent","info","activeGroup","tapEvt","touchEvt","lastDx","lastDy","tapDistanceLeft","tapDistanceTop","lastTarget","lastDirection","targetMoveDistance","ghostRelativeParent","awaitingDragStarted","ignoreNextClick","sortables","pastFirstInvertThresh","isCircumstantialInvert","ghostRelativeParentInitialScroll","_silent","savedInputChecked","documentExists","PositionGhostAbsolutely","CSSFloatProperty","supportDraggable","supportCssPointerEvents","cssText","pointerEvents","_detectDirection","elCSS","elWidth","paddingLeft","paddingRight","borderLeftWidth","borderRightWidth","child1","child2","firstChildCSS","secondChildCSS","firstChildWidth","marginLeft","marginRight","secondChildWidth","flexDirection","gridTemplateColumns","touchingSideChild2","_prepareGroup","toFn","pull","sameGroup","otherGroup","originalGroup","checkPull","checkPut","put","revertClone","nearestEmptyInsertDetectEvent","touches","nearest","some","threshold","emptyInsertThreshold","insideHorizontally","insideVertically","_onDragOver","_checkOutsideTargetEl","_isOutsideThisEl","store","swapThreshold","invertSwap","invertedSwapThreshold","removeCloneOnHide","direction","ghostClass","chosenClass","dragClass","ignore","preventOnFilter","dropBubble","dragoverBubble","dataIdAttr","delay","delayOnTouchOnly","touchStartThreshold","devicePixelRatio","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","nativeDraggable","_onTapStart","_onMove","dragRect","targetRect","willInsertAfter","retVal","onMoveFn","onMove","draggedRect","related","relatedRect","_disableDraggable","_unsilent","_generateId","sum","_nextTick","_cancelNextTick","_getDirection","touch","pointerType","originalTarget","path","composedPath","idx","_saveInputCheckedState","isContentEditable","criteria","_prepareDragStart","dragStartFn","_lastX","_lastY","_onDrop","_disableDelayedDragEvents","_triggerDragStart","_disableDelayedDrag","_delayedDragTouchMoveHandler","_dragStartTimer","abs","_onTouchMove","_onDragStart","selection","empty","err","_dragStarted","fallback","_appendGhost","_nulling","_emulateDragOver","elementFromPoint","ghostMatrix","relativeScrollOffset","dx","dy","cssMatrix","_hideClone","cloneId","_loopId","effectAllowed","_dragStartId","revert","vertical","isOwner","canSort","fromSortable","completedFired","dragOverEvent","_ignoreWhileAnimating","completed","elLastChild","spacer","_ghostIsLast","changed","_ghostIsFirst","targetBeforeFirstSwap","sibling","differentLevel","differentRowCol","dragElS1Opp","dragElS2Opp","dragElOppLength","targetS1Opp","targetS2Opp","targetOppLength","_dragElInRowColumn","side1","scrolledPastTop","scrollBefore","isLastTarget","mouseOnAxis","targetLength","targetS1","targetS2","invert","_getInsertDirection","_getSwapDirection","dragIndex","after","moveVector","extra","axis","insertion","_showClone","_offMoveEvents","_offUpEvents","save","dropEffect","_globalDragOver","order","useAnimation","utils","dst","cancelNextTick","detectDirection","scrollEl","scrollRootEl","lastAutoScrollX","lastAutoScrollY","touchEvt$1","pointerElemChangedInterval","autoScrolls","scrolling","clearAutoScrolls","autoScroll","pid","clearPointerElemChangedInterval","isFallback","scroll","scrollCustomFn","sens","scrollSensitivity","speed","scrollSpeed","scrollThisInstance","scrollFn","layersOut","currentParent","canScrollX","canScrollY","scrollPosX","scrollPosY","vx","vy","layer","scrollOffsetY","scrollOffsetX","bubbleScroll","toSortable","changedTouches","onSpill","Revert","Remove","startIndex","dragStart","_ref2","_ref3","_ref4","parentSortable","AutoScroll","forceAutoScrollFallback","_handleAutoScroll","_handleFallbackAutoScroll","dragOverCompleted","dragOverBubble","nulling","ogElemScroller","newElem","ulElements","saveKanban","targetItem","kanbanIds","ul","itemIds","itemId","columns","colId","formData","companySlug","kanbanUls","onEnd","require"],"mappings":";aACE,IAAIA,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUC,QAGnC,IAAIC,EAASJ,EAAiBE,GAAY,CACzCG,EAAGH,EACHI,GAAG,EACHH,QAAS,IAUV,OANAI,EAAQL,GAAUM,KAAKJ,EAAOD,QAASC,EAAQA,EAAOD,QAASF,GAG/DG,EAAOE,GAAI,EAGJF,EAAOD,QAKfF,EAAoBQ,EAAIF,EAGxBN,EAAoBS,EAAIV,EAGxBC,EAAoBU,EAAI,SAASR,EAASS,EAAMC,GAC3CZ,EAAoBa,EAAEX,EAASS,IAClCG,OAAOC,eAAeb,EAASS,EAAM,CAAEK,YAAY,EAAMC,IAAKL,KAKhEZ,EAAoBkB,EAAI,SAAShB,GACX,qBAAXiB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAeb,EAASiB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,KAQvDrB,EAAoBsB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQrB,EAAoBqB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,kBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFA1B,EAAoBkB,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOrB,EAAoBU,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRzB,EAAoB6B,EAAI,SAAS1B,GAChC,IAAIS,EAAST,GAAUA,EAAOqB,WAC7B,WAAwB,OAAOrB,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAH,EAAoBU,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRZ,EAAoBa,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAGzG/B,EAAoBkC,EAAI,UAIjBlC,EAAoBA,EAAoBmC,EAAI,G,mBClFrD,oCAAmD,OAAOC,EAAU,mBAAqBjB,QAAU,iBAAmBA,OAAOkB,SAAW,SAAUC,GAAO,cAAcA,GAAS,SAAUA,GAAO,OAAOA,GAAO,mBAAqBnB,QAAUmB,EAAIC,cAAgBpB,QAAUmB,IAAQnB,OAAOa,UAAY,gBAAkBM,GAAQF,EAAQE,IAOzU,cAAiB/B,KAAKiC,MAAO,WAE3B,MAAQC,OAAOC,MAAQD,OAAOC,IAAU,WACtC,SAASpB,IACPkB,KAAKG,QAGP,OAAOrB,EAAEU,UAAUW,MAAQ,WACzB,OAAOH,KAAKI,OAAS,IACpBtB,EAAEU,UAAUa,IAAM,SAAUvB,GAC7B,OAAQ,IAAMkB,KAAKI,OAAOE,QAAQxB,IACjCA,EAAEU,UAAUe,IAAM,SAAUzB,GAC7B,OAAOkB,KAAKK,IAAIvB,IAAMkB,KAAKI,OAAOI,KAAK1B,GAAIkB,MAC1ClB,EAAEU,UAAkB,OAAI,SAAUV,GACnC,IAAI2B,EACJ,OAAQ,KAAOA,EAAIT,KAAKI,OAAOE,QAAQxB,MAAYkB,KAAKI,OAAOM,OAAOD,EAAG,IAAI,IAC5E3B,EAAEU,UAAUmB,QAAU,WACvB,IAAI7B,EACJ,OAAQA,EAAIkB,KAAKI,QAAQO,QAAQC,MAAM9B,EAAG+B,YACzC/B,EAjBmC,KAmBxCf,KAAKiC,MAAO,SAAUlB,GACtB,SAAS2B,KAQT,SAAS7C,EAAEkB,GACT,GAAI,UAAYc,EAAQI,MAAO,MAAM,IAAIc,UAAU,wCACnD,GAAI,mBAAqBhC,EAAG,MAAM,IAAIgC,UAAU,kBAChDd,KAAKe,OAAS,EAAGf,KAAKgB,UAAW,EAAIhB,KAAKiB,YAAS,EAAQjB,KAAKkB,WAAa,GAAIjD,EAAEa,EAAGkB,MAGxF,SAAS3B,EAAES,EAAG2B,GACZ,KAAO,IAAM3B,EAAEiC,QACbjC,EAAIA,EAAEmC,OAGR,OAAO,IAAMnC,EAAEiC,YAAcjC,EAAEoC,WAAWV,KAAKC,IAAM3B,EAAEkC,UAAW,OAASG,GAAE,WAC3E,IAAI9B,EAAI,IAAMP,EAAEiC,OAASN,EAAEW,YAAcX,EAAEY,WAC3C,GAAI,OAAShC,EAAb,CACA,IAAIzB,EAEJ,IACEA,EAAIyB,EAAEP,EAAEmC,QACR,MAAO5C,GACP,YAAYsB,EAAEc,EAAEa,QAASjD,GAG3BK,EAAE+B,EAAEa,QAAS1D,QATgB,IAAMkB,EAAEiC,OAASrC,EAAIiB,GAAGc,EAAEa,QAASxC,EAAEmC,YAatE,SAASvC,EAAEI,EAAG2B,GACZ,IACE,GAAIA,IAAM3B,EAAG,MAAM,IAAIgC,UAAU,6CAEjC,GAAIL,IAAM,UAAYb,EAAQa,IAAM,mBAAqBA,GAAI,CAC3D,IAAIpC,EAAIoC,EAAEc,KACV,GAAId,aAAa7C,EAAG,OAAOkB,EAAEiC,OAAS,EAAGjC,EAAEmC,OAASR,OAAQe,EAAE1C,GAC9D,GAAI,mBAAqBT,EAAG,YAAYJ,EAvC9C,SAAWa,EAAG2B,GACZ,OAAO,WACL3B,EAAE8B,MAAMH,EAAGI,YAqCiCxB,CAAEhB,EAAGoC,GAAI3B,GAGrDA,EAAEiC,OAAS,EAAGjC,EAAEmC,OAASR,EAAGe,EAAE1C,GAC9B,MAAOJ,GACPiB,EAAEb,EAAGJ,IAIT,SAASiB,EAAEb,EAAG2B,GACZ3B,EAAEiC,OAAS,EAAGjC,EAAEmC,OAASR,EAAGe,EAAE1C,GAGhC,SAAS0C,EAAE1C,GACT,IAAMA,EAAEiC,QAAU,IAAMjC,EAAEoC,WAAWO,QAAUC,YAAW,WACxD5C,EAAEkC,UAAYtB,EAAEZ,EAAEmC,UACjB,GAEH,IAAK,IAAIR,EAAI,EAAGpB,EAAIP,EAAEoC,WAAWO,OAAQpC,EAAIoB,EAAGA,IAC9CpC,EAAES,EAAGA,EAAEoC,WAAWT,IAGpB3B,EAAEoC,WAAa,KAGjB,SAASS,EAAE7C,EAAG2B,EAAGpB,GACfW,KAAKoB,YAAc,mBAAqBtC,EAAIA,EAAI,KAAMkB,KAAKqB,WAAa,mBAAqBZ,EAAIA,EAAI,KAAMT,KAAKsB,QAAUjC,EAG5H,SAASpB,EAAEa,EAAG2B,GACZ,IAAIpB,GAAI,EAER,IACEP,GAAE,SAAUA,GACVO,IAAMA,GAAI,EAAIX,EAAE+B,EAAG3B,OAClB,SAAUA,GACXO,IAAMA,GAAI,EAAIM,EAAEc,EAAG3B,OAErB,MAAOlB,GACP,GAAIyB,EAAG,OACPA,GAAI,EAAIM,EAAEc,EAAG7C,IAIjB,IAAIC,EAAI6D,WACJP,EAAI,mBAAqBS,GAAgBA,GAAgB,SAAU9C,GACrEjB,EAAEiB,EAAG,IAEHY,EAAI,SAAWZ,GACjB,oBAAsB+C,SAAWA,SAAWA,QAAQC,KAAK,wCAAyChD,IAGpGlB,EAAE4B,UAAiB,MAAI,SAAUV,GAC/B,OAAOkB,KAAKuB,KAAK,KAAMzC,IACtBlB,EAAE4B,UAAU+B,KAAO,SAAUzC,EAAGO,GACjC,IAAIX,EAAI,IAAId,EAAE6C,GACd,OAAOpC,EAAE2B,KAAM,IAAI2B,EAAE7C,EAAGO,EAAGX,IAAKA,GAC/Bd,EAAEmE,IAAM,SAAUjD,GACnB,IAAI2B,EAAIuB,MAAMxC,UAAUyC,MAAMlE,KAAKe,GACnC,OAAO,IAAIlB,GAAE,SAAUkB,EAAGO,GACxB,SAASzB,EAAEc,EAAGiB,GACZ,IACE,GAAIA,IAAM,UAAYC,EAAQD,IAAM,mBAAqBA,GAAI,CAC3D,IAAI6B,EAAI7B,EAAE4B,KACV,GAAI,mBAAqBC,EAAG,YAAYA,EAAEzD,KAAK4B,GAAG,SAAUb,GAC1DlB,EAAEc,EAAGI,KACJO,GAGLoB,EAAE/B,GAAKiB,EAAG,MAAQtB,GAAKS,EAAE2B,GACzB,MAAOkB,GACPtC,EAAEsC,IAIN,GAAI,IAAMlB,EAAEgB,OAAQ,OAAO3C,EAAE,IAE7B,IAAK,IAAIT,EAAIoC,EAAEgB,OAAQ/C,EAAI,EAAGA,EAAI+B,EAAEgB,OAAQ/C,IAC1Cd,EAAEc,EAAG+B,EAAE/B,QAGVd,EAAEsE,QAAU,SAAUpD,GACvB,OAAOA,GAAK,UAAYc,EAAQd,IAAMA,EAAEiB,cAAgBnC,EAAIkB,EAAI,IAAIlB,GAAE,SAAU6C,GAC9EA,EAAE3B,OAEHlB,EAAEuE,OAAS,SAAUrD,GACtB,OAAO,IAAIlB,GAAE,SAAU6C,EAAGpB,GACxBA,EAAEP,OAEHlB,EAAEwE,KAAO,SAAUtD,GACpB,OAAO,IAAIlB,GAAE,SAAU6C,EAAGpB,GACxB,IAAK,IAAIzB,EAAI,EAAGS,EAAIS,EAAE2C,OAAQpD,EAAIT,EAAGA,IACnCkB,EAAElB,GAAG2D,KAAKd,EAAGpB,OAGhBzB,EAAEyE,gBAAkB,SAAUvD,GAC/BqC,EAAIrC,GACHlB,EAAE0E,yBAA2B,SAAUxD,GACxCY,EAAIZ,GAC6BnB,EAAOD,QAAUC,EAAOD,QAAUE,EAAIkB,EAAEyD,UAAYzD,EAAEyD,QAAU3E,GA7IvF,CA8IZoC,MAAO,WACP,IAAIlB,EAAI,UAAYc,EAAQK,OAAOuC,gBAC/B/B,EAAI,mBAAqBgC,SAASC,gBAC9B5D,GAAK2B,IAYb,oBAAsBkC,SAAY,WAChC,IAAI7D,EAAIR,OAAOC,eACXkC,EAAImC,KAAKC,MAAQ,IACjBxD,EAAI,WACNW,KAAK7B,KAAO,QAAU,IAAM2E,KAAKC,WAAa,GAAMtC,IAAM,MAG5DpB,EAAEG,UAAY,CACZwD,IAAK,SAAavC,EAAGpB,GACnB,IAAIzB,EAAI6C,EAAET,KAAK7B,MACf,OAAOP,GAAKA,EAAE,KAAO6C,EAAI7C,EAAE,GAAKyB,EAAIP,EAAE2B,EAAGT,KAAK7B,KAAM,CAClDU,MAAO,CAAC4B,EAAGpB,GACX4D,UAAU,IACRjD,MAENvB,IAAK,SAAaK,GAChB,IAAI2B,EACJ,OAAQA,EAAI3B,EAAEkB,KAAK7B,QAAUsC,EAAE,KAAO3B,EAAI2B,EAAE,QAAK,GAEnD,OAAU,SAAiB3B,GACzB,IAAI2B,EAAI3B,EAAEkB,KAAK7B,MACf,SAAOsC,GAAKA,EAAE,KAAO3B,KAAK2B,EAAE,GAAKA,EAAE,QAAK,GAAQ,IAElDJ,IAAK,SAAavB,GAChB,IAAI2B,EAAI3B,EAAEkB,KAAK7B,MACf,QAAOsC,GAAIA,EAAE,KAAO3B,IAErBmB,OAAO0C,QAAUtD,EA3BY,GA4B7B,SAAUP,GACb,SAAS2B,EAAE3B,GACToE,EAAE1C,KAAK1B,GAAIqE,IAAMA,GAAI,EAAIC,EAAExF,IAO7B,SAASA,IACPuF,GAAI,EACJ,IAAIrE,EAAIoE,EACRA,EAAI,GAAIpE,EAAEuE,MAAK,SAAUvE,EAAG2B,GAC1B,OAAO3B,EAAEwE,KAAO7C,EAAE6C,QAEpB,IAAI7C,GAAI,EACR3B,EAAE6B,SAAQ,SAAU7B,GAClB,IAAIO,EAAIP,EAAEyE,eAKd,SAAWzE,GACTA,EAAE0E,OAAO7C,SAAQ,SAAUF,GACzB,IAAIpB,EAAIrB,EAAES,IAAIgC,GACdpB,GAAKA,EAAEsB,SAAQ,SAAUF,GACvBA,EAAEgD,WAAa3E,GAAK2B,EAAEiD,kCARxBrF,CAAES,GAAIO,EAAEoC,SAAW3C,EAAE6E,UAAUtE,EAAGP,GAAI2B,GAAI,MACxCA,GAAK7C,IAYX,SAASc,EAAEI,EAAG2B,GACZ,IAAK,IAAIpB,EAAIP,EAAGO,EAAGA,EAAIA,EAAEuE,WAAY,CACnC,IAAIhG,EAAII,EAAES,IAAIY,GACd,GAAIzB,EAAG,IAAK,IAAIS,EAAI,EAAGA,EAAIT,EAAE6D,OAAQpD,IAAK,CACxC,IAAIK,EAAId,EAAES,GACNsB,EAAIjB,EAAEmF,QAEV,GAAIxE,IAAMP,GAAKa,EAAEmE,QAAS,CACxB,IAAItC,EAAIf,EAAEd,GACV6B,GAAK9C,EAAEqF,QAAQvC,MAMvB,SAAS7B,EAAEb,GACTkB,KAAK2D,UAAY7E,EAAGkB,KAAKwD,OAAS,GAAIxD,KAAKgE,SAAW,GAAIhE,KAAKsD,OAASW,EAG1E,SAASzC,EAAE1C,EAAG2B,GACZT,KAAKkE,KAAOpF,EAAGkB,KAAKmE,OAAS1D,EAAGT,KAAKoE,WAAa,GAAIpE,KAAKqE,aAAe,GAAIrE,KAAKsE,gBAAkB,KAAMtE,KAAKuE,YAAc,KAAMvE,KAAKwE,cAAgB,KAAMxE,KAAKyE,mBAAqB,KAAMzE,KAAK0E,SAAW,KAQjN,SAASzG,EAAEa,EAAG2B,GACZ,OAAOkE,EAAI,IAAInD,EAAE1C,EAAG2B,GAGtB,SAAS5C,EAAEiB,GACT,OAAO8F,IAASA,EAVlB,SAAW9F,GACT,IAAI2B,EAAI,IAAIe,EAAE1C,EAAEoF,KAAMpF,EAAEqF,QACxB,OAAO1D,EAAE2D,WAAatF,EAAEsF,WAAWnC,QAASxB,EAAE4D,aAAevF,EAAEuF,aAAapC,QAASxB,EAAE6D,gBAAkBxF,EAAEwF,gBAAiB7D,EAAE8D,YAAczF,EAAEyF,YAAa9D,EAAE+D,cAAgB1F,EAAE0F,cAAe/D,EAAEgE,mBAAqB3F,EAAE2F,mBAAoBhE,EAAEiE,SAAW5F,EAAE4F,SAAUjE,EAQhPkB,CAAEgD,GAAIC,EAAEF,SAAW5F,EAAG8F,GAW5C,SAAS1G,EAAEY,EAAG2B,GACZ,OAAO3B,IAAM2B,EAAI3B,EAAI8F,GALvB,SAAW9F,GACT,OAAOA,IAAM8F,GAAK9F,IAAM6F,EAIEjF,CAAEZ,GAAK8F,EAAI,KAGvC,SAASC,EAAE/F,EAAG2B,EAAGpB,GACfW,KAAKyD,SAAW3E,EAAGkB,KAAKmE,OAAS1D,EAAGT,KAAK6D,QAAUxE,EAAGW,KAAK8E,uBAAyB,GAGtF,IAAKhG,EAAEiG,mBAAoB,CACzB,IAAI3B,EACApF,EAAI,IAAI2E,QACZ,GAAI,eAAeqC,KAAKC,UAAUC,WAAY9B,EAAI1B,gBAAgB,GAAIzB,OAAO2B,aAAcwB,EAAInD,OAAO2B,iBAAkB,CACtH,IAAIuD,EAAI,GACJC,EAAIC,OAAOvC,KAAKC,UACpB9C,OAAOqF,iBAAiB,WAAW,SAAUxG,GAC3C,GAAIA,EAAEyG,OAASH,EAAG,CAChB,IAAI3E,EAAI0E,EACRA,EAAI,GAAI1E,EAAEE,SAAQ,SAAU7B,GAC1BA,WAGFsE,EAAI,SAAWtE,GACjBqG,EAAE3E,KAAK1B,GAAImB,OAAOuF,YAAYJ,EAAG,MAGrC,IAmCIT,EAAGC,EAnCHzB,GAAI,EACJD,EAAI,GACJe,EAAI,EACRtE,EAAEH,UAAY,CACZiG,QAAS,SAAiB3G,EAAG2B,GAC3B,GAAI3B,EApGV,SAAWA,GACT,OAAOmB,OAAOyF,mBAAqBzF,OAAOyF,kBAAkBC,aAAa7G,IAAMA,EAmGnEO,CAAEP,IAAK2B,EAAEmF,YAAcnF,EAAEoF,aAAepF,EAAEqF,eAAiBrF,EAAEsF,oBAAsBtF,EAAEoF,YAAcpF,EAAEuF,iBAAmBvF,EAAEuF,gBAAgBvE,SAAWhB,EAAEoF,YAAcpF,EAAEwF,wBAA0BxF,EAAEqF,cAAe,MAAM,IAAII,YACpO,IAAItI,EAAII,EAAES,IAAIK,GACdlB,GAAKI,EAAEgF,IAAIlE,EAAGlB,EAAI,IAElB,IAAK,IAAIS,EAAGK,EAAI,EAAGA,EAAId,EAAE6D,OAAQ/C,IAC/B,GAAId,EAAEc,GAAG+E,WAAazD,KAAM,EAC1B3B,EAAIT,EAAEc,IAAMyH,kBAAmB9H,EAAEwF,QAAUpD,EAC3C,MAIJpC,IAAMA,EAAI,IAAIwG,EAAE7E,KAAMlB,EAAG2B,GAAI7C,EAAE4C,KAAKnC,GAAI2B,KAAKwD,OAAOhD,KAAK1B,IAAKT,EAAE+H,gBAElEC,WAAY,WACVrG,KAAKwD,OAAO7C,SAAQ,SAAU7B,GAC5B,IAAK,IAAI2B,EAAIzC,EAAES,IAAIK,GAAIO,EAAI,EAAGA,EAAIoB,EAAEgB,OAAQpC,IAAK,CAC/C,IAAIzB,EAAI6C,EAAEpB,GAEV,GAAIzB,EAAE6F,WAAazD,KAAM,CACvBpC,EAAEuI,kBAAmB1F,EAAEC,OAAOrB,EAAG,GACjC,UAGHW,MAAOA,KAAKgE,SAAW,IAE5BT,YAAa,WACX,IAAIzE,EAAIkB,KAAKgE,SACb,OAAOhE,KAAKgE,SAAW,GAAIlF,IAI/B+F,EAAErF,UAAY,CACZuE,QAAS,SAAiBjF,GACxB,IAAIO,EAAIW,KAAKyD,SAASO,SAClBpG,EAAIyB,EAAEoC,OAEV,GAAIpC,EAAEoC,OAAS,EAAG,CAChB,IACI/C,EAAIR,EADAmB,EAAEzB,EAAI,GACDkB,GACb,GAAIJ,EAAG,YAAaW,EAAEzB,EAAI,GAAKc,QAC1B+B,EAAET,KAAKyD,UAEdpE,EAAEzB,GAAKkB,GAETsH,aAAc,WACZpG,KAAKsG,cAActG,KAAKmE,SAE1BmC,cAAe,SAAuBxH,GACpC,IAAI2B,EAAIT,KAAK6D,QACbpD,EAAEoF,YAAc/G,EAAEwG,iBAAiB,kBAAmBtF,MAAM,GAAKS,EAAEqF,eAAiBhH,EAAEwG,iBAAiB,2BAA4BtF,MAAM,GAAKS,EAAEmF,WAAa9G,EAAEwG,iBAAiB,kBAAmBtF,MAAM,IAAMS,EAAEmF,WAAanF,EAAEqD,UAAYhF,EAAEwG,iBAAiB,iBAAkBtF,MAAM,IAEzRmG,gBAAiB,WACfnG,KAAKuG,iBAAiBvG,KAAKmE,SAE7BoC,iBAAkB,SAA0BzH,GAC1C,IAAI2B,EAAIT,KAAK6D,QACbpD,EAAEoF,YAAc/G,EAAE0H,oBAAoB,kBAAmBxG,MAAM,GAAKS,EAAEqF,eAAiBhH,EAAE0H,oBAAoB,2BAA4BxG,MAAM,GAAKS,EAAEmF,WAAa9G,EAAE0H,oBAAoB,kBAAmBxG,MAAM,IAAMS,EAAEmF,WAAanF,EAAEqD,UAAYhF,EAAE0H,oBAAoB,iBAAkBxG,MAAM,IAErSyG,qBAAsB,SAA8B3H,GAClD,GAAIA,IAAMkB,KAAKmE,OAAQ,CACrBnE,KAAKsG,cAAcxH,GAAIkB,KAAK8E,uBAAuBtE,KAAK1B,GACxD,IAAI2B,EAAIzC,EAAES,IAAIK,GACd2B,GAAKzC,EAAEgF,IAAIlE,EAAG2B,EAAI,IAAKA,EAAED,KAAKR,QAGlC0D,yBAA0B,WACxB,IAAI5E,EAAIkB,KAAK8E,uBACb9E,KAAK8E,uBAAyB,GAAIhG,EAAE6B,SAAQ,SAAU7B,GACpDkB,KAAKuG,iBAAiBzH,GAEtB,IAAK,IAAI2B,EAAIzC,EAAES,IAAIK,GAAIO,EAAI,EAAGA,EAAIoB,EAAEgB,OAAQpC,IAC1C,GAAIoB,EAAEpB,KAAOW,KAAM,CACjBS,EAAEC,OAAOrB,EAAG,GACZ,SAGHW,OAEL0G,YAAa,SAAqB5H,GAChC,OAAQA,EAAE6H,2BAA4B7H,EAAEoF,MACtC,IAAK,kBACH,IAAIzD,EAAI3B,EAAE8H,SACNvH,EAAIP,EAAE+H,YAAYC,aAClBlJ,EAAIkB,EAAEqF,QACN9F,EAAI,IAAIJ,EAAE,aAAcL,IAC1B4G,cAAgB/D,EAAGpC,EAAEoG,mBAAqBpF,EAC5C,IAAIM,EAAIb,EAAEiI,aAAeC,cAAcC,SAAW,KAAOnI,EAAEoI,UAC3DxI,EAAEd,GAAG,SAAUkB,GACb,OAAQA,EAAE+G,YAAc/G,EAAEkH,iBAAmBlH,EAAEkH,gBAAgBvE,SAAW,IAAM3C,EAAEkH,gBAAgB1F,QAAQG,KAAO,IAAM3B,EAAEkH,gBAAgB1F,QAAQjB,QAAK,EAASP,EAAEiH,kBAAoBlI,EAAE8B,GAAKtB,KAE9L,MAEF,IAAK,2BACH,IACIA,EAAIJ,EAAE,gBADNL,EAAIkB,EAAEqF,QAENxE,EAAIb,EAAEoI,UACVxI,EAAEd,GAAG,SAAUkB,GACb,OAAOA,EAAEgH,cAAgBhH,EAAEmH,sBAAwBpI,EAAE8B,GAAKtB,OAAI,KAEhE,MAEF,IAAK,iBACH2B,KAAKyG,qBAAqB3H,EAAEqF,QAE9B,IAAK,kBACH,IAAI3C,EACAG,EACAjC,EAAIZ,EAAEqF,OACV,oBAAsBrF,EAAEoF,MAAQ1C,EAAI,CAAC9B,GAAIiC,EAAI,KAAOH,EAAI,GAAIG,EAAI,CAACjC,IACjE,IAAIxB,EAAIwB,EAAE4E,gBACNO,EAAInF,EAAE6E,aACNlG,EAAIJ,EAAE,YAAaa,EAAEqF,OAAOP,aAC9BQ,WAAa5C,EAAGnD,EAAEgG,aAAe1C,EAAGtD,EAAEiG,gBAAkBpG,EAAGG,EAAEkG,YAAcM,EAAGnG,EAAEI,EAAE+H,aAAa,SAAU/H,GACzG,OAAOA,EAAE8G,UAAYvH,OAAI,KAtJnCsG,EAAIC,OAAI,IA4JL9F,EAAEiG,mBAAqBpF,EAAGb,EAAEqI,mBAAqBrI,EAAEqI,iBAAmBxH,EAAGA,EAAEyH,eAAgB,IAhO7F,CAkOHC,MAAO,WACP,aAEA,IAAKpH,OAAOqH,cAAgBrH,OAAOqH,YAAYzE,IAAK,CAClD,IAAI/D,EAAI8D,KAAKC,MACb5C,OAAOqH,YAAc,CACnBzE,IAAK,WACH,OAAOD,KAAKC,MAAQ/D,IAK1BmB,OAAOsH,wBAA0BtH,OAAOsH,sBAAwB,WAC9D,IAAIzI,EAAImB,OAAOuH,6BAA+BvH,OAAOwH,yBACrD,OAAO3I,EAAI,SAAU2B,GACnB,OAAO3B,GAAE,WACP2B,EAAE6G,YAAYzE,WAEd,SAAU/D,GACZ,OAAOmB,OAAOyB,WAAW5C,EAAG,IAAM,KAP0B,IAS1DmB,OAAOyH,uBAAyBzH,OAAOyH,qBACpCzH,OAAO0H,4BAA8B1H,OAAO2H,yBAA2B,SAAU9I,GACtF+I,aAAa/I,KAIjB,IAAI2B,EAAI,WACN,IAAI3B,EAAI2D,SAASqF,YAAY,SAC7B,OAAOhJ,EAAEiJ,UAAU,OAAO,GAAI,GAAKjJ,EAAEkJ,iBAAkBlJ,EAAEmJ,iBAFnD,GAKR,IAAKxH,EAAG,CACN,IAAIpB,EAAI6I,MAAM1I,UAAUwI,eAExBE,MAAM1I,UAAUwI,eAAiB,WAC/BhI,KAAKmI,aAAe9I,EAAEtB,KAAKiC,MAAO1B,OAAOC,eAAeyB,KAAM,mBAAoB,CAChFvB,IAAK,WACH,OAAO,GAET2J,cAAc,MAKpB,IAAIxK,EAAI,UAAUoH,KAAKC,UAAUC,WAEjC,KAAMjF,OAAOoI,aAAezK,GAAK,mBAAqBqC,OAAOoI,eAAiBpI,OAAOoI,YAAc,SAAUvJ,EAAG2B,GAC9GA,EAAIA,GAAK,GACT,IAAIpB,EAAIoD,SAASqF,YAAY,eAC7B,OAAOzI,EAAEiJ,gBAAgBxJ,EAAGyJ,QAAQ9H,EAAE+H,SAAUD,QAAQ9H,EAAE0H,YAAa1H,EAAEgI,QAASpJ,GACjFY,OAAOoI,YAAY7I,UAAYS,OAAOiI,MAAM1I,YAAaS,OAAOiI,OAAStK,GAAK,mBAAqBqC,OAAOiI,MAAO,CAClH,IAAI7J,EAAI4B,OAAOiI,MACfjI,OAAOiI,MAAQ,SAAUpJ,EAAG2B,GAC1BA,EAAIA,GAAK,GACT,IAAIpB,EAAIoD,SAASqF,YAAY,SAC7B,OAAOzI,EAAE0I,UAAUjJ,EAAGyJ,QAAQ9H,EAAE+H,SAAUD,QAAQ9H,EAAE0H,aAAc9I,GACjEY,OAAOiI,MAAM1I,UAAYnB,EAAEmB,WAzDzB,CA2DPS,OAAOyI,eAAgBzI,OAAO0I,eAAiB1I,OAAO0I,gBAAkB,CACxEC,MAAO,IACN,SAAU9J,GACX,IAAI2B,EAAI3B,EAAE8J,MACNvJ,EAAI,GAURP,EAAE+J,UATM,SAAW/J,GACjBO,EAAEmB,KAAK1B,IAQQA,EAAEgK,kBANX,WACNzJ,EAAEsB,SAAQ,SAAUF,GAClBA,EAAE3B,OAIoCA,EAAEiK,UAAYR,QAAQ9F,SAASC,iBAAkB5D,EAAEkK,KAAO,UAAUhE,KAAKC,UAAUC,WAAYpG,EAAEmK,WAAaxI,EAAEyI,UAAYpK,EAAEiK,YAAc9I,OAAOyF,qBAAuBzF,OAAOkJ,aAAelJ,OAAOkJ,YAAYF,WAZ5P,CAaDhJ,OAAO0I,gBAAiB1I,OAAO0I,eAAeE,WAAU,SAAU/J,GAClE,SAAS2B,EAAE3B,EAAG2B,GACZpB,EAAEP,GAAG,SAAUA,GACb,QAAO2B,EAAE3B,SAAelB,EAAEkB,EAAG2B,MAC3B7C,EAAEkB,EAAG2B,GAGX,SAASpB,EAAEP,EAAG2B,EAAG7C,GACf,IAAIS,EAAIS,EAAEsK,kBACV,IAAK/K,EAAG,IAAKA,EAAIS,EAAEuK,WAAYhL,GAAKA,EAAEiL,WAAaC,KAAKC,cACtDnL,EAAIA,EAAEkG,YAGR,KAAOlG,IACO,IAAZoC,EAAEpC,EAAGT,IAAayB,EAAEhB,EAAGoC,EAAG7C,GAAIS,EAAIA,EAAEoL,mBAGtC,OAAO,KAGT,SAAS7L,EAAEkB,EAAGO,GACZ,IAAK,IAAIzB,EAAIkB,EAAE4K,WAAY9L,GACzB6C,EAAE7C,EAAGyB,GAAIzB,EAAIA,EAAE+L,gBAQnB,SAASjL,EAAEI,EAAG2B,EAAGpB,GACf,GAAIP,EAAImB,OAAO2J,KAAK9K,KAAMO,EAAEiB,QAAQxB,IAAM,GAAI,CAC5CO,EAAEmB,KAAK1B,GAEP,IAAK,IAAIlB,EAAGS,EAAIS,EAAE+K,iBAAiB,YAAclK,EAAI,KAAM6B,EAAI,EAAGG,EAAItD,EAAEoD,OAAQE,EAAIH,IAAM5D,EAAIS,EAAEmD,IAAKA,IACnG5D,EAAEkM,QAAUpL,EAAEd,EAAEkM,OAAQrJ,EAAGpB,GAG7BoB,EAAE3B,IAIN,IAAIa,EAAIM,OAAOkJ,YAAclJ,OAAOkJ,YAAYY,iBAAmB,OACnEjL,EAAEkL,gBAjBF,SAAWlL,EAAG2B,GACZ/B,EAAEI,EAAG2B,EAAG,KAgBa3B,EAAEmL,WAAaxJ,KACpCR,OAAO0I,eAAeE,WAAU,SAAU/J,GAC5C,SAAS2B,EAAE3B,EAAG2B,GACZ,OAAOpB,EAAEP,EAAG2B,IAAM7C,EAAEkB,EAAG2B,GAGzB,SAASpB,EAAEoB,EAAGpB,GACZ,QAAOP,EAAEoL,QAAQzJ,EAAGpB,SAAgBA,GAAKM,EAAEc,IAG7C,SAAS7C,EAAEkB,EAAG2B,GACZ0C,EAAErE,GAAG,SAAUA,GACb,QAAOO,EAAEP,EAAG2B,SAAU,KAI1B,SAASpC,EAAES,GACT8F,EAAEpE,KAAK1B,GAAI6F,IAAMA,GAAI,EAAIjD,WAAWhD,IAGtC,SAASA,IACPiG,GAAI,EAEJ,IAAK,IAAI7F,EAAG2B,EAAImE,EAAGvF,EAAI,EAAGzB,EAAI6C,EAAEgB,OAAQ7D,EAAIyB,IAAMP,EAAI2B,EAAEpB,IAAKA,IAC3DP,IAGF8F,EAAI,GAGN,SAASjF,EAAEb,GACTmF,EAAI5F,GAAE,WACJmD,EAAE1C,MACC0C,EAAE1C,GAGT,SAAS0C,EAAE1C,GACTA,EAAEqL,eAAiBrL,EAAEsL,aAAetL,EAAEsL,YAAa,EAAItL,EAAEuL,kBAAoBvL,EAAEuL,oBASjF,SAASpM,EAAEa,GACTmF,EAAI5F,GAAE,WACJR,EAAEiB,MACCjB,EAAEiB,GAGT,SAASjB,EAAEiB,GACTA,EAAEqL,cAAgBrL,EAAEsL,aAAetL,EAAEsL,YAAa,EAAItL,EAAEwL,kBAAoBxL,EAAEwL,oBAoBhF,SAASpM,EAAEY,EAAGO,GACZ,GAAI+F,EAAEmF,IAAK,CACT,IAAI3M,EAAIyB,EAAE,GAEV,GAAIzB,GAAK,cAAgBA,EAAEsG,MAAQtG,EAAEwG,YAAcxG,EAAEwG,WAAY,CAC/D,IAAK,IAAI/F,EAAIT,EAAEwG,WAAW,GAAI/F,GAAKA,IAAMoE,WAAapE,EAAEmM,MACtDnM,EAAIA,EAAEuF,WAGR,IAAIlF,EAAIL,IAAMA,EAAEoM,KAAOpM,EAAEqM,MAAQrM,EAAEmM,MAAQnM,EAAEmM,KAAKG,YAAc,GAChEjM,EAAIA,EAAEkM,MAAM,MAAMC,QAAQD,MAAM,KAAKE,MAGvCjJ,QAAQkJ,MAAM,sBAAuB1L,EAAEoC,OAAQ/C,GAAK,IAGtD,IAAIiB,EAjCN,SAAWb,GACT,IAAK,IAAI2B,EAAI3B,EAAGO,EAAIY,OAAO2J,KAAKnH,UAAWhC,GAAI,CAC7C,GAAIA,GAAKpB,EAAG,OAAO,EACnBoB,EAAIA,EAAEmD,YAAcnD,EAAE6I,WAAaC,KAAKyB,wBAA0BvK,EAAE+J,MA8B9DrJ,CAAErC,GACVO,EAAEsB,SAAQ,SAAU7B,GAClB,cAAgBA,EAAEoF,OAAS+G,EAAEnM,EAAEsF,YAAY,SAAUtF,GACnDA,EAAE6L,WAAalK,EAAE3B,EAAGa,MAClBsL,EAAEnM,EAAEuF,cAAc,SAAUvF,GAC9BA,EAAE6L,WAtDR,SAAW7L,GACTb,EAAEa,GAAIqE,EAAErE,GAAG,SAAUA,GACnBb,EAAEa,MAoDe6C,CAAE7C,UAEjBsG,EAAEmF,KAAO1I,QAAQqJ,WAYvB,SAAS9H,EAAEtE,GACT,IAAKA,EAAEqM,WAAY,CACjB,IAAI1K,EAAI,IAAI0G,iBAAiBjJ,EAAEkB,KAAKY,KAAMlB,IAC1C2B,EAAEgF,QAAQ3G,EAAG,CACX8G,WAAW,EACX9B,SAAS,IACPhF,EAAEqM,WAAa1K,GAIvB,SAASzC,EAAEc,GACTA,EAAImB,OAAO2J,KAAK9K,GAAIsG,EAAEmF,KAAO1I,QAAQkJ,MAAM,oBAAqBjM,EAAEsM,QAAQR,MAAM,KAAKE,OAErFrK,EAAE3B,EADMA,IAAMmB,OAAO2J,KAAKnH,WACjBW,EAAEtE,GAAIsG,EAAEmF,KAAO1I,QAAQqJ,WAOlC,IAAI9F,EAAItG,EAAE8J,MACNzF,EAAIrE,EAAEmL,WACN/G,EAAIpE,EAAEkL,gBACN/F,EAAIhE,OAAOkH,iBAAiBC,eAAiBhC,EAAE,qBACnDtG,EAAEuM,qBAAuBpH,EAAGnF,EAAEwM,qBAAuBrH,EACrD,IAAIU,GAAI,EACJC,EAAI,GACJqG,EAAIjJ,MAAMxC,UAAUmB,QAAQ5C,KAAKqB,KAAK4C,MAAMxC,UAAUmB,SACtD4K,EAAIC,QAAQhM,UAAUiM,iBAC1BF,IAAMC,QAAQhM,UAAUiM,iBAAmB,WACzC,IAAI3M,EAAIyM,EAAExN,KAAKiC,MACf,OAAOC,OAAO0I,eAAe+C,YAAY1L,MAAOlB,IAC9CA,EAAE4M,YA7EN,SAAW5M,GACT,GAAIA,EAAE4K,aAAe5K,EAAE4K,WAAWiC,UAAW,CAC3CvG,EAAEmF,KAAO1I,QAAQ+J,IAAI,6BAA8B9M,EAAE6L,WAErD,IAAK,IAAIlK,EAAI3B,EAAE4K,WAAYjJ,GACzB2C,EAAE3C,GAAIA,EAAIA,EAAEkJ,kBAwEK7K,EAAE+M,oBAhBzB,SAAW/M,GACToE,EAAEpE,EAAGd,IAe2Cc,EAAEgN,gBAAkB9N,EAAGc,EAAEiN,eAAiBnO,EAAGkB,EAAEkN,WAAavL,EAAG3B,EAAEmN,SAAWtM,EAAGb,EAAEyE,YAzCnI,SAAWzE,GACT,KAAKA,EAAImB,OAAO2J,KAAK9K,MAAUA,EAAImB,OAAO2J,KAAKnH,WAAY3D,EAAE8E,YAC3D9E,EAAIA,EAAE8E,WAGR,IAAInD,EAAI3B,EAAEqM,WACV1K,IAAMvC,EAAEY,EAAG2B,EAAE8C,eAAgB7E,SAoC7BuB,OAAO0I,eAAeE,WAAU,SAAU/J,GAS5C,SAASO,EAAEoB,EAAGpB,EAAGhB,GACf,OAAOsB,EAAEuK,SAAWrI,QAAQkJ,MAAM,WAAYtK,EAAEkK,WAAYtL,EAAE6M,IAAMzL,EAAE0L,aAAa,KAAM9M,EAAE6M,IAAKtO,EAAE6C,EAAGpB,GAAIoB,EAAE0J,cAAe,EAiB5H,SAAWrL,GACTA,EAAEsN,iBAAmBtN,EAAEsN,kBAlBuG1N,CAAE+B,GAAIpC,GAAKS,EAAEmN,SAASxL,GAAI3B,EAAEiN,eAAetL,EAAGpC,GAAIsB,EAAEuK,SAAWrI,QAAQqJ,WAAYzK,EAGnN,SAAS7C,EAAEkB,EAAG2B,GACZnC,OAAO+N,WAGT,SAAWvN,EAAG2B,EAAGpB,GACf,IAAK,IAAIzB,EAAI,GAAIS,EAAIoC,EAAGpC,IAAMgB,GAAKhB,IAAMiO,YAAY9M,WAAY,CAC/D,IAAK,IAAId,EAAGiB,EAAIrB,OAAOiO,oBAAoBlO,GAAImD,EAAI,EAAG9C,EAAIiB,EAAE6B,GAAIA,IAC9D5D,EAAEc,KAAOJ,OAAOC,eAAeO,EAAGJ,EAAGJ,OAAOkO,yBAAyBnO,EAAGK,IAAKd,EAAEc,GAAK,GAGtFL,EAAIC,OAAOmO,eAAepO,IAToBA,CAAES,EAAG2B,EAAEjB,UAAWiB,EAAEiM,QAAjD5N,EAAEuN,UAAY5L,EAAEjB,UAiBrC,IAAIG,EAAIb,EAAE8J,MACV9J,EAAEoL,QA/BF,SAAWzJ,EAAG7C,GACZ,GAAI,aAAe6C,EAAEkK,WAAa1K,OAAO0M,qBAAuBA,oBAAoBC,UAAYD,oBAAoBC,SAASnM,IAAKA,EAAE0J,cAAgB1J,EAAE6I,WAAaC,KAAKC,aAAc,CACpL,IAAInL,EAAIoC,EAAEoM,aAAa,MACnBnO,EAAII,EAAEgO,wBAAwBrM,EAAEkK,YAAc7L,EAAEgO,wBAAwBzO,GAC5E,GAAIK,IAAML,GAAKK,EAAEqO,KAAOtM,EAAEkK,YAActM,IAAMK,EAAEsO,SAAU,OAAO3N,EAAEoB,EAAG/B,EAAGd,KA2B9DkB,EAAEmO,sBAAwB5N,EAAGP,EAAEoO,mBAAqBtP,KACjEqC,OAAO0I,eAAeE,WAAU,SAAU/J,GAU5C,SAASO,EAAEP,GACT,IAAKA,EAAEqN,aAAagB,YAAa,CAC/B,IAAI1M,EAAI3B,EAAEqN,aAEVrN,EAAEqN,aAAe,SAAUrN,EAAGO,GAC5BzB,EAAEG,KAAKiC,KAAMlB,EAAGO,EAAGoB,IAGrB,IAAIpB,EAAIP,EAAEsO,gBACVtO,EAAEsO,gBAAkB,SAAUtO,GAC5BlB,EAAEG,KAAKiC,KAAMlB,EAAG,KAAMO,IACrBP,EAAEqN,aAAagB,aAAc,GAIpC,SAASvP,EAAEkB,EAAG2B,EAAGpB,GACfP,EAAIA,EAAEuO,cACN,IAAIzP,EAAIoC,KAAK6M,aAAa/N,GAC1BO,EAAEuB,MAAMZ,KAAMa,WACd,IAAIxC,EAAI2B,KAAK6M,aAAa/N,GAC1BkB,KAAKsN,0BAA4BjP,IAAMT,GAAKoC,KAAKsN,yBAAyBxO,EAAGlB,EAAGS,GASlF,SAASK,EAAEI,GACT,IAAI2B,EAAIxC,EAAEa,GACV,OAAO2B,EAAI/B,EAAE+B,EAAEuM,SAASO,OAAO,CAAC9M,IAAM,GAgCxC,SAASxC,EAAEa,GACT,OAAOA,EAAI6F,EAAE7F,EAAEuO,oBAAiB,EAOlC,SAASlM,EAAErC,GACT,OAAO,WACL,OAdJ,SAAWA,GACT,OAAOsG,EAAE6F,EAAEnM,EAAEiO,KAAMjO,GAaV6C,CAAE7C,IAQb,SAASZ,EAAEY,EAAG2B,GACZ3B,IAAMA,EAAIA,EAAEuO,eAAgB5M,IAAMA,EAAIA,EAAE4M,eACxC,IAOIzP,EAPAyB,EAAIpB,EAAEwC,GAAK3B,GAEf,GAAIO,EAAG,CACL,GAAIP,GAAKO,EAAE0N,KAAOtM,GAAKpB,EAAE6M,GAAI,OAAO,IAAI7M,EAAEmO,KAC1C,IAAK/M,IAAMpB,EAAE6M,GAAI,OAAO,IAAI7M,EAAEmO,KAIhC,OAAO/M,IAAK7C,EAAIM,EAAEY,IAAMqN,aAAa,KAAM1L,GAAI7C,IAAMA,EAAIqN,EAAEnM,GAAIA,EAAEwB,QAAQ,MAAQ,GAAK6C,EAAEvF,EAAG0O,aAAc1O,GAG3G,SAASiH,EAAE/F,EAAG2B,GACZ,IAAIpB,EAAIP,EAAE2B,GAEV3B,EAAE2B,GAAK,WACL,IAAI3B,EAAIO,EAAEuB,MAAMZ,KAAMa,WACtB,OAAOsE,EAAErG,GAAIA,GAIjB,IAAIsE,EACApF,GAAKc,EAAEkK,KAAMlK,EAAE+M,qBACf1G,EAAIrG,EAAEkN,WACN5G,EAAItG,EAAEmO,sBACN9J,EAAIrE,EAAEoO,mBACNhK,EAAIpE,EAAEmK,UACNhF,EAAI,CAAC,iBAAkB,gBAAiB,YAAa,gBAAiB,gBAAiB,mBAAoB,iBAAkB,iBAC7HU,EAAI,GACJC,EAAI,+BACJqG,EAAIxI,SAASgL,cAAcrO,KAAKqD,UAChC8I,EAAI9I,SAASiL,gBAAgBtO,KAAKqD,UACtCW,EAAI9E,OAAO+N,WAAanJ,EAAI,SAAUpE,EAAG2B,GACvC,OAAO3B,aAAa2B,GAClB,SAAU3B,EAAG2B,GACf,GAAI3B,aAAa2B,EAAG,OAAO,EAE3B,IAAK,IAAIpB,EAAIP,EAAGO,GAAI,CAClB,GAAIA,IAAMoB,EAAEjB,UAAW,OAAO,EAC9BH,EAAIA,EAAEgN,UAGR,OAAO,GACNxH,EAAE0E,KAAK/J,UAAW,aAAcqF,EAAEpC,SAAU,cAAeA,SAASC,gBAtIvE,SAAWjC,EAAG7C,GACZ,IAAI+D,EAAI/D,GAAK,GACb,IAAK6C,EAAG,MAAM,IAAIkN,MAAM,qEACxB,GAAIlN,EAAEH,QAAQ,KAAO,EAAG,MAAM,IAAIqN,MAAM,uGAAyGtI,OAAO5E,GAAK,MAC7J,GA4BF,SAAW3B,GACT,IAAK,IAAI2B,EAAI,EAAGA,EAAIwD,EAAExC,OAAQhB,IAC5B,GAAI3B,IAAMmF,EAAExD,GAAI,OAAO,EA9BrBpC,CAAEoC,GAAI,MAAM,IAAIkN,MAAM,oFAAsFtI,OAAO5E,GAAK,gCAC5H,GAAIxC,EAAEwC,GAAI,MAAM,IAAIkN,MAAM,+CAAiDtI,OAAO5E,GAAK,2BACvF,OAAOkB,EAAEnC,YAAcmC,EAAEnC,UAAYlB,OAAOY,OAAOoN,YAAY9M,YAAamC,EAAEiM,OAASnN,EAAE4M,cAAe1L,EAAEqL,UAAYrL,EAAEqL,QAAUrL,EAAEqL,QAAQK,eAAgB1L,EAAEkM,UAAYlM,EAAEkM,WAAa,GAAIlM,EAAEmM,SAAWpP,EAAEiD,EAAEqL,SAqChN,SAAWlO,GACT,IAAK,IAAI2B,EAAGpB,EAAIP,EAAEkO,QAASpP,EAAI,EAAG6C,EAAI3B,EAAEgP,SAASlQ,GAAIA,IACnDyB,EAAIoB,EAAEyL,IAAMzL,EAAEsM,IAGhBjO,EAAEiO,IAAM1N,GAAKP,EAAE8O,OAAQvO,IAAMP,EAAEoN,GAAKpN,EAAE8O,QA1CkLjO,CAAEgC,GA6C5N,SAAW7C,GACT,IAAKR,OAAO+N,UAAW,CACrB,IAAI5L,EAAI6L,YAAY9M,UAEpB,GAAIV,EAAEoN,GAAI,CACR,IAAI7M,EAAIoD,SAASgL,cAAc3O,EAAEiO,KACjCtM,EAAInC,OAAOmO,eAAepN,GAG5B,IAAK,IAAIzB,EAAGS,EAAIS,EAAEU,UAAWd,GAAI,EAAIL,GACnCA,GAAKoC,IAAM/B,GAAI,IAAKd,EAAIU,OAAOmO,eAAepO,MAAUA,EAAEgO,UAAYzO,GAAIS,EAAIT,EAGhFc,GAAKmD,QAAQC,KAAKhD,EAAEiO,IAAM,+CAAiDjO,EAAEoN,IAAKpN,EAAE4N,OAASjM,GA1D+He,CAAEG,GAAItC,EAAEsC,EAAEnC,WAsE1O,SAAWV,EAAG2B,GACZkE,EAAE7F,GAAK2B,EAvE6O5C,CAAE8D,EAAEiM,OAAQjM,GAAIA,EAAE6L,KAAOrM,EAAEQ,GAAIA,EAAE6L,KAAKhO,UAAYmC,EAAEnC,UAAWmC,EAAEnC,UAAUO,YAAc4B,EAAE6L,KAAM1O,EAAEiP,OAAS/P,EAAEyE,UAAWd,EAAE6L,MAgIrR/K,SAASgL,cAAgBvP,EAAGuE,SAASiL,gBAhDjI,SAAW5O,EAAG2B,EAAGpB,GACf,OAAOP,IAAM8F,EAAI1G,EAAEuC,EAAGpB,GAAKkM,EAAEzM,EAAG2B,IA+CoH3B,EAAEkP,SAAWrJ,EAAG7F,EAAEmP,WAAa7K,EAAGtE,EAAEoP,gBAAkBjK,EAAGnF,EAAEgO,wBAA0B7O,EAAGwE,SAASyG,SAAWzG,SAASC,mBACzQ,SAAU5D,GACZ,SAAS2B,IACP/B,EAAEuB,OAAO2J,KAAKnH,WAAYxC,OAAO0I,eAAeoF,OAAQ,GAEhD9N,OAAOsH,uBAAyB,SAAUzI,GAChD4C,WAAW5C,EAAG,OAGd,WACA4C,YAAW,WACTzB,OAAO0I,eAAewF,UAAYvL,KAAKC,MAAO5C,OAAOkJ,cAAgBlJ,OAAO0I,eAAeyF,QAAUnO,OAAO0I,eAAewF,UAAYlO,OAAOkJ,YAAYgF,WAAY1L,SAAS4L,cAAc,IAAIhG,YAAY,qBAAsB,CACjOG,SAAS,WAMjB,IAAInJ,EAAIP,EAAEmK,UACNrL,EAAIkB,EAAEgK,kBAEV,GAAIhK,EAAEkK,KAAM3J,EAAG,CACb,IAAIhB,EAAI,aAERS,EAAE4M,YAAcrN,EAAGS,EAAEoL,QAAU7L,EAAGS,EAAEkN,WAAa3N,EAAGS,EAAE+M,oBAAsBxN,EAAGS,EAAEiN,eAAiB1N,EAAGS,EAAEyE,YAAclF,EAAGS,EAAEmP,WAAa,SAAUnP,EAAG2B,GAClJ,OAAO3B,aAAa2B,QAEjB7C,IAEP,IAAIc,EAAII,EAAE+M,oBACNlM,EAAIb,EAAEgN,gBACV,GAAI7L,OAAO2J,OAAS3J,OAAOyF,mBAAqBzF,OAAO2J,KAAO3J,OAAOyF,kBAAkBC,aAAc1F,OAAOqO,OAASrO,OAAOyF,kBAAkB6I,gBAAkBtO,OAAO2J,KAAO3J,OAAOqO,OAAS,SAAUxP,GACtM,OAAOA,IACLmB,OAAOkJ,cAAgBlJ,OAAOkJ,YAAYqF,qBAAuB,SAAU1P,GAC7EA,EAAEgL,QAAUnK,EAAEiK,KAAK9K,EAAEgL,WACnB,aAAerH,SAASgM,YAAc3P,EAAE8J,MAAM8F,MAAOjO,SAAS,GAAI,gBAAkBgC,SAASgM,YAAcxO,OAAO0O,aAAe1O,OAAOkJ,cAAgBlJ,OAAOkJ,YAAY4E,MAAO,CACpL,IAAIvM,EAAIvB,OAAOkJ,cAAgBlJ,OAAOkJ,YAAY4E,MAAQ,oBAAsB,mBAChF9N,OAAOqF,iBAAiB9D,EAAGf,QACtBA,IArCL,CAsCFR,OAAO0I,kBACT5K,KAAKiC,MAAO,aAAejC,KAAKiC,MAAO,YAEvC,YACE,WACEA,KAAK4O,KAAO,CACVC,QAAS,QACTC,iBAAkB,SAClBC,mBAAoB,OACpBC,6BAA8B,SAC9BC,QAAS,CACPC,qBAAsB,kBAAkBlK,KAAKC,UAAUC,WACvDiK,qBAAsB,iBAAiBnK,KAAKC,UAAUC,WACtDkK,oBAAqB,WACnB,IAAItQ,EAAG2B,EAAM7C,EACb,GAAI,oBAAsByR,WAAY,OAAO,EAE7C,IAAmDvQ,EAAI,EAAG2B,GAArD7C,EAAI,CAAC,OAAQ,kBAAmB,cAA2B6D,OAAQhB,EAAI3B,EAAGA,IAC7E,KAAQlB,EAAEkB,KAAWuQ,WAAW7P,WAAY,OAAO,EAGrD,OAAO,EARY,IAWvB8P,OAAQ,MAETvR,KAAKiC,QACPjC,KAzBKiC,MA0BR,IAAIS,EA1BIT,KA0BE4O,MACV,YACE,WACEnO,EAAE8O,YAAc,WACd,SAASzQ,KAET,IAAI2B,EAAGpB,EAAGzB,EACV,OAAOkB,EAAE0Q,YAAc,SAAU1Q,GAC/B,IAAIlB,EAAGS,EAAGK,EAAGiB,EAAG6B,EAChB,OAAO9C,EAAIW,EAAEP,GAAIlB,EAAIc,EAAEP,KAAMwB,EAAIjB,EAAE+Q,SAAUjO,EAAI9C,EAAEgR,WAAYrR,EAAIK,EAAEiR,SAAU3P,KAAKR,UAAU5B,GAAK,WACjG,IAAIkB,EAAGO,EACP,OAAOP,EAAI,MAAQa,EAAItB,EAAI,mBAAqB2B,KAAKL,GAAKK,KAAKL,UAAO,EAASK,KAAKL,KAAO,MAAQ6B,EAAIxB,KAAKwB,QAAK,EAAQnD,EAAoC,OAA/BgB,EAAI,MAAQP,EAAIA,EAAElB,QAAK,GAAoB6C,EAAE1C,KAAKsB,EAAGP,EAAG+B,gBAAa,GAAWxB,EAAIP,EAAElB,GAAI6C,EAAE1C,KAAKsB,EAAGP,EAAG+B,cAEtOxB,EAAI,SAAWP,GAChB,IAAI2B,EAAGpB,EACP,KAAMA,EAAIP,EAAE8Q,MAAMhS,IAAK,MAAM,IAAI+P,MAAM,wCAA0C7O,GACjF,OAAO2B,EAAI,CACTtC,KAAMkB,EAAE,IACP,MAAQA,EAAE,GAAKoB,EAAEgP,SAAWpQ,EAAE,GAAKoB,EAAEiP,WAAarQ,EAAE,GAAI,MAAQA,EAAE,KAAOoB,EAAEkP,UAAW,GAAKlP,GAC7FA,EAAIoP,SAASrQ,UAAUoB,MAAOhD,EAAI,6BAA8BkB,EAhBrD,KAkBff,KAAKiC,MAAO,WACb,IAAIlB,EAAI,SAAWgR,EAAIrP,GACrB,SAAS7C,IACPoC,KAAKD,YAAc+P,EAGrB,IAAK,IAAIzR,KAAKoC,EACZpB,EAAEtB,KAAK0C,EAAGpC,KAAOyR,EAAGzR,GAAKoC,EAAEpC,IAG7B,OAAOT,EAAE4B,UAAYiB,EAAEjB,UAAWsQ,EAAGtQ,UAAY,IAAI5B,EAAKkS,EAAGC,UAAYtP,EAAEjB,UAAWsQ,GAEpFzQ,EAAI,GAAGI,eAEXgB,EAAEnC,OAAS,SAAUe,GACnB,SAASzB,IACPoC,KAAKgQ,KAAO3R,EAGd,IAAIA,EACJ,OAAOS,EAAElB,EAAGyB,GAAIhB,EAAI,EAAGT,EAAEqS,eAAiB,SAAUnR,GAClD,OAAOkB,KAAKkQ,SAASC,KAAKC,MAAMtR,KAC/BlB,EAAE4B,UAAU6Q,qBAAuB,SAAUvR,GAC9C,OAAOkB,KAAKD,eAAiB,MAAQjB,EAAIA,EAAEiB,iBAAc,IACxDnC,EAAE4B,UAAU8Q,UAAY,SAAUxR,GACnC,OAAOkB,OAASlB,GACflB,EAAE4B,UAAU+Q,QAAU,WACvB,IAAIzR,EAAG2B,EAAGpB,EACV,OAAOP,EAAI,WACT,IAAIA,EAAGlB,EAAGS,EAGV,IAAKoC,KAFoDpC,EAAI,GAA7DT,EAAI,OAASkB,EAAIkB,KAAKwQ,yBAA2B1R,EAAI,GAGnDO,EAAIzB,EAAE6C,GAAIpC,EAAEmC,KAAKC,EAAI,IAAMpB,GAG7B,OAAOhB,GACPN,KAAKiC,MAAO,KAAOA,KAAKD,YAAY5B,KAAO,IAAM6B,KAAKgQ,IAAMlR,EAAE2C,OAAS,IAAM3C,EAAE2R,KAAK,MAAQ,IAAM,KACnG7S,EAAE4B,UAAUgR,sBAAwB,aAAgB5S,EAAE4B,UAAUkR,aAAe,WAChF,OAAOP,KAAKQ,UAAU3Q,OACrBpC,EAAE4B,UAAUoR,cAAgB,WAC7B,OAAOnQ,EAAEoQ,YAAYC,IAAI9Q,OACxBpC,EAAE4B,UAAUuR,YAAc,WAC3B,OAAO/Q,KAAKgQ,GAAGgB,YACdpT,EA9BM,CA+BT6C,EAAE8O,cACJxR,KAAKiC,MAAO,WACZS,EAAEwQ,OAAS,SAAUnS,GACnB,IAAI2B,EAAGpB,EAEP,IAAKoB,KAAK3B,EACRO,EAAIP,EAAE2B,GAAIT,KAAKS,GAAKpB,EAGtB,OAAOW,OAETjC,KAAKiC,MAAO,WACZS,EAAEwQ,OAAO,CACPC,MAAO,SAAepS,GACpB,OAAO4C,WAAW5C,EAAG,OAGzBf,KAAKiC,MAAO,WACZ,IAAIlB,EAAGO,EACPoB,EAAEwQ,OAAO,CACPE,gBAAiB,SAAyBrS,GACxC,OAAOA,EAAEsS,QAAQC,OAAO,GAAK5Q,EAAEqO,iBAAkB,KAAM,IAAIsC,QAAQC,OAAO,GAAK5Q,EAAEsO,mBAAoB,KAAM,MAE7GuC,kBAAmB,SAA2BxS,GAC5C,OAAOA,EAAEsS,QAAQ,QAAS,OAE5BG,2BAA4BF,OAAO,QAAU5Q,EAAEsO,mBAAqB,KACpEyC,0BAA2B,SAAmC1S,GAC5D,OAAOA,EAAEsS,QAAQC,OAAO,GAAK5Q,EAAE8Q,2BAA2BE,OAAQ,KAAM,KAAKL,QAAQ,UAAW,MAElGM,sBAAuB,SAA+B5S,EAAGlB,GACvD,IAAIS,EAAGK,EAAGiB,EAAG6B,EACb,OAAO1C,EAAI2B,EAAEoQ,YAAYC,IAAIhS,IAAIlB,EAAI6C,EAAEoQ,YAAYC,IAAIlT,IAAM6D,OAAS3C,EAAE2C,QAAuBD,GAAb9C,EAAIW,EAAEP,EAAGlB,IAAU,GAAIS,EAAIK,EAAE,KAAoBL,GAAbsB,EAAIN,EAAEzB,EAAGkB,IAAU,GAAI0C,EAAI7B,EAAE,IAAK,CACtJgS,MAAOtT,EACPuT,QAASpQ,MAGXnC,EAAI,SAAWwS,EAAIjU,GACrB,IAAIS,EAAGK,EAAGiB,EAAG6B,EAAGG,EAChB,OAAOkQ,EAAGvB,UAAU1S,GAAK,CAAC,GAAI,KAA+C+B,GAA1B6B,GAAd9C,EAAII,EAAE+S,EAAIjU,IAAUkU,YAAYrQ,SAAiBE,EAAIjD,EAAEqT,OAAW1T,EAAIwT,EAAGG,WAAW/P,MAAM,EAAGN,GAAG4L,OAAOsE,EAAGG,WAAW/P,MAAMN,EAAIH,IAAK1C,EAAElB,EAAG6C,EAAEoQ,YAAYoB,eAAe5T,KAAOS,EAAElB,EAAGiU,GAAK,CAACnT,EAAEoT,YAAYd,WAAYrR,EAAEmS,YAAYd,cACpQlS,EAAI,SAAWoT,EAAKzR,GACrB,IAAIpB,EAAGzB,EAAGS,EAEV,IAAKgB,EAAI,EAAGzB,EAAIsU,EAAIzQ,OAAQpD,EAAIoC,EAAEgB,OAAQ7D,EAAIyB,GAAK6S,EAAIC,OAAO9S,GAAGiR,UAAU7P,EAAE0R,OAAO9S,KAClFA,IAGF,KAAOzB,EAAIyB,EAAI,GAAK6S,EAAIC,OAAOvU,EAAI,GAAG0S,UAAU7P,EAAE0R,OAAO9T,EAAI,KAC3DT,IAAKS,IAGP,MAAO,CACLyT,YAAaI,EAAIjQ,MAAM5C,EAAGzB,GAC1BmU,OAAQ1S,KAGZtB,KAAKiC,MAAO,WACZS,EAAEwQ,OAAO,CACPmB,WAAY,SAAoBtT,GAC9B,IAAI2B,EAAGpB,EAAGzB,EAGV,IAAK6C,KAFL,MAAQ3B,IAAMA,EAAI,IAAKO,EAAI,GAEjBP,EACRlB,EAAIkB,EAAE2B,GAAIpB,EAAEoB,GAAK7C,EAGnB,OAAOyB,GAETgT,gBAAiB,SAAyBvT,EAAG2B,GAC3C,IAAIpB,EACJ,GAAI,MAAQP,IAAMA,EAAI,IAAK,MAAQ2B,IAAMA,EAAI,IAAKnC,OAAOgU,KAAKxT,GAAG2C,SAAWnD,OAAOgU,KAAK7R,GAAGgB,OAAQ,OAAO,EAE1G,IAAKpC,KAAKP,EACR,GAAQA,EAAEO,KAAUoB,EAAEpB,GAAI,OAAO,EAGnC,OAAO,MAGXtB,KAAKiC,MAAO,WACZ,IAAIlB,EAAI,GAAGmD,MACXxB,EAAEwQ,OAAO,CACPsB,eAAgB,SAAwBzT,EAAG2B,GACzC,IAAIpB,EAAGzB,EAAGS,EACV,GAAI,MAAQS,IAAMA,EAAI,IAAK,MAAQ2B,IAAMA,EAAI,IAAK3B,EAAE2C,SAAWhB,EAAEgB,OAAQ,OAAO,EAEhF,IAAK7D,EAAIyB,EAAI,EAAGhB,EAAIS,EAAE2C,OAAQpD,EAAIgB,EAAGzB,IAAMyB,EACzC,GAAQP,EAAElB,KAAU6C,EAAE7C,GAAI,OAAO,EAGnC,OAAO,GAET4U,gBAAiB,SAAyB1T,EAAGO,GAC3C,OAAO,MAAQP,IAAMA,EAAI,IAAK,MAAQO,IAAMA,EAAI,IAAKoB,EAAE8R,eAAezT,EAAEmD,MAAM,EAAG5C,EAAEoC,QAASpC,IAE9FoT,YAAa,WACX,IAAIhS,EAAGpB,EAAGzB,EACV,OAAOyB,EAAIwB,UAAU,GAAIJ,EAAI,GAAKI,UAAUY,OAAS3C,EAAEf,KAAK8C,UAAW,GAAK,IAAIjD,EAAIyB,EAAE4C,MAAM,IAAMvB,OAAOE,MAAMhD,EAAG6C,GAAI7C,GAExH8U,qBAAsB,SAA8B5T,EAAG2B,GACrD,IAAIpB,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAG6B,EAAGG,EAAG1D,EAAGJ,EAAGsD,EAAGzB,EAElC,IAAK,MAAQZ,IAAMA,EAAI,IAAK,MAAQ2B,IAAMA,EAAI,IAAKpB,EAAI,GAAI8B,EAAI,GAAI9C,EAAI,IAAI6B,IAAOxB,EAAI,EAAGiD,EAAI7C,EAAE2C,OAAQE,EAAIjD,EAAGA,IAC5GgB,EAAIZ,EAAEJ,GAAIL,EAAEkC,IAAIb,GAGlB,IAAK9B,EAAI,IAAIsC,IAAOP,EAAI,EAAG1B,EAAIwC,EAAEgB,OAAQxD,EAAI0B,EAAGA,IAC9CD,EAAIe,EAAEd,GAAI/B,EAAE2C,IAAIb,GAAIrB,EAAEgC,IAAIX,IAAML,EAAEmB,KAAKd,GAGzC,IAAK8B,EAAI,EAAG3D,EAAIiB,EAAE2C,OAAQ5D,EAAI2D,EAAGA,IAC/B9B,EAAIZ,EAAE0C,GAAI5D,EAAEyC,IAAIX,IAAMyB,EAAEX,KAAKd,GAG/B,MAAO,CACLiS,MAAOtS,EACPuS,QAASzQ,OAIfpD,KAAKiC,MAAO,WACZ,IAAIlB,EAAGO,EAAGzB,EAAGS,EACbS,EAAI,KAAMO,EAAI,KAAMhB,EAAI,KAAMT,EAAI,KAAM6C,EAAEwQ,OAAO,CAC/C0B,qBAAsB,WACpB,OAAO,MAAQ7T,EAAIA,EAAIA,EAAI2B,EAAEmS,wBAAwBrF,OAAO9M,EAAEoS,2BAEhEC,eAAgB,SAAwBhU,GACtC,OAAO2B,EAAE6O,OAAOyD,gBAAgBjU,IAElC+T,uBAAwB,WACtB,OAAO,MAAQxT,EAAIA,EAAIA,EAAIf,OAAOgU,KAAK7R,EAAE6O,OAAOyD,kBAElDC,cAAe,SAAuBlU,GACpC,OAAO2B,EAAE6O,OAAO2D,eAAenU,IAEjC8T,sBAAuB,WACrB,OAAO,MAAQvU,EAAIA,EAAIA,EAAIC,OAAOgU,KAAK7R,EAAE6O,OAAO2D,iBAElDC,sBAAuB,WACrB,IAAIpU,EAAGO,EACP,OAAO,MAAQzB,EAAIA,EAAIA,EAAI,WACzB,IAAIA,EAAGS,EAGP,IAAKS,KAFyBT,EAAI,GAAlCT,EAAI6C,EAAE6O,OAAOyD,gBAGa,OAAxB1T,EAAIzB,EAAEkB,GAAGqU,gBAA4B9U,EAAEmC,KAAKnB,GAG9C,OAAOhB,EARkB,OAY/BN,KAAKiC,MAAO,WACZ,IAAIlB,EACAO,EACAzB,EACAS,EACAK,EACAiB,EAAI,GAAGW,SAAW,SAAUxB,GAC9B,IAAK,IAAI2B,EAAI,EAAGpB,EAAIW,KAAKyB,OAAQpC,EAAIoB,EAAGA,IACtC,GAAIA,KAAKT,MAAQA,KAAKS,KAAO3B,EAAG,OAAO2B,EAGzC,OAAQ,GAGV3B,EAAI2D,SAAS2Q,gBAAiB/T,EAAI,OAASzB,EAAI,OAASS,EAAI,OAASK,EAAII,EAAEuU,iBAAmB3U,EAAII,EAAEwU,uBAAyBjV,EAAIS,EAAEyU,mBAAqB3V,EAAIkB,EAAE0U,mBAAoB/S,EAAEwQ,OAAO,CACzLvK,YAAa,SAAqBrH,EAAGzB,GACnC,IAAOc,EAAG+U,EAAIjS,EAAGG,EAAG1D,EAAGJ,EAAGsD,EAAGzB,EAAGxB,EAAG2G,EAAGzB,EAEtC,OAA+BnF,GAAxBkD,EAAI,MAAQvD,EAAIA,EAAI,IAAU8V,UAAW/R,EAAIR,EAAEwS,iBAAkBvQ,EAAIjC,EAAEyS,aAAcpS,EAAIL,EAAE0S,QAAShW,EAAIsD,EAAE6G,eAAgB9J,EAAIiD,EAAE2S,MAAOpV,EAAI,MAAQT,EAAIA,EAAIa,EAAGY,EAAIiC,EAAOyB,EAAGyB,EAAI,cAAgBrD,EAAGiS,EAAK,SAAW3U,GACxN,IAAIO,EACJ,OAAO,MAAQnB,GAAK,MAAQA,GAAKuV,EAAGM,UAEhC,OAF2C1U,EAAIoB,EAAEuT,2BAA2BlV,EAAEqF,OAAQ,CACxFwP,iBAAkBjU,OACF,MAAQ0D,GAAKA,EAAErF,KAAKsB,EAAGP,EAAGO,GAAIxB,GAAKiB,EAAEkJ,sBAAmB,GACzEyL,EAAGM,QAAU,WACd,OAAOrV,EAAE8H,oBAAoBnH,EAAGoU,EAAI5O,IACnCnG,EAAE4G,iBAAiBjG,EAAGoU,EAAI5O,GAAI4O,GAEnCQ,gBAAiB,SAAyBnV,EAAGO,GAC3C,OAAO,MAAQA,IAAMA,EAAI,IAAKA,EAAEyU,MAAQ,EAAGrT,EAAEiG,YAAY5H,EAAGO,IAE9D6U,aAAc,SAAsB7U,EAAGzB,GACrC,IAAIS,EAAGK,EAAGiB,EAAG6B,EAAGG,EAAG1D,EAAGJ,EACtB,OAA+BI,GAAxBJ,EAAI,MAAQD,EAAIA,EAAI,IAAU8V,UAAWhV,EAAIb,EAAE2K,QAAS7I,EAAI9B,EAAEsK,WAAY9J,EAAIR,EAAEgI,WAAYrE,EAAI,MAAQvD,EAAIA,EAAIa,EAAGJ,GAAU,IAANA,EAAUiB,GAAU,IAANA,GAAUgC,EAAIc,SAASqF,YAAY,WAAaC,UAAU1I,EAAGX,EAAGiB,GAAI,MAAQtB,GAAKoC,EAAEwQ,OAAOlT,KAAK4D,EAAGtD,GAAImD,EAAE6M,cAAc1M,IAEpQwS,uBAAwB,SAAgCrV,EAAG2B,GACzD,OAAO,KAAO,MAAQ3B,EAAIA,EAAEwK,cAAW,GAAUjK,EAAEtB,KAAKe,EAAG2B,QAAK,GAElEuT,2BAA4B,SAAoClV,EAAGO,GACjE,IAAIzB,EAAGS,EAAGK,EAEV,IAA6Bd,GAAxBS,EAAI,MAAQgB,EAAIA,EAAI,IAAUsU,iBAAkBjV,EAAIL,EAAE+V,UAAW,MAAQtV,GAAKA,EAAEwK,WAAaC,KAAKC,cACrG1K,EAAIA,EAAE8E,WAGR,GAAI,MAAQ9E,EAAG,CACb,GAAI,MAAQlB,EAAG,OAAOkB,EACtB,GAAIA,EAAEuV,SAAW,MAAQ3V,EAAG,OAAOI,EAAEuV,QAAQzW,GAE7C,KAAOkB,GAAKA,IAAMJ,GAAI,CACpB,GAAI+B,EAAE0T,uBAAuBrV,EAAGlB,GAAI,OAAOkB,EAC3CA,EAAIA,EAAE8E,cAIZ0Q,iBAAkB,SAA0BxV,GAC1C,KAAO,MAAQA,EAAIA,EAAEsK,uBAAoB,GACvCtK,EAAIA,EAAEsK,kBAGR,OAAOtK,GAETyV,qBAAsB,SAA8BzV,GAClD,OAAO2D,SAAS+R,gBAAkB1V,GAAK2B,EAAEgU,oBAAoB3V,EAAG2D,SAAS+R,gBAE3EC,oBAAqB,SAA6B3V,EAAG2B,GACnD,GAAI3B,GAAK2B,EAAG,KAAOA,GAAI,CACrB,GAAIA,IAAM3B,EAAG,OAAO,EACpB2B,EAAIA,EAAEmD,aAGV8Q,+BAAgC,SAAwC5V,EAAG2B,GACzE,IAAIpB,EACJ,GAAIP,EAAG,OAAOA,EAAEwK,WAAaC,KAAKoL,UAAY7V,EAAI,IAAM2B,EAAI,OAASpB,EAAIP,EAAEuK,YAAchK,EAAIP,EAAIA,EAAE8V,WAAWC,KAAKpU,EAAI,IAEzHqU,kCAAmC,SAA2ChW,EAAGO,GAC/E,IAAIzB,EACJ,OAAOA,EAAI6C,EAAEiU,+BAA+B5V,EAAGO,GAAIoB,EAAEuT,2BAA2BpW,IAElFmX,qBAAsB,SAA8BjW,GAClD,IAAI2B,EAEJ,GAAI,MAAQ3B,EAAIA,EAAE8E,gBAAa,EAAQ,CACrC,IAAKnD,EAAI,EAAG3B,EAAIA,EAAEwF,iBAChB7D,IAGF,OAAOA,IAGXuU,WAAY,SAAoBlW,GAC9B,IAAI2B,EACJ,OAAO,MAAQ3B,GAAK,OAAS2B,EAAI3B,EAAE8E,YAAcnD,EAAEwU,YAAYnW,QAAK,GAEtEoW,SAAU,SAAkBpW,EAAG2B,GAC7B,IAAIpB,EAAGzB,EAAGS,EAAGK,EAAGiB,EAChB,OAA+B/B,GAAxBS,EAAI,MAAQoC,EAAIA,EAAI,IAAU0U,gBAAiBzW,EAAIL,EAAE+W,YAAa/V,EAAIhB,EAAEgX,uBAAwB1V,EAAI,WACzG,OAAQ/B,GACN,IAAK,UACH,OAAO0X,WAAWC,aAEpB,IAAK,OACH,OAAOD,WAAWE,UAEpB,IAAK,UACH,OAAOF,WAAWG,aAEpB,QACE,OAAOH,WAAWI,UAZmF,GActGjT,SAASkT,iBAAiB7W,EAAGa,EAAG,MAAQjB,EAAIA,EAAI,MAAY,IAANW,IAE7DuW,QAAS,SAAiB9W,GACxB,IAAI2B,EACJ,OAAO,MAAQ3B,GAAK,OAAS2B,EAAI3B,EAAE8W,SAAWnV,EAAE4M,mBAAgB,GAElEwI,YAAa,SAAqB/W,EAAG2B,GACnC,IAAIpB,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAG6B,EAAGG,EAAG1D,EAAGJ,EAAGsD,EAAGzB,EAAGxB,EAAG2G,EAAGzB,EAE3C,GAAI,MAAQ3C,IAAMA,EAAI,IAAK,UAAYb,EAAQd,GAAaA,GAAP2B,EAAI3B,GAAS8W,QAAWnV,EAAI,CAC/EoF,WAAYpF,GACXpC,EAAIoE,SAASgL,cAAc3O,GAAI,MAAQ2B,EAAEqV,WAAa,MAAQrV,EAAEoF,aAAepF,EAAEoF,WAAa,IAAKpF,EAAEoF,WAAWkQ,gBAAkBtV,EAAEqV,UAAWrV,EAAEoF,WAGlJ,IAAKrE,KAFL3D,EAAI4C,EAAEoF,WAGJzC,EAAIvF,EAAE2D,GAAInD,EAAE8N,aAAa3K,EAAG4B,GAIhC,GAAI3C,EAAEuV,MAGJ,IAAKxU,KAFLL,EAAIV,EAAEuV,MAGJ5S,EAAIjC,EAAEK,GAAInD,EAAE2X,MAAMxU,GAAK4B,EAI3B,GAAI3C,EAAE8E,KAGJ,IAAK/D,KAFL9B,EAAIe,EAAE8E,KAGJnC,EAAI1D,EAAE8B,GAAInD,EAAE4X,QAAQzU,GAAK4B,EAI7B,GAAI3C,EAAEyV,UAAW,IAAiCxX,EAAI,EAAGiD,GAAnCzD,EAAIuC,EAAEyV,UAAUtL,MAAM,MAAmBnJ,OAAQE,EAAIjD,EAAGA,IAC5Ed,EAAIM,EAAEQ,GAAIL,EAAE8X,UAAU5V,IAAI3C,GAE5B,GAAI6C,EAAE2V,cAAgB/X,EAAE+X,YAAc3V,EAAE2V,aAAc3V,EAAEmU,WAAY,IAAkCjV,EAAI,EAAG1B,GAApC4G,EAAI,GAAG0I,OAAO9M,EAAEmU,aAA0BnT,OAAQxD,EAAI0B,EAAGA,IAChIN,EAAIwF,EAAElF,GAAItB,EAAEgY,YAAYhX,GAE1B,OAAOhB,GAETiY,iBAAkB,WAChB,IAAIxX,EAAGO,EACP,OAAO,MAAQoB,EAAE8V,cAAgB9V,EAAE8V,cAAgB9V,EAAE8V,cAAgB,WACnE,IAAI3Y,EAAGS,EAGP,IAAKS,KAFyBT,EAAI,GAAlCT,EAAI6C,EAAE6O,OAAOyD,iBAGX1T,EAAIzB,EAAEkB,GAAG8W,UAAcvX,EAAEmC,KAAKnB,GAGhC,OAAOhB,EAR4D,IAWvEmY,qBAAsB,SAA8B1X,GAClD,OAAO2B,EAAEgW,wBAAwB,MAAQ3X,EAAIA,EAAEuK,gBAAa,IAE9DqN,6BAA8B,SAAsC5X,GAClE,IAAIO,EAAGzB,EACP,OAAOyB,EAAIoB,EAAEmV,QAAQ9W,GAAIa,EAAE5B,KAAK0C,EAAE6V,mBAAoBjX,IAAM,IAAMzB,EAAI6C,EAAEmV,QAAQ9W,EAAEuK,YAAa1J,EAAE5B,KAAK0C,EAAE6V,mBAAoB1Y,GAAK,IAEnI+Y,iBAAkB,SAA0B7X,EAAGO,GAE7C,OAAY,MAAQA,EAAIA,EAAI,CAC1BuX,QAAQ,IACPA,OAAYnW,EAAEgW,wBAAwB3X,GAAK2B,EAAEgW,wBAAwB3X,KAAO2B,EAAEgW,wBAAwB3X,EAAEuK,aAAe5I,EAAEiW,6BAA6B5X,IAE3J2X,wBAAyB,SAAiC3X,GACxD,OAAO2B,EAAEoW,kBAAkB/X,IAAM,WAAa,MAAQA,EAAIA,EAAEyG,UAAO,IAErEsR,kBAAmB,SAA2B/X,GAC5C,OAAQ,MAAQA,EAAIA,EAAEwK,cAAW,KAAYC,KAAKuN,cAEpDC,mBAAoB,SAA4BjY,EAAGO,GACjD,IAAIzB,EACJ,OAAOA,GAAK,MAAQyB,EAAIA,EAAI,IAAIlB,KAAMW,EAAI2B,EAAEuW,eAAelY,GAAKA,EAAEyG,OAAS9E,EAAEqO,kBAAmBlR,GAAIkB,EAAE8E,WAAWqS,QAAQgB,mBAAqBrZ,OAAS,EAAS6C,EAAEsW,mBAAmBjY,EAAEuK,iBAAc,GAEvM6N,wBAAyB,SAAiCpY,GACxD,OAAO2B,EAAE0T,uBAAuBrV,EAAG2B,EAAE0W,eAAeC,qBAEtDC,oBAAqB,SAA6BvY,GAChD,OAAO2B,EAAEuW,eAAelY,IAAM,MAAQ,MAAQA,EAAIA,EAAEyG,UAAO,IAE7DyR,eAAgB,SAAwBlY,GACtC,OAAQ,MAAQA,EAAIA,EAAEwK,cAAW,KAAYC,KAAKoL,cAGtD5W,KAAKiC,MAAO,WACZ,IAAIlB,EAAGO,EAAGzB,EAAGS,EAAGK,EAChBI,EAAI2B,EAAE2R,WAAY/T,EAAIoC,EAAE4R,gBAAiB5R,EAAEwQ,OAAO,CAChDqG,eAAgB1Z,EAAI,SAAWkB,GAC7B,IAAI2B,EACJ,GAAI,MAAQ3B,EAAG,OAAOkD,MAAMuV,QAAQzY,KAAOA,EAAI,CAACA,EAAGA,IAAK,CAACO,EAAEP,EAAE,IAAKO,EAAE,OAASoB,EAAI3B,EAAE,IAAM2B,EAAI3B,EAAE,MAEjG0Y,iBAAkB,SAA0B1Y,GAC1C,IAAI2B,EAAGpB,EAAGhB,EACV,GAAI,MAAQS,EAAG,OAAiBT,GAAVgB,EAAIzB,EAAEkB,IAAU,GAAI2B,EAAIpB,EAAE,GAAIX,EAAEL,EAAGoC,IAE3DgX,eAAgB,SAAwB3Y,EAAG2B,GACzC,IAAIpB,EAAGhB,EAAGsB,EAAG6B,EAAGG,EAAG1D,EACnB,GAAI,MAAQa,GAAK,MAAQ2B,EAAG,OAAiBpC,GAAVsB,EAAI/B,EAAEkB,IAAU,GAAIO,EAAIM,EAAE,GAAc1B,GAAVuD,EAAI5D,EAAE6C,IAAU,GAAIkB,EAAIH,EAAE,GAAI9C,EAAEL,EAAGJ,IAAMS,EAAEW,EAAGsC,MAE/GtC,EAAI,SAAWoB,GACjB,MAAO,iBAAmBA,EAAIA,EAAI3B,EAAE2B,IACnC/B,EAAI,SAAWI,EAAG2B,GACnB,MAAO,iBAAmB3B,EAAIA,IAAM2B,EAAIpC,EAAES,EAAG2B,KAE/C1C,KAAKiC,MAAO,WACZ,IAAIlB,EAAGO,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAG6B,EACtBf,EAAEiC,gBAAkB,SAAU5D,EAAG2B,GAC/B,IAAIpB,EAAGzB,EACP,OAAO,MAAQ6C,IAAMA,EAAI,IAAK3B,EAAIA,EAAEuO,cAAe5M,EAAIe,EAAEf,IAAepB,GAAXzB,EAAI+B,EAAEc,IAAWiX,qBAAuB9Z,EAAE8Z,WAAYrZ,EAAEgB,EAAGP,IAAKJ,EAAEI,EAAGlB,IACjIS,EAAI,SAAWS,EAAG2B,GAEnB,OAAW7C,EAAE6C,GAAM2V,YAActX,EAAEsS,QAAQ,MAAO3Q,IACjD7C,EAAI,SAAW6C,GAChB,IAAIpB,EAAGzB,EACP,OAAOyB,EAAIoD,SAASgL,cAAc,UAAYtB,aAAa,OAAQ,YAAa9M,EAAE8M,aAAa,gBAAiB1L,EAAE4M,gBAAiBzP,EAAIkB,MAAQO,EAAE8M,aAAa,QAASvO,GAAI6E,SAASkV,KAAKC,aAAavY,EAAGoD,SAASkV,KAAKtO,YAAahK,GACnOP,EAAI,WACL,IAAIA,EACJ,OAAQA,EAAIO,EAAE,mBAAqBA,EAAE,cAAgBP,EAAE+N,aAAa,gBAAa,GAChFxN,EAAI,SAAWP,GAChB,OAAO2D,SAASkV,KAAKE,cAAc,aAAe/Y,EAAI,MACrDa,EAAI,SAAWb,GAChB,IAAI2B,EAAGpB,EAAGzB,EAGV,IAAK6C,KAFLpB,EAAI,GAEMP,EACRlB,EAAIkB,EAAE2B,GAAIpB,EAAEoB,GAAK,mBAAqB7C,EAAI,CACxCiB,MAAOjB,GACLA,EAGN,OAAOyB,GACNmC,EAAI,WACL,IAAI1C,EACJ,OAAOA,EAAI,SAAWgZ,GACpB,IAAIrX,EAAGpB,EAAGzB,EAAGS,EAAGK,EAEhB,IAAK+B,EAAI,GAAiDpB,EAAI,EAAGhB,GAApDK,EAAI,CAAC,aAAc,UAAW,eAA4B+C,OAAQpD,EAAIgB,EAAGA,IAC1EoB,EAAV7C,EAAIc,EAAEW,IAAWyY,EAAIla,UAAWka,EAAIla,GAGtC,OAAO6C,GACNR,OAAOuC,eAAiB,SAAU/B,GACnC,IAAIpB,EAAGzB,EAAGS,EAAGK,EAAGiB,EAChB,OAAOA,EAAIb,EAAE2B,GAAIpC,EAAIsB,EAAEoY,WAAY1Y,EAAIM,EAAEqY,QAASpa,EAAI+B,EAAE0G,WAAYhI,IAAMK,EAAIW,EAAGA,EAAI,WACnF,OAAOW,KAAKiY,cAAgBjY,KAAKiY,aAAc,EAAI5Z,EAAEN,KAAKiC,OAAQ,MAAQtB,EAAIA,EAAEX,KAAKiC,WAAQ,IAC3FX,IAAMoB,EAAEyX,kBAAoB7Y,GAAIzB,IAAM6C,EAAE0X,qBAAuBva,GAAI6C,GACrE,SAAUA,GACZ,IAAIpB,EAAGzB,EAAGS,EAAGK,EACb,OAAiBL,GAAVK,EAAII,EAAE2B,IAAUsX,WAAY1Y,EAAIX,EAAEsZ,QAASpa,EAAIc,EAAE2H,WAAYhI,IAAMoC,EAAE2L,gBAAkB/N,GAAIgB,IAAMoB,EAAE4J,iBAAmBhL,GAAIzB,IAAM6C,EAAE6J,iBAAmB1M,GAAI6C,GAjB7J,GAmBF/B,EACIuB,OAAOuC,eAAiB,SAAU1D,EAAG2B,GAC1C,IAAI2X,EAEJ,OAAOA,EAAM,WACX,MAAO,WAAgC,qBAAZC,QAA0B,YAAczY,EAAQyY,UAAYA,QAAQC,UAAUhM,YAAa,GAAI8L,GAAO9L,YAAY1L,MAAMZ,OAClJ1B,OAAOia,eAAeH,EAAI5Y,UAAW8M,YAAY9M,WAAYlB,OAAOia,eAAeH,EAAK9L,aAAchO,OAAOka,iBAAiBJ,EAAI5Y,UAAWiB,GAAIR,OAAOuC,eAAeiW,OAAO3Z,EAAGsZ,GAAMA,GACxL,SAAUtZ,EAAG2B,GACf,IAAIpB,EAAGzB,EACP,OAAOA,EAAIU,OAAOY,OAAOoN,YAAY9M,UAAWiB,GAAIpB,EAAIoD,SAASC,gBAAgB5D,EAAG,CAClFU,UAAW5B,IACTU,OAAOC,eAAeX,EAAG,cAAe,CAC1CiB,MAAOQ,IACLA,IAGRtB,KAAKiC,MAAO,WACZ,IAAIlB,EAAGO,EACPoB,EAAEwQ,OAAO,CACPyH,gBAAiB,WACf,IAAI5Z,EACJ,OAAOA,EAAImB,OAAO0Y,gBAAkBC,WAAa,EAAI9Z,OAAI,GAE3D+Z,YAAa,WACX,IAAIxZ,EAAGzB,EACP,OAAQyB,EAAI,OAASzB,EAAI6C,EAAEiY,mBAAqB9a,EAAEkb,WAAW,QAAK,KAAYha,EAAEO,GAAKA,OAAI,GAE3F0Z,YAAa,SAAqBja,GAChC,IAAIO,EACJ,OAAOA,EAAIY,OAAO0Y,gBAAkBK,kBAAmB3Z,EAAE4Z,SAASna,GAAI2B,EAAEyY,wBAAwBC,YAEhGra,EAAI,SAAWsa,GACjB,OAAO/Z,EAAE+Z,EAAIC,iBAAmBha,EAAE+Z,EAAIE,eACrCja,EAAI,SAAWP,GAChB,OAAQR,OAAOmO,eAAe3N,KAEhCf,KAAKiC,MAAO,WACZ,IAAIlB,EACJA,EAAI,CACF,uCAAwC,QACvC2B,EAAEwQ,OAAO,CACVsI,wBAAyB,SAAiCza,GACxD,IAAI2B,EAAGpB,EAAGzB,EACV,OAAOA,EAAIkB,EAAE0a,QAAQ,cAAena,EAAIP,EAAE0a,QAAQ,aAAc5b,GAAKyB,GAAKoB,GAAI,IAAIgZ,WAAYC,gBAAgBra,EAAG,aAAasa,MAAQvD,cAAgBxY,GAAK6C,EAAEoX,cAAc,UAAO,EAAU,MAAQja,EAAIA,EAAE6D,YAAS,GAErNmY,uBAAwB,SAAgCnZ,GACtD,IAAIpB,EAAGzB,EAEP,GAAI,OAAS,MAAQ6C,EAAIA,EAAEoZ,aAAU,GAAS,CAC5C,IAAKxa,KAAKP,EACR,GAAIlB,EAAIkB,EAAEO,IAAK,WACb,IACE,OAAOoB,EAAEoZ,QAAQxa,EAAGzB,GAAI6C,EAAE+Y,QAAQna,KAAOzB,EACzC,MAAOkB,KAHI,GAIV,OAGP,OAAO,IAGXgb,0BACS,UAAU9U,KAAKC,UAAU8U,UAAY,SAAUjb,GACpD,OAAOA,EAAEkb,SACP,SAAUlb,GACZ,OAAOA,EAAEmb,YAIflc,KAAKiC,MAAO,WACZS,EAAEwQ,OAAO,CACPiJ,YAAa,qVACbC,aAAc,WACZ,IAAIrb,EAAGO,EAAGzB,EAAGS,EACb,OAAOgB,EAAIoB,EAAEoV,YAAY,QAAS,CAChCuE,IAAK,OACLjc,KAAM,IACNkc,QAAS,WACPvb,EAAI2B,EAAEoV,YAAY,SAAWQ,YAAYhX,GAAIzB,EAAI,WACnD,IACE,OAAO,IAAI0c,SAASxb,GAAGuB,IAAIhB,EAAEgb,SAC7B,MAAO5Z,KAH0C,GAIhDpC,EAAI,WACP,IACE,OAAOgB,EAAEkb,QAAQ,uBACjB,MAAOzb,KAHF,GAIJlB,EAAI,SAAU6C,GACjB,OAAOpB,EAAER,MAAQ4B,EAAG,IAAI6Z,SAASxb,GAAGL,IAAIY,EAAEgb,UACxChc,EAAI,SAAUS,GAChB,OAAOO,EAAER,MAAQC,EAAGO,EAAEkb,QAAQ,aAAe,MAAQ,OACnD,SAAUzb,GACZ,IAAIO,EACJ,OAAOA,EAAIP,EAAE0b,OAAOrI,OAAO,GAAI1R,EAAEyZ,YAAYlV,KAAK3F,GAAK,MAAQ,OApBrD,MAwBhBtB,KAAKiC,MAAO,aAAejC,KAAKiC,MAAO,WACvC,IAAIlB,EACAO,EAAI,SAAWP,EAAG2B,GACpB,SAASpB,IACPW,KAAKD,YAAcjB,EAGrB,IAAK,IAAIT,KAAKoC,EACZ7C,EAAEG,KAAK0C,EAAGpC,KAAOS,EAAET,GAAKoC,EAAEpC,IAG5B,OAAOgB,EAAEG,UAAYiB,EAAEjB,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEiR,UAAYtP,EAAEjB,UAAWV,GAElFlB,EAAI,GAAG6B,eAEXX,EAAI2B,EAAE8R,eAAgB9R,EAAEga,KAAO,SAAU7c,GACvC,SAASS,EAAES,GACT,MAAQA,IAAMA,EAAI,IAAKkB,KAAKI,OAAST,EAAEb,GAAIT,EAAE0R,UAAUhQ,YAAYa,MAAMZ,KAAMa,WAGjF,IAAInC,EAAGiB,EAAG6B,EAAGG,EAAG1D,EAChB,OAAOoB,EAAEhB,EAAGT,GAAIS,EAAEqc,8BAAgC,SAAU5b,GAC1D,IAAI2B,EAAGpB,EAAGzB,EAAGS,EAAGsB,EAAG6B,EACnB,GAAI,MAAQ1C,IAAMA,EAAI,KAAMA,EAAE2C,OAAQ,OAAO,IAAIzB,KAEjD,IAAkBpC,GAAb6C,EAAI/B,EAAEI,EAAE,KAAW6b,UAA2Btb,EAAI,EAAGhB,GAAvBmD,EAAI1C,EAAEmD,MAAM,IAAiBR,OAAQpD,EAAIgB,EAAGA,IAC7EM,EAAI6B,EAAEnC,GAAIzB,EAAI6C,EAAEma,oBAAoBlc,EAAEiB,IAAKc,EAAIA,EAAEwB,MAAMrE,GAGzD,OAAO6C,GACNpC,EAAEyS,IAAM,SAAUhS,GACnB,OAAOJ,EAAEI,IACRT,EAAEmB,UAAUe,IAAM,SAAUzB,EAAG2B,GAChC,OAAOT,KAAK6a,MAAMlZ,EAAE7C,EAAG2B,KACtBpC,EAAEmB,UAAUsb,OAAS,SAAUhc,GAChC,OAAO,IAAI2B,EAAEga,KAAK9a,EAAEK,KAAKI,OAAQtB,KAChCT,EAAEmB,UAAUf,IAAM,SAAUK,GAC7B,OAAOkB,KAAKI,OAAOtB,IAClBT,EAAEmB,UAAUa,IAAM,SAAUvB,GAC7B,OAAOA,KAAKkB,KAAKI,QAChB/B,EAAEmB,UAAUqb,MAAQ,SAAU/b,GAC/B,OAAO,IAAI2B,EAAEga,KAAKjZ,EAAExB,KAAKI,OAAQnC,EAAEa,MAClCT,EAAEmB,UAAUyC,MAAQ,SAAUnD,GAC/B,IAAIO,EAAGzB,EAAGS,EAAGK,EAEb,IAAKA,EAAI,GAAIW,EAAI,EAAGhB,EAAIS,EAAE2C,OAAQpD,EAAIgB,EAAGA,IACvCzB,EAAIkB,EAAEO,GAAIW,KAAKK,IAAIzC,KAAOc,EAAEd,GAAKoC,KAAKI,OAAOxC,IAG/C,OAAO,IAAI6C,EAAEga,KAAK/b,IACjBL,EAAEmB,UAAUmb,QAAU,WACvB,OAAOrc,OAAOgU,KAAKtS,KAAKI,SACvB/B,EAAEmB,UAAUob,oBAAsB,SAAU9b,GAC7C,IAAI2B,EAAGpB,EAAGzB,EAAGS,EAAGsB,EAEhB,IAAKb,EAAIJ,EAAEI,GAAwBa,EAAI,GAAIc,EAAI,EAAG7C,GAAnCS,EAAI2B,KAAK2a,WAAgClZ,OAAQ7D,EAAI6C,EAAGA,IACrEpB,EAAIhB,EAAEoC,GAAIT,KAAKI,OAAOf,KAAOP,EAAEsB,OAAOf,IAAMM,EAAEa,KAAKnB,GAGrD,OAAOM,GACNtB,EAAEmB,UAAU8Q,UAAY,SAAU7P,GACnC,OAAO3B,EAAEkB,KAAK+a,UAAWrc,EAAE+B,GAAGsa,YAC7B1c,EAAEmB,UAAUwb,QAAU,WACvB,OAAO,IAAMhb,KAAK2a,UAAUlZ,QAC3BpD,EAAEmB,UAAUub,QAAU,WACvB,IAAIjc,EAAG2B,EAAGpB,EACV,OAAQ,MAAQW,KAAKib,MAAQjb,KAAKib,MAAQjb,KAAKib,MAAQ,WACrD,IAAIrd,EAGJ,IAAKkB,KAFL2B,EAAI,GAAI7C,EAAIoC,KAAKI,OAGff,EAAIzB,EAAEkB,GAAI2B,EAAED,KAAK1B,EAAGO,GAGtB,OAAOoB,GACP1C,KAAKiC,OAAOiC,MAAM,IACnB5D,EAAEmB,UAAU0b,SAAW,WACxB,OAAOvb,EAAEK,KAAKI,SACb/B,EAAEmB,UAAU2b,OAAS,WACtB,OAAOnb,KAAKkb,YACX7c,EAAEmB,UAAUgR,sBAAwB,WACrC,MAAO,CACLpQ,OAAQ+P,KAAKQ,UAAU3Q,KAAKI,UAE7BuB,EAAI,SAAW7C,EAAG2B,GACnB,IAAIpB,EACJ,OAAOA,EAAI,IAAMP,GAAK2B,EAAGpB,GACxBmC,EAAI,SAAW1C,EAAG2B,GACnB,IAAIpB,EAAGzB,EAAGS,EAGV,IAAKgB,KAFLzB,EAAI+B,EAAEb,GAEI2B,EACRpC,EAAIoC,EAAEpB,GAAIzB,EAAEyB,GAAKhB,EAGnB,OAAOT,GACN+B,EAAI,SAAWb,EAAG2B,GACnB,IAAIpB,EAAGzB,EAAGS,EAAGK,EAAGiB,EAEhB,IAAKjB,EAAI,GAAIiB,EAAIrB,OAAOgU,KAAKxT,GAAGuE,OAAQhE,EAAI,EAAGhB,EAAIsB,EAAE8B,OAAQpD,EAAIgB,EAAGA,KAClEzB,EAAI+B,EAAEN,MAAUoB,IAAM/B,EAAEd,GAAKkB,EAAElB,IAGjC,OAAOc,GACNA,EAAI,SAAWI,GAChB,OAAOA,aAAa2B,EAAEga,KAAO3b,EAAI,IAAI2B,EAAEga,KAAK3b,IAC3Cb,EAAI,SAAWa,GAChB,OAAOA,aAAa2B,EAAEga,KAAO3b,EAAEsB,OAAStB,GACvCT,EA7F0B,CA8F7BoC,EAAEnC,SACJP,KAAKiC,MAAO,WACZS,EAAE2a,YAAc,WACd,SAAStc,EAAEA,EAAG2B,GACZ,IAAIpB,EAAGzB,EACPoC,KAAKqb,QAAU,MAAQvc,EAAIA,EAAI,GAAIlB,EAAI6C,EAAE6a,OAAOjc,EAAIoB,EAAE8a,UAAcvb,KAAKsb,MAAQ1d,EAAGoC,KAAKqb,QAAUrb,KAAKD,YAAYyb,aAAaxb,KAAKqb,QAAS,CAC7IE,OAAQlc,EACRic,MAAOtb,KAAKsb,MAAQ,KAIxB,OAAOxc,EAAE0c,aAAe,SAAU1c,EAAG2B,GACnC,IAAIpB,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAG6B,EAAGG,EAAG1D,EAAGJ,EAE5B,IAAK,MAAQiB,IAAMA,EAAI,IAA6BT,GAAxBR,EAAI,MAAQ4C,EAAIA,EAAI,IAAU6a,OAAOjc,EAAIxB,EAAE0d,SAAa,MAAQld,IAAMA,EAAI,GAAIJ,EAAI,GAAI0B,EAAI,EAAG6B,EAAI1C,EAAE2C,OAAQD,EAAI7B,EAAGA,IAAK,CACjJ,GAAIgC,EAAI7C,EAAEa,GAAIjB,EAAG,CACf,IAAK,mBAAqBiD,EAAE8Z,aAAe9Z,EAAE8Z,aAAapd,QAAK,KAAY,mBAAsBT,EAAIc,EAAEA,EAAE+C,OAAS,IAAIia,iBAAmB9d,EAAE8d,iBAAiB/Z,EAAGtD,QAAK,GAAS,CAC3KK,EAAE8B,KAAKmB,GACP,SAGF1D,EAAEuC,KAAK,IAAIR,KAAKtB,EAAG,CACjB4c,MAAOjd,EACPkd,OAAQlc,KACLX,EAAI,MAGV,mBAAqBiD,EAAE8Z,aAAe9Z,EAAE8Z,aAAapd,QAAK,GAAUK,EAAI,CAACiD,GAAK1D,EAAEuC,KAAKmB,GAGxF,OAAOjD,GAAKT,EAAEuC,KAAK,IAAIR,KAAKtB,EAAG,CAC7B4c,MAAOjd,EACPkd,OAAQlc,KACLpB,GACJa,EAAEU,UAAUmc,WAAa,WAC1B,OAAO3b,KAAKqb,SACXvc,EAAEU,UAAUoc,SAAW,WACxB,OAAO5b,KAAKsb,OACXxc,EAAEU,UAAUuR,YAAc,WAC3B,IAAIjS,EAAG2B,EAAGpB,EAAGzB,EAAGS,EAEhB,IAAKoC,EAAI,CAAC,eAAuC3B,EAAI,EAAGO,GAA9BhB,EAAI2B,KAAK2b,cAA2Bla,OAAQpC,EAAIP,EAAGA,IAC3ElB,EAAIS,EAAES,GAAI2B,EAAED,KAAK5C,EAAEmT,eAGrB,OAAOtQ,EAAEgQ,KAAK,MACb3R,EA5CW,IA8ChBf,KAAKiC,MAAO,WACZ,IAAIlB,EAAI,SAAW+c,EAAKpb,GACtB,SAAS7C,IACPoC,KAAKD,YAAc8b,EAGrB,IAAK,IAAIxd,KAAKoC,EACZpB,EAAEtB,KAAK0C,EAAGpC,KAAOwd,EAAIxd,GAAKoC,EAAEpC,IAG9B,OAAOT,EAAE4B,UAAYiB,EAAEjB,UAAWqc,EAAIrc,UAAY,IAAI5B,EAAKie,EAAI9L,UAAYtP,EAAEjB,UAAWqc,GAEtFxc,EAAI,GAAGI,eAEXgB,EAAEqb,UAAY,SAAUrb,GACtB,SAASpB,EAAEP,GACT,IAAI2B,EAAGpB,EAAGzB,EAAGS,EAAGK,EAEhB,IAAK,MAAQI,IAAMA,EAAI,IAAKkB,KAAKqb,QAAU,GAAIzd,EAAI,EAAGS,EAAIS,EAAE2C,OAAQpD,EAAIT,EAAGA,IACzEc,EAAII,EAAElB,GAAIyB,EAAI8Q,KAAKQ,UAAUjS,GAAI,OAAS+B,EAAIT,KAAKqb,SAAShc,KAAOoB,EAAEpB,GAAKX,GAI9E,OAAOI,EAAEO,EAAGoB,GAAIpB,EAAEG,UAAUuc,KAAO,SAAUjd,GAC3C,IAAI2B,EACJ,OAAOA,EAAI0P,KAAKQ,UAAU7R,GAAIkB,KAAKqb,QAAQ5a,IAC1CpB,EAZS,CAaZoB,EAAE8O,cACJxR,KAAKiC,MAAO,WACZS,EAAEub,aAAe,WACf,SAASld,EAAEA,GACTkB,KAAKic,MAAMnd,GAGb,IAAI2B,EACJ,OAAO3B,EAAEU,UAAUe,IAAM,SAAUzB,GACjC,IAAIO,EACJ,OAAOA,EAAIoB,EAAE3B,GAAIkB,KAAKkc,SAAS7c,GAAKP,GACnCA,EAAEU,UAAUsb,OAAS,SAAUhc,GAChC,IAAIO,EAAGzB,EACP,OAAOyB,EAAIoB,EAAE3B,IAAKlB,EAAIoC,KAAKkc,SAAS7c,YAAcW,KAAKkc,SAAS7c,GAAIzB,QAAK,GACxEkB,EAAEU,UAAUyc,MAAQ,SAAUnd,GAC/B,IAAI2B,EAAGpB,EAAGzB,EAEV,IAAK,MAAQkB,IAAMA,EAAI,IAAKkB,KAAKkc,SAAW,GAAI7c,EAAI,EAAGzB,EAAIkB,EAAE2C,OAAQ7D,EAAIyB,EAAGA,IAC1EoB,EAAI3B,EAAEO,GAAIW,KAAKO,IAAIE,GAGrB,OAAO3B,GACN2B,EAAI,SAAW3B,GAChB,OAAOA,EAAEmX,QAAQkG,cAChBrd,EAtBY,IAwBjBf,KAAKiC,MAAO,aAAejC,KAAKiC,MAAO,WACvC,IAAIlB,EAAI,SAAWsd,EAAK3b,GACtB,SAAS7C,IACPoC,KAAKD,YAAcqc,EAGrB,IAAK,IAAI/d,KAAKoC,EACZpB,EAAEtB,KAAK0C,EAAGpC,KAAO+d,EAAI/d,GAAKoC,EAAEpC,IAG9B,OAAOT,EAAE4B,UAAYiB,EAAEjB,UAAW4c,EAAI5c,UAAY,IAAI5B,EAAKwe,EAAIrM,UAAYtP,EAAEjB,UAAW4c,GAEtF/c,EAAI,GAAGI,eAEXgB,EAAE4b,UAAY,SAAU5b,GACtB,SAASpB,IACP,OAAOA,EAAE0Q,UAAUhQ,YAAYa,MAAMZ,KAAMa,WAG7C,OAAO/B,EAAEO,EAAGoB,GAAIpB,EAAEG,UAAU8c,aAAe,WACzC,OAA2B,IAApBtc,KAAKuc,YACXld,EAAEG,UAAUgd,aAAe,WAC5B,OAA0B,IAAnBxc,KAAKyc,WACXpd,EAAEG,UAAUkd,aAAe,WAC5B,OAAO1c,KAAKyc,WAAazc,KAAK2c,WAC7Btd,EAAEG,UAAUod,UAAY,WACzB,OAAO5c,KAAKyc,YAAczc,KAAK2c,WAC9Btd,EAAEG,UAAUqd,WAAa,WAC1B,OAAO,MAAQ7c,KAAKsB,QAAUtB,KAAKsB,QAAUtB,KAAKsB,QAAU,IAAIiB,QAAQ,SAAUzD,GAChF,OAAO,SAAU2B,EAAGpB,GAClB,OAAOP,EAAEyd,YAAa,EAAIzd,EAAEge,SAAQ,SAAUlf,EAAGS,GAC/C,OAAOS,EAAE6d,UAAY/e,EAAGkB,EAAEyd,YAAa,EAAIzd,EAAE2d,WAAY,EAAI3d,EAAE6d,UAAYlc,EAAEpC,GAAKgB,EAAEhB,OAHlB,CAMtE2B,QACDX,EAAEG,UAAUsd,QAAU,SAAUhe,GACjC,OAAOA,GAAE,IACRO,EAAEG,UAAUud,QAAU,WACvB,IAAIje,EACJ,OAAO,OAASA,EAAIkB,KAAKsB,UAAY,mBAAqBxC,EAAEke,QAAUle,EAAEke,SAAUhd,KAAKsB,QAAU,KAAMtB,KAAKuc,WAAa,KAAMvc,KAAKyc,UAAY,KAAMzc,KAAK2c,UAAY,MACtKtd,EAAEmQ,YAAY,qBAAsBnQ,EAAEmQ,YAAY,sBAAuBnQ,EA1BhE,CA2BZoB,EAAE8O,cACJxR,KAAKiC,MAAO,WACZ,IAAIlB,EACAO,EACAzB,EACAS,EACAK,EAYA8C,EAAI,GAAG/B,eAEXgB,EAAEoQ,YAAc,SAAU/R,GACxB,SAAS2B,EAAE3B,EAAG2B,GACZT,KAAKid,WAAane,EAAGkB,KAAKgS,WAAavR,EAAGT,KAAKyB,OAASzB,KAAKgS,WAAWvQ,OAAQzB,KAAKkd,WAAald,KAAKid,WAAWxb,OAGpH,OAlBM,SAAW3C,EAAG2B,GACpB,SAASpB,IACPW,KAAKD,YAAcjB,EAGrB,IAAK,IAAIlB,KAAK6C,EACZe,EAAEzD,KAAK0C,EAAG7C,KAAOkB,EAAElB,GAAK6C,EAAE7C,IAGrByB,EAAEG,UAAYiB,EAAEjB,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEiR,UAAYtP,EAAEjB,UASlEG,CAAEc,EAAG3B,GAAI2B,EAAEqQ,IAAM,SAAUhS,GAChC,OAAO,MAAQA,IAAMA,EAAI,IAAKA,aAAakB,KAAOlB,EAAIkB,KAAKmd,eAAe,MAAQre,EAAIA,EAAEkS,gBAAa,IACpGvQ,EAAE0c,eAAiB,SAAUre,GAC9B,OAAO,IAAIkB,KAAKlB,EAAGT,EAAES,KACpB2B,EAAEwR,eAAiB,SAAUnT,GAC9B,OAAO,IAAIkB,KAAKtB,EAAEI,GAAIA,IACrB2B,EAAEjB,UAAU4d,mBAAqB,SAAUte,GAC5C,OAAOJ,EAAEsB,KAAKgS,WAAW/P,MAAM,EAAGa,KAAKua,IAAI,EAAGve,KAAK2C,QAClDhB,EAAEjB,UAAU8d,qBAAuB,SAAUxe,GAC9C,OAAOT,EAAE2B,KAAKid,WAAWhb,MAAM,EAAGa,KAAKua,IAAI,EAAGve,KAAK2C,QAClDhB,EAAEjB,UAAUyC,MAAQ,WACrB,IAAInD,EACJ,OAAOkB,KAAKD,YAAYkS,gBAAgBnT,EAAIkB,KAAKgS,YAAY/P,MAAMrB,MAAM9B,EAAG+B,aAC3EJ,EAAEjB,UAAU2S,OAAS,SAAUrT,GAChC,OAAOkB,KAAKiC,MAAMnD,EAAGA,EAAI,IACxB2B,EAAEjB,UAAU8Q,UAAY,SAAUxR,GACnC,OAAOkB,KAAKD,YAAY+Q,IAAIhS,GAAGme,aAAejd,KAAKid,YAClDxc,EAAEjB,UAAU2b,OAAS,WACtB,OAAOnb,KAAKid,YACXxc,EAAEjB,UAAUuR,YAAc,WAC3B,OAAO/Q,KAAKid,YACXxc,EAAEjB,UAAUwR,SAAW,WACxB,OAAOhR,KAAKid,YACXxc,EA5BW,CA6BdA,EAAE8O,aAAczQ,EAAI,KAAO,mBAAqBkD,MAAMub,KAAOvb,MAAMub,KAAK,gBAAgB9b,YAAS,GAASpC,EAAI,OAAS,kBAAqB,IAAIme,YAAc,IAAIA,YAAY,QAAK,GAAS5f,EAAI,mBAAqB,mBAAqByH,OAAOoY,cAAgBpY,OAAOoY,cAAc,GAAI,aAAU,GAASpf,EAAIS,GAAKO,EAAI,SAAUP,GACpU,OAAOkD,MAAMub,KAAKze,GAAG4e,KAAI,SAAU5e,GACjC,OAAOA,EAAE0e,YAAY,OAErB,SAAU1e,GACZ,IAAI2B,EAAGpB,EAAGzB,EAAGS,EAAGK,EAEhB,IAAKL,EAAI,GAAIoC,EAAI,EAAG7C,EAAIkB,EAAE2C,OAAQ7D,EAAI6C,IACpC/B,EAAII,EAAE6e,WAAWld,OAAW,OAAS,OAAS/B,GAAKd,EAAI6C,IAA6B,SAAW,OAAlCpB,EAAIP,EAAE6e,WAAWld,OAA8B/B,IAAM,KAAOA,IAAM,KAAO,KAAOW,GAAK,MAAQoB,KAAMpC,EAAEmC,KAAK9B,GAGzK,OAAOL,GACNK,EAAId,EAAI,SAAUkB,GACnB,OAAOuG,OAAOoY,cAAc7c,MAAMyE,OAAQvG,IACxC,SAAUA,GACZ,IAAI2B,EAAGpB,EAAGzB,EACV,OAAO6C,EAAI,WACT,IAAIA,EAAGpC,EAAGK,EAEV,IAAKA,EAAI,GAAI+B,EAAI,EAAGpC,EAAIS,EAAE2C,OAAQpD,EAAIoC,EAAGA,IACvC7C,EAAIkB,EAAE2B,GAAIpB,EAAI,GAAIzB,EAAI,QAAUA,GAAK,MAAOyB,GAAKgG,OAAOuY,aAAahgB,IAAM,GAAK,KAAO,OAAQA,EAAI,MAAQ,KAAOA,GAAIc,EAAE8B,KAAKnB,EAAIgG,OAAOuY,aAAahgB,IAGvJ,OAAOc,EAPE,GAQN+B,EAAEgQ,KAAK,MAEd1S,KAAKiC,MAAO,aAAejC,KAAKiC,MAAO,aAAejC,KAAKiC,MAAO,WAClES,EAAE6O,OAAOuO,KAAO,CACdC,YAAa,eACbC,KAAM,OACNC,QAAS,UACT,KAAQ,OACRC,MAAO,QACPC,mBAAoB,sBACpBC,KAAM,OACNC,SAAU,UACVC,OAAQ,iBACRC,OAAQ,SACRC,KAAM,OACNC,QAAS,UACTC,QAAS,iBACTC,MAAO,QACPC,KAAM,OACN7D,OAAQ,SACR8D,OAAQ,gBACRC,KAAM,OACNC,OAAQ,SACRC,IAAK,MACLC,eAAgB,oBAChBC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,OAENthB,KAAKiC,MAAO,WACZS,EAAE6O,OAAOgQ,IAAM,CACbC,WAAY,aACZC,kBAAmB,sBACnBC,wBAAyB,6BACzBC,mBAAoB,uBACpBC,4BAA6B,iCAC7BC,eAAgB,mBAChBC,mBAAoB,uBACpBC,eAAgB,mBAChBC,kBAAmB,sBACnBC,kBAAmB,uBAErBjiB,KAAKiC,MAAO,WACZ,IAAIlB,EACJ2B,EAAE6O,OAAOyD,gBAAkBjU,EAAI,CAC7B,QAAW,CACT8W,QAAS,MACTxF,OAAO,GAETsO,MAAO,CACL9I,QAAS,aACTqK,UAAU,GAEZ7B,SAAU,CACRxI,QAAS,KACTsK,UAAU,EACVC,eAAe,EACfpV,OAAO,GAEToT,KAAM,CACJvI,QAAS,MACTsK,UAAU,EACVE,KAAM,CACJC,WAAW,IAGfC,WAAY,CACV1K,QAAS,KACTxF,OAAO,GAETmQ,OAAQ,CACN3K,QAAS,KACTzC,cAAe,aACfpI,OAAO,EACPkV,UAAU,EACVjb,KAAM,SAAc3F,GAClB,OAAOoB,EAAEmV,QAAQvW,EAAEuE,cAAgB9E,EAAEkB,KAAKmT,eAAeyC,UAG7D4K,WAAY,CACV5K,QAAS,KACTxF,OAAO,GAETqQ,OAAQ,CACN7K,QAAS,KACTzC,cAAe,aACfpI,OAAO,EACPkV,UAAU,EACVjb,KAAM,SAAc3F,GAClB,OAAOoB,EAAEmV,QAAQvW,EAAEuE,cAAgB9E,EAAEkB,KAAKmT,eAAeyC,UAG7DoK,kBAAmB,CACjBpK,QAAS,MACT8K,WAAW,EACXR,UAAU,EACV9P,OAAO,EACPrF,OAAO,KAGXhN,KAAKiC,MAAO,WACZ,IAAIlB,EAAGO,EACPP,EAAI2B,EAAE6O,OAAOuO,KAAMxe,EAAI,CAACP,EAAEmf,MAAOnf,EAAEogB,GAAIpgB,EAAEqgB,GAAIrgB,EAAEmgB,GAAIngB,EAAEugB,GAAIvgB,EAAEsgB,IAAK3e,EAAE6O,OAAOqR,SAAW,CAClFC,OAAQ,MACRC,UAAW,EACXC,UAAW,SAAmBrgB,GAC5B,IAAI7C,EAAGS,EAEP,OAAQoC,GACN,KAAK,EACH,MAAO,KAAO3B,EAAEmf,MAElB,KAAK,EACH,MAAO,KAAOnf,EAAEiiB,KAElB,QACE,OAAOnjB,EAAI,WACT,OAAQoC,KAAK4gB,QACX,IAAK,KACH,OAAO,IAET,IAAK,MACH,OAAO,OAEX7iB,KAAKiC,MAAO3B,EAAIyE,KAAKke,MAAMle,KAAK8I,IAAInL,GAAKqC,KAAK8I,IAAIhO,KAAS6C,EAAIqC,KAAKme,IAAIrjB,EAAGS,IAAU6iB,QAAQlhB,KAAK6gB,WAAkBzP,QAAQ,MAAO,IAAIA,QAAQ,MAAO,IAAS,IAAM/R,EAAEhB,OAIjLN,KAAKiC,MAAO,WACZS,EAAE6O,OAAO2D,eAAiB,CACxB8K,KAAM,CACJnI,QAAS,SACTuL,aAAa,EACbC,OAAQ,SAAgBtiB,GACtB,IAAI2B,EACJ,MAAuC,UAAhCA,EAAIR,OAAOohB,iBAAiBviB,IAAiBwiB,YAAc7gB,EAAE6gB,YAAc,MAGtFhD,OAAQ,CACN1I,QAAS,KACTuL,aAAa,EACbC,OAAQ,SAAgBtiB,GAEtB,MAAuC,WAA5BmB,OAAOohB,iBAAiBviB,GAAmByiB,YAG1DC,KAAM,CACJC,aAAc,IACdL,OAAQ,SAAgBtiB,GACtB,IAAOlB,EAAGS,EACV,OAAgDA,EAAI,SAAzCoC,EAAE0W,eAAeC,mBAAuC,KAAMxZ,EAAI6C,EAAEuT,2BAA2BlV,EAAG,CAC3G6U,iBAAkBtV,KACdT,EAAEiP,aAAa,aAAU,IAGnC+R,OAAQ,CACNhJ,QAAS,MACTuL,aAAa,GAEfO,OAAQ,CACN1L,MAAO,CACL2L,gBAAiB,gBAIvB5jB,KAAKiC,MAAO,WACZ,IAAIlB,EAAGO,EAAMhB,EACsBA,EAAI,CAAC,kBAAmB,eAAgB,sBAAuB,oBAAqB,wBAAyB,YAAagB,EAAI,kCAAsDP,EAAI,IAAIuS,OAAO,qBAAgB,KAAM5Q,EAAEwQ,OAAO,CACnQ2Q,YAAa,CACX,mBAAoB,SAAyB9iB,GAC3C,IAAIO,EACJ,GAAIP,aAAa2B,EAAEohB,SAAUxiB,EAAIP,MAAO,CACtC,KAAMA,aAAawN,aAAc,MAAM,IAAIqB,MAAM,yBACjDtO,EAAIoB,EAAEohB,SAASC,SAAShjB,EAAEijB,WAE5B,OAAO1iB,EAAE2iB,yBAAyBtR,gBAEpC,YAAa,SAAkB/Q,GAC7B,IAAI6B,EAAGG,EAAG1D,EAAGJ,EAAGsD,EAAGzB,EAAGxB,EAAG2G,EAAGzB,EAAGpF,EAAGmH,EAAGC,EAAGjC,EAAGD,EAAGe,EAAGU,EAAGC,EACpD,GAAIjF,aAAac,EAAEohB,SAAUhkB,EAAI4C,EAAEwhB,aAAaC,OAAOviB,OAAQ,CAC7D,KAAMA,aAAa2M,aAAc,MAAM,IAAIqB,MAAM,yBACjD9P,EAAI8B,EAAEwiB,WAAU,GAGlB,IAAgChhB,EAAI,EAAGiC,GAAlCF,EAAIrF,EAAEgM,iBAjBb,gCAiB+CpI,OAAQ2B,EAAIjC,EAAGA,IAC1DlD,EAAIiF,EAAE/B,GAAIV,EAAEuU,WAAW/W,GAGzB,IAAKyB,EAAI,EAAG1B,EAAIK,EAAEoD,OAAQzD,EAAI0B,EAAGA,IAC/B,IAAK8B,EAAInD,EAAEqB,GAA2CxB,EAAI,EAAGiH,GAA9ClB,EAAIpG,EAAEgM,iBAAiB,IAAMrI,EAAI,MAAmBC,OAAQ0D,EAAIjH,EAAGA,KAChFD,EAAIgG,EAAE/F,IAAMkP,gBAAgB5L,GAIhC,IAAgCqD,EAAI,EAAGO,GAAlCT,EAAI9G,EAAEgM,iBA3BuL,sCA2BrJpI,OAAQ2D,EAAIP,EAAGA,IAAK,CAC/D5G,EAAI0G,EAAEE,GAEN,IAGE,IAAK1B,KAFLxB,EAAIwO,KAAKC,MAAMnS,EAAE4O,aAAaxN,IAAKpB,EAAEmP,gBAAgB/N,GAE3CsC,EACRiD,EAAIjD,EAAEwB,GAAIlF,EAAEkO,aAAahJ,EAAGyB,GAE9B,MAAOqG,KAGX,OAAOpN,EAAEkkB,UAAU3Q,QAAQtS,EAAG,MAGlCsjB,cAAe,CACb,mBAAoB,SAAyBtjB,GAC3C,OAAO2B,EAAEohB,SAAS5R,eAAenR,IAEnC,YAAa,SAAkBA,GAC7B,OAAO2B,EAAEohB,SAASC,SAAShjB,KAG/BujB,uBAAwB,SAAgCvjB,EAAGO,GACzD,IAAIzB,EACJ,GAAIA,EAAI6C,EAAEmhB,YAAYviB,GAAI,OAAOzB,EAAEkB,GACnC,MAAM,IAAI6O,MAAM,yBAA2BtO,IAE7CijB,2BAA4B,SAAoCxjB,EAAGO,GACjE,IAAIzB,EACJ,GAAIA,EAAI6C,EAAE2hB,cAAc/iB,GAAI,OAAOzB,EAAEkB,GACrC,MAAM,IAAI6O,MAAM,yBAA2BtO,OAG/CtB,KAAKiC,MAAO,WACZ,IAAIlB,EACJA,EAAI2B,EAAE6O,OAAOuO,KAAMpd,EAAE6O,OAAOiT,QAAU,CACpCC,eAAgB,WACd,MAAO,mRAAqR1jB,EAAEif,KAAO,mBAAqBjf,EAAEif,KAAO,6JAA+Jjf,EAAEwf,OAAS,mBAAqBxf,EAAEwf,OAAS,2IAA6Ixf,EAAE8f,OAAS,mBAAqB9f,EAAE8f,OAAS,iLAAmL9f,EAAEyf,KAAO,mBAAqBzf,EAAEyf,KAAO,qQAAuQzf,EAAEsf,SAAW,mBAAqBtf,EAAEsf,SAAW,yIAA2Itf,EAAE4f,MAAQ,mBAAqB5f,EAAE4f,MAAQ,uIAAyI5f,EAAEqf,KAAO,mBAAqBrf,EAAEqf,KAAO,gJAAkJrf,EAAEkf,QAAU,mBAAqBlf,EAAEkf,QAAU,gJAAkJlf,EAAE0f,QAAU,mBAAqB1f,EAAE0f,QAAU,sKAAwK1f,EAAE2f,QAAU,mBAAqB3f,EAAE2f,QAAU,sKAAwK3f,EAAEuf,OAAS,mBAAqBvf,EAAEuf,OAAS,gQAAkQvf,EAAEgf,YAAc,mBAAqBhf,EAAEgf,YAAc,mUAAqUhf,EAAE+f,KAAO,mBAAqB/f,EAAE+f,KAAO,4JAA8J/f,EAAE6f,KAAO,mBAAqB7f,EAAE6f,KAAO,6TAA+T7f,EAAEkgB,eAAiB,iBAAmBlgB,EAAEigB,IAAM,mJAAqJjgB,EAAEyf,KAAO,mHAAqHzf,EAAEggB,OAAS,uFAGt1H/gB,KAAKiC,MAAO,WACZS,EAAE6O,OAAOmT,aAAe,KACxB1kB,KAAKiC,MAAO,WACZS,EAAE6O,OAAOoT,YAAc,CACrBC,QAAS,CACPC,aAAc,UACdC,QAAS,CACP1kB,MAAM,EACN2kB,MAAM,IAGVC,KAAM,CACJF,QAAS,CACPC,MAAM,MAIZ/kB,KAAKiC,MAAO,WACZS,EAAE6O,OAAO0T,SAAW,CAClB,EAAG,YACH,EAAG,MACH,GAAI,SACJ,GAAI,SACJ,GAAI,OACJ,GAAI,QACJ,GAAI,SACJ,GAAI,IACJ,GAAI,IACJ,GAAI,MAENjlB,KAAKiC,MAAO,WACZS,EAAE6O,OAAO2T,MAAQ,CACfC,eAAe,EACfC,SAAU,WACR,OAAOnjB,KAAKkjB,eAAiBziB,EAAEwO,QAAQG,oBAAsB,EAAI,GAEnEgU,UAAW,SAAmBtkB,GAC5B,IAAIO,EACJ,OAAOA,EAAIoB,EAAEoV,YAAY,QAAS,CAChC3R,KAAM,OACNmf,UAAU,EACVC,QAAQ,EACRtT,GAAIhQ,KAAKujB,eACLje,iBAAiB,UAAU,WAC/B,OAAOxG,EAAEO,EAAEmkB,OAAQ/iB,EAAEuU,WAAW3V,MAC9BoB,EAAEuU,WAAWvS,SAASghB,eAAezjB,KAAKujB,cAAe9gB,SAASkX,KAAKtD,YAAYhX,GAAIA,EAAEqkB,SAE/FH,YAAa,mBAAqB3gB,KAAKC,MAAMmO,SAAS,MAExDjT,KAAKiC,MAAO,aAAejC,KAAKiC,MAAO,WACvCS,EAAEiC,gBAAgB,eAAgB,CAChCgV,WAAY,4QACZK,WAAY,WACV,MAAO,KAAO/X,KAAK+hB,UAAY/hB,KAAK+hB,UAAYthB,EAAE6O,OAAOiT,QAAQC,sBAAmB,MAGxFzkB,KAAKiC,MAAO,WACZ,IAAIlB,EAAI,SAAW6kB,EAAKljB,GACtB,SAAS7C,IACPoC,KAAKD,YAAc4jB,EAGrB,IAAK,IAAItlB,KAAKoC,EACZpB,EAAEtB,KAAK0C,EAAGpC,KAAOslB,EAAItlB,GAAKoC,EAAEpC,IAG9B,OAAOT,EAAE4B,UAAYiB,EAAEjB,UAAWmkB,EAAInkB,UAAY,IAAI5B,EAAK+lB,EAAI5T,UAAYtP,EAAEjB,UAAWmkB,GAEtFtkB,EAAI,GAAGI,eACP7B,EAAI,GAAG0C,SAAW,SAAUxB,GAC9B,IAAK,IAAI2B,EAAI,EAAGpB,EAAIW,KAAKyB,OAAQpC,EAAIoB,EAAGA,IACtC,GAAIA,KAAKT,MAAQA,KAAKS,KAAO3B,EAAG,OAAO2B,EAGzC,OAAQ,GAGVA,EAAEmjB,WAAa,SAAUvkB,GACvB,SAAShB,EAAES,EAAG2B,GACZT,KAAKV,OAASR,EAAGkB,KAAK6D,QAAU,MAAQpD,EAAIA,EAAI,GAAIT,KAAK6jB,WAAa,GAAI7jB,KAAK8jB,SAAW9jB,KAG5F,OAAOlB,EAAET,EAAGgB,GAAIhB,EAAEmB,UAAUukB,SAAW,WACrC,IAAIjlB,EAAG2B,EAAGpB,EAAGzB,EAAGS,EAEhB,IAAK,MAAQ2B,KAAKgkB,QAAUhkB,KAAKgkB,MAAQhkB,KAAKikB,eAAgC5lB,EAAI,GAAIS,EAAI,EAAG2B,GAA/B7C,EAAIoC,KAAKgkB,OAA4BviB,OAAQhB,EAAI3B,EAAGA,IAChHO,EAAIzB,EAAEkB,GAAIT,EAAEmC,KAAKnB,EAAE8iB,WAAU,IAG/B,OAAO9jB,GACNA,EAAEmB,UAAU0kB,WAAa,WAC1B,IAAIplB,EACJ,OAAOkB,KAAKgkB,MAAQ,KAAMhkB,KAAK6jB,WAAa,GAAI,OAAS/kB,EAAIkB,KAAKmkB,YAAcrlB,EAAEolB,kBAAe,GAChG7lB,EAAEmB,UAAU4kB,wBAA0B,SAAUtlB,GACjD,IAAI2B,EACJ,OAAO,OAASA,EAAIT,KAAKqkB,kBAAkBvlB,IAAM2B,EAAEyjB,kBAAe,GACjE7lB,EAAEmB,UAAU8kB,4BAA8B,SAAUxlB,EAAG2B,GACxD,IAAIpB,EACJ,OAAQA,EAAIW,KAAKukB,uBAAuB9jB,IAAMT,KAAKwkB,gBAAgBnlB,IAAMA,EAAIW,KAAKykB,gBAAgB7jB,MAAMZ,KAAMa,WAAYb,KAAK0kB,mBAAmBrlB,EAAGoB,IAAKpB,GACzJhB,EAAEmB,UAAUilB,gBAAkB,SAAU3lB,EAAGO,EAAGzB,GAC/C,IAAIS,EACJ,OAAO,MAAQT,IAAMA,EAAI,IAAKyB,aAAaoB,EAAE2a,cAAgBxd,EAAE+mB,UAAY7lB,EAAGA,EAAI2B,EAAEmkB,iBAAkBvmB,EAAI,IAAIS,EAAEO,EAAGzB,GAAIoC,KAAKwkB,gBAAgBnmB,IAC3IA,EAAEmB,UAAUglB,gBAAkB,SAAU1lB,GACzC,OAAOA,EAAEqlB,WAAankB,KAAMlB,EAAEglB,SAAW9jB,KAAK8jB,SAAU9jB,KAAK6jB,WAAWrjB,KAAK1B,GAAIA,GAChFT,EAAEmB,UAAUqlB,iBAAmB,WAChC,IAAI/lB,EAAG2B,EAAGpB,EAAGzB,EAAGS,EAEhB,IAAKA,EAAI,GAAyBoC,EAAI,EAAGpB,GAA5BzB,EAAIoC,KAAK6jB,YAAyBpiB,OAAQpC,EAAIoB,EAAGA,IAC5D3B,EAAIlB,EAAE6C,GAAIpC,EAAEmC,KAAK1B,GAAIT,EAAIA,EAAEkP,OAAOzO,EAAE+lB,oBAGtC,OAAOxmB,GACNA,EAAEmB,UAAUslB,YAAc,WAC3B,OAAO9kB,KAAK+kB,qBAAqB/kB,KAAKV,SACrCjB,EAAEmB,UAAUulB,qBAAuB,SAAUjmB,GAC9C,IAAI2B,EACJ,OAAQA,EAAI,MAAQ3B,EAAIA,EAAEkR,QAAK,GAAUhQ,KAAK8jB,SAASkB,QAAQnN,cAAc,kBAAoBpX,EAAI,WAAQ,GAC5GpC,EAAEmB,UAAU6kB,kBAAoB,SAAUvlB,GAC3C,IAAI2B,EAAGpB,EAAGzB,EAAGS,EAEb,IAAkCoC,EAAI,EAAGpB,GAApCzB,EAAIoC,KAAK6kB,oBAAiCpjB,OAAQpC,EAAIoB,EAAGA,IAC5D,IAAIpC,EAAIT,EAAE6C,IAAMnB,SAAWR,EAAG,OAAOT,GAEtCA,EAAEmB,UAAUylB,aAAe,WAC5B,OAAOjlB,KAAK8jB,WAAa9jB,KAAOA,KAAK8jB,SAASmB,eAAiBjlB,KAAKklB,uBAAyB,MAAQllB,KAAKmlB,UAAYnlB,KAAKmlB,UAAYnlB,KAAKmlB,UAAY,QAAK,GAC5J9mB,EAAEmB,UAAU0lB,qBAAuB,WACpC,OAAiC,IAA1BllB,KAAKolB,kBACX/mB,EAAEmB,UAAU6lB,kBAAoB,WACjC,OAAOrlB,KAAKolB,kBAAmB,GAC9B/mB,EAAEmB,UAAU8lB,mBAAqB,WAClC,OAAOtlB,KAAKolB,kBAAmB,GAC9B/mB,EAAEmB,UAAU+kB,uBAAyB,SAAUzlB,GAChD,IAAI2B,EACJ,OAAO,OAASA,EAAIT,KAAKilB,gBAAkBxkB,EAAE3B,EAAEiS,oBAAiB,GAC/D1S,EAAEmB,UAAUklB,mBAAqB,SAAU5lB,EAAG2B,GAC/C,IAAIpB,EACJ,OAAO,OAASA,EAAIW,KAAKilB,gBAAkB5lB,EAAEoB,EAAEsQ,eAAiBjS,OAAI,GACnET,EAAEmB,UAAU+lB,0BAA4B,WACzC,IAAIzmB,EAAG2B,EAAGpB,EAAGhB,EAAGK,EAAGiB,EAEnB,GAAIb,EAAIkB,KAAKilB,eAAgB,CAW3B,IAAKxkB,KAVLd,EAAIK,KAAK6kB,mBAAmBtX,OAAOvN,MAAOX,EAAI,WAC5C,IAAIP,EAAG2B,EAAGpB,EAEV,IAAKA,EAAI,GAAIP,EAAI,EAAG2B,EAAId,EAAE8B,OAAQhB,EAAI3B,EAAGA,IACvCJ,EAAIiB,EAAEb,GAAIO,EAAEmB,KAAK9B,EAAEY,OAAOyR,eAG5B,OAAO1R,EAPqC,GAQzChB,EAAI,GAECS,EACRlB,EAAEG,KAAKsB,EAAGoB,GAAK,GAAKpC,EAAEmC,YAAY1B,EAAE2B,IAGtC,OAAOpC,IAERA,EAhFU,CAiFboC,EAAE8O,cACJxR,KAAKiC,MAAO,WACZ,IAAIlB,EAAI,SAAW0mB,EAAK/kB,GACtB,SAAS7C,IACPoC,KAAKD,YAAcylB,EAGrB,IAAK,IAAInnB,KAAKoC,EACZpB,EAAEtB,KAAK0C,EAAGpC,KAAOmnB,EAAInnB,GAAKoC,EAAEpC,IAG9B,OAAOT,EAAE4B,UAAYiB,EAAEjB,UAAWgmB,EAAIhmB,UAAY,IAAI5B,EAAK4nB,EAAIzV,UAAYtP,EAAEjB,UAAWgmB,GAEtFnmB,EAAI,GAAGI,eAEXgB,EAAEmkB,gBAAkB,SAAUnkB,GAC5B,SAASpB,IACPA,EAAE0Q,UAAUhQ,YAAYa,MAAMZ,KAAMa,WAAYb,KAAKylB,YAAczlB,KAAKV,OAAQU,KAAK2kB,UAAY3kB,KAAK6D,QAAQ8gB,iBAAkB3kB,KAAK6D,QAAQ8gB,UAG/I,OAAO7lB,EAAEO,EAAGoB,GAAIpB,EAAEG,UAAUkmB,cAAgB,WAC1C,IAAI5mB,EAAG2B,EAAGpB,EAAGzB,EACb,IAAKoC,KAAK6jB,WAAWpiB,OAAQ,IAAwC3C,EAAI,EAAG2B,GAA1C7C,EAAIoC,KAAKylB,YAAY9J,cAA2Bla,OAAQhB,EAAI3B,EAAGA,IAC/FO,EAAIzB,EAAEkB,GAAIkB,KAAKskB,4BAA4BtkB,KAAK2kB,UAAWtlB,EAAGW,KAAK6D,SAErE,OAAO7D,KAAK6jB,YACXxkB,EAAEG,UAAUykB,YAAc,WAC3B,IAAInlB,EAAG2B,EAAGpB,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAG6B,EAEzB,IAAK1C,EAAIkB,KAAK2lB,yBAAoDllB,EAAI,EAAG7C,GAAjC+B,EAAIK,KAAK0lB,iBAA8BjkB,OAAQ7D,EAAI6C,EAAGA,IAC5F,IAAiCpB,EAAI,EAAGhB,GAAzBmD,EAAN7B,EAAEc,GAAUsjB,YAAyBtiB,OAAQpD,EAAIgB,EAAGA,IAC3DX,EAAI8C,EAAEnC,GAAIP,EAAEuX,YAAY3X,GAI5B,MAAO,CAACI,IACPO,EAAEG,UAAUmmB,uBAAyB,SAAU7mB,GAChD,OAAO,MAAQA,IAAMA,EAAIkB,KAAKylB,YAAY7J,YAAa5b,KAAK0lB,gBAAgB,GAAGC,uBAAuB7mB,IACrGO,EAvBe,CAwBlBoB,EAAEmjB,aACJ7lB,KAAKiC,MAAO,WACZ,IAAIlB,EAAI,SAAW8mB,EAAKnlB,GACtB,SAAS7C,IACPoC,KAAKD,YAAc6lB,EAGrB,IAAK,IAAIvnB,KAAKoC,EACZpB,EAAEtB,KAAK0C,EAAGpC,KAAOunB,EAAIvnB,GAAKoC,EAAEpC,IAG9B,OAAOT,EAAE4B,UAAYiB,EAAEjB,UAAWomB,EAAIpmB,UAAY,IAAI5B,EAAKgoB,EAAI7V,UAAYtP,EAAEjB,UAAWomB,GAEtFvmB,EAAI,GAAGI,eAEXgB,EAAEolB,WAAa,SAAUplB,GACvB,SAASpB,IACP,OAAOA,EAAE0Q,UAAUhQ,YAAYa,MAAMZ,KAAMa,WAG7C,OAAO/B,EAAEO,EAAGoB,GAAIpB,EALH,CAMboB,EAAE8O,cACJxR,KAAKiC,MAAO,WACZ,IAAIlB,EACAO,EACAzB,EACAS,EACAK,EACAiB,EAMAgC,EAAI,SAAW7C,EAAG2B,GACpB,SAASpB,IACPW,KAAKD,YAAcjB,EAGrB,IAAK,IAAIlB,KAAK6C,EACZxC,EAAEF,KAAK0C,EAAG7C,KAAOkB,EAAElB,GAAK6C,EAAE7C,IAG5B,OAAOyB,EAAEG,UAAYiB,EAAEjB,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEiR,UAAYtP,EAAEjB,UAAWV,GAElFb,EAAI,GAAGwB,eACP5B,EAAI,GAAGyC,SAAW,SAAUxB,GAC9B,IAAK,IAAI2B,EAAI,EAAGpB,EAAIW,KAAKyB,OAAQpC,EAAIoB,EAAGA,IACtC,GAAIA,KAAKT,MAAQA,KAAKS,KAAO3B,EAAG,OAAO2B,EAGzC,OAAQ,GAGV3B,EAAI2B,EAAEuT,2BAA4BpW,EAAI6C,EAAE4W,oBAAqBhY,EAAIoB,EAAEgW,wBAAyBpY,EAAIoC,EAAE0Q,gBAAiBzS,EAAI+B,EAAEiR,sBAAuB/R,EAAIc,EAAEmV,QAASnV,EAAE0G,iBAAmB,SAAU1G,GAC5L,SAASxC,EAAEa,GACTkB,KAAKglB,QAAUlmB,EAAGkB,KAAK8lB,UA3BnB,SAAWhnB,EAAG2B,GACpB,OAAO,WACL,OAAO3B,EAAE8B,MAAMH,EAAGI,YAyBiBW,CAAExB,KAAK8lB,UAAW9lB,MAAOA,KAAKyD,SAAW,IAAIxD,OAAOkH,iBAAiBnH,KAAK8lB,WAAY9lB,KAAK+lB,QAGhI,IAAIC,EAAItmB,EAAMmF,EAEd,OAAOlD,EAAE1D,EAAGwC,GAAiC,KAA7Bf,EAAI,qBAAmC,IAAKmF,EAAI,CAC9DgB,YAAY,EACZD,WAAW,EACXE,eAAe,EACfG,uBAAuB,EACvBnC,SAAS,GACR7F,EAAEuB,UAAUumB,MAAQ,WACrB,OAAO/lB,KAAKic,QAASjc,KAAKyD,SAASgC,QAAQzF,KAAKglB,QAASngB,IACxD5G,EAAEuB,UAAUymB,KAAO,WACpB,OAAOjmB,KAAKyD,SAAS4C,cACpBpI,EAAEuB,UAAUsmB,UAAY,SAAUhnB,GACnC,IAAI2B,EAAGpB,EACP,OAAQoB,EAAIT,KAAKkmB,WAAW1lB,KAAKI,MAAMH,EAAGT,KAAKmmB,yBAAyBrnB,IAAKkB,KAAKkmB,UAAUzkB,QAAU,OAASpC,EAAIW,KAAKomB,WAAa,mBAAqB/mB,EAAEgnB,kBAAoBhnB,EAAEgnB,iBAAiBrmB,KAAKsmB,sBAAuBtmB,KAAKic,cAAW,GAC9Ohe,EAAEuB,UAAUyc,MAAQ,WACrB,OAAOjc,KAAKkmB,UAAY,IACvBjoB,EAAEuB,UAAU2mB,yBAA2B,SAAUrnB,GAClD,IAAI2B,EAAGpB,EAAGzB,EAAGS,EAEb,IAAKA,EAAI,GAAIoC,EAAI,EAAGpB,EAAIP,EAAE2C,OAAQpC,EAAIoB,EAAGA,IACvC7C,EAAIkB,EAAE2B,GAAIT,KAAKumB,sBAAsB3oB,IAAMS,EAAEmC,KAAK5C,GAGpD,OAAOS,GACNJ,EAAEuB,UAAU+mB,sBAAwB,SAAUznB,GAC/C,IAAI2B,EAAGpB,EAAGzB,EAAGS,EACb,GAAI2B,KAAKwmB,cAAc1nB,EAAEqF,QAAS,OAAO,EAEzC,IAA0C1D,EAAI,EAAGpB,GAA5ChB,EAAI2B,KAAKymB,wBAAwB3nB,IAAiB2C,OAAQpC,EAAIoB,EAAGA,IACpE,GAAI7C,EAAIS,EAAEoC,GAAIT,KAAK0mB,kBAAkB9oB,GAAI,OAAO,EAGlD,OAAO,GACNK,EAAEuB,UAAUknB,kBAAoB,SAAU5nB,GAC3C,OAAOA,IAAMkB,KAAKglB,UAAYhlB,KAAKwmB,cAAc1nB,KAAOlB,EAAEkB,IACzDb,EAAEuB,UAAUgnB,cAAgB,SAAU/lB,GACvC,OAAO3B,EAAE2B,EAAG,CACVkT,iBApCyC,yBAsC1C1V,EAAEuB,UAAUinB,wBAA0B,SAAU3nB,GACjD,IAAI2B,EAEJ,OAAQA,EAAI,GAAI3B,EAAEoF,MAChB,IAAK,aACHpF,EAAE0F,gBAAkB9E,GAAKe,EAAED,KAAK1B,EAAEqF,QAClC,MAEF,IAAK,gBACH1D,EAAED,KAAK1B,EAAEqF,OAAOP,YAAanD,EAAED,KAAK1B,EAAEqF,QACtC,MAEF,IAAK,YACH1D,EAAED,KAAKI,MAAMH,EAAG3B,EAAEsF,YAAa3D,EAAED,KAAKI,MAAMH,EAAG3B,EAAEuF,cAGrD,OAAO5D,GACNxC,EAAEuB,UAAU8mB,mBAAqB,WAClC,OAAOtmB,KAAK2mB,0BACX1oB,EAAEuB,UAAUmnB,uBAAyB,WACtC,IAAI7nB,EAAG2B,EAAGpB,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAG6B,EAAGG,EAAG1D,EAAGkD,EAElC,IAAiD9B,GAA5CmC,EAAIxB,KAAK4mB,mCAAyCC,UAAWxoB,EAAImD,EAAEslB,UAAoEpoB,EAAI,EAAGiB,GAAxBgC,GAAxCR,EAAInB,KAAK+mB,+BAAqCF,WAAwBplB,OAAQ9B,EAAIjB,EAAGA,IACtK+B,EAAIkB,EAAEjD,GAAIb,EAAEE,KAAKsB,EAAGoB,GAAK,GAAKpB,EAAEmB,KAAKC,GAGvC,OAAOpC,EAAEmC,KAAKI,MAAMvC,EAAG8C,EAAE2lB,WAAY7oB,EAAI,IAAKa,EAAIO,EAAEoR,KAAK,OAASxS,EAAE+oB,UAAYloB,IAAKlB,EAAIS,EAAEoS,KAAK,OAASxS,EAAEgpB,YAAcrpB,GAAIK,GAC5HA,EAAEuB,UAAU0nB,mBAAqB,SAAUpoB,GAC5C,IAAI2B,EAAGpB,EAAGzB,EAAGS,EAAGK,EAEhB,IAAyBA,EAAI,GAAI+B,EAAI,EAAGpB,GAAnChB,EAAI2B,KAAKkmB,WAAgCzkB,OAAQpC,EAAIoB,EAAGA,KAC3D7C,EAAIS,EAAEoC,IAAMyD,OAASpF,GAAKJ,EAAE8B,KAAK5C,GAGnC,OAAOc,GACNT,EAAEuB,UAAUunB,4BAA8B,WAC3C,IAAIjoB,EAAG2B,EAAG7C,EAAGc,EAAGiB,EAAG6B,EAAGG,EAAM9D,EAAG6B,EAAGxB,EAElC,IAAKY,EAAI,GAAI6C,EAAI,GAA8ClB,EAAI,EAAG/B,GAAjD8C,EAAIxB,KAAKknB,mBAAmB,cAA2BzlB,OAAQ/C,EAAI+B,EAAGA,IACzFd,EAAI6B,EAAEf,GAAI3B,EAAE0B,KAAKI,MAAM9B,EAAGa,EAAEyE,YAAazC,EAAEnB,KAAKI,MAAMe,EAAGhC,EAAE0E,cAG7D,OAAW,IAAMvF,EAAE2C,QAAU,IAAME,EAAEF,QAAUpC,EAAEsC,EAAE,KAAUjC,EAAI,GAAIxB,EAAI,CAAC,QAAUwB,EAAIsmB,EAAGlnB,GAAIZ,EAAI8nB,EAAGrkB,IAAK,CACzGklB,UAAW,WACT,IAAI/nB,EAAG2B,EAAGpB,EAEV,IAAKA,EAAI,GAAIzB,EAAIkB,EAAI,EAAG2B,EAAIf,EAAE+B,OAAQhB,EAAI3B,EAAGlB,IAAMkB,GACjDjB,EAAI6B,EAAE9B,MAAUM,EAAEN,IAAMyB,EAAEmB,KAAKnC,EAAER,IAGnC,OAAOwB,EAPE,GASXynB,UAAW,WACT,IAAIhoB,EAAG2B,EAAGpB,EAEV,IAAKA,EAAI,GAAIzB,EAAIkB,EAAI,EAAG2B,EAAIvC,EAAEuD,OAAQhB,EAAI3B,EAAGlB,IAAMkB,GACjDjB,EAAIK,EAAEN,MAAU8B,EAAE9B,IAAMyB,EAAEmB,KAAKnC,EAAER,IAGnC,OAAOwB,EAPE,KAUZpB,EAAEuB,UAAUonB,gCAAkC,WAC/C,IAAI9nB,EAAG2B,EAAGpB,EAAGzB,EAAG+B,EAAG6B,EAAGG,EAAG1D,EACzB,OAAOwC,EAAIT,KAAKknB,mBAAmB,kBAAoBzlB,SAAWxD,EAAIwC,EAAE,GAAIpB,EAAIoB,EAAEA,EAAEgB,OAAS,GAAI9B,EAAItB,EAAEJ,EAAEyG,UAAW9G,EAAIS,EAAEgB,EAAE8E,OAAOoB,MAAoBzG,GAAb0C,EAAI9C,EAAEiB,EAAG/B,IAAU+T,MAAOhQ,EAAIH,EAAEoQ,SAAU,CAClLiV,UAAW/nB,EAAI,CAACA,GAAK,GACrBgoB,UAAWnlB,EAAI,CAACA,GAAK,KAEtBqkB,EAAK,SAAWlnB,GACjB,IAAI2B,EAAGpB,EAAGzB,EAAGS,EAEb,IAAK,MAAQS,IAAMA,EAAI,IAAKT,EAAI,GAAIoC,EAAI,EAAGpB,EAAIP,EAAE2C,OAAQpC,EAAIoB,EAAGA,IAC9D,QAAQ7C,EAAIkB,EAAE2B,IAAM6I,UAClB,KAAKC,KAAKoL,UACRtW,EAAEmC,KAAK5C,EAAE2H,MACT,MAEF,KAAKgE,KAAKC,aACR,OAAS7J,EAAE/B,GAAKS,EAAEmC,KAAK,MAAQnC,EAAEmC,KAAKI,MAAMvC,EAAG2nB,EAAGpoB,EAAEgX,aAI1D,OAAOvW,GACNJ,EAhI+K,CAiIlLwC,EAAE8O,cACJxR,KAAKiC,MAAO,WACZ,IAAIlB,EAAI,SAAWqoB,EAAM1mB,GACvB,SAAS7C,IACPoC,KAAKD,YAAconB,EAGrB,IAAK,IAAI9oB,KAAKoC,EACZpB,EAAEtB,KAAK0C,EAAGpC,KAAO8oB,EAAK9oB,GAAKoC,EAAEpC,IAG/B,OAAOT,EAAE4B,UAAYiB,EAAEjB,UAAW2nB,EAAK3nB,UAAY,IAAI5B,EAAKupB,EAAKpX,UAAYtP,EAAEjB,UAAW2nB,GAExF9nB,EAAI,GAAGI,eAEXgB,EAAE2mB,0BAA4B,SAAU3mB,GACtC,SAASpB,EAAEP,GACTkB,KAAK+iB,KAAOjkB,EAGd,OAAOA,EAAEO,EAAGoB,GAAIpB,EAAEG,UAAUsd,QAAU,SAAUhe,GAC9C,IAAI2B,EACJ,OAAOA,EAAI,IAAI4mB,YAAgBC,QAAU,WACvC,OAAOxoB,GAAE,IACR2B,EAAE8mB,OAAS,SAAUloB,GACtB,OAAO,WACLoB,EAAE6mB,QAAU,KAEZ,IACE7mB,EAAE+mB,QACF,MAAO5pB,IAET,OAAOkB,GAAE,EAAIO,EAAE0jB,OARL,CAUZ/iB,MAAOS,EAAEgnB,kBAAkBznB,KAAK+iB,OACjC1jB,EApByB,CAqB5BoB,EAAE4b,YACJte,KAAKiC,MAAO,WACZ,IAAIlB,EACAO,EACAzB,EAAI,SAAWkB,EAAG2B,GACpB,SAASpB,IACPW,KAAKD,YAAcjB,EAGrB,IAAK,IAAIlB,KAAK6C,EACZpC,EAAEN,KAAK0C,EAAG7C,KAAOkB,EAAElB,GAAK6C,EAAE7C,IAG5B,OAAOyB,EAAEG,UAAYiB,EAAEjB,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEiR,UAAYtP,EAAEjB,UAAWV,GAElFT,EAAI,GAAGoB,eAEXX,EAAI2B,EAAEiG,YAAarH,EAAIoB,EAAE8T,qBAAsB9T,EAAEinB,gBAAkB,SAAUrpB,GAC3E,SAASK,EAAEW,GACT,IAAIzB,EAGJ,IAAKA,KAFLoC,KAAKglB,QAAU3lB,EAAGW,KAAK2nB,iBAAmB,IAAIlnB,EAAE0G,iBAAiBnH,KAAKglB,SAAUhlB,KAAK2nB,iBAAiBvB,SAAWpmB,KAEvGA,KAAK4nB,OACb9oB,EAAElB,EAAG,CACH8V,UAAW1T,KAAKglB,QAChBpR,aAAc5T,KAAK6nB,WAAWjqB,KAKpC,OAAOA,EAAEc,EAAGL,GAAIK,EAAEc,UAAUooB,OAAS,GAAIlpB,EAAEc,UAAU6mB,iBAAmB,aAAgB3nB,EAAEc,UAAUsoB,2BAA6B,WAC/H,OAAO9nB,KAAK2nB,iBAAiB1B,QAC5BvnB,EAAEc,UAAUuoB,0BAA4B,WACzC,OAAO/nB,KAAK2nB,iBAAiB5B,SAC5BrnB,EAAEc,UAAUwoB,cAAgB,WAC7B,IAAIlpB,EACJ,OAAO,OAASA,EAAIkB,KAAKomB,WAAa,mBAAqBtnB,EAAEmpB,gCAAkCnpB,EAAEmpB,uCAAoC,GACpIvpB,EAAEc,UAAU0oB,eAAiB,WAC9B,IAAIppB,EACJ,OAAO,OAASA,EAAIkB,KAAKomB,WAAa,mBAAqBtnB,EAAEqpB,kCAAoCrpB,EAAEqpB,mCAAoCnoB,KAAKgoB,iBAC3ItpB,EAAEc,UAAUse,YAAc,SAAUhf,GACrC,IAAIO,EAAGzB,EACP,OAAOA,EAAI,WACT,IAAIA,EAAGS,EAAGK,EAEV,IAAKA,EAAI,GAAId,EAAI,EAAGS,EAAIS,EAAE2C,OAAQpD,EAAIT,EAAGA,IACvCyB,EAAIP,EAAElB,GAAIc,EAAE8B,KAAK,IAAIC,EAAE2mB,0BAA0B/nB,IAGnD,OAAOX,EAPE,GAQN6D,QAAQR,IAAInE,GAAG2D,KAAK,SAAUzC,GACjC,OAAO,SAAU2B,GACf,OAAO3B,EAAEspB,aAAY,WACnB,IAAItpB,EAAGO,EACP,OAAO,OAASP,EAAIkB,KAAKomB,WAAatnB,EAAEupB,iCAAkC,OAAShpB,EAAIW,KAAKsoB,YAAcjpB,EAAEkpB,YAAY9nB,GAAIT,KAAKgoB,oBAJ9G,CAOvBhoB,QACDtB,EAAEc,UAAUqoB,WAAa,SAAU/oB,GACpC,OAAO,SAAU2B,GACf,OAAO,SAAU7C,GACf,OAAOA,EAAEqK,sBAAmB,EAASxH,EAAE2nB,aAAY,WACjD,OAAO/oB,EAAEW,KAAKglB,cAAW,GAAUhlB,KAAKwoB,UAAY1pB,EAAGkB,KAAK4nB,OAAO9oB,GAAGf,KAAKiC,KAAMpC,QAHhF,CAMLoC,OACDtB,EAAEc,UAAU4oB,YAAc,SAAUtpB,GACrC,IAAI2B,EAAGpB,EAEP,IACE,OAAO,OAASoB,EAAIT,KAAKomB,WAAa3lB,EAAEgoB,iCAAkC3pB,EAAEf,KAAKiC,MACjF,QACA,OAASX,EAAIW,KAAKomB,WAAa/mB,EAAEqpB,kCAElChqB,EAAEc,UAAUmpB,eAAiB,SAAU7pB,EAAG2B,GAC3C,IAAIpB,EACJ,OAAOA,EAAIoD,SAASgL,cAAc,MAAQ+T,KAAO1iB,EAAGO,EAAE+W,YAAc,MAAQ3V,EAAIA,EAAI3B,EAAGO,EAAEupB,WACxFlqB,EA5D8D,CA6DjE+B,EAAE8O,cACJxR,KAAKiC,MAAO,WACZ,IAAIlB,EACAO,EACAzB,EACAS,EACAK,EACAiB,EACA6B,EACAG,EACA1D,EACAJ,EACAsD,EACAzB,EAEAmF,EAAI,SAAW/F,EAAG2B,GACpB,SAASpB,IACPW,KAAKD,YAAcjB,EAGrB,IAAK,IAAIlB,KAAK6C,EACZ2C,EAAErF,KAAK0C,EAAG7C,KAAOkB,EAAElB,GAAK6C,EAAE7C,IAG5B,OAAOyB,EAAEG,UAAYiB,EAAEjB,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEiR,UAAYtP,EAAEjB,UAAWV,GAElFsE,EAAI,GAAG3D,eACPzB,EAAI,GAAGsC,SAAW,SAAUxB,GAC9B,IAAK,IAAI2B,EAAI,EAAGpB,EAAIW,KAAKyB,OAAQpC,EAAIoB,EAAGA,IACtC,GAAIA,KAAKT,MAAQA,KAAKS,KAAO3B,EAAG,OAAO2B,EAGzC,OAAQ,GAGVxC,EAAIwC,EAAEoV,YAAahY,EAAI4C,EAAE4R,gBAAqB5R,EAAEmV,QAASvW,EAAIoB,EAAEwO,QAASzN,EAAIf,EAAEqZ,0BAA2Bzb,EAAIoC,EAAEmZ,uBAAwBhc,EAAI6C,EAAE8Y,wBAAyB5X,EAAIlB,EAAE6O,OAAO0T,SAAUviB,EAAEooB,sBAAwB,SAAUxpB,GAC/N,SAASM,IACPA,EAAEoQ,UAAUhQ,YAAYa,MAAMZ,KAAMa,WAAYb,KAAK8oB,oBAGvD,IAAI5qB,EACJ,OAAO2G,EAAElF,EAAGN,GAAInB,EAAI,EAAGyB,EAAEH,UAAUupB,gBAAkB,SAAUjqB,GAC7D,IAAI2B,EAAGpB,EAGP,IAAKoB,KAFL,MAAQ3B,IAAMA,EAAI,IAAKkB,KAAKgpB,aAAaR,UAAYxoB,KAAKwoB,UAEhD1pB,EACRO,EAAIP,EAAE2B,GAAIT,KAAKgpB,aAAavoB,GAAKpB,EAGnC,OAAOW,KAAKgpB,cACXrpB,EAAEH,UAAUspB,kBAAoB,WACjC,OAAO9oB,KAAKgpB,aAAe,IAC1BrpB,EAAEH,UAAUyc,MAAQ,WACrB,OAAOjc,KAAK8oB,oBAAqBroB,EAAEyY,wBAAwB+C,SAC1Dtc,EAAEH,UAAU6mB,iBAAmB,SAAUvnB,GAC1C,IAAI2B,EACJ,OAAOT,KAAKipB,cAAgB,OAASxoB,EAAIT,KAAKomB,WAAa,mBAAqB3lB,EAAEyoB,sCAAwCzoB,EAAEyoB,6CAA0C,EAASlpB,KAAKooB,aAAY,WAC9L,OAAOpoB,KAAKumB,sBAAsBznB,KAAOkB,KAAKmpB,mBAAmBrqB,GAAKkB,KAAKgoB,gBAAkBhoB,KAAKkoB,kBAAmBloB,KAAKic,YAE3Htc,EAAEH,UAAU2pB,mBAAqB,SAAUrqB,GAC5C,IAAI2B,EAAGpB,EAAGzB,EAAGS,EAAGK,EAAM8C,EAAGG,EAAG1D,EAAGJ,EAC/B,OAAO2D,EAAI1C,EAAEkoB,UAAWrlB,EAAI7C,EAAEmoB,cAAajnB,KAAKgpB,aAAaI,iBAAuB3oB,EAAI,MAAQe,EAAIA,IAAMxB,KAAKgpB,aAAahC,WAAahnB,KAAKgpB,aAAahC,UAAW3nB,EAAI,MAAQsC,EAAI3B,KAAKgpB,aAAaK,WAAarpB,KAAKgpB,aAAaK,UAAkDxrB,EAAI,OAAS8D,IAAMtC,OAA1DpB,GAAK,OAASuD,GAAK,QAAUA,KAAOf,KAAmC5C,GAAKA,IAAMI,KAASI,EAAI2B,KAAKspB,sBAAwB1rB,EAAIK,EAAIuD,EAAE4P,QAAQ,MAAO,IAAI3P,SAAW,GAAK,MAAQD,EAAIA,EAAEC,YAAS,IAAW,EAAG,OAAS/C,EAAIsB,KAAKsoB,WAAa5pB,EAAE6qB,qBAAqBlrB,EAAE,GAAKT,QAAK,KAAe6C,GAAKpB,IACrhBM,EAAEH,UAAU+mB,sBAAwB,SAAUznB,GAC/C,IAAI2B,EAAGpB,EAAGzB,EACV,OAAOA,EAAIU,OAAOgU,KAAKxT,GAAG2C,OAAS,EAAGhB,EAAI,MAAQ,OAASpB,EAAIW,KAAKwpB,kBAAoBnqB,EAAEoqB,kBAAe,GAAS7rB,IAAM6C,GACvHd,EAAEH,UAAUooB,OAAS,CACtB8B,QAAS,SAAiB5qB,GACxB,IAAIO,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAG1B,EAAGJ,EAAGsD,EAAGzB,EAE5B,GAAIM,KAAKipB,eAAiBjpB,KAAK8oB,oBAAqB9oB,KAAKgpB,aAAaW,UAAW,EAAIjrB,EAAIiD,EAAE7C,EAAE8qB,SAAU,CACrG,IAAKhsB,EAAIoC,KAAKsS,KAA4CjU,EAAI,EAAGJ,GAA7CkD,EAAI,CAAC,OAAQ,MAAO,QAAS,SAAsBM,OAAQxD,EAAII,EAAGA,IAC1ES,GAAVjB,EAAIsD,EAAE9C,IAAU,SAAW,SAAWR,IAAMA,EAAI,WAAYD,EAAI,MAAQA,EAAIA,EAAEC,QAAK,GAGrF,OAAS,MAAQD,EAAIA,EAAEc,QAAK,KAAYsB,KAAK+oB,gBAAgB,CAC3Dc,QAASnrB,IACP+B,EAAEyY,wBAAwB+C,QAASre,EAAEc,GAAGX,KAAKiC,KAAMlB,IAGzD,OAAO0C,EAAE1C,KAAOO,EAAIgG,OAAOuY,aAAa9e,EAAE8qB,SAASvc,iBAAmB1N,EAAI,WACxE,IAAIc,EAAGpB,EAAGzB,EAAGS,EAEb,IAA2BA,EAAI,GAAIoC,EAAI,EAAGpB,GAArCzB,EAAI,CAAC,MAAO,UAA+B6D,OAAQpC,EAAIoB,EAAGA,IACnD3B,GAAVjB,EAAID,EAAE6C,IAAU,QAAUpC,EAAEmC,KAAK3C,GAGnC,OAAOQ,EAPiE,GAQrEsB,EAAEa,KAAKnB,GAAI,OAASK,EAAIM,KAAKomB,UAAY1mB,EAAEoqB,yCAAyCnqB,QAAK,GAAUb,EAAEkJ,sBAAmB,GAE/H+hB,SAAU,SAAkBjrB,GAC1B,IAAI2B,EAAGpB,EAAGzB,EACV,GAAI,MAAQoC,KAAKgpB,aAAaR,YAAc1pB,EAAEkb,WAAalb,EAAEmb,SAAWnb,EAAEkrB,QAAS,OAAQpsB,EAAI8B,EAAEZ,KAAO,OAAS2B,EAAIT,KAAKomB,WAAa3lB,EAAEwpB,mCAAoC,OAAS5qB,EAAIW,KAAKsoB,YAAcjpB,EAAE6qB,aAAatsB,GAAIoC,KAAK+oB,gBAAgB,CACnP/B,UAAWppB,EACXyrB,UAAWrpB,KAAKmqB,8BACZ,GAERC,UAAW,SAAmBtrB,GAC5B,IAAI2B,EAAGpB,EAAGzB,EAAGS,EACb,OAAOoC,EAAI3B,EAAEyG,MAAMlH,EAAI2B,KAAKgpB,aAAahC,YAAgB3oB,IAAMoC,GAAKpC,EAAEgsB,gBAAkB5pB,GAAKpB,EAAIW,KAAKspB,mBAAoBtpB,KAAKsqB,iBAAiB,CAACjrB,EAAE,GAAIA,EAAE,GAAKhB,EAAEoD,SAAU,OAAS7D,EAAIoC,KAAKsoB,YAAc1qB,EAAEssB,aAAazpB,GAAIT,KAAK+oB,gBAAgB,CAChP/B,UAAWvmB,IACTT,KAAKsqB,iBAAiBjrB,SAAM,GAElCkrB,UAAW,SAAmBzrB,GAC5B,OAAOA,EAAEkJ,kBAEXwiB,UAAW,SAAmB1rB,GAC5B,IAAI2B,EACJ,OAAW3B,EAAEqF,OAAQnE,KAAKyqB,iCAAiC3rB,EAAE4rB,cAAe1qB,KAAK2qB,aAAe3qB,KAAKspB,mBAAoB,OAAS7oB,EAAIT,KAAKomB,WAAa,mBAAqB3lB,EAAEmqB,4BAA8BnqB,EAAEmqB,mCAAgC,GAEjPC,SAAU,SAAkB/rB,GAC1B,IAAI2B,EAAGpB,EACP,OAAQW,KAAK2qB,eAAiB3qB,KAAK8qB,sBAAsBhsB,EAAE4rB,gBAAkB5rB,EAAEkJ,iBAAkBvH,EAAI,CACnGkE,EAAG7F,EAAEisB,QACL3lB,EAAGtG,EAAEksB,SACJntB,EAAE4C,EAAGT,KAAKirB,qBAAkB,GAAUjrB,KAAKirB,cAAgBxqB,EAAG,OAASpB,EAAIW,KAAKomB,WAAa,mBAAqB/mB,EAAE6rB,uCAAyC7rB,EAAE6rB,uCAAuClrB,KAAKirB,oBAAiB,IAEjOE,QAAS,WACP,IAAIrsB,EACJ,OAAO,OAASA,EAAIkB,KAAKomB,WAAa,mBAAqBtnB,EAAEssB,8BAAgCtsB,EAAEssB,+BAAgCprB,KAAK2qB,aAAe,KAAM3qB,KAAKirB,cAAgB,MAEhLI,KAAM,SAAcvsB,GAClB,IAAIO,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAG6B,EAAGG,EAAG1D,EAAGJ,EAC5B,OAAOiB,EAAEkJ,iBAAkB3J,EAAI,OAASsB,EAAIb,EAAE4rB,cAAgB/qB,EAAE6jB,WAAQ,EAAQ9kB,EAAI,CAClFiG,EAAG7F,EAAEisB,QACL3lB,EAAGtG,EAAEksB,SACJ,OAASxpB,EAAIxB,KAAKsoB,YAAc9mB,EAAE8pB,+BAA+B5sB,IAAK,MAAQL,EAAIA,EAAEoD,YAAS,GAAUzB,KAAK8d,YAAYzf,GAAK2B,KAAK2qB,cAAgB,OAAShpB,EAAI3B,KAAKomB,WAAazkB,EAAE4pB,8BAA+B,OAASttB,EAAI+B,KAAKsoB,YAAcrqB,EAAEutB,kBAAkBxrB,KAAK2qB,cAAe3qB,KAAK2qB,aAAe,KAAM3qB,KAAKgoB,kBAAoBpqB,EAAIkB,EAAE4rB,aAAalR,QAAQ,kCAAoCna,EAAIoB,EAAEohB,SAAS5R,eAAerS,GAAI,OAASC,EAAImC,KAAKsoB,YAAczqB,EAAE4tB,eAAepsB,GAAIW,KAAKgoB,iBAAkBhoB,KAAK2qB,aAAe,KAAM3qB,KAAKirB,cAAgB,MAE9iBS,IAAK,SAAa5sB,GAChB,IAAI2B,EAAGpB,EACP,OAAQ,OAASoB,EAAIT,KAAKsoB,WAAa7nB,EAAE0pB,2BAAwB,KAAYnqB,KAAKyqB,iCAAiC3rB,EAAE6sB,gBAAkB7sB,EAAEkJ,iBAAkB,OAAS3I,EAAIW,KAAKomB,WAAa/mB,EAAEusB,6BAA8B5rB,KAAK6rB,kBAAkB,YAAa/sB,EAAEmJ,kBAAoBjI,KAAKgoB,qBAAkB,GAE7S8D,KAAM,SAAchtB,GAClB,IAAI2B,EACJ,OAAQ,OAASA,EAAIT,KAAKsoB,WAAa7nB,EAAE0pB,2BAAwB,IAAWnqB,KAAKyqB,iCAAiC3rB,EAAE6sB,eAAiB7sB,EAAEkJ,sBAAmB,GAE5J+jB,MAAO,SAAejtB,GACpB,IAAIO,EAAGhB,EAAGsB,EAAG6B,EAAGG,EAAG1D,EAAGJ,EAAG6B,EAAGmF,EAAGzB,EAAG+B,EAAGC,EAAGjC,EAAGD,EAAGe,EAAGU,EAAGC,EAAGqG,EAAGM,EAAGygB,EAAGC,EAAGC,EAAGC,EACtE,OAAO9sB,EAAI,OAASK,EAAIZ,EAAE6sB,eAAiBjsB,EAAIZ,EAAEstB,kBAAmBvuB,EAAI,CACtEwuB,UAAWhtB,GACV,MAAQA,GAAK8B,EAAErC,QAAUkB,KAAKssB,gCAAgC,SAAUxtB,GACzE,OAAO,SAAU2B,GACf,IAAIpB,EAAGzB,EAAGS,EACV,OAAOR,EAAEqG,KAAO,YAAarG,EAAE0uB,KAAO9rB,EAAG,OAASpB,EAAIP,EAAEsnB,WAAa/mB,EAAEmtB,yBAAyB3uB,GAAI,OAASD,EAAIkB,EAAEwpB,YAAc1qB,EAAE6uB,WAAW5uB,EAAE0uB,MAAOztB,EAAEkpB,gBAAiB,OAAS3pB,EAAIS,EAAEsnB,UAAY/nB,EAAEquB,wBAAwB7uB,QAAK,GAHvK,CAK/DmC,SAAWwB,EAAInC,EAAEma,QAAQ,SAAW3b,EAAEqG,KAAO,YAAaioB,GAAKluB,EAAIoB,EAAEma,QAAQ,oBAAsB/Y,EAAE+Q,0BAA0BvT,GAAGuc,OAAShZ,EAAG3D,EAAE0uB,KAAOvsB,KAAK2oB,eAAennB,EAAG2qB,GAAI,OAAStnB,EAAI7E,KAAKomB,WAAavhB,EAAE2nB,yBAAyB3uB,GAAImC,KAAK+oB,gBAAgB,CACrQ/B,UAAWmF,EACX9C,UAAWrpB,KAAKmqB,wBACd,OAASlmB,EAAIjE,KAAKsoB,YAAcrkB,EAAEwoB,WAAW5uB,EAAE0uB,MAAOvsB,KAAKgoB,gBAAiB,OAASrjB,EAAI3E,KAAKomB,WAAazhB,EAAE+nB,wBAAwB7uB,IAAMD,EAAEyB,IAAMxB,EAAEqG,KAAO,aAAcrG,EAAE8uB,OAASttB,EAAEma,QAAQ,cAAe,OAAS5U,EAAI5E,KAAKomB,WAAaxhB,EAAE4nB,yBAAyB3uB,GAAImC,KAAK+oB,gBAAgB,CACnS/B,UAAWnpB,EAAE8uB,OACbtD,UAAWrpB,KAAKmqB,wBACd,OAASlf,EAAIjL,KAAKsoB,YAAcrd,EAAEif,aAAarsB,EAAE8uB,QAAS3sB,KAAKgoB,gBAAiB,OAASzc,EAAIvL,KAAKomB,WAAa7a,EAAEmhB,wBAAwB7uB,KAAO8D,EAAItC,EAAEma,QAAQ,eAAiB3b,EAAEqG,KAAO,YAAarG,EAAE0uB,KAAO5qB,EAAG,OAASqqB,EAAIhsB,KAAKomB,WAAa4F,EAAEQ,yBAAyB3uB,GAAI,OAASouB,EAAIjsB,KAAKsoB,YAAc2D,EAAEQ,WAAW5uB,EAAE0uB,MAAOvsB,KAAKgoB,gBAAiB,OAASkE,EAAIlsB,KAAKomB,WAAa8F,EAAEQ,wBAAwB7uB,IAAMG,EAAED,KAAKsB,EAAEutB,MAAO,UAAY,IAAMjtB,EAAI,OAASyD,EAAI/D,EAAEwtB,QAAU,OAAS1nB,EAAI/B,EAAE,KAAO,mBAAqB+B,EAAE2nB,UAAY3nB,EAAE2nB,iBAAc,MAAantB,EAAExB,OAASE,EAAIK,EAAEiB,MAAQA,EAAExB,KAAO,kBAAmBD,EAAI,IAAMG,GAAIR,EAAEqG,KAAO,OAAQrG,EAAEklB,KAAOpjB,EAAG,OAASyF,EAAIpF,KAAKomB,WAAahhB,EAAEijB,iCAAkC,OAASllB,EAAInD,KAAKsoB,YAAcnlB,EAAE4pB,WAAWlvB,EAAEklB,MAAO/iB,KAAKgoB,gBAAiB,OAAS9kB,EAAIlD,KAAKomB,WAAaljB,EAAEwpB,wBAAwB7uB,IAAKiB,EAAEkJ,mBAEp2BglB,iBAAkB,SAA0BluB,GAC1C,OAAOkB,KAAKitB,sBAAsBlH,MAAMjnB,EAAEyG,OAE5C2nB,kBAAmB,SAA2BpuB,GAC5C,OAAOkB,KAAKitB,sBAAsB9T,OAAOra,EAAEyG,OAE7C4nB,eAAgB,SAAwBruB,GACtC,OAAOkB,KAAKitB,sBAAsBG,IAAItuB,EAAEyG,OAE1C8nB,YAAa,WACX,OAAOrtB,KAAKgpB,aAAaW,UAAW,GAEtC1G,MAAO,SAAenkB,GACpB,OAAOkB,KAAKgpB,aAAaW,UAAW,EAAI7qB,EAAEwuB,oBAE3C3tB,EAAEH,UAAU8S,KAAO,CACpBib,UAAW,SAAmBzuB,GAC5B,IAAI2B,EACJ,OAAO,OAASA,EAAIT,KAAKomB,WAAa3lB,EAAEwpB,mCAAoCjqB,KAAK6rB,kBAAkB,WAAY/sB,IAEjH,OAAU,SAAiBA,GACzB,IAAI2B,EACJ,OAAO,OAASA,EAAIT,KAAKomB,WAAa3lB,EAAEwpB,mCAAoCjqB,KAAK6rB,kBAAkB,UAAW/sB,IAEhH,OAAU,WACR,IAAIA,EAAG2B,EACP,OAAOT,KAAK+oB,gBAAgB,CAC1BK,gBAAgB,IACd,OAAStqB,EAAIkB,KAAKomB,WAAatnB,EAAEmrB,mCAAoC,OAASxpB,EAAIT,KAAKsoB,WAAa7nB,EAAE+sB,uBAAoB,GAEhIC,IAAK,SAAa3uB,GAChB,IAAI2B,EAAGpB,EACP,OAAQ,OAASoB,EAAIT,KAAKsoB,WAAa7nB,EAAEitB,+BAA4B,IAAW,OAASruB,EAAIW,KAAKsoB,YAAcjpB,EAAEsuB,uBAAwB3tB,KAAKgoB,gBAAiBlpB,EAAEkJ,uBAAoB,GAExL4lB,KAAM,SAAc9uB,GAClB,IAAI2B,EACJ,OAAOT,KAAK6tB,6BAA+B/uB,EAAEkJ,iBAAkB,OAASvH,EAAIT,KAAKsoB,WAAa7nB,EAAEqtB,sBAAsB,iBAAc,QAAU,GAEhJC,MAAO,SAAejvB,GACpB,IAAI2B,EACJ,OAAOT,KAAK6tB,6BAA+B/uB,EAAEkJ,iBAAkB,OAASvH,EAAIT,KAAKsoB,WAAa7nB,EAAEqtB,sBAAsB,gBAAa,QAAU,GAE/IE,QAAS,CACP9vB,EAAG,SAAWY,GACZ,IAAI2B,EACJ,OAAO,OAASA,EAAIT,KAAKomB,WAAa3lB,EAAEwpB,mCAAoCjqB,KAAK6rB,kBAAkB,UAAW/sB,IAEhHqC,EAAG,SAAWrC,GACZ,IAAI2B,EACJ,OAAO,OAASA,EAAIT,KAAKomB,WAAa3lB,EAAEwpB,mCAAoCjqB,KAAK6rB,kBAAkB,WAAY/sB,IAEjHT,EAAG,SAAWS,GACZ,IAAI2B,EAAGpB,EACP,OAAOP,EAAEkJ,iBAAkB,OAASvH,EAAIT,KAAKomB,WAAa3lB,EAAEwpB,mCAAoC,OAAS5qB,EAAIW,KAAKsoB,YAAcjpB,EAAE6qB,aAAa,KAAM,CACnJ+D,gBAAgB,IACdjuB,KAAKgoB,kBAGbnd,MAAO,CACL,OAAU,SAAiB/L,GACzB,IAAI2B,EAAGpB,EACP,OAAO,OAASoB,EAAIT,KAAKomB,WAAa3lB,EAAEwpB,mCAAoC,OAAS5qB,EAAIW,KAAKsoB,YAAcjpB,EAAE6qB,aAAa,MAAOlqB,KAAKgoB,gBAAiBlpB,EAAEkJ,kBAE5JylB,IAAK,SAAa3uB,GAChB,IAAI2B,EAAGpB,EACP,OAAQ,OAASoB,EAAIT,KAAKsoB,WAAa7nB,EAAEytB,+BAA4B,IAAW,OAAS7uB,EAAIW,KAAKsoB,YAAcjpB,EAAE8uB,uBAAwBnuB,KAAKgoB,gBAAiBlpB,EAAEkJ,uBAAoB,GAExL4lB,KAAM,SAAc9uB,GAClB,OAAOkB,KAAK6tB,6BAA+B/uB,EAAEkJ,iBAAkBhI,KAAKouB,2BAA2B,kBAAe,GAEhHL,MAAO,SAAejvB,GACpB,OAAOkB,KAAK6tB,6BAA+B/uB,EAAEkJ,iBAAkBhI,KAAKouB,2BAA2B,iBAAc,IAGjHC,IAAK,CACHd,UAAW,WACT,IAAIzuB,EACJ,OAAOkB,KAAK+oB,gBAAgB,CAC1BK,gBAAgB,IACd,OAAStqB,EAAIkB,KAAKomB,UAAYtnB,EAAEmrB,wCAAqC,IAG7EqE,KAAM,CACJf,UAAW,WACT,IAAIzuB,EACJ,OAAOkB,KAAK+oB,gBAAgB,CAC1BK,gBAAgB,IACd,OAAStqB,EAAIkB,KAAKomB,UAAYtnB,EAAEmrB,wCAAqC,KAG5EtqB,EAAEH,UAAUytB,oBAAsB,WACnC,OAAOjtB,KAAKipB,cAAgBjpB,KAAKwpB,iBAAmBxpB,KAAKwpB,iBAAmB,IAAI1qB,EAAEkB,OACjFL,EAAEH,UAAUypB,YAAc,WAC3B,OAAO,MAAQjpB,KAAKwpB,mBAAqBxpB,KAAKwpB,iBAAiB+E,WAC9D5uB,EAAEH,UAAUqsB,kBAAoB,SAAU/sB,EAAG2B,GAC9C,IAAIpB,EACJ,OAA4E,KAApE,OAASA,EAAIW,KAAKsoB,WAAajpB,EAAEwsB,kBAAkB/sB,QAAK,GAAiBkB,KAAK+oB,gBAAgB,CACpGM,WAAW,IACR5oB,GAAKA,EAAEuH,iBAAkBhI,KAAKgoB,sBAAmB,GACrDroB,EAAEH,UAAUirB,iCAAmC,SAAU3rB,GAC1D,IAAIO,EAAGzB,EACP,GAAIS,EAAES,GAAI,OAAOO,EAAI,OAASzB,EAAIoC,KAAKsoB,WAAa1qB,EAAE4wB,sBAAsBxM,8BAA2B,EAAQljB,EAAE+a,QAAQ,8BAA+B1J,KAAKQ,UAAUtR,IAAKP,EAAE+a,QAAQ,YAAapZ,EAAEwhB,aAAaC,OAAO7iB,GAAG0iB,WAAYjjB,EAAE+a,QAAQ,aAAcxa,EAAE2R,WAAWI,QAAQ,MAAO,MAAM,GACjSzR,EAAEH,UAAUsrB,sBAAwB,SAAUhsB,GAC/C,IAAI2B,EAAGpB,EAAGzB,EAAGS,EAAMsB,EAEnB,IAAKA,EAAI,GAA6Dc,EAAI,EAAGpB,GAAhEhB,EAAI,OAAST,EAAI,MAAQkB,EAAIA,EAAE8tB,WAAQ,GAAUhvB,EAAI,IAAiB6D,OAAQpC,EAAIoB,EAAGA,IACtFd,EAANtB,EAAEoC,KAAW,EAGnB,OAAOd,EAAE8uB,OAAS9uB,EAAE,gCAAkCA,EAAE,cAAgBA,EAAE,eACzEA,EAAEH,UAAU8sB,gCAAkC,SAAUxtB,GACzD,IAAIO,EAAGzB,EAAGS,EACV,OAAOT,EAAIoC,KAAKspB,mBAAoBjrB,EAAI,CACtCqwB,SAAU,WACVd,KAAM3tB,OAAO0uB,YAAc,KAC3BC,IAAK3uB,OAAO4uB,YAAc,KAC1BC,QAAS,GACRzvB,EAAIpB,EAAE,CACP+X,MAAO3X,EACPuX,QAAS,MACTE,UAAU,IACRrT,SAASkX,KAAKtD,YAAYhX,GAAIA,EAAE0vB,QAASxnB,sBAAsB,SAAUlJ,GAC3E,OAAO,WACL,IAAIK,EACJ,OAAOA,EAAIW,EAAE0iB,UAAWthB,EAAEuU,WAAW3V,GAAIhB,EAAEisB,iBAAiB1sB,GAAIkB,EAAEJ,IAHH,CAKjEsB,QACDL,EAAE6P,YAAY,+BAAgC7P,EAAE6P,YAAY,+BAAgC7P,EAAE6P,YAAY,yCAA0C7P,EAAE6P,YAAY,wCAAyC7P,EAAE6P,YAAY,kCAAmC7P,EApP1C,CAqPrNc,EAAEinB,iBAAkBhpB,EAAI,SAAWI,GACnC,IAAI2B,EAAGpB,EACP,OAAO,OAASoB,EAAI3B,EAAEoF,OAAS,OAAS7E,EAAIoB,EAAEmP,MAAM,aAAevQ,EAAE,QAAK,GACzEM,EAAI,OAAS,kBAAqB,IAAI6d,YAAc,IAAIA,YAAY,QAAK,GAAS9d,EAAI,SAAWZ,GAClG,IAAIO,EACJ,OAAOP,EAAEK,KAAOQ,GAAKb,EAAEK,IAAIqe,YAAY,KAAO1e,EAAE8qB,QAAU9qB,EAAEK,KAAO,OAASL,EAAEkwB,MAAQ3vB,EAAIP,EAAE8qB,QAAU,IAAM9qB,EAAEkwB,OAAS,IAAMlwB,EAAEmwB,WAAa5vB,EAAIP,EAAEmwB,UAAW,MAAQ5vB,GAAK,WAAasC,EAAEtC,GAAKoB,EAAEoQ,YAAYoB,eAAe,CAAC5S,IAAI2R,gBAAa,IAC5O7P,EAAI,SAAWrC,GAChB,IAAI2B,EAAGpB,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAMgC,EAAG1D,EAAGJ,EAE/B,GAAI8D,EAAI7C,EAAE6sB,cAAe,CACvB,GAAI3tB,EAAED,KAAK4D,EAAEirB,MAAO,cAAgB,EAAG,CACrC,IAAkBhvB,EAAI,EAAG+B,GAApB1B,EAAI0D,EAAEirB,OAAoBnrB,OAAQ9B,EAAI/B,EAAGA,IAC5C,GAAIC,EAAII,EAAEL,GAAI6C,EAAI,4BAA4BuE,KAAKnH,GAAIwB,EAAI,SAAS2F,KAAKnH,IAAM8D,EAAE6X,QAAQ3b,GAAQ4C,GAAKpB,EAAG,OAAO,EAGlH,OAAO,EAGT,OAAOhB,EAAIL,EAAED,KAAK4D,EAAEirB,MAAO,yBAA2B,EAAGluB,EAAIV,EAAED,KAAK4D,EAAEirB,MAAO,wBAA0B,EAAGvuB,GAAKK,IAEhHI,EAAI,SAAUA,GACf,SAAS2B,EAAE3B,GACT,IAAI2B,EACJT,KAAKkvB,gBAAkBpwB,EAAG2B,EAAIT,KAAKkvB,gBAAiBlvB,KAAKsoB,UAAY7nB,EAAE6nB,UAAWtoB,KAAKomB,SAAW3lB,EAAE2lB,SAAUpmB,KAAKgpB,aAAevoB,EAAEuoB,aAAchpB,KAAKuF,KAAO,GAGhK,OAAOV,EAAEpE,EAAG3B,GAAI2B,EAAEjB,UAAUumB,MAAQ,SAAUjnB,GAC5C,IAAI2B,EAAGpB,EACP,OAAOW,KAAKuF,KAAKwgB,MAAQjnB,EAAGkB,KAAKmvB,iBAAmB,aAAenvB,KAAKgpB,aAAaR,WAAaxoB,KAAKgpB,aAAahC,WAAa,OAASvmB,EAAIT,KAAKsoB,YAAc7nB,EAAEorB,kBAAkB,QAAS7rB,KAAKmqB,wBAA0BnqB,KAAKovB,oBAAqBpvB,KAAKgoB,iBAAkBhoB,KAAKqvB,MAAQ,OAAShwB,EAAIW,KAAKsoB,WAAajpB,EAAEiqB,wBAAqB,QAAU,GAC1V7oB,EAAEjB,UAAU2Z,OAAS,SAAUra,GAChC,IAAI2B,EACJ,OAAOT,KAAKuF,KAAK4T,OAASra,EAAGkB,KAAKmvB,kBAAoB1uB,EAAIT,KAAKsvB,sBAAwBtvB,KAAKuvB,oBAAqBvvB,KAAKqvB,MAAQ5uB,QAAK,GAClIA,EAAEjB,UAAU4tB,IAAM,SAAUtuB,GAC7B,IAAI2B,EAAGpB,EAAGzB,EAAGS,EACb,OAAO2B,KAAKuF,KAAK6nB,IAAMtuB,EAAGkB,KAAKmvB,iBAAmBnvB,KAAKuvB,oBAAqBvvB,KAAKwvB,sBAAwBxvB,KAAK+oB,gBAAgB,CAC5HK,gBAAgB,EAChBO,UAAU,IACR,OAASlpB,EAAIT,KAAKomB,WAAa3lB,EAAEwpB,mCAAoC,OAAS5qB,EAAIW,KAAKsoB,YAAcjpB,EAAEirB,iBAAiBtqB,KAAKqvB,OAAQ,OAASzxB,EAAIoC,KAAKsoB,YAAc1qB,EAAEssB,aAAalqB,KAAKuF,KAAK6nB,KAAM,OAAS/uB,EAAI2B,KAAKsoB,WAAajqB,EAAEisB,iBAAiBtqB,KAAKqvB,MAAM,GAAKrvB,KAAKuF,KAAK6nB,IAAI3rB,aAAU,GAAU,MAAQzB,KAAKuF,KAAKwgB,OAAS,MAAQ/lB,KAAKuF,KAAK4T,QAAUnZ,KAAKkoB,iBAAkBloB,KAAKkvB,gBAAgBjT,cAAW,GAAUjc,KAAKkvB,gBAAgBjT,SACxbxb,EAAEjB,UAAUiqB,WAAa,WAC1B,OAAOzpB,KAAKuF,KAAK6nB,KAChB3sB,EAAEjB,UAAU+uB,QAAU,WACvB,OAAO,MAAQvuB,KAAKypB,cACnBhpB,EAAEjB,UAAU2vB,cAAgB,WAC7B,OAAO9vB,EAAE6P,sBAAuBlP,KAAKgpB,aAAaW,UACjDlpB,EAAEjB,UAAUgwB,mBAAqB,WAClC,IAAI1wB,EAAG2B,EACP,OAAO,KAAO,OAAS3B,EAAIkB,KAAKuF,KAAKwgB,OAASjnB,EAAE2C,YAAS,KAAY,OAAShB,EAAIT,KAAKuF,KAAK6nB,KAAO3sB,EAAEgB,YAAS,GAAU,GAAK,MAAQzB,KAAKqvB,OACzI5uB,EAAE+O,YAAY,mCAAoC/O,EAAE+O,YAAY,iCAAkC/O,EAAE+O,YAAY,kCAAmC/O,EAAE+O,YAAY,kCAAmC/O,EAAE+O,YAAY,gCAAiC/O,EAAE+O,YAAY,gCAAiC/O,EAAE+O,YAAY,gCAAiC/O,EA3B/U,CA4BLA,EAAE8O,cACJxR,KAAKiC,MAAO,WACZ,IAAIlB,EACAO,EACAzB,EACAS,EAAI,SAAWS,EAAG2B,GACpB,OAAO,WACL,OAAO3B,EAAE8B,MAAMH,EAAGI,aAGlBnC,EAAI,SAAWI,EAAG2B,GACpB,SAASpB,IACPW,KAAKD,YAAcjB,EAGrB,IAAK,IAAIlB,KAAK6C,EACZd,EAAE5B,KAAK0C,EAAG7C,KAAOkB,EAAElB,GAAK6C,EAAE7C,IAG5B,OAAOyB,EAAEG,UAAYiB,EAAEjB,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEiR,UAAYtP,EAAEjB,UAAWV,GAElFa,EAAI,GAAGF,eACP+B,EAAI,GAAGlB,SAAW,SAAUxB,GAC9B,IAAK,IAAI2B,EAAI,EAAGpB,EAAIW,KAAKyB,OAAQpC,EAAIoB,EAAGA,IACtC,GAAIA,KAAKT,MAAQA,KAAKS,KAAO3B,EAAG,OAAO2B,EAGzC,OAAQ,GAGV3B,EAAI2B,EAAE8Y,wBAAyBla,EAAIoB,EAAEqZ,0BAA2Blc,EAAI6C,EAAE4R,gBAAiB5R,EAAEgvB,sBAAwB,SAAU9vB,GACzH,SAASgC,IACP,OAAO3B,KAAKkiB,OAAS7jB,EAAE2B,KAAKkiB,OAAQliB,MAAO2B,EAAEoO,UAAUhQ,YAAYa,MAAMZ,KAAMa,WAGjF,IAAI5C,EAAGJ,EAAGsD,EAAGzB,EAAGxB,EAAG2G,EACnB,OAAOnG,EAAEiD,EAAGhC,GAAIgC,EAAEnC,UAAU6mB,iBAAmB,WAC7C,IAAIvnB,EACJ,OAAOkB,KAAK0vB,gBAAkB1vB,KAAK2vB,WAAa,OAAS7wB,EAAIkB,KAAKomB,WAAa,mBAAqBtnB,EAAEoqB,sCAAwCpqB,EAAEoqB,6CAA0C,EAASlpB,KAAK4vB,WACvMjuB,EAAEnC,UAAUqwB,eAAiB,WAC9B,OAAO,MAAQ7vB,KAAK0vB,gBAAkB1vB,KAAK0vB,gBAAkB1vB,KAAK0vB,gBAAkBnoB,sBAAsBvH,KAAKkiB,SAC9GvgB,EAAEnC,UAAU0iB,OAAS,WACtB,IAAIpjB,EACJ,OAAO4I,qBAAqB1H,KAAK0vB,iBAAkB1vB,KAAK0vB,gBAAkB,KAAM1vB,KAAK2vB,WAAa,OAAS7wB,EAAIkB,KAAKomB,WAAatnB,EAAEojB,SAAU,mBAAqBliB,KAAK8vB,aAAe9vB,KAAK8vB,cAAe9vB,KAAK8vB,YAAc,MAC5NnuB,EAAEnC,UAAUowB,QAAU,WACvB,IAAI9wB,EACJ,OAAO,OAASA,EAAIkB,KAAKomB,UAAYtnB,EAAE8wB,eAAY,GAClDjuB,EAAEnC,UAAUooB,OAAS,CACtB8B,QAAS,SAAiB5qB,GACxB,IAAI2B,EAAG7C,EAAGS,EAAGK,EAEb,GAAIW,EAAEP,IACJ,GAAI2B,EAAI5C,EAAEiB,GAAI,OAASJ,EAAIsB,KAAKomB,UAAY1nB,EAAEorB,yCAAyCrpB,QAAK,EAAQ,OAAO3B,EAAEkJ,sBACxG,GAAI3J,EAAIS,EAAEK,IAAKL,EAAEkrB,SAAW3rB,GAAK,QAASS,EAAEixB,WAAa1xB,GAAK,UAAWT,EAAIoC,KAAKsS,KAAKjU,GAAI,OAAO2B,KAAKgwB,UAAUlxB,EAAGlB,IAE7HmuB,MAAO,SAAejtB,GACpB,IAAI2B,EAAGpB,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAG6B,EAAGG,EAAG1D,EAC5B,OAAOkD,EAAErC,IAAMA,EAAEkJ,iBAAkBhI,KAAK8d,YAAYhf,EAAE6sB,cAAcnI,QAAU9jB,EAAEZ,IAAMA,EAAEkJ,iBAAkB3I,EAAI,CAC5G6E,KAAM,aACNyoB,OAAQ7tB,EAAE6sB,cAAcnS,QAAQ,eAC/B,OAAS5b,EAAIoC,KAAKomB,WAAaxoB,EAAE4uB,yBAAyBntB,GAAI,OAAShB,EAAI2B,KAAKsoB,YAAcjqB,EAAE6rB,aAAa7qB,EAAEstB,QAAS3sB,KAAKkiB,SAAU,OAASxjB,EAAIsB,KAAKomB,UAAY1nB,EAAEguB,wBAAwBrtB,QAAK,IAAWoB,EAAI,OAASd,EAAIb,EAAE6sB,eAAiBhsB,EAAE6Z,QAAQ,YAAS,IAAW1a,EAAEkJ,iBAAkB3I,EAAI,CAC1S6E,KAAM,YACNqoB,KAAMvsB,KAAK2oB,eAAeloB,IACzB,OAASe,EAAIxB,KAAKomB,WAAa5kB,EAAEgrB,yBAAyBntB,GAAI,OAASsC,EAAI3B,KAAKsoB,YAAc3mB,EAAE8qB,WAAWptB,EAAEktB,MAAOvsB,KAAKkiB,SAAU,OAASjkB,EAAI+B,KAAKomB,UAAYnoB,EAAEyuB,wBAAwBrtB,QAAK,QAAU,GAE/MguB,YAAa,SAAqBvuB,GAChC,IAAI2B,EACJ,OAAQA,EAAIT,KAAKiwB,WAAWnxB,EAAEoxB,aAAelwB,KAAKgwB,UAAUlxB,EAAG2B,GAAIT,KAAK6vB,uBAAoB,GAE9F5M,MAAO,WACL,OAAOxiB,EAAEyY,wBAAwB+C,SAEnCuO,UAAW,SAAmB1rB,GAC5B,IAAI2B,EAAGpB,EACP,OAAQ,OAASoB,EAAIT,KAAKsoB,WAAa7nB,EAAE0vB,oCAAiC,IAAWrxB,EAAE4rB,aAAa7Q,QAAQ,+BAA+B,GAAK7Z,KAAKowB,SAAW,CAC9Jf,MAAO,OAAShwB,EAAIW,KAAKsoB,WAAajpB,EAAEiqB,wBAAqB,EAC7D+G,MAAOnyB,EAAEY,UACN,GAEPyrB,UAAW,SAAmBzrB,GAC5B,OAAOb,EAAEa,GAAKA,EAAEkJ,sBAAmB,GAErC6iB,SAAU,SAAkB/rB,GAC1B,IAAI2B,EAAGpB,EAEP,GAAIW,KAAKowB,UACP,GAAItxB,EAAEkJ,iBAAkBvH,EAAIvC,EAAEY,IAAKlB,EAAE6C,EAAGT,KAAKowB,SAASC,OAAQ,OAAOrwB,KAAKowB,SAASC,MAAQ5vB,EAAG,OAASpB,EAAIW,KAAKsoB,WAAajpB,EAAEisB,+BAA+B7qB,QAAK,OAC9J,GAAIxC,EAAEa,GAAI,OAAOA,EAAEkJ,kBAE5BqjB,KAAM,SAAcvsB,GAClB,IAAI2B,EAAGpB,EAAGzB,EAAGS,EACb,OAAO2B,KAAKowB,UAAYtxB,EAAEkJ,iBAAkB,OAAS3I,EAAIW,KAAKomB,WAAa/mB,EAAEksB,8BAA+B,OAAS3tB,EAAIoC,KAAKsoB,YAAc1qB,EAAE4tB,kBAAkBxrB,KAAKowB,SAASf,OAAQrvB,KAAKowB,SAAW,KAAMpwB,KAAK6vB,kBAAoB5xB,EAAEa,IAAMA,EAAEkJ,iBAAkBvH,EAAIvC,EAAEY,GAAI,OAAST,EAAI2B,KAAKsoB,YAAcjqB,EAAEitB,+BAA+B7qB,GAAIT,KAAK8d,YAAYhf,EAAE4rB,aAAalH,aAAU,GAE5X2H,QAAS,WACP,IAAIrsB,EACJ,OAAOkB,KAAKowB,UAAY,OAAStxB,EAAIkB,KAAKsoB,YAAcxpB,EAAEwrB,iBAAiBtqB,KAAKowB,SAASf,OAAQrvB,KAAKowB,SAAW,WAAQ,GAE3HjD,eAAgB,WACd,OAAOntB,KAAK2vB,WAAa3vB,KAAK2vB,WAAY,EAAI3vB,KAAK6vB,uBAAoB,IAExEluB,EAAEnC,UAAU8S,KAAO,CACpBge,UAAW,WACT,IAAIxxB,EAAG2B,EACP,OAAQ,OAAS3B,EAAIkB,KAAKsoB,WAAaxpB,EAAEyxB,oCAAoC,iBAAc,IAAWvwB,KAAKwwB,MAAMxoB,iBAAkB,OAASvH,EAAIT,KAAKsoB,WAAa7nB,EAAEqtB,sBAAsB,iBAAc,QAAU,GAEpN2C,WAAY,WACV,IAAI3xB,EAAG2B,EACP,OAAQ,OAAS3B,EAAIkB,KAAKsoB,WAAaxpB,EAAEyxB,oCAAoC,gBAAa,IAAWvwB,KAAKwwB,MAAMxoB,iBAAkB,OAASvH,EAAIT,KAAKsoB,WAAa7nB,EAAEqtB,sBAAsB,gBAAa,QAAU,GAElN4C,UAAW,WACT,IAAI5xB,EAAG2B,EAAGpB,EACV,OAAQ,OAASP,EAAIkB,KAAKsoB,WAAaxpB,EAAE6xB,gCAAgC,iBAAc,IAAW3wB,KAAKwwB,MAAMxoB,iBAAkB,OAASvH,EAAIT,KAAKomB,WAAa3lB,EAAEwpB,mCAAoC,OAAS5qB,EAAIW,KAAKsoB,YAAcjpB,EAAEwsB,kBAAkB,YAAa7rB,KAAKkiB,eAAY,GAExR0O,IAAK,WACH,IAAI9xB,EAAG2B,EACP,OAAQ,OAAS3B,EAAIkB,KAAKsoB,WAAaxpB,EAAE4uB,+BAA4B,IAAW1tB,KAAKwwB,MAAMxoB,iBAAkB,OAASvH,EAAIT,KAAKsoB,YAAc7nB,EAAEktB,uBAAwB3tB,KAAKkiB,eAAY,GAE1L,YAAa,WACX,IAAIpjB,EAAG2B,EACP,OAAQ,OAAS3B,EAAIkB,KAAKsoB,WAAaxpB,EAAEovB,+BAA4B,IAAWluB,KAAKwwB,MAAMxoB,iBAAkB,OAASvH,EAAIT,KAAKsoB,YAAc7nB,EAAE0tB,uBAAwBnuB,KAAKkiB,eAAY,IAEzLvgB,EAAEnC,UAAUywB,WAAa,CAC1BY,oBAAqB,WACnB,OAAO7wB,KAAK6rB,kBAAkB,WAAY,CACxCiF,iBAAiB,KAGrBC,YAAa,WACX,OAAO/wB,KAAK6rB,kBAAkB,aAEhCmF,aAAc,WACZ,OAAOhxB,KAAKwwB,MAAMxoB,iBAAkBhI,KAAKixB,oBAAmB,WAC1D,IAAInyB,EACJ,OAAOkB,KAAKkxB,kBAAoB,OAASpyB,EAAIkB,KAAKsoB,WAAaxpB,EAAEwqB,wBAAqB,MAG1F6H,sBAAuB,WACrB,OAAOnxB,KAAK6rB,kBAAkB,WAAY,CACxCiF,iBAAiB,KAGrBM,cAAe,WACb,OAAOpxB,KAAK6rB,kBAAkB,aAEhCwF,sBAAuB,WACrB,OAAOrxB,KAAK6rB,kBAAkB,aAEhCyF,qBAAsB,WACpB,OAAOtxB,KAAK6rB,kBAAkB,YAEhC0F,qBAAsB,WACpB,OAAOvxB,KAAK6rB,kBAAkB,YAEhC2F,uBAAwB,WACtB,OAAOxxB,KAAK6rB,kBAAkB,aAEhC4F,sBAAuB,WACrB,OAAOzxB,KAAK6rB,kBAAkB,YAEhC6F,uBAAwB,WACtB,OAAO1xB,KAAK6rB,kBAAkB,aAEhC8F,sBAAuB,WACrB,OAAO3xB,KAAK6rB,kBAAkB,YAEhC+F,mBAAoB,WAClB,OAAO5xB,KAAK6rB,kBAAkB,aAEhCgG,kBAAmB,WACjB,OAAO7xB,KAAK6rB,kBAAkB,YAEhCiG,gBAAiB,WACf,OAAO9xB,KAAK+xB,6BAA6B,kBAAmB/xB,KAAKwwB,MAAMjrB,OAEzEysB,WAAY,WACV,OAAOhyB,KAAKiyB,2BAA2B,SAEzCC,gBAAiB,WACf,OAAOlyB,KAAK+xB,6BAA6B,QAAS/xB,KAAKwwB,MAAMjrB,OAE/D4sB,eAAgB,WACd,OAAOnyB,KAAK+xB,6BAA6B,OAAQ/xB,KAAKwwB,MAAMjrB,OAE9D6sB,aAAc,WACZ,IAAItzB,EACJ,OAAQ,OAASA,EAAIkB,KAAKsoB,WAAaxpB,EAAE4uB,+BAA4B,GAAU1tB,KAAKixB,oBAAmB,WACrG,IAAInyB,EACJ,OAAO,OAASA,EAAIkB,KAAKsoB,WAAaxpB,EAAE6uB,4BAAyB,UAC9D,GAEP0E,aAAc,WACZ,OAAOryB,KAAKiyB,2BAA2B,WAEzCK,oBAAqB,WACnB,OAAOtyB,KAAKiyB,2BAA2B,kBAEzCM,kBAAmB,WACjB,OAAOvyB,KAAKiyB,2BAA2B,gBAEzCO,kBAAmB,WACjB,OAAOxyB,KAAKiyB,2BAA2B,gBAEzCQ,mBAAoB,WAClB,OAAOzyB,KAAKiyB,2BAA2B,iBAEzCS,cAAe,WACb,IAAI5zB,EACJ,OAAQ,OAASA,EAAIkB,KAAKsoB,WAAaxpB,EAAEovB,+BAA4B,GAAUluB,KAAKixB,oBAAmB,WACrG,IAAInyB,EACJ,OAAO,OAASA,EAAIkB,KAAKsoB,WAAaxpB,EAAEqvB,4BAAyB,UAC9D,GAEPwE,aAAc,WACZ,OAAO3yB,KAAKixB,oBAAmB,WAC7B,IAAInyB,EAAG2B,EAAGpB,EAAGzB,EAGb,IAAKkB,KAFLlB,EAAI,GAEM,OAAS6C,EAAIT,KAAKsoB,WAAa7nB,EAAEmyB,4BAAyB,EAClEh1B,EAAE4C,KAAK,OAASnB,EAAIW,KAAKsoB,WAAajpB,EAAEwzB,uBAAuB/zB,QAAK,GAGtE,OAAOlB,MAGXk1B,4BAA6B,WAC3B,OAAO9yB,KAAK+xB,6BAA6B,WAAY/xB,KAAKwwB,MAAMjrB,OAElEwtB,6BAA8B,WAC5B,OAAO/yB,KAAK+xB,6BAA6B,UAAW/xB,KAAKwwB,MAAMjrB,OAEjEytB,oBAAqB,WACnB,OAAOhzB,KAAKiyB,2BAA2B,WAEzCgB,gBAAiB,WACf,OAAOjzB,KAAKiyB,2BAA2B,QAEzCiB,kBAAmB,WACjB,OAAOlzB,KAAKiyB,2BAA2B,QAEzCkB,gBAAiB,WACf,OAAOnzB,KAAKiyB,2BAA2B,cAEzCmB,YAAa,WACX,IAAIt0B,EACJ,OAAO,OAASA,EAAIkB,KAAKomB,UAAYtnB,EAAEu0B,sCAAmC,GAE5EC,YAAa,WACX,IAAIx0B,EACJ,OAAO,OAASA,EAAIkB,KAAKomB,UAAYtnB,EAAEy0B,sCAAmC,GAE5EC,sBAAuB,WACrB,OAAOxzB,KAAK2vB,WAAY,EAAI3vB,KAAKkqB,aAAalqB,KAAKwwB,MAAMjrB,OAE3DkuB,sBAAuB,WACrB,OAAOzzB,KAAK2vB,WAAY,EAAI3vB,KAAKkqB,aAAalqB,KAAKwwB,MAAMjrB,OAE3DmuB,eAAgB,WACd,IAAI50B,EAAG2B,EACP,OAAQ3B,EAAIkB,KAAKkxB,oBAAsBlxB,KAAKkxB,kBAAoB,KAAM,OAASzwB,EAAIT,KAAKomB,WAAa3lB,EAAE8qB,8BAA+BvrB,KAAKixB,oBAAmB,WAC5J,IAAIxwB,EACJ,OAAO,OAASA,EAAIT,KAAKsoB,WAAa7nB,EAAE+qB,kBAAkB1sB,QAAK,WAC3D,GAER60B,gBAAiB,WACf,IAAIt0B,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAG6B,EAAGG,EAAG1D,EAAGJ,EAAGsD,EAAGzB,EAClC,OAAOL,EAAIW,KAAKwwB,MAAM9F,aAAc/qB,EAAI,CACtC+qB,aAAcrrB,IACZzB,EAAIyB,EAAEma,QAAQ,SAAWxZ,KAAKwwB,MAAMxoB,iBAAkBrI,EAAEuE,KAAO,YAAaxE,GAAKhB,EAAIW,EAAEma,QAAQ,oBAAsB/Y,EAAE+Q,0BAA0B9S,GAAG8b,OAAS5c,EAAG+B,EAAE4sB,KAAOvsB,KAAK2oB,eAAe/qB,EAAG8B,GAAI,OAAS8B,EAAIxB,KAAKomB,WAAa5kB,EAAEgrB,yBAAyB7sB,GAAIK,KAAKixB,oBAAmB,WAC5R,IAAInyB,EACJ,OAAO,OAASA,EAAIkB,KAAKsoB,WAAaxpB,EAAE2tB,WAAW9sB,EAAE4sB,WAAQ,KAC3DvsB,KAAK8vB,YAAc,SAAUhxB,GAC/B,OAAO,WACL,IAAI2B,EACJ,OAAO,OAASA,EAAI3B,EAAEsnB,UAAY3lB,EAAEisB,wBAAwB/sB,QAAK,GAH9C,CAKrBK,OAASlB,EAAEO,IAAMM,EAAEuE,KAAO,aAAcvE,EAAEgtB,OAASttB,EAAEma,QAAQ,cAAe,OAAS7X,EAAI3B,KAAKomB,WAAazkB,EAAE6qB,yBAAyB7sB,GAAIK,KAAKixB,oBAAmB,WAClK,IAAInyB,EACJ,OAAO,OAASA,EAAIkB,KAAKsoB,WAAaxpB,EAAEorB,aAAavqB,EAAEgtB,aAAU,KAC/D3sB,KAAK8vB,YAAc,SAAUhxB,GAC/B,OAAO,WACL,IAAI2B,EACJ,OAAO,OAASA,EAAI3B,EAAEsnB,UAAY3lB,EAAEisB,wBAAwB/sB,QAAK,GAH9C,CAKrBK,QAAU3B,EAAIgB,EAAEma,QAAQ,eAAiBxZ,KAAKwwB,MAAMxoB,iBAAkBrI,EAAEuE,KAAO,YAAavE,EAAE4sB,KAAOluB,EAAG,OAASJ,EAAI+B,KAAKomB,WAAanoB,EAAEuuB,yBAAyB7sB,GAAIK,KAAKixB,oBAAmB,WAC9L,IAAInyB,EACJ,OAAO,OAASA,EAAIkB,KAAKsoB,WAAaxpB,EAAE2tB,WAAW9sB,EAAE4sB,WAAQ,KAC3DvsB,KAAK8vB,YAAc,SAAUhxB,GAC/B,OAAO,WACL,IAAI2B,EACJ,OAAO,OAASA,EAAI3B,EAAEsnB,UAAY3lB,EAAEisB,wBAAwB/sB,QAAK,GAH9C,CAKrBK,QAAU,OAASnC,EAAIwB,EAAEmkB,OAAS3lB,EAAE4D,YAAS,IAAW9B,EAAEuE,KAAO,OAAQvE,EAAEojB,KAAO1jB,EAAEmkB,MAAM,GAAI,OAASriB,EAAInB,KAAKomB,WAAajlB,EAAEqrB,yBAAyB7sB,GAAIK,KAAKixB,oBAAmB,WACpL,IAAInyB,EACJ,OAAO,OAASA,EAAIkB,KAAKsoB,WAAaxpB,EAAEiuB,WAAWptB,EAAEojB,WAAQ,KAC3D/iB,KAAK8vB,YAAc,SAAUhxB,GAC/B,OAAO,WACL,IAAI2B,EACJ,OAAO,OAASA,EAAI3B,EAAEsnB,UAAY3lB,EAAEisB,wBAAwB/sB,QAAK,GAH9C,CAKrBK,YAAS,GAEb4zB,eAAgB,WACd,OAAO5zB,KAAKkqB,aAAalqB,KAAKwwB,MAAMjrB,OAEtCioB,gBAAiB,WACf,OAAOxtB,KAAKkqB,aAAa,OAE3B2J,WAAY,WACV,OAAO7zB,KAAK+xB,6BAA6B,OAAQ/xB,KAAKwwB,MAAMjrB,OAE9DuuB,kBAAmB,WACjB,OAAO9zB,KAAKiyB,2BAA2B,WAEzC8B,gBAAiB,WACf,IAAIj1B,EACJ,OAAO,OAASA,EAAIkB,KAAKomB,WAAatnB,EAAEmrB,mCAAoCjqB,KAAKixB,oBAAmB,WAClG,IAAInyB,EACJ,OAAO,OAASA,EAAIkB,KAAKsoB,WAAaxpB,EAAE0uB,uBAAoB,MAGhEwG,sBAAuB,WACrB,OAAOh0B,KAAKkqB,aAAalqB,KAAKwwB,MAAM9F,aAAalR,QAAQ,cAAe,CACtEyU,gBAAgB,KAGpBgG,WAAY,WACV,IAAIn1B,EAAG2B,EACP,OAAOT,KAAKkqB,aAAa,OAASprB,EAAIkB,KAAKwwB,MAAMjrB,MAAQzG,EAAI,OAAS2B,EAAIT,KAAKwwB,MAAM9F,cAAgBjqB,EAAE+Y,QAAQ,mBAAgB,IAEjI0a,gBAAiB,WACf,OAAOl0B,KAAKkqB,aAAalqB,KAAKwwB,MAAMjrB,OAEtC4uB,oBAAqB,WACnB,OAAOn0B,KAAKiyB,2BAA2B,YAExCtwB,EAAEnC,UAAU0qB,aAAe,SAAUprB,EAAG2B,GACzC,IAAIpB,EACJ,OAAO,MAAQP,IAAMA,EAAI,IAAK,OAASO,EAAIW,KAAKomB,WAAa/mB,EAAE4qB,mCAAoCjqB,KAAKixB,oBAAmB,WACzH,IAAI5xB,EACJ,OAAO,OAASA,EAAIW,KAAKsoB,WAAajpB,EAAE6qB,aAAaprB,EAAG2B,QAAK,MAE9DkB,EAAEnC,UAAUyyB,2BAA6B,SAAUnzB,GACpD,IAAIO,EACJ,OAAOmC,EAAEzD,KAAK0C,EAAEkS,uBAAwB7T,IAAM,GAAK,OAASO,EAAIW,KAAKomB,WAAa/mB,EAAE+0B,qCAAqCt1B,GAAIkB,KAAKixB,oBAAmB,WACnJ,IAAIxwB,EACJ,OAAO,OAASA,EAAIT,KAAKsoB,WAAa7nB,EAAE4zB,uBAAuBv1B,QAAK,WAChE,GACL6C,EAAEnC,UAAUuyB,6BAA+B,SAAUjzB,EAAGO,GACzD,IAAIzB,EACJ,OAAO4D,EAAEzD,KAAK0C,EAAEkS,uBAAwB7T,IAAM,GAAK,OAASlB,EAAIoC,KAAKomB,WAAaxoB,EAAEw2B,qCAAqCt1B,GAAIkB,KAAKixB,oBAAmB,WACnJ,IAAIxwB,EACJ,OAAO,OAASA,EAAIT,KAAKsoB,WAAa7nB,EAAE6zB,oBAAoBx1B,EAAGO,QAAK,WAChE,GACLsC,EAAEnC,UAAUqsB,kBAAoB,SAAU/sB,EAAG2B,GAC9C,IAAIpB,EAAGzB,EAAMc,EACb,OAAY,MAAQ+B,EAAIA,EAAI,CAC1BqwB,iBAAiB,IAChBA,iBAAsB,OAASpyB,EAAIsB,KAAKomB,WAAa1nB,EAAEurB,mCAAoCrsB,EAAI,SAAU6C,GAC1G,OAAO,WACL,IAAIpB,EACJ,OAAO,OAASA,EAAIoB,EAAE6nB,WAAajpB,EAAEwsB,kBAAkB/sB,QAAK,GAHkC,CAKhGkB,OAAQX,EAAIW,KAAKu0B,kBAAkB,CACnCC,UAAW,KACPx0B,KAAKixB,mBAAmB5xB,EAAGzB,GAAKA,KACrC+D,EAAEnC,UAAUyxB,mBAAqB,SAAUnyB,EAAGO,GAC/C,IAAIzB,EACJ,MAAO,mBAAqBkB,IAAMO,EAAIP,EAAGA,EAAIkB,KAAKu0B,qBAAsBz1B,EAAI,OAASlB,EAAIoC,KAAKsoB,WAAa1qB,EAAEqzB,mBAAmBnyB,EAAGO,EAAED,KAAKY,YAAS,GAAUS,EAAEyY,wBAAwB+C,QAAS5c,EAAEtB,KAAKiC,QACtM2B,EAAEnC,UAAU+0B,kBAAoB,SAAUz1B,GAC3C,IAAI2B,EAAGpB,EAAGzB,EAAGS,EACb,OAAOT,GAAK,MAAQkB,EAAIA,EAAI,CAC1B01B,UAAW,IACVA,WAAYn2B,EAAI,mBAAsBoC,EAAIT,KAAKwwB,OAAOiE,gBAAkBh0B,EAAEg0B,uBAAoB,IAAWp2B,EAAEoD,SAAWpC,EAAIwF,EAAExG,EAAE,IAAK,IAAMT,GAAKyB,EAAE2R,WAAWvP,QAAU7D,GAAKyB,OAAI,GAChLwF,EAAI,SAAW/F,GAChB,IAAI2B,EACJ,OAAOA,EAAIgC,SAASiyB,eAAiBC,SAAS71B,EAAEua,eAAgBva,EAAE81B,aAAcn0B,EAAEo0B,OAAO/1B,EAAEwa,aAAcxa,EAAEg2B,WAAYr0B,GACtHkB,EAAEnC,UAAUwwB,UAAY,SAAUlxB,EAAG2B,GACtC,IAAIpB,EACJW,KAAKwwB,MAAQ1xB,EAEb,IACEO,EAAIoB,EAAE1C,KAAKiC,MACX,QACAA,KAAKwwB,MAAQ,KAGf,OAAOnxB,GACNpB,EAAI,SAAWa,GAChB,IAAI2B,EAAGpB,EACP,OAAOmC,EAAEzD,KAAK,OAAS0C,EAAI,OAASpB,EAAIP,EAAE4rB,cAAgBrrB,EAAEutB,WAAQ,GAAUnsB,EAAI,GAAI,UAAY,GACjGU,EAAI,SAAWrC,GAChB,IAAI2B,EACJ,OAAQA,EAAI3B,EAAE6sB,eAAiBnqB,EAAEzD,KAAK0C,EAAEmsB,MAAO,UAAY,GAAK,IAAMnsB,EAAEmsB,MAAMnrB,QAAUhB,EAAE+iB,MAAM/hB,QAAU,OAAI,GAC7G/B,EAAI,SAAWZ,GAChB,IAAI2B,EACJ,OAAQA,EAAI3B,EAAE6sB,eAAiBnqB,EAAEzD,KAAK0C,EAAEmsB,MAAO,eAAiB,GAAK,IAAMnsB,EAAEmsB,MAAMnrB,YAAS,GAC3F5D,EAAI,SAAWiB,GAChB,IAAI2B,EACJ,OAAOA,EAAI,GAAI3B,EAAEkrB,QAAUvpB,EAAED,KAAK,OAAQ1B,EAAEixB,UAAYtvB,EAAED,KAAK,SAAUC,EAAED,KAAK1B,EAAEK,KAAMsB,GACvFvC,EAAI,SAAWY,GAChB,MAAO,CACL6F,EAAG7F,EAAEisB,QACL3lB,EAAGtG,EAAEksB,UAENrpB,EAtX4G,CAuX/GlB,EAAEinB,kBACJ3pB,KAAKiC,MAAO,WACZ,IAAIlB,EACAO,EACAzB,EACAS,EACAK,EACAiB,EACA6B,EACAG,EACA1D,EAAI,SAAWa,EAAG2B,GACpB,OAAO,WACL,OAAO3B,EAAE8B,MAAMH,EAAGI,aAGlBhD,EAAI,SAAWiB,EAAG2B,GACpB,SAASpB,IACPW,KAAKD,YAAcjB,EAGrB,IAAK,IAAIlB,KAAK6C,EACZU,EAAEpD,KAAK0C,EAAG7C,KAAOkB,EAAElB,GAAK6C,EAAE7C,IAG5B,OAAOyB,EAAEG,UAAYiB,EAAEjB,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEiR,UAAYtP,EAAEjB,UAAWV,GAElFqC,EAAI,GAAG1B,eAEXJ,EAAIoB,EAAEyQ,MAAOtT,EAAI6C,EAAEiG,YAAa/G,EAAIc,EAAEoV,YAAalU,EAAIlB,EAAEmV,QAASpU,EAAIf,EAAE6O,OAAQ5Q,EAAI8C,EAAEqc,KAAM/e,EAAI0C,EAAE8d,IAAKjhB,EAAImD,EAAEwhB,SAAUviB,EAAEs0B,2BAA6B,SAAUvzB,GAC9J,SAASL,EAAErC,EAAG2B,EAAGpB,EAAGzB,GAClBoC,KAAKg1B,gBAAkBl2B,EAAGkB,KAAKglB,QAAUvkB,EAAGT,KAAKi1B,UAAY51B,EAAGW,KAAK6D,QAAU,MAAQjG,EAAIA,EAAI,GAAIoC,KAAKk1B,eAAiBj3B,EAAE+B,KAAKk1B,eAAgBl1B,MAAOA,KAAKm1B,iBAAmBl3B,EAAE+B,KAAKm1B,iBAAkBn1B,MAAOA,KAAKo1B,gBAAkBn3B,EAAE+B,KAAKo1B,gBAAiBp1B,MAAOA,KAAKq1B,kBAAoBp3B,EAAE+B,KAAKq1B,kBAAmBr1B,MAAOA,KAAKs1B,qBAAuBr3B,EAAE+B,KAAKs1B,qBAAsBt1B,MAAOA,KAAKu1B,gBAAkBt3B,EAAE+B,KAAKu1B,gBAAiBv1B,MAAOA,KAAKuf,WAAavf,KAAKg1B,gBAAgBzV,WAAY,MAAQ5d,EAAE3B,KAAKglB,WAAahlB,KAAKglB,QAAUhlB,KAAKglB,QAAQ3b,YAAarJ,KAAKw1B,UAGpjB,IAAI91B,EACJ,OAAO7B,EAAEsD,EAAGK,GAAI9B,EAAI,SAAWZ,GAC7B,OAAO,WACL,IAAI2B,EACJ,OAAOA,EAAI3B,EAAE8B,MAAMZ,KAAMa,YAAkB,KAAK,MAAQb,KAAKy1B,QAAUz1B,KAAKy1B,MAAQ,IAAKz1B,KAAKy1B,MAAMj1B,KAAKC,EAAEoe,QAE5G1d,EAAE3B,UAAUg2B,QAAU,WACvB,OAAOx1B,KAAK01B,qBAAsB11B,KAAK21B,aAAc31B,KAAKuf,WAAWqW,gBAAkB51B,KAAK61B,4BAAyB,GACpH10B,EAAE3B,UAAUs2B,UAAY,WACzB,IAAIh3B,EAAG2B,EAEP,IAAKT,KAAK+1B,qBAAsBt1B,EAAIT,KAAKy1B,MAAM3qB,OAC7CrK,IAGF,OAAO,OAAS3B,EAAIkB,KAAKomB,UAAYtnB,EAAEk3B,6BAA6Bh2B,WAAQ,GAC3EmB,EAAE3B,UAAUu2B,mBAAqB,WAClC,IAAIj3B,EAAG2B,EAAGpB,EACV,OAAO,MAAQW,KAAKi2B,gBAAkBn3B,EAAIkB,KAAKi2B,eAAgBj2B,KAAKi2B,eAAiB,KAAMn3B,EAAI,OAAS2B,EAAIT,KAAKomB,WAAa,mBAAqB3lB,EAAEy1B,0DAA4Dz1B,EAAEy1B,0DAA0D,CAC3QrT,QAAS/jB,GACRkB,KAAKuf,iBAAc,EAAS,OAASlgB,EAAIW,KAAKomB,WAAa,mBAAqB/mB,EAAE82B,yDAA2D92B,EAAE82B,yDAAyD,UAAWn2B,KAAKuf,iBAAc,QAAU,GAClPpe,EAAE3B,UAAUk2B,mBAAqBh2B,GAAE,WACpC,MAAO,CACL,GAAM,SAAUZ,GACd,OAAO,WACL,OAAOA,EAAEkmB,QAAQ/O,QAAQmgB,aAAc,GAFrC,CAIJp2B,MACF6e,KAAM,SAAU/f,GACd,OAAO,WACL,cAAcA,EAAEkmB,QAAQ/O,QAAQmgB,aAF9B,CAIJp2B,UAEFmB,EAAE3B,UAAUm2B,WAAaj2B,GAAE,WAC7B,IAAIL,EACJ,OAAOA,EAAIM,EAAE,CACXiW,QAAS,MACTM,UAAWpX,EAAEihB,kBACbxa,KAAM,CACJ6wB,aAAa,GAEfxhB,WAAYjV,EAAE,CACZiW,QAAS,MACTM,UAAW,kBACXtB,WAAYjV,EAAE,CACZiW,QAAS,OACTM,UAAW,+CACXtB,WAAYjV,EAAE,CACZiW,QAAS,SACTM,UAAW,kCACXE,YAAa1X,EAAEoc,OACfjV,WAAY,CACVwwB,MAAO33B,EAAEoc,QAEXvV,KAAM,CACJ+wB,WAAY,kBAKlBt2B,KAAKuf,WAAWqW,iBAAmBv2B,EAAEgX,YAAY1W,EAAE,CACrDiW,QAAS,MACTM,UAAWpX,EAAE6gB,4BACb/K,WAAYjV,EAAE,CACZiW,QAAS,OACTM,UAAWpX,EAAE4gB,mBACb9K,WAAY,CAACjV,EAAE,CACbiW,QAAS,OACTM,UAAWpX,EAAE8gB,eACbxJ,YAAapW,KAAKuf,WAAWgX,cAC7B1wB,WAAY,CACVwwB,MAAOr2B,KAAKuf,WAAWgX,iBAEvB52B,EAAE,CACJiW,QAAS,OACTM,UAAWpX,EAAEghB,eACb1J,YAAapW,KAAKuf,WAAWiX,+BAG9B54B,EAAE,QAAS,CACd8V,UAAWrU,EACXuU,aAAc5T,KAAKu1B,kBACjB33B,EAAE,QAAS,CACb8V,UAAWrU,EACXsU,iBAAkB,qBAClBC,aAAc5T,KAAKs1B,uBACjB,CACF,GAAM,SAAUx2B,GACd,OAAO,WACL,OAAOA,EAAEkmB,QAAQ3O,YAAYhX,IAF3B,CAIJW,MACF6e,KACS,WACL,OAAOpe,EAAEuU,WAAW3V,QAIxB8B,EAAE3B,UAAUq2B,qBAAuBn2B,GAAE,WACvC,IAAIrB,EAAGmD,EAAGG,EAAG1D,EAAGJ,EAChB,OAAOI,EAAI0B,EAAE,CACXiW,QAAS,WACTM,UAAWpX,EAAE2gB,wBACb5Z,WAAY,CACV4wB,YAAa/3B,EAAEwf,oBAEjB3Y,KAAM,CACJ6wB,aAAa,MAEXv3B,MAAQmB,KAAKg1B,gBAAgB0B,cAAc74B,EAAII,EAAEkkB,aAAehM,UAAU5V,IAAI,yBAA0B1C,EAAE84B,UAAY,EAAGt4B,EAAI,WACjI,OAAOR,EAAEgB,MAAQZ,EAAEY,MAAOZ,EAAE+X,MAAM4gB,OAAS/4B,EAAEg5B,aAAe,MAC3Dj5B,EAAE,QAAS,CACZ8V,UAAWzV,EACX2V,aAAcvV,IACZT,EAAE,QAAS,CACb8V,UAAWzV,EACX2V,aAAc5T,KAAKo1B,kBACjBx3B,EAAE,UAAW,CACf8V,UAAWzV,EACX2V,aAAc5T,KAAKq1B,oBACjBz3B,EAAE,SAAU,CACd8V,UAAWzV,EACX2V,aAAc5T,KAAKm1B,mBACjBv3B,EAAE,OAAQ,CACZ8V,UAAWzV,EACX2V,aAAc5T,KAAKk1B,iBACjBvzB,EAAI3B,KAAKglB,QAAQnN,cAAc,cAAerW,EAAIG,EAAEwgB,YAAa,CACnE,GAAM,SAAU1hB,GACd,OAAO,WACL,OAAOkB,EAAEqU,MAAM8gB,QAAU,OAAQt1B,EAAE6U,YAAYpY,GAAIuD,EAAE6U,YAAYxY,GAAI2D,EAAE2U,UAAU5V,IAAIzB,EAAE0gB,kBAAoB,aAAc7d,EAAEo1B,cAAcnf,aAAapW,EAAGG,GAAItD,IAAKoC,EAAEoD,QAAQmzB,YAAc33B,GAAE,WAC1L,OAAOpB,EAAE8wB,gBACN,GAJH,CAMJ/uB,MACF6e,KAAM,WACJ,OAAOpe,EAAEuU,WAAWxT,GAAIG,EAAEqU,MAAM8gB,QAAU,UAG5C31B,EAAE3B,UAAU+1B,gBAAkB,SAAUz2B,GAC1C,OAAOA,EAAEkJ,iBAAkBlJ,EAAEwuB,mBAC5BnsB,EAAE3B,UAAU81B,qBAAuB,SAAUx2B,GAC9C,IAAOO,EAEP,GACO,WADKP,EAAEqF,OAAO0I,aAAa,oBAE9B,OAAO,OAASxN,EAAIW,KAAKomB,UAAY/mB,EAAE43B,8CAA8Cj3B,KAAKuf,iBAAc,GAE3Gpe,EAAE3B,UAAU61B,kBAAoB,SAAUv2B,GAC3C,IAAI2B,EACJ,MAAO,WAAapC,EAAES,EAAE8qB,UAAY9qB,EAAEkJ,iBAAkBhI,KAAK+1B,qBAAsB,OAASt1B,EAAIT,KAAKomB,WAAa,mBAAqB3lB,EAAEy2B,gDAAkDz2B,EAAEy2B,gDAAgDl3B,KAAKuf,iBAAc,QAAU,GACzQpe,EAAE3B,UAAU41B,gBAAkB,SAAUt2B,GACzC,OAAOkB,KAAKi2B,eAAiBn3B,EAAEqF,OAAOtF,MAAMuS,QAAQ,MAAO,KAAKoJ,QAC/DrZ,EAAE3B,UAAU21B,iBAAmB,WAChC,OAAOn1B,KAAK+1B,sBACX50B,EAAE3B,UAAU01B,eAAiB,WAC9B,OAAOl1B,KAAK+1B,sBACX50B,EAlKiJ,CAmKpJV,EAAE8O,cACJxR,KAAKiC,MAAO,WACZ,IAAIlB,EACAO,EACAzB,EACAS,EAAI,SAAWS,EAAG2B,GACpB,SAASpB,IACPW,KAAKD,YAAcjB,EAGrB,IAAK,IAAIlB,KAAK6C,EACZ/B,EAAEX,KAAK0C,EAAG7C,KAAOkB,EAAElB,GAAK6C,EAAE7C,IAG5B,OAAOyB,EAAEG,UAAYiB,EAAEjB,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEiR,UAAYtP,EAAEjB,UAAWV,GAElFJ,EAAI,GAAGe,eAEX7B,EAAI6C,EAAEoV,YAAa/W,EAAI2B,EAAE6O,OAAOgQ,IAAK7e,EAAE0W,eAAiB,SAAUzY,GAChE,SAASiB,IACPA,EAAEoQ,UAAUhQ,YAAYa,MAAMZ,KAAMa,WAAYb,KAAKuf,WAAavf,KAAKV,OAAQU,KAAKuf,WAAW4X,uBAAyBn3B,KAAMA,KAAKg1B,gBAAkBh1B,KAAK6D,QAAQuzB,MAGpK,IAAI51B,EACJ,OAAOnD,EAAEsB,EAAGjB,GAAIiB,EAAEyX,mBAAqB,yBAA0BzX,EAAEH,UAAU63B,mBAAqB,WAChG,MAAO,IACN13B,EAAEH,UAAUykB,YAAc,WAC3B,IAAIxjB,EAAGpB,EAAGhB,EAAGK,EAAGiB,EAAGgC,EAAG1D,EACtB,GAAIwC,EAAI/B,EAAId,EAAE,CACZgY,QAAS,SACTM,UAAWlW,KAAKs3B,eAChB/xB,KAAMvF,KAAKwZ,UACX1D,UAAU,KACPzW,EAAIW,KAAKu3B,aAAe74B,EAAId,EAAE,CACjCgY,QAAS,IACTE,UAAU,EACVjQ,WAAY,CACV2b,KAAMniB,EACNm4B,UAAW,KAEX/2B,EAAE4V,YAAY3X,IAAKsB,KAAKuf,WAAWkY,aAAc/4B,EAAEqjB,UAAY/hB,KAAKuf,WAAWmY,kBAAkB,IAAoCr5B,EAAI,EAAGsB,GAAtC1B,EAAI+B,KAAKq3B,sBAAmC51B,OAAQ9B,EAAItB,EAAGA,IACnKsD,EAAI1D,EAAEI,GAAIK,EAAE2X,YAAY1U,GAE1B,OAAOjD,EAAE2X,YAAYrW,KAAK23B,wBAAyB33B,KAAKuf,WAAWqY,cAAgB53B,KAAK63B,gBAAkBj6B,EAAE,CAC1GgY,QAAS,WACT/P,WAAY,CACV,MAAS/G,EAAE+gB,mBACXhhB,MAAOmB,KAAKuf,WAAWuY,oBACvBza,IAAK,KAEP9X,KAAM,CACJ6wB,aAAa,EACbja,aAAc,CAAC,kBAAmBnc,KAAKuf,WAAWvP,IAAIS,KAAK,QAE3DhQ,EAAE4V,YAAYrW,KAAK63B,kBAAmB,CAACr2B,EAAE,QAASf,EAAGe,EAAE,WAC1D7B,EAAEH,UAAUm4B,qBAAuB,WACpC,IAAIl3B,EAAGpB,EAAGhB,EAAGK,EAAGiB,EAAG6B,EAAGG,EACtB,OAAOtD,EAAIT,EAAE,CACXgY,QAAS,aACTM,UAAWpX,EAAE0gB,qBACV/e,EAAIT,KAAKg1B,gBAAgB0B,eAAiBr4B,EAAE8X,UAAU5V,IAAIzB,EAAE0gB,kBAAoB,YAAanhB,EAAE+X,YAAc3V,KAAMpB,EAAIW,KAAK+3B,oBAAsB55B,OAASO,EAAIsB,KAAKuf,WAAWgX,eAAgBl3B,EAAEyjB,OAASthB,EAAIxB,KAAKuf,WAAWiX,wBAAyB93B,IAAMiB,EAAI/B,EAAE,CACtQgY,QAAS,OACTM,UAAWpX,EAAE8gB,eACbxJ,YAAa1X,IACXL,EAAEgY,YAAY1W,IAAK6B,IAAM9C,GAAKL,EAAEgY,YAAY5T,SAASu1B,eAAe,MAAOr2B,EAAI/D,EAAE,CACnFgY,QAAS,OACTM,UAAWpX,EAAEghB,eACb1J,YAAa5U,IACXnD,EAAEgY,YAAY1U,KAAMtD,GACvBsB,EAAEH,UAAU83B,aAAe,WAC5B,IAAI72B,EAAGpB,EACP,OAAOA,EAAI,CAACP,EAAEygB,WAAYzgB,EAAEygB,WAAa,KAAOvf,KAAKuf,WAAW0Y,YAAax3B,EAAIT,KAAKuf,WAAW2Y,iBAAmB74B,EAAEmB,KAAK1B,EAAEygB,WAAa,KAAO9e,GAAIpB,EAAEoR,KAAK,MAC3J9Q,EAAEH,UAAUga,QAAU,WACvB,IAAI1a,EAAG2B,EACP,OAAOA,EAAI,CACT03B,eAAgBhoB,KAAKQ,UAAU3Q,KAAKuf,YACpC6Y,gBAAiBp4B,KAAKuf,WAAW8Y,iBACjCC,OAAQt4B,KAAKuf,WAAWvP,KACvBlR,EAAIkB,KAAKg1B,gBAAgBnvB,YAAcmV,YAAcva,EAAE83B,eAAiBpoB,KAAKQ,UAAU7R,IAAKkB,KAAKuf,WAAWqY,cAAgBn3B,EAAE+3B,eAAgB,GAAK/3B,GACrJd,EAAEH,UAAU+3B,QAAU,WACvB,OAAOl4B,EAAEW,KAAKuf,WAAWmY,aAAc,UAAO,EAAS13B,KAAKuf,WAAWgY,WACtE53B,EAAEH,UAAUu4B,iBAAmB,WAChC,IAAIj5B,EAAGO,EAAGzB,EACV,OAAOA,EAAIoC,KAAKuf,WAAW0Y,UAAWn5B,EAAI2B,EAAE2R,WAAW,OAAS/S,EAAIoB,EAAE6O,OAAOoT,YAAY9kB,IAAMyB,EAAEwjB,aAAU,GAAS,SAAWjlB,IAAMkB,EAAEX,MAAO,GAAKW,GAClJa,EAAEH,UAAUi5B,oBAAsB,WACnC,IAAI35B,EACJ,OAAO,OAASA,EAAIkB,KAAK8kB,eAAiBhmB,EAAE+Y,cAAc,iBAAc,GACvErW,EAAI,SAAW1C,GAChB,OAAOlB,EAAE,CACPgY,QAAS,OACTQ,YAAa3V,EAAEqO,iBACfvJ,KAAM,CACJ0R,iBAAkBnY,EAClB05B,eAAe,MAGlB74B,EAAEH,UAAUk5B,kCAAoC,WACjD,IAAI55B,EAAG2B,EACP,OAAOA,EAAIT,KAAKuf,WAAWuY,oBAAqB,OAASh5B,EAAIkB,KAAKy4B,uBAAyB35B,EAAED,MAAQ4B,OAAI,GACxGd,EAjFmD,CAkFtDc,EAAEmjB,YAAavkB,EAAI,SAAWP,EAAG2B,GACjC,IAAIpB,EACJ,OAAOA,EAAIzB,EAAE,OAAQyB,EAAE0iB,UAAY,MAAQjjB,EAAIA,EAAI,GAAIO,EAAEwY,cAAcpX,KAEzE1C,KAAKiC,MAAO,WACZ,IAAIlB,EACAO,EAAI,SAAWP,EAAG2B,GACpB,SAASpB,IACPW,KAAKD,YAAcjB,EAGrB,IAAK,IAAIT,KAAKoC,EACZ7C,EAAEG,KAAK0C,EAAGpC,KAAOS,EAAET,GAAKoC,EAAEpC,IAG5B,OAAOgB,EAAEG,UAAYiB,EAAEjB,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEiR,UAAYtP,EAAEjB,UAAWV,GAElFlB,EAAI,GAAG6B,eAEXX,EAAI2B,EAAEoV,YAAapV,EAAEk4B,0BAA4B,SAAU/6B,GACzD,SAASS,IACPA,EAAE0R,UAAUhQ,YAAYa,MAAMZ,KAAMa,WAAYb,KAAKuf,WAAWqZ,gBAAkB54B,KAGpF,OAAOX,EAAEhB,EAAGT,GAAIS,EAAEmB,UAAU63B,mBAAqB,WAC/C,OAAOr3B,KAAK64B,MAAQ/5B,EAAE,CACpB8W,QAAS,MACT/P,WAAY,CACVizB,IAAK,IAEPvzB,KAAM,CACJ6wB,aAAa,KAEbp2B,KAAK+4B,QAAQ/4B,KAAK64B,OAAQ,CAAC74B,KAAK64B,QACnCx6B,EAAEmB,UAAUm4B,qBAAuB,WACpC,IAAI74B,EACJ,OAAOA,EAAIT,EAAE0R,UAAU4nB,qBAAqB/2B,MAAMZ,KAAMa,YAAcuV,aAAetX,EAAEqN,aAAa,wBAAyB1L,EAAE6O,OAAOuO,KAAKK,oBAAqBpf,GAC/JT,EAAEmB,UAAUu5B,QAAU,SAAUj6B,GACjC,IAAI2B,EACJ,OAAO,MAAQ3B,IAAMA,EAAI,OAAS2B,EAAIT,KAAK8kB,eAAiBrkB,EAAEoX,cAAc,YAAS,GAAS/Y,EAAIkB,KAAKg5B,yBAAyBl6B,QAAK,GACpIT,EAAEmB,UAAUw5B,yBAA2B,SAAUl6B,GAClD,IAAI2B,EAAGpB,EAAGzB,EAAGS,EAAGK,EAAGiB,EACnB,OAAOjB,EAAIsB,KAAKuf,WAAW0Z,SAAU55B,EAAIW,KAAKuf,WAAW2Z,gBAAiBp6B,EAAEg6B,IAAMz5B,GAAKX,EAAGW,IAAMX,EAAII,EAAEsO,gBAAgB,oCAAsCxP,EAAIuS,KAAKQ,UAAU,CAC7KmoB,IAAKp6B,IACHI,EAAEqN,aAAa,kCAAmCvO,IAAK+B,EAAIK,KAAKuf,WAAW4Z,WAAY14B,EAAIT,KAAKuf,WAAW6Z,YAAa,MAAQz5B,IAAMb,EAAEu6B,MAAQ15B,GAAI,MAAQc,IAAM3B,EAAE83B,OAASn2B,GAAIpC,EAAI,CAAC,eAAgB2B,KAAKuf,WAAWvP,GAAIlR,EAAEg6B,IAAKh6B,EAAEu6B,MAAOv6B,EAAE83B,QAAQnmB,KAAK,KAAM3R,EAAEmX,QAAQkG,aAAe9d,GAC3RA,EAAEmB,UAAU85B,8BAAgC,WAC7C,OAAOt5B,KAAK+4B,QAAQ/4B,KAAK64B,OAAQ74B,KAAK+4B,WACrC16B,EA5B4C,CA6B/CoC,EAAE0W,iBACJpZ,KAAKiC,MAAO,WACZ,IAAIlB,EACAO,EACAzB,EACAS,EAAI,SAAWS,EAAG2B,GACpB,SAASpB,IACPW,KAAKD,YAAcjB,EAGrB,IAAK,IAAIlB,KAAK6C,EACZ/B,EAAEX,KAAK0C,EAAG7C,KAAOkB,EAAElB,GAAK6C,EAAE7C,IAG5B,OAAOyB,EAAEG,UAAYiB,EAAEjB,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEiR,UAAYtP,EAAEjB,UAAWV,GAElFJ,EAAI,GAAGe,eAEX7B,EAAI6C,EAAEoV,YAAa/W,EAAI2B,EAAE6T,iBAAkBjV,EAAIoB,EAAEuS,cAAevS,EAAE84B,UAAY,SAAU76B,GACtF,SAASiB,IACP,IAAIb,EACJa,EAAEoQ,UAAUhQ,YAAYa,MAAMZ,KAAMa,WAAYb,KAAKo3B,MAAQp3B,KAAKV,OAAQU,KAAK6F,WAAa7F,KAAKo3B,MAAMoC,gBAAiB16B,EAAIkB,KAAK6D,QAAS7D,KAAKy5B,WAAa36B,EAAE26B,WAAYz5B,KAAK05B,QAAU56B,EAAE46B,QAAS15B,KAAKo3B,MAAM7X,WAAavf,KAAKuf,WAAavf,KAAKo3B,MAAM7X,WAAavf,KAAK2sB,OAAS3sB,KAAKo3B,MAAMpmB,WAGjS,IAAIxP,EACJ,OAAOnD,EAAEsB,EAAGjB,GAAIiB,EAAEH,UAAUykB,YAAc,WACxC,IAAIxjB,EAAGpB,EAAGzB,EAAGS,EAAGK,EAAGiB,EAEnB,GAAIA,EAAIK,KAAKuf,WAAavf,KAAK25B,wBAA0B35B,KAAK45B,oBAAqBn5B,EAAIT,KAAKyN,gBAAiB,CAC3G,IAAK7P,EAAIkB,EAAE2B,GAAIpB,EAAI,EAAGhB,EAAIsB,EAAE8B,OAAQpD,EAAIgB,EAAGA,IACzCX,EAAIiB,EAAEN,GAAIzB,EAAEyY,YAAY3X,GAG1BiB,EAAI,CAACc,GAGP,OAAOd,GACNA,EAAEH,UAAUm6B,sBAAwB,WACrC,IAAI76B,EACJ,OAAOA,EAAIkB,KAAKuf,WAAWqW,gBAAkBn1B,EAAEk4B,0BAA4Bl4B,EAAE0W,eAAoBnX,KAAKykB,gBAAgB3lB,EAAGkB,KAAKo3B,MAAM7X,WAAY,CAC9I6X,MAAOp3B,KAAKo3B,QACRrT,YACLpkB,EAAEH,UAAUo6B,kBAAoB,WACjC,IAAI96B,EAAG2B,EAAGpB,EAAGhB,EAAMsB,EAAG6B,EAAGG,EAAG1D,EAAGJ,EAC/B,GAAI,OAAS8D,EAAI3B,KAAKy5B,YAAc93B,EAAE0e,eAAY,EAAQ,MAAO,CAAC5d,SAASu1B,eAAeh4B,KAAK2sB,SAE/F,IAAKnrB,EAAI,GAAiCnC,EAAIoB,EAAI,EAAGpC,GAAxCJ,EAAI+B,KAAK2sB,OAAO/hB,MAAM,OAAwBnJ,OAAQpD,EAAIoC,EAAGpB,IAAMoB,EAC9E5C,EAAII,EAAEoB,GAAIA,EAAI,IAAMP,EAAIlB,EAAE,MAAO4D,EAAEhB,KAAK1B,IAAUjB,EAAE4D,SAAY9B,EAAI8C,SAASu1B,eAAeh4B,KAAK65B,eAAeh8B,IAAK2D,EAAEhB,KAAKb,IAG9H,OAAO6B,GACN7B,EAAEH,UAAUiO,cAAgB,WAC7B,IAAI3O,EAAG2B,EAAGpC,EAAGK,EAAGiB,EAAG6B,EAAGG,EAAG1D,EAAGJ,EAG5B,IAAKa,KAFLT,EAAI,GAAIuD,EAAIxB,KAAK6F,WAGf,GAAIhI,EAAI2D,EAAE9C,IAAKI,EAAIO,EAAEX,MAAQI,EAAE8W,UAAYjW,EAAI/B,EAAEkB,EAAE8W,SAAUvX,GAAKA,EAAEgY,YAAY1W,GAAItB,EAAIsB,GAAKc,EAAIpC,EAAIsB,GAAIb,EAAEg7B,gBAAkB77B,EAAEa,EAAEg7B,eAAiBj8B,GAAIiB,EAAEkX,OAGtJ,IAAKtX,KAFLiD,EAAI7C,EAAEkX,MAGJnY,EAAI8D,EAAEjD,GAAIT,EAAES,GAAKb,EAKvB,GAAIS,OAAOgU,KAAKrU,GAAGwD,OAGjB,IAAK/C,KAFL,MAAQ+B,IAAMA,EAAI7C,EAAE,SAEVK,EACRJ,EAAII,EAAES,GAAI+B,EAAEuV,MAAMtX,GAAKb,EAI3B,OAAO4C,GACNd,EAAEH,UAAUmmB,uBAAyB,WACtC,IAAI7mB,EAAG2B,EAAGpC,EAAGK,EAAGiB,EAGhB,IAAKtB,KAFLK,EAAIsB,KAAK6F,WAGP,GAAIlG,EAAIjB,EAAEL,IAAKoC,EAAIpB,EAAEhB,KAAOoC,EAAEghB,aAAc,OAAO3iB,EAAI,IAAMT,GAAKsB,EAAG/B,EAAE6C,EAAEghB,aAAc3iB,IAExF0C,EAAIf,EAAEsO,mBAAoBpP,EAAEH,UAAUq6B,eAAiB,SAAU/6B,GAClE,OAAOkB,KAAK05B,QAAQK,SAAWj7B,EAAIA,EAAEsS,QAAQ,MAAO5P,IAAK1C,EAAIA,EAAEsS,QAAQ,iBAAkB,MAAQ5P,EAAI,OAAO4P,QAAQ,SAAU5P,EAAI,KAAK4P,QAAQ,SAAU,IAAM5P,IAAKxB,KAAK05B,QAAQM,SAAWh6B,KAAK05B,QAAQO,qBAAuBn7B,EAAIA,EAAEsS,QAAQ,MAAO5P,IAAK1C,GACzPa,EAjEyE,CAkE5Ec,EAAEmjB,aACJ7lB,KAAKiC,MAAO,WACZ,IAAIlB,EAAI,SAAWo7B,EAAMz5B,GACvB,SAAS7C,IACPoC,KAAKD,YAAcm6B,EAGrB,IAAK,IAAI77B,KAAKoC,EACZpB,EAAEtB,KAAK0C,EAAGpC,KAAO67B,EAAK77B,GAAKoC,EAAEpC,IAG/B,OAAOT,EAAE4B,UAAYiB,EAAEjB,UAAW06B,EAAK16B,UAAY,IAAI5B,EAAKs8B,EAAKnqB,UAAYtP,EAAEjB,UAAW06B,GAExF76B,EAAI,GAAGI,eAEXgB,EAAE05B,SAAW,SAAU96B,GACrB,SAASzB,IACPA,EAAEmS,UAAUhQ,YAAYa,MAAMZ,KAAMa,WAAYb,KAAKogB,KAAOpgB,KAAKV,OAAQU,KAAKy5B,WAAaz5B,KAAK6D,QAAQ41B,WAG1G,IAAIp7B,EACJ,OAAOS,EAAElB,EAAGyB,GAAIzB,EAAE4B,UAAUykB,YAAc,WACxC,IAAInlB,EAAGO,EAAGzB,EAAGc,EAAGiB,EAAG6B,EAAGG,EAAG1D,EAAGJ,EAAGsD,EAE/B,IAAKK,EAAI,GAAsD9C,GAAlDT,EAAIwC,EAAE2a,YAAYI,aAAaxb,KAAKo6B,cAAoB34B,OAAS,EAAG7D,EAAIyB,EAAI,EAAGM,EAAI1B,EAAEwD,OAAQ9B,EAAIN,EAAGzB,IAAMyB,EACrHsC,EAAI1D,EAAEL,GAAIkB,EAAI,GAAI,IAAMlB,IAAMkB,EAAEk7B,SAAU,GAAKp8B,IAAMc,IAAMI,EAAEi7B,QAAS,GAAK17B,EAAER,KAAOiB,EAAEm7B,mBAAoB,GAAK94B,EAAInB,KAAKskB,4BAA4B7jB,EAAE84B,UAAW53B,EAAG,CAClK83B,WAAYz5B,KAAKy5B,WACjBC,QAAS56B,IACP0C,EAAEhB,KAAKI,MAAMY,EAAGL,EAAE4iB,YAAalmB,EAAI8D,EAGzC,OAAOH,GACN5D,EAAE4B,UAAU46B,UAAY,WACzB,IAAIt7B,EAAG2B,EAAGpB,EAAGzB,EAAGS,EAEhB,IAAgCA,EAAI,GAAIS,EAAI,EAAG2B,GAA1C7C,EAAIoC,KAAKogB,KAAKga,aAAkC34B,OAAQhB,EAAI3B,EAAGA,KAClEO,EAAIzB,EAAEkB,IAAMu7B,aAAa,eAAiBh8B,EAAEmC,KAAKnB,GAGnD,OAAOhB,GACNA,EAAI,SAAWS,GAChB,MAAO,MAAMkG,KAAK,MAAQlG,EAAIA,EAAEkS,gBAAa,IAC5CpT,EA3BQ,CA4BX6C,EAAEmjB,aACJ7lB,KAAKiC,MAAO,WACZ,IAAIlB,EACAO,EACAzB,EACAS,EAAI,SAAWS,EAAG2B,GACpB,SAASpB,IACPW,KAAKD,YAAcjB,EAGrB,IAAK,IAAIlB,KAAK6C,EACZ/B,EAAEX,KAAK0C,EAAG7C,KAAOkB,EAAElB,GAAK6C,EAAE7C,IAG5B,OAAOyB,EAAEG,UAAYiB,EAAEjB,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEiR,UAAYtP,EAAEjB,UAAWV,GAElFJ,EAAI,GAAGe,eAEX7B,EAAI6C,EAAEoV,YAAaxW,EAAIoB,EAAEqS,eAAgBhU,EAAI2B,EAAE6O,OAAOgQ,IAAK7e,EAAE65B,UAAY,SAAU57B,GACjF,SAASiB,IACPA,EAAEoQ,UAAUhQ,YAAYa,MAAMZ,KAAMa,WAAYb,KAAKu6B,MAAQv6B,KAAKV,OAAQU,KAAK6F,WAAa7F,KAAKu6B,MAAMf,gBAGzG,OAAOn7B,EAAEsB,EAAGjB,GAAIiB,EAAEH,UAAUykB,YAAc,WACxC,IAAInlB,EAAMJ,EAAGiB,EAAG6B,EAAGG,EAAG1D,EAAGJ,EAAGsD,EAAGzB,EAAGxB,EAClC,GAAyCD,EAAI,CAArCwE,SAAS+3B,cAAc,UAAmBx6B,KAAKu6B,MAAMvf,UAAY/c,EAAEuC,KAAK5C,EAAE,QAAU8B,EAAI,OAAS7B,EAAIwB,EAAEW,KAAKu6B,MAAME,qBAAuB58B,EAAEuiB,UAAO,EAAQliB,EAAI8B,KAAKskB,4BAA4B7jB,EAAE05B,SAAUn6B,KAAKu6B,MAAMna,KAAM,CAClOqZ,WAAY/5B,IACVzB,EAAEuC,KAAKI,MAAM3C,EAAGC,EAAE6lB,YAAa/jB,KAAK06B,gCAAkCz8B,EAAEuC,KAAK5C,EAAE,QAASoC,KAAK6F,WAAWpE,OAAQ,OAAOxD,EAE3H,IAAKkD,EAAIV,EAAE6O,OAAOyD,gBAAyB,QAAE6C,QAAS5V,KAAKu6B,MAAMI,UAAY77B,EAAI,CAC/Esb,IAAK,QACH1b,EAAId,EAAE,CACRgY,QAASzU,EACT0E,WAAY/G,IACVa,EAAI,EAAG6B,EAAIvD,EAAEwD,OAAQD,EAAI7B,EAAGA,IAC9BgC,EAAI1D,EAAE0B,GAAIjB,EAAE2X,YAAY1U,GAG1B,MAAO,CAACjD,IACPiB,EAAEH,UAAUmmB,uBAAyB,SAAUllB,GAChD,IAAIpC,EAAGK,EAAGiB,EAAG6B,EAAGG,EAChB,OAAOtD,EAAI2B,KAAK6F,WAAWpF,GAAIkB,EAAItC,EAAEhB,GAAGuX,QAAS,IAAMnV,GAAKT,KAAKu6B,MAAMI,UAAYj8B,EAAI,CACrF0b,IAAK,QACH,sBAAwB/b,IAAMmD,EAAIxB,KAAKu6B,MAAMK,wBAAyBj7B,EAAIb,EAAEkhB,kBAAoB,IAAMlhB,EAAEkhB,kBAAoB,KAAOxe,GAAI5D,EAAE,CAC3IgY,QAASjU,EACTuU,UAAWvW,EACXkG,WAAYnH,KAEbiB,EAAEH,UAAUk7B,6BAA+B,WAC5C,MAAO,QAAQ11B,KAAKhF,KAAKu6B,MAAMvpB,aAC9BrR,EAhCoE,CAiCvEc,EAAEmjB,aACJ7lB,KAAKiC,MAAO,WACZ,IAAIlB,EACAO,EACAzB,EAAI,SAAWkB,EAAG2B,GACpB,SAASpB,IACPW,KAAKD,YAAcjB,EAGrB,IAAK,IAAIlB,KAAK6C,EACZpC,EAAEN,KAAK0C,EAAG7C,KAAOkB,EAAElB,GAAK6C,EAAE7C,IAG5B,OAAOyB,EAAEG,UAAYiB,EAAEjB,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEiR,UAAYtP,EAAEjB,UAAWV,GAElFT,EAAI,GAAGoB,eAEXX,EAAI2B,EAAEyQ,MAAO7R,EAAIoB,EAAEoV,YAAapV,EAAEwhB,aAAe,SAAU5jB,GACzD,SAASK,IACPA,EAAEqR,UAAUhQ,YAAYa,MAAMZ,KAAMa,WAAYb,KAAKglB,QAAUhlB,KAAK6D,QAAQmhB,QAAShlB,KAAK66B,aAAe,IAAIp6B,EAAEub,aAAgBhc,KAAK86B,YAAY96B,KAAKV,QAGvJ,IAAIK,EAAG6B,EAAGG,EACV,OAAO/D,EAAEc,EAAGL,GAAIK,EAAEwjB,OAAS,SAAUpjB,GACnC,IAAI2B,EAAG7C,EACP,OAAqBA,EAAI,IAAIoC,KAAKlB,EAAG,CACnCkmB,QADKvkB,EAAIpB,EAAE,UAEP6iB,SAAUtkB,EAAEm9B,OAAQt6B,GACzB/B,EAAEc,UAAUs7B,YAAc,SAAUh8B,GACrC,OAAOA,EAAEwR,UAAUtQ,KAAKyC,eAAY,EAASzC,KAAKyC,SAAWzC,KAAKV,OAASR,GAC1EJ,EAAEc,UAAU0iB,OAAS,WACtB,IAAIpjB,EAAGlB,EAAGS,EAAGK,EAAGiB,EAAG6B,EAAGG,EAEtB,GAAI3B,KAAK6jB,WAAa,GAAI7jB,KAAKg7B,cAAgB37B,EAAE,QAASW,KAAKyC,SAASuY,UAAW,CACjF,IAEIxZ,EAAI,GAAI1C,EAAI,EAAGlB,GAFd+B,EAAIc,EAAE2a,YAAYI,aAAaxb,KAAKyC,SAASw4B,YAAa,CAC7D1f,QAAQ,KACe9Z,OAAQ7D,EAAIkB,EAAGA,IACtCJ,EAAIiB,EAAEb,GAAI6C,EAAI3B,KAAKskB,4BAA4B7jB,EAAE65B,UAAW57B,GAAI8C,EAAEhB,KAAK,WACrE,IAAI1B,EAAG2B,EAAGpB,EAAGzB,EAEb,IAAuBA,EAAI,GAAIkB,EAAI,EAAG2B,GAAjCpB,EAAIsC,EAAEoiB,YAAiCtiB,OAAQhB,EAAI3B,EAAGA,IACzDT,EAAIgB,EAAEP,GAAIlB,EAAE4C,KAAKR,KAAKg7B,cAAc3kB,YAAYhY,IAGlD,OAAOT,GACPG,KAAKiC,OAGT,OAAOwB,IAER9C,EAAEc,UAAU07B,SAAW,WACxB,OAAOv7B,EAAEK,KAAKg7B,cAAeh7B,KAAKglB,UACjCtmB,EAAEc,UAAUu7B,KAAO,WACpB,IAAIj8B,EAEJ,IAAKA,EAAIkB,KAAKm7B,gCAAiCn7B,KAAKglB,QAAQoW,WAC1Dp7B,KAAKglB,QAAQ/P,YAAYjV,KAAKglB,QAAQoW,WAGxC,OAAOp7B,KAAKglB,QAAQ3O,YAAYvX,GAAIkB,KAAKq7B,WACxC38B,EAAEc,UAAU67B,QAAU,WACvB,OAAOr7B,KAAK66B,aAAa5e,MAAMza,EAAExB,KAAKglB,UAAWlmB,EAAE,SAAUA,GAC3D,OAAO,WACL,OAAOA,EAAEymB,6BAFsC,CAIjDvlB,QACDtB,EAAEc,UAAU27B,8BAAgC,WAC7C,IAAIr8B,EAAG2B,EAAGpB,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAGgC,EAAG1D,EAAGJ,EAE/B,IAAK4C,EAAIgC,SAAS64B,yBAA6Dj8B,EAAI,EAAGhB,GAA1CsD,EAAI3B,KAAKg7B,cAAcpmB,YAAyBnT,OAAQpD,EAAIgB,EAAGA,IACzGM,EAAIgC,EAAEtC,GAAIoB,EAAE4V,YAAY1W,EAAEwiB,WAAU,IAGtC,IAAevkB,EAAI,EAAGc,GAAjBT,EAAIuD,EAAEf,IAAiBgB,OAAQ/C,EAAId,EAAGA,IACzCkB,EAAIb,EAAEL,IAAKC,EAAImC,KAAK66B,aAAa/f,OAAOhc,KAAOA,EAAE8E,WAAW23B,aAAa19B,EAAGiB,GAG9E,OAAO2B,GACNe,EAAI,SAAW1C,GAChB,OAAOA,EAAE+K,iBAAiB,0BACzBlK,EAAI,SAAWb,EAAG2B,GACnB,OAAOkB,EAAE7C,EAAEijB,aAAepgB,EAAElB,EAAEshB,YAC7BpgB,EAAI,SAAW7C,GAChB,OAAOA,EAAEsS,QAAQ,UAAW,MAC3B1S,EAnE4C,CAoE/C+B,EAAEmjB,aACJ7lB,KAAKiC,MAAO,WACZ,IAAIlB,EACAO,EACAzB,EACAS,EACAK,EACAiB,EAAI,SAAWb,EAAG2B,GACpB,OAAO,WACL,OAAO3B,EAAE8B,MAAMH,EAAGI,aAGlBW,EAAI,SAAW1C,EAAG2B,GACpB,SAASpB,IACPW,KAAKD,YAAcjB,EAGrB,IAAK,IAAIlB,KAAK6C,EACZkB,EAAE5D,KAAK0C,EAAG7C,KAAOkB,EAAElB,GAAK6C,EAAE7C,IAG5B,OAAOyB,EAAEG,UAAYiB,EAAEjB,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEiR,UAAYtP,EAAEjB,UAAWV,GAElF6C,EAAI,GAAGlC,eAEX7B,EAAI6C,EAAEuT,2BAA4B3V,EAAIoC,EAAEiG,YAAahI,EAAI+B,EAAE8T,qBAAsBlV,EAAIoB,EAAEyQ,MAAOpS,EAAI2B,EAAE0W,eAAeC,mBAAoB3W,EAAE+6B,sBAAwB,SAAU75B,GACzK,SAAS1D,EAAEoB,EAAGzB,GACZoC,KAAKglB,QAAU3lB,EAAGW,KAAKy7B,YAAc79B,EAAGoC,KAAK07B,mBAAqB/7B,EAAEK,KAAK07B,mBAAoB17B,MAAOA,KAAK27B,QAAUh8B,EAAEK,KAAK27B,QAAS37B,MAAOA,KAAK47B,SAAWj8B,EAAEK,KAAK47B,SAAU57B,MAAOA,KAAK67B,aAAe,IAAIp7B,EAAEwhB,aAAajiB,KAAKy7B,YAAYh5B,SAAU,CAClPuiB,QAAShlB,KAAKglB,UACZ3mB,EAAE,QAAS,CACbqV,UAAW1T,KAAKglB,QAChBpR,aAAc5T,KAAK47B,WACjBv9B,EAAE,OAAQ,CACZqV,UAAW1T,KAAKglB,QAChBpR,aAAc5T,KAAK27B,UACjBt9B,EAAE,QAAS,CACbqV,UAAW1T,KAAKglB,QAChBrR,iBAAkB,2BAClB3L,gBAAgB,IACd3J,EAAE,YAAa,CACjBqV,UAAW1T,KAAKglB,QAChBrR,iBAAkB7U,EAClB8U,aAAc5T,KAAK07B,qBACjBr9B,EAAE,QAAS,CACbqV,UAAW1T,KAAKglB,QAChBrR,iBAAkB,IAAM7U,EACxBkJ,gBAAgB,IAIpB,OAAOxG,EAAEvD,EAAG0D,GAAI1D,EAAEuB,UAAUo8B,SAAW,WACrC,IAAI98B,EAAG2B,EAAGpB,EACV,OAAOP,EAAI,SAAUA,GACnB,OAAO,WACL,IAAI2B,EACJ,OAAO3B,EAAEg9B,aAAU,GAAUh9B,EAAEg9B,SAAU,EAAI,OAASr7B,EAAI3B,EAAEsnB,WAAa,mBAAqB3lB,EAAEs7B,8BAAgCt7B,EAAEs7B,qCAAkC,IAH7J,CAKT/7B,MAAO,OAASS,EAAI,OAASpB,EAAIW,KAAKg8B,aAAe38B,EAAEkC,KAAKzC,QAAK,GAAU2B,EAAI3B,KAChFb,EAAEuB,UAAUm8B,QAAU,WACvB,OAAO37B,KAAKg8B,YAAc,IAAIz5B,QAAQ,SAAUzD,GAC9C,OAAO,SAAU2B,GACf,OAAOpB,GAAE,WACP,IAAIA,EACJ,OAAOX,EAAEI,EAAEkmB,WAAalmB,EAAEg9B,QAAU,KAAM,OAASz8B,EAAIP,EAAEsnB,WAAa,mBAAqB/mB,EAAE48B,8BAAgC58B,EAAE48B,gCAAiCn9B,EAAEk9B,YAAc,KAAMv7B,QAJtJ,CAOpCT,QACD/B,EAAEuB,UAAUk8B,mBAAqB,SAAU58B,EAAG2B,GAC/C,IAAIpB,EAAGhB,EAAGK,EACV,OAAOW,EAAIW,KAAKk8B,yBAAyBz7B,GAAIpC,EAAI,MAAQT,EAAEkB,EAAEqF,OAAQ,CACnEwP,iBAAkB,eAChB,OAASjV,EAAIsB,KAAKomB,WAAa,mBAAqB1nB,EAAEy9B,yCAA2Cz9B,EAAEy9B,yCAAyC98B,EAAG,CACjJ23B,YAAa34B,SACV,GACJJ,EAAEuB,UAAU48B,uBAAyB,WACtC,OAAOp8B,KAAKq8B,sBAAwBr8B,KAAK67B,aAAab,cAAgBh7B,KAAKglB,SAC1E/mB,EAAEuB,UAAU0iB,OAAS,WACtB,IAAIpjB,EAAG2B,EAAGpB,EACV,OAAOW,KAAKs8B,WAAat8B,KAAKy7B,YAAYa,WAAat8B,KAAK67B,aAAaf,YAAY96B,KAAKy7B,YAAYh5B,UAAWzC,KAAK67B,aAAa3Z,SAAUliB,KAAKs8B,SAAWt8B,KAAKy7B,YAAYa,UAAWt8B,KAAKu8B,wBAA0Bv8B,KAAK67B,aAAaX,aAAe,OAASp8B,EAAIkB,KAAKomB,WAAa,mBAAqBtnB,EAAE09B,2CAA6C19B,EAAE09B,4CAA6Cx8B,KAAK67B,aAAad,OAAQ,OAASt6B,EAAIT,KAAKomB,WAAa,mBAAqB3lB,EAAEg8B,0CAA4Ch8B,EAAEg8B,4CAA6C,OAASp9B,EAAIW,KAAKomB,WAAa,mBAAqB/mB,EAAEq9B,+BAAiCr9B,EAAEq9B,sCAAmC,GACjrBz+B,EAAEuB,UAAUm9B,sBAAwB,SAAU79B,GAC/C,OAAOkB,KAAKokB,wBAAwBtlB,GAAIkB,KAAKkiB,UAC5CjkB,EAAEuB,UAAU4kB,wBAA0B,SAAUtlB,GACjD,OAAOkB,KAAK67B,aAAazX,wBAAwBtlB,IAChDb,EAAEuB,UAAU0lB,qBAAuB,WACpC,OAAOllB,KAAK67B,aAAa3W,wBACxBjnB,EAAEuB,UAAU6lB,kBAAoB,WACjC,OAAOrlB,KAAK67B,aAAaxW,qBACxBpnB,EAAEuB,UAAU8lB,mBAAqB,WAClC,OAAOtlB,KAAK67B,aAAavW,sBACxBrnB,EAAEuB,UAAUo9B,iBAAmB,WAChC,OAAO58B,KAAK67B,aAAatW,6BACxBtnB,EAAEuB,UAAU68B,oBAAsB,WACnC,OAAO,MAAQr8B,KAAK68B,kBACnB5+B,EAAEuB,UAAUs9B,qCAAuC,SAAUh+B,EAAGO,GACjE,IAAIzB,EAAGS,EAAGK,EACV,IAAK,OAASA,EAAIsB,KAAK68B,kBAAoBn+B,EAAE6gB,gBAAa,KAAYzgB,IAAMT,EAAI2B,KAAK67B,aAAa9W,qBAAqBjmB,IAAK,OAAOkB,KAAK+8B,4BAA6Bn/B,EAAIoC,KAAKy7B,YAAYh5B,SAASu6B,gCAAgCl+B,GAAIkB,KAAK68B,iBAAmB,IAAIp8B,EAAEs0B,2BAA2Bn3B,EAAGS,EAAG2B,KAAKglB,QAAS3lB,GAAIW,KAAK68B,iBAAiBzW,SAAWpmB,MACxV/B,EAAEuB,UAAUu9B,0BAA4B,WACzC,IAAIj+B,EACJ,OAAO,OAASA,EAAIkB,KAAK68B,kBAAoB/9B,EAAEg3B,iBAAc,GAC5D73B,EAAEuB,UAAUw2B,6BAA+B,WAC5C,OAAOh2B,KAAK68B,iBAAmB,KAAM78B,KAAKkiB,UACzCjkB,EAAEuB,UAAU02B,0DAA4D,SAAUp3B,EAAG2B,GACtF,IAAIpB,EACJ,OAAO,OAASA,EAAIW,KAAKomB,WAAa,mBAAqB/mB,EAAE49B,2CAA6C59B,EAAE49B,0CAA0Cx8B,GAAIT,KAAKy7B,YAAYyB,8BAA8Bp+B,EAAG2B,IAC3MxC,EAAEuB,UAAU22B,yDAA2D,SAAUr3B,EAAG2B,GACrF,IAAIpB,EACJ,OAAO,OAASA,EAAIW,KAAKomB,WAAa,mBAAqB/mB,EAAE49B,2CAA6C59B,EAAE49B,0CAA0Cx8B,GAAIT,KAAKy7B,YAAY0B,6BAA6Br+B,EAAG2B,IAC1MxC,EAAEuB,UAAUy3B,8CAAgD,SAAUn4B,GACvE,IAAI2B,EACJ,OAAO,OAASA,EAAIT,KAAKomB,WAAa,mBAAqB3lB,EAAE28B,mDAAqD38B,EAAE28B,mDAAmDt+B,QAAK,GAC3Kb,EAAEuB,UAAU03B,gDAAkD,SAAUp4B,GACzE,IAAI2B,EACJ,OAAO,OAASA,EAAIT,KAAKomB,WAAa,mBAAqB3lB,EAAE48B,qDAAuD58B,EAAE48B,qDAAqDv+B,QAAK,GAC/Kb,EAAEuB,UAAU+8B,oBAAsB,WACnC,OAAQv8B,KAAKq8B,uBACZp+B,EAAEuB,UAAU08B,yBAA2B,SAAUp9B,GAClD,OAAOkB,KAAKy7B,YAAYh5B,SAAS66B,kBAAkBC,SAASz+B,EAAEmX,QAAQqiB,OAAQ,MAC7Er6B,EA5F4J,CA6F/JwC,EAAE8O,cACJxR,KAAKiC,MAAO,WACZ,IAAIlB,EACAO,EACAzB,EACAS,EAAI,SAAWS,EAAG2B,GACpB,OAAO,WACL,OAAO3B,EAAE8B,MAAMH,EAAGI,aAGlBnC,EAAI,SAAWI,EAAG2B,GACpB,SAASpB,IACPW,KAAKD,YAAcjB,EAGrB,IAAK,IAAIlB,KAAK6C,EACZd,EAAE5B,KAAK0C,EAAG7C,KAAOkB,EAAElB,GAAK6C,EAAE7C,IAG5B,OAAOyB,EAAEG,UAAYiB,EAAEjB,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEiR,UAAYtP,EAAEjB,UAAWV,GAElFa,EAAI,GAAGF,eAEXJ,EAAIoB,EAAEiG,YAAa9I,EAAI6C,EAAEyT,aAAcpV,EAAI2B,EAAEuT,2BAA4BvT,EAAE+8B,kBAAoB,SAAU/8B,GACvG,SAASd,EAAEb,GACTkB,KAAKglB,QAAUlmB,EAAGkB,KAAKy9B,sBAAwBp/B,EAAE2B,KAAKy9B,sBAAuBz9B,MAAOA,KAAK09B,qBAAuBr/B,EAAE2B,KAAK09B,qBAAsB19B,MAAOA,KAAK29B,wBAA0Bt/B,EAAE2B,KAAK29B,wBAAyB39B,MAAOA,KAAKs1B,qBAAuBj3B,EAAE2B,KAAKs1B,qBAAsBt1B,MAAOA,KAAK6F,WAAa,GAAI7F,KAAK49B,QAAU,GAAI59B,KAAK69B,oBAAqBx+B,EAAE,YAAa,CAC1WqU,UAAW1T,KAAKglB,QAChBrR,iBAAkBnS,EAClBoS,aAAc5T,KAAKs1B,uBACjBj2B,EAAE,YAAa,CACjBqU,UAAW1T,KAAKglB,QAChBrR,iBAAkB1V,EAClB2V,aAAc5T,KAAK29B,0BACjBt+B,EAAE,QAAS,CACbqU,UAAW1T,KAAKglB,QAChBrR,iBAAkBxO,EAClB6C,gBAAgB,IACd3I,EAAE,QAAS,CACbqU,UAAW1T,KAAKglB,QAChBrR,iBAAkB9V,EAClB+V,aAAc5T,KAAK09B,uBACjBr+B,EAAE,UAAW,CACfqU,UAAW1T,KAAKglB,QAChBrR,iBAAkBxS,EAClByS,aAAc5T,KAAKy9B,wBAIvB,IAAIj8B,EAAMvD,EAAGJ,EAAGsD,EAAGzB,EAAGxB,EAAG2G,EAAGzB,EAAGpF,EAAGmH,EAClC,OAAOzG,EAAEiB,EAAGc,GAA2D0E,GAAvDlH,EAAI,yBAA2D,MAAlCuD,EAAI,uBAAwC9B,EAAI,sBAA8B,qBAAsB7B,EAAI6B,EAAI,sBAAuByB,EAAIzB,EAAI,qBAAsBC,EAAEH,UAAU81B,qBAAuB,SAAUx2B,EAAG2B,GAC5P,IAAIpB,EAAGzB,EAAGS,EACV,OAAO,OAAST,EAAIoC,KAAKomB,WAAaxoB,EAAEkgC,wBAAyBh/B,EAAEkJ,iBAAkB3I,EAAInB,EAAEuC,GAAIT,KAAK+9B,UAAU1+B,GAAKW,KAAKg+B,aAAa3+B,GAAK,OAAShB,EAAI2B,KAAKomB,UAAY/nB,EAAE4/B,uBAAuB5+B,QAAK,GACrMM,EAAEH,UAAUm+B,wBAA0B,SAAU7+B,EAAG2B,GACpD,IAAIpB,EAAGzB,EAAGS,EACV,OAAO,OAAST,EAAIoC,KAAKomB,WAAaxoB,EAAEkgC,wBAAyBh/B,EAAEkJ,iBAAkB3I,EAAIwF,EAAEpE,GAAIT,KAAK+9B,UAAU1+B,GAAKW,KAAKg+B,aAAa3+B,GAAK,OAAShB,EAAI2B,KAAKomB,WAAa/nB,EAAE6/B,0BAA0B7+B,GAAIW,KAAKm+B,2BAC7Mx+B,EAAEH,UAAUk+B,qBAAuB,SAAUj9B,EAAGpB,GACjD,IAAIzB,EACJ,OAAOA,EAAIkB,EAAEO,EAAG,CACdsU,iBAAkBjU,IACwBM,KAApCX,EAAEwN,aAAa,qBAA6B9O,KAAKiC,KAAMpC,IAC9D+B,EAAEH,UAAUi+B,sBAAwB,SAAU3+B,EAAG2B,GAClD,IAAIpB,EAAGzB,EACP,OAAO,KAAOkB,EAAE8qB,UAAY9qB,EAAEkJ,iBAAkB3I,EAAIoB,EAAEoM,aAAa,QAASjP,EAAIoC,KAAK+9B,UAAU1+B,GAAIW,KAAKmM,aAAavO,IAAK,KAAOkB,EAAE8qB,SAAW9qB,EAAEkJ,iBAAkBhI,KAAKo+B,mBAAgB,GACtLz+B,EAAEH,UAAU6+B,cAAgB,SAAUv/B,GACvC,OAAOkB,KAAK49B,QAAU9+B,EAAGkB,KAAKs+B,wBAC7B3+B,EAAEH,UAAU8+B,qBAAuB,WACpC,OAAOt+B,KAAKu+B,iBAAiB,SAAUz/B,GACrC,OAAO,SAAU2B,EAAGpB,GAClB,OAAOoB,EAAE+9B,UAA4B,IAAjB1/B,EAAE8+B,QAAQv+B,IAFL,CAI3BW,QACDL,EAAEH,UAAU++B,iBAAmB,SAAUz/B,GAC1C,IAAI2B,EAAGpB,EAAGzB,EAAGS,EAAGK,EAEhB,IAA2CA,EAAI,GAAIW,EAAI,EAAGzB,GAArDS,EAAI2B,KAAKglB,QAAQnb,iBAAiBrI,IAAyBC,OAAQ7D,EAAIyB,EAAGA,IAC7EoB,EAAIpC,EAAEgB,GAAIX,EAAE8B,KAAK1B,EAAE2B,EAAGvC,EAAEuC,KAG1B,OAAO/B,GACNiB,EAAEH,UAAUi/B,iBAAmB,SAAU3/B,GAC1C,OAAOkB,KAAK6F,WAAa/G,EAAGkB,KAAKm+B,2BAChCx+B,EAAEH,UAAU2+B,wBAA0B,WACvC,OAAOn+B,KAAK0+B,oBAAoB,SAAU5/B,GACxC,OAAO,SAAU2B,EAAGpB,GAClB,OAAOoB,EAAE+9B,UAA+B,IAApB1/B,EAAE+G,WAAWxG,GAAWP,EAAE+G,WAAWxG,IAAMP,EAAE6/B,gBAAgBt/B,IAAMoB,EAAE0L,aAAa,mBAAoB,IAAK1L,EAAE0V,UAAU5V,IAAI,iBAAmBE,EAAE2M,gBAAgB,oBAAqB3M,EAAE0V,UAAU2E,OAAO,iBAFhM,CAI9B9a,QACDL,EAAEH,UAAUk/B,oBAAsB,SAAU5/B,GAC7C,IAAI2B,EAAGpB,EAAGzB,EAAGS,EAAGK,EAEhB,IAA2CA,EAAI,GAAIW,EAAI,EAAGzB,GAArDS,EAAI2B,KAAKglB,QAAQnb,iBAAiB5L,IAAyBwD,OAAQ7D,EAAIyB,EAAGA,IAC7EoB,EAAIpC,EAAEgB,GAAIX,EAAE8B,KAAK1B,EAAE2B,EAAGoE,EAAEpE,KAG1B,OAAO/B,GACNiB,EAAEH,UAAUo/B,qBAAuB,SAAU9/B,GAC9C,IAAI2B,EAAMpC,EAAGK,EAAGiB,EAAG6B,EAAGG,EAEtB,IAAKhC,EAAIwQ,KAAKQ,UAAU7R,EAAEuE,QAA+D3E,EAAI,EAAG8C,GAA7DG,EAAI3B,KAAKglB,QAAQnb,iBAAiB,oBAAiCpI,OAAQD,EAAI9C,EAAGA,IACnH,GAAcL,GAAVoC,EAAIkB,EAAEjD,IAAUmO,aAAa,iBAAiBjC,MAAM,KAAUuF,KAAKQ,UAAUtS,EAAEgF,UAAe1D,EAAG,OAAO/B,EAAE,YAAa,CACzH8V,UAAWjT,KACT,EAGN,OAAO,GACNd,EAAEH,UAAUm/B,gBAAkB,SAAU7/B,GACzC,IAAI2B,EACJ,OAAQA,EAAIT,KAAK+9B,UAAUj/B,IAAM2B,EAAE45B,aAAa,yBAAsB,GACrE16B,EAAEH,UAAUw+B,aAAe,SAAUl/B,GACtC,OAAOkB,KAAK2+B,gBAAgB7/B,GAAKkB,KAAKo+B,aAAep+B,KAAK6+B,WAAW//B,IACpEa,EAAEH,UAAUq/B,WAAa,SAAU//B,GACpC,IAAI2B,EAAM7C,EAAGS,EAAGK,EAAGiB,EAAG6B,EAAGG,EAAG1D,EAAGJ,EAE/B,IAAKmC,KAAKo+B,aAAc,OAAS58B,EAAIxB,KAAKomB,WAAa5kB,EAAEs9B,yBAAyBlhC,EAAIoC,KAAK+9B,UAAUj/B,IAAMqN,aAAa,mBAAoB,IAAKvO,EAAEuY,UAAU5V,IAAI,eAA2DlC,EAAI,EAAGsB,GAAlDgC,EAAI/D,EAAEiM,iBAAiB,oBAAiCpI,OAAQ9B,EAAItB,EAAGA,IAClPsD,EAAEtD,GAAM+O,gBAAgB,YAG9B,OAAQ3M,EAAIoE,EAAEjH,MAAQc,EAAIV,EAAEJ,EAAGkB,MAAQJ,EAAEG,MAAQ,OAASZ,EAAI+B,KAAK6F,WAAWpF,IAAMxC,EAAI,GAAIS,EAAEqgC,UAAW,OAASlhC,EAAImC,KAAKomB,UAAYvoB,EAAEmhC,qBAAqBlgC,QAAK,GAClKa,EAAEH,UAAU2M,aAAe,SAAUrN,GACtC,IAAI2B,EAAGpB,EAAGzB,EACV,OAAO6C,EAAIoE,EAAE/F,IAAIO,EAAIrB,EAAEc,EAAG2B,IAAMw+B,eAAiB5/B,EAAE6/B,iBAAmB7/B,EAAE8M,aAAa,qBAAsB,IAAK9M,EAAE8W,UAAU5V,IAAI,iBAAkBlB,EAAE0vB,UAAY,OAASnxB,EAAIoC,KAAKomB,WAAaxoB,EAAEuhC,0BAA0B1+B,EAAGpB,EAAER,OAAQmB,KAAKo+B,eAC5Oz+B,EAAEH,UAAU4N,gBAAkB,SAAUtO,GACzC,IAAI2B,EAAGpB,EACP,OAAOoB,EAAIoE,EAAE/F,GAAI,OAASO,EAAIW,KAAKomB,WAAa/mB,EAAE+/B,0BAA0B3+B,GAAIT,KAAKo+B,cACpFz+B,EAAEH,UAAU4+B,WAAa,WAC1B,IAAIt/B,EAAG2B,EACP,OAAQ3B,EAAIkB,KAAKglB,QAAQnN,cA7E4FnY,0CA6EvEZ,EAAEsO,gBAAgB,oBAAqBtO,EAAEqX,UAAU2E,OAAO,eAAgB9a,KAAK69B,oBAAqB,OAASp9B,EAAIT,KAAKomB,UAAY3lB,EAAE4+B,qBAAqBj8B,EAAEtE,SAAM,QAAU,GACxNa,EAAEH,UAAUq+B,kBAAoB,WACjC,IAAI/+B,EAAG2B,EAAGpB,EAAGzB,EAAGS,EAEhB,IAA2CA,EAAI,GAAIS,EAAI,EAAGO,GAArDzB,EAAIoC,KAAKglB,QAAQnb,iBAAiB1I,IAAyBM,OAAQpC,EAAIP,EAAGA,KAC7E2B,EAAI7C,EAAEkB,IAAMqN,aAAa,WAAY,YAAa1L,EAAE2M,gBAAgB,sBAAuB/O,EAAEmC,KAAKC,EAAE0V,UAAU2E,OAAO,kBAGvH,OAAOzc,GACNsB,EAAEH,UAAUu+B,UAAY,SAAUj/B,GACnC,OAAOkB,KAAKglB,QAAQnN,cAAc,qBAAuB/Y,EAAI,MAC5Dd,EAAI,SAAWc,EAAG2B,GACnB,OAAO,MAAQA,IAAMA,EAAIoE,EAAE/F,IAAKA,EAAE+Y,cAAc,2BAA6BpX,EAAI,OAChFvC,EAAI,SAAWY,GAChB,OAAOA,EAAE+N,aAAa,qBACrBhI,EAAI,SAAW/F,GAChB,IAAI2B,EACJ,OAAO,OAASA,EAAI3B,EAAE+N,aAAa,wBAA0BpM,EAAI3B,EAAE+N,aAAa,+BAC/EzJ,EAAI,SAAWtE,GAChB,OAAOA,EAAE+N,aAAa,qBACrBlN,EA3H0F,CA4H7Fc,EAAE8O,cACJxR,KAAKiC,MAAO,WACZ,IAAIlB,EAAI,SAAWwgC,EAAM7+B,GACvB,SAAS7C,IACPoC,KAAKD,YAAcu/B,EAGrB,IAAK,IAAIjhC,KAAKoC,EACZpB,EAAEtB,KAAK0C,EAAGpC,KAAOihC,EAAKjhC,GAAKoC,EAAEpC,IAG/B,OAAOT,EAAE4B,UAAYiB,EAAEjB,UAAW8/B,EAAK9/B,UAAY,IAAI5B,EAAK0hC,EAAKvvB,UAAYtP,EAAEjB,UAAW8/B,GAExFjgC,EAAI,GAAGI,eAEXgB,EAAE8+B,sBAAwB,SAAU9+B,GAClC,SAASpB,EAAEP,GACTkB,KAAK+e,IAAMjgB,EAGb,OAAOA,EAAEO,EAAGoB,GAAIpB,EAAEG,UAAUsd,QAAU,SAAUhe,GAC9C,IAAI2B,EACJ,OAAOA,EAAI,IAAI++B,OAAWjY,OAAS,SAAUloB,GAC3C,OAAO,WACL,OAAOoB,EAAE44B,MAAQh6B,EAAEg6B,MAAQ54B,EAAEg/B,aAAch/B,EAAEm2B,OAASv3B,EAAEu3B,OAASn2B,EAAEi/B,cAAe5gC,GAAE,EAAI2B,IAFzD,CAIjCT,MAAOS,EAAE6mB,QAAU,WACnB,OAAOxoB,GAAE,IACR2B,EAAEq4B,IAAM94B,KAAK+e,KACf1f,EAdqB,CAexBoB,EAAE4b,YACJte,KAAKiC,MAAO,WACZ,IAAIlB,EAAI,SAAW6gC,EAAMl/B,GACvB,OAAO,WACL,OAAOk/B,EAAK/+B,MAAMH,EAAGI,aAGrBxB,EAAI,SAAWP,EAAG2B,GACpB,SAASpB,IACPW,KAAKD,YAAcjB,EAGrB,IAAK,IAAIT,KAAKoC,EACZ7C,EAAEG,KAAK0C,EAAGpC,KAAOS,EAAET,GAAKoC,EAAEpC,IAG5B,OAAOgB,EAAEG,UAAYiB,EAAEjB,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEiR,UAAYtP,EAAEjB,UAAWV,GAElFlB,EAAI,GAAG6B,eAEXgB,EAAEm/B,WAAa,SAAUhiC,GACvB,SAASS,EAAEgB,GACT,MAAQA,IAAMA,EAAI,IAAKW,KAAK6/B,YAAc/gC,EAAEkB,KAAK6/B,YAAa7/B,MAAO3B,EAAE0R,UAAUhQ,YAAYa,MAAMZ,KAAMa,WAAYb,KAAK6F,WAAapF,EAAEga,KAAK3J,IAAIzR,GAAIW,KAAK8/B,sBAG7J,OAAOzgC,EAAEhB,EAAGT,GAAIS,EAAE0hC,mBAAqB,8BAA+B1hC,EAAE2hC,kBAAoB,SAAUlhC,GACpG,IAAI2B,EACJ,OAAsCA,EAAI,IAAIT,KAAnCA,KAAKigC,kBAAkBnhC,KAAuBohC,QAAQphC,GAAI2B,GACpEpC,EAAE4hC,kBAAoB,SAAUnhC,GACjC,OAAO,IAAI2B,EAAEga,KAAK,CAChB0lB,SAAUrhC,EAAEX,KACZiiC,SAAUthC,EAAEgkB,KACZud,YAAavhC,EAAEoF,QAEhB7F,EAAE6R,SAAW,SAAUpR,GACxB,OAAO,IAAIkB,KAAKlB,IACfT,EAAEmB,UAAUqN,aAAe,SAAU/N,GACtC,OAAOkB,KAAK6F,WAAWpH,IAAIK,IAC1BT,EAAEmB,UAAU66B,aAAe,SAAUv7B,GACtC,OAAOkB,KAAK6F,WAAWxF,IAAIvB,IAC1BT,EAAEmB,UAAUg6B,cAAgB,WAC7B,OAAOx5B,KAAK6F,WAAWqV,YACtB7c,EAAEmB,UAAU8gC,cAAgB,SAAUxhC,GACvC,IAAI2B,EAAGpB,EAAGzB,EACV,OAAO,MAAQkB,IAAMA,EAAI,IAAK2B,EAAIT,KAAK6F,WAAWgV,MAAM/b,GAAIkB,KAAK6F,WAAWyK,UAAU7P,QAAK,GAAUT,KAAK6F,WAAapF,EAAGT,KAAK8/B,sBAAuB,OAASzgC,EAAIW,KAAK44B,kBAAoB,mBAAqBv5B,EAAEi6B,+BAAiCj6B,EAAEi6B,8BAA8Bt5B,MAAO,OAASpC,EAAIoC,KAAKomB,WAAa,mBAAqBxoB,EAAE07B,8BAAgC17B,EAAE07B,8BAA8Bt5B,WAAQ,IACxZ3B,EAAEmB,UAAUsgC,oBAAsB,WACnC,OAAO9/B,KAAK41B,gBAAkB51B,KAAKugC,kBAAe,GACjDliC,EAAEmB,UAAUo4B,UAAY,WACzB,OAAO,MAAQ53B,KAAK+iB,QAAU/iB,KAAKi5B,UAAYj5B,KAAKu3B,YACnDl5B,EAAEmB,UAAUo2B,cAAgB,WAC7B,OAAO51B,KAAK6F,WAAWxF,IAAI,eAAiBL,KAAK6F,WAAWpH,IAAI,eAAiBuB,KAAKD,YAAYggC,mBAAmB/6B,KAAKhF,KAAKq4B,mBAC9Hh6B,EAAEmB,UAAUy4B,QAAU,WACvB,OAAOj4B,KAAKy3B,aAAe,UAAYz3B,KAAK41B,gBAAkB,UAAY,QACzEv3B,EAAEmB,UAAUy5B,OAAS,WACtB,OAAOj5B,KAAK6F,WAAWpH,IAAI,QAC1BJ,EAAEmB,UAAU+3B,QAAU,WACvB,OAAOv3B,KAAK6F,WAAWpH,IAAI,SAC1BJ,EAAEmB,UAAU+2B,YAAc,WAC3B,IAAIz3B,EACJ,OAAO,OAASA,EAAIkB,KAAK6F,WAAWpH,IAAI,aAAeK,EAAI,IAC1DT,EAAEmB,UAAUghC,YAAc,WAC3B,OAAOxgC,KAAK6F,WAAWpH,IAAI,aAC1BJ,EAAEmB,UAAUg3B,qBAAuB,WACpC,IAAI13B,EACJ,MAA4C,iBAArCA,EAAIkB,KAAK6F,WAAWpH,IAAI,aAAoCgC,EAAE6O,OAAOqR,SAASG,UAAUhiB,GAAK,IACnGT,EAAEmB,UAAU04B,aAAe,WAC5B,IAAIp5B,EACJ,OAAO,OAASA,EAAIkB,KAAKu2B,cAAc3mB,MAAM,aAAe9Q,EAAE,GAAGuO,mBAAgB,GAChFhP,EAAEmB,UAAU64B,eAAiB,WAC9B,OAAOr4B,KAAK6F,WAAWpH,IAAI,gBAC1BJ,EAAEmB,UAAUi4B,WAAa,WAC1B,OAAOz3B,KAAK6F,WAAWxF,IAAI,YAC1BhC,EAAEmB,UAAUk4B,WAAa,WAC1B,OAAO13B,KAAK6F,WAAWpH,IAAI,YAC1BJ,EAAEmB,UAAU25B,SAAW,WACxB,OAAOn5B,KAAK6F,WAAWpH,IAAI,UAC1BJ,EAAEmB,UAAU45B,UAAY,WACzB,OAAOp5B,KAAK6F,WAAWpH,IAAI,WAC1BJ,EAAEmB,UAAUihC,QAAU,WACvB,OAAOzgC,KAAK+iB,MACX1kB,EAAEmB,UAAU0gC,QAAU,SAAUphC,GACjC,OAAOkB,KAAK+iB,KAAOjkB,EAAGkB,KAAK41B,gBAAkB51B,KAAK0gC,mBAAgB,GACjEriC,EAAEmB,UAAUqgC,YAAc,WAC3B,OAAO7/B,KAAK2gC,uBAAwB3gC,KAAK+iB,KAAO,MAC/C1kB,EAAEmB,UAAUs4B,kBAAoB,WACjC,IAAIh5B,EACJ,OAAO,OAASA,EAAIkB,KAAK4gC,gBAAkB9hC,EAAI,GAC9CT,EAAEmB,UAAUqhC,kBAAoB,SAAU/hC,GAC3C,IAAI2B,EACJ,OAAOT,KAAK4gC,iBAAmB9hC,GAAKkB,KAAK4gC,eAAiB9hC,EAAG,OAAS2B,EAAIT,KAAKm3B,yBAA2B,mBAAqB12B,EAAEi4B,kCAAoCj4B,EAAEi4B,kCAAkC14B,WAAQ,QAAU,GAC1N3B,EAAEmB,UAAU2b,OAAS,WACtB,OAAOnb,KAAKw5B,iBACXn7B,EAAEmB,UAAUuR,YAAc,WAC3B,MAAO,CAAC1S,EAAE0R,UAAUgB,YAAYnQ,MAAMZ,KAAMa,WAAYb,KAAK6F,WAAWkL,cAAe/Q,KAAKk5B,iBAAiBzoB,KAAK,MACjHpS,EAAEmB,UAAU05B,cAAgB,WAC7B,OAAOl5B,KAAK8gC,YAAc9gC,KAAK+gC,eAC9B1iC,EAAEmB,UAAUwhC,cAAgB,SAAUliC,GACvC,IAAI2B,EAAGpB,EACP,OAAOP,IAAMkB,KAAKk5B,iBAAmBl5B,KAAK8gC,WAAahiC,EAAG,OAAS2B,EAAIT,KAAK44B,kBAAoB,mBAAqBn4B,EAAE64B,+BAAiC74B,EAAE64B,8BAA8Bt5B,MAAO,OAASX,EAAIW,KAAKomB,WAAa,mBAAqB/mB,EAAE4hC,8BAAgC5hC,EAAE4hC,8BAA8BjhC,WAAQ,QAAU,GACtU3B,EAAEmB,UAAU+gC,WAAa,WAC1B,OAAOvgC,KAAKkhC,QAAQlhC,KAAKi5B,SAAUj5B,KAAK6/B,cACvCxhC,EAAEmB,UAAUkhC,YAAc,WAC3B,OAAO1gC,KAAK+iB,MAAQ/iB,KAAKmhC,cAAgB12B,IAAI22B,gBAAgBphC,KAAK+iB,MAAO/iB,KAAKkhC,QAAQlhC,KAAKmhC,qBAAkB,GAC5G9iC,EAAEmB,UAAUmhC,qBAAuB,WACpC,OAAO3gC,KAAKmhC,eAAiB12B,IAAI42B,gBAAgBrhC,KAAKmhC,eAAgBnhC,KAAKmhC,cAAgB,WAAQ,GAClG9iC,EAAEmB,UAAU0hC,QAAU,SAAUpiC,EAAGO,GAEpC,OAAOP,GAAKA,IAAMkB,KAAKk5B,iBAAmBl5B,KAAK+gC,cAAgBjiC,EAAO,IAAI2B,EAAE8+B,sBAAsBzgC,GAAMyC,KAAK,SAAUd,GACrH,OAAO,SAAU7C,GACf,IAAIS,EAAGK,EACP,OAAOA,EAAId,EAAEy7B,MAAOh7B,EAAIT,EAAEg5B,OAAQn2B,EAAE04B,YAAc14B,EAAE24B,aAAe34B,EAAE6/B,cAAc,CACjFjH,MAAO36B,EACPk4B,OAAQv4B,IACNoC,EAAEsgC,cAAgB,KAAMtgC,EAAEugC,cAAcliC,GAAI,mBAAqBO,EAAIA,SAAM,GAN0B,CAQ3GW,OAAc,MAAE,SAAUlB,GAC1B,OAAO,WACL,OAAOA,EAAEiiC,cAAgB,KAAM,mBAAqB1hC,EAAIA,SAAM,GAFhD,CAIhBW,aAAU,GACX3B,EApGU,CAqGboC,EAAEnC,SACJP,KAAKiC,MAAO,WACZ,IAAIlB,EAAI,SAAWwiC,EAAM7gC,GACvB,SAAS7C,IACPoC,KAAKD,YAAcuhC,EAGrB,IAAK,IAAIjjC,KAAKoC,EACZpB,EAAEtB,KAAK0C,EAAGpC,KAAOijC,EAAKjjC,GAAKoC,EAAEpC,IAG/B,OAAOT,EAAE4B,UAAYiB,EAAEjB,UAAW8hC,EAAK9hC,UAAY,IAAI5B,EAAK0jC,EAAKvxB,UAAYtP,EAAEjB,UAAW8hC,GAExFjiC,EAAI,GAAGI,eAEXgB,EAAE8gC,MAAQ,SAAUliC,GAClB,SAASzB,EAAEkB,EAAGO,GACZ,MAAQA,IAAMA,EAAI,IAAKzB,EAAEmS,UAAUhQ,YAAYa,MAAMZ,KAAMa,WAAYb,KAAK6F,WAAapF,EAAEga,KAAK3J,IAAIzR,GAGtG,OAAOP,EAAElB,EAAGyB,GAAIzB,EAAEgvB,MAAQ,GAAIhvB,EAAE4jC,aAAe,SAAU1iC,EAAG2B,GAC1D,OAAOA,EAAEyD,KAAOpF,EAAGkB,KAAK4sB,MAAM9tB,GAAK2B,GAClC7C,EAAEsS,SAAW,SAAUpR,GACxB,IAAI2B,EACJ,OAAQA,EAAIT,KAAK4sB,MAAM9tB,EAAEoF,OAASzD,EAAEyP,SAASpR,QAAK,GACjDlB,EAAE4B,UAAUiiC,mBAAqB,SAAU3iC,GAC5C,OAAO,IAAIkB,KAAKD,YAAYC,KAAK0hC,WAAY5iC,IAC5ClB,EAAE4B,UAAUmiC,6BAA+B,SAAU7iC,GACtD,OAAOkB,KAAKyhC,mBAAmBzhC,KAAK6F,WAAWgV,MAAM/b,KACpDlB,EAAE4B,UAAUoiC,qBAAuB,SAAU9iC,GAC9C,OAAOkB,KAAKyhC,mBAAmBzhC,KAAK6F,WAAWiV,OAAOhc,KACrDlB,EAAE4B,UAAUssB,KAAO,WACpB,OAAO9rB,KAAKyhC,mBAAmBzhC,KAAK6F,aACnCjI,EAAE4B,UAAUqN,aAAe,SAAU/N,GACtC,OAAOkB,KAAK6F,WAAWpH,IAAIK,IAC1BlB,EAAE4B,UAAUqiC,kBAAoB,WACjC,OAAO7hC,KAAK6F,YACXjI,EAAE4B,UAAUg6B,cAAgB,WAC7B,OAAOx5B,KAAK6F,WAAWqV,YACtBtd,EAAE4B,UAAUsiC,oBAAsB,WACnC,IAAIhjC,EAAG2B,EAAGpB,EACV,OAAQA,EAAI0iC,UAAUC,gBAAgB,KAAOljC,EAAIO,EAAEwG,WAAYpF,EAAI3B,EAAE6b,UAAWonB,UAAUE,WAAU,SAAU5iC,GAC5G,OAAOoB,EAAI3B,EAAE8b,oBAAoBvb,EAAEwG,YAAa/G,EAAIA,EAAEmD,MAAMxB,MAC1D3B,EAAEoc,YAAc,IACnBtd,EAAE4B,UAAU66B,aAAe,SAAUv7B,GACtC,OAAOkB,KAAK6F,WAAWxF,IAAIvB,IAC1BlB,EAAE4B,UAAU0iC,0BAA4B,SAAUpjC,GACnD,OAAO,MAAQA,GAAKkB,KAAKgR,aAAelS,EAAEkS,YACzCpT,EAAE4B,UAAU2iC,yBAA2B,SAAUrjC,GAClD,OAAO,MAAQA,IAAMkB,KAAK6F,aAAe/G,EAAE+G,YAAc7F,KAAK6F,WAAWyK,UAAUxR,EAAE+G,cACpFjI,EAAE4B,UAAU4iC,aAAe,WAC5B,OAAO,GACNxkC,EAAE4B,UAAU8Q,UAAY,SAAUxR,GACnC,OAAOlB,EAAEmS,UAAUO,UAAU1P,MAAMZ,KAAMa,YAAcb,KAAKqQ,qBAAqBvR,IAAMkB,KAAKkiC,0BAA0BpjC,IAAMkB,KAAKmiC,yBAAyBrjC,IACzJlB,EAAE4B,UAAUwb,QAAU,WACvB,OAAO,IAAMhb,KAAKyB,QACjB7D,EAAE4B,UAAU6iC,eAAiB,WAC9B,OAAO,GACNzkC,EAAE4B,UAAU2b,OAAS,WACtB,MAAO,CACLjX,KAAMlE,KAAKD,YAAYmE,KACvB2B,WAAY7F,KAAKw5B,kBAElB57B,EAAE4B,UAAUgR,sBAAwB,WACrC,MAAO,CACLtM,KAAMlE,KAAKD,YAAYmE,KACvB2B,WAAY7F,KAAK6F,WAAW0K,YAE7B3S,EAAE4B,UAAUic,aAAe,WAC5B,OAAOzb,KAAKq6B,aAAa,SACxBz8B,EAAE4B,UAAUkc,iBAAmB,SAAU5c,GAC1C,OAAOkB,KAAK6M,aAAa,UAAY/N,EAAE+N,aAAa,SACnDjP,EAAE4B,UAAU8iC,UAAY,WACzB,OAAOtiC,KAAKyB,QACX7D,EAAE4B,UAAU+iC,sBAAwB,WACrC,OAAO,GACN3kC,EA7DK,CA8DR6C,EAAEnC,SACJP,KAAKiC,MAAO,WACZ,IAAIlB,EAAI,SAAW0jC,EAAM/hC,GACvB,SAAS7C,IACPoC,KAAKD,YAAcyiC,EAGrB,IAAK,IAAInkC,KAAKoC,EACZpB,EAAEtB,KAAK0C,EAAGpC,KAAOmkC,EAAKnkC,GAAKoC,EAAEpC,IAG/B,OAAOT,EAAE4B,UAAYiB,EAAEjB,UAAWgjC,EAAKhjC,UAAY,IAAI5B,EAAK4kC,EAAKzyB,UAAYtP,EAAEjB,UAAWgjC,GAExFnjC,EAAI,GAAGI,eAEXgB,EAAE8gC,MAAMC,aAAa,aAAc/gC,EAAEgiC,gBAAkB,SAAUpjC,GAC/D,SAASzB,EAAEkB,GACTkB,KAAKuf,WAAazgB,EAAGlB,EAAEmS,UAAUhQ,YAAYa,MAAMZ,KAAMa,WAAYb,KAAKyB,OAAS,EAAGzB,KAAK0iC,wCAAwC,QAAS1iC,KAAKuf,WAAWkY,cAAgBz3B,KAAK2iC,6BAGnL,OAAO7jC,EAAElB,EAAGyB,GAAIzB,EAAEsS,SAAW,SAAUpR,GACrC,OAAO,IAAIkB,KAAKS,EAAEm/B,WAAW1vB,SAASpR,EAAEygB,YAAazgB,EAAE+G,aACtDjI,EAAEglC,oBAAsB,CAAC,UAAW,gBAAiBhlC,EAAE4B,UAAUkjC,wCAA0C,SAAU5jC,GACtH,OAAOkB,KAAKq6B,aAAav7B,IAAMkB,KAAKuf,WAAW8a,aAAav7B,IAAMkB,KAAKuf,WAAW+gB,cAActgC,KAAK6F,WAAW5D,MAAMnD,IAAKkB,KAAK6F,WAAa7F,KAAK6F,WAAWiV,OAAOhc,SAAM,GACzKlB,EAAE4B,UAAUmjC,2BAA6B,WAC1C,IAAI7jC,EACJ,OAAOA,EAAIkB,KAAK6F,WAAW5D,MAAMjC,KAAKD,YAAY6iC,sBAAwBtyB,UAAUtQ,KAAK6F,iBAAc,EAAS7F,KAAK6F,WAAa/G,GACjIlB,EAAE4B,UAAUkiC,SAAW,WACxB,OAAO1hC,KAAKuf,YACX3hB,EAAE4B,UAAU6iC,eAAiB,WAC9B,OAAQriC,KAAKuf,WAAWqY,aACvBh6B,EAAE4B,UAAUk3B,WAAa,WAC1B,IAAI53B,EACJ,OAAO,OAASA,EAAIkB,KAAK6F,WAAWpH,IAAI,YAAcK,EAAI,IACzDlB,EAAE4B,UAAU8Q,UAAY,SAAUxR,GACnC,IAAI2B,EACJ,OAAO7C,EAAEmS,UAAUO,UAAU1P,MAAMZ,KAAMa,YAAcb,KAAKuf,WAAWvP,MAAQ,MAAQlR,GAAK,OAAS2B,EAAI3B,EAAEygB,YAAc9e,EAAEuP,QAAK,IAC/HpS,EAAE4B,UAAUwR,SAAW,WACxB,OAAOvQ,EAAEuO,8BACRpR,EAAE4B,UAAU2b,OAAS,WACtB,IAAIrc,EACJ,OAAOA,EAAIlB,EAAEmS,UAAUoL,OAAOva,MAAMZ,KAAMa,YAAc0e,WAAavf,KAAKuf,WAAYzgB,GACrFlB,EAAE4B,UAAUuR,YAAc,WAC3B,MAAO,CAACnT,EAAEmS,UAAUgB,YAAYnQ,MAAMZ,KAAMa,WAAYb,KAAKuf,WAAWxO,eAAeN,KAAK,MAC3F7S,EAAE4B,UAAUqjC,UAAY,WACzB,OAAO1yB,KAAKQ,UAAU3Q,KAAKgR,aAC1BpT,EA/BkD,CAgCrD6C,EAAE8gC,SACJxjC,KAAKiC,MAAO,WACZ,IAAIlB,EACAO,EAAI,SAAWP,EAAG2B,GACpB,SAASpB,IACPW,KAAKD,YAAcjB,EAGrB,IAAK,IAAIT,KAAKoC,EACZ7C,EAAEG,KAAK0C,EAAGpC,KAAOS,EAAET,GAAKoC,EAAEpC,IAG5B,OAAOgB,EAAEG,UAAYiB,EAAEjB,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEiR,UAAYtP,EAAEjB,UAAWV,GAElFlB,EAAI,GAAG6B,eAEXX,EAAI2B,EAAE6Q,kBAAmB7Q,EAAE8gC,MAAMC,aAAa,SAAU/gC,EAAEqiC,YAAc,SAAUriC,GAChF,SAAS7C,EAAE6C,GACT7C,EAAEmS,UAAUhQ,YAAYa,MAAMZ,KAAMa,WAAYb,KAAK2sB,OAAS7tB,EAAE2B,GAAIT,KAAKyB,OAASzB,KAAK2sB,OAAOlrB,OAGhG,OAAOpC,EAAEzB,EAAG6C,GAAI7C,EAAEsS,SAAW,SAAUpR,GACrC,OAAO,IAAIkB,KAAKlB,EAAE6tB,OAAQ7tB,EAAE+G,aAC3BjI,EAAE4B,UAAUkiC,SAAW,WACxB,OAAO1hC,KAAK2sB,QACX/uB,EAAE4B,UAAUwR,SAAW,WACxB,OAAOhR,KAAK2sB,OAAO3b,YAClBpT,EAAE4B,UAAU4iC,aAAe,WAC5B,MAAO,OAASpiC,KAAKgR,aAAkD,IAApChR,KAAK6M,aAAa,eACpDjP,EAAE4B,UAAU2b,OAAS,WACtB,IAAIrc,EACJ,OAAOA,EAAIlB,EAAEmS,UAAUoL,OAAOva,MAAMZ,KAAMa,YAAc8rB,OAAS3sB,KAAK2sB,OAAQ7tB,GAC7ElB,EAAE4B,UAAU+iC,sBAAwB,SAAUzjC,GAC/C,OAAO,MAAQA,GAAKkB,KAAKqQ,qBAAqBvR,IAAMkB,KAAKmiC,yBAAyBrjC,IACjFlB,EAAE4B,UAAUujC,gBAAkB,SAAUjkC,GACzC,OAAO,IAAIkB,KAAKD,YAAYC,KAAKgR,WAAalS,EAAEkS,WAAYhR,KAAK6F,aAChEjI,EAAE4B,UAAUwjC,cAAgB,SAAUlkC,GACvC,IAAI2B,EAAGpB,EACP,OAAO,IAAMP,GAAK2B,EAAI,KAAMpB,EAAIW,MAAQlB,IAAMkB,KAAKyB,QAAUhB,EAAIT,KAAMX,EAAI,OAASoB,EAAI,IAAIT,KAAKD,YAAYC,KAAK2sB,OAAO1qB,MAAM,EAAGnD,GAAIkB,KAAK6F,YAAaxG,EAAI,IAAIW,KAAKD,YAAYC,KAAK2sB,OAAO1qB,MAAMnD,GAAIkB,KAAK6F,aAAc,CAACpF,EAAGpB,IAC7NzB,EAAE4B,UAAUqjC,UAAY,WACzB,IAAI/jC,EACJ,OAAOA,EAAIkB,KAAK2sB,QAAUlrB,OAAS,KAAO3C,EAAIA,EAAEmD,MAAM,EAAG,IAAM,UAAWkO,KAAKQ,UAAU7R,EAAEkS,aAC1FpT,EA1BmE,CA2BtE6C,EAAE8gC,SACJxjC,KAAKiC,MAAO,WACZ,IAAIlB,EACAO,EAAI,SAAWP,EAAG2B,GACpB,SAASpB,IACPW,KAAKD,YAAcjB,EAGrB,IAAK,IAAIT,KAAKoC,EACZ7C,EAAEG,KAAK0C,EAAGpC,KAAOS,EAAET,GAAKoC,EAAEpC,IAG5B,OAAOgB,EAAEG,UAAYiB,EAAEjB,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEiR,UAAYtP,EAAEjB,UAAWV,GAElFlB,EAAI,GAAG6B,eACPpB,EAAI,GAAG4D,MAEXnD,EAAI2B,EAAEgS,YAAahS,EAAEwiC,eAAiB,SAAUxiC,GAC9C,SAAS7C,EAAEkB,GACT,MAAQA,IAAMA,EAAI,IAAKlB,EAAEmS,UAAUhQ,YAAYa,MAAMZ,KAAMa,WAAYb,KAAKqb,QAAUvc,EAAEmD,MAAM,GAAIjC,KAAKyB,OAASzB,KAAKqb,QAAQ5Z,OAG/H,IAAI/C,EAAGiB,EAAG6B,EACV,OAAOnC,EAAEzB,EAAG6C,GAAI7C,EAAEkT,IAAM,SAAUhS,GAChC,OAAOA,aAAakB,KAAOlB,EAAI,IAAIkB,KAAKlB,IACvClB,EAAE4B,UAAUc,QAAU,SAAUxB,GACjC,OAAOkB,KAAKqb,QAAQ/a,QAAQxB,IAC3BlB,EAAE4B,UAAUkB,OAAS,WACtB,IAAID,EACJ,OAAOA,EAAI,GAAKI,UAAUY,OAASpD,EAAEN,KAAK8C,UAAW,GAAK,GAAI,IAAIb,KAAKD,YAAYjB,EAAE8B,MAAM,KAAM,CAACZ,KAAKqb,SAAS9N,OAAOlP,EAAEN,KAAK0C,OAC7H7C,EAAE4B,UAAU0jC,WAAa,SAAUpkC,GACpC,IAAI2B,EAAGpB,EAAGzB,EAAGS,EAAGK,EAAGiB,EAEnB,IAAuBA,EAAI,GAAIN,EAAIoB,EAAI,EAAG7C,GAArCc,EAAIsB,KAAKqb,SAAkC5Z,OAAQ7D,EAAI6C,EAAGpB,IAAMoB,EACnEpC,EAAIK,EAAEW,GAAIM,EAAEa,KAAK1B,EAAET,EAAGgB,IAGxB,OAAOM,GACN/B,EAAE4B,UAAU2jC,oBAAsB,SAAUrkC,EAAG2B,GAChD,OAAOT,KAAKU,OAAOD,EAAG,EAAG3B,IACxBlB,EAAE4B,UAAU4jC,4BAA8B,SAAUtkC,EAAG2B,GACxD,OAAOT,KAAKU,OAAOE,MAAMZ,KAAM,CAACS,EAAG,GAAG8M,OAAOlP,EAAEN,KAAKe,EAAEuc,YACrDzd,EAAE4B,UAAU6jC,+BAAiC,SAAUvkC,EAAG2B,GAC3D,IAAIpB,EAAGzB,EAAGS,EACV,OAA0CT,GAAnCS,EAAI2B,KAAKsjC,sBAAsB7iC,IAAU,GAAIpB,EAAIhB,EAAE,GAAI,IAAI2B,KAAKD,YAAYnC,GAAGwlC,4BAA4BtkC,EAAGO,IACpHzB,EAAE4B,UAAU+jC,kBAAoB,SAAUzkC,EAAG2B,GAC9C,OAAOT,KAAKwjC,qBAAqB/iC,EAAET,KAAKqb,QAAQvc,IAAKA,IACpDlB,EAAE4B,UAAUgkC,qBAAuB,SAAU1kC,EAAG2B,GACjD,OAAOT,KAAKU,OAAOD,EAAG,EAAG3B,IACxBlB,EAAE4B,UAAUikC,oBAAsB,SAAU3kC,GAC7C,OAAOkB,KAAKU,OAAO5B,EAAG,IACrBlB,EAAE4B,UAAUkkC,iBAAmB,SAAU5kC,GAC1C,OAAOkB,KAAKqb,QAAQvc,IACnBlB,EAAE4B,UAAUmkC,yBAA2B,SAAU7kC,GAClD,IAAI2B,EAAGpB,EAAGzB,EAAGS,EACb,OAAwCgB,GAAjCzB,EAAIoC,KAAK4jC,oBAAoB9kC,IAAU,GAAI2B,EAAI7C,EAAE,GAAIS,EAAIT,EAAE,GAAI,IAAIoC,KAAKD,YAAYV,EAAE4C,MAAMxB,EAAGpC,EAAI,KACzGT,EAAE4B,UAAUqkC,qBAAuB,SAAU/kC,GAC9C,IAAI2B,EAAGpB,EACP,OAAOA,EAAI,WACT,IAAIA,EAAGzB,EAAGS,EAAGK,EAEb,IAAuBA,EAAI,GAAIW,EAAI,EAAGzB,GAAjCS,EAAI2B,KAAKqb,SAA8B5Z,OAAQ7D,EAAIyB,EAAGA,IACzDoB,EAAIpC,EAAEgB,GAAIP,EAAE2B,IAAM/B,EAAE8B,KAAKC,GAG3B,OAAO/B,GACPX,KAAKiC,MAAO,IAAIA,KAAKD,YAAYV,IAClCzB,EAAE4B,UAAUskC,qBAAuB,SAAUhlC,GAC9C,IAAI2B,EAAGpB,EAAGzB,EAAGS,EACb,OAAwCgB,GAAjCzB,EAAIoC,KAAK4jC,oBAAoB9kC,IAAU,GAAI2B,EAAI7C,EAAE,GAAIS,EAAIT,EAAE,GAAI,IAAIoC,KAAKD,YAAYV,GAAGqB,OAAOD,EAAGpC,EAAIoC,EAAI,IAC/G7C,EAAE4B,UAAUukC,wBAA0B,SAAUjlC,EAAG2B,GACpD,IAAIpB,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAG6B,EAAGG,EACtB,OAAOhC,EAAIK,KAAK4jC,oBAAoB9kC,GAAIJ,EAAIiB,EAAE,GAAI/B,EAAI+B,EAAE,GAAI6B,EAAI7B,EAAE,GAAIgC,EAAI,WACxE,IAAI7C,EAAGa,EAAGgC,EAEV,IAAKA,EAAI,GAAItC,EAAIP,EAAI,EAAGa,EAAIjB,EAAE+C,OAAQ9B,EAAIb,EAAGO,IAAMP,EACjDT,EAAIK,EAAEW,GAAIsC,EAAEnB,KAAKnB,GAAKzB,GAAK4D,GAAKnC,EAAIoB,EAAEpC,GAAKA,GAG7C,OAAOsD,EAPiE,GAQrE,IAAI3B,KAAKD,YAAY4B,IACzB/D,EAAE4B,UAAUokC,oBAAsB,SAAU9kC,GAC7C,IAAI2B,EAAGpB,EAAGzB,EAAGS,EAAGsB,EAChB,OAA6CN,GAAtChB,EAAI2B,KAAKsjC,sBAAsB9hC,EAAE1C,KAAW,GAAI2B,EAAIpC,EAAE,GAAIT,EAAIS,EAAE,GAAqF,CAApBgB,GAA7DM,EAAI,IAAIK,KAAKD,YAAYV,GAAGikC,sBAAsB5kC,EAAEI,GAAKlB,IAAU,GAAkB6C,EAAVd,EAAE,GAAe,IACtK/B,EAAE4B,UAAUwkC,oBAAsB,SAAUllC,GAC7C,IAAI2B,EAAM7C,EACV,OAAiD6C,GAA1C7C,EAAIoC,KAAKikC,6BAA6BnlC,IAAUolC,MAAWtmC,EAAEmU,OAAQ/R,KAAKqb,QAAQ5a,IACxF7C,EAAE4B,UAAU8jC,sBAAwB,SAAUxkC,GAC/C,IAAI2B,EAAGpB,EAAMhB,EAAGK,EAAGiB,EAAG6B,EAAGG,EAAG1D,EAAGJ,EAC/B,OAAiD4C,GAA1Cd,EAAIK,KAAKikC,6BAA6BnlC,IAAUolC,MAAOxlC,EAAIiB,EAAEoS,OAAQ1T,EAAI2B,KAAKqb,QAAQpZ,MAAM,GAAI,MAAQxB,EAAI,IAAM/B,GAAKT,EAAIwC,EAAG5C,EAAI,IAA4DwB,GAAxBmC,EAA1BxB,KAAK0jC,iBAAiBjjC,GAAUuiC,cAActkC,IAAU,GAAIiD,EAAIH,EAAE,GAAInD,EAAEqC,OAAOD,EAAG,EAAGpB,EAAGsC,GAAI1D,EAAIwC,EAAI,EAAG5C,EAAIwB,EAAEijC,YAAc5jC,IAAMT,EAAII,EAAEoD,OAAQ5D,EAAI,GAAI,CAACQ,EAAGJ,EAAGJ,IAChTD,EAAE4B,UAAU2kC,YAAc,WAC3B,IAAIrlC,EAAG2B,EAAGpB,EAAGzB,EAAGS,EAAGK,EAEnB,IAAKd,EAAI,GAAIS,EAAI2B,KAAKqb,QAAQ,GAA+Bvc,EAAI,EAAG2B,GAAlC/B,EAAIsB,KAAKqb,QAAQpZ,MAAM,IAAiBR,OAAQhB,EAAI3B,EAAGA,IACvFO,EAAIX,EAAEI,IAAK,mBAAqBT,EAAEkkC,sBAAwBlkC,EAAEkkC,sBAAsBljC,QAAK,GAAUhB,EAAIA,EAAE0kC,gBAAgB1jC,IAAMzB,EAAE4C,KAAKnC,GAAIA,EAAIgB,GAG9I,OAAO,MAAQhB,GAAKT,EAAE4C,KAAKnC,GAAI,IAAI2B,KAAKD,YAAYnC,IACnDA,EAAE4B,UAAU4kC,4BAA8B,SAAUtlC,EAAG2B,GACxD,IAAIpB,EAAMX,EACV,OAAkCA,EAAvBsB,KAAKqb,QAAQpZ,MAAM,GAAUA,MAAMnD,EAAG2B,EAAI,GAAIpB,EAAI,IAAIW,KAAKD,YAAYrB,GAAGylC,cAAcppB,UAAW/a,KAAKU,OAAOE,MAAMZ,KAAM,CAAClB,EAAGJ,EAAE+C,QAAQ8L,OAAOlP,EAAEN,KAAKsB,MACjKzB,EAAE4B,UAAUykC,6BAA+B,SAAUnlC,GACtD,IAAI2B,EAAGpB,EAAGzB,EAAGS,EAAGK,EAAM8C,EAEtB,IAAKf,EAAI,EAAqB7C,EAAIyB,EAAI,EAAGhB,GAA7BmD,EAAIxB,KAAKqb,SAA0B5Z,OAAQpD,EAAIgB,EAAGzB,IAAMyB,EAAG,CACrE,GAAcX,EAAI+B,EAAVe,EAAE5D,GAAc0kC,YAAaxjC,GAAK2B,GAAK/B,EAAII,EAAG,MAAO,CAC3DolC,MAAOtmC,EACPmU,OAAQjT,EAAI2B,GAEdA,EAAI/B,EAGN,MAAO,CACLwlC,MAAO,KACPnyB,OAAQ,OAETnU,EAAE4B,UAAU6kC,6BAA+B,SAAUvlC,EAAG2B,GACzD,IAAIpB,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAG6B,EAEnB,IAAK7B,EAAI,EAAqBN,EAAIzB,EAAI,EAAGS,GAA7BmD,EAAIxB,KAAKqb,SAA0B5Z,OAAQpD,EAAIT,EAAGyB,IAAMzB,EAClE,GAAIc,EAAI8C,EAAEnC,GAAIP,EAAIO,EAAGM,GAAKjB,EAAE4jC,iBAAiB,GAAIjjC,IAAMP,EAAG,CACxDa,GAAKc,EACL,MAIJ,OAAOd,GACN/B,EAAE4B,UAAU8kC,eAAiB,WAC9B,IAAIxlC,EAAG2B,EACP,OAAO,MAAQT,KAAKukC,YAAcvkC,KAAKukC,YAAcvkC,KAAKukC,YAAc,WACtE,IAAIllC,EAAGzB,EAAGS,EAEV,IAAKoC,EAAI,EAAqBpB,EAAI,EAAGzB,GAAzBS,EAAI2B,KAAKqb,SAAsB5Z,OAAQ7D,EAAIyB,EAAGA,IACxDP,EAAIT,EAAEgB,GAAIoB,GAAK3B,EAAEwjC,YAGnB,OAAO7hC,GACP1C,KAAKiC,OACNpC,EAAE4B,UAAUwR,SAAW,WACxB,OAAOhR,KAAKqb,QAAQ5K,KAAK,KACxB7S,EAAE4B,UAAUub,QAAU,WACvB,OAAO/a,KAAKqb,QAAQpZ,MAAM,IACzBrE,EAAE4B,UAAU2b,OAAS,WACtB,OAAOnb,KAAK+a,WACXnd,EAAE4B,UAAU8Q,UAAY,SAAUxR,GACnC,OAAOlB,EAAEmS,UAAUO,UAAU1P,MAAMZ,KAAMa,YAAclB,EAAEK,KAAKqb,QAAS,MAAQvc,EAAIA,EAAEuc,aAAU,IAC9F1b,EAAI,SAAWb,EAAG2B,GACnB,IAAIpB,EAAGzB,EAAGS,EAAGK,EAAGiB,EAChB,GAAI,MAAQc,IAAMA,EAAI,IAAK3B,EAAE2C,SAAWhB,EAAEgB,OAAQ,OAAO,EAEzD,IAAK9B,GAAI,EAAI/B,EAAIyB,EAAI,EAAGhB,EAAIS,EAAE2C,OAAQpD,EAAIgB,EAAGzB,IAAMyB,EACjDX,EAAII,EAAElB,GAAI+B,IAAMjB,EAAE4R,UAAU7P,EAAE7C,MAAQ+B,GAAI,GAG5C,OAAOA,GACN/B,EAAE4B,UAAUgR,sBAAwB,WACrC,IAAI1R,EACJ,MAAO,CACLuc,QAAS,IAAM,WACb,IAAI5a,EAAGpB,EAAGzB,EAAGS,EAEb,IAAuBA,EAAI,GAAIoC,EAAI,EAAGpB,GAAjCzB,EAAIoC,KAAKqb,SAA8B5Z,OAAQpC,EAAIoB,EAAGA,IACzD3B,EAAIlB,EAAE6C,GAAIpC,EAAEmC,KAAK1B,EAAEyR,WAGrB,OAAOlS,GACPN,KAAKiC,MAAMyQ,KAAK,MAAQ,MAE3BjP,EAAI,SAAW1C,GAChB,OAAOA,EAAE,IACRJ,EAAI,SAAWI,GAChB,OAAOA,EAAE,IACRlB,EA3JiC,CA4JpC6C,EAAEnC,SACJP,KAAKiC,MAAO,WACZ,IAAIlB,EAAI,SAAW0lC,EAAM/jC,GACvB,SAAS7C,IACPoC,KAAKD,YAAcykC,EAGrB,IAAK,IAAInmC,KAAKoC,EACZpB,EAAEtB,KAAK0C,EAAGpC,KAAOmmC,EAAKnmC,GAAKoC,EAAEpC,IAG/B,OAAOT,EAAE4B,UAAYiB,EAAEjB,UAAWglC,EAAKhlC,UAAY,IAAI5B,EAAK4mC,EAAKz0B,UAAYtP,EAAEjB,UAAWglC,GAExFnlC,EAAI,GAAGI,eAEXgB,EAAEgkC,KAAO,SAAUplC,GACjB,SAASzB,EAAEkB,GACT,IAAIO,EACJ,MAAQP,IAAMA,EAAI,IAAKlB,EAAEmS,UAAUhQ,YAAYa,MAAMZ,KAAMa,WAAYb,KAAK+hC,UAAY,IAAIthC,EAAEwiC,eAAe,WAC3G,IAAIxiC,EAAG7C,EAAGS,EAEV,IAAKA,EAAI,GAAIoC,EAAI,EAAG7C,EAAIkB,EAAE2C,OAAQ7D,EAAI6C,EAAGA,KACvCpB,EAAIP,EAAE2B,IAAMua,WAAa3c,EAAEmC,KAAKnB,GAGlC,OAAOhB,EAPoG,IAW/G,OAAOS,EAAElB,EAAGyB,GAAIzB,EAAE8mC,gCAAkC,SAAU5lC,EAAGO,GAE/D,OAAwC,IAAIW,KAAK,CAAtC,IAAIS,EAAEgiC,gBAAgB3jC,EAAGO,MACnCzB,EAAE+mC,4BAA8B,SAAU7lC,EAAGO,GAE9C,OAAoC,IAAIW,KAAK,CAAlC,IAAIS,EAAEqiC,YAAYhkC,EAAGO,MAC/BzB,EAAEsS,SAAW,SAAUpR,GACxB,IAAIO,EACJ,OAQK,IAAIW,KARE,WACT,IAAIpC,EAAGS,EAAGK,EAEV,IAAKA,EAAI,GAAId,EAAI,EAAGS,EAAIS,EAAE2C,OAAQpD,EAAIT,EAAGA,IACvCyB,EAAIP,EAAElB,GAAIc,EAAE8B,KAAKC,EAAE8gC,MAAMrxB,SAAS7Q,IAGpC,OAAOX,EAPE,KASVd,EAAE4B,UAAUssB,KAAO,WACpB,OAAO9rB,KAAK4kC,kBAAkB5kC,KAAK+hC,YAClCnkC,EAAE4B,UAAUolC,kBAAoB,SAAU9lC,GAC3C,OAAO,IAAIkB,KAAKD,YAAYjB,EAAEqlC,cAAcppB,YAC3Cnd,EAAE4B,UAAUqlC,mBAAqB,SAAU/lC,GAC5C,IAAI2B,EAAGpB,EACP,OAAOA,EAAI,WACT,IAAIA,EAAGzB,EAAGS,EAAGK,EAAGiB,EAEhB,IAA2BA,EAAI,GAAIN,EAAI,EAAGzB,GAArCS,EAAI2B,KAAKo6B,aAAkC34B,OAAQ7D,EAAIyB,EAAGA,IAC7DoB,EAAIpC,EAAEgB,GAAIM,EAAEa,KAAK,OAAS9B,EAAII,EAAEid,KAAKtb,IAAM/B,EAAI+B,GAGjD,OAAOd,GACP5B,KAAKiC,MAAO,IAAIA,KAAKD,YAAYV,IAClCzB,EAAE4B,UAAUslC,WAAa,SAAUhmC,GACpC,OAAOkB,KAAK+kC,qBAAqBjmC,EAAGkB,KAAKsiC,cACxC1kC,EAAE4B,UAAUulC,qBAAuB,SAAUjmC,EAAG2B,GACjD,OAAOT,KAAK4kC,kBAAkB5kC,KAAK+hC,UAAUsB,+BAA+BvkC,EAAEijC,UAAWthC,KACxF7C,EAAE4B,UAAUwlC,kBAAoB,SAAUlmC,GAC3C,OAAOkB,KAAK4kC,kBAAkB5kC,KAAK+hC,UAAU+B,qBAAqBhlC,KACjElB,EAAE4B,UAAUylC,mBAAqB,SAAUnmC,EAAG2B,GAC/C,OAAOT,KAAKglC,kBAAkBvkC,GAAGskC,qBAAqBjmC,EAAG2B,EAAE,KAC1D7C,EAAE4B,UAAU0lC,4BAA8B,SAAUpmC,EAAG2B,GACxD,IAAIpB,EAAGzB,EACP,KAAMkB,EAAE,IAAM2B,GAAKA,GAAK3B,EAAE,IAAK,OAAmCO,GAA5BzB,EAAIoC,KAAKmlC,eAAermC,IAAUwjC,YAAaxjC,EAAE,GAAK2B,IAAMA,GAAKpB,GAAIW,KAAKglC,kBAAkBlmC,GAAGimC,qBAAqBnnC,EAAG6C,IAC5J7C,EAAE4B,UAAU4lC,oBAAsB,SAAUtmC,EAAG2B,EAAGpB,GACnD,IAAIzB,EACJ,OAAOA,EAAI,IAAMkB,GAAK2B,EAAGT,KAAKqlC,qBAAqBznC,EAAGyB,IACrDzB,EAAE4B,UAAU6lC,qBAAuB,SAAUvmC,EAAG2B,GACjD,OAAOT,KAAK4kC,kBAAkB5kC,KAAK+hC,UAAUgC,wBAAwBtjC,GAAG,SAAUA,GAChF,OAAOA,EAAEkhC,6BAA6B7iC,QAEvClB,EAAE4B,UAAU8lC,uBAAyB,SAAUxmC,EAAG2B,GACnD,OAAOT,KAAK4kC,kBAAkB5kC,KAAK+hC,UAAUgC,wBAAwBtjC,GAAG,SAAUA,GAChF,OAAOA,EAAEmhC,qBAAqB9iC,QAE/BlB,EAAE4B,UAAU+lC,qBAAuB,SAAUzmC,EAAG2B,GACjD,OAAOT,KAAK4kC,kBAAkB5kC,KAAK+hC,UAAUgC,wBAAwBtjC,GAAG,SAAUA,GAChF,OAAOA,EAAEghC,mBAAmB3iC,QAE7BlB,EAAE4B,UAAUgmC,wBAA0B,SAAU1mC,GACjD,IAAI2B,EAAGpB,EACP,OAAO,OAASoB,EAAI,OAASpB,EAAIW,KAAK+hC,UAAUiC,oBAAoBllC,IAAMO,EAAEm6B,qBAAkB,GAAU/4B,EAAI,IAC3G7C,EAAE4B,UAAUsiC,oBAAsB,WACnC,IAAIhjC,EAAGO,EACP,OAAOP,EAAI,WACT,IAAIA,EAAG2B,EAAG7C,EAAGS,EAEb,IAAmCA,EAAI,GAAIS,EAAI,EAAG2B,GAA7C7C,EAAIoC,KAAK+hC,UAAUhnB,WAAgCtZ,OAAQhB,EAAI3B,EAAGA,IACrEO,EAAIzB,EAAEkB,GAAIT,EAAEmC,KAAKnB,EAAEm6B,iBAGrB,OAAOn7B,GACPN,KAAKiC,MAAOS,EAAEga,KAAKC,8BAA8B5b,GAAGoc,YACrDtd,EAAE4B,UAAUimC,2BAA6B,SAAU3mC,GACpD,IAAI2B,EACJ,OAAO,OAASA,EAAIT,KAAKmlC,eAAermC,GAAGgjC,uBAAyBrhC,EAAI,IACvE7C,EAAE4B,UAAUkmC,qCAAuC,SAAU5mC,EAAG2B,GACjE,IAAIpB,EAAGzB,EAAGS,EAEV,IAAKgB,EAAIhB,EAAIoC,EAAG7C,EAAIoC,KAAKsiC,YAAajjC,EAAI,GAAKW,KAAKylC,2BAA2B,CAACpmC,EAAI,EAAGhB,IAAIS,IACzFO,IAGF,KAAOzB,EAAIS,GAAK2B,KAAKylC,2BAA2B,CAAChlC,EAAGpC,EAAI,IAAIS,IAC1DT,IAGF,MAAO,CAACgB,EAAGhB,IACVT,EAAE4B,UAAU2lC,eAAiB,SAAUrmC,GACxC,OAAOkB,KAAK4kC,kBAAkB5kC,KAAK+hC,UAAU4B,yBAAyB7kC,KACrElB,EAAE4B,UAAUmmC,iBAAmB,SAAU7mC,GAC1C,OAAOkB,KAAK+hC,UAAU4B,yBAAyB7kC,GAAGkS,YACjDpT,EAAE4B,UAAUomC,oBAAsB,SAAU9mC,GAC7C,OAAOkB,KAAK2lC,iBAAiB,CAAC7mC,EAAGA,EAAI,KACpClB,EAAE4B,UAAUqmC,iBAAmB,SAAU/mC,GAC1C,OAAOkB,KAAK2lC,iBAAiB,CAAC,EAAG7mC,EAAE2C,WAAa3C,GAC/ClB,EAAE4B,UAAUsmC,eAAiB,SAAUhnC,GACxC,IAAI2B,EACJ,OAAOA,EAAIT,KAAKsiC,YAAatiC,KAAK2lC,iBAAiB,CAACllC,EAAI3B,EAAE2C,OAAQhB,MAAQ3B,GACzElB,EAAE4B,UAAUumC,oBAAsB,WACnC,IAAIjnC,EAAG2B,EAAGpB,EAAGzB,EAAGS,EAEhB,IAAmCA,EAAI,GAAIS,EAAI,EAAG2B,GAA7C7C,EAAIoC,KAAK+hC,UAAUhnB,WAAgCtZ,OAAQhB,EAAI3B,EAAGA,IAC3D,OAAVO,EAAIzB,EAAEkB,IAAcygB,YAAclhB,EAAEmC,KAAKnB,GAG3C,OAAOhB,GACNT,EAAE4B,UAAUwmC,eAAiB,WAC9B,IAAIlnC,EAAG2B,EAAGpB,EAAGzB,EAAGS,EAEhB,IAAqCA,EAAI,GAAIS,EAAI,EAAG2B,GAA/C7C,EAAIoC,KAAK+lC,uBAA4CtkC,OAAQhB,EAAI3B,EAAGA,IACvEO,EAAIzB,EAAEkB,GAAIT,EAAEmC,KAAKnB,EAAEkgB,YAGrB,OAAOlhB,GACNT,EAAE4B,UAAUymC,6BAA+B,SAAUnnC,GACtD,IAAI2B,EAAGpB,EAAGzB,EAAGS,EAAGK,EAAGiB,EAEnB,IAAKtB,EAAI,EAAiCoC,EAAI,EAAGpB,GAArCX,EAAIsB,KAAK+hC,UAAUhnB,WAAwBtZ,OAAQpC,EAAIoB,EAAGA,IAAK,CACzE,IAAe,OAASd,GAApB/B,EAAIc,EAAE+B,IAAoB8e,YAAc5f,EAAEqQ,QAAK,KAAYlR,EAAG,MAAO,CACvEygB,WAAY3hB,EAAE2hB,WACdmP,SAAUrwB,GAEZA,GAAKT,EAAE6D,OAGT,MAAO,CACL8d,WAAY,KACZmP,SAAU,OAEX9wB,EAAE4B,UAAU89B,kBAAoB,SAAUx+B,GAC3C,IAAI2B,EAAM7C,EACV,OAAiD6C,GAA1C7C,EAAIoC,KAAKimC,6BAA6BnnC,IAAUygB,WAAgB3hB,EAAE8wB,SAAUjuB,GAClF7C,EAAE4B,UAAU0mC,qBAAuB,SAAUpnC,GAC9C,IAAI2B,EAAGpB,EACP,OAAoDP,GAA7CO,EAAIW,KAAKimC,6BAA6BnnC,EAAEkR,KAAWuP,WAAY9e,EAAIpB,EAAEqvB,SAAU,MAAQ5vB,EAAI,CAAC2B,EAAGA,EAAI,QAAK,GAC9G7C,EAAE4B,UAAU09B,8BAAgC,SAAUp+B,EAAG2B,GAC1D,IAAIpB,EACJ,OAAQA,EAAIW,KAAKkmC,qBAAqBzlC,IAAMT,KAAKqlC,qBAAqBvmC,EAAGO,GAAKW,MAC7EpC,EAAE4B,UAAU8iC,UAAY,WACzB,OAAOtiC,KAAK+hC,UAAUuC,kBACrB1mC,EAAE4B,UAAUwb,QAAU,WACvB,OAAO,IAAMhb,KAAKsiC,aACjB1kC,EAAE4B,UAAU8Q,UAAY,SAAUxR,GACnC,IAAI2B,EACJ,OAAO7C,EAAEmS,UAAUO,UAAU1P,MAAMZ,KAAMa,aAAe,MAAQ/B,GAAK,OAAS2B,EAAI3B,EAAEijC,WAAathC,EAAE6P,UAAUtQ,KAAK+hC,gBAAa,IAC9HnkC,EAAE4B,UAAU4iC,aAAe,WAC5B,OAAO,IAAMpiC,KAAKsiC,aAAetiC,KAAK+hC,UAAU2B,iBAAiB,GAAGtB,gBACnExkC,EAAE4B,UAAUyiC,UAAY,SAAUnjC,GACnC,OAAOkB,KAAK+hC,UAAUmB,WAAWpkC,IAChClB,EAAE4B,UAAU46B,UAAY,WACzB,OAAOp6B,KAAK+hC,UAAUhnB,WACrBnd,EAAE4B,UAAU2mC,mBAAqB,SAAUrnC,GAC5C,OAAOkB,KAAK+hC,UAAUiC,oBAAoBllC,IACzClB,EAAE4B,UAAUgR,sBAAwB,WACrC,MAAO,CACLuxB,UAAW/hC,KAAK+hC,UAAUxxB,YAE3B3S,EAAE4B,UAAU4mC,mBAAqB,WAClC,IAAItnC,EACJ,OAAOA,EAAIkB,KAAK+hC,UAAU8B,sBAAqB,SAAU/kC,GACvD,OAAOA,EAAEujC,oBACPriC,KAAK4kC,kBAAkB9lC,IAC1BlB,EAAE4B,UAAUwR,SAAW,WACxB,OAAOhR,KAAK+hC,UAAU/wB,YACrBpT,EAAE4B,UAAU2b,OAAS,WACtB,OAAOnb,KAAK+hC,UAAU5mB,UACrBvd,EAAE4B,UAAUqjC,UAAY,WACzB,IAAI/jC,EACJ,OAAOqR,KAAKQ,UAAU,WACpB,IAAIlQ,EAAGpB,EAAGzB,EAAGS,EAEb,IAAmCA,EAAI,GAAIoC,EAAI,EAAGpB,GAA7CzB,EAAIoC,KAAK+hC,UAAUhnB,WAAgCtZ,OAAQpC,EAAIoB,EAAGA,IACrE3B,EAAIlB,EAAE6C,GAAIpC,EAAEmC,KAAK2P,KAAKC,MAAMtR,EAAE+jC,cAGhC,OAAOxkC,GACPN,KAAKiC,QACNpC,EAAE4B,UAAU2a,aAAe,WAC5B,OAAO1Z,EAAE0Z,aAAana,KAAKgR,aAC1BpT,EAAE4B,UAAUm7B,MAAQ,WACrB,MAAO,QAAU36B,KAAKma,gBACrBvc,EAnMI,CAoMP6C,EAAEnC,SACJP,KAAKiC,MAAO,WACZ,IAAIlB,EAEAlB,EACAS,EACAK,EACAiB,EAAI,SAAWb,EAAG2B,GACpB,SAASpB,IACPW,KAAKD,YAAcjB,EAGrB,IAAK,IAAIlB,KAAK6C,EACZe,EAAEzD,KAAK0C,EAAG7C,KAAOkB,EAAElB,GAAK6C,EAAE7C,IAG5B,OAAOyB,EAAEG,UAAYiB,EAAEjB,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEiR,UAAYtP,EAAEjB,UAAWV,GAElF0C,EAAI,GAAG/B,eACPkC,EAAI,GAAGrB,SAAW,SAAUxB,GAC9B,IAAK,IAAI2B,EAAI,EAAGpB,EAAIW,KAAKyB,OAAQpC,EAAIoB,EAAGA,IACtC,GAAIA,KAAKT,MAAQA,KAAKS,KAAO3B,EAAG,OAAO2B,EAGzC,OAAQ,GAENxC,EAAI,GAAGgE,MAEXnD,EAAI2B,EAAE8R,eAAgB7T,EAAI+B,EAAEgS,YAAa7U,EAAI6C,EAAEqS,eAAoBrS,EAAEoS,uBAAwBxU,EAAIoC,EAAEyS,sBAAuBzS,EAAE4lC,MAAQ,SAAUhnC,GAC5I,SAASmC,EAAE1C,EAAGO,GACZ,MAAQP,IAAMA,EAAI,IAAI2B,EAAEgkC,MAAS,MAAQplC,IAAMA,EAAI,IAAKmC,EAAEuO,UAAUhQ,YAAYa,MAAMZ,KAAMa,WAAYb,KAAKogB,KAAOjf,EAAErC,GAAIkB,KAAK6F,WAAaxG,EAG9I,IAAIxB,EAAGsD,EAAGzB,EAAGxB,EAAG2G,EAAGzB,EAAGpF,EAAGmH,EAAGC,EAC5B,OAAOzF,EAAE6B,EAAGnC,GAAImC,EAAE0O,SAAW,SAAUpR,GAErC,OAAoC,IAAIkB,KAA7BS,EAAEgkC,KAAKv0B,SAASpR,EAAEshB,MAAmBthB,EAAE+G,aACjDrE,EAAEhC,UAAUwb,QAAU,WACvB,OAAOhb,KAAKogB,KAAKgiB,gBAChB5gC,EAAEhC,UAAU8Q,UAAY,SAAU7P,GACnC,OAAOe,EAAEuO,UAAUO,UAAU1P,MAAMZ,KAAMa,YAAcb,KAAKogB,KAAK9P,UAAU,MAAQ7P,EAAIA,EAAE2f,UAAO,IAAWthB,EAAEkB,KAAK6F,WAAY,MAAQpF,EAAIA,EAAEoF,gBAAa,IACxJrE,EAAEhC,UAAU8mC,aAAe,SAAUxnC,GACtC,OAAO,IAAIkB,KAAKD,YAAYjB,EAAGkB,KAAK6F,aACnCrE,EAAEhC,UAAU+mC,gBAAkB,WAC/B,OAAOvmC,KAAKsmC,aAAa,OACxB9kC,EAAEhC,UAAUiiC,mBAAqB,SAAU3iC,GAC5C,OAAO,IAAIkB,KAAKD,YAAYC,KAAKogB,KAAMthB,IACtC0C,EAAEhC,UAAUgnC,sBAAwB,WACrC,OAAOxmC,KAAKyhC,mBAAmB,OAC9BjgC,EAAEhC,UAAUqlC,mBAAqB,SAAU/lC,GAC5C,IAAI2B,EACJ,OAAOT,KAAKsmC,cAAc7lC,EAAI3B,EAAEid,KAAK/b,KAAKogB,OAAS3f,EAAIT,KAAKogB,KAAKykB,mBAAmB/lC,KACnF0C,EAAEhC,UAAUinC,aAAe,SAAU3nC,GACtC,IAAI2B,EACJ,OAAOA,EAAIT,KAAK6F,WAAW0H,OAAOrP,EAAEY,IAAKkB,KAAKyhC,mBAAmBhhC,IAChEe,EAAEhC,UAAU4N,gBAAkB,SAAUtO,GACzC,IAAI2B,EAAGpB,EACP,OAAOA,EAAIzB,EAAEkB,GAAGqU,cAAe1S,EAAI2C,EAAEA,EAAEpD,KAAK6F,WAAY/G,GAAIO,GAAIW,KAAKyhC,mBAAmBhhC,IACvFe,EAAEhC,UAAUknC,oBAAsB,WACnC,OAAO1mC,KAAKoN,gBAAgBpN,KAAKy6B,qBAChCj5B,EAAEhC,UAAUi7B,iBAAmB,WAChC,OAAO51B,EAAE7E,KAAK6F,aACbrE,EAAEhC,UAAUg6B,cAAgB,WAC7B,OAAOx5B,KAAK6F,WAAW5D,MAAM,IAC5BT,EAAEhC,UAAUmnC,kBAAoB,WACjC,OAAO3mC,KAAK6F,WAAWpE,QACtBD,EAAEhC,UAAUonC,oBAAsB,SAAU9nC,GAC7C,OAAOkB,KAAK6F,WAAW/G,EAAI,IAC1B0C,EAAEhC,UAAU66B,aAAe,SAAUv7B,GACtC,OAAO6C,EAAE5D,KAAKiC,KAAK6F,WAAY/G,IAAM,GACpC0C,EAAEhC,UAAUqnC,cAAgB,WAC7B,OAAO7mC,KAAK2mC,oBAAsB,GACjCnlC,EAAEhC,UAAUsnC,yBAA2B,WACxC,OAAOjiC,EAAE7E,KAAK+mC,0BACbvlC,EAAEhC,UAAUunC,sBAAwB,WACrC,IAAIjoC,EAAG2B,EAAGpB,EAAGhB,EAAGK,EAEhB,IAA0BA,EAAI,GAAI+B,EAAI,EAAGpB,GAApChB,EAAI2B,KAAK6F,YAAiCpE,OAAQpC,EAAIoB,EAAGA,IAC5D3B,EAAIT,EAAEoC,GAAI7C,EAAEkB,GAAGmhB,UAAYvhB,EAAE8B,KAAK1B,GAGpC,OAAOJ,GACN8C,EAAEhC,UAAUwnC,gBAAkB,WAC/B,OAAOhnC,KAAK+mC,wBAAwBtlC,QACnCD,EAAEhC,UAAU2uB,qBAAuB,WACpC,IAAIrvB,EACJ,OAAQA,EAAIkB,KAAK8mC,4BAA8B9mC,KAAKoN,gBAAgBtO,GAAKkB,MACxEwB,EAAEhC,UAAUmuB,qBAAuB,WACpC,IAAI7uB,EAAG2B,EAAGpB,EACV,OAAQP,EAAIkB,KAAK8mC,6BAA+BznC,EAAIW,KAAK6F,WAAWohC,YAAYnoC,GAAI2B,EAAI/B,EAAEkC,MAAM,KAAM,CAACZ,KAAK6F,WAAYxG,EAAI,EAAG,GAAGkO,OAAOtP,EAAEF,KAAKG,EAAEY,MAAOkB,KAAKyhC,mBAAmBhhC,IAAMT,MACtLwB,EAAEhC,UAAU0nC,sBAAwB,WACrC,IAAIpoC,EAAG2B,EAAGpB,EAAGhB,EAAGK,EAEhB,IAA0BA,EAAI,GAAI+B,EAAI,EAAGpB,GAApChB,EAAI2B,KAAK6F,YAAiCpE,OAAQpC,EAAIoB,EAAGA,IAC5D3B,EAAIT,EAAEoC,GAAI7C,EAAEkB,GAAGqU,eAAiBzU,EAAE8B,KAAK1B,GAGzC,OAAOJ,GACN8C,EAAEhC,UAAU2nC,WAAa,WAC1B,IAAIroC,EACJ,OAAO,OAASA,EAAIlB,EAAEoC,KAAKy6B,qBAAuB37B,EAAEqU,mBAAgB,GACnE3R,EAAEhC,UAAU4nC,gBAAkB,WAC/B,IAAItoC,EACJ,OAAO,OAASA,EAAIlB,EAAEoC,KAAKy6B,qBAAuB37B,EAAEohB,cAAW,GAC9D1e,EAAEhC,UAAU6nC,eAAiB,WAC9B,IAAIvoC,EACJ,OAAO,OAASA,EAAIlB,EAAEoC,KAAKy6B,qBAAuB37B,EAAEqhB,mBAAgB,GACnE3e,EAAEhC,UAAU8nC,qCAAuC,SAAUxoC,EAAG2B,GACjE,IAAIpB,EAAGzB,EACP,OAAOA,EAAIoC,KAAKgR,YAQV,KARsB3R,EAAI,WAC9B,OAAQP,GACN,IAAK,UACH,OAAOlB,EAAE0C,QAAQ,KAAMG,GAEzB,IAAK,WACH,OAAO7C,EAAEqE,MAAM,EAAGxB,GAAGwmC,YAAY,OANP,IAQhB5nC,OAAI,GACnBmC,EAAEhC,UAAUgR,sBAAwB,WACrC,MAAO,CACL4P,KAAMpgB,KAAKogB,KAAK7P,UAChB1K,WAAY7F,KAAK6F,aAElBrE,EAAEhC,UAAUwR,SAAW,WACxB,OAAOhR,KAAKogB,KAAKpP,YAChBxP,EAAEhC,UAAU2b,OAAS,WACtB,MAAO,CACLiF,KAAMpgB,KAAKogB,KACXva,WAAY7F,KAAK6F,aAElBrE,EAAEhC,UAAU2a,aAAe,WAC5B,OAAOna,KAAKogB,KAAKjG,gBAChB3Y,EAAEhC,UAAUm7B,MAAQ,WACrB,OAAO36B,KAAKogB,KAAKua,SAChBn5B,EAAEhC,UAAU8iC,UAAY,WACzB,OAAOtiC,KAAKogB,KAAKkiB,aAChB9gC,EAAEhC,UAAU+iC,sBAAwB,SAAUzjC,GAC/C,OAAQkB,KAAK6mC,kBAAoB/nC,EAAE+nC,iBAAmB7mC,KAAKma,iBAAmBrb,EAAEqb,gBAC/E3Y,EAAEhC,UAAUujC,gBAAkB,SAAUjkC,GACzC,IAAIO,EAAGzB,EACP,OAAOyB,EAAIoB,EAAEgkC,KAAKE,4BAA4B,MAAO/mC,EAAIoC,KAAKunC,2BAA2BzC,WAAWzlC,GAAIW,KAAKsmC,aAAa1oC,EAAEknC,WAAWhmC,EAAEshB,QACxI5e,EAAEhC,UAAUwjC,cAAgB,SAAUlkC,GACvC,IAAI2B,EAAGpB,EACP,OAAO,IAAMP,GAAK2B,EAAI,KAAMpB,EAAIW,MAAQlB,IAAMkB,KAAKsiC,aAAe7hC,EAAIT,KAAMX,EAAI,OAASoB,EAAIT,KAAKsmC,aAAatmC,KAAKogB,KAAK+kB,eAAe,CAAC,EAAGrmC,KAAMO,EAAIW,KAAKsmC,aAAatmC,KAAKogB,KAAK+kB,eAAe,CAACrmC,EAAGkB,KAAKsiC,gBAAiB,CAAC7hC,EAAGpB,IAC9NmC,EAAEhC,UAAUo7B,sBAAwB,WACrC,OAAO56B,KAAKogB,KAAKkiB,YAAc,GAC9B9gC,EAAEhC,UAAU+nC,yBAA2B,WACxC,OAAOvpC,EAAEgC,KAAKogB,MAAQpgB,KAAKogB,KAAK+kB,eAAe,CAAC,EAAGnlC,KAAK46B,0BAA4B56B,KAAKogB,KAAK0L,QAC7FtqB,EAAEhC,UAAUic,aAAe,SAAU3c,GACtC,OAAOkB,KAAK6F,WAAW/G,IACtB0C,EAAEhC,UAAUkc,iBAAmB,SAAU5c,EAAG2B,GAC7C,IAAIpB,EAAGX,EAAGiB,EAAG6B,EACb,OAA8B9C,GAAvBiB,EAAIb,EAAE06B,iBAAuB/4B,MAAIpB,EAAIW,KAAK6F,WAAWpF,MAAY/B,IAAoB,IAAfd,EAAEyB,GAAG0L,QAAiBvJ,EAAI7B,EAAEc,EAAI,GAAIkB,EAAE5D,KAAKM,IAAKmD,GAAK,IAAMxB,KAAKma,iBAAmBrb,EAAEqb,iBAAmBrb,EAAEkc,YACtL7Z,EAAI,SAAWrC,GAChB,OAAOA,EAAIsG,EAAEtG,GAAQjB,EAAEiB,IACtBsG,EAAI,SAAWtG,GAChB,IAAIO,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAG6B,EACnB,OAAO9C,GAAI,EAAI8C,EAAI1C,EAAEs7B,YAAax8B,EAAI,GAAK4D,EAAEC,OAASxD,EAAEF,KAAKyD,EAAG,EAAGnC,EAAImC,EAAEC,OAAS,IAAMpC,EAAI,EAAG,IAAiB,OAAZhB,EAAImD,EAAEnC,MAAkBP,GAAKlB,EAAI,WACnI,IAAIkB,EAAG2B,EAAGpB,EAEV,IAAKA,EAAI,GAAIP,EAAI,EAAG2B,EAAI7C,EAAE6D,OAAQhB,EAAI3B,EAAGA,KACvCa,EAAI/B,EAAEkB,IAAMsjC,gBAAkB1jC,GAAI,EAAIW,EAAEmB,KAAK2E,EAAExF,KAAON,EAAEmB,KAAKb,GAG/D,OAAON,EAP4H,GAQhIX,EAAI,IAAI+B,EAAEgkC,KAAKxmC,EAAEF,KAAKH,GAAG2P,OAAO,CAAClP,KAAOS,IAC5CY,EAAIe,EAAEgkC,KAAKE,4BAA4B,KAAM,CAC9C6C,YAAY,IACV3pC,EAAI,SAAWiB,GACjB,OAAOd,EAAEc,GAAKA,EAAIA,EAAEgmC,WAAWplC,IAC9B1B,EAAI,SAAWc,GAChB,IAAOO,EACP,OAA0B,KAAnBA,EAAIP,EAAEwjC,cAAiCxjC,EAAEqmC,eAAe,CAAC9lC,EAAI,EAAGA,IAAO+iC,gBAC7Ej9B,EAAI,SAAWrG,GAChB,OAAOA,EAAE8iC,qBAAqB,eAC7B1jC,EAAI,SAAWY,GAChB,IAAI2B,EACJ,OAA+B,OAAxBA,EAAI7C,EAAEkB,GAAGqU,eAA2B,CAAC1S,EAAG3B,GAAK,CAACA,IACpD+F,EAAI,SAAW/F,GAChB,OAAOA,EAAEmD,OAAO,GAAG,IAClBmB,EAAI,SAAWtE,EAAG2B,GACnB,IAAIpB,EACJ,OAA8B,KAAvBA,EAAIP,EAAEmoC,YAAYxmC,IAAe3B,EAAIJ,EAAEI,EAAGO,EAAG,IACnDmC,EA3J+H,CA4JlIf,EAAEnC,SACJP,KAAKiC,MAAO,WACZ,IAAIlB,EACAO,EACAzB,EACAS,EAAI,SAAWS,EAAG2B,GACpB,SAASpB,IACPW,KAAKD,YAAcjB,EAGrB,IAAK,IAAIlB,KAAK6C,EACZ/B,EAAEX,KAAK0C,EAAG7C,KAAOkB,EAAElB,GAAK6C,EAAE7C,IAG5B,OAAOyB,EAAEG,UAAYiB,EAAEjB,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEiR,UAAYtP,EAAEjB,UAAWV,GAElFJ,EAAI,GAAGe,eACPE,EAAI,GAAGW,SAAW,SAAUxB,GAC9B,IAAK,IAAI2B,EAAI,EAAGpB,EAAIW,KAAKyB,OAAQpC,EAAIoB,EAAGA,IACtC,GAAIA,KAAKT,MAAQA,KAAKS,KAAO3B,EAAG,OAAO2B,EAGzC,OAAQ,GAENe,EAAI,GAAGS,MAEX5C,EAAIoB,EAAEmV,QAAShY,EAAI6C,EAAEyU,SAAUpW,EAAI2B,EAAEyW,wBAAyBzW,EAAEgnC,cAAgB,SAAU/oC,GACxF,SAASiD,EAAE7C,EAAG2B,GACZ,IAAIpB,EACJA,EAAI,MAAQoB,EAAIA,EAAI,GAAIT,KAAK0nC,kBAAoBroC,EAAEqoC,kBAAmB1nC,KAAK2nC,mBAAqBtoC,EAAEsoC,mBAAoB3nC,KAAK4nC,kBAAoBvoC,EAAEuoC,kBAAmB,MAAQ5nC,KAAK0nC,oBAAsB1nC,KAAK0nC,kBAAoBzpC,GAAI,MAAQ+B,KAAK2nC,qBAAuB3nC,KAAK2nC,mBAAqBxmC,GAAI,MAAQnB,KAAK4nC,oBAAsB5nC,KAAK4nC,kBAAoB/pC,GAAImC,KAAK2Z,KAAOja,EAAEZ,GAGtX,IAAIb,EAAGJ,EAAGsD,EAAGzB,EACb,OAAOrB,EAAEsD,EAAGjD,GAAIT,EAAI,oCAAoC2M,MAAM,KAAMzJ,EAAI,cAAcyJ,MAAM,KAAM/M,EAAI,gBAAgB+M,MAAM,KAAMjJ,EAAEkmC,SAAW,SAAU/oC,EAAG2B,GAC1J,IAAIpB,EACJ,OAAOA,EAAI,IAAIW,KAAKlB,EAAG2B,IAAMonC,WAAYxoC,GACxCsC,EAAEnC,UAAUqoC,SAAW,WACxB,OAAO7nC,KAAK8nC,mBAAoB9nC,KAAK+nC,+BACpCpmC,EAAEnC,UAAUwoC,QAAU,WACvB,OAAOhoC,KAAK2Z,KAAKoI,WAChBpgB,EAAEnC,UAAUyoC,QAAU,WACvB,OAAOjoC,KAAK2Z,MACXhY,EAAEnC,UAAUsoC,iBAAmB,WAChC,IAAIhpC,EAAGO,EAAGhB,EAAGK,EAAGiB,EAEhB,IAAKA,EAAI/B,EAAEoC,KAAK2Z,MAAOjb,EAAI,GAAIiB,EAAEuoC,YAC/B,QAAQ7pC,EAAIsB,EAAEwoC,aAAe7+B,UAC3B,KAAKC,KAAKC,aACRxJ,KAAKooC,mBAAmB/pC,GAAKK,EAAE8B,KAAKnC,GAAK2B,KAAKqoC,gBAAgBhqC,GAC9D,MAEF,KAAKkL,KAAKuN,aACRpY,EAAE8B,KAAKnC,GAIb,IAAKS,EAAI,EAAGO,EAAIX,EAAE+C,OAAQpC,EAAIP,EAAGA,IAC/BT,EAAIK,EAAEI,GAAI2B,EAAEuU,WAAW3W,GAGzB,OAAO2B,KAAK2Z,MACXhY,EAAEnC,UAAU6oC,gBAAkB,SAAUvpC,GACzC,IAAI2B,EAAGpB,EAAGzB,EAAGS,EAAGK,EAEhB,IAAKI,EAAEu7B,aAAa,UAAYh8B,EAAIS,EAAEwpC,SAAU3oC,EAAE5B,KAAKiC,KAAK2nC,mBAAoBtpC,IAAM,GAAKS,EAAEsO,gBAAgB,SAAoC3M,EAAI,EAAGpB,GAAjCX,EAAI8C,EAAEzD,KAAKe,EAAE+G,aAA0BpE,OAAQpC,EAAIoB,EAAGA,IAC3K7C,EAAIc,EAAE+B,GAAGtC,KAAMwB,EAAE5B,KAAKiC,KAAK0nC,kBAAmB9pC,IAAM,GAAK,IAAMA,EAAE0C,QAAQ,cAAgBxB,EAAEsO,gBAAgBxP,GAG7G,OAAOkB,GACN6C,EAAEnC,UAAUuoC,4BAA8B,WAC3C,IAAIjpC,EAAG2B,EAAG7C,EAAGS,EAAGK,EAEhB,IAAsDI,EAAI,EAAG2B,GAAxD/B,EAAI8C,EAAEzD,KAAKiC,KAAK2Z,KAAK9P,iBAAiB,WAAwBpI,OAAQhB,EAAI3B,EAAGA,KACrET,GAAXT,EAAIc,EAAEI,IAAWypC,yBAA2B,OAASlpC,EAAEhB,IAAMA,EAAEgY,YAAYzY,GAG7E,OAAOoC,KAAK2Z,MACXhY,EAAEnC,UAAU4oC,mBAAqB,SAAUtpC,GAC5C,OAAQ,MAAQA,EAAIA,EAAEwK,cAAW,KAAYC,KAAKC,aAAexJ,KAAKwoC,mBAAmB1pC,IAAMkB,KAAKyoC,wBAAwB3pC,QAAK,GAChI6C,EAAEnC,UAAUgpC,mBAAqB,SAAU1pC,GAC5C,IAAI2B,EACJ,OAAOA,EAAIpB,EAAEP,GAAIa,EAAE5B,KAAKiC,KAAK4nC,kBAAmBnnC,IAAM,GACrDkB,EAAEnC,UAAUipC,wBAA0B,SAAUhoC,GACjD,MAAO,UAAYA,EAAEoM,aAAa,yBAA2B/N,EAAE2B,IAC9Df,EAAI,SAAWZ,GAChB,IAAI2B,EAAGpB,EAAGzB,EAAGS,EAAGK,EAEhB,IAAK,MAAQI,IAAMA,EAAI,IAAKA,EAAIA,EAAEsS,QAAQ,sBAAuB,YAAY3Q,EAAIgC,SAASimC,eAAeC,mBAAmB,KAAOv1B,gBAAgB2O,UAAYjjB,EAAyClB,EAAI,EAAGS,GAA7CK,EAAI+B,EAAEkX,KAAK9N,iBAAiB,UAAuBpI,OAAQpD,EAAIT,EAAGA,IAClOyB,EAAIX,EAAEd,GAAI6C,EAAEkZ,KAAKtD,YAAYhX,GAG/B,OAAOoB,EAAEkZ,MACRhY,EAlE2E,CAmE9ElB,EAAE8O,cACJxR,KAAKiC,MAAO,WACZ,IAAIlB,EACAO,EACAzB,EACAS,EACAK,EACAiB,EACA6B,EACAG,EACA1D,EACAJ,EACAsD,EACAzB,EAAI,SAAWZ,EAAG2B,GACpB,SAASpB,IACPW,KAAKD,YAAcjB,EAGrB,IAAK,IAAIlB,KAAK6C,EACZvC,EAAEH,KAAK0C,EAAG7C,KAAOkB,EAAElB,GAAK6C,EAAE7C,IAG5B,OAAOyB,EAAEG,UAAYiB,EAAEjB,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEiR,UAAYtP,EAAEjB,UAAWV,GAElFZ,EAAI,GAAGuB,eACPoF,EAAI,GAAGvE,SAAW,SAAUxB,GAC9B,IAAK,IAAI2B,EAAI,EAAGpB,EAAIW,KAAKyB,OAAQpC,EAAIoB,EAAGA,IACtC,GAAIA,KAAKT,MAAQA,KAAKS,KAAO3B,EAAG,OAAO2B,EAGzC,OAAQ,GAGV3B,EAAI2B,EAAE8R,eAAgB5S,EAAIc,EAAEoV,YAAahY,EAAI4C,EAAEmV,QAASlX,EAAI+B,EAAE6V,iBAAkBnV,EAAIV,EAAEyU,SAAU7W,EAAIoC,EAAEuT,2BAA4BpW,EAAI6C,EAAEgU,oBAAqBjT,EAAIf,EAAEyW,wBAAyBvV,EAAIlB,EAAE0Q,gBAAiB9R,EAAIoB,EAAE8Q,2BAA4BtT,EAAIwC,EAAE+Q,0BAA2B/Q,EAAEmoC,WAAa,SAAU1qC,GAC7S,SAASkF,EAAEtE,EAAG2B,GACZT,KAAKusB,KAAOztB,EAAGkB,KAAK6oC,kBAAoB,MAAQpoC,EAAIA,EAAI,IAAIooC,iBAAkB7oC,KAAK8oC,OAAS,GAAI9oC,KAAK+oC,cAAgB,GAAI/oC,KAAKgpC,kBAAoB,GAGpJ,IAAIhrC,EAAGmH,EAAGC,EAAGjC,EAAGD,EAAGe,EAAGU,EAAGC,EAAGqG,EAAGM,EAAGygB,EAAGC,EACrC,OAAOvsB,EAAE0D,EAAGlF,GAAIkF,EAAEgN,MAAQ,SAAUtR,EAAG2B,GACrC,IAAIpB,EACJ,OAAOA,EAAI,IAAIW,KAAKlB,EAAG2B,IAAM2P,QAAS/Q,GACrC+D,EAAE5D,UAAUypC,YAAc,WAC3B,OAAOxoC,EAAEohB,SAAS3R,SAASlQ,KAAK8oC,SAC/B1lC,EAAE5D,UAAU4Q,MAAQ,WACrB,IAAItR,EAAGO,EAEP,IACE,IAAKW,KAAKkpC,wBAAyBpqC,EAAI2B,EAAEgnC,cAAcI,SAAS7nC,KAAKusB,MAAMyb,UAAWhoC,KAAKmpC,iBAAiBpnB,UAAYjjB,EAAGO,EAAI8B,EAAEnB,KAAKmpC,iBAAkB,CACtJ/zB,YAAazQ,IACXtF,EAAE6oC,YACJloC,KAAKopC,YAAY/pC,EAAE8oC,aAGrB,OAAOnoC,KAAKqpC,yCACZ,QACArpC,KAAKspC,0BAENlmC,EAAE5D,UAAU0pC,sBAAwB,WACrC,OAAOlpC,KAAK6oC,kBAAoB7oC,KAAKmpC,iBAAmBnpC,KAAK6oC,iBAAiB1mB,WAAU,GAAKniB,KAAKmpC,iBAAiB/7B,gBAAgB,MAAOpN,KAAKmpC,iBAAiBh9B,aAAa,qBAAsB,IAAKnM,KAAKmpC,iBAAiBnzB,MAAM8gB,QAAU,OAAQ92B,KAAK6oC,iBAAiBjlC,WAAWgU,aAAa5X,KAAKmpC,iBAAkBnpC,KAAK6oC,iBAAiBtkC,eAAiBvE,KAAKmpC,iBAAmBxpC,EAAE,CAC1XiW,QAAS,MACTI,MAAO,CACL8gB,QAAS,UAETr0B,SAASkX,KAAKtD,YAAYrW,KAAKmpC,oBAClC/lC,EAAE5D,UAAU8pC,sBAAwB,WACrC,OAAO7oC,EAAEuU,WAAWhV,KAAKmpC,mBACxBxkC,EAAI,SAAW7F,GAChB,MAAO,UAAYjB,EAAEiB,GAAKwW,WAAWi0B,cAAgBj0B,WAAWk0B,eAC/DpmC,EAAE5D,UAAU4pC,YAAc,SAAUtqC,GACrC,OAAQA,EAAEwK,UACR,KAAKC,KAAKoL,UACR,IAAK3U,KAAKypC,wBAAwB3qC,GAAI,OAAOkB,KAAK0pC,uBAAuB5qC,GAAIkB,KAAK2pC,gBAAgB7qC,GAClG,MAEF,KAAKyK,KAAKC,aACR,OAAOxJ,KAAK4pC,sBAAsB9qC,GAAIkB,KAAK6pC,eAAe/qC,KAE7DsE,EAAE5D,UAAUkqC,uBAAyB,SAAUjpC,GAChD,IAAIpB,EAAGzB,EAAGS,EACV,OAAOT,EAAI6C,EAAEmD,cAAkB5D,KAAK8pC,qBAAuB9pC,KAAK+pC,eAAetpC,EAAE6D,iBAAmBtE,KAAKgqC,2BAA2B,MAAQpsC,IAAMoC,KAAKmpC,mBAAqBnpC,KAAK+pC,eAAensC,KAAOyB,EAAIW,KAAKiqC,mBAAmBrsC,GAAIkB,EAAEO,EAAG,OAAShB,EAAI2B,KAAKkqC,cAAgB7rC,EAAEwH,gBAAa,SAAW,GAAU7F,KAAKkqC,aAAelqC,KAAKmqC,oCAAoC9qC,EAAGzB,GAAIoC,KAAK8pC,oBAAsBlsC,IAChZwF,EAAE5D,UAAUoqC,sBAAwB,SAAUnpC,GAC/C,IAAIpB,EAAGhB,EAAGK,EAAGiB,EAEb,GAAIjB,EAAIsB,KAAK+pC,eAAetpC,GAAIpC,EAAIT,EAAEoC,KAAK8pC,oBAAqBrpC,GAAI/B,IAAMsB,KAAK+pC,eAAetpC,EAAE4I,aAC9F,KAAMrJ,KAAKypC,wBAAwBhpC,EAAE4I,cAAgBrJ,KAAK+pC,eAAetpC,EAAE2I,sBAAwB/J,EAAIW,KAAKiqC,mBAAmBxpC,GAAIA,EAAE4I,YAAa,OAAOhL,GAAKS,EAAEO,EAAGW,KAAKkqC,aAAarkC,YAAc7F,KAAKgqC,2BAA2B,OAAShqC,KAAKkqC,aAAelqC,KAAKmqC,oCAAoC9qC,EAAGoB,GAAIT,KAAK8pC,oBAAsBrpC,QACtU,GAAIT,KAAK8pC,sBAAwBzrC,IAAMK,EAAG,OAAQiB,EAAIK,KAAKoqC,uBAAuB3pC,IAAMT,KAAK4pC,sBAAsBjqC,IAAMK,KAAKkqC,aAAelqC,KAAKqqC,mBAAoBrqC,KAAK8pC,oBAAsB,OACvM1mC,EAAE5D,UAAU4qC,uBAAyB,SAAUtrC,GAChD,IAAI2B,EAEJ,IAAKA,EAAI3B,EAAEi4B,cAAet2B,GAAKA,IAAMT,KAAKmpC,kBAAmB,CAC3D,GAAInpC,KAAK+pC,eAAetpC,IAAMoE,EAAE9G,KAAKiC,KAAK+oC,cAAetoC,IAAM,EAAG,OAAOA,EACzEA,EAAIA,EAAEs2B,cAGR,OAAO,MACN3zB,EAAE5D,UAAUmqC,gBAAkB,SAAU7qC,GACzC,IAAI2B,EAAGpB,EACP,OAAOA,EAAIP,EAAEyG,KAAMJ,EAAErG,EAAE8E,cAAgBvE,EAAIpB,EAAEoB,GAAI2sB,EAAE,OAASvrB,EAAI3B,EAAEwF,iBAAmB7D,EAAE2V,iBAAc,KAAY/W,EAAI6D,EAAE7D,KAAMW,KAAKgqC,2BAA2B3qC,EAAGW,KAAKsqC,kBAAkBxrC,EAAE8E,cACxLR,EAAE5D,UAAUqqC,eAAiB,SAAU/qC,GACxC,IAAI2B,EAAGpB,EAAGzB,EAAGS,EAAGK,EAChB,GAAI8C,EAAE1C,GAAI,OAAO2B,EAAImE,EAAE9F,EAAG,cAAeR,OAAOgU,KAAK7R,GAAGgB,SAAWpD,EAAI2B,KAAKsqC,kBAAkBxrC,GAAIkB,KAAKuqC,+BAA+B9pC,EAAGpC,GAAIS,EAAEijB,UAAY,IAAK/hB,KAAKgpC,kBAAkBxoC,KAAK1B,GAE5L,OAAQjB,EAAEiB,IACR,IAAK,KACH,OAAOkB,KAAKwqC,UAAU1rC,IAAMkB,KAAK+pC,eAAejrC,EAAEyF,cAAgBvE,KAAKgqC,2BAA2B,KAAMhqC,KAAKsqC,kBAAkBxrC,IAAKkB,KAAKgpC,kBAAkBxoC,KAAK1B,GAElK,IAAK,MAMH,IAAKO,KALLoB,EAAI,CACFse,IAAKjgB,EAAE+N,aAAa,OACpBwzB,YAAa,SACZziC,EAAIuF,EAAErE,GAGPJ,EAAId,EAAEyB,GAAIoB,EAAEpB,GAAKX,EAGnB,OAAOsB,KAAKuqC,+BAA+B9pC,EAAGT,KAAKsqC,kBAAkBxrC,IAAKkB,KAAKgpC,kBAAkBxoC,KAAK1B,GAExG,IAAK,KACH,GAAIA,EAAE8E,WAAWyF,aAAevK,EAAG,OAAOkB,KAAKgqC,2BAA2B,MAC1E,MAEF,IAAK,KACH,GAAIlrC,EAAE8E,WAAWyF,aAAevK,EAAG,OAAOkB,KAAKgqC,2BAA2B,SAE7E5mC,EAAE5D,UAAU2qC,oCAAsC,SAAUrrC,EAAG2B,GAChE,IAAIpB,EACJ,OAAOW,KAAK+oC,cAAcvoC,KAAKC,GAAIpB,EAAIrB,EAAEc,GAAIkB,KAAK8oC,OAAOtoC,KAAKnB,GAAIA,GACjE+D,EAAE5D,UAAU6qC,iBAAmB,WAChC,OAAOrqC,KAAKmqC,oCAAoC,GAAI,OACnD/mC,EAAE5D,UAAUwqC,2BAA6B,SAAUlrC,EAAG2B,GACvD,OAAOT,KAAKyqC,YAAYl/B,EAAEzM,EAAG2B,KAC5B2C,EAAE5D,UAAU+qC,+BAAiC,SAAUzrC,EAAG2B,GAC3D,OAAOT,KAAKyqC,YAAYx/B,EAAEnM,EAAG2B,KAC5B2C,EAAE5D,UAAUirC,YAAc,SAAU3rC,GACrC,OAAO,IAAMkB,KAAK8oC,OAAOrnC,QAAUzB,KAAKqqC,mBAAoBrqC,KAAK8oC,OAAO9oC,KAAK8oC,OAAOrnC,OAAS,GAAG2e,KAAK5f,KAAK1B,IACzGsE,EAAE5D,UAAUkrC,0BAA4B,SAAU5rC,EAAG2B,GACtD,IAAIpB,EAAGzB,EACP,MAAqD,YAAc,OAAnCyB,GAAzBzB,EAAIoC,KAAK8oC,OAAOroC,GAAG2f,MAAYxiB,EAAE6D,OAAS,IAA8BpC,EAAE6E,UAAO,GAAU7E,EAAEstB,QAAU7tB,EAAIlB,EAAE4C,KAAK+K,EAAEzM,KAC1HsE,EAAE5D,UAAUmrC,2BAA6B,SAAU7rC,EAAG2B,GACvD,IAAIpB,EAAGzB,EACP,MAA0C,YAAc,OAAxByB,GAAzBzB,EAAIoC,KAAK8oC,OAAOroC,GAAG2f,MAAY,IAA8B/gB,EAAE6E,UAAO,GAAU7E,EAAEstB,OAAS7tB,EAAIO,EAAEstB,OAAS/uB,EAAEgtC,QAAQr/B,EAAEzM,KAC5HyM,EAAI,SAAWzM,EAAG2B,GAEnB,OAAO,MAAQA,IAAMA,EAAI,IAAS,SAAoB,CACpDksB,OAD0C7tB,EAAI6C,EAAE7C,GAEhD+G,WAAYpF,EACZyD,KAHgC,WAKjC+G,EAAI,SAAWnM,EAAG2B,GAEnB,OAAO,MAAQA,IAAMA,EAAI,IAAS,aAAc,CAC9C8e,WAAYzgB,EACZ+G,WAAYpF,EACZyD,KAHgC,eAKjClG,EAAI,SAAWc,GAEhB,OAAO,MAAQA,IAAMA,EAAI,IAAa,CACpCshB,KADgC,GAEhCva,WAAY/G,IAEbsE,EAAE5D,UAAU8qC,kBAAoB,SAAUxrC,GAC3C,IAAIO,EAAGzB,EAAGc,EAAGiB,EAAGgC,EAAG1D,EAAGJ,EAAGsD,EAAGzB,EAAGxB,EAAG2G,EAAGzB,EAGrC,IAAK/D,KAFLX,EAAI,GAAIgB,EAAIe,EAAE6O,OAAO2D,eAGnB,IAAItR,EAAIjC,EAAEL,IAAMuW,SAAWvX,EAAES,EAAG,CAC9B6U,iBAAkBhS,EAAEiU,QACpBxB,UAAWpU,KAAKmpC,mBACdzqC,EAAEW,IAAK,OAAQ,GAAIsC,EAAEyf,QACvB,GAAIhe,EAAIzB,EAAEyf,OAAOtiB,GAAI,CACnB,IAAKlB,GAAI,EAA2CK,EAAI,EAAGkD,GAA9CjD,EAAI8B,KAAK6qC,0BAA0B/rC,IAAiB2C,OAAQN,EAAIlD,EAAGA,IAC9E,GAAI0B,EAAIzB,EAAED,GAAI0D,EAAEyf,OAAOzhB,KAAOyD,EAAG,CAC/BxF,GAAI,EACJ,MAIJA,IAAMc,EAAEW,GAAK+D,SAEVzB,EAAEm4B,gBAAkB12B,EAAItE,EAAEkX,MAAMrU,EAAEm4B,kBAAoBp7B,EAAEW,GAAK+D,GAGtE,GAAI5B,EAAE1C,GAGJ,IAAKjB,KAFLgH,EAAID,EAAE9F,EAAG,cAGPsE,EAAIyB,EAAEhH,GAAIa,EAAEb,GAAKuF,EAIrB,OAAO1E,GACN0E,EAAE5D,UAAUyqC,mBAAqB,SAAUnrC,GAC5C,IAAIO,EAAGzB,EAAGS,EAAGK,EAEb,IAAKd,EAAI,GAAIkB,GAAKA,IAAMkB,KAAKmpC,kBAAmB,CAG9C,IAAK9pC,KAFLX,EAAI+B,EAAE6O,OAAOyD,iBAGW,KAAtB1U,EAAIK,EAAEW,IAAM+Q,OAAgBvS,EAAEiB,KAAOT,EAAEuX,WAAa,mBAAqBvX,EAAE2G,KAAO3G,EAAE2G,KAAKlG,QAAK,KAAYT,EAAE2G,QAAUpH,EAAE4C,KAAKnB,GAAIhB,EAAE8U,eAAiBvV,EAAE4C,KAAKnC,EAAE8U,gBAG/JrU,EAAIA,EAAE8E,WAGR,OAAOhG,EAAEktC,WACR1nC,EAAE5D,UAAUqrC,0BAA4B,SAAU/rC,GACnD,IAAI2B,EAAGpB,EAEP,IAAKoB,EAAI,GAAI3B,GAAKA,IAAMkB,KAAKmpC,kBAC3B9pC,EAAIxB,EAAEiB,GAAI+F,EAAE9G,KAAKW,IAAKW,IAAM,GAAKoB,EAAED,KAAK1B,GAAIA,EAAIA,EAAE8E,WAGpD,OAAOnD,GACNmE,EAAI,SAAW9F,EAAG2B,GACnB,IACE,OAAO0P,KAAKC,MAAMtR,EAAE+N,aAAa,aAAepM,IAChD,MAAOpB,GACP,MAAO,KAER8D,EAAI,SAAWrE,GAChB,IAAI2B,EAAGpB,EAAGzB,EACV,OAAOA,EAAIkB,EAAE+N,aAAa,SAAUxN,EAAIP,EAAE+N,aAAa,UAAWpM,EAAI,GAAI7C,IAAM6C,EAAE44B,MAAQkE,SAAS3/B,EAAG,KAAMyB,IAAMoB,EAAEm2B,OAAS2G,SAASl+B,EAAG,KAAMoB,GAC9I2C,EAAE5D,UAAUuqC,eAAiB,SAAUjrC,GACxC,IAAI2B,EACJ,IAAK,MAAQ3B,EAAIA,EAAEwK,cAAW,KAAYC,KAAKC,eAAiBhI,EAAE1C,KAAOT,EAAES,EAAG,CAC5E6U,iBAAkB,KAClBS,UAAWpU,KAAKmpC,mBACd,OAAO1oC,EAAI5C,EAAEiB,GAAI+F,EAAE9G,KAAKW,IAAK+B,IAAM,GAAK,UAAYR,OAAOohB,iBAAiBviB,GAAGg4B,SAClF1zB,EAAE5D,UAAUiqC,wBAA0B,SAAU3qC,GACjD,IAAI2B,EAAGpB,EAAGzB,EACV,IAAK,MAAQkB,EAAIA,EAAEwK,cAAW,KAAYC,KAAKoL,WAAasX,EAAEntB,EAAEyG,QAAUlG,EAAIP,EAAE8E,WAAYhG,EAAIkB,EAAEwF,gBAAiB7D,EAAI3B,EAAEyF,cAAeN,EAAE5E,EAAEiF,kBAAoBtE,KAAK+pC,eAAe1qC,EAAEiF,oBAAsBa,EAAE9F,IAAK,OAAQzB,GAAKoC,KAAK+pC,eAAensC,KAAO6C,GAAKT,KAAK+pC,eAAetpC,IACnR2C,EAAE5D,UAAUgrC,UAAY,SAAU1rC,GACnC,MAAO,OAASjB,EAAEiB,IAAMkB,KAAK+pC,eAAejrC,EAAE8E,aAAe9E,EAAE8E,WAAWw3B,YAAct8B,GACvFqG,EAAI,SAAWrG,GAChB,IAAI2B,EACJ,MAAkD,SAA3CA,EAAIR,OAAOohB,iBAAiBviB,GAAGisC,aAA2B,aAAetqC,GAAK,aAAeA,GACnGwD,EAAI,SAAWnF,GAChB,OAAOA,IAAMktB,EAAEltB,EAAEsX,cAChBhT,EAAE5D,UAAU6pC,uCAAyC,WACtD,IAAO5oC,EAAGpB,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAG6B,EAEzB,IAAKf,EAAIT,KAAKgrC,iCAAmDxpC,EAAI,GAAI5D,EAAIyB,EAAI,EAAGhB,GAApCsB,EAAIK,KAAK8oC,QAAiCrnC,OAAQpD,EAAIgB,EAAGzB,IAAMyB,EACzGM,EAAE/B,IAAKc,EAAIsB,KAAKirC,+BAA+BrtC,MAAQc,EAAEkwB,IAAM,EAAInuB,EAAEmuB,KAAO5uB,KAAK2qC,2BAA2B,KAAM/sC,GAAI4D,EAAEhB,KAAK9B,EAAEwsC,OAAS,EAAIzqC,EAAEyqC,OAASlrC,KAAK0qC,0BAA0B,KAAM9sC,QAAK,IAGvM,OAAO4D,GACN4B,EAAE5D,UAAUyrC,+BAAiC,SAAUnsC,GACxD,IAAI2B,EAAGpB,EACP,QAASoB,EAAIT,KAAK+oC,cAAcjqC,MAAQ2B,EAAE2V,cAAgB/W,EAAIxB,EAAE4C,GAAIoE,EAAE9G,KAAKW,IAAKW,IAAM,GAAKwF,EAAE9G,KAAKiC,KAAKgpC,kBAAmBvoC,IAAM,QAAK,EAAS2E,EAAE3E,IAC/I2C,EAAE5D,UAAUwrC,+BAAiC,WAC9C,IAAIlsC,EACJ,OAAOA,EAAIa,EAAEc,EAAE6O,OAAOyD,gBAAyB,QAAE6C,SAAU5V,KAAKmpC,iBAAiB9yB,YAAYvX,GAAIsG,EAAEtG,IAClGsG,EAAI,SAAWtG,GAChB,IAAI2B,EACJ,MAAuC,WAAhCA,EAAIR,OAAOohB,iBAAiBviB,IAAkBg4B,QAAU,CAC7DlI,IAAK2O,SAAS98B,EAAE0qC,WAChBD,OAAQ3N,SAAS98B,EAAE2qC,oBACjB,GACHloC,EAAI,SAAWpE,GAChB,OAAOA,EAAEsS,QAAQC,OAAO,IAAMhS,EAAEoS,OAAS,KAAM,KAC9Cwa,EAAI,SAAWntB,GAChB,OAAOuS,OAAO,IAAMhS,EAAEoS,OAAS,MAAMzM,KAAKlG,IACzCktB,EAAI,SAAWltB,GAChB,MAAO,MAAMkG,KAAKlG,IACjBsE,EA1OgS,CA2OnS3C,EAAE8O,cACJxR,KAAKiC,MAAO,WACZ,IAAIlB,EACAO,EACAzB,EACAS,EACAK,EAAI,SAAWI,EAAG2B,GACpB,SAASpB,IACPW,KAAKD,YAAcjB,EAGrB,IAAK,IAAIlB,KAAK6C,EACZd,EAAE5B,KAAK0C,EAAG7C,KAAOkB,EAAElB,GAAK6C,EAAE7C,IAG5B,OAAOyB,EAAEG,UAAYiB,EAAEjB,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEiR,UAAYtP,EAAEjB,UAAWV,GAElFa,EAAI,GAAGF,eACP+B,EAAI,GAAGS,MACPN,EAAI,GAAGrB,SAAW,SAAUxB,GAC9B,IAAK,IAAI2B,EAAI,EAAGpB,EAAIW,KAAKyB,OAAQpC,EAAIoB,EAAGA,IACtC,GAAIA,KAAKT,MAAQA,KAAKS,KAAO3B,EAAG,OAAO2B,EAGzC,OAAQ,GAGV3B,EAAI2B,EAAE8R,eAAgB3U,EAAI6C,EAAE6W,eAAgBjZ,EAAIoC,EAAE+W,iBAAkBnY,EAAIoB,EAAEqS,eAAgBrS,EAAEohB,SAAW,SAAUliB,GAC/G,SAAS1B,EAAEa,GACT,MAAQA,IAAMA,EAAI,IAAKb,EAAE8R,UAAUhQ,YAAYa,MAAMZ,KAAMa,WAAY,IAAM/B,EAAE2C,SAAW3C,EAAI,CAAC,IAAI2B,EAAE4lC,QAAWrmC,KAAKqrC,UAAY5qC,EAAEwiC,eAAenyB,IAAIhS,GAGxJ,IAAIjB,EACJ,OAAOa,EAAET,EAAG0B,GAAI1B,EAAEiS,SAAW,SAAUpR,GACrC,IAAIO,EAAGzB,EACP,OAAOA,EAAI,WACT,IAAIA,EAAGS,EAAGK,EAEV,IAAKA,EAAI,GAAId,EAAI,EAAGS,EAAIS,EAAE2C,OAAQpD,EAAIT,EAAGA,IACvCyB,EAAIP,EAAElB,GAAIc,EAAE8B,KAAKC,EAAE4lC,MAAMn2B,SAAS7Q,IAGpC,OAAOX,EAPE,GAQN,IAAIsB,KAAKpC,IACbK,EAAE6jB,SAAW,SAAUhjB,EAAGO,GAC3B,OAAOoB,EAAEmoC,WAAWx4B,MAAMtR,EAAGO,GAAG4pC,eAC/BhrC,EAAEqtC,WAAa,SAAUxsC,EAAGO,GAC7B,IAAIzB,EACJ,OAAOA,EAAI6C,EAAEgkC,KAAKE,4BAA4B7lC,EAAGO,GAAI,IAAIW,KAAK,CAAC,IAAIS,EAAE4lC,MAAMzoC,MAC1EK,EAAEuB,UAAUwb,QAAU,WACvB,IAAIlc,EACJ,OAAO,IAAMkB,KAAKqrC,UAAU5pC,UAAW3C,EAAIkB,KAAKurC,gBAAgB,IAAMvwB,YAAclc,EAAE+nC,kBACrF5oC,EAAEuB,UAAUssB,KAAO,SAAUhtB,GAC9B,IAAI2B,EACJ,OAAO,MAAQ3B,IAAMA,EAAI,IAAK2B,EAAI3B,EAAE0sC,kBAAoBxrC,KAAKqrC,UAAUlH,cAAcppB,UAAY/a,KAAKqrC,UAAUtwB,UAAW,IAAI/a,KAAKD,YAAYU,IAC/IxC,EAAEuB,UAAUisC,6BAA+B,SAAU3sC,GACtD,IAAIO,EACJ,OAAOA,EAAI,IAAIoB,EAAEqb,UAAUhd,EAAE6c,cAAe3b,KAAK6kC,mBAAmBxlC,IACnEpB,EAAEuB,UAAUqlC,mBAAqB,SAAU/lC,GAC5C,IAAI2B,EAAGpB,EAAGzB,EACV,OAAOyB,EAAI,WACT,IAAIA,EAAGhB,EAAGK,EAAGiB,EAEb,IAA2BA,EAAI,GAAIN,EAAI,EAAGhB,GAArCK,EAAIsB,KAAKi7B,aAAkCx5B,OAAQpD,EAAIgB,EAAGA,IAC7DoB,EAAI/B,EAAEW,GAAIM,EAAEa,MAAM5C,EAAIkB,EAAEid,KAAKtb,IAAM7C,EAAI6C,EAAEokC,mBAAmB/lC,IAG9D,OAAOa,GACP5B,KAAKiC,MAAO,IAAIA,KAAKD,YAAYV,IAClCpB,EAAEuB,UAAUksC,4BAA8B,SAAU5sC,GACrD,IAAI2B,EAAGpB,EAAGzB,EACV,OAAO,MAAQkB,IAAMA,EAAI,IAAKlB,EAAI,WAChC,IAAIA,EAAGS,EAAGK,EAAGiB,EAEb,IAA2BA,EAAI,GAAI/B,EAAI,EAAGS,GAArCK,EAAIsB,KAAKi7B,aAAkCx5B,OAAQpD,EAAIT,EAAGA,IAC7DyB,EAAIX,EAAEd,GAAI6C,EAAI3B,EAAEyO,OAAOlO,EAAEm6B,iBAAkB75B,EAAEa,KAAKnB,EAAEoiC,mBAAmBhhC,IAGzE,OAAOd,GACP5B,KAAKiC,MAAO,IAAIA,KAAKD,YAAYnC,IAClCK,EAAEuB,UAAUmsC,aAAe,SAAU7sC,EAAG2B,GACzC,IAAIpB,EACJ,OAAuC,KAAhCA,EAAIW,KAAKqrC,UAAU/qC,QAAQxB,IAAekB,KAAO,IAAIA,KAAKD,YAAYC,KAAKqrC,UAAU7H,qBAAqB/iC,EAAGpB,KACnHpB,EAAEuB,UAAUosC,sBAAwB,SAAU9sC,EAAG2B,GAClD,IAAIpB,EAAGX,EAAGiB,EAAG6B,EAAGG,EAAG1D,EAAGJ,EACtB,OAAOa,EAAII,EAAEusC,UAAW1pC,GAAKlB,EAAI7C,EAAE6C,IAAI,GAAsCd,GAAlC1B,EAAI+B,KAAK6rC,qBAAqBlqC,IAAUuiC,MAAO1iC,EAAIvD,EAAE8T,OAAQlU,EAAImC,KAAMX,EAAIW,KAAK8rC,mBAAmBnqC,GAAItD,EAAEoC,IAAMpB,EAAE2b,YAAc3b,EAAEwnC,gBAAkBhpC,EAAI,IAAImC,KAAKD,YAAYlC,EAAEwtC,UAAU5H,oBAAoB9jC,IAAMN,EAAEu7B,0BAA4Bp5B,GAAKG,IAAK9D,EAAIA,EAAEmnC,kBAAkBvkC,GAAI,IAAIT,KAAKD,YAAYlC,EAAEwtC,UAAUhI,+BAA+B3kC,EAAGiD,KACnY1D,EAAEuB,UAAUusC,qBAAuB,SAAUtrC,EAAGpB,GACjD,IAAIhB,EAAGK,EAAGiB,EAAG6B,EAAGG,EAAG1D,EAAGJ,EAAGsD,EAAGzB,EAAGxB,EAAG2G,EAAGzB,EACrC,OAAOyB,GAAKxF,EAAIzB,EAAEyB,IAAI,GAAInB,EAAI8B,KAAK6rC,qBAAqBhnC,GAAInG,EAAIsB,KAAKurC,gBAAgBrtC,EAAEgmC,OAAO1K,gBAAiBn7B,EAAIoC,EAAEurC,yBAA0B5oC,EAAI1E,EAAEuD,OAAO5D,EAAEoD,QAAS3C,EAAET,EAAG+E,IAAMvF,EAAIa,EAAEuD,MAAM,GAAI5D,EAAEoD,QAASxD,EAAIwC,EAAEirC,4BAA4B7tC,IAAMI,EAAIwC,EAAEqrB,KAAK,CAC9P0f,mBAAmB,IAClBE,4BAA4BhtC,GAAIiB,EAAI1B,EAAEguC,gBAAiBzqC,EAAIvD,EAAEstC,gBAAgB,GAAIzsC,EAAEJ,EAAG8C,EAAEg4B,kBAAoB73B,EAAIH,EAAE+lC,2BAA4B7nC,EAAIM,KAAKksC,kBAAkBvqC,EAAGtC,GAAIM,EAAI,IAAM1B,EAAI,IAAI+B,KAAKD,YAAY9B,EAAEg9B,YAAYh5B,MAAM,IAAKd,EAAI0D,EAAIlD,EAAE2gC,YAAa5iC,EAAIA,EAAEksC,sBAAsB3tC,EAAGkD,KAAOzB,EAAIM,KAAK4rC,sBAAsB3tC,EAAGoB,GAAIK,GACjVzB,EAAEuB,UAAU0sC,kBAAoB,SAAUptC,EAAG2B,GAC9C,IAAIpB,EAAGhB,EAAGK,EAAGiB,EAAG6B,EAChB,OAAOA,GAAKf,EAAI7C,EAAE6C,IAAI,GAAsCpC,GAAlCsB,EAAIK,KAAK6rC,qBAAqBrqC,IAAU0iC,MAAOxlC,EAAIiB,EAAEoS,OAAQ1S,EAAIW,KAAKglC,kBAAkBvkC,GAAI,IAAIT,KAAKD,YAAYV,EAAEgsC,UAAU9H,kBAAkBllC,GAAG,SAAUoC,GACpL,OAAOA,EAAE6lC,aAAa7lC,EAAE2f,KAAK2kB,qBAAqBjmC,EAAGJ,SAEtDT,EAAEuB,UAAUwlC,kBAAoB,SAAUlmC,GAC3C,IAAI2B,EAAGpB,EAAGX,EAAGiB,EAAG6B,EAAGG,EAAG1D,EAAGJ,EAAGsD,EAAGzB,EAAGxB,EAASF,EAAGmH,EAAGC,EAAGjC,EAAGD,EAAGe,EAAGU,EAC7D,OAAqB9G,GAAd6B,EAAIZ,EAAIlB,EAAEkB,IAAU,GAAIoE,EAAIxD,EAAE,GAAIrB,EAAES,GAAKkB,MAA4C2B,GAApCzD,EAAI8B,KAAKmsC,uBAAuBrtC,IAAU,GAAIsG,EAAIlH,EAAE,GAAIsD,EAAIG,EAAEuiC,MAAOjmC,EAAI0D,EAAEoQ,OAAQpS,EAAIK,KAAKurC,gBAAgB/pC,GAAI2D,EAAIC,EAAE8+B,MAAO/gC,EAAIiC,EAAE2M,OAAQ/T,EAAIgC,KAAKurC,gBAAgBpmC,GAAQjC,EAAIrF,IAAM,GAAK8B,EAAEi7B,0BAA4B38B,GAAKD,EAAE48B,0BAA4Bz3B,GAAK,OAASnF,EAAEoiB,KAAKwlB,oBAAoBziC,GAAQzE,EAAIsB,KAAKqrC,UAAU9H,kBAAkBp+B,GAAG,SAAUrG,GACrZ,OAAOA,EAAEwnC,aAAaxnC,EAAEshB,KAAK4kB,kBAAkB,CAAC7hC,EAAGA,EAAI,SACnDhC,EAAIxB,EAAEygB,KAAK+kB,eAAe,CAAC,EAAGlnC,IAAKgG,EAAIjG,EAAEoiB,KAAK+kB,eAAe,CAAChiC,EAAGnF,EAAEskC,cAAe39B,EAAIxD,EAAE2jC,WAAW7gC,GAAqF5E,EAA7EmC,IAAM2D,GAAK,IAAMlH,GAAY0B,EAAEgnC,qBAAuB3oC,EAAE2oC,oBAA6B3oC,EAAEsoC,aAAa3hC,GAAKhF,EAAE2mC,aAAa3hC,GAAIlE,EAAI0E,EAAI,EAAI3D,EAAG9C,EAAIsB,KAAKqrC,UAAU3qC,OAAOc,EAAGf,EAAGpB,IAAK,IAAIW,KAAKD,YAAYrB,KACrTT,EAAEuB,UAAU0lC,4BAA8B,SAAUpmC,EAAG2B,GACxD,IAAIpB,EAAGhB,EAAGK,EAAGiB,EAAGgC,EAAG1D,EAAGJ,EAAGsD,EAAGzB,EAAGxB,EAC/B,OAAqBwB,GAAdzB,EAAIa,EAAIlB,EAAEkB,IAAU,GAAIJ,EAAIT,EAAE,GAAIwC,GAAKf,GAAKhB,GAAK+B,EAAIT,MAAQ3B,EAAI2B,KAAKosC,mBAAmBttC,GAAIqC,EAAInB,KAAKglC,kBAAkBlmC,IAAI6C,EAAIlB,EAAIf,KAASe,GAAKpC,EAAEikC,aAAiC3iC,GAAnB9B,EAAIQ,EAAE48B,aAAmB,GAA2C,KAAvC57B,EAAI,GAAKxB,EAAE4D,OAASD,EAAEzD,KAAKF,EAAG,GAAK,IAAY4D,QAAUvD,EAAIyB,EAAE4nC,2BAA4B5lC,IAAMlB,GAAK,IAAMvC,EAAIyB,EAAEygB,KAAMjf,EAAIA,EAAE+qC,kBAAkBhuC,EAAGuC,GAAI,IAAMpB,EAAEoC,OAASN,GAAK9C,EAAI,IAAI2B,KAAKD,YAAYV,GAAIoB,GAAKvC,EAAEokC,YAAanhC,EAAEyqC,sBAAsBvtC,EAAGoC,MAC9bxC,EAAEuB,UAAU4lC,oBAAsB,SAAUtmC,EAAG2B,EAAG7C,GACnD,IAAIS,EACJ,OAAOA,EAAI2B,KAAKqrC,UAAWrrC,KAAKqsC,iBAAiBzuC,GAAG,SAAUA,EAAGc,EAAGiB,GAClE,OAAOtB,EAAIA,EAAEklC,kBAAkB5jC,GAAG,WAChC,OAAON,EAAEP,GAAKlB,EAAE6oC,aAAa3nC,EAAG2B,GAAK/B,EAAE,KAAOA,EAAE,GAAKd,EAAIA,EAAE0oC,aAAa1oC,EAAEwiB,KAAKglB,oBAAoBtmC,EAAG2B,EAAG/B,UAEzG,IAAIsB,KAAKD,YAAY1B,IACxBJ,EAAEuB,UAAUinC,aAAe,SAAU3nC,EAAG2B,GACzC,IAAIpB,EACJ,OAAOA,EAAIW,KAAKqrC,UAAWrrC,KAAKssC,WAAU,SAAU1uC,EAAGS,GACrD,OAAOgB,EAAIA,EAAEkkC,kBAAkBllC,GAAG,WAChC,OAAOT,EAAE6oC,aAAa3nC,EAAG2B,SAEzB,IAAIT,KAAKD,YAAYV,IACxBpB,EAAEuB,UAAU8lC,uBAAyB,SAAUxmC,EAAG2B,GACnD,IAAI7C,EACJ,OAAOA,EAAIoC,KAAKqrC,UAAWrrC,KAAKqsC,iBAAiB5rC,GAAG,SAAUA,EAAGpC,EAAGK,GAClE,OAAOW,EAAEP,GAAKlB,EAAIA,EAAE2lC,kBAAkB7kC,GAAG,WACvC,OAAO+B,EAAE2M,gBAAgBtO,MACtBT,EAAE,KAAOA,EAAE,GAAKT,EAAIA,EAAE2lC,kBAAkB7kC,GAAG,WAC9C,OAAO+B,EAAE6lC,aAAa7lC,EAAE2f,KAAKklB,uBAAuBxmC,EAAGT,YACpD,KACH,IAAI2B,KAAKD,YAAYnC,IACxBK,EAAEuB,UAAU09B,8BAAgC,SAAUp+B,EAAG2B,GAC1D,IAAIpB,EAAMhB,EAAGK,EACb,OAAOL,EAAS2B,KAAKkmC,qBAAqBzlC,GAAI,GAAIpB,EAAIW,KAAK6rC,qBAAqBxtC,GAAG6lC,MAAOxlC,EAAIsB,KAAKusC,eAAeltC,GAAI,IAAIW,KAAKD,YAAYC,KAAKqrC,UAAU9H,kBAAkBlkC,GAAG,SAAUA,GACvL,OAAOA,EAAEinC,aAAa5nC,EAAEw+B,8BAA8Bp+B,EAAG2B,SAE1DxC,EAAEuB,UAAU29B,6BAA+B,SAAUr+B,EAAG2B,GACzD,IAAIpB,EACJ,OAAOA,EAAIW,KAAKkmC,qBAAqBzlC,GAAIT,KAAKslC,uBAAuBxmC,EAAGO,IACvEpB,EAAEuB,UAAUgtC,wBAA0B,SAAU1tC,GACjD,IAAIO,EAAGhB,EAAGK,EAAGiB,EACb,OAAOA,GAAKb,EAAIlB,EAAEkB,IAAI,GAAIJ,EAAIsB,KAAK6rC,qBAAqBlsC,GAAGoS,OAAQ1T,EAAI2B,KAAKglC,kBAAkBlmC,GAAI,IAAMJ,IAAMW,EAAI,CAAC,IAAIoB,EAAE4lC,QAAW,IAAIrmC,KAAKD,YAAY1B,EAAEgtC,UAAUhI,+BAA+B,IAAI5iC,EAAEwiC,eAAe5jC,GAAIM,KAC5N1B,EAAEuB,UAAUitC,2BAA6B,SAAU3tC,EAAG2B,EAAG7C,GAC1D,IAAIS,EAAGK,EAAGiB,EAAG6B,EACb,OAA0D9C,GAAnDiB,EAAIK,KAAK0sC,sCAAsC9uC,IAAU6E,SAAU7E,EAAI+B,EAAE0vB,OAAOhxB,EAAIgB,EAAEP,IAAMqU,eAE/F3R,GAFgH9C,EAAIA,EAAEiuC,+BAA+B/uC,EAAG,CAC1JgvC,oBAAqB9tC,KACb+tC,sCAAsCjvC,GAAIc,EAAI8C,EAAEiB,SAAU7E,EAAI4D,EAAE6tB,OAAS3wB,EAAIL,EAAEqiB,UAAYhiB,EAAEouC,6BAA6BlvC,GAAKS,EAAE6hB,SAAWxhB,EAAEquC,mCAAmCnvC,GAAKc,EAAEsuC,yBAAyBpvC,GAAIc,EAAE0mC,oBAAoBtmC,EAAG2B,EAAG7C,IAC1PK,EAAEuB,UAAUmtC,+BAAiC,SAAU7tC,EAAG2B,GAC3D,IAAI7C,EACJ,OAAO,MAAQ6C,IAAMA,EAAI,IAAK7C,EAAIoC,KAAKqrC,UAAWrrC,KAAKqsC,iBAAiBvtC,GAAG,SAAUA,EAAGT,EAAGK,GACzF,IAAIiB,EACJ,IAAKA,EAAIb,EAAE27B,qBAAuBp7B,EAAEM,GAAGwT,eAAiBxT,IAAMc,EAAEmsC,oBAAqB,OAAOhvC,EAAIA,EAAE2lC,kBAAkB7kC,GAAG,WACrH,OAAOI,EAAEsO,gBAAgBzN,SAEzB,IAAIK,KAAKD,YAAYnC,IACxBK,EAAEuB,UAAUutC,mCAAqC,SAAUjuC,GAC5D,IAAI2B,EACJ,OAAOA,EAAIT,KAAKqrC,UAAWrrC,KAAKqsC,iBAAiBvtC,GAAG,SAAUA,EAAGlB,EAAGS,GAClE,IAAIK,EACJ,IAAKA,EAAII,EAAE27B,qBAAuBp7B,EAAEX,GAAGwhB,SAAU,OAAOzf,EAAIA,EAAE8iC,kBAAkBllC,GAAG,WACjF,OAAOS,EAAEsO,gBAAgB1O,SAEzB,IAAIsB,KAAKD,YAAYU,IACxBxC,EAAEuB,UAAUstC,6BAA+B,SAAUhuC,GACtD,IAAI2B,EACJ,OAAOA,EAAIT,KAAKqrC,UAAWrrC,KAAKqsC,iBAAiBvtC,GAAG,SAAUA,EAAGO,EAAGzB,GAClE,OAAOkB,EAAE+nC,gBAAkBpmC,EAAIA,EAAE8iC,kBAAkB3lC,GAAG,WACpD,OAAOkB,EAAE0nC,gCACN,KACH,IAAIxmC,KAAKD,YAAYU,IACxBxC,EAAEuB,UAAUktC,sCAAwC,SAAU5tC,GAC/D,IAAI2B,EAAGpB,EAAGhB,EAAGK,EAAGiB,EAAG6B,EAAGG,EAAG1D,EAAGJ,EAC5B,OAAqBA,GAAd2D,EAAI1C,EAAIlB,EAAEkB,IAAU,GAAIJ,EAAI8C,EAAE,GAAIvD,EAAI+B,KAAK6rC,qBAAqBhuC,GAAIQ,EAAI2B,KAAK6rC,qBAAqBntC,GAAciD,GAAVlB,EAAIT,MAAYurC,gBAAgBttC,EAAEimC,OAAQ,OAASjmC,EAAE8T,OAASpQ,EAAE2lC,qCAAqC,WAAYrpC,EAAE8T,WAAapS,EAAIc,EAAEwsC,qBAAqBhvC,GAAIwC,EAAIA,EAAE+rC,wBAAwB,CAAC7sC,EAAGA,EAAI,IAAKtB,EAAE6lC,OAAS,EAAG7lC,EAAE0T,QAAUtR,EAAE8qC,gBAAgBttC,EAAEimC,OAAO5B,YAAarkC,EAAEimC,OAAS,GAAIjmC,EAAE8T,OAAS,EAAG,IAAM1T,EAAE0T,QAAU1T,EAAE6lC,MAAQjmC,EAAEimC,OAAS7lC,EAAE6lC,OAAS,EAAG7lC,EAAE0T,OAAStR,EAAE8qC,gBAAgBltC,EAAE6lC,OAAOtJ,0BAA4D,QAAhCv7B,EAAIoB,EAAE8qC,gBAAgBltC,EAAE6lC,QAAmB9jB,KAAKulB,iBAAiB,CAACtnC,EAAE0T,OAAS,EAAG1T,EAAE0T,SAAW1T,EAAE0T,QAAU,EAAI1T,EAAE0T,OAAS1S,EAAEioC,qCAAqC,UAAWjpC,EAAE0T,QAAS1T,EAAE0T,SAAW1S,EAAEu7B,0BAA4Bj7B,EAAIc,EAAEwsC,qBAAqB5uC,GAAIoC,EAAIA,EAAE+rC,wBAAwB,CAAC7sC,EAAGA,EAAI,MAAO9B,EAAI4C,EAAEwsC,qBAAqBhvC,GAAIS,EAAI+B,EAAEwsC,qBAAqB5uC,GAAmB,CACp4BoE,SAAUhC,EACV4uB,MAFq3BvwB,EAAIlB,EAAE,CAACC,EAAGa,MAIh4BT,EAAEuB,UAAUqtC,sCAAwC,SAAU/tC,GAC/D,IAAI2B,EAAGpB,EAAGhB,EACV,OAAOgB,GAAKP,EAAIlB,EAAEkB,IAAI,GAAIT,EAAI2B,KAAK2lC,iBAAiB7mC,GAAGmD,MAAM,GAAI,GAAIxB,EAAIT,KAAM3B,EAAE+S,QAAQ,UAAU,SAAUtS,GAC3G,OAAOO,GAAKP,EAAE2C,OAAQhB,EAAIA,EAAE+rC,wBAAwB,CAACntC,EAAI,EAAGA,OAC1D,CACFoD,SAAUhC,EACV4uB,MAAOvwB,IAERb,EAAEuB,UAAUwtC,yBAA2B,SAAUluC,GAClD,IAAI2B,EAAGpB,EAAGhB,EAAGK,EAAGiB,EAChB,OAAqBA,GAAdtB,EAAIS,EAAIlB,EAAEkB,IAAU,GAAIO,EAAIhB,EAAE,GAAIK,EAAIsB,KAAK6rC,qBAAqBlsC,GAAGukC,MAAOzjC,EAAIT,KAAK6rC,qBAAqBxsC,GAAG6kC,MAAO,IAAIlkC,KAAKD,YAAYC,KAAKqrC,UAAUjH,4BAA4B1lC,EAAG+B,KAC3LxC,EAAEuB,UAAU4sC,mBAAqB,SAAUttC,GAC5C,IAAI2B,EACJ,OAAO3B,EAAIlB,EAAEkB,GAAI2B,EAAIT,KAAKqrC,UAAU1H,yBAAyB7kC,GAAGic,UAAW,IAAI/a,KAAKD,YAAYU,IAC/FxC,EAAEuB,UAAUmmC,iBAAmB,SAAU7mC,GAC1C,IAAI2B,EAAMpC,EACV,OAAOA,EAAIS,EAAIlB,EAAEkB,IAAUT,EAAEoD,OAAS,KAAUzB,KAAKsiC,cAAgB7hC,GAAK,GAAIT,KAAKosC,mBAAmBttC,GAAGkS,WAAW/O,MAAM,EAAGxB,IAC5HxC,EAAEuB,UAAU+rC,gBAAkB,SAAUzsC,GACzC,OAAOkB,KAAKqrC,UAAU3H,iBAAiB5kC,IACtCb,EAAEuB,UAAUssC,mBAAqB,SAAUhtC,GAC5C,IAAI2B,EACJ,OAAOA,EAAIT,KAAK6rC,qBAAqB/sC,GAAGolC,MAAOlkC,KAAKurC,gBAAgB9qC,IACnExC,EAAEuB,UAAU+sC,eAAiB,SAAUztC,GACxC,IAAI2B,EACJ,OAAO,OAASA,EAAIT,KAAKurC,gBAAgBzsC,IAAM2B,EAAE2f,UAAO,GACvDniB,EAAEuB,UAAU0tC,kBAAoB,SAAUpuC,GAC3C,IAAI2B,EACJ,OAAOA,EAAIT,KAAK6rC,qBAAqB/sC,GAAGolC,MAAOlkC,KAAKusC,eAAe9rC,IAClExC,EAAEuB,UAAU2mC,mBAAqB,SAAUrnC,GAC5C,IAAI2B,EAAGpB,EAAGzB,EACV,OAAyC6C,GAAlC7C,EAAIoC,KAAK6rC,qBAAqB/sC,IAAUolC,MAAO7kC,EAAIzB,EAAEmU,OAAQ/R,KAAKusC,eAAe9rC,GAAG0lC,mBAAmB9mC,IAC7GpB,EAAEuB,UAAU2tC,uBAAyB,SAAUruC,GAChD,IAAI2B,EAAGpB,EAAGzB,EACV,OAAyC6C,GAAlC7C,EAAIoC,KAAK6rC,qBAAqB/sC,IAAUolC,MAAO7kC,EAAIzB,EAAEmU,OAAQ/R,KAAKusC,eAAe9rC,GAAGklC,iBAAiB,CAACtmC,EAAGA,EAAI,KACnHpB,EAAEuB,UAAU8iC,UAAY,WACzB,OAAOtiC,KAAKqrC,UAAU/G,kBACrBrmC,EAAEuB,UAAUy7B,UAAY,WACzB,OAAOj7B,KAAKqrC,UAAUtwB,WACrB9c,EAAEuB,UAAUysC,cAAgB,WAC7B,OAAOjsC,KAAKqrC,UAAU5pC,QACrBxD,EAAEuB,UAAU4tC,aAAe,WAC5B,OAAOptC,KAAKqtC,WACXpvC,EAAEuB,UAAU8sC,UAAY,SAAUxtC,GACnC,OAAOkB,KAAKqrC,UAAUnI,WAAWpkC,IAChCb,EAAEuB,UAAU6sC,iBAAmB,SAAUvtC,EAAG2B,GAC7C,IAAIpB,EAAGhB,EAAGK,EAAGiB,EAAG6B,EAAGG,EAAG1D,EAAGJ,EAAGsD,EAAGzB,EAAGxB,EAAG2G,EACrC,GAAkB3G,GAAdyD,EAAI7C,EAAIlB,EAAEkB,IAAU,GAAIJ,EAAIiD,EAAE,GAAIjC,EAAIM,KAAK6rC,qBAAqB3tC,GAAIG,EAAI2B,KAAK6rC,qBAAqBntC,GAAIgB,EAAEwkC,QAAU7lC,EAAE6lC,MAAO,OAAO7kC,EAAIW,KAAKurC,gBAAgB7rC,EAAEwkC,OAAQr/B,EAAI,CAACnF,EAAEqS,OAAQ1T,EAAE0T,QAAStR,EAAEpB,EAAGwF,EAAGnF,EAAEwkC,OAE7M,IAAK/iC,EAAI,GAAIK,EAAI7B,EAAI1B,EAAIyB,EAAEwkC,MAAOrmC,EAAIQ,EAAE6lC,MAAOrmC,GAAKI,EAAIJ,GAAK8B,EAAIA,GAAK9B,EAAG2D,EAAI3D,GAAKI,IAAM0B,IAAMA,GAC3FN,EAAIW,KAAKurC,gBAAgB/pC,KAAOqD,EAAI,WACnC,OAAQrD,GACN,KAAK9B,EAAEwkC,MACL,MAAO,CAACxkC,EAAEqS,OAAQ1S,EAAE+gB,KAAKkiB,aAE3B,KAAKjkC,EAAE6lC,MACL,MAAO,CAAC,EAAG7lC,EAAE0T,QAEf,QACE,MAAO,CAAC,EAAG1S,EAAE+gB,KAAKkiB,cATa,GAWhCnhC,EAAEX,KAAKC,EAAEpB,EAAGwF,EAAGrD,KAAOL,EAAEX,UAAK,GAGpC,OAAOW,GACNlD,EAAEuB,UAAUimC,2BAA6B,SAAU3mC,GACpD,IAAIO,EAAGX,EAAGiB,EACV,OAAOjB,GAAKI,EAAIlB,EAAEkB,IAAI,GAAIT,EAAES,GAAKkB,KAAKstC,8BAA8B5uC,IAAMiB,EAAI,GAAIN,EAAI,GAAIW,KAAKqsC,iBAAiBvtC,GAAG,SAAUA,EAAG2B,GAC9H,OAAOA,EAAE,KAAOA,EAAE,IAAMd,EAAEa,KAAK1B,EAAEshB,KAAKqlB,2BAA2BhlC,IAAKpB,EAAEmB,KAAK3C,EAAEiB,UAAO,KACpF2B,EAAEga,KAAKC,8BAA8B/a,GAAGkb,MAAMpa,EAAEga,KAAKC,8BAA8Brb,IAAI6b,aAC1Fjd,EAAEuB,UAAU8tC,8BAAgC,SAAUxuC,GACvD,IAAIO,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAG6B,EAAGvD,EAAGkD,EAAGzB,EAAGxB,EAC/B,GAAsCyB,GAAlCD,EAAIM,KAAK6rC,qBAAqB/sC,IAAUolC,MAAO/iC,EAAIzB,EAAEqS,SAAQ1T,EAAI2B,KAAKurC,gBAAgB5rC,IAAQ,MAAO,GAYzG,IAAK1B,KAXLS,EAAIb,EAAEQ,GAAIgB,EAAIhB,EAAE+hB,KAAKolB,wBAAwBrkC,GAAIvD,EAAIS,EAAE+hB,KAAKolB,wBAAwBrkC,EAAI,GAAIK,EAAI,WAC9F,IAAI1C,EAAGO,EAGP,IAAKpB,KAFwBoB,EAAI,GAAjCP,EAAI2B,EAAE6O,OAAO2D,gBAGX/U,EAAIY,EAAEb,IAAMkjB,aAAe9hB,EAAEmB,KAAKvC,GAGpC,OAAOoB,EARuF,GAWtFzB,IACRM,EAAIN,EAAEK,MAAWoB,EAAEpB,IAAM0D,EAAE5D,KAAKyD,EAAGvD,IAAM,KAAOS,EAAET,GAAKC,GAGzD,OAAOQ,GACNT,EAAEuB,UAAU+tC,oCAAsC,SAAUzuC,EAAG2B,GAChE,IAAIpB,EAAGhB,EAAGK,EAAGiB,EAAG6B,EAAGG,EAAG1D,EAAGJ,EACzB,OAAyCa,GAAlC8C,EAAIxB,KAAK6rC,qBAAqBprC,IAAUyjC,MAAOvkC,EAAI6B,EAAEuQ,OAAsFlU,GAAlD8D,EAAxB3B,KAAKusC,eAAe7tC,GAAUgnC,qCAAqC5mC,EAAGa,IAAU,GAAItB,EAAIsD,EAAE,GAAI1D,EAAI+B,KAAKitC,qBAAqB,CAClM/I,MAAOxlC,EACPqT,OAAQlU,IACNwB,EAAIW,KAAKitC,qBAAqB,CAChC/I,MAAOxlC,EACPqT,OAAQ1T,IACNT,EAAE,CAACK,EAAGoB,KACTpB,EAAEuB,UAAUwsC,uBAAyB,WACtC,IAAIltC,EAAG2B,EAAGpB,EAAGzB,EAAGS,EAAGK,EAAGiB,EAEtB,IAAKb,EAAIkB,KAAKurC,gBAAgB,GAAG/R,gBAAiBn6B,EAAIzB,EAAI,EAAG+B,EAAIK,KAAKisC,gBAAiBtsC,GAAK,EAAIA,EAAI/B,EAAIA,EAAI+B,EAAGN,EAAIM,GAAK,IAAM/B,IAAMA,EAClI6C,EAAIT,KAAKurC,gBAAgBlsC,GAAGm6B,gBAAiB96B,EAAIoE,KAAK0qC,IAAI1uC,EAAE2C,OAAQhB,EAAEgB,QAAS3C,EAAI,WACjF,IAAIO,EAAGzB,EAAG+B,EAEV,IAAKA,EAAI,GAAItB,EAAIgB,EAAI,EAAGzB,EAAIc,GAAId,GAAK,EAAIA,EAAIyB,EAAIA,EAAIzB,IAAM6C,EAAEpC,KAAOS,EAAET,GAAIA,EAAIT,GAAK,IAAMyB,IAAMA,EAC7FM,EAAEa,KAAKC,EAAEpC,IAGX,OAAOsB,EAP0E,GAWrF,OAAOb,GACNjB,EAAI,SAAWiB,GAChB,IAAI2B,EAAGpB,EACP,OAAOA,EAAI,IAAKoB,EAAI3B,EAAE27B,sBAAwBp7B,EAAEoB,IAAK,GAAKpB,GACzDpB,EAAEuB,UAAU89B,kBAAoB,SAAUx+B,GAC3C,IAAI2B,EAAGpB,EAAGzB,EAAGS,EAEb,IAAgCgB,EAAI,EAAGzB,GAAlCS,EAAI2B,KAAKgmC,kBAA+BvkC,OAAQ7D,EAAIyB,EAAGA,IAC1D,IAAIoB,EAAIpC,EAAEgB,IAAM2Q,KAAOlR,EAAG,OAAO2B,GAElCxC,EAAEuB,UAAUumC,oBAAsB,WACnC,IAAIjnC,EACJ,OAAOA,EAAI,GAAIkB,KAAKqrC,UAAUnI,YAAW,SAAUziC,GACjD,IAAIpB,EACJ,OAAOA,EAAIoB,EAAE2f,KAAMthB,EAAIA,EAAEyO,OAAOlO,EAAE0mC,0BAChCjnC,GACHb,EAAEuB,UAAUwmC,eAAiB,WAC9B,IAAIlnC,EAAG2B,EAAGpB,EAAGzB,EAAGS,EAEhB,IAAqCA,EAAI,GAAIS,EAAI,EAAG2B,GAA/C7C,EAAIoC,KAAK+lC,uBAA4CtkC,OAAQhB,EAAI3B,EAAGA,IACvEO,EAAIzB,EAAEkB,GAAIT,EAAEmC,KAAKnB,EAAEkgB,YAGrB,OAAOlhB,GACNJ,EAAEuB,UAAU0mC,qBAAuB,SAAUpnC,GAC9C,IAAI2B,EAAGpB,EAAGhB,EAAGK,EAAGiB,EAAG6B,EAAGG,EAEtB,IAAKjD,EAAI,EAAiCW,EAAIoB,EAAI,EAAGpC,GAAzCsB,EAAIK,KAAKqrC,UAAUtwB,WAA4BtZ,OAAQpD,EAAIoC,EAAGpB,IAAMoB,EAAG,CACjF,GAAmBkB,GAAfH,EAAI7B,EAAEN,GAAG+gB,MAAY8lB,qBAAqBpnC,GAAI,OAAOlB,EAAE,CAACc,EAAIiD,EAAE,GAAIjD,EAAIiD,EAAE,KAC5EjD,GAAK8C,EAAE8gC,cAERrkC,EAAEuB,UAAUiuC,6BAA+B,SAAU3uC,GACtD,IAAI2B,EACJ,OAAOA,EAAIT,KAAKkmC,qBAAqBpnC,GAAIkB,KAAKmsC,uBAAuB1rC,IACpExC,EAAEuB,UAAUw9B,gCAAkC,SAAUl+B,GACzD,IAAI2B,EAAGpB,EAAGzB,EAAGS,EAEb,IAAqCoC,EAAI,EAAGpB,GAAvChB,EAAI2B,KAAK+lC,uBAAoCtkC,OAAQpC,EAAIoB,EAAGA,IAC/D,IAAI7C,EAAIS,EAAEoC,IAAM8e,aAAezgB,EAAG,OAAOlB,GAE1CK,EAAEuB,UAAUkuC,4BAA8B,SAAU5uC,GACrD,IAAI2B,EAAGpB,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAG6B,EAEtB,IAAK9C,EAAI,EAAGiB,EAAI,GAA0BN,EAAI,EAAGzB,GAA7B4D,EAAIxB,KAAKi7B,aAA0Bx5B,OAAQ7D,EAAIyB,EAAGA,IAC1DhB,GAAVoC,EAAIe,EAAEnC,IAAUijC,YAAa7hC,EAAE45B,aAAav7B,IAAMa,EAAEa,KAAK,CAAC9B,EAAGA,EAAIL,IAAKK,GAAKL,EAG7E,OAAOsB,GACN1B,EAAEuB,UAAUmuC,2BAA6B,SAAU7uC,EAAG2B,GACvD,IAAIpB,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAG6B,EAAGG,EAAG1D,EAAGJ,EAAGsD,EAE/B,IAAKA,GAAK,MAAQV,EAAIA,EAAI,IAAImtC,UAAWpsC,EAAI,EAAGG,EAAI,GAAI1D,EAAI,GAAIS,EAAI,SAAW+B,GAC7E,OAAO,MAAQU,EAAIV,EAAEoM,aAAa/N,KAAOqC,EAAIV,EAAE45B,aAAav7B,IACrCO,EAAI,EAAGzB,GAA7BC,EAAImC,KAAKo6B,aAA0B34B,OAAQ7D,EAAIyB,EAAGA,IACzChB,GAAVsB,EAAI9B,EAAEwB,IAAUijC,YAAa5jC,EAAEiB,KAAOgC,EAAE,KAAOH,EAAIG,EAAE,GAAKH,EAAInD,EAAIJ,EAAEuC,KAAKmB,EAAI,CAACH,EAAGA,EAAInD,KAAMmD,GAAKnD,EAGlG,OAAOJ,GACNA,EAAEuB,UAAUqsC,qBAAuB,SAAU/sC,GAC9C,IAAI2B,EAAGpB,EACP,OAAwE,OAAjEA,EAAIW,KAAKqrC,UAAUpH,6BAA6BnhC,KAAKua,IAAI,EAAGve,KAAeolC,MAAQ7kC,EAA2B,CACnH6kC,OAD6FzjC,EAAIT,KAAKi7B,aAC7Fx5B,OAAS,EAClBsQ,OAAQtR,EAAEA,EAAEgB,OAAS,GAAG6gC,cAEzBrkC,EAAEuB,UAAUytC,qBAAuB,SAAUnuC,GAC9C,OAAOkB,KAAKqrC,UAAUhH,6BAA6BvlC,EAAEolC,MAAOplC,EAAEiT,SAC7D9T,EAAEuB,UAAUquC,0BAA4B,SAAU/uC,GACnD,OAAOlB,EAAEoC,KAAK6rC,qBAAqB/sC,KAClCb,EAAEuB,UAAU2sC,uBAAyB,SAAUrtC,GAChD,IAAI2B,EAAGpB,EAAGhB,EAAGK,EACb,GAAII,EAAIlB,EAAEkB,GAAI,OAAOJ,EAAII,EAAE,GAAIO,EAAIP,EAAE,GAAIT,EAAI2B,KAAK6rC,qBAAqBntC,GAAI+B,EAAIT,KAAK6rC,qBAAqBxsC,GAAIzB,EAAE,CAACS,EAAGoC,KAClHxC,EAAEuB,UAAUsuC,uBAAyB,SAAUhvC,GAChD,IAAI2B,EAAGpB,EACP,OAAOP,EAAIlB,EAAEkB,GAAI2B,EAAIT,KAAKitC,qBAAqBnuC,EAAE,IAAKT,EAAES,KAAOO,EAAIW,KAAKitC,qBAAqBnuC,EAAE,KAAMlB,EAAE,CAAC6C,EAAGpB,KAC1GpB,EAAEuB,UAAU8Q,UAAY,SAAUxR,GACnC,OAAOkB,KAAKqrC,UAAU/6B,UAAU,MAAQxR,EAAIA,EAAEusC,eAAY,IACzDptC,EAAEuB,UAAUuuC,SAAW,WACxB,IAAIjvC,EAAG2B,EAAGpB,EAAGzB,EAAGS,EAEhB,IAA2BA,EAAI,GAAIoC,EAAI,EAAGpB,GAArCzB,EAAIoC,KAAKi7B,aAAkCx5B,OAAQpC,EAAIoB,EAAGA,IAC7D3B,EAAIlB,EAAE6C,GAAIpC,EAAEmC,KAAK1B,EAAEshB,MAGrB,OAAO/hB,GACNJ,EAAEuB,UAAU46B,UAAY,WACzB,IAAIt7B,EAAG2B,EAAGpB,EAAGzB,EAAGS,EAEhB,IAAKgB,EAAI,GAAyBP,EAAI,EAAG2B,GAA5B7C,EAAIoC,KAAK+tC,YAAyBtsC,OAAQhB,EAAI3B,EAAGA,IAC5DT,EAAIT,EAAEkB,GAAIO,EAAEmB,KAAKI,MAAMvB,EAAGhB,EAAE+7B,aAG9B,OAAO/6B,GACNpB,EAAEuB,UAAUmc,WAAa,WAC1B,OAAO3b,KAAKi7B,YAAY1tB,OAAOvN,KAAK+tC,YAAYxgC,OAAOvN,KAAKo6B,cAC3Dn8B,EAAEuB,UAAUwiB,uBAAyB,WACtC,IAAIljB,EACJ,OAAOA,EAAI,GAAIkB,KAAKqrC,UAAUnI,YAAW,SAAUziC,GACjD,OAAO3B,EAAE0B,KAAKC,EAAE6lC,aAAa7lC,EAAE2f,KAAKgmB,0BAClC,IAAIpmC,KAAKD,YAAYjB,IACxBb,EAAEuB,UAAUwR,SAAW,WACxB,OAAOhR,KAAKqrC,UAAUr6B,YACrB/S,EAAEuB,UAAU2b,OAAS,WACtB,OAAOnb,KAAKqrC,UAAUlwB,UACrBld,EAAEuB,UAAUqjC,UAAY,WACzB,IAAI/jC,EACJ,OAAOqR,KAAKQ,UAAU,WACpB,IAAIlQ,EAAGpB,EAAGzB,EAAGS,EAEb,IAAmCA,EAAI,GAAIoC,EAAI,EAAGpB,GAA7CzB,EAAIoC,KAAKqrC,UAAUtwB,WAAgCtZ,OAAQpC,EAAIoB,EAAGA,IACrE3B,EAAIlB,EAAE6C,GAAIpC,EAAEmC,KAAK2P,KAAKC,MAAMtR,EAAEshB,KAAKyiB,cAGrC,OAAOxkC,GACPN,KAAKiC,QACN/B,EAnXkG,CAoXrGwC,EAAEnC,SACJP,KAAKiC,MAAO,WACZS,EAAEutC,mBAAqB,WACrB,SAASlvC,EAAEA,GACT,IAAI2B,EACJT,KAAKy7B,YAAc38B,EAAGkB,KAAKyC,SAAWzC,KAAKy7B,YAAYh5B,SAAUhC,EAAIT,KAAKy7B,YAAYnS,mBAAoBtpB,KAAKiuC,cAAgBxtC,EAAE,GAAIT,KAAKukC,YAAc9jC,EAAE,GAAIT,KAAKkuC,cAAgBluC,KAAKyC,SAASopC,qBAAqB7rC,KAAKiuC,eAAgBjuC,KAAKmuC,YAAcnuC,KAAKyC,SAASopC,qBAAqB7rC,KAAKukC,aAAcvkC,KAAKu6B,MAAQv6B,KAAKyC,SAAS8oC,gBAAgBvrC,KAAKmuC,YAAYjK,OAAQlkC,KAAKqnC,eAAiBrnC,KAAKu6B,MAAM8M,iBAAkBrnC,KAAKouC,kBAAoBpuC,KAAKu6B,MAAMna,KAAKwlB,oBAAoB5lC,KAAKmuC,YAAYp8B,OAAS,GAAI/R,KAAKquC,cAAgBruC,KAAKu6B,MAAMna,KAAKwlB,oBAAoB5lC,KAAKmuC,YAAYp8B,QAGllB,OAAOjT,EAAEU,UAAU8uC,uBAAyB,WAC1C,OAAOtuC,KAAKu6B,MAAMsM,iBAAmB7mC,KAAKu6B,MAAM4M,eAAiBnnC,KAAKu6B,MAAMvf,UAAY,IAAMhb,KAAKkuC,cAAcn8B,OAAS/R,KAAKqnC,gBAAkB,OAASrnC,KAAKquC,eAC9JvvC,EAAEU,UAAU+uC,0BAA4B,WACzC,OAAOvuC,KAAKu6B,MAAMsM,kBAAoB7mC,KAAKu6B,MAAM4M,eAAiBnnC,KAAKqnC,gBAAkB,OAASrnC,KAAKquC,eAAiB,OAASruC,KAAKouC,oBACrItvC,EAAEU,UAAUgvC,wBAA0B,WACvC,OAAOxuC,KAAKu6B,MAAMsM,iBAAmB7mC,KAAKu6B,MAAM4M,cAAgBnnC,KAAKu6B,MAAMvf,WAC1Elc,EAAEU,UAAUivC,sBAAwB,WACrC,OAAOzuC,KAAKu6B,MAAM4M,cAAgB,IAAMnnC,KAAKkuC,cAAcn8B,SAAW/R,KAAKu6B,MAAMvf,WAChFlc,EAAEU,UAAUkvC,+BAAiC,WAC9C,OAAO1uC,KAAKu6B,MAAMsM,kBAAoB7mC,KAAKu6B,MAAM4M,cAAgBnnC,KAAKu6B,MAAMvf,WAC3Elc,EAhBkB,IAkBvBf,KAAKiC,MAAO,WACZ,IAAIlB,EACAO,EACAzB,EACAS,EACAK,EACAiB,EACA6B,EACAG,EACA1D,EACAJ,EACAsD,EAAI,SAAWrC,EAAG2B,GACpB,SAASpB,IACPW,KAAKD,YAAcjB,EAGrB,IAAK,IAAIlB,KAAK6C,EACZf,EAAE3B,KAAK0C,EAAG7C,KAAOkB,EAAElB,GAAK6C,EAAE7C,IAG5B,OAAOyB,EAAEG,UAAYiB,EAAEjB,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEiR,UAAYtP,EAAEjB,UAAWV,GAElFY,EAAI,GAAGD,eAEXE,EAAIc,EAAE6W,eAAgBrZ,EAAIwC,EAAEgX,eAAgB9V,EAAIlB,EAAE+W,iBAAkBhW,EAAIf,EAAE4R,gBAAiBvT,EAAI2B,EAAE+R,gBAAiB3U,EAAI4C,EAAEiS,qBAAsB9U,EAAI6C,EAAEkS,qBAAsBtU,EAAIoC,EAAEqS,eAAgBpU,EAAI+B,EAAEuS,cAAe3T,EAAIoB,EAAEwQ,OAAQxQ,EAAEkuC,YAAc,SAAUjvC,GAC3P,SAASxB,IACP8B,KAAKyC,SAAW,IAAIhC,EAAEohB,SAAY7hB,KAAK0iB,YAAc,GAAI1iB,KAAK4uC,kBAAoB,GAAI5uC,KAAKs8B,SAAW,EAIxG,OAAOn7B,EAAEjD,EAAGwB,GAAIxB,EAAEsB,UAAUs7B,YAAc,SAAUh8B,GAClD,IAAI2B,EACJ,OAAO3B,EAAEwR,UAAUtQ,KAAKyC,eAAY,GAAUzC,KAAKyC,SAAW3D,EAAGkB,KAAK6uC,qBAAsB7uC,KAAKs8B,WAAY,OAAS77B,EAAIT,KAAKomB,WAAa,mBAAqB3lB,EAAEquC,6BAA+BruC,EAAEquC,6BAA6BhwC,QAAK,IACrOZ,EAAEsB,UAAUuvC,YAAc,WAC3B,MAAO,CACLtsC,SAAUzC,KAAKyC,SACfusC,cAAehvC,KAAKspB,qBAErBprB,EAAEsB,UAAUyvC,aAAe,SAAUnwC,GACtC,IAAIO,EAAGzB,EAAGS,EAAGK,EACb,OAAOW,EAAIP,EAAE2D,SAAU/D,EAAII,EAAEkwC,cAAe,OAASpxC,EAAIoC,KAAKomB,WAAa,mBAAqBxoB,EAAEsxC,6BAA+BtxC,EAAEsxC,8BAA+BlvC,KAAK86B,YAAY,MAAQz7B,EAAIA,EAAI,IAAIoB,EAAEohB,UAAa7hB,KAAKmvC,aAAa,MAAQzwC,EAAIA,EAAI,CAAC,EAAG,IAAK,OAASL,EAAI2B,KAAKomB,WAAa,mBAAqB/nB,EAAE+wC,2BAA6B/wC,EAAE+wC,kCAA+B,GACpXlxC,EAAEsB,UAAUy0B,WAAa,SAAUn1B,EAAG2B,GACvC,IAAIpB,EAAGzB,EAAGS,EAAGK,EACb,OAAOA,GAAK,MAAQ+B,EAAIA,EAAI,CAC1BwtB,gBAAgB,IACfA,eAAgBrwB,EAAIoC,KAAKspB,mBAAoBtpB,KAAK86B,YAAY96B,KAAKyC,SAASypC,kBAAkBptC,EAAGlB,IAAeyB,GAAVhB,EAAIT,EAAE,IAAYkB,EAAEwjC,YAAa5jC,GAAKsB,KAAKmvC,aAAa9vC,GAAIW,KAAKqvC,iCAAiC,CAAChxC,EAAGgB,KAC9MnB,EAAEsB,UAAU8vC,YAAc,SAAUxwC,GACrC,IAAIO,EACJ,OAAO,MAAQP,IAAMA,EAAI,IAAI2B,EAAE4lC,OAAUhnC,EAAI,IAAIoB,EAAEohB,SAAS,CAAC/iB,IAAKkB,KAAKyrB,eAAepsB,IACrFnB,EAAEsB,UAAUisB,eAAiB,SAAU3sB,GACxC,IAAIO,EAAGzB,EAAGS,EACV,OAAO,MAAQS,IAAMA,EAAI,IAAI2B,EAAEohB,UAAajkB,EAAIoC,KAAKspB,mBAAoBtpB,KAAK86B,YAAY96B,KAAKyC,SAASmpC,sBAAsB9sC,EAAGlB,IAAeyB,GAAVhB,EAAIT,EAAE,IAAYkB,EAAEwjC,YAAatiC,KAAKmvC,aAAa9vC,GAAIW,KAAKqvC,iCAAiC,CAAChxC,EAAGgB,KACtOnB,EAAEsB,UAAU0qB,aAAe,SAAUprB,EAAGO,GACzC,IAAIzB,EAAGS,EACP,OAAOT,EAAIoC,KAAKuvC,2BAA4BlxC,EAAIoC,EAAEgkC,KAAKE,4BAA4B7lC,EAAGlB,GAAIoC,KAAKi0B,WAAW51B,EAAGgB,IAC5GnB,EAAEsB,UAAUgwC,iBAAmB,WAChC,IAAI1wC,EAAG2B,EAAGpB,EACV,OAAOoB,EAAIT,KAAKspB,mBAAoBtpB,KAAK86B,YAAY96B,KAAKyC,SAAS+pC,wBAAwB/rC,IAAe3B,GAAVO,EAAIoB,EAAE,IAAY,EAAGT,KAAKmvC,aAAarwC,GAAIkB,KAAKqvC,iCAAiC,CAAChwC,EAAGP,KACpLZ,EAAEsB,UAAUguB,gBAAkB,WAC/B,IAAI1uB,EAAGO,EACP,OAAOA,EAAI,IAAIoB,EAAEutC,mBAAmBhuC,OAASwuC,2BAA6BxuC,KAAKyvC,oBAAqBzvC,KAAKmvC,aAAa9vC,EAAE4uC,gBAAkB5uC,EAAEovC,yBAA2B3vC,EAAI,IAAI2B,EAAEohB,SAAS,CAACxiB,EAAEk7B,MAAMgM,oBAAqBvmC,KAAKyrB,eAAe3sB,IAAMO,EAAEivC,yBAA2BtuC,KAAKwvC,mBAAqBnwC,EAAEqvC,iCAAmC1uC,KAAK0vC,2BAA6BrwC,EAAEkvC,4BAA8BvuC,KAAK2vC,oBAAoBtwC,GAAKW,KAAKkqB,aAAa,OAC/bhsB,EAAEsB,UAAUitB,WAAa,SAAU3tB,GACpC,IAAIO,EAAGzB,EAAGS,EAAGK,EACb,OAAOW,EAAIoB,EAAEohB,SAASC,SAAShjB,GAAIT,EAAI2B,KAAKspB,mBAAoBtpB,KAAK86B,YAAY96B,KAAKyC,SAASspC,qBAAqB1sC,EAAGhB,IAAeT,GAAVc,EAAIL,EAAE,IAAYgB,EAAEijC,YAAc,EAAGtiC,KAAKmvC,aAAavxC,GAAIoC,KAAKqvC,iCAAiC,CAAC3wC,EAAGd,KAChOM,EAAEsB,UAAUowC,YAAc,SAAU9wC,GACrC,IAAIO,EAAGzB,EAAGS,EACV,OAAOgB,EAAIoB,EAAEohB,SAASC,SAAShjB,GAAG2sC,6BAA6BzrC,KAAKyC,UAAW7E,EAAIoC,KAAK6vC,iBAAiB,CACvGj5B,QAAQ,IACNvY,EAAI2B,KAAKyC,SAASqrC,uBAAuBlwC,GAAIoC,KAAK86B,YAAYz7B,GAAIW,KAAKmvC,aAAa9wC,IACvFH,EAAEsB,UAAUutB,WAAa,SAAUjuB,GACpC,OAAOkB,KAAKuoB,YAAY,CAACzpB,KACxBZ,EAAEsB,UAAU+oB,YAAc,SAAUzpB,GACrC,IAAIO,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAG6B,EAEnB,IAAK5D,EAAI,GAAIc,EAAI,EAAGiB,EAAIb,EAAE2C,OAAQ9B,EAAIjB,EAAGA,IACvCL,EAAIS,EAAEJ,IAAK,OAAS8C,EAAIxB,KAAKomB,UAAY5kB,EAAEsuC,4BAA4BzxC,QAAK,KAAYgB,EAAIoB,EAAEm/B,WAAWI,kBAAkB3hC,GAAIT,EAAE4C,KAAKnB,IAGxI,OAAOW,KAAK+vC,kBAAkBnyC,IAC7BM,EAAEsB,UAAUwwC,iBAAmB,SAAUlxC,GAC1C,OAAOkB,KAAK+vC,kBAAkB,CAACjxC,KAC9BZ,EAAEsB,UAAUuwC,kBAAoB,SAAUjxC,GAC3C,IAAIO,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAG6B,EAAGG,EAAG1D,EAAGJ,EAE5B,IAAKI,EAAI,IAAIwC,EAAEgkC,KAAQ/lC,EAAI,EAAGiB,EAAIb,EAAE2C,OAAQ9B,EAAIjB,EAAGA,IACvCb,GAAVwB,EAAIP,EAAEJ,IAAUu5B,UAAWz2B,EAAI,OAASG,EAAIlB,EAAE6O,OAAOoT,YAAY7kB,IAAM8D,EAAEihB,kBAAe,EAAQvkB,EAAI2B,KAAKuvC,2BAA4B/tC,IAAMnD,EAAEukB,aAAephB,GAAI5D,EAAI6C,EAAEgkC,KAAKC,gCAAgCrlC,EAAGhB,GAAIJ,EAAIA,EAAE6mC,WAAWlnC,GAGrO,OAAOoC,KAAKi0B,WAAWh2B,IACtBC,EAAEsB,UAAUmxB,gCAAkC,SAAU7xB,GACzD,IAAI2B,EAEJ,GAAIA,EAAIT,KAAK6vC,mBAAoBluC,EAAElB,GAAI,CACrC,GAAI,aAAe3B,GAAK,IAAM2B,EAAE,GAAGsR,OAAQ,OAAO,EAClD,GAAI/R,KAAKuwB,oCAAoCzxB,GAAI,OAAO,OACnD,GAAI2B,EAAE,GAAGyjC,QAAUzjC,EAAE,GAAGyjC,MAAO,OAAO,EAE7C,OAAO,GACNhmC,EAAEsB,UAAUqsB,kBAAoB,SAAU/sB,EAAG2B,GAC9C,IAAIpB,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAG6B,EAAGvD,EAAGJ,EACzB,OAAOa,GAAK,MAAQ+B,EAAIA,EAAI,IAAIgB,OAAQ9B,EAAIK,KAAK6vC,mBAAoBruC,EAAIxB,KAAKspB,oBAAoBrrB,EAAI0D,EAAEH,IAAQnD,EAAI,aAAeS,GAAK,IAAMa,EAAE,GAAGoS,OAASlU,EAAI8B,EAAE,GAAGukC,QAAUvkC,EAAE,GAAGukC,QAAO7lC,GAAK2B,KAAKiwC,mCAAqCryC,EAAIoC,KAAKkwC,WAAYtyC,EAAEupC,aAAennC,KAAKyvC,oBAAsBzvC,KAAKmwC,8BAA+BnwC,KAAKmvC,aAAa3tC,EAAE,IAAK5D,EAAEod,cAAmB/c,IAAMuD,EAAIxB,KAAKowC,4BAA4BtxC,EAAG,CACza2C,OAAQ/C,IACN,aAAeI,IAAMO,EAAIW,KAAKqwC,qBAAqB7uC,KAAMnC,GAAKW,KAAKswC,eAAejxC,IAAI,IAAOW,KAAK86B,YAAY96B,KAAKyC,SAASuiC,kBAAkBxjC,IAAKxB,KAAKmvC,aAAa3tC,EAAE,KAAKnD,IAAKR,QAAS,KAC7LK,EAAEsB,UAAUgsB,kBAAoB,SAAU1sB,GAC3C,IAAI2B,EACJ,OAAOA,EAAIT,KAAKspB,mBAAmB,GAAItpB,KAAK86B,YAAY96B,KAAKyC,SAASyiC,4BAA4BpmC,EAAG2B,IAAKT,KAAKmvC,aAAa1uC,IAC3HvC,EAAEsB,UAAU+wC,iBAAmB,SAAUzxC,GAC1C,IAAI2B,EACJ,OAAQA,EAAIT,KAAKyC,SAASyjC,qBAAqBpnC,KAAOkB,KAAKwwC,wBAAyBxwC,KAAK86B,YAAY96B,KAAKyC,SAASuiC,kBAAkBvkC,IAAKT,KAAKmvC,aAAa1uC,EAAE,UAAO,GACpKvC,EAAEsB,UAAUkwC,yBAA2B,WACxC,IAAI5wC,EAAG2B,EAAGpB,EAAGzB,EACb,OAAoCA,GAA7ByB,EAAIW,KAAKspB,oBAA0B,GAAI7oB,EAAIpB,EAAE,GAAIP,EAAIkB,KAAKyC,SAASqpC,mBAAmBrrC,GAAIT,KAAK6yB,uBAAuB/zB,EAAE27B,oBAAqBz6B,KAAKmvC,aAAavxC,IACjK,IAAKM,EAAEsB,UAAU4vB,kBAAoB,WAC1C,OAAOpvB,KAAKywC,oBAAsBzwC,KAAK0wC,cAAe1wC,KAAKkqB,aADtD,MAEJhsB,EAAEsB,UAAU8vB,kBAAoB,WACjC,OAAO,MAAQtvB,KAAKywC,qBAAuBzwC,KAAKsqB,iBAAiB,CAACtqB,KAAKywC,oBAAqBzwC,KAAKywC,oBAH5F,IAGoHhvC,SAAUzB,KAAKspB,yBAAsB,GAC7JprB,EAAEsB,UAAU+vB,kBAAoB,WACjC,OAAOvvB,KAAKywC,oBAAsB,MACjCvyC,EAAEsB,UAAUmxC,oBAAsB,SAAU7xC,GAC7C,IAAI2B,EACJ,OAAsC,OAA/BA,EAAIT,KAAK4uC,kBAAkB9vC,MAAuB,IAAN2B,GAClDvC,EAAEsB,UAAU60B,uBAAyB,SAAUv1B,GAChD,IAAI2B,EACJ,OAAQA,GAAKT,KAAK4uC,kBAAkB9vC,IAAMkB,KAAKs0B,oBAAoBx1B,EAAG2B,GAAKT,KAAK6yB,uBAAuB/zB,IACtGZ,EAAEsB,UAAUoxC,uBAAyB,SAAU9xC,GAChD,OAAOT,EAAES,GAAKkB,KAAK6wC,4BAA4B/xC,GAAKkB,KAAK8wC,2BAA2BhyC,IACnFZ,EAAEsB,UAAUsxC,2BAA6B,WAC1C,IAAOrwC,EAAGpB,EAAGzB,EAAGS,EAEhB,GAAIoC,EAAIT,KAAKwuB,sBAAuB,CAClC,IAA6BnvB,EAAI,EAAGzB,GAA/BS,EAAIoC,EAAEulC,kBAA+BvkC,OAAQ7D,EAAIyB,EAAGA,IACvD,IAAQhB,EAAEgB,GAAOo4B,aAAc,OAAO,EAGxC,OAAO,IAERv5B,EAAEsB,UAAUqxC,4BAA8B,WAC3C,IAAI/xC,EACJ,GAAIA,EAAIkB,KAAKkwC,WAAY,OAAQpxC,EAAEsoC,mBAClClpC,EAAEsB,UAAU80B,oBAAsB,SAAUx1B,EAAG2B,GAChD,OAAOpC,EAAES,GAAKkB,KAAK+wC,kBAAkBjyC,EAAG2B,IAAMT,KAAKgxC,iBAAiBlyC,EAAG2B,GAAIT,KAAK4uC,kBAAkB9vC,GAAK2B,EAAGT,KAAKixC,4CAC9G/yC,EAAEsB,UAAUwxC,iBAAmB,SAAUlyC,EAAGO,GAC7C,IAAOhB,EAAMsB,EACb,GAAItB,EAAI2B,KAAKspB,mBAAoB,OAAWjrB,EAAE,KAAQA,EAAE,GAAc2B,KAAK86B,YAAY96B,KAAKyC,SAAS2iC,oBAAoBtmC,EAAGO,EAAGhB,IAAM,SAAWS,GAAKa,EAAIc,EAAEgkC,KAAKE,4BAA4BtlC,EAAG,CAC7LmiB,KAAMniB,IACJW,KAAKi0B,WAAWt0B,SAAM,GACzBzB,EAAEsB,UAAUuxC,kBAAoB,SAAUjyC,EAAG2B,GAC9C,IAAO7C,EACP,GAAIA,EAAIoC,KAAKspB,mBAAoB,OAAOtpB,KAAK4wC,uBAAuB9xC,IAAUkB,KAAKkwC,WAAYlwC,KAAK86B,YAAY96B,KAAKyC,SAASgqC,2BAA2B3tC,EAAG2B,EAAG7C,IAAKoC,KAAKmvC,aAAavxC,SAAM,GAC3LM,EAAEsB,UAAUqzB,uBAAyB,SAAU/zB,GAChD,OAAOT,EAAES,IAAMkB,KAAKkxC,qBAAqBpyC,GAAIkB,KAAKmxC,4BAA8BnxC,KAAKoxC,oBAAoBtyC,UAAWkB,KAAK4uC,kBAAkB9vC,GAAIkB,KAAKixC,4CACnJ/yC,EAAEsB,UAAU4xC,oBAAsB,SAAUtyC,GAC7C,IAAI2B,EACJ,GAAIA,EAAIT,KAAKspB,mBAAoB,OAAOtpB,KAAK86B,YAAY96B,KAAKyC,SAAS6iC,uBAAuBxmC,EAAG2B,KAChGvC,EAAEsB,UAAU0xC,qBAAuB,SAAUpyC,GAC9C,IAAI2B,EACJ,GAAIA,EAAIT,KAAKspB,mBAAoB,OAAOtpB,KAAK86B,YAAY96B,KAAKyC,SAAS6iC,uBAAuBxmC,EAAG2B,KAChGvC,EAAEsB,UAAU0uB,wBAA0B,WACvC,IAAIpvB,EACJ,OAAQ,OAASA,EAAIkB,KAAKkwC,YAAcpxC,EAAEkoC,uBAAoB,GAAU,GACvE9oC,EAAEsB,UAAUkuB,wBAA0B,WACvC,IAAIjtB,EAAGpB,EAAGzB,EACV,GAAI6C,EAAIT,KAAKkwC,WAAY,OAAQ,OAAStyC,EAAIS,EAAEoC,EAAEqmC,8BAA+BlpC,EAAEuV,eAAsB9T,EAAIW,KAAKqxC,oBAAsBvyC,EAAEO,EAAE6nC,wBAAyBzmC,EAAEymC,8BAA2B,EAASzmC,EAAEumC,kBAAoB,GAChO9oC,EAAEsB,UAAU2uB,qBAAuB,WACpC,IAAIrvB,EACJ,GAAIA,EAAIkB,KAAKkwC,WAAY,OAAOlwC,KAAK86B,YAAY96B,KAAKyC,SAASkpC,aAAa7sC,EAAGA,EAAEqvB,0BAChFjwB,EAAEsB,UAAUmuB,qBAAuB,WACpC,IAAI7uB,EACJ,GAAIA,EAAIkB,KAAKkwC,WAAY,OAAOlwC,KAAK86B,YAAY96B,KAAKyC,SAASkpC,aAAa7sC,EAAGA,EAAE6uB,0BAChFzvB,EAAEsB,UAAUywC,+BAAiC,WAC9C,IAAInxC,EACJ,OAAQ,OAASA,EAAIkB,KAAKkwC,YAAcpxC,EAAE6nC,yBAAsB,GAAU,GACzEzoC,EAAEsB,UAAU2wC,4BAA8B,WAC3C,IAAIrxC,EAAG2B,EACP,OAAQ3B,EAAI,OAAS2B,EAAIT,KAAKkwC,YAAczvC,EAAEg6B,wBAAqB,GAAUz6B,KAAK6yB,uBAAuB/zB,QAAK,GAC7GZ,EAAEsB,UAAUiwC,kBAAoB,WACjC,IAAI3wC,EAAG2B,EAAGpB,EAAGzB,EAAGS,EAAGK,EAEnB,IAAKA,EAAIsB,KAAKspB,mBAAmB,GAAqDjqB,EAAjDhB,EAAI2B,KAAKyC,SAASopC,qBAAqBntC,GAAGwlC,MAAcplC,EAAIkB,KAAKkwC,WAAWvJ,qBAAsBlmC,EAAIT,KAAKyC,SAAS8oC,gBAAgBlsC,EAAI,KAAOoB,EAAE0mC,cAAgB1mC,EAAEkmC,oBAAsB7nC,GAC5NO,IAGF,OAAOX,EAAIsB,KAAKyC,SAASwqC,qBAAqB,CAC5C/I,MAAO7lC,EACP0T,OAAQ,IACNnU,EAAIoC,KAAKyC,SAASwqC,qBAAqB,CACzC/I,MAAO7kC,EACP0S,OAAQ,IACN/R,KAAK86B,YAAY96B,KAAKyC,SAASkqC,+BAA+B,CAACjuC,EAAGd,MACrEM,EAAEsB,UAAU2xC,wBAA0B,WACvC,IAAIryC,EAAG2B,EAAGpB,EAAGhB,EAAGK,EAAGiB,EAEnB,GAAIA,EAAIK,KAAKspB,iBAAiB,CAC5BgoB,YAAY,IACV,CACF,IAAK7wC,EAAIT,KAAKyC,SAASgjC,2BAA2B9lC,GAAaN,EAAI,EAAGhB,GAAhBK,EAAId,KAAkB6D,OAAQpD,EAAIgB,EAAGA,IAC/EoB,EAAV3B,EAAIJ,EAAEW,KAAYW,KAAK4wC,uBAAuB9xC,KAAO2B,EAAE3B,IAAK,GAG9D,IAAK0C,EAAEf,EAAGT,KAAK4uC,mBAAoB,OAAO5uC,KAAK4uC,kBAAoBnuC,EAAGT,KAAKixC,4CAE5E/yC,EAAEsB,UAAUozB,qBAAuB,WACpC,OAAOvzB,EAAEtB,KAAK,GAAIiC,KAAK4uC,oBACtB1wC,EAAEsB,UAAU+vC,yBAA2B,WACxC,IAAIzwC,EAAG2B,EAAGpB,EAAGzB,EAGb,IAAK6C,KAFL3B,EAAI,GAAIO,EAAIW,KAAK4uC,mBAGC,KAAhBhxC,EAAIyB,EAAEoB,KAAgB/B,EAAE+B,KAAO3B,EAAE2B,GAAK7C,GAGxC,OAAOkB,GACNZ,EAAEsB,UAAU+xC,gBAAkB,WAC/B,OAAOvxC,KAAKs0B,oBAAoB,UAAU,IACzCp2B,EAAEsB,UAAUgyC,cAAgB,WAC7B,OAAOxxC,KAAK6yB,uBAAuB,WAClC30B,EAAEsB,UAAUiyC,mBAAqB,WAClC,OAAOzxC,KAAK2wC,oBAAoB,WAC/BzyC,EAAEsR,YAAY,uCAAwCtR,EAAEsR,YAAY,wDAAyDtR,EAAEsR,YAAY,yDAA0DtR,EAAEsR,YAAY,gDAAiDtR,EAAEsR,YAAY,6CAA8CtR,EAAEsR,YAAY,iCAAkCtR,EAAEsB,UAAU2vC,aAAe,SAAUrwC,GACtZ,IAAI2B,EAAGpB,EACP,OAAOoB,EAAIT,KAAKyC,SAAS0pC,uBAAuBrtC,GAAI,OAASO,EAAIW,KAAKomB,UAAY/mB,EAAEqyC,sDAAsDjxC,QAAK,GAC9IvC,EAAEsB,UAAU8pB,iBAAmB,WAChC,IAAIxqB,EACJ,OAAQA,EAAIkB,KAAK6vC,oBAAsB7vC,KAAKyC,SAASqrC,uBAAuBhvC,QAAK,GAChFZ,EAAEsB,UAAU8qB,iBAAmB,SAAUxrB,GAC1C,IAAI2B,EACJ,OAAOA,EAAIT,KAAKyC,SAAS0pC,uBAAuBrtC,GAAIkB,KAAK2xC,sBAAsBC,iBAAiBnxC,IAC/FvC,EAAEsB,UAAUkxC,YAAc,WAC3B,IAAI5xC,EACJ,OAAQA,EAAIkB,KAAK6vC,oBAAsB7vC,KAAKyC,SAASwqC,qBAAqBnuC,EAAE,SAAM,GACjFZ,EAAEsB,UAAUqwC,iBAAmB,SAAU/wC,GAC1C,IAAI2B,EAAGpB,EACP,OAAO,OAASoB,EAAI,OAASpB,EAAIW,KAAK6xC,qBAAuBxyC,EAAIW,KAAK2xC,sBAAsB9B,iBAAiB/wC,IAAM2B,EAAId,EAAE,CACvHukC,MAAO,EACPnyB,OAAQ,KAET7T,EAAEsB,UAAUsyC,wBAA0B,SAAUhzC,EAAG2B,GACpD,IAAIpB,EACJW,KAAK6xC,oBAAsB/yC,EAE3B,IACEO,EAAIoB,IACJ,QACAT,KAAK6xC,oBAAsB,KAG7B,OAAOxyC,GACNnB,EAAEsB,UAAUuyC,gBAAkB,SAAUjzC,EAAG2B,GAC5C,IAAIpB,EACJ,OAAOA,EAAIW,KAAKyC,SAAS0pC,uBAAuBrtC,GAAIkB,KAAK8xC,wBAAwBzyC,EAAGoB,IACnFvC,EAAEsB,UAAUyxB,mBAAqB,SAAUnyB,EAAG2B,GAC/C,IAAIpB,EACJ,OAAOA,EAAIW,KAAKgyC,gCAAgClzC,EAAG,CACjD8X,QAAQ,IACN5W,KAAK8xC,wBAAwBzyC,EAAGoB,IACnCvC,EAAEsB,UAAU4wC,4BAA8B,SAAUtxC,EAAG2B,GACxD,IAAIpB,EAAGzB,EAAGS,EAAGK,EACb,OAAOd,GAAK,MAAQ6C,EAAIA,EAAI,IAAIgB,OAAqC/C,GAA7BL,EAAI2B,KAAKspB,oBAA0B,GAAIjqB,EAAIhB,EAAE,GAAI,aAAeS,EAAIlB,EAAIc,GAAKd,EAAIc,EAAIsB,KAAKiyC,iCAAiCvzC,GAAI,GAAKd,EAAIyB,GAAKzB,EAAIyB,EAAIW,KAAKiyC,iCAAiC5yC,EAAG,GAAIM,EAAE,CAACjB,EAAGW,KAC/OnB,EAAEsB,UAAU+wB,oCAAsC,SAAUzxB,GAC7D,IAAI2B,EACJ,QAAOT,KAAKkyC,oBAA0BzxC,EAAIT,KAAKowC,4BAA4BtxC,GAAI,MAAQkB,KAAKqwC,qBAAqB5vC,KAChHvC,EAAEsB,UAAUsuB,sBAAwB,SAAUhvB,GAC/C,IAAI2B,EAAGpB,EAAGzB,EAAGS,EACb,OAAO2B,KAAKkyC,kBAAoBt0C,EAAIoC,KAAKyC,SAASyjC,qBAAqBlmC,KAAKkyC,oBAAsB7zC,EAAI2B,KAAKspB,mBAAoB1rB,EAAIoC,KAAKowC,4BAA4BtxC,GAAIO,GAAKpB,EAAEI,EAAGT,IAAKoC,KAAKsqB,iBAAiB,aAAexrB,EAAIlB,EAAE,GAAKA,EAAE,IAAKyB,IAAMoB,EAAIT,KAAKqwC,qBAAqBzyC,IAAMoC,KAAKswC,eAAe7vC,QAAK,GAChTvC,EAAEsB,UAAU4uB,2BAA6B,SAAUtvB,EAAG2B,GACvD,IAAIpB,EAAGzB,EACP,OAAOyB,GAAK,MAAQoB,EAAIA,EAAI,IAAIgB,OAAQ7D,EAAIoC,KAAKowC,4BAA4BtxC,EAAG,CAC9E2C,OAAQpC,IACNW,KAAKsqB,iBAAiB1sB,IACzBM,EAAEsB,UAAU2yC,0BAA4B,WACzC,OAAOnyC,KAAK2wC,oBAAoB,QAAU3wC,KAAKoyC,qCAAqC,aAAU,GAC7Fl0C,EAAEsB,UAAU4yC,qCAAuC,SAAUtzC,GAC9D,IAAI2B,EAAGpB,EACP,OAAOoB,EAAIT,KAAK0wC,cAAerxC,EAAIW,KAAKyC,SAAS8qC,oCAAoCzuC,EAAG2B,GAAIT,KAAKsqB,iBAAiBjrB,IACjHnB,EAAEsB,UAAU2wB,6BAA+B,WAC5C,IAAIrxB,EACJ,OAAQ,OAASA,EAAIkB,KAAKqyC,0BAA4BvzC,EAAE2C,YAAS,GAAU,GAC1EvD,EAAEsB,UAAUquB,0BAA4B,WACzC,OAAO7tB,KAAKkyC,mBAAqBlyC,KAAKsyC,uBAAuBtyC,KAAK0wC,gBACjExyC,EAAEsB,UAAU8yC,uBAAyB,SAAUxzC,GAChD,IAAI2B,EACJ,OAAQA,EAAIT,KAAKyC,SAASopC,qBAAqB/sC,IAAMkB,KAAKuyC,uBAAuB9xC,QAAK,GACrFvC,EAAEsB,UAAU+pB,qBAAuB,SAAUzqB,GAC9C,IAAI2B,EACJ,OAAO,OAASA,EAAIT,KAAKyC,SAAS0jC,mBAAmBrnC,IAAM2B,EAAE2hC,oBAAiB,GAC7ElkC,EAAEsB,UAAUgvB,oBAAsB,WACnC,IAAI1vB,EACJ,OAAQA,EAAIkB,KAAKspB,oBAAsBtpB,KAAKyC,SAAS2pC,mBAAmBttC,QAAK,GAC5EZ,EAAEsB,UAAU6yC,uBAAyB,WACtC,IAAIvzC,EACJ,OAAO,OAASA,EAAIkB,KAAKwuB,uBAAyB1vB,EAAEknC,sBAAmB,GACtE9nC,EAAEsB,UAAUwmC,eAAiB,WAC9B,OAAOhmC,KAAK0iB,YAAYzgB,MAAM,IAC7B/D,EAAEsB,UAAUqvC,mBAAqB,WAClC,IAAI/vC,EAAG2B,EAAGpB,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAG6B,EAAGG,EAAG1D,EAAGkD,EAAGzB,EAErC,IAAKL,EAAIW,KAAKyC,SAASujC,iBAA8ClnC,GAA5B0C,EAAI3D,EAAEmC,KAAK0iB,YAAarjB,IAAUsS,MAAOxQ,EAAIK,EAAEoQ,QAAS5R,KAAK0iB,YAAcrjB,EAAGzB,EAAI,EAAGc,EAAIyC,EAAEM,OAAQ/C,EAAId,EAAGA,KACjJ6C,EAAIU,EAAEvD,IAAMwoB,SAAW,KAAM,OAASzkB,EAAI3B,KAAKomB,WAAa,mBAAqBzkB,EAAE6wC,gCAAkC7wC,EAAE6wC,+BAA+B/xC,GAGxJ,IAAKf,EAAI,GAAIrB,EAAI,EAAGsB,EAAIb,EAAE2C,OAAQ9B,EAAItB,EAAGA,KACvCoC,EAAI3B,EAAET,IAAM+nB,SAAWpmB,KAAMN,EAAEc,KAAK,OAASvC,EAAI+B,KAAKomB,WAAa,mBAAqBnoB,EAAEw0C,4BAA8Bx0C,EAAEw0C,4BAA4BhyC,QAAK,GAG7J,OAAOf,GACNxB,EAAEsB,UAAU85B,8BAAgC,SAAUx6B,GACvD,IAAI2B,EACJ,OAAOT,KAAKs8B,WAAY,OAAS77B,EAAIT,KAAKomB,WAAa,mBAAqB3lB,EAAEiyC,6BAA+BjyC,EAAEiyC,6BAA6B5zC,QAAK,GAChJZ,EAAEsB,UAAUyhC,8BAAgC,SAAUniC,GACvD,IAAI2B,EACJ,OAAOT,KAAKs8B,WAAY,OAAS77B,EAAIT,KAAKomB,WAAa,mBAAqB3lB,EAAEkyC,yCAA2ClyC,EAAEkyC,yCAAyC7zC,QAAK,GACxKZ,EAAEsB,UAAU8wC,eAAiB,SAAUxxC,EAAG2B,GAC3C,IAAIpB,EACJ,GAAIP,IAAMkB,KAAKkyC,kBAAmB,OAAOlyC,KAAKwwC,wBAAyBxwC,KAAKkyC,kBAAoBpzC,EAAG,OAASO,EAAIW,KAAKomB,WAAa,mBAAqB/mB,EAAEuzC,qCAAuCvzC,EAAEuzC,qCAAqC5yC,KAAKkyC,kBAAmBzxC,QAAK,GACnQvC,EAAEsB,UAAUgxC,sBAAwB,WACrC,IAAI1xC,EACJ,GAAIkB,KAAKkyC,kBAAmB,OAAO,OAASpzC,EAAIkB,KAAKomB,WAAa,mBAAqBtnB,EAAE+zC,qCAAuC/zC,EAAE+zC,oCAAoC7yC,KAAKkyC,mBAAoBlyC,KAAKkyC,kBAAoB,MACvNh0C,EAAEsB,UAAU09B,8BAAgC,SAAUp+B,EAAG2B,GAC1D,OAAOT,KAAK86B,YAAY96B,KAAKyC,SAASy6B,8BAA8Bp+B,EAAG2B,KACtEvC,EAAEsB,UAAU29B,6BAA+B,SAAUr+B,EAAG2B,GACzD,OAAOT,KAAK86B,YAAY96B,KAAKyC,SAAS06B,6BAA6Br+B,EAAG2B,KACrEvC,EAAEsB,UAAUmwC,oBAAsB,SAAU7wC,GAC7C,IAAIO,EAAGzB,EAAGS,EAAGK,EAAGiB,EAChB,OAAO/B,EAAIkB,EAAE2D,SAAUpD,EAAIP,EAAEy7B,MAA4B56B,EAAI,EAAzBjB,EAAII,EAAEmvC,eAAwB,EAAGvvC,GAAIW,EAAEu7B,0BAA4B97B,EAAEovC,cAAcn8B,QAAU1S,EAAEgoC,kBAAoB,OAASvoC,EAAEuvC,cAAgB3vC,GAAK,EAAId,EAAIA,EAAEonC,kBAAkBrlC,GAAIA,EAAI,CAACjB,EAAGA,IAAM,OAASI,EAAEuvC,cAAgB,OAASvvC,EAAEsvC,kBAAoBzuC,EAAI,CAACjB,EAAI,EAAGA,EAAI,IAAMiB,EAAI,CAACjB,EAAGA,EAAI,GAAIA,GAAK,GAAKI,EAAEovC,cAAcn8B,OAAS,IAAM,IAAMrT,GAAK,GAAIL,EAAI,IAAIoC,EAAEohB,SAAS,CAACxiB,EAAEqnC,sBAAsBH,oBAAqBvmC,KAAK86B,YAAYl9B,EAAEguC,sBAAsBvtC,EAAGsB,IAAKK,KAAKmvC,aAAazwC,IAChgBR,EAAEsB,UAAU6xC,iBAAmB,WAChC,IAAIvyC,EAAG2B,EACP,OAAQA,EAAIT,KAAK6vC,sBAAwB/wC,EAAI2B,EAAE,GAAGyjC,OAAW,EAAKlkC,KAAKyC,SAAS8oC,gBAAgBzsC,EAAI,QAAK,GACxGZ,EAAEsB,UAAU0wC,SAAW,WACxB,IAAIpxC,EACJ,OAAQA,EAAIkB,KAAK6vC,oBAAsB7vC,KAAKyC,SAAS8oC,gBAAgBzsC,EAAE,GAAGolC,YAAS,GAClFhmC,EAAEsB,UAAU6wC,qBAAuB,SAAUvxC,GAC9C,IAAIO,EACJ,OAAOA,EAAIW,KAAKyC,SAAS2pC,mBAAmBttC,IAAMkS,aAAevQ,EAAEuO,6BAA+B,KAAO3P,EAAE2mC,iBAAiB,QAAK,GAChI9nC,EAAEsB,UAAUyxC,wCAA0C,WACvD,IAAInyC,EACJ,OAAO,OAASA,EAAIkB,KAAKomB,WAAa,mBAAqBtnB,EAAEg0C,sCAAwCh0C,EAAEg0C,sCAAsC9yC,KAAK4uC,wBAAqB,GACtK1wC,EAAEsB,UAAU6vC,iCAAmC,SAAUvwC,GAC1D,IAAI2B,EACJ,OAAO,OAASA,EAAIT,KAAKomB,WAAa,mBAAqB3lB,EAAEsyC,sCAAwCtyC,EAAEsyC,sCAAsCj0C,QAAK,GACjJZ,EAAEsB,UAAUyyC,iCAAmC,SAAUnzC,EAAG2B,GAC7D,IAAIpB,EAAGzB,EACP,OAA0CyB,GAAnCzB,EAAIoC,KAAKyC,SAASmO,iBAAuB0M,qBAAqBxe,GAAIlB,EAAEwf,mBAAmB/d,EAAIoB,IACjGvC,EA9T8O,CA+TjPuC,EAAE8O,cACJxR,KAAKiC,MAAO,WACZ,IAAIlB,EAAI,SAAWk0C,EAAMvyC,GACvB,SAAS7C,IACPoC,KAAKD,YAAcizC,EAGrB,IAAK,IAAI30C,KAAKoC,EACZpB,EAAEtB,KAAK0C,EAAGpC,KAAO20C,EAAK30C,GAAKoC,EAAEpC,IAG/B,OAAOT,EAAE4B,UAAYiB,EAAEjB,UAAWwzC,EAAKxzC,UAAY,IAAI5B,EAAKo1C,EAAKjjC,UAAYtP,EAAEjB,UAAWwzC,GAExF3zC,EAAI,GAAGI,eAEXgB,EAAEwyC,YAAc,SAAUxyC,GACxB,SAASpB,EAAEP,GACTkB,KAAKy7B,YAAc38B,EAAGkB,KAAKkzC,YAAc,GAAIlzC,KAAKmzC,YAAc,GAGlE,IAAIv1C,EACJ,OAAOkB,EAAEO,EAAGoB,GAAIpB,EAAEG,UAAUsxB,gBAAkB,SAAUhyB,EAAG2B,GACzD,IAAIpB,EAAGhB,EAAGK,EAAGiB,EAAG6B,EAChB,OAA+BnD,GAAxBsB,EAAI,MAAQc,EAAIA,EAAI,IAAUi5B,QAASr6B,EAAIM,EAAEyzC,eAAgB10C,EAAIsB,KAAKkzC,YAAYjxC,OAAO,GAAG,GAAI5C,GAAKzB,EAAEc,EAAGI,EAAGT,QAAK,GAAUmD,EAAIxB,KAAKqzC,YAAY,CACtJC,YAAax0C,EACb46B,QAASr7B,IACP2B,KAAKkzC,YAAY1yC,KAAKgB,GAAIxB,KAAKmzC,YAAc,KAChD9zC,EAAEG,UAAUqf,KAAO,WACpB,IAAI/f,EAAG2B,EACP,OAAQA,EAAIT,KAAKkzC,YAAYpoC,QAAUhM,EAAIkB,KAAKqzC,YAAY5yC,GAAIT,KAAKmzC,YAAY3yC,KAAK1B,GAAIkB,KAAKy7B,YAAYwT,aAAaxuC,EAAE8yC,gBAAa,GACtIl0C,EAAEG,UAAUmf,KAAO,WACpB,IAAI7f,EAAG2B,EACP,OAAQ3B,EAAIkB,KAAKmzC,YAAYroC,QAAUrK,EAAIT,KAAKqzC,YAAYv0C,GAAIkB,KAAKkzC,YAAY1yC,KAAKC,GAAIT,KAAKy7B,YAAYwT,aAAanwC,EAAEy0C,gBAAa,GACtIl0C,EAAEG,UAAUg0C,QAAU,WACvB,OAAOxzC,KAAKkzC,YAAYzxC,OAAS,GAChCpC,EAAEG,UAAUi0C,QAAU,WACvB,OAAOzzC,KAAKmzC,YAAY1xC,OAAS,GAChCpC,EAAEG,UAAU6zC,YAAc,SAAUv0C,GACrC,IAAI2B,EAAGpB,EAAGzB,EACV,OAA+ByB,GAAxBzB,EAAI,MAAQkB,EAAIA,EAAI,IAAUw0C,YAAa7yC,EAAI7C,EAAE87B,QAAS,CAC/D4Z,YAAa,MAAQj0C,EAAIA,EAAE2R,gBAAa,EACxC0oB,QAASvpB,KAAKQ,UAAUlQ,GACxB8yC,SAAUvzC,KAAKy7B,YAAYsT,gBAE5BnxC,EAAI,SAAWkB,EAAG2B,EAAGpB,GACtB,OAAQ,MAAQP,EAAIA,EAAEw0C,iBAAc,MAAa,MAAQ7yC,EAAIA,EAAEuQ,gBAAa,KAAY,MAAQlS,EAAIA,EAAE46B,aAAU,KAAYvpB,KAAKQ,UAAUtR,IAC1IA,EA/BW,CAgCdoB,EAAE8O,cACJxR,KAAKiC,MAAO,WACZ,IAAIlB,EACJ2B,EAAEizC,wBAA0B,SAAUjzC,GACpC,IAAIpB,EACJ,OAAOA,EAAI,IAAIP,EAAE2B,IAAMqc,UAAWzd,EAAE0vC,eACnCjwC,EAAI,WACL,SAASA,EAAEA,GACTkB,KAAKyC,SAAW3D,EAAE2D,SAAUzC,KAAKgvC,cAAgBlwC,EAAEkwC,cAGrD,IAAIvuC,EACJ,OAAOA,EAAI,oBAAyB,eAAoB,UAAW3B,EAAEU,UAAUsd,QAAU,WACvF,OAAO9c,KAAKkxC,uBAAwBlxC,KAAK2zC,uBACxC70C,EAAEU,UAAUuvC,YAAc,WAC3B,MAAO,CACLtsC,SAAUzC,KAAKyC,SACfusC,cAAehvC,KAAKgvC,gBAErBlwC,EAAEU,UAAU0xC,qBAAuB,WACpC,IAAIpyC,EAAGO,EAAGzB,EAAGS,EAAGK,EAEhB,IAAoCA,EAAI,GAAII,EAAI,EAAGO,GAA9ChB,EAAI2B,KAAK4zC,sBAA2CnyC,OAAQpC,EAAIP,EAAGA,IACtElB,EAAIS,EAAES,GAAIJ,EAAE8B,KAAKR,KAAKyC,SAAWzC,KAAKyC,SAAS6iC,uBAAuB7kC,EAAG7C,IAG3E,OAAOc,GACNI,EAAEU,UAAUm0C,oBAAsB,WACnC,IAAI70C,EAAGO,EAAGzB,EAAGS,EAAGK,EAAGiB,EAEnB,IAAK/B,EAAI,EAAkC+B,EAAI,GAAIb,EAAI,EAAGO,GAA9CX,EAAIsB,KAAK6zC,sBAA2CpyC,OAAQpC,EAAIP,EAAGA,KAC7ET,EAAIK,EAAEI,IAAM,GAAKT,EAAE,GAAK,IAAMA,EAAE,IAAMT,EAAGS,EAAE,IAAMT,EAAG,OAASoC,KAAKyC,SAAS0qC,uBAAuB9uC,EAAE,MAAQ2B,KAAKyC,SAAWzC,KAAKyC,SAAS+pC,wBAAwBnuC,EAAE,IAAKA,EAAE,GAAK2B,KAAKgvC,cAAc,IAAMhvC,KAAK8zC,2BAA4Bz1C,EAAE,KAAMT,KAAM,IAAMS,EAAE,IAAM,OAAS2B,KAAKyC,SAAS0qC,uBAAuB9uC,EAAE,GAAK,KAAO2B,KAAKyC,SAAWzC,KAAKyC,SAAS+pC,wBAAwBnuC,EAAE,IAAKA,EAAE,GAAK2B,KAAKgvC,cAAc,IAAMhvC,KAAK8zC,2BAA4Bz1C,EAAE,KAAMT,KAAM+B,EAAEa,KAAKR,KAAKyC,SAAWzC,KAAKyC,SAASgqC,2BAA2BhsC,GAAG,EAAIpC,KAGvhB,OAAOsB,GACNb,EAAEU,UAAUo0C,mBAAqB,WAClC,OAAO5zC,KAAKyC,SAASirC,4BAA4BjtC,IAChD3B,EAAEU,UAAUq0C,mBAAqB,WAClC,OAAO7zC,KAAKyC,SAASkrC,2BA1Ba,eA0BiB,CACjDC,UA3BoD,aA6BrD9uC,EAAEU,UAAUs0C,yBAA2B,WACxC,OAAO9zC,KAAKgvC,cAAc,IAAM,EAAGhvC,KAAKgvC,cAAc,IAAM,GAC3DlwC,EArCE,IAuCPf,KAAKiC,MAAO,WAOZS,EAAEszC,OAAS,WACT,SAAS10C,EAAEA,EAAGhB,EAAGK,GACfsB,KAAKy7B,YAAcp8B,EAAGW,KAAKg0C,iBAAmB31C,EAAG2B,KAAKglB,QAAUtmB,EAAGsB,KAAKuoB,YARpE,SAAW0rB,EAAMxzC,GACvB,OAAO,WACL,OAAOwzC,EAAKrzC,MAAMH,EAAGI,YAMiE/B,CAAEkB,KAAKuoB,YAAavoB,MAAOA,KAAKk0C,YAAc,IAAIzzC,EAAEwyC,YAAYjzC,KAAKy7B,aAAcz7B,KAAKm0C,QAAUv2C,EAAEqE,MAAM,GAGlM,IAAIrE,EACJ,OAAOA,EAAI,CAAC6C,EAAEizC,yBAA0Br0C,EAAEG,UAAU40C,aAAe,SAAUt1C,GAC3E,OAAOkB,KAAKivC,aAAa,CACvBxsC,SAAU3D,EACVkwC,cAAe,CAAC,EAAG,MAEpB3vC,EAAEG,UAAU60C,SAAW,SAAUv1C,GAClC,OAAO,MAAQA,IAAMA,EAAI,IAAKkB,KAAKo0C,aAAa3zC,EAAEohB,SAASC,SAAShjB,EAAG,CACrE+pC,iBAAkB7oC,KAAKglB,YAExB3lB,EAAEG,UAAU80C,SAAW,SAAUx1C,GAClC,IAAIO,EAAGzB,EACP,OAAOyB,EAAIP,EAAE2D,SAAU7E,EAAIkB,EAAEkwC,cAAe3vC,EAAIoB,EAAEohB,SAAS3R,SAAS7Q,GAAIW,KAAKivC,aAAa,CACxFxsC,SAAUpD,EACV2vC,cAAepxC,KAEhByB,EAAEG,UAAUyvC,aAAe,SAAUnwC,GACtC,OAAOkB,KAAKk0C,YAAc,IAAIzzC,EAAEwyC,YAAYjzC,KAAKy7B,aAAcz7B,KAAKy7B,YAAYwT,aAAanwC,IAC5FO,EAAEG,UAAUypC,YAAc,WAC3B,OAAOjpC,KAAKy7B,YAAYh5B,UACvBpD,EAAEG,UAAUgvB,oBAAsB,WACnC,OAAOxuB,KAAKy7B,YAAYjN,uBACvBnvB,EAAEG,UAAUuvC,YAAc,WAC3B,OAAO/uC,KAAKy7B,YAAYsT,eACvB1vC,EAAEG,UAAU2b,OAAS,WACtB,OAAOnb,KAAK+uC,eACX1vC,EAAEG,UAAUqsB,kBAAoB,SAAU/sB,GAC3C,OAAOkB,KAAKy7B,YAAY5P,kBAAkB/sB,IACzCO,EAAEG,UAAUwwC,iBAAmB,SAAUlxC,GAC1C,OAAOkB,KAAKy7B,YAAYuU,iBAAiBlxC,IACxCO,EAAEG,UAAUuwC,kBAAoB,SAAUjxC,GAC3C,OAAOkB,KAAKy7B,YAAYsU,kBAAkBjxC,IACzCO,EAAEG,UAAUisB,eAAiB,SAAU3sB,GACxC,OAAOkB,KAAKy7B,YAAYhQ,eAAe3sB,IACtCO,EAAEG,UAAUutB,WAAa,SAAUjuB,GACpC,OAAOkB,KAAKy7B,YAAY1O,WAAWjuB,IAClCO,EAAEG,UAAU+oB,YAAc,SAAUzpB,GACrC,OAAOkB,KAAKy7B,YAAYlT,YAAYzpB,IACnCO,EAAEG,UAAUitB,WAAa,SAAU3tB,GACpC,OAAOkB,KAAKy7B,YAAYhP,WAAW3tB,IAClCO,EAAEG,UAAU0qB,aAAe,SAAUprB,GACtC,OAAOkB,KAAKy7B,YAAYvR,aAAaprB,IACpCO,EAAEG,UAAUy0B,WAAa,SAAUn1B,GACpC,OAAOkB,KAAKy7B,YAAYxH,WAAWn1B,IAClCO,EAAEG,UAAUguB,gBAAkB,WAC/B,OAAOxtB,KAAKy7B,YAAYjO,mBACvBnuB,EAAEG,UAAU8pB,iBAAmB,WAChC,OAAOtpB,KAAKy7B,YAAYnS,oBACvBjqB,EAAEG,UAAUkxC,YAAc,WAC3B,OAAO1wC,KAAKy7B,YAAYiV,eACvBrxC,EAAEG,UAAU+0C,wBAA0B,SAAUz1C,GACjD,IAAI2B,EACJ,OAAOA,EAAIT,KAAKipC,cAAckD,uBAAuB,CAACrtC,EAAGA,EAAI,IAAKkB,KAAKg0C,iBAAiBQ,6BAA6B/zC,IACpHpB,EAAEG,UAAU4uB,2BAA6B,SAAUtvB,GACpD,OAAOkB,KAAKy7B,YAAYrN,2BAA2BtvB,IAClDO,EAAEG,UAAUsuB,sBAAwB,SAAUhvB,GAC/C,OAAOkB,KAAKy7B,YAAY3N,sBAAsBhvB,IAC7CO,EAAEG,UAAU8qB,iBAAmB,SAAUxrB,GAC1C,OAAOkB,KAAKy7B,YAAYnR,iBAAiBxrB,IACxCO,EAAEG,UAAUi1C,kBAAoB,SAAU31C,EAAG2B,GAC9C,OAAO,MAAQA,IAAMA,GAAI,GAAKT,KAAKy7B,YAAYnH,oBAAoBx1B,EAAG2B,IACrEpB,EAAEG,UAAUk1C,kBAAoB,SAAU51C,GAC3C,OAAOkB,KAAKy7B,YAAYkV,oBAAoB7xC,IAC3CO,EAAEG,UAAUm1C,qBAAuB,SAAU71C,GAC9C,OAAOkB,KAAKy7B,YAAYmV,uBAAuB9xC,IAC9CO,EAAEG,UAAUo1C,oBAAsB,SAAU91C,GAC7C,OAAOkB,KAAKy7B,YAAY5I,uBAAuB/zB,IAC9CO,EAAEG,UAAU0uB,wBAA0B,WACvC,OAAOluB,KAAKy7B,YAAYvN,2BACvB7uB,EAAEG,UAAUkuB,wBAA0B,WACvC,OAAO1tB,KAAKy7B,YAAY/N,2BACvBruB,EAAEG,UAAU2uB,qBAAuB,WACpC,OAAOnuB,KAAKkuB,0BAA4BluB,KAAKy7B,YAAYtN,4BAAyB,GACjF9uB,EAAEG,UAAUmuB,qBAAuB,WACpC,OAAO3tB,KAAK0tB,0BAA4B1tB,KAAKy7B,YAAY9N,4BAAyB,GACjFtuB,EAAEG,UAAUi0C,QAAU,WACvB,OAAOzzC,KAAKk0C,YAAYT,WACvBp0C,EAAEG,UAAUg0C,QAAU,WACvB,OAAOxzC,KAAKk0C,YAAYV,WACvBn0C,EAAEG,UAAUsxB,gBAAkB,SAAUhyB,EAAG2B,GAC5C,IAAIpB,EAAGzB,EAAGS,EACV,OAA+BT,GAAxBS,EAAI,MAAQoC,EAAIA,EAAI,IAAUi5B,QAASr6B,EAAIhB,EAAE+0C,eAAgBpzC,KAAKk0C,YAAYpjB,gBAAgBhyB,EAAG,CACtG46B,QAAS97B,EACTw1C,eAAgB/zC,KAEjBA,EAAEG,UAAUmf,KAAO,WACpB,OAAO3e,KAAKyzC,UAAYzzC,KAAKk0C,YAAYv1B,YAAS,GACjDtf,EAAEG,UAAUqf,KAAO,WACpB,OAAO7e,KAAKwzC,UAAYxzC,KAAKk0C,YAAYr1B,YAAS,GACjDxf,EA9FM,IAgGXtB,KAAKiC,MAAO,WACZ,IAAIlB,EAAI,SAAW+1C,EAAMp0C,GACvB,SAAS7C,IACPoC,KAAKD,YAAc80C,EAGrB,IAAK,IAAIx2C,KAAKoC,EACZpB,EAAEtB,KAAK0C,EAAGpC,KAAOw2C,EAAKx2C,GAAKoC,EAAEpC,IAG/B,OAAOT,EAAE4B,UAAYiB,EAAEjB,UAAWq1C,EAAKr1C,UAAY,IAAI5B,EAAKi3C,EAAK9kC,UAAYtP,EAAEjB,UAAWq1C,GAExFx1C,EAAI,GAAGI,eAEXgB,EAAEq0C,kBAAoB,SAAUr0C,GAC9B,SAASpB,EAAEP,EAAG2B,GACZ,IAAIpB,EACJW,KAAK+0C,kBAAoBj2C,EAAGkB,KAAKuf,WAAa9e,EAAGpB,EAAIW,KAAKuf,WAAYvf,KAAKgQ,GAAK3Q,EAAE2Q,GAAIhQ,KAAK+iB,KAAO1jB,EAAE0jB,KAGtG,OAAOjkB,EAAEO,EAAGoB,GAAIpB,EAAEG,UAAUsb,OAAS,WACnC,OAAO9a,KAAK+0C,kBAAkBC,2BAA2Bh1C,KAAKuf,aAC7DlgB,EAAEmQ,YAAY,2BAA4BnQ,EAAEmQ,YAAY,2BAA4BnQ,EAAEmQ,YAAY,2BAA4BnQ,EAAEmQ,YAAY,4BAA6BnQ,EAAEmQ,YAAY,4BAA6BnQ,EAAEmQ,YAAY,wBAAyBnQ,EAAEmQ,YAAY,4BAA6BnQ,EAAEmQ,YAAY,qBAAsBnQ,EAAEmQ,YAAY,sBAAuBnQ,EAAEmQ,YAAY,0BAA2BnQ,EAAEmQ,YAAY,0BAA2BnQ,EAAEmQ,YAAY,mCAAoCnQ,EAAEmQ,YAAY,2BAA4BnQ,EAAEmQ,YAAY,6BAA8BnQ,EAAEmQ,YAAY,sBAAuBnQ,EAAEmQ,YAAY,sBAAuBnQ,EAAEmQ,YAAY,0BAA2BnQ,EAAEmQ,YAAY,gCAAiCnQ,EAAEmQ,YAAY,gCAAiCnQ,EARzwB,CASpBoB,EAAE8O,cACJxR,KAAKiC,MAAO,WACZ,IAAIlB,EAAI,SAAWm2C,EAAMx0C,GACvB,SAAS7C,IACPoC,KAAKD,YAAck1C,EAGrB,IAAK,IAAI52C,KAAKoC,EACZpB,EAAEtB,KAAK0C,EAAGpC,KAAO42C,EAAK52C,GAAKoC,EAAEpC,IAG/B,OAAOT,EAAE4B,UAAYiB,EAAEjB,UAAWy1C,EAAKz1C,UAAY,IAAI5B,EAAKq3C,EAAKllC,UAAYtP,EAAEjB,UAAWy1C,GAExF51C,EAAI,GAAGI,eAEXgB,EAAEy0C,kBAAoB,SAAU71C,GAC9B,SAASzB,EAAEkB,GACT,IAAI2B,EAAGpB,EAAGzB,EAEV,IAAK,MAAQkB,IAAMA,EAAI,IAAKkB,KAAKm1C,mBAAqB,GAAI91C,EAAI,EAAGzB,EAAIkB,EAAE2C,OAAQ7D,EAAIyB,EAAGA,IACpFoB,EAAI3B,EAAEO,GAAIW,KAAKo1C,iBAAiB30C,GAIpC,OAAO3B,EAAElB,EAAGyB,GAAIzB,EAAE4B,UAAUwmC,eAAiB,WAC3C,IAAIlnC,EAAG2B,EAAGpB,EAAGzB,EAGb,IAAK6C,KAFwB7C,EAAI,GAAjCyB,EAAIW,KAAKm1C,mBAGPr2C,EAAIO,EAAEoB,GAAI7C,EAAE4C,KAAK1B,GAGnB,OAAOlB,GACNA,EAAE4B,UAAU41C,iBAAmB,SAAUt2C,GAC1C,IAAIO,EAAGzB,EACP,OAAO,OAASyB,EAAIW,KAAKm1C,oBAAoBv3C,EAAIkB,EAAEkR,IAAM3Q,EAAEzB,GAAKyB,EAAEzB,GAAK,IAAI6C,EAAEq0C,kBAAkB90C,KAAMlB,IACpGlB,EAAE4B,UAAU61C,oBAAsB,SAAUv2C,GAC7C,OAAOA,EAAEkR,MAAMhQ,KAAKm1C,oBACnBv3C,EAAE4B,UAAUw1C,2BAA6B,SAAUl2C,GACpD,IAAI2B,EACJ,OAAOT,KAAKq1C,oBAAoBv2C,IAAM,OAAS2B,EAAIT,KAAKomB,WAAa,mBAAqB3lB,EAAE60C,+CAAiD70C,EAAE60C,+CAA+Cx2C,QAAK,GAClMlB,EAAE4B,UAAU+1C,mBAAqB,SAAUz2C,GAC5C,IAAI2B,EACJ,OAAOA,EAAIT,KAAKm1C,mBAAmBr2C,EAAEkR,WAAYhQ,KAAKm1C,mBAAmBr2C,EAAEkR,IAAKvP,GAC/E7C,EA7BiB,CA8BpB6C,EAAE8O,cACJxR,KAAKiC,MAAO,WACZ,IAAIlB,EAAGO,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAG6B,EAAGG,EAAG1D,EAAGJ,EAAGsD,EAClCrC,EAAI2B,EAAEgU,oBAAqBpV,EAAIoB,EAAEsU,qBAAsBrW,EAAI+B,EAAEkW,iBAAkBhX,EAAIc,EAAEgW,wBAAyBpY,EAAIoC,EAAE+V,qBAAsBhV,EAAIf,EAAEsW,mBAAoBpV,EAAIlB,EAAE4W,oBAAqBpZ,EAAIwC,EAAEuW,eAAgBpZ,EAAI6C,EAAEyW,wBAAyBrZ,EAAI4C,EAAEmV,QAASzU,EAAIV,EAAEyU,SAAUzU,EAAE+0C,eAAiB,WACpS,SAAS/0C,EAAE3B,GACTkB,KAAKglB,QAAUlmB,EAGjB,IAAIY,EAAGxB,EAAG2G,EAAGzB,EACb,OAAO3C,EAAEjB,UAAUi2C,mCAAqC,SAAUh1C,EAAG7C,EAAGS,GACtE,IAAIsB,EAAGgC,EAAG9D,EAAG6B,EAAG0D,EAAGpF,EAAGmH,EAEtB,IAAKnH,GAAK,MAAQK,EAAIA,EAAI,CACxBuY,QAAQ,IACPA,OAAQjV,EAAI,EAAG9D,GAAI,EAAI6B,EAAI,CAC5BwkC,MAAO,EACPnyB,OAAQ,IACNpS,EAAIK,KAAK01C,mCAAmCj1C,MAAQA,EAAId,EAAEiE,WAAYhG,EAAIyB,EAAEM,IAAKwF,EAAIhE,EAAEnB,KAAKglB,QAAS,CACvG5P,YAAavQ,IACXM,EAAE+iC,YAAa,CACjB,IAAI9kC,EAAI+B,EAAEgjC,eAAmB1nC,GAAKxC,EAAEwC,GAAI,CACtCe,EAAE4B,KAAO1D,EAAEqS,QAAUnU,GACrB,MAGF,GAAIwF,EAAEQ,aAAenD,GACnB,GAAIkB,MAAQ/D,EAAG,WACV,IAAKkB,EAAE2B,EAAG2C,IAAMzB,EAAI,EAAG,MAE9BjD,EAAE0E,EAAG,CACHwT,OAAQ5Y,KACJH,GAAK6B,EAAEwkC,QAASxkC,EAAEqS,OAAS,EAAGlU,GAAI,GAAM6B,EAAEqS,QAAU7T,EAAEkF,GAG9D,OAAO1D,GACNe,EAAEjB,UAAUm2C,mCAAqC,SAAU72C,GAC5D,IAAI2B,EAAG7C,EAAG+B,EAAGgC,EAAG9D,EAEhB,GAAI,IAAMiB,EAAEolC,OAAS,IAAMplC,EAAEiT,OAAQ,CACnC,IAAKtR,EAAIT,KAAKglB,QAASrjB,EAAI,EAAGlB,EAAE4I,YAC9B,GAAI5I,EAAIA,EAAE4I,WAAYhL,EAAEoC,GAAI,CAC1BkB,EAAI,EACJ,MAIJ,MAAO,CAAClB,EAAGkB,GAGb,GAA+C/D,GAA3CC,EAAImC,KAAK41C,8BAA8B92C,IAAU,GAAIa,EAAI9B,EAAE,GAAID,EAAG,CACpE,GAAIK,EAAEL,GAAI,IAAMM,EAAEN,IAAM6C,EAAI7C,EAAEgG,WAAWA,WAAYjC,EAAItC,EAAEzB,EAAEgG,YAAapC,EAAE5D,EAAG,CAC7EO,KAAM,WACFwD,MAAQlB,EAAI7C,EAAG+D,EAAI7C,EAAEiT,OAASpS,OAAQ,CAC1C,GAAIc,EAAI7C,EAAEgG,YAAalF,EAAEd,EAAE0G,mBAAqBjG,EAAEoC,GAAI,KAAO7C,IAAM6C,EAAE26B,YAAcx9B,EAAI6C,EAAGA,EAAIA,EAAEmD,YAAavF,EAAEoC,MAG/GkB,EAAItC,EAAEzB,GAAI,IAAMkB,EAAEiT,QAAUpQ,IAE9B,MAAO,CAAClB,EAAGkB,KAEZlB,EAAEjB,UAAUo2C,8BAAgC,SAAU92C,GACvD,IAAI2B,EAAGpB,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAGgC,EAAG9D,EAEzB,IAAK8D,EAAI,EAAkDtC,EAAI,EAAGzB,GAAtDC,EAAImC,KAAK61C,4BAA4B/2C,EAAEolC,QAAqBziC,OAAQ7D,EAAIyB,EAAGA,IAAK,CAC1F,GAAIoB,EAAI5C,EAAEwB,GAAIhB,EAAIH,EAAEuC,GAAI3B,EAAEiT,QAAUpQ,EAAItD,EAAG,GAAIJ,EAAEwC,IAC/C,GAAI/B,EAAI+B,EAAGd,EAAIgC,EAAG7C,EAAEiT,SAAWpS,GAAK6B,EAAE9C,GAAI,WACrCA,IAAMA,EAAI+B,EAAGd,EAAIgC,GACxB,IAAIA,GAAKtD,GAAOS,EAAEiT,OAAQ,MAG5B,MAAO,CAACrT,EAAGiB,IACVc,EAAEjB,UAAUk2C,mCAAqC,SAAU52C,GAC5D,KAAOA,GAAKA,IAAMkB,KAAKglB,SAAU,CAC/B,GAAIpnB,EAAEkB,GAAI,OAAOA,EACjBA,EAAIA,EAAE8E,aAEPnD,EAAEjB,UAAUq2C,4BAA8B,SAAU/2C,GACrD,IAAI2B,EAAGpB,EAAGzB,EAAGS,EAAGK,EAEhB,IAAKd,EAAI,GAAIc,EAAIyC,EAAEnB,KAAKglB,QAAS,CAC/B5P,YAAa1V,IACXrB,GAAI,EAAIK,EAAEwpC,YACZ,GAAI7oC,EAAIX,EAAEypC,YAAaxoC,EAAEN,IACvB,GAAI,oBAAsBoB,GAAK,OAASA,EAAIA,IAAMA,EAAI,EAAGA,IAAM3B,EAAGT,GAAI,OAAQ,GAAIA,EAAG,WAChFA,GAAKT,EAAE4C,KAAKnB,GAGrB,OAAOzB,GACNM,EAAI,SAAWY,GAEhB,OAAOA,EAAEwK,WAAaC,KAAKoL,UAAYnT,EAAE1C,GAAK,EAASA,EAAEsX,YAAe3U,OAAU,OAAS5D,EAAEiB,IAAMlB,EAAEkB,GAAK,EAAI,GAC7GY,EAAI,SAAWZ,GAChB,OAAOsE,EAAEtE,KAAOwW,WAAWk0B,cAAgB3kC,EAAE/F,GAAKwW,WAAWi0B,eAC5DnmC,EAAI,SAAWtE,GAChB,OAAO6C,EAAE7C,GAAKwW,WAAWi0B,cAAgBj0B,WAAWk0B,eACnD3kC,EAAI,SAAW/F,GAChB,OAAOlB,EAAEkB,EAAE8E,YAAc0R,WAAWi0B,cAAgBj0B,WAAWk0B,eAC9D/oC,EA9FiS,IAgGtS1C,KAAKiC,MAAO,WACZ,IAAIlB,EACAO,EACAzB,EAAI,GAAGqE,MACXnD,EAAI2B,EAAEoY,YAAaxZ,EAAIoB,EAAEsY,YAAatY,EAAEq1C,YAAc,WACpD,SAASr1C,KAET,OAAOA,EAAEjB,UAAUu2C,wBAA0B,SAAUt1C,GACrD,IAAI7C,EAAGS,EAAGK,EAAGiB,EAAG6B,EAAGG,EAAG1D,EAAGJ,EACzB,GAAII,EAAIwC,EAAEkE,EAAG9G,EAAI4C,EAAE2E,EAAG3C,SAASuzC,uBAAwB,OAAkDt3C,GAA3C8C,EAAIiB,SAASuzC,uBAAuB/3C,EAAGJ,IAAUo4C,WAAY53C,EAAImD,EAAEuQ,QAAQnU,EAAI6E,SAASiyB,eAAiBC,SAASj2B,EAAGL,GAAIT,EACvL,GAAI6E,SAASyzC,oBAAqB,OAAOzzC,SAASyzC,oBAAoBj4C,EAAGJ,GAEzE,GAAI4E,SAASkX,KAAKw8B,gBAAiB,CACjCx2C,EAAIb,IAEJ,KACE6C,EAAIc,SAASkX,KAAKw8B,mBAAqBC,YAAYn4C,EAAGJ,GAAI8D,EAAEo9B,SAC5D,MAAO59B,IAET,OAAOvD,EAAIkB,IAAKO,EAAEM,GAAI/B,IAEvB6C,EAAEjB,UAAU62C,0BAA4B,SAAUv3C,GACnD,IAAOO,EACP,MAAsE,EAA/DA,EAAIzB,EAAEG,KAAKe,EAAEw3C,mBAAyB,GAAQj3C,EAAEA,EAAEoC,OAAS,KACjEhB,EApBiD,IAsBtD1C,KAAKiC,MAAO,WACZ,IAAIlB,EACAO,EAAI,SAAWP,EAAG2B,GACpB,OAAO,WACL,OAAO3B,EAAE8B,MAAMH,EAAGI,aAGlBjD,EAAI,SAAWkB,EAAG2B,GACpB,SAASpB,IACPW,KAAKD,YAAcjB,EAGrB,IAAK,IAAIlB,KAAK6C,EACZpC,EAAEN,KAAK0C,EAAG7C,KAAOkB,EAAElB,GAAK6C,EAAE7C,IAG5B,OAAOyB,EAAEG,UAAYiB,EAAEjB,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEiR,UAAYtP,EAAEjB,UAAWV,GAElFT,EAAI,GAAGoB,eACPf,EAAI,GAAG4B,SAAW,SAAUxB,GAC9B,IAAK,IAAI2B,EAAI,EAAGpB,EAAIW,KAAKyB,OAAQpC,EAAIoB,EAAGA,IACtC,GAAIA,KAAKT,MAAQA,KAAKS,KAAO3B,EAAG,OAAO2B,EAGzC,OAAQ,GAGV3B,EAAI2B,EAAEoY,YAAapY,EAAE81C,wBAA0B,SAAU91C,GACvD,SAASpC,IACP2B,KAAKw2C,IAAMn3C,EAAEW,KAAKw2C,IAAKx2C,MAAOA,KAAKmZ,OAAS9Z,EAAEW,KAAKmZ,OAAQnZ,MAAOA,KAAKy2C,kBAAoB,GAG7F,IAAI92C,EACJ,OAAO/B,EAAES,EAAGoC,GAAIpC,EAAEmB,UAAUumB,MAAQ,WAClC,OAAO/lB,KAAK02C,aAAU,GAAU12C,KAAK02C,SAAU,EAAI,sBAAuBj0C,SAAWA,SAAS6C,iBAAiB,kBAAmBtF,KAAKmZ,QAAQ,GAAMnZ,KAAKw2C,QACzJn4C,EAAEmB,UAAUymB,KAAO,WACpB,OAAOjmB,KAAK02C,SAAW12C,KAAK02C,SAAU,EAAIj0C,SAAS+D,oBAAoB,kBAAmBxG,KAAKmZ,QAAQ,SAAO,GAC7G9a,EAAEmB,UAAUm3C,yBAA2B,SAAU73C,GAClD,OAAOJ,EAAEX,KAAKiC,KAAKy2C,kBAAmB33C,GAAK,GAAKkB,KAAKy2C,kBAAkBj2C,KAAK1B,GAAIkB,KAAK+lB,cAAW,GAC/F1nB,EAAEmB,UAAUo3C,2BAA6B,SAAU93C,GACpD,IAAI2B,EACJ,OAAOT,KAAKy2C,kBAAoB,WAC9B,IAAIp3C,EAAGzB,EAAGS,EAAGK,EAEb,IAAiCA,EAAI,GAAIW,EAAI,EAAGzB,GAA3CS,EAAI2B,KAAKy2C,mBAAwCh1C,OAAQ7D,EAAIyB,EAAGA,KACnEoB,EAAIpC,EAAEgB,MAAUP,GAAKJ,EAAE8B,KAAKC,GAG9B,OAAO/B,GACPX,KAAKiC,MAAO,IAAMA,KAAKy2C,kBAAkBh1C,OAASzB,KAAKimB,YAAS,GACjE5nB,EAAEmB,UAAUq3C,yCAA2C,WACxD,IAAI/3C,EAAG2B,EAAGpB,EAAGzB,EAAGS,EAEhB,IAAiCT,EAAI,GAAIkB,EAAI,EAAG2B,GAA3CpB,EAAIW,KAAKy2C,mBAAwCh1C,OAAQhB,EAAI3B,EAAGA,IACnET,EAAIgB,EAAEP,GAAIlB,EAAE4C,KAAKnC,EAAEy4C,sBAGrB,OAAOl5C,GACNS,EAAEmB,UAAU2Z,OAAS,WACtB,IAAI1Y,EACJ,OAAOA,EAAI3B,IAAKa,EAAEc,EAAGT,KAAK+2C,eAAY,GAAU/2C,KAAK+2C,SAAWt2C,EAAGT,KAAK62C,6CACvEx4C,EAAEmB,UAAUyc,MAAQ,WACrB,OAAOjc,KAAK+2C,SAAW,KAAM/2C,KAAKmZ,UACjC9a,EAAEmB,UAAUg3C,IAAM,WACnB,OAAOx2C,KAAK02C,SAAW12C,KAAKmZ,SAAU5R,sBAAsBvH,KAAKw2C,WAAQ,GACxE72C,EAAI,SAAWb,EAAG2B,GACnB,OAAQ,MAAQ3B,EAAIA,EAAEua,oBAAiB,MAAa,MAAQ5Y,EAAIA,EAAE4Y,oBAAiB,KAAY,MAAQva,EAAIA,EAAE81B,iBAAc,MAAa,MAAQn0B,EAAIA,EAAEm0B,iBAAc,KAAY,MAAQ91B,EAAIA,EAAEwa,kBAAe,MAAa,MAAQ7Y,EAAIA,EAAE6Y,kBAAe,KAAY,MAAQxa,EAAIA,EAAEg2B,eAAY,MAAa,MAAQr0B,EAAIA,EAAEq0B,eAAY,IACnUz2B,EAxC0C,CAyC7CoC,EAAE8O,aAAc,MAAQ9O,EAAEyY,0BAA4BzY,EAAEyY,wBAA0B,IAAIzY,EAAE81C,0BAC1Fx4C,KAAKiC,MAAO,WACZ,IAAIlB,EACAO,EACAzB,EACAS,EACAK,EACAiB,EACA6B,EACAG,EACA1D,EACAJ,EACAsD,EAAI,SAAWrC,EAAG2B,GACpB,OAAO,WACL,OAAO3B,EAAE8B,MAAMH,EAAGI,aAGlBnB,EAAI,SAAWZ,EAAG2B,GACpB,SAASpB,IACPW,KAAKD,YAAcjB,EAGrB,IAAK,IAAIlB,KAAK6C,EACZvC,EAAEH,KAAK0C,EAAG7C,KAAOkB,EAAElB,GAAK6C,EAAE7C,IAG5B,OAAOyB,EAAEG,UAAYiB,EAAEjB,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEiR,UAAYtP,EAAEjB,UAAWV,GAElFZ,EAAI,GAAGuB,eAEX7B,EAAI6C,EAAEiY,gBAAiBrZ,EAAIoB,EAAEoY,YAAahb,EAAI4C,EAAEsY,YAAaja,EAAI2B,EAAEgU,oBAAqB9U,EAAIc,EAAEsW,mBAAoBrY,EAAI+B,EAAE8T,qBAAsBlW,EAAIoC,EAAEiG,YAAalF,EAAIf,EAAE6W,eAAgB3V,EAAIlB,EAAE+W,iBAAkBvZ,EAAIwC,EAAEgX,eAAgBhX,EAAEu2C,iBAAmB,SAAU94C,GAClQ,SAAS2G,EAAE/F,GACTkB,KAAKglB,QAAUlmB,EAAGkB,KAAK82C,mBAAqB31C,EAAEnB,KAAK82C,mBAAoB92C,MAAOA,KAAKi3C,aAAe91C,EAAEnB,KAAKi3C,aAAcj3C,MAAOA,KAAKk3C,eAAiB,IAAIz2C,EAAE+0C,eAAex1C,KAAKglB,SAAUhlB,KAAKm3C,YAAc,IAAI12C,EAAEq1C,YAAe91C,KAAKo3C,UAAY,EAAG/4C,EAAE,YAAa,CACjQqV,UAAW1T,KAAKglB,QAChBpR,aAAc5T,KAAKi3C,eAIvB,OAAOv3C,EAAEmF,EAAG3G,GAAI2G,EAAErF,UAAUqwC,iBAAmB,SAAU/wC,GACvD,IAAOlB,EACP,OAAO,MAAQkB,IAAMA,EAAI,KAAsB,IAAbA,EAAE8X,OAAgB5W,KAAKgyC,gCAAgC3yC,IAAK,CAC5FuX,QAAQ,IACL9X,EAAEwyC,WAAatxC,KAAKq3C,qBAAuB,OAASz5C,EAAIoC,KAAKs3C,qBAAuB15C,EAAIoC,KAAKq3C,sBACjGxyC,EAAErF,UAAUoyC,iBAAmB,SAAU9yC,GAC1C,IAAI2B,EACJ,IAAKT,KAAKs3C,oBAAqB,OAAOx4C,EAAI0C,EAAE1C,IAAK2B,EAAIT,KAAKu3C,gCAAgCz4C,KAAOjB,EAAE4C,GAAIT,KAAKw3C,2BAA2B14C,SAAM,GAC5I+F,EAAErF,UAAU8rB,+BAAiC,SAAUxsB,GACxD,IAAI2B,EAAGpB,EACP,OAAOP,EAAI0C,EAAE1C,GAAIO,EAAIW,KAAKy3C,mBAAmB34C,EAAE,IAAK2B,EAAIT,KAAKy3C,mBAAmB34C,EAAE,IAAKkB,KAAK4xC,iBAAiB,CAACvyC,EAAGoB,KAChHoE,EAAErF,UAAUg1C,6BAA+B,SAAU11C,GACtD,IAAI2B,EACJ,OAAQA,EAAIT,KAAKu3C,gCAAgCz4C,IAAMkB,KAAKq2C,0BAA0B51C,GAAG,QAAK,GAC7FoE,EAAErF,UAAU+yC,uBAAyB,SAAUzzC,GAChD,IAAI2B,EAAM7C,EACV,OAAkD6C,GAA3C7C,EAAIoC,KAAK41C,8BAA8B92C,IAAU,GAAQlB,EAAE,GAAI+B,EAAEc,IACvEoE,EAAErF,UAAUk4C,KAAO,WACpB,OAAO,IAAM13C,KAAKo3C,aAAep3C,KAAKw3C,6BAA8Bx3C,KAAKs3C,oBAAsBt3C,KAAK6vC,yBAAsB,GACzHhrC,EAAErF,UAAUm4C,OAAS,WACtB,IAAI74C,EACJ,OAAO,MAAQkB,KAAKo3C,YAAct4C,EAAIkB,KAAKs3C,oBAAqBt3C,KAAKs3C,oBAAsB,KAAM,MAAQx4C,GAAKkB,KAAK4xC,iBAAiB9yC,QAAK,GACxI+F,EAAErF,UAAUo4C,eAAiB,WAC9B,IAAI94C,EACJ,OAAO,OAASA,EAAIlB,KAAOkB,EAAEka,uBAAoB,GAChDnU,EAAErF,UAAUq4C,qBAAuB,WACpC,IAAI/4C,EACJ,OAAsD,KAA9C,OAASA,EAAIO,KAAOP,EAAEg5C,eAAY,IACzCjzC,EAAErF,UAAU2qB,oBAAsB,WACnC,OAAQnqB,KAAK63C,wBACZhzC,EAAErF,UAAUwyC,gCAAkC,SAAUlzC,EAAG2B,GAC5D,IAAIpB,EAAGzB,EACP,GAAI,MAAQkB,GAAKkB,KAAK+3C,sBAAsBj5C,KAAOlB,EAAIoC,KAAKy1C,mCAAmC32C,EAAEua,eAAgBva,EAAE81B,YAAan0B,IAAK,OAAO3B,EAAEg5C,YAAcz4C,EAAIW,KAAKy1C,mCAAmC32C,EAAEwa,aAAcxa,EAAEg2B,UAAWr0B,IAAKe,EAAE,CAAC5D,EAAGyB,KAC/OwF,EAAE2K,YAAY,qDAAsD3K,EAAE2K,YAAY,qDAAsD3K,EAAE2K,YAAY,gDAAiD3K,EAAE2K,YAAY,uCAAwC3K,EAAE2K,YAAY,yCAA0C3K,EAAErF,UAAUy3C,aAAe,WACjV,OAAOj3C,KAAKg4C,oBACXnzC,EAAErF,UAAUw4C,iBAAmB,WAChC,IAAIv3C,EAAGpB,EAAGzB,EAAGc,EACb,OAAOsB,KAAKi4C,QAAS,EAAI54C,EAAI,SAAUoB,GACrC,OAAO,WACL,IAAOpC,EAAGsB,EAEV,IAAKc,EAAEw3C,QAAS,EAAIpwC,aAAanJ,GAAIL,EAAI,EAAGsB,EAAI/B,EAAE6D,OAAQ9B,EAAItB,EAAGA,IAC3DT,EAAES,GAAM0V,UAGd,OAAOjV,EAAE2D,SAAUhC,EAAEukB,SAAWvkB,EAAEq2C,0BAAuB,GARhC,CAU3B92C,MAAOtB,EAAIgD,WAAWrC,EAAG,KAAMzB,EAAI,WACnC,IAAIkB,EAAGlB,EAAGc,EAAGiB,EAEb,IAAmCA,EAAI,GAAIb,EAAI,EAAGlB,GAA7Cc,EAAI,CAAC,YAAa,YAAiC+C,OAAQ7D,EAAIkB,EAAGA,IACrE2B,EAAI/B,EAAEI,GAAIa,EAAEa,KAAKnC,EAAEoC,EAAG,CACpBiT,UAAWjR,SACXmR,aAAcvU,KAIlB,OAAOM,EAV4B,IAYpCkF,EAAErF,UAAUs3C,mBAAqB,WAClC,OAAO92C,KAAKi4C,QAAUv5C,EAAEsB,KAAKglB,cAAW,EAAShlB,KAAKw3C,8BACrD3yC,EAAErF,UAAUg4C,2BAA6B,SAAU14C,GACpD,IAAI2B,EACJ,OAAQ,MAAQ3B,EAAIA,EAAIA,EAAIkB,KAAKgyC,gCAAgC3yC,QAAUpB,EAAEa,EAAGkB,KAAKq3C,uBAAyBr3C,KAAKq3C,qBAAuBv4C,EAAG,OAAS2B,EAAIT,KAAKomB,WAAa,mBAAqB3lB,EAAEy3C,uBAAyBz3C,EAAEy3C,uBAAuBl4C,KAAKq3C,qBAAqBp1C,MAAM,SAAM,QAAU,GACpS4C,EAAErF,UAAU+3C,gCAAkC,SAAUz4C,GACzD,IAAI2B,EAAGpB,EAAGzB,EAAGS,EACb,OAAOT,EAAIoC,KAAK21C,mCAAmC72C,EAAE,IAAKO,EAAIsC,EAAE7C,GAAKlB,EAAI,OAASS,EAAI2B,KAAK21C,mCAAmC72C,EAAE,KAAOT,EAAIT,EAAG,MAAQA,GAAK,MAAQyB,IAAKoB,EAAIgC,SAASiyB,eAAiBC,SAAS/zB,MAAMH,EAAG7C,GAAI6C,EAAEo0B,OAAOj0B,MAAMH,EAAGpB,GAAIoB,QAAK,GACtPoE,EAAErF,UAAUi4C,mBAAqB,SAAU34C,GAC5C,IAAI2B,EAAGpB,EACP,OAAQoB,EAAIT,KAAK+1C,wBAAwBj3C,KAAO,OAASO,EAAIW,KAAKgyC,gCAAgCvxC,IAAMpB,EAAE,QAAK,GAC9GwF,EAAErF,UAAUu4C,sBAAwB,SAAUt3C,GAC/C,OAAOA,EAAEq3C,UAAYh5C,EAAEkB,KAAKglB,QAASvkB,EAAE4Y,gBAAkBva,EAAEkB,KAAKglB,QAASvkB,EAAE4Y,iBAAmBva,EAAEkB,KAAKglB,QAASvkB,EAAE6Y,eAC/GzU,EAhFqP,CAiFxPpE,EAAE8O,cACJxR,KAAKiC,MAAO,WACZ,IAAIlB,EACAO,EACAzB,EACAS,EACAK,EAAI,SAAWI,EAAG2B,GACpB,SAASpB,IACPW,KAAKD,YAAcjB,EAGrB,IAAK,IAAIlB,KAAK6C,EACZd,EAAE5B,KAAK0C,EAAG7C,KAAOkB,EAAElB,GAAK6C,EAAE7C,IAG5B,OAAOyB,EAAEG,UAAYiB,EAAEjB,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEiR,UAAYtP,EAAEjB,UAAWV,GAElFa,EAAI,GAAGF,eACP+B,EAAI,GAAGS,MAEXrE,EAAI6C,EAAE+W,iBAAkBnZ,EAAIoC,EAAEgX,eAAgBpY,EAAIoB,EAAE4R,gBAAiBvT,EAAI2B,EAAEqS,eAAgBrS,EAAE03C,iBAAmB,SAAUx4C,GACxH,SAASgC,EAAE7C,GACT,IAAIO,EAAGzB,EACPoC,KAAKo4C,cAAgBt5C,EAAEs5C,cAAe/4C,EAAIP,EAAE2D,SAAU7E,EAAIkB,EAAEytB,KAAMvsB,KAAKg0C,iBAAmB,IAAIvzC,EAAEu2C,iBAAiBh3C,KAAKo4C,eAAgBp4C,KAAKg0C,iBAAiB5tB,SAAWpmB,KAAMA,KAAKy7B,YAAc,IAAIh7B,EAAEkuC,YAAe3uC,KAAKy7B,YAAYrV,SAAWpmB,KAAMA,KAAK+0C,kBAAoB,IAAIt0C,EAAEy0C,kBAAkBl1C,KAAKy7B,YAAYuK,kBAAmBhmC,KAAK+0C,kBAAkB3uB,SAAWpmB,KAAMA,KAAKkvB,gBAAkB,IAAIzuB,EAAE,QAAUA,EAAE6O,OAAO2T,MAAME,WAAa,oBAAmBnjB,KAAKo4C,eAAgBp4C,KAAKkvB,gBAAgB9I,SAAWpmB,KAAMA,KAAKkvB,gBAAgB5G,UAAYtoB,KAAKy7B,YAAaz7B,KAAKq4C,sBAAwB,IAAI53C,EAAE+6B,sBAAsBx7B,KAAKo4C,cAAep4C,KAAKy7B,aAAcz7B,KAAKq4C,sBAAsBjyB,SAAWpmB,KAAMA,KAAKs4C,kBAAoB,IAAI73C,EAAE+8B,kBAAkBx9B,KAAKo4C,cAAcG,gBAAiBv4C,KAAKs4C,kBAAkBlyB,SAAWpmB,KAAMA,KAAKw4C,OAAS,IAAI/3C,EAAEszC,OAAO/zC,KAAKy7B,YAAaz7B,KAAKg0C,iBAAkBh0C,KAAKo4C,eAAgB,MAAQ/4C,EAAIW,KAAKw4C,OAAOpE,aAAa/0C,GAAKW,KAAKw4C,OAAOnE,SAASz2C,GAG39B,IAAIK,EACJ,OAAOS,EAAEiD,EAAGhC,GAAIgC,EAAEnC,UAAUm3C,yBAA2B,WACrD,OAAOl2C,EAAEyY,wBAAwBy9B,yBAAyB32C,KAAKg0C,mBAC9DryC,EAAEnC,UAAUo3C,2BAA6B,WAC1C,OAAOn2C,EAAEyY,wBAAwB09B,2BAA2B52C,KAAKg0C,mBAChEryC,EAAEnC,UAAU0iB,OAAS,WACtB,OAAOliB,KAAKq4C,sBAAsBn2B,UACjCvgB,EAAEnC,UAAUowB,QAAU,WACvB,OAAO5vB,KAAKy7B,YAAYmU,YAAY5vC,KAAKo4C,cAAcr2B,YACtDpgB,EAAEnC,UAAUsvC,6BAA+B,WAC5C,OAAO9uC,KAAKy4C,oBAAoB,mBAAoBz4C,KAAK04C,mBAAgB,EAAS14C,KAAKkiB,UACtFvgB,EAAEnC,UAAUszC,sCAAwC,SAAUh0C,GAC/D,OAAOkB,KAAK4uC,kBAAoB9vC,EAAGkB,KAAKs4C,kBAAkB7Z,iBAAiBz+B,KAAK4uC,mBAAoB5uC,KAAK24C,uBAAwB34C,KAAKy4C,oBAAoB,oBAAqB,CAC7K5yC,WAAY7F,KAAK4uC,qBAElBjtC,EAAEnC,UAAUuzC,sCAAwC,SAAUj0C,GAC/D,OAAOkB,KAAK44C,QAAU54C,KAAK64C,YAAc/5C,OAAI,GAC5C6C,EAAEnC,UAAUswC,4BAA8B,SAAUhxC,GACrD,OAAOkB,KAAKy4C,oBAAoB,cAAe,CAC7C11B,KAAMjkB,KAEP6C,EAAEnC,UAAUizC,4BAA8B,SAAU3zC,GACrD,IAAI2B,EACJ,OAAOA,EAAIT,KAAK+0C,kBAAkBK,iBAAiBt2C,GAAIkB,KAAKy4C,oBAAoB,iBAAkB,CAChGl5B,WAAY9e,KAEbkB,EAAEnC,UAAUkzC,6BAA+B,SAAU5zC,GACtD,IAAI2B,EACJ,OAAOT,KAAKq4C,sBAAsB1b,sBAAsB79B,GAAI2B,EAAIT,KAAK+0C,kBAAkBK,iBAAiBt2C,GAAIkB,KAAKy4C,oBAAoB,kBAAmB,CACtJl5B,WAAY9e,IACVT,KAAKy4C,oBAAoB,WAC5B92C,EAAEnC,UAAUmzC,yCAA2C,SAAU7zC,GAClE,OAAOkB,KAAKq4C,sBAAsBj0B,wBAAwBtlB,GAAIkB,KAAKy4C,oBAAoB,WACtF92C,EAAEnC,UAAUgzC,+BAAiC,SAAU1zC,GACxD,IAAI2B,EACJ,OAAOA,EAAIT,KAAK+0C,kBAAkBQ,mBAAmBz2C,GAAIkB,KAAKy4C,oBAAoB,oBAAqB,CACrGl5B,WAAY9e,KAEbkB,EAAEnC,UAAUozC,qCAAuC,SAAU9zC,EAAG2B,GACjE,OAAOT,KAAK84C,wBAA0B94C,KAAKy7B,YAAYh5B,SAASgrC,6BAA6B3uC,GAAIkB,KAAKq4C,sBAAsBvb,qCAAqCh+B,EAAG2B,GAAIT,KAAKg0C,iBAAiBpC,iBAAiB5xC,KAAK84C,0BACnNn3C,EAAEnC,UAAUqzC,oCAAsC,WACnD,OAAO7yC,KAAKq4C,sBAAsBtb,4BAA6B/8B,KAAK84C,wBAA0B,MAC7Fn3C,EAAEnC,UAAUkyC,sDAAwD,SAAU5yC,GAC/E,OAAQkB,KAAK+4C,iBAAmB/4C,KAAKg5C,aAAeh5C,KAAKi5C,uBAAyBn6C,EAAGkB,KAAKk5C,8CAAgDl5C,KAAKy7B,YAAYa,SAAUt8B,KAAK04C,mBAAgB,EAAS14C,KAAKkiB,eAAY,GACnNvgB,EAAEnC,UAAU0vC,4BAA8B,WAC3C,OAAOlvC,KAAK+4C,iBAAkB,GAC7Bp3C,EAAEnC,UAAU4vC,2BAA6B,WAC1C,OAAOpvC,KAAKq4C,sBAAsBzb,mBAAoB58B,KAAKkiB,SAAUliB,KAAK+4C,iBAAkB,GAC3Fp3C,EAAEnC,UAAUmyC,oBAAsB,WACnC,OAAO3xC,KAAKg0C,kBACXryC,EAAE6N,YAAY,0CAA2C7N,EAAE6N,YAAY,0CAA2C7N,EAAEnC,UAAU81C,+CAAiD,SAAUx2C,GAC1L,OAAOkB,KAAKuwC,iBAAiBzxC,IAC5B6C,EAAEnC,UAAUg9B,0CAA4C,WACzD,OAAOx8B,KAAKkvB,gBAAgBpH,6BAA8B9nB,KAAKg0C,iBAAiB0D,OAAQ13C,KAAKg0C,iBAAiB4D,kBAC7Gj2C,EAAEnC,UAAUi9B,yCAA2C,WACxD,OAAOz8B,KAAKkvB,gBAAgBnH,4BAA6B/nB,KAAKg0C,iBAAiB2D,SAAU33C,KAAK24C,uBAAwB34C,KAAKy4C,oBAAoB,SAC9I92C,EAAEnC,UAAUk9B,+BAAiC,WAC9C,OAAO,MAAQ18B,KAAKi5C,yBAA2Bj5C,KAAKk5C,gDAAkDl5C,KAAKy7B,YAAYa,UAAYt8B,KAAKg0C,iBAAiBpC,iBAAiB5xC,KAAKi5C,wBAAyBj5C,KAAKi5C,uBAAyB,KAAMj5C,KAAKk5C,8CAAgD,MAAOl5C,KAAKm5C,8BAAgCn5C,KAAKy7B,YAAYa,WAAat8B,KAAKo5C,mBAAoBp5C,KAAKy7B,YAAY0V,0BAA2BnxC,KAAKy4C,oBAAoB,WAAYz4C,KAAKm5C,4BAA8Bn5C,KAAKy7B,YAAYa,UACxgB36B,EAAEnC,UAAUu8B,8BAAgC,WAC7C,OAAO/7B,KAAKq5C,sBAAwBr5C,KAAK4xC,iBAAiB,CACxD1N,MAAO,EACPnyB,OAAQ,IACN/R,KAAKs4C,kBAAkBla,aAAcp+B,KAAKy4C,oBAAoB,UACjE92C,EAAEnC,UAAUy8B,6BAA+B,WAC5C,OAAOj8B,KAAKy4C,oBAAoB,SAC/B92C,EAAEnC,UAAU28B,yCAA2C,SAAUr9B,EAAG2B,GACrE,OAAOT,KAAKs4C,kBAAkBla,aAAcp+B,KAAKy7B,YAAY6U,eAAexxC,EAAG2B,IAC9EkB,EAAEnC,UAAU69B,qDAAuD,SAAUv+B,GAC9E,IAAI2B,EAAGpB,EACP,OAAOoB,EAAI,OAASpB,EAAIW,KAAK84C,yBAA2Bz5C,EAAIW,KAAKy7B,YAAYh5B,SAASgrC,6BAA6B3uC,GAAIkB,KAAKg0C,iBAAiBpC,iBAAiBnxC,EAAE,KAC/JkB,EAAEnC,UAAUy9B,0CAA4C,SAAUn+B,GACnE,OAAOkB,KAAKw4C,OAAO1nB,gBAAgB,kBAAmB,CACpD4I,QAAS56B,EAAEkR,GACXojC,gBAAgB,KAEjBzxC,EAAEnC,UAAU49B,mDAAqD,SAAUt+B,GAC5E,OAAOkB,KAAKuwC,iBAAiBzxC,IAC5B6C,EAAEnC,UAAUipB,+BAAiC,WAC9C,OAAOzoB,KAAK04C,eAAgB,EAAI14C,KAAKs5C,iBAAkB,GACtD33C,EAAEnC,UAAUyoB,gCAAkC,WAC/C,OAAOjoB,KAAKs5C,iBAAkB,GAC7B33C,EAAEnC,UAAUkpB,8BAAgC,WAC7C,OAAO1oB,KAAK04C,eAAgB,EAAI14C,KAAKs5C,iBAAmBt5C,KAAKs5C,iBAAkB,EAAIt5C,KAAKkiB,eAAY,GACnGvgB,EAAEnC,UAAU0pB,sCAAwC,WACrD,OAAOlpB,KAAKy4C,oBAAoB,WAC/B92C,EAAEnC,UAAU2oB,iCAAmC,WAChD,OAAOnoB,KAAK4vB,WACXjuB,EAAEnC,UAAUyqB,iCAAmC,WAChD,OAAOjqB,KAAKu5C,yBACX53C,EAAEnC,UAAU40B,qCAAuC,SAAUt1B,GAC9D,OAAOkB,KAAKw5C,0BAA0B16C,IACrC6C,EAAEnC,UAAUosB,2BAA6B,WAC1C,OAAO5rB,KAAKw4C,OAAO1nB,gBAAgB,QAClCnvB,EAAEnC,UAAUgtB,yBAA2B,SAAU1tB,GAClD,OAAOkB,KAAKw4C,OAAO1nB,gBAAgB,SAAU9wB,KAAK44C,SAAU,EAAI54C,KAAKy4C,oBAAoB,eAAgB,CACvG1sB,MAAOjtB,KAER6C,EAAEnC,UAAUktB,wBAA0B,SAAU5tB,GACjD,OAAOA,EAAEuwB,MAAQrvB,KAAK64C,YAAa74C,KAAK64C,YAAc,KAAM74C,KAAK44C,QAAU,KAAM54C,KAAKy4C,oBAAoB,QAAS,CACjH1sB,MAAOjtB,KAER6C,EAAEnC,UAAU+rB,4BAA8B,WAC3C,OAAOvrB,KAAKw4C,OAAO1nB,gBAAgB,SAClCnvB,EAAEnC,UAAU6oB,+BAAiC,WAC9C,OAAOroB,KAAKw4C,OAAO1nB,gBAAgB,eAClCnvB,EAAEnC,UAAU+zB,+BAAiC,WAC9C,OAAOvzB,KAAKw4C,OAAO35B,QAClBld,EAAEnC,UAAU6zB,+BAAiC,WAC9C,OAAOrzB,KAAKw4C,OAAO75B,QAClBhd,EAAEnC,UAAUsqB,yCAA2C,SAAUhrB,GAClE,OAAOkB,KAAKs4C,kBAAkB1Z,qBAAqB9/B,IAClD6C,EAAEnC,UAAUorB,4BAA8B,WAC3C,OAAO5qB,KAAKy5C,wBAA0Bz5C,KAAKg0C,iBAAiBnE,oBAC3DluC,EAAEnC,UAAU0rB,uCAAyC,SAAUpsB,GAChE,OAAOkB,KAAKg0C,iBAAiB1oB,+BAA+BxsB,IAC3D6C,EAAEnC,UAAU4rB,6BAA+B,WAC5C,OAAOprB,KAAKg0C,iBAAiBpC,iBAAiB5xC,KAAKy5C,yBAA0Bz5C,KAAKy5C,wBAA0B,MAC3G93C,EAAEnC,UAAU04C,uBAAyB,SAAUp5C,GAChD,OAAOkB,KAAKy7B,YAAY0V,0BAA2BnxC,KAAK24C,uBAAwB34C,KAAK84C,0BAA4Bz6C,EAAE2B,KAAK84C,wBAAyBh6C,IAAMkB,KAAKy7B,YAAY+U,wBAAyBxwC,KAAKy4C,oBAAoB,qBACzN92C,EAAEnC,UAAUs+B,sBAAwB,WACrC,OAAO99B,KAAK6vC,wBAAqB,EAAS7vC,KAAK4xC,iBAAiB,CAC9D1N,MAAO,EACPnyB,OAAQ,KAETpQ,EAAEnC,UAAUy+B,uBAAyB,SAAUn/B,GAChD,OAAOkB,KAAK05C,aAAa56C,IACxB6C,EAAEnC,UAAU0+B,0BAA4B,SAAUp/B,GACnD,OAAOkB,KAAKw5C,0BAA0B16C,GAAIkB,KAAKy7B,YAAYpH,uBAAuBv1B,GAAIkB,KAAKkiB,SAAUliB,KAAK25C,qBAAkB,EAAS35C,KAAKo4C,cAAcrpB,SACvJptB,EAAEnC,UAAU2/B,0BAA4B,SAAUrgC,EAAG2B,GACtD,OAAOT,KAAKw5C,0BAA0B16C,GAAIkB,KAAKy7B,YAAYnH,oBAAoBx1B,EAAG2B,GAAIT,KAAKkiB,SAAUliB,KAAK25C,qBAAkB,EAAS35C,KAAKo4C,cAAcrpB,SACvJptB,EAAEnC,UAAU4/B,0BAA4B,SAAUtgC,GACnD,OAAOkB,KAAKw5C,0BAA0B16C,GAAIkB,KAAKy7B,YAAY5I,uBAAuB/zB,GAAIkB,KAAKkiB,SAAUliB,KAAK25C,qBAAkB,EAAS35C,KAAKo4C,cAAcrpB,SACvJptB,EAAEnC,UAAUs/B,sBAAwB,WACrC,OAAO9+B,KAAKy7B,YAAY0W,4BAA6BnyC,KAAKuxC,mBACzD5vC,EAAEnC,UAAUw/B,qBAAuB,SAAUlgC,GAC9C,OAAOkB,KAAKy4C,oBAAoB,sBAAuB,CACrDmB,WAAY96C,KAEb6C,EAAEnC,UAAU6/B,qBAAuB,SAAUvgC,GAC9C,OAAOkB,KAAKwxC,gBAAiBxxC,KAAKo4C,cAAcrpB,QAAS/uB,KAAKy4C,oBAAoB,sBAAuB,CACvGmB,WAAY96C,KAEb6C,EAAEnC,UAAU+xC,gBAAkB,WAC/B,OAAOvxC,KAAK25C,qBAAkB,GAAU35C,KAAKg0C,iBAAiB0D,OAAQ13C,KAAKy7B,YAAY8V,kBAAmBvxC,KAAK25C,iBAAkB,EAAI35C,KAAKkiB,WACzIvgB,EAAEnC,UAAUgyC,cAAgB,WAC7B,OAAOxxC,KAAK25C,iBAAmB35C,KAAKy7B,YAAY+V,gBAAiBxxC,KAAKg0C,iBAAiB2D,SAAU33C,KAAK25C,iBAAkB,EAAI35C,KAAKkiB,eAAY,GAC5IvgB,EAAEnC,UAAUo+B,QAAU,CACvB/e,KAAM,CACJ7Z,KAAM,WACJ,OAAOhF,KAAKw4C,OAAOhF,WAErB12B,QAAS,WACP,OAAO9c,KAAKw4C,OAAO35B,SAGvBF,KAAM,CACJ3Z,KAAM,WACJ,OAAOhF,KAAKw4C,OAAO/E,WAErB32B,QAAS,WACP,OAAO9c,KAAKw4C,OAAO75B,SAGvBJ,KAAM,CACJvZ,KAAM,WACJ,OAAOhF,KAAKw4C,OAAO7D,qBAAqB,UAG5ChnB,qBAAsB,CACpB3oB,KAAM,WACJ,OAAOhF,KAAKw4C,OAAO9qB,2BAErB5Q,QAAS,WACP,OAAO9c,KAAKw4C,OAAO7qB,wBAA0B3tB,KAAKkiB,WAGtDiM,qBAAsB,CACpBnpB,KAAM,WACJ,OAAOhF,KAAKw4C,OAAOtqB,2BAErBpR,QAAS,WACP,OAAO9c,KAAKw4C,OAAOrqB,wBAA0BnuB,KAAKkiB,WAGtDpE,YAAa,CACX9Y,KAAM,WACJ,OAAO,GAET8X,QAAS,WACP,OAAOrc,EAAE6O,OAAO2T,MAAMG,UAAUpjB,KAAKw4C,OAAOjwB,gBAG/C5mB,EAAEnC,UAAUq6C,gBAAkB,SAAU/6C,GACzC,IAAI2B,EAAGpB,EACP,QAAOW,KAAK85C,iBAAiBh7C,OAAa,OAAS2B,EAAIT,KAAK49B,QAAQ9+B,KAAO,OAASO,EAAIoB,EAAEuE,MAAQ3F,EAAEtB,KAAKiC,WAAQ,IAChH2B,EAAEnC,UAAUk6C,aAAe,SAAU56C,GACtC,IAAI2B,EAAGpB,EACP,OAAOW,KAAK85C,iBAAiBh7C,GAAKkB,KAAKy4C,oBAAoB,gBAAiB,CAC1EsB,WAAYj7C,IACT,OAAS2B,EAAIT,KAAK49B,QAAQ9+B,KAAO,OAASO,EAAIoB,EAAEqc,SAAWzd,EAAEtB,KAAKiC,WAAQ,GAC9E2B,EAAEnC,UAAUs6C,iBAAmB,SAAUh7C,GAC1C,MAAO,OAAOkG,KAAKlG,IAClB6C,EAAEnC,UAAUw6C,kBAAoB,WACjC,IAAIl7C,EAAG2B,EAGP,IAAK3B,KAFL2B,EAAI,GAEMT,KAAK49B,QACbn9B,EAAE3B,GAAKkB,KAAK65C,gBAAgB/6C,GAG9B,OAAO2B,GACNkB,EAAEnC,UAAUm5C,qBAAuB,WACpC,IAAI75C,EACJ,OAAOA,EAAIkB,KAAKg6C,oBAAqB36C,EAAEP,EAAGkB,KAAKi6C,qBAAkB,GAAUj6C,KAAKi6C,eAAiBn7C,EAAGkB,KAAKs4C,kBAAkBja,cAAcr+B,KAAKi6C,gBAAiBj6C,KAAKy4C,oBAAoB,iBAAkB,CACxM7a,QAAS59B,KAAKi6C,mBAEft4C,EAAEnC,UAAU45C,iBAAmB,WAChC,IAAIt6C,EAAG2B,EAAGpB,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAG6B,EAEzB,IAAKA,EAAIxB,KAAKy7B,YAAYsT,cAAwC1vC,EAAI,EAAGzB,GAAhCS,EAAI2B,KAAKw4C,OAAOrE,SAAsB1yC,OAAQ7D,EAAIyB,EAAGA,IAC5FoB,EAAIpC,EAAEgB,GAAIP,EAAI0C,EAAEiB,SAAU9C,EAAI6B,EAAEwtC,cAAkE,OAAnDxtC,EAAI,OAAS9C,EAAI+B,EAAE1C,KAAKiC,KAAKw4C,OAAQh3C,IAAM9C,EAAI,IAAc+D,WAAajB,EAAEiB,SAAW3D,GAAI,MAAQ0C,EAAEwtC,gBAAkBxtC,EAAEwtC,cAAgBrvC,GAG1L,OAAO1B,EAAEuD,EAAGxB,KAAKy7B,YAAYsT,oBAAiB,EAAS/uC,KAAKy7B,YAAYwT,aAAaztC,IACpFvD,EAAI,SAAWa,EAAG2B,GACnB,OAAOpC,EAAES,EAAEkwC,cAAevuC,EAAEuuC,gBAAkBlwC,EAAE2D,SAAS6N,UAAU7P,EAAEgC,WACpEd,EAAEnC,UAAU06C,mBAAqB,WAClC,IAAIp7C,EAAGO,EACP,OAAOP,EAAIkB,KAAKq4C,sBAAsBjc,yBAA0B/8B,EAAIoB,EAAE4hB,uBAAuBvjB,EAAG,aAAckB,KAAKo4C,cAAc+B,qBAAqB96C,IACrJsC,EAAEnC,UAAUi5C,oBAAsB,SAAU35C,EAAG2B,GAChD,OAAQ3B,GACN,IAAK,kBACHkB,KAAKo6C,gCAAiC,EACtC,MAEF,IAAK,SACHp6C,KAAKo6C,iCAAmCp6C,KAAKo6C,gCAAiC,EAAIp6C,KAAKy4C,oBAAoB,WAC3G,MAEF,IAAK,SACL,IAAK,iBACL,IAAK,kBACL,IAAK,oBACHz4C,KAAKk6C,qBAGT,OAAOl6C,KAAKo4C,cAAciC,OAAOv7C,EAAG2B,IACnCkB,EAAEnC,UAAU+wC,iBAAmB,SAAUzxC,GAC1C,OAAOkB,KAAKw4C,OAAO1nB,gBAAgB,qBAAsB9wB,KAAKy7B,YAAY8U,iBAAiBzxC,GAAIkB,KAAKkiB,UACnGvgB,EAAEnC,UAAUg6C,0BAA4B,SAAU/4C,GACnD,IAAIpB,EAAGhB,EACP,OAAOgB,EAAIP,EAAE2B,GAAIpC,EAAI2B,KAAKg0C,iBAAiBnE,mBAAoBxwC,IAAMzB,EAAES,GAAK2B,KAAKw4C,OAAO1nB,gBAAgB,aAAc,CACpH4I,QAAS15B,KAAKs6C,iBACdlH,gBAAgB,SACb,GACJzxC,EAAEnC,UAAU+5C,sBAAwB,WACrC,OAAOv5C,KAAKw4C,OAAO1nB,gBAAgB,SAAU,CAC3C4I,QAAS15B,KAAKs6C,eAAet6C,KAAK4uC,mBAClCwE,gBAAgB,KAEjBzxC,EAAEnC,UAAU86C,eAAiB,WAC9B,IAAIx7C,EACJ,OAAOA,EAAI,GAAK+B,UAAUY,OAASD,EAAEzD,KAAK8C,UAAW,GAAK,GAAI,CAACb,KAAKu6C,qBAAsBv6C,KAAKw6C,kBAAkBjtC,OAAO/L,EAAEzD,KAAKe,KAC9H6C,EAAEnC,UAAU+6C,mBAAqB,WAClC,IAAIz7C,EACJ,OAAOA,EAAIkB,KAAKg0C,iBAAiBnE,mBAAoBjyC,EAAEkB,GAAKA,EAAE,GAAGolC,MAAQplC,GACxE6C,EAAEnC,UAAUg7C,eAAiB,WAC9B,OAAO/5C,EAAE6O,OAAOmT,aAAe,EAAI3f,KAAKke,OAAM,IAAIpe,MAAO63C,UAAYh6C,EAAE6O,OAAOmT,cAAgB,GAC7F9gB,EAAEnC,UAAUw5C,UAAY,WACzB,IAAIl6C,EACJ,OAAOkB,KAAKo4C,iBAAmB,OAASt5C,EAAIkB,KAAKo4C,cAAcsC,eAAiB57C,EAAE0V,mBAAgB,IACjG7S,EAAEnC,UAAU65C,mBAAqB,WAClC,OAAOr5C,KAAKg5C,cAAgBh5C,KAAK6vC,oBAChCluC,EAvR2G,CAwR9GlB,EAAEolB,aACJ9nB,KAAKiC,MAAO,WACZ,IAAIlB,EACAO,EACAzB,EACAS,EACAK,EACAiB,EACA6B,EAUEvD,EAAGJ,EAAGsD,EAAGzB,EAAGxB,EAAG2G,EAAGzB,EAAGpF,EAAGmH,EAT1BxD,EAAI,GAAGrB,SAAW,SAAUxB,GAC9B,IAAK,IAAI2B,EAAI,EAAGpB,EAAIW,KAAKyB,OAAQpC,EAAIoB,EAAGA,IACtC,GAAIA,KAAKT,MAAQA,KAAKS,KAAO3B,EAAG,OAAO2B,EAGzC,OAAQ,GAGVpB,EAAIoB,EAAEwO,QAAStP,EAAIc,EAAEoV,YAAarU,EAAIf,EAAEyT,aAAc7V,EAAIoC,EAAEiG,YAAahI,EAAI+B,EAAEwT,gBAAiBrW,EAAI6C,EAAEuT,2BAA4BlV,EAAI2B,EAAE0W,eAAeC,mBAAoB3W,EAAEiC,gBAAgB,eAEpLU,EAAI,EAAGvF,EAAI,SAAWiB,GAC3B,OAAQ2D,SAASoV,cAAc,WAAa/Y,EAAEu7B,aAAa,cAAgB53B,SAASoV,cAAc,iBAAmB/Y,EAAIA,EAAEiwB,aAAU,GACpI/wB,EAAI,SAAWc,GAChB,OAAOA,EAAEu7B,aAAa,wBAAqB,GAAUv7B,EAAEqN,aAAa,kBAAmB,IAAKzN,EAAE,QAAS,CACrGgV,UAAW5U,EACX8U,aAAc,WACZ,OAAOzS,EAAErC,QAGZqC,EAAI,SAAWrC,GAChB,OAAOZ,EAAEY,GAAIqG,EAAErG,IACdZ,EAAI,SAAWY,GAChB,OAAQ,mBAAqB2D,SAASk4C,sBAAwBl4C,SAASk4C,sBAAsB,6BAA0B,IAAWl4C,SAASm4C,YAAY,wBAAwB,GAAI,GAAKv8C,EAAE,kBAAmB,CAC3MqV,UAAW5U,EACXkJ,gBAAgB,UACZ,GACL7C,EAAI,WACL,IAAIrG,EACJ,QAAQ,mBAAqB2D,SAASk4C,sBAAwBl4C,SAASk4C,sBAAsB,kCAA+B,IAA6D,SAAjD77C,EAAI2B,EAAE6O,OAAOyD,gBAAyB,QAAE6C,UAAwB,MAAQ9W,OAAgE,EAA3D2D,SAASm4C,YAAY,6BAA6B,EAAI97C,IAC1Qb,EAAI,SAAWa,GAChB,OAAOA,EAAEu7B,aAAa,aAAU,EAASv7B,EAAEqN,aAAa,OAAQ,YAC/DtH,EAAI,SAAW/F,GAChB,IAAI2B,EACJ,IAAK3B,EAAEu7B,aAAa,gBAAkBv7B,EAAEu7B,aAAa,mBAAoB,OAAQ55B,EAAI,WACnF,IAAIA,EAAGpB,EAAGzB,EACV,OAAOA,EAAI,WACT,IAAIyB,EAAGzB,EAAGS,EAAGK,EAEb,IAAmBA,EAAI,GAAIW,EAAI,EAAGzB,GAA7BS,EAAIS,EAAE+7C,QAA6Bp5C,OAAQ7D,EAAIyB,EAAGA,IACrDoB,EAAIpC,EAAEgB,GAAIoB,EAAEq6C,SAASh8C,IAAMJ,EAAE8B,KAAKC,EAAE2V,aAGtC,OAAO1X,EAPE,IAQLW,EAAIzB,EAAE6S,KAAK,MAAQ3R,EAAEqN,aAAa,aAAc9M,GAAKP,EAAEsO,gBAAgB,kBACzE/O,EAAE,QAAS,CACfqV,UAAW5U,EACX8U,aAAcnT,KAEff,EACML,EAAE8P,qBAAuB,CAC9B2nB,QAAS,SACTuC,MAAO,QACL,CACFvC,QAAS,eACTuC,MAAO,OAEN,CACH3hB,WAAY,+QAAiR5Y,EAAI,oDAAsDA,EAAI,sHAAwHA,EAAI,oKAAsKY,EAAEo3B,QAAU,0BAA4Bp3B,EAAE25B,MAAQ,kUAC/qBf,OAAQ,CACN75B,IAAK,WACH,OAAOuB,KAAKq6B,aAAa,WAAar6B,KAAK6M,aAAa,YAAc7M,KAAKmM,aAAa,YAAa/I,GAAIpD,KAAKs4B,UAGlHuiB,OAAQ,CACNp8C,IAAK,WACH,IAAIK,EAAG2B,EAAGpB,EACV,OAAOoB,EAAI,GAAIT,KAAKgQ,IAAMhQ,KAAK06C,eAAiBj6C,EAAED,KAAKI,MAAMH,EAAGT,KAAK06C,cAAc7wC,iBAAiB,cAAgB7J,KAAKgQ,GAAK,QAASlR,EAAIlB,EAAEoC,KAAM,CACjJ2T,iBAAkB,cACXtU,EAAIP,EAAEkvB,WAAahuB,MAAQ,OAASX,IAAMoB,EAAED,KAAK1B,GAAI2B,IAGlE83C,eAAgB,CACd95C,IAAK,WACH,IAAIK,EAAG2B,EAAGpB,EACV,OAAOW,KAAKq6B,aAAa,WAAa,OAAS55B,EAAIT,KAAK06C,eAAiBj6C,EAAEgjB,eAAezjB,KAAK6M,aAAa,iBAAc,EAAS7M,KAAK4D,YAAcvE,EAAI,gBAAkBW,KAAKs4B,OAAQt4B,KAAKmM,aAAa,UAAW9M,GAAIP,EAAIa,EAAE,eAAgB,CAC9OqQ,GAAI3Q,IACFW,KAAK4D,WAAWgU,aAAa9Y,EAAGkB,MAAOlB,QAAK,IAGpDi8C,aAAc,CACZt8C,IAAK,WACH,IAAIK,EAAG2B,EAAGpB,EACV,OAAOW,KAAKq6B,aAAa,SAAW,OAASh7B,EAAIW,KAAK06C,eAAiBr7C,EAAEokB,eAAezjB,KAAK6M,aAAa,eAAY,EAAS7M,KAAK4D,YAAcnD,EAAI,cAAgBT,KAAKs4B,OAAQt4B,KAAKmM,aAAa,QAAS1L,GAAI3B,EAAIa,EAAE,QAAS,CAC/NuE,KAAM,SACN8L,GAAIvP,IACFT,KAAK4D,WAAWgU,aAAa9Y,EAAGkB,KAAKyJ,oBAAqB3K,QAAK,IAGvE05C,OAAQ,CACN/5C,IAAK,WACH,IAAIK,EACJ,OAAO,OAASA,EAAIkB,KAAKg7C,kBAAoBl8C,EAAE05C,YAAS,IAG5Dr6C,KAAM,CACJM,IAAK,WACH,IAAIK,EACJ,OAAO,OAASA,EAAIkB,KAAK+6C,cAAgBj8C,EAAEX,UAAO,IAGtDU,MAAO,CACLJ,IAAK,WACH,IAAIK,EACJ,OAAO,OAASA,EAAIkB,KAAK+6C,cAAgBj8C,EAAED,WAAQ,GAErDmE,IAAK,SAAalE,GAChB,IAAI2B,EACJ,OAAOT,KAAKi7C,aAAen8C,EAAG,OAAS2B,EAAIT,KAAKw4C,QAAU/3C,EAAE4zC,SAASr0C,KAAKi7C,mBAAgB,IAG9FZ,OAAQ,SAAgBv7C,EAAG2B,GACzB,OAAOT,KAAKg7C,iBAAmBx5C,EAAE,QAAU1C,EAAG,CAC5C4U,UAAW1T,KACX6F,WAAYpF,SACT,GAEP05C,qBAAsB,SAA8Br7C,GAClD,IAAI2B,EACJ,OAAO,OAASA,EAAIT,KAAK+6C,cAAgBt6C,EAAE5B,MAAQC,OAAI,GAEzDiZ,WAAY,WACV,OAAO/X,KAAKq6B,aAAa,2BAAwB,GAAUr8B,EAAEgC,MAAO/B,EAAE+B,MAAO6E,EAAE7E,QAEjFgY,QAAS,WACP,OAAOhY,KAAKq6B,aAAa,2BAAwB,GAAUr6B,KAAKg7C,mBAAqBx5C,EAAE,yBAA0B,CAC/GkS,UAAW1T,OACTA,KAAKg7C,iBAAmB,IAAIv6C,EAAE03C,iBAAiB,CACjDC,cAAep4C,KACfusB,KAAMvsB,KAAKi7C,aAAej7C,KAAKnB,QAC7B0I,sBAAsB,SAAUzI,GAClC,OAAO,WACL,OAAO0C,EAAE,kBAAmB,CAC1BkS,UAAW5U,KAHS,CAMxBkB,QAASA,KAAKg7C,iBAAiBrE,2BAA4B32C,KAAKk7C,wBAAyBl7C,KAAKm7C,wBAAyBt9C,EAAEmC,QAE7HqG,WAAY,WACV,IAAIvH,EACJ,OAAO,OAASA,EAAIkB,KAAKg7C,mBAAqBl8C,EAAE83C,6BAA8B52C,KAAKo7C,0BAA2Bp7C,KAAKq7C,2BAErHH,sBAAuB,WACrB,OAAOl7C,KAAKs7C,cAAgBt7C,KAAKu7C,aAAan8C,KAAKY,MAAOC,OAAOqF,iBAAiB,QAAStF,KAAKs7C,eAAe,IAEjHF,wBAAyB,WACvB,OAAOn7C,OAAOuG,oBAAoB,QAASxG,KAAKs7C,eAAe,IAEjEH,sBAAuB,WACrB,OAAOn7C,KAAKw7C,cAAgBx7C,KAAKy7C,aAAar8C,KAAKY,MAAOC,OAAOqF,iBAAiB,QAAStF,KAAKw7C,eAAe,IAEjHH,wBAAyB,WACvB,OAAOp7C,OAAOuG,oBAAoB,QAASxG,KAAKw7C,eAAe,IAEjED,aAAc,SAAsBz8C,GAClC,IAAI2B,EACJ,IAAK3B,EAAEmJ,kBAAoBnJ,EAAEqF,UAAY,OAAS1D,EAAIT,KAAK+6C,cAAgBt6C,EAAEi7C,UAAO,GAAS,OAAO17C,KAAKic,SAE3Gw/B,aAAc,SAAsB38C,GAClC,IAAI2B,EACJ,KAAM3B,EAAEmJ,kBAAoBjI,KAAK86C,SAASh8C,EAAEqF,WAAa1D,EAAI7C,EAAEkB,EAAEqF,OAAQ,CACvEwP,iBAAkB,YACbhS,EAAE5D,KAAKiC,KAAK66C,OAAQp6C,GAAK,GAAI,OAAOT,KAAK+uB,SAElD9S,MAAO,WACL,OAAOjc,KAAKnB,MAAQmB,KAAKi7C,kBAI/Bl9C,KAAKiC,MAAO,aAAejC,KAAKiC,QACjCjC,KAAKiC,MAAO,UAA2DJ,EAAQjC,IAAYA,EAAOD,QAAUC,EAAOD,QAAU+C,OAAyD,2BAAR,KAAQ,mCACzL1C,KAAKiC,Q,oDCnjOP,SAASJ,EAAQE,GAAkC,OAAOF,EAAU,mBAAqBjB,QAAU,iBAAmBA,OAAOkB,SAAW,SAAUC,GAAO,cAAcA,GAAS,SAAUA,GAAO,OAAOA,GAAO,mBAAqBnB,QAAUmB,EAAIC,cAAgBpB,QAAUmB,IAAQnB,OAAOa,UAAY,gBAAkBM,GAAQF,EAAQE,GAEzU,IAAIsD,EAEJA,EAAI,WACF,OAAOpD,KADL,GAIJ,IAEEoD,EAAIA,GAAK,IAAIyM,SAAS,cAAb,GACT,MAAOpP,GAEiE,YAAjD,qBAAXR,OAAyB,YAAcL,EAAQK,WAAuBmD,EAAInD,QAMxFtC,EAAOD,QAAU0F,G,cCnBjBzF,EAAOD,QAAU,SAAUC,GAsBzB,OArBKA,EAAOg+C,kBACVh+C,EAAOi+C,UAAY,aAEnBj+C,EAAOk+C,MAAQ,GAEVl+C,EAAOm+C,WAAUn+C,EAAOm+C,SAAW,IACxCx9C,OAAOC,eAAeZ,EAAQ,SAAU,CACtCa,YAAY,EACZC,IAAK,WACH,OAAOd,EAAOE,KAGlBS,OAAOC,eAAeZ,EAAQ,KAAM,CAClCa,YAAY,EACZC,IAAK,WACH,OAAOd,EAAOC,KAGlBD,EAAOg+C,gBAAkB,GAGpBh+C,I,gBCtBT,UAEmBo+C,EAFnB,cAAmD,OAAOn8C,EAAU,mBAAqBjB,QAAU,iBAAmBA,OAAOkB,SAAW,SAAUC,GAAO,cAAcA,GAAS,SAAUA,GAAO,OAAOA,GAAO,mBAAqBnB,QAAUmB,EAAIC,cAAgBpB,QAAUmB,IAAQnB,OAAOa,UAAY,gBAAkBM,GAAQF,EAAQE,GAEtTi8C,EAEV,SAAUr+C,GACjB,aAQA,IAAIs+C,EANJ,SAA8BC,EAAIt+C,GAChC,OAEGs+C,EAFIt+C,EAAS,CACdD,QAAS,IACGC,EAAOD,SAAUC,EAAOD,QAGzBw+C,EAAqB,SAAUv+C,EAAQD,GAGhDC,EAAOD,QAER,SAAUy+C,GACX,IAAIC,EAAU,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAE1F,SAASC,EAAS13C,EAAGsnB,GACnB,IAAIzqB,EAAImD,EAAE,GACNxB,EAAIwB,EAAE,GACN1G,EAAI0G,EAAE,GACNzG,EAAIyG,EAAE,GAQVxB,IADAA,KADAlF,IADAA,KADAC,IADAA,KADAsD,IADAA,IAAM2B,EAAIlF,GAAKkF,EAAIjF,GAAK+tB,EAAE,GAAK,UAAY,IACjC,EAAIzqB,IAAM,IAAM2B,EAAI,GACpBA,GAAK3B,EAAIvD,GAAKguB,EAAE,GAAK,UAAY,IACjC,GAAK/tB,IAAM,IAAMsD,EAAI,GACrBA,GAAKtD,EAAIiF,GAAK8oB,EAAE,GAAK,UAAY,IACjC,GAAKhuB,IAAM,IAAMC,EAAI,GACrBA,GAAKD,EAAIuD,GAAKyqB,EAAE,GAAK,WAAa,IAClC,GAAK9oB,IAAM,IAAMlF,EAAI,EAQ/BkF,IADAA,KADAlF,IADAA,KADAC,IADAA,KADAsD,IADAA,IAAM2B,EAAIlF,GAAKkF,EAAIjF,GAAK+tB,EAAE,GAAK,UAAY,IACjC,EAAIzqB,IAAM,IAAM2B,EAAI,GACpBA,GAAK3B,EAAIvD,GAAKguB,EAAE,GAAK,WAAa,IAClC,GAAK/tB,IAAM,IAAMsD,EAAI,GACrBA,GAAKtD,EAAIiF,GAAK8oB,EAAE,GAAK,WAAa,IAClC,GAAKhuB,IAAM,IAAMC,EAAI,GACrBA,GAAKD,EAAIuD,GAAKyqB,EAAE,GAAK,SAAW,IAChC,GAAK9oB,IAAM,IAAMlF,EAAI,EAQ/BkF,IADAA,KADAlF,IADAA,KADAC,IADAA,KADAsD,IADAA,IAAM2B,EAAIlF,GAAKkF,EAAIjF,GAAK+tB,EAAE,GAAK,WAAa,IAClC,EAAIzqB,IAAM,IAAM2B,EAAI,GACpBA,GAAK3B,EAAIvD,GAAKguB,EAAE,GAAK,WAAa,IAClC,GAAK/tB,IAAM,IAAMsD,EAAI,GACrBA,GAAKtD,EAAIiF,GAAK8oB,EAAE,IAAM,MAAQ,IAC9B,GAAKhuB,IAAM,IAAMC,EAAI,GACrBA,GAAKD,EAAIuD,GAAKyqB,EAAE,IAAM,WAAa,IACnC,GAAK9oB,IAAM,IAAMlF,EAAI,EAQ/BkF,IADAA,KADAlF,IADAA,KADAC,IADAA,KADAsD,IADAA,IAAM2B,EAAIlF,GAAKkF,EAAIjF,GAAK+tB,EAAE,IAAM,WAAa,IACnC,EAAIzqB,IAAM,IAAM2B,EAAI,GACpBA,GAAK3B,EAAIvD,GAAKguB,EAAE,IAAM,SAAW,IACjC,GAAK/tB,IAAM,IAAMsD,EAAI,GACrBA,GAAKtD,EAAIiF,GAAK8oB,EAAE,IAAM,WAAa,IACnC,GAAKhuB,IAAM,IAAMC,EAAI,GACrBA,GAAKD,EAAIuD,GAAKyqB,EAAE,IAAM,WAAa,IACnC,GAAK9oB,IAAM,IAAMlF,EAAI,EAQ/BkF,IADAA,KADAlF,IADAA,KADAC,IADAA,KADAsD,IADAA,IAAM2B,EAAIjF,EAAID,GAAKC,GAAK+tB,EAAE,GAAK,UAAY,IACjC,EAAIzqB,IAAM,IAAM2B,EAAI,GACpBlF,EAAIkF,GAAKlF,GAAKguB,EAAE,GAAK,WAAa,IAClC,EAAI/tB,IAAM,IAAMsD,EAAI,GACpB2B,EAAI3B,GAAK2B,GAAK8oB,EAAE,IAAM,UAAY,IAClC,GAAKhuB,IAAM,IAAMC,EAAI,GACrBsD,EAAItD,GAAKsD,GAAKyqB,EAAE,GAAK,UAAY,IACjC,GAAK9oB,IAAM,IAAMlF,EAAI,EAQ/BkF,IADAA,KADAlF,IADAA,KADAC,IADAA,KADAsD,IADAA,IAAM2B,EAAIjF,EAAID,GAAKC,GAAK+tB,EAAE,GAAK,UAAY,IACjC,EAAIzqB,IAAM,IAAM2B,EAAI,GACpBlF,EAAIkF,GAAKlF,GAAKguB,EAAE,IAAM,SAAW,IACjC,EAAI/tB,IAAM,IAAMsD,EAAI,GACpB2B,EAAI3B,GAAK2B,GAAK8oB,EAAE,IAAM,UAAY,IAClC,GAAKhuB,IAAM,IAAMC,EAAI,GACrBsD,EAAItD,GAAKsD,GAAKyqB,EAAE,GAAK,UAAY,IACjC,GAAK9oB,IAAM,IAAMlF,EAAI,EAQ/BkF,IADAA,KADAlF,IADAA,KADAC,IADAA,KADAsD,IADAA,IAAM2B,EAAIjF,EAAID,GAAKC,GAAK+tB,EAAE,GAAK,UAAY,IACjC,EAAIzqB,IAAM,IAAM2B,EAAI,GACpBlF,EAAIkF,GAAKlF,GAAKguB,EAAE,IAAM,WAAa,IACnC,EAAI/tB,IAAM,IAAMsD,EAAI,GACpB2B,EAAI3B,GAAK2B,GAAK8oB,EAAE,GAAK,UAAY,IACjC,GAAKhuB,IAAM,IAAMC,EAAI,GACrBsD,EAAItD,GAAKsD,GAAKyqB,EAAE,GAAK,WAAa,IAClC,GAAK9oB,IAAM,IAAMlF,EAAI,EAQ/BkF,IADAA,KADAlF,IADAA,KADAC,IADAA,KADAsD,IADAA,IAAM2B,EAAIjF,EAAID,GAAKC,GAAK+tB,EAAE,IAAM,WAAa,IACnC,EAAIzqB,IAAM,IAAM2B,EAAI,GACpBlF,EAAIkF,GAAKlF,GAAKguB,EAAE,GAAK,SAAW,IAChC,EAAI/tB,IAAM,IAAMsD,EAAI,GACpB2B,EAAI3B,GAAK2B,GAAK8oB,EAAE,GAAK,WAAa,IAClC,GAAKhuB,IAAM,IAAMC,EAAI,GACrBsD,EAAItD,GAAKsD,GAAKyqB,EAAE,IAAM,WAAa,IACnC,GAAK9oB,IAAM,IAAMlF,EAAI,EAQ/BkF,IADAA,KADAlF,IADAA,KADAC,IADAA,KADAsD,IADAA,IAAM2B,EAAIlF,EAAIC,GAAK+tB,EAAE,GAAK,OAAS,IACzB,EAAIzqB,IAAM,IAAM2B,EAAI,GACpBA,EAAIlF,GAAKguB,EAAE,GAAK,WAAa,IAC7B,GAAK/tB,IAAM,IAAMsD,EAAI,GACrBA,EAAI2B,GAAK8oB,EAAE,IAAM,WAAa,IAC9B,GAAKhuB,IAAM,IAAMC,EAAI,GACrBA,EAAIsD,GAAKyqB,EAAE,IAAM,SAAW,IAC5B,GAAK9oB,IAAM,GAAKlF,EAAI,EAQ9BkF,IADAA,KADAlF,IADAA,KADAC,IADAA,KADAsD,IADAA,IAAM2B,EAAIlF,EAAIC,GAAK+tB,EAAE,GAAK,WAAa,IAC7B,EAAIzqB,IAAM,IAAM2B,EAAI,GACpBA,EAAIlF,GAAKguB,EAAE,GAAK,WAAa,IAC7B,GAAK/tB,IAAM,IAAMsD,EAAI,GACrBA,EAAI2B,GAAK8oB,EAAE,GAAK,UAAY,IAC5B,GAAKhuB,IAAM,IAAMC,EAAI,GACrBA,EAAIsD,GAAKyqB,EAAE,IAAM,WAAa,IAC9B,GAAK9oB,IAAM,GAAKlF,EAAI,EAQ9BkF,IADAA,KADAlF,IADAA,KADAC,IADAA,KADAsD,IADAA,IAAM2B,EAAIlF,EAAIC,GAAK+tB,EAAE,IAAM,UAAY,IAC7B,EAAIzqB,IAAM,IAAM2B,EAAI,GACpBA,EAAIlF,GAAKguB,EAAE,GAAK,UAAY,IAC5B,GAAK/tB,IAAM,IAAMsD,EAAI,GACrBA,EAAI2B,GAAK8oB,EAAE,GAAK,UAAY,IAC5B,GAAKhuB,IAAM,IAAMC,EAAI,GACrBA,EAAIsD,GAAKyqB,EAAE,GAAK,SAAW,IAC3B,GAAK9oB,IAAM,GAAKlF,EAAI,EAQ9BkF,IADAA,KADAlF,IADAA,KADAC,IADAA,KADAsD,IADAA,IAAM2B,EAAIlF,EAAIC,GAAK+tB,EAAE,GAAK,UAAY,IAC5B,EAAIzqB,IAAM,IAAM2B,EAAI,GACpBA,EAAIlF,GAAKguB,EAAE,IAAM,UAAY,IAC7B,GAAK/tB,IAAM,IAAMsD,EAAI,GACrBA,EAAI2B,GAAK8oB,EAAE,IAAM,UAAY,IAC7B,GAAKhuB,IAAM,IAAMC,EAAI,GACrBA,EAAIsD,GAAKyqB,EAAE,GAAK,UAAY,IAC5B,GAAK9oB,IAAM,GAAKlF,EAAI,EAQ9BkF,IADAA,KAHAjF,IADAA,IAAMiF,IADN3B,IADAA,IAAMvD,GAAKkF,GAAKjF,IAAM+tB,EAAE,GAAK,UAAY,IAC/B,EAAIzqB,IAAM,IAAM2B,EAAI,IACdlF,IAAMguB,EAAE,GAAK,WAAa,IAChC,GAAK/tB,IAAM,IAAMsD,EAAI,KAE/BvD,IADAA,IAAMuD,GAAKtD,GAAKiF,IAAM8oB,EAAE,IAAM,WAAa,IACjC,GAAKhuB,IAAM,IAAMC,EAAI,IACfsD,IAAMyqB,EAAE,GAAK,SAAW,IAC9B,GAAK9oB,IAAM,IAAMlF,EAAI,EAQ/BkF,IADAA,KAHAjF,IADAA,IAAMiF,IADN3B,IADAA,IAAMvD,GAAKkF,GAAKjF,IAAM+tB,EAAE,IAAM,WAAa,IACjC,EAAIzqB,IAAM,IAAM2B,EAAI,IACdlF,IAAMguB,EAAE,GAAK,WAAa,IAChC,GAAK/tB,IAAM,IAAMsD,EAAI,KAE/BvD,IADAA,IAAMuD,GAAKtD,GAAKiF,IAAM8oB,EAAE,IAAM,QAAU,IAC9B,GAAKhuB,IAAM,IAAMC,EAAI,IACfsD,IAAMyqB,EAAE,GAAK,WAAa,IAChC,GAAK9oB,IAAM,IAAMlF,EAAI,EAQ/BkF,IADAA,KAHAjF,IADAA,IAAMiF,IADN3B,IADAA,IAAMvD,GAAKkF,GAAKjF,IAAM+tB,EAAE,GAAK,WAAa,IAChC,EAAIzqB,IAAM,IAAM2B,EAAI,IACdlF,IAAMguB,EAAE,IAAM,SAAW,IAC/B,GAAK/tB,IAAM,IAAMsD,EAAI,KAE/BvD,IADAA,IAAMuD,GAAKtD,GAAKiF,IAAM8oB,EAAE,GAAK,WAAa,IAChC,GAAKhuB,IAAM,IAAMC,EAAI,IACfsD,IAAMyqB,EAAE,IAAM,WAAa,IACjC,GAAK9oB,IAAM,IAAMlF,EAAI,EAQ/BkF,IADAA,KAHAjF,IADAA,IAAMiF,IADN3B,IADAA,IAAMvD,GAAKkF,GAAKjF,IAAM+tB,EAAE,GAAK,UAAY,IAC/B,EAAIzqB,IAAM,IAAM2B,EAAI,IACdlF,IAAMguB,EAAE,IAAM,WAAa,IACjC,GAAK/tB,IAAM,IAAMsD,EAAI,KAE/BvD,IADAA,IAAMuD,GAAKtD,GAAKiF,IAAM8oB,EAAE,GAAK,UAAY,IAC/B,GAAKhuB,IAAM,IAAMC,EAAI,IACfsD,IAAMyqB,EAAE,GAAK,UAAY,IAC/B,GAAK9oB,IAAM,IAAMlF,EAAI,EAC/B0G,EAAE,GAAKnD,EAAImD,EAAE,GAAK,EAClBA,EAAE,GAAKxB,EAAIwB,EAAE,GAAK,EAClBA,EAAE,GAAK1G,EAAI0G,EAAE,GAAK,EAClBA,EAAE,GAAKzG,EAAIyG,EAAE,GAAK,EAGpB,SAAS23C,EAAO38C,GACd,IACI/B,EADA2+C,EAAU,GAGd,IAAK3+C,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvB2+C,EAAQ3+C,GAAK,GAAK+B,EAAEge,WAAW/f,IAAM+B,EAAEge,WAAW/f,EAAI,IAAM,IAAM+B,EAAEge,WAAW/f,EAAI,IAAM,KAAO+B,EAAEge,WAAW/f,EAAI,IAAM,IAGzH,OAAO2+C,EAGT,SAASC,EAAah7C,GACpB,IACI5D,EADA2+C,EAAU,GAGd,IAAK3+C,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvB2+C,EAAQ3+C,GAAK,GAAK4D,EAAE5D,IAAM4D,EAAE5D,EAAI,IAAM,IAAM4D,EAAE5D,EAAI,IAAM,KAAO4D,EAAE5D,EAAI,IAAM,IAG7E,OAAO2+C,EAGT,SAASE,EAAK98C,GACZ,IAEI/B,EACA6D,EACAi7C,EACAC,EACAC,EACAC,EAPAx9C,EAAIM,EAAE8B,OACNq7C,EAAQ,CAAC,YAAa,WAAY,WAAY,WAQlD,IAAKl/C,EAAI,GAAIA,GAAKyB,EAAGzB,GAAK,GACxBy+C,EAASS,EAAOR,EAAO38C,EAAEo9C,UAAUn/C,EAAI,GAAIA,KAO7C,IAHA6D,GADA9B,EAAIA,EAAEo9C,UAAUn/C,EAAI,KACT6D,OACXi7C,EAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAEhD9+C,EAAI,EAAGA,EAAI6D,EAAQ7D,GAAK,EAC3B8+C,EAAK9+C,GAAK,IAAM+B,EAAEge,WAAW/f,KAAOA,EAAI,GAAK,GAK/C,GAFA8+C,EAAK9+C,GAAK,IAAM,MAAQA,EAAI,GAAK,GAE7BA,EAAI,GAGN,IAFAy+C,EAASS,EAAOJ,GAEX9+C,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvB8+C,EAAK9+C,GAAK,EAWd,OANA++C,GADAA,EAAU,EAAJt9C,GACI2R,SAAS,IAAIpB,MAAM,kBAC7BgtC,EAAKrf,SAASof,EAAI,GAAI,IACtBE,EAAKtf,SAASof,EAAI,GAAI,KAAO,EAC7BD,EAAK,IAAME,EACXF,EAAK,IAAMG,EACXR,EAASS,EAAOJ,GACTI,EAGT,SAASE,EAAWx7C,GAClB,IAEI5D,EACA6D,EACAi7C,EACAC,EACAC,EACAC,EAPAx9C,EAAImC,EAAEC,OACNq7C,EAAQ,CAAC,YAAa,WAAY,WAAY,WAQlD,IAAKl/C,EAAI,GAAIA,GAAKyB,EAAGzB,GAAK,GACxBy+C,EAASS,EAAON,EAAah7C,EAAEy7C,SAASr/C,EAAI,GAAIA,KAOlD,IAHA6D,GADAD,EAAI5D,EAAI,GAAKyB,EAAImC,EAAEy7C,SAASr/C,EAAI,IAAM,IAAIs/C,WAAW,IAC1Cz7C,OACXi7C,EAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAEhD9+C,EAAI,EAAGA,EAAI6D,EAAQ7D,GAAK,EAC3B8+C,EAAK9+C,GAAK,IAAM4D,EAAE5D,KAAOA,EAAI,GAAK,GAKpC,GAFA8+C,EAAK9+C,GAAK,IAAM,MAAQA,EAAI,GAAK,GAE7BA,EAAI,GAGN,IAFAy+C,EAASS,EAAOJ,GAEX9+C,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvB8+C,EAAK9+C,GAAK,EAWd,OANA++C,GADAA,EAAU,EAAJt9C,GACI2R,SAAS,IAAIpB,MAAM,kBAC7BgtC,EAAKrf,SAASof,EAAI,GAAI,IACtBE,EAAKtf,SAASof,EAAI,GAAI,KAAO,EAC7BD,EAAK,IAAME,EACXF,EAAK,IAAMG,EACXR,EAASS,EAAOJ,GACTI,EAGT,SAASK,EAAK99C,GACZ,IACI+9C,EADAz9C,EAAI,GAGR,IAAKy9C,EAAI,EAAGA,EAAI,EAAGA,GAAK,EACtBz9C,GAAKy8C,EAAQ/8C,GAAS,EAAJ+9C,EAAQ,EAAI,IAAMhB,EAAQ/8C,GAAS,EAAJ+9C,EAAQ,IAG3D,OAAOz9C,EAGT,SAAS09C,EAAI14C,GACX,IAAI/G,EAEJ,IAAKA,EAAI,EAAGA,EAAI+G,EAAElD,OAAQ7D,GAAK,EAC7B+G,EAAE/G,GAAKu/C,EAAKx4C,EAAE/G,IAGhB,OAAO+G,EAAE8L,KAAK,IA4ChB,SAAS6sC,EAAOC,GAKd,MAJI,kBAAkBv4C,KAAKu4C,KACzBA,EAAMC,SAASC,mBAAmBF,KAG7BA,EAGT,SAASG,EAAoBH,EAAKI,GAChC,IAGI//C,EAHA6D,EAAS87C,EAAI97C,OACbm8C,EAAO,IAAIC,YAAYp8C,GACvBq8C,EAAM,IAAIZ,WAAWU,GAGzB,IAAKhgD,EAAI,EAAGA,EAAI6D,EAAQ7D,GAAK,EAC3BkgD,EAAIlgD,GAAK2/C,EAAI5/B,WAAW/f,GAG1B,OAAO+/C,EAAmBG,EAAMF,EAGlC,SAASG,EAAoBH,GAC3B,OAAOv4C,OAAOuY,aAAahd,MAAM,KAAM,IAAIs8C,WAAWU,IAGxD,SAASI,EAAwBC,EAAOC,EAAQP,GAC9C,IAAIQ,EAAS,IAAIjB,WAAWe,EAAMG,WAAaF,EAAOE,YAGtD,OAFAD,EAAOn7C,IAAI,IAAIk6C,WAAWe,IAC1BE,EAAOn7C,IAAI,IAAIk6C,WAAWgB,GAASD,EAAMG,YAClCT,EAAmBQ,EAASA,EAAOE,OAG5C,SAASC,EAAkBjB,GACzB,IAEI14C,EAFAsZ,EAAQ,GACRxc,EAAS47C,EAAI57C,OAGjB,IAAKkD,EAAI,EAAGA,EAAIlD,EAAS,EAAGkD,GAAK,EAC/BsZ,EAAMzd,KAAK+8B,SAAS8f,EAAIkB,OAAO55C,EAAG,GAAI,KAGxC,OAAOU,OAAOuY,aAAahd,MAAMyE,OAAQ4Y,GAG3C,SAASugC,IACPx+C,KAAKic,QA+KP,OArQIohC,EAAIZ,EAAK,UAEc,qBAAhBoB,aAAgCA,YAAYr+C,UAAUyC,OAC/D,WACE,SAASw8C,EAAMC,EAAKj9C,GAGlB,OAFAi9C,EAAY,EAANA,GAAW,GAEP,EACD57C,KAAKua,IAAIqhC,EAAMj9C,EAAQ,GAGzBqB,KAAK0qC,IAAIkR,EAAKj9C,GAGvBo8C,YAAYr+C,UAAUyC,MAAQ,SAAUsb,EAAMohC,GAC5C,IAGIC,EACAz6C,EACA06C,EACAC,EANAr9C,EAASzB,KAAKo+C,WACdW,EAAQN,EAAMlhC,EAAM9b,GACpB2rB,EAAM3rB,EAUV,OAJIk9C,IAAOxC,IACT/uB,EAAMqxB,EAAME,EAAIl9C,IAGds9C,EAAQ3xB,EACH,IAAIywB,YAAY,IAGzBe,EAAMxxB,EAAM2xB,EACZ56C,EAAS,IAAI05C,YAAYe,GACzBC,EAAc,IAAI3B,WAAW/4C,GAC7B26C,EAAc,IAAI5B,WAAWl9C,KAAM++C,EAAOH,GAC1CC,EAAY77C,IAAI87C,GACT36C,IAjCX,GAsFFq6C,EAASh/C,UAAUw/C,OAAS,SAAUzB,GAEpC,OADAv9C,KAAKi/C,aAAa3B,EAAOC,IAClBv9C,MAGTw+C,EAASh/C,UAAUy/C,aAAe,SAAUC,GAC1Cl/C,KAAKm/C,OAASD,EACdl/C,KAAKo/C,SAAWF,EAASz9C,OACzB,IACI7D,EADA6D,EAASzB,KAAKm/C,MAAM19C,OAGxB,IAAK7D,EAAI,GAAIA,GAAK6D,EAAQ7D,GAAK,GAC7By+C,EAASr8C,KAAKq/C,MAAO/C,EAAOt8C,KAAKm/C,MAAMpC,UAAUn/C,EAAI,GAAIA,KAI3D,OADAoC,KAAKm/C,MAAQn/C,KAAKm/C,MAAMpC,UAAUn/C,EAAI,IAC/BoC,MAGTw+C,EAASh/C,UAAU4tB,IAAM,SAAUkyB,GACjC,IAEI1hD,EAEA2hD,EAJA3B,EAAO59C,KAAKm/C,MACZ19C,EAASm8C,EAAKn8C,OAEdi7C,EAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAGzD,IAAK9+C,EAAI,EAAGA,EAAI6D,EAAQ7D,GAAK,EAC3B8+C,EAAK9+C,GAAK,IAAMggD,EAAKjgC,WAAW/f,KAAOA,EAAI,GAAK,GAYlD,OATAoC,KAAKw/C,QAAQ9C,EAAMj7C,GAEnB89C,EAAMlC,EAAIr9C,KAAKq/C,OAEXC,IACFC,EAAMjB,EAAkBiB,IAG1Bv/C,KAAKic,QACEsjC,GAGTf,EAASh/C,UAAUyc,MAAQ,WAIzB,OAHAjc,KAAKm/C,MAAQ,GACbn/C,KAAKo/C,QAAU,EACfp/C,KAAKq/C,MAAQ,CAAC,YAAa,WAAY,WAAY,WAC5Cr/C,MAGTw+C,EAASh/C,UAAUigD,SAAW,WAC5B,MAAO,CACL7B,KAAM59C,KAAKm/C,MACX19C,OAAQzB,KAAKo/C,QACbM,KAAM1/C,KAAKq/C,QAIfb,EAASh/C,UAAUmgD,SAAW,SAAU7C,GAItC,OAHA98C,KAAKm/C,MAAQrC,EAAMc,KACnB59C,KAAKo/C,QAAUtC,EAAMr7C,OACrBzB,KAAKq/C,MAAQvC,EAAM4C,KACZ1/C,MAGTw+C,EAASh/C,UAAUuU,QAAU,kBACpB/T,KAAKq/C,aACLr/C,KAAKm/C,aACLn/C,KAAKo/C,SAGdZ,EAASh/C,UAAUggD,QAAU,SAAU9C,EAAMj7C,GAC3C,IACIk7C,EACAC,EACAC,EAHAj/C,EAAI6D,EAMR,GAFAi7C,EAAK9+C,GAAK,IAAM,MAAQA,EAAI,GAAK,GAE7BA,EAAI,GAGN,IAFAy+C,EAASr8C,KAAKq/C,MAAO3C,GAEhB9+C,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvB8+C,EAAK9+C,GAAK,EAKd++C,GADAA,EAAqB,EAAf38C,KAAKo/C,SACDpuC,SAAS,IAAIpB,MAAM,kBAC7BgtC,EAAKrf,SAASof,EAAI,GAAI,IACtBE,EAAKtf,SAASof,EAAI,GAAI,KAAO,EAC7BD,EAAK,IAAME,EACXF,EAAK,IAAMG,EACXR,EAASr8C,KAAKq/C,MAAO3C,IAGvB8B,EAASkB,KAAO,SAAUnC,EAAK+B,GAC7B,OAAOd,EAASoB,WAAWtC,EAAOC,GAAM+B,IAG1Cd,EAASoB,WAAa,SAAUC,EAASP,GACvC,IACIC,EAAMlC,EADCZ,EAAKoD,IAEhB,OAAOP,EAAMhB,EAAkBiB,GAAOA,GAGxCf,EAASX,YAAc,WACrB79C,KAAKic,SAGPuiC,EAASX,YAAYr+C,UAAUw/C,OAAS,SAAUlB,GAChD,IAEIlgD,EAFAggD,EAAOI,EAAwBh+C,KAAKm/C,MAAMd,OAAQP,GAAK,GACvDr8C,EAASm8C,EAAKn8C,OAIlB,IAFAzB,KAAKo/C,SAAWtB,EAAIM,WAEfxgD,EAAI,GAAIA,GAAK6D,EAAQ7D,GAAK,GAC7By+C,EAASr8C,KAAKq/C,MAAO7C,EAAaoB,EAAKX,SAASr/C,EAAI,GAAIA,KAI1D,OADAoC,KAAKm/C,MAAQvhD,EAAI,GAAK6D,EAAS,IAAIy7C,WAAWU,EAAKS,OAAOp8C,MAAMrE,EAAI,KAAO,IAAIs/C,WAAW,GACnFl9C,MAGTw+C,EAASX,YAAYr+C,UAAU4tB,IAAM,SAAUkyB,GAC7C,IAGI1hD,EACA2hD,EAJA3B,EAAO59C,KAAKm/C,MACZ19C,EAASm8C,EAAKn8C,OACdi7C,EAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAIzD,IAAK9+C,EAAI,EAAGA,EAAI6D,EAAQ7D,GAAK,EAC3B8+C,EAAK9+C,GAAK,IAAMggD,EAAKhgD,KAAOA,EAAI,GAAK,GAYvC,OATAoC,KAAKw/C,QAAQ9C,EAAMj7C,GAEnB89C,EAAMlC,EAAIr9C,KAAKq/C,OAEXC,IACFC,EAAMjB,EAAkBiB,IAG1Bv/C,KAAKic,QACEsjC,GAGTf,EAASX,YAAYr+C,UAAUyc,MAAQ,WAIrC,OAHAjc,KAAKm/C,MAAQ,IAAIjC,WAAW,GAC5Bl9C,KAAKo/C,QAAU,EACfp/C,KAAKq/C,MAAQ,CAAC,YAAa,WAAY,WAAY,WAC5Cr/C,MAGTw+C,EAASX,YAAYr+C,UAAUigD,SAAW,WACxC,IAAI3C,EAAQ0B,EAASh/C,UAAUigD,SAAS1hD,KAAKiC,MAE7C,OADA88C,EAAMc,KAAOG,EAAoBjB,EAAMc,MAChCd,GAGT0B,EAASX,YAAYr+C,UAAUmgD,SAAW,SAAU7C,GAElD,OADAA,EAAMc,KAAOF,EAAoBZ,EAAMc,MAAM,GACtCY,EAASh/C,UAAUmgD,SAAS5hD,KAAKiC,KAAM88C,IAGhD0B,EAASX,YAAYr+C,UAAUuU,QAAUyqC,EAASh/C,UAAUuU,QAC5DyqC,EAASX,YAAYr+C,UAAUggD,QAAUhB,EAASh/C,UAAUggD,QAE5DhB,EAASX,YAAY6B,KAAO,SAAU5B,EAAKwB,GACzC,IACIC,EAAMlC,EADCL,EAAW,IAAIE,WAAWY,KAErC,OAAOwB,EAAMhB,EAAkBiB,GAAOA,GAGjCf,EAphBYzC,MAwhBnB+D,EAAiB,SAAwBC,EAAUC,GACrD,KAAMD,aAAoBC,GACxB,MAAM,IAAIl/C,UAAU,sCAIpBm/C,EAAc,WAChB,SAASznC,EAAiBrU,EAAQ+7C,GAChC,IAAK,IAAItiD,EAAI,EAAGA,EAAIsiD,EAAMz+C,OAAQ7D,IAAK,CACrC,IAAIuiD,EAAaD,EAAMtiD,GACvBuiD,EAAW3hD,WAAa2hD,EAAW3hD,aAAc,EACjD2hD,EAAW/3C,cAAe,EACtB,UAAW+3C,IAAYA,EAAWl9C,UAAW,GACjD3E,OAAOC,eAAe4F,EAAQg8C,EAAWhhD,IAAKghD,IAIlD,OAAO,SAAUH,EAAaI,EAAYC,GAGxC,OAFID,GAAY5nC,EAAiBwnC,EAAYxgD,UAAW4gD,GACpDC,GAAa7nC,EAAiBwnC,EAAaK,GACxCL,GAdO,GAkBdM,EAAYC,KAAK/gD,UAAUyC,OAASs+C,KAAK/gD,UAAUghD,UAAYD,KAAK/gD,UAAUihD,YAE9EC,EAAe,WASjB,SAASA,EAAa39B,GACpB+8B,EAAe9/C,KAAM0gD,GACrB1gD,KAAK+iB,KAAOA,EACZ/iB,KAAK2gD,UAAY,QACjB3gD,KAAK4gD,WAAa99C,KAAK+9C,KAAK7gD,KAAK+iB,KAAKD,KAAO9iB,KAAK2gD,WAClD3gD,KAAK8gD,WAAa,EAkDpB,OA/DAb,EAAYS,EAAc,KAAM,CAAC,CAC/BvhD,IAAK,SACLN,MAAO,SAAgBkkB,EAAMg+B,GACZ,IAAIL,EAAa39B,GACvB7jB,OAAO6hD,OAYpBd,EAAYS,EAAc,CAAC,CACzBvhD,IAAK,SACLN,MAAO,SAAgBkiD,GACrB,IAAIC,EAAQhhD,KAEZA,KAAK+gD,SAAWA,EAChB/gD,KAAKihD,UAAY,IAAIjF,EAAS6B,YAC9B79C,KAAKkhD,WAAa,IAAI75B,WACtBrnB,KAAKkhD,WAAW57C,iBAAiB,QAAQ,SAAUkrB,GACjD,OAAOwwB,EAAMG,kBAAkB3wB,MAEjCxwB,KAAKkhD,WAAW57C,iBAAiB,SAAS,SAAUkrB,GAClD,OAAOwwB,EAAMI,mBAAmB5wB,MAElCxwB,KAAKqhD,kBAEN,CACDliD,IAAK,oBACLN,MAAO,SAA2B2xB,GAGhC,GAFAxwB,KAAKihD,UAAUjC,OAAOxuB,EAAMrsB,OAAOg6C,SAE9Bn+C,KAAKqhD,gBAAiB,CACzB,IAAIC,EAAethD,KAAKihD,UAAU7zB,KAAI,GAClCm0B,EAAeC,KAAKF,GACxBthD,KAAK+gD,SAAS,KAAMQ,MAGvB,CACDpiD,IAAK,qBACLN,MAAO,SAA4B2xB,GACjCxwB,KAAK+gD,SAAS,iBAAmB/gD,KAAK+iB,KAAK5kB,QAE5C,CACDgB,IAAK,gBACLN,MAAO,WACL,GAAImB,KAAK8gD,WAAa9gD,KAAK4gD,YAAiC,GAAnB5gD,KAAK8gD,YAAsC,GAAnB9gD,KAAK4gD,WAAiB,CACrF,IAAI76B,EAAQ/lB,KAAK8gD,WAAa9gD,KAAK2gD,UAC/BvzB,EAAMtqB,KAAK0qC,IAAIznB,EAAQ/lB,KAAK2gD,UAAW3gD,KAAK+iB,KAAKD,MACjD7E,EAAQqiC,EAAUviD,KAAKiC,KAAK+iB,KAAMgD,EAAOqH,GAG7C,OAFAptB,KAAKkhD,WAAWz5B,kBAAkBxJ,GAClCje,KAAK8gD,cACE,EAEP,OAAO,MAINJ,EAhEU,GAqFnB,SAAS57B,EAAY28B,EAAMC,GAMzB,MALmB,iBAARD,IACTC,EAAWD,EACXA,EAAOh/C,UAGFg/C,EAAK5pC,cAAc6pC,GAG5B,SAASrzC,EAAc2W,EAAS9gB,GAC9B,IAAIy9C,EAAY9gD,UAAUY,OAAS,QAAsB06C,IAAjBt7C,UAAU,GAAmBA,UAAU,GAAK,GAChF29B,EAAWxZ,EAAQwZ,SACnBh2B,EAAUm5C,EAAUn5C,QACpBL,EAAaw5C,EAAUx5C,WACvBM,EAASk5C,EAAUl5C,OACnB+nB,EAAQ/tB,SAASqF,YAAY,SACjC0oB,EAAMzoB,UAAU7D,EAAMsE,IAAW,EAAML,IAAc,GACrDqoB,EAAM/nB,OAASA,GAAU,GAEzB,IACEuc,EAAQwZ,UAAW,EACnBxZ,EAAQ3W,cAAcmiB,GACtB,QACAxL,EAAQwZ,SAAWA,EAGrB,OAAOhO,EAGT,SAASoxB,EAAU/iD,GACjB,OAAImD,MAAMuV,QAAQ1Y,GACTA,EACEmD,MAAMub,KACRvb,MAAMub,KAAK1e,GAEX,GAAGoD,MAAMlE,KAAKc,GAIzB,IAAIgjD,EAAa,WACf,SAASA,EAAW9+B,EAAM++B,EAAU/iC,GAClC,IAAIiiC,EAAQhhD,KAEZ8/C,EAAe9/C,KAAM6hD,GACrB7hD,KAAK+iB,KAAOA,EACZ/iB,KAAK6F,WAAa,CAChBs6B,SAAUpd,EAAK5kB,KACf4jD,aAAch/B,EAAK7e,KACnB89C,UAAWj/B,EAAKD,KAChBg/B,SAAUA,GAEZ9hD,KAAKiiD,IAAM,IAAIC,eACfliD,KAAKiiD,IAAIE,KAAK,OAAQpjC,GAAK,GAC3B/e,KAAKiiD,IAAIG,aAAe,OACxBpiD,KAAKiiD,IAAII,iBAAiB,eAAgB,oBAC1CriD,KAAKiiD,IAAII,iBAAiB,SAAU,oBACpCriD,KAAKiiD,IAAII,iBAAiB,mBAAoB,kBAC9CriD,KAAKiiD,IAAII,iBAAiB,eA3E9B,SAAsBlkD,GACpB,IAAI6mB,EAAUF,EAAYriB,SAASkV,KAAM,cAAgBxZ,EAAO,MAEhE,GAAI6mB,EACF,OAAOA,EAAQnY,aAAa,WAuEcy1C,CAAa,eACvDtiD,KAAKiiD,IAAI38C,iBAAiB,QAAQ,SAAUkrB,GAC1C,OAAOwwB,EAAMuB,eAAe/xB,MAE9BxwB,KAAKiiD,IAAI38C,iBAAiB,SAAS,SAAUkrB,GAC3C,OAAOwwB,EAAMwB,gBAAgBhyB,MA6DjC,OAzDAyvB,EAAY4B,EAAY,CAAC,CACvB1iD,IAAK,SACLN,MAAO,SAAgBkiD,GACrB/gD,KAAK+gD,SAAWA,EAChB/gD,KAAKiiD,IAAIQ,KAAKtyC,KAAKQ,UAAU,CAC3B+xC,KAAM1iD,KAAK6F,gBAGd,CACD1G,IAAK,iBACLN,MAAO,SAAwB2xB,GAC7B,GAAIxwB,KAAK2iD,QAAU,KAAO3iD,KAAK2iD,OAAS,IAAK,CAC3C,IAAIC,EAAW5iD,KAAK4iD,SAChBC,EAAgBD,EAASC,qBACtBD,EAASC,cAChB7iD,KAAK6F,WAAa+8C,EAClB5iD,KAAK8iD,iBAAmBD,EACxB7iD,KAAK+gD,SAAS,KAAM/gD,KAAKmb,eAEzBnb,KAAKwiD,gBAAgBhyB,KAGxB,CACDrxB,IAAK,kBACLN,MAAO,SAAyB2xB,GAC9BxwB,KAAK+gD,SAAS,4BAA8B/gD,KAAK+iB,KAAK5kB,KAAO,cAAgB6B,KAAK2iD,UAEnF,CACDxjD,IAAK,SACLN,MAAO,WACL,IAAIs/C,EAAS,GAEb,IAAK,IAAIh/C,KAAOa,KAAK6F,WACnBs4C,EAAOh/C,GAAOa,KAAK6F,WAAW1G,GAGhC,OAAOg/C,IAER,CACDh/C,IAAK,SACLV,IAAK,WACH,OAAOuB,KAAKiiD,IAAIU,SAEjB,CACDxjD,IAAK,WACLV,IAAK,WACH,IAAIskD,EAAO/iD,KAAKiiD,IACZG,EAAeW,EAAKX,aACpBQ,EAAWG,EAAKH,SAEpB,MAAoB,QAAhBR,EACKQ,EAEAzyC,KAAKC,MAAMwyC,OAIjBf,EApFQ,GAuFbmB,EAAa,WACf,SAASA,EAAWN,GAClB,IAAI1B,EAAQhhD,KAEZ8/C,EAAe9/C,KAAMgjD,GACrBhjD,KAAK0iD,KAAOA,EACZ1iD,KAAK+iB,KAAO2/B,EAAK3/B,KACjB,IAAIkgC,EAAwBP,EAAKI,iBAC7B/jC,EAAMkkC,EAAsBlkC,IAC5BmkC,EAAUD,EAAsBC,QAKpC,IAAK,IAAI/jD,KAJTa,KAAKiiD,IAAM,IAAIC,eACfliD,KAAKiiD,IAAIE,KAAK,MAAOpjC,GAAK,GAC1B/e,KAAKiiD,IAAIG,aAAe,OAERc,EACdljD,KAAKiiD,IAAII,iBAAiBljD,EAAK+jD,EAAQ/jD,IAGzCa,KAAKiiD,IAAI38C,iBAAiB,QAAQ,SAAUkrB,GAC1C,OAAOwwB,EAAMuB,eAAe/xB,MAE9BxwB,KAAKiiD,IAAI38C,iBAAiB,SAAS,SAAUkrB,GAC3C,OAAOwwB,EAAMwB,gBAAgBhyB,MA6BjC,OAzBAyvB,EAAY+C,EAAY,CAAC,CACvB7jD,IAAK,SACLN,MAAO,SAAgBkiD,GACrB/gD,KAAK+gD,SAAWA,EAChB/gD,KAAKiiD,IAAIQ,KAAKziD,KAAK+iB,KAAK9gB,WAEzB,CACD9C,IAAK,iBACLN,MAAO,SAAwB2xB,GAC7B,IAAIuyB,EAAO/iD,KAAKiiD,IACZU,EAASI,EAAKJ,OACdC,EAAWG,EAAKH,SAEhBD,GAAU,KAAOA,EAAS,IAC5B3iD,KAAK+gD,SAAS,KAAM6B,GAEpB5iD,KAAKwiD,gBAAgBhyB,KAGxB,CACDrxB,IAAK,kBACLN,MAAO,SAAyB2xB,GAC9BxwB,KAAK+gD,SAAS,kBAAoB/gD,KAAK+iB,KAAK5kB,KAAO,cAAgB6B,KAAKiiD,IAAIU,YAGzEK,EAnDQ,GAsDbhzC,EAAK,EAELmzC,EAAe,WACjB,SAASA,EAAapgC,EAAMhE,EAAKqH,GAC/B05B,EAAe9/C,KAAMmjD,GACrBnjD,KAAKgQ,KAAOA,EACZhQ,KAAK+iB,KAAOA,EACZ/iB,KAAK+e,IAAMA,EACX/e,KAAKomB,SAAWA,EAkClB,OA/BA65B,EAAYkD,EAAc,CAAC,CACzBhkD,IAAK,SACLN,MAAO,SAAgBkiD,GACrB,IAAIC,EAAQhhD,KAEZ0gD,EAAaxhD,OAAOc,KAAK+iB,MAAM,SAAUqgC,EAAOtB,GAC9C,GAAIsB,EACFrC,EAASqC,OADX,CAKA,IAAIV,EAAO,IAAIb,EAAWb,EAAMj+B,KAAM++B,EAAUd,EAAMjiC,KACtDs7B,EAAO2G,EAAM56B,SAAU,oCAAqCs8B,EAAKT,KACjES,EAAKxjD,QAAO,SAAUkkD,GACpB,GAAIA,EACFrC,EAASqC,OACJ,CACL,IAAIC,EAAS,IAAIL,EAAWN,GAC5BrI,EAAO2G,EAAM56B,SAAU,mCAAoCi9B,EAAOpB,KAClEoB,EAAOnkD,QAAO,SAAUkkD,GAClBA,EACFrC,EAASqC,GAETrC,EAAS,KAAM2B,EAAKvnC,yBAQ3BgoC,EAxCU,GA2CnB,SAAS9I,EAAO/6C,EAAQgkD,GACtB,GAAIhkD,GAAuC,mBAAtBA,EAAOgkD,GAA2B,CACrD,IAAK,IAAIC,EAAO1iD,UAAUY,OAAQ+hD,EAAWxhD,MAAMuhD,EAAO,EAAIA,EAAO,EAAI,GAAIE,EAAO,EAAGA,EAAOF,EAAME,IAClGD,EAASC,EAAO,GAAK5iD,UAAU4iD,GAGjC,OAAOnkD,EAAOgkD,GAAY1iD,MAAMtB,EAAQkkD,IAI5C,IAAIE,EAAyB,WAC3B,SAASA,EAAuBzgC,EAAOF,GACrC+8B,EAAe9/C,KAAM0jD,GACrB1jD,KAAKijB,MAAQA,EACbjjB,KAAK+iB,KAAOA,EACZ/iB,KAAK2jD,aAAe,IAAIR,EAAanjD,KAAK+iB,KAAM/iB,KAAK+e,IAAK/e,MAC1DA,KAAK4jD,SAAS,cAoFhB,OAjFA3D,EAAYyD,EAAwB,CAAC,CACnCvkD,IAAK,QACLN,MAAO,SAAekiD,GACpB,IAAIC,EAAQhhD,KAER6jD,EAAcphD,SAASgL,cAAc,SACzCo2C,EAAY3/C,KAAO,SACnB2/C,EAAY1lD,KAAO6B,KAAKijB,MAAM9kB,KAC9B6B,KAAKijB,MAAM6gC,sBAAsB,cAAeD,GAChD7jD,KAAK4jD,SAAS,SACd5jD,KAAK2jD,aAAazkD,QAAO,SAAUkkD,EAAOv9C,GACpCu9C,GACFS,EAAYjgD,WAAWqR,YAAY4uC,GAEnC7C,EAAM+C,cAAcX,IAEpBS,EAAYhlD,MAAQgH,EAAWm+C,UAGjChD,EAAM4C,SAAS,OAEf7C,EAASqC,QAGZ,CACDjkD,IAAK,2BACLN,MAAO,SAAkC2xB,GACvC,IAAIyzB,EAAWzzB,EAAM0zB,OAAS1zB,EAAM2zB,MAAQ,IAExCF,GACFjkD,KAAK4jD,SAAS,WAAY,CACxBK,SAAUA,MAIf,CACD9kD,IAAK,WACLN,MAAO,SAAkBV,GACvB,IAAIsK,EAAS5H,UAAUY,OAAS,QAAsB06C,IAAjBt7C,UAAU,GAAmBA,UAAU,GAAK,GAGjF,OAFA4H,EAAOsa,KAAO/iB,KAAK+iB,KACnBta,EAAOuH,GAAKhQ,KAAK2jD,aAAa3zC,GACvB3B,EAAcrO,KAAKijB,MAAO,iBAAmB9kB,EAAM,CACxDsK,OAAQA,MAGX,CACDtJ,IAAK,gBACLN,MAAO,SAAuBukD,GAChBpjD,KAAK4jD,SAAS,QAAS,CACjCR,MAAOA,IAGEn7C,kBACTm8C,MAAMhB,KAGT,CACDjkD,IAAK,oCACLN,MAAO,SAA2CojD,GAChDjiD,KAAK4jD,SAAS,sBAAuB,CACnC3B,IAAKA,MAGR,CACD9iD,IAAK,mCACLN,MAAO,SAA0CojD,GAC/C,IAAIoC,EAASrkD,KAEbA,KAAK4jD,SAAS,yBAA0B,CACtC3B,IAAKA,IAEPA,EAAIoB,OAAO/9C,iBAAiB,YAAY,SAAUkrB,GAChD,OAAO6zB,EAAOC,yBAAyB9zB,QAG1C,CACDrxB,IAAK,MACLV,IAAK,WACH,OAAOuB,KAAKijB,MAAMpW,aAAa,8BAG5B62C,EA1FoB,GA+FzBa,EAA0B,WAC5B,SAASA,EAAwB7I,GArVnC,IAAsB+F,EAAMC,EAsVxB5B,EAAe9/C,KAAMukD,GACrBvkD,KAAK07C,KAAOA,EACZ17C,KAAKwkD,QAxVa/C,EAwVS/F,EAxVHgG,EAkVR,2DAjVC,iBAARD,IACTC,EAAWD,EACXA,EAAOh/C,UAIFm/C,EADQH,EAAK53C,iBAAiB63C,KAkVa+C,QAAO,SAAUxhC,GAC/D,OAAOA,EAAMO,MAAM/hB,UAuDvB,OAnDAw+C,EAAYsE,EAAyB,CAAC,CACpCplD,IAAK,QACLN,MAAO,SAAekiD,GACpB,IAAIC,EAAQhhD,KAER0kD,EAAc1kD,KAAK2kD,gCAsBvB3kD,KAAK4jD,SAAS,SApBY,SAASgB,IACjC,IAAIC,EAAaH,EAAY75C,QAEzBg6C,EACFA,EAAW9+B,OAAM,SAAUq9B,GACrBA,GACFrC,EAASqC,GAETpC,EAAM4C,SAAS,QAEfgB,QAIJ7D,IAEAC,EAAM4C,SAAS,QAKnBgB,KAED,CACDzlD,IAAK,gCACLN,MAAO,WACL,IAAI6lD,EAAc,GAOlB,OANA1kD,KAAKwkD,OAAO7jD,SAAQ,SAAUsiB,GAC5B2+B,EAAU3+B,EAAMO,OAAO7iB,SAAQ,SAAUoiB,GACvC,IAAI8hC,EAAa,IAAInB,EAAuBzgC,EAAOF,GACnD2hC,EAAYlkD,KAAKqkD,SAGdH,IAER,CACDvlD,IAAK,WACLN,MAAO,SAAkBV,GACvB,IAAIsK,EAAS5H,UAAUY,OAAS,QAAsB06C,IAAjBt7C,UAAU,GAAmBA,UAAU,GAAK,GACjF,OAAOwN,EAAcrO,KAAK07C,KAAM,kBAAoBv9C,EAAM,CACxDsK,OAAQA,QAIP87C,EA5DqB,GA+D1BO,EAAsB,iCACtBC,EAAsB,IAAIpiD,QAC1B+zC,GAAU,EAEd,SAAS3wB,IACF2wB,IACHA,GAAU,EACVj0C,SAAS6C,iBAAiB,QAAS0/C,GAAU,GAC7CviD,SAAS6C,iBAAiB,SAAU2/C,GACpCxiD,SAAS6C,iBAAiB,cAAe4/C,IAI7C,SAASF,EAASx0B,GAChB,IAAIrsB,EAASqsB,EAAMrsB,OAEI,SAAlBA,EAAOyR,SAAwC,UAAlBzR,EAAOyR,SAAuC,UAAfzR,EAAOD,OAAoBC,EAAOu3C,MACjGqJ,EAAoB/hD,IAAImB,EAAOu3C,KAAMv3C,GAIzC,SAAS8gD,EAAcz0B,GACrB20B,EAA0B30B,GAG5B,SAAS00B,EAAuB10B,GACF,QAAxBA,EAAMrsB,OAAOyR,SACfuvC,EAA0B30B,GAI9B,SAAS20B,EAA0B30B,GACjC,IAAIkrB,EAAOlrB,EAAMrsB,OAEjB,GAAIu3C,EAAKrhB,aAAayqB,GACpBt0B,EAAMxoB,qBADR,CAKA,IAAI68C,EAAa,IAAIN,EAAwB7I,GACzC8I,EAASK,EAAWL,OAEpBA,EAAO/iD,SACT+uB,EAAMxoB,iBACN0zC,EAAKvvC,aAAa24C,EAAqB,IACvCN,EAAO7jD,QAAQykD,GACfP,EAAW9+B,OAAM,SAAUq9B,GACzB1H,EAAKtuC,gBAAgB03C,GAEjB1B,EACFoB,EAAO7jD,QAAQ0kD,GAQvB,SAAoB3J,GAClB,IAAI4J,EAASP,EAAoBtmD,IAAIi9C,IAAS52B,EAAY42B,EAAM,2CAEhE,GAAI4J,EAAQ,CACV,IACI9mB,EADU8mB,EACS9mB,SACvB8mB,EAAO9mB,UAAW,EAClB8mB,EAAOv2B,QACPu2B,EAAO5hC,QACP4hC,EAAO9mB,SAAWA,OAElB8mB,EAAS7iD,SAASgL,cAAc,UACzBvJ,KAAO,SACdohD,EAAOtvC,MAAM8gB,QAAU,OACvB4kB,EAAKrlC,YAAYivC,GACjBA,EAAO5hC,QACPg4B,EAAKzmC,YAAYqwC,GAGnBP,EAAoBQ,OAAO7J,GAzBrB8J,CAAW9J,QA4BnB,SAAS0J,EAAQniC,GACfA,EAAMub,UAAW,EAGnB,SAAS6mB,EAAOpiC,GACdA,EAAMub,UAAW,EASnB98B,YANA,WACMzB,OAAOwlD,eACT1/B,MAIkB,GACtBroB,EAAQqoB,MAAQA,EAChBroB,EAAQylD,aAAeA,EACvB7kD,OAAOC,eAAeb,EAAS,aAAc,CAC3CmB,OAAO,KA/nC6D,WAAtBe,EAAQlC,IAA4C,qBAAXC,EAAyBo+C,EAAQr+C,IAAwD,EAAO,CAAC,QAAmB,2BAAP,EAAF,GAAS,iC,iBCH/M,kCAAmD,OAAOkC,EAAU,mBAAqBjB,QAAU,iBAAmBA,OAAOkB,SAAW,SAAUC,GAAO,cAAcA,GAAS,SAAUA,GAAO,OAAOA,GAAO,mBAAqBnB,QAAUmB,EAAIC,cAAgBpB,QAAUmB,IAAQnB,OAAOa,UAAY,gBAAkBM,GAAQF,EAAQE,IAQzU,YAEE,YACE,WACEE,KAAK0lD,MAAQ,CACXC,kBAAmB,yGACnBC,oBAAqB,CACnBlE,SAAU,oEACVmE,QAAS,eAEXC,oBAAqB,iEACrBC,mBAAoB,8BACpBC,uBAAwB,ySACxBC,oBAAqB,sMACrBC,mBAAoB,4MACpBC,kBAAmB,yCACnBC,oBAAqB,wCACrBC,sBAAuB,+EAExBtoD,KAAKiC,QACPjC,KAnBWiC,MAoBd,IAAI0lD,EApBU1lD,KAoBM0lD,OACpB,YACE,WACE,IAAIY,EACJA,EAAQ,KAERZ,EAAMa,aAAe,WACnB,IAAIC,EACJ,OAAOF,EAAkE,OAAzDE,EAAM/jD,SAASoV,cAAc,yBAAmC2uC,EAAI3G,aAAU,GAGhG6F,EAAMe,SAAW,WACf,OAAgB,MAATH,EAAgBA,EAAQZ,EAAMa,kBAEtCxoD,KAAKiC,MACR,WACE,IAAahC,EACbA,EAAIwN,QAAQhM,UAAU+a,SAAW/O,QAAQhM,UAAU6T,iBAAmB7H,QAAQhM,UAAUgU,oBAAsBhI,QAAQhM,UAAU+T,mBAAqB/H,QAAQhM,UAAUknD,kBAAoBl7C,QAAQhM,UAAU8T,sBAE7MoyC,EAAMnrC,QAAU,SAAUyK,EAAS08B,GACjC,OAAwB,MAApBA,EAASmE,QACJ7nD,EAAED,KAAKinB,EAAS08B,EAASA,YAAc1jD,EAAED,KAAKinB,EAAS08B,EAASmE,SAEhE7nD,EAAED,KAAKinB,EAAS08B,IAM3BgE,EAAMlsC,QAAU,SAAUwL,EAAS7lB,GACjC,IAAIqnD,EACJ,OAAmC,OAA3BA,EAAMxhC,EAAe,UAAawhC,EAAIrnD,QAAO,GAGvDumD,EAAM7rC,QAAU,SAAUmL,EAAS7lB,EAAKN,GAKtC,OAJwB,MAApBmmB,EAAe,WACjBA,EAAe,SAAI,IAGdA,EAAe,SAAE7lB,GAAON,GAGjC6mD,EAAMiB,EAAI,SAAUjF,GAClB,OAAO1/C,MAAMxC,UAAUyC,MAAMlE,KAAK0E,SAASoH,iBAAiB63C,MAE7D3jD,KAAKiC,MACR,WACE,IAAI2mD,EAAGC,EAAWC,EAClBF,EAAIjB,EAAMiB,EAEVE,EAAYnB,EAAMmB,UAAY,WAC5B,IAAIv4B,EAEJ,OADAA,EAAO7rB,SAASoV,cAAc,2BACfyW,EAAKuxB,SAGtB+G,EAAYlB,EAAMkB,UAAY,WAC5B,IAAIt4B,EAEJ,OADAA,EAAO7rB,SAASoV,cAAc,2BACfyW,EAAKuxB,SAGtB6F,EAAMoB,eAAiB,SAAU7E,GAC/B,IAAI8E,EAGJ,GAAa,OAFbA,EAAQF,KAGN,OAAO5E,EAAII,iBAAiB,eAAgB0E,IAIhDrB,EAAMsB,kBAAoB,WACxB,IAAIC,EAAOF,EAIX,GAHAA,EAAQF,IACRI,EAAQL,IAEK,MAATG,GAA0B,MAATE,EACnB,OAAON,EAAE,oBAAsBM,EAAQ,MAAMtmD,SAAQ,SAAUsiB,GAC7D,OAAOA,EAAMpkB,MAAQkoD,OAI1BhpD,KAAKiC,MACR,WACE,IAAIqI,EAAa6+C,EAAM3sC,EAASvS,EAChCuS,EAAUmrC,EAAMnrC,QAGW,oBAF3BlS,EAAcpI,OAAOoI,gBAGnBA,EAAc,SAAqBmoB,EAAO22B,GACxC,IAAIC,EAGJ,OAFAA,EAAM3kD,SAASqF,YAAY,gBACvBQ,gBAAgBkoB,EAAO22B,EAAO3+C,QAAS2+C,EAAOh/C,WAAYg/C,EAAO1+C,QAC9D2+C,IAGG5nD,UAAYS,OAAOiI,MAAM1I,UACrCwI,EAAiBK,EAAY7I,UAAUwI,eAEvCK,EAAY7I,UAAUwI,eAAiB,WACrC,IAAIm2C,EAWJ,OAVAA,EAASn2C,EAAejK,KAAKiC,MAEzBA,KAAKmI,aAAenI,KAAKiI,kBAC3B3J,OAAOC,eAAeyB,KAAM,mBAAoB,CAC9CvB,IAAK,WACH,OAAO,KAKN0/C,IAIX+I,EAAOxB,EAAMwB,KAAO,SAAUpnD,EAAK3B,EAAMoH,GACvC,IAAIirB,EAOJ,OANAA,EAAQ,IAAInoB,EAAYlK,EAAM,CAC5BqK,SAAS,EACTL,YAAY,EACZM,OAAQlD,IAEVzF,EAAIuO,cAAcmiB,IACVA,EAAMvoB,kBAGhBy9C,EAAM2B,eAAiB,SAAU5mD,GAI/B,OAHAymD,EAAKzmD,EAAE0D,OAAQ,yBACf1D,EAAEuH,iBACFvH,EAAE6sB,kBACK7sB,EAAEkG,4BAGX++C,EAAMt/B,SAAW,SAAUpB,EAAS08B,EAAU4F,EAAWC,GACvD,OAAOviC,EAAQ1f,iBAAiBgiD,GAAW,SAAU7mD,GACnD,IAAI0D,EAGJ,IAFAA,EAAS1D,EAAE0D,OAEAA,aAAkBqH,UAAY+O,EAAQpW,EAAQu9C,IACvDv9C,EAASA,EAAOP,WAGlB,GAAIO,aAAkBqH,UAAuC,IAA5B+7C,EAAQxpD,KAAKoG,EAAQ1D,GAEpD,OADAA,EAAEuH,iBACKvH,EAAE6sB,uBAIdvvB,KAAKiC,MACR,WACE,IAAIwnD,EAAeV,EAAgBW,EAAWhB,EAAgBiB,EAAgBC,EAC9ElB,EAAWf,EAAMe,SAAUK,EAAiBpB,EAAMoB,eAAuBpB,EAAMwB,KAC/EM,EAAgB,CACd,IAAK,MACLpnC,KAAM,aACNmM,KAAM,YACNq7B,IAAK,4BACLC,KAAM,oCACNC,OAAQ,6FAGVpC,EAAMqC,KAAO,SAAUlkD,GACrB,IAAIo+C,EAmBJ,OAlBAp+C,EAAU6jD,EAAe7jD,GACzBo+C,EAAMwF,EAAU5jD,GAAS,WACvB,IAAI2iD,EAAK5D,EAaT,OAZAA,EAAW+E,EAAwC,OAAvBnB,EAAMvE,EAAIW,UAAoB4D,EAAMvE,EAAI+F,aAAc/F,EAAIgG,kBAAkB,iBAEnE,IAAjCnlD,KAAKke,MAAMihC,EAAIU,OAAS,KACK,oBAApB9+C,EAAQqkD,SACjBrkD,EAAQqkD,QAAQtF,EAAUX,EAAIkG,WAAYlG,GAGf,oBAAlBp+C,EAAQu/C,OACjBv/C,EAAQu/C,MAAMR,EAAUX,EAAIkG,WAAYlG,GAIT,oBAArBp+C,EAAQukD,SAA0BvkD,EAAQukD,SAASnG,EAAKA,EAAIkG,iBAAc,OAGhE,MAAtBtkD,EAAQwkD,aAAuBxkD,EAAQwkD,WAAWpG,EAAKp+C,MAIvDo+C,EAAIxzC,aAAeyzC,eAAeoG,OAC7BrG,EAAIQ,KAAK5+C,EAAQ0B,WAD1B,IAKFmiD,EAAiB,SAAwB7jD,GAsBvC,OArBAA,EAAQkb,IAAMlb,EAAQkb,KAAOwpC,SAAS/mC,KACtC3d,EAAQK,KAAOL,EAAQK,KAAKmmB,cAEP,QAAjBxmB,EAAQK,MAAkBL,EAAQ0B,OAChC1B,EAAQkb,IAAIze,QAAQ,KAAO,EAC7BuD,EAAQkb,KAAO,IAAMlb,EAAQ0B,KAE7B1B,EAAQkb,KAAO,IAAMlb,EAAQ0B,MAIM,MAAnCiiD,EAAc3jD,EAAQ2kD,YACxB3kD,EAAQ2kD,SAAW,KAGrB3kD,EAAQ4kD,OAASjB,EAAc3jD,EAAQ2kD,UAEd,MAArB3kD,EAAQ2kD,WACV3kD,EAAQ4kD,QAAU,iBAGb5kD,GAGT4jD,EAAY,SAAmB5jD,EAAS6kD,GACtC,IAAIzG,EAsBJ,OArBAA,EAAM,IAAIC,gBACNC,KAAKt+C,EAAQK,KAAML,EAAQkb,KAAK,GACpCkjC,EAAII,iBAAiB,SAAUx+C,EAAQ4kD,QAEX,kBAAjB5kD,EAAQ0B,MACjB08C,EAAII,iBAAiB,eAAgB,oDAGlCx+C,EAAQ8kD,cACX1G,EAAII,iBAAiB,mBAAoB,kBACzCyE,EAAe7E,IAGjBA,EAAI2G,kBAAoB/kD,EAAQ+kD,gBAEhC3G,EAAI4G,mBAAqB,WACvB,GAAI5G,EAAIxzC,aAAeyzC,eAAe4G,KACpC,OAAOJ,EAAKzG,IAITA,GAGT0F,EAAkB,SAAyB/E,EAAU1+C,GACnD,IAAIkd,EAAQ0mC,EAEZ,GAAwB,kBAAblF,GAAyC,kBAAT1+C,EACzC,GAAIA,EAAK0L,MAAM,YACb,IACEgzC,EAAWzyC,KAAKC,MAAMwyC,GACtB,MAAOQ,SACJ,GAAIl/C,EAAK0L,MAAM,4BACpBk4C,EAASrlD,SAASgL,cAAc,WACzBtB,aAAa,QAASs6C,KAC7BqB,EAAO1nC,KAAOwiC,EACdngD,SAASkV,KAAKtB,YAAYyxC,GAAQlkD,WAAWqR,YAAY6yC,QACpD,GAAI5jD,EAAK0L,MAAM,sBAAuB,CAC3CwR,EAAS,IAAI3H,UACbvV,EAAOA,EAAKkN,QAAQ,MAAO,IAE3B,IACEwxC,EAAWxhC,EAAO1H,gBAAgBkpC,EAAU1+C,GAC5C,MAAOk/C,KAIb,OAAOR,GAGT8C,EAAMlkC,KAAO,SAAUwD,GACrB,OAAOA,EAAQxD,MAGjBkkC,EAAMqD,cAAgB,SAAUhqC,GAC9B,IAAOiqC,EAAcC,GACrBD,EAAevmD,SAASgL,cAAc,MACzB+T,KAAO+mC,SAAS/mC,KAC7BynC,EAAYxmD,SAASgL,cAAc,KAEnC,IAEE,OADAw7C,EAAUznC,KAAOzC,MACNkqC,EAAU3gB,UAAmC,MAAvB2gB,EAAU3gB,YAAsB2gB,EAAUz+C,MAAQw+C,EAAa1gB,SAAW,KAAO0gB,EAAax+C,OAASy+C,EAAU3gB,SAAW,KAAO2gB,EAAUz+C,MAC9K,MAAO44C,GAEP,OADIA,GACG,KAGVrlD,KAAKiC,MACR,WACE,IAAIua,EAASQ,EACbR,EAAUmrC,EAAMnrC,QAEhBQ,EAAU,SAAiBta,GACzB,OAAOuB,MAAMxC,UAAUyC,MAAMlE,KAAK0C,IAGpCilD,EAAMwD,iBAAmB,SAAUlkC,EAASmkC,GAC1C,IAAI3E,EAAQ2C,EAsCZ,OArCA3C,EAAS,CAACx/B,GAENzK,EAAQyK,EAAS,UACnBw/B,EAASzpC,EAAQiK,EAAQ9I,WAG3BirC,EAAS,GACT3C,EAAO7jD,SAAQ,SAAUsiB,GACvB,GAAKA,EAAM9kB,OAAQ8kB,EAAMub,WAIrBjkB,EAAQ0I,EAAO,wBAInB,OAAI1I,EAAQ0I,EAAO,UACVlI,EAAQkI,EAAMpf,SAASlD,SAAQ,SAAUyoD,GAC9C,GAAIA,EAAOC,SACT,OAAOlC,EAAO3mD,KAAK,CACjBrC,KAAM8kB,EAAM9kB,KACZU,MAAOuqD,EAAOvqD,WAIXokB,EAAMqmC,UAAoE,IAAzD,CAAC,QAAS,WAAY,UAAUhpD,QAAQ2iB,EAAM/e,MACjEijD,EAAO3mD,KAAK,CACjBrC,KAAM8kB,EAAM9kB,KACZU,MAAOokB,EAAMpkB,aAHV,KAQLsqD,GACFhC,EAAO3mD,KAAK2oD,GAGPhC,EAAOzpC,KAAI,SAAUupC,GAC1B,OAAkB,MAAdA,EAAM9oD,KACDs/C,mBAAmBwJ,EAAM9oD,MAAQ,IAAMs/C,mBAAmBwJ,EAAMpoD,OAEhEooD,KAERx2C,KAAK,MAGVi1C,EAAM6D,aAAe,SAAU7N,EAAMgG,GACnC,OAAInnC,EAAQmhC,EAAM,QACT3gC,EAAQ2gC,EAAKx/B,UAAUuoC,QAAO,SAAU+E,GAC7C,OAAOjvC,EAAQivC,EAAI9H,MAGd3mC,EAAQ2gC,EAAK7xC,iBAAiB63C,MAGxC3jD,KAAKiC,MACR,WACE,IAAIypD,EAAavC,EAAMG,EACvBH,EAAOxB,EAAMwB,KAAMG,EAAiB3B,EAAM2B,eAE1C3B,EAAMgE,cAAgB,SAAUjpD,GAC9B,IAAKgpD,EAAYzpD,MACf,OAAOqnD,EAAe5mD,IAI1BilD,EAAMiE,QAAU,SAAUC,EAAS5kC,GACjC,OAAO2kC,QAAQC,IAGjBH,EAAc,SAAqBzkC,GACjC,IAAI6kC,EAAQ9I,EAAU6I,EAGtB,KAFAA,EAAU5kC,EAAQnY,aAAa,iBAG7B,OAAO,EAKT,GAFAg9C,GAAS,EAEL3C,EAAKliC,EAAS,WAAY,CAC5B,IACE6kC,EAASnE,EAAMiE,QAAQC,EAAS5kC,GAChC,MAAOo+B,IAETrC,EAAWmG,EAAKliC,EAAS,mBAAoB,CAAC6kC,IAGhD,OAAOA,GAAU9I,IAElBhjD,KAAKiC,MACR,WACE,IAAI8pD,EAAoBC,EAAqBC,EAAoBC,EAAmBC,EAAoBC,EAAmBZ,EAAc/vC,EAAS4wC,EAAe7vC,EAASV,EAASwtC,EACnL9sC,EAAUmrC,EAAMnrC,QAASf,EAAUksC,EAAMlsC,QAASK,EAAU6rC,EAAM7rC,QAASwtC,EAAiB3B,EAAM2B,eAAgBkC,EAAe7D,EAAM6D,aAEvI7D,EAAM2E,sBAAwB,SAAU5pD,GAItC,GAFUT,UAEEw+B,SACV,OAAO6oB,EAAe5mD,IAI1BilD,EAAM4E,cAAgB,SAAU7pD,GAC9B,IAAIukB,EAEJ,GAAIvkB,aAAayH,MAAO,CACtB,GAAIkiD,EAAc3pD,GAChB,OAGFukB,EAAUvkB,EAAE0D,YAEZ6gB,EAAUvkB,EAGZ,OAAI8Z,EAAQyK,EAAS0gC,EAAMU,qBAClB+D,EAAkBnlC,GAChBzK,EAAQyK,EAAS0gC,EAAMW,wBAA0B9rC,EAAQyK,EAAS0gC,EAAMQ,oBAC1E+D,EAAkBjlC,GAChBzK,EAAQyK,EAAS0gC,EAAMK,oBACzBmE,EAAmBllC,QADrB,GAKT0gC,EAAM6E,eAAiB,SAAU9pD,GAC/B,IAAIukB,EAGJ,OAFAA,EAAUvkB,aAAayH,MAAQzH,EAAE0D,OAAS1D,EAEtC8Z,EAAQyK,EAAS0gC,EAAMU,qBAClB4D,EAAmBhlC,GACjBzK,EAAQyK,EAAS0gC,EAAMW,wBAA0B9rC,EAAQyK,EAAS0gC,EAAMO,qBAC1E6D,EAAmB9kC,GACjBzK,EAAQyK,EAAS0gC,EAAMK,oBACzBgE,EAAoB/kC,QADtB,GAKTglC,EAAqB,SAA4BhlC,GAC/C,IAAIwlC,EAEJ,IAAIhxC,EAAQwL,EAAS,gBAYrB,OANmB,OAFnBwlC,EAAcxlC,EAAQnY,aAAa,wBAGjCgN,EAAQmL,EAAS,kBAAmBA,EAAQjD,WAC5CiD,EAAQjD,UAAYyoC,GAGtBxlC,EAAQ1f,iBAAiB,QAAS+hD,GAC3BxtC,EAAQmL,EAAS,gBAAgB,IAG1CmlC,EAAoB,SAA2BnlC,GAC7C,IAAIylC,EASJ,OANoB,OAFpBA,EAAejxC,EAAQwL,EAAS,sBAG9BA,EAAQjD,UAAY0oC,EACpB5wC,EAAQmL,EAAS,kBAAmB,OAGtCA,EAAQxe,oBAAoB,QAAS6gD,GAC9BxtC,EAAQmL,EAAS,eAAgB,OAG1C+kC,EAAsB,SAA6BrO,GACjD,OAAO6N,EAAa7N,EAAMgK,EAAMO,qBAAqBtlD,QAAQmpD,IAG/DA,EAAqB,SAA4B9kC,GAC/C,IAAIwlC,EAEJ,IAAIhxC,EAAQwL,EAAS,gBAiBrB,OAXmB,OAFnBwlC,EAAcxlC,EAAQnY,aAAa,wBAG7B0N,EAAQyK,EAAS,WACnBnL,EAAQmL,EAAS,kBAAmBA,EAAQjD,WAC5CiD,EAAQjD,UAAYyoC,IAEpB3wC,EAAQmL,EAAS,kBAAmBA,EAAQnmB,OAC5CmmB,EAAQnmB,MAAQ2rD,IAIpBxlC,EAAQwZ,UAAW,EACZ3kB,EAAQmL,EAAS,gBAAgB,IAG1CklC,EAAqB,SAA4BxO,GAC/C,OAAO6N,EAAa7N,EAAMgK,EAAMQ,oBAAoBvlD,QAAQspD,IAG9DA,EAAoB,SAA2BjlC,GAC7C,IAAIylC,EAcJ,OAXoB,OAFpBA,EAAejxC,EAAQwL,EAAS,sBAG1BzK,EAAQyK,EAAS,UACnBA,EAAQjD,UAAY0oC,EAEpBzlC,EAAQnmB,MAAQ4rD,EAGlB5wC,EAAQmL,EAAS,kBAAmB,OAGtCA,EAAQwZ,UAAW,EACZ3kB,EAAQmL,EAAS,eAAgB,OAG1ColC,EAAgB,SAAuB55B,GACrC,IAAIg2B,EAAKvE,EAET,OAA2E,OAA5D,OADfA,EAA8B,OAAvBuE,EAAMh2B,EAAM/nB,QAAkB+9C,EAAI,QAAK,GACxBvE,EAAIgG,kBAAkB,uBAAoB,KAEjElqD,KAAKiC,MACR,WACE,IAAIqnD,EACJA,EAAiB3B,EAAM2B,eAEvB3B,EAAMgF,aAAe,SAAUjqD,GAC7B,IAAImmD,EAAWC,EAAWnL,EAAMiP,EAAanpC,EAAMjD,EAAMqsC,EAIzD,GAFAA,GADArsC,EAAOve,MACO6M,aAAa,eAwB3B,OAlBA2U,EAAOkkC,EAAMlkC,KAAKjD,GAClBsoC,EAAYnB,EAAMmB,YAClBD,EAAYlB,EAAMkB,YAClBlL,EAAOj5C,SAASgL,cAAc,QAC9Bk9C,EAAc,gCAAkCC,EAAS,qBAExC,MAAbhE,GAAkC,MAAbC,GAAsBnB,EAAMqD,cAAcvnC,KACjEmpC,GAAe,gBAAkB/D,EAAY,YAAcC,EAAY,sBAGzE8D,GAAe,0BACfjP,EAAKkP,OAAS,OACdlP,EAAKmP,OAASrpC,EACdk6B,EAAKv3C,OAASoa,EAAKpa,OACnBu3C,EAAK35B,UAAY4oC,EACjBjP,EAAK1lC,MAAM8gB,QAAU,OACrBr0B,SAASkX,KAAKtD,YAAYqlC,GAC1BA,EAAK7jC,cAAc,mBAAmB6L,QAC/B2jC,EAAe5mD,KAEvB1C,KAAKiC,MACR,WACE,IAAI+nD,EACAb,EACA1tC,EACAuvC,EACA+B,EACAvwC,EACA2uC,EACArvC,EACAwtC,EACAplD,EAAQ,GAAGA,MACfsY,EAAUmrC,EAAMnrC,QAASf,EAAUksC,EAAMlsC,QAASK,EAAU6rC,EAAM7rC,QAASqtC,EAAOxB,EAAMwB,KAAMG,EAAiB3B,EAAM2B,eAAgBU,EAAOrC,EAAMqC,KAAMgB,EAAgBrD,EAAMqD,cAAeG,EAAmBxD,EAAMwD,iBAEtN4B,EAAW,SAAkB9lC,GAC3B,IAAInmB,EAEJ,OAAgB,OADhBA,EAAQmmB,EAAQnY,aAAa,iBACK,UAAVhO,GAG1B6mD,EAAMqF,aAAe,SAAUtqD,GAC7B,IAAI6kD,EAAQ//C,EAAMijD,EAAUxjC,EAAS4lC,EAAQ7rC,EAAK6pC,EAGlD,OAAKkC,EAFL9lC,EAAUhlB,QAMLknD,EAAKliC,EAAS,gBAKnB4jC,EAAkB5jC,EAAQnY,aAAa,yBACvC27C,EAAWxjC,EAAQnY,aAAa,cAAgB,SAE5C0N,EAAQyK,EAAS0gC,EAAMK,qBACzBT,EAAS9rC,EAAQwL,EAAS,qBAC1B4lC,EAASpxC,EAAQwL,EAAS,iCAAmCA,EAAQ4lC,OACrE7rC,EAAMvF,EAAQwL,EAAS,iCAAmCA,EAAQnY,aAAa,WAAa07C,SAAS/mC,KAExE,QAAzBopC,EAAOvgC,gBACTtL,EAAMA,EAAI3N,QAAQ,QAAS,KAGL,wBAApB4T,EAAQgmC,SACVzlD,EAAO,IAAI+U,SAAS0K,GAEN,MAAVsgC,GACF//C,EAAKy5C,OAAOsG,EAAOnnD,KAAMmnD,EAAOzmD,QAGlC0G,EAAO2jD,EAAiBlkC,EAASsgC,GAGnCzrC,EAAQmL,EAAS,oBAAqB,MACtCnL,EAAQmL,EAAS,+BAAgC,MACjDnL,EAAQmL,EAAS,+BAAgC,OACxCzK,EAAQyK,EAAS0gC,EAAME,sBAAwBrrC,EAAQyK,EAAS0gC,EAAMI,sBAC/E8E,EAAS5lC,EAAQnY,aAAa,eAC9BkS,EAAMiG,EAAQnY,aAAa,YAC3BtH,EAAO2jD,EAAiBlkC,EAASA,EAAQnY,aAAa,kBAEtD+9C,EAAS5lC,EAAQnY,aAAa,eAC9BkS,EAAM2mC,EAAMlkC,KAAKwD,GACjBzf,EAAOyf,EAAQnY,aAAa,gBAG9Bk7C,EAAK,CACH7jD,KAAM0mD,GAAU,MAChB7rC,IAAKA,EACLxZ,KAAMA,EACNijD,SAAUA,EACVH,WAAY,SAAoBpG,EAAKp+C,GACnC,OAAIqjD,EAAKliC,EAAS,kBAAmB,CAACi9B,EAAKp+C,IAClCqjD,EAAKliC,EAAS,YAAa,CAACi9B,KAEnCiF,EAAKliC,EAAS,iBACP,IAGXkjC,QAAS,WACP,IAAI+C,EAEJ,OADAA,EAAO,GAAKpqD,UAAUY,OAASQ,EAAMlE,KAAK8C,UAAW,GAAK,GACnDqmD,EAAKliC,EAAS,eAAgBimC,IAEvC7H,MAAO,WACL,IAAI6H,EAEJ,OADAA,EAAO,GAAKpqD,UAAUY,OAASQ,EAAMlE,KAAK8C,UAAW,GAAK,GACnDqmD,EAAKliC,EAAS,aAAcimC,IAErC7C,SAAU,WACR,IAAI6C,EAEJ,OADAA,EAAO,GAAKpqD,UAAUY,OAASQ,EAAMlE,KAAK8C,UAAW,GAAK,GACnDqmD,EAAKliC,EAAS,gBAAiBimC,IAExCtC,YAAaI,EAAchqC,GAC3B6pC,gBAAoC,MAAnBA,GAA+C,UAApBA,IAEvCvB,EAAe5mD,KAtEpBymD,EAAKliC,EAAS,iBACP,KAwEX0gC,EAAMwF,sBAAwB,SAAUzqD,GACtC,IAAI6kD,EAAQ5J,EAIZ,GAFAA,GADA4J,EAAStlD,MACK07C,KAed,OATI4J,EAAOnnD,MACT0b,EAAQ6hC,EAAM,oBAAqB,CACjCv9C,KAAMmnD,EAAOnnD,KACbU,MAAOymD,EAAOzmD,QAIlBgb,EAAQ6hC,EAAM,4BAA6B4J,EAAO6F,gBAClDtxC,EAAQ6hC,EAAM,+BAAgC4J,EAAOz4C,aAAa,eAC3DgN,EAAQ6hC,EAAM,+BAAgC4J,EAAOz4C,aAAa,gBAG3E64C,EAAM0F,0BAA4B,SAAU3qD,GAC1C,IAAI8E,EAAM8lD,EAAyCT,EAQnD,GAPO5qD,KACP4qD,GADO5qD,KACQ6M,aAAa,gBAAkB,OAAOwd,cACrD9kB,EAFOvF,KAEK6M,aAAa,eAEzBw+C,GADY5qD,EAAEuZ,SAAWvZ,EAAEwZ,UACsB,QAAX2wC,IAAqBrlD,EACxB,MAAZ9E,EAAE6kD,QAA+B,IAAb7kD,EAAE6kD,QAEjB+F,EAC1B,OAAO5qD,EAAEkG,6BAGZ5I,KAAKiC,MACR,WACE,IAAI2mD,EAAGG,EAAgB1gC,EAAUmkC,EAAgBD,EAAepD,EAAMgE,EAAuB1xC,EAASkwC,EAAeW,EAAuBK,EAAcK,EAAcxE,EAAc6E,EAA2BpE,EAGjN,GAFAE,EAAOxB,EAAMwB,KAAM9gC,EAAWs/B,EAAMt/B,SAAU5M,EAAUksC,EAAMlsC,QAASmtC,EAAIjB,EAAMiB,EAAGK,EAAoBtB,EAAMsB,kBAAmBF,EAAiBpB,EAAMoB,eAAgBP,EAAeb,EAAMa,aAAc+D,EAAgB5E,EAAM4E,cAAeC,EAAiB7E,EAAM6E,eAAgBF,EAAwB3E,EAAM2E,sBAAuBX,EAAgBhE,EAAMgE,cAAe0B,EAA4B1F,EAAM0F,0BAA2BL,EAAerF,EAAMqF,aAAcG,EAAwBxF,EAAMwF,sBAAuBR,EAAehF,EAAMgF,aAErgB,qBAAXY,QAAqC,OAAXA,QAAkC,MAAfA,OAAOvD,KAAc,CAC3E,GAAIuD,OAAOC,MACT,MAAM,IAAI59C,MAAM,kEAGlB29C,OAAOC,MAAQ7F,EACf4F,OAAOE,eAAc,SAAU3nD,EAAS4nD,EAAiBxJ,GACvD,IAAKp+C,EAAQ8kD,YACX,OAAO7B,EAAe7E,MAK5ByD,EAAM3/B,MAAQ,WACZ,GAAI9lB,OAAOyrD,cACT,MAAM,IAAI/9C,MAAM,sCAiDlB,OA9CA1N,OAAOqF,iBAAiB,YAAY,WAMlC,OALAqhD,EAAEjB,EAAMQ,oBAAoBvlD,SAAQ,SAAU6oD,GAC5C,GAAIhwC,EAAQgwC,EAAI,gBACd,OAAOc,EAAcd,MAGlB7C,EAAEjB,EAAMU,qBAAqBzlD,SAAQ,SAAU6oD,GACpD,GAAIhwC,EAAQgwC,EAAI,gBACd,OAAOc,EAAcd,SAI3BpjC,EAAS3jB,SAAUijD,EAAMU,oBAAqB,gBAAiBkE,GAC/DlkC,EAAS3jB,SAAUijD,EAAMU,oBAAqB,eAAgBkE,GAC9DlkC,EAAS3jB,SAAUijD,EAAMW,sBAAuB,gBAAiBiE,GACjElkC,EAAS3jB,SAAUijD,EAAMW,sBAAuB,eAAgBiE,GAChElkC,EAAS3jB,SAAUijD,EAAMC,kBAAmB,QAASyF,GACrDhlC,EAAS3jB,SAAUijD,EAAMC,kBAAmB,QAAS0E,GACrDjkC,EAAS3jB,SAAUijD,EAAMC,kBAAmB,QAAS+D,GACrDtjC,EAAS3jB,SAAUijD,EAAMC,kBAAmB,QAAS4E,GACrDnkC,EAAS3jB,SAAUijD,EAAMC,kBAAmB,QAASoF,GACrD3kC,EAAS3jB,SAAUijD,EAAMC,kBAAmB,QAAS+E,GACrDtkC,EAAS3jB,SAAUijD,EAAME,oBAAqB,QAASwF,GACvDhlC,EAAS3jB,SAAUijD,EAAME,oBAAqB,QAASyE,GACvDjkC,EAAS3jB,SAAUijD,EAAME,oBAAqB,QAAS8D,GACvDtjC,EAAS3jB,SAAUijD,EAAME,oBAAqB,QAAS2E,GACvDnkC,EAAS3jB,SAAUijD,EAAME,oBAAqB,QAASmF,GACvD3kC,EAAS3jB,SAAUijD,EAAMI,oBAAqB,SAAUuE,GACxDjkC,EAAS3jB,SAAUijD,EAAMI,oBAAqB,SAAU4D,GACxDtjC,EAAS3jB,SAAUijD,EAAMI,oBAAqB,SAAUiF,GACxD3kC,EAAS3jB,SAAUijD,EAAMK,mBAAoB,SAAUsE,GACvDjkC,EAAS3jB,SAAUijD,EAAMK,mBAAoB,SAAU2D,GACvDtjC,EAAS3jB,SAAUijD,EAAMK,mBAAoB,SAAUgF,GACvD3kC,EAAS3jB,SAAUijD,EAAMK,mBAAoB,UAAU,SAAUtlD,GAC/D,OAAOiB,YAAW,WAChB,OAAO6oD,EAAe9pD,KACrB,OAEL2lB,EAAS3jB,SAAUijD,EAAMK,mBAAoB,YAAawE,GAC1DnkC,EAAS3jB,SAAUijD,EAAMK,mBAAoB,gBAAiBuE,GAC9DlkC,EAAS3jB,SAAUijD,EAAMM,uBAAwB,QAASoF,GAC1DhlC,EAAS3jB,SAAUijD,EAAMM,uBAAwB,QAASqE,GAC1DjkC,EAAS3jB,SAAUijD,EAAMM,uBAAwB,QAAS0D,GAC1DtjC,EAAS3jB,SAAUijD,EAAMM,uBAAwB,QAASkF,GAC1DzoD,SAAS6C,iBAAiB,mBAAoB0hD,GAC9CvkD,SAAS6C,iBAAiB,mBAAoBihD,GACvCtmD,OAAOyrD,eAAgB,GAG5BzrD,OAAOylD,QAAUA,GAASwB,EAAKzkD,SAAU,yBAC3CijD,EAAM3/B,SAEPhoB,KAAKiC,QACPjC,KAAKiC,MAEgE,WAArBJ,EAAQjC,IAAyBA,EAAOD,QACzFC,EAAOD,QAAUgoD,OAEL,2BAAZ,KAAY,oCAEb3nD,KAAKiC,Q,oCClyBR,UAEmB+7C,EAFnB,cAAmD,OAAOn8C,EAAU,mBAAqBjB,QAAU,iBAAmBA,OAAOkB,SAAW,SAAUC,GAAO,cAAcA,GAAS,SAAUA,GAAO,OAAOA,GAAO,mBAAqBnB,QAAUmB,EAAIC,cAAgBpB,QAAUmB,IAAQnB,OAAOa,UAAY,gBAAkBM,GAAQF,EAAQE,GAEtTi8C,EAEV,SAAUr+C,GACjB,aAQA,IAAIs+C,EANJ,SAA8BC,EAAIt+C,GAChC,OAEGs+C,EAFIt+C,EAAS,CACdD,QAAS,IACGC,EAAOD,SAAUC,EAAOD,QAGzBw+C,EAAqB,SAAUv+C,EAAQD,GAGhDC,EAAOD,QAER,SAAUy+C,GACX,IAAIC,EAAU,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAE1F,SAASC,EAAS13C,EAAGsnB,GACnB,IAAIzqB,EAAImD,EAAE,GACNxB,EAAIwB,EAAE,GACN1G,EAAI0G,EAAE,GACNzG,EAAIyG,EAAE,GAQVxB,IADAA,KADAlF,IADAA,KADAC,IADAA,KADAsD,IADAA,IAAM2B,EAAIlF,GAAKkF,EAAIjF,GAAK+tB,EAAE,GAAK,UAAY,IACjC,EAAIzqB,IAAM,IAAM2B,EAAI,GACpBA,GAAK3B,EAAIvD,GAAKguB,EAAE,GAAK,UAAY,IACjC,GAAK/tB,IAAM,IAAMsD,EAAI,GACrBA,GAAKtD,EAAIiF,GAAK8oB,EAAE,GAAK,UAAY,IACjC,GAAKhuB,IAAM,IAAMC,EAAI,GACrBA,GAAKD,EAAIuD,GAAKyqB,EAAE,GAAK,WAAa,IAClC,GAAK9oB,IAAM,IAAMlF,EAAI,EAQ/BkF,IADAA,KADAlF,IADAA,KADAC,IADAA,KADAsD,IADAA,IAAM2B,EAAIlF,GAAKkF,EAAIjF,GAAK+tB,EAAE,GAAK,UAAY,IACjC,EAAIzqB,IAAM,IAAM2B,EAAI,GACpBA,GAAK3B,EAAIvD,GAAKguB,EAAE,GAAK,WAAa,IAClC,GAAK/tB,IAAM,IAAMsD,EAAI,GACrBA,GAAKtD,EAAIiF,GAAK8oB,EAAE,GAAK,WAAa,IAClC,GAAKhuB,IAAM,IAAMC,EAAI,GACrBA,GAAKD,EAAIuD,GAAKyqB,EAAE,GAAK,SAAW,IAChC,GAAK9oB,IAAM,IAAMlF,EAAI,EAQ/BkF,IADAA,KADAlF,IADAA,KADAC,IADAA,KADAsD,IADAA,IAAM2B,EAAIlF,GAAKkF,EAAIjF,GAAK+tB,EAAE,GAAK,WAAa,IAClC,EAAIzqB,IAAM,IAAM2B,EAAI,GACpBA,GAAK3B,EAAIvD,GAAKguB,EAAE,GAAK,WAAa,IAClC,GAAK/tB,IAAM,IAAMsD,EAAI,GACrBA,GAAKtD,EAAIiF,GAAK8oB,EAAE,IAAM,MAAQ,IAC9B,GAAKhuB,IAAM,IAAMC,EAAI,GACrBA,GAAKD,EAAIuD,GAAKyqB,EAAE,IAAM,WAAa,IACnC,GAAK9oB,IAAM,IAAMlF,EAAI,EAQ/BkF,IADAA,KADAlF,IADAA,KADAC,IADAA,KADAsD,IADAA,IAAM2B,EAAIlF,GAAKkF,EAAIjF,GAAK+tB,EAAE,IAAM,WAAa,IACnC,EAAIzqB,IAAM,IAAM2B,EAAI,GACpBA,GAAK3B,EAAIvD,GAAKguB,EAAE,IAAM,SAAW,IACjC,GAAK/tB,IAAM,IAAMsD,EAAI,GACrBA,GAAKtD,EAAIiF,GAAK8oB,EAAE,IAAM,WAAa,IACnC,GAAKhuB,IAAM,IAAMC,EAAI,GACrBA,GAAKD,EAAIuD,GAAKyqB,EAAE,IAAM,WAAa,IACnC,GAAK9oB,IAAM,IAAMlF,EAAI,EAQ/BkF,IADAA,KADAlF,IADAA,KADAC,IADAA,KADAsD,IADAA,IAAM2B,EAAIjF,EAAID,GAAKC,GAAK+tB,EAAE,GAAK,UAAY,IACjC,EAAIzqB,IAAM,IAAM2B,EAAI,GACpBlF,EAAIkF,GAAKlF,GAAKguB,EAAE,GAAK,WAAa,IAClC,EAAI/tB,IAAM,IAAMsD,EAAI,GACpB2B,EAAI3B,GAAK2B,GAAK8oB,EAAE,IAAM,UAAY,IAClC,GAAKhuB,IAAM,IAAMC,EAAI,GACrBsD,EAAItD,GAAKsD,GAAKyqB,EAAE,GAAK,UAAY,IACjC,GAAK9oB,IAAM,IAAMlF,EAAI,EAQ/BkF,IADAA,KADAlF,IADAA,KADAC,IADAA,KADAsD,IADAA,IAAM2B,EAAIjF,EAAID,GAAKC,GAAK+tB,EAAE,GAAK,UAAY,IACjC,EAAIzqB,IAAM,IAAM2B,EAAI,GACpBlF,EAAIkF,GAAKlF,GAAKguB,EAAE,IAAM,SAAW,IACjC,EAAI/tB,IAAM,IAAMsD,EAAI,GACpB2B,EAAI3B,GAAK2B,GAAK8oB,EAAE,IAAM,UAAY,IAClC,GAAKhuB,IAAM,IAAMC,EAAI,GACrBsD,EAAItD,GAAKsD,GAAKyqB,EAAE,GAAK,UAAY,IACjC,GAAK9oB,IAAM,IAAMlF,EAAI,EAQ/BkF,IADAA,KADAlF,IADAA,KADAC,IADAA,KADAsD,IADAA,IAAM2B,EAAIjF,EAAID,GAAKC,GAAK+tB,EAAE,GAAK,UAAY,IACjC,EAAIzqB,IAAM,IAAM2B,EAAI,GACpBlF,EAAIkF,GAAKlF,GAAKguB,EAAE,IAAM,WAAa,IACnC,EAAI/tB,IAAM,IAAMsD,EAAI,GACpB2B,EAAI3B,GAAK2B,GAAK8oB,EAAE,GAAK,UAAY,IACjC,GAAKhuB,IAAM,IAAMC,EAAI,GACrBsD,EAAItD,GAAKsD,GAAKyqB,EAAE,GAAK,WAAa,IAClC,GAAK9oB,IAAM,IAAMlF,EAAI,EAQ/BkF,IADAA,KADAlF,IADAA,KADAC,IADAA,KADAsD,IADAA,IAAM2B,EAAIjF,EAAID,GAAKC,GAAK+tB,EAAE,IAAM,WAAa,IACnC,EAAIzqB,IAAM,IAAM2B,EAAI,GACpBlF,EAAIkF,GAAKlF,GAAKguB,EAAE,GAAK,SAAW,IAChC,EAAI/tB,IAAM,IAAMsD,EAAI,GACpB2B,EAAI3B,GAAK2B,GAAK8oB,EAAE,GAAK,WAAa,IAClC,GAAKhuB,IAAM,IAAMC,EAAI,GACrBsD,EAAItD,GAAKsD,GAAKyqB,EAAE,IAAM,WAAa,IACnC,GAAK9oB,IAAM,IAAMlF,EAAI,EAQ/BkF,IADAA,KADAlF,IADAA,KADAC,IADAA,KADAsD,IADAA,IAAM2B,EAAIlF,EAAIC,GAAK+tB,EAAE,GAAK,OAAS,IACzB,EAAIzqB,IAAM,IAAM2B,EAAI,GACpBA,EAAIlF,GAAKguB,EAAE,GAAK,WAAa,IAC7B,GAAK/tB,IAAM,IAAMsD,EAAI,GACrBA,EAAI2B,GAAK8oB,EAAE,IAAM,WAAa,IAC9B,GAAKhuB,IAAM,IAAMC,EAAI,GACrBA,EAAIsD,GAAKyqB,EAAE,IAAM,SAAW,IAC5B,GAAK9oB,IAAM,GAAKlF,EAAI,EAQ9BkF,IADAA,KADAlF,IADAA,KADAC,IADAA,KADAsD,IADAA,IAAM2B,EAAIlF,EAAIC,GAAK+tB,EAAE,GAAK,WAAa,IAC7B,EAAIzqB,IAAM,IAAM2B,EAAI,GACpBA,EAAIlF,GAAKguB,EAAE,GAAK,WAAa,IAC7B,GAAK/tB,IAAM,IAAMsD,EAAI,GACrBA,EAAI2B,GAAK8oB,EAAE,GAAK,UAAY,IAC5B,GAAKhuB,IAAM,IAAMC,EAAI,GACrBA,EAAIsD,GAAKyqB,EAAE,IAAM,WAAa,IAC9B,GAAK9oB,IAAM,GAAKlF,EAAI,EAQ9BkF,IADAA,KADAlF,IADAA,KADAC,IADAA,KADAsD,IADAA,IAAM2B,EAAIlF,EAAIC,GAAK+tB,EAAE,IAAM,UAAY,IAC7B,EAAIzqB,IAAM,IAAM2B,EAAI,GACpBA,EAAIlF,GAAKguB,EAAE,GAAK,UAAY,IAC5B,GAAK/tB,IAAM,IAAMsD,EAAI,GACrBA,EAAI2B,GAAK8oB,EAAE,GAAK,UAAY,IAC5B,GAAKhuB,IAAM,IAAMC,EAAI,GACrBA,EAAIsD,GAAKyqB,EAAE,GAAK,SAAW,IAC3B,GAAK9oB,IAAM,GAAKlF,EAAI,EAQ9BkF,IADAA,KADAlF,IADAA,KADAC,IADAA,KADAsD,IADAA,IAAM2B,EAAIlF,EAAIC,GAAK+tB,EAAE,GAAK,UAAY,IAC5B,EAAIzqB,IAAM,IAAM2B,EAAI,GACpBA,EAAIlF,GAAKguB,EAAE,IAAM,UAAY,IAC7B,GAAK/tB,IAAM,IAAMsD,EAAI,GACrBA,EAAI2B,GAAK8oB,EAAE,IAAM,UAAY,IAC7B,GAAKhuB,IAAM,IAAMC,EAAI,GACrBA,EAAIsD,GAAKyqB,EAAE,GAAK,UAAY,IAC5B,GAAK9oB,IAAM,GAAKlF,EAAI,EAQ9BkF,IADAA,KAHAjF,IADAA,IAAMiF,IADN3B,IADAA,IAAMvD,GAAKkF,GAAKjF,IAAM+tB,EAAE,GAAK,UAAY,IAC/B,EAAIzqB,IAAM,IAAM2B,EAAI,IACdlF,IAAMguB,EAAE,GAAK,WAAa,IAChC,GAAK/tB,IAAM,IAAMsD,EAAI,KAE/BvD,IADAA,IAAMuD,GAAKtD,GAAKiF,IAAM8oB,EAAE,IAAM,WAAa,IACjC,GAAKhuB,IAAM,IAAMC,EAAI,IACfsD,IAAMyqB,EAAE,GAAK,SAAW,IAC9B,GAAK9oB,IAAM,IAAMlF,EAAI,EAQ/BkF,IADAA,KAHAjF,IADAA,IAAMiF,IADN3B,IADAA,IAAMvD,GAAKkF,GAAKjF,IAAM+tB,EAAE,IAAM,WAAa,IACjC,EAAIzqB,IAAM,IAAM2B,EAAI,IACdlF,IAAMguB,EAAE,GAAK,WAAa,IAChC,GAAK/tB,IAAM,IAAMsD,EAAI,KAE/BvD,IADAA,IAAMuD,GAAKtD,GAAKiF,IAAM8oB,EAAE,IAAM,QAAU,IAC9B,GAAKhuB,IAAM,IAAMC,EAAI,IACfsD,IAAMyqB,EAAE,GAAK,WAAa,IAChC,GAAK9oB,IAAM,IAAMlF,EAAI,EAQ/BkF,IADAA,KAHAjF,IADAA,IAAMiF,IADN3B,IADAA,IAAMvD,GAAKkF,GAAKjF,IAAM+tB,EAAE,GAAK,WAAa,IAChC,EAAIzqB,IAAM,IAAM2B,EAAI,IACdlF,IAAMguB,EAAE,IAAM,SAAW,IAC/B,GAAK/tB,IAAM,IAAMsD,EAAI,KAE/BvD,IADAA,IAAMuD,GAAKtD,GAAKiF,IAAM8oB,EAAE,GAAK,WAAa,IAChC,GAAKhuB,IAAM,IAAMC,EAAI,IACfsD,IAAMyqB,EAAE,IAAM,WAAa,IACjC,GAAK9oB,IAAM,IAAMlF,EAAI,EAQ/BkF,IADAA,KAHAjF,IADAA,IAAMiF,IADN3B,IADAA,IAAMvD,GAAKkF,GAAKjF,IAAM+tB,EAAE,GAAK,UAAY,IAC/B,EAAIzqB,IAAM,IAAM2B,EAAI,IACdlF,IAAMguB,EAAE,IAAM,WAAa,IACjC,GAAK/tB,IAAM,IAAMsD,EAAI,KAE/BvD,IADAA,IAAMuD,GAAKtD,GAAKiF,IAAM8oB,EAAE,GAAK,UAAY,IAC/B,GAAKhuB,IAAM,IAAMC,EAAI,IACfsD,IAAMyqB,EAAE,GAAK,UAAY,IAC/B,GAAK9oB,IAAM,IAAMlF,EAAI,EAC/B0G,EAAE,GAAKnD,EAAImD,EAAE,GAAK,EAClBA,EAAE,GAAKxB,EAAIwB,EAAE,GAAK,EAClBA,EAAE,GAAK1G,EAAI0G,EAAE,GAAK,EAClBA,EAAE,GAAKzG,EAAIyG,EAAE,GAAK,EAGpB,SAAS23C,EAAO38C,GACd,IACI/B,EADA2+C,EAAU,GAGd,IAAK3+C,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvB2+C,EAAQ3+C,GAAK,GAAK+B,EAAEge,WAAW/f,IAAM+B,EAAEge,WAAW/f,EAAI,IAAM,IAAM+B,EAAEge,WAAW/f,EAAI,IAAM,KAAO+B,EAAEge,WAAW/f,EAAI,IAAM,IAGzH,OAAO2+C,EAGT,SAASC,EAAah7C,GACpB,IACI5D,EADA2+C,EAAU,GAGd,IAAK3+C,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvB2+C,EAAQ3+C,GAAK,GAAK4D,EAAE5D,IAAM4D,EAAE5D,EAAI,IAAM,IAAM4D,EAAE5D,EAAI,IAAM,KAAO4D,EAAE5D,EAAI,IAAM,IAG7E,OAAO2+C,EAGT,SAASE,EAAK98C,GACZ,IAEI/B,EACA6D,EACAi7C,EACAC,EACAC,EACAC,EAPAx9C,EAAIM,EAAE8B,OACNq7C,EAAQ,CAAC,YAAa,WAAY,WAAY,WAQlD,IAAKl/C,EAAI,GAAIA,GAAKyB,EAAGzB,GAAK,GACxBy+C,EAASS,EAAOR,EAAO38C,EAAEo9C,UAAUn/C,EAAI,GAAIA,KAO7C,IAHA6D,GADA9B,EAAIA,EAAEo9C,UAAUn/C,EAAI,KACT6D,OACXi7C,EAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAEhD9+C,EAAI,EAAGA,EAAI6D,EAAQ7D,GAAK,EAC3B8+C,EAAK9+C,GAAK,IAAM+B,EAAEge,WAAW/f,KAAOA,EAAI,GAAK,GAK/C,GAFA8+C,EAAK9+C,GAAK,IAAM,MAAQA,EAAI,GAAK,GAE7BA,EAAI,GAGN,IAFAy+C,EAASS,EAAOJ,GAEX9+C,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvB8+C,EAAK9+C,GAAK,EAWd,OANA++C,GADAA,EAAU,EAAJt9C,GACI2R,SAAS,IAAIpB,MAAM,kBAC7BgtC,EAAKrf,SAASof,EAAI,GAAI,IACtBE,EAAKtf,SAASof,EAAI,GAAI,KAAO,EAC7BD,EAAK,IAAME,EACXF,EAAK,IAAMG,EACXR,EAASS,EAAOJ,GACTI,EAGT,SAASE,EAAWx7C,GAClB,IAEI5D,EACA6D,EACAi7C,EACAC,EACAC,EACAC,EAPAx9C,EAAImC,EAAEC,OACNq7C,EAAQ,CAAC,YAAa,WAAY,WAAY,WAQlD,IAAKl/C,EAAI,GAAIA,GAAKyB,EAAGzB,GAAK,GACxBy+C,EAASS,EAAON,EAAah7C,EAAEy7C,SAASr/C,EAAI,GAAIA,KAOlD,IAHA6D,GADAD,EAAI5D,EAAI,GAAKyB,EAAImC,EAAEy7C,SAASr/C,EAAI,IAAM,IAAIs/C,WAAW,IAC1Cz7C,OACXi7C,EAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAEhD9+C,EAAI,EAAGA,EAAI6D,EAAQ7D,GAAK,EAC3B8+C,EAAK9+C,GAAK,IAAM4D,EAAE5D,KAAOA,EAAI,GAAK,GAKpC,GAFA8+C,EAAK9+C,GAAK,IAAM,MAAQA,EAAI,GAAK,GAE7BA,EAAI,GAGN,IAFAy+C,EAASS,EAAOJ,GAEX9+C,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvB8+C,EAAK9+C,GAAK,EAWd,OANA++C,GADAA,EAAU,EAAJt9C,GACI2R,SAAS,IAAIpB,MAAM,kBAC7BgtC,EAAKrf,SAASof,EAAI,GAAI,IACtBE,EAAKtf,SAASof,EAAI,GAAI,KAAO,EAC7BD,EAAK,IAAME,EACXF,EAAK,IAAMG,EACXR,EAASS,EAAOJ,GACTI,EAGT,SAASK,EAAK99C,GACZ,IACI+9C,EADAz9C,EAAI,GAGR,IAAKy9C,EAAI,EAAGA,EAAI,EAAGA,GAAK,EACtBz9C,GAAKy8C,EAAQ/8C,GAAS,EAAJ+9C,EAAQ,EAAI,IAAMhB,EAAQ/8C,GAAS,EAAJ+9C,EAAQ,IAG3D,OAAOz9C,EAGT,SAAS09C,EAAI14C,GACX,IAAI/G,EAEJ,IAAKA,EAAI,EAAGA,EAAI+G,EAAElD,OAAQ7D,GAAK,EAC7B+G,EAAE/G,GAAKu/C,EAAKx4C,EAAE/G,IAGhB,OAAO+G,EAAE8L,KAAK,IA4ChB,SAAS6sC,EAAOC,GAKd,MAJI,kBAAkBv4C,KAAKu4C,KACzBA,EAAMC,SAASC,mBAAmBF,KAG7BA,EAGT,SAASG,EAAoBH,EAAKI,GAChC,IAGI//C,EAHA6D,EAAS87C,EAAI97C,OACbm8C,EAAO,IAAIC,YAAYp8C,GACvBq8C,EAAM,IAAIZ,WAAWU,GAGzB,IAAKhgD,EAAI,EAAGA,EAAI6D,EAAQ7D,GAAK,EAC3BkgD,EAAIlgD,GAAK2/C,EAAI5/B,WAAW/f,GAG1B,OAAO+/C,EAAmBG,EAAMF,EAGlC,SAASG,EAAoBH,GAC3B,OAAOv4C,OAAOuY,aAAahd,MAAM,KAAM,IAAIs8C,WAAWU,IAGxD,SAASI,EAAwBC,EAAOC,EAAQP,GAC9C,IAAIQ,EAAS,IAAIjB,WAAWe,EAAMG,WAAaF,EAAOE,YAGtD,OAFAD,EAAOn7C,IAAI,IAAIk6C,WAAWe,IAC1BE,EAAOn7C,IAAI,IAAIk6C,WAAWgB,GAASD,EAAMG,YAClCT,EAAmBQ,EAASA,EAAOE,OAG5C,SAASC,EAAkBjB,GACzB,IAEI14C,EAFAsZ,EAAQ,GACRxc,EAAS47C,EAAI57C,OAGjB,IAAKkD,EAAI,EAAGA,EAAIlD,EAAS,EAAGkD,GAAK,EAC/BsZ,EAAMzd,KAAK+8B,SAAS8f,EAAIkB,OAAO55C,EAAG,GAAI,KAGxC,OAAOU,OAAOuY,aAAahd,MAAMyE,OAAQ4Y,GAG3C,SAASugC,IACPx+C,KAAKic,QA+KP,OArQIohC,EAAIZ,EAAK,UAEc,qBAAhBoB,aAAgCA,YAAYr+C,UAAUyC,OAC/D,WACE,SAASw8C,EAAMC,EAAKj9C,GAGlB,OAFAi9C,EAAY,EAANA,GAAW,GAEP,EACD57C,KAAKua,IAAIqhC,EAAMj9C,EAAQ,GAGzBqB,KAAK0qC,IAAIkR,EAAKj9C,GAGvBo8C,YAAYr+C,UAAUyC,MAAQ,SAAUsb,EAAMohC,GAC5C,IAGIC,EACAz6C,EACA06C,EACAC,EANAr9C,EAASzB,KAAKo+C,WACdW,EAAQN,EAAMlhC,EAAM9b,GACpB2rB,EAAM3rB,EAUV,OAJIk9C,IAAOxC,IACT/uB,EAAMqxB,EAAME,EAAIl9C,IAGds9C,EAAQ3xB,EACH,IAAIywB,YAAY,IAGzBe,EAAMxxB,EAAM2xB,EACZ56C,EAAS,IAAI05C,YAAYe,GACzBC,EAAc,IAAI3B,WAAW/4C,GAC7B26C,EAAc,IAAI5B,WAAWl9C,KAAM++C,EAAOH,GAC1CC,EAAY77C,IAAI87C,GACT36C,IAjCX,GAsFFq6C,EAASh/C,UAAUw/C,OAAS,SAAUzB,GAEpC,OADAv9C,KAAKi/C,aAAa3B,EAAOC,IAClBv9C,MAGTw+C,EAASh/C,UAAUy/C,aAAe,SAAUC,GAC1Cl/C,KAAKm/C,OAASD,EACdl/C,KAAKo/C,SAAWF,EAASz9C,OACzB,IACI7D,EADA6D,EAASzB,KAAKm/C,MAAM19C,OAGxB,IAAK7D,EAAI,GAAIA,GAAK6D,EAAQ7D,GAAK,GAC7By+C,EAASr8C,KAAKq/C,MAAO/C,EAAOt8C,KAAKm/C,MAAMpC,UAAUn/C,EAAI,GAAIA,KAI3D,OADAoC,KAAKm/C,MAAQn/C,KAAKm/C,MAAMpC,UAAUn/C,EAAI,IAC/BoC,MAGTw+C,EAASh/C,UAAU4tB,IAAM,SAAUkyB,GACjC,IAEI1hD,EAEA2hD,EAJA3B,EAAO59C,KAAKm/C,MACZ19C,EAASm8C,EAAKn8C,OAEdi7C,EAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAGzD,IAAK9+C,EAAI,EAAGA,EAAI6D,EAAQ7D,GAAK,EAC3B8+C,EAAK9+C,GAAK,IAAMggD,EAAKjgC,WAAW/f,KAAOA,EAAI,GAAK,GAYlD,OATAoC,KAAKw/C,QAAQ9C,EAAMj7C,GAEnB89C,EAAMlC,EAAIr9C,KAAKq/C,OAEXC,IACFC,EAAMjB,EAAkBiB,IAG1Bv/C,KAAKic,QACEsjC,GAGTf,EAASh/C,UAAUyc,MAAQ,WAIzB,OAHAjc,KAAKm/C,MAAQ,GACbn/C,KAAKo/C,QAAU,EACfp/C,KAAKq/C,MAAQ,CAAC,YAAa,WAAY,WAAY,WAC5Cr/C,MAGTw+C,EAASh/C,UAAUigD,SAAW,WAC5B,MAAO,CACL7B,KAAM59C,KAAKm/C,MACX19C,OAAQzB,KAAKo/C,QACbM,KAAM1/C,KAAKq/C,QAIfb,EAASh/C,UAAUmgD,SAAW,SAAU7C,GAItC,OAHA98C,KAAKm/C,MAAQrC,EAAMc,KACnB59C,KAAKo/C,QAAUtC,EAAMr7C,OACrBzB,KAAKq/C,MAAQvC,EAAM4C,KACZ1/C,MAGTw+C,EAASh/C,UAAUuU,QAAU,kBACpB/T,KAAKq/C,aACLr/C,KAAKm/C,aACLn/C,KAAKo/C,SAGdZ,EAASh/C,UAAUggD,QAAU,SAAU9C,EAAMj7C,GAC3C,IACIk7C,EACAC,EACAC,EAHAj/C,EAAI6D,EAMR,GAFAi7C,EAAK9+C,GAAK,IAAM,MAAQA,EAAI,GAAK,GAE7BA,EAAI,GAGN,IAFAy+C,EAASr8C,KAAKq/C,MAAO3C,GAEhB9+C,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvB8+C,EAAK9+C,GAAK,EAKd++C,GADAA,EAAqB,EAAf38C,KAAKo/C,SACDpuC,SAAS,IAAIpB,MAAM,kBAC7BgtC,EAAKrf,SAASof,EAAI,GAAI,IACtBE,EAAKtf,SAASof,EAAI,GAAI,KAAO,EAC7BD,EAAK,IAAME,EACXF,EAAK,IAAMG,EACXR,EAASr8C,KAAKq/C,MAAO3C,IAGvB8B,EAASkB,KAAO,SAAUnC,EAAK+B,GAC7B,OAAOd,EAASoB,WAAWtC,EAAOC,GAAM+B,IAG1Cd,EAASoB,WAAa,SAAUC,EAASP,GACvC,IACIC,EAAMlC,EADCZ,EAAKoD,IAEhB,OAAOP,EAAMhB,EAAkBiB,GAAOA,GAGxCf,EAASX,YAAc,WACrB79C,KAAKic,SAGPuiC,EAASX,YAAYr+C,UAAUw/C,OAAS,SAAUlB,GAChD,IAEIlgD,EAFAggD,EAAOI,EAAwBh+C,KAAKm/C,MAAMd,OAAQP,GAAK,GACvDr8C,EAASm8C,EAAKn8C,OAIlB,IAFAzB,KAAKo/C,SAAWtB,EAAIM,WAEfxgD,EAAI,GAAIA,GAAK6D,EAAQ7D,GAAK,GAC7By+C,EAASr8C,KAAKq/C,MAAO7C,EAAaoB,EAAKX,SAASr/C,EAAI,GAAIA,KAI1D,OADAoC,KAAKm/C,MAAQvhD,EAAI,GAAK6D,EAAS,IAAIy7C,WAAWU,EAAKS,OAAOp8C,MAAMrE,EAAI,KAAO,IAAIs/C,WAAW,GACnFl9C,MAGTw+C,EAASX,YAAYr+C,UAAU4tB,IAAM,SAAUkyB,GAC7C,IAGI1hD,EACA2hD,EAJA3B,EAAO59C,KAAKm/C,MACZ19C,EAASm8C,EAAKn8C,OACdi7C,EAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAIzD,IAAK9+C,EAAI,EAAGA,EAAI6D,EAAQ7D,GAAK,EAC3B8+C,EAAK9+C,GAAK,IAAMggD,EAAKhgD,KAAOA,EAAI,GAAK,GAYvC,OATAoC,KAAKw/C,QAAQ9C,EAAMj7C,GAEnB89C,EAAMlC,EAAIr9C,KAAKq/C,OAEXC,IACFC,EAAMjB,EAAkBiB,IAG1Bv/C,KAAKic,QACEsjC,GAGTf,EAASX,YAAYr+C,UAAUyc,MAAQ,WAIrC,OAHAjc,KAAKm/C,MAAQ,IAAIjC,WAAW,GAC5Bl9C,KAAKo/C,QAAU,EACfp/C,KAAKq/C,MAAQ,CAAC,YAAa,WAAY,WAAY,WAC5Cr/C,MAGTw+C,EAASX,YAAYr+C,UAAUigD,SAAW,WACxC,IAAI3C,EAAQ0B,EAASh/C,UAAUigD,SAAS1hD,KAAKiC,MAE7C,OADA88C,EAAMc,KAAOG,EAAoBjB,EAAMc,MAChCd,GAGT0B,EAASX,YAAYr+C,UAAUmgD,SAAW,SAAU7C,GAElD,OADAA,EAAMc,KAAOF,EAAoBZ,EAAMc,MAAM,GACtCY,EAASh/C,UAAUmgD,SAAS5hD,KAAKiC,KAAM88C,IAGhD0B,EAASX,YAAYr+C,UAAUuU,QAAUyqC,EAASh/C,UAAUuU,QAC5DyqC,EAASX,YAAYr+C,UAAUggD,QAAUhB,EAASh/C,UAAUggD,QAE5DhB,EAASX,YAAY6B,KAAO,SAAU5B,EAAKwB,GACzC,IACIC,EAAMlC,EADCL,EAAW,IAAIE,WAAWY,KAErC,OAAOwB,EAAMhB,EAAkBiB,GAAOA,GAGjCf,EAphBYzC,MAwhBnB+D,EAAiB,SAAwBC,EAAUC,GACrD,KAAMD,aAAoBC,GACxB,MAAM,IAAIl/C,UAAU,sCAIpBm/C,EAAc,WAChB,SAASznC,EAAiBrU,EAAQ+7C,GAChC,IAAK,IAAItiD,EAAI,EAAGA,EAAIsiD,EAAMz+C,OAAQ7D,IAAK,CACrC,IAAIuiD,EAAaD,EAAMtiD,GACvBuiD,EAAW3hD,WAAa2hD,EAAW3hD,aAAc,EACjD2hD,EAAW/3C,cAAe,EACtB,UAAW+3C,IAAYA,EAAWl9C,UAAW,GACjD3E,OAAOC,eAAe4F,EAAQg8C,EAAWhhD,IAAKghD,IAIlD,OAAO,SAAUH,EAAaI,EAAYC,GAGxC,OAFID,GAAY5nC,EAAiBwnC,EAAYxgD,UAAW4gD,GACpDC,GAAa7nC,EAAiBwnC,EAAaK,GACxCL,GAdO,GAkBdM,EAAYC,KAAK/gD,UAAUyC,OAASs+C,KAAK/gD,UAAUghD,UAAYD,KAAK/gD,UAAUihD,YAE9EC,EAAe,WASjB,SAASA,EAAa39B,GACpB+8B,EAAe9/C,KAAM0gD,GACrB1gD,KAAK+iB,KAAOA,EACZ/iB,KAAK2gD,UAAY,QACjB3gD,KAAK4gD,WAAa99C,KAAK+9C,KAAK7gD,KAAK+iB,KAAKD,KAAO9iB,KAAK2gD,WAClD3gD,KAAK8gD,WAAa,EAkDpB,OA/DAb,EAAYS,EAAc,KAAM,CAAC,CAC/BvhD,IAAK,SACLN,MAAO,SAAgBkkB,EAAMg+B,GACZ,IAAIL,EAAa39B,GACvB7jB,OAAO6hD,OAYpBd,EAAYS,EAAc,CAAC,CACzBvhD,IAAK,SACLN,MAAO,SAAgBkiD,GACrB,IAAIC,EAAQhhD,KAEZA,KAAK+gD,SAAWA,EAChB/gD,KAAKihD,UAAY,IAAIjF,EAAS6B,YAC9B79C,KAAKkhD,WAAa,IAAI75B,WACtBrnB,KAAKkhD,WAAW57C,iBAAiB,QAAQ,SAAUkrB,GACjD,OAAOwwB,EAAMG,kBAAkB3wB,MAEjCxwB,KAAKkhD,WAAW57C,iBAAiB,SAAS,SAAUkrB,GAClD,OAAOwwB,EAAMI,mBAAmB5wB,MAElCxwB,KAAKqhD,kBAEN,CACDliD,IAAK,oBACLN,MAAO,SAA2B2xB,GAGhC,GAFAxwB,KAAKihD,UAAUjC,OAAOxuB,EAAMrsB,OAAOg6C,SAE9Bn+C,KAAKqhD,gBAAiB,CACzB,IAAIC,EAAethD,KAAKihD,UAAU7zB,KAAI,GAClCm0B,EAAeC,KAAKF,GACxBthD,KAAK+gD,SAAS,KAAMQ,MAGvB,CACDpiD,IAAK,qBACLN,MAAO,SAA4B2xB,GACjCxwB,KAAK+gD,SAAS,iBAAmB/gD,KAAK+iB,KAAK5kB,QAE5C,CACDgB,IAAK,gBACLN,MAAO,WACL,GAAImB,KAAK8gD,WAAa9gD,KAAK4gD,YAAiC,GAAnB5gD,KAAK8gD,YAAsC,GAAnB9gD,KAAK4gD,WAAiB,CACrF,IAAI76B,EAAQ/lB,KAAK8gD,WAAa9gD,KAAK2gD,UAC/BvzB,EAAMtqB,KAAK0qC,IAAIznB,EAAQ/lB,KAAK2gD,UAAW3gD,KAAK+iB,KAAKD,MACjD7E,EAAQqiC,EAAUviD,KAAKiC,KAAK+iB,KAAMgD,EAAOqH,GAG7C,OAFAptB,KAAKkhD,WAAWz5B,kBAAkBxJ,GAClCje,KAAK8gD,cACE,EAEP,OAAO,MAINJ,EAhEU,GAqFnB,SAAS57B,EAAY28B,EAAMC,GAMzB,MALmB,iBAARD,IACTC,EAAWD,EACXA,EAAOh/C,UAGFg/C,EAAK5pC,cAAc6pC,GAG5B,SAASrzC,EAAc2W,EAAS9gB,GAC9B,IAAIy9C,EAAY9gD,UAAUY,OAAS,QAAsB06C,IAAjBt7C,UAAU,GAAmBA,UAAU,GAAK,GAChF29B,EAAWxZ,EAAQwZ,SACnBh2B,EAAUm5C,EAAUn5C,QACpBL,EAAaw5C,EAAUx5C,WACvBM,EAASk5C,EAAUl5C,OACnB+nB,EAAQ/tB,SAASqF,YAAY,SACjC0oB,EAAMzoB,UAAU7D,EAAMsE,IAAW,EAAML,IAAc,GACrDqoB,EAAM/nB,OAASA,GAAU,GAEzB,IACEuc,EAAQwZ,UAAW,EACnBxZ,EAAQ3W,cAAcmiB,GACtB,QACAxL,EAAQwZ,SAAWA,EAGrB,OAAOhO,EAGT,SAASoxB,EAAU/iD,GACjB,OAAImD,MAAMuV,QAAQ1Y,GACTA,EACEmD,MAAMub,KACRvb,MAAMub,KAAK1e,GAEX,GAAGoD,MAAMlE,KAAKc,GAIzB,IAAIgjD,EAAa,WACf,SAASA,EAAW9+B,EAAM++B,EAAU/iC,GAClC,IAAIiiC,EAAQhhD,KAEZ8/C,EAAe9/C,KAAM6hD,GACrB7hD,KAAK+iB,KAAOA,EACZ/iB,KAAK6F,WAAa,CAChBs6B,SAAUpd,EAAK5kB,KACf4jD,aAAch/B,EAAK7e,MAAQ,2BAC3B89C,UAAWj/B,EAAKD,KAChBg/B,SAAUA,GAEZ9hD,KAAKiiD,IAAM,IAAIC,eACfliD,KAAKiiD,IAAIE,KAAK,OAAQpjC,GAAK,GAC3B/e,KAAKiiD,IAAIG,aAAe,OACxBpiD,KAAKiiD,IAAII,iBAAiB,eAAgB,oBAC1CriD,KAAKiiD,IAAII,iBAAiB,SAAU,oBACpCriD,KAAKiiD,IAAII,iBAAiB,mBAAoB,kBAC9C,IAAIwE,EA3ER,SAAsB1oD,GACpB,IAAI6mB,EAAUF,EAAYriB,SAASkV,KAAM,cAAgBxZ,EAAO,MAEhE,GAAI6mB,EACF,OAAOA,EAAQnY,aAAa,WAuEZy1C,CAAa,mBAEZnG,GAAb0K,GACF7mD,KAAKiiD,IAAII,iBAAiB,eAAgBwE,GAG5C7mD,KAAKiiD,IAAI38C,iBAAiB,QAAQ,SAAUkrB,GAC1C,OAAOwwB,EAAMuB,eAAe/xB,MAE9BxwB,KAAKiiD,IAAI38C,iBAAiB,SAAS,SAAUkrB,GAC3C,OAAOwwB,EAAMwB,gBAAgBhyB,MA6DjC,OAzDAyvB,EAAY4B,EAAY,CAAC,CACvB1iD,IAAK,SACLN,MAAO,SAAgBkiD,GACrB/gD,KAAK+gD,SAAWA,EAChB/gD,KAAKiiD,IAAIQ,KAAKtyC,KAAKQ,UAAU,CAC3B+xC,KAAM1iD,KAAK6F,gBAGd,CACD1G,IAAK,iBACLN,MAAO,SAAwB2xB,GAC7B,GAAIxwB,KAAK2iD,QAAU,KAAO3iD,KAAK2iD,OAAS,IAAK,CAC3C,IAAIC,EAAW5iD,KAAK4iD,SAChBC,EAAgBD,EAASC,qBACtBD,EAASC,cAChB7iD,KAAK6F,WAAa+8C,EAClB5iD,KAAK8iD,iBAAmBD,EACxB7iD,KAAK+gD,SAAS,KAAM/gD,KAAKmb,eAEzBnb,KAAKwiD,gBAAgBhyB,KAGxB,CACDrxB,IAAK,kBACLN,MAAO,SAAyB2xB,GAC9BxwB,KAAK+gD,SAAS,4BAA8B/gD,KAAK+iB,KAAK5kB,KAAO,cAAgB6B,KAAK2iD,UAEnF,CACDxjD,IAAK,SACLN,MAAO,WACL,IAAIs/C,EAAS,GAEb,IAAK,IAAIh/C,KAAOa,KAAK6F,WACnBs4C,EAAOh/C,GAAOa,KAAK6F,WAAW1G,GAGhC,OAAOg/C,IAER,CACDh/C,IAAK,SACLV,IAAK,WACH,OAAOuB,KAAKiiD,IAAIU,SAEjB,CACDxjD,IAAK,WACLV,IAAK,WACH,IAAIskD,EAAO/iD,KAAKiiD,IACZG,EAAeW,EAAKX,aACpBQ,EAAWG,EAAKH,SAEpB,MAAoB,QAAhBR,EACKQ,EAEAzyC,KAAKC,MAAMwyC,OAIjBf,EAzFQ,GA4FbmB,EAAa,WACf,SAASA,EAAWN,GAClB,IAAI1B,EAAQhhD,KAEZ8/C,EAAe9/C,KAAMgjD,GACrBhjD,KAAK0iD,KAAOA,EACZ1iD,KAAK+iB,KAAO2/B,EAAK3/B,KACjB,IAAIkgC,EAAwBP,EAAKI,iBAC7B/jC,EAAMkkC,EAAsBlkC,IAC5BmkC,EAAUD,EAAsBC,QAKpC,IAAK,IAAI/jD,KAJTa,KAAKiiD,IAAM,IAAIC,eACfliD,KAAKiiD,IAAIE,KAAK,MAAOpjC,GAAK,GAC1B/e,KAAKiiD,IAAIG,aAAe,OAERc,EACdljD,KAAKiiD,IAAII,iBAAiBljD,EAAK+jD,EAAQ/jD,IAGzCa,KAAKiiD,IAAI38C,iBAAiB,QAAQ,SAAUkrB,GAC1C,OAAOwwB,EAAMuB,eAAe/xB,MAE9BxwB,KAAKiiD,IAAI38C,iBAAiB,SAAS,SAAUkrB,GAC3C,OAAOwwB,EAAMwB,gBAAgBhyB,MA6BjC,OAzBAyvB,EAAY+C,EAAY,CAAC,CACvB7jD,IAAK,SACLN,MAAO,SAAgBkiD,GACrB/gD,KAAK+gD,SAAWA,EAChB/gD,KAAKiiD,IAAIQ,KAAKziD,KAAK+iB,KAAK9gB,WAEzB,CACD9C,IAAK,iBACLN,MAAO,SAAwB2xB,GAC7B,IAAIuyB,EAAO/iD,KAAKiiD,IACZU,EAASI,EAAKJ,OACdC,EAAWG,EAAKH,SAEhBD,GAAU,KAAOA,EAAS,IAC5B3iD,KAAK+gD,SAAS,KAAM6B,GAEpB5iD,KAAKwiD,gBAAgBhyB,KAGxB,CACDrxB,IAAK,kBACLN,MAAO,SAAyB2xB,GAC9BxwB,KAAK+gD,SAAS,kBAAoB/gD,KAAK+iB,KAAK5kB,KAAO,cAAgB6B,KAAKiiD,IAAIU,YAGzEK,EAnDQ,GAsDbhzC,EAAK,EAELmzC,EAAe,WACjB,SAASA,EAAapgC,EAAMhE,EAAKqH,GAC/B05B,EAAe9/C,KAAMmjD,GACrBnjD,KAAKgQ,KAAOA,EACZhQ,KAAK+iB,KAAOA,EACZ/iB,KAAK+e,IAAMA,EACX/e,KAAKomB,SAAWA,EAkClB,OA/BA65B,EAAYkD,EAAc,CAAC,CACzBhkD,IAAK,SACLN,MAAO,SAAgBkiD,GACrB,IAAIC,EAAQhhD,KAEZ0gD,EAAaxhD,OAAOc,KAAK+iB,MAAM,SAAUqgC,EAAOtB,GAC9C,GAAIsB,EACFrC,EAASqC,OADX,CAKA,IAAIV,EAAO,IAAIb,EAAWb,EAAMj+B,KAAM++B,EAAUd,EAAMjiC,KACtDs7B,EAAO2G,EAAM56B,SAAU,oCAAqCs8B,EAAKT,KACjES,EAAKxjD,QAAO,SAAUkkD,GACpB,GAAIA,EACFrC,EAASqC,OACJ,CACL,IAAIC,EAAS,IAAIL,EAAWN,GAC5BrI,EAAO2G,EAAM56B,SAAU,mCAAoCi9B,EAAOpB,KAClEoB,EAAOnkD,QAAO,SAAUkkD,GAClBA,EACFrC,EAASqC,GAETrC,EAAS,KAAM2B,EAAKvnC,yBAQ3BgoC,EAxCU,GA2CnB,SAAS9I,EAAO/6C,EAAQgkD,GACtB,GAAIhkD,GAAuC,mBAAtBA,EAAOgkD,GAA2B,CACrD,IAAK,IAAIC,EAAO1iD,UAAUY,OAAQ+hD,EAAWxhD,MAAMuhD,EAAO,EAAIA,EAAO,EAAI,GAAIE,EAAO,EAAGA,EAAOF,EAAME,IAClGD,EAASC,EAAO,GAAK5iD,UAAU4iD,GAGjC,OAAOnkD,EAAOgkD,GAAY1iD,MAAMtB,EAAQkkD,IAI5C,IAAIE,EAAyB,WAC3B,SAASA,EAAuBzgC,EAAOF,GACrC+8B,EAAe9/C,KAAM0jD,GACrB1jD,KAAKijB,MAAQA,EACbjjB,KAAK+iB,KAAOA,EACZ/iB,KAAK2jD,aAAe,IAAIR,EAAanjD,KAAK+iB,KAAM/iB,KAAK+e,IAAK/e,MAC1DA,KAAK4jD,SAAS,cAoFhB,OAjFA3D,EAAYyD,EAAwB,CAAC,CACnCvkD,IAAK,QACLN,MAAO,SAAekiD,GACpB,IAAIC,EAAQhhD,KAER6jD,EAAcphD,SAASgL,cAAc,SACzCo2C,EAAY3/C,KAAO,SACnB2/C,EAAY1lD,KAAO6B,KAAKijB,MAAM9kB,KAC9B6B,KAAKijB,MAAM6gC,sBAAsB,cAAeD,GAChD7jD,KAAK4jD,SAAS,SACd5jD,KAAK2jD,aAAazkD,QAAO,SAAUkkD,EAAOv9C,GACpCu9C,GACFS,EAAYjgD,WAAWqR,YAAY4uC,GAEnC7C,EAAM+C,cAAcX,IAEpBS,EAAYhlD,MAAQgH,EAAWm+C,UAGjChD,EAAM4C,SAAS,OAEf7C,EAASqC,QAGZ,CACDjkD,IAAK,2BACLN,MAAO,SAAkC2xB,GACvC,IAAIyzB,EAAWzzB,EAAM0zB,OAAS1zB,EAAM2zB,MAAQ,IAExCF,GACFjkD,KAAK4jD,SAAS,WAAY,CACxBK,SAAUA,MAIf,CACD9kD,IAAK,WACLN,MAAO,SAAkBV,GACvB,IAAIsK,EAAS5H,UAAUY,OAAS,QAAsB06C,IAAjBt7C,UAAU,GAAmBA,UAAU,GAAK,GAGjF,OAFA4H,EAAOsa,KAAO/iB,KAAK+iB,KACnBta,EAAOuH,GAAKhQ,KAAK2jD,aAAa3zC,GACvB3B,EAAcrO,KAAKijB,MAAO,iBAAmB9kB,EAAM,CACxDsK,OAAQA,MAGX,CACDtJ,IAAK,gBACLN,MAAO,SAAuBukD,GAChBpjD,KAAK4jD,SAAS,QAAS,CACjCR,MAAOA,IAGEn7C,kBACTm8C,MAAMhB,KAGT,CACDjkD,IAAK,oCACLN,MAAO,SAA2CojD,GAChDjiD,KAAK4jD,SAAS,sBAAuB,CACnC3B,IAAKA,MAGR,CACD9iD,IAAK,mCACLN,MAAO,SAA0CojD,GAC/C,IAAIoC,EAASrkD,KAEbA,KAAK4jD,SAAS,yBAA0B,CACtC3B,IAAKA,IAEPA,EAAIoB,OAAO/9C,iBAAiB,YAAY,SAAUkrB,GAChD,OAAO6zB,EAAOC,yBAAyB9zB,QAG1C,CACDrxB,IAAK,MACLV,IAAK,WACH,OAAOuB,KAAKijB,MAAMpW,aAAa,8BAG5B62C,EA1FoB,GA+FzBa,EAA0B,WAC5B,SAASA,EAAwB7I,GA1VnC,IAAsB+F,EAAMC,EA2VxB5B,EAAe9/C,KAAMukD,GACrBvkD,KAAK07C,KAAOA,EACZ17C,KAAKwkD,QA7Va/C,EA6VS/F,EA7VHgG,EAuVR,2DAtVC,iBAARD,IACTC,EAAWD,EACXA,EAAOh/C,UAIFm/C,EADQH,EAAK53C,iBAAiB63C,KAuVa+C,QAAO,SAAUxhC,GAC/D,OAAOA,EAAMO,MAAM/hB,UAuDvB,OAnDAw+C,EAAYsE,EAAyB,CAAC,CACpCplD,IAAK,QACLN,MAAO,SAAekiD,GACpB,IAAIC,EAAQhhD,KAER0kD,EAAc1kD,KAAK2kD,gCAsBvB3kD,KAAK4jD,SAAS,SApBY,SAASgB,IACjC,IAAIC,EAAaH,EAAY75C,QAEzBg6C,EACFA,EAAW9+B,OAAM,SAAUq9B,GACrBA,GACFrC,EAASqC,GAETpC,EAAM4C,SAAS,QAEfgB,QAIJ7D,IAEAC,EAAM4C,SAAS,QAKnBgB,KAED,CACDzlD,IAAK,gCACLN,MAAO,WACL,IAAI6lD,EAAc,GAOlB,OANA1kD,KAAKwkD,OAAO7jD,SAAQ,SAAUsiB,GAC5B2+B,EAAU3+B,EAAMO,OAAO7iB,SAAQ,SAAUoiB,GACvC,IAAI8hC,EAAa,IAAInB,EAAuBzgC,EAAOF,GACnD2hC,EAAYlkD,KAAKqkD,SAGdH,IAER,CACDvlD,IAAK,WACLN,MAAO,SAAkBV,GACvB,IAAIsK,EAAS5H,UAAUY,OAAS,QAAsB06C,IAAjBt7C,UAAU,GAAmBA,UAAU,GAAK,GACjF,OAAOwN,EAAcrO,KAAK07C,KAAM,kBAAoBv9C,EAAM,CACxDsK,OAAQA,QAIP87C,EA5DqB,GA+D1BO,EAAsB,iCACtBC,EAAsB,IAAIpiD,QAC1B+zC,GAAU,EAEd,SAAS3wB,IACF2wB,IACHA,GAAU,EACVj0C,SAAS6C,iBAAiB,QAAS0/C,GAAU,GAC7CviD,SAAS6C,iBAAiB,SAAU2/C,GACpCxiD,SAAS6C,iBAAiB,cAAe4/C,IAI7C,SAASF,EAASx0B,GAChB,IAAIrsB,EAASqsB,EAAMrsB,OAEI,SAAlBA,EAAOyR,SAAwC,UAAlBzR,EAAOyR,SAAuC,UAAfzR,EAAOD,OAAoBC,EAAOu3C,MACjGqJ,EAAoB/hD,IAAImB,EAAOu3C,KAAMv3C,GAIzC,SAAS8gD,EAAcz0B,GACrB20B,EAA0B30B,GAG5B,SAAS00B,EAAuB10B,GACF,QAAxBA,EAAMrsB,OAAOyR,SACfuvC,EAA0B30B,GAI9B,SAAS20B,EAA0B30B,GACjC,IAAIkrB,EAAOlrB,EAAMrsB,OAEjB,GAAIu3C,EAAKrhB,aAAayqB,GACpBt0B,EAAMxoB,qBADR,CAKA,IAAI68C,EAAa,IAAIN,EAAwB7I,GACzC8I,EAASK,EAAWL,OAEpBA,EAAO/iD,SACT+uB,EAAMxoB,iBACN0zC,EAAKvvC,aAAa24C,EAAqB,IACvCN,EAAO7jD,QAAQykD,GACfP,EAAW9+B,OAAM,SAAUq9B,GACzB1H,EAAKtuC,gBAAgB03C,GAEjB1B,EACFoB,EAAO7jD,QAAQ0kD,GAQvB,SAAoB3J,GAClB,IAAI4J,EAASP,EAAoBtmD,IAAIi9C,IAAS52B,EAAY42B,EAAM,2CAEhE,GAAI4J,EAAQ,CACV,IACI9mB,EADU8mB,EACS9mB,SACvB8mB,EAAO9mB,UAAW,EAClB8mB,EAAOv2B,QACPu2B,EAAO5hC,QACP4hC,EAAO9mB,SAAWA,OAElB8mB,EAAS7iD,SAASgL,cAAc,UACzBvJ,KAAO,SACdohD,EAAOtvC,MAAM8gB,QAAU,OACvB4kB,EAAKrlC,YAAYivC,GACjBA,EAAO5hC,QACPg4B,EAAKzmC,YAAYqwC,GAGnBP,EAAoBQ,OAAO7J,GAzBrB8J,CAAW9J,QA4BnB,SAAS0J,EAAQniC,GACfA,EAAMub,UAAW,EAGnB,SAAS6mB,EAAOpiC,GACdA,EAAMub,UAAW,EASnB98B,YANA,WACMzB,OAAOwlD,eACT1/B,MAIkB,GACtBroB,EAAQqoB,MAAQA,EAChBroB,EAAQylD,aAAeA,EACvB7kD,OAAOC,eAAeb,EAAS,aAAc,CAC3CmB,OAAO,KApoC6D,WAAtBe,EAAQlC,IAA4C,qBAAXC,EAAyBo+C,EAAQr+C,IAAwD,EAAO,CAAC,QAAmB,2BAAP,EAAF,GAAS,iC,iBCH/M,qFACIkD,EAAQiP,SAASrQ,UAAUoB,MAgB/B,SAAS+qD,EAAQ37C,EAAI47C,GACnB5rD,KAAK6rD,IAAM77C,EACXhQ,KAAK8rD,SAAWF,EAhBlBluD,EAAQgE,WAAa,WACnB,OAAO,IAAIiqD,EAAQ/qD,EAAM7C,KAAK2D,WAAYqqD,EAAOlrD,WAAYgH,eAG/DnK,EAAQsuD,YAAc,WACpB,OAAO,IAAIL,EAAQ/qD,EAAM7C,KAAKiuD,YAAaD,EAAOlrD,WAAYorD,gBAGhEvuD,EAAQmK,aAAenK,EAAQuuD,cAAgB,SAAUC,GACnDA,GACFA,EAAQC,SASZR,EAAQnsD,UAAU4sD,MAAQT,EAAQnsD,UAAUgnD,IAAM,aAElDmF,EAAQnsD,UAAU2sD,MAAQ,WACxBnsD,KAAK8rD,SAAS/tD,KAAKguD,EAAO/rD,KAAK6rD,MAIjCnuD,EAAQ2uD,OAAS,SAAUx3C,EAAMy3C,GAC/BzkD,aAAagN,EAAK03C,gBAClB13C,EAAK23C,aAAeF,GAGtB5uD,EAAQ+uD,SAAW,SAAU53C,GAC3BhN,aAAagN,EAAK03C,gBAClB13C,EAAK23C,cAAgB,GAGvB9uD,EAAQgvD,aAAehvD,EAAQivD,OAAS,SAAU93C,GAChDhN,aAAagN,EAAK03C,gBAClB,IAAID,EAAQz3C,EAAK23C,aAEbF,GAAS,IACXz3C,EAAK03C,eAAiB7qD,YAAW,WAC3BmT,EAAK+3C,YAAY/3C,EAAK+3C,eACzBN,KAKP,EAAQ,GAKR5uD,EAAQkE,aAA+B,qBAATyF,MAAwBA,KAAKzF,cAAkC,qBAAXirD,GAA0BA,EAAOjrD,cAAgB5B,MAAQA,KAAK4B,aAChJlE,EAAQovD,eAAiC,qBAATzlD,MAAwBA,KAAKylD,gBAAoC,qBAAXD,GAA0BA,EAAOC,gBAAkB9sD,MAAQA,KAAK8sD,iB,kCCzDtJ,6BACE,aAEA,IAAID,EAAOjrD,aAAX,CAIA,IAKImrD,EA6IExgC,EAbAygC,EApBAC,EAEAC,EAnHFC,EAAa,EAEbC,EAAgB,GAChBC,GAAwB,EACxBC,EAAMT,EAAOpqD,SAuKb8qD,EAAWjvD,OAAOmO,gBAAkBnO,OAAOmO,eAAeogD,GAC9DU,EAAWA,GAAYA,EAAS7rD,WAAa6rD,EAAWV,EAEf,qBAArC,GAAG77C,SAASjT,KAAK8uD,EAAOW,SAzF1BT,EAAoB,SAA2BU,GAC7CD,EAAQE,UAAS,WACfC,EAAaF,QAKnB,WAGE,GAAIZ,EAAOrnD,cAAgBqnD,EAAOe,cAAe,CAC/C,IAAIC,GAA4B,EAC5BC,EAAejB,EAAOkB,UAQ1B,OANAlB,EAAOkB,UAAY,WACjBF,GAA4B,GAG9BhB,EAAOrnD,YAAY,GAAI,KACvBqnD,EAAOkB,UAAYD,EACZD,GAwEAG,GAGAnB,EAAOoB,iBA/CZjB,EAAU,IAAIiB,gBAEVC,MAAMH,UAAY,SAAUv9B,GAElCm9B,EADan9B,EAAMjrB,OAIrBwnD,EAAoB,SAA2BU,GAC7CT,EAAQmB,MAAM3oD,YAAYioD,KA0CnBH,GAAO,uBAAwBA,EAAI7/C,cAAc,WArCtD8e,EAAO+gC,EAAIl6C,gBAEf25C,EAAoB,SAA2BU,GAG7C,IAAI3F,EAASwF,EAAI7/C,cAAc,UAE/Bq6C,EAAOe,mBAAqB,WAC1B8E,EAAaF,GACb3F,EAAOe,mBAAqB,KAC5Bt8B,EAAKtX,YAAY6yC,GACjBA,EAAS,MAGXv7B,EAAKlW,YAAYyxC,KAKnBiF,EAAoB,SAA2BU,GAC7C/rD,WAAWisD,EAAc,EAAGF,KArD1BR,EAAgB,gBAAkBnqD,KAAKC,SAAW,IAElDmqD,EAAkB,SAAyB18B,GACzCA,EAAM/e,SAAWo7C,GAAgC,kBAAfr8B,EAAMjrB,MAA2D,IAAtCirB,EAAMjrB,KAAKjF,QAAQ2sD,IAClFU,GAAcn9B,EAAMjrB,KAAKtD,MAAMgrD,EAAcxrD,UAI7CorD,EAAOvnD,iBACTunD,EAAOvnD,iBAAiB,UAAW4nD,GAAiB,GAEpDL,EAAOl+C,YAAY,YAAau+C,GAGlCH,EAAoB,SAA2BU,GAC7CZ,EAAOrnD,YAAYynD,EAAgBQ,EAAQ,OA+D/CF,EAAS3rD,aAxLT,SAAsBm/C,GAEI,oBAAbA,IACTA,EAAW,IAAIlxC,SAAS,GAAKkxC,IAM/B,IAFA,IAAIkK,EAAO,IAAIjpD,MAAMnB,UAAUY,OAAS,GAE/B7D,EAAI,EAAGA,EAAIqtD,EAAKxpD,OAAQ7D,IAC/BqtD,EAAKrtD,GAAKiD,UAAUjD,EAAI,GAI1B,IAAIwwD,EAAO,CACTrN,SAAUA,EACVkK,KAAMA,GAIR,OAFAmC,EAAcD,GAAciB,EAC5BrB,EAAkBI,GACXA,KAqKTI,EAAST,eAAiBA,EAlK1B,SAASA,EAAeW,UACfL,EAAcK,GA8BvB,SAASE,EAAaF,GAGpB,GAAIJ,EAGF3rD,WAAWisD,EAAc,EAAGF,OACvB,CACL,IAAIW,EAAOhB,EAAcK,GAEzB,GAAIW,EAAM,CACRf,GAAwB,EAExB,KAxCN,SAAae,GACX,IAAIrN,EAAWqN,EAAKrN,SAChBkK,EAAOmD,EAAKnD,KAEhB,OAAQA,EAAKxpD,QACX,KAAK,EACHs/C,IACA,MAEF,KAAK,EACHA,EAASkK,EAAK,IACd,MAEF,KAAK,EACHlK,EAASkK,EAAK,GAAIA,EAAK,IACvB,MAEF,KAAK,EACHlK,EAASkK,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAChC,MAEF,QACElK,EAASngD,WA/DjB,EA+DkCqqD,IAmBxBzU,CAAI4X,GACJ,QACAtB,EAAeW,GACfJ,GAAwB,MArFlC,CAwMmB,qBAAThmD,KAAyC,qBAAXwlD,EAAyB7sD,KAAO6sD,EAASxlD,Q,oCCvMjF,IAKIgnD,EACAC,EANAd,EAAU7vD,EAAOD,QAAU,GAQ/B,SAAS6wD,IACP,MAAM,IAAI5gD,MAAM,mCAGlB,SAAS6gD,IACP,MAAM,IAAI7gD,MAAM,qCAyBlB,SAAS8gD,EAAWC,GAClB,GAAIL,IAAqB3sD,WAEvB,OAAOA,WAAWgtD,EAAK,GAIzB,IAAKL,IAAqBE,IAAqBF,IAAqB3sD,WAElE,OADA2sD,EAAmB3sD,WACZA,WAAWgtD,EAAK,GAGzB,IAEE,OAAOL,EAAiBK,EAAK,GAC7B,MAAOjuD,GACP,IAEE,OAAO4tD,EAAiBtwD,KAAK,KAAM2wD,EAAK,GACxC,MAAOjuD,GAEP,OAAO4tD,EAAiBtwD,KAAKiC,KAAM0uD,EAAK,MA3C9C,WACE,IAEIL,EADwB,oBAAf3sD,WACUA,WAEA6sD,EAErB,MAAO9tD,GACP4tD,EAAmBE,EAGrB,IAEID,EAD0B,oBAAjBzmD,aACYA,aAEA2mD,EAEvB,MAAO/tD,GACP6tD,EAAqBE,GAlBzB,GA2EA,IAEIG,EAFAC,EAAQ,GACRC,GAAW,EAEXC,GAAc,EAElB,SAASC,IACFF,GAAaF,IAIlBE,GAAW,EAEPF,EAAaltD,OACfmtD,EAAQD,EAAaphD,OAAOqhD,GAE5BE,GAAc,EAGZF,EAAMntD,QACRutD,KAIJ,SAASA,IACP,IAAIH,EAAJ,CAIA,IAAI3C,EAAUuC,EAAWM,GACzBF,GAAW,EAGX,IAFA,IAAII,EAAML,EAAMntD,OAETwtD,GAAK,CAIV,IAHAN,EAAeC,EACfA,EAAQ,KAECE,EAAaG,GAChBN,GACFA,EAAaG,GAAYtY,MAI7BsY,GAAc,EACdG,EAAML,EAAMntD,OAGdktD,EAAe,KACfE,GAAW,EA1Eb,SAAyBK,GACvB,GAAIZ,IAAuBzmD,aAEzB,OAAOA,aAAaqnD,GAItB,IAAKZ,IAAuBE,IAAwBF,IAAuBzmD,aAEzE,OADAymD,EAAqBzmD,aACdA,aAAaqnD,GAGtB,IAESZ,EAAmBY,GAC1B,MAAOzuD,GACP,IAEE,OAAO6tD,EAAmBvwD,KAAK,KAAMmxD,GACrC,MAAOzuD,GAGP,OAAO6tD,EAAmBvwD,KAAKiC,KAAMkvD,KAqDzCC,CAAgBjD,IAoBlB,SAASkD,EAAKV,EAAKzzC,GACjBjb,KAAK0uD,IAAMA,EACX1uD,KAAKib,MAAQA,EAef,SAASo0C,KAlCT7B,EAAQE,SAAW,SAAUgB,GAC3B,IAAIzD,EAAO,IAAIjpD,MAAMnB,UAAUY,OAAS,GAExC,GAAIZ,UAAUY,OAAS,EACrB,IAAK,IAAI7D,EAAI,EAAGA,EAAIiD,UAAUY,OAAQ7D,IACpCqtD,EAAKrtD,EAAI,GAAKiD,UAAUjD,GAI5BgxD,EAAMpuD,KAAK,IAAI4uD,EAAKV,EAAKzD,IAEJ,IAAjB2D,EAAMntD,QAAiBotD,GACzBJ,EAAWO,IAUfI,EAAK5vD,UAAUg3C,IAAM,WACnBx2C,KAAK0uD,IAAI9tD,MAAM,KAAMZ,KAAKib,QAG5BuyC,EAAQn3B,MAAQ,UAChBm3B,EAAQv+C,SAAU,EAClBu+C,EAAQ8B,IAAM,GACd9B,EAAQ+B,KAAO,GACf/B,EAAQgC,QAAU,GAElBhC,EAAQiC,SAAW,GAInBjC,EAAQkC,GAAKL,EACb7B,EAAQmC,YAAcN,EACtB7B,EAAQoC,KAAOP,EACf7B,EAAQqC,IAAMR,EACd7B,EAAQsC,eAAiBT,EACzB7B,EAAQuC,mBAAqBV,EAC7B7B,EAAQwC,KAAOX,EACf7B,EAAQyC,gBAAkBZ,EAC1B7B,EAAQ0C,oBAAsBb,EAE9B7B,EAAQ2C,UAAY,SAAUhyD,GAC5B,MAAO,IAGTqvD,EAAQ4C,QAAU,SAAUjyD,GAC1B,MAAM,IAAIwP,MAAM,qCAGlB6/C,EAAQ6C,IAAM,WACZ,MAAO,KAGT7C,EAAQ8C,MAAQ,SAAUl2C,GACxB,MAAM,IAAIzM,MAAM,mCAGlB6/C,EAAQ+C,MAAQ,WACd,OAAO,I,oDC5MT,SAASC,EAAkBrsD,EAAQ+7C,GAAS,IAAK,IAAItiD,EAAI,EAAGA,EAAIsiD,EAAMz+C,OAAQ7D,IAAK,CAAE,IAAIuiD,EAAaD,EAAMtiD,GAAIuiD,EAAW3hD,WAAa2hD,EAAW3hD,aAAc,EAAO2hD,EAAW/3C,cAAe,EAAU,UAAW+3C,IAAYA,EAAWl9C,UAAW,GAAM3E,OAAOC,eAAe4F,EAAQg8C,EAAWhhD,IAAKghD,IAKtS,IAAI,EAAgC,WACzC,SAASsQ,EAAiBlxC,EAAYyF,IARxC,SAAyB+6B,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIl/C,UAAU,qCAS5G4vD,CAAgB1wD,KAAMywD,GAEtBzwD,KAAKuf,WAAaA,EAClBvf,KAAKglB,QAAUA,EACfhlB,KAAK2jD,aAAe,IAAI,eAAapkC,EAAWwD,KAAM/iB,KAAK2wD,gBAAiB3wD,MAThF,IAAsBggD,EAAaI,EAAYC,EAyD7C,OAzDoBL,EAYPyQ,GAZoBrQ,EAYF,CAAC,CAC9BjhD,IAAK,QACLN,MAAO,WACLmB,KAAK2jD,aAAazkD,OAAOc,KAAK4wD,wBAAwBxxD,KAAKY,SAE5D,CACDb,IAAK,mCACLN,MAAO,SAA0CojD,GAC/C,IAAIjB,EAAQhhD,KAEZiiD,EAAIoB,OAAO/9C,iBAAiB,YAAY,SAAUkrB,GAChD,IAAIyzB,EAAWzzB,EAAM0zB,OAAS1zB,EAAM2zB,MAAQ,IAE5CnD,EAAMzhC,WAAWshB,kBAAkBojB,QAGtC,CACD9kD,IAAK,0BACLN,MAAO,SAAiCukD,EAAOv9C,GAC7C,GAAIu9C,EACF,MAAM,IAAIz1C,MAAM,yBAAyBJ,OAAO61C,IAGlDpjD,KAAKuf,WAAW+gB,cAAc,CAC5BuwB,KAAMhrD,EAAWirD,gBACjB/xC,IAAK/e,KAAK+wD,cAAclrD,EAAWm+C,UAAWn+C,EAAWs6B,cAG5D,CACDhhC,IAAK,gBACLN,MAAO,SAAuBmyD,EAAU7wB,GACtC,OAAOngC,KAAKixD,gBAAgB7/C,QAAQ,aAAc4/C,GAAU5/C,QAAQ,YAAaqsC,mBAAmBtd,MAErG,CACDhhC,IAAK,kBACLV,IAAK,WACH,OAAOuB,KAAKglB,QAAQ/O,QAAQ06C,kBAE7B,CACDxxD,IAAK,kBACLV,IAAK,WACH,OAAOuB,KAAKglB,QAAQ/O,QAAQg7C,qBArD4CT,EAAkBxQ,EAAYxgD,UAAW4gD,GAAiBC,GAAamQ,EAAkBxQ,EAAaK,GAAc/hD,OAAOC,eAAeyhD,EAAa,YAAa,CAAE/8C,UAAU,IAyDrPwtD,EAtDkC,GCD3C,SAASS,EAAQ5xD,EAAQ6xD,GACvB,IAAI7+C,EAAOhU,OAAOgU,KAAKhT,GAEvB,GAAIhB,OAAO8yD,sBAAuB,CAChC,IAAIC,EAAU/yD,OAAO8yD,sBAAsB9xD,GAEvC6xD,IACFE,EAAUA,EAAQ5M,QAAO,SAAU6M,GACjC,OAAOhzD,OAAOkO,yBAAyBlN,EAAQgyD,GAAK9yD,eAIxD8T,EAAK9R,KAAKI,MAAM0R,EAAM++C,GAGxB,OAAO/+C,EAGT,SAASi/C,EAAeptD,GACtB,IAAK,IAAIvG,EAAI,EAAGA,EAAIiD,UAAUY,OAAQ7D,IAAK,CACzC,IAAI6T,EAAyB,MAAhB5Q,UAAUjD,GAAaiD,UAAUjD,GAAK,GAE/CA,EAAI,EACNszD,EAAQ5yD,OAAOmT,IAAS,GAAM9Q,SAAQ,SAAUxB,GAC9CqyD,EAAgBrtD,EAAQhF,EAAKsS,EAAOtS,OAE7Bb,OAAOmzD,0BAChBnzD,OAAOka,iBAAiBrU,EAAQ7F,OAAOmzD,0BAA0BhgD,IAEjEy/C,EAAQ5yD,OAAOmT,IAAS9Q,SAAQ,SAAUxB,GACxCb,OAAOC,eAAe4F,EAAQhF,EAAKb,OAAOkO,yBAAyBiF,EAAQtS,OAKjF,OAAOgF,EAGT,SAASvE,EAAQE,GAaf,OATEF,EADoB,oBAAXjB,QAAoD,kBAApBA,OAAOkB,SACtC,SAAiBC,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAXnB,QAAyBmB,EAAIC,cAAgBpB,QAAUmB,IAAQnB,OAAOa,UAAY,gBAAkBM,GAItHF,EAAQE,GAGjB,SAAS0xD,EAAgB1xD,EAAKX,EAAKN,GAYjC,OAXIM,KAAOW,EACTxB,OAAOC,eAAeuB,EAAKX,EAAK,CAC9BN,MAAOA,EACPL,YAAY,EACZ4J,cAAc,EACdnF,UAAU,IAGZnD,EAAIX,GAAON,EAGNiB,EAGT,SAAS4xD,IAeP,OAdAA,EAAWpzD,OAAOqzD,QAAU,SAAUxtD,GACpC,IAAK,IAAIvG,EAAI,EAAGA,EAAIiD,UAAUY,OAAQ7D,IAAK,CACzC,IAAI6T,EAAS5Q,UAAUjD,GAEvB,IAAK,IAAIuB,KAAOsS,EACVnT,OAAOkB,UAAUC,eAAe1B,KAAK0T,EAAQtS,KAC/CgF,EAAOhF,GAAOsS,EAAOtS,IAK3B,OAAOgF,GAGFutD,EAAS9wD,MAAMZ,KAAMa,WAkB9B,SAAS+wD,EAAyBngD,EAAQogD,GACxC,GAAc,MAAVpgD,EAAgB,MAAO,GAE3B,IAEItS,EAAKvB,EAFLuG,EAlBN,SAAuCsN,EAAQogD,GAC7C,GAAc,MAAVpgD,EAAgB,MAAO,GAC3B,IAEItS,EAAKvB,EAFLuG,EAAS,GACT2tD,EAAaxzD,OAAOgU,KAAKb,GAG7B,IAAK7T,EAAI,EAAGA,EAAIk0D,EAAWrwD,OAAQ7D,IACjCuB,EAAM2yD,EAAWl0D,GACbi0D,EAASvxD,QAAQnB,IAAQ,IAC7BgF,EAAOhF,GAAOsS,EAAOtS,IAGvB,OAAOgF,EAMM4tD,CAA8BtgD,EAAQogD,GAInD,GAAIvzD,OAAO8yD,sBAAuB,CAChC,IAAIY,EAAmB1zD,OAAO8yD,sBAAsB3/C,GAEpD,IAAK7T,EAAI,EAAGA,EAAIo0D,EAAiBvwD,OAAQ7D,IACvCuB,EAAM6yD,EAAiBp0D,GACnBi0D,EAASvxD,QAAQnB,IAAQ,GACxBb,OAAOkB,UAAUyyD,qBAAqBl0D,KAAK0T,EAAQtS,KACxDgF,EAAOhF,GAAOsS,EAAOtS,IAIzB,OAAOgF,EC5HTmB,iBAAiB,uBAAuB,SAAUkrB,GAChD,IAAIjR,EAAaiR,EAAMjR,WACnBpb,EAASqsB,EAAMrsB,OAEfob,EAAWwD,MACA,IAAI,EAAiBxD,EAAYpb,GACvC4hB,WD8JX,SAAS7gB,EAAUgtD,GACjB,GAAsB,qBAAXjyD,QAA0BA,OAAOgF,UAC1C,QAAuBA,UAAUC,UAAU0K,MAAMsiD,GAIrD,IAAIC,EAAajtD,EAAU,yDACvBktD,EAAOltD,EAAU,SACjBmtD,EAAUntD,EAAU,YACpBotD,EAASptD,EAAU,aAAeA,EAAU,aAAeA,EAAU,YACrEqtD,EAAMrtD,EAAU,mBAChBstD,EAAmBttD,EAAU,YAAcA,EAAU,YACrDutD,EAAc,CAChBC,SAAS,EACTC,SAAS,GAGX,SAASjD,EAAGlG,EAAIh5B,EAAOyrB,GACrBuN,EAAGlkD,iBAAiBkrB,EAAOyrB,GAAKkW,GAAcM,GAGhD,SAAS5C,EAAIrG,EAAIh5B,EAAOyrB,GACtBuN,EAAGhjD,oBAAoBgqB,EAAOyrB,GAAKkW,GAAcM,GAGnD,SAASl4C,EAETivC,EAEA9H,GACE,GAAKA,EAAL,CAGA,GAFgB,MAAhBA,EAAS,KAAeA,EAAWA,EAAS3E,UAAU,IAElDyM,EACF,IACE,GAAIA,EAAGjvC,QACL,OAAOivC,EAAGjvC,QAAQmnC,GACb,GAAI8H,EAAGj2C,kBACZ,OAAOi2C,EAAGj2C,kBAAkBmuC,GACvB,GAAI8H,EAAGl2C,sBACZ,OAAOk2C,EAAGl2C,sBAAsBouC,GAElC,MAAOkR,GACP,OAAO,EAIX,OAAO,GAGT,SAASC,EAAgBrJ,GACvB,OAAOA,EAAGh/C,MAAQg/C,IAAO/mD,UAAY+mD,EAAGh/C,KAAKlB,SAAWkgD,EAAGh/C,KAAOg/C,EAAG5lD,WAGvE,SAASyQ,EAETm1C,EAEA9H,EAEAoR,EAAKC,GACH,GAAIvJ,EAAI,CACNsJ,EAAMA,GAAOrwD,SAEb,EAAG,CACD,GAAgB,MAAZi/C,IAAqC,MAAhBA,EAAS,GAAa8H,EAAG5lD,aAAekvD,GAAOv4C,EAAQivC,EAAI9H,GAAYnnC,EAAQivC,EAAI9H,KAAcqR,GAAcvJ,IAAOsJ,EAC7I,OAAOtJ,EAGT,GAAIA,IAAOsJ,EAAK,YAETtJ,EAAKqJ,EAAgBrJ,IAGhC,OAAO,KAGT,IAgWIwJ,EAhWAC,EAAU,OAEd,SAASC,EAAY1J,EAAIrrD,EAAM2+C,GAC7B,GAAI0M,GAAMrrD,EACR,GAAIqrD,EAAGrzC,UACLqzC,EAAGrzC,UAAU2mC,EAAQ,MAAQ,UAAU3+C,OAClC,CACL,IAAI+X,GAAa,IAAMszC,EAAGtzC,UAAY,KAAK9E,QAAQ6hD,EAAS,KAAK7hD,QAAQ,IAAMjT,EAAO,IAAK,KAC3FqrD,EAAGtzC,WAAaA,GAAa4mC,EAAQ,IAAM3+C,EAAO,KAAKiT,QAAQ6hD,EAAS,MAK9E,SAAS3zC,EAAIkqC,EAAI2J,EAAMzU,GACrB,IAAI1oC,EAAQwzC,GAAMA,EAAGxzC,MAErB,GAAIA,EAAO,CACT,QAAY,IAAR0oC,EAOF,OANIj8C,SAAS2wD,aAAe3wD,SAAS2wD,YAAY/xC,iBAC/Cq9B,EAAMj8C,SAAS2wD,YAAY/xC,iBAAiBmoC,EAAI,IACvCA,EAAG6J,eACZ3U,EAAM8K,EAAG6J,mBAGK,IAATF,EAAkBzU,EAAMA,EAAIyU,GAE7BA,KAAQn9C,IAAsC,IAA5Bm9C,EAAK7yD,QAAQ,YACnC6yD,EAAO,WAAaA,GAGtBn9C,EAAMm9C,GAAQzU,GAAsB,kBAARA,EAAmB,GAAK,OAK1D,SAAS4U,EAAO9J,EAAI+J,GAClB,IAAIC,EAAoB,GAExB,GAAkB,kBAAPhK,EACTgK,EAAoBhK,OAEpB,EAAG,CACD,IAAIiK,EAAYn0C,EAAIkqC,EAAI,aAEpBiK,GAA2B,SAAdA,IACfD,EAAoBC,EAAY,IAAMD,UAIhCD,IAAa/J,EAAKA,EAAG5lD,aAGjC,IAAI8vD,EAAWzzD,OAAO0zD,WAAa1zD,OAAO2zD,iBAAmB3zD,OAAO4zD,WAAa5zD,OAAO6zD,YAGxF,OAAOJ,GAAY,IAAIA,EAASF,GAGlC,SAASz3C,EAAK+2C,EAAKl9C,EAAS/V,GAC1B,GAAIizD,EAAK,CACP,IAAIiB,EAAOjB,EAAIkB,qBAAqBp+C,GAChChY,EAAI,EACJyB,EAAI00D,EAAKtyD,OAEb,GAAI5B,EACF,KAAOjC,EAAIyB,EAAGzB,IACZiC,EAASk0D,EAAKn2D,GAAIA,GAItB,OAAOm2D,EAGT,MAAO,GAGT,SAASE,IACP,IAAIC,EAAmBzxD,SAASyxD,iBAEhC,OAAIA,GAGKzxD,SAAS2Q,gBAcpB,SAAS+gD,EAAQ3K,EAAI4K,EAA2BC,EAA2BC,EAAWr/B,GACpF,GAAKu0B,EAAG+K,uBAAyB/K,IAAOvpD,OAAxC,CACA,IAAIu0D,EAAQ5lC,EAAKhB,EAAMsd,EAAQnd,EAAO6I,EAAQyC,EAmB9C,GAjBImwB,IAAOvpD,QAAUupD,EAAG5lD,YAAc4lD,IAAOyK,KAE3CrlC,GADA4lC,EAAShL,EAAG+K,yBACC3lC,IACbhB,EAAO4mC,EAAO5mC,KACdsd,EAASspB,EAAOtpB,OAChBnd,EAAQymC,EAAOzmC,MACf6I,EAAS49B,EAAO59B,OAChByC,EAAQm7B,EAAOn7B,QAEfzK,EAAM,EACNhB,EAAO,EACPsd,EAASjrC,OAAOw0D,YAChB1mC,EAAQ9tB,OAAOy0D,WACf99B,EAAS32B,OAAOw0D,YAChBp7B,EAAQp5B,OAAOy0D,aAGZN,GAA6BC,IAA8B7K,IAAOvpD,SAErEg1B,EAAYA,GAAau0B,EAAG5lD,YAGvBuuD,GACH,GACE,GAAIl9B,GAAaA,EAAUs/B,wBAA0D,SAAhCj1C,EAAI2V,EAAW,cAA2Bo/B,GAA4D,WAA/B/0C,EAAI2V,EAAW,aAA2B,CACpK,IAAI0/B,EAAgB1/B,EAAUs/B,wBAE9B3lC,GAAO+lC,EAAc/lC,IAAM2O,SAASje,EAAI2V,EAAW,qBACnDrH,GAAQ+mC,EAAc/mC,KAAO2P,SAASje,EAAI2V,EAAW,sBACrDiW,EAAStc,EAAM4lC,EAAO59B,OACtB7I,EAAQH,EAAO4mC,EAAOn7B,MACtB,aAIKpE,EAAYA,EAAUrxB,YAInC,GAAI0wD,GAAa9K,IAAOvpD,OAAQ,CAE9B,IAAI20D,EAAWtB,EAAOr+B,GAAau0B,GAC/BqL,EAASD,GAAYA,EAASpzD,EAC9BszD,EAASF,GAAYA,EAAS12D,EAE9B02D,IAKF1pB,GAJAtc,GAAOkmC,IAGPl+B,GAAUk+B,GAEV/mC,GAJAH,GAAQinC,IACRx7B,GAASw7B,IAOb,MAAO,CACLjmC,IAAKA,EACLhB,KAAMA,EACNsd,OAAQA,EACRnd,MAAOA,EACPsL,MAAOA,EACPzC,OAAQA,IAYZ,SAASm+B,EAAevL,EAAIwL,EAAQC,GAKlC,IAJA,IAAIC,EAASC,EAA2B3L,GAAI,GACxC4L,EAAYjB,EAAQ3K,GAAIwL,GAGrBE,GAAQ,CACb,IAAIG,EAAgBlB,EAAQe,GAAQD,GASpC,KANmB,QAAfA,GAAuC,SAAfA,EAChBG,GAAaC,EAEbD,GAAaC,GAGX,OAAOH,EACrB,GAAIA,IAAWjB,IAA6B,MAC5CiB,EAASC,EAA2BD,GAAQ,GAG9C,OAAO,EAYT,SAASI,EAAS9L,EAAI+L,EAAU1xD,EAAS2xD,GAKvC,IAJA,IAAIC,EAAe,EACf73D,EAAI,EACJk+C,EAAW0N,EAAG1N,SAEXl+C,EAAIk+C,EAASr6C,QAAQ,CAC1B,GAAkC,SAA9Bq6C,EAASl+C,GAAGoY,MAAM8gB,SAAsBglB,EAASl+C,KAAO83D,GAASC,QAAUH,GAAiB1Z,EAASl+C,KAAO83D,GAASE,UAAYvhD,EAAQynC,EAASl+C,GAAIiG,EAAQgyD,UAAWrM,GAAI,GAAQ,CACvL,GAAIiM,IAAiBF,EACnB,OAAOzZ,EAASl+C,GAGlB63D,IAGF73D,IAGF,OAAO,KAUT,SAASw9B,EAAUouB,EAAI9H,GAGrB,IAFA,IAAIoU,EAAOtM,EAAGuM,iBAEPD,IAASA,IAASJ,GAASC,OAAkC,SAAzBr2C,EAAIw2C,EAAM,YAAyBpU,IAAannC,EAAQu7C,EAAMpU,KACvGoU,EAAOA,EAAKvtB,uBAGd,OAAOutB,GAAQ,KAWjB,SAAS5xB,EAAMslB,EAAI9H,GACjB,IAAIxd,EAAQ,EAEZ,IAAKslB,IAAOA,EAAG5lD,WACb,OAAQ,EAKV,KAAO4lD,EAAKA,EAAGjhB,wBACqB,aAA9BihB,EAAGwM,SAAS3rC,eAAgCm/B,IAAOkM,GAASO,OAAWvU,IAAYnnC,EAAQivC,EAAI9H,IACjGxd,IAIJ,OAAOA,EAUT,SAASgyB,EAAwB1M,GAC/B,IAAI2M,EAAa,EACbC,EAAY,EACZC,EAAcpC,IAElB,GAAIzK,EACF,EAAG,CACD,IAAIoL,EAAWtB,EAAO9J,GAClBqL,EAASD,EAASpzD,EAClBszD,EAASF,EAAS12D,EACtBi4D,GAAc3M,EAAG8M,WAAazB,EAC9BuB,GAAa5M,EAAG+M,UAAYzB,QACrBtL,IAAO6M,IAAgB7M,EAAKA,EAAG5lD,aAG1C,MAAO,CAACuyD,EAAYC,GAsBtB,SAASjB,EAA2B3L,EAAIgN,GAEtC,IAAKhN,IAAOA,EAAG+K,sBAAuB,OAAON,IAC7C,IAAIwC,EAAOjN,EACPkN,GAAU,EAEd,GAEE,GAAID,EAAKE,YAAcF,EAAKG,aAAeH,EAAKI,aAAeJ,EAAK5/B,aAAc,CAChF,IAAIigC,EAAUx3C,EAAIm3C,GAElB,GAAIA,EAAKE,YAAcF,EAAKG,cAAqC,QAArBE,EAAQC,WAA4C,UAArBD,EAAQC,YAA0BN,EAAKI,aAAeJ,EAAK5/B,eAAsC,QAArBigC,EAAQE,WAA4C,UAArBF,EAAQE,WAAwB,CACpN,IAAKP,EAAKlC,uBAAyBkC,IAASh0D,SAASkX,KAAM,OAAOs6C,IAClE,GAAIyC,GAAWF,EAAa,OAAOC,EACnCC,GAAU,UAKPD,EAAOA,EAAK7yD,YAErB,OAAOqwD,IAeT,SAASgD,EAAYC,EAAOC,GAC1B,OAAOr0D,KAAKs0D,MAAMF,EAAMtoC,OAAS9rB,KAAKs0D,MAAMD,EAAMvoC,MAAQ9rB,KAAKs0D,MAAMF,EAAMtpC,QAAU9qB,KAAKs0D,MAAMD,EAAMvpC,OAAS9qB,KAAKs0D,MAAMF,EAAMtgC,UAAY9zB,KAAKs0D,MAAMD,EAAMvgC,SAAW9zB,KAAKs0D,MAAMF,EAAM79B,SAAWv2B,KAAKs0D,MAAMD,EAAM99B,OAKvN,SAASg+B,EAAStW,EAAUuW,GAC1B,OAAO,WACL,IAAKtE,EAAkB,CACrB,IAAI/H,EAAOpqD,UACPmgD,EAAQhhD,KAEQ,IAAhBirD,EAAKxpD,OACPs/C,EAAShjD,KAAKijD,EAAOiK,EAAK,IAE1BlK,EAASngD,MAAMogD,EAAOiK,GAGxB+H,EAAmBtxD,YAAW,WAC5BsxD,OAAmB,IAClBsE,KAUT,SAASC,EAAS/N,EAAI7kD,EAAGS,GACvBokD,EAAG8M,YAAc3xD,EACjB6kD,EAAG+M,WAAanxD,EAGlB,SAAS6wD,EAAMzM,GACb,IAAIgO,EAAUv3D,OAAOu3D,QACjB7Q,EAAI1mD,OAAOqrD,QAAUrrD,OAAOw3D,MAEhC,OAAID,GAAWA,EAAQjtD,IACditD,EAAQjtD,IAAIi/C,GAAIrnC,WAAU,GACxBwkC,EACFA,EAAE6C,GAAIyM,OAAM,GAAM,GAElBzM,EAAGrnC,WAAU,GAoBxB,IAAIu1C,EAAU,YAAa,IAAI90D,MAAO63C,UAEtC,SAASkd,IACP,IACIC,EADAC,EAAkB,GAEtB,MAAO,CACLC,sBAAuB,YACrBD,EAAkB,GACb73D,KAAK6D,QAAQk0D,YACH,GAAG91D,MAAMlE,KAAKiC,KAAKwpD,GAAG1N,UAC5Bn7C,SAAQ,SAAUq3D,GACzB,GAA8B,SAA1B14C,EAAI04C,EAAO,YAAyBA,IAAUtC,GAASC,MAA3D,CACAkC,EAAgBr3D,KAAK,CACnB2D,OAAQ6zD,EACRC,KAAM9D,EAAQ6D,KAGhB,IAAIE,EAAW3G,EAAe,GAAIsG,EAAgBA,EAAgBp2D,OAAS,GAAGw2D,MAG9E,GAAID,EAAMG,sBAAuB,CAC/B,IAAIC,EAAc9E,EAAO0E,GAAO,GAE5BI,IACFF,EAAStpC,KAAOwpC,EAAYvzD,EAC5BqzD,EAAStqC,MAAQwqC,EAAY33D,GAIjCu3D,EAAME,SAAWA,OAGrBG,kBAAmB,SAA2Bvb,GAC5C+a,EAAgBr3D,KAAKs8C,IAEvBwb,qBAAsB,SAA8Bn0D,GAClD0zD,EAAgBn3D,OApJtB,SAAuBo9C,EAAKh+C,GAC1B,IAAK,IAAIlC,KAAKkgD,EACZ,GAAKA,EAAIr+C,eAAe7B,GAExB,IAAK,IAAIuB,KAAOW,EACd,GAAIA,EAAIL,eAAeN,IAAQW,EAAIX,KAAS2+C,EAAIlgD,GAAGuB,GAAM,OAAOo5D,OAAO36D,GAI3E,OAAQ,EA2ImB46D,CAAcX,EAAiB,CACpD1zD,OAAQA,IACN,IAENs0D,WAAY,SAAoB1X,GAC9B,IAAIC,EAAQhhD,KAEZ,IAAKA,KAAK6D,QAAQk0D,UAGhB,OAFAlwD,aAAa+vD,QACW,oBAAb7W,GAAyBA,KAItC,IAAI2X,GAAY,EACZC,EAAgB,EACpBd,EAAgBl3D,SAAQ,SAAUm8C,GAChC,IAAI8b,EAAO,EACPz0D,EAAS24C,EAAM34C,OACf+zD,EAAW/zD,EAAO+zD,SAClBW,EAAS1E,EAAQhwD,GACjB20D,EAAe30D,EAAO20D,aACtBC,EAAa50D,EAAO40D,WACpBC,EAAgBlc,EAAMmb,KACtBgB,EAAe3F,EAAOnvD,GAAQ,GAE9B80D,IAEFJ,EAAOjqC,KAAOqqC,EAAap0D,EAC3Bg0D,EAAOjrC,MAAQqrC,EAAax4D,GAG9B0D,EAAO00D,OAASA,EAEZ10D,EAAOg0D,uBAELlB,EAAY6B,EAAcD,KAAY5B,EAAYiB,EAAUW,KAC/DG,EAAcpqC,IAAMiqC,EAAOjqC,MAAQoqC,EAAcprC,KAAOirC,EAAOjrC,SAAWsqC,EAAStpC,IAAMiqC,EAAOjqC,MAAQspC,EAAStqC,KAAOirC,EAAOjrC,QAE9HgrC,EA2EZ,SAA2BI,EAAed,EAAUW,EAAQh1D,GAC1D,OAAOf,KAAKo2D,KAAKp2D,KAAKme,IAAIi3C,EAAStpC,IAAMoqC,EAAcpqC,IAAK,GAAK9rB,KAAKme,IAAIi3C,EAAStqC,KAAOorC,EAAcprC,KAAM,IAAM9qB,KAAKo2D,KAAKp2D,KAAKme,IAAIi3C,EAAStpC,IAAMiqC,EAAOjqC,IAAK,GAAK9rB,KAAKme,IAAIi3C,EAAStqC,KAAOirC,EAAOjrC,KAAM,IAAM/pB,EAAQk0D,UA5E1MoB,CAAkBH,EAAeF,EAAcC,EAAY/X,EAAMn9C,UAKvEozD,EAAY4B,EAAQX,KACvB/zD,EAAO20D,aAAeZ,EACtB/zD,EAAO40D,WAAaF,EAEfD,IACHA,EAAO5X,EAAMn9C,QAAQk0D,WAGvB/W,EAAMoY,QAAQj1D,EAAQ60D,EAAeH,EAAQD,IAG3CA,IACFF,GAAY,EACZC,EAAgB71D,KAAKua,IAAIs7C,EAAeC,GACxC/wD,aAAa1D,EAAOk1D,qBACpBl1D,EAAOk1D,oBAAsB33D,YAAW,WACtCyC,EAAOw0D,cAAgB,EACvBx0D,EAAO20D,aAAe,KACtB30D,EAAO+zD,SAAW,KAClB/zD,EAAO40D,WAAa,KACpB50D,EAAOg0D,sBAAwB,OAC9BS,GACHz0D,EAAOg0D,sBAAwBS,MAGnC/wD,aAAa+vD,GAERc,EAGHd,EAAsBl2D,YAAW,WACP,oBAAbq/C,GAAyBA,MACnC4X,GAJqB,oBAAb5X,GAAyBA,IAOtC8W,EAAkB,IAEpBuB,QAAS,SAAiBj1D,EAAQm1D,EAAaT,EAAQU,GACrD,GAAIA,EAAU,CACZj6C,EAAInb,EAAQ,aAAc,IAC1Bmb,EAAInb,EAAQ,YAAa,IACzB,IAAIywD,EAAWtB,EAAOtzD,KAAKwpD,IACvBqL,EAASD,GAAYA,EAASpzD,EAC9BszD,EAASF,GAAYA,EAAS12D,EAC9Bs7D,GAAcF,EAAY1rC,KAAOirC,EAAOjrC,OAASinC,GAAU,GAC3D4E,GAAcH,EAAY1qC,IAAMiqC,EAAOjqC,MAAQkmC,GAAU,GAC7D3wD,EAAOu1D,aAAeF,EACtBr1D,EAAOw1D,aAAeF,EACtBn6C,EAAInb,EAAQ,YAAa,eAAiBq1D,EAAa,MAAQC,EAAa,SAC5Ez5D,KAAK45D,gBAiBb,SAAiBz1D,GACf,OAAOA,EAAO01D,YAlBeC,CAAQ31D,GAE/Bmb,EAAInb,EAAQ,aAAc,aAAeo1D,EAAW,MAAQv5D,KAAK6D,QAAQk2D,OAAS,IAAM/5D,KAAK6D,QAAQk2D,OAAS,KAC9Gz6C,EAAInb,EAAQ,YAAa,sBACE,kBAApBA,EAAO61D,UAAyBnyD,aAAa1D,EAAO61D,UAC3D71D,EAAO61D,SAAWt4D,YAAW,WAC3B4d,EAAInb,EAAQ,aAAc,IAC1Bmb,EAAInb,EAAQ,YAAa,IACzBA,EAAO61D,UAAW,EAClB71D,EAAOu1D,YAAa,EACpBv1D,EAAOw1D,YAAa,IACnBJ,MAcX,IAAIU,EAAU,GACVC,EAAW,CACbC,qBAAqB,GAEnBC,EAAgB,CAClBC,MAAO,SAAeC,GAEpB,IAAK,IAAIlR,KAAU8Q,EACbA,EAASz6D,eAAe2pD,MAAaA,KAAUkR,KACjDA,EAAOlR,GAAU8Q,EAAS9Q,IAI9B6Q,EAAQt5D,SAAQ,SAAUjB,GACxB,GAAIA,EAAE66D,aAAeD,EAAOC,WAC1B,KAAM,iCAAiChtD,OAAO+sD,EAAOC,WAAY,sBAGrEN,EAAQz5D,KAAK85D,IAEfE,YAAa,SAAqBhyC,EAAWiyC,EAAUrT,GACrD,IAAIpG,EAAQhhD,KAEZA,KAAK06D,eAAgB,EAErBtT,EAAIpqC,OAAS,WACXgkC,EAAM0Z,eAAgB,GAGxB,IAAIC,EAAkBnyC,EAAY,SAClCyxC,EAAQt5D,SAAQ,SAAU25D,GACnBG,EAASH,EAAOC,cAEjBE,EAASH,EAAOC,YAAYI,IAC9BF,EAASH,EAAOC,YAAYI,GAAiBpJ,EAAe,CAC1DkJ,SAAUA,GACTrT,IAKDqT,EAAS52D,QAAQy2D,EAAOC,aAAeE,EAASH,EAAOC,YAAY/xC,IACrEiyC,EAASH,EAAOC,YAAY/xC,GAAW+oC,EAAe,CACpDkJ,SAAUA,GACTrT,SAITwT,kBAAmB,SAA2BH,EAAUjR,EAAI0Q,EAAUr2D,GAYpE,IAAK,IAAIulD,KAXT6Q,EAAQt5D,SAAQ,SAAU25D,GACxB,IAAIC,EAAaD,EAAOC,WACxB,GAAKE,EAAS52D,QAAQ02D,IAAgBD,EAAOH,oBAA7C,CACA,IAAIliD,EAAc,IAAIqiD,EAAOG,EAAUjR,EAAIiR,EAAS52D,SACpDoU,EAAYwiD,SAAWA,EACvBxiD,EAAYpU,QAAU42D,EAAS52D,QAC/B42D,EAASF,GAActiD,EAEvBy5C,EAASwI,EAAUjiD,EAAYiiD,cAGdO,EAAS52D,QAC1B,GAAK42D,EAAS52D,QAAQpE,eAAe2pD,GAArC,CACA,IAAIyR,EAAW76D,KAAK86D,aAAaL,EAAUrR,EAAQqR,EAAS52D,QAAQulD,IAE5C,qBAAbyR,IACTJ,EAAS52D,QAAQulD,GAAUyR,KAIjCE,mBAAoB,SAA4B58D,EAAMs8D,GACpD,IAAIO,EAAkB,GAMtB,OALAf,EAAQt5D,SAAQ,SAAU25D,GACc,oBAA3BA,EAAOU,iBAElBtJ,EAASsJ,EAAiBV,EAAOU,gBAAgBj9D,KAAK08D,EAASH,EAAOC,YAAap8D,OAE9E68D,GAETF,aAAc,SAAsBL,EAAUt8D,EAAMU,GAClD,IAAIo8D,EASJ,OARAhB,EAAQt5D,SAAQ,SAAU25D,GAEnBG,EAASH,EAAOC,aAEjBD,EAAOY,iBAA2D,oBAAjCZ,EAAOY,gBAAgB/8D,KAC1D88D,EAAgBX,EAAOY,gBAAgB/8D,GAAMJ,KAAK08D,EAASH,EAAOC,YAAa17D,OAG5Eo8D,IAIX,SAAS5sD,EAAc8sD,GACrB,IAAIV,EAAWU,EAAKV,SAChBW,EAASD,EAAKC,OACdj9D,EAAOg9D,EAAKh9D,KACZk9D,EAAWF,EAAKE,SAChBC,EAAUH,EAAKG,QACfC,EAAOJ,EAAKI,KACZC,EAASL,EAAKK,OACdC,EAAWN,EAAKM,SAChBC,EAAWP,EAAKO,SAChBC,EAAoBR,EAAKQ,kBACzBC,EAAoBT,EAAKS,kBACzBC,EAAgBV,EAAKU,cACrBC,EAAcX,EAAKW,YACnBC,EAAuBZ,EAAKY,qBAEhC,GADAtB,EAAWA,GAAYW,GAAUA,EAAO1D,GACxC,CACA,IAAItQ,EACAvjD,EAAU42D,EAAS52D,QACnBm4D,EAAS,KAAO79D,EAAKgU,OAAO,GAAGkY,cAAgBlsB,EAAKogD,OAAO,IAE3Dt+C,OAAOoI,aAAgB8pD,GAAeC,GAMxChL,EAAM3kD,SAASqF,YAAY,UACvBC,UAAU5J,GAAM,GAAM,GAN1BipD,EAAM,IAAI/+C,YAAYlK,EAAM,CAC1BqK,SAAS,EACTL,YAAY,IAOhBi/C,EAAIzI,GAAK4c,GAAQH,EACjBhU,EAAI7pC,KAAOi+C,GAAUJ,EACrBhU,EAAIvyC,KAAOwmD,GAAYD,EACvBhU,EAAI6O,MAAQqF,EACZlU,EAAIqU,SAAWA,EACfrU,EAAIsU,SAAWA,EACftU,EAAIuU,kBAAoBA,EACxBvU,EAAIwU,kBAAoBA,EACxBxU,EAAIyU,cAAgBA,EACpBzU,EAAI6U,SAAWH,EAAcA,EAAYI,iBAAc/f,EAEvD,IAAIggB,EAAqB5K,EAAeA,EAAe,GAAIwK,GAAuB3B,EAAcW,mBAAmB58D,EAAMs8D,IAEzH,IAAK,IAAIrR,KAAU+S,EACjB/U,EAAIgC,GAAU+S,EAAmB/S,GAG/BgS,GACFA,EAAO/sD,cAAc+4C,GAGnBvjD,EAAQm4D,IACVn4D,EAAQm4D,GAAQj+D,KAAK08D,EAAUrT,IAInC,IAAIgV,EAAY,CAAC,OAEb5B,EAAc,SAAqBhyC,EAAWiyC,GAChD,IAAIU,EAAOt6D,UAAUY,OAAS,QAAsB06C,IAAjBt7C,UAAU,GAAmBA,UAAU,GAAK,GAC3Eg7D,EAAgBV,EAAK/T,IACrB7hD,EAAOqsD,EAAyBuJ,EAAMiB,GAE1ChC,EAAcI,YAAYp7D,KAAKs2D,GAA/B0E,CAAyC5xC,EAAWiyC,EAAUlJ,EAAe,CAC3E8K,OAAQA,EACRC,SAAUA,EACVC,QAASA,GACTnB,OAAQA,GACRoB,OAAQA,GACRC,WAAYA,GACZnB,QAASA,GACToB,YAAaA,GACbC,YAAaC,GACbd,YAAaA,GACbe,eAAgBnH,GAAS/I,OACzBkP,cAAeA,EACfJ,SAAUA,GACVE,kBAAmBA,GACnBD,SAAUA,GACVE,kBAAmBA,GACnBkB,mBAAoBC,GACpBC,qBAAsBC,GACtBC,eAAgB,WACdR,IAAc,GAEhBS,cAAe,WACbT,IAAc,GAEhBU,sBAAuB,SAA+Bj/D,GACpDk/D,EAAe,CACb5C,SAAUA,EACVt8D,KAAMA,EACN09D,cAAeA,MAGlBt2D,KAGL,SAAS83D,EAAeC,GACtBjvD,EAAckjD,EAAe,CAC3BuK,YAAaA,GACbR,QAASA,GACTD,SAAUgB,EACVjB,OAAQA,GACRK,SAAUA,GACVE,kBAAmBA,GACnBD,SAAUA,GACVE,kBAAmBA,IAClB0B,IAGL,IAAIjB,EACAC,EACAC,GACAnB,GACAoB,GACAC,GACAnB,GACAoB,GACAjB,GACAC,GACAC,GACAC,GACA2B,GACAzB,GAIA0B,GACAC,GACAC,GACAC,GACAC,GACAC,GACAjB,GACAkB,GACAC,GAGAC,GAEJC,GAhBIC,IAAsB,EACtBC,IAAkB,EAClBC,GAAY,GAUZC,IAAwB,EACxBC,IAAyB,EAIzBC,GAAmC,GAEvCC,IAAU,EACNC,GAAoB,GAGpBC,GAAqC,qBAAbj8D,SACxBk8D,GAA0BpM,EAC1BqM,GAAmBxM,GAAQD,EAAa,WAAa,QAEzD0M,GAAmBH,KAAmBlM,IAAqBD,GAAO,cAAe9vD,SAASgL,cAAc,OACpGqxD,GAA0B,WAC5B,GAAKJ,GAAL,CAEA,GAAIvM,EACF,OAAO,EAGT,IAAI3I,EAAK/mD,SAASgL,cAAc,KAEhC,OADA+7C,EAAGxzC,MAAM+oD,QAAU,sBACe,SAA3BvV,EAAGxzC,MAAMgpD,eATY,GAW1BC,GAAmB,SAA0BzV,EAAI3lD,GACnD,IAAIq7D,EAAQ5/C,EAAIkqC,GACZ2V,EAAU5hC,SAAS2hC,EAAM7lC,OAASkE,SAAS2hC,EAAME,aAAe7hC,SAAS2hC,EAAMG,cAAgB9hC,SAAS2hC,EAAMI,iBAAmB/hC,SAAS2hC,EAAMK,kBAChJC,EAASlK,EAAS9L,EAAI,EAAG3lD,GACzB47D,EAASnK,EAAS9L,EAAI,EAAG3lD,GACzB67D,EAAgBF,GAAUlgD,EAAIkgD,GAC9BG,EAAiBF,GAAUngD,EAAImgD,GAC/BG,EAAkBF,GAAiBniC,SAASmiC,EAAcG,YAActiC,SAASmiC,EAAcI,aAAe3L,EAAQqL,GAAQnmC,MAC9H0mC,EAAmBJ,GAAkBpiC,SAASoiC,EAAeE,YAActiC,SAASoiC,EAAeG,aAAe3L,EAAQsL,GAAQpmC,MAEtI,GAAsB,SAAlB6lC,EAAMpoC,QACR,MAA+B,WAAxBooC,EAAMc,eAAsD,mBAAxBd,EAAMc,cAAqC,WAAa,aAGrG,GAAsB,SAAlBd,EAAMpoC,QACR,OAAOooC,EAAMe,oBAAoBr1D,MAAM,KAAKnJ,QAAU,EAAI,WAAa,aAGzE,GAAI+9D,GAAUE,EAAqB,OAAgC,SAA3BA,EAAqB,MAAc,CACzE,IAAIQ,EAAgD,SAA3BR,EAAqB,MAAe,OAAS,QACtE,OAAOD,GAAoC,SAAzBE,EAAex/D,OAAoBw/D,EAAex/D,QAAU+/D,EAAmC,aAAb,WAGtG,OAAOV,IAAqC,UAA1BE,EAAc5oC,SAAiD,SAA1B4oC,EAAc5oC,SAAgD,UAA1B4oC,EAAc5oC,SAAiD,SAA1B4oC,EAAc5oC,SAAsB8oC,GAAmBT,GAAuC,SAA5BD,EAAMN,KAAgCa,GAAsC,SAA5BP,EAAMN,KAAgCgB,EAAkBG,EAAmBZ,GAAW,WAAa,cAiCnVgB,GAAgB,SAAuBt8D,GACzC,SAASu8D,EAAKvhE,EAAOwhE,GACnB,OAAO,SAAU1hB,EAAIphC,EAAM8+C,EAAQjV,GACjC,IAAIkZ,EAAY3hB,EAAG96C,QAAQkH,MAAM5M,MAAQof,EAAK1Z,QAAQkH,MAAM5M,MAAQwgD,EAAG96C,QAAQkH,MAAM5M,OAASof,EAAK1Z,QAAQkH,MAAM5M,KAEjH,GAAa,MAATU,IAAkBwhE,GAAQC,GAG5B,OAAO,EACF,GAAa,MAATzhE,IAA2B,IAAVA,EAC1B,OAAO,EACF,GAAIwhE,GAAkB,UAAVxhE,EACjB,OAAOA,EACF,GAAqB,oBAAVA,EAChB,OAAOuhE,EAAKvhE,EAAM8/C,EAAIphC,EAAM8+C,EAAQjV,GAAMiZ,EAAnCD,CAAyCzhB,EAAIphC,EAAM8+C,EAAQjV,GAElE,IAAImZ,GAAcF,EAAO1hB,EAAKphC,GAAM1Z,QAAQkH,MAAM5M,KAClD,OAAiB,IAAVU,GAAmC,kBAAVA,GAAsBA,IAAU0hE,GAAc1hE,EAAM4R,MAAQ5R,EAAMyB,QAAQigE,IAAe,GAK/H,IAAIx1D,EAAQ,GACRy1D,EAAgB38D,EAAQkH,MAEvBy1D,GAA2C,UAA1B5gE,EAAQ4gE,KAC5BA,EAAgB,CACdriE,KAAMqiE,IAIVz1D,EAAM5M,KAAOqiE,EAAcriE,KAC3B4M,EAAM01D,UAAYL,EAAKI,EAAcH,MAAM,GAC3Ct1D,EAAM21D,SAAWN,EAAKI,EAAcG,KACpC51D,EAAM61D,YAAcJ,EAAcI,YAClC/8D,EAAQkH,MAAQA,GAEdgyD,GAAsB,YACnB+B,IAA2BvC,IAC9Bj9C,EAAIi9C,GAAS,UAAW,SAGxBU,GAAwB,YACrB6B,IAA2BvC,IAC9Bj9C,EAAIi9C,GAAS,UAAW,KAKxBmC,IACFj8D,SAAS6C,iBAAiB,SAAS,SAAU8hD,GAC3C,GAAI+W,GAKF,OAJA/W,EAAIp/C,iBACJo/C,EAAI95B,iBAAmB85B,EAAI95B,kBAC3B85B,EAAIzgD,0BAA4BygD,EAAIzgD,2BACpCw3D,IAAkB,GACX,KAER,GAGL,IAAI0C,GAAgC,SAAuCzZ,GACzE,GAAIiV,EAAQ,CACVjV,EAAMA,EAAI0Z,QAAU1Z,EAAI0Z,QAAQ,GAAK1Z,EAErC,IAAI2Z,GAhF2Dp8D,EAgFrByiD,EAAIr8B,QAhFoB3lB,EAgFXgiD,EAAIp8B,QA9E7DozC,GAAU4C,MAAK,SAAUvG,GACvB,IAAIwG,EAAYxG,EAAS/C,GAAS7zD,QAAQq9D,qBAC1C,GAAKD,IAAa7lC,EAAUq/B,GAA5B,CACA,IAAIxC,EAAO9D,EAAQsG,GACf0G,EAAqBx8D,GAAKszD,EAAKrqC,KAAOqzC,GAAat8D,GAAKszD,EAAKlqC,MAAQkzC,EACrEG,EAAmBh8D,GAAK6yD,EAAKrpC,IAAMqyC,GAAa77D,GAAK6yD,EAAK/sB,OAAS+1B,EAEvE,OAAIE,GAAsBC,EACjB7hB,EAAMkb,OADf,MAIKlb,GAqEL,GAAIwhB,EAAS,CAEX,IAAIvwC,EAAQ,GAEZ,IAAK,IAAI5yB,KAAKwpD,EACRA,EAAI3nD,eAAe7B,KACrB4yB,EAAM5yB,GAAKwpD,EAAIxpD,IAInB4yB,EAAMrsB,OAASqsB,EAAM4qC,OAAS2F,EAC9BvwC,EAAMxoB,oBAAiB,EACvBwoB,EAAMlD,qBAAkB,EAExByzC,EAAQrJ,GAAS2J,YAAY7wC,IAhGL,IAAqC7rB,EAAGS,EAChEm6C,GAoGF+hB,GAAwB,SAA+Bla,GACrDiV,GACFA,EAAOz4D,WAAW8zD,GAAS6J,iBAAiBna,EAAIjjD,SAUpD,SAASuxD,GAASlM,EAAI3lD,GACpB,IAAM2lD,IAAMA,EAAGlgD,UAA4B,IAAhBkgD,EAAGlgD,SAC5B,KAAM,8CAA8CiE,OAAO,GAAGyD,SAASjT,KAAKyrD,IAG9ExpD,KAAKwpD,GAAKA,EAEVxpD,KAAK6D,QAAUA,EAAU6tD,EAAS,GAAI7tD,GAEtC2lD,EAAGkO,GAAW13D,KACd,IAAIk6D,EAAW,CACbnvD,MAAO,KACP1H,MAAM,EACNm7B,UAAU,EACVgjC,MAAO,KACP/T,OAAQ,KACRoI,UAAW,WAAW7wD,KAAKwkD,EAAGwM,UAAY,MAAQ,KAClDyL,cAAe,EAEfC,YAAY,EAEZC,sBAAuB,KAEvBC,mBAAmB,EACnBC,UAAW,WACT,OAAO5C,GAAiBzV,EAAIxpD,KAAK6D,UAEnCi+D,WAAY,iBACZC,YAAa,kBACbC,UAAW,gBACXC,OAAQ,SACRxd,OAAQ,KACRyd,iBAAiB,EACjBnK,UAAW,EACXgC,OAAQ,KACRlgD,QAAS,SAAiB6Q,EAAc2xC,GACtC3xC,EAAa7Q,QAAQ,OAAQwiD,EAAOjmD,cAEtC+rD,YAAY,EACZC,gBAAgB,EAChBC,WAAY,UACZC,MAAO,EACPC,kBAAkB,EAClBC,qBAAsBjK,OAAOh7B,SAAWg7B,OAASt4D,QAAQs9B,SAASt9B,OAAOwiE,iBAAkB,KAAO,EAClGC,eAAe,EACfC,cAAe,oBACfC,gBAAgB,EAChBC,kBAAmB,EACnBC,eAAgB,CACdn+D,EAAG,EACHS,EAAG,GAEL29D,gBAA4C,IAA5BrN,GAASqN,gBAA4B,iBAAkB9iE,SAAWqyD,EAClF4O,qBAAsB,GAIxB,IAAK,IAAI/iE,KAFTi8D,EAAcQ,kBAAkB56D,KAAMwpD,EAAI0Q,GAEzBA,IACb/7D,KAAQ0F,KAAaA,EAAQ1F,GAAQ+7D,EAAS/7D,IAMlD,IAAK,IAAI89C,KAHTkkB,GAAct8D,GAGC7D,KACQ,MAAjBi8C,EAAG9pC,OAAO,IAAkC,oBAAbnS,KAAKi8C,KACtCj8C,KAAKi8C,GAAMj8C,KAAKi8C,GAAI78C,KAAKY,OAK7BA,KAAKgjE,iBAAkBn/D,EAAQ6+D,eAAwB7D,GAEnD7+D,KAAKgjE,kBAEPhjE,KAAK6D,QAAQ2+D,oBAAsB,GAIjC3+D,EAAQk/D,eACVrT,EAAGlG,EAAI,cAAexpD,KAAKijE,cAE3BvT,EAAGlG,EAAI,YAAaxpD,KAAKijE,aACzBvT,EAAGlG,EAAI,aAAcxpD,KAAKijE,cAGxBjjE,KAAKgjE,kBACPtT,EAAGlG,EAAI,WAAYxpD,MACnB0vD,EAAGlG,EAAI,YAAaxpD,OAGtBo+D,GAAU59D,KAAKR,KAAKwpD,IAEpB3lD,EAAQ29D,OAAS39D,EAAQ29D,MAAM/iE,KAAOuB,KAAKqD,KAAKQ,EAAQ29D,MAAM/iE,IAAIuB,OAAS,IAE3E0xD,EAAS1xD,KAAM23D,KAyrCjB,SAASuL,GAAQ1H,EAAQD,EAAMc,EAAQ8G,EAAU9H,EAAU+H,EAAYvH,EAAewH,GACpF,IAAIjc,EAGAkc,EAFA7I,EAAWe,EAAO9D,GAClB6L,EAAW9I,EAAS52D,QAAQ2/D,OA2BhC,OAxBIvjE,OAAOoI,aAAgB8pD,GAAeC,GAMxChL,EAAM3kD,SAASqF,YAAY,UACvBC,UAAU,QAAQ,GAAM,GAN5Bq/C,EAAM,IAAI/+C,YAAY,OAAQ,CAC5BG,SAAS,EACTL,YAAY,IAOhBi/C,EAAIzI,GAAK4c,EACTnU,EAAI7pC,KAAOi+C,EACXpU,EAAIwO,QAAUyG,EACdjV,EAAIqc,YAAcN,EAClB/b,EAAIsc,QAAUrI,GAAYE,EAC1BnU,EAAIuc,YAAcP,GAAcjP,EAAQoH,GACxCnU,EAAIic,gBAAkBA,EACtBjc,EAAIyU,cAAgBA,EACpBL,EAAOntD,cAAc+4C,GAEjBmc,IACFD,EAASC,EAASxlE,KAAK08D,EAAUrT,EAAKyU,IAGjCyH,EAGT,SAASM,GAAkBpa,GACzBA,EAAGqM,WAAY,EAGjB,SAASgO,KACPrF,IAAU,EAmFZ,SAASsF,GAAYta,GAKnB,IAJA,IAAIjM,EAAMiM,EAAG5zC,QAAU4zC,EAAGtzC,UAAYszC,EAAG1wB,IAAM0wB,EAAGhoC,KAAOgoC,EAAGpzC,YACxDxY,EAAI2/C,EAAI97C,OACRsiE,EAAM,EAEHnmE,KACLmmE,GAAOxmB,EAAI5/B,WAAW/f,GAGxB,OAAOmmE,EAAI/yD,SAAS,IActB,SAASgzD,GAAU/nB,GACjB,OAAOv6C,WAAWu6C,EAAI,GAGxB,SAASgoB,GAAgBj0D,GACvB,OAAOnI,aAAamI,GA30CtB0lD,GAASl2D,UAET,CACEO,YAAa21D,GACb6L,iBAAkB,SAA0Bp9D,GACrCnE,KAAKwpD,GAAG1O,SAAS32C,IAAWA,IAAWnE,KAAKwpD,KAC/CsU,GAAa,OAGjBoG,cAAe,SAAuB9c,EAAKjjD,GACzC,MAAyC,oBAA3BnE,KAAK6D,QAAQg+D,UAA2B7hE,KAAK6D,QAAQg+D,UAAU9jE,KAAKiC,KAAMonD,EAAKjjD,EAAQk4D,GAAUr8D,KAAK6D,QAAQg+D,WAE9HoB,YAAa,SAEb7b,GACE,GAAKA,EAAIj/C,WAAT,CAEA,IAAI64C,EAAQhhD,KACRwpD,EAAKxpD,KAAKwpD,GACV3lD,EAAU7D,KAAK6D,QACfq+D,EAAkBr+D,EAAQq+D,gBAC1Bh+D,EAAOkjD,EAAIljD,KACXigE,EAAQ/c,EAAI0Z,SAAW1Z,EAAI0Z,QAAQ,IAAM1Z,EAAIgd,aAAmC,UAApBhd,EAAIgd,aAA2Bhd,EAC3FjjD,GAAUggE,GAAS/c,GAAKjjD,OACxBkgE,EAAiBjd,EAAIjjD,OAAOuF,aAAe09C,EAAIkd,MAAQld,EAAIkd,KAAK,IAAMld,EAAImd,cAAgBnd,EAAImd,eAAe,KAAOpgE,EACpHsgD,EAAS5gD,EAAQ4gD,OAKrB,GA6xCJ,SAAgChD,GAC9Bgd,GAAkBh9D,OAAS,EAC3B,IAAI+iD,EAAS/C,EAAKuS,qBAAqB,SACnCwQ,EAAMhgB,EAAO/iD,OAEjB,KAAO+iE,KAAO,CACZ,IAAIhb,EAAKhF,EAAOggB,GAChBhb,EAAGF,SAAWmV,GAAkBj+D,KAAKgpD,IAvyCrCib,CAAuBjb,IAGnB6S,KAIA,wBAAwBr3D,KAAKd,IAAwB,IAAfkjD,EAAI9B,QAAgBzhD,EAAQ26B,YAKlE6lC,EAAeK,oBAKd1kE,KAAKgjE,kBAAmB1Q,IAAUnuD,GAA2C,WAAjCA,EAAOyR,QAAQyU,mBAIhElmB,EAASkQ,EAAQlQ,EAAQN,EAAQgyD,UAAWrM,GAAI,MAElCrlD,EAAO61D,WAIjByC,KAAet4D,EAAnB,CASA,GAHAs3D,GAAWv3B,EAAM//B,GACjBw3D,GAAoBz3B,EAAM//B,EAAQN,EAAQgyD,WAEpB,oBAAXpR,GACT,GAAIA,EAAO1mD,KAAKiC,KAAMonD,EAAKjjD,EAAQnE,MAcjC,OAbAq9D,EAAe,CACb5C,SAAUzZ,EACVoa,OAAQiJ,EACRlmE,KAAM,SACNk9D,SAAUl3D,EACVo3D,KAAM/R,EACNgS,OAAQhS,IAGVgR,EAAY,SAAUxZ,EAAO,CAC3BoG,IAAKA,SAEP8a,GAAmB9a,EAAIj/C,YAAci/C,EAAIp/C,uBAGtC,GAAIy8C,IACTA,EAASA,EAAO75C,MAAM,KAAKo2D,MAAK,SAAU2D,GAGxC,GAFAA,EAAWtwD,EAAQgwD,EAAgBM,EAASnqD,OAAQgvC,GAAI,GAetD,OAZA6T,EAAe,CACb5C,SAAUzZ,EACVoa,OAAQuJ,EACRxmE,KAAM,SACNk9D,SAAUl3D,EACVq3D,OAAQhS,EACR+R,KAAM/R,IAGRgR,EAAY,SAAUxZ,EAAO,CAC3BoG,IAAKA,KAEA,MAMT,YADA8a,GAAmB9a,EAAIj/C,YAAci/C,EAAIp/C,kBAKzCnE,EAAQ4pD,SAAWp5C,EAAQgwD,EAAgBxgE,EAAQ4pD,OAAQjE,GAAI,IAKnExpD,KAAK4kE,kBAAkBxd,EAAK+c,EAAOhgE,MAErCygE,kBAAmB,SAEnBxd,EAEA+c,EAEAhgE,GACE,IAII0gE,EAJA7jB,EAAQhhD,KACRwpD,EAAKxI,EAAMwI,GACX3lD,EAAUm9C,EAAMn9C,QAChB62C,EAAgB8O,EAAG9O,cAGvB,GAAIv2C,IAAWk4D,GAAUl4D,EAAOP,aAAe4lD,EAAI,CACjD,IAAI2Z,EAAWhP,EAAQhwD,GAwEvB,GAvEAi3D,GAAS5R,EAET8S,GADAD,EAASl4D,GACSP,WAClB44D,GAASH,EAAO93D,YAChBk4D,GAAat4D,EACbo5D,GAAc15D,EAAQkH,MACtB2qD,GAASE,QAAUyG,EACnBmB,GAAS,CACPr5D,OAAQk4D,EACRtxC,SAAUo5C,GAAS/c,GAAKr8B,QACxBC,SAAUm5C,GAAS/c,GAAKp8B,SAE1B4yC,GAAkBJ,GAAOzyC,QAAUo4C,EAASv1C,KAC5CiwC,GAAiBL,GAAOxyC,QAAUm4C,EAASv0C,IAC3C5uB,KAAK8kE,QAAUX,GAAS/c,GAAKr8B,QAC7B/qB,KAAK+kE,QAAUZ,GAAS/c,GAAKp8B,QAC7BqxC,EAAOrmD,MAAM,eAAiB,MAE9B6uD,EAAc,WACZrK,EAAY,aAAcxZ,EAAO,CAC/BoG,IAAKA,IAGHsO,GAASgF,cACX1Z,EAAMgkB,WAORhkB,EAAMikB,6BAED5S,GAAWrR,EAAMgiB,kBACpB3G,EAAOxG,WAAY,GAIrB7U,EAAMkkB,kBAAkB9d,EAAK+c,GAG7B9G,EAAe,CACb5C,SAAUzZ,EACV7iD,KAAM,SACN09D,cAAezU,IAIjB8L,EAAYmJ,EAAQx4D,EAAQk+D,aAAa,KAI3Cl+D,EAAQo+D,OAAOr3D,MAAM,KAAKjK,SAAQ,SAAUgkE,GAC1C5oD,EAAKsgD,EAAQsI,EAASnqD,OAAQopD,OAEhClU,EAAGhV,EAAe,WAAYmmB,IAC9BnR,EAAGhV,EAAe,YAAammB,IAC/BnR,EAAGhV,EAAe,YAAammB,IAC/BnR,EAAGhV,EAAe,UAAWsG,EAAMgkB,SACnCtV,EAAGhV,EAAe,WAAYsG,EAAMgkB,SACpCtV,EAAGhV,EAAe,cAAesG,EAAMgkB,SAEnC3S,GAAWryD,KAAKgjE,kBAClBhjE,KAAK6D,QAAQ2+D,oBAAsB,EACnCnG,EAAOxG,WAAY,GAGrB2E,EAAY,aAAcx6D,KAAM,CAC9BonD,IAAKA,KAGHvjD,EAAQy+D,OAAWz+D,EAAQ0+D,mBAAoB4B,GAAYnkE,KAAKgjE,kBAAqB5Q,GAAQD,GAkB/F0S,QAlB6G,CAC7G,GAAInP,GAASgF,cAGX,YAFA16D,KAAKglE,UAQPtV,EAAGhV,EAAe,UAAWsG,EAAMmkB,qBACnCzV,EAAGhV,EAAe,WAAYsG,EAAMmkB,qBACpCzV,EAAGhV,EAAe,cAAesG,EAAMmkB,qBACvCzV,EAAGhV,EAAe,YAAasG,EAAMokB,8BACrC1V,EAAGhV,EAAe,YAAasG,EAAMokB,8BACrCvhE,EAAQk/D,gBAAkBrT,EAAGhV,EAAe,cAAesG,EAAMokB,8BACjEpkB,EAAMqkB,gBAAkB3jE,WAAWmjE,EAAahhE,EAAQy+D,UAM9D8C,6BAA8B,SAE9B3kE,GACE,IAAI0jE,EAAQ1jE,EAAEqgE,QAAUrgE,EAAEqgE,QAAQ,GAAKrgE,EAEnCqC,KAAKua,IAAIva,KAAKwiE,IAAInB,EAAMp5C,QAAU/qB,KAAK8kE,QAAShiE,KAAKwiE,IAAInB,EAAMn5C,QAAUhrB,KAAK+kE,UAAYjiE,KAAKke,MAAMhhB,KAAK6D,QAAQ2+D,qBAAuBxiE,KAAKgjE,iBAAmB/iE,OAAOwiE,kBAAoB,KAC9LziE,KAAKmlE,uBAGTA,oBAAqB,WACnB9I,GAAUuH,GAAkBvH,GAC5Bx0D,aAAa7H,KAAKqlE,iBAElBrlE,KAAKilE,6BAEPA,0BAA2B,WACzB,IAAIvqB,EAAgB16C,KAAKwpD,GAAG9O,cAC5BmV,EAAInV,EAAe,UAAW16C,KAAKmlE,qBACnCtV,EAAInV,EAAe,WAAY16C,KAAKmlE,qBACpCtV,EAAInV,EAAe,cAAe16C,KAAKmlE,qBACvCtV,EAAInV,EAAe,YAAa16C,KAAKolE,8BACrCvV,EAAInV,EAAe,YAAa16C,KAAKolE,8BACrCvV,EAAInV,EAAe,cAAe16C,KAAKolE,+BAEzCF,kBAAmB,SAEnB9d,EAEA+c,GACEA,EAAQA,GAA4B,SAAnB/c,EAAIgd,aAA0Bhd,GAE1CpnD,KAAKgjE,iBAAmBmB,EACvBnkE,KAAK6D,QAAQk/D,eACfrT,EAAGjtD,SAAU,cAAezC,KAAKulE,cAEjC7V,EAAGjtD,SADM0hE,EACI,YAEA,YAFankE,KAAKulE,eAKjC7V,EAAG2M,EAAQ,UAAWr8D,MACtB0vD,EAAG0L,GAAQ,YAAap7D,KAAKwlE,eAG/B,IACM/iE,SAASgjE,UAEXzB,IAAU,WACRvhE,SAASgjE,UAAUC,WAGrBzlE,OAAO0Y,eAAeK,kBAExB,MAAO2sD,MAEXC,aAAc,SAAsBC,EAAUze,GAG5C,GAFA8W,IAAsB,EAElB9C,IAAUiB,EAAQ,CACpB7B,EAAY,cAAex6D,KAAM,CAC/BonD,IAAKA,IAGHpnD,KAAKgjE,iBACPtT,EAAGjtD,SAAU,WAAY6+D,IAG3B,IAAIz9D,EAAU7D,KAAK6D,SAElBgiE,GAAY3S,EAAYmJ,EAAQx4D,EAAQm+D,WAAW,GACpD9O,EAAYmJ,EAAQx4D,EAAQi+D,YAAY,GACxCpM,GAAS/I,OAAS3sD,KAClB6lE,GAAY7lE,KAAK8lE,eAEjBzI,EAAe,CACb5C,SAAUz6D,KACV7B,KAAM,QACN09D,cAAezU,SAGjBpnD,KAAK+lE,YAGTC,iBAAkB,WAChB,GAAIvI,GAAU,CACZz9D,KAAK8kE,OAASrH,GAAS1yC,QACvB/qB,KAAK+kE,OAAStH,GAASzyC,QAEvB+xC,KAKA,IAHA,IAAI54D,EAAS1B,SAASwjE,iBAAiBxI,GAAS1yC,QAAS0yC,GAASzyC,SAC9DkqC,EAAS/wD,EAENA,GAAUA,EAAOuF,aACtBvF,EAASA,EAAOuF,WAAWu8D,iBAAiBxI,GAAS1yC,QAAS0yC,GAASzyC,YACxDkqC,GACfA,EAAS/wD,EAKX,GAFAk4D,EAAOz4D,WAAW8zD,GAAS6J,iBAAiBp9D,GAExC+wD,EACF,EAAG,CACD,GAAIA,EAAOwC,GAAU,CASnB,GAPWxC,EAAOwC,GAAS2J,YAAY,CACrCt2C,QAAS0yC,GAAS1yC,QAClBC,QAASyyC,GAASzyC,QAClB7mB,OAAQA,EACRi3D,OAAQlG,MAGOl1D,KAAK6D,QAAQu+D,eAC5B,MAIJj+D,EAAS+wD,QAGJA,EAASA,EAAOtxD,YAGzBq5D,OAGJsI,aAAc,SAEdne,GACE,GAAIoW,GAAQ,CACV,IAAI35D,EAAU7D,KAAK6D,QACfg/D,EAAoBh/D,EAAQg/D,kBAC5BC,EAAiBj/D,EAAQi/D,eACzBqB,EAAQ/c,EAAI0Z,QAAU1Z,EAAI0Z,QAAQ,GAAK1Z,EACvC8e,EAAc3J,IAAWjJ,EAAOiJ,IAAS,GACzC1H,EAAS0H,IAAW2J,GAAeA,EAAY1kE,EAC/CszD,EAASyH,IAAW2J,GAAeA,EAAYhoE,EAC/CioE,EAAuBxH,IAA2BV,IAAuB/H,EAAwB+H,IACjGmI,GAAMjC,EAAMp5C,QAAUyyC,GAAOzyC,QAAU+3C,EAAen+D,IAAMkwD,GAAU,IAAMsR,EAAuBA,EAAqB,GAAK5H,GAAiC,GAAK,IAAM1J,GAAU,GACnLwR,GAAMlC,EAAMn5C,QAAUwyC,GAAOxyC,QAAU83C,EAAe19D,IAAM0vD,GAAU,IAAMqR,EAAuBA,EAAqB,GAAK5H,GAAiC,GAAK,IAAMzJ,GAAU,GAEvL,IAAKY,GAAS/I,SAAWuR,GAAqB,CAC5C,GAAI2E,GAAqB//D,KAAKua,IAAIva,KAAKwiE,IAAInB,EAAMp5C,QAAU/qB,KAAK8kE,QAAShiE,KAAKwiE,IAAInB,EAAMn5C,QAAUhrB,KAAK+kE,SAAWlC,EAChH,OAGF7iE,KAAKwlE,aAAape,GAAK,GAGzB,GAAImV,GAAS,CACP2J,GACFA,EAAYzlE,GAAK2lE,GAAM1I,IAAU,GACjCwI,EAAYrhE,GAAKwhE,GAAM1I,IAAU,IAEjCuI,EAAc,CACZ1kE,EAAG,EACH2B,EAAG,EACHlF,EAAG,EACHC,EAAG,EACHuC,EAAG2lE,EACHvhE,EAAGwhE,GAIP,IAAIC,EAAY,UAAU/4D,OAAO24D,EAAY1kE,EAAG,KAAK+L,OAAO24D,EAAY/iE,EAAG,KAAKoK,OAAO24D,EAAYjoE,EAAG,KAAKsP,OAAO24D,EAAYhoE,EAAG,KAAKqP,OAAO24D,EAAYzlE,EAAG,KAAK8M,OAAO24D,EAAYrhE,EAAG,KACvLya,EAAIi9C,GAAS,kBAAmB+J,GAChChnD,EAAIi9C,GAAS,eAAgB+J,GAC7BhnD,EAAIi9C,GAAS,cAAe+J,GAC5BhnD,EAAIi9C,GAAS,YAAa+J,GAC1B5I,GAAS0I,EACTzI,GAAS0I,EACT5I,GAAW0G,EAGb/c,EAAIj/C,YAAci/C,EAAIp/C,mBAG1B89D,aAAc,WAGZ,IAAKvJ,GAAS,CACZ,IAAItnC,EAAYj1B,KAAK6D,QAAQ++D,eAAiBngE,SAASkX,KAAOyhD,GAC1DnD,EAAO9D,EAAQkI,GAAQ,EAAMsC,IAAyB,EAAM1pC,GAC5DpxB,EAAU7D,KAAK6D,QAEnB,GAAI86D,GAAyB,CAI3B,IAFAV,GAAsBhpC,EAE0B,WAAzC3V,EAAI2+C,GAAqB,aAAsE,SAA1C3+C,EAAI2+C,GAAqB,cAA2BA,KAAwBx7D,UACtIw7D,GAAsBA,GAAoBr6D,WAGxCq6D,KAAwBx7D,SAASkX,MAAQskD,KAAwBx7D,SAAS2Q,iBACxE6qD,KAAwBx7D,WAAUw7D,GAAsBhK,KAC5DgE,EAAKrpC,KAAOqvC,GAAoB1H,UAChC0B,EAAKrqC,MAAQqwC,GAAoB3H,YAEjC2H,GAAsBhK,IAGxBsK,GAAmCrI,EAAwB+H,IAI7D/K,EADAqJ,GAAUF,EAAOl6C,WAAU,GACNte,EAAQi+D,YAAY,GACzC5O,EAAYqJ,GAAS14D,EAAQ8+D,eAAe,GAC5CzP,EAAYqJ,GAAS14D,EAAQm+D,WAAW,GACxC1iD,EAAIi9C,GAAS,aAAc,IAC3Bj9C,EAAIi9C,GAAS,YAAa,IAC1Bj9C,EAAIi9C,GAAS,aAAc,cAC3Bj9C,EAAIi9C,GAAS,SAAU,GACvBj9C,EAAIi9C,GAAS,MAAOtE,EAAKrpC,KACzBtP,EAAIi9C,GAAS,OAAQtE,EAAKrqC,MAC1BtO,EAAIi9C,GAAS,QAAStE,EAAK5+B,OAC3B/Z,EAAIi9C,GAAS,SAAUtE,EAAKrhC,QAC5BtX,EAAIi9C,GAAS,UAAW,OACxBj9C,EAAIi9C,GAAS,WAAYoC,GAA0B,WAAa,SAChEr/C,EAAIi9C,GAAS,SAAU,UACvBj9C,EAAIi9C,GAAS,gBAAiB,QAC9B7G,GAASC,MAAQ4G,GACjBtnC,EAAU5e,YAAYkmD,IAEtBj9C,EAAIi9C,GAAS,mBAAoBqB,GAAkBrgC,SAASg/B,GAAQvmD,MAAMqjB,OAAS,IAAM,KAAOwkC,GAAiBtgC,SAASg/B,GAAQvmD,MAAM4gB,QAAU,IAAM,OAG5J4uC,aAAc,SAEdpe,EAEAye,GACE,IAAI7kB,EAAQhhD,KAER0qB,EAAe08B,EAAI18B,aACnB7mB,EAAUm9C,EAAMn9C,QACpB22D,EAAY,YAAax6D,KAAM,CAC7BonD,IAAKA,IAGHsO,GAASgF,cACX16D,KAAKglE,WAKPxK,EAAY,aAAcx6D,MAErB01D,GAASgF,iBACZY,GAAUrF,EAAMoG,IACRxG,WAAY,EACpByF,GAAQtlD,MAAM,eAAiB,GAE/BhW,KAAKumE,aAELrT,EAAYoI,GAASt7D,KAAK6D,QAAQk+D,aAAa,GAC/CrM,GAASO,MAAQqF,IAInBta,EAAMwlB,QAAUxC,IAAU,WACxBxJ,EAAY,QAASxZ,GACjB0U,GAASgF,gBAER1Z,EAAMn9C,QAAQ+9D,mBACjBxG,GAAOxjD,aAAa0jD,GAASe,GAG/Brb,EAAMulB,aAENlJ,EAAe,CACb5C,SAAUzZ,EACV7iD,KAAM,eAGT0nE,GAAY3S,EAAYmJ,EAAQx4D,EAAQm+D,WAAW,GAEhD6D,GACF1H,IAAkB,EAClBnd,EAAMylB,QAAUza,YAAYhL,EAAMglB,iBAAkB,MAGpDnW,EAAIptD,SAAU,UAAWu+C,EAAMgkB,SAC/BnV,EAAIptD,SAAU,WAAYu+C,EAAMgkB,SAChCnV,EAAIptD,SAAU,cAAeu+C,EAAMgkB,SAE/Bt6C,IACFA,EAAag8C,cAAgB,OAC7B7iE,EAAQgW,SAAWhW,EAAQgW,QAAQ9b,KAAKijD,EAAOt2B,EAAc2xC,IAG/D3M,EAAGjtD,SAAU,OAAQu+C,GAErB1hC,EAAI+8C,EAAQ,YAAa,kBAG3B6B,IAAsB,EACtBld,EAAM2lB,aAAe3C,GAAUhjB,EAAM4kB,aAAaxmE,KAAK4hD,EAAO6kB,EAAUze,IACxEsI,EAAGjtD,SAAU,cAAeu+C,GAC5B4b,IAAQ,EAEJtK,GACFhzC,EAAI7c,SAASkX,KAAM,cAAe,UAItC0nD,YAAa,SAEbja,GACE,IAEI+b,EACAC,EACAwD,EAOAC,EAXArd,EAAKxpD,KAAKwpD,GACVrlD,EAASijD,EAAIjjD,OAIbN,EAAU7D,KAAK6D,QACfkH,EAAQlH,EAAQkH,MAChB8xD,EAAiBnH,GAAS/I,OAC1Bma,EAAUvJ,KAAgBxyD,EAC1Bg8D,EAAUljE,EAAQR,KAClB2jE,EAAelL,IAAee,EAE9B7b,EAAQhhD,KACRinE,GAAiB,EAErB,IAAIzI,GAAJ,CAgHA,QAN2B,IAAvBpX,EAAIp/C,gBACNo/C,EAAIj/C,YAAci/C,EAAIp/C,iBAGxB7D,EAASkQ,EAAQlQ,EAAQN,EAAQgyD,UAAWrM,GAAI,GAChD0d,EAAc,YACVxR,GAASgF,cAAe,OAAOuM,EAEnC,GAAI5K,EAAOvhB,SAASsM,EAAIjjD,SAAWA,EAAO61D,UAAY71D,EAAOu1D,YAAcv1D,EAAOw1D,YAAc3Y,EAAMmmB,wBAA0BhjE,EAC9H,OAAOijE,GAAU,GAKnB,GAFAjJ,IAAkB,EAEdtB,IAAmBh5D,EAAQ26B,WAAasoC,EAAUC,IAAYH,EAAStK,IAAalB,IACtFU,KAAgB97D,OAASA,KAAKk8D,YAAcqB,GAAYkD,UAAUzgE,KAAM68D,EAAgBR,EAAQjV,KAASr8C,EAAM21D,SAAS1gE,KAAM68D,EAAgBR,EAAQjV,IAAO,CAI7J,GAHAyf,EAA+C,aAApC7mE,KAAKkkE,cAAc9c,EAAKjjD,GACnCg/D,EAAWhP,EAAQkI,GACnB6K,EAAc,iBACVxR,GAASgF,cAAe,OAAOuM,EAEnC,GAAIL,EAiBF,OAhBAtK,EAAWlB,GAEX1I,IAEA1yD,KAAKumE,aAELW,EAAc,UAETxR,GAASgF,gBACR8B,GACFpB,GAAOxjD,aAAaykD,EAAQG,IAE5BpB,GAAO/kD,YAAYgmD,IAIhB+K,GAAU,GAGnB,IAAIC,EAAcjsC,EAAUouB,EAAI3lD,EAAQgyD,WAExC,IAAKwR,GA+iBX,SAAsBjgB,EAAKyf,EAAUpM,GACnC,IAAIxC,EAAO9D,EAAQ/4B,EAAUq/B,EAASjR,GAAIiR,EAAS52D,QAAQgyD,YACvDyR,EAAS,GACb,OAAOT,EAAWzf,EAAIr8B,QAAUktC,EAAKlqC,MAAQu5C,GAAUlgB,EAAIr8B,SAAWktC,EAAKlqC,OAASq5B,EAAIp8B,QAAUitC,EAAK/sB,QAAUkc,EAAIr8B,SAAWktC,EAAKrqC,KAAOw5B,EAAIr8B,QAAUktC,EAAKlqC,OAASq5B,EAAIp8B,QAAUitC,EAAKrpC,KAAOw4B,EAAIr8B,SAAWktC,EAAKlqC,OAASq5B,EAAIp8B,QAAUitC,EAAK/sB,OAASo8B,EAljBnOC,CAAangB,EAAKyf,EAAU7mE,QAAUqnE,EAAYrN,SAAU,CAG9E,GAAIqN,IAAgBhL,EAClB,OAAO+K,GAAU,GAYnB,GARIC,GAAe7d,IAAOpC,EAAIjjD,SAC5BA,EAASkjE,GAGPljE,IACFi/D,EAAajP,EAAQhwD,KAG0D,IAA7E++D,GAAQ9H,GAAQ5R,EAAI6S,EAAQ8G,EAAUh/D,EAAQi/D,EAAYhc,IAAOjjD,GAMnE,OALAuuD,IACAlJ,EAAGnzC,YAAYgmD,GACfC,EAAW9S,EAEXge,IACOJ,GAAU,QAEd,GAAIC,GAihBjB,SAAuBjgB,EAAKyf,EAAUpM,GACpC,IAAIxC,EAAO9D,EAAQmB,EAASmF,EAASjR,GAAI,EAAGiR,EAAS52D,SAAS,IAC1DyjE,EAAS,GACb,OAAOT,EAAWzf,EAAIr8B,QAAUktC,EAAKrqC,KAAO05C,GAAUlgB,EAAIp8B,QAAUitC,EAAKrpC,KAAOw4B,EAAIr8B,QAAUktC,EAAKlqC,MAAQq5B,EAAIp8B,QAAUitC,EAAKrpC,IAAM04C,GAAUlgB,EAAIp8B,QAAUitC,EAAK/sB,QAAUkc,EAAIr8B,QAAUktC,EAAKrqC,KAphBhK65C,CAAcrgB,EAAKyf,EAAU7mE,MAAO,CAE5D,IAAIqJ,EAAaisD,EAAS9L,EAAI,EAAG3lD,GAAS,GAE1C,GAAIwF,IAAegzD,EACjB,OAAO+K,GAAU,GAMnB,GAFAhE,EAAajP,EADbhwD,EAASkF,IAGqE,IAA1E65D,GAAQ9H,GAAQ5R,EAAI6S,EAAQ8G,EAAUh/D,EAAQi/D,EAAYhc,GAAK,GAMjE,OALAsL,IACAlJ,EAAG5xC,aAAaykD,EAAQhzD,GACxBizD,EAAW9S,EAEXge,IACOJ,GAAU,QAEd,GAAIjjE,EAAOP,aAAe4lD,EAAI,CACnC4Z,EAAajP,EAAQhwD,GACrB,IAAI09D,EACA6F,EAcAC,EAbAC,EAAiBvL,EAAOz4D,aAAe4lD,EACvCqe,GAz8Ba,SAA4B1E,EAAUC,EAAYyD,GACzE,IAAIiB,EAAcjB,EAAW1D,EAASv1C,KAAOu1C,EAASv0C,IAClDm5C,EAAclB,EAAW1D,EAASp1C,MAAQo1C,EAASj4B,OACnD88B,EAAkBnB,EAAW1D,EAAS9pC,MAAQ8pC,EAASvsC,OACvDqxC,EAAcpB,EAAWzD,EAAWx1C,KAAOw1C,EAAWx0C,IACtDs5C,EAAcrB,EAAWzD,EAAWr1C,MAAQq1C,EAAWl4B,OACvDi9B,EAAkBtB,EAAWzD,EAAW/pC,MAAQ+pC,EAAWxsC,OAC/D,OAAOkxC,IAAgBG,GAAeF,IAAgBG,GAAeJ,EAAcE,EAAkB,IAAMC,EAAcE,EAAkB,EAk8B9GC,CAAmB/L,EAAOrC,UAAYqC,EAAOxD,QAAUsK,EAAUh/D,EAAO61D,UAAY71D,EAAO00D,QAAUuK,EAAYyD,GACpIwB,EAAQxB,EAAW,MAAQ,OAC3ByB,EAAkBvT,EAAe5wD,EAAQ,MAAO,QAAU4wD,EAAesH,EAAQ,MAAO,OACxFkM,EAAeD,EAAkBA,EAAgB/R,eAAY,EAWjE,GATIuH,KAAe35D,IACjBujE,EAAwBtE,EAAWiF,GACnChK,IAAwB,EACxBC,IAA0BuJ,GAAmBhkE,EAAQ69D,YAAckG,GAGrE/F,EA0fR,SAA2Bza,EAAKjjD,EAAQi/D,EAAYyD,EAAUpF,EAAeE,EAAuBD,EAAY8G,GAC9G,IAAIC,EAAc5B,EAAWzf,EAAIp8B,QAAUo8B,EAAIr8B,QAC3C29C,EAAe7B,EAAWzD,EAAWxsC,OAASwsC,EAAW/pC,MACzDsvC,EAAW9B,EAAWzD,EAAWx0C,IAAMw0C,EAAWx1C,KAClDg7C,EAAW/B,EAAWzD,EAAWl4B,OAASk4B,EAAWr1C,MACrD86C,GAAS,EAEb,IAAKnH,EAEH,GAAI8G,GAAgBxK,GAAqB0K,EAAejH,GAQtD,IALKpD,KAA4C,IAAlBN,GAAsB0K,EAAcE,EAAWD,EAAe/G,EAAwB,EAAI8G,EAAcG,EAAWF,EAAe/G,EAAwB,KAEvLtD,IAAwB,GAGrBA,GAOHwK,GAAS,OALT,GAAsB,IAAlB9K,GAAsB0K,EAAcE,EAAW3K,GACjDyK,EAAcG,EAAW5K,GACzB,OAAQD,QAOZ,GAAI0K,EAAcE,EAAWD,GAAgB,EAAIjH,GAAiB,GAAKgH,EAAcG,EAAWF,GAAgB,EAAIjH,GAAiB,EACnI,OAwBR,SAA6Bt9D,GAC3B,OAAI+/B,EAAMm4B,GAAUn4B,EAAM//B,GACjB,GAEC,EA5BG2kE,CAAoB3kE,GAOjC,IAFA0kE,EAASA,GAAUnH,KAIb+G,EAAcE,EAAWD,EAAe/G,EAAwB,GAAK8G,EAAcG,EAAWF,EAAe/G,EAAwB,GACvI,OAAO8G,EAAcE,EAAWD,EAAe,EAAI,GAAK,EAI5D,OAAO,EAriBWK,CAAkB3hB,EAAKjjD,EAAQi/D,EAAYyD,EAAUgB,EAAkB,EAAIhkE,EAAQ49D,cAAgD,MAAjC59D,EAAQ89D,sBAAgC99D,EAAQ49D,cAAgB59D,EAAQ89D,sBAAuBrD,GAAwBR,KAAe35D,GAGlO,IAAd09D,EAAiB,CAEnB,IAAImH,EAAY9kC,EAAMm4B,GAEtB,GACE2M,GAAanH,EACb8F,EAAUrL,EAASxgB,SAASktB,SACrBrB,IAAwC,SAA5BroD,EAAIqoD,EAAS,YAAyBA,IAAYpL,KAIzE,GAAkB,IAAdsF,GAAmB8F,IAAYxjE,EACjC,OAAOijE,GAAU,GAGnBtJ,GAAa35D,EACb45D,GAAgB8D,EAChB,IAAIt9D,EAAcJ,EAAOsF,mBACrBw/D,GAAQ,EAGRC,EAAahG,GAAQ9H,GAAQ5R,EAAI6S,EAAQ8G,EAAUh/D,EAAQi/D,EAAYhc,EAF3E6hB,EAAsB,IAAdpH,GAIR,IAAmB,IAAfqH,EA4BF,OA3BmB,IAAfA,IAAoC,IAAhBA,IACtBD,EAAuB,IAAfC,GAGV1K,IAAU,EACV98D,WAAWmiE,GAAW,IACtBnR,IAEIuW,IAAU1kE,EACZilD,EAAGnzC,YAAYgmD,GAEfl4D,EAAOP,WAAWgU,aAAaykD,EAAQ4M,EAAQ1kE,EAAcJ,GAI3DmkE,GACF/Q,EAAS+Q,EAAiB,EAAGC,EAAeD,EAAgB/R,WAG9D+F,EAAWD,EAAOz4D,gBAGYu4C,IAA1BurB,GAAwCpJ,KAC1CN,GAAqBl7D,KAAKwiE,IAAIoC,EAAwBvT,EAAQhwD,GAAQkkE,KAGxEb,IACOJ,GAAU,GAIrB,GAAI5d,EAAG1O,SAASuhB,GACd,OAAO+K,GAAU,GAIrB,OAAO,EA7QP,SAASF,EAAc/oE,EAAMgrE,GAC3B3O,EAAYr8D,EAAM6iD,EAAOuQ,EAAe,CACtCnK,IAAKA,EACL0f,QAASA,EACTsC,KAAMvC,EAAW,WAAa,aAC9BD,OAAQA,EACRzD,SAAUA,EACVC,WAAYA,EACZ2D,QAASA,EACTC,aAAcA,EACd7iE,OAAQA,EACRijE,UAAWA,EACX5D,OAAQ,SAAgBr/D,EAAQ8kE,GAC9B,OAAO/F,GAAQ9H,GAAQ5R,EAAI6S,EAAQ8G,EAAUh/D,EAAQgwD,EAAQhwD,GAASijD,EAAK6hB,IAE7EzB,QAASA,GACR2B,IAIL,SAASzW,IACPwU,EAAc,4BAEdlmB,EAAM8W,wBAEF9W,IAAUgmB,GACZA,EAAalP,wBAKjB,SAASsP,EAAUiC,GAuDjB,OAtDAnC,EAAc,oBAAqB,CACjCmC,UAAWA,IAGTA,IAEEvC,EACFjK,EAAe0J,aAEf1J,EAAeyM,WAAWtoB,GAGxBA,IAAUgmB,IAEZ9T,EAAYmJ,EAAQP,GAAcA,GAAYj4D,QAAQi+D,WAAajF,EAAeh5D,QAAQi+D,YAAY,GACtG5O,EAAYmJ,EAAQx4D,EAAQi+D,YAAY,IAGtChG,KAAgB9a,GAASA,IAAU0U,GAAS/I,OAC9CmP,GAAc9a,EACLA,IAAU0U,GAAS/I,QAAUmP,KACtCA,GAAc,MAIZkL,IAAiBhmB,IACnBA,EAAMmmB,sBAAwBhjE,GAGhC68C,EAAMyX,YAAW,WACfyO,EAAc,6BACdlmB,EAAMmmB,sBAAwB,QAG5BnmB,IAAUgmB,IACZA,EAAavO,aACbuO,EAAaG,sBAAwB,QAKrChjE,IAAWk4D,IAAWA,EAAOrC,UAAY71D,IAAWqlD,IAAOrlD,EAAO61D,YACpE8D,GAAa,MAIVj6D,EAAQu+D,gBAAmBhb,EAAIgU,QAAUj3D,IAAW1B,WACvD45D,EAAOz4D,WAAW8zD,GAAS6J,iBAAiBna,EAAIjjD,SAG/CklE,GAAaxI,GAA8BzZ,KAG7CvjD,EAAQu+D,gBAAkBhb,EAAI95B,iBAAmB85B,EAAI95B,kBAC/C25C,GAAiB,EAI1B,SAASO,IACP9L,GAAWx3B,EAAMm4B,GACjBT,GAAoB13B,EAAMm4B,EAAQx4D,EAAQgyD,WAE1CwH,EAAe,CACb5C,SAAUzZ,EACV7iD,KAAM,SACNo9D,KAAM/R,EACNkS,SAAUA,GACVE,kBAAmBA,GACnBC,cAAezU,MA2KrB+f,sBAAuB,KACvBoC,eAAgB,WACd1Z,EAAIptD,SAAU,YAAazC,KAAKulE,cAChC1V,EAAIptD,SAAU,YAAazC,KAAKulE,cAChC1V,EAAIptD,SAAU,cAAezC,KAAKulE,cAClC1V,EAAIptD,SAAU,WAAYo+D,IAC1BhR,EAAIptD,SAAU,YAAao+D,IAC3BhR,EAAIptD,SAAU,YAAao+D,KAE7B2I,aAAc,WACZ,IAAI9uB,EAAgB16C,KAAKwpD,GAAG9O,cAC5BmV,EAAInV,EAAe,UAAW16C,KAAKglE,SACnCnV,EAAInV,EAAe,WAAY16C,KAAKglE,SACpCnV,EAAInV,EAAe,YAAa16C,KAAKglE,SACrCnV,EAAInV,EAAe,cAAe16C,KAAKglE,SACvCnV,EAAIptD,SAAU,cAAezC,OAE/BglE,QAAS,SAET5d,GACE,IAAIoC,EAAKxpD,KAAKwpD,GACV3lD,EAAU7D,KAAK6D,QAEnB63D,GAAWx3B,EAAMm4B,GACjBT,GAAoB13B,EAAMm4B,EAAQx4D,EAAQgyD,WAC1C2E,EAAY,OAAQx6D,KAAM,CACxBonD,IAAKA,IAEPkV,EAAWD,GAAUA,EAAOz4D,WAE5B83D,GAAWx3B,EAAMm4B,GACjBT,GAAoB13B,EAAMm4B,EAAQx4D,EAAQgyD,WAEtCH,GAASgF,gBAMbwD,IAAsB,EACtBI,IAAyB,EACzBD,IAAwB,EACxBpS,cAAcjsD,KAAKymE,SACnB5+D,aAAa7H,KAAKqlE,iBAElBpB,GAAgBjkE,KAAKwmE,SAErBvC,GAAgBjkE,KAAK2mE,cAGjB3mE,KAAKgjE,kBACPnT,EAAIptD,SAAU,OAAQzC,MACtB6vD,EAAIrG,EAAI,YAAaxpD,KAAKwlE,eAG5BxlE,KAAKupE,iBAELvpE,KAAKwpE,eAEDlX,GACFhzC,EAAI7c,SAASkX,KAAM,cAAe,IAGpC2F,EAAI+8C,EAAQ,YAAa,IAErBjV,IACEwV,KACFxV,EAAIj/C,YAAci/C,EAAIp/C,kBACrBnE,EAAQs+D,YAAc/a,EAAI95B,mBAG7BivC,IAAWA,GAAQ34D,YAAc24D,GAAQ34D,WAAWqR,YAAYsnD,KAE5DnB,KAAWkB,GAAYR,IAA2C,UAA5BA,GAAYI,cAEpDZ,IAAWA,GAAQ13D,YAAc03D,GAAQ13D,WAAWqR,YAAYqmD,IAG9De,IACEr8D,KAAKgjE,iBACPnT,EAAIwM,EAAQ,UAAWr8D,MAGzB4jE,GAAkBvH,GAElBA,EAAOrmD,MAAM,eAAiB,GAG1B4mD,KAAUsB,IACZhL,EAAYmJ,EAAQP,GAAcA,GAAYj4D,QAAQi+D,WAAa9hE,KAAK6D,QAAQi+D,YAAY,GAG9F5O,EAAYmJ,EAAQr8D,KAAK6D,QAAQk+D,aAAa,GAE9C1E,EAAe,CACb5C,SAAUz6D,KACV7B,KAAM,WACNo9D,KAAMe,EACNZ,SAAU,KACVE,kBAAmB,KACnBC,cAAezU,IAGbgU,KAAWkB,GACTZ,IAAY,IAEd2B,EAAe,CACbjC,OAAQkB,EACRn+D,KAAM,MACNo9D,KAAMe,EACNd,OAAQJ,GACRS,cAAezU,IAIjBiW,EAAe,CACb5C,SAAUz6D,KACV7B,KAAM,SACNo9D,KAAMe,EACNT,cAAezU,IAIjBiW,EAAe,CACbjC,OAAQkB,EACRn+D,KAAM,OACNo9D,KAAMe,EACNd,OAAQJ,GACRS,cAAezU,IAGjBiW,EAAe,CACb5C,SAAUz6D,KACV7B,KAAM,OACNo9D,KAAMe,EACNT,cAAezU,KAInB0U,IAAeA,GAAY2N,QAEvB/N,KAAaD,IACXC,IAAY,IAEd2B,EAAe,CACb5C,SAAUz6D,KACV7B,KAAM,SACNo9D,KAAMe,EACNT,cAAezU,IAGjBiW,EAAe,CACb5C,SAAUz6D,KACV7B,KAAM,OACNo9D,KAAMe,EACNT,cAAezU,KAMnBsO,GAAS/I,SAEK,MAAZ+O,KAAkC,IAAdA,KACtBA,GAAWD,GACXG,GAAoBD,IAGtB0B,EAAe,CACb5C,SAAUz6D,KACV7B,KAAM,MACNo9D,KAAMe,EACNT,cAAezU,IAIjBpnD,KAAKypE,WA9ITzpE,KAAK+lE,YAqJTA,SAAU,WACRvL,EAAY,UAAWx6D,MACvBo7D,GAASiB,EAASC,EAAWC,GAAUC,GAASlB,GAAUmB,GAAaC,GAAcc,GAASC,GAAWb,GAAQlB,GAAWE,GAAoBH,GAAWE,GAAoBmC,GAAaC,GAAgBjC,GAAcyB,GAAc7H,GAASE,QAAUF,GAASC,MAAQD,GAASO,MAAQP,GAAS/I,OAAS,KAC/S8R,GAAkB99D,SAAQ,SAAU6oD,GAClCA,EAAGF,SAAU,KAEfmV,GAAkBh9D,OAASi8D,GAASC,GAAS,GAE/Cj3D,YAAa,SAEb0gD,GACE,OAAQA,EAAIljD,MACV,IAAK,OACL,IAAK,UACHlE,KAAKglE,QAAQ5d,GAEb,MAEF,IAAK,YACL,IAAK,WACCiV,IACFr8D,KAAKqhE,YAAYja,GA8K3B,SAEAA,GACMA,EAAI18B,eACN08B,EAAI18B,aAAag/C,WAAa,QAGhCtiB,EAAIj/C,YAAci/C,EAAIp/C,iBAnLd2hE,CAAgBviB,IAGlB,MAEF,IAAK,cACHA,EAAIp/C,mBASV+S,QAAS,WAQP,IAPA,IACIyuC,EADAogB,EAAQ,GAER9tB,EAAW97C,KAAKwpD,GAAG1N,SACnBl+C,EAAI,EACJyB,EAAIy8C,EAASr6C,OACboC,EAAU7D,KAAK6D,QAEZjG,EAAIyB,EAAGzB,IAGRyW,EAFJm1C,EAAK1N,EAASl+C,GAEEiG,EAAQgyD,UAAW71D,KAAKwpD,IAAI,IAC1CogB,EAAMppE,KAAKgpD,EAAG38C,aAAahJ,EAAQw+D,aAAeyB,GAAYta,IAIlE,OAAOogB,GAOTvmE,KAAM,SAAcumE,EAAOC,GACzB,IAAIh9C,EAAQ,GACRuuC,EAASp7D,KAAKwpD,GAClBxpD,KAAK+a,UAAUpa,SAAQ,SAAUqP,EAAIpS,GACnC,IAAI4rD,EAAK4R,EAAOtf,SAASl+C,GAErByW,EAAQm1C,EAAIxpD,KAAK6D,QAAQgyD,UAAWuF,GAAQ,KAC9CvuC,EAAM7c,GAAMw5C,KAEbxpD,MACH6pE,GAAgB7pE,KAAK83D,wBACrB8R,EAAMjpE,SAAQ,SAAUqP,GAClB6c,EAAM7c,KACRorD,EAAOnmD,YAAY4X,EAAM7c,IACzBorD,EAAO/kD,YAAYwW,EAAM7c,QAG7B65D,GAAgB7pE,KAAKy4D,cAMvBgR,KAAM,WACJ,IAAIjI,EAAQxhE,KAAK6D,QAAQ29D,MACzBA,GAASA,EAAMx+D,KAAOw+D,EAAMx+D,IAAIhD,OASlCqU,QAAS,SAAmBm1C,EAAI9H,GAC9B,OAAOrtC,EAAQm1C,EAAI9H,GAAY1hD,KAAK6D,QAAQgyD,UAAW71D,KAAKwpD,IAAI,IASlEJ,OAAQ,SAAgBjrD,EAAMU,GAC5B,IAAIgF,EAAU7D,KAAK6D,QAEnB,QAAc,IAAVhF,EACF,OAAOgF,EAAQ1F,GAEf,IAAI88D,EAAgBb,EAAcU,aAAa96D,KAAM7B,EAAMU,GAGzDgF,EAAQ1F,GADmB,qBAAlB88D,EACOA,EAEAp8D,EAGL,UAATV,GACFgiE,GAAct8D,IAQpBkQ,QAAS,WACPymD,EAAY,UAAWx6D,MACvB,IAAIwpD,EAAKxpD,KAAKwpD,GACdA,EAAGkO,GAAW,KACd7H,EAAIrG,EAAI,YAAaxpD,KAAKijE,aAC1BpT,EAAIrG,EAAI,aAAcxpD,KAAKijE,aAC3BpT,EAAIrG,EAAI,cAAexpD,KAAKijE,aAExBjjE,KAAKgjE,kBACPnT,EAAIrG,EAAI,WAAYxpD,MACpB6vD,EAAIrG,EAAI,YAAaxpD,OAIvBgC,MAAMxC,UAAUmB,QAAQ5C,KAAKyrD,EAAG3/C,iBAAiB,gBAAgB,SAAU2/C,GACzEA,EAAGp8C,gBAAgB,gBAGrBpN,KAAKglE,UAELhlE,KAAKilE,4BAEL7G,GAAU19D,OAAO09D,GAAU99D,QAAQN,KAAKwpD,IAAK,GAC7CxpD,KAAKwpD,GAAKA,EAAK,MAEjB+c,WAAY,WACV,IAAK7J,GAAa,CAEhB,GADAlC,EAAY,YAAax6D,MACrB01D,GAASgF,cAAe,OAC5Bp7C,EAAIg8C,GAAS,UAAW,QAEpBt7D,KAAK6D,QAAQ+9D,mBAAqBtG,GAAQ13D,YAC5C03D,GAAQ13D,WAAWqR,YAAYqmD,IAGjCoB,IAAc,IAGlB4M,WAAY,SAAoBxN,GAC9B,GAAgC,UAA5BA,EAAYI,aAMhB,GAAIQ,GAAa,CAEf,GADAlC,EAAY,YAAax6D,MACrB01D,GAASgF,cAAe,OAExB2B,EAAOz4D,YAAcw3D,IAAWp7D,KAAK6D,QAAQkH,MAAM61D,YAE5CpE,GACTpB,GAAOxjD,aAAa0jD,GAASkB,IAE7BpB,GAAO/kD,YAAYilD,IAJnBF,GAAOxjD,aAAa0jD,GAASe,GAO3Br8D,KAAK6D,QAAQkH,MAAM61D,aACrB5gE,KAAKo5D,QAAQiD,EAAQf,IAGvBh8C,EAAIg8C,GAAS,UAAW,IACxBoB,IAAc,QAtBd18D,KAAKumE,eA8LP7H,IACFhP,EAAGjtD,SAAU,aAAa,SAAU2kD,IAC7BsO,GAAS/I,QAAUuR,KAAwB9W,EAAIj/C,YAClDi/C,EAAIp/C,oBAMV0tD,GAASoU,MAAQ,CACfpa,GAAIA,EACJG,IAAKA,EACLvwC,IAAKA,EACLvD,KAAMA,EACN7P,GAAI,SAAYs9C,EAAI9H,GAClB,QAASrtC,EAAQm1C,EAAI9H,EAAU8H,GAAI,IAErCv4C,OAlkEF,SAAgB84D,EAAKjxC,GACnB,GAAIixC,GAAOjxC,EACT,IAAK,IAAI35B,KAAO25B,EACVA,EAAIr5B,eAAeN,KACrB4qE,EAAI5qE,GAAO25B,EAAI35B,IAKrB,OAAO4qE,GA0jEP1S,SAAUA,EACVhjD,QAASA,EACT6+C,YAAaA,EACb+C,MAAOA,EACP/xB,MAAOA,EACPwpB,SAAUsW,GACVgG,eAAgB/F,GAChBgG,gBAAiBhL,GACjB3J,SAAUA,GAQZI,GAASj3D,IAAM,SAAUumB,GACvB,OAAOA,EAAQ0yC,IAQjBhC,GAAS2E,MAAQ,WACf,IAAK,IAAI9W,EAAO1iD,UAAUY,OAAQw4D,EAAU,IAAIj4D,MAAMuhD,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAClFwW,EAAQxW,GAAQ5iD,UAAU4iD,GAGxBwW,EAAQ,GAAGl6D,cAAgBiC,QAAOi4D,EAAUA,EAAQ,IACxDA,EAAQt5D,SAAQ,SAAU25D,GACxB,IAAKA,EAAO96D,YAAc86D,EAAO96D,UAAUO,YACzC,KAAM,gEAAgEwN,OAAO,GAAGyD,SAASjT,KAAKu8D,IAG5FA,EAAOwP,QAAOpU,GAASoU,MAAQvY,EAAeA,EAAe,GAAImE,GAASoU,OAAQxP,EAAOwP,QAC7F1P,EAAcC,MAAMC,OAUxB5E,GAASx2D,OAAS,SAAUsqD,EAAI3lD,GAC9B,OAAO,IAAI6xD,GAASlM,EAAI3lD,IAI1B6xD,GAASlG,QAthFK,SAuhFd,IACI0a,GACAC,GAEAC,GACAC,GACAC,GACAC,GAPAC,GAAc,GAGdC,IAAY,EAmHhB,SAASC,KACPF,GAAY7pE,SAAQ,SAAUgqE,GAC5B1e,cAAc0e,EAAWC,QAE3BJ,GAAc,GAGhB,SAASK,KACP5e,cAAcse,IAGhB,IAAII,GAAatT,GAAS,SAAUjQ,EAAKvjD,EAASu3D,EAAQ0P,GAExD,GAAKjnE,EAAQknE,OAAb,CACA,IAMIC,EANArmE,GAAKyiD,EAAI0Z,QAAU1Z,EAAI0Z,QAAQ,GAAK1Z,GAAKr8B,QACzC3lB,GAAKgiD,EAAI0Z,QAAU1Z,EAAI0Z,QAAQ,GAAK1Z,GAAKp8B,QACzCigD,EAAOpnE,EAAQqnE,kBACfC,EAAQtnE,EAAQunE,YAChB/U,EAAcpC,IACdoX,GAAqB,EAGrBlB,KAAiB/O,IACnB+O,GAAe/O,EACfsP,KACAR,GAAWrmE,EAAQknE,OACnBC,EAAiBnnE,EAAQynE,UAER,IAAbpB,KACFA,GAAW/U,EAA2BiG,GAAQ,KAIlD,IAAImQ,EAAY,EACZC,EAAgBtB,GAEpB,EAAG,CACD,IAAI1gB,EAAKgiB,EACLvT,EAAO9D,EAAQ3K,GACf56B,EAAMqpC,EAAKrpC,IACXsc,EAAS+sB,EAAK/sB,OACdtd,EAAOqqC,EAAKrqC,KACZG,EAAQkqC,EAAKlqC,MACbsL,EAAQ4+B,EAAK5+B,MACbzC,EAASqhC,EAAKrhC,OACd60C,OAAa,EACbC,OAAa,EACb9U,EAAcpN,EAAGoN,YACjB//B,EAAe2yB,EAAG3yB,aAClBqoC,EAAQ5/C,EAAIkqC,GACZmiB,EAAaniB,EAAG8M,WAChBsV,EAAapiB,EAAG+M,UAEhB/M,IAAO6M,GACToV,EAAapyC,EAAQu9B,IAAoC,SAApBsI,EAAMnI,WAA4C,WAApBmI,EAAMnI,WAA8C,YAApBmI,EAAMnI,WACzG2U,EAAa90C,EAASC,IAAqC,SAApBqoC,EAAMlI,WAA4C,WAApBkI,EAAMlI,WAA8C,YAApBkI,EAAMlI,aAE3GyU,EAAapyC,EAAQu9B,IAAoC,SAApBsI,EAAMnI,WAA4C,WAApBmI,EAAMnI,WACzE2U,EAAa90C,EAASC,IAAqC,SAApBqoC,EAAMlI,WAA4C,WAApBkI,EAAMlI,YAG7E,IAAI6U,EAAKJ,IAAe3oE,KAAKwiE,IAAIv3C,EAAQppB,IAAMsmE,GAAQU,EAAatyC,EAAQu9B,IAAgB9zD,KAAKwiE,IAAI13C,EAAOjpB,IAAMsmE,KAAUU,GACxHG,EAAKJ,IAAe5oE,KAAKwiE,IAAIp6B,EAAS9lC,IAAM6lE,GAAQW,EAAah1C,EAASC,IAAiB/zB,KAAKwiE,IAAI12C,EAAMxpB,IAAM6lE,KAAUW,GAE9H,IAAKpB,GAAYe,GACf,IAAK,IAAI3tE,EAAI,EAAGA,GAAK2tE,EAAW3tE,IACzB4sE,GAAY5sE,KACf4sE,GAAY5sE,GAAK,IAKnB4sE,GAAYe,GAAWM,IAAMA,GAAMrB,GAAYe,GAAWO,IAAMA,GAAMtB,GAAYe,GAAW/hB,KAAOA,IACtGghB,GAAYe,GAAW/hB,GAAKA,EAC5BghB,GAAYe,GAAWM,GAAKA,EAC5BrB,GAAYe,GAAWO,GAAKA,EAC5B7f,cAAcue,GAAYe,GAAWX,KAE3B,GAANiB,GAAiB,GAANC,IACbT,GAAqB,EAGrBb,GAAYe,GAAWX,IAAM5e,YAAY,WAEnC8e,GAA6B,IAAf9qE,KAAK+rE,OACrBrW,GAAS/I,OAAO4Y,aAAa+E,IAI/B,IAAI0B,EAAgBxB,GAAYxqE,KAAK+rE,OAAOD,GAAKtB,GAAYxqE,KAAK+rE,OAAOD,GAAKX,EAAQ,EAClFc,EAAgBzB,GAAYxqE,KAAK+rE,OAAOF,GAAKrB,GAAYxqE,KAAK+rE,OAAOF,GAAKV,EAAQ,EAExD,oBAAnBH,GACoI,aAAzIA,EAAejtE,KAAK23D,GAASE,QAAQhyD,WAAW8zD,GAAUuU,EAAeD,EAAe5kB,EAAKkjB,GAAYE,GAAYxqE,KAAK+rE,OAAOviB,KAKvI+N,EAASiT,GAAYxqE,KAAK+rE,OAAOviB,GAAIyiB,EAAeD,IACpD5sE,KAAK,CACL2sE,MAAOR,IACL,MAIRA,UACO1nE,EAAQqoE,cAAgBV,IAAkBnV,IAAgBmV,EAAgBrW,EAA2BqW,GAAe,KAE7Hf,GAAYY,KACX,IAEChgD,GAAO,SAAc8vC,GACvB,IAAIU,EAAgBV,EAAKU,cACrBC,EAAcX,EAAKW,YACnBO,EAASlB,EAAKkB,OACdQ,EAAiB1B,EAAK0B,eACtBO,EAAwBjC,EAAKiC,sBAC7BN,EAAqB3B,EAAK2B,mBAC1BE,EAAuB7B,EAAK6B,qBAChC,GAAKnB,EAAL,CACA,IAAIsQ,EAAarQ,GAAee,EAChCC,IACA,IAAIqH,EAAQtI,EAAcuQ,gBAAkBvQ,EAAcuQ,eAAe3qE,OAASo6D,EAAcuQ,eAAe,GAAKvQ,EAChH13D,EAAS1B,SAASwjE,iBAAiB9B,EAAMp5C,QAASo5C,EAAMn5C,SAC5DgyC,IAEImP,IAAeA,EAAW3iB,GAAG1O,SAAS32C,KACxCi5D,EAAsB,SACtBp9D,KAAKqsE,QAAQ,CACXhQ,OAAQA,EACRP,YAAaA,OAKnB,SAASwQ,MAsCT,SAASC,MApCTD,GAAO9sE,UAAY,CACjBgtE,WAAY,KACZC,UAAW,SAAmBC,GAC5B,IAAI/Q,EAAoB+Q,EAAM/Q,kBAC9B37D,KAAKwsE,WAAa7Q,GAEpB0Q,QAAS,SAAiBM,GACxB,IAAItQ,EAASsQ,EAAMtQ,OACfP,EAAc6Q,EAAM7Q,YACxB97D,KAAKy6D,SAAS3C,wBAEVgE,GACFA,EAAYhE,wBAGd,IAAIvzD,EAAc+wD,EAASt1D,KAAKy6D,SAASjR,GAAIxpD,KAAKwsE,WAAYxsE,KAAK6D,SAE/DU,EACFvE,KAAKy6D,SAASjR,GAAG5xC,aAAaykD,EAAQ93D,GAEtCvE,KAAKy6D,SAASjR,GAAGnzC,YAAYgmD,GAG/Br8D,KAAKy6D,SAAShC,aAEVqD,GACFA,EAAYrD,cAGhBptC,KAAMA,IAGRqmC,EAAS4a,GAAQ,CACf/R,WAAY,kBAKdgS,GAAO/sE,UAAY,CACjB6sE,QAAS,SAAiBO,GACxB,IAAIvQ,EAASuQ,EAAMvQ,OAEfwQ,EADcD,EAAM9Q,aACY97D,KAAKy6D,SACzCoS,EAAe/U,wBACfuE,EAAOz4D,YAAcy4D,EAAOz4D,WAAWqR,YAAYonD,GACnDwQ,EAAepU,cAEjBptC,KAAMA,IAGRqmC,EAAS6a,GAAQ,CACfhS,WAAY,kBAysBd7E,GAAS2E,MAAM,IAl/Bf,WACE,SAASyS,IASP,IAAK,IAAI7wB,KARTj8C,KAAKk6D,SAAW,CACd6Q,QAAQ,EACRgC,yBAAyB,EACzB7B,kBAAmB,GACnBE,YAAa,GACbc,cAAc,GAGDlsE,KACQ,MAAjBi8C,EAAG9pC,OAAO,IAAkC,oBAAbnS,KAAKi8C,KACtCj8C,KAAKi8C,GAAMj8C,KAAKi8C,GAAI78C,KAAKY,OA2F/B,OAtFA8sE,EAAWttE,UAAY,CACrBm9D,YAAa,SAAqBxB,GAChC,IAAIU,EAAgBV,EAAKU,cAErB77D,KAAKy6D,SAASuI,gBAChBtT,EAAGjtD,SAAU,WAAYzC,KAAKgtE,mBAE1BhtE,KAAK6D,QAAQk/D,eACfrT,EAAGjtD,SAAU,cAAezC,KAAKitE,2BACxBpR,EAAciF,QACvBpR,EAAGjtD,SAAU,YAAazC,KAAKitE,2BAE/Bvd,EAAGjtD,SAAU,YAAazC,KAAKitE,4BAIrCC,kBAAmB,SAA2BR,GAC5C,IAAI7Q,EAAgB6Q,EAAM7Q,cAErB77D,KAAK6D,QAAQspE,gBAAmBtR,EAAcT,QACjDp7D,KAAKgtE,kBAAkBnR,IAG3BxwC,KAAM,WACArrB,KAAKy6D,SAASuI,gBAChBnT,EAAIptD,SAAU,WAAYzC,KAAKgtE,oBAE/Bnd,EAAIptD,SAAU,cAAezC,KAAKitE,2BAClCpd,EAAIptD,SAAU,YAAazC,KAAKitE,2BAChCpd,EAAIptD,SAAU,YAAazC,KAAKitE,4BAGlCpC,KACAH,KA7oEJ7iE,aAAamrD,GACbA,OAAmB,GA+oEjBoa,QAAS,WACP9C,GAAaH,GAAeD,GAAWO,GAAYF,GAA6BH,GAAkBC,GAAkB,KACpHG,GAAY/oE,OAAS,GAEvBwrE,0BAA2B,SAAmC7lB,GAC5DpnD,KAAKgtE,kBAAkB5lB,GAAK,IAE9B4lB,kBAAmB,SAA2B5lB,EAAKye,GACjD,IAAI7kB,EAAQhhD,KAER2E,GAAKyiD,EAAI0Z,QAAU1Z,EAAI0Z,QAAQ,GAAK1Z,GAAKr8B,QACzC3lB,GAAKgiD,EAAI0Z,QAAU1Z,EAAI0Z,QAAQ,GAAK1Z,GAAKp8B,QACzCyrC,EAAOh0D,SAASwjE,iBAAiBthE,EAAGS,GAMxC,GALAklE,GAAaljB,EAKTye,GAAY7lE,KAAK6D,QAAQkpE,yBAA2B3a,GAAQD,GAAcG,EAAQ,CACpFqY,GAAWvjB,EAAKpnD,KAAK6D,QAAS4yD,EAAMoP,GAEpC,IAAIwH,EAAiBlY,EAA2BsB,GAAM,IAElDgU,IAAeF,IAA8B5lE,IAAMylE,IAAmBhlE,IAAMilE,KAC9EE,IAA8BM,KAE9BN,GAA6Bve,aAAY,WACvC,IAAIshB,EAAUnY,EAA2B1yD,SAASwjE,iBAAiBthE,EAAGS,IAAI,GAEtEkoE,IAAYD,IACdA,EAAiBC,EACjB5C,MAGFC,GAAWvjB,EAAKpG,EAAMn9C,QAASypE,EAASzH,KACvC,IACHuE,GAAkBzlE,EAClB0lE,GAAkBjlE,OAEf,CAEL,IAAKpF,KAAK6D,QAAQqoE,cAAgB/W,EAA2BsB,GAAM,KAAUxC,IAE3E,YADAyW,KAIFC,GAAWvjB,EAAKpnD,KAAK6D,QAASsxD,EAA2BsB,GAAM,IAAQ,MAItE/E,EAASob,EAAY,CAC1BvS,WAAY,SACZJ,qBAAqB,MA04BzBzE,GAAS2E,MAAMkS,GAAQD,IACR,U,mBEnqHf7pE,SAAS6C,iBAAiB,mBAAmB,WAC3C,IAA4BioE,EAUtBC,EAAa,SAACD,EAAYE,GAC9BA,EAAWt3D,UAAU5V,IAAI,WACzB,IAAMmtE,EAAY,CAAC,QAAW,IAC9BH,EAAW5sE,SAAQ,SAAAgtE,GACjB,IAAMC,EAAU,GAChBD,EAAG9jE,iBAAiB,oBACjBlJ,SAAQ,SAAAkU,GAAI,OAAI+4D,EAAQptE,KAAK+3D,OAAOh7B,SAAS1oB,EAAKoB,QAAQ43D,OAAO,QACpEH,EAAUI,QAAQttE,KAChB,CACE,GAAMmtE,EAAG13D,QAAQ83D,MACjB,QAAWH,OAIjBF,EAAS,aAAmBD,EAAWx3D,QAAQ43D,OAE/C,IAAMG,EAAW,IAAI1zD,SACf2zD,EAAcxrE,SAASoV,cAAc,WAAW5B,QAAQg4D,YAC9DD,EAAShvB,OAAO,oBAAqB7uC,KAAKQ,UAAU+8D,IACpDhoB,KAAMqC,KAAK,CACThpC,IAAI,cAAD,OAAgBkvD,EAAhB,kBACH/pE,KAAM,QACNqB,KAAMyoE,EACN9lB,QAAS,WAAWulB,EAAWt3D,UAAU2E,OAAO,eAG9CozD,EAAYzrE,SAASoH,iBAAiB,uBACxCqkE,IArCwBX,EAsCPW,GArCRvtE,SAAQ,SAACgtE,GAClB,IAAIjY,GAASiY,EAAI,CACb5iE,MAAO,SACPgtD,UAAW,IACXoW,MAAO,SAAS39C,GAAQg9C,EAAWD,EAAY/8C,EAAM3b,OACrDghD,UAAW,6BAmCrBuY,EAAQ,GACRA,EAAQ,K,+CC9DR,SAAS5d,EAAkBrsD,EAAQ+7C,GAAS,IAAK,IAAItiD,EAAI,EAAGA,EAAIsiD,EAAMz+C,OAAQ7D,IAAK,CAAE,IAAIuiD,EAAaD,EAAMtiD,GAAIuiD,EAAW3hD,WAAa2hD,EAAW3hD,aAAc,EAAO2hD,EAAW/3C,cAAe,EAAU,UAAW+3C,IAAYA,EAAWl9C,UAAW,GAAM3E,OAAOC,eAAe4F,EAAQg8C,EAAWhhD,IAAKghD,IAKtS,IAAI,EAAgC,WACzC,SAASsQ,EAAiBlxC,EAAYyF,IARxC,SAAyB+6B,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIl/C,UAAU,qCAS5G4vD,CAAgB1wD,KAAMywD,GAEtBzwD,KAAKuf,WAAaA,EAClBvf,KAAKglB,QAAUA,EACfhlB,KAAK2jD,aAAe,IAAI,eAAapkC,EAAWwD,KAAM/iB,KAAK2wD,gBAAiB3wD,MAThF,IAAsBggD,EAAaI,EAAYC,EAyD7C,OAzDoBL,EAYPyQ,GAZoBrQ,EAYF,CAAC,CAC9BjhD,IAAK,QACLN,MAAO,WACLmB,KAAK2jD,aAAazkD,OAAOc,KAAK4wD,wBAAwBxxD,KAAKY,SAE5D,CACDb,IAAK,mCACLN,MAAO,SAA0CojD,GAC/C,IAAIjB,EAAQhhD,KAEZiiD,EAAIoB,OAAO/9C,iBAAiB,YAAY,SAAUkrB,GAChD,IAAIyzB,EAAWzzB,EAAM0zB,OAAS1zB,EAAM2zB,MAAQ,IAE5CnD,EAAMzhC,WAAWshB,kBAAkBojB,QAGtC,CACD9kD,IAAK,0BACLN,MAAO,SAAiCukD,EAAOv9C,GAC7C,GAAIu9C,EACF,MAAM,IAAIz1C,MAAM,yBAAyBJ,OAAO61C,IAGlDpjD,KAAKuf,WAAW+gB,cAAc,CAC5BuwB,KAAMhrD,EAAWirD,gBACjB/xC,IAAK/e,KAAK+wD,cAAclrD,EAAWm+C,UAAWn+C,EAAWs6B,cAG5D,CACDhhC,IAAK,gBACLN,MAAO,SAAuBmyD,EAAU7wB,GACtC,OAAOngC,KAAKixD,gBAAgB7/C,QAAQ,aAAc4/C,GAAU5/C,QAAQ,YAAaqsC,mBAAmBtd,MAErG,CACDhhC,IAAK,kBACLV,IAAK,WACH,OAAOuB,KAAKglB,QAAQ/O,QAAQ06C,kBAE7B,CACDxxD,IAAK,kBACLV,IAAK,WACH,OAAOuB,KAAKglB,QAAQ/O,QAAQg7C,qBArD4CT,EAAkBxQ,EAAYxgD,UAAW4gD,GAAiBC,GAAamQ,EAAkBxQ,EAAaK,GAAc/hD,OAAOC,eAAeyhD,EAAa,YAAa,CAAE/8C,UAAU,IAyDrPwtD,EAtDkC,GCN3CnrD,iBAAiB,uBAAuB,SAAUkrB,GAChD,IAAIjR,EAAaiR,EAAMjR,WACnBpb,EAASqsB,EAAMrsB,OAEfob,EAAWwD,MACA,IAAI,EAAiBxD,EAAYpb,GACvC4hB","file":"js/application-663fffbc9ecda8961de5.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 9);\n","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/*\nTrix 1.3.1\nCopyright © 2020 Basecamp, LLC\nhttp://trix-editor.org/\n */\n(function () {}).call(this), function () {\n var t;\n null == window.Set && (window.Set = t = function () {\n function t() {\n this.clear();\n }\n\n return t.prototype.clear = function () {\n return this.values = [];\n }, t.prototype.has = function (t) {\n return -1 !== this.values.indexOf(t);\n }, t.prototype.add = function (t) {\n return this.has(t) || this.values.push(t), this;\n }, t.prototype[\"delete\"] = function (t) {\n var e;\n return -1 === (e = this.values.indexOf(t)) ? !1 : (this.values.splice(e, 1), !0);\n }, t.prototype.forEach = function () {\n var t;\n return (t = this.values).forEach.apply(t, arguments);\n }, t;\n }());\n}.call(this), function (t) {\n function e() {}\n\n function n(t, e) {\n return function () {\n t.apply(e, arguments);\n };\n }\n\n function i(t) {\n if (\"object\" != _typeof(this)) throw new TypeError(\"Promises must be constructed via new\");\n if (\"function\" != typeof t) throw new TypeError(\"not a function\");\n this._state = 0, this._handled = !1, this._value = void 0, this._deferreds = [], c(t, this);\n }\n\n function o(t, e) {\n for (; 3 === t._state;) {\n t = t._value;\n }\n\n return 0 === t._state ? void t._deferreds.push(e) : (t._handled = !0, void h(function () {\n var n = 1 === t._state ? e.onFulfilled : e.onRejected;\n if (null === n) return void (1 === t._state ? r : s)(e.promise, t._value);\n var i;\n\n try {\n i = n(t._value);\n } catch (o) {\n return void s(e.promise, o);\n }\n\n r(e.promise, i);\n }));\n }\n\n function r(t, e) {\n try {\n if (e === t) throw new TypeError(\"A promise cannot be resolved with itself.\");\n\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) {\n var o = e.then;\n if (e instanceof i) return t._state = 3, t._value = e, void a(t);\n if (\"function\" == typeof o) return void c(n(o, e), t);\n }\n\n t._state = 1, t._value = e, a(t);\n } catch (r) {\n s(t, r);\n }\n }\n\n function s(t, e) {\n t._state = 2, t._value = e, a(t);\n }\n\n function a(t) {\n 2 === t._state && 0 === t._deferreds.length && setTimeout(function () {\n t._handled || p(t._value);\n }, 1);\n\n for (var e = 0, n = t._deferreds.length; n > e; e++) {\n o(t, t._deferreds[e]);\n }\n\n t._deferreds = null;\n }\n\n function u(t, e, n) {\n this.onFulfilled = \"function\" == typeof t ? t : null, this.onRejected = \"function\" == typeof e ? e : null, this.promise = n;\n }\n\n function c(t, e) {\n var n = !1;\n\n try {\n t(function (t) {\n n || (n = !0, r(e, t));\n }, function (t) {\n n || (n = !0, s(e, t));\n });\n } catch (i) {\n if (n) return;\n n = !0, s(e, i);\n }\n }\n\n var l = setTimeout,\n h = \"function\" == typeof setImmediate && setImmediate || function (t) {\n l(t, 1);\n },\n p = function p(t) {\n \"undefined\" != typeof console && console && console.warn(\"Possible Unhandled Promise Rejection:\", t);\n };\n\n i.prototype[\"catch\"] = function (t) {\n return this.then(null, t);\n }, i.prototype.then = function (t, n) {\n var r = new i(e);\n return o(this, new u(t, n, r)), r;\n }, i.all = function (t) {\n var e = Array.prototype.slice.call(t);\n return new i(function (t, n) {\n function i(r, s) {\n try {\n if (s && (\"object\" == _typeof(s) || \"function\" == typeof s)) {\n var a = s.then;\n if (\"function\" == typeof a) return void a.call(s, function (t) {\n i(r, t);\n }, n);\n }\n\n e[r] = s, 0 === --o && t(e);\n } catch (u) {\n n(u);\n }\n }\n\n if (0 === e.length) return t([]);\n\n for (var o = e.length, r = 0; r < e.length; r++) {\n i(r, e[r]);\n }\n });\n }, i.resolve = function (t) {\n return t && \"object\" == _typeof(t) && t.constructor === i ? t : new i(function (e) {\n e(t);\n });\n }, i.reject = function (t) {\n return new i(function (e, n) {\n n(t);\n });\n }, i.race = function (t) {\n return new i(function (e, n) {\n for (var i = 0, o = t.length; o > i; i++) {\n t[i].then(e, n);\n }\n });\n }, i._setImmediateFn = function (t) {\n h = t;\n }, i._setUnhandledRejectionFn = function (t) {\n p = t;\n }, \"undefined\" != typeof module && module.exports ? module.exports = i : t.Promise || (t.Promise = i);\n}(this), function () {\n var t = \"object\" == _typeof(window.customElements),\n e = \"function\" == typeof document.registerElement,\n n = t || e;\n\n n || (\n /**\n * @license\n * Copyright (c) 2014 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n \"undefined\" == typeof WeakMap && !function () {\n var t = Object.defineProperty,\n e = Date.now() % 1e9,\n n = function n() {\n this.name = \"__st\" + (1e9 * Math.random() >>> 0) + (e++ + \"__\");\n };\n\n n.prototype = {\n set: function set(e, n) {\n var i = e[this.name];\n return i && i[0] === e ? i[1] = n : t(e, this.name, {\n value: [e, n],\n writable: !0\n }), this;\n },\n get: function get(t) {\n var e;\n return (e = t[this.name]) && e[0] === t ? e[1] : void 0;\n },\n \"delete\": function _delete(t) {\n var e = t[this.name];\n return e && e[0] === t ? (e[0] = e[1] = void 0, !0) : !1;\n },\n has: function has(t) {\n var e = t[this.name];\n return e ? e[0] === t : !1;\n }\n }, window.WeakMap = n;\n }(), function (t) {\n function e(t) {\n A.push(t), b || (b = !0, g(i));\n }\n\n function n(t) {\n return window.ShadowDOMPolyfill && window.ShadowDOMPolyfill.wrapIfNeeded(t) || t;\n }\n\n function i() {\n b = !1;\n var t = A;\n A = [], t.sort(function (t, e) {\n return t.uid_ - e.uid_;\n });\n var e = !1;\n t.forEach(function (t) {\n var n = t.takeRecords();\n o(t), n.length && (t.callback_(n, t), e = !0);\n }), e && i();\n }\n\n function o(t) {\n t.nodes_.forEach(function (e) {\n var n = m.get(e);\n n && n.forEach(function (e) {\n e.observer === t && e.removeTransientObservers();\n });\n });\n }\n\n function r(t, e) {\n for (var n = t; n; n = n.parentNode) {\n var i = m.get(n);\n if (i) for (var o = 0; o < i.length; o++) {\n var r = i[o],\n s = r.options;\n\n if (n === t || s.subtree) {\n var a = e(s);\n a && r.enqueue(a);\n }\n }\n }\n }\n\n function s(t) {\n this.callback_ = t, this.nodes_ = [], this.records_ = [], this.uid_ = ++C;\n }\n\n function a(t, e) {\n this.type = t, this.target = e, this.addedNodes = [], this.removedNodes = [], this.previousSibling = null, this.nextSibling = null, this.attributeName = null, this.attributeNamespace = null, this.oldValue = null;\n }\n\n function u(t) {\n var e = new a(t.type, t.target);\n return e.addedNodes = t.addedNodes.slice(), e.removedNodes = t.removedNodes.slice(), e.previousSibling = t.previousSibling, e.nextSibling = t.nextSibling, e.attributeName = t.attributeName, e.attributeNamespace = t.attributeNamespace, e.oldValue = t.oldValue, e;\n }\n\n function c(t, e) {\n return x = new a(t, e);\n }\n\n function l(t) {\n return w ? w : (w = u(x), w.oldValue = t, w);\n }\n\n function h() {\n x = w = void 0;\n }\n\n function p(t) {\n return t === w || t === x;\n }\n\n function d(t, e) {\n return t === e ? t : w && p(t) ? w : null;\n }\n\n function f(t, e, n) {\n this.observer = t, this.target = e, this.options = n, this.transientObservedNodes = [];\n }\n\n if (!t.JsMutationObserver) {\n var g,\n m = new WeakMap();\n if (/Trident|Edge/.test(navigator.userAgent)) g = setTimeout;else if (window.setImmediate) g = window.setImmediate;else {\n var v = [],\n y = String(Math.random());\n window.addEventListener(\"message\", function (t) {\n if (t.data === y) {\n var e = v;\n v = [], e.forEach(function (t) {\n t();\n });\n }\n }), g = function g(t) {\n v.push(t), window.postMessage(y, \"*\");\n };\n }\n var b = !1,\n A = [],\n C = 0;\n s.prototype = {\n observe: function observe(t, e) {\n if (t = n(t), !e.childList && !e.attributes && !e.characterData || e.attributeOldValue && !e.attributes || e.attributeFilter && e.attributeFilter.length && !e.attributes || e.characterDataOldValue && !e.characterData) throw new SyntaxError();\n var i = m.get(t);\n i || m.set(t, i = []);\n\n for (var o, r = 0; r < i.length; r++) {\n if (i[r].observer === this) {\n o = i[r], o.removeListeners(), o.options = e;\n break;\n }\n }\n\n o || (o = new f(this, t, e), i.push(o), this.nodes_.push(t)), o.addListeners();\n },\n disconnect: function disconnect() {\n this.nodes_.forEach(function (t) {\n for (var e = m.get(t), n = 0; n < e.length; n++) {\n var i = e[n];\n\n if (i.observer === this) {\n i.removeListeners(), e.splice(n, 1);\n break;\n }\n }\n }, this), this.records_ = [];\n },\n takeRecords: function takeRecords() {\n var t = this.records_;\n return this.records_ = [], t;\n }\n };\n var x, w;\n f.prototype = {\n enqueue: function enqueue(t) {\n var n = this.observer.records_,\n i = n.length;\n\n if (n.length > 0) {\n var o = n[i - 1],\n r = d(o, t);\n if (r) return void (n[i - 1] = r);\n } else e(this.observer);\n\n n[i] = t;\n },\n addListeners: function addListeners() {\n this.addListeners_(this.target);\n },\n addListeners_: function addListeners_(t) {\n var e = this.options;\n e.attributes && t.addEventListener(\"DOMAttrModified\", this, !0), e.characterData && t.addEventListener(\"DOMCharacterDataModified\", this, !0), e.childList && t.addEventListener(\"DOMNodeInserted\", this, !0), (e.childList || e.subtree) && t.addEventListener(\"DOMNodeRemoved\", this, !0);\n },\n removeListeners: function removeListeners() {\n this.removeListeners_(this.target);\n },\n removeListeners_: function removeListeners_(t) {\n var e = this.options;\n e.attributes && t.removeEventListener(\"DOMAttrModified\", this, !0), e.characterData && t.removeEventListener(\"DOMCharacterDataModified\", this, !0), e.childList && t.removeEventListener(\"DOMNodeInserted\", this, !0), (e.childList || e.subtree) && t.removeEventListener(\"DOMNodeRemoved\", this, !0);\n },\n addTransientObserver: function addTransientObserver(t) {\n if (t !== this.target) {\n this.addListeners_(t), this.transientObservedNodes.push(t);\n var e = m.get(t);\n e || m.set(t, e = []), e.push(this);\n }\n },\n removeTransientObservers: function removeTransientObservers() {\n var t = this.transientObservedNodes;\n this.transientObservedNodes = [], t.forEach(function (t) {\n this.removeListeners_(t);\n\n for (var e = m.get(t), n = 0; n < e.length; n++) {\n if (e[n] === this) {\n e.splice(n, 1);\n break;\n }\n }\n }, this);\n },\n handleEvent: function handleEvent(t) {\n switch (t.stopImmediatePropagation(), t.type) {\n case \"DOMAttrModified\":\n var e = t.attrName,\n n = t.relatedNode.namespaceURI,\n i = t.target,\n o = new c(\"attributes\", i);\n o.attributeName = e, o.attributeNamespace = n;\n var s = t.attrChange === MutationEvent.ADDITION ? null : t.prevValue;\n r(i, function (t) {\n return !t.attributes || t.attributeFilter && t.attributeFilter.length && -1 === t.attributeFilter.indexOf(e) && -1 === t.attributeFilter.indexOf(n) ? void 0 : t.attributeOldValue ? l(s) : o;\n });\n break;\n\n case \"DOMCharacterDataModified\":\n var i = t.target,\n o = c(\"characterData\", i),\n s = t.prevValue;\n r(i, function (t) {\n return t.characterData ? t.characterDataOldValue ? l(s) : o : void 0;\n });\n break;\n\n case \"DOMNodeRemoved\":\n this.addTransientObserver(t.target);\n\n case \"DOMNodeInserted\":\n var a,\n u,\n p = t.target;\n \"DOMNodeInserted\" === t.type ? (a = [p], u = []) : (a = [], u = [p]);\n var d = p.previousSibling,\n f = p.nextSibling,\n o = c(\"childList\", t.target.parentNode);\n o.addedNodes = a, o.removedNodes = u, o.previousSibling = d, o.nextSibling = f, r(t.relatedNode, function (t) {\n return t.childList ? o : void 0;\n });\n }\n\n h();\n }\n }, t.JsMutationObserver = s, t.MutationObserver || (t.MutationObserver = s, s._isPolyfilled = !0);\n }\n }(self), function () {\n \"use strict\";\n\n if (!window.performance || !window.performance.now) {\n var t = Date.now();\n window.performance = {\n now: function now() {\n return Date.now() - t;\n }\n };\n }\n\n window.requestAnimationFrame || (window.requestAnimationFrame = function () {\n var t = window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame;\n return t ? function (e) {\n return t(function () {\n e(performance.now());\n });\n } : function (t) {\n return window.setTimeout(t, 1e3 / 60);\n };\n }()), window.cancelAnimationFrame || (window.cancelAnimationFrame = function () {\n return window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || function (t) {\n clearTimeout(t);\n };\n }());\n\n var e = function () {\n var t = document.createEvent(\"Event\");\n return t.initEvent(\"foo\", !0, !0), t.preventDefault(), t.defaultPrevented;\n }();\n\n if (!e) {\n var n = Event.prototype.preventDefault;\n\n Event.prototype.preventDefault = function () {\n this.cancelable && (n.call(this), Object.defineProperty(this, \"defaultPrevented\", {\n get: function get() {\n return !0;\n },\n configurable: !0\n }));\n };\n }\n\n var i = /Trident/.test(navigator.userAgent);\n\n if ((!window.CustomEvent || i && \"function\" != typeof window.CustomEvent) && (window.CustomEvent = function (t, e) {\n e = e || {};\n var n = document.createEvent(\"CustomEvent\");\n return n.initCustomEvent(t, Boolean(e.bubbles), Boolean(e.cancelable), e.detail), n;\n }, window.CustomEvent.prototype = window.Event.prototype), !window.Event || i && \"function\" != typeof window.Event) {\n var o = window.Event;\n window.Event = function (t, e) {\n e = e || {};\n var n = document.createEvent(\"Event\");\n return n.initEvent(t, Boolean(e.bubbles), Boolean(e.cancelable)), n;\n }, window.Event.prototype = o.prototype;\n }\n }(window.WebComponents), window.CustomElements = window.CustomElements || {\n flags: {}\n }, function (t) {\n var e = t.flags,\n n = [],\n i = function i(t) {\n n.push(t);\n },\n o = function o() {\n n.forEach(function (e) {\n e(t);\n });\n };\n\n t.addModule = i, t.initializeModules = o, t.hasNative = Boolean(document.registerElement), t.isIE = /Trident/.test(navigator.userAgent), t.useNative = !e.register && t.hasNative && !window.ShadowDOMPolyfill && (!window.HTMLImports || window.HTMLImports.useNative);\n }(window.CustomElements), window.CustomElements.addModule(function (t) {\n function e(t, e) {\n n(t, function (t) {\n return e(t) ? !0 : void i(t, e);\n }), i(t, e);\n }\n\n function n(t, e, i) {\n var o = t.firstElementChild;\n if (!o) for (o = t.firstChild; o && o.nodeType !== Node.ELEMENT_NODE;) {\n o = o.nextSibling;\n }\n\n for (; o;) {\n e(o, i) !== !0 && n(o, e, i), o = o.nextElementSibling;\n }\n\n return null;\n }\n\n function i(t, n) {\n for (var i = t.shadowRoot; i;) {\n e(i, n), i = i.olderShadowRoot;\n }\n }\n\n function o(t, e) {\n r(t, e, []);\n }\n\n function r(t, e, n) {\n if (t = window.wrap(t), !(n.indexOf(t) >= 0)) {\n n.push(t);\n\n for (var i, o = t.querySelectorAll(\"link[rel=\" + s + \"]\"), a = 0, u = o.length; u > a && (i = o[a]); a++) {\n i.import && r(i.import, e, n);\n }\n\n e(t);\n }\n }\n\n var s = window.HTMLImports ? window.HTMLImports.IMPORT_LINK_TYPE : \"none\";\n t.forDocumentTree = o, t.forSubtree = e;\n }), window.CustomElements.addModule(function (t) {\n function e(t, e) {\n return n(t, e) || i(t, e);\n }\n\n function n(e, n) {\n return t.upgrade(e, n) ? !0 : void (n && s(e));\n }\n\n function i(t, e) {\n b(t, function (t) {\n return n(t, e) ? !0 : void 0;\n });\n }\n\n function o(t) {\n w.push(t), x || (x = !0, setTimeout(r));\n }\n\n function r() {\n x = !1;\n\n for (var t, e = w, n = 0, i = e.length; i > n && (t = e[n]); n++) {\n t();\n }\n\n w = [];\n }\n\n function s(t) {\n C ? o(function () {\n a(t);\n }) : a(t);\n }\n\n function a(t) {\n t.__upgraded__ && !t.__attached && (t.__attached = !0, t.attachedCallback && t.attachedCallback());\n }\n\n function u(t) {\n c(t), b(t, function (t) {\n c(t);\n });\n }\n\n function c(t) {\n C ? o(function () {\n l(t);\n }) : l(t);\n }\n\n function l(t) {\n t.__upgraded__ && t.__attached && (t.__attached = !1, t.detachedCallback && t.detachedCallback());\n }\n\n function h(t) {\n for (var e = t, n = window.wrap(document); e;) {\n if (e == n) return !0;\n e = e.parentNode || e.nodeType === Node.DOCUMENT_FRAGMENT_NODE && e.host;\n }\n }\n\n function p(t) {\n if (t.shadowRoot && !t.shadowRoot.__watched) {\n y.dom && console.log(\"watching shadow-root for: \", t.localName);\n\n for (var e = t.shadowRoot; e;) {\n g(e), e = e.olderShadowRoot;\n }\n }\n }\n\n function d(t, n) {\n if (y.dom) {\n var i = n[0];\n\n if (i && \"childList\" === i.type && i.addedNodes && i.addedNodes) {\n for (var o = i.addedNodes[0]; o && o !== document && !o.host;) {\n o = o.parentNode;\n }\n\n var r = o && (o.URL || o._URL || o.host && o.host.localName) || \"\";\n r = r.split(\"/?\").shift().split(\"/\").pop();\n }\n\n console.group(\"mutations (%d) [%s]\", n.length, r || \"\");\n }\n\n var s = h(t);\n n.forEach(function (t) {\n \"childList\" === t.type && (E(t.addedNodes, function (t) {\n t.localName && e(t, s);\n }), E(t.removedNodes, function (t) {\n t.localName && u(t);\n }));\n }), y.dom && console.groupEnd();\n }\n\n function f(t) {\n for (t = window.wrap(t), t || (t = window.wrap(document)); t.parentNode;) {\n t = t.parentNode;\n }\n\n var e = t.__observer;\n e && (d(t, e.takeRecords()), r());\n }\n\n function g(t) {\n if (!t.__observer) {\n var e = new MutationObserver(d.bind(this, t));\n e.observe(t, {\n childList: !0,\n subtree: !0\n }), t.__observer = e;\n }\n }\n\n function m(t) {\n t = window.wrap(t), y.dom && console.group(\"upgradeDocument: \", t.baseURI.split(\"/\").pop());\n var n = t === window.wrap(document);\n e(t, n), g(t), y.dom && console.groupEnd();\n }\n\n function v(t) {\n A(t, m);\n }\n\n var y = t.flags,\n b = t.forSubtree,\n A = t.forDocumentTree,\n C = window.MutationObserver._isPolyfilled && y[\"throttle-attached\"];\n t.hasPolyfillMutations = C, t.hasThrottledAttached = C;\n var x = !1,\n w = [],\n E = Array.prototype.forEach.call.bind(Array.prototype.forEach),\n S = Element.prototype.createShadowRoot;\n S && (Element.prototype.createShadowRoot = function () {\n var t = S.call(this);\n return window.CustomElements.watchShadow(this), t;\n }), t.watchShadow = p, t.upgradeDocumentTree = v, t.upgradeDocument = m, t.upgradeSubtree = i, t.upgradeAll = e, t.attached = s, t.takeRecords = f;\n }), window.CustomElements.addModule(function (t) {\n function e(e, i) {\n if (\"template\" === e.localName && window.HTMLTemplateElement && HTMLTemplateElement.decorate && HTMLTemplateElement.decorate(e), !e.__upgraded__ && e.nodeType === Node.ELEMENT_NODE) {\n var o = e.getAttribute(\"is\"),\n r = t.getRegisteredDefinition(e.localName) || t.getRegisteredDefinition(o);\n if (r && (o && r.tag == e.localName || !o && !r.extends)) return n(e, r, i);\n }\n }\n\n function n(e, n, o) {\n return s.upgrade && console.group(\"upgrade:\", e.localName), n.is && e.setAttribute(\"is\", n.is), i(e, n), e.__upgraded__ = !0, r(e), o && t.attached(e), t.upgradeSubtree(e, o), s.upgrade && console.groupEnd(), e;\n }\n\n function i(t, e) {\n Object.__proto__ ? t.__proto__ = e.prototype : (o(t, e.prototype, e.native), t.__proto__ = e.prototype);\n }\n\n function o(t, e, n) {\n for (var i = {}, o = e; o !== n && o !== HTMLElement.prototype;) {\n for (var r, s = Object.getOwnPropertyNames(o), a = 0; r = s[a]; a++) {\n i[r] || (Object.defineProperty(t, r, Object.getOwnPropertyDescriptor(o, r)), i[r] = 1);\n }\n\n o = Object.getPrototypeOf(o);\n }\n }\n\n function r(t) {\n t.createdCallback && t.createdCallback();\n }\n\n var s = t.flags;\n t.upgrade = e, t.upgradeWithDefinition = n, t.implementPrototype = i;\n }), window.CustomElements.addModule(function (t) {\n function e(e, i) {\n var u = i || {};\n if (!e) throw new Error(\"document.registerElement: first argument `name` must not be empty\");\n if (e.indexOf(\"-\") < 0) throw new Error(\"document.registerElement: first argument ('name') must contain a dash ('-'). Argument provided was '\" + String(e) + \"'.\");\n if (o(e)) throw new Error(\"Failed to execute 'registerElement' on 'Document': Registration failed for type '\" + String(e) + \"'. The type name is invalid.\");\n if (c(e)) throw new Error(\"DuplicateDefinitionError: a type with name '\" + String(e) + \"' is already registered\");\n return u.prototype || (u.prototype = Object.create(HTMLElement.prototype)), u.__name = e.toLowerCase(), u.extends && (u.extends = u.extends.toLowerCase()), u.lifecycle = u.lifecycle || {}, u.ancestry = r(u.extends), s(u), a(u), n(u.prototype), l(u.__name, u), u.ctor = h(u), u.ctor.prototype = u.prototype, u.prototype.constructor = u.ctor, t.ready && m(document), u.ctor;\n }\n\n function n(t) {\n if (!t.setAttribute._polyfilled) {\n var e = t.setAttribute;\n\n t.setAttribute = function (t, n) {\n i.call(this, t, n, e);\n };\n\n var n = t.removeAttribute;\n t.removeAttribute = function (t) {\n i.call(this, t, null, n);\n }, t.setAttribute._polyfilled = !0;\n }\n }\n\n function i(t, e, n) {\n t = t.toLowerCase();\n var i = this.getAttribute(t);\n n.apply(this, arguments);\n var o = this.getAttribute(t);\n this.attributeChangedCallback && o !== i && this.attributeChangedCallback(t, i, o);\n }\n\n function o(t) {\n for (var e = 0; e < C.length; e++) {\n if (t === C[e]) return !0;\n }\n }\n\n function r(t) {\n var e = c(t);\n return e ? r(e.extends).concat([e]) : [];\n }\n\n function s(t) {\n for (var e, n = t.extends, i = 0; e = t.ancestry[i]; i++) {\n n = e.is && e.tag;\n }\n\n t.tag = n || t.__name, n && (t.is = t.__name);\n }\n\n function a(t) {\n if (!Object.__proto__) {\n var e = HTMLElement.prototype;\n\n if (t.is) {\n var n = document.createElement(t.tag);\n e = Object.getPrototypeOf(n);\n }\n\n for (var i, o = t.prototype, r = !1; o;) {\n o == e && (r = !0), i = Object.getPrototypeOf(o), i && (o.__proto__ = i), o = i;\n }\n\n r || console.warn(t.tag + \" prototype not found in prototype chain for \" + t.is), t.native = e;\n }\n }\n\n function u(t) {\n return y(E(t.tag), t);\n }\n\n function c(t) {\n return t ? x[t.toLowerCase()] : void 0;\n }\n\n function l(t, e) {\n x[t] = e;\n }\n\n function h(t) {\n return function () {\n return u(t);\n };\n }\n\n function p(t, e, n) {\n return t === w ? d(e, n) : S(t, e);\n }\n\n function d(t, e) {\n t && (t = t.toLowerCase()), e && (e = e.toLowerCase());\n var n = c(e || t);\n\n if (n) {\n if (t == n.tag && e == n.is) return new n.ctor();\n if (!e && !n.is) return new n.ctor();\n }\n\n var i;\n return e ? (i = d(t), i.setAttribute(\"is\", e), i) : (i = E(t), t.indexOf(\"-\") >= 0 && b(i, HTMLElement), i);\n }\n\n function f(t, e) {\n var n = t[e];\n\n t[e] = function () {\n var t = n.apply(this, arguments);\n return v(t), t;\n };\n }\n\n var g,\n m = (t.isIE, t.upgradeDocumentTree),\n v = t.upgradeAll,\n y = t.upgradeWithDefinition,\n b = t.implementPrototype,\n A = t.useNative,\n C = [\"annotation-xml\", \"color-profile\", \"font-face\", \"font-face-src\", \"font-face-uri\", \"font-face-format\", \"font-face-name\", \"missing-glyph\"],\n x = {},\n w = \"http://www.w3.org/1999/xhtml\",\n E = document.createElement.bind(document),\n S = document.createElementNS.bind(document);\n g = Object.__proto__ || A ? function (t, e) {\n return t instanceof e;\n } : function (t, e) {\n if (t instanceof e) return !0;\n\n for (var n = t; n;) {\n if (n === e.prototype) return !0;\n n = n.__proto__;\n }\n\n return !1;\n }, f(Node.prototype, \"cloneNode\"), f(document, \"importNode\"), document.registerElement = e, document.createElement = d, document.createElementNS = p, t.registry = x, t.instanceof = g, t.reservedTagList = C, t.getRegisteredDefinition = c, document.register = document.registerElement;\n }), function (t) {\n function e() {\n r(window.wrap(document)), window.CustomElements.ready = !0;\n\n var t = window.requestAnimationFrame || function (t) {\n setTimeout(t, 16);\n };\n\n t(function () {\n setTimeout(function () {\n window.CustomElements.readyTime = Date.now(), window.HTMLImports && (window.CustomElements.elapsed = window.CustomElements.readyTime - window.HTMLImports.readyTime), document.dispatchEvent(new CustomEvent(\"WebComponentsReady\", {\n bubbles: !0\n }));\n });\n });\n }\n\n var n = t.useNative,\n i = t.initializeModules;\n\n if (t.isIE, n) {\n var o = function o() {};\n\n t.watchShadow = o, t.upgrade = o, t.upgradeAll = o, t.upgradeDocumentTree = o, t.upgradeSubtree = o, t.takeRecords = o, t.instanceof = function (t, e) {\n return t instanceof e;\n };\n } else i();\n\n var r = t.upgradeDocumentTree,\n s = t.upgradeDocument;\n if (window.wrap || (window.ShadowDOMPolyfill ? (window.wrap = window.ShadowDOMPolyfill.wrapIfNeeded, window.unwrap = window.ShadowDOMPolyfill.unwrapIfNeeded) : window.wrap = window.unwrap = function (t) {\n return t;\n }), window.HTMLImports && (window.HTMLImports.__importsParsingHook = function (t) {\n t.import && s(wrap(t.import));\n }), \"complete\" === document.readyState || t.flags.eager) e();else if (\"interactive\" !== document.readyState || window.attachEvent || window.HTMLImports && !window.HTMLImports.ready) {\n var a = window.HTMLImports && !window.HTMLImports.ready ? \"HTMLImportsLoaded\" : \"DOMContentLoaded\";\n window.addEventListener(a, e);\n } else e();\n }(window.CustomElements));\n}.call(this), function () {}.call(this), function () {\n var t = this;\n (function () {\n (function () {\n this.Trix = {\n VERSION: \"1.3.1\",\n ZERO_WIDTH_SPACE: \"\\uFEFF\",\n NON_BREAKING_SPACE: \"\\xa0\",\n OBJECT_REPLACEMENT_CHARACTER: \"\\uFFFC\",\n browser: {\n composesExistingText: /Android.*Chrome/.test(navigator.userAgent),\n forcesObjectResizing: /Trident.*rv:11/.test(navigator.userAgent),\n supportsInputEvents: function () {\n var t, e, n, i;\n if (\"undefined\" == typeof InputEvent) return !1;\n\n for (i = [\"data\", \"getTargetRanges\", \"inputType\"], t = 0, e = i.length; e > t; t++) {\n if (n = i[t], !(n in InputEvent.prototype)) return !1;\n }\n\n return !0;\n }()\n },\n config: {}\n };\n }).call(this);\n }).call(t);\n var e = t.Trix;\n (function () {\n (function () {\n e.BasicObject = function () {\n function t() {}\n\n var e, n, i;\n return t.proxyMethod = function (t) {\n var i, o, r, s, a;\n return r = n(t), i = r.name, s = r.toMethod, a = r.toProperty, o = r.optional, this.prototype[i] = function () {\n var t, n;\n return t = null != s ? o ? \"function\" == typeof this[s] ? this[s]() : void 0 : this[s]() : null != a ? this[a] : void 0, o ? (n = null != t ? t[i] : void 0, null != n ? e.call(n, t, arguments) : void 0) : (n = t[i], e.call(n, t, arguments));\n };\n }, n = function n(t) {\n var e, n;\n if (!(n = t.match(i))) throw new Error(\"can't parse @proxyMethod expression: \" + t);\n return e = {\n name: n[4]\n }, null != n[2] ? e.toMethod = n[1] : e.toProperty = n[1], null != n[3] && (e.optional = !0), e;\n }, e = Function.prototype.apply, i = /^(.+?)(\\(\\))?(\\?)?\\.(.+?)$/, t;\n }();\n }).call(this), function () {\n var t = function t(_t, e) {\n function i() {\n this.constructor = _t;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t.prototype = new i(), _t.__super__ = e.prototype, _t;\n },\n n = {}.hasOwnProperty;\n\n e.Object = function (n) {\n function i() {\n this.id = ++o;\n }\n\n var o;\n return t(i, n), o = 0, i.fromJSONString = function (t) {\n return this.fromJSON(JSON.parse(t));\n }, i.prototype.hasSameConstructorAs = function (t) {\n return this.constructor === (null != t ? t.constructor : void 0);\n }, i.prototype.isEqualTo = function (t) {\n return this === t;\n }, i.prototype.inspect = function () {\n var t, e, n;\n return t = function () {\n var t, i, o;\n i = null != (t = this.contentsForInspection()) ? t : {}, o = [];\n\n for (e in i) {\n n = i[e], o.push(e + \"=\" + n);\n }\n\n return o;\n }.call(this), \"#<\" + this.constructor.name + \":\" + this.id + (t.length ? \" \" + t.join(\", \") : \"\") + \">\";\n }, i.prototype.contentsForInspection = function () {}, i.prototype.toJSONString = function () {\n return JSON.stringify(this);\n }, i.prototype.toUTF16String = function () {\n return e.UTF16String.box(this);\n }, i.prototype.getCacheKey = function () {\n return this.id.toString();\n }, i;\n }(e.BasicObject);\n }.call(this), function () {\n e.extend = function (t) {\n var e, n;\n\n for (e in t) {\n n = t[e], this[e] = n;\n }\n\n return this;\n };\n }.call(this), function () {\n e.extend({\n defer: function defer(t) {\n return setTimeout(t, 1);\n }\n });\n }.call(this), function () {\n var t, n;\n e.extend({\n normalizeSpaces: function normalizeSpaces(t) {\n return t.replace(RegExp(\"\" + e.ZERO_WIDTH_SPACE, \"g\"), \"\").replace(RegExp(\"\" + e.NON_BREAKING_SPACE, \"g\"), \" \");\n },\n normalizeNewlines: function normalizeNewlines(t) {\n return t.replace(/\\r\\n/g, \"\\n\");\n },\n breakableWhitespacePattern: RegExp(\"[^\\\\S\" + e.NON_BREAKING_SPACE + \"]\"),\n squishBreakableWhitespace: function squishBreakableWhitespace(t) {\n return t.replace(RegExp(\"\" + e.breakableWhitespacePattern.source, \"g\"), \" \").replace(/\\ {2,}/g, \" \");\n },\n summarizeStringChange: function summarizeStringChange(t, i) {\n var o, r, s, a;\n return t = e.UTF16String.box(t), i = e.UTF16String.box(i), i.length < t.length ? (r = n(t, i), a = r[0], o = r[1]) : (s = n(i, t), o = s[0], a = s[1]), {\n added: o,\n removed: a\n };\n }\n }), n = function n(_n, i) {\n var o, r, s, a, u;\n return _n.isEqualTo(i) ? [\"\", \"\"] : (r = t(_n, i), a = r.utf16String.length, s = a ? (u = r.offset, r, o = _n.codepoints.slice(0, u).concat(_n.codepoints.slice(u + a)), t(i, e.UTF16String.fromCodepoints(o))) : t(i, _n), [r.utf16String.toString(), s.utf16String.toString()]);\n }, t = function t(_t2, e) {\n var n, i, o;\n\n for (n = 0, i = _t2.length, o = e.length; i > n && _t2.charAt(n).isEqualTo(e.charAt(n));) {\n n++;\n }\n\n for (; i > n + 1 && _t2.charAt(i - 1).isEqualTo(e.charAt(o - 1));) {\n i--, o--;\n }\n\n return {\n utf16String: _t2.slice(n, i),\n offset: n\n };\n };\n }.call(this), function () {\n e.extend({\n copyObject: function copyObject(t) {\n var e, n, i;\n null == t && (t = {}), n = {};\n\n for (e in t) {\n i = t[e], n[e] = i;\n }\n\n return n;\n },\n objectsAreEqual: function objectsAreEqual(t, e) {\n var n, i;\n if (null == t && (t = {}), null == e && (e = {}), Object.keys(t).length !== Object.keys(e).length) return !1;\n\n for (n in t) {\n if (i = t[n], i !== e[n]) return !1;\n }\n\n return !0;\n }\n });\n }.call(this), function () {\n var t = [].slice;\n e.extend({\n arraysAreEqual: function arraysAreEqual(t, e) {\n var n, i, o, r;\n if (null == t && (t = []), null == e && (e = []), t.length !== e.length) return !1;\n\n for (i = n = 0, o = t.length; o > n; i = ++n) {\n if (r = t[i], r !== e[i]) return !1;\n }\n\n return !0;\n },\n arrayStartsWith: function arrayStartsWith(t, n) {\n return null == t && (t = []), null == n && (n = []), e.arraysAreEqual(t.slice(0, n.length), n);\n },\n spliceArray: function spliceArray() {\n var e, n, i;\n return n = arguments[0], e = 2 <= arguments.length ? t.call(arguments, 1) : [], i = n.slice(0), i.splice.apply(i, e), i;\n },\n summarizeArrayChange: function summarizeArrayChange(t, e) {\n var n, i, o, r, s, a, u, c, l, h, p;\n\n for (null == t && (t = []), null == e && (e = []), n = [], h = [], o = new Set(), r = 0, u = t.length; u > r; r++) {\n p = t[r], o.add(p);\n }\n\n for (i = new Set(), s = 0, c = e.length; c > s; s++) {\n p = e[s], i.add(p), o.has(p) || n.push(p);\n }\n\n for (a = 0, l = t.length; l > a; a++) {\n p = t[a], i.has(p) || h.push(p);\n }\n\n return {\n added: n,\n removed: h\n };\n }\n });\n }.call(this), function () {\n var t, n, i, o;\n t = null, n = null, o = null, i = null, e.extend({\n getAllAttributeNames: function getAllAttributeNames() {\n return null != t ? t : t = e.getTextAttributeNames().concat(e.getBlockAttributeNames());\n },\n getBlockConfig: function getBlockConfig(t) {\n return e.config.blockAttributes[t];\n },\n getBlockAttributeNames: function getBlockAttributeNames() {\n return null != n ? n : n = Object.keys(e.config.blockAttributes);\n },\n getTextConfig: function getTextConfig(t) {\n return e.config.textAttributes[t];\n },\n getTextAttributeNames: function getTextAttributeNames() {\n return null != o ? o : o = Object.keys(e.config.textAttributes);\n },\n getListAttributeNames: function getListAttributeNames() {\n var t, n;\n return null != i ? i : i = function () {\n var i, o;\n i = e.config.blockAttributes, o = [];\n\n for (t in i) {\n n = i[t].listAttribute, null != n && o.push(n);\n }\n\n return o;\n }();\n }\n });\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\n\n t = document.documentElement, n = null != (i = null != (o = null != (r = t.matchesSelector) ? r : t.webkitMatchesSelector) ? o : t.msMatchesSelector) ? i : t.mozMatchesSelector, e.extend({\n handleEvent: function handleEvent(n, i) {\n var o, r, _s, a, u, c, l, h, p, d, f, g;\n\n return h = null != i ? i : {}, c = h.onElement, u = h.matchingSelector, g = h.withCallback, a = h.inPhase, l = h.preventDefault, d = h.times, r = null != c ? c : t, p = u, o = g, f = \"capturing\" === a, _s = function s(t) {\n var n;\n return null != d && 0 === --d && _s.destroy(), n = e.findClosestElementFromNode(t.target, {\n matchingSelector: p\n }), null != n && (null != g && g.call(n, t, n), l) ? t.preventDefault() : void 0;\n }, _s.destroy = function () {\n return r.removeEventListener(n, _s, f);\n }, r.addEventListener(n, _s, f), _s;\n },\n handleEventOnce: function handleEventOnce(t, n) {\n return null == n && (n = {}), n.times = 1, e.handleEvent(t, n);\n },\n triggerEvent: function triggerEvent(n, i) {\n var o, r, s, a, u, c, l;\n return l = null != i ? i : {}, c = l.onElement, r = l.bubbles, s = l.cancelable, o = l.attributes, a = null != c ? c : t, r = r !== !1, s = s !== !1, u = document.createEvent(\"Events\"), u.initEvent(n, r, s), null != o && e.extend.call(u, o), a.dispatchEvent(u);\n },\n elementMatchesSelector: function elementMatchesSelector(t, e) {\n return 1 === (null != t ? t.nodeType : void 0) ? n.call(t, e) : void 0;\n },\n findClosestElementFromNode: function findClosestElementFromNode(t, n) {\n var i, o, r;\n\n for (o = null != n ? n : {}, i = o.matchingSelector, r = o.untilNode; null != t && t.nodeType !== Node.ELEMENT_NODE;) {\n t = t.parentNode;\n }\n\n if (null != t) {\n if (null == i) return t;\n if (t.closest && null == r) return t.closest(i);\n\n for (; t && t !== r;) {\n if (e.elementMatchesSelector(t, i)) return t;\n t = t.parentNode;\n }\n }\n },\n findInnerElement: function findInnerElement(t) {\n for (; null != t ? t.firstElementChild : void 0;) {\n t = t.firstElementChild;\n }\n\n return t;\n },\n innerElementIsActive: function innerElementIsActive(t) {\n return document.activeElement !== t && e.elementContainsNode(t, document.activeElement);\n },\n elementContainsNode: function elementContainsNode(t, e) {\n if (t && e) for (; e;) {\n if (e === t) return !0;\n e = e.parentNode;\n }\n },\n findNodeFromContainerAndOffset: function findNodeFromContainerAndOffset(t, e) {\n var n;\n if (t) return t.nodeType === Node.TEXT_NODE ? t : 0 === e ? null != (n = t.firstChild) ? n : t : t.childNodes.item(e - 1);\n },\n findElementFromContainerAndOffset: function findElementFromContainerAndOffset(t, n) {\n var i;\n return i = e.findNodeFromContainerAndOffset(t, n), e.findClosestElementFromNode(i);\n },\n findChildIndexOfNode: function findChildIndexOfNode(t) {\n var e;\n\n if (null != t ? t.parentNode : void 0) {\n for (e = 0; t = t.previousSibling;) {\n e++;\n }\n\n return e;\n }\n },\n removeNode: function removeNode(t) {\n var e;\n return null != t && null != (e = t.parentNode) ? e.removeChild(t) : void 0;\n },\n walkTree: function walkTree(t, e) {\n var n, i, o, r, s;\n return o = null != e ? e : {}, i = o.onlyNodesOfType, r = o.usingFilter, n = o.expandEntityReferences, s = function () {\n switch (i) {\n case \"element\":\n return NodeFilter.SHOW_ELEMENT;\n\n case \"text\":\n return NodeFilter.SHOW_TEXT;\n\n case \"comment\":\n return NodeFilter.SHOW_COMMENT;\n\n default:\n return NodeFilter.SHOW_ALL;\n }\n }(), document.createTreeWalker(t, s, null != r ? r : null, n === !0);\n },\n tagName: function tagName(t) {\n var e;\n return null != t && null != (e = t.tagName) ? e.toLowerCase() : void 0;\n },\n makeElement: function makeElement(t, e) {\n var n, i, o, r, s, a, u, c, l, h, p, d, f, g;\n\n if (null == e && (e = {}), \"object\" == _typeof(t) ? (e = t, t = e.tagName) : e = {\n attributes: e\n }, o = document.createElement(t), null != e.editable && (null == e.attributes && (e.attributes = {}), e.attributes.contenteditable = e.editable), e.attributes) {\n l = e.attributes;\n\n for (a in l) {\n g = l[a], o.setAttribute(a, g);\n }\n }\n\n if (e.style) {\n h = e.style;\n\n for (a in h) {\n g = h[a], o.style[a] = g;\n }\n }\n\n if (e.data) {\n p = e.data;\n\n for (a in p) {\n g = p[a], o.dataset[a] = g;\n }\n }\n\n if (e.className) for (d = e.className.split(\" \"), r = 0, u = d.length; u > r; r++) {\n i = d[r], o.classList.add(i);\n }\n if (e.textContent && (o.textContent = e.textContent), e.childNodes) for (f = [].concat(e.childNodes), s = 0, c = f.length; c > s; s++) {\n n = f[s], o.appendChild(n);\n }\n return o;\n },\n getBlockTagNames: function getBlockTagNames() {\n var t, n;\n return null != e.blockTagNames ? e.blockTagNames : e.blockTagNames = function () {\n var i, o;\n i = e.config.blockAttributes, o = [];\n\n for (t in i) {\n n = i[t].tagName, n && o.push(n);\n }\n\n return o;\n }();\n },\n nodeIsBlockContainer: function nodeIsBlockContainer(t) {\n return e.nodeIsBlockStartComment(null != t ? t.firstChild : void 0);\n },\n nodeProbablyIsBlockContainer: function nodeProbablyIsBlockContainer(t) {\n var n, i;\n return n = e.tagName(t), s.call(e.getBlockTagNames(), n) >= 0 && (i = e.tagName(t.firstChild), s.call(e.getBlockTagNames(), i) < 0);\n },\n nodeIsBlockStart: function nodeIsBlockStart(t, n) {\n var i;\n return i = (null != n ? n : {\n strict: !0\n }).strict, i ? e.nodeIsBlockStartComment(t) : e.nodeIsBlockStartComment(t) || !e.nodeIsBlockStartComment(t.firstChild) && e.nodeProbablyIsBlockContainer(t);\n },\n nodeIsBlockStartComment: function nodeIsBlockStartComment(t) {\n return e.nodeIsCommentNode(t) && \"block\" === (null != t ? t.data : void 0);\n },\n nodeIsCommentNode: function nodeIsCommentNode(t) {\n return (null != t ? t.nodeType : void 0) === Node.COMMENT_NODE;\n },\n nodeIsCursorTarget: function nodeIsCursorTarget(t, n) {\n var i;\n return i = (null != n ? n : {}).name, t ? e.nodeIsTextNode(t) ? t.data === e.ZERO_WIDTH_SPACE ? i ? t.parentNode.dataset.trixCursorTarget === i : !0 : void 0 : e.nodeIsCursorTarget(t.firstChild) : void 0;\n },\n nodeIsAttachmentElement: function nodeIsAttachmentElement(t) {\n return e.elementMatchesSelector(t, e.AttachmentView.attachmentSelector);\n },\n nodeIsEmptyTextNode: function nodeIsEmptyTextNode(t) {\n return e.nodeIsTextNode(t) && \"\" === (null != t ? t.data : void 0);\n },\n nodeIsTextNode: function nodeIsTextNode(t) {\n return (null != t ? t.nodeType : void 0) === Node.TEXT_NODE;\n }\n });\n }.call(this), function () {\n var t, n, i, o, r;\n t = e.copyObject, o = e.objectsAreEqual, e.extend({\n normalizeRange: i = function i(t) {\n var e;\n if (null != t) return Array.isArray(t) || (t = [t, t]), [n(t[0]), n(null != (e = t[1]) ? e : t[0])];\n },\n rangeIsCollapsed: function rangeIsCollapsed(t) {\n var e, n, o;\n if (null != t) return n = i(t), o = n[0], e = n[1], r(o, e);\n },\n rangesAreEqual: function rangesAreEqual(t, e) {\n var n, o, s, a, u, c;\n if (null != t && null != e) return s = i(t), o = s[0], n = s[1], a = i(e), c = a[0], u = a[1], r(o, c) && r(n, u);\n }\n }), n = function n(e) {\n return \"number\" == typeof e ? e : t(e);\n }, r = function r(t, e) {\n return \"number\" == typeof t ? t === e : o(t, e);\n };\n }.call(this), function () {\n var t, n, i, o, r, s, a;\n e.registerElement = function (t, e) {\n var n, i;\n return null == e && (e = {}), t = t.toLowerCase(), e = a(e), i = s(e), (n = i.defaultCSS) && (delete i.defaultCSS, o(n, t)), r(t, i);\n }, o = function o(t, e) {\n var n;\n return n = i(e), n.textContent = t.replace(/%t/g, e);\n }, i = function i(e) {\n var n, i;\n return n = document.createElement(\"style\"), n.setAttribute(\"type\", \"text/css\"), n.setAttribute(\"data-tag-name\", e.toLowerCase()), (i = t()) && n.setAttribute(\"nonce\", i), document.head.insertBefore(n, document.head.firstChild), n;\n }, t = function t() {\n var t;\n return (t = n(\"trix-csp-nonce\") || n(\"csp-nonce\")) ? t.getAttribute(\"content\") : void 0;\n }, n = function n(t) {\n return document.head.querySelector(\"meta[name=\" + t + \"]\");\n }, s = function s(t) {\n var e, n, i;\n n = {};\n\n for (e in t) {\n i = t[e], n[e] = \"function\" == typeof i ? {\n value: i\n } : i;\n }\n\n return n;\n }, a = function () {\n var t;\n return t = function t(_t3) {\n var e, n, i, o, r;\n\n for (e = {}, r = [\"initialize\", \"connect\", \"disconnect\"], n = 0, o = r.length; o > n; n++) {\n i = r[n], e[i] = _t3[i], delete _t3[i];\n }\n\n return e;\n }, window.customElements ? function (e) {\n var n, i, o, r, s;\n return s = t(e), o = s.initialize, n = s.connect, i = s.disconnect, o && (r = n, n = function n() {\n return this.initialized || (this.initialized = !0, o.call(this)), null != r ? r.call(this) : void 0;\n }), n && (e.connectedCallback = n), i && (e.disconnectedCallback = i), e;\n } : function (e) {\n var n, i, o, r;\n return r = t(e), o = r.initialize, n = r.connect, i = r.disconnect, o && (e.createdCallback = o), n && (e.attachedCallback = n), i && (e.detachedCallback = i), e;\n };\n }(), r = function () {\n return window.customElements ? function (t, e) {\n var _n2;\n\n return _n2 = function n() {\n return \"object\" == (typeof Reflect === \"undefined\" ? \"undefined\" : _typeof(Reflect)) ? Reflect.construct(HTMLElement, [], _n2) : HTMLElement.apply(this);\n }, Object.setPrototypeOf(_n2.prototype, HTMLElement.prototype), Object.setPrototypeOf(_n2, HTMLElement), Object.defineProperties(_n2.prototype, e), window.customElements.define(t, _n2), _n2;\n } : function (t, e) {\n var n, i;\n return i = Object.create(HTMLElement.prototype, e), n = document.registerElement(t, {\n prototype: i\n }), Object.defineProperty(i, \"constructor\", {\n value: n\n }), n;\n };\n }();\n }.call(this), function () {\n var t, n;\n e.extend({\n getDOMSelection: function getDOMSelection() {\n var t;\n return t = window.getSelection(), t.rangeCount > 0 ? t : void 0;\n },\n getDOMRange: function getDOMRange() {\n var n, i;\n return (n = null != (i = e.getDOMSelection()) ? i.getRangeAt(0) : void 0) && !t(n) ? n : void 0;\n },\n setDOMRange: function setDOMRange(t) {\n var n;\n return n = window.getSelection(), n.removeAllRanges(), n.addRange(t), e.selectionChangeObserver.update();\n }\n }), t = function t(_t4) {\n return n(_t4.startContainer) || n(_t4.endContainer);\n }, n = function n(t) {\n return !Object.getPrototypeOf(t);\n };\n }.call(this), function () {\n var t;\n t = {\n \"application/x-trix-feature-detection\": \"test\"\n }, e.extend({\n dataTransferIsPlainText: function dataTransferIsPlainText(t) {\n var e, n, i;\n return i = t.getData(\"text/plain\"), n = t.getData(\"text/html\"), i && n ? (e = new DOMParser().parseFromString(n, \"text/html\").body, e.textContent === i ? !e.querySelector(\"*\") : void 0) : null != i ? i.length : void 0;\n },\n dataTransferIsWritable: function dataTransferIsWritable(e) {\n var n, i;\n\n if (null != (null != e ? e.setData : void 0)) {\n for (n in t) {\n if (i = t[n], !function () {\n try {\n return e.setData(n, i), e.getData(n) === i;\n } catch (t) {}\n }()) return;\n }\n\n return !0;\n }\n },\n keyEventIsKeyboardCommand: function () {\n return /Mac|^iP/.test(navigator.platform) ? function (t) {\n return t.metaKey;\n } : function (t) {\n return t.ctrlKey;\n };\n }()\n });\n }.call(this), function () {\n e.extend({\n RTL_PATTERN: /[\\u05BE\\u05C0\\u05C3\\u05D0-\\u05EA\\u05F0-\\u05F4\\u061B\\u061F\\u0621-\\u063A\\u0640-\\u064A\\u066D\\u0671-\\u06B7\\u06BA-\\u06BE\\u06C0-\\u06CE\\u06D0-\\u06D5\\u06E5\\u06E6\\u200F\\u202B\\u202E\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE72\\uFE74\\uFE76-\\uFEFC]/,\n getDirection: function () {\n var t, n, i, o;\n return n = e.makeElement(\"input\", {\n dir: \"auto\",\n name: \"x\",\n dirName: \"x.dir\"\n }), t = e.makeElement(\"form\"), t.appendChild(n), i = function () {\n try {\n return new FormData(t).has(n.dirName);\n } catch (e) {}\n }(), o = function () {\n try {\n return n.matches(\":dir(ltr),:dir(rtl)\");\n } catch (t) {}\n }(), i ? function (e) {\n return n.value = e, new FormData(t).get(n.dirName);\n } : o ? function (t) {\n return n.value = t, n.matches(\":dir(rtl)\") ? \"rtl\" : \"ltr\";\n } : function (t) {\n var n;\n return n = t.trim().charAt(0), e.RTL_PATTERN.test(n) ? \"rtl\" : \"ltr\";\n };\n }()\n });\n }.call(this), function () {}.call(this), function () {\n var t,\n n = function n(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) {\n i.call(e, o) && (t[o] = e[o]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n\n t = e.arraysAreEqual, e.Hash = function (i) {\n function o(t) {\n null == t && (t = {}), this.values = s(t), o.__super__.constructor.apply(this, arguments);\n }\n\n var r, s, a, u, c;\n return n(o, i), o.fromCommonAttributesOfObjects = function (t) {\n var e, n, i, o, s, a;\n if (null == t && (t = []), !t.length) return new this();\n\n for (e = r(t[0]), i = e.getKeys(), a = t.slice(1), n = 0, o = a.length; o > n; n++) {\n s = a[n], i = e.getKeysCommonToHash(r(s)), e = e.slice(i);\n }\n\n return e;\n }, o.box = function (t) {\n return r(t);\n }, o.prototype.add = function (t, e) {\n return this.merge(u(t, e));\n }, o.prototype.remove = function (t) {\n return new e.Hash(s(this.values, t));\n }, o.prototype.get = function (t) {\n return this.values[t];\n }, o.prototype.has = function (t) {\n return t in this.values;\n }, o.prototype.merge = function (t) {\n return new e.Hash(a(this.values, c(t)));\n }, o.prototype.slice = function (t) {\n var n, i, o, r;\n\n for (r = {}, n = 0, o = t.length; o > n; n++) {\n i = t[n], this.has(i) && (r[i] = this.values[i]);\n }\n\n return new e.Hash(r);\n }, o.prototype.getKeys = function () {\n return Object.keys(this.values);\n }, o.prototype.getKeysCommonToHash = function (t) {\n var e, n, i, o, s;\n\n for (t = r(t), o = this.getKeys(), s = [], e = 0, i = o.length; i > e; e++) {\n n = o[e], this.values[n] === t.values[n] && s.push(n);\n }\n\n return s;\n }, o.prototype.isEqualTo = function (e) {\n return t(this.toArray(), r(e).toArray());\n }, o.prototype.isEmpty = function () {\n return 0 === this.getKeys().length;\n }, o.prototype.toArray = function () {\n var t, e, n;\n return (null != this.array ? this.array : this.array = function () {\n var i;\n e = [], i = this.values;\n\n for (t in i) {\n n = i[t], e.push(t, n);\n }\n\n return e;\n }.call(this)).slice(0);\n }, o.prototype.toObject = function () {\n return s(this.values);\n }, o.prototype.toJSON = function () {\n return this.toObject();\n }, o.prototype.contentsForInspection = function () {\n return {\n values: JSON.stringify(this.values)\n };\n }, u = function u(t, e) {\n var n;\n return n = {}, n[t] = e, n;\n }, a = function a(t, e) {\n var n, i, o;\n i = s(t);\n\n for (n in e) {\n o = e[n], i[n] = o;\n }\n\n return i;\n }, s = function s(t, e) {\n var n, i, o, r, s;\n\n for (r = {}, s = Object.keys(t).sort(), n = 0, o = s.length; o > n; n++) {\n i = s[n], i !== e && (r[i] = t[i]);\n }\n\n return r;\n }, r = function r(t) {\n return t instanceof e.Hash ? t : new e.Hash(t);\n }, c = function c(t) {\n return t instanceof e.Hash ? t.values : t;\n }, o;\n }(e.Object);\n }.call(this), function () {\n e.ObjectGroup = function () {\n function t(t, e) {\n var n, i;\n this.objects = null != t ? t : [], i = e.depth, n = e.asTree, n && (this.depth = i, this.objects = this.constructor.groupObjects(this.objects, {\n asTree: n,\n depth: this.depth + 1\n }));\n }\n\n return t.groupObjects = function (t, e) {\n var n, i, o, r, s, a, u, c, l;\n\n for (null == t && (t = []), l = null != e ? e : {}, o = l.depth, n = l.asTree, n && null == o && (o = 0), c = [], s = 0, a = t.length; a > s; s++) {\n if (u = t[s], r) {\n if ((\"function\" == typeof u.canBeGrouped ? u.canBeGrouped(o) : void 0) && (\"function\" == typeof (i = r[r.length - 1]).canBeGroupedWith ? i.canBeGroupedWith(u, o) : void 0)) {\n r.push(u);\n continue;\n }\n\n c.push(new this(r, {\n depth: o,\n asTree: n\n })), r = null;\n }\n\n (\"function\" == typeof u.canBeGrouped ? u.canBeGrouped(o) : void 0) ? r = [u] : c.push(u);\n }\n\n return r && c.push(new this(r, {\n depth: o,\n asTree: n\n })), c;\n }, t.prototype.getObjects = function () {\n return this.objects;\n }, t.prototype.getDepth = function () {\n return this.depth;\n }, t.prototype.getCacheKey = function () {\n var t, e, n, i, o;\n\n for (e = [\"objectGroup\"], o = this.getObjects(), t = 0, n = o.length; n > t; t++) {\n i = o[t], e.push(i.getCacheKey());\n }\n\n return e.join(\"/\");\n }, t;\n }();\n }.call(this), function () {\n var t = function t(_t5, e) {\n function i() {\n this.constructor = _t5;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t5[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t5.prototype = new i(), _t5.__super__ = e.prototype, _t5;\n },\n n = {}.hasOwnProperty;\n\n e.ObjectMap = function (e) {\n function n(t) {\n var e, n, i, o, r;\n\n for (null == t && (t = []), this.objects = {}, i = 0, o = t.length; o > i; i++) {\n r = t[i], n = JSON.stringify(r), null == (e = this.objects)[n] && (e[n] = r);\n }\n }\n\n return t(n, e), n.prototype.find = function (t) {\n var e;\n return e = JSON.stringify(t), this.objects[e];\n }, n;\n }(e.BasicObject);\n }.call(this), function () {\n e.ElementStore = function () {\n function t(t) {\n this.reset(t);\n }\n\n var e;\n return t.prototype.add = function (t) {\n var n;\n return n = e(t), this.elements[n] = t;\n }, t.prototype.remove = function (t) {\n var n, i;\n return n = e(t), (i = this.elements[n]) ? (delete this.elements[n], i) : void 0;\n }, t.prototype.reset = function (t) {\n var e, n, i;\n\n for (null == t && (t = []), this.elements = {}, n = 0, i = t.length; i > n; n++) {\n e = t[n], this.add(e);\n }\n\n return t;\n }, e = function e(t) {\n return t.dataset.trixStoreKey;\n }, t;\n }();\n }.call(this), function () {}.call(this), function () {\n var t = function t(_t6, e) {\n function i() {\n this.constructor = _t6;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t6[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t6.prototype = new i(), _t6.__super__ = e.prototype, _t6;\n },\n n = {}.hasOwnProperty;\n\n e.Operation = function (e) {\n function n() {\n return n.__super__.constructor.apply(this, arguments);\n }\n\n return t(n, e), n.prototype.isPerforming = function () {\n return this.performing === !0;\n }, n.prototype.hasPerformed = function () {\n return this.performed === !0;\n }, n.prototype.hasSucceeded = function () {\n return this.performed && this.succeeded;\n }, n.prototype.hasFailed = function () {\n return this.performed && !this.succeeded;\n }, n.prototype.getPromise = function () {\n return null != this.promise ? this.promise : this.promise = new Promise(function (t) {\n return function (e, n) {\n return t.performing = !0, t.perform(function (i, o) {\n return t.succeeded = i, t.performing = !1, t.performed = !0, t.succeeded ? e(o) : n(o);\n });\n };\n }(this));\n }, n.prototype.perform = function (t) {\n return t(!1);\n }, n.prototype.release = function () {\n var t;\n return null != (t = this.promise) && \"function\" == typeof t.cancel && t.cancel(), this.promise = null, this.performing = null, this.performed = null, this.succeeded = null;\n }, n.proxyMethod(\"getPromise().then\"), n.proxyMethod(\"getPromise().catch\"), n;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = function s(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n a.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n a = {}.hasOwnProperty;\n\n e.UTF16String = function (t) {\n function e(t, e) {\n this.ucs2String = t, this.codepoints = e, this.length = this.codepoints.length, this.ucs2Length = this.ucs2String.length;\n }\n\n return s(e, t), e.box = function (t) {\n return null == t && (t = \"\"), t instanceof this ? t : this.fromUCS2String(null != t ? t.toString() : void 0);\n }, e.fromUCS2String = function (t) {\n return new this(t, o(t));\n }, e.fromCodepoints = function (t) {\n return new this(r(t), t);\n }, e.prototype.offsetToUCS2Offset = function (t) {\n return r(this.codepoints.slice(0, Math.max(0, t))).length;\n }, e.prototype.offsetFromUCS2Offset = function (t) {\n return o(this.ucs2String.slice(0, Math.max(0, t))).length;\n }, e.prototype.slice = function () {\n var t;\n return this.constructor.fromCodepoints((t = this.codepoints).slice.apply(t, arguments));\n }, e.prototype.charAt = function (t) {\n return this.slice(t, t + 1);\n }, e.prototype.isEqualTo = function (t) {\n return this.constructor.box(t).ucs2String === this.ucs2String;\n }, e.prototype.toJSON = function () {\n return this.ucs2String;\n }, e.prototype.getCacheKey = function () {\n return this.ucs2String;\n }, e.prototype.toString = function () {\n return this.ucs2String;\n }, e;\n }(e.BasicObject), t = 1 === (\"function\" == typeof Array.from ? Array.from(\"\\uD83D\\uDC7C\").length : void 0), n = null != (\"function\" == typeof \" \".codePointAt ? \" \".codePointAt(0) : void 0), i = \" \\uD83D\\uDC7C\" === (\"function\" == typeof String.fromCodePoint ? String.fromCodePoint(32, 128124) : void 0), o = t && n ? function (t) {\n return Array.from(t).map(function (t) {\n return t.codePointAt(0);\n });\n } : function (t) {\n var e, n, i, o, r;\n\n for (o = [], e = 0, i = t.length; i > e;) {\n r = t.charCodeAt(e++), r >= 55296 && 56319 >= r && i > e && (n = t.charCodeAt(e++), 56320 === (64512 & n) ? r = ((1023 & r) << 10) + (1023 & n) + 65536 : e--), o.push(r);\n }\n\n return o;\n }, r = i ? function (t) {\n return String.fromCodePoint.apply(String, t);\n } : function (t) {\n var e, n, i;\n return e = function () {\n var e, o, r;\n\n for (r = [], e = 0, o = t.length; o > e; e++) {\n i = t[e], n = \"\", i > 65535 && (i -= 65536, n += String.fromCharCode(i >>> 10 & 1023 | 55296), i = 56320 | 1023 & i), r.push(n + String.fromCharCode(i));\n }\n\n return r;\n }(), e.join(\"\");\n };\n }.call(this), function () {}.call(this), function () {}.call(this), function () {\n e.config.lang = {\n attachFiles: \"Attach Files\",\n bold: \"Bold\",\n bullets: \"Bullets\",\n \"byte\": \"Byte\",\n bytes: \"Bytes\",\n captionPlaceholder: \"Add a caption\\u2026\",\n code: \"Code\",\n heading1: \"Heading\",\n indent: \"Increase Level\",\n italic: \"Italic\",\n link: \"Link\",\n numbers: \"Numbers\",\n outdent: \"Decrease Level\",\n quote: \"Quote\",\n redo: \"Redo\",\n remove: \"Remove\",\n strike: \"Strikethrough\",\n undo: \"Undo\",\n unlink: \"Unlink\",\n url: \"URL\",\n urlPlaceholder: \"Enter a URL\\u2026\",\n GB: \"GB\",\n KB: \"KB\",\n MB: \"MB\",\n PB: \"PB\",\n TB: \"TB\"\n };\n }.call(this), function () {\n e.config.css = {\n attachment: \"attachment\",\n attachmentCaption: \"attachment__caption\",\n attachmentCaptionEditor: \"attachment__caption-editor\",\n attachmentMetadata: \"attachment__metadata\",\n attachmentMetadataContainer: \"attachment__metadata-container\",\n attachmentName: \"attachment__name\",\n attachmentProgress: \"attachment__progress\",\n attachmentSize: \"attachment__size\",\n attachmentToolbar: \"attachment__toolbar\",\n attachmentGallery: \"attachment-gallery\"\n };\n }.call(this), function () {\n var t;\n e.config.blockAttributes = t = {\n \"default\": {\n tagName: \"div\",\n parse: !1\n },\n quote: {\n tagName: \"blockquote\",\n nestable: !0\n },\n heading1: {\n tagName: \"h1\",\n terminal: !0,\n breakOnReturn: !0,\n group: !1\n },\n code: {\n tagName: \"pre\",\n terminal: !0,\n text: {\n plaintext: !0\n }\n },\n bulletList: {\n tagName: \"ul\",\n parse: !1\n },\n bullet: {\n tagName: \"li\",\n listAttribute: \"bulletList\",\n group: !1,\n nestable: !0,\n test: function test(n) {\n return e.tagName(n.parentNode) === t[this.listAttribute].tagName;\n }\n },\n numberList: {\n tagName: \"ol\",\n parse: !1\n },\n number: {\n tagName: \"li\",\n listAttribute: \"numberList\",\n group: !1,\n nestable: !0,\n test: function test(n) {\n return e.tagName(n.parentNode) === t[this.listAttribute].tagName;\n }\n },\n attachmentGallery: {\n tagName: \"div\",\n exclusive: !0,\n terminal: !0,\n parse: !1,\n group: !1\n }\n };\n }.call(this), function () {\n var t, n;\n t = e.config.lang, n = [t.bytes, t.KB, t.MB, t.GB, t.TB, t.PB], e.config.fileSize = {\n prefix: \"IEC\",\n precision: 2,\n formatter: function formatter(e) {\n var i, o, r, s, a;\n\n switch (e) {\n case 0:\n return \"0 \" + t.bytes;\n\n case 1:\n return \"1 \" + t.byte;\n\n default:\n return i = function () {\n switch (this.prefix) {\n case \"SI\":\n return 1e3;\n\n case \"IEC\":\n return 1024;\n }\n }.call(this), o = Math.floor(Math.log(e) / Math.log(i)), r = e / Math.pow(i, o), s = r.toFixed(this.precision), a = s.replace(/0*$/, \"\").replace(/\\.$/, \"\"), a + \" \" + n[o];\n }\n }\n };\n }.call(this), function () {\n e.config.textAttributes = {\n bold: {\n tagName: \"strong\",\n inheritable: !0,\n parser: function parser(t) {\n var e;\n return e = window.getComputedStyle(t), \"bold\" === e.fontWeight || e.fontWeight >= 600;\n }\n },\n italic: {\n tagName: \"em\",\n inheritable: !0,\n parser: function parser(t) {\n var e;\n return e = window.getComputedStyle(t), \"italic\" === e.fontStyle;\n }\n },\n href: {\n groupTagName: \"a\",\n parser: function parser(t) {\n var n, i, o;\n return n = e.AttachmentView.attachmentSelector, o = \"a:not(\" + n + \")\", (i = e.findClosestElementFromNode(t, {\n matchingSelector: o\n })) ? i.getAttribute(\"href\") : void 0;\n }\n },\n strike: {\n tagName: \"del\",\n inheritable: !0\n },\n frozen: {\n style: {\n backgroundColor: \"highlight\"\n }\n }\n };\n }.call(this), function () {\n var t, n, i, o, r;\n r = \"[data-trix-serialize=false]\", o = [\"contenteditable\", \"data-trix-id\", \"data-trix-store-key\", \"data-trix-mutable\", \"data-trix-placeholder\", \"tabindex\"], n = \"data-trix-serialized-attributes\", i = \"[\" + n + \"]\", t = new RegExp(\"\", \"g\"), e.extend({\n serializers: {\n \"application/json\": function applicationJson(t) {\n var n;\n if (t instanceof e.Document) n = t;else {\n if (!(t instanceof HTMLElement)) throw new Error(\"unserializable object\");\n n = e.Document.fromHTML(t.innerHTML);\n }\n return n.toSerializableDocument().toJSONString();\n },\n \"text/html\": function textHtml(s) {\n var a, u, c, l, h, p, d, f, g, m, v, y, b, A, C, x, w;\n if (s instanceof e.Document) l = e.DocumentView.render(s);else {\n if (!(s instanceof HTMLElement)) throw new Error(\"unserializable object\");\n l = s.cloneNode(!0);\n }\n\n for (A = l.querySelectorAll(r), h = 0, g = A.length; g > h; h++) {\n c = A[h], e.removeNode(c);\n }\n\n for (p = 0, m = o.length; m > p; p++) {\n for (a = o[p], C = l.querySelectorAll(\"[\" + a + \"]\"), d = 0, v = C.length; v > d; d++) {\n c = C[d], c.removeAttribute(a);\n }\n }\n\n for (x = l.querySelectorAll(i), f = 0, y = x.length; y > f; f++) {\n c = x[f];\n\n try {\n u = JSON.parse(c.getAttribute(n)), c.removeAttribute(n);\n\n for (b in u) {\n w = u[b], c.setAttribute(b, w);\n }\n } catch (E) {}\n }\n\n return l.innerHTML.replace(t, \"\");\n }\n },\n deserializers: {\n \"application/json\": function applicationJson(t) {\n return e.Document.fromJSONString(t);\n },\n \"text/html\": function textHtml(t) {\n return e.Document.fromHTML(t);\n }\n },\n serializeToContentType: function serializeToContentType(t, n) {\n var i;\n if (i = e.serializers[n]) return i(t);\n throw new Error(\"unknown content type: \" + n);\n },\n deserializeFromContentType: function deserializeFromContentType(t, n) {\n var i;\n if (i = e.deserializers[n]) return i(t);\n throw new Error(\"unknown content type: \" + n);\n }\n });\n }.call(this), function () {\n var t;\n t = e.config.lang, e.config.toolbar = {\n getDefaultHTML: function getDefaultHTML() {\n return '
\\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n\\n \\n\\n \\n \\n \\n \\n
\\n\\n
\\n
\\n \\n
\\n
';\n }\n };\n }.call(this), function () {\n e.config.undoInterval = 5e3;\n }.call(this), function () {\n e.config.attachments = {\n preview: {\n presentation: \"gallery\",\n caption: {\n name: !0,\n size: !0\n }\n },\n file: {\n caption: {\n size: !0\n }\n }\n };\n }.call(this), function () {\n e.config.keyNames = {\n 8: \"backspace\",\n 9: \"tab\",\n 13: \"return\",\n 27: \"escape\",\n 37: \"left\",\n 39: \"right\",\n 46: \"delete\",\n 68: \"d\",\n 72: \"h\",\n 79: \"o\"\n };\n }.call(this), function () {\n e.config.input = {\n level2Enabled: !0,\n getLevel: function getLevel() {\n return this.level2Enabled && e.browser.supportsInputEvents ? 2 : 0;\n },\n pickFiles: function pickFiles(t) {\n var n;\n return n = e.makeElement(\"input\", {\n type: \"file\",\n multiple: !0,\n hidden: !0,\n id: this.fileInputId\n }), n.addEventListener(\"change\", function () {\n return t(n.files), e.removeNode(n);\n }), e.removeNode(document.getElementById(this.fileInputId)), document.body.appendChild(n), n.click();\n },\n fileInputId: \"trix-file-input-\" + Date.now().toString(16)\n };\n }.call(this), function () {}.call(this), function () {\n e.registerElement(\"trix-toolbar\", {\n defaultCSS: \"%t {\\n display: block;\\n}\\n\\n%t {\\n white-space: nowrap;\\n}\\n\\n%t [data-trix-dialog] {\\n display: none;\\n}\\n\\n%t [data-trix-dialog][data-trix-active] {\\n display: block;\\n}\\n\\n%t [data-trix-dialog] [data-trix-validate]:invalid {\\n background-color: #ffdddd;\\n}\",\n initialize: function initialize() {\n return \"\" === this.innerHTML ? this.innerHTML = e.config.toolbar.getDefaultHTML() : void 0;\n }\n });\n }.call(this), function () {\n var t = function t(_t7, e) {\n function i() {\n this.constructor = _t7;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t7[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t7.prototype = new i(), _t7.__super__ = e.prototype, _t7;\n },\n n = {}.hasOwnProperty,\n i = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\n\n e.ObjectView = function (n) {\n function o(t, e) {\n this.object = t, this.options = null != e ? e : {}, this.childViews = [], this.rootView = this;\n }\n\n return t(o, n), o.prototype.getNodes = function () {\n var t, e, n, i, o;\n\n for (null == this.nodes && (this.nodes = this.createNodes()), i = this.nodes, o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], o.push(n.cloneNode(!0));\n }\n\n return o;\n }, o.prototype.invalidate = function () {\n var t;\n return this.nodes = null, this.childViews = [], null != (t = this.parentView) ? t.invalidate() : void 0;\n }, o.prototype.invalidateViewForObject = function (t) {\n var e;\n return null != (e = this.findViewForObject(t)) ? e.invalidate() : void 0;\n }, o.prototype.findOrCreateCachedChildView = function (t, e) {\n var n;\n return (n = this.getCachedViewForObject(e)) ? this.recordChildView(n) : (n = this.createChildView.apply(this, arguments), this.cacheViewForObject(n, e)), n;\n }, o.prototype.createChildView = function (t, n, i) {\n var o;\n return null == i && (i = {}), n instanceof e.ObjectGroup && (i.viewClass = t, t = e.ObjectGroupView), o = new t(n, i), this.recordChildView(o);\n }, o.prototype.recordChildView = function (t) {\n return t.parentView = this, t.rootView = this.rootView, this.childViews.push(t), t;\n }, o.prototype.getAllChildViews = function () {\n var t, e, n, i, o;\n\n for (o = [], i = this.childViews, e = 0, n = i.length; n > e; e++) {\n t = i[e], o.push(t), o = o.concat(t.getAllChildViews());\n }\n\n return o;\n }, o.prototype.findElement = function () {\n return this.findElementForObject(this.object);\n }, o.prototype.findElementForObject = function (t) {\n var e;\n return (e = null != t ? t.id : void 0) ? this.rootView.element.querySelector(\"[data-trix-id='\" + e + \"']\") : void 0;\n }, o.prototype.findViewForObject = function (t) {\n var e, n, i, o;\n\n for (i = this.getAllChildViews(), e = 0, n = i.length; n > e; e++) {\n if (o = i[e], o.object === t) return o;\n }\n }, o.prototype.getViewCache = function () {\n return this.rootView !== this ? this.rootView.getViewCache() : this.isViewCachingEnabled() ? null != this.viewCache ? this.viewCache : this.viewCache = {} : void 0;\n }, o.prototype.isViewCachingEnabled = function () {\n return this.shouldCacheViews !== !1;\n }, o.prototype.enableViewCaching = function () {\n return this.shouldCacheViews = !0;\n }, o.prototype.disableViewCaching = function () {\n return this.shouldCacheViews = !1;\n }, o.prototype.getCachedViewForObject = function (t) {\n var e;\n return null != (e = this.getViewCache()) ? e[t.getCacheKey()] : void 0;\n }, o.prototype.cacheViewForObject = function (t, e) {\n var n;\n return null != (n = this.getViewCache()) ? n[e.getCacheKey()] = t : void 0;\n }, o.prototype.garbageCollectCachedViews = function () {\n var t, e, n, o, r, s;\n\n if (t = this.getViewCache()) {\n s = this.getAllChildViews().concat(this), n = function () {\n var t, e, n;\n\n for (n = [], t = 0, e = s.length; e > t; t++) {\n r = s[t], n.push(r.object.getCacheKey());\n }\n\n return n;\n }(), o = [];\n\n for (e in t) {\n i.call(n, e) < 0 && o.push(delete t[e]);\n }\n\n return o;\n }\n }, o;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function t(_t8, e) {\n function i() {\n this.constructor = _t8;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t8[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t8.prototype = new i(), _t8.__super__ = e.prototype, _t8;\n },\n n = {}.hasOwnProperty;\n\n e.ObjectGroupView = function (e) {\n function n() {\n n.__super__.constructor.apply(this, arguments), this.objectGroup = this.object, this.viewClass = this.options.viewClass, delete this.options.viewClass;\n }\n\n return t(n, e), n.prototype.getChildViews = function () {\n var t, e, n, i;\n if (!this.childViews.length) for (i = this.objectGroup.getObjects(), t = 0, e = i.length; e > t; t++) {\n n = i[t], this.findOrCreateCachedChildView(this.viewClass, n, this.options);\n }\n return this.childViews;\n }, n.prototype.createNodes = function () {\n var t, e, n, i, o, r, s, a, u;\n\n for (t = this.createContainerElement(), s = this.getChildViews(), e = 0, i = s.length; i > e; e++) {\n for (u = s[e], a = u.getNodes(), n = 0, o = a.length; o > n; n++) {\n r = a[n], t.appendChild(r);\n }\n }\n\n return [t];\n }, n.prototype.createContainerElement = function (t) {\n return null == t && (t = this.objectGroup.getDepth()), this.getChildViews()[0].createContainerElement(t);\n }, n;\n }(e.ObjectView);\n }.call(this), function () {\n var t = function t(_t9, e) {\n function i() {\n this.constructor = _t9;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t9[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t9.prototype = new i(), _t9.__super__ = e.prototype, _t9;\n },\n n = {}.hasOwnProperty;\n\n e.Controller = function (e) {\n function n() {\n return n.__super__.constructor.apply(this, arguments);\n }\n\n return t(n, e), n;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a = function a(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n u = function u(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n c.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n c = {}.hasOwnProperty,\n l = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\n\n t = e.findClosestElementFromNode, i = e.nodeIsEmptyTextNode, n = e.nodeIsBlockStartComment, o = e.normalizeSpaces, r = e.summarizeStringChange, s = e.tagName, e.MutationObserver = function (e) {\n function c(t) {\n this.element = t, this.didMutate = a(this.didMutate, this), this.observer = new window.MutationObserver(this.didMutate), this.start();\n }\n\n var _h, p, d, f;\n\n return u(c, e), p = \"data-trix-mutable\", d = \"[\" + p + \"]\", f = {\n attributes: !0,\n childList: !0,\n characterData: !0,\n characterDataOldValue: !0,\n subtree: !0\n }, c.prototype.start = function () {\n return this.reset(), this.observer.observe(this.element, f);\n }, c.prototype.stop = function () {\n return this.observer.disconnect();\n }, c.prototype.didMutate = function (t) {\n var e, n;\n return (e = this.mutations).push.apply(e, this.findSignificantMutations(t)), this.mutations.length ? (null != (n = this.delegate) && \"function\" == typeof n.elementDidMutate && n.elementDidMutate(this.getMutationSummary()), this.reset()) : void 0;\n }, c.prototype.reset = function () {\n return this.mutations = [];\n }, c.prototype.findSignificantMutations = function (t) {\n var e, n, i, o;\n\n for (o = [], e = 0, n = t.length; n > e; e++) {\n i = t[e], this.mutationIsSignificant(i) && o.push(i);\n }\n\n return o;\n }, c.prototype.mutationIsSignificant = function (t) {\n var e, n, i, o;\n if (this.nodeIsMutable(t.target)) return !1;\n\n for (o = this.nodesModifiedByMutation(t), e = 0, n = o.length; n > e; e++) {\n if (i = o[e], this.nodeIsSignificant(i)) return !0;\n }\n\n return !1;\n }, c.prototype.nodeIsSignificant = function (t) {\n return t !== this.element && !this.nodeIsMutable(t) && !i(t);\n }, c.prototype.nodeIsMutable = function (e) {\n return t(e, {\n matchingSelector: d\n });\n }, c.prototype.nodesModifiedByMutation = function (t) {\n var e;\n\n switch (e = [], t.type) {\n case \"attributes\":\n t.attributeName !== p && e.push(t.target);\n break;\n\n case \"characterData\":\n e.push(t.target.parentNode), e.push(t.target);\n break;\n\n case \"childList\":\n e.push.apply(e, t.addedNodes), e.push.apply(e, t.removedNodes);\n }\n\n return e;\n }, c.prototype.getMutationSummary = function () {\n return this.getTextMutationSummary();\n }, c.prototype.getTextMutationSummary = function () {\n var t, e, n, i, o, r, s, a, u, c, h;\n\n for (a = this.getTextChangesFromCharacterData(), n = a.additions, o = a.deletions, h = this.getTextChangesFromChildList(), u = h.additions, r = 0, s = u.length; s > r; r++) {\n e = u[r], l.call(n, e) < 0 && n.push(e);\n }\n\n return o.push.apply(o, h.deletions), c = {}, (t = n.join(\"\")) && (c.textAdded = t), (i = o.join(\"\")) && (c.textDeleted = i), c;\n }, c.prototype.getMutationsByType = function (t) {\n var e, n, i, o, r;\n\n for (o = this.mutations, r = [], e = 0, n = o.length; n > e; e++) {\n i = o[e], i.type === t && r.push(i);\n }\n\n return r;\n }, c.prototype.getTextChangesFromChildList = function () {\n var t, e, i, r, s, a, u, c, l, p, d;\n\n for (t = [], u = [], a = this.getMutationsByType(\"childList\"), e = 0, r = a.length; r > e; e++) {\n s = a[e], t.push.apply(t, s.addedNodes), u.push.apply(u, s.removedNodes);\n }\n\n return c = 0 === t.length && 1 === u.length && n(u[0]), c ? (p = [], d = [\"\\n\"]) : (p = _h(t), d = _h(u)), {\n additions: function () {\n var t, e, n;\n\n for (n = [], i = t = 0, e = p.length; e > t; i = ++t) {\n l = p[i], l !== d[i] && n.push(o(l));\n }\n\n return n;\n }(),\n deletions: function () {\n var t, e, n;\n\n for (n = [], i = t = 0, e = d.length; e > t; i = ++t) {\n l = d[i], l !== p[i] && n.push(o(l));\n }\n\n return n;\n }()\n };\n }, c.prototype.getTextChangesFromCharacterData = function () {\n var t, e, n, i, s, a, u, c;\n return e = this.getMutationsByType(\"characterData\"), e.length && (c = e[0], n = e[e.length - 1], s = o(c.oldValue), i = o(n.target.data), a = r(s, i), t = a.added, u = a.removed), {\n additions: t ? [t] : [],\n deletions: u ? [u] : []\n };\n }, _h = function h(t) {\n var e, n, i, o;\n\n for (null == t && (t = []), o = [], e = 0, n = t.length; n > e; e++) {\n switch (i = t[e], i.nodeType) {\n case Node.TEXT_NODE:\n o.push(i.data);\n break;\n\n case Node.ELEMENT_NODE:\n \"br\" === s(i) ? o.push(\"\\n\") : o.push.apply(o, _h(i.childNodes));\n }\n }\n\n return o;\n }, c;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function t(_t10, e) {\n function i() {\n this.constructor = _t10;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t10[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t10.prototype = new i(), _t10.__super__ = e.prototype, _t10;\n },\n n = {}.hasOwnProperty;\n\n e.FileVerificationOperation = function (e) {\n function n(t) {\n this.file = t;\n }\n\n return t(n, e), n.prototype.perform = function (t) {\n var e;\n return e = new FileReader(), e.onerror = function () {\n return t(!1);\n }, e.onload = function (n) {\n return function () {\n e.onerror = null;\n\n try {\n e.abort();\n } catch (i) {}\n\n return t(!0, n.file);\n };\n }(this), e.readAsArrayBuffer(this.file);\n }, n;\n }(e.Operation);\n }.call(this), function () {\n var t,\n n,\n i = function i(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n o.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty;\n\n t = e.handleEvent, n = e.innerElementIsActive, e.InputController = function (o) {\n function r(n) {\n var i;\n this.element = n, this.mutationObserver = new e.MutationObserver(this.element), this.mutationObserver.delegate = this;\n\n for (i in this.events) {\n t(i, {\n onElement: this.element,\n withCallback: this.handlerFor(i)\n });\n }\n }\n\n return i(r, o), r.prototype.events = {}, r.prototype.elementDidMutate = function () {}, r.prototype.editorWillSyncDocumentView = function () {\n return this.mutationObserver.stop();\n }, r.prototype.editorDidSyncDocumentView = function () {\n return this.mutationObserver.start();\n }, r.prototype.requestRender = function () {\n var t;\n return null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidRequestRender ? t.inputControllerDidRequestRender() : void 0;\n }, r.prototype.requestReparse = function () {\n var t;\n return null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidRequestReparse && t.inputControllerDidRequestReparse(), this.requestRender();\n }, r.prototype.attachFiles = function (t) {\n var n, i;\n return i = function () {\n var i, o, r;\n\n for (r = [], i = 0, o = t.length; o > i; i++) {\n n = t[i], r.push(new e.FileVerificationOperation(n));\n }\n\n return r;\n }(), Promise.all(i).then(function (t) {\n return function (e) {\n return t.handleInput(function () {\n var t, n;\n return null != (t = this.delegate) && t.inputControllerWillAttachFiles(), null != (n = this.responder) && n.insertFiles(e), this.requestRender();\n });\n };\n }(this));\n }, r.prototype.handlerFor = function (t) {\n return function (e) {\n return function (i) {\n return i.defaultPrevented ? void 0 : e.handleInput(function () {\n return n(this.element) ? void 0 : (this.eventName = t, this.events[t].call(this, i));\n });\n };\n }(this);\n }, r.prototype.handleInput = function (t) {\n var e, n;\n\n try {\n return null != (e = this.delegate) && e.inputControllerWillHandleInput(), t.call(this);\n } finally {\n null != (n = this.delegate) && n.inputControllerDidHandleInput();\n }\n }, r.prototype.createLinkHTML = function (t, e) {\n var n;\n return n = document.createElement(\"a\"), n.href = t, n.textContent = null != e ? e : t, n.outerHTML;\n }, r;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l,\n h,\n p,\n d,\n f = function f(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n g.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n g = {}.hasOwnProperty,\n m = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\n\n c = e.makeElement, l = e.objectsAreEqual, d = e.tagName, n = e.browser, a = e.keyEventIsKeyboardCommand, o = e.dataTransferIsWritable, i = e.dataTransferIsPlainText, u = e.config.keyNames, e.Level0InputController = function (n) {\n function s() {\n s.__super__.constructor.apply(this, arguments), this.resetInputSummary();\n }\n\n var d;\n return f(s, n), d = 0, s.prototype.setInputSummary = function (t) {\n var e, n;\n null == t && (t = {}), this.inputSummary.eventName = this.eventName;\n\n for (e in t) {\n n = t[e], this.inputSummary[e] = n;\n }\n\n return this.inputSummary;\n }, s.prototype.resetInputSummary = function () {\n return this.inputSummary = {};\n }, s.prototype.reset = function () {\n return this.resetInputSummary(), e.selectionChangeObserver.reset();\n }, s.prototype.elementDidMutate = function (t) {\n var e;\n return this.isComposing() ? null != (e = this.delegate) && \"function\" == typeof e.inputControllerDidAllowUnhandledInput ? e.inputControllerDidAllowUnhandledInput() : void 0 : this.handleInput(function () {\n return this.mutationIsSignificant(t) && (this.mutationIsExpected(t) ? this.requestRender() : this.requestReparse()), this.reset();\n });\n }, s.prototype.mutationIsExpected = function (t) {\n var e, n, i, o, r, s, a, u, c, l;\n return a = t.textAdded, u = t.textDeleted, this.inputSummary.preferDocument ? !0 : (e = null != a ? a === this.inputSummary.textAdded : !this.inputSummary.textAdded, n = null != u ? this.inputSummary.didDelete : !this.inputSummary.didDelete, c = (\"\\n\" === a || \" \\n\" === a) && !e, l = \"\\n\" === u && !n, s = c && !l || l && !c, s && (o = this.getSelectedRange()) && (i = c ? a.replace(/\\n$/, \"\").length || -1 : (null != a ? a.length : void 0) || 1, null != (r = this.responder) ? r.positionIsBlockBreak(o[1] + i) : void 0) ? !0 : e && n);\n }, s.prototype.mutationIsSignificant = function (t) {\n var e, n, i;\n return i = Object.keys(t).length > 0, e = \"\" === (null != (n = this.compositionInput) ? n.getEndData() : void 0), i || !e;\n }, s.prototype.events = {\n keydown: function keydown(t) {\n var n, i, o, r, s, c, l, h, p;\n\n if (this.isComposing() || this.resetInputSummary(), this.inputSummary.didInput = !0, r = u[t.keyCode]) {\n for (i = this.keys, h = [\"ctrl\", \"alt\", \"shift\", \"meta\"], o = 0, c = h.length; c > o; o++) {\n l = h[o], t[l + \"Key\"] && (\"ctrl\" === l && (l = \"control\"), i = null != i ? i[l] : void 0);\n }\n\n null != (null != i ? i[r] : void 0) && (this.setInputSummary({\n keyName: r\n }), e.selectionChangeObserver.reset(), i[r].call(this, t));\n }\n\n return a(t) && (n = String.fromCharCode(t.keyCode).toLowerCase()) && (s = function () {\n var e, n, i, o;\n\n for (i = [\"alt\", \"shift\"], o = [], e = 0, n = i.length; n > e; e++) {\n l = i[e], t[l + \"Key\"] && o.push(l);\n }\n\n return o;\n }(), s.push(n), null != (p = this.delegate) ? p.inputControllerDidReceiveKeyboardCommand(s) : void 0) ? t.preventDefault() : void 0;\n },\n keypress: function keypress(t) {\n var e, n, i;\n if (null == this.inputSummary.eventName && !t.metaKey && (!t.ctrlKey || t.altKey)) return (i = p(t)) ? (null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.insertString(i), this.setInputSummary({\n textAdded: i,\n didDelete: this.selectionIsExpanded()\n })) : void 0;\n },\n textInput: function textInput(t) {\n var e, n, i, o;\n return e = t.data, o = this.inputSummary.textAdded, o && o !== e && o.toUpperCase() === e ? (n = this.getSelectedRange(), this.setSelectedRange([n[0], n[1] + o.length]), null != (i = this.responder) && i.insertString(e), this.setInputSummary({\n textAdded: e\n }), this.setSelectedRange(n)) : void 0;\n },\n dragenter: function dragenter(t) {\n return t.preventDefault();\n },\n dragstart: function dragstart(t) {\n var e, n;\n return n = t.target, this.serializeSelectionToDataTransfer(t.dataTransfer), this.draggedRange = this.getSelectedRange(), null != (e = this.delegate) && \"function\" == typeof e.inputControllerDidStartDrag ? e.inputControllerDidStartDrag() : void 0;\n },\n dragover: function dragover(t) {\n var e, n;\n return !this.draggedRange && !this.canAcceptDataTransfer(t.dataTransfer) || (t.preventDefault(), e = {\n x: t.clientX,\n y: t.clientY\n }, l(e, this.draggingPoint)) ? void 0 : (this.draggingPoint = e, null != (n = this.delegate) && \"function\" == typeof n.inputControllerDidReceiveDragOverPoint ? n.inputControllerDidReceiveDragOverPoint(this.draggingPoint) : void 0);\n },\n dragend: function dragend() {\n var t;\n return null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidCancelDrag && t.inputControllerDidCancelDrag(), this.draggedRange = null, this.draggingPoint = null;\n },\n drop: function drop(t) {\n var n, i, o, r, s, a, u, c, l;\n return t.preventDefault(), o = null != (s = t.dataTransfer) ? s.files : void 0, r = {\n x: t.clientX,\n y: t.clientY\n }, null != (a = this.responder) && a.setLocationRangeFromPointRange(r), (null != o ? o.length : void 0) ? this.attachFiles(o) : this.draggedRange ? (null != (u = this.delegate) && u.inputControllerWillMoveText(), null != (c = this.responder) && c.moveTextFromRange(this.draggedRange), this.draggedRange = null, this.requestRender()) : (i = t.dataTransfer.getData(\"application/x-trix-document\")) && (n = e.Document.fromJSONString(i), null != (l = this.responder) && l.insertDocument(n), this.requestRender()), this.draggedRange = null, this.draggingPoint = null;\n },\n cut: function cut(t) {\n var e, n;\n return (null != (e = this.responder) ? e.selectionIsExpanded() : void 0) && (this.serializeSelectionToDataTransfer(t.clipboardData) && t.preventDefault(), null != (n = this.delegate) && n.inputControllerWillCutText(), this.deleteInDirection(\"backward\"), t.defaultPrevented) ? this.requestRender() : void 0;\n },\n copy: function copy(t) {\n var e;\n return (null != (e = this.responder) ? e.selectionIsExpanded() : void 0) && this.serializeSelectionToDataTransfer(t.clipboardData) ? t.preventDefault() : void 0;\n },\n paste: function paste(t) {\n var n, o, s, a, u, c, l, p, f, g, v, y, b, A, C, x, w, E, S, R, k, D, L;\n return n = null != (p = t.clipboardData) ? p : t.testClipboardData, l = {\n clipboard: n\n }, null == n || h(t) ? void this.getPastedHTMLUsingHiddenElement(function (t) {\n return function (e) {\n var n, i, o;\n return l.type = \"text/html\", l.html = e, null != (n = t.delegate) && n.inputControllerWillPaste(l), null != (i = t.responder) && i.insertHTML(l.html), t.requestRender(), null != (o = t.delegate) ? o.inputControllerDidPaste(l) : void 0;\n };\n }(this)) : ((a = n.getData(\"URL\")) ? (l.type = \"text/html\", L = (c = n.getData(\"public.url-name\")) ? e.squishBreakableWhitespace(c).trim() : a, l.html = this.createLinkHTML(a, L), null != (f = this.delegate) && f.inputControllerWillPaste(l), this.setInputSummary({\n textAdded: L,\n didDelete: this.selectionIsExpanded()\n }), null != (C = this.responder) && C.insertHTML(l.html), this.requestRender(), null != (x = this.delegate) && x.inputControllerDidPaste(l)) : i(n) ? (l.type = \"text/plain\", l.string = n.getData(\"text/plain\"), null != (w = this.delegate) && w.inputControllerWillPaste(l), this.setInputSummary({\n textAdded: l.string,\n didDelete: this.selectionIsExpanded()\n }), null != (E = this.responder) && E.insertString(l.string), this.requestRender(), null != (S = this.delegate) && S.inputControllerDidPaste(l)) : (u = n.getData(\"text/html\")) ? (l.type = \"text/html\", l.html = u, null != (R = this.delegate) && R.inputControllerWillPaste(l), null != (k = this.responder) && k.insertHTML(l.html), this.requestRender(), null != (D = this.delegate) && D.inputControllerDidPaste(l)) : m.call(n.types, \"Files\") >= 0 && (s = null != (g = n.items) && null != (v = g[0]) && \"function\" == typeof v.getAsFile ? v.getAsFile() : void 0) && (!s.name && (o = r(s)) && (s.name = \"pasted-file-\" + ++d + \".\" + o), l.type = \"File\", l.file = s, null != (y = this.delegate) && y.inputControllerWillAttachFiles(), null != (b = this.responder) && b.insertFile(l.file), this.requestRender(), null != (A = this.delegate) && A.inputControllerDidPaste(l)), t.preventDefault());\n },\n compositionstart: function compositionstart(t) {\n return this.getCompositionInput().start(t.data);\n },\n compositionupdate: function compositionupdate(t) {\n return this.getCompositionInput().update(t.data);\n },\n compositionend: function compositionend(t) {\n return this.getCompositionInput().end(t.data);\n },\n beforeinput: function beforeinput() {\n return this.inputSummary.didInput = !0;\n },\n input: function input(t) {\n return this.inputSummary.didInput = !0, t.stopPropagation();\n }\n }, s.prototype.keys = {\n backspace: function backspace(t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"backward\", t);\n },\n \"delete\": function _delete(t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"forward\", t);\n },\n \"return\": function _return() {\n var t, e;\n return this.setInputSummary({\n preferDocument: !0\n }), null != (t = this.delegate) && t.inputControllerWillPerformTyping(), null != (e = this.responder) ? e.insertLineBreak() : void 0;\n },\n tab: function tab(t) {\n var e, n;\n return (null != (e = this.responder) ? e.canIncreaseNestingLevel() : void 0) ? (null != (n = this.responder) && n.increaseNestingLevel(), this.requestRender(), t.preventDefault()) : void 0;\n },\n left: function left(t) {\n var e;\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), null != (e = this.responder) ? e.moveCursorInDirection(\"backward\") : void 0) : void 0;\n },\n right: function right(t) {\n var e;\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), null != (e = this.responder) ? e.moveCursorInDirection(\"forward\") : void 0) : void 0;\n },\n control: {\n d: function d(t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"forward\", t);\n },\n h: function h(t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"backward\", t);\n },\n o: function o(t) {\n var e, n;\n return t.preventDefault(), null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.insertString(\"\\n\", {\n updatePosition: !1\n }), this.requestRender();\n }\n },\n shift: {\n \"return\": function _return(t) {\n var e, n;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.insertString(\"\\n\"), this.requestRender(), t.preventDefault();\n },\n tab: function tab(t) {\n var e, n;\n return (null != (e = this.responder) ? e.canDecreaseNestingLevel() : void 0) ? (null != (n = this.responder) && n.decreaseNestingLevel(), this.requestRender(), t.preventDefault()) : void 0;\n },\n left: function left(t) {\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), this.expandSelectionInDirection(\"backward\")) : void 0;\n },\n right: function right(t) {\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), this.expandSelectionInDirection(\"forward\")) : void 0;\n }\n },\n alt: {\n backspace: function backspace() {\n var t;\n return this.setInputSummary({\n preferDocument: !1\n }), null != (t = this.delegate) ? t.inputControllerWillPerformTyping() : void 0;\n }\n },\n meta: {\n backspace: function backspace() {\n var t;\n return this.setInputSummary({\n preferDocument: !1\n }), null != (t = this.delegate) ? t.inputControllerWillPerformTyping() : void 0;\n }\n }\n }, s.prototype.getCompositionInput = function () {\n return this.isComposing() ? this.compositionInput : this.compositionInput = new t(this);\n }, s.prototype.isComposing = function () {\n return null != this.compositionInput && !this.compositionInput.isEnded();\n }, s.prototype.deleteInDirection = function (t, e) {\n var n;\n return (null != (n = this.responder) ? n.deleteInDirection(t) : void 0) !== !1 ? this.setInputSummary({\n didDelete: !0\n }) : e ? (e.preventDefault(), this.requestRender()) : void 0;\n }, s.prototype.serializeSelectionToDataTransfer = function (t) {\n var n, i;\n if (o(t)) return n = null != (i = this.responder) ? i.getSelectedDocument().toSerializableDocument() : void 0, t.setData(\"application/x-trix-document\", JSON.stringify(n)), t.setData(\"text/html\", e.DocumentView.render(n).innerHTML), t.setData(\"text/plain\", n.toString().replace(/\\n$/, \"\")), !0;\n }, s.prototype.canAcceptDataTransfer = function (t) {\n var e, n, i, o, r, s;\n\n for (s = {}, o = null != (i = null != t ? t.types : void 0) ? i : [], e = 0, n = o.length; n > e; e++) {\n r = o[e], s[r] = !0;\n }\n\n return s.Files || s[\"application/x-trix-document\"] || s[\"text/html\"] || s[\"text/plain\"];\n }, s.prototype.getPastedHTMLUsingHiddenElement = function (t) {\n var n, i, o;\n return i = this.getSelectedRange(), o = {\n position: \"absolute\",\n left: window.pageXOffset + \"px\",\n top: window.pageYOffset + \"px\",\n opacity: 0\n }, n = c({\n style: o,\n tagName: \"div\",\n editable: !0\n }), document.body.appendChild(n), n.focus(), requestAnimationFrame(function (o) {\n return function () {\n var r;\n return r = n.innerHTML, e.removeNode(n), o.setSelectedRange(i), t(r);\n };\n }(this));\n }, s.proxyMethod(\"responder?.getSelectedRange\"), s.proxyMethod(\"responder?.setSelectedRange\"), s.proxyMethod(\"responder?.expandSelectionInDirection\"), s.proxyMethod(\"responder?.selectionIsInCursorTarget\"), s.proxyMethod(\"responder?.selectionIsExpanded\"), s;\n }(e.InputController), r = function r(t) {\n var e, n;\n return null != (e = t.type) && null != (n = e.match(/\\/(\\w+)$/)) ? n[1] : void 0;\n }, s = null != (\"function\" == typeof \" \".codePointAt ? \" \".codePointAt(0) : void 0), p = function p(t) {\n var n;\n return t.key && s && t.key.codePointAt(0) === t.keyCode ? t.key : (null === t.which ? n = t.keyCode : 0 !== t.which && 0 !== t.charCode && (n = t.charCode), null != n && \"escape\" !== u[n] ? e.UTF16String.fromCodepoints([n]).toString() : void 0);\n }, h = function h(t) {\n var e, n, i, o, r, s, a, u, c, l;\n\n if (u = t.clipboardData) {\n if (m.call(u.types, \"text/html\") >= 0) {\n for (c = u.types, i = 0, s = c.length; s > i; i++) {\n if (l = c[i], e = /^CorePasteboardFlavorType/.test(l), n = /^dyn\\./.test(l) && u.getData(l), a = e || n) return !0;\n }\n\n return !1;\n }\n\n return o = m.call(u.types, \"com.apple.webarchive\") >= 0, r = m.call(u.types, \"com.apple.flat-rtfd\") >= 0, o || r;\n }\n }, t = function (t) {\n function e(t) {\n var e;\n this.inputController = t, e = this.inputController, this.responder = e.responder, this.delegate = e.delegate, this.inputSummary = e.inputSummary, this.data = {};\n }\n\n return f(e, t), e.prototype.start = function (t) {\n var e, n;\n return this.data.start = t, this.isSignificant() ? (\"keypress\" === this.inputSummary.eventName && this.inputSummary.textAdded && null != (e = this.responder) && e.deleteInDirection(\"left\"), this.selectionIsExpanded() || (this.insertPlaceholder(), this.requestRender()), this.range = null != (n = this.responder) ? n.getSelectedRange() : void 0) : void 0;\n }, e.prototype.update = function (t) {\n var e;\n return this.data.update = t, this.isSignificant() && (e = this.selectPlaceholder()) ? (this.forgetPlaceholder(), this.range = e) : void 0;\n }, e.prototype.end = function (t) {\n var e, n, i, o;\n return this.data.end = t, this.isSignificant() ? (this.forgetPlaceholder(), this.canApplyToDocument() ? (this.setInputSummary({\n preferDocument: !0,\n didInput: !1\n }), null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.setSelectedRange(this.range), null != (i = this.responder) && i.insertString(this.data.end), null != (o = this.responder) ? o.setSelectedRange(this.range[0] + this.data.end.length) : void 0) : null != this.data.start || null != this.data.update ? (this.requestReparse(), this.inputController.reset()) : void 0) : this.inputController.reset();\n }, e.prototype.getEndData = function () {\n return this.data.end;\n }, e.prototype.isEnded = function () {\n return null != this.getEndData();\n }, e.prototype.isSignificant = function () {\n return n.composesExistingText ? this.inputSummary.didInput : !0;\n }, e.prototype.canApplyToDocument = function () {\n var t, e;\n return 0 === (null != (t = this.data.start) ? t.length : void 0) && (null != (e = this.data.end) ? e.length : void 0) > 0 && null != this.range;\n }, e.proxyMethod(\"inputController.setInputSummary\"), e.proxyMethod(\"inputController.requestRender\"), e.proxyMethod(\"inputController.requestReparse\"), e.proxyMethod(\"responder?.selectionIsExpanded\"), e.proxyMethod(\"responder?.insertPlaceholder\"), e.proxyMethod(\"responder?.selectPlaceholder\"), e.proxyMethod(\"responder?.forgetPlaceholder\"), e;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function o(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n r = function r(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n s.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty,\n a = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\n\n t = e.dataTransferIsPlainText, n = e.keyEventIsKeyboardCommand, i = e.objectsAreEqual, e.Level2InputController = function (s) {\n function u() {\n return this.render = o(this.render, this), u.__super__.constructor.apply(this, arguments);\n }\n\n var c, l, h, p, d, f;\n return r(u, s), u.prototype.elementDidMutate = function () {\n var t;\n return this.scheduledRender ? this.composing && null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidAllowUnhandledInput ? t.inputControllerDidAllowUnhandledInput() : void 0 : this.reparse();\n }, u.prototype.scheduleRender = function () {\n return null != this.scheduledRender ? this.scheduledRender : this.scheduledRender = requestAnimationFrame(this.render);\n }, u.prototype.render = function () {\n var t;\n return cancelAnimationFrame(this.scheduledRender), this.scheduledRender = null, this.composing || null != (t = this.delegate) && t.render(), \"function\" == typeof this.afterRender && this.afterRender(), this.afterRender = null;\n }, u.prototype.reparse = function () {\n var t;\n return null != (t = this.delegate) ? t.reparse() : void 0;\n }, u.prototype.events = {\n keydown: function keydown(t) {\n var e, i, o, r;\n\n if (n(t)) {\n if (e = l(t), null != (r = this.delegate) ? r.inputControllerDidReceiveKeyboardCommand(e) : void 0) return t.preventDefault();\n } else if (o = t.key, t.altKey && (o += \"+Alt\"), t.shiftKey && (o += \"+Shift\"), i = this.keys[o]) return this.withEvent(t, i);\n },\n paste: function paste(t) {\n var e, n, i, o, r, s, a, u, c;\n return h(t) ? (t.preventDefault(), this.attachFiles(t.clipboardData.files)) : p(t) ? (t.preventDefault(), n = {\n type: \"text/plain\",\n string: t.clipboardData.getData(\"text/plain\")\n }, null != (i = this.delegate) && i.inputControllerWillPaste(n), null != (o = this.responder) && o.insertString(n.string), this.render(), null != (r = this.delegate) ? r.inputControllerDidPaste(n) : void 0) : (e = null != (s = t.clipboardData) ? s.getData(\"URL\") : void 0) ? (t.preventDefault(), n = {\n type: \"text/html\",\n html: this.createLinkHTML(e)\n }, null != (a = this.delegate) && a.inputControllerWillPaste(n), null != (u = this.responder) && u.insertHTML(n.html), this.render(), null != (c = this.delegate) ? c.inputControllerDidPaste(n) : void 0) : void 0;\n },\n beforeinput: function beforeinput(t) {\n var e;\n return (e = this.inputTypes[t.inputType]) ? (this.withEvent(t, e), this.scheduleRender()) : void 0;\n },\n input: function input() {\n return e.selectionChangeObserver.reset();\n },\n dragstart: function dragstart(t) {\n var e, n;\n return (null != (e = this.responder) ? e.selectionContainsAttachments() : void 0) ? (t.dataTransfer.setData(\"application/x-trix-dragging\", !0), this.dragging = {\n range: null != (n = this.responder) ? n.getSelectedRange() : void 0,\n point: d(t)\n }) : void 0;\n },\n dragenter: function dragenter(t) {\n return c(t) ? t.preventDefault() : void 0;\n },\n dragover: function dragover(t) {\n var e, n;\n\n if (this.dragging) {\n if (t.preventDefault(), e = d(t), !i(e, this.dragging.point)) return this.dragging.point = e, null != (n = this.responder) ? n.setLocationRangeFromPointRange(e) : void 0;\n } else if (c(t)) return t.preventDefault();\n },\n drop: function drop(t) {\n var e, n, i, o;\n return this.dragging ? (t.preventDefault(), null != (n = this.delegate) && n.inputControllerWillMoveText(), null != (i = this.responder) && i.moveTextFromRange(this.dragging.range), this.dragging = null, this.scheduleRender()) : c(t) ? (t.preventDefault(), e = d(t), null != (o = this.responder) && o.setLocationRangeFromPointRange(e), this.attachFiles(t.dataTransfer.files)) : void 0;\n },\n dragend: function dragend() {\n var t;\n return this.dragging ? (null != (t = this.responder) && t.setSelectedRange(this.dragging.range), this.dragging = null) : void 0;\n },\n compositionend: function compositionend() {\n return this.composing ? (this.composing = !1, this.scheduleRender()) : void 0;\n }\n }, u.prototype.keys = {\n ArrowLeft: function ArrowLeft() {\n var t, e;\n return (null != (t = this.responder) ? t.shouldManageMovingCursorInDirection(\"backward\") : void 0) ? (this.event.preventDefault(), null != (e = this.responder) ? e.moveCursorInDirection(\"backward\") : void 0) : void 0;\n },\n ArrowRight: function ArrowRight() {\n var t, e;\n return (null != (t = this.responder) ? t.shouldManageMovingCursorInDirection(\"forward\") : void 0) ? (this.event.preventDefault(), null != (e = this.responder) ? e.moveCursorInDirection(\"forward\") : void 0) : void 0;\n },\n Backspace: function Backspace() {\n var t, e, n;\n return (null != (t = this.responder) ? t.shouldManageDeletingInDirection(\"backward\") : void 0) ? (this.event.preventDefault(), null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.deleteInDirection(\"backward\"), this.render()) : void 0;\n },\n Tab: function Tab() {\n var t, e;\n return (null != (t = this.responder) ? t.canIncreaseNestingLevel() : void 0) ? (this.event.preventDefault(), null != (e = this.responder) && e.increaseNestingLevel(), this.render()) : void 0;\n },\n \"Tab+Shift\": function TabShift() {\n var t, e;\n return (null != (t = this.responder) ? t.canDecreaseNestingLevel() : void 0) ? (this.event.preventDefault(), null != (e = this.responder) && e.decreaseNestingLevel(), this.render()) : void 0;\n }\n }, u.prototype.inputTypes = {\n deleteByComposition: function deleteByComposition() {\n return this.deleteInDirection(\"backward\", {\n recordUndoEntry: !1\n });\n },\n deleteByCut: function deleteByCut() {\n return this.deleteInDirection(\"backward\");\n },\n deleteByDrag: function deleteByDrag() {\n return this.event.preventDefault(), this.withTargetDOMRange(function () {\n var t;\n return this.deleteByDragRange = null != (t = this.responder) ? t.getSelectedRange() : void 0;\n });\n },\n deleteCompositionText: function deleteCompositionText() {\n return this.deleteInDirection(\"backward\", {\n recordUndoEntry: !1\n });\n },\n deleteContent: function deleteContent() {\n return this.deleteInDirection(\"backward\");\n },\n deleteContentBackward: function deleteContentBackward() {\n return this.deleteInDirection(\"backward\");\n },\n deleteContentForward: function deleteContentForward() {\n return this.deleteInDirection(\"forward\");\n },\n deleteEntireSoftLine: function deleteEntireSoftLine() {\n return this.deleteInDirection(\"forward\");\n },\n deleteHardLineBackward: function deleteHardLineBackward() {\n return this.deleteInDirection(\"backward\");\n },\n deleteHardLineForward: function deleteHardLineForward() {\n return this.deleteInDirection(\"forward\");\n },\n deleteSoftLineBackward: function deleteSoftLineBackward() {\n return this.deleteInDirection(\"backward\");\n },\n deleteSoftLineForward: function deleteSoftLineForward() {\n return this.deleteInDirection(\"forward\");\n },\n deleteWordBackward: function deleteWordBackward() {\n return this.deleteInDirection(\"backward\");\n },\n deleteWordForward: function deleteWordForward() {\n return this.deleteInDirection(\"forward\");\n },\n formatBackColor: function formatBackColor() {\n return this.activateAttributeIfSupported(\"backgroundColor\", this.event.data);\n },\n formatBold: function formatBold() {\n return this.toggleAttributeIfSupported(\"bold\");\n },\n formatFontColor: function formatFontColor() {\n return this.activateAttributeIfSupported(\"color\", this.event.data);\n },\n formatFontName: function formatFontName() {\n return this.activateAttributeIfSupported(\"font\", this.event.data);\n },\n formatIndent: function formatIndent() {\n var t;\n return (null != (t = this.responder) ? t.canIncreaseNestingLevel() : void 0) ? this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.increaseNestingLevel() : void 0;\n }) : void 0;\n },\n formatItalic: function formatItalic() {\n return this.toggleAttributeIfSupported(\"italic\");\n },\n formatJustifyCenter: function formatJustifyCenter() {\n return this.toggleAttributeIfSupported(\"justifyCenter\");\n },\n formatJustifyFull: function formatJustifyFull() {\n return this.toggleAttributeIfSupported(\"justifyFull\");\n },\n formatJustifyLeft: function formatJustifyLeft() {\n return this.toggleAttributeIfSupported(\"justifyLeft\");\n },\n formatJustifyRight: function formatJustifyRight() {\n return this.toggleAttributeIfSupported(\"justifyRight\");\n },\n formatOutdent: function formatOutdent() {\n var t;\n return (null != (t = this.responder) ? t.canDecreaseNestingLevel() : void 0) ? this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.decreaseNestingLevel() : void 0;\n }) : void 0;\n },\n formatRemove: function formatRemove() {\n return this.withTargetDOMRange(function () {\n var t, e, n, i;\n i = [];\n\n for (t in null != (e = this.responder) ? e.getCurrentAttributes() : void 0) {\n i.push(null != (n = this.responder) ? n.removeCurrentAttribute(t) : void 0);\n }\n\n return i;\n });\n },\n formatSetBlockTextDirection: function formatSetBlockTextDirection() {\n return this.activateAttributeIfSupported(\"blockDir\", this.event.data);\n },\n formatSetInlineTextDirection: function formatSetInlineTextDirection() {\n return this.activateAttributeIfSupported(\"textDir\", this.event.data);\n },\n formatStrikeThrough: function formatStrikeThrough() {\n return this.toggleAttributeIfSupported(\"strike\");\n },\n formatSubscript: function formatSubscript() {\n return this.toggleAttributeIfSupported(\"sub\");\n },\n formatSuperscript: function formatSuperscript() {\n return this.toggleAttributeIfSupported(\"sup\");\n },\n formatUnderline: function formatUnderline() {\n return this.toggleAttributeIfSupported(\"underline\");\n },\n historyRedo: function historyRedo() {\n var t;\n return null != (t = this.delegate) ? t.inputControllerWillPerformRedo() : void 0;\n },\n historyUndo: function historyUndo() {\n var t;\n return null != (t = this.delegate) ? t.inputControllerWillPerformUndo() : void 0;\n },\n insertCompositionText: function insertCompositionText() {\n return this.composing = !0, this.insertString(this.event.data);\n },\n insertFromComposition: function insertFromComposition() {\n return this.composing = !1, this.insertString(this.event.data);\n },\n insertFromDrop: function insertFromDrop() {\n var t, e;\n return (t = this.deleteByDragRange) ? (this.deleteByDragRange = null, null != (e = this.delegate) && e.inputControllerWillMoveText(), this.withTargetDOMRange(function () {\n var e;\n return null != (e = this.responder) ? e.moveTextFromRange(t) : void 0;\n })) : void 0;\n },\n insertFromPaste: function insertFromPaste() {\n var n, i, o, r, s, a, u, c, l, h, p;\n return n = this.event.dataTransfer, s = {\n dataTransfer: n\n }, (i = n.getData(\"URL\")) ? (this.event.preventDefault(), s.type = \"text/html\", p = (r = n.getData(\"public.url-name\")) ? e.squishBreakableWhitespace(r).trim() : i, s.html = this.createLinkHTML(i, p), null != (a = this.delegate) && a.inputControllerWillPaste(s), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertHTML(s.html) : void 0;\n }), this.afterRender = function (t) {\n return function () {\n var e;\n return null != (e = t.delegate) ? e.inputControllerDidPaste(s) : void 0;\n };\n }(this)) : t(n) ? (s.type = \"text/plain\", s.string = n.getData(\"text/plain\"), null != (u = this.delegate) && u.inputControllerWillPaste(s), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertString(s.string) : void 0;\n }), this.afterRender = function (t) {\n return function () {\n var e;\n return null != (e = t.delegate) ? e.inputControllerDidPaste(s) : void 0;\n };\n }(this)) : (o = n.getData(\"text/html\")) ? (this.event.preventDefault(), s.type = \"text/html\", s.html = o, null != (c = this.delegate) && c.inputControllerWillPaste(s), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertHTML(s.html) : void 0;\n }), this.afterRender = function (t) {\n return function () {\n var e;\n return null != (e = t.delegate) ? e.inputControllerDidPaste(s) : void 0;\n };\n }(this)) : (null != (l = n.files) ? l.length : void 0) ? (s.type = \"File\", s.file = n.files[0], null != (h = this.delegate) && h.inputControllerWillPaste(s), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertFile(s.file) : void 0;\n }), this.afterRender = function (t) {\n return function () {\n var e;\n return null != (e = t.delegate) ? e.inputControllerDidPaste(s) : void 0;\n };\n }(this)) : void 0;\n },\n insertFromYank: function insertFromYank() {\n return this.insertString(this.event.data);\n },\n insertLineBreak: function insertLineBreak() {\n return this.insertString(\"\\n\");\n },\n insertLink: function insertLink() {\n return this.activateAttributeIfSupported(\"href\", this.event.data);\n },\n insertOrderedList: function insertOrderedList() {\n return this.toggleAttributeIfSupported(\"number\");\n },\n insertParagraph: function insertParagraph() {\n var t;\n return null != (t = this.delegate) && t.inputControllerWillPerformTyping(), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertLineBreak() : void 0;\n });\n },\n insertReplacementText: function insertReplacementText() {\n return this.insertString(this.event.dataTransfer.getData(\"text/plain\"), {\n updatePosition: !1\n });\n },\n insertText: function insertText() {\n var t, e;\n return this.insertString(null != (t = this.event.data) ? t : null != (e = this.event.dataTransfer) ? e.getData(\"text/plain\") : void 0);\n },\n insertTranspose: function insertTranspose() {\n return this.insertString(this.event.data);\n },\n insertUnorderedList: function insertUnorderedList() {\n return this.toggleAttributeIfSupported(\"bullet\");\n }\n }, u.prototype.insertString = function (t, e) {\n var n;\n return null == t && (t = \"\"), null != (n = this.delegate) && n.inputControllerWillPerformTyping(), this.withTargetDOMRange(function () {\n var n;\n return null != (n = this.responder) ? n.insertString(t, e) : void 0;\n });\n }, u.prototype.toggleAttributeIfSupported = function (t) {\n var n;\n return a.call(e.getAllAttributeNames(), t) >= 0 ? (null != (n = this.delegate) && n.inputControllerWillPerformFormatting(t), this.withTargetDOMRange(function () {\n var e;\n return null != (e = this.responder) ? e.toggleCurrentAttribute(t) : void 0;\n })) : void 0;\n }, u.prototype.activateAttributeIfSupported = function (t, n) {\n var i;\n return a.call(e.getAllAttributeNames(), t) >= 0 ? (null != (i = this.delegate) && i.inputControllerWillPerformFormatting(t), this.withTargetDOMRange(function () {\n var e;\n return null != (e = this.responder) ? e.setCurrentAttribute(t, n) : void 0;\n })) : void 0;\n }, u.prototype.deleteInDirection = function (t, e) {\n var n, i, o, r;\n return o = (null != e ? e : {\n recordUndoEntry: !0\n }).recordUndoEntry, o && null != (r = this.delegate) && r.inputControllerWillPerformTyping(), i = function (e) {\n return function () {\n var n;\n return null != (n = e.responder) ? n.deleteInDirection(t) : void 0;\n };\n }(this), (n = this.getTargetDOMRange({\n minLength: 2\n })) ? this.withTargetDOMRange(n, i) : i();\n }, u.prototype.withTargetDOMRange = function (t, n) {\n var i;\n return \"function\" == typeof t && (n = t, t = this.getTargetDOMRange()), t ? null != (i = this.responder) ? i.withTargetDOMRange(t, n.bind(this)) : void 0 : (e.selectionChangeObserver.reset(), n.call(this));\n }, u.prototype.getTargetDOMRange = function (t) {\n var e, n, i, o;\n return i = (null != t ? t : {\n minLength: 0\n }).minLength, (o = \"function\" == typeof (e = this.event).getTargetRanges ? e.getTargetRanges() : void 0) && o.length && (n = f(o[0]), 0 === i || n.toString().length >= i) ? n : void 0;\n }, f = function f(t) {\n var e;\n return e = document.createRange(), e.setStart(t.startContainer, t.startOffset), e.setEnd(t.endContainer, t.endOffset), e;\n }, u.prototype.withEvent = function (t, e) {\n var n;\n this.event = t;\n\n try {\n n = e.call(this);\n } finally {\n this.event = null;\n }\n\n return n;\n }, c = function c(t) {\n var e, n;\n return a.call(null != (e = null != (n = t.dataTransfer) ? n.types : void 0) ? e : [], \"Files\") >= 0;\n }, h = function h(t) {\n var e;\n return (e = t.clipboardData) ? a.call(e.types, \"Files\") >= 0 && 1 === e.types.length && e.files.length >= 1 : void 0;\n }, p = function p(t) {\n var e;\n return (e = t.clipboardData) ? a.call(e.types, \"text/plain\") >= 0 && 1 === e.types.length : void 0;\n }, l = function l(t) {\n var e;\n return e = [], t.altKey && e.push(\"alt\"), t.shiftKey && e.push(\"shift\"), e.push(t.key), e;\n }, d = function d(t) {\n return {\n x: t.clientX,\n y: t.clientY\n };\n }, u;\n }(e.InputController);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c = function c(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n l = function l(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n h.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n h = {}.hasOwnProperty;\n\n n = e.defer, i = e.handleEvent, s = e.makeElement, u = e.tagName, a = e.config, r = a.lang, t = a.css, o = a.keyNames, e.AttachmentEditorController = function (a) {\n function h(t, e, n, i) {\n this.attachmentPiece = t, this.element = e, this.container = n, this.options = null != i ? i : {}, this.didBlurCaption = c(this.didBlurCaption, this), this.didChangeCaption = c(this.didChangeCaption, this), this.didInputCaption = c(this.didInputCaption, this), this.didKeyDownCaption = c(this.didKeyDownCaption, this), this.didClickActionButton = c(this.didClickActionButton, this), this.didClickToolbar = c(this.didClickToolbar, this), this.attachment = this.attachmentPiece.attachment, \"a\" === u(this.element) && (this.element = this.element.firstChild), this.install();\n }\n\n var p;\n return l(h, a), p = function p(t) {\n return function () {\n var e;\n return e = t.apply(this, arguments), e[\"do\"](), null == this.undos && (this.undos = []), this.undos.push(e.undo);\n };\n }, h.prototype.install = function () {\n return this.makeElementMutable(), this.addToolbar(), this.attachment.isPreviewable() ? this.installCaptionEditor() : void 0;\n }, h.prototype.uninstall = function () {\n var t, e;\n\n for (this.savePendingCaption(); e = this.undos.pop();) {\n e();\n }\n\n return null != (t = this.delegate) ? t.didUninstallAttachmentEditor(this) : void 0;\n }, h.prototype.savePendingCaption = function () {\n var t, e, n;\n return null != this.pendingCaption ? (t = this.pendingCaption, this.pendingCaption = null, t ? null != (e = this.delegate) && \"function\" == typeof e.attachmentEditorDidRequestUpdatingAttributesForAttachment ? e.attachmentEditorDidRequestUpdatingAttributesForAttachment({\n caption: t\n }, this.attachment) : void 0 : null != (n = this.delegate) && \"function\" == typeof n.attachmentEditorDidRequestRemovingAttributeForAttachment ? n.attachmentEditorDidRequestRemovingAttributeForAttachment(\"caption\", this.attachment) : void 0) : void 0;\n }, h.prototype.makeElementMutable = p(function () {\n return {\n \"do\": function (t) {\n return function () {\n return t.element.dataset.trixMutable = !0;\n };\n }(this),\n undo: function (t) {\n return function () {\n return delete t.element.dataset.trixMutable;\n };\n }(this)\n };\n }), h.prototype.addToolbar = p(function () {\n var n;\n return n = s({\n tagName: \"div\",\n className: t.attachmentToolbar,\n data: {\n trixMutable: !0\n },\n childNodes: s({\n tagName: \"div\",\n className: \"trix-button-row\",\n childNodes: s({\n tagName: \"span\",\n className: \"trix-button-group trix-button-group--actions\",\n childNodes: s({\n tagName: \"button\",\n className: \"trix-button trix-button--remove\",\n textContent: r.remove,\n attributes: {\n title: r.remove\n },\n data: {\n trixAction: \"remove\"\n }\n })\n })\n })\n }), this.attachment.isPreviewable() && n.appendChild(s({\n tagName: \"div\",\n className: t.attachmentMetadataContainer,\n childNodes: s({\n tagName: \"span\",\n className: t.attachmentMetadata,\n childNodes: [s({\n tagName: \"span\",\n className: t.attachmentName,\n textContent: this.attachment.getFilename(),\n attributes: {\n title: this.attachment.getFilename()\n }\n }), s({\n tagName: \"span\",\n className: t.attachmentSize,\n textContent: this.attachment.getFormattedFilesize()\n })]\n })\n })), i(\"click\", {\n onElement: n,\n withCallback: this.didClickToolbar\n }), i(\"click\", {\n onElement: n,\n matchingSelector: \"[data-trix-action]\",\n withCallback: this.didClickActionButton\n }), {\n \"do\": function (t) {\n return function () {\n return t.element.appendChild(n);\n };\n }(this),\n undo: function () {\n return function () {\n return e.removeNode(n);\n };\n }(this)\n };\n }), h.prototype.installCaptionEditor = p(function () {\n var o, a, u, c, l;\n return c = s({\n tagName: \"textarea\",\n className: t.attachmentCaptionEditor,\n attributes: {\n placeholder: r.captionPlaceholder\n },\n data: {\n trixMutable: !0\n }\n }), c.value = this.attachmentPiece.getCaption(), l = c.cloneNode(), l.classList.add(\"trix-autoresize-clone\"), l.tabIndex = -1, o = function o() {\n return l.value = c.value, c.style.height = l.scrollHeight + \"px\";\n }, i(\"input\", {\n onElement: c,\n withCallback: o\n }), i(\"input\", {\n onElement: c,\n withCallback: this.didInputCaption\n }), i(\"keydown\", {\n onElement: c,\n withCallback: this.didKeyDownCaption\n }), i(\"change\", {\n onElement: c,\n withCallback: this.didChangeCaption\n }), i(\"blur\", {\n onElement: c,\n withCallback: this.didBlurCaption\n }), u = this.element.querySelector(\"figcaption\"), a = u.cloneNode(), {\n \"do\": function (e) {\n return function () {\n return u.style.display = \"none\", a.appendChild(c), a.appendChild(l), a.classList.add(t.attachmentCaption + \"--editing\"), u.parentElement.insertBefore(a, u), o(), e.options.editCaption ? n(function () {\n return c.focus();\n }) : void 0;\n };\n }(this),\n undo: function undo() {\n return e.removeNode(a), u.style.display = null;\n }\n };\n }), h.prototype.didClickToolbar = function (t) {\n return t.preventDefault(), t.stopPropagation();\n }, h.prototype.didClickActionButton = function (t) {\n var e, n;\n\n switch (e = t.target.getAttribute(\"data-trix-action\")) {\n case \"remove\":\n return null != (n = this.delegate) ? n.attachmentEditorDidRequestRemovalOfAttachment(this.attachment) : void 0;\n }\n }, h.prototype.didKeyDownCaption = function (t) {\n var e;\n return \"return\" === o[t.keyCode] ? (t.preventDefault(), this.savePendingCaption(), null != (e = this.delegate) && \"function\" == typeof e.attachmentEditorDidRequestDeselectingAttachment ? e.attachmentEditorDidRequestDeselectingAttachment(this.attachment) : void 0) : void 0;\n }, h.prototype.didInputCaption = function (t) {\n return this.pendingCaption = t.target.value.replace(/\\s/g, \" \").trim();\n }, h.prototype.didChangeCaption = function () {\n return this.savePendingCaption();\n }, h.prototype.didBlurCaption = function () {\n return this.savePendingCaption();\n }, h;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function o(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n r.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n\n i = e.makeElement, t = e.config.css, e.AttachmentView = function (r) {\n function s() {\n s.__super__.constructor.apply(this, arguments), this.attachment = this.object, this.attachment.uploadProgressDelegate = this, this.attachmentPiece = this.options.piece;\n }\n\n var a;\n return o(s, r), s.attachmentSelector = \"[data-trix-attachment]\", s.prototype.createContentNodes = function () {\n return [];\n }, s.prototype.createNodes = function () {\n var e, n, o, r, s, u, c;\n if (e = r = i({\n tagName: \"figure\",\n className: this.getClassName(),\n data: this.getData(),\n editable: !1\n }), (n = this.getHref()) && (r = i({\n tagName: \"a\",\n editable: !1,\n attributes: {\n href: n,\n tabindex: -1\n }\n }), e.appendChild(r)), this.attachment.hasContent()) r.innerHTML = this.attachment.getContent();else for (c = this.createContentNodes(), o = 0, s = c.length; s > o; o++) {\n u = c[o], r.appendChild(u);\n }\n return r.appendChild(this.createCaptionElement()), this.attachment.isPending() && (this.progressElement = i({\n tagName: \"progress\",\n attributes: {\n \"class\": t.attachmentProgress,\n value: this.attachment.getUploadProgress(),\n max: 100\n },\n data: {\n trixMutable: !0,\n trixStoreKey: [\"progressElement\", this.attachment.id].join(\"/\")\n }\n }), e.appendChild(this.progressElement)), [a(\"left\"), e, a(\"right\")];\n }, s.prototype.createCaptionElement = function () {\n var e, n, o, r, s, a, u;\n return o = i({\n tagName: \"figcaption\",\n className: t.attachmentCaption\n }), (e = this.attachmentPiece.getCaption()) ? (o.classList.add(t.attachmentCaption + \"--edited\"), o.textContent = e) : (n = this.getCaptionConfig(), n.name && (r = this.attachment.getFilename()), n.size && (a = this.attachment.getFormattedFilesize()), r && (s = i({\n tagName: \"span\",\n className: t.attachmentName,\n textContent: r\n }), o.appendChild(s)), a && (r && o.appendChild(document.createTextNode(\" \")), u = i({\n tagName: \"span\",\n className: t.attachmentSize,\n textContent: a\n }), o.appendChild(u))), o;\n }, s.prototype.getClassName = function () {\n var e, n;\n return n = [t.attachment, t.attachment + \"--\" + this.attachment.getType()], (e = this.attachment.getExtension()) && n.push(t.attachment + \"--\" + e), n.join(\" \");\n }, s.prototype.getData = function () {\n var t, e;\n return e = {\n trixAttachment: JSON.stringify(this.attachment),\n trixContentType: this.attachment.getContentType(),\n trixId: this.attachment.id\n }, t = this.attachmentPiece.attributes, t.isEmpty() || (e.trixAttributes = JSON.stringify(t)), this.attachment.isPending() && (e.trixSerialize = !1), e;\n }, s.prototype.getHref = function () {\n return n(this.attachment.getContent(), \"a\") ? void 0 : this.attachment.getHref();\n }, s.prototype.getCaptionConfig = function () {\n var t, n, i;\n return i = this.attachment.getType(), t = e.copyObject(null != (n = e.config.attachments[i]) ? n.caption : void 0), \"file\" === i && (t.name = !0), t;\n }, s.prototype.findProgressElement = function () {\n var t;\n return null != (t = this.findElement()) ? t.querySelector(\"progress\") : void 0;\n }, a = function a(t) {\n return i({\n tagName: \"span\",\n textContent: e.ZERO_WIDTH_SPACE,\n data: {\n trixCursorTarget: t,\n trixSerialize: !1\n }\n });\n }, s.prototype.attachmentDidChangeUploadProgress = function () {\n var t, e;\n return e = this.attachment.getUploadProgress(), null != (t = this.findProgressElement()) ? t.value = e : void 0;\n }, s;\n }(e.ObjectView), n = function n(t, e) {\n var n;\n return n = i(\"div\"), n.innerHTML = null != t ? t : \"\", n.querySelector(e);\n };\n }.call(this), function () {\n var t,\n n = function n(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) {\n i.call(e, o) && (t[o] = e[o]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n\n t = e.makeElement, e.PreviewableAttachmentView = function (i) {\n function o() {\n o.__super__.constructor.apply(this, arguments), this.attachment.previewDelegate = this;\n }\n\n return n(o, i), o.prototype.createContentNodes = function () {\n return this.image = t({\n tagName: \"img\",\n attributes: {\n src: \"\"\n },\n data: {\n trixMutable: !0\n }\n }), this.refresh(this.image), [this.image];\n }, o.prototype.createCaptionElement = function () {\n var t;\n return t = o.__super__.createCaptionElement.apply(this, arguments), t.textContent || t.setAttribute(\"data-trix-placeholder\", e.config.lang.captionPlaceholder), t;\n }, o.prototype.refresh = function (t) {\n var e;\n return null == t && (t = null != (e = this.findElement()) ? e.querySelector(\"img\") : void 0), t ? this.updateAttributesForImage(t) : void 0;\n }, o.prototype.updateAttributesForImage = function (t) {\n var e, n, i, o, r, s;\n return r = this.attachment.getURL(), n = this.attachment.getPreviewURL(), t.src = n || r, n === r ? t.removeAttribute(\"data-trix-serialized-attributes\") : (i = JSON.stringify({\n src: r\n }), t.setAttribute(\"data-trix-serialized-attributes\", i)), s = this.attachment.getWidth(), e = this.attachment.getHeight(), null != s && (t.width = s), null != e && (t.height = e), o = [\"imageElement\", this.attachment.id, t.src, t.width, t.height].join(\"/\"), t.dataset.trixStoreKey = o;\n }, o.prototype.attachmentDidChangeAttributes = function () {\n return this.refresh(this.image), this.refresh();\n }, o;\n }(e.AttachmentView);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function o(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n r.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n\n i = e.makeElement, t = e.findInnerElement, n = e.getTextConfig, e.PieceView = function (r) {\n function s() {\n var t;\n s.__super__.constructor.apply(this, arguments), this.piece = this.object, this.attributes = this.piece.getAttributes(), t = this.options, this.textConfig = t.textConfig, this.context = t.context, this.piece.attachment ? this.attachment = this.piece.attachment : this.string = this.piece.toString();\n }\n\n var a;\n return o(s, r), s.prototype.createNodes = function () {\n var e, n, i, o, r, s;\n\n if (s = this.attachment ? this.createAttachmentNodes() : this.createStringNodes(), e = this.createElement()) {\n for (i = t(e), n = 0, o = s.length; o > n; n++) {\n r = s[n], i.appendChild(r);\n }\n\n s = [e];\n }\n\n return s;\n }, s.prototype.createAttachmentNodes = function () {\n var t, n;\n return t = this.attachment.isPreviewable() ? e.PreviewableAttachmentView : e.AttachmentView, n = this.createChildView(t, this.piece.attachment, {\n piece: this.piece\n }), n.getNodes();\n }, s.prototype.createStringNodes = function () {\n var t, e, n, o, r, s, a, u, c, l;\n if (null != (u = this.textConfig) ? u.plaintext : void 0) return [document.createTextNode(this.string)];\n\n for (a = [], c = this.string.split(\"\\n\"), n = e = 0, o = c.length; o > e; n = ++e) {\n l = c[n], n > 0 && (t = i(\"br\"), a.push(t)), (r = l.length) && (s = document.createTextNode(this.preserveSpaces(l)), a.push(s));\n }\n\n return a;\n }, s.prototype.createElement = function () {\n var t, e, o, r, s, a, u, c, l;\n c = {}, a = this.attributes;\n\n for (r in a) {\n if (l = a[r], (t = n(r)) && (t.tagName && (s = i(t.tagName), o ? (o.appendChild(s), o = s) : e = o = s), t.styleProperty && (c[t.styleProperty] = l), t.style)) {\n u = t.style;\n\n for (r in u) {\n l = u[r], c[r] = l;\n }\n }\n }\n\n if (Object.keys(c).length) {\n null == e && (e = i(\"span\"));\n\n for (r in c) {\n l = c[r], e.style[r] = l;\n }\n }\n\n return e;\n }, s.prototype.createContainerElement = function () {\n var t, e, o, r, s;\n r = this.attributes;\n\n for (o in r) {\n if (s = r[o], (e = n(o)) && e.groupTagName) return t = {}, t[o] = s, i(e.groupTagName, t);\n }\n }, a = e.NON_BREAKING_SPACE, s.prototype.preserveSpaces = function (t) {\n return this.context.isLast && (t = t.replace(/\\ $/, a)), t = t.replace(/(\\S)\\ {3}(\\S)/g, \"$1 \" + a + \" $2\").replace(/\\ {2}/g, a + \" \").replace(/\\ {2}/g, \" \" + a), (this.context.isFirst || this.context.followsWhitespace) && (t = t.replace(/^\\ /, a)), t;\n }, s;\n }(e.ObjectView);\n }.call(this), function () {\n var t = function t(_t11, e) {\n function i() {\n this.constructor = _t11;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t11[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t11.prototype = new i(), _t11.__super__ = e.prototype, _t11;\n },\n n = {}.hasOwnProperty;\n\n e.TextView = function (n) {\n function i() {\n i.__super__.constructor.apply(this, arguments), this.text = this.object, this.textConfig = this.options.textConfig;\n }\n\n var o;\n return t(i, n), i.prototype.createNodes = function () {\n var t, n, i, r, s, a, u, c, l, h;\n\n for (a = [], c = e.ObjectGroup.groupObjects(this.getPieces()), r = c.length - 1, i = n = 0, s = c.length; s > n; i = ++n) {\n u = c[i], t = {}, 0 === i && (t.isFirst = !0), i === r && (t.isLast = !0), o(l) && (t.followsWhitespace = !0), h = this.findOrCreateCachedChildView(e.PieceView, u, {\n textConfig: this.textConfig,\n context: t\n }), a.push.apply(a, h.getNodes()), l = u;\n }\n\n return a;\n }, i.prototype.getPieces = function () {\n var t, e, n, i, o;\n\n for (i = this.text.getPieces(), o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], n.hasAttribute(\"blockBreak\") || o.push(n);\n }\n\n return o;\n }, o = function o(t) {\n return /\\s$/.test(null != t ? t.toString() : void 0);\n }, i;\n }(e.ObjectView);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function o(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n r.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n\n i = e.makeElement, n = e.getBlockConfig, t = e.config.css, e.BlockView = function (r) {\n function s() {\n s.__super__.constructor.apply(this, arguments), this.block = this.object, this.attributes = this.block.getAttributes();\n }\n\n return o(s, r), s.prototype.createNodes = function () {\n var t, o, r, s, a, u, c, l, h, p, d;\n if (o = document.createComment(\"block\"), c = [o], this.block.isEmpty() ? c.push(i(\"br\")) : (p = null != (l = n(this.block.getLastAttribute())) ? l.text : void 0, d = this.findOrCreateCachedChildView(e.TextView, this.block.text, {\n textConfig: p\n }), c.push.apply(c, d.getNodes()), this.shouldAddExtraNewlineElement() && c.push(i(\"br\"))), this.attributes.length) return c;\n\n for (h = e.config.blockAttributes[\"default\"].tagName, this.block.isRTL() && (t = {\n dir: \"rtl\"\n }), r = i({\n tagName: h,\n attributes: t\n }), s = 0, a = c.length; a > s; s++) {\n u = c[s], r.appendChild(u);\n }\n\n return [r];\n }, s.prototype.createContainerElement = function (e) {\n var o, r, s, a, u;\n return o = this.attributes[e], u = n(o).tagName, 0 === e && this.block.isRTL() && (r = {\n dir: \"rtl\"\n }), \"attachmentGallery\" === o && (a = this.block.getBlockBreakPosition(), s = t.attachmentGallery + \" \" + t.attachmentGallery + \"--\" + a), i({\n tagName: u,\n className: s,\n attributes: r\n });\n }, s.prototype.shouldAddExtraNewlineElement = function () {\n return /\\n\\n$/.test(this.block.toString());\n }, s;\n }(e.ObjectView);\n }.call(this), function () {\n var t,\n n,\n i = function i(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n o.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty;\n\n t = e.defer, n = e.makeElement, e.DocumentView = function (o) {\n function r() {\n r.__super__.constructor.apply(this, arguments), this.element = this.options.element, this.elementStore = new e.ElementStore(), this.setDocument(this.object);\n }\n\n var s, a, u;\n return i(r, o), r.render = function (t) {\n var e, i;\n return e = n(\"div\"), i = new this(t, {\n element: e\n }), i.render(), i.sync(), e;\n }, r.prototype.setDocument = function (t) {\n return t.isEqualTo(this.document) ? void 0 : this.document = this.object = t;\n }, r.prototype.render = function () {\n var t, i, o, r, s, a, u;\n\n if (this.childViews = [], this.shadowElement = n(\"div\"), !this.document.isEmpty()) {\n for (s = e.ObjectGroup.groupObjects(this.document.getBlocks(), {\n asTree: !0\n }), a = [], t = 0, i = s.length; i > t; t++) {\n r = s[t], u = this.findOrCreateCachedChildView(e.BlockView, r), a.push(function () {\n var t, e, n, i;\n\n for (n = u.getNodes(), i = [], t = 0, e = n.length; e > t; t++) {\n o = n[t], i.push(this.shadowElement.appendChild(o));\n }\n\n return i;\n }.call(this));\n }\n\n return a;\n }\n }, r.prototype.isSynced = function () {\n return s(this.shadowElement, this.element);\n }, r.prototype.sync = function () {\n var t;\n\n for (t = this.createDocumentFragmentForSync(); this.element.lastChild;) {\n this.element.removeChild(this.element.lastChild);\n }\n\n return this.element.appendChild(t), this.didSync();\n }, r.prototype.didSync = function () {\n return this.elementStore.reset(a(this.element)), t(function (t) {\n return function () {\n return t.garbageCollectCachedViews();\n };\n }(this));\n }, r.prototype.createDocumentFragmentForSync = function () {\n var t, e, n, i, o, r, s, u, c, l;\n\n for (e = document.createDocumentFragment(), u = this.shadowElement.childNodes, n = 0, o = u.length; o > n; n++) {\n s = u[n], e.appendChild(s.cloneNode(!0));\n }\n\n for (c = a(e), i = 0, r = c.length; r > i; i++) {\n t = c[i], (l = this.elementStore.remove(t)) && t.parentNode.replaceChild(l, t);\n }\n\n return e;\n }, a = function a(t) {\n return t.querySelectorAll(\"[data-trix-store-key]\");\n }, s = function s(t, e) {\n return u(t.innerHTML) === u(e.innerHTML);\n }, u = function u(t) {\n return t.replace(/ /g, \" \");\n }, r;\n }(e.ObjectView);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = function s(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n a = function a(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n u.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n u = {}.hasOwnProperty;\n\n i = e.findClosestElementFromNode, o = e.handleEvent, r = e.innerElementIsActive, n = e.defer, t = e.AttachmentView.attachmentSelector, e.CompositionController = function (u) {\n function c(n, i) {\n this.element = n, this.composition = i, this.didClickAttachment = s(this.didClickAttachment, this), this.didBlur = s(this.didBlur, this), this.didFocus = s(this.didFocus, this), this.documentView = new e.DocumentView(this.composition.document, {\n element: this.element\n }), o(\"focus\", {\n onElement: this.element,\n withCallback: this.didFocus\n }), o(\"blur\", {\n onElement: this.element,\n withCallback: this.didBlur\n }), o(\"click\", {\n onElement: this.element,\n matchingSelector: \"a[contenteditable=false]\",\n preventDefault: !0\n }), o(\"mousedown\", {\n onElement: this.element,\n matchingSelector: t,\n withCallback: this.didClickAttachment\n }), o(\"click\", {\n onElement: this.element,\n matchingSelector: \"a\" + t,\n preventDefault: !0\n });\n }\n\n return a(c, u), c.prototype.didFocus = function () {\n var t, e, n;\n return t = function (t) {\n return function () {\n var e;\n return t.focused ? void 0 : (t.focused = !0, null != (e = t.delegate) && \"function\" == typeof e.compositionControllerDidFocus ? e.compositionControllerDidFocus() : void 0);\n };\n }(this), null != (e = null != (n = this.blurPromise) ? n.then(t) : void 0) ? e : t();\n }, c.prototype.didBlur = function () {\n return this.blurPromise = new Promise(function (t) {\n return function (e) {\n return n(function () {\n var n;\n return r(t.element) || (t.focused = null, null != (n = t.delegate) && \"function\" == typeof n.compositionControllerDidBlur && n.compositionControllerDidBlur()), t.blurPromise = null, e();\n });\n };\n }(this));\n }, c.prototype.didClickAttachment = function (t, e) {\n var n, o, r;\n return n = this.findAttachmentForElement(e), o = null != i(t.target, {\n matchingSelector: \"figcaption\"\n }), null != (r = this.delegate) && \"function\" == typeof r.compositionControllerDidSelectAttachment ? r.compositionControllerDidSelectAttachment(n, {\n editCaption: o\n }) : void 0;\n }, c.prototype.getSerializableElement = function () {\n return this.isEditingAttachment() ? this.documentView.shadowElement : this.element;\n }, c.prototype.render = function () {\n var t, e, n;\n return this.revision !== this.composition.revision && (this.documentView.setDocument(this.composition.document), this.documentView.render(), this.revision = this.composition.revision), this.canSyncDocumentView() && !this.documentView.isSynced() && (null != (t = this.delegate) && \"function\" == typeof t.compositionControllerWillSyncDocumentView && t.compositionControllerWillSyncDocumentView(), this.documentView.sync(), null != (e = this.delegate) && \"function\" == typeof e.compositionControllerDidSyncDocumentView && e.compositionControllerDidSyncDocumentView()), null != (n = this.delegate) && \"function\" == typeof n.compositionControllerDidRender ? n.compositionControllerDidRender() : void 0;\n }, c.prototype.rerenderViewForObject = function (t) {\n return this.invalidateViewForObject(t), this.render();\n }, c.prototype.invalidateViewForObject = function (t) {\n return this.documentView.invalidateViewForObject(t);\n }, c.prototype.isViewCachingEnabled = function () {\n return this.documentView.isViewCachingEnabled();\n }, c.prototype.enableViewCaching = function () {\n return this.documentView.enableViewCaching();\n }, c.prototype.disableViewCaching = function () {\n return this.documentView.disableViewCaching();\n }, c.prototype.refreshViewCache = function () {\n return this.documentView.garbageCollectCachedViews();\n }, c.prototype.isEditingAttachment = function () {\n return null != this.attachmentEditor;\n }, c.prototype.installAttachmentEditorForAttachment = function (t, n) {\n var i, o, r;\n if ((null != (r = this.attachmentEditor) ? r.attachment : void 0) !== t && (o = this.documentView.findElementForObject(t))) return this.uninstallAttachmentEditor(), i = this.composition.document.getAttachmentPieceForAttachment(t), this.attachmentEditor = new e.AttachmentEditorController(i, o, this.element, n), this.attachmentEditor.delegate = this;\n }, c.prototype.uninstallAttachmentEditor = function () {\n var t;\n return null != (t = this.attachmentEditor) ? t.uninstall() : void 0;\n }, c.prototype.didUninstallAttachmentEditor = function () {\n return this.attachmentEditor = null, this.render();\n }, c.prototype.attachmentEditorDidRequestUpdatingAttributesForAttachment = function (t, e) {\n var n;\n return null != (n = this.delegate) && \"function\" == typeof n.compositionControllerWillUpdateAttachment && n.compositionControllerWillUpdateAttachment(e), this.composition.updateAttributesForAttachment(t, e);\n }, c.prototype.attachmentEditorDidRequestRemovingAttributeForAttachment = function (t, e) {\n var n;\n return null != (n = this.delegate) && \"function\" == typeof n.compositionControllerWillUpdateAttachment && n.compositionControllerWillUpdateAttachment(e), this.composition.removeAttributeForAttachment(t, e);\n }, c.prototype.attachmentEditorDidRequestRemovalOfAttachment = function (t) {\n var e;\n return null != (e = this.delegate) && \"function\" == typeof e.compositionControllerDidRequestRemovalOfAttachment ? e.compositionControllerDidRequestRemovalOfAttachment(t) : void 0;\n }, c.prototype.attachmentEditorDidRequestDeselectingAttachment = function (t) {\n var e;\n return null != (e = this.delegate) && \"function\" == typeof e.compositionControllerDidRequestDeselectingAttachment ? e.compositionControllerDidRequestDeselectingAttachment(t) : void 0;\n }, c.prototype.canSyncDocumentView = function () {\n return !this.isEditingAttachment();\n }, c.prototype.findAttachmentForElement = function (t) {\n return this.composition.document.getAttachmentById(parseInt(t.dataset.trixId, 10));\n }, c;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function o(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n r = function r(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n s.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty;\n\n n = e.handleEvent, i = e.triggerEvent, t = e.findClosestElementFromNode, e.ToolbarController = function (e) {\n function s(t) {\n this.element = t, this.didKeyDownDialogInput = o(this.didKeyDownDialogInput, this), this.didClickDialogButton = o(this.didClickDialogButton, this), this.didClickAttributeButton = o(this.didClickAttributeButton, this), this.didClickActionButton = o(this.didClickActionButton, this), this.attributes = {}, this.actions = {}, this.resetDialogInputs(), n(\"mousedown\", {\n onElement: this.element,\n matchingSelector: a,\n withCallback: this.didClickActionButton\n }), n(\"mousedown\", {\n onElement: this.element,\n matchingSelector: c,\n withCallback: this.didClickAttributeButton\n }), n(\"click\", {\n onElement: this.element,\n matchingSelector: v,\n preventDefault: !0\n }), n(\"click\", {\n onElement: this.element,\n matchingSelector: l,\n withCallback: this.didClickDialogButton\n }), n(\"keydown\", {\n onElement: this.element,\n matchingSelector: h,\n withCallback: this.didKeyDownDialogInput\n });\n }\n\n var a, u, c, l, h, p, d, f, g, m, v;\n return r(s, e), c = \"[data-trix-attribute]\", a = \"[data-trix-action]\", v = c + \", \" + a, p = \"[data-trix-dialog]\", u = p + \"[data-trix-active]\", l = p + \" [data-trix-method]\", h = p + \" [data-trix-input]\", s.prototype.didClickActionButton = function (t, e) {\n var n, i, o;\n return null != (i = this.delegate) && i.toolbarDidClickButton(), t.preventDefault(), n = d(e), this.getDialog(n) ? this.toggleDialog(n) : null != (o = this.delegate) ? o.toolbarDidInvokeAction(n) : void 0;\n }, s.prototype.didClickAttributeButton = function (t, e) {\n var n, i, o;\n return null != (i = this.delegate) && i.toolbarDidClickButton(), t.preventDefault(), n = f(e), this.getDialog(n) ? this.toggleDialog(n) : null != (o = this.delegate) && o.toolbarDidToggleAttribute(n), this.refreshAttributeButtons();\n }, s.prototype.didClickDialogButton = function (e, n) {\n var i, o;\n return i = t(n, {\n matchingSelector: p\n }), o = n.getAttribute(\"data-trix-method\"), this[o].call(this, i);\n }, s.prototype.didKeyDownDialogInput = function (t, e) {\n var n, i;\n return 13 === t.keyCode && (t.preventDefault(), n = e.getAttribute(\"name\"), i = this.getDialog(n), this.setAttribute(i)), 27 === t.keyCode ? (t.preventDefault(), this.hideDialog()) : void 0;\n }, s.prototype.updateActions = function (t) {\n return this.actions = t, this.refreshActionButtons();\n }, s.prototype.refreshActionButtons = function () {\n return this.eachActionButton(function (t) {\n return function (e, n) {\n return e.disabled = t.actions[n] === !1;\n };\n }(this));\n }, s.prototype.eachActionButton = function (t) {\n var e, n, i, o, r;\n\n for (o = this.element.querySelectorAll(a), r = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], r.push(t(e, d(e)));\n }\n\n return r;\n }, s.prototype.updateAttributes = function (t) {\n return this.attributes = t, this.refreshAttributeButtons();\n }, s.prototype.refreshAttributeButtons = function () {\n return this.eachAttributeButton(function (t) {\n return function (e, n) {\n return e.disabled = t.attributes[n] === !1, t.attributes[n] || t.dialogIsVisible(n) ? (e.setAttribute(\"data-trix-active\", \"\"), e.classList.add(\"trix-active\")) : (e.removeAttribute(\"data-trix-active\"), e.classList.remove(\"trix-active\"));\n };\n }(this));\n }, s.prototype.eachAttributeButton = function (t) {\n var e, n, i, o, r;\n\n for (o = this.element.querySelectorAll(c), r = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], r.push(t(e, f(e)));\n }\n\n return r;\n }, s.prototype.applyKeyboardCommand = function (t) {\n var e, n, o, r, s, a, u;\n\n for (s = JSON.stringify(t.sort()), u = this.element.querySelectorAll(\"[data-trix-key]\"), r = 0, a = u.length; a > r; r++) {\n if (e = u[r], o = e.getAttribute(\"data-trix-key\").split(\"+\"), n = JSON.stringify(o.sort()), n === s) return i(\"mousedown\", {\n onElement: e\n }), !0;\n }\n\n return !1;\n }, s.prototype.dialogIsVisible = function (t) {\n var e;\n return (e = this.getDialog(t)) ? e.hasAttribute(\"data-trix-active\") : void 0;\n }, s.prototype.toggleDialog = function (t) {\n return this.dialogIsVisible(t) ? this.hideDialog() : this.showDialog(t);\n }, s.prototype.showDialog = function (t) {\n var e, n, i, o, r, s, a, u, c, l;\n\n for (this.hideDialog(), null != (a = this.delegate) && a.toolbarWillShowDialog(), i = this.getDialog(t), i.setAttribute(\"data-trix-active\", \"\"), i.classList.add(\"trix-active\"), u = i.querySelectorAll(\"input[disabled]\"), o = 0, s = u.length; s > o; o++) {\n n = u[o], n.removeAttribute(\"disabled\");\n }\n\n return (e = f(i)) && (r = m(i, t)) && (r.value = null != (c = this.attributes[e]) ? c : \"\", r.select()), null != (l = this.delegate) ? l.toolbarDidShowDialog(t) : void 0;\n }, s.prototype.setAttribute = function (t) {\n var e, n, i;\n return e = f(t), n = m(t, e), n.willValidate && !n.checkValidity() ? (n.setAttribute(\"data-trix-validate\", \"\"), n.classList.add(\"trix-validate\"), n.focus()) : (null != (i = this.delegate) && i.toolbarDidUpdateAttribute(e, n.value), this.hideDialog());\n }, s.prototype.removeAttribute = function (t) {\n var e, n;\n return e = f(t), null != (n = this.delegate) && n.toolbarDidRemoveAttribute(e), this.hideDialog();\n }, s.prototype.hideDialog = function () {\n var t, e;\n return (t = this.element.querySelector(u)) ? (t.removeAttribute(\"data-trix-active\"), t.classList.remove(\"trix-active\"), this.resetDialogInputs(), null != (e = this.delegate) ? e.toolbarDidHideDialog(g(t)) : void 0) : void 0;\n }, s.prototype.resetDialogInputs = function () {\n var t, e, n, i, o;\n\n for (i = this.element.querySelectorAll(h), o = [], t = 0, n = i.length; n > t; t++) {\n e = i[t], e.setAttribute(\"disabled\", \"disabled\"), e.removeAttribute(\"data-trix-validate\"), o.push(e.classList.remove(\"trix-validate\"));\n }\n\n return o;\n }, s.prototype.getDialog = function (t) {\n return this.element.querySelector(\"[data-trix-dialog=\" + t + \"]\");\n }, m = function m(t, e) {\n return null == e && (e = f(t)), t.querySelector(\"[data-trix-input][name='\" + e + \"']\");\n }, d = function d(t) {\n return t.getAttribute(\"data-trix-action\");\n }, f = function f(t) {\n var e;\n return null != (e = t.getAttribute(\"data-trix-attribute\")) ? e : t.getAttribute(\"data-trix-dialog-attribute\");\n }, g = function g(t) {\n return t.getAttribute(\"data-trix-dialog\");\n }, s;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function t(_t12, e) {\n function i() {\n this.constructor = _t12;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t12[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t12.prototype = new i(), _t12.__super__ = e.prototype, _t12;\n },\n n = {}.hasOwnProperty;\n\n e.ImagePreloadOperation = function (e) {\n function n(t) {\n this.url = t;\n }\n\n return t(n, e), n.prototype.perform = function (t) {\n var e;\n return e = new Image(), e.onload = function (n) {\n return function () {\n return e.width = n.width = e.naturalWidth, e.height = n.height = e.naturalHeight, t(!0, e);\n };\n }(this), e.onerror = function () {\n return t(!1);\n }, e.src = this.url;\n }, n;\n }(e.Operation);\n }.call(this), function () {\n var t = function t(_t13, e) {\n return function () {\n return _t13.apply(e, arguments);\n };\n },\n n = function n(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) {\n i.call(e, o) && (t[o] = e[o]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n\n e.Attachment = function (i) {\n function o(n) {\n null == n && (n = {}), this.releaseFile = t(this.releaseFile, this), o.__super__.constructor.apply(this, arguments), this.attributes = e.Hash.box(n), this.didChangeAttributes();\n }\n\n return n(o, i), o.previewablePattern = /^image(\\/(gif|png|jpe?g)|$)/, o.attachmentForFile = function (t) {\n var e, n;\n return n = this.attributesForFile(t), e = new this(n), e.setFile(t), e;\n }, o.attributesForFile = function (t) {\n return new e.Hash({\n filename: t.name,\n filesize: t.size,\n contentType: t.type\n });\n }, o.fromJSON = function (t) {\n return new this(t);\n }, o.prototype.getAttribute = function (t) {\n return this.attributes.get(t);\n }, o.prototype.hasAttribute = function (t) {\n return this.attributes.has(t);\n }, o.prototype.getAttributes = function () {\n return this.attributes.toObject();\n }, o.prototype.setAttributes = function (t) {\n var e, n, i;\n return null == t && (t = {}), e = this.attributes.merge(t), this.attributes.isEqualTo(e) ? void 0 : (this.attributes = e, this.didChangeAttributes(), null != (n = this.previewDelegate) && \"function\" == typeof n.attachmentDidChangeAttributes && n.attachmentDidChangeAttributes(this), null != (i = this.delegate) && \"function\" == typeof i.attachmentDidChangeAttributes ? i.attachmentDidChangeAttributes(this) : void 0);\n }, o.prototype.didChangeAttributes = function () {\n return this.isPreviewable() ? this.preloadURL() : void 0;\n }, o.prototype.isPending = function () {\n return null != this.file && !(this.getURL() || this.getHref());\n }, o.prototype.isPreviewable = function () {\n return this.attributes.has(\"previewable\") ? this.attributes.get(\"previewable\") : this.constructor.previewablePattern.test(this.getContentType());\n }, o.prototype.getType = function () {\n return this.hasContent() ? \"content\" : this.isPreviewable() ? \"preview\" : \"file\";\n }, o.prototype.getURL = function () {\n return this.attributes.get(\"url\");\n }, o.prototype.getHref = function () {\n return this.attributes.get(\"href\");\n }, o.prototype.getFilename = function () {\n var t;\n return null != (t = this.attributes.get(\"filename\")) ? t : \"\";\n }, o.prototype.getFilesize = function () {\n return this.attributes.get(\"filesize\");\n }, o.prototype.getFormattedFilesize = function () {\n var t;\n return t = this.attributes.get(\"filesize\"), \"number\" == typeof t ? e.config.fileSize.formatter(t) : \"\";\n }, o.prototype.getExtension = function () {\n var t;\n return null != (t = this.getFilename().match(/\\.(\\w+)$/)) ? t[1].toLowerCase() : void 0;\n }, o.prototype.getContentType = function () {\n return this.attributes.get(\"contentType\");\n }, o.prototype.hasContent = function () {\n return this.attributes.has(\"content\");\n }, o.prototype.getContent = function () {\n return this.attributes.get(\"content\");\n }, o.prototype.getWidth = function () {\n return this.attributes.get(\"width\");\n }, o.prototype.getHeight = function () {\n return this.attributes.get(\"height\");\n }, o.prototype.getFile = function () {\n return this.file;\n }, o.prototype.setFile = function (t) {\n return this.file = t, this.isPreviewable() ? this.preloadFile() : void 0;\n }, o.prototype.releaseFile = function () {\n return this.releasePreloadedFile(), this.file = null;\n }, o.prototype.getUploadProgress = function () {\n var t;\n return null != (t = this.uploadProgress) ? t : 0;\n }, o.prototype.setUploadProgress = function (t) {\n var e;\n return this.uploadProgress !== t ? (this.uploadProgress = t, null != (e = this.uploadProgressDelegate) && \"function\" == typeof e.attachmentDidChangeUploadProgress ? e.attachmentDidChangeUploadProgress(this) : void 0) : void 0;\n }, o.prototype.toJSON = function () {\n return this.getAttributes();\n }, o.prototype.getCacheKey = function () {\n return [o.__super__.getCacheKey.apply(this, arguments), this.attributes.getCacheKey(), this.getPreviewURL()].join(\"/\");\n }, o.prototype.getPreviewURL = function () {\n return this.previewURL || this.preloadingURL;\n }, o.prototype.setPreviewURL = function (t) {\n var e, n;\n return t !== this.getPreviewURL() ? (this.previewURL = t, null != (e = this.previewDelegate) && \"function\" == typeof e.attachmentDidChangeAttributes && e.attachmentDidChangeAttributes(this), null != (n = this.delegate) && \"function\" == typeof n.attachmentDidChangePreviewURL ? n.attachmentDidChangePreviewURL(this) : void 0) : void 0;\n }, o.prototype.preloadURL = function () {\n return this.preload(this.getURL(), this.releaseFile);\n }, o.prototype.preloadFile = function () {\n return this.file ? (this.fileObjectURL = URL.createObjectURL(this.file), this.preload(this.fileObjectURL)) : void 0;\n }, o.prototype.releasePreloadedFile = function () {\n return this.fileObjectURL ? (URL.revokeObjectURL(this.fileObjectURL), this.fileObjectURL = null) : void 0;\n }, o.prototype.preload = function (t, n) {\n var i;\n return t && t !== this.getPreviewURL() ? (this.preloadingURL = t, i = new e.ImagePreloadOperation(t), i.then(function (e) {\n return function (i) {\n var o, r;\n return r = i.width, o = i.height, e.getWidth() && e.getHeight() || e.setAttributes({\n width: r,\n height: o\n }), e.preloadingURL = null, e.setPreviewURL(t), \"function\" == typeof n ? n() : void 0;\n };\n }(this))[\"catch\"](function (t) {\n return function () {\n return t.preloadingURL = null, \"function\" == typeof n ? n() : void 0;\n };\n }(this))) : void 0;\n }, o;\n }(e.Object);\n }.call(this), function () {\n var t = function t(_t14, e) {\n function i() {\n this.constructor = _t14;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t14[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t14.prototype = new i(), _t14.__super__ = e.prototype, _t14;\n },\n n = {}.hasOwnProperty;\n\n e.Piece = function (n) {\n function i(t, n) {\n null == n && (n = {}), i.__super__.constructor.apply(this, arguments), this.attributes = e.Hash.box(n);\n }\n\n return t(i, n), i.types = {}, i.registerType = function (t, e) {\n return e.type = t, this.types[t] = e;\n }, i.fromJSON = function (t) {\n var e;\n return (e = this.types[t.type]) ? e.fromJSON(t) : void 0;\n }, i.prototype.copyWithAttributes = function (t) {\n return new this.constructor(this.getValue(), t);\n }, i.prototype.copyWithAdditionalAttributes = function (t) {\n return this.copyWithAttributes(this.attributes.merge(t));\n }, i.prototype.copyWithoutAttribute = function (t) {\n return this.copyWithAttributes(this.attributes.remove(t));\n }, i.prototype.copy = function () {\n return this.copyWithAttributes(this.attributes);\n }, i.prototype.getAttribute = function (t) {\n return this.attributes.get(t);\n }, i.prototype.getAttributesHash = function () {\n return this.attributes;\n }, i.prototype.getAttributes = function () {\n return this.attributes.toObject();\n }, i.prototype.getCommonAttributes = function () {\n var t, e, n;\n return (n = pieceList.getPieceAtIndex(0)) ? (t = n.attributes, e = t.getKeys(), pieceList.eachPiece(function (n) {\n return e = t.getKeysCommonToHash(n.attributes), t = t.slice(e);\n }), t.toObject()) : {};\n }, i.prototype.hasAttribute = function (t) {\n return this.attributes.has(t);\n }, i.prototype.hasSameStringValueAsPiece = function (t) {\n return null != t && this.toString() === t.toString();\n }, i.prototype.hasSameAttributesAsPiece = function (t) {\n return null != t && (this.attributes === t.attributes || this.attributes.isEqualTo(t.attributes));\n }, i.prototype.isBlockBreak = function () {\n return !1;\n }, i.prototype.isEqualTo = function (t) {\n return i.__super__.isEqualTo.apply(this, arguments) || this.hasSameConstructorAs(t) && this.hasSameStringValueAsPiece(t) && this.hasSameAttributesAsPiece(t);\n }, i.prototype.isEmpty = function () {\n return 0 === this.length;\n }, i.prototype.isSerializable = function () {\n return !0;\n }, i.prototype.toJSON = function () {\n return {\n type: this.constructor.type,\n attributes: this.getAttributes()\n };\n }, i.prototype.contentsForInspection = function () {\n return {\n type: this.constructor.type,\n attributes: this.attributes.inspect()\n };\n }, i.prototype.canBeGrouped = function () {\n return this.hasAttribute(\"href\");\n }, i.prototype.canBeGroupedWith = function (t) {\n return this.getAttribute(\"href\") === t.getAttribute(\"href\");\n }, i.prototype.getLength = function () {\n return this.length;\n }, i.prototype.canBeConsolidatedWith = function () {\n return !1;\n }, i;\n }(e.Object);\n }.call(this), function () {\n var t = function t(_t15, e) {\n function i() {\n this.constructor = _t15;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t15[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t15.prototype = new i(), _t15.__super__ = e.prototype, _t15;\n },\n n = {}.hasOwnProperty;\n\n e.Piece.registerType(\"attachment\", e.AttachmentPiece = function (n) {\n function i(t) {\n this.attachment = t, i.__super__.constructor.apply(this, arguments), this.length = 1, this.ensureAttachmentExclusivelyHasAttribute(\"href\"), this.attachment.hasContent() || this.removeProhibitedAttributes();\n }\n\n return t(i, n), i.fromJSON = function (t) {\n return new this(e.Attachment.fromJSON(t.attachment), t.attributes);\n }, i.permittedAttributes = [\"caption\", \"presentation\"], i.prototype.ensureAttachmentExclusivelyHasAttribute = function (t) {\n return this.hasAttribute(t) ? (this.attachment.hasAttribute(t) || this.attachment.setAttributes(this.attributes.slice(t)), this.attributes = this.attributes.remove(t)) : void 0;\n }, i.prototype.removeProhibitedAttributes = function () {\n var t;\n return t = this.attributes.slice(this.constructor.permittedAttributes), t.isEqualTo(this.attributes) ? void 0 : this.attributes = t;\n }, i.prototype.getValue = function () {\n return this.attachment;\n }, i.prototype.isSerializable = function () {\n return !this.attachment.isPending();\n }, i.prototype.getCaption = function () {\n var t;\n return null != (t = this.attributes.get(\"caption\")) ? t : \"\";\n }, i.prototype.isEqualTo = function (t) {\n var e;\n return i.__super__.isEqualTo.apply(this, arguments) && this.attachment.id === (null != t && null != (e = t.attachment) ? e.id : void 0);\n }, i.prototype.toString = function () {\n return e.OBJECT_REPLACEMENT_CHARACTER;\n }, i.prototype.toJSON = function () {\n var t;\n return t = i.__super__.toJSON.apply(this, arguments), t.attachment = this.attachment, t;\n }, i.prototype.getCacheKey = function () {\n return [i.__super__.getCacheKey.apply(this, arguments), this.attachment.getCacheKey()].join(\"/\");\n }, i.prototype.toConsole = function () {\n return JSON.stringify(this.toString());\n }, i;\n }(e.Piece));\n }.call(this), function () {\n var t,\n n = function n(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) {\n i.call(e, o) && (t[o] = e[o]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n\n t = e.normalizeNewlines, e.Piece.registerType(\"string\", e.StringPiece = function (e) {\n function i(e) {\n i.__super__.constructor.apply(this, arguments), this.string = t(e), this.length = this.string.length;\n }\n\n return n(i, e), i.fromJSON = function (t) {\n return new this(t.string, t.attributes);\n }, i.prototype.getValue = function () {\n return this.string;\n }, i.prototype.toString = function () {\n return this.string.toString();\n }, i.prototype.isBlockBreak = function () {\n return \"\\n\" === this.toString() && this.getAttribute(\"blockBreak\") === !0;\n }, i.prototype.toJSON = function () {\n var t;\n return t = i.__super__.toJSON.apply(this, arguments), t.string = this.string, t;\n }, i.prototype.canBeConsolidatedWith = function (t) {\n return null != t && this.hasSameConstructorAs(t) && this.hasSameAttributesAsPiece(t);\n }, i.prototype.consolidateWith = function (t) {\n return new this.constructor(this.toString() + t.toString(), this.attributes);\n }, i.prototype.splitAtOffset = function (t) {\n var e, n;\n return 0 === t ? (e = null, n = this) : t === this.length ? (e = this, n = null) : (e = new this.constructor(this.string.slice(0, t), this.attributes), n = new this.constructor(this.string.slice(t), this.attributes)), [e, n];\n }, i.prototype.toConsole = function () {\n var t;\n return t = this.string, t.length > 15 && (t = t.slice(0, 14) + \"\\u2026\"), JSON.stringify(t.toString());\n }, i;\n }(e.Piece));\n }.call(this), function () {\n var t,\n n = function n(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) {\n i.call(e, o) && (t[o] = e[o]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty,\n o = [].slice;\n\n t = e.spliceArray, e.SplittableList = function (e) {\n function i(t) {\n null == t && (t = []), i.__super__.constructor.apply(this, arguments), this.objects = t.slice(0), this.length = this.objects.length;\n }\n\n var r, s, a;\n return n(i, e), i.box = function (t) {\n return t instanceof this ? t : new this(t);\n }, i.prototype.indexOf = function (t) {\n return this.objects.indexOf(t);\n }, i.prototype.splice = function () {\n var e;\n return e = 1 <= arguments.length ? o.call(arguments, 0) : [], new this.constructor(t.apply(null, [this.objects].concat(o.call(e))));\n }, i.prototype.eachObject = function (t) {\n var e, n, i, o, r, s;\n\n for (r = this.objects, s = [], n = e = 0, i = r.length; i > e; n = ++e) {\n o = r[n], s.push(t(o, n));\n }\n\n return s;\n }, i.prototype.insertObjectAtIndex = function (t, e) {\n return this.splice(e, 0, t);\n }, i.prototype.insertSplittableListAtIndex = function (t, e) {\n return this.splice.apply(this, [e, 0].concat(o.call(t.objects)));\n }, i.prototype.insertSplittableListAtPosition = function (t, e) {\n var n, i, o;\n return o = this.splitObjectAtPosition(e), i = o[0], n = o[1], new this.constructor(i).insertSplittableListAtIndex(t, n);\n }, i.prototype.editObjectAtIndex = function (t, e) {\n return this.replaceObjectAtIndex(e(this.objects[t]), t);\n }, i.prototype.replaceObjectAtIndex = function (t, e) {\n return this.splice(e, 1, t);\n }, i.prototype.removeObjectAtIndex = function (t) {\n return this.splice(t, 1);\n }, i.prototype.getObjectAtIndex = function (t) {\n return this.objects[t];\n }, i.prototype.getSplittableListInRange = function (t) {\n var e, n, i, o;\n return i = this.splitObjectsAtRange(t), n = i[0], e = i[1], o = i[2], new this.constructor(n.slice(e, o + 1));\n }, i.prototype.selectSplittableList = function (t) {\n var e, n;\n return n = function () {\n var n, i, o, r;\n\n for (o = this.objects, r = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], t(e) && r.push(e);\n }\n\n return r;\n }.call(this), new this.constructor(n);\n }, i.prototype.removeObjectsInRange = function (t) {\n var e, n, i, o;\n return i = this.splitObjectsAtRange(t), n = i[0], e = i[1], o = i[2], new this.constructor(n).splice(e, o - e + 1);\n }, i.prototype.transformObjectsInRange = function (t, e) {\n var n, i, o, r, s, a, u;\n return s = this.splitObjectsAtRange(t), r = s[0], i = s[1], a = s[2], u = function () {\n var t, s, u;\n\n for (u = [], n = t = 0, s = r.length; s > t; n = ++t) {\n o = r[n], u.push(n >= i && a >= n ? e(o) : o);\n }\n\n return u;\n }(), new this.constructor(u);\n }, i.prototype.splitObjectsAtRange = function (t) {\n var e, n, i, o, s, u;\n return o = this.splitObjectAtPosition(a(t)), n = o[0], e = o[1], i = o[2], s = new this.constructor(n).splitObjectAtPosition(r(t) + i), n = s[0], u = s[1], [n, e, u - 1];\n }, i.prototype.getObjectAtPosition = function (t) {\n var e, n, i;\n return i = this.findIndexAndOffsetAtPosition(t), e = i.index, n = i.offset, this.objects[e];\n }, i.prototype.splitObjectAtPosition = function (t) {\n var e, n, i, o, r, s, a, u, c, l;\n return s = this.findIndexAndOffsetAtPosition(t), e = s.index, r = s.offset, o = this.objects.slice(0), null != e ? 0 === r ? (c = e, l = 0) : (i = this.getObjectAtIndex(e), a = i.splitAtOffset(r), n = a[0], u = a[1], o.splice(e, 1, n, u), c = e + 1, l = n.getLength() - r) : (c = o.length, l = 0), [o, c, l];\n }, i.prototype.consolidate = function () {\n var t, e, n, i, o, r;\n\n for (i = [], o = this.objects[0], r = this.objects.slice(1), t = 0, e = r.length; e > t; t++) {\n n = r[t], (\"function\" == typeof o.canBeConsolidatedWith ? o.canBeConsolidatedWith(n) : void 0) ? o = o.consolidateWith(n) : (i.push(o), o = n);\n }\n\n return null != o && i.push(o), new this.constructor(i);\n }, i.prototype.consolidateFromIndexToIndex = function (t, e) {\n var n, i, r;\n return i = this.objects.slice(0), r = i.slice(t, e + 1), n = new this.constructor(r).consolidate().toArray(), this.splice.apply(this, [t, r.length].concat(o.call(n)));\n }, i.prototype.findIndexAndOffsetAtPosition = function (t) {\n var e, n, i, o, r, s, a;\n\n for (e = 0, a = this.objects, i = n = 0, o = a.length; o > n; i = ++n) {\n if (s = a[i], r = e + s.getLength(), t >= e && r > t) return {\n index: i,\n offset: t - e\n };\n e = r;\n }\n\n return {\n index: null,\n offset: null\n };\n }, i.prototype.findPositionAtIndexAndOffset = function (t, e) {\n var n, i, o, r, s, a;\n\n for (s = 0, a = this.objects, n = i = 0, o = a.length; o > i; n = ++i) {\n if (r = a[n], t > n) s += r.getLength();else if (n === t) {\n s += e;\n break;\n }\n }\n\n return s;\n }, i.prototype.getEndPosition = function () {\n var t, e;\n return null != this.endPosition ? this.endPosition : this.endPosition = function () {\n var n, i, o;\n\n for (e = 0, o = this.objects, n = 0, i = o.length; i > n; n++) {\n t = o[n], e += t.getLength();\n }\n\n return e;\n }.call(this);\n }, i.prototype.toString = function () {\n return this.objects.join(\"\");\n }, i.prototype.toArray = function () {\n return this.objects.slice(0);\n }, i.prototype.toJSON = function () {\n return this.toArray();\n }, i.prototype.isEqualTo = function (t) {\n return i.__super__.isEqualTo.apply(this, arguments) || s(this.objects, null != t ? t.objects : void 0);\n }, s = function s(t, e) {\n var n, i, o, r, s;\n if (null == e && (e = []), t.length !== e.length) return !1;\n\n for (s = !0, i = n = 0, o = t.length; o > n; i = ++n) {\n r = t[i], s && !r.isEqualTo(e[i]) && (s = !1);\n }\n\n return s;\n }, i.prototype.contentsForInspection = function () {\n var t;\n return {\n objects: \"[\" + function () {\n var e, n, i, o;\n\n for (i = this.objects, o = [], e = 0, n = i.length; n > e; e++) {\n t = i[e], o.push(t.inspect());\n }\n\n return o;\n }.call(this).join(\", \") + \"]\"\n };\n }, a = function a(t) {\n return t[0];\n }, r = function r(t) {\n return t[1];\n }, i;\n }(e.Object);\n }.call(this), function () {\n var t = function t(_t16, e) {\n function i() {\n this.constructor = _t16;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t16[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t16.prototype = new i(), _t16.__super__ = e.prototype, _t16;\n },\n n = {}.hasOwnProperty;\n\n e.Text = function (n) {\n function i(t) {\n var n;\n null == t && (t = []), i.__super__.constructor.apply(this, arguments), this.pieceList = new e.SplittableList(function () {\n var e, i, o;\n\n for (o = [], e = 0, i = t.length; i > e; e++) {\n n = t[e], n.isEmpty() || o.push(n);\n }\n\n return o;\n }());\n }\n\n return t(i, n), i.textForAttachmentWithAttributes = function (t, n) {\n var i;\n return i = new e.AttachmentPiece(t, n), new this([i]);\n }, i.textForStringWithAttributes = function (t, n) {\n var i;\n return i = new e.StringPiece(t, n), new this([i]);\n }, i.fromJSON = function (t) {\n var n, i;\n return i = function () {\n var i, o, r;\n\n for (r = [], i = 0, o = t.length; o > i; i++) {\n n = t[i], r.push(e.Piece.fromJSON(n));\n }\n\n return r;\n }(), new this(i);\n }, i.prototype.copy = function () {\n return this.copyWithPieceList(this.pieceList);\n }, i.prototype.copyWithPieceList = function (t) {\n return new this.constructor(t.consolidate().toArray());\n }, i.prototype.copyUsingObjectMap = function (t) {\n var e, n;\n return n = function () {\n var n, i, o, r, s;\n\n for (o = this.getPieces(), s = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], s.push(null != (r = t.find(e)) ? r : e);\n }\n\n return s;\n }.call(this), new this.constructor(n);\n }, i.prototype.appendText = function (t) {\n return this.insertTextAtPosition(t, this.getLength());\n }, i.prototype.insertTextAtPosition = function (t, e) {\n return this.copyWithPieceList(this.pieceList.insertSplittableListAtPosition(t.pieceList, e));\n }, i.prototype.removeTextAtRange = function (t) {\n return this.copyWithPieceList(this.pieceList.removeObjectsInRange(t));\n }, i.prototype.replaceTextAtRange = function (t, e) {\n return this.removeTextAtRange(e).insertTextAtPosition(t, e[0]);\n }, i.prototype.moveTextFromRangeToPosition = function (t, e) {\n var n, i;\n if (!(t[0] <= e && e <= t[1])) return i = this.getTextAtRange(t), n = i.getLength(), t[0] < e && (e -= n), this.removeTextAtRange(t).insertTextAtPosition(i, e);\n }, i.prototype.addAttributeAtRange = function (t, e, n) {\n var i;\n return i = {}, i[t] = e, this.addAttributesAtRange(i, n);\n }, i.prototype.addAttributesAtRange = function (t, e) {\n return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e, function (e) {\n return e.copyWithAdditionalAttributes(t);\n }));\n }, i.prototype.removeAttributeAtRange = function (t, e) {\n return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e, function (e) {\n return e.copyWithoutAttribute(t);\n }));\n }, i.prototype.setAttributesAtRange = function (t, e) {\n return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e, function (e) {\n return e.copyWithAttributes(t);\n }));\n }, i.prototype.getAttributesAtPosition = function (t) {\n var e, n;\n return null != (e = null != (n = this.pieceList.getObjectAtPosition(t)) ? n.getAttributes() : void 0) ? e : {};\n }, i.prototype.getCommonAttributes = function () {\n var t, n;\n return t = function () {\n var t, e, i, o;\n\n for (i = this.pieceList.toArray(), o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], o.push(n.getAttributes());\n }\n\n return o;\n }.call(this), e.Hash.fromCommonAttributesOfObjects(t).toObject();\n }, i.prototype.getCommonAttributesAtRange = function (t) {\n var e;\n return null != (e = this.getTextAtRange(t).getCommonAttributes()) ? e : {};\n }, i.prototype.getExpandedRangeForAttributeAtOffset = function (t, e) {\n var n, i, o;\n\n for (n = o = e, i = this.getLength(); n > 0 && this.getCommonAttributesAtRange([n - 1, o])[t];) {\n n--;\n }\n\n for (; i > o && this.getCommonAttributesAtRange([e, o + 1])[t];) {\n o++;\n }\n\n return [n, o];\n }, i.prototype.getTextAtRange = function (t) {\n return this.copyWithPieceList(this.pieceList.getSplittableListInRange(t));\n }, i.prototype.getStringAtRange = function (t) {\n return this.pieceList.getSplittableListInRange(t).toString();\n }, i.prototype.getStringAtPosition = function (t) {\n return this.getStringAtRange([t, t + 1]);\n }, i.prototype.startsWithString = function (t) {\n return this.getStringAtRange([0, t.length]) === t;\n }, i.prototype.endsWithString = function (t) {\n var e;\n return e = this.getLength(), this.getStringAtRange([e - t.length, e]) === t;\n }, i.prototype.getAttachmentPieces = function () {\n var t, e, n, i, o;\n\n for (i = this.pieceList.toArray(), o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], null != n.attachment && o.push(n);\n }\n\n return o;\n }, i.prototype.getAttachments = function () {\n var t, e, n, i, o;\n\n for (i = this.getAttachmentPieces(), o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], o.push(n.attachment);\n }\n\n return o;\n }, i.prototype.getAttachmentAndPositionById = function (t) {\n var e, n, i, o, r, s;\n\n for (o = 0, r = this.pieceList.toArray(), e = 0, n = r.length; n > e; e++) {\n if (i = r[e], (null != (s = i.attachment) ? s.id : void 0) === t) return {\n attachment: i.attachment,\n position: o\n };\n o += i.length;\n }\n\n return {\n attachment: null,\n position: null\n };\n }, i.prototype.getAttachmentById = function (t) {\n var e, n, i;\n return i = this.getAttachmentAndPositionById(t), e = i.attachment, n = i.position, e;\n }, i.prototype.getRangeOfAttachment = function (t) {\n var e, n;\n return n = this.getAttachmentAndPositionById(t.id), t = n.attachment, e = n.position, null != t ? [e, e + 1] : void 0;\n }, i.prototype.updateAttributesForAttachment = function (t, e) {\n var n;\n return (n = this.getRangeOfAttachment(e)) ? this.addAttributesAtRange(t, n) : this;\n }, i.prototype.getLength = function () {\n return this.pieceList.getEndPosition();\n }, i.prototype.isEmpty = function () {\n return 0 === this.getLength();\n }, i.prototype.isEqualTo = function (t) {\n var e;\n return i.__super__.isEqualTo.apply(this, arguments) || (null != t && null != (e = t.pieceList) ? e.isEqualTo(this.pieceList) : void 0);\n }, i.prototype.isBlockBreak = function () {\n return 1 === this.getLength() && this.pieceList.getObjectAtIndex(0).isBlockBreak();\n }, i.prototype.eachPiece = function (t) {\n return this.pieceList.eachObject(t);\n }, i.prototype.getPieces = function () {\n return this.pieceList.toArray();\n }, i.prototype.getPieceAtPosition = function (t) {\n return this.pieceList.getObjectAtPosition(t);\n }, i.prototype.contentsForInspection = function () {\n return {\n pieceList: this.pieceList.inspect()\n };\n }, i.prototype.toSerializableText = function () {\n var t;\n return t = this.pieceList.selectSplittableList(function (t) {\n return t.isSerializable();\n }), this.copyWithPieceList(t);\n }, i.prototype.toString = function () {\n return this.pieceList.toString();\n }, i.prototype.toJSON = function () {\n return this.pieceList.toJSON();\n }, i.prototype.toConsole = function () {\n var t;\n return JSON.stringify(function () {\n var e, n, i, o;\n\n for (i = this.pieceList.toArray(), o = [], e = 0, n = i.length; n > e; e++) {\n t = i[e], o.push(JSON.parse(t.toConsole()));\n }\n\n return o;\n }.call(this));\n }, i.prototype.getDirection = function () {\n return e.getDirection(this.toString());\n }, i.prototype.isRTL = function () {\n return \"rtl\" === this.getDirection();\n }, i;\n }(e.Object);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = function s(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n a.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n a = {}.hasOwnProperty,\n u = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n },\n c = [].slice;\n\n t = e.arraysAreEqual, r = e.spliceArray, i = e.getBlockConfig, n = e.getBlockAttributeNames, o = e.getListAttributeNames, e.Block = function (n) {\n function a(t, n) {\n null == t && (t = new e.Text()), null == n && (n = []), a.__super__.constructor.apply(this, arguments), this.text = h(t), this.attributes = n;\n }\n\n var l, h, p, d, f, g, m, v, y;\n return s(a, n), a.fromJSON = function (t) {\n var n;\n return n = e.Text.fromJSON(t.text), new this(n, t.attributes);\n }, a.prototype.isEmpty = function () {\n return this.text.isBlockBreak();\n }, a.prototype.isEqualTo = function (e) {\n return a.__super__.isEqualTo.apply(this, arguments) || this.text.isEqualTo(null != e ? e.text : void 0) && t(this.attributes, null != e ? e.attributes : void 0);\n }, a.prototype.copyWithText = function (t) {\n return new this.constructor(t, this.attributes);\n }, a.prototype.copyWithoutText = function () {\n return this.copyWithText(null);\n }, a.prototype.copyWithAttributes = function (t) {\n return new this.constructor(this.text, t);\n }, a.prototype.copyWithoutAttributes = function () {\n return this.copyWithAttributes(null);\n }, a.prototype.copyUsingObjectMap = function (t) {\n var e;\n return this.copyWithText((e = t.find(this.text)) ? e : this.text.copyUsingObjectMap(t));\n }, a.prototype.addAttribute = function (t) {\n var e;\n return e = this.attributes.concat(d(t)), this.copyWithAttributes(e);\n }, a.prototype.removeAttribute = function (t) {\n var e, n;\n return n = i(t).listAttribute, e = g(g(this.attributes, t), n), this.copyWithAttributes(e);\n }, a.prototype.removeLastAttribute = function () {\n return this.removeAttribute(this.getLastAttribute());\n }, a.prototype.getLastAttribute = function () {\n return f(this.attributes);\n }, a.prototype.getAttributes = function () {\n return this.attributes.slice(0);\n }, a.prototype.getAttributeLevel = function () {\n return this.attributes.length;\n }, a.prototype.getAttributeAtLevel = function (t) {\n return this.attributes[t - 1];\n }, a.prototype.hasAttribute = function (t) {\n return u.call(this.attributes, t) >= 0;\n }, a.prototype.hasAttributes = function () {\n return this.getAttributeLevel() > 0;\n }, a.prototype.getLastNestableAttribute = function () {\n return f(this.getNestableAttributes());\n }, a.prototype.getNestableAttributes = function () {\n var t, e, n, o, r;\n\n for (o = this.attributes, r = [], e = 0, n = o.length; n > e; e++) {\n t = o[e], i(t).nestable && r.push(t);\n }\n\n return r;\n }, a.prototype.getNestingLevel = function () {\n return this.getNestableAttributes().length;\n }, a.prototype.decreaseNestingLevel = function () {\n var t;\n return (t = this.getLastNestableAttribute()) ? this.removeAttribute(t) : this;\n }, a.prototype.increaseNestingLevel = function () {\n var t, e, n;\n return (t = this.getLastNestableAttribute()) ? (n = this.attributes.lastIndexOf(t), e = r.apply(null, [this.attributes, n + 1, 0].concat(c.call(d(t)))), this.copyWithAttributes(e)) : this;\n }, a.prototype.getListItemAttributes = function () {\n var t, e, n, o, r;\n\n for (o = this.attributes, r = [], e = 0, n = o.length; n > e; e++) {\n t = o[e], i(t).listAttribute && r.push(t);\n }\n\n return r;\n }, a.prototype.isListItem = function () {\n var t;\n return null != (t = i(this.getLastAttribute())) ? t.listAttribute : void 0;\n }, a.prototype.isTerminalBlock = function () {\n var t;\n return null != (t = i(this.getLastAttribute())) ? t.terminal : void 0;\n }, a.prototype.breaksOnReturn = function () {\n var t;\n return null != (t = i(this.getLastAttribute())) ? t.breakOnReturn : void 0;\n }, a.prototype.findLineBreakInDirectionFromPosition = function (t, e) {\n var n, i;\n return i = this.toString(), n = function () {\n switch (t) {\n case \"forward\":\n return i.indexOf(\"\\n\", e);\n\n case \"backward\":\n return i.slice(0, e).lastIndexOf(\"\\n\");\n }\n }(), -1 !== n ? n : void 0;\n }, a.prototype.contentsForInspection = function () {\n return {\n text: this.text.inspect(),\n attributes: this.attributes\n };\n }, a.prototype.toString = function () {\n return this.text.toString();\n }, a.prototype.toJSON = function () {\n return {\n text: this.text,\n attributes: this.attributes\n };\n }, a.prototype.getDirection = function () {\n return this.text.getDirection();\n }, a.prototype.isRTL = function () {\n return this.text.isRTL();\n }, a.prototype.getLength = function () {\n return this.text.getLength();\n }, a.prototype.canBeConsolidatedWith = function (t) {\n return !this.hasAttributes() && !t.hasAttributes() && this.getDirection() === t.getDirection();\n }, a.prototype.consolidateWith = function (t) {\n var n, i;\n return n = e.Text.textForStringWithAttributes(\"\\n\"), i = this.getTextWithoutBlockBreak().appendText(n), this.copyWithText(i.appendText(t.text));\n }, a.prototype.splitAtOffset = function (t) {\n var e, n;\n return 0 === t ? (e = null, n = this) : t === this.getLength() ? (e = this, n = null) : (e = this.copyWithText(this.text.getTextAtRange([0, t])), n = this.copyWithText(this.text.getTextAtRange([t, this.getLength()]))), [e, n];\n }, a.prototype.getBlockBreakPosition = function () {\n return this.text.getLength() - 1;\n }, a.prototype.getTextWithoutBlockBreak = function () {\n return m(this.text) ? this.text.getTextAtRange([0, this.getBlockBreakPosition()]) : this.text.copy();\n }, a.prototype.canBeGrouped = function (t) {\n return this.attributes[t];\n }, a.prototype.canBeGroupedWith = function (t, e) {\n var n, r, s, a;\n return s = t.getAttributes(), r = s[e], n = this.attributes[e], !(n !== r || i(n).group === !1 && (a = s[e + 1], u.call(o(), a) < 0) || this.getDirection() !== t.getDirection() && !t.isEmpty());\n }, h = function h(t) {\n return t = y(t), t = l(t);\n }, y = function y(t) {\n var n, i, o, r, s, a;\n return r = !1, a = t.getPieces(), i = 2 <= a.length ? c.call(a, 0, n = a.length - 1) : (n = 0, []), o = a[n++], null == o ? t : (i = function () {\n var t, e, n;\n\n for (n = [], t = 0, e = i.length; e > t; t++) {\n s = i[t], s.isBlockBreak() ? (r = !0, n.push(v(s))) : n.push(s);\n }\n\n return n;\n }(), r ? new e.Text(c.call(i).concat([o])) : t);\n }, p = e.Text.textForStringWithAttributes(\"\\n\", {\n blockBreak: !0\n }), l = function l(t) {\n return m(t) ? t : t.appendText(p);\n }, m = function m(t) {\n var e, n;\n return n = t.getLength(), 0 === n ? !1 : (e = t.getTextAtRange([n - 1, n]), e.isBlockBreak());\n }, v = function v(t) {\n return t.copyWithoutAttribute(\"blockBreak\");\n }, d = function d(t) {\n var e;\n return e = i(t).listAttribute, null != e ? [e, t] : [t];\n }, f = function f(t) {\n return t.slice(-1)[0];\n }, g = function g(t, e) {\n var n;\n return n = t.lastIndexOf(e), -1 === n ? t : r(t, n, 1);\n }, a;\n }(e.Object);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function o(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n r.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty,\n s = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n },\n a = [].slice;\n\n n = e.tagName, i = e.walkTree, t = e.nodeIsAttachmentElement, e.HTMLSanitizer = function (r) {\n function u(t, e) {\n var n;\n n = null != e ? e : {}, this.allowedAttributes = n.allowedAttributes, this.forbiddenProtocols = n.forbiddenProtocols, this.forbiddenElements = n.forbiddenElements, null == this.allowedAttributes && (this.allowedAttributes = c), null == this.forbiddenProtocols && (this.forbiddenProtocols = h), null == this.forbiddenElements && (this.forbiddenElements = l), this.body = p(t);\n }\n\n var c, l, h, p;\n return o(u, r), c = \"style href src width height class\".split(\" \"), h = \"javascript:\".split(\" \"), l = \"script iframe\".split(\" \"), u.sanitize = function (t, e) {\n var n;\n return n = new this(t, e), n.sanitize(), n;\n }, u.prototype.sanitize = function () {\n return this.sanitizeElements(), this.normalizeListElementNesting();\n }, u.prototype.getHTML = function () {\n return this.body.innerHTML;\n }, u.prototype.getBody = function () {\n return this.body;\n }, u.prototype.sanitizeElements = function () {\n var t, n, o, r, s;\n\n for (s = i(this.body), r = []; s.nextNode();) {\n switch (o = s.currentNode, o.nodeType) {\n case Node.ELEMENT_NODE:\n this.elementIsRemovable(o) ? r.push(o) : this.sanitizeElement(o);\n break;\n\n case Node.COMMENT_NODE:\n r.push(o);\n }\n }\n\n for (t = 0, n = r.length; n > t; t++) {\n o = r[t], e.removeNode(o);\n }\n\n return this.body;\n }, u.prototype.sanitizeElement = function (t) {\n var e, n, i, o, r;\n\n for (t.hasAttribute(\"href\") && (o = t.protocol, s.call(this.forbiddenProtocols, o) >= 0 && t.removeAttribute(\"href\")), r = a.call(t.attributes), e = 0, n = r.length; n > e; e++) {\n i = r[e].name, s.call(this.allowedAttributes, i) >= 0 || 0 === i.indexOf(\"data-trix\") || t.removeAttribute(i);\n }\n\n return t;\n }, u.prototype.normalizeListElementNesting = function () {\n var t, e, i, o, r;\n\n for (r = a.call(this.body.querySelectorAll(\"ul,ol\")), t = 0, e = r.length; e > t; t++) {\n i = r[t], (o = i.previousElementSibling) && \"li\" === n(o) && o.appendChild(i);\n }\n\n return this.body;\n }, u.prototype.elementIsRemovable = function (t) {\n return (null != t ? t.nodeType : void 0) === Node.ELEMENT_NODE ? this.elementIsForbidden(t) || this.elementIsntSerializable(t) : void 0;\n }, u.prototype.elementIsForbidden = function (t) {\n var e;\n return e = n(t), s.call(this.forbiddenElements, e) >= 0;\n }, u.prototype.elementIsntSerializable = function (e) {\n return \"false\" === e.getAttribute(\"data-trix-serialize\") && !t(e);\n }, p = function p(t) {\n var e, n, i, o, r;\n\n for (null == t && (t = \"\"), t = t.replace(/<\\/html[^>]*>[^]*$/i, \"\"), e = document.implementation.createHTMLDocument(\"\"), e.documentElement.innerHTML = t, r = e.head.querySelectorAll(\"style\"), i = 0, o = r.length; o > i; i++) {\n n = r[i], e.body.appendChild(n);\n }\n\n return e.body;\n }, u;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l,\n h,\n p = function p(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n d.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n d = {}.hasOwnProperty,\n f = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\n\n t = e.arraysAreEqual, s = e.makeElement, l = e.tagName, r = e.getBlockTagNames, h = e.walkTree, o = e.findClosestElementFromNode, i = e.elementContainsNode, a = e.nodeIsAttachmentElement, u = e.normalizeSpaces, n = e.breakableWhitespacePattern, c = e.squishBreakableWhitespace, e.HTMLParser = function (d) {\n function g(t, e) {\n this.html = t, this.referenceElement = (null != e ? e : {}).referenceElement, this.blocks = [], this.blockElements = [], this.processedElements = [];\n }\n\n var m, v, y, b, A, C, x, w, E, S, R, k;\n return p(g, d), g.parse = function (t, e) {\n var n;\n return n = new this(t, e), n.parse(), n;\n }, g.prototype.getDocument = function () {\n return e.Document.fromJSON(this.blocks);\n }, g.prototype.parse = function () {\n var t, n;\n\n try {\n for (this.createHiddenContainer(), t = e.HTMLSanitizer.sanitize(this.html).getHTML(), this.containerElement.innerHTML = t, n = h(this.containerElement, {\n usingFilter: x\n }); n.nextNode();) {\n this.processNode(n.currentNode);\n }\n\n return this.translateBlockElementMarginsToNewlines();\n } finally {\n this.removeHiddenContainer();\n }\n }, g.prototype.createHiddenContainer = function () {\n return this.referenceElement ? (this.containerElement = this.referenceElement.cloneNode(!1), this.containerElement.removeAttribute(\"id\"), this.containerElement.setAttribute(\"data-trix-internal\", \"\"), this.containerElement.style.display = \"none\", this.referenceElement.parentNode.insertBefore(this.containerElement, this.referenceElement.nextSibling)) : (this.containerElement = s({\n tagName: \"div\",\n style: {\n display: \"none\"\n }\n }), document.body.appendChild(this.containerElement));\n }, g.prototype.removeHiddenContainer = function () {\n return e.removeNode(this.containerElement);\n }, x = function x(t) {\n return \"style\" === l(t) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }, g.prototype.processNode = function (t) {\n switch (t.nodeType) {\n case Node.TEXT_NODE:\n if (!this.isInsignificantTextNode(t)) return this.appendBlockForTextNode(t), this.processTextNode(t);\n break;\n\n case Node.ELEMENT_NODE:\n return this.appendBlockForElement(t), this.processElement(t);\n }\n }, g.prototype.appendBlockForTextNode = function (e) {\n var n, i, o;\n return i = e.parentNode, i === this.currentBlockElement && this.isBlockElement(e.previousSibling) ? this.appendStringWithAttributes(\"\\n\") : i !== this.containerElement && !this.isBlockElement(i) || (n = this.getBlockAttributes(i), t(n, null != (o = this.currentBlock) ? o.attributes : void 0)) ? void 0 : (this.currentBlock = this.appendBlockForAttributesWithElement(n, i), this.currentBlockElement = i);\n }, g.prototype.appendBlockForElement = function (e) {\n var n, o, r, s;\n\n if (r = this.isBlockElement(e), o = i(this.currentBlockElement, e), r && !this.isBlockElement(e.firstChild)) {\n if ((!this.isInsignificantTextNode(e.firstChild) || !this.isBlockElement(e.firstElementChild)) && (n = this.getBlockAttributes(e), e.firstChild)) return o && t(n, this.currentBlock.attributes) ? this.appendStringWithAttributes(\"\\n\") : (this.currentBlock = this.appendBlockForAttributesWithElement(n, e), this.currentBlockElement = e);\n } else if (this.currentBlockElement && !o && !r) return (s = this.findParentBlockElement(e)) ? this.appendBlockForElement(s) : (this.currentBlock = this.appendEmptyBlock(), this.currentBlockElement = null);\n }, g.prototype.findParentBlockElement = function (t) {\n var e;\n\n for (e = t.parentElement; e && e !== this.containerElement;) {\n if (this.isBlockElement(e) && f.call(this.blockElements, e) >= 0) return e;\n e = e.parentElement;\n }\n\n return null;\n }, g.prototype.processTextNode = function (t) {\n var e, n;\n return n = t.data, v(t.parentNode) || (n = c(n), R(null != (e = t.previousSibling) ? e.textContent : void 0) && (n = A(n))), this.appendStringWithAttributes(n, this.getTextAttributes(t.parentNode));\n }, g.prototype.processElement = function (t) {\n var e, n, i, o, r;\n if (a(t)) return e = w(t, \"attachment\"), Object.keys(e).length && (o = this.getTextAttributes(t), this.appendAttachmentWithAttributes(e, o), t.innerHTML = \"\"), this.processedElements.push(t);\n\n switch (l(t)) {\n case \"br\":\n return this.isExtraBR(t) || this.isBlockElement(t.nextSibling) || this.appendStringWithAttributes(\"\\n\", this.getTextAttributes(t)), this.processedElements.push(t);\n\n case \"img\":\n e = {\n url: t.getAttribute(\"src\"),\n contentType: \"image\"\n }, i = b(t);\n\n for (n in i) {\n r = i[n], e[n] = r;\n }\n\n return this.appendAttachmentWithAttributes(e, this.getTextAttributes(t)), this.processedElements.push(t);\n\n case \"tr\":\n if (t.parentNode.firstChild !== t) return this.appendStringWithAttributes(\"\\n\");\n break;\n\n case \"td\":\n if (t.parentNode.firstChild !== t) return this.appendStringWithAttributes(\" | \");\n }\n }, g.prototype.appendBlockForAttributesWithElement = function (t, e) {\n var n;\n return this.blockElements.push(e), n = m(t), this.blocks.push(n), n;\n }, g.prototype.appendEmptyBlock = function () {\n return this.appendBlockForAttributesWithElement([], null);\n }, g.prototype.appendStringWithAttributes = function (t, e) {\n return this.appendPiece(S(t, e));\n }, g.prototype.appendAttachmentWithAttributes = function (t, e) {\n return this.appendPiece(E(t, e));\n }, g.prototype.appendPiece = function (t) {\n return 0 === this.blocks.length && this.appendEmptyBlock(), this.blocks[this.blocks.length - 1].text.push(t);\n }, g.prototype.appendStringToTextAtIndex = function (t, e) {\n var n, i;\n return i = this.blocks[e].text, n = i[i.length - 1], \"string\" === (null != n ? n.type : void 0) ? n.string += t : i.push(S(t));\n }, g.prototype.prependStringToTextAtIndex = function (t, e) {\n var n, i;\n return i = this.blocks[e].text, n = i[0], \"string\" === (null != n ? n.type : void 0) ? n.string = t + n.string : i.unshift(S(t));\n }, S = function S(t, e) {\n var n;\n return null == e && (e = {}), n = \"string\", t = u(t), {\n string: t,\n attributes: e,\n type: n\n };\n }, E = function E(t, e) {\n var n;\n return null == e && (e = {}), n = \"attachment\", {\n attachment: t,\n attributes: e,\n type: n\n };\n }, m = function m(t) {\n var e;\n return null == t && (t = {}), e = [], {\n text: e,\n attributes: t\n };\n }, g.prototype.getTextAttributes = function (t) {\n var n, i, r, s, u, c, l, h, p, d, f, g;\n r = {}, p = e.config.textAttributes;\n\n for (n in p) {\n if (u = p[n], u.tagName && o(t, {\n matchingSelector: u.tagName,\n untilNode: this.containerElement\n })) r[n] = !0;else if (u.parser) {\n if (g = u.parser(t)) {\n for (i = !1, d = this.findBlockElementAncestors(t), c = 0, h = d.length; h > c; c++) {\n if (s = d[c], u.parser(s) === g) {\n i = !0;\n break;\n }\n }\n\n i || (r[n] = g);\n }\n } else u.styleProperty && (g = t.style[u.styleProperty]) && (r[n] = g);\n }\n\n if (a(t)) {\n f = w(t, \"attributes\");\n\n for (l in f) {\n g = f[l], r[l] = g;\n }\n }\n\n return r;\n }, g.prototype.getBlockAttributes = function (t) {\n var n, i, o, r;\n\n for (i = []; t && t !== this.containerElement;) {\n r = e.config.blockAttributes;\n\n for (n in r) {\n o = r[n], o.parse !== !1 && l(t) === o.tagName && ((\"function\" == typeof o.test ? o.test(t) : void 0) || !o.test) && (i.push(n), o.listAttribute && i.push(o.listAttribute));\n }\n\n t = t.parentNode;\n }\n\n return i.reverse();\n }, g.prototype.findBlockElementAncestors = function (t) {\n var e, n;\n\n for (e = []; t && t !== this.containerElement;) {\n n = l(t), f.call(r(), n) >= 0 && e.push(t), t = t.parentNode;\n }\n\n return e;\n }, w = function w(t, e) {\n try {\n return JSON.parse(t.getAttribute(\"data-trix-\" + e));\n } catch (n) {\n return {};\n }\n }, b = function b(t) {\n var e, n, i;\n return i = t.getAttribute(\"width\"), n = t.getAttribute(\"height\"), e = {}, i && (e.width = parseInt(i, 10)), n && (e.height = parseInt(n, 10)), e;\n }, g.prototype.isBlockElement = function (t) {\n var e;\n if ((null != t ? t.nodeType : void 0) === Node.ELEMENT_NODE && !a(t) && !o(t, {\n matchingSelector: \"td\",\n untilNode: this.containerElement\n })) return e = l(t), f.call(r(), e) >= 0 || \"block\" === window.getComputedStyle(t).display;\n }, g.prototype.isInsignificantTextNode = function (t) {\n var e, n, i;\n if ((null != t ? t.nodeType : void 0) === Node.TEXT_NODE && k(t.data) && (n = t.parentNode, i = t.previousSibling, e = t.nextSibling, (!C(n.previousSibling) || this.isBlockElement(n.previousSibling)) && !v(n))) return !i || this.isBlockElement(i) || !e || this.isBlockElement(e);\n }, g.prototype.isExtraBR = function (t) {\n return \"br\" === l(t) && this.isBlockElement(t.parentNode) && t.parentNode.lastChild === t;\n }, v = function v(t) {\n var e;\n return e = window.getComputedStyle(t).whiteSpace, \"pre\" === e || \"pre-wrap\" === e || \"pre-line\" === e;\n }, C = function C(t) {\n return t && !R(t.textContent);\n }, g.prototype.translateBlockElementMarginsToNewlines = function () {\n var t, e, n, i, o, r, s, a;\n\n for (e = this.getMarginOfDefaultBlockElement(), s = this.blocks, a = [], i = n = 0, o = s.length; o > n; i = ++n) {\n t = s[i], (r = this.getMarginOfBlockElementAtIndex(i)) && (r.top > 2 * e.top && this.prependStringToTextAtIndex(\"\\n\", i), a.push(r.bottom > 2 * e.bottom ? this.appendStringToTextAtIndex(\"\\n\", i) : void 0));\n }\n\n return a;\n }, g.prototype.getMarginOfBlockElementAtIndex = function (t) {\n var e, n;\n return !(e = this.blockElements[t]) || !e.textContent || (n = l(e), f.call(r(), n) >= 0 || f.call(this.processedElements, e) >= 0) ? void 0 : y(e);\n }, g.prototype.getMarginOfDefaultBlockElement = function () {\n var t;\n return t = s(e.config.blockAttributes[\"default\"].tagName), this.containerElement.appendChild(t), y(t);\n }, y = function y(t) {\n var e;\n return e = window.getComputedStyle(t), \"block\" === e.display ? {\n top: parseInt(e.marginTop),\n bottom: parseInt(e.marginBottom)\n } : void 0;\n }, A = function A(t) {\n return t.replace(RegExp(\"^\" + n.source + \"+\"), \"\");\n }, k = function k(t) {\n return RegExp(\"^\" + n.source + \"*$\").test(t);\n }, R = function R(t) {\n return /\\s$/.test(t);\n }, g;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r = function r(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n s.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty,\n a = [].slice,\n u = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\n\n t = e.arraysAreEqual, i = e.normalizeRange, o = e.rangeIsCollapsed, n = e.getBlockConfig, e.Document = function (s) {\n function c(t) {\n null == t && (t = []), c.__super__.constructor.apply(this, arguments), 0 === t.length && (t = [new e.Block()]), this.blockList = e.SplittableList.box(t);\n }\n\n var l;\n return r(c, s), c.fromJSON = function (t) {\n var n, i;\n return i = function () {\n var i, o, r;\n\n for (r = [], i = 0, o = t.length; o > i; i++) {\n n = t[i], r.push(e.Block.fromJSON(n));\n }\n\n return r;\n }(), new this(i);\n }, c.fromHTML = function (t, n) {\n return e.HTMLParser.parse(t, n).getDocument();\n }, c.fromString = function (t, n) {\n var i;\n return i = e.Text.textForStringWithAttributes(t, n), new this([new e.Block(i)]);\n }, c.prototype.isEmpty = function () {\n var t;\n return 1 === this.blockList.length && (t = this.getBlockAtIndex(0), t.isEmpty() && !t.hasAttributes());\n }, c.prototype.copy = function (t) {\n var e;\n return null == t && (t = {}), e = t.consolidateBlocks ? this.blockList.consolidate().toArray() : this.blockList.toArray(), new this.constructor(e);\n }, c.prototype.copyUsingObjectsFromDocument = function (t) {\n var n;\n return n = new e.ObjectMap(t.getObjects()), this.copyUsingObjectMap(n);\n }, c.prototype.copyUsingObjectMap = function (t) {\n var e, n, i;\n return n = function () {\n var n, o, r, s;\n\n for (r = this.getBlocks(), s = [], n = 0, o = r.length; o > n; n++) {\n e = r[n], s.push((i = t.find(e)) ? i : e.copyUsingObjectMap(t));\n }\n\n return s;\n }.call(this), new this.constructor(n);\n }, c.prototype.copyWithBaseBlockAttributes = function (t) {\n var e, n, i;\n return null == t && (t = []), i = function () {\n var i, o, r, s;\n\n for (r = this.getBlocks(), s = [], i = 0, o = r.length; o > i; i++) {\n n = r[i], e = t.concat(n.getAttributes()), s.push(n.copyWithAttributes(e));\n }\n\n return s;\n }.call(this), new this.constructor(i);\n }, c.prototype.replaceBlock = function (t, e) {\n var n;\n return n = this.blockList.indexOf(t), -1 === n ? this : new this.constructor(this.blockList.replaceObjectAtIndex(e, n));\n }, c.prototype.insertDocumentAtRange = function (t, e) {\n var n, r, s, a, u, c, l;\n return r = t.blockList, u = (e = i(e))[0], c = this.locationFromPosition(u), s = c.index, a = c.offset, l = this, n = this.getBlockAtPosition(u), o(e) && n.isEmpty() && !n.hasAttributes() ? l = new this.constructor(l.blockList.removeObjectAtIndex(s)) : n.getBlockBreakPosition() === a && u++, l = l.removeTextAtRange(e), new this.constructor(l.blockList.insertSplittableListAtPosition(r, u));\n }, c.prototype.mergeDocumentAtRange = function (e, n) {\n var o, r, s, a, u, c, l, h, p, d, f, g;\n return f = (n = i(n))[0], d = this.locationFromPosition(f), r = this.getBlockAtIndex(d.index).getAttributes(), o = e.getBaseBlockAttributes(), g = r.slice(-o.length), t(o, g) ? (l = r.slice(0, -o.length), c = e.copyWithBaseBlockAttributes(l)) : c = e.copy({\n consolidateBlocks: !0\n }).copyWithBaseBlockAttributes(r), s = c.getBlockCount(), a = c.getBlockAtIndex(0), t(r, a.getAttributes()) ? (u = a.getTextWithoutBlockBreak(), p = this.insertTextAtRange(u, n), s > 1 && (c = new this.constructor(c.getBlocks().slice(1)), h = f + u.getLength(), p = p.insertDocumentAtRange(c, h))) : p = this.insertDocumentAtRange(c, n), p;\n }, c.prototype.insertTextAtRange = function (t, e) {\n var n, o, r, s, a;\n return a = (e = i(e))[0], s = this.locationFromPosition(a), o = s.index, r = s.offset, n = this.removeTextAtRange(e), new this.constructor(n.blockList.editObjectAtIndex(o, function (e) {\n return e.copyWithText(e.text.insertTextAtPosition(t, r));\n }));\n }, c.prototype.removeTextAtRange = function (t) {\n var e, n, r, s, a, u, c, l, h, p, d, f, g, m, v, y, b, A, C, x, w;\n return p = t = i(t), l = p[0], A = p[1], o(t) ? this : (d = this.locationRangeFromRange(t), u = d[0], y = d[1], a = u.index, c = u.offset, s = this.getBlockAtIndex(a), v = y.index, b = y.offset, m = this.getBlockAtIndex(v), f = A - l === 1 && s.getBlockBreakPosition() === c && m.getBlockBreakPosition() !== b && \"\\n\" === m.text.getStringAtPosition(b), f ? r = this.blockList.editObjectAtIndex(v, function (t) {\n return t.copyWithText(t.text.removeTextAtRange([b, b + 1]));\n }) : (h = s.text.getTextAtRange([0, c]), C = m.text.getTextAtRange([b, m.getLength()]), x = h.appendText(C), g = a !== v && 0 === c, w = g && s.getAttributeLevel() >= m.getAttributeLevel(), n = w ? m.copyWithText(x) : s.copyWithText(x), e = v + 1 - a, r = this.blockList.splice(a, e, n)), new this.constructor(r));\n }, c.prototype.moveTextFromRangeToPosition = function (t, e) {\n var n, o, r, s, u, c, l, h, p, d;\n return c = t = i(t), p = c[0], r = c[1], e >= p && r >= e ? this : (o = this.getDocumentAtRange(t), h = this.removeTextAtRange(t), u = e > p, u && (e -= o.getLength()), l = o.getBlocks(), s = l[0], n = 2 <= l.length ? a.call(l, 1) : [], 0 === n.length ? (d = s.getTextWithoutBlockBreak(), u && (e += 1)) : d = s.text, h = h.insertTextAtRange(d, e), 0 === n.length ? h : (o = new this.constructor(n), e += d.getLength(), h.insertDocumentAtRange(o, e)));\n }, c.prototype.addAttributeAtRange = function (t, e, i) {\n var o;\n return o = this.blockList, this.eachBlockAtRange(i, function (i, r, s) {\n return o = o.editObjectAtIndex(s, function () {\n return n(t) ? i.addAttribute(t, e) : r[0] === r[1] ? i : i.copyWithText(i.text.addAttributeAtRange(t, e, r));\n });\n }), new this.constructor(o);\n }, c.prototype.addAttribute = function (t, e) {\n var n;\n return n = this.blockList, this.eachBlock(function (i, o) {\n return n = n.editObjectAtIndex(o, function () {\n return i.addAttribute(t, e);\n });\n }), new this.constructor(n);\n }, c.prototype.removeAttributeAtRange = function (t, e) {\n var i;\n return i = this.blockList, this.eachBlockAtRange(e, function (e, o, r) {\n return n(t) ? i = i.editObjectAtIndex(r, function () {\n return e.removeAttribute(t);\n }) : o[0] !== o[1] ? i = i.editObjectAtIndex(r, function () {\n return e.copyWithText(e.text.removeAttributeAtRange(t, o));\n }) : void 0;\n }), new this.constructor(i);\n }, c.prototype.updateAttributesForAttachment = function (t, e) {\n var n, i, o, r;\n return o = (i = this.getRangeOfAttachment(e))[0], n = this.locationFromPosition(o).index, r = this.getTextAtIndex(n), new this.constructor(this.blockList.editObjectAtIndex(n, function (n) {\n return n.copyWithText(r.updateAttributesForAttachment(t, e));\n }));\n }, c.prototype.removeAttributeForAttachment = function (t, e) {\n var n;\n return n = this.getRangeOfAttachment(e), this.removeAttributeAtRange(t, n);\n }, c.prototype.insertBlockBreakAtRange = function (t) {\n var n, o, r, s;\n return s = (t = i(t))[0], r = this.locationFromPosition(s).offset, o = this.removeTextAtRange(t), 0 === r && (n = [new e.Block()]), new this.constructor(o.blockList.insertSplittableListAtPosition(new e.SplittableList(n), s));\n }, c.prototype.applyBlockAttributeAtRange = function (t, e, i) {\n var o, r, s, a;\n return s = this.expandRangeToLineBreaksAndSplitBlocks(i), r = s.document, i = s.range, o = n(t), o.listAttribute ? (r = r.removeLastListAttributeAtRange(i, {\n exceptAttributeName: t\n }), a = r.convertLineBreaksToBlockBreaksInRange(i), r = a.document, i = a.range) : r = o.exclusive ? r.removeBlockAttributesAtRange(i) : o.terminal ? r.removeLastTerminalAttributeAtRange(i) : r.consolidateBlocksAtRange(i), r.addAttributeAtRange(t, e, i);\n }, c.prototype.removeLastListAttributeAtRange = function (t, e) {\n var i;\n return null == e && (e = {}), i = this.blockList, this.eachBlockAtRange(t, function (t, o, r) {\n var s;\n if ((s = t.getLastAttribute()) && n(s).listAttribute && s !== e.exceptAttributeName) return i = i.editObjectAtIndex(r, function () {\n return t.removeAttribute(s);\n });\n }), new this.constructor(i);\n }, c.prototype.removeLastTerminalAttributeAtRange = function (t) {\n var e;\n return e = this.blockList, this.eachBlockAtRange(t, function (t, i, o) {\n var r;\n if ((r = t.getLastAttribute()) && n(r).terminal) return e = e.editObjectAtIndex(o, function () {\n return t.removeAttribute(r);\n });\n }), new this.constructor(e);\n }, c.prototype.removeBlockAttributesAtRange = function (t) {\n var e;\n return e = this.blockList, this.eachBlockAtRange(t, function (t, n, i) {\n return t.hasAttributes() ? e = e.editObjectAtIndex(i, function () {\n return t.copyWithoutAttributes();\n }) : void 0;\n }), new this.constructor(e);\n }, c.prototype.expandRangeToLineBreaksAndSplitBlocks = function (t) {\n var e, n, o, r, s, a, u, c, l;\n return a = t = i(t), l = a[0], r = a[1], c = this.locationFromPosition(l), o = this.locationFromPosition(r), e = this, u = e.getBlockAtIndex(c.index), null != (c.offset = u.findLineBreakInDirectionFromPosition(\"backward\", c.offset)) && (s = e.positionFromLocation(c), e = e.insertBlockBreakAtRange([s, s + 1]), o.index += 1, o.offset -= e.getBlockAtIndex(c.index).getLength(), c.index += 1), c.offset = 0, 0 === o.offset && o.index > c.index ? (o.index -= 1, o.offset = e.getBlockAtIndex(o.index).getBlockBreakPosition()) : (n = e.getBlockAtIndex(o.index), \"\\n\" === n.text.getStringAtRange([o.offset - 1, o.offset]) ? o.offset -= 1 : o.offset = n.findLineBreakInDirectionFromPosition(\"forward\", o.offset), o.offset !== n.getBlockBreakPosition() && (s = e.positionFromLocation(o), e = e.insertBlockBreakAtRange([s, s + 1]))), l = e.positionFromLocation(c), r = e.positionFromLocation(o), t = i([l, r]), {\n document: e,\n range: t\n };\n }, c.prototype.convertLineBreaksToBlockBreaksInRange = function (t) {\n var e, n, o;\n return n = (t = i(t))[0], o = this.getStringAtRange(t).slice(0, -1), e = this, o.replace(/.*?\\n/g, function (t) {\n return n += t.length, e = e.insertBlockBreakAtRange([n - 1, n]);\n }), {\n document: e,\n range: t\n };\n }, c.prototype.consolidateBlocksAtRange = function (t) {\n var e, n, o, r, s;\n return o = t = i(t), s = o[0], n = o[1], r = this.locationFromPosition(s).index, e = this.locationFromPosition(n).index, new this.constructor(this.blockList.consolidateFromIndexToIndex(r, e));\n }, c.prototype.getDocumentAtRange = function (t) {\n var e;\n return t = i(t), e = this.blockList.getSplittableListInRange(t).toArray(), new this.constructor(e);\n }, c.prototype.getStringAtRange = function (t) {\n var e, n, o;\n return o = t = i(t), n = o[o.length - 1], n !== this.getLength() && (e = -1), this.getDocumentAtRange(t).toString().slice(0, e);\n }, c.prototype.getBlockAtIndex = function (t) {\n return this.blockList.getObjectAtIndex(t);\n }, c.prototype.getBlockAtPosition = function (t) {\n var e;\n return e = this.locationFromPosition(t).index, this.getBlockAtIndex(e);\n }, c.prototype.getTextAtIndex = function (t) {\n var e;\n return null != (e = this.getBlockAtIndex(t)) ? e.text : void 0;\n }, c.prototype.getTextAtPosition = function (t) {\n var e;\n return e = this.locationFromPosition(t).index, this.getTextAtIndex(e);\n }, c.prototype.getPieceAtPosition = function (t) {\n var e, n, i;\n return i = this.locationFromPosition(t), e = i.index, n = i.offset, this.getTextAtIndex(e).getPieceAtPosition(n);\n }, c.prototype.getCharacterAtPosition = function (t) {\n var e, n, i;\n return i = this.locationFromPosition(t), e = i.index, n = i.offset, this.getTextAtIndex(e).getStringAtRange([n, n + 1]);\n }, c.prototype.getLength = function () {\n return this.blockList.getEndPosition();\n }, c.prototype.getBlocks = function () {\n return this.blockList.toArray();\n }, c.prototype.getBlockCount = function () {\n return this.blockList.length;\n }, c.prototype.getEditCount = function () {\n return this.editCount;\n }, c.prototype.eachBlock = function (t) {\n return this.blockList.eachObject(t);\n }, c.prototype.eachBlockAtRange = function (t, e) {\n var n, o, r, s, a, u, c, l, h, p, d, f;\n if (u = t = i(t), d = u[0], r = u[1], p = this.locationFromPosition(d), o = this.locationFromPosition(r), p.index === o.index) return n = this.getBlockAtIndex(p.index), f = [p.offset, o.offset], e(n, f, p.index);\n\n for (h = [], a = s = c = p.index, l = o.index; l >= c ? l >= s : s >= l; a = l >= c ? ++s : --s) {\n (n = this.getBlockAtIndex(a)) ? (f = function () {\n switch (a) {\n case p.index:\n return [p.offset, n.text.getLength()];\n\n case o.index:\n return [0, o.offset];\n\n default:\n return [0, n.text.getLength()];\n }\n }(), h.push(e(n, f, a))) : h.push(void 0);\n }\n\n return h;\n }, c.prototype.getCommonAttributesAtRange = function (t) {\n var n, r, s;\n return r = (t = i(t))[0], o(t) ? this.getCommonAttributesAtPosition(r) : (s = [], n = [], this.eachBlockAtRange(t, function (t, e) {\n return e[0] !== e[1] ? (s.push(t.text.getCommonAttributesAtRange(e)), n.push(l(t))) : void 0;\n }), e.Hash.fromCommonAttributesOfObjects(s).merge(e.Hash.fromCommonAttributesOfObjects(n)).toObject());\n }, c.prototype.getCommonAttributesAtPosition = function (t) {\n var n, i, o, r, s, a, c, h, p, d;\n if (p = this.locationFromPosition(t), s = p.index, h = p.offset, o = this.getBlockAtIndex(s), !o) return {};\n r = l(o), n = o.text.getAttributesAtPosition(h), i = o.text.getAttributesAtPosition(h - 1), a = function () {\n var t, n;\n t = e.config.textAttributes, n = [];\n\n for (c in t) {\n d = t[c], d.inheritable && n.push(c);\n }\n\n return n;\n }();\n\n for (c in i) {\n d = i[c], (d === n[c] || u.call(a, c) >= 0) && (r[c] = d);\n }\n\n return r;\n }, c.prototype.getRangeOfCommonAttributeAtPosition = function (t, e) {\n var n, o, r, s, a, u, c, l, h;\n return a = this.locationFromPosition(e), r = a.index, s = a.offset, h = this.getTextAtIndex(r), u = h.getExpandedRangeForAttributeAtOffset(t, s), l = u[0], o = u[1], c = this.positionFromLocation({\n index: r,\n offset: l\n }), n = this.positionFromLocation({\n index: r,\n offset: o\n }), i([c, n]);\n }, c.prototype.getBaseBlockAttributes = function () {\n var t, e, n, i, o, r, s;\n\n for (t = this.getBlockAtIndex(0).getAttributes(), n = i = 1, s = this.getBlockCount(); s >= 1 ? s > i : i > s; n = s >= 1 ? ++i : --i) {\n e = this.getBlockAtIndex(n).getAttributes(), r = Math.min(t.length, e.length), t = function () {\n var n, i, s;\n\n for (s = [], o = n = 0, i = r; (i >= 0 ? i > n : n > i) && e[o] === t[o]; o = i >= 0 ? ++n : --n) {\n s.push(e[o]);\n }\n\n return s;\n }();\n }\n\n return t;\n }, l = function l(t) {\n var e, n;\n return n = {}, (e = t.getLastAttribute()) && (n[e] = !0), n;\n }, c.prototype.getAttachmentById = function (t) {\n var e, n, i, o;\n\n for (o = this.getAttachments(), n = 0, i = o.length; i > n; n++) {\n if (e = o[n], e.id === t) return e;\n }\n }, c.prototype.getAttachmentPieces = function () {\n var t;\n return t = [], this.blockList.eachObject(function (e) {\n var n;\n return n = e.text, t = t.concat(n.getAttachmentPieces());\n }), t;\n }, c.prototype.getAttachments = function () {\n var t, e, n, i, o;\n\n for (i = this.getAttachmentPieces(), o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], o.push(n.attachment);\n }\n\n return o;\n }, c.prototype.getRangeOfAttachment = function (t) {\n var e, n, o, r, s, a, u;\n\n for (r = 0, s = this.blockList.toArray(), n = e = 0, o = s.length; o > e; n = ++e) {\n if (a = s[n].text, u = a.getRangeOfAttachment(t)) return i([r + u[0], r + u[1]]);\n r += a.getLength();\n }\n }, c.prototype.getLocationRangeOfAttachment = function (t) {\n var e;\n return e = this.getRangeOfAttachment(t), this.locationRangeFromRange(e);\n }, c.prototype.getAttachmentPieceForAttachment = function (t) {\n var e, n, i, o;\n\n for (o = this.getAttachmentPieces(), e = 0, n = o.length; n > e; e++) {\n if (i = o[e], i.attachment === t) return i;\n }\n }, c.prototype.findRangesForBlockAttribute = function (t) {\n var e, n, i, o, r, s, a;\n\n for (r = 0, s = [], a = this.getBlocks(), n = 0, i = a.length; i > n; n++) {\n e = a[n], o = e.getLength(), e.hasAttribute(t) && s.push([r, r + o]), r += o;\n }\n\n return s;\n }, c.prototype.findRangesForTextAttribute = function (t, e) {\n var n, i, o, r, s, a, u, c, l, h;\n\n for (h = (null != e ? e : {}).withValue, a = 0, u = [], c = [], r = function r(e) {\n return null != h ? e.getAttribute(t) === h : e.hasAttribute(t);\n }, l = this.getPieces(), n = 0, i = l.length; i > n; n++) {\n s = l[n], o = s.getLength(), r(s) && (u[1] === a ? u[1] = a + o : c.push(u = [a, a + o])), a += o;\n }\n\n return c;\n }, c.prototype.locationFromPosition = function (t) {\n var e, n;\n return n = this.blockList.findIndexAndOffsetAtPosition(Math.max(0, t)), null != n.index ? n : (e = this.getBlocks(), {\n index: e.length - 1,\n offset: e[e.length - 1].getLength()\n });\n }, c.prototype.positionFromLocation = function (t) {\n return this.blockList.findPositionAtIndexAndOffset(t.index, t.offset);\n }, c.prototype.locationRangeFromPosition = function (t) {\n return i(this.locationFromPosition(t));\n }, c.prototype.locationRangeFromRange = function (t) {\n var e, n, o, r;\n if (t = i(t)) return r = t[0], n = t[1], o = this.locationFromPosition(r), e = this.locationFromPosition(n), i([o, e]);\n }, c.prototype.rangeFromLocationRange = function (t) {\n var e, n;\n return t = i(t), e = this.positionFromLocation(t[0]), o(t) || (n = this.positionFromLocation(t[1])), i([e, n]);\n }, c.prototype.isEqualTo = function (t) {\n return this.blockList.isEqualTo(null != t ? t.blockList : void 0);\n }, c.prototype.getTexts = function () {\n var t, e, n, i, o;\n\n for (i = this.getBlocks(), o = [], e = 0, n = i.length; n > e; e++) {\n t = i[e], o.push(t.text);\n }\n\n return o;\n }, c.prototype.getPieces = function () {\n var t, e, n, i, o;\n\n for (n = [], i = this.getTexts(), t = 0, e = i.length; e > t; t++) {\n o = i[t], n.push.apply(n, o.getPieces());\n }\n\n return n;\n }, c.prototype.getObjects = function () {\n return this.getBlocks().concat(this.getTexts()).concat(this.getPieces());\n }, c.prototype.toSerializableDocument = function () {\n var t;\n return t = [], this.blockList.eachObject(function (e) {\n return t.push(e.copyWithText(e.text.toSerializableText()));\n }), new this.constructor(t);\n }, c.prototype.toString = function () {\n return this.blockList.toString();\n }, c.prototype.toJSON = function () {\n return this.blockList.toJSON();\n }, c.prototype.toConsole = function () {\n var t;\n return JSON.stringify(function () {\n var e, n, i, o;\n\n for (i = this.blockList.toArray(), o = [], e = 0, n = i.length; n > e; e++) {\n t = i[e], o.push(JSON.parse(t.text.toConsole()));\n }\n\n return o;\n }.call(this));\n }, c;\n }(e.Object);\n }.call(this), function () {\n e.LineBreakInsertion = function () {\n function t(t) {\n var e;\n this.composition = t, this.document = this.composition.document, e = this.composition.getSelectedRange(), this.startPosition = e[0], this.endPosition = e[1], this.startLocation = this.document.locationFromPosition(this.startPosition), this.endLocation = this.document.locationFromPosition(this.endPosition), this.block = this.document.getBlockAtIndex(this.endLocation.index), this.breaksOnReturn = this.block.breaksOnReturn(), this.previousCharacter = this.block.text.getStringAtPosition(this.endLocation.offset - 1), this.nextCharacter = this.block.text.getStringAtPosition(this.endLocation.offset);\n }\n\n return t.prototype.shouldInsertBlockBreak = function () {\n return this.block.hasAttributes() && this.block.isListItem() && !this.block.isEmpty() ? 0 !== this.startLocation.offset : this.breaksOnReturn && \"\\n\" !== this.nextCharacter;\n }, t.prototype.shouldBreakFormattedBlock = function () {\n return this.block.hasAttributes() && !this.block.isListItem() && (this.breaksOnReturn && \"\\n\" === this.nextCharacter || \"\\n\" === this.previousCharacter);\n }, t.prototype.shouldDecreaseListLevel = function () {\n return this.block.hasAttributes() && this.block.isListItem() && this.block.isEmpty();\n }, t.prototype.shouldPrependListItem = function () {\n return this.block.isListItem() && 0 === this.startLocation.offset && !this.block.isEmpty();\n }, t.prototype.shouldRemoveLastBlockAttribute = function () {\n return this.block.hasAttributes() && !this.block.isListItem() && this.block.isEmpty();\n }, t;\n }();\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l,\n h = function h(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n p.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n p = {}.hasOwnProperty;\n\n s = e.normalizeRange, c = e.rangesAreEqual, u = e.rangeIsCollapsed, a = e.objectsAreEqual, t = e.arrayStartsWith, l = e.summarizeArrayChange, i = e.getAllAttributeNames, o = e.getBlockConfig, r = e.getTextConfig, n = e.extend, e.Composition = function (p) {\n function d() {\n this.document = new e.Document(), this.attachments = [], this.currentAttributes = {}, this.revision = 0;\n }\n\n var f;\n return h(d, p), d.prototype.setDocument = function (t) {\n var e;\n return t.isEqualTo(this.document) ? void 0 : (this.document = t, this.refreshAttachments(), this.revision++, null != (e = this.delegate) && \"function\" == typeof e.compositionDidChangeDocument ? e.compositionDidChangeDocument(t) : void 0);\n }, d.prototype.getSnapshot = function () {\n return {\n document: this.document,\n selectedRange: this.getSelectedRange()\n };\n }, d.prototype.loadSnapshot = function (t) {\n var n, i, o, r;\n return n = t.document, r = t.selectedRange, null != (i = this.delegate) && \"function\" == typeof i.compositionWillLoadSnapshot && i.compositionWillLoadSnapshot(), this.setDocument(null != n ? n : new e.Document()), this.setSelection(null != r ? r : [0, 0]), null != (o = this.delegate) && \"function\" == typeof o.compositionDidLoadSnapshot ? o.compositionDidLoadSnapshot() : void 0;\n }, d.prototype.insertText = function (t, e) {\n var n, i, o, r;\n return r = (null != e ? e : {\n updatePosition: !0\n }).updatePosition, i = this.getSelectedRange(), this.setDocument(this.document.insertTextAtRange(t, i)), o = i[0], n = o + t.getLength(), r && this.setSelection(n), this.notifyDelegateOfInsertionAtRange([o, n]);\n }, d.prototype.insertBlock = function (t) {\n var n;\n return null == t && (t = new e.Block()), n = new e.Document([t]), this.insertDocument(n);\n }, d.prototype.insertDocument = function (t) {\n var n, i, o;\n return null == t && (t = new e.Document()), i = this.getSelectedRange(), this.setDocument(this.document.insertDocumentAtRange(t, i)), o = i[0], n = o + t.getLength(), this.setSelection(n), this.notifyDelegateOfInsertionAtRange([o, n]);\n }, d.prototype.insertString = function (t, n) {\n var i, o;\n return i = this.getCurrentTextAttributes(), o = e.Text.textForStringWithAttributes(t, i), this.insertText(o, n);\n }, d.prototype.insertBlockBreak = function () {\n var t, e, n;\n return e = this.getSelectedRange(), this.setDocument(this.document.insertBlockBreakAtRange(e)), n = e[0], t = n + 1, this.setSelection(t), this.notifyDelegateOfInsertionAtRange([n, t]);\n }, d.prototype.insertLineBreak = function () {\n var t, n;\n return n = new e.LineBreakInsertion(this), n.shouldDecreaseListLevel() ? (this.decreaseListLevel(), this.setSelection(n.startPosition)) : n.shouldPrependListItem() ? (t = new e.Document([n.block.copyWithoutText()]), this.insertDocument(t)) : n.shouldInsertBlockBreak() ? this.insertBlockBreak() : n.shouldRemoveLastBlockAttribute() ? this.removeLastBlockAttribute() : n.shouldBreakFormattedBlock() ? this.breakFormattedBlock(n) : this.insertString(\"\\n\");\n }, d.prototype.insertHTML = function (t) {\n var n, i, o, r;\n return n = e.Document.fromHTML(t), o = this.getSelectedRange(), this.setDocument(this.document.mergeDocumentAtRange(n, o)), r = o[0], i = r + n.getLength() - 1, this.setSelection(i), this.notifyDelegateOfInsertionAtRange([r, i]);\n }, d.prototype.replaceHTML = function (t) {\n var n, i, o;\n return n = e.Document.fromHTML(t).copyUsingObjectsFromDocument(this.document), i = this.getLocationRange({\n strict: !1\n }), o = this.document.rangeFromLocationRange(i), this.setDocument(n), this.setSelection(o);\n }, d.prototype.insertFile = function (t) {\n return this.insertFiles([t]);\n }, d.prototype.insertFiles = function (t) {\n var n, i, o, r, s, a;\n\n for (i = [], r = 0, s = t.length; s > r; r++) {\n o = t[r], (null != (a = this.delegate) ? a.compositionShouldAcceptFile(o) : void 0) && (n = e.Attachment.attachmentForFile(o), i.push(n));\n }\n\n return this.insertAttachments(i);\n }, d.prototype.insertAttachment = function (t) {\n return this.insertAttachments([t]);\n }, d.prototype.insertAttachments = function (t) {\n var n, i, o, r, s, a, u, c, l;\n\n for (c = new e.Text(), r = 0, s = t.length; s > r; r++) {\n n = t[r], l = n.getType(), a = null != (u = e.config.attachments[l]) ? u.presentation : void 0, o = this.getCurrentTextAttributes(), a && (o.presentation = a), i = e.Text.textForAttachmentWithAttributes(n, o), c = c.appendText(i);\n }\n\n return this.insertText(c);\n }, d.prototype.shouldManageDeletingInDirection = function (t) {\n var e;\n\n if (e = this.getLocationRange(), u(e)) {\n if (\"backward\" === t && 0 === e[0].offset) return !0;\n if (this.shouldManageMovingCursorInDirection(t)) return !0;\n } else if (e[0].index !== e[1].index) return !0;\n\n return !1;\n }, d.prototype.deleteInDirection = function (t, e) {\n var n, i, o, r, s, a, c, l;\n return r = (null != e ? e : {}).length, s = this.getLocationRange(), a = this.getSelectedRange(), c = u(a), c ? o = \"backward\" === t && 0 === s[0].offset : l = s[0].index !== s[1].index, o && this.canDecreaseBlockAttributeLevel() && (i = this.getBlock(), i.isListItem() ? this.decreaseListLevel() : this.decreaseBlockAttributeLevel(), this.setSelection(a[0]), i.isEmpty()) ? !1 : (c && (a = this.getExpandedRangeInDirection(t, {\n length: r\n }), \"backward\" === t && (n = this.getAttachmentAtRange(a))), n ? (this.editAttachment(n), !1) : (this.setDocument(this.document.removeTextAtRange(a)), this.setSelection(a[0]), o || l ? !1 : void 0));\n }, d.prototype.moveTextFromRange = function (t) {\n var e;\n return e = this.getSelectedRange()[0], this.setDocument(this.document.moveTextFromRangeToPosition(t, e)), this.setSelection(e);\n }, d.prototype.removeAttachment = function (t) {\n var e;\n return (e = this.document.getRangeOfAttachment(t)) ? (this.stopEditingAttachment(), this.setDocument(this.document.removeTextAtRange(e)), this.setSelection(e[0])) : void 0;\n }, d.prototype.removeLastBlockAttribute = function () {\n var t, e, n, i;\n return n = this.getSelectedRange(), i = n[0], e = n[1], t = this.document.getBlockAtPosition(e), this.removeCurrentAttribute(t.getLastAttribute()), this.setSelection(i);\n }, f = \" \", d.prototype.insertPlaceholder = function () {\n return this.placeholderPosition = this.getPosition(), this.insertString(f);\n }, d.prototype.selectPlaceholder = function () {\n return null != this.placeholderPosition ? (this.setSelectedRange([this.placeholderPosition, this.placeholderPosition + f.length]), this.getSelectedRange()) : void 0;\n }, d.prototype.forgetPlaceholder = function () {\n return this.placeholderPosition = null;\n }, d.prototype.hasCurrentAttribute = function (t) {\n var e;\n return e = this.currentAttributes[t], null != e && e !== !1;\n }, d.prototype.toggleCurrentAttribute = function (t) {\n var e;\n return (e = !this.currentAttributes[t]) ? this.setCurrentAttribute(t, e) : this.removeCurrentAttribute(t);\n }, d.prototype.canSetCurrentAttribute = function (t) {\n return o(t) ? this.canSetCurrentBlockAttribute(t) : this.canSetCurrentTextAttribute(t);\n }, d.prototype.canSetCurrentTextAttribute = function () {\n var t, e, n, i, o;\n\n if (e = this.getSelectedDocument()) {\n for (o = e.getAttachments(), n = 0, i = o.length; i > n; n++) {\n if (t = o[n], !t.hasContent()) return !1;\n }\n\n return !0;\n }\n }, d.prototype.canSetCurrentBlockAttribute = function () {\n var t;\n if (t = this.getBlock()) return !t.isTerminalBlock();\n }, d.prototype.setCurrentAttribute = function (t, e) {\n return o(t) ? this.setBlockAttribute(t, e) : (this.setTextAttribute(t, e), this.currentAttributes[t] = e, this.notifyDelegateOfCurrentAttributesChange());\n }, d.prototype.setTextAttribute = function (t, n) {\n var i, o, r, s;\n if (o = this.getSelectedRange()) return r = o[0], i = o[1], r !== i ? this.setDocument(this.document.addAttributeAtRange(t, n, o)) : \"href\" === t ? (s = e.Text.textForStringWithAttributes(n, {\n href: n\n }), this.insertText(s)) : void 0;\n }, d.prototype.setBlockAttribute = function (t, e) {\n var n, i;\n if (i = this.getSelectedRange()) return this.canSetCurrentAttribute(t) ? (n = this.getBlock(), this.setDocument(this.document.applyBlockAttributeAtRange(t, e, i)), this.setSelection(i)) : void 0;\n }, d.prototype.removeCurrentAttribute = function (t) {\n return o(t) ? (this.removeBlockAttribute(t), this.updateCurrentAttributes()) : (this.removeTextAttribute(t), delete this.currentAttributes[t], this.notifyDelegateOfCurrentAttributesChange());\n }, d.prototype.removeTextAttribute = function (t) {\n var e;\n if (e = this.getSelectedRange()) return this.setDocument(this.document.removeAttributeAtRange(t, e));\n }, d.prototype.removeBlockAttribute = function (t) {\n var e;\n if (e = this.getSelectedRange()) return this.setDocument(this.document.removeAttributeAtRange(t, e));\n }, d.prototype.canDecreaseNestingLevel = function () {\n var t;\n return (null != (t = this.getBlock()) ? t.getNestingLevel() : void 0) > 0;\n }, d.prototype.canIncreaseNestingLevel = function () {\n var e, n, i;\n if (e = this.getBlock()) return (null != (i = o(e.getLastNestableAttribute())) ? i.listAttribute : 0) ? (n = this.getPreviousBlock()) ? t(n.getListItemAttributes(), e.getListItemAttributes()) : void 0 : e.getNestingLevel() > 0;\n }, d.prototype.decreaseNestingLevel = function () {\n var t;\n if (t = this.getBlock()) return this.setDocument(this.document.replaceBlock(t, t.decreaseNestingLevel()));\n }, d.prototype.increaseNestingLevel = function () {\n var t;\n if (t = this.getBlock()) return this.setDocument(this.document.replaceBlock(t, t.increaseNestingLevel()));\n }, d.prototype.canDecreaseBlockAttributeLevel = function () {\n var t;\n return (null != (t = this.getBlock()) ? t.getAttributeLevel() : void 0) > 0;\n }, d.prototype.decreaseBlockAttributeLevel = function () {\n var t, e;\n return (t = null != (e = this.getBlock()) ? e.getLastAttribute() : void 0) ? this.removeCurrentAttribute(t) : void 0;\n }, d.prototype.decreaseListLevel = function () {\n var t, e, n, i, o, r;\n\n for (r = this.getSelectedRange()[0], o = this.document.locationFromPosition(r).index, n = o, t = this.getBlock().getAttributeLevel(); (e = this.document.getBlockAtIndex(n + 1)) && e.isListItem() && e.getAttributeLevel() > t;) {\n n++;\n }\n\n return r = this.document.positionFromLocation({\n index: o,\n offset: 0\n }), i = this.document.positionFromLocation({\n index: n,\n offset: 0\n }), this.setDocument(this.document.removeLastListAttributeAtRange([r, i]));\n }, d.prototype.updateCurrentAttributes = function () {\n var t, e, n, o, r, s;\n\n if (s = this.getSelectedRange({\n ignoreLock: !0\n })) {\n for (e = this.document.getCommonAttributesAtRange(s), r = i(), n = 0, o = r.length; o > n; n++) {\n t = r[n], e[t] || this.canSetCurrentAttribute(t) || (e[t] = !1);\n }\n\n if (!a(e, this.currentAttributes)) return this.currentAttributes = e, this.notifyDelegateOfCurrentAttributesChange();\n }\n }, d.prototype.getCurrentAttributes = function () {\n return n.call({}, this.currentAttributes);\n }, d.prototype.getCurrentTextAttributes = function () {\n var t, e, n, i;\n t = {}, n = this.currentAttributes;\n\n for (e in n) {\n i = n[e], i !== !1 && r(e) && (t[e] = i);\n }\n\n return t;\n }, d.prototype.freezeSelection = function () {\n return this.setCurrentAttribute(\"frozen\", !0);\n }, d.prototype.thawSelection = function () {\n return this.removeCurrentAttribute(\"frozen\");\n }, d.prototype.hasFrozenSelection = function () {\n return this.hasCurrentAttribute(\"frozen\");\n }, d.proxyMethod(\"getSelectionManager().getPointRange\"), d.proxyMethod(\"getSelectionManager().setLocationRangeFromPointRange\"), d.proxyMethod(\"getSelectionManager().createLocationRangeFromDOMRange\"), d.proxyMethod(\"getSelectionManager().locationIsCursorTarget\"), d.proxyMethod(\"getSelectionManager().selectionIsExpanded\"), d.proxyMethod(\"delegate?.getSelectionManager\"), d.prototype.setSelection = function (t) {\n var e, n;\n return e = this.document.locationRangeFromRange(t), null != (n = this.delegate) ? n.compositionDidRequestChangingSelectionToLocationRange(e) : void 0;\n }, d.prototype.getSelectedRange = function () {\n var t;\n return (t = this.getLocationRange()) ? this.document.rangeFromLocationRange(t) : void 0;\n }, d.prototype.setSelectedRange = function (t) {\n var e;\n return e = this.document.locationRangeFromRange(t), this.getSelectionManager().setLocationRange(e);\n }, d.prototype.getPosition = function () {\n var t;\n return (t = this.getLocationRange()) ? this.document.positionFromLocation(t[0]) : void 0;\n }, d.prototype.getLocationRange = function (t) {\n var e, n;\n return null != (e = null != (n = this.targetLocationRange) ? n : this.getSelectionManager().getLocationRange(t)) ? e : s({\n index: 0,\n offset: 0\n });\n }, d.prototype.withTargetLocationRange = function (t, e) {\n var n;\n this.targetLocationRange = t;\n\n try {\n n = e();\n } finally {\n this.targetLocationRange = null;\n }\n\n return n;\n }, d.prototype.withTargetRange = function (t, e) {\n var n;\n return n = this.document.locationRangeFromRange(t), this.withTargetLocationRange(n, e);\n }, d.prototype.withTargetDOMRange = function (t, e) {\n var n;\n return n = this.createLocationRangeFromDOMRange(t, {\n strict: !1\n }), this.withTargetLocationRange(n, e);\n }, d.prototype.getExpandedRangeInDirection = function (t, e) {\n var n, i, o, r;\n return i = (null != e ? e : {}).length, o = this.getSelectedRange(), r = o[0], n = o[1], \"backward\" === t ? i ? r -= i : r = this.translateUTF16PositionFromOffset(r, -1) : i ? n += i : n = this.translateUTF16PositionFromOffset(n, 1), s([r, n]);\n }, d.prototype.shouldManageMovingCursorInDirection = function (t) {\n var e;\n return this.editingAttachment ? !0 : (e = this.getExpandedRangeInDirection(t), null != this.getAttachmentAtRange(e));\n }, d.prototype.moveCursorInDirection = function (t) {\n var e, n, i, o;\n return this.editingAttachment ? i = this.document.getRangeOfAttachment(this.editingAttachment) : (o = this.getSelectedRange(), i = this.getExpandedRangeInDirection(t), n = !c(o, i)), this.setSelectedRange(\"backward\" === t ? i[0] : i[1]), n && (e = this.getAttachmentAtRange(i)) ? this.editAttachment(e) : void 0;\n }, d.prototype.expandSelectionInDirection = function (t, e) {\n var n, i;\n return n = (null != e ? e : {}).length, i = this.getExpandedRangeInDirection(t, {\n length: n\n }), this.setSelectedRange(i);\n }, d.prototype.expandSelectionForEditing = function () {\n return this.hasCurrentAttribute(\"href\") ? this.expandSelectionAroundCommonAttribute(\"href\") : void 0;\n }, d.prototype.expandSelectionAroundCommonAttribute = function (t) {\n var e, n;\n return e = this.getPosition(), n = this.document.getRangeOfCommonAttributeAtPosition(t, e), this.setSelectedRange(n);\n }, d.prototype.selectionContainsAttachments = function () {\n var t;\n return (null != (t = this.getSelectedAttachments()) ? t.length : void 0) > 0;\n }, d.prototype.selectionIsInCursorTarget = function () {\n return this.editingAttachment || this.positionIsCursorTarget(this.getPosition());\n }, d.prototype.positionIsCursorTarget = function (t) {\n var e;\n return (e = this.document.locationFromPosition(t)) ? this.locationIsCursorTarget(e) : void 0;\n }, d.prototype.positionIsBlockBreak = function (t) {\n var e;\n return null != (e = this.document.getPieceAtPosition(t)) ? e.isBlockBreak() : void 0;\n }, d.prototype.getSelectedDocument = function () {\n var t;\n return (t = this.getSelectedRange()) ? this.document.getDocumentAtRange(t) : void 0;\n }, d.prototype.getSelectedAttachments = function () {\n var t;\n return null != (t = this.getSelectedDocument()) ? t.getAttachments() : void 0;\n }, d.prototype.getAttachments = function () {\n return this.attachments.slice(0);\n }, d.prototype.refreshAttachments = function () {\n var t, e, n, i, o, r, s, a, u, c, h, p;\n\n for (n = this.document.getAttachments(), a = l(this.attachments, n), t = a.added, h = a.removed, this.attachments = n, i = 0, r = h.length; r > i; i++) {\n e = h[i], e.delegate = null, null != (u = this.delegate) && \"function\" == typeof u.compositionDidRemoveAttachment && u.compositionDidRemoveAttachment(e);\n }\n\n for (p = [], o = 0, s = t.length; s > o; o++) {\n e = t[o], e.delegate = this, p.push(null != (c = this.delegate) && \"function\" == typeof c.compositionDidAddAttachment ? c.compositionDidAddAttachment(e) : void 0);\n }\n\n return p;\n }, d.prototype.attachmentDidChangeAttributes = function (t) {\n var e;\n return this.revision++, null != (e = this.delegate) && \"function\" == typeof e.compositionDidEditAttachment ? e.compositionDidEditAttachment(t) : void 0;\n }, d.prototype.attachmentDidChangePreviewURL = function (t) {\n var e;\n return this.revision++, null != (e = this.delegate) && \"function\" == typeof e.compositionDidChangeAttachmentPreviewURL ? e.compositionDidChangeAttachmentPreviewURL(t) : void 0;\n }, d.prototype.editAttachment = function (t, e) {\n var n;\n if (t !== this.editingAttachment) return this.stopEditingAttachment(), this.editingAttachment = t, null != (n = this.delegate) && \"function\" == typeof n.compositionDidStartEditingAttachment ? n.compositionDidStartEditingAttachment(this.editingAttachment, e) : void 0;\n }, d.prototype.stopEditingAttachment = function () {\n var t;\n if (this.editingAttachment) return null != (t = this.delegate) && \"function\" == typeof t.compositionDidStopEditingAttachment && t.compositionDidStopEditingAttachment(this.editingAttachment), this.editingAttachment = null;\n }, d.prototype.updateAttributesForAttachment = function (t, e) {\n return this.setDocument(this.document.updateAttributesForAttachment(t, e));\n }, d.prototype.removeAttributeForAttachment = function (t, e) {\n return this.setDocument(this.document.removeAttributeForAttachment(t, e));\n }, d.prototype.breakFormattedBlock = function (t) {\n var n, i, o, r, s;\n return i = t.document, n = t.block, r = t.startPosition, s = [r - 1, r], n.getBlockBreakPosition() === t.startLocation.offset ? (n.breaksOnReturn() && \"\\n\" === t.nextCharacter ? r += 1 : i = i.removeTextAtRange(s), s = [r, r]) : \"\\n\" === t.nextCharacter ? \"\\n\" === t.previousCharacter ? s = [r - 1, r + 1] : (s = [r, r + 1], r += 1) : t.startLocation.offset - 1 !== 0 && (r += 1), o = new e.Document([n.removeLastAttribute().copyWithoutText()]), this.setDocument(i.insertDocumentAtRange(o, s)), this.setSelection(r);\n }, d.prototype.getPreviousBlock = function () {\n var t, e;\n return (e = this.getLocationRange()) && (t = e[0].index, t > 0) ? this.document.getBlockAtIndex(t - 1) : void 0;\n }, d.prototype.getBlock = function () {\n var t;\n return (t = this.getLocationRange()) ? this.document.getBlockAtIndex(t[0].index) : void 0;\n }, d.prototype.getAttachmentAtRange = function (t) {\n var n;\n return n = this.document.getDocumentAtRange(t), n.toString() === e.OBJECT_REPLACEMENT_CHARACTER + \"\\n\" ? n.getAttachments()[0] : void 0;\n }, d.prototype.notifyDelegateOfCurrentAttributesChange = function () {\n var t;\n return null != (t = this.delegate) && \"function\" == typeof t.compositionDidChangeCurrentAttributes ? t.compositionDidChangeCurrentAttributes(this.currentAttributes) : void 0;\n }, d.prototype.notifyDelegateOfInsertionAtRange = function (t) {\n var e;\n return null != (e = this.delegate) && \"function\" == typeof e.compositionDidPerformInsertionAtRange ? e.compositionDidPerformInsertionAtRange(t) : void 0;\n }, d.prototype.translateUTF16PositionFromOffset = function (t, e) {\n var n, i;\n return i = this.document.toUTF16String(), n = i.offsetFromUCS2Offset(t), i.offsetToUCS2Offset(n + e);\n }, d;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function t(_t17, e) {\n function i() {\n this.constructor = _t17;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t17[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t17.prototype = new i(), _t17.__super__ = e.prototype, _t17;\n },\n n = {}.hasOwnProperty;\n\n e.UndoManager = function (e) {\n function n(t) {\n this.composition = t, this.undoEntries = [], this.redoEntries = [];\n }\n\n var i;\n return t(n, e), n.prototype.recordUndoEntry = function (t, e) {\n var n, o, r, s, a;\n return s = null != e ? e : {}, o = s.context, n = s.consolidatable, r = this.undoEntries.slice(-1)[0], n && i(r, t, o) ? void 0 : (a = this.createEntry({\n description: t,\n context: o\n }), this.undoEntries.push(a), this.redoEntries = []);\n }, n.prototype.undo = function () {\n var t, e;\n return (e = this.undoEntries.pop()) ? (t = this.createEntry(e), this.redoEntries.push(t), this.composition.loadSnapshot(e.snapshot)) : void 0;\n }, n.prototype.redo = function () {\n var t, e;\n return (t = this.redoEntries.pop()) ? (e = this.createEntry(t), this.undoEntries.push(e), this.composition.loadSnapshot(t.snapshot)) : void 0;\n }, n.prototype.canUndo = function () {\n return this.undoEntries.length > 0;\n }, n.prototype.canRedo = function () {\n return this.redoEntries.length > 0;\n }, n.prototype.createEntry = function (t) {\n var e, n, i;\n return i = null != t ? t : {}, n = i.description, e = i.context, {\n description: null != n ? n.toString() : void 0,\n context: JSON.stringify(e),\n snapshot: this.composition.getSnapshot()\n };\n }, i = function i(t, e, n) {\n return (null != t ? t.description : void 0) === (null != e ? e.toString() : void 0) && (null != t ? t.context : void 0) === JSON.stringify(n);\n }, n;\n }(e.BasicObject);\n }.call(this), function () {\n var t;\n e.attachmentGalleryFilter = function (e) {\n var n;\n return n = new t(e), n.perform(), n.getSnapshot();\n }, t = function () {\n function t(t) {\n this.document = t.document, this.selectedRange = t.selectedRange;\n }\n\n var e, n, i;\n return e = \"attachmentGallery\", n = \"presentation\", i = \"gallery\", t.prototype.perform = function () {\n return this.removeBlockAttribute(), this.applyBlockAttribute();\n }, t.prototype.getSnapshot = function () {\n return {\n document: this.document,\n selectedRange: this.selectedRange\n };\n }, t.prototype.removeBlockAttribute = function () {\n var t, n, i, o, r;\n\n for (o = this.findRangesOfBlocks(), r = [], t = 0, n = o.length; n > t; t++) {\n i = o[t], r.push(this.document = this.document.removeAttributeAtRange(e, i));\n }\n\n return r;\n }, t.prototype.applyBlockAttribute = function () {\n var t, n, i, o, r, s;\n\n for (i = 0, r = this.findRangesOfPieces(), s = [], t = 0, n = r.length; n > t; t++) {\n o = r[t], o[1] - o[0] > 1 && (o[0] += i, o[1] += i, \"\\n\" !== this.document.getCharacterAtPosition(o[1]) && (this.document = this.document.insertBlockBreakAtRange(o[1]), o[1] < this.selectedRange[1] && this.moveSelectedRangeForward(), o[1]++, i++), 0 !== o[0] && \"\\n\" !== this.document.getCharacterAtPosition(o[0] - 1) && (this.document = this.document.insertBlockBreakAtRange(o[0]), o[0] < this.selectedRange[0] && this.moveSelectedRangeForward(), o[0]++, i++), s.push(this.document = this.document.applyBlockAttributeAtRange(e, !0, o)));\n }\n\n return s;\n }, t.prototype.findRangesOfBlocks = function () {\n return this.document.findRangesForBlockAttribute(e);\n }, t.prototype.findRangesOfPieces = function () {\n return this.document.findRangesForTextAttribute(n, {\n withValue: i\n });\n }, t.prototype.moveSelectedRangeForward = function () {\n return this.selectedRange[0] += 1, this.selectedRange[1] += 1;\n }, t;\n }();\n }.call(this), function () {\n var t = function t(_t18, e) {\n return function () {\n return _t18.apply(e, arguments);\n };\n };\n\n e.Editor = function () {\n function n(n, o, r) {\n this.composition = n, this.selectionManager = o, this.element = r, this.insertFiles = t(this.insertFiles, this), this.undoManager = new e.UndoManager(this.composition), this.filters = i.slice(0);\n }\n\n var i;\n return i = [e.attachmentGalleryFilter], n.prototype.loadDocument = function (t) {\n return this.loadSnapshot({\n document: t,\n selectedRange: [0, 0]\n });\n }, n.prototype.loadHTML = function (t) {\n return null == t && (t = \"\"), this.loadDocument(e.Document.fromHTML(t, {\n referenceElement: this.element\n }));\n }, n.prototype.loadJSON = function (t) {\n var n, i;\n return n = t.document, i = t.selectedRange, n = e.Document.fromJSON(n), this.loadSnapshot({\n document: n,\n selectedRange: i\n });\n }, n.prototype.loadSnapshot = function (t) {\n return this.undoManager = new e.UndoManager(this.composition), this.composition.loadSnapshot(t);\n }, n.prototype.getDocument = function () {\n return this.composition.document;\n }, n.prototype.getSelectedDocument = function () {\n return this.composition.getSelectedDocument();\n }, n.prototype.getSnapshot = function () {\n return this.composition.getSnapshot();\n }, n.prototype.toJSON = function () {\n return this.getSnapshot();\n }, n.prototype.deleteInDirection = function (t) {\n return this.composition.deleteInDirection(t);\n }, n.prototype.insertAttachment = function (t) {\n return this.composition.insertAttachment(t);\n }, n.prototype.insertAttachments = function (t) {\n return this.composition.insertAttachments(t);\n }, n.prototype.insertDocument = function (t) {\n return this.composition.insertDocument(t);\n }, n.prototype.insertFile = function (t) {\n return this.composition.insertFile(t);\n }, n.prototype.insertFiles = function (t) {\n return this.composition.insertFiles(t);\n }, n.prototype.insertHTML = function (t) {\n return this.composition.insertHTML(t);\n }, n.prototype.insertString = function (t) {\n return this.composition.insertString(t);\n }, n.prototype.insertText = function (t) {\n return this.composition.insertText(t);\n }, n.prototype.insertLineBreak = function () {\n return this.composition.insertLineBreak();\n }, n.prototype.getSelectedRange = function () {\n return this.composition.getSelectedRange();\n }, n.prototype.getPosition = function () {\n return this.composition.getPosition();\n }, n.prototype.getClientRectAtPosition = function (t) {\n var e;\n return e = this.getDocument().locationRangeFromRange([t, t + 1]), this.selectionManager.getClientRectAtLocationRange(e);\n }, n.prototype.expandSelectionInDirection = function (t) {\n return this.composition.expandSelectionInDirection(t);\n }, n.prototype.moveCursorInDirection = function (t) {\n return this.composition.moveCursorInDirection(t);\n }, n.prototype.setSelectedRange = function (t) {\n return this.composition.setSelectedRange(t);\n }, n.prototype.activateAttribute = function (t, e) {\n return null == e && (e = !0), this.composition.setCurrentAttribute(t, e);\n }, n.prototype.attributeIsActive = function (t) {\n return this.composition.hasCurrentAttribute(t);\n }, n.prototype.canActivateAttribute = function (t) {\n return this.composition.canSetCurrentAttribute(t);\n }, n.prototype.deactivateAttribute = function (t) {\n return this.composition.removeCurrentAttribute(t);\n }, n.prototype.canDecreaseNestingLevel = function () {\n return this.composition.canDecreaseNestingLevel();\n }, n.prototype.canIncreaseNestingLevel = function () {\n return this.composition.canIncreaseNestingLevel();\n }, n.prototype.decreaseNestingLevel = function () {\n return this.canDecreaseNestingLevel() ? this.composition.decreaseNestingLevel() : void 0;\n }, n.prototype.increaseNestingLevel = function () {\n return this.canIncreaseNestingLevel() ? this.composition.increaseNestingLevel() : void 0;\n }, n.prototype.canRedo = function () {\n return this.undoManager.canRedo();\n }, n.prototype.canUndo = function () {\n return this.undoManager.canUndo();\n }, n.prototype.recordUndoEntry = function (t, e) {\n var n, i, o;\n return o = null != e ? e : {}, i = o.context, n = o.consolidatable, this.undoManager.recordUndoEntry(t, {\n context: i,\n consolidatable: n\n });\n }, n.prototype.redo = function () {\n return this.canRedo() ? this.undoManager.redo() : void 0;\n }, n.prototype.undo = function () {\n return this.canUndo() ? this.undoManager.undo() : void 0;\n }, n;\n }();\n }.call(this), function () {\n var t = function t(_t19, e) {\n function i() {\n this.constructor = _t19;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t19[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t19.prototype = new i(), _t19.__super__ = e.prototype, _t19;\n },\n n = {}.hasOwnProperty;\n\n e.ManagedAttachment = function (e) {\n function n(t, e) {\n var n;\n this.attachmentManager = t, this.attachment = e, n = this.attachment, this.id = n.id, this.file = n.file;\n }\n\n return t(n, e), n.prototype.remove = function () {\n return this.attachmentManager.requestRemovalOfAttachment(this.attachment);\n }, n.proxyMethod(\"attachment.getAttribute\"), n.proxyMethod(\"attachment.hasAttribute\"), n.proxyMethod(\"attachment.setAttribute\"), n.proxyMethod(\"attachment.getAttributes\"), n.proxyMethod(\"attachment.setAttributes\"), n.proxyMethod(\"attachment.isPending\"), n.proxyMethod(\"attachment.isPreviewable\"), n.proxyMethod(\"attachment.getURL\"), n.proxyMethod(\"attachment.getHref\"), n.proxyMethod(\"attachment.getFilename\"), n.proxyMethod(\"attachment.getFilesize\"), n.proxyMethod(\"attachment.getFormattedFilesize\"), n.proxyMethod(\"attachment.getExtension\"), n.proxyMethod(\"attachment.getContentType\"), n.proxyMethod(\"attachment.getFile\"), n.proxyMethod(\"attachment.setFile\"), n.proxyMethod(\"attachment.releaseFile\"), n.proxyMethod(\"attachment.getUploadProgress\"), n.proxyMethod(\"attachment.setUploadProgress\"), n;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function t(_t20, e) {\n function i() {\n this.constructor = _t20;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t20[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t20.prototype = new i(), _t20.__super__ = e.prototype, _t20;\n },\n n = {}.hasOwnProperty;\n\n e.AttachmentManager = function (n) {\n function i(t) {\n var e, n, i;\n\n for (null == t && (t = []), this.managedAttachments = {}, n = 0, i = t.length; i > n; n++) {\n e = t[n], this.manageAttachment(e);\n }\n }\n\n return t(i, n), i.prototype.getAttachments = function () {\n var t, e, n, i;\n n = this.managedAttachments, i = [];\n\n for (e in n) {\n t = n[e], i.push(t);\n }\n\n return i;\n }, i.prototype.manageAttachment = function (t) {\n var n, i;\n return null != (n = this.managedAttachments)[i = t.id] ? n[i] : n[i] = new e.ManagedAttachment(this, t);\n }, i.prototype.attachmentIsManaged = function (t) {\n return t.id in this.managedAttachments;\n }, i.prototype.requestRemovalOfAttachment = function (t) {\n var e;\n return this.attachmentIsManaged(t) && null != (e = this.delegate) && \"function\" == typeof e.attachmentManagerDidRequestRemovalOfAttachment ? e.attachmentManagerDidRequestRemovalOfAttachment(t) : void 0;\n }, i.prototype.unmanageAttachment = function (t) {\n var e;\n return e = this.managedAttachments[t.id], delete this.managedAttachments[t.id], e;\n }, i;\n }(e.BasicObject);\n }.call(this), function () {\n var t, n, i, o, r, s, a, u, c, l, h;\n t = e.elementContainsNode, n = e.findChildIndexOfNode, r = e.nodeIsBlockStart, s = e.nodeIsBlockStartComment, o = e.nodeIsBlockContainer, a = e.nodeIsCursorTarget, u = e.nodeIsEmptyTextNode, c = e.nodeIsTextNode, i = e.nodeIsAttachmentElement, l = e.tagName, h = e.walkTree, e.LocationMapper = function () {\n function e(t) {\n this.element = t;\n }\n\n var p, d, f, g;\n return e.prototype.findLocationFromContainerAndOffset = function (e, i, o) {\n var s, u, l, p, g, m, v;\n\n for (m = (null != o ? o : {\n strict: !0\n }).strict, u = 0, l = !1, p = {\n index: 0,\n offset: 0\n }, (s = this.findAttachmentElementParentForNode(e)) && (e = s.parentNode, i = n(s)), v = h(this.element, {\n usingFilter: f\n }); v.nextNode();) {\n if (g = v.currentNode, g === e && c(e)) {\n a(g) || (p.offset += i);\n break;\n }\n\n if (g.parentNode === e) {\n if (u++ === i) break;\n } else if (!t(e, g) && u > 0) break;\n\n r(g, {\n strict: m\n }) ? (l && p.index++, p.offset = 0, l = !0) : p.offset += d(g);\n }\n\n return p;\n }, e.prototype.findContainerAndOffsetFromLocation = function (t) {\n var e, i, s, u, l;\n\n if (0 === t.index && 0 === t.offset) {\n for (e = this.element, u = 0; e.firstChild;) {\n if (e = e.firstChild, o(e)) {\n u = 1;\n break;\n }\n }\n\n return [e, u];\n }\n\n if (l = this.findNodeAndOffsetFromLocation(t), i = l[0], s = l[1], i) {\n if (c(i)) 0 === d(i) ? (e = i.parentNode.parentNode, u = n(i.parentNode), a(i, {\n name: \"right\"\n }) && u++) : (e = i, u = t.offset - s);else {\n if (e = i.parentNode, !r(i.previousSibling) && !o(e)) for (; i === e.lastChild && (i = e, e = e.parentNode, !o(e));) {\n ;\n }\n u = n(i), 0 !== t.offset && u++;\n }\n return [e, u];\n }\n }, e.prototype.findNodeAndOffsetFromLocation = function (t) {\n var e, n, i, o, r, s, u, l;\n\n for (u = 0, l = this.getSignificantNodesForIndex(t.index), n = 0, i = l.length; i > n; n++) {\n if (e = l[n], o = d(e), t.offset <= u + o) if (c(e)) {\n if (r = e, s = u, t.offset === s && a(r)) break;\n } else r || (r = e, s = u);\n if (u += o, u > t.offset) break;\n }\n\n return [r, s];\n }, e.prototype.findAttachmentElementParentForNode = function (t) {\n for (; t && t !== this.element;) {\n if (i(t)) return t;\n t = t.parentNode;\n }\n }, e.prototype.getSignificantNodesForIndex = function (t) {\n var e, n, i, o, r;\n\n for (i = [], r = h(this.element, {\n usingFilter: p\n }), o = !1; r.nextNode();) {\n if (n = r.currentNode, s(n)) {\n if (\"undefined\" != typeof e && null !== e ? e++ : e = 0, e === t) o = !0;else if (o) break;\n } else o && i.push(n);\n }\n\n return i;\n }, d = function d(t) {\n var e;\n return t.nodeType === Node.TEXT_NODE ? a(t) ? 0 : (e = t.textContent, e.length) : \"br\" === l(t) || i(t) ? 1 : 0;\n }, p = function p(t) {\n return g(t) === NodeFilter.FILTER_ACCEPT ? f(t) : NodeFilter.FILTER_REJECT;\n }, g = function g(t) {\n return u(t) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }, f = function f(t) {\n return i(t.parentNode) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }, e;\n }();\n }.call(this), function () {\n var t,\n n,\n i = [].slice;\n t = e.getDOMRange, n = e.setDOMRange, e.PointMapper = function () {\n function e() {}\n\n return e.prototype.createDOMRangeFromPoint = function (e) {\n var i, o, r, s, a, u, c, l;\n if (c = e.x, l = e.y, document.caretPositionFromPoint) return a = document.caretPositionFromPoint(c, l), r = a.offsetNode, o = a.offset, i = document.createRange(), i.setStart(r, o), i;\n if (document.caretRangeFromPoint) return document.caretRangeFromPoint(c, l);\n\n if (document.body.createTextRange) {\n s = t();\n\n try {\n u = document.body.createTextRange(), u.moveToPoint(c, l), u.select();\n } catch (h) {}\n\n return i = t(), n(s), i;\n }\n }, e.prototype.getClientRectsForDOMRange = function (t) {\n var e, n, o;\n return n = i.call(t.getClientRects()), o = n[0], e = n[n.length - 1], [o, e];\n }, e;\n }();\n }.call(this), function () {\n var t,\n n = function n(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n i = function i(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n o.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty,\n r = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\n\n t = e.getDOMRange, e.SelectionChangeObserver = function (e) {\n function o() {\n this.run = n(this.run, this), this.update = n(this.update, this), this.selectionManagers = [];\n }\n\n var s;\n return i(o, e), o.prototype.start = function () {\n return this.started ? void 0 : (this.started = !0, \"onselectionchange\" in document ? document.addEventListener(\"selectionchange\", this.update, !0) : this.run());\n }, o.prototype.stop = function () {\n return this.started ? (this.started = !1, document.removeEventListener(\"selectionchange\", this.update, !0)) : void 0;\n }, o.prototype.registerSelectionManager = function (t) {\n return r.call(this.selectionManagers, t) < 0 ? (this.selectionManagers.push(t), this.start()) : void 0;\n }, o.prototype.unregisterSelectionManager = function (t) {\n var e;\n return this.selectionManagers = function () {\n var n, i, o, r;\n\n for (o = this.selectionManagers, r = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], e !== t && r.push(e);\n }\n\n return r;\n }.call(this), 0 === this.selectionManagers.length ? this.stop() : void 0;\n }, o.prototype.notifySelectionManagersOfSelectionChange = function () {\n var t, e, n, i, o;\n\n for (n = this.selectionManagers, i = [], t = 0, e = n.length; e > t; t++) {\n o = n[t], i.push(o.selectionDidChange());\n }\n\n return i;\n }, o.prototype.update = function () {\n var e;\n return e = t(), s(e, this.domRange) ? void 0 : (this.domRange = e, this.notifySelectionManagersOfSelectionChange());\n }, o.prototype.reset = function () {\n return this.domRange = null, this.update();\n }, o.prototype.run = function () {\n return this.started ? (this.update(), requestAnimationFrame(this.run)) : void 0;\n }, s = function s(t, e) {\n return (null != t ? t.startContainer : void 0) === (null != e ? e.startContainer : void 0) && (null != t ? t.startOffset : void 0) === (null != e ? e.startOffset : void 0) && (null != t ? t.endContainer : void 0) === (null != e ? e.endContainer : void 0) && (null != t ? t.endOffset : void 0) === (null != e ? e.endOffset : void 0);\n }, o;\n }(e.BasicObject), null == e.selectionChangeObserver && (e.selectionChangeObserver = new e.SelectionChangeObserver());\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l,\n h = function h(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n p = function p(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n d.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n d = {}.hasOwnProperty;\n\n i = e.getDOMSelection, n = e.getDOMRange, l = e.setDOMRange, t = e.elementContainsNode, s = e.nodeIsCursorTarget, r = e.innerElementIsActive, o = e.handleEvent, a = e.normalizeRange, u = e.rangeIsCollapsed, c = e.rangesAreEqual, e.SelectionManager = function (d) {\n function f(t) {\n this.element = t, this.selectionDidChange = h(this.selectionDidChange, this), this.didMouseDown = h(this.didMouseDown, this), this.locationMapper = new e.LocationMapper(this.element), this.pointMapper = new e.PointMapper(), this.lockCount = 0, o(\"mousedown\", {\n onElement: this.element,\n withCallback: this.didMouseDown\n });\n }\n\n return p(f, d), f.prototype.getLocationRange = function (t) {\n var e, i;\n return null == t && (t = {}), e = t.strict === !1 ? this.createLocationRangeFromDOMRange(n(), {\n strict: !1\n }) : t.ignoreLock ? this.currentLocationRange : null != (i = this.lockedLocationRange) ? i : this.currentLocationRange;\n }, f.prototype.setLocationRange = function (t) {\n var e;\n if (!this.lockedLocationRange) return t = a(t), (e = this.createDOMRangeFromLocationRange(t)) ? (l(e), this.updateCurrentLocationRange(t)) : void 0;\n }, f.prototype.setLocationRangeFromPointRange = function (t) {\n var e, n;\n return t = a(t), n = this.getLocationAtPoint(t[0]), e = this.getLocationAtPoint(t[1]), this.setLocationRange([n, e]);\n }, f.prototype.getClientRectAtLocationRange = function (t) {\n var e;\n return (e = this.createDOMRangeFromLocationRange(t)) ? this.getClientRectsForDOMRange(e)[1] : void 0;\n }, f.prototype.locationIsCursorTarget = function (t) {\n var e, n, i;\n return i = this.findNodeAndOffsetFromLocation(t), e = i[0], n = i[1], s(e);\n }, f.prototype.lock = function () {\n return 0 === this.lockCount++ ? (this.updateCurrentLocationRange(), this.lockedLocationRange = this.getLocationRange()) : void 0;\n }, f.prototype.unlock = function () {\n var t;\n return 0 === --this.lockCount && (t = this.lockedLocationRange, this.lockedLocationRange = null, null != t) ? this.setLocationRange(t) : void 0;\n }, f.prototype.clearSelection = function () {\n var t;\n return null != (t = i()) ? t.removeAllRanges() : void 0;\n }, f.prototype.selectionIsCollapsed = function () {\n var t;\n return (null != (t = n()) ? t.collapsed : void 0) === !0;\n }, f.prototype.selectionIsExpanded = function () {\n return !this.selectionIsCollapsed();\n }, f.prototype.createLocationRangeFromDOMRange = function (t, e) {\n var n, i;\n if (null != t && this.domRangeWithinElement(t) && (i = this.findLocationFromContainerAndOffset(t.startContainer, t.startOffset, e))) return t.collapsed || (n = this.findLocationFromContainerAndOffset(t.endContainer, t.endOffset, e)), a([i, n]);\n }, f.proxyMethod(\"locationMapper.findLocationFromContainerAndOffset\"), f.proxyMethod(\"locationMapper.findContainerAndOffsetFromLocation\"), f.proxyMethod(\"locationMapper.findNodeAndOffsetFromLocation\"), f.proxyMethod(\"pointMapper.createDOMRangeFromPoint\"), f.proxyMethod(\"pointMapper.getClientRectsForDOMRange\"), f.prototype.didMouseDown = function () {\n return this.pauseTemporarily();\n }, f.prototype.pauseTemporarily = function () {\n var e, n, i, r;\n return this.paused = !0, n = function (e) {\n return function () {\n var n, o, s;\n\n for (e.paused = !1, clearTimeout(r), o = 0, s = i.length; s > o; o++) {\n n = i[o], n.destroy();\n }\n\n return t(document, e.element) ? e.selectionDidChange() : void 0;\n };\n }(this), r = setTimeout(n, 200), i = function () {\n var t, i, r, s;\n\n for (r = [\"mousemove\", \"keydown\"], s = [], t = 0, i = r.length; i > t; t++) {\n e = r[t], s.push(o(e, {\n onElement: document,\n withCallback: n\n }));\n }\n\n return s;\n }();\n }, f.prototype.selectionDidChange = function () {\n return this.paused || r(this.element) ? void 0 : this.updateCurrentLocationRange();\n }, f.prototype.updateCurrentLocationRange = function (t) {\n var e;\n return (null != t ? t : t = this.createLocationRangeFromDOMRange(n())) && !c(t, this.currentLocationRange) ? (this.currentLocationRange = t, null != (e = this.delegate) && \"function\" == typeof e.locationRangeDidChange ? e.locationRangeDidChange(this.currentLocationRange.slice(0)) : void 0) : void 0;\n }, f.prototype.createDOMRangeFromLocationRange = function (t) {\n var e, n, i, o;\n return i = this.findContainerAndOffsetFromLocation(t[0]), n = u(t) ? i : null != (o = this.findContainerAndOffsetFromLocation(t[1])) ? o : i, null != i && null != n ? (e = document.createRange(), e.setStart.apply(e, i), e.setEnd.apply(e, n), e) : void 0;\n }, f.prototype.getLocationAtPoint = function (t) {\n var e, n;\n return (e = this.createDOMRangeFromPoint(t)) && null != (n = this.createLocationRangeFromDOMRange(e)) ? n[0] : void 0;\n }, f.prototype.domRangeWithinElement = function (e) {\n return e.collapsed ? t(this.element, e.startContainer) : t(this.element, e.startContainer) && t(this.element, e.endContainer);\n }, f;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r = function r(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n s.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty,\n a = [].slice;\n\n i = e.rangeIsCollapsed, o = e.rangesAreEqual, n = e.objectsAreEqual, t = e.getBlockConfig, e.EditorController = function (s) {\n function u(t) {\n var n, i;\n this.editorElement = t.editorElement, n = t.document, i = t.html, this.selectionManager = new e.SelectionManager(this.editorElement), this.selectionManager.delegate = this, this.composition = new e.Composition(), this.composition.delegate = this, this.attachmentManager = new e.AttachmentManager(this.composition.getAttachments()), this.attachmentManager.delegate = this, this.inputController = new e[\"Level\" + e.config.input.getLevel() + \"InputController\"](this.editorElement), this.inputController.delegate = this, this.inputController.responder = this.composition, this.compositionController = new e.CompositionController(this.editorElement, this.composition), this.compositionController.delegate = this, this.toolbarController = new e.ToolbarController(this.editorElement.toolbarElement), this.toolbarController.delegate = this, this.editor = new e.Editor(this.composition, this.selectionManager, this.editorElement), null != n ? this.editor.loadDocument(n) : this.editor.loadHTML(i);\n }\n\n var c;\n return r(u, s), u.prototype.registerSelectionManager = function () {\n return e.selectionChangeObserver.registerSelectionManager(this.selectionManager);\n }, u.prototype.unregisterSelectionManager = function () {\n return e.selectionChangeObserver.unregisterSelectionManager(this.selectionManager);\n }, u.prototype.render = function () {\n return this.compositionController.render();\n }, u.prototype.reparse = function () {\n return this.composition.replaceHTML(this.editorElement.innerHTML);\n }, u.prototype.compositionDidChangeDocument = function () {\n return this.notifyEditorElement(\"document-change\"), this.handlingInput ? void 0 : this.render();\n }, u.prototype.compositionDidChangeCurrentAttributes = function (t) {\n return this.currentAttributes = t, this.toolbarController.updateAttributes(this.currentAttributes), this.updateCurrentActions(), this.notifyEditorElement(\"attributes-change\", {\n attributes: this.currentAttributes\n });\n }, u.prototype.compositionDidPerformInsertionAtRange = function (t) {\n return this.pasting ? this.pastedRange = t : void 0;\n }, u.prototype.compositionShouldAcceptFile = function (t) {\n return this.notifyEditorElement(\"file-accept\", {\n file: t\n });\n }, u.prototype.compositionDidAddAttachment = function (t) {\n var e;\n return e = this.attachmentManager.manageAttachment(t), this.notifyEditorElement(\"attachment-add\", {\n attachment: e\n });\n }, u.prototype.compositionDidEditAttachment = function (t) {\n var e;\n return this.compositionController.rerenderViewForObject(t), e = this.attachmentManager.manageAttachment(t), this.notifyEditorElement(\"attachment-edit\", {\n attachment: e\n }), this.notifyEditorElement(\"change\");\n }, u.prototype.compositionDidChangeAttachmentPreviewURL = function (t) {\n return this.compositionController.invalidateViewForObject(t), this.notifyEditorElement(\"change\");\n }, u.prototype.compositionDidRemoveAttachment = function (t) {\n var e;\n return e = this.attachmentManager.unmanageAttachment(t), this.notifyEditorElement(\"attachment-remove\", {\n attachment: e\n });\n }, u.prototype.compositionDidStartEditingAttachment = function (t, e) {\n return this.attachmentLocationRange = this.composition.document.getLocationRangeOfAttachment(t), this.compositionController.installAttachmentEditorForAttachment(t, e), this.selectionManager.setLocationRange(this.attachmentLocationRange);\n }, u.prototype.compositionDidStopEditingAttachment = function () {\n return this.compositionController.uninstallAttachmentEditor(), this.attachmentLocationRange = null;\n }, u.prototype.compositionDidRequestChangingSelectionToLocationRange = function (t) {\n return !this.loadingSnapshot || this.isFocused() ? (this.requestedLocationRange = t, this.compositionRevisionWhenLocationRangeRequested = this.composition.revision, this.handlingInput ? void 0 : this.render()) : void 0;\n }, u.prototype.compositionWillLoadSnapshot = function () {\n return this.loadingSnapshot = !0;\n }, u.prototype.compositionDidLoadSnapshot = function () {\n return this.compositionController.refreshViewCache(), this.render(), this.loadingSnapshot = !1;\n }, u.prototype.getSelectionManager = function () {\n return this.selectionManager;\n }, u.proxyMethod(\"getSelectionManager().setLocationRange\"), u.proxyMethod(\"getSelectionManager().getLocationRange\"), u.prototype.attachmentManagerDidRequestRemovalOfAttachment = function (t) {\n return this.removeAttachment(t);\n }, u.prototype.compositionControllerWillSyncDocumentView = function () {\n return this.inputController.editorWillSyncDocumentView(), this.selectionManager.lock(), this.selectionManager.clearSelection();\n }, u.prototype.compositionControllerDidSyncDocumentView = function () {\n return this.inputController.editorDidSyncDocumentView(), this.selectionManager.unlock(), this.updateCurrentActions(), this.notifyEditorElement(\"sync\");\n }, u.prototype.compositionControllerDidRender = function () {\n return null != this.requestedLocationRange && (this.compositionRevisionWhenLocationRangeRequested === this.composition.revision && this.selectionManager.setLocationRange(this.requestedLocationRange), this.requestedLocationRange = null, this.compositionRevisionWhenLocationRangeRequested = null), this.renderedCompositionRevision !== this.composition.revision && (this.runEditorFilters(), this.composition.updateCurrentAttributes(), this.notifyEditorElement(\"render\")), this.renderedCompositionRevision = this.composition.revision;\n }, u.prototype.compositionControllerDidFocus = function () {\n return this.isFocusedInvisibly() && this.setLocationRange({\n index: 0,\n offset: 0\n }), this.toolbarController.hideDialog(), this.notifyEditorElement(\"focus\");\n }, u.prototype.compositionControllerDidBlur = function () {\n return this.notifyEditorElement(\"blur\");\n }, u.prototype.compositionControllerDidSelectAttachment = function (t, e) {\n return this.toolbarController.hideDialog(), this.composition.editAttachment(t, e);\n }, u.prototype.compositionControllerDidRequestDeselectingAttachment = function (t) {\n var e, n;\n return e = null != (n = this.attachmentLocationRange) ? n : this.composition.document.getLocationRangeOfAttachment(t), this.selectionManager.setLocationRange(e[1]);\n }, u.prototype.compositionControllerWillUpdateAttachment = function (t) {\n return this.editor.recordUndoEntry(\"Edit Attachment\", {\n context: t.id,\n consolidatable: !0\n });\n }, u.prototype.compositionControllerDidRequestRemovalOfAttachment = function (t) {\n return this.removeAttachment(t);\n }, u.prototype.inputControllerWillHandleInput = function () {\n return this.handlingInput = !0, this.requestedRender = !1;\n }, u.prototype.inputControllerDidRequestRender = function () {\n return this.requestedRender = !0;\n }, u.prototype.inputControllerDidHandleInput = function () {\n return this.handlingInput = !1, this.requestedRender ? (this.requestedRender = !1, this.render()) : void 0;\n }, u.prototype.inputControllerDidAllowUnhandledInput = function () {\n return this.notifyEditorElement(\"change\");\n }, u.prototype.inputControllerDidRequestReparse = function () {\n return this.reparse();\n }, u.prototype.inputControllerWillPerformTyping = function () {\n return this.recordTypingUndoEntry();\n }, u.prototype.inputControllerWillPerformFormatting = function (t) {\n return this.recordFormattingUndoEntry(t);\n }, u.prototype.inputControllerWillCutText = function () {\n return this.editor.recordUndoEntry(\"Cut\");\n }, u.prototype.inputControllerWillPaste = function (t) {\n return this.editor.recordUndoEntry(\"Paste\"), this.pasting = !0, this.notifyEditorElement(\"before-paste\", {\n paste: t\n });\n }, u.prototype.inputControllerDidPaste = function (t) {\n return t.range = this.pastedRange, this.pastedRange = null, this.pasting = null, this.notifyEditorElement(\"paste\", {\n paste: t\n });\n }, u.prototype.inputControllerWillMoveText = function () {\n return this.editor.recordUndoEntry(\"Move\");\n }, u.prototype.inputControllerWillAttachFiles = function () {\n return this.editor.recordUndoEntry(\"Drop Files\");\n }, u.prototype.inputControllerWillPerformUndo = function () {\n return this.editor.undo();\n }, u.prototype.inputControllerWillPerformRedo = function () {\n return this.editor.redo();\n }, u.prototype.inputControllerDidReceiveKeyboardCommand = function (t) {\n return this.toolbarController.applyKeyboardCommand(t);\n }, u.prototype.inputControllerDidStartDrag = function () {\n return this.locationRangeBeforeDrag = this.selectionManager.getLocationRange();\n }, u.prototype.inputControllerDidReceiveDragOverPoint = function (t) {\n return this.selectionManager.setLocationRangeFromPointRange(t);\n }, u.prototype.inputControllerDidCancelDrag = function () {\n return this.selectionManager.setLocationRange(this.locationRangeBeforeDrag), this.locationRangeBeforeDrag = null;\n }, u.prototype.locationRangeDidChange = function (t) {\n return this.composition.updateCurrentAttributes(), this.updateCurrentActions(), this.attachmentLocationRange && !o(this.attachmentLocationRange, t) && this.composition.stopEditingAttachment(), this.notifyEditorElement(\"selection-change\");\n }, u.prototype.toolbarDidClickButton = function () {\n return this.getLocationRange() ? void 0 : this.setLocationRange({\n index: 0,\n offset: 0\n });\n }, u.prototype.toolbarDidInvokeAction = function (t) {\n return this.invokeAction(t);\n }, u.prototype.toolbarDidToggleAttribute = function (t) {\n return this.recordFormattingUndoEntry(t), this.composition.toggleCurrentAttribute(t), this.render(), this.selectionFrozen ? void 0 : this.editorElement.focus();\n }, u.prototype.toolbarDidUpdateAttribute = function (t, e) {\n return this.recordFormattingUndoEntry(t), this.composition.setCurrentAttribute(t, e), this.render(), this.selectionFrozen ? void 0 : this.editorElement.focus();\n }, u.prototype.toolbarDidRemoveAttribute = function (t) {\n return this.recordFormattingUndoEntry(t), this.composition.removeCurrentAttribute(t), this.render(), this.selectionFrozen ? void 0 : this.editorElement.focus();\n }, u.prototype.toolbarWillShowDialog = function () {\n return this.composition.expandSelectionForEditing(), this.freezeSelection();\n }, u.prototype.toolbarDidShowDialog = function (t) {\n return this.notifyEditorElement(\"toolbar-dialog-show\", {\n dialogName: t\n });\n }, u.prototype.toolbarDidHideDialog = function (t) {\n return this.thawSelection(), this.editorElement.focus(), this.notifyEditorElement(\"toolbar-dialog-hide\", {\n dialogName: t\n });\n }, u.prototype.freezeSelection = function () {\n return this.selectionFrozen ? void 0 : (this.selectionManager.lock(), this.composition.freezeSelection(), this.selectionFrozen = !0, this.render());\n }, u.prototype.thawSelection = function () {\n return this.selectionFrozen ? (this.composition.thawSelection(), this.selectionManager.unlock(), this.selectionFrozen = !1, this.render()) : void 0;\n }, u.prototype.actions = {\n undo: {\n test: function test() {\n return this.editor.canUndo();\n },\n perform: function perform() {\n return this.editor.undo();\n }\n },\n redo: {\n test: function test() {\n return this.editor.canRedo();\n },\n perform: function perform() {\n return this.editor.redo();\n }\n },\n link: {\n test: function test() {\n return this.editor.canActivateAttribute(\"href\");\n }\n },\n increaseNestingLevel: {\n test: function test() {\n return this.editor.canIncreaseNestingLevel();\n },\n perform: function perform() {\n return this.editor.increaseNestingLevel() && this.render();\n }\n },\n decreaseNestingLevel: {\n test: function test() {\n return this.editor.canDecreaseNestingLevel();\n },\n perform: function perform() {\n return this.editor.decreaseNestingLevel() && this.render();\n }\n },\n attachFiles: {\n test: function test() {\n return !0;\n },\n perform: function perform() {\n return e.config.input.pickFiles(this.editor.insertFiles);\n }\n }\n }, u.prototype.canInvokeAction = function (t) {\n var e, n;\n return this.actionIsExternal(t) ? !0 : !!(null != (e = this.actions[t]) && null != (n = e.test) ? n.call(this) : void 0);\n }, u.prototype.invokeAction = function (t) {\n var e, n;\n return this.actionIsExternal(t) ? this.notifyEditorElement(\"action-invoke\", {\n actionName: t\n }) : null != (e = this.actions[t]) && null != (n = e.perform) ? n.call(this) : void 0;\n }, u.prototype.actionIsExternal = function (t) {\n return /^x-./.test(t);\n }, u.prototype.getCurrentActions = function () {\n var t, e;\n e = {};\n\n for (t in this.actions) {\n e[t] = this.canInvokeAction(t);\n }\n\n return e;\n }, u.prototype.updateCurrentActions = function () {\n var t;\n return t = this.getCurrentActions(), n(t, this.currentActions) ? void 0 : (this.currentActions = t, this.toolbarController.updateActions(this.currentActions), this.notifyEditorElement(\"actions-change\", {\n actions: this.currentActions\n }));\n }, u.prototype.runEditorFilters = function () {\n var t, e, n, i, o, r, s, a;\n\n for (a = this.composition.getSnapshot(), o = this.editor.filters, n = 0, i = o.length; i > n; n++) {\n e = o[n], t = a.document, s = a.selectedRange, a = null != (r = e.call(this.editor, a)) ? r : {}, null == a.document && (a.document = t), null == a.selectedRange && (a.selectedRange = s);\n }\n\n return c(a, this.composition.getSnapshot()) ? void 0 : this.composition.loadSnapshot(a);\n }, c = function c(t, e) {\n return o(t.selectedRange, e.selectedRange) && t.document.isEqualTo(e.document);\n }, u.prototype.updateInputElement = function () {\n var t, n;\n return t = this.compositionController.getSerializableElement(), n = e.serializeToContentType(t, \"text/html\"), this.editorElement.setInputElementValue(n);\n }, u.prototype.notifyEditorElement = function (t, e) {\n switch (t) {\n case \"document-change\":\n this.documentChangedSinceLastRender = !0;\n break;\n\n case \"render\":\n this.documentChangedSinceLastRender && (this.documentChangedSinceLastRender = !1, this.notifyEditorElement(\"change\"));\n break;\n\n case \"change\":\n case \"attachment-add\":\n case \"attachment-edit\":\n case \"attachment-remove\":\n this.updateInputElement();\n }\n\n return this.editorElement.notify(t, e);\n }, u.prototype.removeAttachment = function (t) {\n return this.editor.recordUndoEntry(\"Delete Attachment\"), this.composition.removeAttachment(t), this.render();\n }, u.prototype.recordFormattingUndoEntry = function (e) {\n var n, o;\n return n = t(e), o = this.selectionManager.getLocationRange(), n || !i(o) ? this.editor.recordUndoEntry(\"Formatting\", {\n context: this.getUndoContext(),\n consolidatable: !0\n }) : void 0;\n }, u.prototype.recordTypingUndoEntry = function () {\n return this.editor.recordUndoEntry(\"Typing\", {\n context: this.getUndoContext(this.currentAttributes),\n consolidatable: !0\n });\n }, u.prototype.getUndoContext = function () {\n var t;\n return t = 1 <= arguments.length ? a.call(arguments, 0) : [], [this.getLocationContext(), this.getTimeContext()].concat(a.call(t));\n }, u.prototype.getLocationContext = function () {\n var t;\n return t = this.selectionManager.getLocationRange(), i(t) ? t[0].index : t;\n }, u.prototype.getTimeContext = function () {\n return e.config.undoInterval > 0 ? Math.floor(new Date().getTime() / e.config.undoInterval) : 0;\n }, u.prototype.isFocused = function () {\n var t;\n return this.editorElement === (null != (t = this.editorElement.ownerDocument) ? t.activeElement : void 0);\n }, u.prototype.isFocusedInvisibly = function () {\n return this.isFocused() && !this.getLocationRange();\n }, u;\n }(e.Controller);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\n\n n = e.browser, s = e.makeElement, a = e.triggerEvent, o = e.handleEvent, r = e.handleEventOnce, i = e.findClosestElementFromNode, t = e.AttachmentView.attachmentSelector, e.registerElement(\"trix-editor\", function () {\n var c, l, h, p, d, f, g, m, v;\n return g = 0, l = function l(t) {\n return !document.querySelector(\":focus\") && t.hasAttribute(\"autofocus\") && document.querySelector(\"[autofocus]\") === t ? t.focus() : void 0;\n }, m = function m(t) {\n return t.hasAttribute(\"contenteditable\") ? void 0 : (t.setAttribute(\"contenteditable\", \"\"), r(\"focus\", {\n onElement: t,\n withCallback: function withCallback() {\n return h(t);\n }\n }));\n }, h = function h(t) {\n return d(t), v(t);\n }, d = function d(t) {\n return (\"function\" == typeof document.queryCommandSupported ? document.queryCommandSupported(\"enableObjectResizing\") : void 0) ? (document.execCommand(\"enableObjectResizing\", !1, !1), o(\"mscontrolselect\", {\n onElement: t,\n preventDefault: !0\n })) : void 0;\n }, v = function v() {\n var t;\n return (\"function\" == typeof document.queryCommandSupported ? document.queryCommandSupported(\"DefaultParagraphSeparator\") : void 0) && (t = e.config.blockAttributes[\"default\"].tagName, \"div\" === t || \"p\" === t) ? document.execCommand(\"DefaultParagraphSeparator\", !1, t) : void 0;\n }, c = function c(t) {\n return t.hasAttribute(\"role\") ? void 0 : t.setAttribute(\"role\", \"textbox\");\n }, f = function f(t) {\n var e;\n if (!t.hasAttribute(\"aria-label\") && !t.hasAttribute(\"aria-labelledby\")) return (e = function e() {\n var e, n, i;\n return i = function () {\n var n, i, o, r;\n\n for (o = t.labels, r = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], e.contains(t) || r.push(e.textContent);\n }\n\n return r;\n }(), (n = i.join(\" \")) ? t.setAttribute(\"aria-label\", n) : t.removeAttribute(\"aria-label\");\n })(), o(\"focus\", {\n onElement: t,\n withCallback: e\n });\n }, p = function () {\n return n.forcesObjectResizing ? {\n display: \"inline\",\n width: \"auto\"\n } : {\n display: \"inline-block\",\n width: \"1px\"\n };\n }(), {\n defaultCSS: \"%t {\\n display: block;\\n}\\n\\n%t:empty:not(:focus)::before {\\n content: attr(placeholder);\\n color: graytext;\\n cursor: text;\\n pointer-events: none;\\n}\\n\\n%t a[contenteditable=false] {\\n cursor: text;\\n}\\n\\n%t img {\\n max-width: 100%;\\n height: auto;\\n}\\n\\n%t \" + t + \" figcaption textarea {\\n resize: none;\\n}\\n\\n%t \" + t + \" figcaption textarea.trix-autoresize-clone {\\n position: absolute;\\n left: -9999px;\\n max-height: 0px;\\n}\\n\\n%t \" + t + \" figcaption[data-trix-placeholder]:empty::before {\\n content: attr(data-trix-placeholder);\\n color: graytext;\\n}\\n\\n%t [data-trix-cursor-target] {\\n display: \" + p.display + \" !important;\\n width: \" + p.width + \" !important;\\n padding: 0 !important;\\n margin: 0 !important;\\n border: none !important;\\n}\\n\\n%t [data-trix-cursor-target=left] {\\n vertical-align: top !important;\\n margin-left: -1px !important;\\n}\\n\\n%t [data-trix-cursor-target=right] {\\n vertical-align: bottom !important;\\n margin-right: -1px !important;\\n}\",\n trixId: {\n get: function get() {\n return this.hasAttribute(\"trix-id\") ? this.getAttribute(\"trix-id\") : (this.setAttribute(\"trix-id\", ++g), this.trixId);\n }\n },\n labels: {\n get: function get() {\n var t, e, n;\n return e = [], this.id && this.ownerDocument && e.push.apply(e, this.ownerDocument.querySelectorAll(\"label[for='\" + this.id + \"']\")), (t = i(this, {\n matchingSelector: \"label\"\n })) && ((n = t.control) === this || null === n) && e.push(t), e;\n }\n },\n toolbarElement: {\n get: function get() {\n var t, e, n;\n return this.hasAttribute(\"toolbar\") ? null != (e = this.ownerDocument) ? e.getElementById(this.getAttribute(\"toolbar\")) : void 0 : this.parentNode ? (n = \"trix-toolbar-\" + this.trixId, this.setAttribute(\"toolbar\", n), t = s(\"trix-toolbar\", {\n id: n\n }), this.parentNode.insertBefore(t, this), t) : void 0;\n }\n },\n inputElement: {\n get: function get() {\n var t, e, n;\n return this.hasAttribute(\"input\") ? null != (n = this.ownerDocument) ? n.getElementById(this.getAttribute(\"input\")) : void 0 : this.parentNode ? (e = \"trix-input-\" + this.trixId, this.setAttribute(\"input\", e), t = s(\"input\", {\n type: \"hidden\",\n id: e\n }), this.parentNode.insertBefore(t, this.nextElementSibling), t) : void 0;\n }\n },\n editor: {\n get: function get() {\n var t;\n return null != (t = this.editorController) ? t.editor : void 0;\n }\n },\n name: {\n get: function get() {\n var t;\n return null != (t = this.inputElement) ? t.name : void 0;\n }\n },\n value: {\n get: function get() {\n var t;\n return null != (t = this.inputElement) ? t.value : void 0;\n },\n set: function set(t) {\n var e;\n return this.defaultValue = t, null != (e = this.editor) ? e.loadHTML(this.defaultValue) : void 0;\n }\n },\n notify: function notify(t, e) {\n return this.editorController ? a(\"trix-\" + t, {\n onElement: this,\n attributes: e\n }) : void 0;\n },\n setInputElementValue: function setInputElementValue(t) {\n var e;\n return null != (e = this.inputElement) ? e.value = t : void 0;\n },\n initialize: function initialize() {\n return this.hasAttribute(\"data-trix-internal\") ? void 0 : (m(this), c(this), f(this));\n },\n connect: function connect() {\n return this.hasAttribute(\"data-trix-internal\") ? void 0 : (this.editorController || (a(\"trix-before-initialize\", {\n onElement: this\n }), this.editorController = new e.EditorController({\n editorElement: this,\n html: this.defaultValue = this.value\n }), requestAnimationFrame(function (t) {\n return function () {\n return a(\"trix-initialize\", {\n onElement: t\n });\n };\n }(this))), this.editorController.registerSelectionManager(), this.registerResetListener(), this.registerClickListener(), l(this));\n },\n disconnect: function disconnect() {\n var t;\n return null != (t = this.editorController) && t.unregisterSelectionManager(), this.unregisterResetListener(), this.unregisterClickListener();\n },\n registerResetListener: function registerResetListener() {\n return this.resetListener = this.resetBubbled.bind(this), window.addEventListener(\"reset\", this.resetListener, !1);\n },\n unregisterResetListener: function unregisterResetListener() {\n return window.removeEventListener(\"reset\", this.resetListener, !1);\n },\n registerClickListener: function registerClickListener() {\n return this.clickListener = this.clickBubbled.bind(this), window.addEventListener(\"click\", this.clickListener, !1);\n },\n unregisterClickListener: function unregisterClickListener() {\n return window.removeEventListener(\"click\", this.clickListener, !1);\n },\n resetBubbled: function resetBubbled(t) {\n var e;\n if (!t.defaultPrevented && t.target === (null != (e = this.inputElement) ? e.form : void 0)) return this.reset();\n },\n clickBubbled: function clickBubbled(t) {\n var e;\n if (!(t.defaultPrevented || this.contains(t.target) || !(e = i(t.target, {\n matchingSelector: \"label\"\n })) || u.call(this.labels, e) < 0)) return this.focus();\n },\n reset: function reset() {\n return this.value = this.defaultValue;\n }\n };\n }());\n }.call(this), function () {}.call(this);\n }).call(this), \"object\" == (typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) && module.exports ? module.exports = e : \"function\" == typeof define && define.amd && define(e);\n}.call(this);","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar g; // This works in non-strict mode\n\ng = function () {\n return this;\n}();\n\ntry {\n // This works if eval is allowed (see CSP)\n g = g || new Function(\"return this\")();\n} catch (e) {\n // This works if the window reference is available\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\") g = window;\n} // g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\n\nmodule.exports = g;","module.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n\n module.paths = []; // module.parent = undefined by default\n\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && define.amd ? define([\"exports\"], factory) : factory(global.ActiveStorage = {});\n})(this, function (exports) {\n \"use strict\";\n\n function createCommonjsModule(fn, module) {\n return module = {\n exports: {}\n }, fn(module, module.exports), module.exports;\n }\n\n var sparkMd5 = createCommonjsModule(function (module, exports) {\n (function (factory) {\n {\n module.exports = factory();\n }\n })(function (undefined) {\n var hex_chr = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\n\n function md5cycle(x, k) {\n var a = x[0],\n b = x[1],\n c = x[2],\n d = x[3];\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n\n function md5blk(s) {\n var md5blks = [],\n i;\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n }\n\n return md5blks;\n }\n\n function md5blk_array(a) {\n var md5blks = [],\n i;\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n }\n\n return md5blks;\n }\n\n function md51(s) {\n var n = s.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n\n s = s.substring(i - 64);\n length = s.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n\n function md51_array(a) {\n var n = a.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\n\n a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);\n length = a.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n\n function rhex(n) {\n var s = \"\",\n j;\n\n for (j = 0; j < 4; j += 1) {\n s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];\n }\n\n return s;\n }\n\n function hex(x) {\n var i;\n\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n\n return x.join(\"\");\n }\n\n if (hex(md51(\"hello\")) !== \"5d41402abc4b2a76b9719d911017c592\") ;\n\n if (typeof ArrayBuffer !== \"undefined\" && !ArrayBuffer.prototype.slice) {\n (function () {\n function clamp(val, length) {\n val = val | 0 || 0;\n\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n\n return Math.min(val, length);\n }\n\n ArrayBuffer.prototype.slice = function (from, to) {\n var length = this.byteLength,\n begin = clamp(from, length),\n end = length,\n num,\n target,\n targetArray,\n sourceArray;\n\n if (to !== undefined) {\n end = clamp(to, length);\n }\n\n if (begin > end) {\n return new ArrayBuffer(0);\n }\n\n num = end - begin;\n target = new ArrayBuffer(num);\n targetArray = new Uint8Array(target);\n sourceArray = new Uint8Array(this, begin, num);\n targetArray.set(sourceArray);\n return target;\n };\n })();\n }\n\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n\n return str;\n }\n\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length,\n buff = new ArrayBuffer(length),\n arr = new Uint8Array(buff),\n i;\n\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n\n return returnUInt8Array ? arr : buff;\n }\n\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\n\n function concatenateArrayBuffers(first, second, returnUInt8Array) {\n var result = new Uint8Array(first.byteLength + second.byteLength);\n result.set(new Uint8Array(first));\n result.set(new Uint8Array(second), first.byteLength);\n return returnUInt8Array ? result : result.buffer;\n }\n\n function hexToBinaryString(hex) {\n var bytes = [],\n length = hex.length,\n x;\n\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n\n return String.fromCharCode.apply(String, bytes);\n }\n\n function SparkMD5() {\n this.reset();\n }\n\n SparkMD5.prototype.append = function (str) {\n this.appendBinary(toUtf8(str));\n return this;\n };\n\n SparkMD5.prototype.appendBinary = function (contents) {\n this._buff += contents;\n this._length += contents.length;\n var length = this._buff.length,\n i;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n\n this._buff = this._buff.substring(i - 64);\n return this;\n };\n\n SparkMD5.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n i,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\n\n SparkMD5.prototype.reset = function () {\n this._buff = \"\";\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n\n SparkMD5.prototype.getState = function () {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash\n };\n };\n\n SparkMD5.prototype.setState = function (state) {\n this._buff = state.buff;\n this._length = state.length;\n this._hash = state.hash;\n return this;\n };\n\n SparkMD5.prototype.destroy = function () {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\n\n SparkMD5.prototype._finish = function (tail, length) {\n var i = length,\n tmp,\n lo,\n hi;\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(this._hash, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = this._length * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(this._hash, tail);\n };\n\n SparkMD5.hash = function (str, raw) {\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n\n SparkMD5.hashBinary = function (content, raw) {\n var hash = md51(content),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n SparkMD5.ArrayBuffer = function () {\n this.reset();\n };\n\n SparkMD5.ArrayBuffer.prototype.append = function (arr) {\n var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),\n length = buff.length,\n i;\n this._length += arr.byteLength;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n\n this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n return this;\n };\n\n SparkMD5.ArrayBuffer.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n i,\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\n\n SparkMD5.ArrayBuffer.prototype.reset = function () {\n this._buff = new Uint8Array(0);\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n\n SparkMD5.ArrayBuffer.prototype.getState = function () {\n var state = SparkMD5.prototype.getState.call(this);\n state.buff = arrayBuffer2Utf8Str(state.buff);\n return state;\n };\n\n SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n return SparkMD5.prototype.setState.call(this, state);\n };\n\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n\n SparkMD5.ArrayBuffer.hash = function (arr, raw) {\n var hash = md51_array(new Uint8Array(arr)),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n return SparkMD5;\n });\n });\n\n var classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n };\n\n var createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n\n var FileChecksum = function () {\n createClass(FileChecksum, null, [{\n key: \"create\",\n value: function create(file, callback) {\n var instance = new FileChecksum(file);\n instance.create(callback);\n }\n }]);\n\n function FileChecksum(file) {\n classCallCheck(this, FileChecksum);\n this.file = file;\n this.chunkSize = 2097152;\n this.chunkCount = Math.ceil(this.file.size / this.chunkSize);\n this.chunkIndex = 0;\n }\n\n createClass(FileChecksum, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\n this.callback = callback;\n this.md5Buffer = new sparkMd5.ArrayBuffer();\n this.fileReader = new FileReader();\n this.fileReader.addEventListener(\"load\", function (event) {\n return _this.fileReaderDidLoad(event);\n });\n this.fileReader.addEventListener(\"error\", function (event) {\n return _this.fileReaderDidError(event);\n });\n this.readNextChunk();\n }\n }, {\n key: \"fileReaderDidLoad\",\n value: function fileReaderDidLoad(event) {\n this.md5Buffer.append(event.target.result);\n\n if (!this.readNextChunk()) {\n var binaryDigest = this.md5Buffer.end(true);\n var base64digest = btoa(binaryDigest);\n this.callback(null, base64digest);\n }\n }\n }, {\n key: \"fileReaderDidError\",\n value: function fileReaderDidError(event) {\n this.callback(\"Error reading \" + this.file.name);\n }\n }, {\n key: \"readNextChunk\",\n value: function readNextChunk() {\n if (this.chunkIndex < this.chunkCount || this.chunkIndex == 0 && this.chunkCount == 0) {\n var start = this.chunkIndex * this.chunkSize;\n var end = Math.min(start + this.chunkSize, this.file.size);\n var bytes = fileSlice.call(this.file, start, end);\n this.fileReader.readAsArrayBuffer(bytes);\n this.chunkIndex++;\n return true;\n } else {\n return false;\n }\n }\n }]);\n return FileChecksum;\n }();\n\n function getMetaValue(name) {\n var element = findElement(document.head, 'meta[name=\"' + name + '\"]');\n\n if (element) {\n return element.getAttribute(\"content\");\n }\n }\n\n function findElements(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n var elements = root.querySelectorAll(selector);\n return toArray$1(elements);\n }\n\n function findElement(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n return root.querySelector(selector);\n }\n\n function dispatchEvent(element, type) {\n var eventInit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var disabled = element.disabled;\n var bubbles = eventInit.bubbles,\n cancelable = eventInit.cancelable,\n detail = eventInit.detail;\n var event = document.createEvent(\"Event\");\n event.initEvent(type, bubbles || true, cancelable || true);\n event.detail = detail || {};\n\n try {\n element.disabled = false;\n element.dispatchEvent(event);\n } finally {\n element.disabled = disabled;\n }\n\n return event;\n }\n\n function toArray$1(value) {\n if (Array.isArray(value)) {\n return value;\n } else if (Array.from) {\n return Array.from(value);\n } else {\n return [].slice.call(value);\n }\n }\n\n var BlobRecord = function () {\n function BlobRecord(file, checksum, url) {\n var _this = this;\n\n classCallCheck(this, BlobRecord);\n this.file = file;\n this.attributes = {\n filename: file.name,\n content_type: file.type,\n byte_size: file.size,\n checksum: checksum\n };\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"POST\", url, true);\n this.xhr.responseType = \"json\";\n this.xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n this.xhr.setRequestHeader(\"Accept\", \"application/json\");\n this.xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n this.xhr.setRequestHeader(\"X-CSRF-Token\", getMetaValue(\"csrf-token\"));\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n\n createClass(BlobRecord, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(JSON.stringify({\n blob: this.attributes\n }));\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n if (this.status >= 200 && this.status < 300) {\n var response = this.response;\n var direct_upload = response.direct_upload;\n delete response.direct_upload;\n this.attributes = response;\n this.directUploadData = direct_upload;\n this.callback(null, this.toJSON());\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error creating Blob for \"' + this.file.name + '\". Status: ' + this.status);\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var result = {};\n\n for (var key in this.attributes) {\n result[key] = this.attributes[key];\n }\n\n return result;\n }\n }, {\n key: \"status\",\n get: function get$$1() {\n return this.xhr.status;\n }\n }, {\n key: \"response\",\n get: function get$$1() {\n var _xhr = this.xhr,\n responseType = _xhr.responseType,\n response = _xhr.response;\n\n if (responseType == \"json\") {\n return response;\n } else {\n return JSON.parse(response);\n }\n }\n }]);\n return BlobRecord;\n }();\n\n var BlobUpload = function () {\n function BlobUpload(blob) {\n var _this = this;\n\n classCallCheck(this, BlobUpload);\n this.blob = blob;\n this.file = blob.file;\n var _blob$directUploadDat = blob.directUploadData,\n url = _blob$directUploadDat.url,\n headers = _blob$directUploadDat.headers;\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"PUT\", url, true);\n this.xhr.responseType = \"text\";\n\n for (var key in headers) {\n this.xhr.setRequestHeader(key, headers[key]);\n }\n\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n\n createClass(BlobUpload, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(this.file.slice());\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n var _xhr = this.xhr,\n status = _xhr.status,\n response = _xhr.response;\n\n if (status >= 200 && status < 300) {\n this.callback(null, response);\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error storing \"' + this.file.name + '\". Status: ' + this.xhr.status);\n }\n }]);\n return BlobUpload;\n }();\n\n var id = 0;\n\n var DirectUpload = function () {\n function DirectUpload(file, url, delegate) {\n classCallCheck(this, DirectUpload);\n this.id = ++id;\n this.file = file;\n this.url = url;\n this.delegate = delegate;\n }\n\n createClass(DirectUpload, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\n FileChecksum.create(this.file, function (error, checksum) {\n if (error) {\n callback(error);\n return;\n }\n\n var blob = new BlobRecord(_this.file, checksum, _this.url);\n notify(_this.delegate, \"directUploadWillCreateBlobWithXHR\", blob.xhr);\n blob.create(function (error) {\n if (error) {\n callback(error);\n } else {\n var upload = new BlobUpload(blob);\n notify(_this.delegate, \"directUploadWillStoreFileWithXHR\", upload.xhr);\n upload.create(function (error) {\n if (error) {\n callback(error);\n } else {\n callback(null, blob.toJSON());\n }\n });\n }\n });\n });\n }\n }]);\n return DirectUpload;\n }();\n\n function notify(object, methodName) {\n if (object && typeof object[methodName] == \"function\") {\n for (var _len = arguments.length, messages = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n messages[_key - 2] = arguments[_key];\n }\n\n return object[methodName].apply(object, messages);\n }\n }\n\n var DirectUploadController = function () {\n function DirectUploadController(input, file) {\n classCallCheck(this, DirectUploadController);\n this.input = input;\n this.file = file;\n this.directUpload = new DirectUpload(this.file, this.url, this);\n this.dispatch(\"initialize\");\n }\n\n createClass(DirectUploadController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\n var hiddenInput = document.createElement(\"input\");\n hiddenInput.type = \"hidden\";\n hiddenInput.name = this.input.name;\n this.input.insertAdjacentElement(\"beforebegin\", hiddenInput);\n this.dispatch(\"start\");\n this.directUpload.create(function (error, attributes) {\n if (error) {\n hiddenInput.parentNode.removeChild(hiddenInput);\n\n _this.dispatchError(error);\n } else {\n hiddenInput.value = attributes.signed_id;\n }\n\n _this.dispatch(\"end\");\n\n callback(error);\n });\n }\n }, {\n key: \"uploadRequestDidProgress\",\n value: function uploadRequestDidProgress(event) {\n var progress = event.loaded / event.total * 100;\n\n if (progress) {\n this.dispatch(\"progress\", {\n progress: progress\n });\n }\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n detail.file = this.file;\n detail.id = this.directUpload.id;\n return dispatchEvent(this.input, \"direct-upload:\" + name, {\n detail: detail\n });\n }\n }, {\n key: \"dispatchError\",\n value: function dispatchError(error) {\n var event = this.dispatch(\"error\", {\n error: error\n });\n\n if (!event.defaultPrevented) {\n alert(error);\n }\n }\n }, {\n key: \"directUploadWillCreateBlobWithXHR\",\n value: function directUploadWillCreateBlobWithXHR(xhr) {\n this.dispatch(\"before-blob-request\", {\n xhr: xhr\n });\n }\n }, {\n key: \"directUploadWillStoreFileWithXHR\",\n value: function directUploadWillStoreFileWithXHR(xhr) {\n var _this2 = this;\n\n this.dispatch(\"before-storage-request\", {\n xhr: xhr\n });\n xhr.upload.addEventListener(\"progress\", function (event) {\n return _this2.uploadRequestDidProgress(event);\n });\n }\n }, {\n key: \"url\",\n get: function get$$1() {\n return this.input.getAttribute(\"data-direct-upload-url\");\n }\n }]);\n return DirectUploadController;\n }();\n\n var inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n\n var DirectUploadsController = function () {\n function DirectUploadsController(form) {\n classCallCheck(this, DirectUploadsController);\n this.form = form;\n this.inputs = findElements(form, inputSelector).filter(function (input) {\n return input.files.length;\n });\n }\n\n createClass(DirectUploadsController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\n var controllers = this.createDirectUploadControllers();\n\n var startNextController = function startNextController() {\n var controller = controllers.shift();\n\n if (controller) {\n controller.start(function (error) {\n if (error) {\n callback(error);\n\n _this.dispatch(\"end\");\n } else {\n startNextController();\n }\n });\n } else {\n callback();\n\n _this.dispatch(\"end\");\n }\n };\n\n this.dispatch(\"start\");\n startNextController();\n }\n }, {\n key: \"createDirectUploadControllers\",\n value: function createDirectUploadControllers() {\n var controllers = [];\n this.inputs.forEach(function (input) {\n toArray$1(input.files).forEach(function (file) {\n var controller = new DirectUploadController(input, file);\n controllers.push(controller);\n });\n });\n return controllers;\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return dispatchEvent(this.form, \"direct-uploads:\" + name, {\n detail: detail\n });\n }\n }]);\n return DirectUploadsController;\n }();\n\n var processingAttribute = \"data-direct-uploads-processing\";\n var submitButtonsByForm = new WeakMap();\n var started = false;\n\n function start() {\n if (!started) {\n started = true;\n document.addEventListener(\"click\", didClick, true);\n document.addEventListener(\"submit\", didSubmitForm);\n document.addEventListener(\"ajax:before\", didSubmitRemoteElement);\n }\n }\n\n function didClick(event) {\n var target = event.target;\n\n if ((target.tagName == \"INPUT\" || target.tagName == \"BUTTON\") && target.type == \"submit\" && target.form) {\n submitButtonsByForm.set(target.form, target);\n }\n }\n\n function didSubmitForm(event) {\n handleFormSubmissionEvent(event);\n }\n\n function didSubmitRemoteElement(event) {\n if (event.target.tagName == \"FORM\") {\n handleFormSubmissionEvent(event);\n }\n }\n\n function handleFormSubmissionEvent(event) {\n var form = event.target;\n\n if (form.hasAttribute(processingAttribute)) {\n event.preventDefault();\n return;\n }\n\n var controller = new DirectUploadsController(form);\n var inputs = controller.inputs;\n\n if (inputs.length) {\n event.preventDefault();\n form.setAttribute(processingAttribute, \"\");\n inputs.forEach(disable);\n controller.start(function (error) {\n form.removeAttribute(processingAttribute);\n\n if (error) {\n inputs.forEach(enable);\n } else {\n submitForm(form);\n }\n });\n }\n }\n\n function submitForm(form) {\n var button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n\n if (button) {\n var _button = button,\n disabled = _button.disabled;\n button.disabled = false;\n button.focus();\n button.click();\n button.disabled = disabled;\n } else {\n button = document.createElement(\"input\");\n button.type = \"submit\";\n button.style.display = \"none\";\n form.appendChild(button);\n button.click();\n form.removeChild(button);\n }\n\n submitButtonsByForm.delete(form);\n }\n\n function disable(input) {\n input.disabled = true;\n }\n\n function enable(input) {\n input.disabled = false;\n }\n\n function autostart() {\n if (window.ActiveStorage) {\n start();\n }\n }\n\n setTimeout(autostart, 1);\n exports.start = start;\n exports.DirectUpload = DirectUpload;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/main/actionview/app/assets/javascripts\nReleased under the MIT license\n */\n;\n(function () {\n var context = this;\n (function () {\n (function () {\n this.Rails = {\n linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n buttonClickSelector: {\n selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n exclude: 'form button'\n },\n inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n formSubmitSelector: 'form:not([data-turbo=true])',\n formInputClickSelector: 'form:not([data-turbo=true]) input[type=submit], form:not([data-turbo=true]) input[type=image], form:not([data-turbo=true]) button[type=submit], form:not([data-turbo=true]) button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n fileInputSelector: 'input[name][type=file]:not([disabled])',\n linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n };\n }).call(this);\n }).call(context);\n var Rails = context.Rails;\n (function () {\n (function () {\n var nonce;\n nonce = null;\n\n Rails.loadCSPNonce = function () {\n var ref;\n return nonce = (ref = document.querySelector(\"meta[name=csp-nonce]\")) != null ? ref.content : void 0;\n };\n\n Rails.cspNonce = function () {\n return nonce != null ? nonce : Rails.loadCSPNonce();\n };\n }).call(this);\n (function () {\n var expando, m;\n m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n\n Rails.matches = function (element, selector) {\n if (selector.exclude != null) {\n return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n } else {\n return m.call(element, selector);\n }\n };\n\n expando = '_ujsData';\n\n Rails.getData = function (element, key) {\n var ref;\n return (ref = element[expando]) != null ? ref[key] : void 0;\n };\n\n Rails.setData = function (element, key, value) {\n if (element[expando] == null) {\n element[expando] = {};\n }\n\n return element[expando][key] = value;\n };\n\n Rails.$ = function (selector) {\n return Array.prototype.slice.call(document.querySelectorAll(selector));\n };\n }).call(this);\n (function () {\n var $, csrfParam, csrfToken;\n $ = Rails.$;\n\n csrfToken = Rails.csrfToken = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-token]');\n return meta && meta.content;\n };\n\n csrfParam = Rails.csrfParam = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-param]');\n return meta && meta.content;\n };\n\n Rails.CSRFProtection = function (xhr) {\n var token;\n token = csrfToken();\n\n if (token != null) {\n return xhr.setRequestHeader('X-CSRF-Token', token);\n }\n };\n\n Rails.refreshCSRFTokens = function () {\n var param, token;\n token = csrfToken();\n param = csrfParam();\n\n if (token != null && param != null) {\n return $('form input[name=\"' + param + '\"]').forEach(function (input) {\n return input.value = token;\n });\n }\n };\n }).call(this);\n (function () {\n var CustomEvent, fire, matches, preventDefault;\n matches = Rails.matches;\n CustomEvent = window.CustomEvent;\n\n if (typeof CustomEvent !== 'function') {\n CustomEvent = function CustomEvent(event, params) {\n var evt;\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n\n CustomEvent.prototype = window.Event.prototype;\n preventDefault = CustomEvent.prototype.preventDefault;\n\n CustomEvent.prototype.preventDefault = function () {\n var result;\n result = preventDefault.call(this);\n\n if (this.cancelable && !this.defaultPrevented) {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function get() {\n return true;\n }\n });\n }\n\n return result;\n };\n }\n\n fire = Rails.fire = function (obj, name, data) {\n var event;\n event = new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail: data\n });\n obj.dispatchEvent(event);\n return !event.defaultPrevented;\n };\n\n Rails.stopEverything = function (e) {\n fire(e.target, 'ujs:everythingStopped');\n e.preventDefault();\n e.stopPropagation();\n return e.stopImmediatePropagation();\n };\n\n Rails.delegate = function (element, selector, eventType, handler) {\n return element.addEventListener(eventType, function (e) {\n var target;\n target = e.target;\n\n while (!(!(target instanceof Element) || matches(target, selector))) {\n target = target.parentNode;\n }\n\n if (target instanceof Element && handler.call(target, e) === false) {\n e.preventDefault();\n return e.stopPropagation();\n }\n });\n };\n }).call(this);\n (function () {\n var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n AcceptHeaders = {\n '*': '*/*',\n text: 'text/plain',\n html: 'text/html',\n xml: 'application/xml, text/xml',\n json: 'application/json, text/javascript',\n script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n };\n\n Rails.ajax = function (options) {\n var xhr;\n options = prepareOptions(options);\n xhr = createXHR(options, function () {\n var ref, response;\n response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n\n if (Math.floor(xhr.status / 100) === 2) {\n if (typeof options.success === \"function\") {\n options.success(response, xhr.statusText, xhr);\n }\n } else {\n if (typeof options.error === \"function\") {\n options.error(response, xhr.statusText, xhr);\n }\n }\n\n return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n });\n\n if (options.beforeSend != null && !options.beforeSend(xhr, options)) {\n return false;\n }\n\n if (xhr.readyState === XMLHttpRequest.OPENED) {\n return xhr.send(options.data);\n }\n };\n\n prepareOptions = function prepareOptions(options) {\n options.url = options.url || location.href;\n options.type = options.type.toUpperCase();\n\n if (options.type === 'GET' && options.data) {\n if (options.url.indexOf('?') < 0) {\n options.url += '?' + options.data;\n } else {\n options.url += '&' + options.data;\n }\n }\n\n if (AcceptHeaders[options.dataType] == null) {\n options.dataType = '*';\n }\n\n options.accept = AcceptHeaders[options.dataType];\n\n if (options.dataType !== '*') {\n options.accept += ', */*; q=0.01';\n }\n\n return options;\n };\n\n createXHR = function createXHR(options, done) {\n var xhr;\n xhr = new XMLHttpRequest();\n xhr.open(options.type, options.url, true);\n xhr.setRequestHeader('Accept', options.accept);\n\n if (typeof options.data === 'string') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n }\n\n if (!options.crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n CSRFProtection(xhr);\n }\n\n xhr.withCredentials = !!options.withCredentials;\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n return done(xhr);\n }\n };\n\n return xhr;\n };\n\n processResponse = function processResponse(response, type) {\n var parser, script;\n\n if (typeof response === 'string' && typeof type === 'string') {\n if (type.match(/\\bjson\\b/)) {\n try {\n response = JSON.parse(response);\n } catch (error) {}\n } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n script = document.createElement('script');\n script.setAttribute('nonce', cspNonce());\n script.text = response;\n document.head.appendChild(script).parentNode.removeChild(script);\n } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n parser = new DOMParser();\n type = type.replace(/;.+/, '');\n\n try {\n response = parser.parseFromString(response, type);\n } catch (error) {}\n }\n }\n\n return response;\n };\n\n Rails.href = function (element) {\n return element.href;\n };\n\n Rails.isCrossDomain = function (url) {\n var e, originAnchor, urlAnchor;\n originAnchor = document.createElement('a');\n originAnchor.href = location.href;\n urlAnchor = document.createElement('a');\n\n try {\n urlAnchor.href = url;\n return !((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host || originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host);\n } catch (error) {\n e = error;\n return true;\n }\n };\n }).call(this);\n (function () {\n var matches, toArray;\n matches = Rails.matches;\n\n toArray = function toArray(e) {\n return Array.prototype.slice.call(e);\n };\n\n Rails.serializeElement = function (element, additionalParam) {\n var inputs, params;\n inputs = [element];\n\n if (matches(element, 'form')) {\n inputs = toArray(element.elements);\n }\n\n params = [];\n inputs.forEach(function (input) {\n if (!input.name || input.disabled) {\n return;\n }\n\n if (matches(input, 'fieldset[disabled] *')) {\n return;\n }\n\n if (matches(input, 'select')) {\n return toArray(input.options).forEach(function (option) {\n if (option.selected) {\n return params.push({\n name: input.name,\n value: option.value\n });\n }\n });\n } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n return params.push({\n name: input.name,\n value: input.value\n });\n }\n });\n\n if (additionalParam) {\n params.push(additionalParam);\n }\n\n return params.map(function (param) {\n if (param.name != null) {\n return encodeURIComponent(param.name) + \"=\" + encodeURIComponent(param.value);\n } else {\n return param;\n }\n }).join('&');\n };\n\n Rails.formElements = function (form, selector) {\n if (matches(form, 'form')) {\n return toArray(form.elements).filter(function (el) {\n return matches(el, selector);\n });\n } else {\n return toArray(form.querySelectorAll(selector));\n }\n };\n }).call(this);\n (function () {\n var allowAction, fire, stopEverything;\n fire = Rails.fire, stopEverything = Rails.stopEverything;\n\n Rails.handleConfirm = function (e) {\n if (!allowAction(this)) {\n return stopEverything(e);\n }\n };\n\n Rails.confirm = function (message, element) {\n return confirm(message);\n };\n\n allowAction = function allowAction(element) {\n var answer, callback, message;\n message = element.getAttribute('data-confirm');\n\n if (!message) {\n return true;\n }\n\n answer = false;\n\n if (fire(element, 'confirm')) {\n try {\n answer = Rails.confirm(message, element);\n } catch (error) {}\n\n callback = fire(element, 'confirm:complete', [answer]);\n }\n\n return answer && callback;\n };\n }).call(this);\n (function () {\n var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isXhrRedirect, matches, setData, stopEverything;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements;\n\n Rails.handleDisabledElement = function (e) {\n var element;\n element = this;\n\n if (element.disabled) {\n return stopEverything(e);\n }\n };\n\n Rails.enableElement = function (e) {\n var element;\n\n if (e instanceof Event) {\n if (isXhrRedirect(e)) {\n return;\n }\n\n element = e.target;\n } else {\n element = e;\n }\n\n if (matches(element, Rails.linkDisableSelector)) {\n return enableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n return enableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return enableFormElements(element);\n }\n };\n\n Rails.disableElement = function (e) {\n var element;\n element = e instanceof Event ? e.target : e;\n\n if (matches(element, Rails.linkDisableSelector)) {\n return disableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n return disableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return disableFormElements(element);\n }\n };\n\n disableLinkElement = function disableLinkElement(element) {\n var replacement;\n\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n\n replacement = element.getAttribute('data-disable-with');\n\n if (replacement != null) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n }\n\n element.addEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', true);\n };\n\n enableLinkElement = function enableLinkElement(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n\n if (originalText != null) {\n element.innerHTML = originalText;\n setData(element, 'ujs:enable-with', null);\n }\n\n element.removeEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', null);\n };\n\n disableFormElements = function disableFormElements(form) {\n return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n };\n\n disableFormElement = function disableFormElement(element) {\n var replacement;\n\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n\n replacement = element.getAttribute('data-disable-with');\n\n if (replacement != null) {\n if (matches(element, 'button')) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n } else {\n setData(element, 'ujs:enable-with', element.value);\n element.value = replacement;\n }\n }\n\n element.disabled = true;\n return setData(element, 'ujs:disabled', true);\n };\n\n enableFormElements = function enableFormElements(form) {\n return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n };\n\n enableFormElement = function enableFormElement(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n\n if (originalText != null) {\n if (matches(element, 'button')) {\n element.innerHTML = originalText;\n } else {\n element.value = originalText;\n }\n\n setData(element, 'ujs:enable-with', null);\n }\n\n element.disabled = false;\n return setData(element, 'ujs:disabled', null);\n };\n\n isXhrRedirect = function isXhrRedirect(event) {\n var ref, xhr;\n xhr = (ref = event.detail) != null ? ref[0] : void 0;\n return (xhr != null ? xhr.getResponseHeader(\"X-Xhr-Redirect\") : void 0) != null;\n };\n }).call(this);\n (function () {\n var stopEverything;\n stopEverything = Rails.stopEverything;\n\n Rails.handleMethod = function (e) {\n var csrfParam, csrfToken, form, formContent, href, link, method;\n link = this;\n method = link.getAttribute('data-method');\n\n if (!method) {\n return;\n }\n\n href = Rails.href(link);\n csrfToken = Rails.csrfToken();\n csrfParam = Rails.csrfParam();\n form = document.createElement('form');\n formContent = \"\";\n\n if (csrfParam != null && csrfToken != null && !Rails.isCrossDomain(href)) {\n formContent += \"\";\n }\n\n formContent += '';\n form.method = 'post';\n form.action = href;\n form.target = link.target;\n form.innerHTML = formContent;\n form.style.display = 'none';\n document.body.appendChild(form);\n form.querySelector('[type=\"submit\"]').click();\n return stopEverything(e);\n };\n }).call(this);\n (function () {\n var ajax,\n fire,\n getData,\n isCrossDomain,\n isRemote,\n matches,\n serializeElement,\n setData,\n stopEverything,\n slice = [].slice;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement;\n\n isRemote = function isRemote(element) {\n var value;\n value = element.getAttribute('data-remote');\n return value != null && value !== 'false';\n };\n\n Rails.handleRemote = function (e) {\n var button, data, dataType, element, method, url, withCredentials;\n element = this;\n\n if (!isRemote(element)) {\n return true;\n }\n\n if (!fire(element, 'ajax:before')) {\n fire(element, 'ajax:stopped');\n return false;\n }\n\n withCredentials = element.getAttribute('data-with-credentials');\n dataType = element.getAttribute('data-type') || 'script';\n\n if (matches(element, Rails.formSubmitSelector)) {\n button = getData(element, 'ujs:submit-button');\n method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n\n if (method.toUpperCase() === 'GET') {\n url = url.replace(/\\?.*$/, '');\n }\n\n if (element.enctype === 'multipart/form-data') {\n data = new FormData(element);\n\n if (button != null) {\n data.append(button.name, button.value);\n }\n } else {\n data = serializeElement(element, button);\n }\n\n setData(element, 'ujs:submit-button', null);\n setData(element, 'ujs:submit-button-formmethod', null);\n setData(element, 'ujs:submit-button-formaction', null);\n } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n method = element.getAttribute('data-method');\n url = element.getAttribute('data-url');\n data = serializeElement(element, element.getAttribute('data-params'));\n } else {\n method = element.getAttribute('data-method');\n url = Rails.href(element);\n data = element.getAttribute('data-params');\n }\n\n ajax({\n type: method || 'GET',\n url: url,\n data: data,\n dataType: dataType,\n beforeSend: function beforeSend(xhr, options) {\n if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n return fire(element, 'ajax:send', [xhr]);\n } else {\n fire(element, 'ajax:stopped');\n return false;\n }\n },\n success: function success() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:success', args);\n },\n error: function error() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:error', args);\n },\n complete: function complete() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:complete', args);\n },\n crossDomain: isCrossDomain(url),\n withCredentials: withCredentials != null && withCredentials !== 'false'\n });\n return stopEverything(e);\n };\n\n Rails.formSubmitButtonClick = function (e) {\n var button, form;\n button = this;\n form = button.form;\n\n if (!form) {\n return;\n }\n\n if (button.name) {\n setData(form, 'ujs:submit-button', {\n name: button.name,\n value: button.value\n });\n }\n\n setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n };\n\n Rails.preventInsignificantClick = function (e) {\n var data, insignificantMetaClick, link, metaClick, method, nonPrimaryMouseClick;\n link = this;\n method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n data = link.getAttribute('data-params');\n metaClick = e.metaKey || e.ctrlKey;\n insignificantMetaClick = metaClick && method === 'GET' && !data;\n nonPrimaryMouseClick = e.button != null && e.button !== 0;\n\n if (nonPrimaryMouseClick || insignificantMetaClick) {\n return e.stopImmediatePropagation();\n }\n };\n }).call(this);\n (function () {\n var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, loadCSPNonce = Rails.loadCSPNonce, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, preventInsignificantClick = Rails.preventInsignificantClick, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMethod = Rails.handleMethod;\n\n if (typeof jQuery !== \"undefined\" && jQuery !== null && jQuery.ajax != null) {\n if (jQuery.rails) {\n throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n }\n\n jQuery.rails = Rails;\n jQuery.ajaxPrefilter(function (options, originalOptions, xhr) {\n if (!options.crossDomain) {\n return CSRFProtection(xhr);\n }\n });\n }\n\n Rails.start = function () {\n if (window._rails_loaded) {\n throw new Error('rails-ujs has already been loaded!');\n }\n\n window.addEventListener('pageshow', function () {\n $(Rails.formEnableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n return $(Rails.linkDisableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n });\n delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.linkClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n delegate(document, Rails.linkClickSelector, 'click', disableElement);\n delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n delegate(document, Rails.buttonClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', function (e) {\n return setTimeout(function () {\n return disableElement(e);\n }, 13);\n });\n delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.formInputClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n document.addEventListener('DOMContentLoaded', loadCSPNonce);\n return window._rails_loaded = true;\n };\n\n if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n Rails.start();\n }\n }).call(this);\n }).call(this);\n\n if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === \"object\" && module.exports) {\n module.exports = Rails;\n } else if (typeof define === \"function\" && define.amd) {\n define(Rails);\n }\n}).call(this);","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && define.amd ? define([\"exports\"], factory) : factory(global.ActiveStorage = {});\n})(this, function (exports) {\n \"use strict\";\n\n function createCommonjsModule(fn, module) {\n return module = {\n exports: {}\n }, fn(module, module.exports), module.exports;\n }\n\n var sparkMd5 = createCommonjsModule(function (module, exports) {\n (function (factory) {\n {\n module.exports = factory();\n }\n })(function (undefined) {\n var hex_chr = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\n\n function md5cycle(x, k) {\n var a = x[0],\n b = x[1],\n c = x[2],\n d = x[3];\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n\n function md5blk(s) {\n var md5blks = [],\n i;\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n }\n\n return md5blks;\n }\n\n function md5blk_array(a) {\n var md5blks = [],\n i;\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n }\n\n return md5blks;\n }\n\n function md51(s) {\n var n = s.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n\n s = s.substring(i - 64);\n length = s.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n\n function md51_array(a) {\n var n = a.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\n\n a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);\n length = a.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n\n function rhex(n) {\n var s = \"\",\n j;\n\n for (j = 0; j < 4; j += 1) {\n s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];\n }\n\n return s;\n }\n\n function hex(x) {\n var i;\n\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n\n return x.join(\"\");\n }\n\n if (hex(md51(\"hello\")) !== \"5d41402abc4b2a76b9719d911017c592\") ;\n\n if (typeof ArrayBuffer !== \"undefined\" && !ArrayBuffer.prototype.slice) {\n (function () {\n function clamp(val, length) {\n val = val | 0 || 0;\n\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n\n return Math.min(val, length);\n }\n\n ArrayBuffer.prototype.slice = function (from, to) {\n var length = this.byteLength,\n begin = clamp(from, length),\n end = length,\n num,\n target,\n targetArray,\n sourceArray;\n\n if (to !== undefined) {\n end = clamp(to, length);\n }\n\n if (begin > end) {\n return new ArrayBuffer(0);\n }\n\n num = end - begin;\n target = new ArrayBuffer(num);\n targetArray = new Uint8Array(target);\n sourceArray = new Uint8Array(this, begin, num);\n targetArray.set(sourceArray);\n return target;\n };\n })();\n }\n\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n\n return str;\n }\n\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length,\n buff = new ArrayBuffer(length),\n arr = new Uint8Array(buff),\n i;\n\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n\n return returnUInt8Array ? arr : buff;\n }\n\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\n\n function concatenateArrayBuffers(first, second, returnUInt8Array) {\n var result = new Uint8Array(first.byteLength + second.byteLength);\n result.set(new Uint8Array(first));\n result.set(new Uint8Array(second), first.byteLength);\n return returnUInt8Array ? result : result.buffer;\n }\n\n function hexToBinaryString(hex) {\n var bytes = [],\n length = hex.length,\n x;\n\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n\n return String.fromCharCode.apply(String, bytes);\n }\n\n function SparkMD5() {\n this.reset();\n }\n\n SparkMD5.prototype.append = function (str) {\n this.appendBinary(toUtf8(str));\n return this;\n };\n\n SparkMD5.prototype.appendBinary = function (contents) {\n this._buff += contents;\n this._length += contents.length;\n var length = this._buff.length,\n i;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n\n this._buff = this._buff.substring(i - 64);\n return this;\n };\n\n SparkMD5.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n i,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\n\n SparkMD5.prototype.reset = function () {\n this._buff = \"\";\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n\n SparkMD5.prototype.getState = function () {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash\n };\n };\n\n SparkMD5.prototype.setState = function (state) {\n this._buff = state.buff;\n this._length = state.length;\n this._hash = state.hash;\n return this;\n };\n\n SparkMD5.prototype.destroy = function () {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\n\n SparkMD5.prototype._finish = function (tail, length) {\n var i = length,\n tmp,\n lo,\n hi;\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(this._hash, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = this._length * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(this._hash, tail);\n };\n\n SparkMD5.hash = function (str, raw) {\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n\n SparkMD5.hashBinary = function (content, raw) {\n var hash = md51(content),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n SparkMD5.ArrayBuffer = function () {\n this.reset();\n };\n\n SparkMD5.ArrayBuffer.prototype.append = function (arr) {\n var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),\n length = buff.length,\n i;\n this._length += arr.byteLength;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n\n this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n return this;\n };\n\n SparkMD5.ArrayBuffer.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n i,\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\n\n SparkMD5.ArrayBuffer.prototype.reset = function () {\n this._buff = new Uint8Array(0);\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n\n SparkMD5.ArrayBuffer.prototype.getState = function () {\n var state = SparkMD5.prototype.getState.call(this);\n state.buff = arrayBuffer2Utf8Str(state.buff);\n return state;\n };\n\n SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n return SparkMD5.prototype.setState.call(this, state);\n };\n\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n\n SparkMD5.ArrayBuffer.hash = function (arr, raw) {\n var hash = md51_array(new Uint8Array(arr)),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n return SparkMD5;\n });\n });\n\n var classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n };\n\n var createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n\n var FileChecksum = function () {\n createClass(FileChecksum, null, [{\n key: \"create\",\n value: function create(file, callback) {\n var instance = new FileChecksum(file);\n instance.create(callback);\n }\n }]);\n\n function FileChecksum(file) {\n classCallCheck(this, FileChecksum);\n this.file = file;\n this.chunkSize = 2097152;\n this.chunkCount = Math.ceil(this.file.size / this.chunkSize);\n this.chunkIndex = 0;\n }\n\n createClass(FileChecksum, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\n this.callback = callback;\n this.md5Buffer = new sparkMd5.ArrayBuffer();\n this.fileReader = new FileReader();\n this.fileReader.addEventListener(\"load\", function (event) {\n return _this.fileReaderDidLoad(event);\n });\n this.fileReader.addEventListener(\"error\", function (event) {\n return _this.fileReaderDidError(event);\n });\n this.readNextChunk();\n }\n }, {\n key: \"fileReaderDidLoad\",\n value: function fileReaderDidLoad(event) {\n this.md5Buffer.append(event.target.result);\n\n if (!this.readNextChunk()) {\n var binaryDigest = this.md5Buffer.end(true);\n var base64digest = btoa(binaryDigest);\n this.callback(null, base64digest);\n }\n }\n }, {\n key: \"fileReaderDidError\",\n value: function fileReaderDidError(event) {\n this.callback(\"Error reading \" + this.file.name);\n }\n }, {\n key: \"readNextChunk\",\n value: function readNextChunk() {\n if (this.chunkIndex < this.chunkCount || this.chunkIndex == 0 && this.chunkCount == 0) {\n var start = this.chunkIndex * this.chunkSize;\n var end = Math.min(start + this.chunkSize, this.file.size);\n var bytes = fileSlice.call(this.file, start, end);\n this.fileReader.readAsArrayBuffer(bytes);\n this.chunkIndex++;\n return true;\n } else {\n return false;\n }\n }\n }]);\n return FileChecksum;\n }();\n\n function getMetaValue(name) {\n var element = findElement(document.head, 'meta[name=\"' + name + '\"]');\n\n if (element) {\n return element.getAttribute(\"content\");\n }\n }\n\n function findElements(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n var elements = root.querySelectorAll(selector);\n return toArray$1(elements);\n }\n\n function findElement(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n return root.querySelector(selector);\n }\n\n function dispatchEvent(element, type) {\n var eventInit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var disabled = element.disabled;\n var bubbles = eventInit.bubbles,\n cancelable = eventInit.cancelable,\n detail = eventInit.detail;\n var event = document.createEvent(\"Event\");\n event.initEvent(type, bubbles || true, cancelable || true);\n event.detail = detail || {};\n\n try {\n element.disabled = false;\n element.dispatchEvent(event);\n } finally {\n element.disabled = disabled;\n }\n\n return event;\n }\n\n function toArray$1(value) {\n if (Array.isArray(value)) {\n return value;\n } else if (Array.from) {\n return Array.from(value);\n } else {\n return [].slice.call(value);\n }\n }\n\n var BlobRecord = function () {\n function BlobRecord(file, checksum, url) {\n var _this = this;\n\n classCallCheck(this, BlobRecord);\n this.file = file;\n this.attributes = {\n filename: file.name,\n content_type: file.type || \"application/octet-stream\",\n byte_size: file.size,\n checksum: checksum\n };\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"POST\", url, true);\n this.xhr.responseType = \"json\";\n this.xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n this.xhr.setRequestHeader(\"Accept\", \"application/json\");\n this.xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n var csrfToken = getMetaValue(\"csrf-token\");\n\n if (csrfToken != undefined) {\n this.xhr.setRequestHeader(\"X-CSRF-Token\", csrfToken);\n }\n\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n\n createClass(BlobRecord, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(JSON.stringify({\n blob: this.attributes\n }));\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n if (this.status >= 200 && this.status < 300) {\n var response = this.response;\n var direct_upload = response.direct_upload;\n delete response.direct_upload;\n this.attributes = response;\n this.directUploadData = direct_upload;\n this.callback(null, this.toJSON());\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error creating Blob for \"' + this.file.name + '\". Status: ' + this.status);\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var result = {};\n\n for (var key in this.attributes) {\n result[key] = this.attributes[key];\n }\n\n return result;\n }\n }, {\n key: \"status\",\n get: function get$$1() {\n return this.xhr.status;\n }\n }, {\n key: \"response\",\n get: function get$$1() {\n var _xhr = this.xhr,\n responseType = _xhr.responseType,\n response = _xhr.response;\n\n if (responseType == \"json\") {\n return response;\n } else {\n return JSON.parse(response);\n }\n }\n }]);\n return BlobRecord;\n }();\n\n var BlobUpload = function () {\n function BlobUpload(blob) {\n var _this = this;\n\n classCallCheck(this, BlobUpload);\n this.blob = blob;\n this.file = blob.file;\n var _blob$directUploadDat = blob.directUploadData,\n url = _blob$directUploadDat.url,\n headers = _blob$directUploadDat.headers;\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"PUT\", url, true);\n this.xhr.responseType = \"text\";\n\n for (var key in headers) {\n this.xhr.setRequestHeader(key, headers[key]);\n }\n\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n\n createClass(BlobUpload, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(this.file.slice());\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n var _xhr = this.xhr,\n status = _xhr.status,\n response = _xhr.response;\n\n if (status >= 200 && status < 300) {\n this.callback(null, response);\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error storing \"' + this.file.name + '\". Status: ' + this.xhr.status);\n }\n }]);\n return BlobUpload;\n }();\n\n var id = 0;\n\n var DirectUpload = function () {\n function DirectUpload(file, url, delegate) {\n classCallCheck(this, DirectUpload);\n this.id = ++id;\n this.file = file;\n this.url = url;\n this.delegate = delegate;\n }\n\n createClass(DirectUpload, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\n FileChecksum.create(this.file, function (error, checksum) {\n if (error) {\n callback(error);\n return;\n }\n\n var blob = new BlobRecord(_this.file, checksum, _this.url);\n notify(_this.delegate, \"directUploadWillCreateBlobWithXHR\", blob.xhr);\n blob.create(function (error) {\n if (error) {\n callback(error);\n } else {\n var upload = new BlobUpload(blob);\n notify(_this.delegate, \"directUploadWillStoreFileWithXHR\", upload.xhr);\n upload.create(function (error) {\n if (error) {\n callback(error);\n } else {\n callback(null, blob.toJSON());\n }\n });\n }\n });\n });\n }\n }]);\n return DirectUpload;\n }();\n\n function notify(object, methodName) {\n if (object && typeof object[methodName] == \"function\") {\n for (var _len = arguments.length, messages = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n messages[_key - 2] = arguments[_key];\n }\n\n return object[methodName].apply(object, messages);\n }\n }\n\n var DirectUploadController = function () {\n function DirectUploadController(input, file) {\n classCallCheck(this, DirectUploadController);\n this.input = input;\n this.file = file;\n this.directUpload = new DirectUpload(this.file, this.url, this);\n this.dispatch(\"initialize\");\n }\n\n createClass(DirectUploadController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\n var hiddenInput = document.createElement(\"input\");\n hiddenInput.type = \"hidden\";\n hiddenInput.name = this.input.name;\n this.input.insertAdjacentElement(\"beforebegin\", hiddenInput);\n this.dispatch(\"start\");\n this.directUpload.create(function (error, attributes) {\n if (error) {\n hiddenInput.parentNode.removeChild(hiddenInput);\n\n _this.dispatchError(error);\n } else {\n hiddenInput.value = attributes.signed_id;\n }\n\n _this.dispatch(\"end\");\n\n callback(error);\n });\n }\n }, {\n key: \"uploadRequestDidProgress\",\n value: function uploadRequestDidProgress(event) {\n var progress = event.loaded / event.total * 100;\n\n if (progress) {\n this.dispatch(\"progress\", {\n progress: progress\n });\n }\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n detail.file = this.file;\n detail.id = this.directUpload.id;\n return dispatchEvent(this.input, \"direct-upload:\" + name, {\n detail: detail\n });\n }\n }, {\n key: \"dispatchError\",\n value: function dispatchError(error) {\n var event = this.dispatch(\"error\", {\n error: error\n });\n\n if (!event.defaultPrevented) {\n alert(error);\n }\n }\n }, {\n key: \"directUploadWillCreateBlobWithXHR\",\n value: function directUploadWillCreateBlobWithXHR(xhr) {\n this.dispatch(\"before-blob-request\", {\n xhr: xhr\n });\n }\n }, {\n key: \"directUploadWillStoreFileWithXHR\",\n value: function directUploadWillStoreFileWithXHR(xhr) {\n var _this2 = this;\n\n this.dispatch(\"before-storage-request\", {\n xhr: xhr\n });\n xhr.upload.addEventListener(\"progress\", function (event) {\n return _this2.uploadRequestDidProgress(event);\n });\n }\n }, {\n key: \"url\",\n get: function get$$1() {\n return this.input.getAttribute(\"data-direct-upload-url\");\n }\n }]);\n return DirectUploadController;\n }();\n\n var inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n\n var DirectUploadsController = function () {\n function DirectUploadsController(form) {\n classCallCheck(this, DirectUploadsController);\n this.form = form;\n this.inputs = findElements(form, inputSelector).filter(function (input) {\n return input.files.length;\n });\n }\n\n createClass(DirectUploadsController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\n var controllers = this.createDirectUploadControllers();\n\n var startNextController = function startNextController() {\n var controller = controllers.shift();\n\n if (controller) {\n controller.start(function (error) {\n if (error) {\n callback(error);\n\n _this.dispatch(\"end\");\n } else {\n startNextController();\n }\n });\n } else {\n callback();\n\n _this.dispatch(\"end\");\n }\n };\n\n this.dispatch(\"start\");\n startNextController();\n }\n }, {\n key: \"createDirectUploadControllers\",\n value: function createDirectUploadControllers() {\n var controllers = [];\n this.inputs.forEach(function (input) {\n toArray$1(input.files).forEach(function (file) {\n var controller = new DirectUploadController(input, file);\n controllers.push(controller);\n });\n });\n return controllers;\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return dispatchEvent(this.form, \"direct-uploads:\" + name, {\n detail: detail\n });\n }\n }]);\n return DirectUploadsController;\n }();\n\n var processingAttribute = \"data-direct-uploads-processing\";\n var submitButtonsByForm = new WeakMap();\n var started = false;\n\n function start() {\n if (!started) {\n started = true;\n document.addEventListener(\"click\", didClick, true);\n document.addEventListener(\"submit\", didSubmitForm);\n document.addEventListener(\"ajax:before\", didSubmitRemoteElement);\n }\n }\n\n function didClick(event) {\n var target = event.target;\n\n if ((target.tagName == \"INPUT\" || target.tagName == \"BUTTON\") && target.type == \"submit\" && target.form) {\n submitButtonsByForm.set(target.form, target);\n }\n }\n\n function didSubmitForm(event) {\n handleFormSubmissionEvent(event);\n }\n\n function didSubmitRemoteElement(event) {\n if (event.target.tagName == \"FORM\") {\n handleFormSubmissionEvent(event);\n }\n }\n\n function handleFormSubmissionEvent(event) {\n var form = event.target;\n\n if (form.hasAttribute(processingAttribute)) {\n event.preventDefault();\n return;\n }\n\n var controller = new DirectUploadsController(form);\n var inputs = controller.inputs;\n\n if (inputs.length) {\n event.preventDefault();\n form.setAttribute(processingAttribute, \"\");\n inputs.forEach(disable);\n controller.start(function (error) {\n form.removeAttribute(processingAttribute);\n\n if (error) {\n inputs.forEach(enable);\n } else {\n submitForm(form);\n }\n });\n }\n }\n\n function submitForm(form) {\n var button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n\n if (button) {\n var _button = button,\n disabled = _button.disabled;\n button.disabled = false;\n button.focus();\n button.click();\n button.disabled = disabled;\n } else {\n button = document.createElement(\"input\");\n button.type = \"submit\";\n button.style.display = \"none\";\n form.appendChild(button);\n button.click();\n form.removeChild(button);\n }\n\n submitButtonsByForm.delete(form);\n }\n\n function disable(input) {\n input.disabled = true;\n }\n\n function enable(input) {\n input.disabled = false;\n }\n\n function autostart() {\n if (window.ActiveStorage) {\n start();\n }\n }\n\n setTimeout(autostart, 1);\n exports.start = start;\n exports.DirectUpload = DirectUpload;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});","var scope = typeof global !== \"undefined\" && global || typeof self !== \"undefined\" && self || window;\nvar apply = Function.prototype.apply; // DOM APIs, for completeness\n\nexports.setTimeout = function () {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\n\nexports.setInterval = function () {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\n\nexports.clearTimeout = exports.clearInterval = function (timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\n\nTimeout.prototype.unref = Timeout.prototype.ref = function () {};\n\nTimeout.prototype.close = function () {\n this._clearFn.call(scope, this._id);\n}; // Does not start the time, just sets up the members needed.\n\n\nexports.enroll = function (item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function (item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function (item) {\n clearTimeout(item._idleTimeoutId);\n var msecs = item._idleTimeout;\n\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout) item._onTimeout();\n }, msecs);\n }\n}; // setimmediate attaches itself to the global object\n\n\nrequire(\"setimmediate\"); // On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\n\n\nexports.setImmediate = typeof self !== \"undefined\" && self.setImmediate || typeof global !== \"undefined\" && global.setImmediate || this && this.setImmediate;\nexports.clearImmediate = typeof self !== \"undefined\" && self.clearImmediate || typeof global !== \"undefined\" && global.clearImmediate || this && this.clearImmediate;","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n } // Copy function arguments\n\n\n var args = new Array(arguments.length - 1);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n } // Store and register the task\n\n\n var task = {\n callback: callback,\n args: args\n };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n\n switch (args.length) {\n case 0:\n callback();\n break;\n\n case 1:\n callback(args[0]);\n break;\n\n case 2:\n callback(args[0], args[1]);\n break;\n\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n\n if (task) {\n currentlyRunningATask = true;\n\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function registerImmediate(handle) {\n process.nextTick(function () {\n runIfPresent(handle);\n });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n\n global.onmessage = function () {\n postMessageIsAsynchronous = false;\n };\n\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n\n var onGlobalMessage = function onGlobalMessage(event) {\n if (event.source === global && typeof event.data === \"string\" && event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function registerImmediate(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n\n channel.port1.onmessage = function (event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function registerImmediate(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n\n registerImmediate = function registerImmediate(handle) {\n // Create a