{"version":3,"sources":["../node_modules/devextreme-quill/dist/dx-quill.js"],"names":["factory","modules","installedModules","__webpack_require__","moduleId","exports","module","i","l","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","__importDefault","this","mod","fast_diff_1","lodash_clonedeep_1","lodash_isequal_1","AttributeMap_1","Op_1","NULL_CHARACTER","String","fromCharCode","Delta","ops","Array","isArray","insert","arg","attributes","newOp","length","keys","push","delete","retain","index","lastOp","default","unshift","splice","chop","pop","filter","predicate","forEach","map","partition","passed","failed","op","reduce","initialValue","changeLength","elem","slice","start","end","Infinity","iter","iterator","hasNext","nextOp","next","compose","other","thisIter","otherIter","firstOther","peek","firstLeft","peekType","peekLength","delta","length_1","Math","min","thisOp","otherOp","rest","concat","diff","cursor","strings","Error","join","retDelta","diffResult","component","opLength","INSERT","DELETE","EQUAL","eachLine","newline","line","indexOf","invert","base","inverted","baseIndex","length_2","baseOp","transform","priority","transformPosition","length_3","offset","length_4","nextType","Op","AttributeMap","__webpack_exports__","globalRegistry","expandConfig","overload","Quill","quill_delta__WEBPACK_IMPORTED_MODULE_0__","quill_delta__WEBPACK_IMPORTED_MODULE_0___default","lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1__","lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1___default","lodash_merge__WEBPACK_IMPORTED_MODULE_2__","lodash_merge__WEBPACK_IMPORTED_MODULE_2___default","parchment__WEBPACK_IMPORTED_MODULE_3__","_editor__WEBPACK_IMPORTED_MODULE_4__","_emitter__WEBPACK_IMPORTED_MODULE_5__","_module__WEBPACK_IMPORTED_MODULE_6__","_selection__WEBPACK_IMPORTED_MODULE_7__","_instances__WEBPACK_IMPORTED_MODULE_8__","_logger__WEBPACK_IMPORTED_MODULE_9__","_theme__WEBPACK_IMPORTED_MODULE_10__","_typeof","obj","constructor","_defineProperty","configurable","writable","_slicedToArray","arr","_arrayWithHoles","_i","_s","_e","_arr","_n","_d","done","err","_iterableToArrayLimit","minLen","_arrayLikeToArray","toString","from","test","_unsupportedIterableToArray","TypeError","_nonIterableRest","len","arr2","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","debug","uiClass","container","_this","options","arguments","undefined","error","html","innerHTML","trim","classList","add","set","root","addContainer","scrollingContainer","emitter","ScrollBlot","registry","query","blotName","scroll","toggleBlankClass","editor","selection","theme","keyboard","addModule","clipboard","history","uploader","init","on","events","EDITOR_CHANGE","type","TEXT_CHANGE","SCROLL_UPDATE","source","mutations","oldRange","lastRange","newRange","getRange","selectionInfo","modify","update","setContents","getInitialContent","clear","placeholder","setAttribute","readOnly","disable","allowReadOnlyEdits","protoProps","staticProps","limit","level","node","find","imports","path","_this11","overwrite","attrName","register","warn","convert","text","isComposing","composing","toggle","isBlank","refNode","className","document","createElement","insertBefore","setRange","_this2","_overload2","deleteText","enable","modifier","enabled","scrollTop","focus","scrollIntoView","_this3","sources","API","range","getSelection","change","a","BLOCK","formatLine","format","formatText","setSelection","SILENT","formats","_this4","_overload4","_this5","_overload6","bounds","getBounds","containerBounds","getBoundingClientRect","bottom","top","height","left","right","width","getLength","_overload7","_overload8","getContents","getFormat","blot","leaf","Number","MAX_VALUE","lines","_overload9","_overload10","getHTML","_overload11","_overload12","getText","hasFocus","embed","_this6","insertEmbed","_this7","_overload14","insertText","isEnabled","_this$emitter","off","apply","_this$emitter2","_this$emitter3","once","_this8","_overload16","removeFormat","_this9","delete1","applied","applyDelta","delete2","_overload18","max","USER","_this10","userConfig","DEFAULTS","import","themeConfig","config","moduleConfig","moduleClass","toolbar","querySelector","shift","oldDelta","shiftRange","_this$emitter4","_this$emitter5","args","emit","_map2","pos","_map4","version","parchment","Scope","src_scope","linked_list","LinkedList","head","tail","append","nodes","at","cur","contains","remove","prev","curNode","ret","inclusive","callback","forEachAt","_a","startNode","curIndex","curLength","memo","__extends","_extendStatics","b","setPrototypeOf","__proto__","__","_super","ParchmentError","message","Registry","classes","tags","types","bubble","blots","has","parentNode","input","match","blotClass","Node","nodeType","TEXT_NODE","domNode","scope","ANY","Text","LEVEL","block","INLINE","inline","HTMLElement","getAttribute","split","some","tagName","TYPE","definitions","definition","keyName","toUpperCase","tagNames","tag","WeakMap","shadow","ShadowBlot","parseInt","attach","clone","cloneNode","detach","parent","removeChild","deleteAt","isolate","formatAt","BLOT","wrap","ATTRIBUTE","statics","insertAt","def","ref","children","optimize","_context","requiredContainer","replaceWith","replacement","_force","_mutations","wrapper","appendChild","parent_extends","makeAttachedBlot","e","childNodes","child","replaceChild","abstract_parent","ParentBlot","uiNode","build","attachUI","firstChild","reverse","childLength","descendant","criteria","descendants","lengthLeft","childIndex","enforceAllowedChildren","allowedChildren","BLOCK_BLOT","splitAfter","unwrap","childBlot","refBlot","refDomNode","nextSibling","moveChildren","targetParent","context","defaultChild","position","force","after","_length","addedNodes","removedNodes","mutation","body","compareDocumentPosition","DOCUMENT_POSITION_CONTAINED_BY","sort","DOCUMENT_POSITION_FOLLOWING","container_extends","ContainerBlot","checkMerge","leaf_extends","LeafBlot","_domNode","_inclusive","INLINE_BLOT","attributor","Attributor","attributeBit","whitelist","item","canAdd","_node","replace","removeAttribute","class_extends","class_match","prefix","attributor_class","ClassAttributor","style_extends","camelize","parts","part","style","StyleAttributor","store","AttributorStore","attribute","styles","attr","copy","move","values","inline_extends","InlineBlot","toLowerCase","obj1","obj2","prop","isEqual","block_extends","BlockBlot","embed_extends","blot_embed","EmbedBlot","_scroll","scroll_extends","OBSERVER_CONFIG","characterData","characterDataOldValue","childList","subtree","blot_scroll","observer","MutationObserver","observe","disconnect","mutationsMap","records","takeRecords","mark","markParent","remaining","previousSibling","grandChild","text_extends","blot_text","TextBlot","createTextNode","data","splitText","eventemitter3__WEBPACK_IMPORTED_MODULE_0__","eventemitter3__WEBPACK_IMPORTED_MODULE_0___default","_utils_hasWindow__WEBPACK_IMPORTED_MODULE_1__","_instances__WEBPACK_IMPORTED_MODULE_2__","_logger__WEBPACK_IMPORTED_MODULE_3__","_get","receiver","Reflect","_getPrototypeOf","_superPropBase","desc","getOwnPropertyDescriptor","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","construct","sham","Proxy","Boolean","valueOf","_isNativeReflectConstruct","result","Super","NewTarget","_possibleConstructorReturn","self","ReferenceError","_assertThisInitialized","getPrototypeOf","eventName","addEventListener","_len","_key","querySelectorAll","_quill$emitter","quill","handleDOM","Emitter","_EventEmitter","subClass","superClass","_inherits","listeners","_debug$log","_get2","_len2","_key2","log","event","_len3","_key3","_ref","handler","SCROLL_BEFORE_UPDATE","SCROLL_BLOT_MOUNT","SCROLL_BLOT_UNMOUNT","SCROLL_OPTIMIZE","SELECTION_CHANGE","lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0__","lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0___default","lodash_isequal__WEBPACK_IMPORTED_MODULE_1__","lodash_isequal__WEBPACK_IMPORTED_MODULE_1___default","quill_delta__WEBPACK_IMPORTED_MODULE_3__","quill_delta__WEBPACK_IMPORTED_MODULE_3___default","parchment__WEBPACK_IMPORTED_MODULE_4__","_selection__WEBPACK_IMPORTED_MODULE_5__","_blots_cursor__WEBPACK_IMPORTED_MODULE_6__","_blots_block__WEBPACK_IMPORTED_MODULE_7__","_blots_break__WEBPACK_IMPORTED_MODULE_8__","_blots_text__WEBPACK_IMPORTED_MODULE_9__","_toArray","_iterableToArray","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","_objectSpread","getOwnPropertyDescriptors","defineProperties","ASCII","Editor","getDelta","consumeNextNewline","scrollLength","batchStart","normalizedDelta","normalizeDelta","endsWith","_this$scroll$line2","batchEnd","leaves","_map","combineFormats","_this$scroll$line4","lineOffset","convertHTML","_this$scroll$line6","suffixLength","suffix","textBlot","oldValue","CONTENTS","oldText","newText","relativeSelectionInfo","diffDelta","convertListHTML","items","lastIndent","_endTag","getListType","_items","_items$","indent","_getListType4","previousType","endTag","isRoot","list","handleBreakLine","_blot$domNode","outerHTML","_outerHTML$split","_outerHTML$split2","linkedList","combined","merged","hasAttributes","attributesString","getBlotNodeAttributes","_ref2","amount","blockDelta","bubbleFormats","BlockEmbed","Block","parchment__WEBPACK_IMPORTED_MODULE_1__","_break__WEBPACK_IMPORTED_MODULE_2__","_inline__WEBPACK_IMPORTED_MODULE_3__","_text__WEBPACK_IMPORTED_MODULE_4__","_createClass","_BlockBlot","cache","lineIndex","_EmbedBlot","_super2","BLOCK_ATTRIBUTE","Range","Selection","parchment__WEBPACK_IMPORTED_MODULE_0__","lodash_isequal__WEBPACK_IMPORTED_MODULE_2__","lodash_isequal__WEBPACK_IMPORTED_MODULE_2___default","_emitter__WEBPACK_IMPORTED_MODULE_3__","_logger__WEBPACK_IMPORTED_MODULE_4__","_toConsumableArray","_arrayWithoutHoles","_nonIterableSpread","mouseDown","savedRange","lastNative","handleComposition","handleDragging","listenDOM","setTimeout","native","getNativeRange","textNode","setNativeRange","ignored","_context$range","startOffset","endNode","endOffset","restore","_format","nativeRange","collapsed","_this$scroll$leaf","_this$scroll$leaf2","_leaf$position","_leaf$position2","createRange","setStart","_this$scroll$leaf3","_this$scroll$leaf4","_leaf$position3","_leaf$position4","setEnd","rect","side","rangeCount","getRangeAt","normalizeNative","info","normalized","normalizedToRange","activeElement","positions","indexes","_position","startContainer","endContainer","lastChild","_this5$scroll$leaf2","leafOffset","_leaf$position6","first","last","scrollBounds","removeAllRanges","addRange","blur","rangeToNative","_this$getRange","_this$getRange2","escapeText","_TextBlot","Break","Module","_break__WEBPACK_IMPORTED_MODULE_1__","_text__WEBPACK_IMPORTED_MODULE_2__","Inline","_InlineBlot","selfIndex","order","otherIndex","compare","window","global","argsTag","funcTag","genTag","mapTag","setTag","reFlags","reIsHostCtor","reIsUint","cloneableTags","freeGlobal","freeSelf","Function","freeExports","freeModule","moduleExports","addMapEntry","pair","addSetEntry","arrayReduce","array","iteratee","accumulator","initAccum","isHostObject","mapToArray","size","overArg","func","setToArray","arrayProto","funcProto","objectProto","coreJsData","maskSrcKey","uid","exec","IE_PROTO","funcToString","objectToString","reIsNative","RegExp","Buffer","Uint8Array","getPrototype","objectCreate","propertyIsEnumerable","nativeGetSymbols","nativeIsBuffer","isBuffer","nativeKeys","DataView","getNative","Map","Promise","Set","nativeCreate","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","Hash","entries","entry","ListCache","MapCache","Stack","__data__","arrayLikeKeys","inherited","isObjectLike","isArrayLike","isArrayLikeObject","isArguments","baseTimes","skipIndexes","isIndex","assignValue","objValue","eq","assocIndexOf","baseClone","isDeep","isFull","customizer","stack","isObject","isArr","initCloneArray","copyArray","getTag","isFunc","buffer","cloneBuffer","isPrototype","proto","initCloneObject","copyObject","getSymbols","copySymbols","baseAssign","cloneFunc","symbol","Ctor","cloneArrayBuffer","dataView","byteOffset","byteLength","cloneDataView","typedArray","cloneTypedArray","cloneMap","regexp","lastIndex","cloneRegExp","cloneSet","initCloneByTag","stacked","keysFunc","symbolsFunc","arrayPush","baseGetAllKeys","getAllKeys","arrayEach","subValue","baseIsNative","isFunction","arrayBuffer","newValue","getMapData","isKeyable","getValue","pairs","LARGE_ARRAY_SIZE","ArrayBuffer","resolve","ctorString","isLength","baseKeys","Code","CodeBlockContainer","CodeBlock","_blots_block__WEBPACK_IMPORTED_MODULE_0__","_blots_break__WEBPACK_IMPORTED_MODULE_1__","_blots_cursor__WEBPACK_IMPORTED_MODULE_2__","_blots_inline__WEBPACK_IMPORTED_MODULE_3__","_blots_text__WEBPACK_IMPORTED_MODULE_4__","_blots_container__WEBPACK_IMPORTED_MODULE_5__","_core_quill__WEBPACK_IMPORTED_MODULE_6__","_Container","innerText","code","_Block","_Inline","_super3","TAB","_core_emitter__WEBPACK_IMPORTED_MODULE_1__","_block__WEBPACK_IMPORTED_MODULE_2__","_break__WEBPACK_IMPORTED_MODULE_3__","_container__WEBPACK_IMPORTED_MODULE_4__","isLine","Scroll","_ScrollBlot","batch","handleDragStart","_this$line2","preventDefault","getLines","blotIndex","blotLength","levels","method","_console","console","namespace","logger","newLevel","Container","_ContainerBlot","_text__WEBPACK_IMPORTED_MODULE_1__","Cursor","savedLength","mergedTextBlot","prevTextBlot","prevTextLength","nextTextBlot","nextText","newTextNode","remapOffset","blots_break","blots_embed","blots_scroll","blots_text","modules_history","Delta_default","core_module","hasWindow","uploader_Uploader","_Module","Uploader","addDragOverHandler","addDropHandler","ua","navigator","userAgent","onDrop","caretRangeFromPoint","clientX","clientY","caretPositionFromPoint","offsetNode","upload","dataTransfer","files","uploads","file","mimetypes","imageBlot","promises","reader","FileReader","onload","readAsDataURL","all","then","images","image","updateContents","Keyboard","SHORTKEY","normalize","deleteRange","quill_delta__WEBPACK_IMPORTED_MODULE_2__","quill_delta__WEBPACK_IMPORTED_MODULE_2___default","_core_quill__WEBPACK_IMPORTED_MODULE_4__","_core_logger__WEBPACK_IMPORTED_MODULE_5__","_core_module__WEBPACK_IMPORTED_MODULE_6__","_utils_hasWindow__WEBPACK_IMPORTED_MODULE_7__","KEY_NAMES","backspace","tab","enter","escape","pageup","pagedown","home","arrowleft","arrowup","arrowright","arrowdown","alt","control","up","down","multiply","spacebar","del","subtract","esc","KEY_CODES","platform","bindings","addBinding","shiftKey","handleEnter","metaKey","ctrlKey","altKey","handleBackspace","handleDelete","handleDeleteRange","listen","evt","binding","normalizeKeyName","which","_ref3","isKeySupported","normalizedKey","keyBinding","singleBinding","defaultPrevented","raiseOnKeydownCallback","matches","_this3$quill$getLine2","getLine","_this3$quill$getLeaf2","getLeaf","leafStart","offsetStart","leafEnd","offsetEnd","prefixText","suffixText","curContext","empty","every","onKeydown","curFormats","prevFormats","formatDelta","nextFormats","lineFormats","makeCodeBlockHandler","textContent","makeEmbedArrowHandler","_ref4","makeFormatHandler","shortKey","makeTableArrowHandler","cell","targetRow","targetCell","targetLine","table","_ref5","firstFormats","lastFormats","bold","italic","underline","outdent","cutoff","_this$quill$getLine10","_this$quill$getLine12","header","getModule","_module$getTable2","getTable","row","tableSide","_delta","blockquote","_this$quill$getLine14","_this$quill$getLine16","numLines","check","it","globalThis","shared","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","objectTag","typedArrayTags","freeProcess","process","nodeUtil","nodeIsTypedArray","isTypedArray","arraySome","nativeObjectToString","symToStringTag","SetCache","isArg","isBuff","isType","baseGetTag","isOwn","unmasked","getRawTag","baseIsArguments","baseIsEqual","bitmask","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","isPartial","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","objProps","objLength","othLength","skipCtor","othValue","compared","objCtor","othCtor","equalObjects","baseIsEqualDeep","isMasked","arrLength","seen","arrValue","othIndex","resIndex","arrayFilter","baseUnary","ColorAttributor","ColorClass","ColorStyle","_StyleAttributor","hex","DirectionAttribute","DirectionClass","DirectionStyle","toObject","hasOwn","require","thisArg","objectCtorString","allocUnsafe","nativeMax","nativeNow","Date","now","baseCreate","assignMergeValue","baseAssignValue","fromRight","baseFor","iterable","baseKeysIn","nativeKeysIn","isProto","baseMerge","srcIndex","srcValue","mergeFunc","safeGet","isCommon","isTyped","isPlainObject","isNew","keysIn","toPlainObject","baseMergeDeep","baseRest","setToString","otherArgs","overRest","identity","count","lastCalled","stamp","shortOut","string","assigner","merge","guard","isIterateeCall","AlignAttribute","AlignClass","AlignStyle","Link","_sanitize","sanitize","url","PROTOCOL_WHITELIST","SANITIZED_URL","protocols","anchor","href","protocol","BackgroundClass","BackgroundStyle","_color__WEBPACK_IMPORTED_MODULE_1__","FontStyle","FontClass","FontStyleAttributor","SizeClass","SizeStyle","Bold","History","getLastChangeIndex","_core_quill__WEBPACK_IMPORTED_MODULE_1__","_core_module__WEBPACK_IMPORTED_MODULE_2__","_utils_hasWindow__WEBPACK_IMPORTED_MODULE_3__","lastRecorded","ignoreChange","userOnly","record","undo","redo","inputType","dest","inverseDelta","changeDelta","undoDelta","timestamp","delay","maxStack","transformStack","remoteDelta","deleteLength","changeIndex","endsWithNewlineChange","DESCRIPTORS","IE8_DOM_DEFINE","anObject","toPropertyKey","$defineProperty","f","O","P","Attributes","Theme","ModuleClass","themes","g","definePropertyModule","createPropertyDescriptor","fails","Embed","contentNode","childNode","leftGuard","rightGuard","prevLength","Clipboard","traverse","_blots_block__WEBPACK_IMPORTED_MODULE_2__","_core_quill__WEBPACK_IMPORTED_MODULE_3__","_core_logger__WEBPACK_IMPORTED_MODULE_4__","_core_module__WEBPACK_IMPORTED_MODULE_5__","_formats_align__WEBPACK_IMPORTED_MODULE_6__","_formats_background__WEBPACK_IMPORTED_MODULE_7__","_formats_code__WEBPACK_IMPORTED_MODULE_8__","_formats_color__WEBPACK_IMPORTED_MODULE_9__","_formats_direction__WEBPACK_IMPORTED_MODULE_10__","_formats_font__WEBPACK_IMPORTED_MODULE_11__","_formats_size__WEBPACK_IMPORTED_MODULE_12__","_keyboard__WEBPACK_IMPORTED_MODULE_13__","CLIPBOARD_CONFIG","matchText","matchNewline","deltaEndsWith","applyFormat","ATTRIBUTE_ATTRIBUTORS","STYLE_ATTRIBUTORS","fontStyle","textDecoration","strike","fontWeight","parseFloat","textIndent","composed","language","matchAlias","HTML_TEXT_MATCHERS","onCaptureCopy","onCapturePaste","matchers","selector","matcher","addMatcher","applyMatchers","applyTextMatchers","prepareTextMatching","element","ownerDocument","DOMParser","parseFromString","nodeMatches","_this$prepareMatching2","prepareMatching","elementMatchers","textMatchers","paste","isCut","clipboardData","_this$quill$selection","_this$quill$selection2","_this$onCopy","onCopy","setData","raiseCallback","getData","onPaste","getSemanticHTML","pastedDelta","_pair","matchPlainText","_pair2","newDelta","endText","preNodes","ELEMENT_NODE","childrenDelta","reducedDelta","isPre","replacer","collapse","replaced","webpackPolyfill","deprecate","paths","aFunction","variable","requireObjectCoercible","argument","bitmap","createNonEnumerableProperty","redefine","setGlobal","copyConstructorProperties","isForced","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","noTargetGet","forced","toInteger","SyntaxCodeBlock","Syntax","_blots_inline__WEBPACK_IMPORTED_MODULE_2__","_core_module__WEBPACK_IMPORTED_MODULE_4__","_blots_block__WEBPACK_IMPORTED_MODULE_5__","_blots_break__WEBPACK_IMPORTED_MODULE_6__","_blots_cursor__WEBPACK_IMPORTED_MODULE_7__","_blots_text__WEBPACK_IMPORTED_MODULE_8__","_formats_code__WEBPACK_IMPORTED_MODULE_9__","_clipboard__WEBPACK_IMPORTED_MODULE_10__","_utils_hasWindow__WEBPACK_IMPORTED_MODULE_11__","TokenAttributor","CodeToken","_CodeBlock","SyntaxCodeBlockContainer","_CodeBlockContainer","forceNext","emitMount","_highlight","cachedText","codeBlock","_super4","hljs","languages","highlightBlot","initListener","initTimer","select","label","option","highlight","timer","clearTimeout","interval","nodeText","ceil","floor","isNaN","isSymbol","getBuiltIn","$Symbol","toPrimitive","propertyIsEnumerableModule","toIndexedObject","$getOwnPropertyDescriptor","IndexedObject","Iterator_1","Events","EE","fn","addListener","listener","_events","_eventsCount","clearEvent","EventEmitter","eventNames","names","handlers","ee","listenerCount","a1","a2","a3","a4","a5","removeListener","j","removeAllListeners","prefixed","V8_VERSION","NATIVE_WEAK_MAP","objectHas","sharedKey","hiddenKeys","state","wmget","wmhas","wmset","metadata","facade","STATE","enforce","getterFor","functionToString","inspectSource","EXISTS","IS_PURE","copyright","id","postfix","random","InternalStateModule","getInternalState","enforceInternalState","TEMPLATE","unsafe","simple","integer","IteratorPrototype","PrototypeOfArrayIteratorPrototype","arrayIterator","wellKnownSymbol","ITERATOR","BUGGY_SAFARI_ITERATORS","NEW_ITERATOR_PROTOTYPE","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","activeXDocument","enumBugKeys","documentCreateElement","EmptyConstructor","scriptTag","content","LT","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObject","ActiveXObject","domain","iframeDocument","iframe","display","src","contentWindow","open","F","NullProtoObjectViaIFrame","Properties","TO_STRING_TAG","TAG","that","CONSTRUCTOR","METHOD","core","align","direction","_ClassAttributor","IndentAttributor","blockquote_typeof","blockquote_classCallCheck","blockquote_setPrototypeOf","blockquote_createSuper","blockquote_isNativeReflectConstruct","blockquote_getPrototypeOf","blockquote_possibleConstructorReturn","blockquote_assertThisInitialized","Blockquote","blockquote_inherits","header_typeof","header_classCallCheck","header_defineProperties","header_setPrototypeOf","header_createSuper","header_isNativeReflectConstruct","header_getPrototypeOf","header_possibleConstructorReturn","header_assertThisInitialized","Header","header_inherits","core_quill","list_typeof","list_defineProperties","list_get","list_getPrototypeOf","list_superPropBase","list_classCallCheck","list_inherits","list_setPrototypeOf","list_createSuper","list_isNativeReflectConstruct","list_possibleConstructorReturn","list_assertThisInitialized","ListContainer","list_ListItem","ListItem","ui","listEventHandler","background","color","font","italic_typeof","italic_classCallCheck","italic_setPrototypeOf","italic_createSuper","italic_isNativeReflectConstruct","italic_getPrototypeOf","italic_possibleConstructorReturn","italic_assertThisInitialized","Italic","_Bold","italic_inherits","formats_link","script_typeof","script_classCallCheck","script_defineProperties","script_get","script_getPrototypeOf","script_superPropBase","script_setPrototypeOf","script_createSuper","script_isNativeReflectConstruct","script_possibleConstructorReturn","script_assertThisInitialized","Script","script_inherits","script","strike_typeof","strike_classCallCheck","strike_setPrototypeOf","strike_createSuper","strike_isNativeReflectConstruct","strike_getPrototypeOf","strike_possibleConstructorReturn","strike_assertThisInitialized","Strike","strike_inherits","underline_typeof","underline_classCallCheck","underline_setPrototypeOf","underline_createSuper","underline_isNativeReflectConstruct","underline_getPrototypeOf","underline_possibleConstructorReturn","underline_assertThisInitialized","Underline","underline_inherits","formula_typeof","formula_classCallCheck","formula_defineProperties","formula_get","formula_getPrototypeOf","formula_superPropBase","formula_setPrototypeOf","formula_createSuper","formula_isNativeReflectConstruct","formula_possibleConstructorReturn","formula_assertThisInitialized","formula_Formula","_Embed","formula_inherits","Formula","katex","render","throwOnError","errorColor","formula","image_typeof","image_classCallCheck","image_defineProperties","image_get","image_getPrototypeOf","image_superPropBase","image_setPrototypeOf","image_createSuper","image_isNativeReflectConstruct","image_possibleConstructorReturn","image_assertThisInitialized","ATTRIBUTES","image_Image","image_inherits","Image","hasAttribute","execCommand","formats_image","video_typeof","video_classCallCheck","video_defineProperties","video_get","video_getPrototypeOf","video_superPropBase","video_setPrototypeOf","video_createSuper","video_isNativeReflectConstruct","video_possibleConstructorReturn","video_assertThisInitialized","video_ATTRIBUTES","video_Video","_BlockEmbed","video_inherits","Video","video","syntax","table_typeof","table_classCallCheck","table_defineProperties","table_createClass","table_get","table_getPrototypeOf","table_superPropBase","table_inherits","table_setPrototypeOf","table_createSuper","table_isNativeReflectConstruct","table_possibleConstructorReturn","table_assertThisInitialized","TableCell","rowOffset","tableId","TableRow","thisHead","thisTail","nextHead","nextTail","childFormats","TableBody","_Container2","TableContainer","_Container3","rows","maxColumns","fill","column","modules_table_typeof","table_slicedToArray","table_arrayWithHoles","table_iterableToArrayLimit","table_arrayLikeToArray","table_unsupportedIterableToArray","table_nonIterableRest","modules_table_classCallCheck","modules_table_defineProperties","modules_table_setPrototypeOf","modules_table_createSuper","modules_table_isNativeReflectConstruct","modules_table_getPrototypeOf","modules_table_possibleConstructorReturn","modules_table_assertThisInitialized","modules_table","modules_table_inherits","Table","listenBalanceCells","balanceCells","_this$getTable2","deleteColumn","cellOffset","_this$quill$getLine","_this$quill$getLine2","_this$getTable8","insertColumn","_this$getTable10","insertRow","columns","balanceTables","old","multilineBreak_typeof","multilineBreak_classCallCheck","multilineBreak_defineProperties","multilineBreak_setPrototypeOf","multilineBreak_createSuper","multilineBreak_isNativeReflectConstruct","multilineBreak_getPrototypeOf","multilineBreak_possibleConstructorReturn","multilineBreak_assertThisInitialized","MultilineBreak","multilineBreak_inherits","multilineBreak","multiline_typeof","multiline_defineProperties","multiline_setPrototypeOf","multiline_createSuper","multiline_isNativeReflectConstruct","multiline_getPrototypeOf","multiline_possibleConstructorReturn","multiline_assertThisInitialized","breakMatcher","multiline","multiline_inherits","Multiline","multiline_classCallCheck","enterHandler","currentLeaf","nextLeaf","diff_main","text1","text2","cursor_pos","_fix_unicode","editdiff","oldLength","newLength","oldCursor","oldBefore","oldAfter","maybeNewCursor","newCursor","newBefore","newAfter","prefixLength","oldPrefix","newPrefix","oldMiddle","newMiddle","make_edit_splice","oldSuffix","newSuffix","find_cursor_edit_diff","commonlength","diff_commonPrefix","commonprefix","substring","diff_commonSuffix","commonsuffix","diffs","longtext","shorttext","hm","diff_halfMatchI_","best_longtext_a","best_longtext_b","best_shorttext_a","best_shorttext_b","seed","best_common","text1_a","text1_b","text2_a","text2_b","hm1","hm2","mid_common","diff_halfMatch_","diffs_a","diffs_b","text1_length","text2_length","max_d","v_offset","v_length","v1","v2","x","front","k1start","k1end","k2start","k2end","k1","k1_offset","y1","x1","charAt","k2_offset","x2","diff_bisectSplit_","k2","y2","diff_bisect_","diff_compute_","diff_cleanupMerge","fix_unicode","pointer","count_delete","count_insert","text_delete","text_insert","previous_equality","ends_with_pair_start","stray","k","starts_with_pair_end","changes","y","text1a","text2a","text1b","text2b","diffsb","pointermin","pointermax","pointermid","pointerstart","is_surrogate_pair_start","charCodeAt","pointerend","is_surrogate_pair_end","charCode","str","before","tuples","remove_empty_tuples","keepNull","attrs","baseInverted","Iterator","retOp","substr","defineIterator","setInternalState","iterated","point","createMethod","CONVERT_TO_STRING","$this","second","S","codeAt","Deno","versions","v8","ordinaryToPrimitive","TO_PRIMITIVE","pref","exoticToPrim","val","$","createIteratorConstructor","setToStringTag","Iterators","IteratorsCore","returnThis","Iterable","NAME","IteratorConstructor","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","$propertyIsEnumerable","NASHORN_BUG","1","V","classof","getOwnPropertyDescriptorModule","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","internalObjectKeys","getOwnPropertyNames","toLength","toAbsoluteIndex","IS_INCLUDES","el","fromIndex","includes","feature","detection","POLYFILL","NATIVE","objectKeys","aPossiblePrototype","setter","CORRECT_SETTER","checkCorrectnessOfIteration","callWithSafeIterationClosing","isArrayIteratorMethod","createProperty","getIteratorMethod","arrayLike","step","C","argumentsLength","mapfn","mapping","iteratorMethod","iteratorClose","ENTRIES","returnMethod","ArrayPrototype","propertyKey","TO_STRING_TAG_SUPPORT","classofRaw","CORRECT_ARGUMENTS","tryGet","callee","SAFE_CLOSING","called","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","entryUnbind","addToUnscopables","endPos","UNSCOPABLES","notARegExp","correctIsRegExpLogic","$endsWith","CORRECT_IS_REGEXP_LOGIC","searchString","endPosition","search","isRegExp","MATCH","METHOD_NAME","error1","error2"],"mappings":";+FAQA,IAAiDA,IASxC,WACT,OAAiB,SAASC,GAEhB,IAAIC,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUC,QAGnC,IAAIC,EAASJ,EAAiBE,GAAY,CACzCG,EAAGH,EACHI,GAAG,EACHH,QAAS,IAUV,OANAJ,EAAQG,GAAUK,KAAKH,EAAOD,QAASC,EAAQA,EAAOD,QAASF,GAG/DG,EAAOE,GAAI,EAGJF,EAAOD,QA0Df,OArDAF,EAAoBO,EAAIT,EAGxBE,EAAoBQ,EAAIT,EAGxBC,EAAoBS,EAAI,SAASP,EAASQ,EAAMC,GAC3CX,EAAoBY,EAAEV,EAASQ,IAClCG,OAAOC,eAAeZ,EAASQ,EAAM,CAAEK,YAAY,EAAMC,IAAKL,KAKhEX,EAAoBiB,EAAI,SAASf,GACX,qBAAXgB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAeZ,EAASgB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,KAQvDpB,EAAoBqB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQpB,EAAoBoB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,kBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFAzB,EAAoBiB,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOpB,EAAoBS,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRxB,EAAoB4B,EAAI,SAASzB,GAChC,IAAIQ,EAASR,GAAUA,EAAOoB,WAC7B,WAAwB,OAAOpB,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAH,EAAoBS,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRX,EAAoBY,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAGzG9B,EAAoBiC,EAAI,GAIjBjC,EAAoBA,EAAoBkC,EAAI,KAnF5C,CAsFP,CAEH,SAAS/B,EAAQD,EAASF,GAEjC,aAEA,IAAImC,EAAmBC,MAAQA,KAAKD,iBAAoB,SAAUE,GAC9D,OAAQA,GAAOA,EAAId,WAAcc,EAAM,CAAE,QAAWA,IAEpDC,EAAcH,EAAgBnC,EAAoB,KAClDuC,EAAqBJ,EAAgBnC,EAAoB,KACzDwC,EAAmBL,EAAgBnC,EAAoB,KACvDyC,EAAiBN,EAAgBnC,EAAoB,KACrD0C,EAAOP,EAAgBnC,EAAoB,KAC3C2C,EAAiBC,OAAOC,aAAa,GACrCC,EAAuB,WACvB,SAASA,EAAMC,GAEPC,MAAMC,QAAQF,GACdX,KAAKW,IAAMA,EAEC,MAAPA,GAAeC,MAAMC,QAAQF,EAAIA,KACtCX,KAAKW,IAAMA,EAAIA,IAGfX,KAAKW,IAAM,GA6XnB,OA1XAD,EAAMf,UAAUmB,OAAS,SAAUC,EAAKC,GACpC,IAAIC,EAAQ,GACZ,MAAmB,kBAARF,GAAmC,IAAfA,EAAIG,OACxBlB,MAEXiB,EAAMH,OAASC,EACG,MAAdC,GACsB,kBAAfA,GACPvC,OAAO0C,KAAKH,GAAYE,OAAS,IACjCD,EAAMD,WAAaA,GAEhBhB,KAAKoB,KAAKH,KAErBP,EAAMf,UAAU0B,OAAS,SAAUH,GAC/B,OAAIA,GAAU,EACHlB,KAEJA,KAAKoB,KAAK,CAAEC,OAAQH,KAE/BR,EAAMf,UAAU2B,OAAS,SAAUJ,EAAQF,GACvC,GAAIE,GAAU,EACV,OAAOlB,KAEX,IAAIiB,EAAQ,CAAEK,OAAQJ,GAMtB,OALkB,MAAdF,GACsB,kBAAfA,GACPvC,OAAO0C,KAAKH,GAAYE,OAAS,IACjCD,EAAMD,WAAaA,GAEhBhB,KAAKoB,KAAKH,IAErBP,EAAMf,UAAUyB,KAAO,SAAUH,GAC7B,IAAIM,EAAQvB,KAAKW,IAAIO,OACjBM,EAASxB,KAAKW,IAAIY,EAAQ,GAE9B,GADAN,EAAQd,EAAmBsB,QAAQR,GACb,kBAAXO,EAAqB,CAC5B,GAA4B,kBAAjBP,EAAMI,QACY,kBAAlBG,EAAOH,OAEd,OADArB,KAAKW,IAAIY,EAAQ,GAAK,CAAEF,OAAQG,EAAOH,OAASJ,EAAMI,QAC/CrB,KAIX,GAA6B,kBAAlBwB,EAAOH,QAAuC,MAAhBJ,EAAMH,SAC3CS,GAAS,EAEa,kBADtBC,EAASxB,KAAKW,IAAIY,EAAQ,KAGtB,OADAvB,KAAKW,IAAIe,QAAQT,GACVjB,KAGf,GAAII,EAAiBqB,QAAQR,EAAMD,WAAYQ,EAAOR,YAAa,CAC/D,GAA4B,kBAAjBC,EAAMH,QACY,kBAAlBU,EAAOV,OAKd,OAJAd,KAAKW,IAAIY,EAAQ,GAAK,CAAET,OAAQU,EAAOV,OAASG,EAAMH,QACtB,kBAArBG,EAAMD,aACbhB,KAAKW,IAAIY,EAAQ,GAAGP,WAAaC,EAAMD,YAEpChB,KAEN,GAA4B,kBAAjBiB,EAAMK,QACO,kBAAlBE,EAAOF,OAKd,OAJAtB,KAAKW,IAAIY,EAAQ,GAAK,CAAED,OAAQE,EAAOF,OAASL,EAAMK,QACtB,kBAArBL,EAAMD,aACbhB,KAAKW,IAAIY,EAAQ,GAAGP,WAAaC,EAAMD,YAEpChB,MAUnB,OANIuB,IAAUvB,KAAKW,IAAIO,OACnBlB,KAAKW,IAAIS,KAAKH,GAGdjB,KAAKW,IAAIgB,OAAOJ,EAAO,EAAGN,GAEvBjB,MAEXU,EAAMf,UAAUiC,KAAO,WACnB,IAAIJ,EAASxB,KAAKW,IAAIX,KAAKW,IAAIO,OAAS,GAIxC,OAHIM,GAAUA,EAAOF,SAAWE,EAAOR,YACnChB,KAAKW,IAAIkB,MAEN7B,MAEXU,EAAMf,UAAUmC,OAAS,SAAUC,GAC/B,OAAO/B,KAAKW,IAAImB,OAAOC,IAE3BrB,EAAMf,UAAUqC,QAAU,SAAUD,GAChC/B,KAAKW,IAAIqB,QAAQD,IAErBrB,EAAMf,UAAUsC,IAAM,SAAUF,GAC5B,OAAO/B,KAAKW,IAAIsB,IAAIF,IAExBrB,EAAMf,UAAUuC,UAAY,SAAUH,GAClC,IAAII,EAAS,GACTC,EAAS,GAKb,OAJApC,KAAKgC,SAAQ,SAAUK,IACNN,EAAUM,GAAMF,EAASC,GAC/BhB,KAAKiB,MAET,CAACF,EAAQC,IAEpB1B,EAAMf,UAAU2C,OAAS,SAAUP,EAAWQ,GAC1C,OAAOvC,KAAKW,IAAI2B,OAAOP,EAAWQ,IAEtC7B,EAAMf,UAAU6C,aAAe,WAC3B,OAAOxC,KAAKsC,QAAO,SAAUpB,EAAQuB,GACjC,OAAIA,EAAK3B,OACEI,EAASZ,EAAKmB,QAAQP,OAAOuB,GAE/BA,EAAKpB,OACHH,EAASuB,EAAKpB,OAElBH,IACR,IAEPR,EAAMf,UAAUuB,OAAS,WACrB,OAAOlB,KAAKsC,QAAO,SAAUpB,EAAQuB,GACjC,OAAOvB,EAASZ,EAAKmB,QAAQP,OAAOuB,KACrC,IAEP/B,EAAMf,UAAU+C,MAAQ,SAAUC,EAAOC,QACvB,IAAVD,IAAoBA,EAAQ,QACpB,IAARC,IAAkBA,EAAMC,KAI5B,IAHA,IAAIlC,EAAM,GACNmC,EAAOxC,EAAKmB,QAAQsB,SAAS/C,KAAKW,KAClCY,EAAQ,EACLA,EAAQqB,GAAOE,EAAKE,WAAW,CAClC,IAAIC,OAAS,EACT1B,EAAQoB,EACRM,EAASH,EAAKI,KAAKP,EAAQpB,IAG3B0B,EAASH,EAAKI,KAAKN,EAAMrB,GACzBZ,EAAIS,KAAK6B,IAEb1B,GAASjB,EAAKmB,QAAQP,OAAO+B,GAEjC,OAAO,IAAIvC,EAAMC,IAErBD,EAAMf,UAAUwD,QAAU,SAAUC,GAChC,IAAIC,EAAW/C,EAAKmB,QAAQsB,SAAS/C,KAAKW,KACtC2C,EAAYhD,EAAKmB,QAAQsB,SAASK,EAAMzC,KACxCA,EAAM,GACN4C,EAAaD,EAAUE,OAC3B,GAAkB,MAAdD,GAC6B,kBAAtBA,EAAWjC,QACO,MAAzBiC,EAAWvC,WAAoB,CAE/B,IADA,IAAIyC,EAAYF,EAAWjC,OACI,WAAxB+B,EAASK,YACZL,EAASM,cAAgBF,GACzBA,GAAaJ,EAASM,aACtBhD,EAAIS,KAAKiC,EAASH,QAElBK,EAAWjC,OAASmC,EAAY,GAChCH,EAAUJ,KAAKK,EAAWjC,OAASmC,GAI3C,IADA,IAAIG,EAAQ,IAAIlD,EAAMC,GACf0C,EAASL,WAAaM,EAAUN,WACnC,GAA6B,WAAzBM,EAAUI,WACVE,EAAMxC,KAAKkC,EAAUJ,aAEpB,GAA4B,WAAxBG,EAASK,WACdE,EAAMxC,KAAKiC,EAASH,YAEnB,CACD,IAAIW,EAAWC,KAAKC,IAAIV,EAASM,aAAcL,EAAUK,cACrDK,EAASX,EAASH,KAAKW,GACvBI,EAAUX,EAAUJ,KAAKW,GAC7B,GAA8B,kBAAnBI,EAAQ3C,OAAqB,CACpC,IAAIL,EAAQ,GACiB,kBAAlB+C,EAAO1C,OACdL,EAAMK,OAASuC,EAGf5C,EAAMH,OAASkD,EAAOlD,OAG1B,IAAIE,EAAaX,EAAeoB,QAAQ0B,QAAQa,EAAOhD,WAAYiD,EAAQjD,WAAqC,kBAAlBgD,EAAO1C,QAMrG,GALIN,IACAC,EAAMD,WAAaA,GAEvB4C,EAAMxC,KAAKH,IAENqC,EAAUN,WACX5C,EAAiBqB,QAAQmC,EAAMjD,IAAIiD,EAAMjD,IAAIO,OAAS,GAAID,GAAQ,CAClE,IAAIiD,EAAO,IAAIxD,EAAM2C,EAASa,QAC9B,OAAON,EAAMO,OAAOD,GAAMtC,YAKC,kBAAnBqC,EAAQ5C,QACK,kBAAlB2C,EAAO1C,QACdsC,EAAMxC,KAAK6C,GAIvB,OAAOL,EAAMhC,QAEjBlB,EAAMf,UAAUwE,OAAS,SAAUf,GAC/B,IAAIQ,EAAQ,IAAIlD,EAAMV,KAAKW,IAAI+B,SAK/B,OAJIU,EAAMzC,IAAIO,OAAS,IACnB0C,EAAMxC,KAAKgC,EAAMzC,IAAI,IACrBiD,EAAMjD,IAAMiD,EAAMjD,IAAIwD,OAAOf,EAAMzC,IAAI+B,MAAM,KAE1CkB,GAEXlD,EAAMf,UAAUyE,KAAO,SAAUhB,EAAOiB,GACpC,GAAIrE,KAAKW,MAAQyC,EAAMzC,IACnB,OAAO,IAAID,EAEf,IAAI4D,EAAU,CAACtE,KAAMoD,GAAOnB,KAAI,SAAU2B,GACtC,OAAOA,EACF3B,KAAI,SAAUI,GACf,GAAiB,MAAbA,EAAGvB,OACH,MAA4B,kBAAduB,EAAGvB,OAAsBuB,EAAGvB,OAASP,EAGvD,MAAM,IAAIgE,MAAM,kBADLX,IAAUR,EAAQ,KAAO,QACM,oBAEzCoB,KAAK,OAEVC,EAAW,IAAI/D,EACfgE,EAAaxE,EAAYuB,QAAQ6C,EAAQ,GAAIA,EAAQ,GAAID,GACzDhB,EAAW/C,EAAKmB,QAAQsB,SAAS/C,KAAKW,KACtC2C,EAAYhD,EAAKmB,QAAQsB,SAASK,EAAMzC,KA8B5C,OA7BA+D,EAAW1C,SAAQ,SAAU2C,GAEzB,IADA,IAAIzD,EAASyD,EAAU,GAAGzD,OACnBA,EAAS,GAAG,CACf,IAAI0D,EAAW,EACf,OAAQD,EAAU,IACd,KAAKzE,EAAYuB,QAAQoD,OACrBD,EAAWd,KAAKC,IAAIT,EAAUK,aAAczC,GAC5CuD,EAASrD,KAAKkC,EAAUJ,KAAK0B,IAC7B,MACJ,KAAK1E,EAAYuB,QAAQqD,OACrBF,EAAWd,KAAKC,IAAI7C,EAAQmC,EAASM,cACrCN,EAASH,KAAK0B,GACdH,EAASpD,OAAOuD,GAChB,MACJ,KAAK1E,EAAYuB,QAAQsD,MACrBH,EAAWd,KAAKC,IAAIV,EAASM,aAAcL,EAAUK,aAAczC,GACnE,IAAI8C,EAASX,EAASH,KAAK0B,GACvBX,EAAUX,EAAUJ,KAAK0B,GACzBxE,EAAiBqB,QAAQuC,EAAOlD,OAAQmD,EAAQnD,QAChD2D,EAASnD,OAAOsD,EAAUvE,EAAeoB,QAAQ2C,KAAKJ,EAAOhD,WAAYiD,EAAQjD,aAGjFyD,EAASrD,KAAK6C,GAAS5C,OAAOuD,GAI1C1D,GAAU0D,MAGXH,EAAS7C,QAEpBlB,EAAMf,UAAUqF,SAAW,SAAUjD,EAAWkD,QAC5B,IAAZA,IAAsBA,EAAU,MAIpC,IAHA,IAAInC,EAAOxC,EAAKmB,QAAQsB,SAAS/C,KAAKW,KAClCuE,EAAO,IAAIxE,EACX1C,EAAI,EACD8E,EAAKE,WAAW,CACnB,GAAwB,WAApBF,EAAKY,WACL,OAEJ,IAAIM,EAASlB,EAAKU,OACdb,EAAQrC,EAAKmB,QAAQP,OAAO8C,GAAUlB,EAAKa,aAC3CpC,EAAiC,kBAAlByC,EAAOlD,OACpBkD,EAAOlD,OAAOqE,QAAQF,EAAStC,GAASA,GACvC,EACP,GAAIpB,EAAQ,EACR2D,EAAK9D,KAAK0B,EAAKI,aAEd,GAAI3B,EAAQ,EACb2D,EAAK9D,KAAK0B,EAAKI,KAAK3B,QAEnB,CACD,IAA0D,IAAtDQ,EAAUmD,EAAMpC,EAAKI,KAAK,GAAGlC,YAAc,GAAIhD,GAC/C,OAEJA,GAAK,EACLkH,EAAO,IAAIxE,GAGfwE,EAAKhE,SAAW,GAChBa,EAAUmD,EAAM,GAAIlH,IAG5B0C,EAAMf,UAAUyF,OAAS,SAAUC,GAC/B,IAAIC,EAAW,IAAI5E,EAwBnB,OAvBAV,KAAKsC,QAAO,SAAUiD,EAAWlD,GAC7B,GAAIA,EAAGvB,OACHwE,EAASjE,OAAOf,EAAKmB,QAAQP,OAAOmB,QAEnC,IAAIA,EAAGf,QAA2B,MAAjBe,EAAGrB,WAErB,OADAsE,EAAShE,OAAOe,EAAGf,QACZiE,EAAYlD,EAAGf,OAErB,GAAIe,EAAGhB,QAAWgB,EAAGf,QAAUe,EAAGrB,WAAa,CAChD,IAAIwE,EAAYnD,EAAGhB,QAAUgB,EAAGf,OAUhC,OATY+D,EAAK3C,MAAM6C,EAAWA,EAAYC,GACxCxD,SAAQ,SAAUyD,GAChBpD,EAAGhB,OACHiE,EAASlE,KAAKqE,GAETpD,EAAGf,QAAUe,EAAGrB,YACrBsE,EAAShE,OAAOhB,EAAKmB,QAAQP,OAAOuE,GAASpF,EAAeoB,QAAQ2D,OAAO/C,EAAGrB,WAAYyE,EAAOzE,gBAGlGuE,EAAYC,GAEvB,OAAOD,IACR,GACID,EAAS1D,QAEpBlB,EAAMf,UAAU+F,UAAY,SAAU3E,EAAK4E,GAGvC,QAFiB,IAAbA,IAAuBA,GAAW,GACtCA,IAAaA,EACM,kBAAR5E,EACP,OAAOf,KAAK4F,kBAAkB7E,EAAK4E,GAMvC,IAJA,IAAIvC,EAAQrC,EACRsC,EAAW/C,EAAKmB,QAAQsB,SAAS/C,KAAKW,KACtC2C,EAAYhD,EAAKmB,QAAQsB,SAASK,EAAMzC,KACxCiD,EAAQ,IAAIlD,EACT2C,EAASL,WAAaM,EAAUN,WACnC,GAA4B,WAAxBK,EAASK,aACRiC,GAAqC,WAAzBrC,EAAUI,WAGtB,GAA6B,WAAzBJ,EAAUI,WACfE,EAAMxC,KAAKkC,EAAUJ,YAEpB,CACD,IAAI2C,EAAW/B,KAAKC,IAAIV,EAASM,aAAcL,EAAUK,cACrDK,EAASX,EAASH,KAAK2C,GACvB5B,EAAUX,EAAUJ,KAAK2C,GAC7B,GAAI7B,EAAO3C,OAEP,SAEK4C,EAAQ5C,OACbuC,EAAMxC,KAAK6C,GAIXL,EAAMtC,OAAOuE,EAAUxF,EAAeoB,QAAQiE,UAAU1B,EAAOhD,WAAYiD,EAAQjD,WAAY2E,SAlBnG/B,EAAMtC,OAAOhB,EAAKmB,QAAQP,OAAOmC,EAASH,SAsBlD,OAAOU,EAAMhC,QAEjBlB,EAAMf,UAAUiG,kBAAoB,SAAUrE,EAAOoE,QAChC,IAAbA,IAAuBA,GAAW,GACtCA,IAAaA,EAGb,IAFA,IAAItC,EAAW/C,EAAKmB,QAAQsB,SAAS/C,KAAKW,KACtCmF,EAAS,EACNzC,EAASL,WAAa8C,GAAUvE,GAAO,CAC1C,IAAIwE,EAAW1C,EAASM,aACpBqC,EAAW3C,EAASK,WACxBL,EAASH,OACQ,WAAb8C,GAIkB,WAAbA,IAA0BF,EAASvE,IAAUoE,KAClDpE,GAASwE,GAEbD,GAAUC,GANNxE,GAASuC,KAAKC,IAAIgC,EAAUxE,EAAQuE,GAQ5C,OAAOvE,GAEXb,EAAMuF,GAAK3F,EAAKmB,QAChBf,EAAMwF,aAAe7F,EAAeoB,QAC7Bf,EAvYgB,GAyY3B3C,EAAOD,QAAU4C,GAKV,SAAS3C,EAAQoI,EAAqBvI,GAE7C,aAC+BA,EAAoBS,EAAE8H,EAAqB,KAAK,WAAa,OAAOC,KACpExI,EAAoBS,EAAE8H,EAAqB,KAAK,WAAa,OAAOE,KACpEzI,EAAoBS,EAAE8H,EAAqB,KAAK,WAAa,OAAOG,KACpE1I,EAAoBS,EAAE8H,EAAqB,KAAK,WAAa,OAAOI,KAC9E,IAAIC,EAA2C5I,EAAoB,GAC/D6I,EAAgE7I,EAAoB4B,EAAEgH,GACtFE,EAAgD9I,EAAoB,IACpE+I,EAAqE/I,EAAoB4B,EAAEkH,GAC3FE,EAA4ChJ,EAAoB,IAChEiJ,EAAiEjJ,EAAoB4B,EAAEoH,GACvFE,EAAyClJ,EAAoB,GAC7DmJ,EAAuCnJ,EAAoB,GAC3DoJ,EAAwCpJ,EAAoB,GAC5DqJ,EAAuCrJ,EAAoB,GAC3DsJ,EAA0CtJ,EAAoB,GAC9DuJ,EAA0CvJ,EAAoB,IAC9DwJ,EAAuCxJ,EAAoB,IAC3DyJ,EAAuCzJ,EAAoB,IACpF,SAAS0J,EAAQC,GAAmV,OAAtOD,EAArD,oBAAXxI,QAAoD,kBAApBA,OAAOiE,SAAmC,SAAiBwE,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXzI,QAAyByI,EAAIC,cAAgB1I,QAAUyI,IAAQzI,OAAOa,UAAY,gBAAkB4H,IAAyBA,GAEnX,SAASE,EAAgBF,EAAKjI,EAAKN,GAAiK,OAApJM,KAAOiI,EAAO9I,OAAOC,eAAe6I,EAAKjI,EAAK,CAAEN,MAAOA,EAAOL,YAAY,EAAM+I,cAAc,EAAMC,UAAU,IAAkBJ,EAAIjI,GAAON,EAAgBuI,EAE3M,SAASK,EAAeC,EAAK7J,GAAK,OAUlC,SAAyB6J,GAAO,GAAIjH,MAAMC,QAAQgH,GAAM,OAAOA,EAVtBC,CAAgBD,IAQzD,SAA+BA,EAAK7J,GAAK,IAAI+J,EAAY,MAAPF,EAAc,KAAyB,qBAAX/I,QAA0B+I,EAAI/I,OAAOiE,WAAa8E,EAAI,cAAe,GAAU,MAANE,EAAJ,CAAwB,IAAkDC,EAAIC,EAAlDC,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAmB,IAAM,IAAKL,EAAKA,EAAG7J,KAAK2J,KAAQM,GAAMH,EAAKD,EAAG7E,QAAQmF,QAAoBH,EAAK9G,KAAK4G,EAAGhJ,QAAYhB,GAAKkK,EAAKhH,SAAWlD,GAA3DmK,GAAK,IAAoE,MAAOG,GAAOF,GAAK,EAAMH,EAAKK,EAAO,QAAU,IAAWH,GAAsB,MAAhBJ,EAAW,QAAWA,EAAW,SAAO,QAAU,GAAIK,EAAI,MAAMH,GAAQ,OAAOC,GARzbK,CAAsBV,EAAK7J,IAI5F,SAAqCQ,EAAGgK,GAAU,GAAKhK,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAOiK,EAAkBjK,EAAGgK,GAAS,IAAIhJ,EAAIf,OAAOkB,UAAU+I,SAASxK,KAAKM,GAAGkE,MAAM,GAAI,GAAiE,MAAnD,WAANlD,GAAkBhB,EAAEgJ,cAAahI,EAAIhB,EAAEgJ,YAAYlJ,MAAgB,QAANkB,GAAqB,QAANA,EAAoBoB,MAAM+H,KAAKnK,GAAc,cAANgB,GAAqB,2CAA2CoJ,KAAKpJ,GAAWiJ,EAAkBjK,EAAGgK,QAAzG,GAJ3MK,CAA4BhB,EAAK7J,IAEnI,WAA8B,MAAM,IAAI8K,UAAU,6IAFuFC,GAMzI,SAASN,EAAkBZ,EAAKmB,IAAkB,MAAPA,GAAeA,EAAMnB,EAAI3G,UAAQ8H,EAAMnB,EAAI3G,QAAQ,IAAK,IAAIlD,EAAI,EAAGiL,EAAO,IAAIrI,MAAMoI,GAAMhL,EAAIgL,EAAKhL,IAAOiL,EAAKjL,GAAK6J,EAAI7J,GAAM,OAAOiL,EAMhL,SAASC,EAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIN,UAAU,qCAEhH,SAASO,EAAkBC,EAAQC,GAAS,IAAK,IAAIvL,EAAI,EAAGA,EAAIuL,EAAMrI,OAAQlD,IAAK,CAAE,IAAIwL,EAAaD,EAAMvL,GAAIwL,EAAW7K,WAAa6K,EAAW7K,aAAc,EAAO6K,EAAW9B,cAAe,EAAU,UAAW8B,IAAYA,EAAW7B,UAAW,GAAMlJ,OAAOC,eAAe4K,EAAQE,EAAWlK,IAAKkK,IAe7S,IAAIC,EAAQhL,OAAO2I,EAAsD,EAA7D3I,CAAgE,SACxE2H,EAAiB,IAAIU,EAAiD,SAC1EA,EAAmD,WAAE4C,QAAU,QAE/D,IAAInD,EAAqB,WACvB,SAASA,EAAMoD,GACb,IAAIC,EAAQ5J,KAER6J,EAAUC,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAOlF,GALAZ,EAAgBlJ,KAAMuG,GAEtBvG,KAAK6J,QAAUxD,EAAasD,EAAWE,GACvC7J,KAAK2J,UAAY3J,KAAK6J,QAAQF,UAER,MAAlB3J,KAAK2J,UACP,OAAOF,EAAMO,MAAM,0BAA2BL,GAG5C3J,KAAK6J,QAAQJ,OACflD,EAAMkD,MAAMzJ,KAAK6J,QAAQJ,OAG3B,IAAIQ,EAAOjK,KAAK2J,UAAUO,UAAUC,OACpCnK,KAAK2J,UAAUS,UAAUC,IAAI,gBAC7BrK,KAAK2J,UAAUO,UAAY,GAC3B/C,EAAyD,EAAEmD,IAAItK,KAAK2J,UAAW3J,MAC/EA,KAAKuK,KAAOvK,KAAKwK,aAAa,aAC9BxK,KAAKuK,KAAKH,UAAUC,IAAI,YACxBrK,KAAKyK,mBAAqBzK,KAAK6J,QAAQY,oBAAsBzK,KAAKuK,KAClEvK,KAAK0K,QAAU,IAAI1D,EAAuD,EAC1E,IAAI2D,EAAa3K,KAAK6J,QAAQe,SAASC,MAAM/D,EAAmD,WAAEgE,UAClG9K,KAAK+K,OAAS,IAAIJ,EAAW3K,KAAK6J,QAAQe,SAAU5K,KAAKuK,KAAM,CAC7DG,QAAS1K,KAAK0K,QACdM,iBAAkBhL,KAAKgL,iBAAiBzL,KAAKS,QAE/CA,KAAKiL,OAAS,IAAIlE,EAAsD,EAAE/G,KAAK+K,QAC/E/K,KAAKkL,UAAY,IAAIhE,EAAyD,EAAElH,KAAK+K,OAAQ/K,KAAK0K,SAClG1K,KAAKmL,MAAQ,IAAInL,KAAK6J,QAAQsB,MAAMnL,KAAMA,KAAK6J,SAE/C7J,KAAKoL,SAAWpL,KAAKmL,MAAME,UAAU,YACrCrL,KAAKsL,UAAYtL,KAAKmL,MAAME,UAAU,aACtCrL,KAAKuL,QAAUvL,KAAKmL,MAAME,UAAU,WACpCrL,KAAKwL,SAAWxL,KAAKmL,MAAME,UAAU,YACrCrL,KAAKmL,MAAMM,OACXzL,KAAK0K,QAAQgB,GAAG1E,EAAuD,EAAE2E,OAAOC,eAAe,SAAUC,GACnGA,IAAS7E,EAAuD,EAAE2E,OAAOG,aAC3ElC,EAAMoB,sBAGVhL,KAAK0K,QAAQgB,GAAG1E,EAAuD,EAAE2E,OAAOI,eAAe,SAAUC,EAAQC,GAC/G,IAAIC,EAAWtC,EAAMsB,UAAUiB,UAI3BC,EADyBxE,EADDgC,EAAMsB,UAAUmB,WACuB,GAC7B,GAElCC,EAAgBJ,GAAYE,EAAW,CACzCF,SAAUA,EACVE,SAAUA,QACRrC,EACJwC,EAAOrO,KAAK0L,GAAO,WACjB,OAAOA,EAAMqB,OAAOuB,OAAO,KAAMP,EAAWK,KAC3CN,MAELhM,KAAKyM,YAAYzM,KAAK0M,kBAAkBzC,IACxCjK,KAAKuL,QAAQoB,QAET3M,KAAK6J,QAAQ+C,aACf5M,KAAKuK,KAAKsC,aAAa,mBAAoB7M,KAAK6J,QAAQ+C,aAGtD5M,KAAK6J,QAAQiD,UACf9M,KAAK+M,UAGP/M,KAAKgN,oBAAqB,EAzF9B,IAAsB5D,EAAa6D,EAAYC,EAsjB7C,OAtjBoB9D,EA4FP7C,EA5FgC2G,EA2fzC,CAAC,CACH5N,IAAK,QACLN,MAAO,SAAemO,IACN,IAAVA,IACFA,EAAQ,OAGV/F,EAAsD,EAAEgG,MAAMD,KAE/D,CACD7N,IAAK,OACLN,MAAO,SAAcqO,GACnB,OAAOlG,EAAyD,EAAEvI,IAAIyO,IAASjH,EAAekH,KAAKD,KAEpG,CACD/N,IAAK,SACLN,MAAO,SAAiBV,GAKtB,OAJ0B,MAAtB0B,KAAKuN,QAAQjP,IACfmL,EAAMO,MAAM,iBAAiB7F,OAAO7F,EAAM,sCAGrC0B,KAAKuN,QAAQjP,KAErB,CACDgB,IAAK,WACLN,MAAO,SAAkBwO,EAAMlE,GAC7B,IAAImE,EAAUzN,KAEV0N,EAAY5D,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,IAAmBA,UAAU,GAE/E,GAAoB,kBAAT0D,EAAmB,CAC5B,IAAIlP,EAAOkP,EAAKG,UAAYH,EAAK1C,SAEb,kBAATxM,EAET0B,KAAK4N,SAAS,WAAWzJ,OAAO7F,GAAOkP,EAAMlE,GAE7C7K,OAAO0C,KAAKqM,GAAMxL,SAAQ,SAAU1C,GAClCmO,EAAQG,SAAStO,EAAKkO,EAAKlO,GAAMgK,WAIX,MAAtBtJ,KAAKuN,QAAQC,IAAkBE,GACjCjE,EAAMoE,KAAK,eAAe1J,OAAOqJ,EAAM,SAAUlE,GAGnDtJ,KAAKuN,QAAQC,GAAQlE,EAEW,IAA3BkE,EAAKrI,QAAQ,WAAgD,IAA7BqI,EAAKrI,QAAQ,aAA0C,aAApBmE,EAAOwB,UAC7E1E,EAAewH,SAAStE,GAGK,oBAApBA,EAAOsE,UAChBtE,EAAOsE,SAASxH,OAhjBS6G,EA4Fb,CAAC,CACnB3N,IAAK,oBACLN,MAAO,SAA2BiL,GAChC,OAAOjK,KAAKsL,UAAUwC,QAAQ,CAC5B7D,KAAM,GAAG9F,OAAO8F,EAAM,eACtB8D,KAAM,SAGT,CACDzO,IAAK,mBACLN,MAAO,WACL,IAAIgP,EAAchO,KAAKkL,UAAU+C,UACjCjO,KAAKuK,KAAKH,UAAU8D,OAAO,WAAYlO,KAAKiL,OAAOkD,QAAQH,MAE5D,CACD1O,IAAK,eACLN,MAAO,SAAsB2K,GAC3B,IAAIyE,EAAUtE,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,KAElF,GAAyB,kBAAdH,EAAwB,CACjC,IAAI0E,EAAY1E,GAChBA,EAAY2E,SAASC,cAAc,QACzBnE,UAAUC,IAAIgE,GAI1B,OADArO,KAAK2J,UAAU6E,aAAa7E,EAAWyE,GAChCzE,IAER,CACDrK,IAAK,OACLN,MAAO,WACLgB,KAAKkL,UAAUuD,SAAS,QAEzB,CACDnP,IAAK,aACLN,MAAO,SAAoBuC,EAAOL,EAAQ8K,GACxC,IAAI0C,EAAS1O,KAIT2O,EAAa/G,EAFDtB,EAAS/E,EAAOL,EAAQ8K,GAEG,GAK3C,OAHAzK,EAAQoN,EAAW,GACnBzN,EAASyN,EAAW,GACpB3C,EAAS2C,EAAW,GACbpC,EAAOrO,KAAK8B,MAAM,WACvB,OAAO0O,EAAOzD,OAAO2D,WAAWrN,EAAOL,KACtC8K,EAAQzK,GAAQ,EAAIL,KAExB,CACD5B,IAAK,UACLN,MAAO,WACLgB,KAAK6O,QAAO,KAEb,CACDvP,IAAK,eACLN,MAAO,SAAsB8P,GAC3B9O,KAAKgN,oBAAqB,EAC1B,IAAIhO,EAAQ8P,IAEZ,OADA9O,KAAKgN,oBAAqB,EACnBhO,IAER,CACDM,IAAK,SACLN,MAAO,WACL,IAAI+P,IAAUjF,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,KAAmBA,UAAU,GAC7E9J,KAAK+K,OAAO8D,OAAOE,GACnB/O,KAAK2J,UAAUS,UAAU8D,OAAO,eAAgBa,KAEjD,CACDzP,IAAK,QACLN,MAAO,WACL,IAAIgQ,EAAYhP,KAAKyK,mBAAmBuE,UACxChP,KAAKkL,UAAU+D,QACfjP,KAAKyK,mBAAmBuE,UAAYA,EACpChP,KAAKkP,mBAEN,CACD5P,IAAK,SACLN,MAAO,SAAgBV,EAAMU,GAC3B,IAAImQ,EAASnP,KAETgM,EAASlC,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,GAAmBA,UAAU,GAAK9C,EAAuD,EAAEoI,QAAQC,IAClJ,OAAO9C,EAAOrO,KAAK8B,MAAM,WACvB,IAAIsP,EAAQH,EAAOI,cAAa,GAE5BC,EAAS,IAAI/I,EAAiDgJ,EAClE,GAAa,MAATH,EAAe,OAAOE,EAE1B,GAAIL,EAAOpE,OAAOF,MAAMvM,EAAMwI,EAA8C,MAAE4I,OAC5EF,EAASL,EAAOlE,OAAO0E,WAAWL,EAAM/N,MAAO+N,EAAMpO,OAAQuG,EAAgB,GAAInJ,EAAMU,QAClF,IAAqB,IAAjBsQ,EAAMpO,OAGf,OAFAiO,EAAOjE,UAAU0E,OAAOtR,EAAMU,GAEvBwQ,EAEPA,EAASL,EAAOlE,OAAO4E,WAAWP,EAAM/N,MAAO+N,EAAMpO,OAAQuG,EAAgB,GAAInJ,EAAMU,IAKzF,OAFAmQ,EAAOW,aAAaR,EAAOtI,EAAuD,EAAEoI,QAAQW,QAErFP,IACNxD,KAEJ,CACD1M,IAAK,aACLN,MAAO,SAAoBuC,EAAOL,EAAQ5C,EAAMU,EAAOgN,GACrD,IAEIgE,EAFAC,EAASjQ,KAMTkQ,EAAatI,EAFAtB,EAAS/E,EAAOL,EAAQ5C,EAAMU,EAAOgN,GAEV,GAM5C,OAJAzK,EAAQ2O,EAAW,GACnBhP,EAASgP,EAAW,GACpBF,EAAUE,EAAW,GACrBlE,EAASkE,EAAW,GACb3D,EAAOrO,KAAK8B,MAAM,WACvB,OAAOiQ,EAAOhF,OAAO0E,WAAWpO,EAAOL,EAAQ8O,KAC9ChE,EAAQzK,EAAO,KAEnB,CACDjC,IAAK,aACLN,MAAO,SAAoBuC,EAAOL,EAAQ5C,EAAMU,EAAOgN,GACrD,IAEIgE,EAFAG,EAASnQ,KAMToQ,EAAaxI,EAFAtB,EAAS/E,EAAOL,EAAQ5C,EAAMU,EAAOgN,GAEV,GAM5C,OAJAzK,EAAQ6O,EAAW,GACnBlP,EAASkP,EAAW,GACpBJ,EAAUI,EAAW,GACrBpE,EAASoE,EAAW,GACb7D,EAAOrO,KAAK8B,MAAM,WACvB,OAAOmQ,EAAOlF,OAAO4E,WAAWtO,EAAOL,EAAQ8O,KAC9ChE,EAAQzK,EAAO,KAEnB,CACDjC,IAAK,YACLN,MAAO,SAAmBuC,GACxB,IACI8O,EADAnP,EAAS4I,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,EAI/EuG,EADmB,kBAAV9O,EACAvB,KAAKkL,UAAUoF,UAAU/O,EAAOL,GAEhClB,KAAKkL,UAAUoF,UAAU/O,EAAMA,MAAOA,EAAML,QAGvD,IAAIqP,EAAkBvQ,KAAK2J,UAAU6G,wBACrC,MAAO,CACLC,OAAQJ,EAAOI,OAASF,EAAgBG,IACxCC,OAAQN,EAAOM,OACfC,KAAMP,EAAOO,KAAOL,EAAgBK,KACpCC,MAAOR,EAAOQ,MAAQN,EAAgBK,KACtCF,IAAKL,EAAOK,IAAMH,EAAgBG,IAClCI,MAAOT,EAAOS,SAGjB,CACDxR,IAAK,cACLN,MAAO,WACL,IAAIuC,EAAQuI,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,EAC5E5I,EAAS4I,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,GAAmBA,UAAU,GAAK9J,KAAK+Q,YAAcxP,EAEhGyP,EAAa1K,EAAS/E,EAAOL,GAE7B+P,EAAarJ,EAAeoJ,EAAY,GAI5C,OAFAzP,EAAQ0P,EAAW,GACnB/P,EAAS+P,EAAW,GACbjR,KAAKiL,OAAOiG,YAAY3P,EAAOL,KAEvC,CACD5B,IAAK,YACLN,MAAO,WACL,IAAIuC,EAAQuI,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,GAAmBA,UAAU,GAAK9J,KAAKuP,cAAa,GAC9FrO,EAAS4I,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,EAEjF,MAAqB,kBAAVvI,EACFvB,KAAKiL,OAAOkG,UAAU5P,EAAOL,GAG/BlB,KAAKiL,OAAOkG,UAAU5P,EAAMA,MAAOA,EAAML,UAEjD,CACD5B,IAAK,WACLN,MAAO,SAAkBoS,GACvB,OAAOA,EAAKtL,OAAO9F,KAAK+K,UAEzB,CACDzL,IAAK,YACLN,MAAO,WACL,OAAOgB,KAAK+K,OAAO7J,WAEpB,CACD5B,IAAK,UACLN,MAAO,SAAiBuC,GACtB,OAAOvB,KAAK+K,OAAOsG,KAAK9P,KAEzB,CACDjC,IAAK,UACLN,MAAO,SAAiBuC,GACtB,OAAOvB,KAAK+K,OAAO7F,KAAK3D,KAEzB,CACDjC,IAAK,WACLN,MAAO,WACL,IAAIuC,EAAQuI,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,EAC5E5I,EAAS4I,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,GAAmBA,UAAU,GAAKwH,OAAOC,UAExF,MAAqB,kBAAVhQ,EACFvB,KAAK+K,OAAOyG,MAAMjQ,EAAMA,MAAOA,EAAML,QAGvClB,KAAK+K,OAAOyG,MAAMjQ,EAAOL,KAEjC,CACD5B,IAAK,YACLN,MAAO,SAAmBV,GACxB,OAAO0B,KAAKmL,MAAMzN,QAAQY,KAE3B,CACDgB,IAAK,eACLN,MAAO,WACL,IAAIiQ,EAAQnF,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,IAAmBA,UAAU,GAI3E,OAHImF,GAAOjP,KAAKiP,QAChBjP,KAAKwM,SAEExM,KAAKkL,UAAUmB,WAAW,KAElC,CACD/M,IAAK,kBACLN,MAAO,WACL,IAAIuC,EAAQuI,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,EAC5E5I,EAAS4I,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,GAAmBA,UAAU,GAAK9J,KAAK+Q,YAAcxP,EAEhGkQ,EAAanL,EAAS/E,EAAOL,GAE7BwQ,EAAc9J,EAAe6J,EAAY,GAI7C,OAFAlQ,EAAQmQ,EAAY,GACpBxQ,EAASwQ,EAAY,GACd1R,KAAKiL,OAAO0G,QAAQpQ,EAAOL,KAEnC,CACD5B,IAAK,UACLN,MAAO,WACL,IAAIuC,EAAQuI,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,EAC5E5I,EAAS4I,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,GAAmBA,UAAU,GAAK9J,KAAK+Q,YAAcxP,EAEhGqQ,EAActL,EAAS/E,EAAOL,GAE9B2Q,EAAcjK,EAAegK,EAAa,GAI9C,OAFArQ,EAAQsQ,EAAY,GACpB3Q,EAAS2Q,EAAY,GACd7R,KAAKiL,OAAO6G,QAAQvQ,EAAOL,KAEnC,CACD5B,IAAK,WACLN,MAAO,WACL,OAAOgB,KAAKkL,UAAU6G,aAEvB,CACDzS,IAAK,cACLN,MAAO,SAAqBuC,EAAOyQ,EAAOhT,GACxC,IAAIiT,EAASjS,KAETgM,EAASlC,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,GAAmBA,UAAU,GAAKvD,EAAM6I,QAAQC,IAC/F,OAAO9C,EAAOrO,KAAK8B,MAAM,WACvB,OAAOiS,EAAOhH,OAAOiH,YAAY3Q,EAAOyQ,EAAOhT,KAC9CgN,EAAQzK,KAEZ,CACDjC,IAAK,aACLN,MAAO,SAAoBuC,EAAOwM,EAAMzP,EAAMU,EAAOgN,GACnD,IAEIgE,EAFAmC,EAASnS,KAMToS,EAAcxK,EAFAtB,EAAS/E,EAAO,EAAGjD,EAAMU,EAAOgN,GAEJ,GAK9C,OAHAzK,EAAQ6Q,EAAY,GACpBpC,EAAUoC,EAAY,GACtBpG,EAASoG,EAAY,GACd7F,EAAOrO,KAAK8B,MAAM,WACvB,OAAOmS,EAAOlH,OAAOoH,WAAW9Q,EAAOwM,EAAMiC,KAC5ChE,EAAQzK,EAAOwM,EAAK7M,UAExB,CACD5B,IAAK,YACLN,MAAO,WACL,OAAOgB,KAAK+K,OAAOuH,cAEpB,CACDhT,IAAK,MACLN,MAAO,WACL,IAAIuT,EAEJ,OAAQA,EAAgBvS,KAAK0K,SAAS8H,IAAIC,MAAMF,EAAezI,aAEhE,CACDxK,IAAK,KACLN,MAAO,WACL,IAAI0T,EAEJ,OAAQA,EAAiB1S,KAAK0K,SAASgB,GAAG+G,MAAMC,EAAgB5I,aAEjE,CACDxK,IAAK,OACLN,MAAO,WACL,IAAI2T,EAEJ,OAAQA,EAAiB3S,KAAK0K,SAASkI,KAAKH,MAAME,EAAgB7I,aAEnE,CACDxK,IAAK,eACLN,MAAO,SAAsBuC,EAAOL,EAAQ8K,GAC1C,IAAI6G,EAAS7S,KAIT8S,EAAclL,EAFAtB,EAAS/E,EAAOL,EAAQ8K,GAEI,GAK9C,OAHAzK,EAAQuR,EAAY,GACpB5R,EAAS4R,EAAY,GACrB9G,EAAS8G,EAAY,GACdvG,EAAOrO,KAAK8B,MAAM,WACvB,OAAO6S,EAAO5H,OAAO8H,aAAaxR,EAAOL,KACxC8K,EAAQzK,KAEZ,CACDjC,IAAK,iBACLN,MAAO,WACLgB,KAAKkL,UAAUgE,eAAelP,KAAKyK,sBAEpC,CACDnL,IAAK,cACLN,MAAO,SAAqB4E,GAC1B,IAAIoP,EAAShT,KAETgM,EAASlC,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,GAAmBA,UAAU,GAAK9C,EAAuD,EAAEoI,QAAQC,IAClJ,OAAO9C,EAAOrO,KAAK8B,MAAM,WACvB4D,EAAQ,IAAI6C,EAAiDgJ,EAAE7L,GAE/D,IAAI1C,EAAS8R,EAAOjC,YAGhBkC,EAAUD,EAAO/H,OAAO2D,WAAW,EAAG1N,GAGtCgS,EAAUF,EAAO/H,OAAOkI,WAAWvP,GAGnCwP,EAAUJ,EAAO/H,OAAO2D,WAAWoE,EAAOjC,YAAc,EAAG,GAE/D,OAAOkC,EAAQ9P,QAAQ+P,GAAS/P,QAAQiQ,KACvCpH,KAEJ,CACD1M,IAAK,eACLN,MAAO,SAAsBuC,EAAOL,EAAQ8K,GAC1C,GAAa,MAATzK,EACFvB,KAAKkL,UAAUuD,SAAS,KAAMvN,GAAUqF,EAAM6I,QAAQC,SACjD,CACL,IAEIgE,EAAczL,EAFAtB,EAAS/E,EAAOL,EAAQ8K,GAEI,GAE9CzK,EAAQ8R,EAAY,GACpBnS,EAASmS,EAAY,GACrBrH,EAASqH,EAAY,GACrBrT,KAAKkL,UAAUuD,SAAS,IAAIvH,EAAuD,EAAEpD,KAAKwP,IAAI,EAAG/R,GAAQL,GAAS8K,GAE9GA,IAAWhF,EAAuD,EAAEoI,QAAQW,QAC9E/P,KAAKkL,UAAUgE,eAAelP,KAAKyK,uBAIxC,CACDnL,IAAK,UACLN,MAAO,SAAiB+O,GACtB,IAAI/B,EAASlC,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,GAAmBA,UAAU,GAAK9C,EAAuD,EAAEoI,QAAQC,IAC9IzL,GAAQ,IAAI6C,EAAiDgJ,GAAI3O,OAAOiN,GAC5E,OAAO/N,KAAKyM,YAAY7I,EAAOoI,KAEhC,CACD1M,IAAK,SACLN,MAAO,WACL,IAAIgN,EAASlC,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,GAAmBA,UAAU,GAAK9C,EAAuD,EAAEoI,QAAQmE,KAC9I/D,EAASxP,KAAK+K,OAAOyB,OAAOR,GAIhC,OAFAhM,KAAKkL,UAAUsB,OAAOR,GAEfwD,IAER,CACDlQ,IAAK,iBACLN,MAAO,SAAwB4E,GAC7B,IAAI4P,EAAUxT,KAEVgM,EAASlC,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,GAAmBA,UAAU,GAAK9C,EAAuD,EAAEoI,QAAQC,IAClJ,OAAO9C,EAAOrO,KAAK8B,MAAM,WAEvB,OADA4D,EAAQ,IAAI6C,EAAiDgJ,EAAE7L,GACxD4P,EAAQvI,OAAOkI,WAAWvP,EAAOoI,KACvCA,GAAQ,QAzf6D3C,EAAkBD,EAAYzJ,UAAWsN,GAAiBC,GAAa7D,EAAkBD,EAAa8D,GAsjB3K3G,EAriBgB,GA4jBzB,SAASF,EAAasD,EAAW8J,GAW/B,IAVAA,EAAa5M,IAAoD,CAC/D8C,UAAWA,EACXjM,QAAS,CACP4N,WAAW,EACXF,UAAU,EACVG,SAAS,EACTC,UAAU,IAEXiI,IAEatI,OAASsI,EAAWtI,QAAU5E,EAAMmN,SAASvI,OAK3D,GAFAsI,EAAWtI,MAAQ5E,EAAMoN,OAAO,UAAUxP,OAAOsP,EAAWtI,QAEpC,MAApBsI,EAAWtI,MACb,MAAM,IAAI5G,MAAM,iBAAiBJ,OAAOsP,EAAWtI,MAAO,gCAL5DsI,EAAWtI,MAAQ9D,EAAsD,EAS3E,IAAIuM,EAAcjN,IAAwD8M,EAAWtI,MAAMuI,UAC3F,CAACE,EAAaH,GAAYzR,SAAQ,SAAU6R,GAC1CA,EAAOnW,QAAUmW,EAAOnW,SAAW,GACnCe,OAAO0C,KAAK0S,EAAOnW,SAASsE,SAAQ,SAAUjE,IACb,IAA3B8V,EAAOnW,QAAQK,KACjB8V,EAAOnW,QAAQK,GAAU,UAI/B,IACI+V,EADcrV,OAAO0C,KAAKyS,EAAYlW,SAASyG,OAAO1F,OAAO0C,KAAKsS,EAAW/V,UAClD4E,QAAO,SAAUuR,EAAQvV,GACtD,IAAIyV,EAAcxN,EAAMoN,OAAO,WAAWxP,OAAO7F,IAQjD,OANmB,MAAfyV,EACFtK,EAAMO,MAAM,eAAe7F,OAAO7F,EAAM,6CAExCuV,EAAOvV,GAAQyV,EAAYL,UAAY,GAGlCG,IACN,IAuBH,OArB0B,MAAtBJ,EAAW/V,SAAmB+V,EAAW/V,QAAQsW,SAAWP,EAAW/V,QAAQsW,QAAQxM,cAAgB/I,SACzGgV,EAAW/V,QAAQsW,QAAU,CAC3BrK,UAAW8J,EAAW/V,QAAQsW,UAIlCP,EAAa5M,IAAoD,GAAIN,EAAMmN,SAAU,CACnFhW,QAASoW,GACRF,EAAaH,GAChB,CAAC,SAAU,YAAa,sBAAsBzR,SAAQ,SAAU1C,GAC/B,kBAApBmU,EAAWnU,KACpBmU,EAAWnU,GAAOgP,SAAS2F,cAAcR,EAAWnU,QAGxDmU,EAAW/V,QAAUe,OAAO0C,KAAKsS,EAAW/V,SAAS4E,QAAO,SAAUuR,EAAQvV,GAK5E,OAJImV,EAAW/V,QAAQY,KACrBuV,EAAOvV,GAAQmV,EAAW/V,QAAQY,IAG7BuV,IACN,IACIJ,EAKT,SAASlH,EAAOuC,EAAU9C,EAAQzK,EAAO2S,GACvC,IAAKlU,KAAKsS,aAAetG,IAAWhF,EAAuD,EAAEoI,QAAQmE,OAASvT,KAAKgN,mBACjH,OAAO,IAAIvG,EAAiDgJ,EAG9D,IAAIH,EAAiB,MAAT/N,EAAgB,KAAOvB,KAAKuP,eACpC4E,EAAWnU,KAAKiL,OAAOrH,MACvB4L,EAASV,IAgBb,GAda,MAATQ,KACY,IAAV/N,IACFA,EAAQ+N,EAAM/N,OAGH,MAAT2S,EACF5E,EAAQ8E,EAAW9E,EAAOE,EAAQxD,GACf,IAAVkI,IACT5E,EAAQ8E,EAAW9E,EAAO/N,EAAO2S,EAAOlI,IAG1ChM,KAAK8P,aAAaR,EAAOtI,EAAuD,EAAEoI,QAAQW,SAGxFP,EAAOtO,SAAW,EAAG,CACvB,IAAImT,EAOEC,EALFC,EAAO,CAACvN,EAAuD,EAAE2E,OAAOG,YAAa0D,EAAQ2E,EAAUnI,IAE1GqI,EAAiBrU,KAAK0K,SAAS8J,KAAK/B,MAAM4B,EAAgB,CAACrN,EAAuD,EAAE2E,OAAOC,eAAezH,OAAOoQ,IAE9IvI,IAAWhF,EAAuD,EAAEoI,QAAQW,SAG7EuE,EAAiBtU,KAAK0K,SAAS8J,KAAK/B,MAAM6B,EAAgBC,GAI/D,OAAO/E,EAGT,SAASlJ,EAAS/E,EAAOL,EAAQ5C,EAAMU,EAAOgN,GAC5C,IAAIgE,EAAU,GAqCd,MAnC2B,kBAAhBzO,EAAMA,OAA8C,kBAAjBA,EAAML,OAE5B,kBAAXA,GACT8K,EAAShN,EACTA,EAAQV,EACRA,EAAO4C,EACPA,EAASK,EAAML,OAEfK,EAAQA,EAAMA,QAEdL,EAASK,EAAML,OAEfK,EAAQA,EAAMA,OAEW,kBAAXL,IAChB8K,EAAShN,EACTA,EAAQV,EACRA,EAAO4C,EACPA,EAAS,GAIW,WAAlBoG,EAAQhJ,IACV0R,EAAU1R,EACV0N,EAAShN,GACgB,kBAATV,IACH,MAATU,EACFgR,EAAQ1R,GAAQU,EAEhBgN,EAAS1N,GAMN,CAACiD,EAAOL,EAAQ8O,EADvBhE,EAASA,GAAUhF,EAAuD,EAAEoI,QAAQC,KAItF,SAAS+E,EAAW9E,EAAO/N,EAAOL,EAAQ8K,GACxC,GAAa,MAATsD,EAAe,OAAO,KAC1B,IAAI3M,EACAC,EAEJ,GAAIrB,aAAiBkF,EAAiDgJ,EAAG,CACvE,IAIIgF,EAAQ7M,EAJD,CAAC0H,EAAM/N,MAAO+N,EAAM/N,MAAQ+N,EAAMpO,QAAQe,KAAI,SAAUyS,GACjE,OAAOnT,EAAMqE,kBAAkB8O,EAAK1I,IAAWhF,EAAuD,EAAEoI,QAAQmE,SAGjF,GAEjC5Q,EAAQ8R,EAAM,GACd7R,EAAM6R,EAAM,OACP,CACL,IAUIE,EAAQ/M,EAVA,CAAC0H,EAAM/N,MAAO+N,EAAM/N,MAAQ+N,EAAMpO,QAAQe,KAAI,SAAUyS,GAClE,OAAIA,EAAMnT,GAASmT,IAAQnT,GAASyK,IAAWhF,EAAuD,EAAEoI,QAAQmE,KAAamB,EAEzHxT,GAAU,EACLwT,EAAMxT,EAGR4C,KAAKwP,IAAI/R,EAAOmT,EAAMxT,MAGG,GAElCyB,EAAQgS,EAAM,GACd/R,EAAM+R,EAAM,GAGd,OAAO,IAAIzN,EAAuD,EAAEvE,EAAOC,EAAMD,GAzMnF4D,EAAMmN,SAAW,CACfrD,OAAQ,KACR3S,QAAS,GACTkP,YAAa,GACbE,UAAU,EACVlC,SAAUxE,EACVqE,mBAAoB,KACpBU,MAAO,WAET5E,EAAMoF,OAAS3E,EAAuD,EAAE2E,OACxEpF,EAAM6I,QAAUpI,EAAuD,EAAEoI,QAEzE7I,EAAMqO,QAA+B,QACrCrO,EAAMgH,QAAU,CACd3J,MAAO6C,EAAiDgJ,EACxDoF,UAAW/N,EACX,cAAeG,EAAsD,EACrE,aAAcI,EAAsD,IA+L/D,SAAStJ,EAAQoI,EAAqBvI,GAE7C,aAqBA,IAAIkX,EAnBJlX,EAAoBiB,EAAEsH,GAGtBvI,EAAoBS,EAAE8H,EAAqB,cAAc,WAAa,OAAO,KAC7EvI,EAAoBS,EAAE8H,EAAqB,iBAAiB,WAAa,OAAO,KAChFvI,EAAoBS,EAAE8H,EAAqB,YAAY,WAAa,OAAO,KAC3EvI,EAAoBS,EAAE8H,EAAqB,aAAa,WAAa,OAAO,KAC5EvI,EAAoBS,EAAE8H,EAAqB,cAAc,WAAa,OAAO,KAC7EvI,EAAoBS,EAAE8H,EAAqB,aAAa,WAAa,OAAO,KAC5EvI,EAAoBS,EAAE8H,EAAqB,cAAc,WAAa,OAAO,KAC7EvI,EAAoBS,EAAE8H,EAAqB,YAAY,WAAa,OAAO,KAC3EvI,EAAoBS,EAAE8H,EAAqB,cAAc,WAAa,OAAO,KAC7EvI,EAAoBS,EAAE8H,EAAqB,mBAAmB,WAAa,OAAO,KAClFvI,EAAoBS,EAAE8H,EAAqB,mBAAmB,WAAa,OAAO,KAClFvI,EAAoBS,EAAE8H,EAAqB,mBAAmB,WAAa,OAAO,KAClFvI,EAAoBS,EAAE8H,EAAqB,YAAY,WAAa,OAAO,KAC3EvI,EAAoBS,EAAE8H,EAAqB,SAAS,WAAa,OAAO,KAKxE,SAAW2O,GACTA,EAAMA,EAAY,KAAI,GAAK,OAC3BA,EAAMA,EAAa,MAAI,IAAM,QAC7BA,EAAMA,EAAiB,UAAI,IAAM,YACjCA,EAAMA,EAAY,KAAI,IAAM,OAC5BA,EAAMA,EAAc,OAAI,GAAK,SAC7BA,EAAMA,EAAa,MAAI,IAAM,QAC7BA,EAAMA,EAAkB,WAAI,IAAM,aAClCA,EAAMA,EAAmB,YAAI,GAAK,cAClCA,EAAMA,EAAuB,gBAAI,GAAK,kBACtCA,EAAMA,EAAwB,iBAAI,GAAK,mBACvCA,EAAMA,EAAW,IAAI,IAAM,MAX7B,CAYGA,IAAUA,EAAQ,KAEQ,IAAIC,EAAaD,EA8ObE,EA5OhB,WACf,SAASC,IACPjV,KAAKkV,KAAO,KACZlV,KAAKmV,KAAO,KACZnV,KAAKkB,OAAS,EAqOhB,OAlOA+T,EAAWtV,UAAUyV,OAAS,WAG5B,IAFA,IAAIC,EAAQ,GAEHtN,EAAK,EAAGA,EAAK+B,UAAU5I,OAAQ6G,IACtCsN,EAAMtN,GAAM+B,UAAU/B,GAKxB,GAFA/H,KAAKwO,aAAa6G,EAAM,GAAI,MAExBA,EAAMnU,OAAS,EAAG,CACpB,IAAIgD,EAAOmR,EAAM3S,MAAM,GACvB1C,KAAKoV,OAAO3C,MAAMzS,KAAMkE,KAI5B+Q,EAAWtV,UAAU2V,GAAK,SAAU/T,GAIlC,IAHA,IAAI2B,EAAOlD,KAAK+C,WACZwS,EAAMrS,IAEHqS,GAAOhU,EAAQ,GACpBA,GAAS,EACTgU,EAAMrS,IAGR,OAAOqS,GAGTN,EAAWtV,UAAU6V,SAAW,SAAUnI,GAIxC,IAHA,IAAInK,EAAOlD,KAAK+C,WACZwS,EAAMrS,IAEHqS,GAAK,CACV,GAAIA,IAAQlI,EACV,OAAO,EAGTkI,EAAMrS,IAGR,OAAO,GAGT+R,EAAWtV,UAAUwF,QAAU,SAAUkI,GAKvC,IAJA,IAAInK,EAAOlD,KAAK+C,WACZwS,EAAMrS,IACN3B,EAAQ,EAELgU,GAAK,CACV,GAAIA,IAAQlI,EACV,OAAO9L,EAGTA,GAAS,EACTgU,EAAMrS,IAGR,OAAQ,GAGV+R,EAAWtV,UAAU6O,aAAe,SAAUnB,EAAMe,GACtC,MAARf,IAIJrN,KAAKyV,OAAOpI,GACZA,EAAKnK,KAAOkL,EAEG,MAAXA,GACFf,EAAKqI,KAAOtH,EAAQsH,KAEA,MAAhBtH,EAAQsH,OACVtH,EAAQsH,KAAKxS,KAAOmK,GAGtBe,EAAQsH,KAAOrI,EAEXe,IAAYpO,KAAKkV,OACnBlV,KAAKkV,KAAO7H,IAEQ,MAAbrN,KAAKmV,MACdnV,KAAKmV,KAAKjS,KAAOmK,EACjBA,EAAKqI,KAAO1V,KAAKmV,KACjBnV,KAAKmV,KAAO9H,IAEZA,EAAKqI,KAAO,KACZ1V,KAAKkV,KAAOlV,KAAKmV,KAAO9H,GAG1BrN,KAAKkB,QAAU,IAGjB+T,EAAWtV,UAAUmG,OAAS,SAAUwD,GAItC,IAHA,IAAI/H,EAAQ,EACRgU,EAAMvV,KAAKkV,KAED,MAAPK,GAAa,CAClB,GAAIA,IAAQjM,EACV,OAAO/H,EAGTA,GAASgU,EAAIrU,SACbqU,EAAMA,EAAIrS,KAGZ,OAAQ,GAGV+R,EAAWtV,UAAU8V,OAAS,SAAUpI,GACjCrN,KAAKwV,SAASnI,KAIF,MAAbA,EAAKqI,OACPrI,EAAKqI,KAAKxS,KAAOmK,EAAKnK,MAGP,MAAbmK,EAAKnK,OACPmK,EAAKnK,KAAKwS,KAAOrI,EAAKqI,MAGpBrI,IAASrN,KAAKkV,OAChBlV,KAAKkV,KAAO7H,EAAKnK,MAGfmK,IAASrN,KAAKmV,OAChBnV,KAAKmV,KAAO9H,EAAKqI,MAGnB1V,KAAKkB,QAAU,IAGjB+T,EAAWtV,UAAUoD,SAAW,SAAU4S,GAMxC,YALgB,IAAZA,IACFA,EAAU3V,KAAKkV,MAIV,WACL,IAAIU,EAAMD,EAMV,OAJe,MAAXA,IACFA,EAAUA,EAAQzS,MAGb0S,IAIXX,EAAWtV,UAAU2N,KAAO,SAAU/L,EAAOsU,QACzB,IAAdA,IACFA,GAAY,GAMd,IAHA,IAAI3S,EAAOlD,KAAK+C,WACZwS,EAAMrS,IAEHqS,GAAK,CACV,IAAIrU,EAASqU,EAAIrU,SAEjB,GAAIK,EAAQL,GAAU2U,GAAatU,IAAUL,IAAuB,MAAZqU,EAAIrS,MAAsC,IAAtBqS,EAAIrS,KAAKhC,UACnF,MAAO,CAACqU,EAAKhU,GAGfA,GAASL,EACTqU,EAAMrS,IAGR,MAAO,CAAC,KAAM,IAGhB+R,EAAWtV,UAAUqC,QAAU,SAAU8T,GAIvC,IAHA,IAAI5S,EAAOlD,KAAK+C,WACZwS,EAAMrS,IAEHqS,GACLO,EAASP,GACTA,EAAMrS,KAIV+R,EAAWtV,UAAUoW,UAAY,SAAUxU,EAAOL,EAAQ4U,GACxD,KAAI5U,GAAU,GAYd,IARA,IAAI8U,EAAKhW,KAAKsN,KAAK/L,GACf0U,EAAYD,EAAG,GAGfE,EAAW3U,EAFFyU,EAAG,GAGZ9S,EAAOlD,KAAK+C,SAASkT,GACrBV,EAAMrS,IAEHqS,GAAOW,EAAW3U,EAAQL,GAAQ,CACvC,IAAIiV,EAAYZ,EAAIrU,SAEhBK,EAAQ2U,EACVJ,EAASP,EAAKhU,EAAQ2U,EAAUpS,KAAKC,IAAI7C,EAAQgV,EAAWC,EAAY5U,IAExEuU,EAASP,EAAK,EAAGzR,KAAKC,IAAIoS,EAAW5U,EAAQL,EAASgV,IAGxDA,GAAYC,EACZZ,EAAMrS,MAIV+R,EAAWtV,UAAUsC,IAAM,SAAU6T,GACnC,OAAO9V,KAAKsC,QAAO,SAAU8T,EAAMb,GAEjC,OADAa,EAAKhV,KAAK0U,EAASP,IACZa,IACN,KAGLnB,EAAWtV,UAAU2C,OAAS,SAAUwT,EAAUM,GAIhD,IAHA,IAAIlT,EAAOlD,KAAK+C,WACZwS,EAAMrS,IAEHqS,GACLa,EAAON,EAASM,EAAMb,GACtBA,EAAMrS,IAGR,OAAOkT,GAGFnB,EAzOQ,GA8OboB,EAAgD,WAClD,IAAIC,EAAiB,SAAuBjY,EAAGkY,GAW7C,OAVAD,EAAiB7X,OAAO+X,gBAAkB,CACxCC,UAAW,cACA7V,OAAS,SAAUvC,EAAGkY,GACjClY,EAAEoY,UAAYF,IACX,SAAUlY,EAAGkY,GAChB,IAAK,IAAI1W,KAAK0W,EACRA,EAAE3W,eAAeC,KAAIxB,EAAEwB,GAAK0W,EAAE1W,MAIhBxB,EAAGkY,IAG3B,OAAO,SAAUlY,EAAGkY,GAGlB,SAASG,IACP1W,KAAKwH,YAAcnJ,EAHrBiY,EAAejY,EAAGkY,GAMlBlY,EAAEsB,UAAkB,OAAN4W,EAAa9X,OAAOY,OAAOkX,IAAMG,EAAG/W,UAAY4W,EAAE5W,UAAW,IAAI+W,IAtB/B,GA0CnB1M,EAhBZ,SAAU2M,GAG7B,SAASC,EAAeC,GACtB,IAAIjN,EAAQ5J,KAMZ,OAJA6W,EAAU,eAAiBA,GAC3BjN,EAAQ+M,EAAOzY,KAAK8B,KAAM6W,IAAY7W,MAChC6W,QAAUA,EAChBjN,EAAMtL,KAAOsL,EAAMpC,YAAYlJ,KACxBsL,EAGT,OAZAyM,EAAUO,EAAgBD,GAYnBC,EAbY,CAcnBrS,OAgK+BqG,EAzJT,WACtB,SAASkM,IACP9W,KAAKgB,WAAa,GAClBhB,KAAK+W,QAAU,GACf/W,KAAKgX,KAAO,GACZhX,KAAKiX,MAAQ,GAiJf,OA9IAH,EAASxJ,KAAO,SAAUD,EAAM6J,GAK9B,YAJe,IAAXA,IACFA,GAAS,GAGC,MAAR7J,EACK,KAGLrN,KAAKmX,MAAMC,IAAI/J,GACVrN,KAAKmX,MAAMvY,IAAIyO,IAAS,KAG7B6J,EACKlX,KAAKsN,KAAKD,EAAKgK,WAAYH,GAG7B,MAGTJ,EAASnX,UAAUN,OAAS,SAAU0L,EAAQuM,EAAOtY,GACnD,IAAIuY,EAAQvX,KAAK6K,MAAMyM,GAEvB,GAAa,MAATC,EACF,MAAM,IAAIvN,EAAM,oBAAsBsN,EAAQ,SAGhD,IAAIE,EAAYD,EACZlK,EACJiK,aAAiBG,MAAQH,EAAMI,WAAaD,KAAKE,UAAYL,EAAQE,EAAUnY,OAAOL,GAClFoS,EAAO,IAAIoG,EAAUzM,EAAQsC,EAAMrO,GAEvC,OADA8X,EAASK,MAAM7M,IAAI8G,EAAKwG,QAASxG,GAC1BA,GAGT0F,EAASnX,UAAU2N,KAAO,SAAUD,EAAM6J,GAKxC,YAJe,IAAXA,IACFA,GAAS,GAGJJ,EAASxJ,KAAKD,EAAM6J,IAG7BJ,EAASnX,UAAUkL,MAAQ,SAAUA,EAAOgN,GAC1C,IAMIN,EANA3N,EAAQ5J,KAgCZ,YA9Bc,IAAV6X,IACFA,EAAQ9C,EAAU+C,KAKC,kBAAVjN,EACT0M,EAAQvX,KAAKiX,MAAMpM,IAAU7K,KAAKgB,WAAW6J,GACpCA,aAAiBkN,MAAQlN,EAAM6M,WAAaD,KAAKE,UAC1DJ,EAAQvX,KAAKiX,MAAMlJ,KACO,kBAAVlD,EACZA,EAAQkK,EAAUiD,MAAQjD,EAAUrF,MACtC6H,EAAQvX,KAAKiX,MAAMgB,MACVpN,EAAQkK,EAAUiD,MAAQjD,EAAUmD,SAC7CX,EAAQvX,KAAKiX,MAAMkB,QAEZtN,aAAiBuN,eACbvN,EAAMwN,aAAa,UAAY,IAAIC,MAAM,OAChDC,MAAK,SAAUja,GAGnB,SAFAiZ,EAAQ3N,EAAMmN,QAAQzY,OAQxBiZ,EAAQA,GAASvX,KAAKgX,KAAKnM,EAAM2N,UAGtB,MAATjB,EACK,KAILM,EAAQ9C,EAAUiD,MAAQT,EAAMM,OAASA,EAAQ9C,EAAU0D,KAAOlB,EAAMM,MACnEN,EAGF,MAGTT,EAASnX,UAAUiO,SAAW,WAK5B,IAJA,IAAIhE,EAAQ5J,KAER0Y,EAAc,GAET3Q,EAAK,EAAGA,EAAK+B,UAAU5I,OAAQ6G,IACtC2Q,EAAY3Q,GAAM+B,UAAU/B,GAG9B,GAAI2Q,EAAYxX,OAAS,EACvB,OAAOwX,EAAYzW,KAAI,SAAU5D,GAC/B,OAAOuL,EAAMgE,SAASvP,MAI1B,IAAIsa,EAAaD,EAAY,GAE7B,GAAmC,kBAAxBC,EAAW7N,UAAwD,kBAAxB6N,EAAWhL,SAC/D,MAAM,IAAI3D,EAAM,sBACX,GAA4B,aAAxB2O,EAAW7N,SACpB,MAAM,IAAId,EAAM,kCAKlB,GAFAhK,KAAKiX,MAAM0B,EAAW7N,UAAY6N,EAAWhL,UAAYgL,EAEvB,kBAAvBA,EAAWC,QACpB5Y,KAAKgB,WAAW2X,EAAWC,SAAWD,OAMtC,GAJ4B,MAAxBA,EAAWtK,YACbrO,KAAK+W,QAAQ4B,EAAWtK,WAAasK,GAGb,MAAtBA,EAAWH,QAAiB,CAC1B5X,MAAMC,QAAQ8X,EAAWH,SAC3BG,EAAWH,QAAUG,EAAWH,QAAQvW,KAAI,SAAUuW,GACpD,OAAOA,EAAQK,iBAGjBF,EAAWH,QAAUG,EAAWH,QAAQK,cAG1C,IAAIC,EAAWlY,MAAMC,QAAQ8X,EAAWH,SAAWG,EAAWH,QAAU,CAACG,EAAWH,SACpFM,EAAS9W,SAAQ,SAAU+W,GACF,MAAnBnP,EAAMoN,KAAK+B,IAAwC,MAAxBJ,EAAWtK,YACxCzE,EAAMoN,KAAK+B,GAAOJ,MAM1B,OAAOA,GAGT7B,EAASK,MAAQ,IAAI6B,QACdlC,EAtJe,GAwUSmC,EAzKT,WACtB,SAASC,EAAWnO,EAAQ6M,GAC1B5X,KAAK+K,OAASA,EACd/K,KAAK4X,QAAUA,EACfhN,EAASuM,MAAM7M,IAAIsN,EAAS5X,MAC5BA,KAAK0V,KAAO,KACZ1V,KAAKkD,KAAO,KAgKd,OA7JAgW,EAAW7Z,OAAS,SAAUL,GAC5B,GAAoB,MAAhBgB,KAAKwY,QACP,MAAM,IAAIxO,EAAM,mCAGlB,IAAIqD,EA0BJ,OAxBIzM,MAAMC,QAAQb,KAAKwY,UACA,kBAAVxZ,IACTA,EAAQA,EAAM6Z,cAEVM,SAASna,EAAO,IAAI0J,aAAe1J,IACrCA,EAAQma,SAASna,EAAO,MAK1BqO,EADmB,kBAAVrO,EACFsP,SAASC,cAAcvO,KAAKwY,QAAQxZ,EAAQ,IAC1CgB,KAAKwY,QAAQrT,QAAQnG,IAAU,EACjCsP,SAASC,cAAcvP,GAEvBsP,SAASC,cAAcvO,KAAKwY,QAAQ,KAG7CnL,EAAOiB,SAASC,cAAcvO,KAAKwY,SAGjCxY,KAAKqO,WACPhB,EAAKjD,UAAUC,IAAIrK,KAAKqO,WAGnBhB,GAGT5O,OAAOC,eAAewa,EAAWvZ,UAAW,UAAW,CAErDf,IAAK,WACH,OAAOoB,KAAKwH,aAEd7I,YAAY,EACZ+I,cAAc,IAGhBwR,EAAWvZ,UAAUyZ,OAAS,aAG9BF,EAAWvZ,UAAU0Z,MAAQ,WAC3B,IAAIzB,EAAU5X,KAAK4X,QAAQ0B,WAAU,GACrC,OAAOtZ,KAAK+K,OAAO1L,OAAOuY,IAG5BsB,EAAWvZ,UAAU4Z,OAAS,WACT,MAAfvZ,KAAKwZ,QACPxZ,KAAKwZ,OAAOC,YAAYzZ,MAG1B4K,EAASuM,MAAM9V,OAAOrB,KAAK4X,UAG7BsB,EAAWvZ,UAAU+Z,SAAW,SAAUnY,EAAOL,GACpClB,KAAK2Z,QAAQpY,EAAOL,GAC1BuU,UAGPyD,EAAWvZ,UAAUia,SAAW,SAAUrY,EAAOL,EAAQ5C,EAAMU,GAC7D,IAAIoS,EAAOpR,KAAK2Z,QAAQpY,EAAOL,GAE/B,GAA+C,MAA3ClB,KAAK+K,OAAOF,MAAMvM,EAAMyW,EAAU8E,OAAiB7a,EACrDoS,EAAK0I,KAAKxb,EAAMU,QACX,GAAoD,MAAhDgB,KAAK+K,OAAOF,MAAMvM,EAAMyW,EAAUgF,WAAoB,CAC/D,IAAIP,EAASxZ,KAAK+K,OAAO1L,OAAOW,KAAKga,QAAQnC,OAC7CzG,EAAK0I,KAAKN,GACVA,EAAO5J,OAAOtR,EAAMU,KAIxBka,EAAWvZ,UAAUsa,SAAW,SAAU1Y,EAAOvC,EAAOkb,GACtD,IAAI9I,EAAc,MAAP8I,EAAcla,KAAK+K,OAAO1L,OAAO,OAAQL,GAASgB,KAAK+K,OAAO1L,OAAOL,EAAOkb,GACnFC,EAAMna,KAAKsY,MAAM/W,GACrBvB,KAAKwZ,OAAOhL,aAAa4C,EAAM+I,QAAOpQ,IAGxCmP,EAAWvZ,UAAUga,QAAU,SAAUpY,EAAOL,GAC9C,IAAIoI,EAAStJ,KAAKsY,MAAM/W,GAExB,GAAc,MAAV+H,EACF,MAAM,IAAI/E,MAAM,6BAIlB,OADA+E,EAAOgP,MAAMpX,GACNoI,GAGT4P,EAAWvZ,UAAUuB,OAAS,WAC5B,OAAO,GAGTgY,EAAWvZ,UAAUmG,OAAS,SAAUyE,GAKtC,YAJa,IAATA,IACFA,EAAOvK,KAAKwZ,QAGK,MAAfxZ,KAAKwZ,QAAkBxZ,OAASuK,EAC3B,EAGFvK,KAAKwZ,OAAOY,SAAStU,OAAO9F,MAAQA,KAAKwZ,OAAO1T,OAAOyE,IAGhE2O,EAAWvZ,UAAU0a,SAAW,SAAUC,IACpCta,KAAKga,QAAQO,mBAAuBva,KAAKwZ,kBAAkBxZ,KAAKga,QAAQO,mBAC1Eva,KAAK8Z,KAAK9Z,KAAKga,QAAQO,kBAAkBzP,WAI7CoO,EAAWvZ,UAAU8V,OAAS,WACG,MAA3BzV,KAAK4X,QAAQP,YACfrX,KAAK4X,QAAQP,WAAWoC,YAAYzZ,KAAK4X,SAG3C5X,KAAKuZ,UAGPL,EAAWvZ,UAAU6a,YAAc,SAAUlc,EAAMU,GACjD,IAAIyb,EAA8B,kBAATnc,EAAoB0B,KAAK+K,OAAO1L,OAAOf,EAAMU,GAASV,EAO/E,OALmB,MAAf0B,KAAKwZ,SACPxZ,KAAKwZ,OAAOhL,aAAaiM,EAAaza,KAAKkD,WAAQ6G,GACnD/J,KAAKyV,UAGAgF,GAGTvB,EAAWvZ,UAAU2Y,MAAQ,SAAU/W,EAAOmZ,GAC5C,OAAiB,IAAVnZ,EAAcvB,KAAOA,KAAKkD,MAGnCgW,EAAWvZ,UAAU6M,OAAS,SAAUmO,EAAYL,KAGpDpB,EAAWvZ,UAAUma,KAAO,SAAUxb,EAAMU,GAC1C,IAAI4b,EAA0B,kBAATtc,EAAoB0B,KAAK+K,OAAO1L,OAAOf,EAAMU,GAASV,EAM3E,GAJmB,MAAf0B,KAAKwZ,QACPxZ,KAAKwZ,OAAOhL,aAAaoM,EAAS5a,KAAKkD,WAAQ6G,GAGd,oBAAxB6Q,EAAQC,YACjB,MAAM,IAAI7Q,EAAM,eAAiB1L,GAInC,OADAsc,EAAQC,YAAY7a,MACb4a,GAGT1B,EAAWpO,SAAW,WACfoO,EAtKe,GA2KpB4B,EAAqD,WACvD,IAAIxE,EAAiB,SAAuBjY,EAAGkY,GAW7C,OAVAD,EAAiB7X,OAAO+X,gBAAkB,CACxCC,UAAW,cACA7V,OAAS,SAAUvC,EAAGkY,GACjClY,EAAEoY,UAAYF,IACX,SAAUlY,EAAGkY,GAChB,IAAK,IAAI1W,KAAK0W,EACRA,EAAE3W,eAAeC,KAAIxB,EAAEwB,GAAK0W,EAAE1W,MAIhBxB,EAAGkY,IAG3B,OAAO,SAAUlY,EAAGkY,GAGlB,SAASG,IACP1W,KAAKwH,YAAcnJ,EAHrBiY,EAAejY,EAAGkY,GAMlBlY,EAAEsB,UAAkB,OAAN4W,EAAa9X,OAAOY,OAAOkX,IAAMG,EAAG/W,UAAY4W,EAAE5W,UAAW,IAAI+W,IAtB1B,GA+BzD,SAASqE,EAAiB1N,EAAMtC,GAC9B,IAAIqG,EAAOrG,EAAOuC,KAAKD,GAEvB,GAAY,MAAR+D,EACF,IACEA,EAAOrG,EAAO1L,OAAOgO,GACrB,MAAO2N,GACP5J,EAAOrG,EAAO1L,OAAO0V,EAAUmD,QAC/BtX,MAAM+H,KAAK0E,EAAK4N,YAAYjZ,SAAQ,SAAUkZ,GAE5C9J,EAAKwG,QAAQiD,YAAYK,MAGvB7N,EAAKgK,YACPhK,EAAKgK,WAAW8D,aAAa/J,EAAKwG,QAASvK,GAG7C+D,EAAKgI,SAIT,OAAOhI,EAGT,IA+XiCgK,EA/XT,SAAUzE,GAGhC,SAAS0E,EAAWtQ,EAAQ6M,GAC1B,IAAIhO,EAAQ+M,EAAOzY,KAAK8B,KAAM+K,EAAQ6M,IAAY5X,KAMlD,OAJA4J,EAAM0R,OAAS,KAEf1R,EAAM2R,QAEC3R,EAkXT,OA3XAkR,EAAeO,EAAY1E,GAY3B0E,EAAW1b,UAAUkb,YAAc,SAAUzX,GAC3CpD,KAAKwO,aAAapL,IAGpBiY,EAAW1b,UAAUyZ,OAAS,WAC5BzC,EAAOhX,UAAUyZ,OAAOlb,KAAK8B,MAE7BA,KAAKoa,SAASpY,SAAQ,SAAUkZ,GAC9BA,EAAM9B,aAIViC,EAAW1b,UAAU6b,SAAW,SAAUnO,GACrB,MAAfrN,KAAKsb,QACPtb,KAAKsb,OAAO7F,SAGdzV,KAAKsb,OAASjO,EAEVgO,EAAW3R,SACb1J,KAAKsb,OAAOlR,UAAUC,IAAIgR,EAAW3R,SAGvC1J,KAAKsb,OAAOzO,aAAa,kBAAmB,SAC5C7M,KAAK4X,QAAQpJ,aAAaxO,KAAKsb,OAAQtb,KAAK4X,QAAQ6D,aAGtDJ,EAAW1b,UAAU4b,MAAQ,WAC3B,IAAI3R,EAAQ5J,KAEZA,KAAKoa,SAAW,IAAIpF,EAEpBpU,MAAM+H,KAAK3I,KAAK4X,QAAQqD,YAAYnZ,QAAO,SAAUuL,GACnD,OAAOA,IAASzD,EAAM0R,UACrBI,UAAU1Z,SAAQ,SAAUqL,GAC7B,IACE,IAAI6N,EAAQH,EAAiB1N,EAAMzD,EAAMmB,QAEzCnB,EAAM4E,aAAa0M,EAAOtR,EAAMwQ,SAASlF,WAAQnL,GACjD,MAAOzB,GACP,GAAIA,aAAe0B,EACjB,OAEA,MAAM1B,OAMd+S,EAAW1b,UAAU+Z,SAAW,SAAUnY,EAAOL,GAC/C,GAAc,IAAVK,GAAeL,IAAWlB,KAAKkB,SACjC,OAAOlB,KAAKyV,SAGdzV,KAAKoa,SAASrE,UAAUxU,EAAOL,GAAQ,SAAUga,EAAOpV,EAAQ6V,GAC9DT,EAAMxB,SAAS5T,EAAQ6V,OAI3BN,EAAW1b,UAAUic,WAAa,SAAUC,EAAUta,QACtC,IAAVA,IACFA,EAAQ,GAGV,IAAIyU,EAAKhW,KAAKoa,SAAS9M,KAAK/L,GACxB2Z,EAAQlF,EAAG,GACXlQ,EAASkQ,EAAG,GAEhB,OAAyB,MAArB6F,EAAS/Q,UAAoB+Q,EAASX,IAA+B,MAArBW,EAAS/Q,UAAoBoQ,aAAiBW,EACzF,CAACX,EAAOpV,GACNoV,aAAiBG,EACnBH,EAAMU,WAAWC,EAAU/V,GAE3B,CAAC,MAAO,IAInBuV,EAAW1b,UAAUmc,YAAc,SAAUD,EAAUta,EAAOL,QAC9C,IAAVK,IACFA,EAAQ,QAGK,IAAXL,IACFA,EAASoQ,OAAOC,WAGlB,IAAIuK,EAAc,GACdC,EAAa7a,EAYjB,OAXAlB,KAAKoa,SAASrE,UAAUxU,EAAOL,GAAQ,SAAUga,EAAOc,EAAYL,IACzC,MAArBE,EAAS/Q,UAAoB+Q,EAASX,IAA+B,MAArBW,EAAS/Q,UAAoBoQ,aAAiBW,IAChGC,EAAY1a,KAAK8Z,GAGfA,aAAiBG,IACnBS,EAAcA,EAAY3X,OAAO+W,EAAMY,YAAYD,EAAUG,EAAYD,KAG3EA,GAAcJ,KAETG,GAGTT,EAAW1b,UAAU4Z,OAAS,WAC5BvZ,KAAKoa,SAASpY,SAAQ,SAAUkZ,GAC9BA,EAAM3B,YAGR5C,EAAOhX,UAAU4Z,OAAOrb,KAAK8B,OAG/Bqb,EAAW1b,UAAUsc,uBAAyB,WAC5C,IAAIrS,EAAQ5J,KAERqI,GAAO,EACXrI,KAAKoa,SAASpY,SAAQ,SAAUkZ,GAC1B7S,GAIUuB,EAAMoQ,QAAQkC,gBAAgB3D,MAAK,SAAU2B,GACzD,OAAOgB,aAAiBhB,OAOtBgB,EAAMlB,QAAQnC,QAAU9C,EAAUoH,YAClB,MAAdjB,EAAMhY,MACR0G,EAAMwS,WAAWlB,GAGD,MAAdA,EAAMxF,MACR9L,EAAMwS,WAAWlB,EAAMxF,MAGzBwF,EAAM1B,OAAO6C,SACbhU,GAAO,GACE6S,aAAiBG,EAC1BH,EAAMmB,SAENnB,EAAMzF,cAKZ4F,EAAW1b,UAAUia,SAAW,SAAUrY,EAAOL,EAAQ5C,EAAMU,GAC7DgB,KAAKoa,SAASrE,UAAUxU,EAAOL,GAAQ,SAAUga,EAAOpV,EAAQ6V,GAC9DT,EAAMtB,SAAS9T,EAAQ6V,EAAard,EAAMU,OAI9Cqc,EAAW1b,UAAUsa,SAAW,SAAU1Y,EAAOvC,EAAOkb,GACtD,IAAIlE,EAAKhW,KAAKoa,SAAS9M,KAAK/L,GACxB2Z,EAAQlF,EAAG,GACXlQ,EAASkQ,EAAG,GAEhB,GAAIkF,EACFA,EAAMjB,SAASnU,EAAQ9G,EAAOkb,OACzB,CACL,IAAI9I,EAAc,MAAP8I,EAAcla,KAAK+K,OAAO1L,OAAO,OAAQL,GAASgB,KAAK+K,OAAO1L,OAAOL,EAAOkb,GACvFla,KAAK6a,YAAYzJ,KAIrBiK,EAAW1b,UAAU6O,aAAe,SAAU8N,EAAWC,GAC/B,MAApBD,EAAU9C,QACZ8C,EAAU9C,OAAOY,SAAS3E,OAAO6G,GAGnC,IAAIE,EAAa,KACjBxc,KAAKoa,SAAS5L,aAAa8N,EAAWC,GAAW,MACjDD,EAAU9C,OAASxZ,KAEJ,MAAXuc,IACFC,EAAaD,EAAQ3E,SAGnB5X,KAAK4X,QAAQP,aAAeiF,EAAU1E,SAAW5X,KAAK4X,QAAQ6E,cAAgBD,GAChFxc,KAAK4X,QAAQpJ,aAAa8N,EAAU1E,QAAS4E,GAG/CF,EAAUlD,UAGZiC,EAAW1b,UAAUuB,OAAS,WAC5B,OAAOlB,KAAKoa,SAAS9X,QAAO,SAAU8T,EAAM8E,GAC1C,OAAO9E,EAAO8E,EAAMha,WACnB,IAGLma,EAAW1b,UAAU+c,aAAe,SAAUC,EAAcvO,GAC1DpO,KAAKoa,SAASpY,SAAQ,SAAUkZ,GAC9ByB,EAAanO,aAAa0M,EAAO9M,OAIrCiN,EAAW1b,UAAU0a,SAAW,SAAUuC,GASxC,GARAjG,EAAOhX,UAAU0a,SAASnc,KAAK8B,KAAM4c,GAErC5c,KAAKic,yBAEc,MAAfjc,KAAKsb,QAAkBtb,KAAKsb,SAAWtb,KAAK4X,QAAQ6D,YACtDzb,KAAK4X,QAAQpJ,aAAaxO,KAAKsb,OAAQtb,KAAK4X,QAAQ6D,YAGzB,IAAzBzb,KAAKoa,SAASlZ,OAChB,GAAiC,MAA7BlB,KAAKga,QAAQ6C,aAAsB,CACrC,IAAI3B,EAAQlb,KAAK+K,OAAO1L,OAAOW,KAAKga,QAAQ6C,aAAa/R,UACzD9K,KAAK6a,YAAYK,QAGjBlb,KAAKyV,UAKX4F,EAAW1b,UAAU6N,KAAO,SAAUjM,EAAOsU,QACzB,IAAdA,IACFA,GAAY,GAGd,IAAIG,EAAKhW,KAAKoa,SAAS9M,KAAK/L,EAAOsU,GAC/BqF,EAAQlF,EAAG,GACXlQ,EAASkQ,EAAG,GAEZ8G,EAAW,CAAC,CAAC9c,KAAMuB,IAEvB,OAAI2Z,aAAiBG,EACZyB,EAAS3Y,OAAO+W,EAAM1N,KAAK1H,EAAQ+P,KACxB,MAATqF,GACT4B,EAAS1b,KAAK,CAAC8Z,EAAOpV,IAGjBgX,IAGTzB,EAAW1b,UAAU8Z,YAAc,SAAUyB,GAC3Clb,KAAKoa,SAAS3E,OAAOyF,IAGvBG,EAAW1b,UAAU6a,YAAc,SAAUlc,EAAMU,GACjD,IAAIyb,EAA8B,kBAATnc,EAAoB0B,KAAK+K,OAAO1L,OAAOf,EAAMU,GAASV,EAM/E,OAJImc,aAAuBY,GACzBrb,KAAK0c,aAAajC,GAGb9D,EAAOhX,UAAU6a,YAAYtc,KAAK8B,KAAMya,IAGjDY,EAAW1b,UAAU2Y,MAAQ,SAAU/W,EAAOwb,GAK5C,QAJc,IAAVA,IACFA,GAAQ,IAGLA,EAAO,CACV,GAAc,IAAVxb,EACF,OAAOvB,KAGT,GAAIuB,IAAUvB,KAAKkB,SACjB,OAAOlB,KAAKkD,KAIhB,IAAI8Z,EAAQhd,KAAKqZ,QAajB,OAXIrZ,KAAKwZ,QACPxZ,KAAKwZ,OAAOhL,aAAawO,EAAOhd,KAAKkD,WAAQ6G,GAG/C/J,KAAKoa,SAASrE,UAAUxU,EAAOvB,KAAKkB,UAAU,SAAUga,EAAOpV,EAAQmX,GACrE,IAAI3E,EAAQ4C,EAAM5C,MAAMxS,EAAQiX,GAEnB,MAATzE,GACF0E,EAAMnC,YAAYvC,MAGf0E,GAGT3B,EAAW1b,UAAUyc,WAAa,SAAUlB,GAG1C,IAFA,IAAI8B,EAAQhd,KAAKqZ,QAEI,MAAd6B,EAAMhY,MACX8Z,EAAMnC,YAAYK,EAAMhY,MAO1B,OAJIlD,KAAKwZ,QACPxZ,KAAKwZ,OAAOhL,aAAawO,EAAOhd,KAAKkD,WAAQ6G,GAGxCiT,GAGT3B,EAAW1b,UAAU0c,OAAS,WACxBrc,KAAKwZ,QACPxZ,KAAK0c,aAAa1c,KAAKwZ,OAAQxZ,KAAKkD,WAAQ6G,GAG9C/J,KAAKyV,UAGP4F,EAAW1b,UAAU6M,OAAS,SAAUP,EAAWqO,GACjD,IAAI1Q,EAAQ5J,KAERkd,EAAa,GACbC,EAAe,GACnBlR,EAAUjK,SAAQ,SAAUob,GACtBA,EAAS9T,SAAWM,EAAMgO,SAA6B,cAAlBwF,EAASvR,OAChDqR,EAAW9b,KAAKqR,MAAMyK,EAAYE,EAASF,YAC3CC,EAAa/b,KAAKqR,MAAM0K,EAAcC,EAASD,kBAGnDA,EAAanb,SAAQ,SAAUqL,GAI7B,KAAuB,MAAnBA,EAAKgK,YACQ,WAAjBhK,EAAKmL,SAAwBlK,SAAS+O,KAAKC,wBAAwBjQ,GAAQoK,KAAK8F,gCADhF,CAKA,IAAInM,EAAOxH,EAAMmB,OAAOuC,KAAKD,GAEjB,MAAR+D,IAI2B,MAA3BA,EAAKwG,QAAQP,YAAsBjG,EAAKwG,QAAQP,aAAezN,EAAMgO,SACvExG,EAAKmI,cAGT2D,EAAWpb,QAAO,SAAUuL,GAC1B,OAAOA,EAAKgK,aAAezN,EAAMgO,SAAWvK,IAASzD,EAAM0R,UAC1DkC,MAAK,SAAU/N,EAAG8G,GACnB,OAAI9G,IAAM8G,EACD,EAGL9G,EAAE6N,wBAAwB/G,GAAKkB,KAAKgG,4BAC/B,GAGD,KACPzb,SAAQ,SAAUqL,GACnB,IAAIkP,EAAU,KAEU,MAApBlP,EAAKoP,cACPF,EAAU3S,EAAMmB,OAAOuC,KAAKD,EAAKoP,cAGnC,IAAIrL,EAAO2J,EAAiB1N,EAAMzD,EAAMmB,QAEpCqG,EAAKlO,OAASqZ,GAAwB,MAAbnL,EAAKlO,OACb,MAAfkO,EAAKoI,QACPpI,EAAKoI,OAAOC,YAAY7P,GAG1BA,EAAM4E,aAAa4C,EAAMmL,QAAWxS,OAGxC/J,KAAKic,0BAGPZ,EAAW3R,QAAU,GACd2R,EA5Xe,CA6XtBpC,GAIEyE,EAAwD,WAC1D,IAAIpH,EAAiB,SAAuBjY,EAAGkY,GAW7C,OAVAD,EAAiB7X,OAAO+X,gBAAkB,CACxCC,UAAW,cACA7V,OAAS,SAAUvC,EAAGkY,GACjClY,EAAEoY,UAAYF,IACX,SAAUlY,EAAGkY,GAChB,IAAK,IAAI1W,KAAK0W,EACRA,EAAE3W,eAAeC,KAAIxB,EAAEwB,GAAK0W,EAAE1W,MAIhBxB,EAAGkY,IAG3B,OAAO,SAAUlY,EAAGkY,GAGlB,SAASG,IACP1W,KAAKwH,YAAcnJ,EAHrBiY,EAAejY,EAAGkY,GAMlBlY,EAAEsB,UAAkB,OAAN4W,EAAa9X,OAAOY,OAAOkX,IAAMG,EAAG/W,UAAY4W,EAAE5W,UAAW,IAAI+W,IAtBvB,GAwE3B/M,EA3CH,SAAUgN,GAGtC,SAASgH,IACP,OAAkB,OAAXhH,GAAmBA,EAAOlE,MAAMzS,KAAM8J,YAAc9J,KAoC7D,OAvCA0d,EAAkBC,EAAehH,GAMjCgH,EAAche,UAAUie,WAAa,WACnC,OAAqB,OAAd5d,KAAKkD,MAAiBlD,KAAKkD,KAAK8W,QAAQlP,WAAa9K,KAAKga,QAAQlP,UAG3E6S,EAAche,UAAU+Z,SAAW,SAAUnY,EAAOL,GAClDyV,EAAOhX,UAAU+Z,SAASxb,KAAK8B,KAAMuB,EAAOL,GAE5ClB,KAAKic,0BAGP0B,EAAche,UAAUia,SAAW,SAAUrY,EAAOL,EAAQ5C,EAAMU,GAChE2X,EAAOhX,UAAUia,SAAS1b,KAAK8B,KAAMuB,EAAOL,EAAQ5C,EAAMU,GAE1DgB,KAAKic,0BAGP0B,EAAche,UAAUsa,SAAW,SAAU1Y,EAAOvC,EAAOkb,GACzDvD,EAAOhX,UAAUsa,SAAS/b,KAAK8B,KAAMuB,EAAOvC,EAAOkb,GAEnDla,KAAKic,0BAGP0B,EAAche,UAAU0a,SAAW,SAAUuC,GAC3CjG,EAAOhX,UAAU0a,SAASnc,KAAK8B,KAAM4c,GAEjC5c,KAAKoa,SAASlZ,OAAS,GAAkB,MAAblB,KAAKkD,MAAgBlD,KAAK4d,eACxD5d,KAAKkD,KAAKwZ,aAAa1c,MACvBA,KAAKkD,KAAKuS,WAIdkI,EAAc7S,SAAW,YACzB6S,EAAc9F,MAAQ9C,EAAUoH,WACzBwB,EAxCqB,CAyC5BvC,GAIEyC,EAAmD,WACrD,IAAIvH,EAAiB,SAAuBjY,EAAGkY,GAW7C,OAVAD,EAAiB7X,OAAO+X,gBAAkB,CACxCC,UAAW,cACA7V,OAAS,SAAUvC,EAAGkY,GACjClY,EAAEoY,UAAYF,IACX,SAAUlY,EAAGkY,GAChB,IAAK,IAAI1W,KAAK0W,EACRA,EAAE3W,eAAeC,KAAIxB,EAAEwB,GAAK0W,EAAE1W,MAIhBxB,EAAGkY,IAG3B,OAAO,SAAUlY,EAAGkY,GAGlB,SAASG,IACP1W,KAAKwH,YAAcnJ,EAHrBiY,EAAejY,EAAGkY,GAMlBlY,EAAEsB,UAAkB,OAAN4W,EAAa9X,OAAOY,OAAOkX,IAAMG,EAAG/W,UAAY4W,EAAE5W,UAAW,IAAI+W,IAtB5B,GAqEtBrF,EAxCb,SAAUsF,GAG5B,SAASmH,IACP,OAAkB,OAAXnH,GAAmBA,EAAOlE,MAAMzS,KAAM8J,YAAc9J,KAiC7D,OApCA6d,EAAaC,EAAUnH,GAMvBmH,EAAS9e,MAAQ,SAAU+e,GACzB,OAAO,GAGTD,EAASne,UAAU4B,MAAQ,SAAU8L,EAAMvH,GACzC,OAAI9F,KAAK4X,UAAYvK,GAAQrN,KAAK4X,QAAQ0F,wBAAwBjQ,GAAQoK,KAAK8F,+BACtEzZ,KAAKC,IAAI+B,EAAQ,IAGlB,GAGVgY,EAASne,UAAUmd,SAAW,SAAUvb,EAAOyc,GAC7C,IACIlY,EADalF,MAAM+H,KAAK3I,KAAKwZ,OAAO5B,QAAQqD,YACxB9V,QAAQnF,KAAK4X,SAMrC,OAJIrW,EAAQ,IACVuE,GAAU,GAGL,CAAC9F,KAAKwZ,OAAO5B,QAAS9R,IAG/BgY,EAASne,UAAUX,MAAQ,WACzB,IAAIgX,EAEJ,OAAOA,EAAK,IAAOhW,KAAKga,QAAQlP,UAAY9K,KAAKga,QAAQhb,MAAMgB,KAAK4X,WAAY,EAAM5B,GAGxF8H,EAASjG,MAAQ9C,EAAUkJ,YACpBH,EArCW,CAsClB7E,GAmE+BiF,EA7DL,WAC1B,SAASC,EAAWxQ,EAAUiL,EAAS/O,QACrB,IAAZA,IACFA,EAAU,IAGZ7J,KAAK2N,SAAWA,EAChB3N,KAAK4Y,QAAUA,EACf,IAAIwF,EAAerJ,EAAU0D,KAAO1D,EAAUgF,UAC9C/Z,KAAK6X,MAAyB,MAAjBhO,EAAQgO,MACrBhO,EAAQgO,MAAQ9C,EAAUiD,MAAQoG,EAAerJ,EAAUgF,UAElC,MAArBlQ,EAAQwU,YACVre,KAAKqe,UAAYxU,EAAQwU,WA6C7B,OAzCAF,EAAWhd,KAAO,SAAUkM,GAC1B,OAAOzM,MAAM+H,KAAK0E,EAAKrM,YAAYiB,KAAI,SAAUqc,GAC/C,OAAOA,EAAKhgB,SAIhB6f,EAAWxe,UAAU0K,IAAM,SAAUgD,EAAMrO,GACzC,QAAKgB,KAAKue,OAAOlR,EAAMrO,KAIvBqO,EAAKR,aAAa7M,KAAK4Y,QAAS5Z,IACzB,IAGTmf,EAAWxe,UAAU4e,OAAS,SAAUC,EAAOxf,GAC7C,OAAsB,MAAlBgB,KAAKqe,YAIY,kBAAVrf,EACFgB,KAAKqe,UAAUlZ,QAAQnG,EAAMyf,QAAQ,QAAS,MAAQ,EAEtDze,KAAKqe,UAAUlZ,QAAQnG,IAAU,IAI5Cmf,EAAWxe,UAAU8V,OAAS,SAAUpI,GACtCA,EAAKqR,gBAAgB1e,KAAK4Y,UAG5BuF,EAAWxe,UAAUX,MAAQ,SAAUqO,GACrC,IAAIrO,EAAQqO,EAAKgL,aAAarY,KAAK4Y,SAEnC,OAAI5Y,KAAKue,OAAOlR,EAAMrO,IAAUA,EACvBA,EAGF,IAGFmf,EA1DmB,GA+DxBQ,EAAoD,WACtD,IAAIrI,EAAiB,SAAuBjY,EAAGkY,GAW7C,OAVAD,EAAiB7X,OAAO+X,gBAAkB,CACxCC,UAAW,cACA7V,OAAS,SAAUvC,EAAGkY,GACjClY,EAAEoY,UAAYF,IACX,SAAUlY,EAAGkY,GAChB,IAAK,IAAI1W,KAAK0W,EACRA,EAAE3W,eAAeC,KAAIxB,EAAEwB,GAAK0W,EAAE1W,MAIhBxB,EAAGkY,IAG3B,OAAO,SAAUlY,EAAGkY,GAGlB,SAASG,IACP1W,KAAKwH,YAAcnJ,EAHrBiY,EAAejY,EAAGkY,GAMlBlY,EAAEsB,UAAkB,OAAN4W,EAAa9X,OAAOY,OAAOkX,IAAMG,EAAG/W,UAAY4W,EAAE5W,UAAW,IAAI+W,IAtB3B,GA4BxD,SAASkI,EAAYvR,EAAMwR,GAEzB,OADgBxR,EAAKgL,aAAa,UAAY,IAC7BC,MAAM,OAAOxW,QAAO,SAAUxD,GAC7C,OAAsC,IAA/BA,EAAK6G,QAAQ0Z,EAAS,QAIjC,IA4CiCC,EA5CX,SAAUnI,GAG9B,SAASoI,IACP,OAAkB,OAAXpI,GAAmBA,EAAOlE,MAAMzS,KAAM8J,YAAc9J,KAqC7D,OAxCA2e,EAAcI,EAAiBpI,GAM/BoI,EAAgB5d,KAAO,SAAUkM,GAC/B,OAAQA,EAAKgL,aAAa,UAAY,IAAIC,MAAM,OAAOrW,KAAI,SAAU3D,GACnE,OAAOA,EAAKga,MAAM,KAAK5V,MAAM,GAAI,GAAG8B,KAAK,SAI7Cua,EAAgBpf,UAAU0K,IAAM,SAAUgD,EAAMrO,GAC9C,QAAKgB,KAAKue,OAAOlR,EAAMrO,KAIvBgB,KAAKyV,OAAOpI,GACZA,EAAKjD,UAAUC,IAAIrK,KAAK4Y,QAAU,IAAM5Z,IACjC,IAGT+f,EAAgBpf,UAAU8V,OAAS,SAAUpI,GAC7BuR,EAAYvR,EAAMrN,KAAK4Y,SAC7B5W,SAAQ,SAAU1D,GACxB+O,EAAKjD,UAAUqL,OAAOnX,MAGM,IAA1B+O,EAAKjD,UAAUlJ,QACjBmM,EAAKqR,gBAAgB,UAIzBK,EAAgBpf,UAAUX,MAAQ,SAAUqO,GAC1C,IACIrO,GADS4f,EAAYvR,EAAMrN,KAAK4Y,SAAS,IAAM,IAChClW,MAAM1C,KAAK4Y,QAAQ1X,OAAS,GAE/C,OAAOlB,KAAKue,OAAOlR,EAAMrO,GAASA,EAAQ,IAGrC+f,EAzCa,CA0CpBb,GAIEc,EAAoD,WACtD,IAAI1I,EAAiB,SAAuBjY,EAAGkY,GAW7C,OAVAD,EAAiB7X,OAAO+X,gBAAkB,CACxCC,UAAW,cACA7V,OAAS,SAAUvC,EAAGkY,GACjClY,EAAEoY,UAAYF,IACX,SAAUlY,EAAGkY,GAChB,IAAK,IAAI1W,KAAK0W,EACRA,EAAE3W,eAAeC,KAAIxB,EAAEwB,GAAK0W,EAAE1W,MAIhBxB,EAAGkY,IAG3B,OAAO,SAAUlY,EAAGkY,GAGlB,SAASG,IACP1W,KAAKwH,YAAcnJ,EAHrBiY,EAAejY,EAAGkY,GAMlBlY,EAAEsB,UAAkB,OAAN4W,EAAa9X,OAAOY,OAAOkX,IAAMG,EAAG/W,UAAY4W,EAAE5W,UAAW,IAAI+W,IAtB3B,GA4BxD,SAASuI,EAAS3gB,GAChB,IAAI4gB,EAAQ5gB,EAAKga,MAAM,KACnBpU,EAAOgb,EAAMxc,MAAM,GAAGT,KAAI,SAAUkd,GACtC,OAAOA,EAAK,GAAGtG,cAAgBsG,EAAKzc,MAAM,MACzC8B,KAAK,IACR,OAAO0a,EAAM,GAAKhb,EAGpB,IA0CiCkb,EA1CX,SAAUzI,GAG9B,SAAS0I,IACP,OAAkB,OAAX1I,GAAmBA,EAAOlE,MAAMzS,KAAM8J,YAAc9J,KAmC7D,OAtCAgf,EAAcK,EAAiB1I,GAM/B0I,EAAgBle,KAAO,SAAUkM,GAC/B,OAAQA,EAAKgL,aAAa,UAAY,IAAIC,MAAM,KAAKrW,KAAI,SAAUjD,GAEjE,OADUA,EAAMsZ,MAAM,KACX,GAAGnO,WAIlBkV,EAAgB1f,UAAU0K,IAAM,SAAUgD,EAAMrO,GAC9C,QAAKgB,KAAKue,OAAOlR,EAAMrO,KAKvBqO,EAAK+R,MAAMH,EAASjf,KAAK4Y,UAAY5Z,GAC9B,IAGTqgB,EAAgB1f,UAAU8V,OAAS,SAAUpI,GAE3CA,EAAK+R,MAAMH,EAASjf,KAAK4Y,UAAY,GAEhCvL,EAAKgL,aAAa,UACrBhL,EAAKqR,gBAAgB,UAIzBW,EAAgB1f,UAAUX,MAAQ,SAAUqO,GAE1C,IAAIrO,EAAQqO,EAAK+R,MAAMH,EAASjf,KAAK4Y,UACrC,OAAO5Y,KAAKue,OAAOlR,EAAMrO,GAASA,EAAQ,IAGrCqgB,EAvCa,CAwCpBnB,GAuF+BoB,EA7EL,WAC1B,SAASC,EAAgB3H,GACvB5X,KAAKgB,WAAa,GAClBhB,KAAK4X,QAAUA,EACf5X,KAAKub,QAsEP,OAnEAgE,EAAgB5f,UAAU6f,UAAY,SAAUA,EAAWxgB,GAErDA,EACEwgB,EAAUnV,IAAIrK,KAAK4X,QAAS5Y,KACO,MAAjCwgB,EAAUxgB,MAAMgB,KAAK4X,SACvB5X,KAAKgB,WAAWwe,EAAU7R,UAAY6R,SAE/Bxf,KAAKgB,WAAWwe,EAAU7R,YAIrC6R,EAAU/J,OAAOzV,KAAK4X,gBACf5X,KAAKgB,WAAWwe,EAAU7R,YAIrC4R,EAAgB5f,UAAU4b,MAAQ,WAChC,IAAI3R,EAAQ5J,KAEZA,KAAKgB,WAAa,GAClB,IAAIoQ,EAAOxG,EAAS0C,KAAKtN,KAAK4X,SAE9B,GAAY,MAARxG,EAAJ,CAIA,IAAIpQ,EAAakd,EAAW/c,KAAKnB,KAAK4X,SAClCb,EAAU+H,EAAiB3d,KAAKnB,KAAK4X,SACrC6H,EAASL,EAAMje,KAAKnB,KAAK4X,SAC7B5W,EAAWmD,OAAO4S,GAAS5S,OAAOsb,GAAQzd,SAAQ,SAAU1D,GAC1D,IAAIohB,EAAOtO,EAAKrG,OAAOF,MAAMvM,EAAMyW,EAAUgF,WAEzC2F,aAAgBxB,IAClBtU,EAAM5I,WAAW0e,EAAK/R,UAAY+R,QAKxCH,EAAgB5f,UAAUggB,KAAO,SAAUrW,GACzC,IAAIM,EAAQ5J,KAEZvB,OAAO0C,KAAKnB,KAAKgB,YAAYgB,SAAQ,SAAU1C,GAC7C,IAAIN,EAAQ4K,EAAM5I,WAAW1B,GAAKN,MAAM4K,EAAMgO,SAE9CtO,EAAOsG,OAAOtQ,EAAKN,OAIvBugB,EAAgB5f,UAAUigB,KAAO,SAAUtW,GACzC,IAAIM,EAAQ5J,KAEZA,KAAK2f,KAAKrW,GACV7K,OAAO0C,KAAKnB,KAAKgB,YAAYgB,SAAQ,SAAU1C,GAC7CsK,EAAM5I,WAAW1B,GAAKmW,OAAO7L,EAAMgO,YAErC5X,KAAKgB,WAAa,IAGpBue,EAAgB5f,UAAUkgB,OAAS,WACjC,IAAIjW,EAAQ5J,KAEZ,OAAOvB,OAAO0C,KAAKnB,KAAKgB,YAAYsB,QAAO,SAAUtB,EAAY1C,GAE/D,OADA0C,EAAW1C,GAAQsL,EAAM5I,WAAW1C,GAAMU,MAAM4K,EAAMgO,SAC/C5W,IACN,KAGEue,EA1EmB,GA+ExBO,EAAqD,WACvD,IAAIxJ,EAAiB,SAAuBjY,EAAGkY,GAW7C,OAVAD,EAAiB7X,OAAO+X,gBAAkB,CACxCC,UAAW,cACA7V,OAAS,SAAUvC,EAAGkY,GACjClY,EAAEoY,UAAYF,IACX,SAAUlY,EAAGkY,GAChB,IAAK,IAAI1W,KAAK0W,EACRA,EAAE3W,eAAeC,KAAIxB,EAAEwB,GAAK0W,EAAE1W,MAIhBxB,EAAGkY,IAG3B,OAAO,SAAUlY,EAAGkY,GAGlB,SAASG,IACP1W,KAAKwH,YAAcnJ,EAHrBiY,EAAejY,EAAGkY,GAMlBlY,EAAEsB,UAAkB,OAAN4W,EAAa9X,OAAOY,OAAOkX,IAAMG,EAAG/W,UAAY4W,EAAE5W,UAAW,IAAI+W,IAtB1B,GA8KxByB,EA9HT,SAAUxB,GAGhC,SAASoJ,EAAWhV,EAAQ6M,GAC1B,IAAIhO,EAAQ+M,EAAOzY,KAAK8B,KAAM+K,EAAQ6M,IAAY5X,KAGlD,OADA4J,EAAM5I,WAAa,IAAIse,EAAM1V,EAAMgO,SAC5BhO,EAoHT,OA1HAkW,EAAeC,EAAYpJ,GAS3BoJ,EAAW/P,QAAU,SAAU4H,EAAS7M,GACtC,IAAIwM,EAAQxM,EAAOF,MAAMkV,EAAWjV,UAEpC,GAAa,MAATyM,GAAiBK,EAAQY,UAAYjB,EAAMiB,QAExC,MAA4B,kBAAjBxY,KAAKwY,UAEZ5X,MAAMC,QAAQb,KAAKwY,SACrBZ,EAAQY,QAAQwH,mBADlB,IAOTD,EAAWpgB,UAAUiQ,OAAS,SAAUtR,EAAMU,GAC5C,IAAI4K,EAAQ5J,KAEZ,GAAI1B,IAAS0B,KAAKga,QAAQlP,UAAa9L,EAShC,CACL,IAAI4Q,EAAS5P,KAAK+K,OAAOF,MAAMvM,EAAMyW,EAAUmD,QAE/C,GAAc,MAAVtI,EACF,OAGEA,aAAkBsO,EACpBle,KAAKgB,WAAWwe,UAAU5P,EAAQ5Q,IACzBA,GAAUV,IAAS0B,KAAKga,QAAQlP,UAAY9K,KAAKgQ,UAAU1R,KAAUU,GAC9EgB,KAAKwa,YAAYlc,EAAMU,QAlBzBgB,KAAKoa,SAASpY,SAAQ,SAAUkZ,GACxBA,aAAiB6E,IACrB7E,EAAQA,EAAMpB,KAAKiG,EAAWjV,UAAU,IAG1ClB,EAAM5I,WAAW2e,KAAKzE,MAExBlb,KAAKqc,UAgBT0D,EAAWpgB,UAAUqQ,QAAU,WAC7B,IAAIA,EAAUhQ,KAAKgB,WAAW6e,SAC1BjQ,EAAS5P,KAAKga,QAAQhK,QAAQhQ,KAAK4X,QAAS5X,KAAK+K,QAMrD,OAJc,MAAV6E,IACFI,EAAQhQ,KAAKga,QAAQlP,UAAY8E,GAG5BI,GAGT+P,EAAWpgB,UAAUia,SAAW,SAAUrY,EAAOL,EAAQ5C,EAAMU,GACjC,MAAxBgB,KAAKgQ,UAAU1R,IAAiB0B,KAAK+K,OAAOF,MAAMvM,EAAMyW,EAAUgF,WACzD/Z,KAAK2Z,QAAQpY,EAAOL,GAC1B0O,OAAOtR,EAAMU,GAElB2X,EAAOhX,UAAUia,SAAS1b,KAAK8B,KAAMuB,EAAOL,EAAQ5C,EAAMU,IAI9D+gB,EAAWpgB,UAAU0a,SAAW,SAAUuC,GACxCjG,EAAOhX,UAAU0a,SAASnc,KAAK8B,KAAM4c,GAErC,IAAI5M,EAAUhQ,KAAKgQ,UAEnB,GAAoC,IAAhCvR,OAAO0C,KAAK6O,GAAS9O,OACvB,OAAOlB,KAAKqc,SAGd,IAAInZ,EAAOlD,KAAKkD,KAEZA,aAAgB6c,GAAc7c,EAAKwS,OAAS1V,MAlGpD,SAAiBigB,EAAMC,GACrB,GAAIzhB,OAAO0C,KAAK8e,GAAM/e,SAAWzC,OAAO0C,KAAK+e,GAAMhf,OACjD,OAAO,EAIT,IAAK,IAAIif,KAAQF,EAEf,GAAIA,EAAKE,KAAUD,EAAKC,GACtB,OAAO,EAIX,OAAO,EAqFmDC,CAAQpQ,EAAS9M,EAAK8M,aAC5E9M,EAAKwZ,aAAa1c,MAClBkD,EAAKuS,WAITsK,EAAWpgB,UAAU6a,YAAc,SAAUlc,EAAMU,GACjD,IAAIyb,EAAc9D,EAAOhX,UAAU6a,YAAYtc,KAAK8B,KAAM1B,EAAMU,GAGhE,OADAgB,KAAKgB,WAAW2e,KAAKlF,GACdA,GAGTsF,EAAWpgB,UAAU6M,OAAS,SAAUP,EAAW2Q,GACjD,IAAIhT,EAAQ5J,KAEZ2W,EAAOhX,UAAU6M,OAAOtO,KAAK8B,KAAMiM,EAAW2Q,GAEvB3Q,EAAUsM,MAAK,SAAU6E,GAC9C,OAAOA,EAAS9T,SAAWM,EAAMgO,SAA6B,eAAlBwF,EAASvR,SAIrD7L,KAAKgB,WAAWua,SAIpBwE,EAAWpgB,UAAUma,KAAO,SAAUxb,EAAMU,GAC1C,IAAI4b,EAAUjE,EAAOhX,UAAUma,KAAK5b,KAAK8B,KAAM1B,EAAMU,GAMrD,OAJI4b,aAAmBmF,GACrB/f,KAAKgB,WAAW4e,KAAKhF,GAGhBA,GAGTmF,EAAW7D,gBAAkB,CAAC6D,EAAY1O,GAC1C0O,EAAWjV,SAAW,SACtBiV,EAAWlI,MAAQ9C,EAAUkJ,YAC7B8B,EAAWvH,QAAU,OACduH,EA3He,CA4HtB3E,GAIEiF,EAAoD,WACtD,IAAI/J,EAAiB,SAAuBjY,EAAGkY,GAW7C,OAVAD,EAAiB7X,OAAO+X,gBAAkB,CACxCC,UAAW,cACA7V,OAAS,SAAUvC,EAAGkY,GACjClY,EAAEoY,UAAYF,IACX,SAAUlY,EAAGkY,GAChB,IAAK,IAAI1W,KAAK0W,EACRA,EAAE3W,eAAeC,KAAIxB,EAAEwB,GAAK0W,EAAE1W,MAIhBxB,EAAGkY,IAG3B,OAAO,SAAUlY,EAAGkY,GAGlB,SAASG,IACP1W,KAAKwH,YAAcnJ,EAHrBiY,EAAejY,EAAGkY,GAMlBlY,EAAEsB,UAAkB,OAAN4W,EAAa9X,OAAOY,OAAOkX,IAAMG,EAAG/W,UAAY4W,EAAE5W,UAAW,IAAI+W,IAtB3B,GAoIvBuB,EAnGX,SAAUtB,GAG9B,SAAS2J,EAAUvV,EAAQ6M,GACzB,IAAIhO,EAAQ+M,EAAOzY,KAAK8B,KAAM+K,EAAQ6M,IAAY5X,KAGlD,OADA4J,EAAM5I,WAAa,IAAIse,EAAM1V,EAAMgO,SAC5BhO,EAyFT,OA/FAyW,EAAcC,EAAW3J,GASzB2J,EAAUtQ,QAAU,SAAU4H,EAAS7M,GACrC,IAAIwM,EAAQxM,EAAOF,MAAMyV,EAAUxV,UAEnC,GAAa,MAATyM,GAAiBK,EAAQY,UAAYjB,EAAMiB,QAExC,MAA4B,kBAAjBxY,KAAKwY,UAEZ5X,MAAMC,QAAQb,KAAKwY,SACrBZ,EAAQY,QAAQwH,mBADlB,IAKTM,EAAU3gB,UAAUiQ,OAAS,SAAUtR,EAAMU,GAC3C,IAAI4Q,EAAS5P,KAAK+K,OAAOF,MAAMvM,EAAMyW,EAAUrF,OAEjC,MAAVE,IAEOA,aAAkBsO,EAC3Ble,KAAKgB,WAAWwe,UAAU5P,EAAQ5Q,GACzBV,IAAS0B,KAAKga,QAAQlP,UAAa9L,GAEnCA,GAAUV,IAAS0B,KAAKga,QAAQlP,UAAY9K,KAAKgQ,UAAU1R,KAAUU,GAC9EgB,KAAKwa,YAAYlc,EAAMU,GAFvBgB,KAAKwa,YAAY8F,EAAUxV,YAM/BwV,EAAU3gB,UAAUqQ,QAAU,WAC5B,IAAIA,EAAUhQ,KAAKgB,WAAW6e,SAC1BjQ,EAAS5P,KAAKga,QAAQhK,QAAQhQ,KAAK4X,QAAS5X,KAAK+K,QAMrD,OAJc,MAAV6E,IACFI,EAAQhQ,KAAKga,QAAQlP,UAAY8E,GAG5BI,GAGTsQ,EAAU3gB,UAAUia,SAAW,SAAUrY,EAAOL,EAAQ5C,EAAMU,GACZ,MAA5CgB,KAAK+K,OAAOF,MAAMvM,EAAMyW,EAAUrF,OACpC1P,KAAK4P,OAAOtR,EAAMU,GAElB2X,EAAOhX,UAAUia,SAAS1b,KAAK8B,KAAMuB,EAAOL,EAAQ5C,EAAMU,IAI9DshB,EAAU3gB,UAAUsa,SAAW,SAAU1Y,EAAOvC,EAAOkb,GACrD,GAAW,MAAPA,GAA6D,MAA9Cla,KAAK+K,OAAOF,MAAM7L,EAAO+V,EAAUmD,QAEpDvB,EAAOhX,UAAUsa,SAAS/b,KAAK8B,KAAMuB,EAAOvC,EAAOkb,OAC9C,CACL,IAAI8C,EAAQhd,KAAKsY,MAAM/W,GAEvB,GAAa,MAATyb,EAIF,MAAM,IAAIzY,MAAM,8CAHhB,IAAI6M,EAAOpR,KAAK+K,OAAO1L,OAAOL,EAAOkb,GACrC8C,EAAMxD,OAAOhL,aAAa4C,EAAM4L,KAOtCsD,EAAU3gB,UAAU6a,YAAc,SAAUlc,EAAMU,GAChD,IAAIyb,EAAc9D,EAAOhX,UAAU6a,YAAYtc,KAAK8B,KAAM1B,EAAMU,GAGhE,OADAgB,KAAKgB,WAAW2e,KAAKlF,GACdA,GAGT6F,EAAU3gB,UAAU6M,OAAS,SAAUP,EAAW2Q,GAChD,IAAIhT,EAAQ5J,KAEZ2W,EAAOhX,UAAU6M,OAAOtO,KAAK8B,KAAMiM,EAAW2Q,GAEvB3Q,EAAUsM,MAAK,SAAU6E,GAC9C,OAAOA,EAAS9T,SAAWM,EAAMgO,SAA6B,eAAlBwF,EAASvR,SAIrD7L,KAAKgB,WAAWua,SAIpB+E,EAAUxV,SAAW,QACrBwV,EAAUzI,MAAQ9C,EAAUoH,WAC5BmE,EAAU9H,QAAU,IACpB8H,EAAUpE,gBAAkB,CAAC/D,EAAQmI,EAAWjP,GACzCiP,EAhGa,CAiGpBlF,GAIEmF,EAAoD,WACtD,IAAIjK,EAAiB,SAAuBjY,EAAGkY,GAW7C,OAVAD,EAAiB7X,OAAO+X,gBAAkB,CACxCC,UAAW,cACA7V,OAAS,SAAUvC,EAAGkY,GACjClY,EAAEoY,UAAYF,IACX,SAAUlY,EAAGkY,GAChB,IAAK,IAAI1W,KAAK0W,EACRA,EAAE3W,eAAeC,KAAIxB,EAAEwB,GAAK0W,EAAE1W,MAIhBxB,EAAGkY,IAG3B,OAAO,SAAUlY,EAAGkY,GAGlB,SAASG,IACP1W,KAAKwH,YAAcnJ,EAHrBiY,EAAejY,EAAGkY,GAMlBlY,EAAEsB,UAAkB,OAAN4W,EAAa9X,OAAOY,OAAOkX,IAAMG,EAAG/W,UAAY4W,EAAE5W,UAAW,IAAI+W,IAtB3B,GA6DvB8J,EAjCjB,SAAU7J,GAGxB,SAAS8J,IACP,OAAkB,OAAX9J,GAAmBA,EAAOlE,MAAMzS,KAAM8J,YAAc9J,KA0B7D,OA7BAugB,EAAcE,EAAW9J,GAMzB8J,EAAUzQ,QAAU,SAAU+N,EAAU2C,KAIxCD,EAAU9gB,UAAUiQ,OAAS,SAAUtR,EAAMU,GAI3C2X,EAAOhX,UAAUia,SAAS1b,KAAK8B,KAAM,EAAGA,KAAKkB,SAAU5C,EAAMU,IAG/DyhB,EAAU9gB,UAAUia,SAAW,SAAUrY,EAAOL,EAAQ5C,EAAMU,GAC9C,IAAVuC,GAAeL,IAAWlB,KAAKkB,SACjClB,KAAK4P,OAAOtR,EAAMU,GAElB2X,EAAOhX,UAAUia,SAAS1b,KAAK8B,KAAMuB,EAAOL,EAAQ5C,EAAMU,IAI9DyhB,EAAU9gB,UAAUqQ,QAAU,WAC5B,OAAOhQ,KAAKga,QAAQhK,QAAQhQ,KAAK4X,QAAS5X,KAAK+K,SAG1C0V,EA9BO,CA+BdpP,GAIEsP,EAAqD,WACvD,IAAIrK,EAAiB,SAAuBjY,EAAGkY,GAW7C,OAVAD,EAAiB7X,OAAO+X,gBAAkB,CACxCC,UAAW,cACA7V,OAAS,SAAUvC,EAAGkY,GACjClY,EAAEoY,UAAYF,IACX,SAAUlY,EAAGkY,GAChB,IAAK,IAAI1W,KAAK0W,EACRA,EAAE3W,eAAeC,KAAIxB,EAAEwB,GAAK0W,EAAE1W,MAIhBxB,EAAGkY,IAG3B,OAAO,SAAUlY,EAAGkY,GAGlB,SAASG,IACP1W,KAAKwH,YAAcnJ,EAHrBiY,EAAejY,EAAGkY,GAMlBlY,EAAEsB,UAAkB,OAAN4W,EAAa9X,OAAOY,OAAOkX,IAAMG,EAAG/W,UAAY4W,EAAE5W,UAAW,IAAI+W,IAtB1B,GA+BrDkK,EAAkB,CACpB5f,YAAY,EACZ6f,eAAe,EACfC,uBAAuB,EACvBC,WAAW,EACXC,SAAS,GAqPsBC,EAjPT,SAAUtK,GAGhC,SAAShM,EAAWC,EAAUyC,GAC5B,IAAIzD,EACJ+M,EAAOzY,KAAK8B,KAAM,KAAMqN,IAASrN,KAejC,OAbA4J,EAAMgB,SAAWA,EACjBhB,EAAMmB,OAASnB,EAEfA,EAAM2R,QAEN3R,EAAMsX,SAAW,IAAIC,kBAAiB,SAAUlV,GAC9CrC,EAAM4C,OAAOP,MAGfrC,EAAMsX,SAASE,QAAQxX,EAAMgO,QAASgJ,GAEtChX,EAAMwP,SAECxP,EA0NT,OA7OA+W,EAAehW,EAAYgM,GAsB3BhM,EAAWhL,UAAUN,OAAS,SAAUiY,EAAOtY,GAC7C,OAAOgB,KAAK4K,SAASvL,OAAOW,KAAMsX,EAAOtY,IAG3C2L,EAAWhL,UAAU2N,KAAO,SAAUD,EAAM6J,GAK1C,YAJe,IAAXA,IACFA,GAAS,GAGJlX,KAAK4K,SAAS0C,KAAKD,EAAM6J,IAGlCvM,EAAWhL,UAAUkL,MAAQ,SAAUA,EAAOgN,GAK5C,YAJc,IAAVA,IACFA,EAAQ9C,EAAU+C,KAGb9X,KAAK4K,SAASC,MAAMA,EAAOgN,IAGpClN,EAAWhL,UAAUiO,SAAW,WAK9B,IAJA,IAAIoI,EAEA0C,EAAc,GAET3Q,EAAK,EAAGA,EAAK+B,UAAU5I,OAAQ6G,IACtC2Q,EAAY3Q,GAAM+B,UAAU/B,GAG9B,OAAQiO,EAAKhW,KAAK4K,UAAUgD,SAAS6E,MAAMuD,EAAI0C,IAGjD/N,EAAWhL,UAAU4b,MAAQ,WACR,MAAfvb,KAAK+K,QAIT4L,EAAOhX,UAAU4b,MAAMrd,KAAK8B,OAG9B2K,EAAWhL,UAAU4Z,OAAS,WAC5B5C,EAAOhX,UAAU4Z,OAAOrb,KAAK8B,MAE7BA,KAAKkhB,SAASG,cAGhB1W,EAAWhL,UAAU+Z,SAAW,SAAUnY,EAAOL,GAC/ClB,KAAKwM,SAES,IAAVjL,GAAeL,IAAWlB,KAAKkB,SACjClB,KAAKoa,SAASpY,SAAQ,SAAUkZ,GAC9BA,EAAMzF,YAGRkB,EAAOhX,UAAU+Z,SAASxb,KAAK8B,KAAMuB,EAAOL,IAIhDyJ,EAAWhL,UAAUia,SAAW,SAAUrY,EAAOL,EAAQ5C,EAAMU,GAC7DgB,KAAKwM,SAELmK,EAAOhX,UAAUia,SAAS1b,KAAK8B,KAAMuB,EAAOL,EAAQ5C,EAAMU,IAG5D2L,EAAWhL,UAAUsa,SAAW,SAAU1Y,EAAOvC,EAAOkb,GACtDla,KAAKwM,SAELmK,EAAOhX,UAAUsa,SAAS/b,KAAK8B,KAAMuB,EAAOvC,EAAOkb,IAGrDvP,EAAWhL,UAAU0a,SAAW,SAAUpO,EAAW2Q,GACnD,IAAIhT,EAAQ5J,UAEM,IAAdiM,IACFA,EAAY,SAGE,IAAZ2Q,IACFA,EAAU,IAGZjG,EAAOhX,UAAU0a,SAASnc,KAAK8B,KAAM4c,GAOrC,IALA,IAAI0E,EAAe1E,EAAQ0E,cAAgB,IAAItI,QAE3CuI,EAAU3gB,MAAM+H,KAAK3I,KAAKkhB,SAASM,eAGhCD,EAAQrgB,OAAS,GACtB+K,EAAU7K,KAAKmgB,EAAQ1f,OAyCzB,IAtCA,IAAI4f,EAAO,SAASA,EAAKrQ,EAAMsQ,QACV,IAAfA,IACFA,GAAa,GAGH,MAARtQ,GAAgBA,IAASxH,GAIE,MAA3BwH,EAAKwG,QAAQP,aAIZiK,EAAalK,IAAIhG,EAAKwG,UACzB0J,EAAahX,IAAI8G,EAAKwG,QAAS,IAG7B8J,GACFD,EAAKrQ,EAAKoI,UAIVa,EAAW,SAASA,EAASjJ,GAE1BkQ,EAAalK,IAAIhG,EAAKwG,WAIvBxG,aAAgBgK,GAClBhK,EAAKgJ,SAASpY,QAAQqY,GAGxBiH,EAAajgB,OAAO+P,EAAKwG,SACzBxG,EAAKiJ,SAASuC,KAGZ+E,EAAY1V,EAEPjO,EAAI,EAAG2jB,EAAUzgB,OAAS,EAAGlD,GAAK,EAAG,CAC5C,GAAIA,GA5JoB,IA6JtB,MAAM,IAAIuG,MAAM,mDAmClB,IAhCAod,EAAU3f,SAAQ,SAAUob,GAC1B,IAAIhM,EAAOxH,EAAM0D,KAAK8P,EAAS9T,QAAQ,GAE3B,MAAR8H,IAIAA,EAAKwG,UAAYwF,EAAS9T,SACN,cAAlB8T,EAASvR,MACX4V,EAAK7X,EAAM0D,KAAK8P,EAASwE,iBAAiB,IAC1ChhB,MAAM+H,KAAKyU,EAASF,YAAYlb,SAAQ,SAAUqL,GAChD,IAAI6N,EAAQtR,EAAM0D,KAAKD,GAAM,GAE7BoU,EAAKvG,GAAO,GAERA,aAAiBE,GACnBF,EAAMd,SAASpY,SAAQ,SAAU6f,GAC/BJ,EAAKI,GAAY,UAII,eAAlBzE,EAASvR,MAClB4V,EAAKrQ,EAAKsE,OAId+L,EAAKrQ,OAEPpR,KAAKoa,SAASpY,QAAQqY,GAEtBkH,GADAI,EAAY/gB,MAAM+H,KAAK3I,KAAKkhB,SAASM,gBACjB9e,QAEb6e,EAAQrgB,OAAS,GACtB+K,EAAU7K,KAAKmgB,EAAQ1f,SAK7B8I,EAAWhL,UAAU6M,OAAS,SAAUP,EAAW2Q,GACjD,IAAIhT,EAAQ5J,UAEI,IAAZ4c,IACFA,EAAU,IAGZ3Q,EAAYA,GAAajM,KAAKkhB,SAASM,cACvC,IAAIF,EAAe,IAAItI,QACvB/M,EAAUhK,KAAI,SAAUmb,GACtB,IAAIhM,EAAOxG,EAAS0C,KAAK8P,EAAS9T,QAAQ,GAE1C,OAAY,MAAR8H,EACK,KAGLkQ,EAAalK,IAAIhG,EAAKwG,UACxB0J,EAAa1iB,IAAIwS,EAAKwG,SAASxW,KAAKgc,GAC7B,OAEPkE,EAAahX,IAAI8G,EAAKwG,QAAS,CAACwF,IACzBhM,MAERpP,SAAQ,SAAUoP,GACP,MAARA,GAAgBA,IAASxH,GAAS0X,EAAalK,IAAIhG,EAAKwG,UAC1DxG,EAAK5E,OAAO8U,EAAa1iB,IAAIwS,EAAKwG,UAAY,GAAIgF,MAGtDA,EAAQ0E,aAAeA,EAEnBA,EAAalK,IAAIpX,KAAK4X,UACxBjB,EAAOhX,UAAU6M,OAAOtO,KAAK8B,KAAMshB,EAAa1iB,IAAIoB,KAAK4X,SAAUgF,GAGrE5c,KAAKqa,SAASpO,EAAW2Q,IAG3BjS,EAAWG,SAAW,SACtBH,EAAWkS,aAAe5E,EAC1BtN,EAAWuR,gBAAkB,CAACjE,EAAOtO,GACrCgB,EAAWkN,MAAQ9C,EAAUoH,WAC7BxR,EAAW6N,QAAU,MACd7N,EA9Oe,CA+OtByQ,GAIE0G,EAAmD,WACrD,IAAIxL,EAAiB,SAAuBjY,EAAGkY,GAW7C,OAVAD,EAAiB7X,OAAO+X,gBAAkB,CACxCC,UAAW,cACA7V,OAAS,SAAUvC,EAAGkY,GACjClY,EAAEoY,UAAYF,IACX,SAAUlY,EAAGkY,GAChB,IAAK,IAAI1W,KAAK0W,EACRA,EAAE3W,eAAeC,KAAIxB,EAAEwB,GAAK0W,EAAE1W,MAIhBxB,EAAGkY,IAG3B,OAAO,SAAUlY,EAAGkY,GAGlB,SAASG,IACP1W,KAAKwH,YAAcnJ,EAHrBiY,EAAejY,EAAGkY,GAMlBlY,EAAEsB,UAAkB,OAAN4W,EAAa9X,OAAOY,OAAOkX,IAAMG,EAAG/W,UAAY4W,EAAE5W,UAAW,IAAI+W,IAtB5B,GAqItBqL,EAxGb,SAAUpL,GAG5B,SAASqL,EAASjX,EAAQsC,GACxB,IAAIzD,EAAQ+M,EAAOzY,KAAK8B,KAAM+K,EAAQsC,IAASrN,KAG/C,OADA4J,EAAMmE,KAAOnE,EAAMoQ,QAAQhb,MAAM4K,EAAMgO,SAChChO,EA8FT,OApGAkY,EAAaE,EAAUrL,GASvBqL,EAAS3iB,OAAS,SAAUL,GAC1B,OAAOsP,SAAS2T,eAAejjB,IAGjCgjB,EAAShjB,MAAQ,SAAU4Y,GACzB,OAAOA,EAAQsK,MAGjBF,EAASriB,UAAU+Z,SAAW,SAAUnY,EAAOL,GAC7ClB,KAAK4X,QAAQsK,KAAOliB,KAAK+N,KAAO/N,KAAK+N,KAAKrL,MAAM,EAAGnB,GAASvB,KAAK+N,KAAKrL,MAAMnB,EAAQL,IAGtF8gB,EAASriB,UAAU4B,MAAQ,SAAU8L,EAAMvH,GACzC,OAAI9F,KAAK4X,UAAYvK,EACZvH,GAGD,GAGVkc,EAASriB,UAAUsa,SAAW,SAAU1Y,EAAOvC,EAAOkb,GACzC,MAAPA,GACFla,KAAK+N,KAAO/N,KAAK+N,KAAKrL,MAAM,EAAGnB,GAASvC,EAAQgB,KAAK+N,KAAKrL,MAAMnB,GAChEvB,KAAK4X,QAAQsK,KAAOliB,KAAK+N,MAEzB4I,EAAOhX,UAAUsa,SAAS/b,KAAK8B,KAAMuB,EAAOvC,EAAOkb,IAIvD8H,EAASriB,UAAUuB,OAAS,WAC1B,OAAOlB,KAAK+N,KAAK7M,QAGnB8gB,EAASriB,UAAU0a,SAAW,SAAUuC,GACtCjG,EAAOhX,UAAU0a,SAASnc,KAAK8B,KAAM4c,GAErC5c,KAAK+N,KAAO/N,KAAKga,QAAQhb,MAAMgB,KAAK4X,SAEX,IAArB5X,KAAK+N,KAAK7M,OACZlB,KAAKyV,SACIzV,KAAKkD,gBAAgB8e,GAAYhiB,KAAKkD,KAAKwS,OAAS1V,OAC7DA,KAAKia,SAASja,KAAKkB,SAAUlB,KAAKkD,KAAKlE,SACvCgB,KAAKkD,KAAKuS,WAIduM,EAASriB,UAAUmd,SAAW,SAAUvb,EAAOyc,GAK7C,YAJmB,IAAfA,IACFA,GAAa,GAGR,CAAChe,KAAK4X,QAASrW,IAGxBygB,EAASriB,UAAU2Y,MAAQ,SAAU/W,EAAOwb,GAK1C,QAJc,IAAVA,IACFA,GAAQ,IAGLA,EAAO,CACV,GAAc,IAAVxb,EACF,OAAOvB,KAGT,GAAIuB,IAAUvB,KAAKkB,SACjB,OAAOlB,KAAKkD,KAIhB,IAAI8Z,EAAQhd,KAAK+K,OAAO1L,OAAOW,KAAK4X,QAAQuK,UAAU5gB,IAGtD,OAFAvB,KAAKwZ,OAAOhL,aAAawO,EAAOhd,KAAKkD,WAAQ6G,GAC7C/J,KAAK+N,KAAO/N,KAAKga,QAAQhb,MAAMgB,KAAK4X,SAC7BoF,GAGTgF,EAASriB,UAAU6M,OAAS,SAAUP,EAAWqO,GAC/C,IAAI1Q,EAAQ5J,KAERiM,EAAUsM,MAAK,SAAU6E,GAC3B,MAAyB,kBAAlBA,EAASvR,MAA4BuR,EAAS9T,SAAWM,EAAMgO,aAEtE5X,KAAK+N,KAAO/N,KAAKga,QAAQhb,MAAMgB,KAAK4X,WAIxCoK,EAASriB,UAAUX,MAAQ,WACzB,OAAOgB,KAAK+N,MAGdiU,EAASlX,SAAW,OACpBkX,EAASnK,MAAQ9C,EAAUkJ,YACpB+D,EArGW,CAsGlB3Q,IAsBK,SAAStT,EAAQoI,EAAqBvI,GAE7C,aACqB,IAAIwkB,EAA6CxkB,EAAoB,IACjEykB,EAAkEzkB,EAAoB4B,EAAE4iB,GACxFE,EAAgD1kB,EAAoB,IACpE2kB,EAA0C3kB,EAAoB,IAC9D4kB,EAAuC5kB,EAAoB,IACpF,SAAS0J,EAAQC,GAAmV,OAAtOD,EAArD,oBAAXxI,QAAoD,kBAApBA,OAAOiE,SAAmC,SAAiBwE,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXzI,QAAyByI,EAAIC,cAAgB1I,QAAUyI,IAAQzI,OAAOa,UAAY,gBAAkB4H,IAAyBA,GAInX,SAAS8B,EAAkBC,EAAQC,GAAS,IAAK,IAAIvL,EAAI,EAAGA,EAAIuL,EAAMrI,OAAQlD,IAAK,CAAE,IAAIwL,EAAaD,EAAMvL,GAAIwL,EAAW7K,WAAa6K,EAAW7K,aAAc,EAAO6K,EAAW9B,cAAe,EAAU,UAAW8B,IAAYA,EAAW7B,UAAW,GAAMlJ,OAAOC,eAAe4K,EAAQE,EAAWlK,IAAKkK,IAI7S,SAASiZ,EAAKnZ,EAAQ5J,EAAUgjB,GAAuV,OAAtRD,EAA9B,qBAAZE,SAA2BA,QAAQ/jB,IAAc+jB,QAAQ/jB,IAAqB,SAAc0K,EAAQ5J,EAAUgjB,GAAY,IAAIrd,EAErL,SAAwB5F,EAAQC,GAAY,MAAQjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAA8D,QAAjDD,EAASmjB,EAAgBnjB,MAAuC,OAAOA,EAFOojB,CAAevZ,EAAQ5J,GAAW,GAAK2F,EAAL,CAAmB,IAAIyd,EAAOrkB,OAAOskB,yBAAyB1d,EAAM3F,GAAW,OAAIojB,EAAKlkB,IAAckkB,EAAKlkB,IAAIV,KAAKwkB,GAAoBI,EAAK9jB,SAAwBsK,EAAQ5J,EAAUgjB,GAAYpZ,GAMja,SAAS0Z,EAAgBxkB,EAAGqB,GAA+G,OAA1GmjB,EAAkBvkB,OAAO+X,gBAAkB,SAAyBhY,EAAGqB,GAAsB,OAAjBrB,EAAEiY,UAAY5W,EAAUrB,IAA6BA,EAAGqB,GAErK,SAASojB,EAAaC,GAAW,IAAIC,EAMrC,WAAuC,GAAuB,qBAAZR,UAA4BA,QAAQS,UAAW,OAAO,EAAO,GAAIT,QAAQS,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQ5jB,UAAU6jB,QAAQtlB,KAAKykB,QAAQS,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAOvI,GAAK,OAAO,GAN9PyI,GAA6B,OAAO,WAAkC,IAAsCC,EAAlCC,EAAQf,EAAgBM,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYhB,EAAgB5iB,MAAMwH,YAAakc,EAASf,QAAQS,UAAUO,EAAO7Z,UAAW8Z,QAAqBF,EAASC,EAAMlR,MAAMzS,KAAM8J,WAAc,OAAO+Z,EAA2B7jB,KAAM0jB,IAE5Z,SAASG,EAA2BC,EAAM5lB,GAAQ,OAAIA,GAA2B,WAAlBoJ,EAAQpJ,IAAsC,oBAATA,EAEpG,SAAgC4lB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,EAFbE,CAAuBF,GAAtC5lB,EAMnI,SAAS0kB,EAAgBpkB,GAAwJ,OAAnJokB,EAAkBnkB,OAAO+X,eAAiB/X,OAAOwlB,eAAiB,SAAyBzlB,GAAK,OAAOA,EAAEiY,WAAahY,OAAOwlB,eAAezlB,KAA8BA,GAMxM,IAAIiL,EAAQhL,OAAO+jB,EAAsD,EAA7D/jB,CAAgE,gBAGxEA,OAAO6jB,EAA+D,EAAtE7jB,IAFS,CAAC,kBAAmB,YAAa,UAAW,SAGhDuD,SAAQ,SAAUkiB,GACvB5V,SAAS6V,iBAAiBD,GAAW,WACnC,IAAK,IAAIE,EAAOta,UAAU5I,OAAQqT,EAAO,IAAI3T,MAAMwjB,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E9P,EAAK8P,GAAQva,UAAUua,GAGzBzjB,MAAM+H,KAAK2F,SAASgW,iBAAiB,kBAAkBtiB,SAAQ,SAAUqL,GACvE,IAGMkX,EAHFC,EAAQjC,EAAyD,EAAE3jB,IAAIyO,GAEvEmX,GAASA,EAAM9Z,UAGhB6Z,EAAiBC,EAAM9Z,SAAS+Z,UAAUhS,MAAM8R,EAAgBhQ,YAO3E,IAAImQ,EAAuB,SAAUC,IAzCrC,SAAmBC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/b,UAAU,sDAAyD8b,EAASjlB,UAAYlB,OAAOY,OAAOwlB,GAAcA,EAAWllB,UAAW,CAAE6H,YAAa,CAAExI,MAAO4lB,EAAUjd,UAAU,EAAMD,cAAc,KAAemd,GAAY7B,EAAgB4B,EAAUC,GA0CjXC,CAAUJ,EAASC,GAEnB,IAlDoBvb,EAAa6D,EAAYC,EAkDzCyJ,EAASsM,EAAayB,GAE1B,SAASA,IACP,IAAI9a,EASJ,OAlEJ,SAAyBT,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIN,UAAU,qCA2D5GI,CAAgBlJ,KAAM0kB,IAEtB9a,EAAQ+M,EAAOzY,KAAK8B,OACd+kB,UAAY,GAElBnb,EAAM8B,GAAG,QAASjC,EAAMO,OAEjBJ,EA8CT,OA5GoBR,EAiEPsb,GAjEoBzX,EAiEX,CAAC,CACrB3N,IAAK,OACLN,MAAO,WAGL,IAFA,IAAIgmB,EAAYC,EAEPC,EAAQpb,UAAU5I,OAAQqT,EAAO,IAAI3T,MAAMskB,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF5Q,EAAK4Q,GAASrb,UAAUqb,IAGzBH,EAAavb,EAAM2b,KAAKlnB,KAAKuU,MAAMuS,EAAY,CAACvb,GAAOtF,OAAOoQ,KAE9D0Q,EAAQxC,EAAKG,EAAgB8B,EAAQ/kB,WAAY,OAAQK,OAAO9B,KAAKuU,MAAMwS,EAAO,CAACjlB,MAAMmE,OAAOoQ,MAElG,CACDjV,IAAK,YACLN,MAAO,SAAmBqmB,GACxB,IAAK,IAAIC,EAAQxb,UAAU5I,OAAQqT,EAAO,IAAI3T,MAAM0kB,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACxGhR,EAAKgR,EAAQ,GAAKzb,UAAUyb,IAG7BvlB,KAAK+kB,UAAUM,EAAMxZ,OAAS,IAAI7J,SAAQ,SAAUwjB,GACnD,IAAInY,EAAOmY,EAAKnY,KACZoY,EAAUD,EAAKC,SAEfJ,EAAM/b,SAAW+D,GAAQA,EAAKmI,SAAS6P,EAAM/b,UAC/Cmc,EAAQhT,WAAM,EAAQ,CAAC4S,GAAOlhB,OAAOoQ,SAI1C,CACDjV,IAAK,YACLN,MAAO,SAAmBklB,EAAW7W,EAAMoY,GACpCzlB,KAAK+kB,UAAUb,KAClBlkB,KAAK+kB,UAAUb,GAAa,IAG9BlkB,KAAK+kB,UAAUb,GAAW9iB,KAAK,CAC7BiM,KAAMA,EACNoY,QAASA,SAvG6Dpc,EAAkBD,EAAYzJ,UAAWsN,GAAiBC,GAAa7D,EAAkBD,EAAa8D,GA4G3KwX,EA7DkB,CA8DzBrC,EAAmD5S,GAErDiV,EAAQ/Y,OAAS,CACfC,cAAe,gBACf8Z,qBAAsB,uBACtBC,kBAAmB,oBACnBC,oBAAqB,sBACrBC,gBAAiB,kBACjB9Z,cAAe,gBACf+Z,iBAAkB,mBAClBha,YAAa,eAEf4Y,EAAQtV,QAAU,CAChBC,IAAK,MACLU,OAAQ,SACRwD,KAAM,QAEqBpN,EAAuB,EAAKue,GAIlD,SAAS3mB,EAAQoI,EAAqBvI,GAE7C,aACqB,IAAImoB,EAAgDnoB,EAAoB,IACpEooB,EAAqEpoB,EAAoB4B,EAAEumB,GAC3FE,EAA8CroB,EAAoB,IAClEsoB,EAAmEtoB,EAAoB4B,EAAEymB,GACzFrf,EAA4ChJ,EAAoB,IAChEiJ,EAAiEjJ,EAAoB4B,EAAEoH,GACvFuf,EAA2CvoB,EAAoB,GAC/DwoB,EAAgExoB,EAAoB4B,EAAE2mB,GACtFE,EAAyCzoB,EAAoB,GAC7D0oB,EAA0C1oB,EAAoB,GAC9D2oB,EAA6C3oB,EAAoB,IACjE4oB,EAA4C5oB,EAAoB,GAChE6oB,EAA4C7oB,EAAoB,GAChE8oB,EAA2C9oB,EAAoB,GACxF,SAAS+oB,EAAS9e,GAAO,OAAOC,EAAgBD,IAEhD,SAA0B/E,GAAQ,GAAsB,qBAAXhE,QAAmD,MAAzBgE,EAAKhE,OAAOiE,WAA2C,MAAtBD,EAAK,cAAuB,OAAOlC,MAAM+H,KAAK7F,GAF9F8jB,CAAiB/e,IAAQgB,EAA4BhB,IAAQkB,IAIrH,SAAS8d,EAAQpnB,EAAQqnB,GAAkB,IAAI3lB,EAAO1C,OAAO0C,KAAK1B,GAAS,GAAIhB,OAAOsoB,sBAAuB,CAAE,IAAIC,EAAUvoB,OAAOsoB,sBAAsBtnB,GAAaqnB,IAAkBE,EAAUA,EAAQllB,QAAO,SAAUmlB,GAAO,OAAOxoB,OAAOskB,yBAAyBtjB,EAAQwnB,GAAKtoB,eAAkBwC,EAAKC,KAAKqR,MAAMtR,EAAM6lB,GAAY,OAAO7lB,EAElV,SAAS+lB,EAAc5d,GAAU,IAAK,IAAItL,EAAI,EAAGA,EAAI8L,UAAU5I,OAAQlD,IAAK,CAAE,IAAIgO,EAAyB,MAAhBlC,UAAU9L,GAAa8L,UAAU9L,GAAK,GAAQA,EAAI,EAAK6oB,EAAQpoB,OAAOuN,IAAS,GAAMhK,SAAQ,SAAU1C,GAAOmI,EAAgB6B,EAAQhK,EAAK0M,EAAO1M,OAAsBb,OAAO0oB,0BAA6B1oB,OAAO2oB,iBAAiB9d,EAAQ7K,OAAO0oB,0BAA0Bnb,IAAmB6a,EAAQpoB,OAAOuN,IAAShK,SAAQ,SAAU1C,GAAOb,OAAOC,eAAe4K,EAAQhK,EAAKb,OAAOskB,yBAAyB/W,EAAQ1M,OAAe,OAAOgK,EAE7gB,SAAS7B,EAAgBF,EAAKjI,EAAKN,GAAiK,OAApJM,KAAOiI,EAAO9I,OAAOC,eAAe6I,EAAKjI,EAAK,CAAEN,MAAOA,EAAOL,YAAY,EAAM+I,cAAc,EAAMC,UAAU,IAAkBJ,EAAIjI,GAAON,EAAgBuI,EAE3M,SAASD,EAAQC,GAAmV,OAAtOD,EAArD,oBAAXxI,QAAoD,kBAApBA,OAAOiE,SAAmC,SAAiBwE,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXzI,QAAyByI,EAAIC,cAAgB1I,QAAUyI,IAAQzI,OAAOa,UAAY,gBAAkB4H,IAAyBA,GAEnX,SAASK,EAAeC,EAAK7J,GAAK,OAAO8J,EAAgBD,IAQzD,SAA+BA,EAAK7J,GAAK,IAAI+J,EAAY,MAAPF,EAAc,KAAyB,qBAAX/I,QAA0B+I,EAAI/I,OAAOiE,WAAa8E,EAAI,cAAe,GAAU,MAANE,EAAJ,CAAwB,IAAkDC,EAAIC,EAAlDC,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAmB,IAAM,IAAKL,EAAKA,EAAG7J,KAAK2J,KAAQM,GAAMH,EAAKD,EAAG7E,QAAQmF,QAAoBH,EAAK9G,KAAK4G,EAAGhJ,QAAYhB,GAAKkK,EAAKhH,SAAWlD,GAA3DmK,GAAK,IAAoE,MAAOG,GAAOF,GAAK,EAAMH,EAAKK,EAAO,QAAU,IAAWH,GAAsB,MAAhBJ,EAAW,QAAWA,EAAW,SAAO,QAAU,GAAIK,EAAI,MAAMH,GAAQ,OAAOC,GARzbK,CAAsBV,EAAK7J,IAAM6K,EAA4BhB,EAAK7J,IAAM+K,IAEzI,SAASA,IAAqB,MAAM,IAAID,UAAU,6IAElD,SAASD,EAA4BrK,EAAGgK,GAAU,GAAKhK,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAOiK,EAAkBjK,EAAGgK,GAAS,IAAIhJ,EAAIf,OAAOkB,UAAU+I,SAASxK,KAAKM,GAAGkE,MAAM,GAAI,GAAiE,MAAnD,WAANlD,GAAkBhB,EAAEgJ,cAAahI,EAAIhB,EAAEgJ,YAAYlJ,MAAgB,QAANkB,GAAqB,QAANA,EAAoBoB,MAAM+H,KAAKnK,GAAc,cAANgB,GAAqB,2CAA2CoJ,KAAKpJ,GAAWiJ,EAAkBjK,EAAGgK,QAAzG,GAE7S,SAASC,EAAkBZ,EAAKmB,IAAkB,MAAPA,GAAeA,EAAMnB,EAAI3G,UAAQ8H,EAAMnB,EAAI3G,QAAQ,IAAK,IAAIlD,EAAI,EAAGiL,EAAO,IAAIrI,MAAMoI,GAAMhL,EAAIgL,EAAKhL,IAAOiL,EAAKjL,GAAK6J,EAAI7J,GAAM,OAAOiL,EAIhL,SAASnB,EAAgBD,GAAO,GAAIjH,MAAMC,QAAQgH,GAAM,OAAOA,EAI/D,SAASwB,EAAkBC,EAAQC,GAAS,IAAK,IAAIvL,EAAI,EAAGA,EAAIuL,EAAMrI,OAAQlD,IAAK,CAAE,IAAIwL,EAAaD,EAAMvL,GAAIwL,EAAW7K,WAAa6K,EAAW7K,aAAc,EAAO6K,EAAW9B,cAAe,EAAU,UAAW8B,IAAYA,EAAW7B,UAAW,GAAMlJ,OAAOC,eAAe4K,EAAQE,EAAWlK,IAAKkK,IAc7S,IAAI6d,EAAQ,WAERC,EAAsB,WACxB,SAASA,EAAOvc,IAnBlB,SAAyB5B,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIN,UAAU,qCAoB5GI,CAAgBlJ,KAAMsnB,GAEtBtnB,KAAK+K,OAASA,EACd/K,KAAK4D,MAAQ5D,KAAKunB,WAnBtB,IAAsBne,EAAa6D,EAAYC,EA6S7C,OA7SoB9D,EAsBPke,GAtBoBra,EAsBZ,CAAC,CACpB3N,IAAK,aACLN,MAAO,SAAoB4E,GACzB,IAAIgG,EAAQ5J,KAERwnB,GAAqB,EACzBxnB,KAAK+K,OAAOyB,SACZ,IAAIib,EAAeznB,KAAK+K,OAAO7J,SAC/BlB,KAAK+K,OAAO2c,aACZ,IAAIC,EAmcV,SAAwB/jB,GACtB,OAAOA,EAAMtB,QAAO,SAAUqlB,EAAiBtlB,GAC7C,GAAyB,kBAAdA,EAAGvB,OAAqB,CACjC,IAAIiN,EAAO1L,EAAGvB,OAAO2d,QAAQ,QAAS,MAAMA,QAAQ,MAAO,MAC3D,OAAOkJ,EAAgB7mB,OAAOiN,EAAM1L,EAAGrB,YAGzC,OAAO2mB,EAAgBvmB,KAAKiB,KAC3B,IAAI+jB,EAAiD3W,GA3c9BmY,CAAehkB,GA+DrC,OA9DA+jB,EAAgBrlB,QAAO,SAAUf,EAAOc,GACtC,IAAInB,EAASmB,EAAGf,QAAUe,EAAGhB,QAAUgB,EAAGvB,OAAOI,QAAU,EACvDF,EAAaqB,EAAGrB,YAAc,GAElC,GAAiB,MAAbqB,EAAGvB,OAAgB,CACrB,GAAyB,kBAAduB,EAAGvB,OAAqB,CACjC,IAAIiN,EAAO1L,EAAGvB,OAEViN,EAAK8Z,SAAS,OAASL,IACzBA,GAAqB,EACrBzZ,EAAOA,EAAKrL,MAAM,GAAI,KAGnBnB,GAASkmB,GAAgB7d,EAAMmB,OAAO6Q,WAAW4K,EAA8D,EAAGjlB,GAAO,MAAQwM,EAAK8Z,SAAS,QAClJL,GAAqB,GAGvB5d,EAAMmB,OAAOkP,SAAS1Y,EAAOwM,GAE7B,IACI+Z,EAAqBlgB,EADDgC,EAAMmB,OAAO7F,KAAK3D,GACiB,GACvD2D,EAAO4iB,EAAmB,GAC1BhiB,EAASgiB,EAAmB,GAE5B9X,EAAUnJ,IAAoD,GAAIpI,OAAO+nB,EAAiE,EAAxE/nB,CAA2EyG,IAEjJ,GAAIA,aAAgBshB,EAA2D,EAAG,CAChF,IAEInV,EADoBzJ,EADD1C,EAAK0W,WAAWyK,EAAiD,SAAGvgB,GAClC,GAC5B,GAE7BkK,EAAUnJ,IAAoDmJ,EAASvR,OAAO+nB,EAAiE,EAAxE/nB,CAA2E4S,IAGpJrQ,EAAamlB,EAAuD,aAAE/hB,KAAK4L,EAAShP,IAAe,QAC9F,GAA2B,WAAvBsG,EAAQjF,EAAGvB,QAAsB,CAC1C,IAAIxB,EAAMb,OAAO0C,KAAKkB,EAAGvB,QAAQ,GAEjC,GAAW,MAAPxB,EAAa,OAAOiC,EAExBqI,EAAMmB,OAAOkP,SAAS1Y,EAAOjC,EAAK+C,EAAGvB,OAAOxB,IAG9CmoB,GAAgBvmB,EAMlB,OAHAzC,OAAO0C,KAAKH,GAAYgB,SAAQ,SAAU1D,GACxCsL,EAAMmB,OAAO6O,SAASrY,EAAOL,EAAQ5C,EAAM0C,EAAW1C,OAEjDiD,EAAQL,IACd,GACHymB,EAAgBrlB,QAAO,SAAUf,EAAOc,GACtC,MAAyB,kBAAdA,EAAGhB,QACZuI,EAAMmB,OAAO2O,SAASnY,EAAOc,EAAGhB,QAEzBE,GAGFA,GAASc,EAAGf,QAAUe,EAAGvB,OAAOI,QAAU,KAChD,GACHlB,KAAK+K,OAAOgd,WACZ/nB,KAAK+K,OAAOsP,WACLra,KAAKwM,OAAOmb,KAEpB,CACDroB,IAAK,aACLN,MAAO,SAAoBuC,EAAOL,GAEhC,OADAlB,KAAK+K,OAAO2O,SAASnY,EAAOL,GACrBlB,KAAKwM,QAAO,IAAI4Z,EAAiD3W,GAAInO,OAAOC,GAAOF,OAAOH,MAElG,CACD5B,IAAK,aACLN,MAAO,SAAoBuC,EAAOL,GAChC,IAAIwN,EAAS1O,KAETgQ,EAAUlG,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAClF9J,KAAK+K,OAAOyB,SACZ/N,OAAO0C,KAAK6O,GAAShO,SAAQ,SAAU4N,GACrClB,EAAO3D,OAAOyG,MAAMjQ,EAAOuC,KAAKwP,IAAIpS,EAAQ,IAAIc,SAAQ,SAAUkD,GAChEA,EAAK0K,OAAOA,EAAQI,EAAQJ,UAGhC5P,KAAK+K,OAAOsP,WACZ,IAAIzW,GAAQ,IAAIwiB,EAAiD3W,GAAInO,OAAOC,GAAOD,OAAOJ,EAAQ8kB,IAAwDhW,IAC1J,OAAOhQ,KAAKwM,OAAO5I,KAEpB,CACDtE,IAAK,aACLN,MAAO,SAAoBuC,EAAOL,GAChC,IAAIiO,EAASnP,KAETgQ,EAAUlG,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAClFrL,OAAO0C,KAAK6O,GAAShO,SAAQ,SAAU4N,GACrCT,EAAOpE,OAAO6O,SAASrY,EAAOL,EAAQ0O,EAAQI,EAAQJ,OAExD,IAAIhM,GAAQ,IAAIwiB,EAAiD3W,GAAInO,OAAOC,GAAOD,OAAOJ,EAAQ8kB,IAAwDhW,IAC1J,OAAOhQ,KAAKwM,OAAO5I,KAEpB,CACDtE,IAAK,cACLN,MAAO,SAAqBuC,EAAOL,GACjC,OAAOlB,KAAK4D,MAAMlB,MAAMnB,EAAOA,EAAQL,KAExC,CACD5B,IAAK,WACLN,MAAO,WACL,OAAOgB,KAAK+K,OAAOyG,QAAQlP,QAAO,SAAUsB,EAAOsB,GACjD,OAAOtB,EAAMO,OAAOe,EAAKtB,WACxB,IAAIwiB,EAAiD3W,KAEzD,CACDnQ,IAAK,YACLN,MAAO,SAAmBuC,GACxB,IAAIL,EAAS4I,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,EAC7E0H,EAAQ,GACRwW,EAAS,GAEE,IAAX9mB,EACFlB,KAAK+K,OAAOyC,KAAKjM,GAAOS,SAAQ,SAAUwL,GACxC,IACI4D,EADQxJ,EAAe4F,EAAM,GAChB,GAEb4D,aAAgBoV,EAA2D,EAC7EhV,EAAMpQ,KAAKgQ,GACFA,aAAgBiV,EAAiD,UAC1E2B,EAAO5mB,KAAKgQ,OAIhBI,EAAQxR,KAAK+K,OAAOyG,MAAMjQ,EAAOL,GACjC8mB,EAAShoB,KAAK+K,OAAO+Q,YAAYuK,EAAiD,SAAG9kB,EAAOL,IAG9F,IAAI+mB,EAAO,CAACzW,EAAOwW,GAAQ/lB,KAAI,SAAUkV,GACvC,GAAqB,IAAjBA,EAAMjW,OAAc,MAAO,GAG/B,IAFA,IAAI8O,EAAUvR,OAAO+nB,EAAiE,EAAxE/nB,CAA2E0Y,EAAMjD,SAExFzV,OAAO0C,KAAK6O,GAAS9O,OAAS,GAAG,CACtC,IAAIkQ,EAAO+F,EAAMjD,QACjB,GAAY,MAAR9C,EAAc,OAAOpB,EACzBA,EAAUkY,EAAezpB,OAAO+nB,EAAiE,EAAxE/nB,CAA2E2S,GAAOpB,GAG7G,OAAOA,KAGLyE,EAAQ7M,EAAeqgB,EAAM,GAIjC,OAFAzW,EAAQiD,EAAM,GACduT,EAASvT,EAAM,GACRyS,EAAcA,EAAc,GAAI1V,GAAQwW,KAEhD,CACD1oB,IAAK,UACLN,MAAO,SAAiBuC,EAAOL,GAC7B,IACIinB,EAAqBvgB,EADA5H,KAAK+K,OAAO7F,KAAK3D,GACkB,GACxD2D,EAAOijB,EAAmB,GAC1BC,EAAaD,EAAmB,GAEpC,OAAIjjB,EAAKhE,UAAYknB,EAAalnB,EACzBmnB,EAAYnjB,EAAMkjB,EAAYlnB,GAAQ,GAGxCmnB,EAAYroB,KAAK+K,OAAQxJ,EAAOL,GAAQ,KAEhD,CACD5B,IAAK,UACLN,MAAO,SAAiBuC,EAAOL,GAC7B,OAAOlB,KAAKkR,YAAY3P,EAAOL,GAAQY,QAAO,SAAUO,GACtD,MAA4B,kBAAdA,EAAGvB,UAChBmB,KAAI,SAAUI,GACf,OAAOA,EAAGvB,UACT0D,KAAK,MAET,CACDlF,IAAK,cACLN,MAAO,SAAqBuC,EAAOyQ,EAAOhT,GAExC,OADAgB,KAAK+K,OAAOkP,SAAS1Y,EAAOyQ,EAAOhT,GAC5BgB,KAAKwM,QAAO,IAAI4Z,EAAiD3W,GAAInO,OAAOC,GAAOT,OAAO2G,EAAgB,GAAIuK,EAAOhT,OAE7H,CACDM,IAAK,aACLN,MAAO,SAAoBuC,EAAOwM,GAChC,IAAIkC,EAASjQ,KAETgQ,EAAUlG,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAMlF,OALAiE,EAAOA,EAAK0Q,QAAQ,QAAS,MAAMA,QAAQ,MAAO,MAClDze,KAAK+K,OAAOkP,SAAS1Y,EAAOwM,GAC5BtP,OAAO0C,KAAK6O,GAAShO,SAAQ,SAAU4N,GACrCK,EAAOlF,OAAO6O,SAASrY,EAAOwM,EAAK7M,OAAQ0O,EAAQI,EAAQJ,OAEtD5P,KAAKwM,QAAO,IAAI4Z,EAAiD3W,GAAInO,OAAOC,GAAOT,OAAOiN,EAAMiY,IAAwDhW,OAEhK,CACD1Q,IAAK,UACLN,MAAO,WACL,IAAIgP,EAAclE,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,IAAmBA,UAAU,GACjF,GAAoC,IAAhC9J,KAAK+K,OAAOqP,SAASlZ,OAAc,OAAO,EAC9C,GAAI8M,EAAa,OAAO,EACxB,GAAIhO,KAAK+K,OAAOqP,SAASlZ,OAAS,EAAG,OAAO,EAC5C,IAAI+W,EAAQjY,KAAK+K,OAAOqP,SAASlF,KACjC,OAAI+C,EAAM+B,QAAQlP,WAAa0b,EAA2D,EAAE1b,YACxFmN,EAAMmC,SAASlZ,OAAS,IACrB+W,EAAMmC,SAASlF,gBAAgBuR,EAA2D,IAElG,CACDnnB,IAAK,eACLN,MAAO,SAAsBuC,EAAOL,GAClC,IAAI6M,EAAO/N,KAAK8R,QAAQvQ,EAAOL,GAG3BonB,EAAqB1gB,EADA5H,KAAK+K,OAAO7F,KAAK3D,EAAQL,GACU,GACxDgE,EAAOojB,EAAmB,GAC1BxiB,EAASwiB,EAAmB,GAE5BC,EAAe,EACfC,EAAS,IAAIpC,EAAiD3W,EAEtD,MAARvK,IACFqjB,EAAerjB,EAAKhE,SAAW4E,EAC/B0iB,EAAStjB,EAAKtB,QAAQlB,MAAMoD,EAAQA,EAASyiB,EAAe,GAAGznB,OAAO,OAGxE,IACIsD,EADWpE,KAAKkR,YAAY3P,EAAOL,EAASqnB,GAC5BnkB,MAAK,IAAIgiB,EAAiD3W,GAAI3O,OAAOiN,GAAM5J,OAAOqkB,IAClG5kB,GAAQ,IAAIwiB,EAAiD3W,GAAInO,OAAOC,GAAO4C,OAAOC,GAC1F,OAAOpE,KAAKmT,WAAWvP,KAExB,CACDtE,IAAK,SACLN,MAAO,SAAgBwQ,GACrB,IAAIvD,EAAYnC,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAChFwC,EAAgBxC,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,GAAmBA,UAAU,QAAKC,EACpFoK,EAAWnU,KAAK4D,MAEpB,GAAyB,IAArBqI,EAAU/K,QAAsC,kBAAtB+K,EAAU,GAAGJ,MAA4BI,EAAU,GAAG3C,OAAO4Y,KAAK3K,MAAM8P,IAAUrnB,KAAK+K,OAAOuC,KAAKrB,EAAU,GAAG3C,QAAS,CAErJ,IAAImf,EAAWzoB,KAAK+K,OAAOuC,KAAKrB,EAAU,GAAG3C,QACzC0G,EAAUvR,OAAO+nB,EAAiE,EAAxE/nB,CAA2EgqB,GACrFlnB,EAAQknB,EAAS3iB,OAAO9F,KAAK+K,QAC7B2d,EAAWzc,EAAU,GAAGyc,SAASjK,QAAQ8H,EAA4D,EAAEoC,SAAU,IACjHC,GAAU,IAAIxC,EAAiD3W,GAAI3O,OAAO4nB,GAC1EG,GAAU,IAAIzC,EAAiD3W,GAAI3O,OAAO2nB,EAASzpB,SACnF8pB,EAAwBxc,GAAiB,CAC3CJ,SAAUkI,EAAW9H,EAAcJ,UAAW3K,GAC9C6K,SAAUgI,EAAW9H,EAAcF,UAAW7K,IAE5CwnB,GAAY,IAAI3C,EAAiD3W,GAAInO,OAAOC,GAAO4C,OAAOykB,EAAQxkB,KAAKykB,EAASC,IACpHtZ,EAASuZ,EAAUzmB,QAAO,SAAUsB,EAAOvB,GACzC,OAAIA,EAAGvB,OACE8C,EAAM9C,OAAOuB,EAAGvB,OAAQkP,GAG1BpM,EAAMxC,KAAKiB,KACjB,IAAI+jB,EAAiD3W,GACxDzP,KAAK4D,MAAQuQ,EAAShR,QAAQqM,QAE9BxP,KAAK4D,MAAQ5D,KAAKunB,WAEb/X,GAAW0W,IAAsD/R,EAAShR,QAAQqM,GAASxP,KAAK4D,SACnG4L,EAAS2E,EAAS/P,KAAKpE,KAAK4D,MAAO0I,IAIvC,OAAOkD,OAzSiEnG,EAAkBD,EAAYzJ,UAAWsN,GAAiBC,GAAa7D,EAAkBD,EAAa8D,GA6S3Koa,EA/RiB,GAkS1B,SAAS0B,EAAgBC,EAAOC,EAAYjS,GAC1C,GAAqB,IAAjBgS,EAAM/nB,OAAc,CACtB,IAEIioB,EADgBvhB,EADDwhB,EAAYnS,EAAMpV,OACY,GACrB,GAE5B,OAAIqnB,GAAc,EACT,UAAU/kB,OAAOglB,EAAS,KAG5B,UAAUhlB,OAAOglB,EAAS,KAAKhlB,OAAO6kB,EAAgB,GAAIE,EAAa,EAAGjS,IAGnF,IAAIoS,EAAS1C,EAASsC,GAClBK,EAAUD,EAAO,GACjBnO,EAAQoO,EAAQpO,MAChBpV,EAASwjB,EAAQxjB,OACjB5E,EAASooB,EAAQpoB,OACjBqoB,EAASD,EAAQC,OACjB1d,EAAOyd,EAAQzd,KACf3H,EAAOmlB,EAAO3mB,MAAM,GAGpB8mB,EAAgB5hB,EADAwhB,EAAYvd,EAAMqP,GACY,GAC9CnC,EAAMyQ,EAAc,GACpBhK,EAAYgK,EAAc,GAE9B,GAAID,EAASL,EAGX,OAFAjS,EAAM7V,KAAKyK,GAEP0d,IAAWL,EAAa,EACnB,IAAI/kB,OAAO4U,EAAK,QAAQ5U,OAAOqb,EAAW,KAAKrb,OAAOkkB,EAAYnN,EAAOpV,EAAQ5E,IAASiD,OAAO6kB,EAAgB9kB,EAAMqlB,EAAQtS,IAGjI,IAAI9S,OAAO4U,EAAK,SAAS5U,OAAO6kB,EAAgBC,EAAOC,EAAa,EAAGjS,IAGhF,IAAIwS,EAAexS,EAAMA,EAAM/V,OAAS,GAExC,GAAIqoB,IAAWL,GAAcrd,IAAS4d,EACpC,MAAO,WAAWtlB,OAAOqb,EAAW,KAAKrb,OAAOkkB,EAAYnN,EAAOpV,EAAQ5E,IAASiD,OAAO6kB,EAAgB9kB,EAAMqlB,EAAQtS,IAG3H,IAEIyS,EADgB9hB,EADAwhB,EAAYnS,EAAMpV,OACY,GACvB,GAE3B,MAAO,UAAUsC,OAAOulB,EAAQ,KAAKvlB,OAAO6kB,EAAgBC,EAAOC,EAAa,EAAGjS,IAGrF,SAASoR,EAAYjX,EAAM7P,EAAOL,GAChC,IAAIyoB,EAAS7f,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,IAAmBA,UAAU,GAE5E,GAAyB,oBAAdsH,EAAKnH,KACd,OAAOmH,EAAKnH,KAAK1I,EAAOL,GAG1B,GAAIkQ,aAAgBsV,EAA0D,EAC5E,OAAOjoB,OAAOioB,EAA6D,EAApEjoB,CAAuE2S,EAAKpS,QAAQ0D,MAAMnB,EAAOA,EAAQL,IAGlH,GAAIkQ,EAAKgJ,SAAU,CAEjB,GAA8B,mBAA1BhJ,EAAK4I,QAAQlP,SAA+B,CAC9C,IAAIme,EAAQ,GAWZ,OAVA7X,EAAKgJ,SAASrE,UAAUxU,EAAOL,GAAQ,SAAUga,EAAOpV,EAAQ6V,GAC9D,IAAI3L,EAAUkL,EAAMlL,UACpBiZ,EAAM7nB,KAAK,CACT8Z,MAAOA,EACPpV,OAAQA,EACR5E,OAAQya,EACR4N,OAAQvZ,EAAQuZ,QAAU,EAC1B1d,KAAMmE,EAAQ4Z,UAGXZ,EAAgBC,GAAQ,EAAG,IAGpC,IAAI/J,EAAQ,GAMZ,GALA9N,EAAKgJ,SAASrE,UAAUxU,EAAOL,GAAQ,SAAUga,EAAOpV,EAAQ6V,GAC9DuD,EAAM9d,KAAKinB,EAAYnN,EAAOpV,EAAQ6V,OAExCkO,EAAgBzY,EAAKgJ,SAAU8E,GAE3ByK,GAAoC,SAA1BvY,EAAK4I,QAAQlP,SACzB,OAAOoU,EAAM1a,KAAK,IAGpB,IAAIslB,EAAgB1Y,EAAKwG,QACrBmS,EAAYD,EAAcC,UAC1B7f,EAAY4f,EAAc5f,UAE1B8f,EAAmBD,EAAUzR,MAAM,IAAInU,OAAO+F,EAAW,MACzD+f,EAAoBriB,EAAeoiB,EAAkB,GACrDrnB,EAAQsnB,EAAkB,GAC1BrnB,EAAMqnB,EAAkB,GAG5B,MAAc,WAAVtnB,EACK,0CAA4CwB,OAAO+a,EAAM1a,KAAK,IAAK,KAAKL,OAAOvB,GAGjF,GAAGuB,OAAOxB,EAAO,KAAKwB,OAAO+a,EAAM1a,KAAK,IAAK,KAAKL,OAAOvB,GAGlE,OAAOwO,EAAKwG,QAAQmS,UAGtB,SAASF,EAAgBK,EAAYhL,GACT,IAAtBgL,EAAWhpB,QAAgBgpB,EAAWhV,gBAAgBuR,EAA2D,GACnHvH,EAAM9d,KAAK,QAIf,SAAS8mB,EAAelY,EAASma,GAC/B,OAAO1rB,OAAO0C,KAAKgpB,GAAU7nB,QAAO,SAAU8nB,EAAQ9rB,GACpD,OAAqB,MAAjB0R,EAAQ1R,KAER6rB,EAAS7rB,KAAU0R,EAAQ1R,GAC7B8rB,EAAO9rB,GAAQ6rB,EAAS7rB,GACfsC,MAAMC,QAAQspB,EAAS7rB,IAC5B6rB,EAAS7rB,GAAM6G,QAAQ6K,EAAQ1R,IAAS,IAC1C8rB,EAAO9rB,GAAQ6rB,EAAS7rB,GAAM6F,OAAO,CAAC6L,EAAQ1R,MAGhD8rB,EAAO9rB,GAAQ,CAAC6rB,EAAS7rB,GAAO0R,EAAQ1R,KATR8rB,IAajC,IAGL,SAAShB,EAAYvd,EAAMqP,GACzB,IAAInC,EAAe,YAATlN,EAAqB,KAAO,KAClC7K,EAAaka,EAAQ,GAAG/W,OAc9B,SAA+BqhB,GAC7B,IAAI5N,EAAU4N,EAAK5N,QAEnB,IAAKA,EAAQyS,gBACX,MAAO,GAMT,IAHA,IAAIrpB,EAAa4W,EAAQ5W,WACrBspB,EAAmB,IAEdtsB,EAAI,EAAGA,EAAIgD,EAAWE,OAAQlD,GAAK,EAAG,CAC7C,IAAIM,EAAO0C,EAAWhD,GAAGM,KACrBU,EAAQgC,EAAWhD,GAAGgB,MAEb,UAATV,IACFU,EAA0BA,EAYXyf,QAAQ,gBAAiB,IAAItU,QAT1CnL,EAAMkC,SAAqC,IAA3B5C,EAAK6G,QAAQ,WAC/BmlB,GAAoB,GAAGnmB,OAAO7F,EAAM,MAAO6F,OAAOnF,EAAO,MAI7D,OAAOsrB,EAAiBppB,OAAS,EAAIopB,EAAmB,GArCrBC,CAAsBrP,IAAU,GAEnE,OAAQrP,GACN,IAAK,UACH,MAAO,CAACkN,EAAK,GAAG5U,OAAOnD,EAAY,yBAErC,IAAK,YACH,MAAO,CAAC+X,EAAK,GAAG5U,OAAOnD,EAAY,2BAErC,QACE,MAAO,CAAC+X,EAAK/X,IA6CnB,SAASoT,EAAWoW,EAAOC,GACzB,IAAIlpB,EAAQipB,EAAMjpB,MACdL,EAASspB,EAAMtpB,OACnB,OAAO,IAAIolB,EAAuD,EAAE/kB,EAAQkpB,EAAQvpB,GAGzDiF,EAAuB,EAAKmhB,GAIlD,SAASvpB,EAAQoI,EAAqBvI,GAE7C,aAC+BA,EAAoBS,EAAE8H,EAAqB,KAAK,WAAa,OAAOukB,KACpE9sB,EAAoBS,EAAE8H,EAAqB,KAAK,WAAa,OAAOwkB,KACpE/sB,EAAoBS,EAAE8H,EAAqB,KAAK,WAAa,OAAOykB,KACpEhtB,EAAoBS,EAAE8H,EAAqB,KAAK,WAAa,OAAO0kB,KAC9E,IAAIrkB,EAA2C5I,EAAoB,GAC/D6I,EAAgE7I,EAAoB4B,EAAEgH,GACtFskB,EAAyCltB,EAAoB,GAC7DmtB,EAAsCntB,EAAoB,GAC1DotB,EAAuCptB,EAAoB,IAC3DqtB,EAAqCrtB,EAAoB,GAClF,SAAS0J,EAAQC,GAAmV,OAAtOD,EAArD,oBAAXxI,QAAoD,kBAApBA,OAAOiE,SAAmC,SAAiBwE,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXzI,QAAyByI,EAAIC,cAAgB1I,QAAUyI,IAAQzI,OAAOa,UAAY,gBAAkB4H,IAAyBA,GAEnX,SAASsf,EAAQpnB,EAAQqnB,GAAkB,IAAI3lB,EAAO1C,OAAO0C,KAAK1B,GAAS,GAAIhB,OAAOsoB,sBAAuB,CAAE,IAAIC,EAAUvoB,OAAOsoB,sBAAsBtnB,GAAaqnB,IAAkBE,EAAUA,EAAQllB,QAAO,SAAUmlB,GAAO,OAAOxoB,OAAOskB,yBAAyBtjB,EAAQwnB,GAAKtoB,eAAkBwC,EAAKC,KAAKqR,MAAMtR,EAAM6lB,GAAY,OAAO7lB,EAElV,SAAS+lB,EAAc5d,GAAU,IAAK,IAAItL,EAAI,EAAGA,EAAI8L,UAAU5I,OAAQlD,IAAK,CAAE,IAAIgO,EAAyB,MAAhBlC,UAAU9L,GAAa8L,UAAU9L,GAAK,GAAQA,EAAI,EAAK6oB,EAAQpoB,OAAOuN,IAAS,GAAMhK,SAAQ,SAAU1C,GAAOmI,EAAgB6B,EAAQhK,EAAK0M,EAAO1M,OAAsBb,OAAO0oB,0BAA6B1oB,OAAO2oB,iBAAiB9d,EAAQ7K,OAAO0oB,0BAA0Bnb,IAAmB6a,EAAQpoB,OAAOuN,IAAShK,SAAQ,SAAU1C,GAAOb,OAAOC,eAAe4K,EAAQhK,EAAKb,OAAOskB,yBAAyB/W,EAAQ1M,OAAe,OAAOgK,EAE7gB,SAAS7B,EAAgBF,EAAKjI,EAAKN,GAAiK,OAApJM,KAAOiI,EAAO9I,OAAOC,eAAe6I,EAAKjI,EAAK,CAAEN,MAAOA,EAAOL,YAAY,EAAM+I,cAAc,EAAMC,UAAU,IAAkBJ,EAAIjI,GAAON,EAAgBuI,EAE3M,SAAS2B,EAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIN,UAAU,qCAEhH,SAASO,EAAkBC,EAAQC,GAAS,IAAK,IAAIvL,EAAI,EAAGA,EAAIuL,EAAMrI,OAAQlD,IAAK,CAAE,IAAIwL,EAAaD,EAAMvL,GAAIwL,EAAW7K,WAAa6K,EAAW7K,aAAc,EAAO6K,EAAW9B,cAAe,EAAU,UAAW8B,IAAYA,EAAW7B,UAAW,GAAMlJ,OAAOC,eAAe4K,EAAQE,EAAWlK,IAAKkK,IAE7S,SAAS0hB,EAAa9hB,EAAa6D,EAAYC,GAAmJ,OAAhID,GAAY5D,EAAkBD,EAAYzJ,UAAWsN,GAAiBC,GAAa7D,EAAkBD,EAAa8D,GAAqB9D,EAEzM,SAASqZ,EAAKnZ,EAAQ5J,EAAUgjB,GAAuV,OAAtRD,EAA9B,qBAAZE,SAA2BA,QAAQ/jB,IAAc+jB,QAAQ/jB,IAAqB,SAAc0K,EAAQ5J,EAAUgjB,GAAY,IAAIrd,EAErL,SAAwB5F,EAAQC,GAAY,MAAQjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAA8D,QAAjDD,EAASmjB,EAAgBnjB,MAAuC,OAAOA,EAFOojB,CAAevZ,EAAQ5J,GAAW,GAAK2F,EAAL,CAAmB,IAAIyd,EAAOrkB,OAAOskB,yBAAyB1d,EAAM3F,GAAW,OAAIojB,EAAKlkB,IAAckkB,EAAKlkB,IAAIV,KAAKwkB,GAAoBI,EAAK9jB,SAAwBsK,EAAQ5J,EAAUgjB,GAAYpZ,GAIja,SAASwb,EAAUF,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/b,UAAU,sDAAyD8b,EAASjlB,UAAYlB,OAAOY,OAAOwlB,GAAcA,EAAWllB,UAAW,CAAE6H,YAAa,CAAExI,MAAO4lB,EAAUjd,UAAU,EAAMD,cAAc,KAAemd,GAAY7B,EAAgB4B,EAAUC,GAEnX,SAAS7B,EAAgBxkB,EAAGqB,GAA+G,OAA1GmjB,EAAkBvkB,OAAO+X,gBAAkB,SAAyBhY,EAAGqB,GAAsB,OAAjBrB,EAAEiY,UAAY5W,EAAUrB,IAA6BA,EAAGqB,GAErK,SAASojB,EAAaC,GAAW,IAAIC,EAMrC,WAAuC,GAAuB,qBAAZR,UAA4BA,QAAQS,UAAW,OAAO,EAAO,GAAIT,QAAQS,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQ5jB,UAAU6jB,QAAQtlB,KAAKykB,QAAQS,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAOvI,GAAK,OAAO,GAN9PyI,GAA6B,OAAO,WAAkC,IAAsCC,EAAlCC,EAAQf,EAAgBM,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYhB,EAAgB5iB,MAAMwH,YAAakc,EAASf,QAAQS,UAAUO,EAAO7Z,UAAW8Z,QAAqBF,EAASC,EAAMlR,MAAMzS,KAAM8J,WAAc,OAAO+Z,EAA2B7jB,KAAM0jB,IAE5Z,SAASG,EAA2BC,EAAM5lB,GAAQ,OAAIA,GAA2B,WAAlBoJ,EAAQpJ,IAAsC,oBAATA,EAEpG,SAAgC4lB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,EAFbE,CAAuBF,GAAtC5lB,EAMnI,SAAS0kB,EAAgBpkB,GAAwJ,OAAnJokB,EAAkBnkB,OAAO+X,eAAiB/X,OAAOwlB,eAAiB,SAAyBzlB,GAAK,OAAOA,EAAEiY,WAAahY,OAAOwlB,eAAezlB,KAA8BA,GAOxM,IAEIqsB,EAAqB,SAAUM,GACjCrG,EAAU+F,EAAOM,GAEjB,IAAIxU,EAASsM,EAAa4H,GAE1B,SAASA,EAAM9f,EAAQ6M,GACrB,IAAIhO,EAMJ,OAJAV,EAAgBlJ,KAAM6qB,IAEtBjhB,EAAQ+M,EAAOzY,KAAK8B,KAAM+K,EAAQ6M,IAC5BwT,MAAQ,GACPxhB,EAyIT,OAtIAshB,EAAaL,EAAO,CAAC,CACnBvrB,IAAK,QACLN,MAAO,WAKL,OAJwB,MAApBgB,KAAKorB,MAAMxnB,QACb5D,KAAKorB,MAAMxnB,MAAQ8mB,EAAW1qB,OAGzBA,KAAKorB,MAAMxnB,QAEnB,CACDtE,IAAK,WACLN,MAAO,SAAkBuC,EAAOL,GAC9BuhB,EAAKG,EAAgBiI,EAAMlrB,WAAY,WAAYK,MAAM9B,KAAK8B,KAAMuB,EAAOL,GAE3ElB,KAAKorB,MAAQ,KAEd,CACD9rB,IAAK,WACLN,MAAO,SAAkBuC,EAAOL,EAAQ5C,EAAMU,GACxCkC,GAAU,IAEVlB,KAAK+K,OAAOF,MAAMvM,EAAMwsB,EAA8C,MAAEpb,OACtEnO,EAAQL,IAAWlB,KAAKkB,UAC1BlB,KAAK4P,OAAOtR,EAAMU,GAGpByjB,EAAKG,EAAgBiI,EAAMlrB,WAAY,WAAYK,MAAM9B,KAAK8B,KAAMuB,EAAOuC,KAAKC,IAAI7C,EAAQlB,KAAKkB,SAAWK,EAAQ,GAAIjD,EAAMU,GAGhIgB,KAAKorB,MAAQ,MAEd,CACD9rB,IAAK,WACLN,MAAO,SAAkBuC,EAAOvC,EAAOkb,GACrC,GAAW,MAAPA,EAIF,OAHAuI,EAAKG,EAAgBiI,EAAMlrB,WAAY,WAAYK,MAAM9B,KAAK8B,KAAMuB,EAAOvC,EAAOkb,QAElFla,KAAKorB,MAAQ,IAIf,GAAqB,IAAjBpsB,EAAMkC,OAAV,CACA,IAAIsQ,EAAQxS,EAAMsZ,MAAM,MACpBvK,EAAOyD,EAAM0C,QAEbnG,EAAK7M,OAAS,IACZK,EAAQvB,KAAKkB,SAAW,GAA2B,MAAtBlB,KAAKoa,SAASjF,KAC7CsN,EAAKG,EAAgBiI,EAAMlrB,WAAY,WAAYK,MAAM9B,KAAK8B,KAAM8D,KAAKC,IAAIxC,EAAOvB,KAAKkB,SAAW,GAAI6M,GAExG/N,KAAKoa,SAASjF,KAAK8E,SAASja,KAAKoa,SAASjF,KAAKjU,SAAU6M,GAG3D/N,KAAKorB,MAAQ,IAGf,IAAInT,EAAQjY,KACZwR,EAAMlP,QAAO,SAAU+oB,EAAWnmB,GAGhC,OAFA+S,EAAQA,EAAMK,MAAM+S,GAAW,IACzBpR,SAAS,EAAG/U,GACXA,EAAKhE,SACXK,EAAQwM,EAAK7M,WAEjB,CACD5B,IAAK,eACLN,MAAO,SAAsBoS,EAAM+I,GACjC,IAAIjF,EAAOlV,KAAKoa,SAASlF,KAEzBuN,EAAKG,EAAgBiI,EAAMlrB,WAAY,eAAgBK,MAAM9B,KAAK8B,KAAMoR,EAAM+I,GAE1EjF,aAAgB6V,EAAqD,GACvE7V,EAAKO,SAGPzV,KAAKorB,MAAQ,KAEd,CACD9rB,IAAK,SACLN,MAAO,WAKL,OAJyB,MAArBgB,KAAKorB,MAAMlqB,SACblB,KAAKorB,MAAMlqB,OAASuhB,EAAKG,EAAgBiI,EAAMlrB,WAAY,SAAUK,MAAM9B,KAAK8B,MAhGnE,GAmGRA,KAAKorB,MAAMlqB,SAEnB,CACD5B,IAAK,eACLN,MAAO,SAAsBsK,EAAQ6Q,GACnCsI,EAAKG,EAAgBiI,EAAMlrB,WAAY,eAAgBK,MAAM9B,KAAK8B,KAAMsJ,EAAQ6Q,GAEhFna,KAAKorB,MAAQ,KAEd,CACD9rB,IAAK,WACLN,MAAO,SAAkB4d,GACvB6F,EAAKG,EAAgBiI,EAAMlrB,WAAY,WAAYK,MAAM9B,KAAK8B,KAAM4c,GAEpE5c,KAAKorB,MAAQ,KAEd,CACD9rB,IAAK,OACLN,MAAO,SAAcuC,GACnB,OAAOkhB,EAAKG,EAAgBiI,EAAMlrB,WAAY,OAAQK,MAAM9B,KAAK8B,KAAMuB,GAAO,KAE/E,CACDjC,IAAK,cACLN,MAAO,SAAqBkc,GAC1BuH,EAAKG,EAAgBiI,EAAMlrB,WAAY,cAAeK,MAAM9B,KAAK8B,KAAMkb,GAEvElb,KAAKorB,MAAQ,KAEd,CACD9rB,IAAK,QACLN,MAAO,SAAeuC,GACpB,IAAIwb,EAAQjT,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,IAAmBA,UAAU,GAE3E,GAAIiT,IAAoB,IAAVxb,GAAeA,GAASvB,KAAKkB,SApI5B,GAoIwD,CACrE,IAAImY,EAAQrZ,KAAKqZ,QAEjB,OAAc,IAAV9X,GACFvB,KAAKwZ,OAAOhL,aAAa6K,EAAOrZ,MACzBA,OAGTA,KAAKwZ,OAAOhL,aAAa6K,EAAOrZ,KAAKkD,MAC9BmW,GAGT,IAAInW,EAAOuf,EAAKG,EAAgBiI,EAAMlrB,WAAY,QAASK,MAAM9B,KAAK8B,KAAMuB,EAAOwb,GAGnF,OADA/c,KAAKorB,MAAQ,GACNloB,MAIJ2nB,EArJgB,CAsJvBC,EAAkD,WAEpDD,EAAM/f,SAAW,QACjB+f,EAAMrS,QAAU,IAChBqS,EAAMhO,aAAekO,EAAqD,EAC1EF,EAAM3O,gBAAkB,CAAC6O,EAAqD,EAAGC,EAAsD,EAAGF,EAAkD,UAAGG,EAAoD,GAEnP,IAAIL,EAA0B,SAAUU,GACtCxG,EAAU8F,EAAYU,GAEtB,IAAIC,EAAUtI,EAAa2H,GAE3B,SAASA,IAGP,OAFA1hB,EAAgBlJ,KAAM4qB,GAEfW,EAAQ9Y,MAAMzS,KAAM8J,WA0C7B,OAvCAohB,EAAaN,EAAY,CAAC,CACxBtrB,IAAK,SACLN,MAAO,WACLyjB,EAAKG,EAAgBgI,EAAWjrB,WAAY,SAAUK,MAAM9B,KAAK8B,MAEjEA,KAAKgB,WAAa,IAAI8pB,EAAwD,gBAAE9qB,KAAK4X,WAEtF,CACDtY,IAAK,QACLN,MAAO,WACL,OAAO,IAAIyH,EAAiDgJ,GAAI3O,OAAOd,KAAKhB,QAASkoB,EAAcA,EAAc,GAAIlnB,KAAKgQ,WAAYhQ,KAAKgB,WAAW6e,aAEvJ,CACDvgB,IAAK,SACLN,MAAO,SAAgBV,EAAMU,GAC3B,IAAIwgB,EAAYxf,KAAK+K,OAAOF,MAAMvM,EAAMwsB,EAA8C,MAAEU,iBAEvE,MAAbhM,GACFxf,KAAKgB,WAAWwe,UAAUA,EAAWxgB,KAGxC,CACDM,IAAK,WACLN,MAAO,SAAkBuC,EAAOL,EAAQ5C,EAAMU,GAC5CgB,KAAK4P,OAAOtR,EAAMU,KAEnB,CACDM,IAAK,WACLN,MAAO,SAAkBuC,EAAOvC,EAAOkb,GACrC,GAAqB,kBAAVlb,GAAsBA,EAAM6oB,SAAS,MAAO,CACrD,IAAI5P,EAAQjY,KAAK+K,OAAO1L,OAAOwrB,EAAM/f,UACrC9K,KAAKwZ,OAAOhL,aAAayJ,EAAiB,IAAV1W,EAAcvB,KAAOA,KAAKkD,MAC1D+U,EAAMgC,SAAS,EAAGjb,EAAM0D,MAAM,GAAI,SAElC+f,EAAKG,EAAgBgI,EAAWjrB,WAAY,WAAYK,MAAM9B,KAAK8B,KAAMuB,EAAOvC,EAAOkb,OAKtF0Q,EAlDqB,CAmD5BE,EAAkD,WAIpD,SAASJ,EAAWtZ,GAClB,IAAItP,IAASgI,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,KAAmBA,UAAU,GAC5E,OAAOsH,EAAK0K,YAAYgP,EAAiD,UAAGxoB,QAAO,SAAUsB,EAAOyN,GAClG,OAAsB,IAAlBA,EAAKnQ,SACA0C,EAGFA,EAAM9C,OAAOuQ,EAAKrS,QAAS2rB,EAActZ,EAAM,GAAIvP,MACzD,IAAI2E,EAAiDgJ,GAAK3O,OAAO,KAAM6pB,EAAcvZ,IAG1F,SAASuZ,EAAcvZ,GACrB,IAAIpB,EAAUlG,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAC9EhI,IAASgI,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,KAAmBA,UAAU,GAC5E,OAAY,MAARsH,EAAqBpB,GAEG,oBAAjBoB,EAAKpB,UACdA,EAAUkX,EAAcA,EAAc,GAAIlX,GAAUoB,EAAKpB,WAErDlO,UAEKkO,EAAQ,eAIA,MAAfoB,EAAKoI,QAAmD,WAAjCpI,EAAKoI,OAAOQ,QAAQlP,UAAyBsG,EAAKoI,OAAOQ,QAAQnC,QAAUzG,EAAK4I,QAAQnC,MAC1G7H,EAGF2a,EAAcvZ,EAAKoI,OAAQxJ,EAASlO,IA/B7C8oB,EAAW/S,MAAQiT,EAA8C,MAAE3O,YAsC5D,SAASpe,EAAQoI,EAAqBvI,GAE7C,aAC+BA,EAAoBS,EAAE8H,EAAqB,KAAK,WAAa,OAAOslB,KACpE7tB,EAAoBS,EAAE8H,EAAqB,KAAK,WAAa,OAAOulB,KAC9E,IAAIC,EAAyC/tB,EAAoB,GAC7D8I,EAAgD9I,EAAoB,IACpE+I,EAAqE/I,EAAoB4B,EAAEkH,GAC3FklB,EAA8ChuB,EAAoB,IAClEiuB,EAAmEjuB,EAAoB4B,EAAEosB,GACzFE,EAAwCluB,EAAoB,GAC5DmuB,EAAuCnuB,EAAoB,IACpF,SAASouB,EAAmBnkB,GAAO,OAMnC,SAA4BA,GAAO,GAAIjH,MAAMC,QAAQgH,GAAM,OAAOY,EAAkBZ,GAN1CokB,CAAmBpkB,IAI7D,SAA0B/E,GAAQ,GAAsB,qBAAXhE,QAAmD,MAAzBgE,EAAKhE,OAAOiE,WAA2C,MAAtBD,EAAK,cAAuB,OAAOlC,MAAM+H,KAAK7F,GAJjF8jB,CAAiB/e,IAAQgB,EAA4BhB,IAE1H,WAAgC,MAAM,IAAIiB,UAAU,wIAF8EojB,GAQlI,SAAStkB,EAAeC,EAAK7J,GAAK,OAUlC,SAAyB6J,GAAO,GAAIjH,MAAMC,QAAQgH,GAAM,OAAOA,EAVtBC,CAAgBD,IAQzD,SAA+BA,EAAK7J,GAAK,IAAI+J,EAAY,MAAPF,EAAc,KAAyB,qBAAX/I,QAA0B+I,EAAI/I,OAAOiE,WAAa8E,EAAI,cAAe,GAAU,MAANE,EAAJ,CAAwB,IAAkDC,EAAIC,EAAlDC,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAmB,IAAM,IAAKL,EAAKA,EAAG7J,KAAK2J,KAAQM,GAAMH,EAAKD,EAAG7E,QAAQmF,QAAoBH,EAAK9G,KAAK4G,EAAGhJ,QAAYhB,GAAKkK,EAAKhH,SAAWlD,GAA3DmK,GAAK,IAAoE,MAAOG,GAAOF,GAAK,EAAMH,EAAKK,EAAO,QAAU,IAAWH,GAAsB,MAAhBJ,EAAW,QAAWA,EAAW,SAAO,QAAU,GAAIK,EAAI,MAAMH,GAAQ,OAAOC,GARzbK,CAAsBV,EAAK7J,IAAM6K,EAA4BhB,EAAK7J,IAEnI,WAA8B,MAAM,IAAI8K,UAAU,6IAFuFC,GAIzI,SAASF,EAA4BrK,EAAGgK,GAAU,GAAKhK,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAOiK,EAAkBjK,EAAGgK,GAAS,IAAIhJ,EAAIf,OAAOkB,UAAU+I,SAASxK,KAAKM,GAAGkE,MAAM,GAAI,GAAiE,MAAnD,WAANlD,GAAkBhB,EAAEgJ,cAAahI,EAAIhB,EAAEgJ,YAAYlJ,MAAgB,QAANkB,GAAqB,QAANA,EAAoBoB,MAAM+H,KAAKnK,GAAc,cAANgB,GAAqB,2CAA2CoJ,KAAKpJ,GAAWiJ,EAAkBjK,EAAGgK,QAAzG,GAE7S,SAASC,EAAkBZ,EAAKmB,IAAkB,MAAPA,GAAeA,EAAMnB,EAAI3G,UAAQ8H,EAAMnB,EAAI3G,QAAQ,IAAK,IAAIlD,EAAI,EAAGiL,EAAO,IAAIrI,MAAMoI,GAAMhL,EAAIgL,EAAKhL,IAAOiL,EAAKjL,GAAK6J,EAAI7J,GAAM,OAAOiL,EAMhL,SAASI,EAAkBC,EAAQC,GAAS,IAAK,IAAIvL,EAAI,EAAGA,EAAIuL,EAAMrI,OAAQlD,IAAK,CAAE,IAAIwL,EAAaD,EAAMvL,GAAIwL,EAAW7K,WAAa6K,EAAW7K,aAAc,EAAO6K,EAAW9B,cAAe,EAAU,UAAW8B,IAAYA,EAAW7B,UAAW,GAAMlJ,OAAOC,eAAe4K,EAAQE,EAAWlK,IAAKkK,IAI7S,SAASN,EAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIN,UAAU,qCAOhH,IAAIW,EAAQhL,OAAOstB,EAAsD,EAA7DttB,CAAgE,mBAExEgtB,EAAQ,SAASA,EAAMlqB,GACzB,IAAIL,EAAS4I,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,EAEjFZ,EAAgBlJ,KAAMyrB,GAEtBzrB,KAAKuB,MAAQA,EACbvB,KAAKkB,OAASA,GAGZwqB,EAAyB,WAC3B,SAASA,EAAU3gB,EAAQL,GACzB,IAAId,EAAQ5J,KAEZkJ,EAAgBlJ,KAAM0rB,GAEtB1rB,KAAK0K,QAAUA,EACf1K,KAAK+K,OAASA,EACd/K,KAAKiO,WAAY,EACjBjO,KAAKmsB,WAAY,EACjBnsB,KAAKuK,KAAOvK,KAAK+K,OAAO6M,QACxB5X,KAAKqE,OAASrE,KAAK+K,OAAO1L,OAAO,SAAUW,MAE3CA,KAAKosB,WAAa,IAAIX,EAAM,EAAG,GAC/BzrB,KAAKmM,UAAYnM,KAAKosB,WACtBpsB,KAAKqsB,WAAa,KAClBrsB,KAAKssB,oBACLtsB,KAAKusB,iBACLvsB,KAAK0K,QAAQ8hB,UAAU,kBAAmBle,UAAU,WAC7C1E,EAAMuiB,WAAcviB,EAAMqE,WAC7Bwe,WAAW7iB,EAAM4C,OAAOjN,KAAKqK,EAAOkiB,EAAuD,EAAE1c,QAAQmE,MAAO,MAGhHvT,KAAK0K,QAAQgB,GAAGogB,EAAuD,EAAEngB,OAAO+Z,sBAAsB,WACpG,GAAK9b,EAAMmI,WAAX,CAEA,IAAI2a,EAAS9iB,EAAM+iB,iBAEL,MAAVD,GACAA,EAAO/pB,MAAM0K,OAASzD,EAAMvF,OAAOuoB,UAEvChjB,EAAMc,QAAQkI,KAAKkZ,EAAuD,EAAEngB,OAAOI,eAAe,WAChG,IACMnC,EAAMW,KAAKiL,SAASkX,EAAO/pB,MAAM0K,OAASzD,EAAMW,KAAKiL,SAASkX,EAAO9pB,IAAIyK,OAC3EzD,EAAMijB,eAAeH,EAAO/pB,MAAM0K,KAAMqf,EAAO/pB,MAAMmD,OAAQ4mB,EAAO9pB,IAAIyK,KAAMqf,EAAO9pB,IAAIkD,QAG3F8D,EAAM4C,OAAOsf,EAAuD,EAAE1c,QAAQW,QAC9E,MAAO+c,YAIb9sB,KAAK0K,QAAQgB,GAAGogB,EAAuD,EAAEngB,OAAOka,iBAAiB,SAAU5Z,EAAW2Q,GACpH,GAAIA,EAAQtN,MAAO,CACjB,IAAIyd,EAAiBnQ,EAAQtN,MACzB2G,EAAY8W,EAAe9W,UAC3B+W,EAAcD,EAAeC,YAC7BC,EAAUF,EAAeE,QACzBC,EAAYH,EAAeG,UAE/BtjB,EAAMijB,eAAe5W,EAAW+W,EAAaC,EAASC,GAEtDtjB,EAAM4C,OAAOsf,EAAuD,EAAE1c,QAAQW,YAGlF/P,KAAKwM,OAAOsf,EAAuD,EAAE1c,QAAQW,QA3EjF,IAAsB3G,EAAa6D,EAAYC,EAmf7C,OAnfoB9D,EA8EPsiB,GA9EoBze,EA8ET,CAAC,CACvB3N,IAAK,oBACLN,MAAO,WACL,IAAI0P,EAAS1O,KAEbA,KAAKuK,KAAK4Z,iBAAiB,oBAAoB,WAC7CzV,EAAOT,WAAY,EAEnBS,EAAO3D,OAAO2c,gBAEhB1nB,KAAKuK,KAAK4Z,iBAAiB,kBAAkB,WAK3C,GAJAzV,EAAO3D,OAAOgd,WAEdrZ,EAAOT,WAAY,EAEfS,EAAOrK,OAAOmV,OAAQ,CACxB,IAAIlK,EAAQZ,EAAOrK,OAAO8oB,UAE1B,IAAK7d,EAAO,OACZmd,YAAW,WACT/d,EAAOme,eAAevd,EAAM2G,UAAW3G,EAAM0d,YAAa1d,EAAM2d,QAAS3d,EAAM4d,aAC9E,SAIR,CACD5tB,IAAK,iBACLN,MAAO,WACL,IAAImQ,EAASnP,KAEbA,KAAK0K,QAAQ8hB,UAAU,YAAale,SAAS+O,MAAM,WACjDlO,EAAOgd,WAAY,KAErBnsB,KAAK0K,QAAQ8hB,UAAU,UAAWle,SAAS+O,MAAM,WAC/ClO,EAAOgd,WAAY,EAEnBhd,EAAO3C,OAAOsf,EAAuD,EAAE1c,QAAQmE,WAGlF,CACDjU,IAAK,QACLN,MAAO,WACDgB,KAAK+R,aACT/R,KAAKuK,KAAK0E,QACVjP,KAAKyO,SAASzO,KAAKosB,eAEpB,CACD9sB,IAAK,SACLN,MAAO,SAAgBouB,EAASpuB,GAC9BgB,KAAK+K,OAAOyB,SACZ,IAAI6gB,EAAcrtB,KAAK2sB,iBACvB,GAAmB,MAAfU,GAAwBA,EAAYX,OAAOY,YAAattB,KAAK+K,OAAOF,MAAMuiB,EAASzB,EAA8C,MAAEjc,OAAvI,CAEA,GAAI2d,EAAY1qB,MAAM0K,OAASrN,KAAKqE,OAAOuoB,SAAU,CACnD,IAAIxb,EAAOpR,KAAK+K,OAAOuC,KAAK+f,EAAY1qB,MAAM0K,MAAM,GACpD,GAAY,MAAR+D,EAAc,OAElB,GAAIA,aAAgBua,EAAiD,SAAG,CACtE,IAAI3O,EAAQ5L,EAAKkH,MAAM+U,EAAY1qB,MAAMmD,QACzCsL,EAAKoI,OAAOhL,aAAaxO,KAAKqE,OAAQ2Y,QAEtC5L,EAAK5C,aAAaxO,KAAKqE,OAAQgpB,EAAY1qB,MAAM0K,MAGnDrN,KAAKqE,OAAO+U,SAGdpZ,KAAKqE,OAAOuL,OAAOwd,EAASpuB,GAC5BgB,KAAK+K,OAAOsP,WACZra,KAAK6sB,eAAe7sB,KAAKqE,OAAOuoB,SAAU5sB,KAAKqE,OAAOuoB,SAAS1K,KAAKhhB,QACpElB,KAAKwM,YAEN,CACDlN,IAAK,YACLN,MAAO,SAAmBuC,GACxB,IAII8L,EAJAnM,EAAS4I,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,EAC7E2d,EAAeznB,KAAK+K,OAAO7J,SAC/BK,EAAQuC,KAAKC,IAAIxC,EAAOkmB,EAAe,GACvCvmB,EAAS4C,KAAKC,IAAIxC,EAAQL,EAAQumB,EAAe,GAAKlmB,EAGtD,IAAIgsB,EAAoBvtB,KAAK+K,OAAOsG,KAAK9P,GACrCisB,EAAqB5lB,EAAe2lB,EAAmB,GACvDlc,EAAOmc,EAAmB,GAC1B1nB,EAAS0nB,EAAmB,GAEhC,GAAY,MAARnc,EAAc,OAAO,KAEzB,IAAIoc,EAAiBpc,EAAKyL,SAAShX,GAAQ,GAEvC4nB,EAAkB9lB,EAAe6lB,EAAgB,GAErDpgB,EAAOqgB,EAAgB,GACvB5nB,EAAS4nB,EAAgB,GACzB,IAAIpe,EAAQhB,SAASqf,cAErB,GAAIzsB,EAAS,EAAG,CACdoO,EAAMse,SAASvgB,EAAMvH,GAErB,IAAI+nB,EAAqB7tB,KAAK+K,OAAOsG,KAAK9P,EAAQL,GAE9C4sB,EAAqBlmB,EAAeimB,EAAoB,GAI5D,GAFAxc,EAAOyc,EAAmB,GAC1BhoB,EAASgoB,EAAmB,GAChB,MAARzc,EAAc,OAAO,KAEzB,IAAI0c,EAAkB1c,EAAKyL,SAAShX,GAAQ,GAExCkoB,EAAkBpmB,EAAemmB,EAAiB,GAKtD,OAHA1gB,EAAO2gB,EAAgB,GACvBloB,EAASkoB,EAAgB,GACzB1e,EAAM2e,OAAO5gB,EAAMvH,GACZwJ,EAAMkB,wBAGf,IACI0d,EADAC,EAAO,OAmBX,OAhBI9gB,aAAgB0K,MACdjS,EAASuH,EAAK6U,KAAKhhB,QACrBoO,EAAMse,SAASvgB,EAAMvH,GACrBwJ,EAAM2e,OAAO5gB,EAAMvH,EAAS,KAE5BwJ,EAAMse,SAASvgB,EAAMvH,EAAS,GAC9BwJ,EAAM2e,OAAO5gB,EAAMvH,GACnBqoB,EAAO,SAGTD,EAAO5e,EAAMkB,0BAEb0d,EAAO7c,EAAKuG,QAAQpH,wBAChB1K,EAAS,IAAGqoB,EAAO,UAGlB,CACL1d,OAAQyd,EAAKxd,IAAMwd,EAAKvd,OACxBA,OAAQud,EAAKvd,OACbC,KAAMsd,EAAKC,GACXtd,MAAOqd,EAAKC,GACZzd,IAAKwd,EAAKxd,IACVI,MAAO,KAGV,CACDxR,IAAK,iBACLN,MAAO,WACL,IAAIkM,EAAYoD,SAASiB,eACzB,GAAiB,MAAbrE,GAAqBA,EAAUkjB,YAAc,EAAG,OAAO,KAC3D,IAAIf,EAAcniB,EAAUmjB,WAAW,GACvC,GAAmB,MAAfhB,EAAqB,OAAO,KAChC,IAAI/d,EAAQtP,KAAKsuB,gBAAgBjB,GAEjC,OADA5jB,EAAM8kB,KAAK,iBAAkBjf,GACtBA,IAER,CACDhQ,IAAK,WACLN,MAAO,WACL,IAAIwvB,EAAaxuB,KAAK2sB,iBACtB,OAAkB,MAAd6B,EAA2B,CAAC,KAAM,MAE/B,CADKxuB,KAAKyuB,kBAAkBD,GACpBA,KAEhB,CACDlvB,IAAK,WACLN,MAAO,WACL,OAAOsP,SAASogB,gBAAkB1uB,KAAKuK,MAAQiL,EAASxV,KAAKuK,KAAM+D,SAASogB,iBAE7E,CACDpvB,IAAK,oBACLN,MAAO,SAA2BsQ,GAChC,IAAIW,EAASjQ,KAET2uB,EAAY,CAAC,CAACrf,EAAM3M,MAAM0K,KAAMiC,EAAM3M,MAAMmD,SAE3CwJ,EAAMod,OAAOY,WAChBqB,EAAUvtB,KAAK,CAACkO,EAAM1M,IAAIyK,KAAMiC,EAAM1M,IAAIkD,SAG5C,IAAI8oB,EAAUD,EAAU1sB,KAAI,SAAU6a,GACpC,IAAI+R,EAAYjnB,EAAekV,EAAU,GACrCzP,EAAOwhB,EAAU,GACjB/oB,EAAS+oB,EAAU,GAEnBzd,EAAOnB,EAAOlF,OAAOuC,KAAKD,GAAM,GAEhC9L,EAAQ6P,EAAKtL,OAAOmK,EAAOlF,QAE/B,OAAe,IAAXjF,EACKvE,EAGL6P,aAAgBua,EAAiD,SAC5DpqB,EAAQ6P,EAAK7P,MAAM8L,EAAMvH,GAG3BvE,EAAQ6P,EAAKlQ,YAElB0B,EAAMkB,KAAKC,IAAID,KAAKwP,IAAIb,MAAM3O,KAAMkoB,EAAmB4C,IAAW5uB,KAAK+K,OAAO7J,SAAW,GACzFyB,EAAQmB,KAAKC,IAAI0O,MAAM3O,KAAM,CAAClB,GAAKuB,OAAO6nB,EAAmB4C,KACjE,OAAO,IAAInD,EAAM9oB,EAAOC,EAAMD,KAE/B,CACDrD,IAAK,kBACLN,MAAO,SAAyBquB,GAC9B,IAAK7X,EAASxV,KAAKuK,KAAM8iB,EAAYyB,kBAAoBzB,EAAYC,YAAc9X,EAASxV,KAAKuK,KAAM8iB,EAAY0B,cACjH,OAAO,KAGT,IAAIzf,EAAQ,CACV3M,MAAO,CACL0K,KAAMggB,EAAYyB,eAClBhpB,OAAQunB,EAAYL,aAEtBpqB,IAAK,CACHyK,KAAMggB,EAAY0B,aAClBjpB,OAAQunB,EAAYH,WAEtBR,OAAQW,GA8BV,MA5BA,CAAC/d,EAAM3M,MAAO2M,EAAM1M,KAAKZ,SAAQ,SAAU8a,GAIzC,IAHA,IAAIzP,EAAOyP,EAASzP,KAChBvH,EAASgX,EAAShX,SAEbuH,aAAgB0K,OAAS1K,EAAK4N,WAAW/Z,OAAS,GACzD,GAAImM,EAAK4N,WAAW/Z,OAAS4E,EAC3BuH,EAAOA,EAAK4N,WAAWnV,GACvBA,EAAS,MACJ,IAAIuH,EAAK4N,WAAW/Z,SAAW4E,EAapC,MATEA,GAHFuH,EAAOA,EAAK2hB,qBAEQjX,KACT1K,EAAK6U,KAAKhhB,OACVmM,EAAK4N,WAAW/Z,OAAS,EAEzBmM,EAAK4N,WAAW/Z,OAGhBmM,EAAK4N,WAAW/Z,OAAS,EAOxC4b,EAASzP,KAAOA,EAChByP,EAAShX,OAASA,KAEbwJ,IAER,CACDhQ,IAAK,gBACLN,MAAO,SAAuBsQ,GAC5B,IAAIa,EAASnQ,KAET4uB,EAAUtf,EAAMge,UAAY,CAAChe,EAAM/N,OAAS,CAAC+N,EAAM/N,MAAO+N,EAAM/N,MAAQ+N,EAAMpO,QAC9EqT,EAAO,GACPkT,EAAeznB,KAAK+K,OAAO7J,SAiB/B,OAhBA0tB,EAAQ5sB,SAAQ,SAAUT,EAAOvD,GAC/BuD,EAAQuC,KAAKC,IAAI0jB,EAAe,EAAGlmB,GAEnC,IACI0tB,EAAsBrnB,EADDuI,EAAOpF,OAAOsG,KAAK9P,GACiB,GACzD8P,EAAO4d,EAAoB,GAC3BC,EAAaD,EAAoB,GAGjCE,EAAkBvnB,EADAyJ,EAAKyL,SAASoS,EAAkB,IAANlxB,GACM,GAClDqP,EAAO8hB,EAAgB,GACvBrpB,EAASqpB,EAAgB,GAE7B5a,EAAKnT,KAAKiM,EAAMvH,MAGdyO,EAAKrT,OAAS,EACTqT,EAAKpQ,OAAOoQ,GAGdA,IAER,CACDjV,IAAK,iBACLN,MAAO,SAAwByL,GAC7B,IAAI6E,EAAQtP,KAAKmM,UACjB,GAAa,MAATmD,EAAJ,CACA,IAAIe,EAASrQ,KAAKsQ,UAAUhB,EAAM/N,MAAO+N,EAAMpO,QAC/C,GAAc,MAAVmP,EAAJ,CACA,IAAIlD,EAAQnN,KAAK+K,OAAO7J,SAAW,EAI/BkuB,EADqBxnB,EADD5H,KAAK+K,OAAO7F,KAAKpB,KAAKC,IAAIuL,EAAM/N,MAAO4L,IACJ,GAC5B,GAE3BkiB,EAAOD,EAUX,GARI9f,EAAMpO,OAAS,IAKjBmuB,EAFyBznB,EAFA5H,KAAK+K,OAAO7F,KAAKpB,KAAKC,IAAIuL,EAAM/N,MAAQ+N,EAAMpO,OAAQiM,IAEnB,GAElC,IAGf,MAATiiB,GAAyB,MAARC,EAArB,CACA,IAAIC,EAAe7kB,EAAmB+F,wBAElCH,EAAOK,IAAM4e,EAAa5e,IAC5BjG,EAAmBuE,WAAasgB,EAAa5e,IAAML,EAAOK,IACjDL,EAAOI,OAAS6e,EAAa7e,SACtChG,EAAmBuE,WAAaqB,EAAOI,OAAS6e,EAAa7e,aAGhE,CACDnR,IAAK,iBACLN,MAAO,SAAwBiX,EAAW+W,GACxC,IAAIC,EAAUnjB,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,GAAmBA,UAAU,GAAKmM,EAC9EiX,EAAYpjB,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,GAAmBA,UAAU,GAAKkjB,EAChFjQ,EAAQjT,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,IAAmBA,UAAU,GAG3E,GAFAL,EAAM8kB,KAAK,iBAAkBtY,EAAW+W,EAAaC,EAASC,GAE7C,MAAbjX,GAA8C,MAAxBjW,KAAKuK,KAAK8M,YAA8C,MAAxBpB,EAAUoB,YAA4C,MAAtB4V,EAAQ5V,WAAlG,CAIA,IAAInM,EAAYoD,SAASiB,eACzB,GAAiB,MAAbrE,EAEJ,GAAiB,MAAb+K,EAAmB,CAChBjW,KAAK+R,YAAY/R,KAAKuK,KAAK0E,QAEhC,IAAIuW,EAAOxlB,KAAK2sB,kBAAoB,GAChCD,EAASlH,EAAKkH,OAElB,GAAc,MAAVA,GAAkB3P,GAAS9G,IAAcyW,EAAOoC,gBAAkB9B,IAAgBN,EAAOM,aAAeC,IAAYP,EAAOqC,cAAgB7B,IAAcR,EAAOQ,UAAW,CACnJ,OAAtBjX,EAAUuC,UACZwU,EAAcpsB,MAAM+H,KAAKsN,EAAUoB,WAAW4D,YAAY9V,QAAQ8Q,GAClEA,EAAYA,EAAUoB,YAGA,OAApB4V,EAAQzU,UACV0U,EAAYtsB,MAAM+H,KAAKskB,EAAQ5V,WAAW4D,YAAY9V,QAAQ8nB,GAC9DA,EAAUA,EAAQ5V,YAGpB,IAAI/H,EAAQhB,SAASqf,cACrBre,EAAMse,SAAS3X,EAAW+W,GAC1B1d,EAAM2e,OAAOhB,EAASC,GACtBhiB,EAAUqkB,kBACVrkB,EAAUskB,SAASlgB,SAGrBpE,EAAUqkB,kBACVvvB,KAAKuK,KAAKklB,OACVnhB,SAAS+O,KAAKpO,WAGjB,CACD3P,IAAK,WACLN,MAAO,SAAkBsQ,GACvB,IAAIyN,EAAQjT,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,IAAmBA,UAAU,GACvEkC,EAASlC,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,GAAmBA,UAAU,GAAKgiB,EAAuD,EAAE1c,QAAQC,IASlJ,GAPqB,kBAAV0N,IACT/Q,EAAS+Q,EACTA,GAAQ,GAGVtT,EAAM8kB,KAAK,WAAYjf,GAEV,MAATA,EAAe,CACjB,IAAIiF,EAAOvU,KAAK0vB,cAAcpgB,GAC9BtP,KAAK6sB,eAAepa,MAAMzS,KAAMgsB,EAAmBzX,GAAMpQ,OAAO,CAAC4Y,UAEjE/c,KAAK6sB,eAAe,MAGtB7sB,KAAKwM,OAAOR,KAEb,CACD1M,IAAK,SACLN,MAAO,WACL,IAAIgN,EAASlC,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,GAAmBA,UAAU,GAAKgiB,EAAuD,EAAE1c,QAAQmE,KAC9IrH,EAAWlM,KAAKmM,UAEhBwjB,EAAiB3vB,KAAKqM,WACtBujB,EAAkBhoB,EAAe+nB,EAAgB,GACjDxjB,EAAYyjB,EAAgB,GAC5BvC,EAAcuC,EAAgB,GASlC,GAPA5vB,KAAKmM,UAAYA,EACjBnM,KAAKqsB,WAAagB,EAEI,MAAlBrtB,KAAKmM,YACPnM,KAAKosB,WAAapsB,KAAKmM,YAGpB0f,IAAsD3f,EAAUlM,KAAKmM,WAAY,CACpF,IAAIoG,EAEJ,IAAKvS,KAAKiO,WAA4B,MAAfof,GAAuBA,EAAYX,OAAOY,WAAaD,EAAY1qB,MAAM0K,OAASrN,KAAKqE,OAAOuoB,SAAU,CAC7H,IAAItd,EAAQtP,KAAKqE,OAAO8oB,UAEpB7d,GACFtP,KAAK6sB,eAAevd,EAAM2G,UAAW3G,EAAM0d,YAAa1d,EAAM2d,QAAS3d,EAAM4d,WAIjF,IAKMxa,EALF6B,EAAO,CAACuX,EAAuD,EAAEngB,OAAOma,iBAAkBnf,IAAwD3G,KAAKmM,WAAYxF,IAAwDuF,GAAWF,IAEzOuG,EAAgBvS,KAAK0K,SAAS8J,KAAK/B,MAAMF,EAAe,CAACuZ,EAAuD,EAAEngB,OAAOC,eAAezH,OAAOoQ,IAE5IvI,IAAW8f,EAAuD,EAAE1c,QAAQW,SAG7E2C,EAAiB1S,KAAK0K,SAAS8J,KAAK/B,MAAMC,EAAgB6B,SA7eSlL,EAAkBD,EAAYzJ,UAAWsN,GAAiBC,GAAa7D,EAAkBD,EAAa8D,GAmf3Kwe,EA/doB,GAke7B,SAASlW,EAASgE,EAAQoC,GACxB,IAEEA,EAAWvE,WACX,MAAO2D,GACP,OAAO,EAST,OAJIY,aAAsB7D,OACxB6D,EAAaA,EAAWvE,YAGnBmC,EAAOhE,SAASoG,KAOlB,SAAS7d,EAAQoI,EAAqBvI,GAE7C,aAIA,SAAS0J,EAAQC,GAAmV,OAAtOD,EAArD,oBAAXxI,QAAoD,kBAApBA,OAAOiE,SAAmC,SAAiBwE,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXzI,QAAyByI,EAAIC,cAAgB1I,QAAUyI,IAAQzI,OAAOa,UAAY,gBAAkB4H,IAAyBA,GAEnX,SAAS2B,EAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIN,UAAU,qCAIhH,SAASka,EAAgBxkB,EAAGqB,GAA+G,OAA1GmjB,EAAkBvkB,OAAO+X,gBAAkB,SAAyBhY,EAAGqB,GAAsB,OAAjBrB,EAAEiY,UAAY5W,EAAUrB,IAA6BA,EAAGqB,GAErK,SAASojB,EAAaC,GAAW,IAAIC,EAMrC,WAAuC,GAAuB,qBAAZR,UAA4BA,QAAQS,UAAW,OAAO,EAAO,GAAIT,QAAQS,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQ5jB,UAAU6jB,QAAQtlB,KAAKykB,QAAQS,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAOvI,GAAK,OAAO,GAN9PyI,GAA6B,OAAO,WAAkC,IAAsCC,EAAlCC,EAAQf,EAAgBM,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYhB,EAAgB5iB,MAAMwH,YAAakc,EAASf,QAAQS,UAAUO,EAAO7Z,UAAW8Z,QAAqBF,EAASC,EAAMlR,MAAMzS,KAAM8J,WAAc,OAAO+Z,EAA2B7jB,KAAM0jB,IAE5Z,SAASG,EAA2BC,EAAM5lB,GAAQ,OAAIA,GAA2B,WAAlBoJ,EAAQpJ,IAAsC,oBAATA,EAEpG,SAAgC4lB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,EAFbE,CAAuBF,GAAtC5lB,EAMnI,SAAS0kB,EAAgBpkB,GAAwJ,OAAnJokB,EAAkBnkB,OAAO+X,eAAiB/X,OAAOwlB,eAAiB,SAAyBzlB,GAAK,OAAOA,EAAEiY,WAAahY,OAAOwlB,eAAezlB,KAA8BA,GAnBzKZ,EAAoBS,EAAE8H,EAAqB,KAAK,WAAa,OAAO4R,KACpEna,EAAoBS,EAAE8H,EAAqB,KAAK,WAAa,OAAO0pB,KAsBnG,IAAI9X,EAAoB,SAAU+X,IAhBlC,SAAmBlL,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/b,UAAU,sDAAyD8b,EAASjlB,UAAYlB,OAAOY,OAAOwlB,GAAcA,EAAWllB,UAAW,CAAE6H,YAAa,CAAExI,MAAO4lB,EAAUjd,UAAU,EAAMD,cAAc,KAAemd,GAAY7B,EAAgB4B,EAAUC,GAiBjXC,CAAU/M,EAAM+X,GAEhB,IAAInZ,EAASsM,EAAalL,GAE1B,SAASA,IAGP,OAFA7O,EAAgBlJ,KAAM+X,GAEfpB,EAAOlE,MAAMzS,KAAM8J,WAG5B,OAAOiO,EAXe,CArB0Cna,EAAoB,GAiCnC,UAEnD,SAASiyB,EAAW9hB,GAClB,OAAOA,EAAK0Q,QAAQ,YAAY,SAAU3e,GASxC,MAPgB,CACd,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,SAEUA,QAQd,SAAS/B,EAAQoI,EAAqBvI,GAE7C,aAEA,SAAS0J,EAAQC,GAAmV,OAAtOD,EAArD,oBAAXxI,QAAoD,kBAApBA,OAAOiE,SAAmC,SAAiBwE,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXzI,QAAyByI,EAAIC,cAAgB1I,QAAUyI,IAAQzI,OAAOa,UAAY,gBAAkB4H,IAAyBA,GAEnX,SAAS2B,EAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIN,UAAU,qCAEhH,SAASO,EAAkBC,EAAQC,GAAS,IAAK,IAAIvL,EAAI,EAAGA,EAAIuL,EAAMrI,OAAQlD,IAAK,CAAE,IAAIwL,EAAaD,EAAMvL,GAAIwL,EAAW7K,WAAa6K,EAAW7K,aAAc,EAAO6K,EAAW9B,cAAe,EAAU,UAAW8B,IAAYA,EAAW7B,UAAW,GAAMlJ,OAAOC,eAAe4K,EAAQE,EAAWlK,IAAKkK,IAM7S,SAASwZ,EAAgBxkB,EAAGqB,GAA+G,OAA1GmjB,EAAkBvkB,OAAO+X,gBAAkB,SAAyBhY,EAAGqB,GAAsB,OAAjBrB,EAAEiY,UAAY5W,EAAUrB,IAA6BA,EAAGqB,GAErK,SAASojB,EAAaC,GAAW,IAAIC,EAMrC,WAAuC,GAAuB,qBAAZR,UAA4BA,QAAQS,UAAW,OAAO,EAAO,GAAIT,QAAQS,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQ5jB,UAAU6jB,QAAQtlB,KAAKykB,QAAQS,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAOvI,GAAK,OAAO,GAN9PyI,GAA6B,OAAO,WAAkC,IAAsCC,EAAlCC,EAAQf,EAAgBM,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYhB,EAAgB5iB,MAAMwH,YAAakc,EAASf,QAAQS,UAAUO,EAAO7Z,UAAW8Z,QAAqBF,EAASC,EAAMlR,MAAMzS,KAAM8J,WAAc,OAAO+Z,EAA2B7jB,KAAM0jB,IAE5Z,SAASG,EAA2BC,EAAM5lB,GAAQ,OAAIA,GAA2B,WAAlBoJ,EAAQpJ,IAAsC,oBAATA,EAEpG,SAAgC4lB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,EAFbE,CAAuBF,GAAtC5lB,EAMnI,SAAS0kB,EAAgBpkB,GAAwJ,OAAnJokB,EAAkBnkB,OAAO+X,eAAiB/X,OAAOwlB,eAAiB,SAAyBzlB,GAAK,OAAOA,EAAEiY,WAAahY,OAAOwlB,eAAezlB,KAA8BA,GAIxM,IAAIuxB,EAAqB,SAAUzE,IAhBnC,SAAmB1G,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/b,UAAU,sDAAyD8b,EAASjlB,UAAYlB,OAAOY,OAAOwlB,GAAcA,EAAWllB,UAAW,CAAE6H,YAAa,CAAExI,MAAO4lB,EAAUjd,UAAU,EAAMD,cAAc,KAAemd,GAAY7B,EAAgB4B,EAAUC,GAiBjXC,CAAUiL,EAAOzE,GAEjB,IArBoBliB,EAAa6D,EAAYC,EAqBzCyJ,EAASsM,EAAa8M,GAE1B,SAASA,IAGP,OAFA7mB,EAAgBlJ,KAAM+vB,GAEfpZ,EAAOlE,MAAMzS,KAAM8J,WA2B5B,OArDoBV,EA6BP2mB,EA7BgC7iB,EA8CzC,CAAC,CACH5N,IAAK,QACLN,MAAO,gBAhDwBiO,EA6Bb,CAAC,CACnB3N,IAAK,WACLN,MAAO,YACDgB,KAAK0V,MAAQ1V,KAAKkD,OACpBlD,KAAKyV,WAGR,CACDnW,IAAK,SACLN,MAAO,WACL,OAAO,IAER,CACDM,IAAK,QACLN,MAAO,WACL,MAAO,QA5CiEqK,EAAkBD,EAAYzJ,UAAWsN,GAAiBC,GAAa7D,EAAkBD,EAAa8D,GAqD3K6iB,EAnCgB,CAzByCnyB,EAAoB,GA6DlC,WAEpDmyB,EAAMjlB,SAAW,QACjBilB,EAAMvX,QAAU,KACarS,EAAuB,EAAK4pB,GAIlD,SAAShyB,EAAQoI,EAAqBvI,GAE7C,aACA,SAASsL,EAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIN,UAAU,qCAEhH,IAAIknB,EAAS,SAASA,EAAOxL,GAC3B,IAAI3a,EAAUC,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAElFZ,EAAgBlJ,KAAMgwB,GAEtBhwB,KAAKwkB,MAAQA,EACbxkB,KAAK6J,QAAUA,GAGjBmmB,EAAOtc,SAAW,GACWvN,EAAuB,EAAK6pB,GAIlD,SAASjyB,EAAQoI,EAAqBvI,GAE7C,aACqB,IAAI+tB,EAAyC/tB,EAAoB,GAC7DqyB,EAAsCryB,EAAoB,GAC1DsyB,EAAqCtyB,EAAoB,GAClF,SAAS0J,EAAQC,GAAmV,OAAtOD,EAArD,oBAAXxI,QAAoD,kBAApBA,OAAOiE,SAAmC,SAAiBwE,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXzI,QAAyByI,EAAIC,cAAgB1I,QAAUyI,IAAQzI,OAAOa,UAAY,gBAAkB4H,IAAyBA,GAEnX,SAAS2B,EAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIN,UAAU,qCAEhH,SAASO,EAAkBC,EAAQC,GAAS,IAAK,IAAIvL,EAAI,EAAGA,EAAIuL,EAAMrI,OAAQlD,IAAK,CAAE,IAAIwL,EAAaD,EAAMvL,GAAIwL,EAAW7K,WAAa6K,EAAW7K,aAAc,EAAO6K,EAAW9B,cAAe,EAAU,UAAW8B,IAAYA,EAAW7B,UAAW,GAAMlJ,OAAOC,eAAe4K,EAAQE,EAAWlK,IAAKkK,IAI7S,SAASiZ,EAAKnZ,EAAQ5J,EAAUgjB,GAAuV,OAAtRD,EAA9B,qBAAZE,SAA2BA,QAAQ/jB,IAAc+jB,QAAQ/jB,IAAqB,SAAc0K,EAAQ5J,EAAUgjB,GAAY,IAAIrd,EAErL,SAAwB5F,EAAQC,GAAY,MAAQjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAA8D,QAAjDD,EAASmjB,EAAgBnjB,MAAuC,OAAOA,EAFOojB,CAAevZ,EAAQ5J,GAAW,GAAK2F,EAAL,CAAmB,IAAIyd,EAAOrkB,OAAOskB,yBAAyB1d,EAAM3F,GAAW,OAAIojB,EAAKlkB,IAAckkB,EAAKlkB,IAAIV,KAAKwkB,GAAoBI,EAAK9jB,SAAwBsK,EAAQ5J,EAAUgjB,GAAYpZ,GAMja,SAAS0Z,EAAgBxkB,EAAGqB,GAA+G,OAA1GmjB,EAAkBvkB,OAAO+X,gBAAkB,SAAyBhY,EAAGqB,GAAsB,OAAjBrB,EAAEiY,UAAY5W,EAAUrB,IAA6BA,EAAGqB,GAErK,SAASojB,EAAaC,GAAW,IAAIC,EAMrC,WAAuC,GAAuB,qBAAZR,UAA4BA,QAAQS,UAAW,OAAO,EAAO,GAAIT,QAAQS,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQ5jB,UAAU6jB,QAAQtlB,KAAKykB,QAAQS,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAOvI,GAAK,OAAO,GAN9PyI,GAA6B,OAAO,WAAkC,IAAsCC,EAAlCC,EAAQf,EAAgBM,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYhB,EAAgB5iB,MAAMwH,YAAakc,EAASf,QAAQS,UAAUO,EAAO7Z,UAAW8Z,QAAqBF,EAASC,EAAMlR,MAAMzS,KAAM8J,WAAc,OAAO+Z,EAA2B7jB,KAAM0jB,IAE5Z,SAASG,EAA2BC,EAAM5lB,GAAQ,OAAIA,GAA2B,WAAlBoJ,EAAQpJ,IAAsC,oBAATA,EAEpG,SAAgC4lB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,EAFbE,CAAuBF,GAAtC5lB,EAMnI,SAAS0kB,EAAgBpkB,GAAwJ,OAAnJokB,EAAkBnkB,OAAO+X,eAAiB/X,OAAOwlB,eAAiB,SAAyBzlB,GAAK,OAAOA,EAAEiY,WAAahY,OAAOwlB,eAAezlB,KAA8BA,GAMxM,IAAI2xB,EAAsB,SAAUC,IAlBpC,SAAmBxL,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/b,UAAU,sDAAyD8b,EAASjlB,UAAYlB,OAAOY,OAAOwlB,GAAcA,EAAWllB,UAAW,CAAE6H,YAAa,CAAExI,MAAO4lB,EAAUjd,UAAU,EAAMD,cAAc,KAAemd,GAAY7B,EAAgB4B,EAAUC,GAmBjXC,CAAUqL,EAAQC,GAElB,IA3BoBhnB,EAAa6D,EAAYC,EA2BzCyJ,EAASsM,EAAakN,GAE1B,SAASA,IAGP,OAFAjnB,EAAgBlJ,KAAMmwB,GAEfxZ,EAAOlE,MAAMzS,KAAM8J,WAiD5B,OAjFoBV,EAmCP+mB,EAnCgCjjB,EA2DzC,CAAC,CACH5N,IAAK,UACLN,MAAO,SAAiB8kB,EAAM1gB,GAC5B,IAAIitB,EAAYF,EAAOG,MAAMnrB,QAAQ2e,GACjCyM,EAAaJ,EAAOG,MAAMnrB,QAAQ/B,GAEtC,OAAIitB,GAAa,GAAKE,GAAc,EAC3BF,EAAYE,EAGjBzM,IAAS1gB,EACJ,EAGL0gB,EAAO1gB,GACD,EAGH,MA7EsB6J,EAmCZ,CAAC,CACpB3N,IAAK,WACLN,MAAO,SAAkBuC,EAAOL,EAAQ5C,EAAMU,GAC5C,GAAImxB,EAAOK,QAAQxwB,KAAKga,QAAQlP,SAAUxM,GAAQ,GAAK0B,KAAK+K,OAAOF,MAAMvM,EAAMqtB,EAA8C,MAAE9R,MAAO,CACpI,IAAIzI,EAAOpR,KAAK2Z,QAAQpY,EAAOL,GAE3BlC,GACFoS,EAAK0I,KAAKxb,EAAMU,QAGlByjB,EAAKG,EAAgBuN,EAAOxwB,WAAY,WAAYK,MAAM9B,KAAK8B,KAAMuB,EAAOL,EAAQ5C,EAAMU,KAG7F,CACDM,IAAK,WACLN,MAAO,SAAkB4d,GAGvB,GAFA6F,EAAKG,EAAgBuN,EAAOxwB,WAAY,WAAYK,MAAM9B,KAAK8B,KAAM4c,GAEjE5c,KAAKwZ,kBAAkB2W,GAAUA,EAAOK,QAAQxwB,KAAKga,QAAQlP,SAAU9K,KAAKwZ,OAAOQ,QAAQlP,UAAY,EAAG,CAC5G,IAAI0O,EAASxZ,KAAKwZ,OAAOG,QAAQ3Z,KAAK8F,SAAU9F,KAAKkB,UACrDlB,KAAK0c,aAAalD,GAClBA,EAAOM,KAAK9Z,YAxD0DqJ,EAAkBD,EAAYzJ,UAAWsN,GAAiBC,GAAa7D,EAAkBD,EAAa8D,GAiF3KijB,EAzDiB,CA0DxBxE,EAAmD,YAErDwE,EAAOjU,gBAAkB,CAACiU,EAAQF,EAAqD,EAAGtE,EAAkD,UAAGuE,EAAoD,GAEnMC,EAAOG,MAAQ,CAAC,SAAU,SAC1B,OACA,YAAa,SAAU,SAAU,OAAQ,SAAU,QAEtBnqB,EAAuB,EAAKgqB,GAIlD,SAASpyB,EAAQoI,EAAqBvI,GAE7C,aAK6BuI,EAAuB,EAJpC,WACd,MAAyB,qBAAXsqB,SAOT,SAAS1yB,EAAQD,EAASF,IAEL,SAAS8yB,EAAQ3yB,GAU7C,IASI4yB,EAAU,qBAKVC,EAAU,oBACVC,EAAS,6BACTC,EAAS,eAKTC,EAAS,eAwBTC,EAAU,OAGVC,EAAe,8BAGfC,EAAW,mBAGXC,EAAgB,GACpBA,EAAcR,GAAWQ,EA7CV,kBA8CfA,EA9BqB,wBA8BWA,EA7Bd,qBA8BlBA,EA9Cc,oBA8CWA,EA7CX,iBA8CdA,EA9BiB,yBA8BWA,EA7BX,yBA8BjBA,EA7Bc,sBA6BWA,EA5BV,uBA6BfA,EA5Be,uBA4BWA,EAAcL,GACxCK,EA5CgB,mBA4CWA,EA3CX,mBA4ChBA,EA1CgB,mBA0CWA,EAAcJ,GACzCI,EAzCgB,mBAyCWA,EAxCX,mBAyChBA,EA/Be,uBA+BWA,EA9BJ,8BA+BtBA,EA9BgB,wBA8BWA,EA7BX,yBA6BsC,EACtDA,EArDe,kBAqDWA,EAAcP,GACxCO,EA3CiB,qBA2CW,EAG5B,IAAIC,EAA8B,iBAAVV,GAAsBA,GAAUA,EAAOjyB,SAAWA,QAAUiyB,EAGhFW,EAA0B,iBAARvN,MAAoBA,MAAQA,KAAKrlB,SAAWA,QAAUqlB,KAGxEvZ,EAAO6mB,GAAcC,GAAYC,SAAS,cAATA,GAGjCC,EAAuBzzB,IAAYA,EAAQ4Z,UAAY5Z,EAGvD0zB,EAAaD,GAAgC,iBAAVxzB,GAAsBA,IAAWA,EAAO2Z,UAAY3Z,EAGvF0zB,EAAgBD,GAAcA,EAAW1zB,UAAYyzB,EAUzD,SAASG,EAAYzvB,EAAK0vB,GAGxB,OADA1vB,EAAIqI,IAAIqnB,EAAK,GAAIA,EAAK,IACf1vB,EAWT,SAAS2vB,EAAYtnB,EAAKtL,GAGxB,OADAsL,EAAID,IAAIrL,GACDsL,EAuDT,SAASunB,EAAYC,EAAOC,EAAUC,EAAaC,GACjD,IAAI1wB,GAAS,EACTL,EAAS4wB,EAAQA,EAAM5wB,OAAS,EAKpC,IAHI+wB,GAAa/wB,IACf8wB,EAAcF,IAAQvwB,MAEfA,EAAQL,GACf8wB,EAAcD,EAASC,EAAaF,EAAMvwB,GAAQA,EAAOuwB,GAE3D,OAAOE,EAyCT,SAASE,EAAalzB,GAGpB,IAAI0kB,GAAS,EACb,GAAa,MAAT1kB,GAA0C,mBAAlBA,EAAM0J,SAChC,IACEgb,KAAY1kB,EAAQ,IACpB,MAAOgc,IAEX,OAAO0I,EAUT,SAASyO,EAAWlwB,GAClB,IAAIV,GAAS,EACTmiB,EAAS9iB,MAAMqB,EAAImwB,MAKvB,OAHAnwB,EAAID,SAAQ,SAAShD,EAAOM,GAC1BokB,IAASniB,GAAS,CAACjC,EAAKN,MAEnB0kB,EAWT,SAAS2O,EAAQC,EAAM5sB,GACrB,OAAO,SAAS3E,GACd,OAAOuxB,EAAK5sB,EAAU3E,KAW1B,SAASwxB,EAAWjoB,GAClB,IAAI/I,GAAS,EACTmiB,EAAS9iB,MAAM0J,EAAI8nB,MAKvB,OAHA9nB,EAAItI,SAAQ,SAAShD,GACnB0kB,IAASniB,GAASvC,KAEb0kB,EAIT,IAAI8O,EAAa5xB,MAAMjB,UACnB8yB,EAAYnB,SAAS3xB,UACrB+yB,EAAcj0B,OAAOkB,UAGrBgzB,EAAapoB,EAAK,sBAGlBqoB,EAAc,WAChB,IAAIC,EAAM,SAASC,KAAKH,GAAcA,EAAWxxB,MAAQwxB,EAAWxxB,KAAK4xB,UAAY,IACrF,OAAOF,EAAO,iBAAmBA,EAAO,GAFxB,GAMdG,EAAeP,EAAU/pB,SAGzB9I,EAAiB8yB,EAAY9yB,eAO7BqzB,EAAiBP,EAAYhqB,SAG7BwqB,EAAaC,OAAO,IACtBH,EAAa90B,KAAK0B,GAAgB6e,QAzQjB,sBAyQuC,QACvDA,QAAQ,yDAA0D,SAAW,KAI5E2U,EAAS3B,EAAgBlnB,EAAK6oB,YAASrpB,EACvCjL,EAASyL,EAAKzL,OACdu0B,EAAa9oB,EAAK8oB,WAClBC,EAAejB,EAAQ5zB,OAAOwlB,eAAgBxlB,QAC9C80B,EAAe90B,OAAOY,OACtBm0B,EAAuBd,EAAYc,qBACnC7xB,EAAS6wB,EAAW7wB,OAGpB8xB,EAAmBh1B,OAAOsoB,sBAC1B2M,EAAiBN,EAASA,EAAOO,cAAW5pB,EAC5C6pB,EAAavB,EAAQ5zB,OAAO0C,KAAM1C,QAGlCo1B,EAAWC,GAAUvpB,EAAM,YAC3BwpB,EAAMD,GAAUvpB,EAAM,OACtBypB,EAAUF,GAAUvpB,EAAM,WAC1B0pB,EAAMH,GAAUvpB,EAAM,OACtByO,EAAU8a,GAAUvpB,EAAM,WAC1B2pB,EAAeJ,GAAUr1B,OAAQ,UAGjC01B,EAAqBC,GAASP,GAC9BQ,EAAgBD,GAASL,GACzBO,EAAoBF,GAASJ,GAC7BO,EAAgBH,GAASH,GACzBO,GAAoBJ,GAASpb,GAG7Byb,GAAc31B,EAASA,EAAOa,eAAYoK,EAC1C2qB,GAAgBD,GAAcA,GAAYjR,aAAUzZ,EASxD,SAAS4qB,GAAKC,GACZ,IAAIrzB,GAAS,EACTL,EAAS0zB,EAAUA,EAAQ1zB,OAAS,EAGxC,IADAlB,KAAK2M,UACIpL,EAAQL,GAAQ,CACvB,IAAI2zB,EAAQD,EAAQrzB,GACpBvB,KAAKsK,IAAIuqB,EAAM,GAAIA,EAAM,KA2F7B,SAASC,GAAUF,GACjB,IAAIrzB,GAAS,EACTL,EAAS0zB,EAAUA,EAAQ1zB,OAAS,EAGxC,IADAlB,KAAK2M,UACIpL,EAAQL,GAAQ,CACvB,IAAI2zB,EAAQD,EAAQrzB,GACpBvB,KAAKsK,IAAIuqB,EAAM,GAAIA,EAAM,KAyG7B,SAASE,GAASH,GAChB,IAAIrzB,GAAS,EACTL,EAAS0zB,EAAUA,EAAQ1zB,OAAS,EAGxC,IADAlB,KAAK2M,UACIpL,EAAQL,GAAQ,CACvB,IAAI2zB,EAAQD,EAAQrzB,GACpBvB,KAAKsK,IAAIuqB,EAAM,GAAIA,EAAM,KAuF7B,SAASG,GAAMJ,GACb50B,KAAKi1B,SAAW,IAAIH,GAAUF,GA4FhC,SAASM,GAAcl2B,EAAOm2B,GAG5B,IAAIzR,EAAU7iB,GAAQ7B,IAsrBxB,SAAqBA,GAEnB,OAmFF,SAA2BA,GACzB,OAmIF,SAAsBA,GACpB,QAASA,GAAyB,iBAATA,EApIlBo2B,CAAap2B,IAAUq2B,GAAYr2B,GApFnCs2B,CAAkBt2B,IAAUY,EAAe1B,KAAKc,EAAO,aAC1Dw0B,EAAqBt1B,KAAKc,EAAO,WAAai0B,EAAe/0B,KAAKc,IAAU2xB,GAzrBhD4E,CAAYv2B,GAljB9C,SAAmBQ,EAAGuyB,GAIpB,IAHA,IAAIxwB,GAAS,EACTmiB,EAAS9iB,MAAMpB,KAEV+B,EAAQ/B,GACfkkB,EAAOniB,GAASwwB,EAASxwB,GAE3B,OAAOmiB,EA4iBH8R,CAAUx2B,EAAMkC,OAAQV,QACxB,GAEAU,EAASwiB,EAAOxiB,OAChBu0B,IAAgBv0B,EAEpB,IAAK,IAAI5B,KAAON,GACTm2B,IAAav1B,EAAe1B,KAAKc,EAAOM,IACvCm2B,IAAuB,UAAPn2B,GAAmBo2B,GAAQp2B,EAAK4B,KACpDwiB,EAAOtiB,KAAK9B,GAGhB,OAAOokB,EAaT,SAASiS,GAAYl2B,EAAQH,EAAKN,GAChC,IAAI42B,EAAWn2B,EAAOH,GAChBM,EAAe1B,KAAKuB,EAAQH,IAAQu2B,GAAGD,EAAU52B,UACxC+K,IAAV/K,GAAyBM,KAAOG,KACnCA,EAAOH,GAAON,GAYlB,SAAS82B,GAAahE,EAAOxyB,GAE3B,IADA,IAAI4B,EAAS4wB,EAAM5wB,OACZA,KACL,GAAI20B,GAAG/D,EAAM5wB,GAAQ,GAAI5B,GACvB,OAAO4B,EAGX,OAAQ,EA8BV,SAAS60B,GAAU/2B,EAAOg3B,EAAQC,EAAQC,EAAY52B,EAAKG,EAAQ02B,GACjE,IAAIzS,EAIJ,GAHIwS,IACFxS,EAASjkB,EAASy2B,EAAWl3B,EAAOM,EAAKG,EAAQ02B,GAASD,EAAWl3B,SAExD+K,IAAX2Z,EACF,OAAOA,EAET,IAAK0S,GAASp3B,GACZ,OAAOA,EAET,IAAIq3B,EAAQx1B,GAAQ7B,GACpB,GAAIq3B,GAEF,GADA3S,EA2XJ,SAAwBoO,GACtB,IAAI5wB,EAAS4wB,EAAM5wB,OACfwiB,EAASoO,EAAMtqB,YAAYtG,GAO/B,OAJIA,GAA6B,iBAAZ4wB,EAAM,IAAkBlyB,EAAe1B,KAAK4zB,EAAO,WACtEpO,EAAOniB,MAAQuwB,EAAMvwB,MACrBmiB,EAAOpM,MAAQwa,EAAMxa,OAEhBoM,EApYI4S,CAAet3B,IACnBg3B,EACH,OA6ON,SAAmBhqB,EAAQ8lB,GACzB,IAAIvwB,GAAS,EACTL,EAAS8K,EAAO9K,OAGpB,IADA4wB,IAAUA,EAAQlxB,MAAMM,MACfK,EAAQL,GACf4wB,EAAMvwB,GAASyK,EAAOzK,GAExB,OAAOuwB,EArPIyE,CAAUv3B,EAAO0kB,OAErB,CACL,IAAI3K,EAAMyd,GAAOx3B,GACby3B,EAAS1d,GAAO6X,GAAW7X,GAAO8X,EAEtC,GAAI8C,GAAS30B,GACX,OA0HN,SAAqB03B,EAAQV,GAC3B,GAAIA,EACF,OAAOU,EAAOh0B,QAEhB,IAAIghB,EAAS,IAAIgT,EAAOlvB,YAAYkvB,EAAOx1B,QAE3C,OADAw1B,EAAO/W,KAAK+D,GACLA,EAhIIiT,CAAY33B,EAAOg3B,GAE5B,GAp0BY,mBAo0BRjd,GAAoBA,GAAO4X,GAAY8F,IAAWh3B,EAAS,CAC7D,GAAIyyB,EAAalzB,GACf,OAAOS,EAAST,EAAQ,GAG1B,GADA0kB,EA+XN,SAAyBjkB,GACvB,MAAqC,mBAAtBA,EAAO+H,aAA8BovB,GAAYn3B,GAE5D,GAxVG22B,GADWS,EAwVHvD,EAAa7zB,IAvVH8zB,EAAasD,GAAS,GADjD,IAAoBA,EAzCLC,CAAgBL,EAAS,GAAKz3B,IAClCg3B,EACH,OA6QR,SAAqBhqB,EAAQvM,GAC3B,OAAOs3B,GAAW/qB,EAAQgrB,GAAWhrB,GAASvM,GA9QjCw3B,CAAYj4B,EAhD3B,SAAoBS,EAAQuM,GAC1B,OAAOvM,GAAUs3B,GAAW/qB,EAAQ7K,GAAK6K,GAASvM,GA+ClBy3B,CAAWxT,EAAQ1kB,QAE1C,CACL,IAAKmyB,EAAcpY,GACjB,OAAOtZ,EAAST,EAAQ,GAE1B0kB,EA0YN,SAAwBjkB,EAAQsZ,EAAKoe,EAAWnB,GAC9C,IA5MmBoB,EA4MfC,EAAO53B,EAAO+H,YAClB,OAAQuR,GACN,IArtCiB,uBAstCf,OAAOue,GAAiB73B,GAE1B,IAvuCU,mBAwuCV,IAvuCU,gBAwuCR,OAAO,IAAI43B,GAAM53B,GAEnB,IA3tCc,oBA4tCZ,OA3QN,SAAuB83B,EAAUvB,GAC/B,IAAIU,EAASV,EAASsB,GAAiBC,EAASb,QAAUa,EAASb,OACnE,OAAO,IAAIa,EAAS/vB,YAAYkvB,EAAQa,EAASC,WAAYD,EAASE,YAyQ3DC,CAAcj4B,EAAQu2B,GAE/B,IA7tCa,wBA6tCI,IA5tCJ,wBA6tCb,IA5tCU,qBA4tCI,IA3tCH,sBA2tCkB,IA1tClB,sBA2tCX,IA1tCW,sBA0tCI,IAztCG,6BAytCmB,IAxtCzB,uBAwtCyC,IAvtCzC,uBAwtCV,OA/MN,SAAyB2B,EAAY3B,GACnC,IAAIU,EAASV,EAASsB,GAAiBK,EAAWjB,QAAUiB,EAAWjB,OACvE,OAAO,IAAIiB,EAAWnwB,YAAYkvB,EAAQiB,EAAWH,WAAYG,EAAWz2B,QA6MjE02B,CAAgBn4B,EAAQu2B,GAEjC,KAAKlF,EACH,OArQN,SAAkB7uB,EAAK+zB,EAAQmB,GAE7B,OAAOtF,EADKmE,EAASmB,EAAUhF,EAAWlwB,IAAM,GAAQkwB,EAAWlwB,GACzCyvB,EAAa,IAAIzvB,EAAIuF,aAmQpCqwB,CAASp4B,EAAQu2B,EAAQmB,GAElC,IAhvCY,kBAivCZ,IA5uCY,kBA6uCV,OAAO,IAAIE,EAAK53B,GAElB,IAjvCY,kBAkvCV,OAhQN,SAAqBq4B,GACnB,IAAIpU,EAAS,IAAIoU,EAAOtwB,YAAYswB,EAAO9rB,OAAQglB,EAAQ8B,KAAKgF,IAEhE,OADApU,EAAOqU,UAAYD,EAAOC,UACnBrU,EA6PIsU,CAAYv4B,GAErB,KAAKsxB,EACH,OApPN,SAAkBzmB,EAAK0rB,EAAQmB,GAE7B,OAAOtF,EADKmE,EAASmB,EAAU5E,EAAWjoB,IAAM,GAAQioB,EAAWjoB,GACzCsnB,EAAa,IAAItnB,EAAI9C,aAkPpCywB,CAASx4B,EAAQu2B,EAAQmB,GAElC,IApvCY,kBAqvCV,OA3OeC,EA2OI33B,EA1OhBi1B,GAAgBj2B,OAAOi2B,GAAcx2B,KAAKk5B,IAAW,IAhM/Cc,CAAel5B,EAAO+Z,EAAKgd,GAAWC,IAInDG,IAAUA,EAAQ,IAAInB,IACtB,IAAImD,EAAUhC,EAAMv3B,IAAII,GACxB,GAAIm5B,EACF,OAAOA,EAIT,GAFAhC,EAAM7rB,IAAItL,EAAO0kB,IAEZ2S,EACH,IAAI9sB,EAAQ0sB,EAsQhB,SAAoBx2B,GAClB,OAnOF,SAAwBA,EAAQ24B,EAAUC,GACxC,IAAI3U,EAAS0U,EAAS34B,GACtB,OAAOoB,GAAQpB,GAAUikB,EApwB3B,SAAmBoO,EAAOjS,GAKxB,IAJA,IAAIte,GAAS,EACTL,EAAS2e,EAAO3e,OAChB4E,EAASgsB,EAAM5wB,SAEVK,EAAQL,GACf4wB,EAAMhsB,EAASvE,GAASse,EAAOte,GAEjC,OAAOuwB,EA4vB2BwG,CAAU5U,EAAQ2U,EAAY54B,IAiOzD84B,CAAe94B,EAAQ0B,GAAM61B,IAvQbwB,CAAWx5B,GAASmC,GAAKnC,GAUhD,OA5vBF,SAAmB8yB,EAAOC,GAIxB,IAHA,IAAIxwB,GAAS,EACTL,EAAS4wB,EAAQA,EAAM5wB,OAAS,IAE3BK,EAAQL,IAC8B,IAAzC6wB,EAASD,EAAMvwB,GAAQA,EAAOuwB,MA+uBpC2G,CAAUlvB,GAASvK,GAAO,SAAS05B,EAAUp5B,GACvCiK,IAEFmvB,EAAW15B,EADXM,EAAMo5B,IAIR/C,GAAYjS,EAAQpkB,EAAKy2B,GAAU2C,EAAU1C,EAAQC,EAAQC,EAAY52B,EAAKN,EAAOm3B,OAEhFzS,EAkDT,SAASiV,GAAa35B,GACpB,SAAKo3B,GAASp3B,KAyYEszB,EAzYiBtzB,EA0YxB4zB,GAAeA,KAAcN,MAvYvBsG,GAAW55B,IAAUkzB,EAAalzB,GAAUk0B,EAAajC,GACzDroB,KAAKwrB,GAASp1B,IAqY/B,IAAkBszB,EAtVlB,SAASgF,GAAiBuB,GACxB,IAAInV,EAAS,IAAImV,EAAYrxB,YAAYqxB,EAAYpB,YAErD,OADA,IAAIpE,EAAW3P,GAAQpZ,IAAI,IAAI+oB,EAAWwF,IACnCnV,EA8GT,SAASqT,GAAW/qB,EAAQzC,EAAO9J,EAAQy2B,GACzCz2B,IAAWA,EAAS,IAKpB,IAHA,IAAI8B,GAAS,EACTL,EAASqI,EAAMrI,SAEVK,EAAQL,GAAQ,CACvB,IAAI5B,EAAMiK,EAAMhI,GAEZu3B,EAAW5C,EACXA,EAAWz2B,EAAOH,GAAM0M,EAAO1M,GAAMA,EAAKG,EAAQuM,QAClDjC,EAEJ4rB,GAAYl2B,EAAQH,OAAkByK,IAAb+uB,EAAyB9sB,EAAO1M,GAAOw5B,GAElE,OAAOr5B,EAkCT,SAASs5B,GAAW92B,EAAK3C,GACvB,IAAI4iB,EAAOjgB,EAAIgzB,SACf,OAoKF,SAAmBj2B,GACjB,IAAI6M,SAAc7M,EAClB,MAAgB,UAAR6M,GAA4B,UAARA,GAA4B,UAARA,GAA4B,WAARA,EACrD,cAAV7M,EACU,OAAVA,EAxKEg6B,CAAU15B,GACb4iB,EAAmB,iBAAP5iB,EAAkB,SAAW,QACzC4iB,EAAKjgB,IAWX,SAAS6xB,GAAUr0B,EAAQH,GACzB,IAAIN,EAj8BN,SAAkBS,EAAQH,GACxB,OAAiB,MAAVG,OAAiBsK,EAAYtK,EAAOH,GAg8B/B25B,CAASx5B,EAAQH,GAC7B,OAAOq5B,GAAa35B,GAASA,OAAQ+K,EA7tBvC4qB,GAAKh1B,UAAUgN,MAnEf,WACE3M,KAAKi1B,SAAWf,EAAeA,EAAa,MAAQ,IAmEtDS,GAAKh1B,UAAkB,OAtDvB,SAAoBL,GAClB,OAAOU,KAAKoX,IAAI9X,WAAeU,KAAKi1B,SAAS31B,IAsD/Cq1B,GAAKh1B,UAAUf,IA1Cf,SAAiBU,GACf,IAAI4iB,EAAOliB,KAAKi1B,SAChB,GAAIf,EAAc,CAChB,IAAIxQ,EAASxB,EAAK5iB,GAClB,MA7YiB,8BA6YVokB,OAA4B3Z,EAAY2Z,EAEjD,OAAO9jB,EAAe1B,KAAKgkB,EAAM5iB,GAAO4iB,EAAK5iB,QAAOyK,GAqCtD4qB,GAAKh1B,UAAUyX,IAzBf,SAAiB9X,GACf,IAAI4iB,EAAOliB,KAAKi1B,SAChB,OAAOf,OAA6BnqB,IAAdmY,EAAK5iB,GAAqBM,EAAe1B,KAAKgkB,EAAM5iB,IAwB5Eq1B,GAAKh1B,UAAU2K,IAXf,SAAiBhL,EAAKN,GAGpB,OAFWgB,KAAKi1B,SACX31B,GAAQ40B,QAA0BnqB,IAAV/K,EA5aV,4BA4akDA,EAC9DgB,MAoHT80B,GAAUn1B,UAAUgN,MAjFpB,WACE3M,KAAKi1B,SAAW,IAiFlBH,GAAUn1B,UAAkB,OArE5B,SAAyBL,GACvB,IAAI4iB,EAAOliB,KAAKi1B,SACZ1zB,EAAQu0B,GAAa5T,EAAM5iB,GAE/B,QAAIiC,EAAQ,KAIRA,GADY2gB,EAAKhhB,OAAS,EAE5BghB,EAAKrgB,MAELF,EAAOzD,KAAKgkB,EAAM3gB,EAAO,IAEpB,IAyDTuzB,GAAUn1B,UAAUf,IA7CpB,SAAsBU,GACpB,IAAI4iB,EAAOliB,KAAKi1B,SACZ1zB,EAAQu0B,GAAa5T,EAAM5iB,GAE/B,OAAOiC,EAAQ,OAAIwI,EAAYmY,EAAK3gB,GAAO,IA0C7CuzB,GAAUn1B,UAAUyX,IA9BpB,SAAsB9X,GACpB,OAAOw2B,GAAa91B,KAAKi1B,SAAU31B,IAAQ,GA8B7Cw1B,GAAUn1B,UAAU2K,IAjBpB,SAAsBhL,EAAKN,GACzB,IAAIkjB,EAAOliB,KAAKi1B,SACZ1zB,EAAQu0B,GAAa5T,EAAM5iB,GAO/B,OALIiC,EAAQ,EACV2gB,EAAK9gB,KAAK,CAAC9B,EAAKN,IAEhBkjB,EAAK3gB,GAAO,GAAKvC,EAEZgB,MAkGT+0B,GAASp1B,UAAUgN,MA/DnB,WACE3M,KAAKi1B,SAAW,CACd,KAAQ,IAAIN,GACZ,IAAO,IAAKZ,GAAOe,IACnB,OAAU,IAAIH,KA4DlBI,GAASp1B,UAAkB,OA/C3B,SAAwBL,GACtB,OAAOy5B,GAAW/4B,KAAMV,GAAa,OAAEA,IA+CzCy1B,GAASp1B,UAAUf,IAnCnB,SAAqBU,GACnB,OAAOy5B,GAAW/4B,KAAMV,GAAKV,IAAIU,IAmCnCy1B,GAASp1B,UAAUyX,IAvBnB,SAAqB9X,GACnB,OAAOy5B,GAAW/4B,KAAMV,GAAK8X,IAAI9X,IAuBnCy1B,GAASp1B,UAAU2K,IAVnB,SAAqBhL,EAAKN,GAExB,OADA+5B,GAAW/4B,KAAMV,GAAKgL,IAAIhL,EAAKN,GACxBgB,MAgGTg1B,GAAMr1B,UAAUgN,MApEhB,WACE3M,KAAKi1B,SAAW,IAAIH,IAoEtBE,GAAMr1B,UAAkB,OAxDxB,SAAqBL,GACnB,OAAOU,KAAKi1B,SAAiB,OAAE31B,IAwDjC01B,GAAMr1B,UAAUf,IA5ChB,SAAkBU,GAChB,OAAOU,KAAKi1B,SAASr2B,IAAIU,IA4C3B01B,GAAMr1B,UAAUyX,IAhChB,SAAkB9X,GAChB,OAAOU,KAAKi1B,SAAS7d,IAAI9X,IAgC3B01B,GAAMr1B,UAAU2K,IAnBhB,SAAkBhL,EAAKN,GACrB,IAAIosB,EAAQprB,KAAKi1B,SACjB,GAAI7J,aAAiB0J,GAAW,CAC9B,IAAIoE,EAAQ9N,EAAM6J,SAClB,IAAKlB,GAAQmF,EAAMh4B,OAASi4B,IAE1B,OADAD,EAAM93B,KAAK,CAAC9B,EAAKN,IACVgB,KAETorB,EAAQprB,KAAKi1B,SAAW,IAAIF,GAASmE,GAGvC,OADA9N,EAAM9gB,IAAIhL,EAAKN,GACRgB,MAicT,IAAIg3B,GAAavD,EAAmBpB,EAAQoB,EAAkBh1B,QAyhB9D,WACE,MAAO,IAjhBL+3B,GAtQJ,SAAoBx3B,GAClB,OAAOi0B,EAAe/0B,KAAKc,IAyX7B,SAAS02B,GAAQ12B,EAAOkC,GAEtB,SADAA,EAAmB,MAAVA,EAnxCY,iBAmxCwBA,KAE1B,iBAATlC,GAAqBkyB,EAAStoB,KAAK5J,KAC1CA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,EAAQkC,EAmC7C,SAAS01B,GAAY53B,GACnB,IAAIq4B,EAAOr4B,GAASA,EAAMwI,YAG1B,OAAOxI,KAFqB,mBAARq4B,GAAsBA,EAAK13B,WAAc+yB,GAY/D,SAAS0B,GAAS9B,GAChB,GAAY,MAARA,EAAc,CAChB,IACE,OAAOU,EAAa90B,KAAKo0B,GACzB,MAAOtX,IACT,IACE,OAAQsX,EAAO,GACf,MAAOtX,KAEX,MAAO,GAyDT,SAAS6a,GAAG72B,EAAOoE,GACjB,OAAOpE,IAAUoE,GAAUpE,IAAUA,GAASoE,IAAUA,GAxOrDywB,GA7oCa,qBA6oCD2C,GAAO,IAAI3C,EAAS,IAAIuF,YAAY,MAChDrF,GAAOyC,GAAO,IAAIzC,IAAQjD,GAC1BkD,GAvpCY,oBAupCDwC,GAAOxC,EAAQqF,YAC1BpF,GAAOuC,GAAO,IAAIvC,IAAQlD,GAC1B/X,GAppCY,oBAopCDwd,GAAO,IAAIxd,MACzBwd,GAAS,SAASx3B,GAChB,IAAI0kB,EAASuP,EAAe/0B,KAAKc,GAC7Bq4B,EA7pCQ,mBA6pCD3T,EAAsB1kB,EAAMwI,iBAAcuC,EACjDuvB,EAAajC,EAAOjD,GAASiD,QAAQttB,EAEzC,GAAIuvB,EACF,OAAQA,GACN,KAAKnF,EAAoB,MAzpCf,oBA0pCV,KAAKE,EAAe,OAAOvD,EAC3B,KAAKwD,EAAmB,MAnqCf,mBAoqCT,KAAKC,EAAe,OAAOxD,EAC3B,KAAKyD,GAAmB,MAhqCf,mBAmqCb,OAAO9Q,IAuQX,IAAI7iB,GAAUD,MAAMC,QA2BpB,SAASw0B,GAAYr2B,GACnB,OAAgB,MAATA,GAqGT,SAAkBA,GAChB,MAAuB,iBAATA,GACZA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,GA/jDb,iBAw9CGu6B,CAASv6B,EAAMkC,UAAY03B,GAAW55B,GAiDhE,IAAI20B,GAAWD,GAsLf,WACE,OAAO,GApKT,SAASkF,GAAW55B,GAGlB,IAAI+Z,EAAMqd,GAASp3B,GAASi0B,EAAe/0B,KAAKc,GAAS,GACzD,OAAO+Z,GAAO6X,GAAW7X,GAAO8X,EA2DlC,SAASuF,GAASp3B,GAChB,IAAI6M,SAAc7M,EAClB,QAASA,IAAkB,UAAR6M,GAA4B,YAARA,GA2DzC,SAAS1K,GAAK1B,GACZ,OAAO41B,GAAY51B,GAAUy1B,GAAcz1B,GAtuB7C,SAAkBA,GAChB,IAAKm3B,GAAYn3B,GACf,OAAOm0B,EAAWn0B,GAEpB,IAAIikB,EAAS,GACb,IAAK,IAAIpkB,KAAOb,OAAOgB,GACjBG,EAAe1B,KAAKuB,EAAQH,IAAe,eAAPA,GACtCokB,EAAOtiB,KAAK9B,GAGhB,OAAOokB,EA4tB8C8V,CAAS/5B,GA0ChE1B,EAAOD,QA9VP,SAAmBkB,GACjB,OAAO+2B,GAAU/2B,GAAO,GAAM,MA+VHd,KAAK8B,KAAMpC,EAAoB,IAAKA,EAAoB,GAApBA,CAAwBG,KAIlF,SAASA,EAAQoI,EAAqBvI,GAE7C,aAC+BA,EAAoBS,EAAE8H,EAAqB,KAAK,WAAa,OAAOszB,KACpE77B,EAAoBS,EAAE8H,EAAqB,KAAK,WAAa,OAAOuzB,KACpE97B,EAAoBS,EAAE8H,EAAqB,KAAK,WAAa,OAAOwzB,KAC9E,IAAIC,EAA4Ch8B,EAAoB,GAChEi8B,EAA4Cj8B,EAAoB,GAChEk8B,EAA6Cl8B,EAAoB,IACjEm8B,EAA6Cn8B,EAAoB,IACjEo8B,EAA2Cp8B,EAAoB,GAC/Dq8B,EAAgDr8B,EAAoB,IACpEs8B,EAA2Ct8B,EAAoB,GACxF,SAAS0J,EAAQC,GAAmV,OAAtOD,EAArD,oBAAXxI,QAAoD,kBAApBA,OAAOiE,SAAmC,SAAiBwE,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXzI,QAAyByI,EAAIC,cAAgB1I,QAAUyI,IAAQzI,OAAOa,UAAY,gBAAkB4H,IAAyBA,GAEnX,SAAS2B,EAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIN,UAAU,qCAEhH,SAASO,EAAkBC,EAAQC,GAAS,IAAK,IAAIvL,EAAI,EAAGA,EAAIuL,EAAMrI,OAAQlD,IAAK,CAAE,IAAIwL,EAAaD,EAAMvL,GAAIwL,EAAW7K,WAAa6K,EAAW7K,aAAc,EAAO6K,EAAW9B,cAAe,EAAU,UAAW8B,IAAYA,EAAW7B,UAAW,GAAMlJ,OAAOC,eAAe4K,EAAQE,EAAWlK,IAAKkK,IAE7S,SAAS0hB,EAAa9hB,EAAa6D,EAAYC,GAAmJ,OAAhID,GAAY5D,EAAkBD,EAAYzJ,UAAWsN,GAAiBC,GAAa7D,EAAkBD,EAAa8D,GAAqB9D,EAEzM,SAASqZ,EAAKnZ,EAAQ5J,EAAUgjB,GAAuV,OAAtRD,EAA9B,qBAAZE,SAA2BA,QAAQ/jB,IAAc+jB,QAAQ/jB,IAAqB,SAAc0K,EAAQ5J,EAAUgjB,GAAY,IAAIrd,EAErL,SAAwB5F,EAAQC,GAAY,MAAQjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAA8D,QAAjDD,EAASmjB,EAAgBnjB,MAAuC,OAAOA,EAFOojB,CAAevZ,EAAQ5J,GAAW,GAAK2F,EAAL,CAAmB,IAAIyd,EAAOrkB,OAAOskB,yBAAyB1d,EAAM3F,GAAW,OAAIojB,EAAKlkB,IAAckkB,EAAKlkB,IAAIV,KAAKwkB,GAAoBI,EAAK9jB,SAAwBsK,EAAQ5J,EAAUgjB,GAAYpZ,GAIja,SAASwb,EAAUF,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/b,UAAU,sDAAyD8b,EAASjlB,UAAYlB,OAAOY,OAAOwlB,GAAcA,EAAWllB,UAAW,CAAE6H,YAAa,CAAExI,MAAO4lB,EAAUjd,UAAU,EAAMD,cAAc,KAAemd,GAAY7B,EAAgB4B,EAAUC,GAEnX,SAAS7B,EAAgBxkB,EAAGqB,GAA+G,OAA1GmjB,EAAkBvkB,OAAO+X,gBAAkB,SAAyBhY,EAAGqB,GAAsB,OAAjBrB,EAAEiY,UAAY5W,EAAUrB,IAA6BA,EAAGqB,GAErK,SAASojB,EAAaC,GAAW,IAAIC,EAMrC,WAAuC,GAAuB,qBAAZR,UAA4BA,QAAQS,UAAW,OAAO,EAAO,GAAIT,QAAQS,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQ5jB,UAAU6jB,QAAQtlB,KAAKykB,QAAQS,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAOvI,GAAK,OAAO,GAN9PyI,GAA6B,OAAO,WAAkC,IAAsCC,EAAlCC,EAAQf,EAAgBM,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYhB,EAAgB5iB,MAAMwH,YAAakc,EAASf,QAAQS,UAAUO,EAAO7Z,UAAW8Z,QAAqBF,EAASC,EAAMlR,MAAMzS,KAAM8J,WAAc,OAAO+Z,EAA2B7jB,KAAM0jB,IAE5Z,SAASG,EAA2BC,EAAM5lB,GAAQ,OAAIA,GAA2B,WAAlBoJ,EAAQpJ,IAAsC,oBAATA,EAEpG,SAAgC4lB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,EAFbE,CAAuBF,GAAtC5lB,EAMnI,SAAS0kB,EAAgBpkB,GAAwJ,OAAnJokB,EAAkBnkB,OAAO+X,eAAiB/X,OAAOwlB,eAAiB,SAAyBzlB,GAAK,OAAOA,EAAEiY,WAAahY,OAAOwlB,eAAezlB,KAA8BA,GAUxM,IAAIk7B,EAAkC,SAAUS,GAC9CrV,EAAU4U,EAAoBS,GAE9B,IAAIxjB,EAASsM,EAAayW,GAE1B,SAASA,IAGP,OAFAxwB,EAAgBlJ,KAAM05B,GAEf/iB,EAAOlE,MAAMzS,KAAM8J,WA4B5B,OAzBAohB,EAAawO,EAAoB,CAAC,CAChCp6B,IAAK,OACLN,MAAO,SAAcuC,EAAOL,GAC1B,IAAI6M,EAAO/N,KAAKoa,SAASnY,KAAI,SAAUiZ,GACrC,OAAOA,EAAMha,UAAY,EAAI,GAAKga,EAAMtD,QAAQwiB,aAC/C51B,KAAK,MAAM9B,MAAMnB,EAAOA,EAAQL,GACnC,OAAOzC,OAAOu7B,EAA6D,EAApEv7B,CAAuEsP,KAE/E,CACDzO,IAAK,OACLN,MAAO,SAAcuC,EAAOL,GAG1B,MAAO,UAAUiD,OAAOnE,KAAKq6B,KAAK94B,EAAOL,GAAS,eAElD,CAAC,CACH5B,IAAK,SACLN,MAAO,SAAgBA,GACrB,IAAI4Y,EAAU6K,EAAKG,EAAgB8W,GAAqB,SAAU15B,MAAM9B,KAAK8B,KAAMhB,GAGnF,OADA4Y,EAAQ/K,aAAa,cAAc,GAC5B+K,MAIJ8hB,EApC6B,CAqCpCO,EAA+D,GAE7DN,EAAyB,SAAUW,GACrCxV,EAAU6U,EAAWW,GAErB,IAAI/O,EAAUtI,EAAa0W,GAE3B,SAASA,IAGP,OAFAzwB,EAAgBlJ,KAAM25B,GAEfpO,EAAQ9Y,MAAMzS,KAAM8J,WAU7B,OAPAohB,EAAayO,EAAW,KAAM,CAAC,CAC7Br6B,IAAK,WACLN,MAAO,WACLk7B,EAA0D,EAAEtsB,SAAS8rB,OAIlEC,EAlBoB,CAmB3BC,EAA2D,GAEzDH,EAAoB,SAAUc,GAChCzV,EAAU2U,EAAMc,GAEhB,IAAIC,EAAUvX,EAAawW,GAE3B,SAASA,IAGP,OAFAvwB,EAAgBlJ,KAAMy5B,GAEfe,EAAQ/nB,MAAMzS,KAAM8J,WAG7B,OAAO2vB,EAXe,CAYtBM,EAA4D,GAE9DN,EAAK3uB,SAAW,OAChB2uB,EAAKjhB,QAAU,OACfmhB,EAAU7uB,SAAW,aACrB6uB,EAAUtrB,UAAY,gBACtBsrB,EAAUnhB,QAAU,MACpBkhB,EAAmB5uB,SAAW,uBAC9B4uB,EAAmBrrB,UAAY,0BAC/BqrB,EAAmBlhB,QAAU,MAC7BkhB,EAAmBxd,gBAAkB,CAACyd,GACtCA,EAAUzd,gBAAkB,CAAC8d,EAA0D,EAAGH,EAA2D,EAAGC,EAA4D,GACpNH,EAAUpf,kBAAoBmf,EAC9BC,EAAUc,IAAM,MAKT,SAAS18B,EAAQoI,EAAqBvI,GAE7C,aACqB,IAAI+tB,EAAyC/tB,EAAoB,GAC7D88B,EAA6C98B,EAAoB,GACjE+8B,EAAsC/8B,EAAoB,GAC1Dg9B,EAAsCh9B,EAAoB,GAC1Di9B,EAA0Cj9B,EAAoB,IACvF,SAAS0J,EAAQC,GAAmV,OAAtOD,EAArD,oBAAXxI,QAAoD,kBAApBA,OAAOiE,SAAmC,SAAiBwE,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXzI,QAAyByI,EAAIC,cAAgB1I,QAAUyI,IAAQzI,OAAOa,UAAY,gBAAkB4H,IAAyBA,GAEnX,SAASK,EAAeC,EAAK7J,GAAK,OAUlC,SAAyB6J,GAAO,GAAIjH,MAAMC,QAAQgH,GAAM,OAAOA,EAVtBC,CAAgBD,IAQzD,SAA+BA,EAAK7J,GAAK,IAAI+J,EAAY,MAAPF,EAAc,KAAyB,qBAAX/I,QAA0B+I,EAAI/I,OAAOiE,WAAa8E,EAAI,cAAe,GAAU,MAANE,EAAJ,CAAwB,IAAkDC,EAAIC,EAAlDC,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAmB,IAAM,IAAKL,EAAKA,EAAG7J,KAAK2J,KAAQM,GAAMH,EAAKD,EAAG7E,QAAQmF,QAAoBH,EAAK9G,KAAK4G,EAAGhJ,QAAYhB,GAAKkK,EAAKhH,SAAWlD,GAA3DmK,GAAK,IAAoE,MAAOG,GAAOF,GAAK,EAAMH,EAAKK,EAAO,QAAU,IAAWH,GAAsB,MAAhBJ,EAAW,QAAWA,EAAW,SAAO,QAAU,GAAIK,EAAI,MAAMH,GAAQ,OAAOC,GARzbK,CAAsBV,EAAK7J,IAI5F,SAAqCQ,EAAGgK,GAAU,GAAKhK,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAOiK,EAAkBjK,EAAGgK,GAAS,IAAIhJ,EAAIf,OAAOkB,UAAU+I,SAASxK,KAAKM,GAAGkE,MAAM,GAAI,GAAiE,MAAnD,WAANlD,GAAkBhB,EAAEgJ,cAAahI,EAAIhB,EAAEgJ,YAAYlJ,MAAgB,QAANkB,GAAqB,QAANA,EAAoBoB,MAAM+H,KAAKnK,GAAc,cAANgB,GAAqB,2CAA2CoJ,KAAKpJ,GAAWiJ,EAAkBjK,EAAGgK,QAAzG,GAJ3MK,CAA4BhB,EAAK7J,IAEnI,WAA8B,MAAM,IAAI8K,UAAU,6IAFuFC,GAMzI,SAASN,EAAkBZ,EAAKmB,IAAkB,MAAPA,GAAeA,EAAMnB,EAAI3G,UAAQ8H,EAAMnB,EAAI3G,QAAQ,IAAK,IAAIlD,EAAI,EAAGiL,EAAO,IAAIrI,MAAMoI,GAAMhL,EAAIgL,EAAKhL,IAAOiL,EAAKjL,GAAK6J,EAAI7J,GAAM,OAAOiL,EAQhL,SAASI,EAAkBC,EAAQC,GAAS,IAAK,IAAIvL,EAAI,EAAGA,EAAIuL,EAAMrI,OAAQlD,IAAK,CAAE,IAAIwL,EAAaD,EAAMvL,GAAIwL,EAAW7K,WAAa6K,EAAW7K,aAAc,EAAO6K,EAAW9B,cAAe,EAAU,UAAW8B,IAAYA,EAAW7B,UAAW,GAAMlJ,OAAOC,eAAe4K,EAAQE,EAAWlK,IAAKkK,IAI7S,SAASiZ,EAAKnZ,EAAQ5J,EAAUgjB,GAAuV,OAAtRD,EAA9B,qBAAZE,SAA2BA,QAAQ/jB,IAAc+jB,QAAQ/jB,IAAqB,SAAc0K,EAAQ5J,EAAUgjB,GAAY,IAAIrd,EAErL,SAAwB5F,EAAQC,GAAY,MAAQjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAA8D,QAAjDD,EAASmjB,EAAgBnjB,MAAuC,OAAOA,EAFOojB,CAAevZ,EAAQ5J,GAAW,GAAK2F,EAAL,CAAmB,IAAIyd,EAAOrkB,OAAOskB,yBAAyB1d,EAAM3F,GAAW,OAAIojB,EAAKlkB,IAAckkB,EAAKlkB,IAAIV,KAAKwkB,GAAoBI,EAAK9jB,SAAwBsK,EAAQ5J,EAAUgjB,GAAYpZ,GAMja,SAAS0Z,EAAgBxkB,EAAGqB,GAA+G,OAA1GmjB,EAAkBvkB,OAAO+X,gBAAkB,SAAyBhY,EAAGqB,GAAsB,OAAjBrB,EAAEiY,UAAY5W,EAAUrB,IAA6BA,EAAGqB,GAErK,SAASojB,EAAaC,GAAW,IAAIC,EAMrC,WAAuC,GAAuB,qBAAZR,UAA4BA,QAAQS,UAAW,OAAO,EAAO,GAAIT,QAAQS,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQ5jB,UAAU6jB,QAAQtlB,KAAKykB,QAAQS,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAOvI,GAAK,OAAO,GAN9PyI,GAA6B,OAAO,WAAkC,IAAsCC,EAAlCC,EAAQf,EAAgBM,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYhB,EAAgB5iB,MAAMwH,YAAakc,EAASf,QAAQS,UAAUO,EAAO7Z,UAAW8Z,QAAqBF,EAASC,EAAMlR,MAAMzS,KAAM8J,WAAc,OAAO+Z,EAA2B7jB,KAAM0jB,IAE5Z,SAASG,EAA2BC,EAAM5lB,GAAQ,OAAIA,GAA2B,WAAlBoJ,EAAQpJ,IAAsC,oBAATA,EAEpG,SAAgC4lB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,EAFbE,CAAuBF,GAAtC5lB,EAMnI,SAAS0kB,EAAgBpkB,GAAwJ,OAAnJokB,EAAkBnkB,OAAO+X,eAAiB/X,OAAOwlB,eAAiB,SAAyBzlB,GAAK,OAAOA,EAAEiY,WAAahY,OAAOwlB,eAAezlB,KAA8BA,GAQxM,SAASs8B,EAAO1pB,GACd,OAAOA,aAAgBupB,EAAqD,GAAKvpB,aAAgBupB,EAAwD,EAG3J,IAAII,EAAsB,SAAUC,IAxBpC,SAAmBpW,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/b,UAAU,sDAAyD8b,EAASjlB,UAAYlB,OAAOY,OAAOwlB,GAAcA,EAAWllB,UAAW,CAAE6H,YAAa,CAAExI,MAAO4lB,EAAUjd,UAAU,EAAMD,cAAc,KAAemd,GAAY7B,EAAgB4B,EAAUC,GAyBjXC,CAAUiW,EAAQC,GAElB,IAjCoB5xB,EAAa6D,EAAYC,EAiCzCyJ,EAASsM,EAAa8X,GAE1B,SAASA,EAAOnwB,EAAUgN,EAAS4N,GACjC,IAAI5b,EAEAc,EAAU8a,EAAK9a,QACfM,EAAmBwa,EAAKxa,iBAiB5B,OA5DJ,SAAyB7B,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIN,UAAU,qCA6C5GI,CAAgBlJ,KAAM+6B,IAEtBnxB,EAAQ+M,EAAOzY,KAAK8B,KAAM4K,EAAUgN,IAC9BlN,QAAUA,EAChBd,EAAMoB,iBAAmBA,EACzBpB,EAAMqxB,OAAQ,EAEdrxB,EAAMyQ,WAENzQ,EAAMiF,SAENjF,EAAMgO,QAAQuM,iBAAiB,aAAa,SAAUnJ,GACpD,OAAOpR,EAAMsxB,gBAAgBlgB,MAGxBpR,EAwNT,OAhRoBR,EA2DP2xB,GA3DoB9tB,EA2DZ,CAAC,CACpB3N,IAAK,aACLN,MAAO,WACA4B,MAAMC,QAAQb,KAAKi7B,SACtBj7B,KAAKi7B,MAAQ,MAGhB,CACD37B,IAAK,WACLN,MAAO,WACL,IAAIiN,EAAYjM,KAAKi7B,MACrBj7B,KAAKi7B,OAAQ,EACbj7B,KAAKwM,OAAOP,KAEb,CACD3M,IAAK,YACLN,MAAO,SAAmBoS,GACxBpR,KAAK0K,QAAQ8J,KAAKkmB,EAA4D,EAAE/uB,OAAOga,kBAAmBvU,KAE3G,CACD9R,IAAK,cACLN,MAAO,SAAqBoS,GAC1BpR,KAAK0K,QAAQ8J,KAAKkmB,EAA4D,EAAE/uB,OAAOia,oBAAqBxU,KAE7G,CACD9R,IAAK,WACLN,MAAO,SAAkBuC,EAAOL,GAC9B,IACIi6B,EAAcvzB,EADD5H,KAAKkF,KAAK3D,GACkB,GACzC6tB,EAAQ+L,EAAY,GACpBr1B,EAASq1B,EAAY,GAIrB9L,EADcznB,EADA5H,KAAKkF,KAAK3D,EAAQL,GACU,GACvB,GAIvB,GAFAuhB,EAAKG,EAAgBmY,EAAOp7B,WAAY,WAAYK,MAAM9B,KAAK8B,KAAMuB,EAAOL,GAEhE,MAARmuB,GAAgBD,IAAUC,GAAQvpB,EAAS,EAAG,CAChD,GAAIspB,aAAiBuL,EAAwD,GAAKtL,aAAgBsL,EAAwD,EAExJ,YADA36B,KAAKqa,WAIP,IAAIF,EAAMkV,EAAKjV,SAASlF,gBAAgB0lB,EAAqD,EAAI,KAAOvL,EAAKjV,SAASlF,KACtHka,EAAM1S,aAAa2S,EAAMlV,GACzBiV,EAAM3Z,SAGRzV,KAAKqa,aAEN,CACD/a,IAAK,SACLN,MAAO,WACL,IAAI+P,IAAUjF,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,KAAmBA,UAAU,GAC7E9J,KAAK4X,QAAQ/K,aAAa,kBAAmBkC,KAE9C,CACDzP,IAAK,WACLN,MAAO,SAAkBuC,EAAOL,EAAQ0O,EAAQ5Q,GAC9CyjB,EAAKG,EAAgBmY,EAAOp7B,WAAY,WAAYK,MAAM9B,KAAK8B,KAAMuB,EAAOL,EAAQ0O,EAAQ5Q,GAE5FgB,KAAKqa,aAEN,CACD/a,IAAK,kBACLN,MAAO,SAAyBqmB,GAC9BA,EAAM+V,mBAEP,CACD97B,IAAK,WACLN,MAAO,SAAkBuC,EAAOvC,EAAOkb,GACrC,GAAI3Y,GAASvB,KAAKkB,SAChB,GAAW,MAAPgZ,GAAkG,MAAnFla,KAAK+K,OAAOF,MAAM7L,EAAO2sB,EAA8C,MAAEjc,OAAgB,CAC1G,IAAI0B,EAAOpR,KAAK+K,OAAO1L,OAAOW,KAAKga,QAAQ6C,aAAa/R,UACxD9K,KAAK6a,YAAYzJ,GAEN,MAAP8I,GAAelb,EAAM6oB,SAAS,MAChCzW,EAAK6I,SAAS,EAAGjb,EAAM0D,MAAM,GAAI,GAAIwX,GAErC9I,EAAK6I,SAAS,EAAGjb,EAAOkb,OAErB,CACL,IAAIlI,EAAQhS,KAAK+K,OAAO1L,OAAOL,EAAOkb,GACtCla,KAAK6a,YAAY7I,QAGnByQ,EAAKG,EAAgBmY,EAAOp7B,WAAY,WAAYK,MAAM9B,KAAK8B,KAAMuB,EAAOvC,EAAOkb,GAGrFla,KAAKqa,aAEN,CACD/a,IAAK,eACLN,MAAO,SAAsBoS,EAAM+I,GACjC,GAAI/I,EAAK4I,QAAQnC,QAAU8T,EAA8C,MAAE1N,YAAa,CACtF,IAAIrD,EAAU5a,KAAK+K,OAAO1L,OAAOW,KAAKga,QAAQ6C,aAAa/R,UAC3D8P,EAAQC,YAAYzJ,GAEpBqR,EAAKG,EAAgBmY,EAAOp7B,WAAY,eAAgBK,MAAM9B,KAAK8B,KAAM4a,EAAST,QAElFsI,EAAKG,EAAgBmY,EAAOp7B,WAAY,eAAgBK,MAAM9B,KAAK8B,KAAMoR,EAAM+I,KAGlF,CACD7a,IAAK,YACLN,MAAO,WACL,MAAwD,SAAjDgB,KAAK4X,QAAQS,aAAa,qBAElC,CACD/Y,IAAK,OACLN,MAAO,SAAcuC,GACnB,OAAOvB,KAAKwN,KAAKjM,GAAOM,OAAS,CAAC,MAAO,KAE1C,CACDvC,IAAK,OACLN,MAAO,SAAcuC,GACnB,OAAIA,IAAUvB,KAAKkB,SACVlB,KAAKkF,KAAK3D,EAAQ,GAGpBvB,KAAK4b,WAAWkf,EAAQv5B,KAEhC,CACDjC,IAAK,QACLN,MAAO,WACL,IAAIuC,EAAQuI,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,EAC5E5I,EAAS4I,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,GAAmBA,UAAU,GAAKwH,OAAOC,UAEpF8pB,EAAW,SAASA,EAASjqB,EAAMkqB,EAAWC,GAChD,IAAI/pB,EAAQ,GACRuK,EAAawf,EAUjB,OATAnqB,EAAKgJ,SAASrE,UAAUulB,EAAWC,GAAY,SAAUrgB,EAAOc,EAAYL,GACtEmf,EAAO5f,GACT1J,EAAMpQ,KAAK8Z,GACFA,aAAiByQ,EAAsD,gBAChFna,EAAQA,EAAMrN,OAAOk3B,EAASngB,EAAOc,EAAYD,KAGnDA,GAAcJ,KAETnK,GAGT,OAAO6pB,EAASr7B,KAAMuB,EAAOL,KAE9B,CACD5B,IAAK,WACLN,MAAO,WACL,IAAIiN,EAAYnC,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAChF8S,EAAU9S,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAC9E9J,KAAKi7B,QAETxY,EAAKG,EAAgBmY,EAAOp7B,WAAY,WAAYK,MAAM9B,KAAK8B,KAAMiM,EAAW2Q,GAE5E3Q,EAAU/K,OAAS,GACrBlB,KAAK0K,QAAQ8J,KAAKkmB,EAA4D,EAAE/uB,OAAOka,gBAAiB5Z,EAAW2Q,MAGtH,CACDtd,IAAK,OACLN,MAAO,SAAcuC,GACnB,OAAOkhB,EAAKG,EAAgBmY,EAAOp7B,WAAY,OAAQK,MAAM9B,KAAK8B,KAAMuB,GAAOmB,MAAM,KAEtF,CACDpD,IAAK,SACLN,MAAO,cAEN,CACDM,IAAK,SACLN,MAAO,SAAgBiN,GACrB,IAAIyC,EAAS1O,KAEb,GAAIA,KAAKi7B,MACHr6B,MAAMC,QAAQoL,KAChBjM,KAAKi7B,MAAQj7B,KAAKi7B,MAAM92B,OAAO8H,GAC/BjM,KAAKgL,wBAHT,CASA,IAAIgB,EAAS0uB,EAA4D,EAAEtrB,QAAQmE,KAE1D,kBAAdtH,IACTD,EAASC,GAGNrL,MAAMC,QAAQoL,KACjBA,EAAYjM,KAAKkhB,SAASM,gBAG5BvV,EAAYA,EAAUnK,QAAO,SAAU0oB,GACrC,IAAIlhB,EAASkhB,EAAMlhB,OAEf8H,EAAO1C,EAAOpB,KAAKhE,GAAQ,GAE/B,OAAO8H,GAAQA,EAAKrG,SAAW2D,MAGnBxN,OAAS,GACrBlB,KAAK0K,QAAQ8J,KAAKkmB,EAA4D,EAAE/uB,OAAO+Z,qBAAsB1Z,EAAQC,GAGvHwW,EAAKG,EAAgBmY,EAAOp7B,WAAY,SAAUK,MAAM9B,KAAK8B,KAAMiM,EAAU9H,OAAO,KAGhF8H,EAAU/K,OAAS,GACrBlB,KAAK0K,QAAQ8J,KAAKkmB,EAA4D,EAAE/uB,OAAOI,cAAeC,EAAQC,SA3QxC5C,EAAkBD,EAAYzJ,UAAWsN,GAAiBC,GAAa7D,EAAkBD,EAAa8D,GAgR3K6tB,EAlPiB,CAmPxBpP,EAAmD,YAErDoP,EAAOjwB,SAAW,SAClBiwB,EAAO1sB,UAAY,YACnB0sB,EAAOviB,QAAU,MACjBuiB,EAAOle,aAAe8d,EAAqD,EAC3EI,EAAO7e,gBAAkB,CAACye,EAAqD,EAAGA,EAAwD,EAAGE,EAAyD,GACzK10B,EAAuB,EAAK40B,GAIlD,SAASh9B,EAAQoI,EAAqBvI,GAE7C,aACA,IAAI49B,EAAS,CAAC,QAAS,OAAQ,MAAO,QAClCpuB,EAAQ,OAEZ,SAAS3D,EAAMgyB,GACb,GAAID,EAAOr2B,QAAQs2B,IAAWD,EAAOr2B,QAAQiI,GAAQ,CAGnD,IAFA,IAAIsuB,EAEKtX,EAAOta,UAAU5I,OAAQqT,EAAO,IAAI3T,MAAMwjB,EAAO,EAAIA,EAAO,EAAI,GAAIC,EAAO,EAAGA,EAAOD,EAAMC,IAClG9P,EAAK8P,EAAO,GAAKva,UAAUua,IAG5BqX,EAAWC,SAASF,GAAQhpB,MAAMipB,EAAUnnB,IAKjD,SAASqnB,EAAUx8B,GACjB,OAAOo8B,EAAOl5B,QAAO,SAAUu5B,EAAQJ,GAErC,OADAI,EAAOJ,GAAUhyB,EAAMlK,KAAKo8B,QAASF,EAAQr8B,GACtCy8B,IACN,IAGLD,EAAUxuB,MAAQ,SAAU0uB,GAC1B1uB,EAAQ0uB,GAGVryB,EAAM2D,MAAQwuB,EAAUxuB,MACKjH,EAAuB,EAAKy1B,GAIlD,SAAS79B,EAAQoI,EAAqBvI,GAE7C,aAEA,SAAS0J,EAAQC,GAAmV,OAAtOD,EAArD,oBAAXxI,QAAoD,kBAApBA,OAAOiE,SAAmC,SAAiBwE,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXzI,QAAyByI,EAAIC,cAAgB1I,QAAUyI,IAAQzI,OAAOa,UAAY,gBAAkB4H,IAAyBA,GAEnX,SAAS2B,EAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIN,UAAU,qCAIhH,SAASka,EAAgBxkB,EAAGqB,GAA+G,OAA1GmjB,EAAkBvkB,OAAO+X,gBAAkB,SAAyBhY,EAAGqB,GAAsB,OAAjBrB,EAAEiY,UAAY5W,EAAUrB,IAA6BA,EAAGqB,GAErK,SAASojB,EAAaC,GAAW,IAAIC,EAMrC,WAAuC,GAAuB,qBAAZR,UAA4BA,QAAQS,UAAW,OAAO,EAAO,GAAIT,QAAQS,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQ5jB,UAAU6jB,QAAQtlB,KAAKykB,QAAQS,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAOvI,GAAK,OAAO,GAN9PyI,GAA6B,OAAO,WAAkC,IAAsCC,EAAlCC,EAAQf,EAAgBM,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYhB,EAAgB5iB,MAAMwH,YAAakc,EAASf,QAAQS,UAAUO,EAAO7Z,UAAW8Z,QAAqBF,EAASC,EAAMlR,MAAMzS,KAAM8J,WAAc,OAAO+Z,EAA2B7jB,KAAM0jB,IAE5Z,SAASG,EAA2BC,EAAM5lB,GAAQ,OAAIA,GAA2B,WAAlBoJ,EAAQpJ,IAAsC,oBAATA,EAEpG,SAAgC4lB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,EAFbE,CAAuBF,GAAtC5lB,EAMnI,SAAS0kB,EAAgBpkB,GAAwJ,OAAnJokB,EAAkBnkB,OAAO+X,eAAiB/X,OAAOwlB,eAAiB,SAAyBzlB,GAAK,OAAOA,EAAEiY,WAAahY,OAAOwlB,eAAezlB,KAA8BA,GAIxM,IAAIu9B,EAAyB,SAAUC,IAhBvC,SAAmBpX,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/b,UAAU,sDAAyD8b,EAASjlB,UAAYlB,OAAOY,OAAOwlB,GAAcA,EAAWllB,UAAW,CAAE6H,YAAa,CAAExI,MAAO4lB,EAAUjd,UAAU,EAAMD,cAAc,KAAemd,GAAY7B,EAAgB4B,EAAUC,GAiBjXC,CAAUiX,EAAWC,GAErB,IAAIrlB,EAASsM,EAAa8Y,GAE1B,SAASA,IAGP,OAFA7yB,EAAgBlJ,KAAM+7B,GAEfplB,EAAOlE,MAAMzS,KAAM8J,WAG5B,OAAOiyB,EAXoB,CArBqCn+B,EAAoB,GAiC9B,eAE3BuI,EAAuB,EAAK41B,GAIlD,SAASh+B,EAAQoI,EAAqBvI,GAE7C,aACqB,IAAI+tB,EAAyC/tB,EAAoB,GAC7Dq+B,EAAqCr+B,EAAoB,GAClF,SAAS0J,EAAQC,GAAmV,OAAtOD,EAArD,oBAAXxI,QAAoD,kBAApBA,OAAOiE,SAAmC,SAAiBwE,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXzI,QAAyByI,EAAIC,cAAgB1I,QAAUyI,IAAQzI,OAAOa,UAAY,gBAAkB4H,IAAyBA,GAInX,SAAS8B,EAAkBC,EAAQC,GAAS,IAAK,IAAIvL,EAAI,EAAGA,EAAIuL,EAAMrI,OAAQlD,IAAK,CAAE,IAAIwL,EAAaD,EAAMvL,GAAIwL,EAAW7K,WAAa6K,EAAW7K,aAAc,EAAO6K,EAAW9B,cAAe,EAAU,UAAW8B,IAAYA,EAAW7B,UAAW,GAAMlJ,OAAOC,eAAe4K,EAAQE,EAAWlK,IAAKkK,IAI7S,SAASiZ,EAAKnZ,EAAQ5J,EAAUgjB,GAAuV,OAAtRD,EAA9B,qBAAZE,SAA2BA,QAAQ/jB,IAAc+jB,QAAQ/jB,IAAqB,SAAc0K,EAAQ5J,EAAUgjB,GAAY,IAAIrd,EAErL,SAAwB5F,EAAQC,GAAY,MAAQjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAA8D,QAAjDD,EAASmjB,EAAgBnjB,MAAuC,OAAOA,EAFOojB,CAAevZ,EAAQ5J,GAAW,GAAK2F,EAAL,CAAmB,IAAIyd,EAAOrkB,OAAOskB,yBAAyB1d,EAAM3F,GAAW,OAAIojB,EAAKlkB,IAAckkB,EAAKlkB,IAAIV,KAAKwkB,GAAoBI,EAAK9jB,SAAwBsK,EAAQ5J,EAAUgjB,GAAYpZ,GAMja,SAAS0Z,EAAgBxkB,EAAGqB,GAA+G,OAA1GmjB,EAAkBvkB,OAAO+X,gBAAkB,SAAyBhY,EAAGqB,GAAsB,OAAjBrB,EAAEiY,UAAY5W,EAAUrB,IAA6BA,EAAGqB,GAErK,SAASojB,EAAaC,GAAW,IAAIC,EAMrC,WAAuC,GAAuB,qBAAZR,UAA4BA,QAAQS,UAAW,OAAO,EAAO,GAAIT,QAAQS,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQ5jB,UAAU6jB,QAAQtlB,KAAKykB,QAAQS,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAOvI,GAAK,OAAO,GAN9PyI,GAA6B,OAAO,WAAkC,IAAsCC,EAAlCC,EAAQf,EAAgBM,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYhB,EAAgB5iB,MAAMwH,YAAakc,EAASf,QAAQS,UAAUO,EAAO7Z,UAAW8Z,QAAqBF,EAASC,EAAMlR,MAAMzS,KAAM8J,WAAc,OAAO+Z,EAA2B7jB,KAAM0jB,IAE5Z,SAASG,EAA2BC,EAAM5lB,GAAQ,OAAIA,GAA2B,WAAlBoJ,EAAQpJ,IAAsC,oBAATA,EAEpG,SAAgC4lB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,EAFbE,CAAuBF,GAAtC5lB,EAMnI,SAAS0kB,EAAgBpkB,GAAwJ,OAAnJokB,EAAkBnkB,OAAO+X,eAAiB/X,OAAOwlB,eAAiB,SAAyBzlB,GAAK,OAAOA,EAAEiY,WAAahY,OAAOwlB,eAAezlB,KAA8BA,GAKxM,IAAI09B,EAAsB,SAAU5Q,IAjBpC,SAAmB1G,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/b,UAAU,sDAAyD8b,EAASjlB,UAAYlB,OAAOY,OAAOwlB,GAAcA,EAAWllB,UAAW,CAAE6H,YAAa,CAAExI,MAAO4lB,EAAUjd,UAAU,EAAMD,cAAc,KAAemd,GAAY7B,EAAgB4B,EAAUC,GAkBjXC,CAAUoX,EAAQ5Q,GAElB,IA1BoBliB,EAAa6D,EAAYC,EA0BzCyJ,EAASsM,EAAaiZ,GAE1B,SAASA,EAAOnxB,EAAQ6M,EAAS1M,GAC/B,IAAItB,EAWJ,OA5CJ,SAAyBT,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIN,UAAU,qCAmC5GI,CAAgBlJ,KAAMk8B,IAEtBtyB,EAAQ+M,EAAOzY,KAAK8B,KAAM+K,EAAQ6M,IAC5B1M,UAAYA,EAClBtB,EAAMgjB,SAAWte,SAAS2T,eAAeia,EAAOvT,UAEhD/e,EAAMgO,QAAQiD,YAAYjR,EAAMgjB,UAEhChjB,EAAMuyB,YAAc,EACbvyB,EA8JT,OAtMoBR,EA2CP8yB,EA3CgChvB,EA+LzC,CAAC,CACH5N,IAAK,QACLN,MAAO,gBAjMwBiO,EA2CZ,CAAC,CACpB3N,IAAK,SACLN,MAAO,WAEc,MAAfgB,KAAKwZ,QAAgBxZ,KAAKwZ,OAAOC,YAAYzZ,QAElD,CACDV,IAAK,SACLN,MAAO,SAAgBV,EAAMU,GAC3B,GAAyB,IAArBgB,KAAKm8B,YAAT,CASA,IAHA,IAAI7yB,EAAStJ,KACTuB,EAAQ,EAEK,MAAV+H,GAAkBA,EAAO0Q,QAAQnC,QAAU8T,EAA8C,MAAExP,YAChG5a,GAAS+H,EAAOxD,OAAOwD,EAAOkQ,QAC9BlQ,EAASA,EAAOkQ,OAGJ,MAAVlQ,IACFtJ,KAAKm8B,YAAcD,EAAOvT,SAASznB,OACnCoI,EAAO+Q,WACP/Q,EAAOsQ,SAASrY,EAAO26B,EAAOvT,SAASznB,OAAQ5C,EAAMU,GACrDgB,KAAKm8B,YAAc,QAjBnB1Z,EAAKG,EAAgBsZ,EAAOv8B,WAAY,SAAUK,MAAM9B,KAAK8B,KAAM1B,EAAMU,KAoB5E,CACDM,IAAK,QACLN,MAAO,SAAeqO,EAAMvH,GAC1B,OAAIuH,IAASrN,KAAK4sB,SAAiB,EAC5BnK,EAAKG,EAAgBsZ,EAAOv8B,WAAY,QAASK,MAAM9B,KAAK8B,KAAMqN,EAAMvH,KAEhF,CACDxG,IAAK,SACLN,MAAO,WACL,OAAOgB,KAAKm8B,cAEb,CACD78B,IAAK,WACLN,MAAO,WACL,MAAO,CAACgB,KAAK4sB,SAAU5sB,KAAK4sB,SAAS1K,KAAKhhB,UAE3C,CACD5B,IAAK,SACLN,MAAO,WACLyjB,EAAKG,EAAgBsZ,EAAOv8B,WAAY,SAAUK,MAAM9B,KAAK8B,MAE7DA,KAAKwZ,OAAS,OAEf,CACDla,IAAK,UACLN,MAAO,WACL,GAAIgB,KAAKkL,UAAU+C,WAA4B,MAAfjO,KAAKwZ,OAAgB,OAAO,KAG5D,IAFA,IAAIlK,EAAQtP,KAAKkL,UAAUyhB,iBAEM,MAA1B3sB,KAAK4X,QAAQoX,WAAqBhvB,KAAK4X,QAAQoX,YAAchvB,KAAK4sB,UACvE5sB,KAAK4X,QAAQP,WAAW7I,aAAaxO,KAAK4X,QAAQoX,UAAWhvB,KAAK4X,SAGpE,IAYIwkB,EAZAC,EAAer8B,KAAK0V,gBAAgBumB,EAAoD,EAAIj8B,KAAK0V,KAAO,KACxG4mB,EAAiBD,EAAeA,EAAan7B,SAAW,EACxDq7B,EAAev8B,KAAKkD,gBAAgB+4B,EAAoD,EAAIj8B,KAAKkD,KAAO,KACxGs5B,EAAWD,EAAeA,EAAaxuB,KAAO,GAC9C6e,EAAW5sB,KAAK4sB,SAEhB/D,EAAU+D,EAAS1K,KAAK5J,MAAM4jB,EAAOvT,UAAUnkB,KAAK,IAQxD,GAPAooB,EAAS1K,KAAOga,EAAOvT,SAOnB0T,EACFD,EAAiBC,GAEbxT,GAAW0T,KACbF,EAAapiB,SAASoiB,EAAan7B,SAAU2nB,EAAU2T,GAEnDD,GACFA,EAAa9mB,eAGZ,GAAI8mB,EACTH,EAAiBG,EACjBA,EAAatiB,SAAS,EAAG4O,OACpB,CACL,IAAI4T,EAAcnuB,SAAS2T,eAAe4G,GAC1CuT,EAAiBp8B,KAAK+K,OAAO1L,OAAOo9B,GACpCz8B,KAAKwZ,OAAOhL,aAAa4tB,EAAgBp8B,MAK3C,GAFAA,KAAKyV,SAEDnG,EAAO,CAET,IAAIotB,EAAc,SAAqBrvB,EAAMvH,GAC3C,OAAIu2B,GAAgBhvB,IAASgvB,EAAazkB,QACjC9R,EAGLuH,IAASuf,EACJ0P,EAAiBx2B,EAAS,EAG/By2B,GAAgBlvB,IAASkvB,EAAa3kB,QACjC0kB,EAAiBzT,EAAQ3nB,OAAS4E,EAGpC,MAGLnD,EAAQ+5B,EAAYptB,EAAM3M,MAAM0K,KAAMiC,EAAM3M,MAAMmD,QAClDlD,EAAM85B,EAAYptB,EAAM1M,IAAIyK,KAAMiC,EAAM1M,IAAIkD,QAEhD,GAAc,OAAVnD,GAA0B,OAARC,EACpB,MAAO,CACLqT,UAAWmmB,EAAexkB,QAC1BoV,YAAarqB,EACbsqB,QAASmP,EAAexkB,QACxBsV,UAAWtqB,GAKjB,OAAO,OAER,CACDtD,IAAK,SACLN,MAAO,SAAgBiN,EAAW2Q,GAChC,IAAIlO,EAAS1O,KAEb,GAAIiM,EAAUsM,MAAK,SAAU6E,GAC3B,MAAyB,kBAAlBA,EAASvR,MAA4BuR,EAAS9T,SAAWoF,EAAOke,YACrE,CACF,IAAItd,EAAQtP,KAAKmtB,UACb7d,IAAOsN,EAAQtN,MAAQA,MAG9B,CACDhQ,IAAK,QACLN,MAAO,WACL,MAAO,QA7LiEqK,EAAkBD,EAAYzJ,UAAWsN,GAAiBC,GAAa7D,EAAkBD,EAAa8D,GAsM3KgvB,EA/KiB,CAgLxBvQ,EAAkD,WAEpDuQ,EAAOpxB,SAAW,SAClBoxB,EAAO7tB,UAAY,YACnB6tB,EAAO1jB,QAAU,OACjB0jB,EAAOvT,SAAW,SAEWxiB,EAAuB,EAAK+1B,GAIlD,SAASn+B,EAAQoI,EAAqBvI,GAE7C,aAEAA,EAAoBiB,EAAEsH,GAGtB,IAAIqe,EAAQ5mB,EAAoB,GAG5Bqa,EAAQra,EAAoB,GAG5B++B,EAAc/+B,EAAoB,GAGlC+L,EAAY/L,EAAoB,IAGhCyG,EAASzG,EAAoB,IAG7Bg/B,EAAch/B,EAAoB,IAGlCua,EAASva,EAAoB,IAG7Bi/B,EAAej/B,EAAoB,IAGnCk/B,EAAal/B,EAAoB,GAGjC0N,EAAY1N,EAAoB,IAGhCm/B,EAAkBn/B,EAAoB,IAGtCwN,EAAWxN,EAAoB,IAG/B8C,EAAQ9C,EAAoB,GAC5Bo/B,EAA6Bp/B,EAAoB4B,EAAEkB,GAGnDgK,EAAU9M,EAAoB,GAG9Bq/B,EAAcr/B,EAAoB,GAGlCs/B,EAAYt/B,EAAoB,IAGpC,SAAS0J,EAAQC,GAAmV,OAAtOD,EAArD,oBAAXxI,QAAoD,kBAApBA,OAAOiE,SAAmC,SAAiBwE,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXzI,QAAyByI,EAAIC,cAAgB1I,QAAUyI,IAAQzI,OAAOa,UAAY,gBAAkB4H,IAAyBA,GAMnX,SAAS8B,EAAkBC,EAAQC,GAAS,IAAK,IAAIvL,EAAI,EAAGA,EAAIuL,EAAMrI,OAAQlD,IAAK,CAAE,IAAIwL,EAAaD,EAAMvL,GAAIwL,EAAW7K,WAAa6K,EAAW7K,aAAc,EAAO6K,EAAW9B,cAAe,EAAU,UAAW8B,IAAYA,EAAW7B,UAAW,GAAMlJ,OAAOC,eAAe4K,EAAQE,EAAWlK,IAAKkK,IAM7S,SAASwZ,EAAgBxkB,EAAGqB,GAA+G,OAA1GmjB,EAAkBvkB,OAAO+X,gBAAkB,SAAyBhY,EAAGqB,GAAsB,OAAjBrB,EAAEiY,UAAY5W,EAAUrB,IAA6BA,EAAGqB,GAErK,SAASojB,EAAaC,GAAW,IAAIC,EAMrC,WAAuC,GAAuB,qBAAZR,UAA4BA,QAAQS,UAAW,OAAO,EAAO,GAAIT,QAAQS,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQ5jB,UAAU6jB,QAAQtlB,KAAKykB,QAAQS,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAOvI,GAAK,OAAO,GAN9PyI,GAA6B,OAAO,WAAkC,IAAsCC,EAAlCC,EAAQf,EAAgBM,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYhB,EAAgB5iB,MAAMwH,YAAakc,EAASf,QAAQS,UAAUO,EAAO7Z,UAAW8Z,QAAqBF,EAASC,EAAMlR,MAAMzS,KAAM8J,WAAc,OAAO+Z,EAA2B7jB,KAAM0jB,IAE5Z,SAASG,EAA2BC,EAAM5lB,GAAQ,OAAIA,GAA2B,WAAlBoJ,EAAQpJ,IAAsC,oBAATA,EAEpG,SAAgC4lB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,EAFbE,CAAuBF,GAAtC5lB,EAMnI,SAAS0kB,EAAgBpkB,GAAwJ,OAAnJokB,EAAkBnkB,OAAO+X,eAAiB/X,OAAOwlB,eAAiB,SAAyBzlB,GAAK,OAAOA,EAAEiY,WAAahY,OAAOwlB,eAAezlB,KAA8BA,GAOxM,IAAI2+B,EAAiC,SAAUC,IAnB/C,SAAmBxY,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/b,UAAU,sDAAyD8b,EAASjlB,UAAYlB,OAAOY,OAAOwlB,GAAcA,EAAWllB,UAAW,CAAE6H,YAAa,CAAExI,MAAO4lB,EAAUjd,UAAU,EAAMD,cAAc,KAAemd,GAAY7B,EAAgB4B,EAAUC,GAoBjXC,CAAUuY,EAAUD,GAEpB,IAxBoBh0B,EAAa6D,EAAYC,EAwBzCyJ,EAASsM,EAAaoa,GAE1B,SAASA,EAAS7Y,EAAO3a,GACvB,IAAID,EAUJ,OAzCJ,SAAyBT,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIN,UAAU,qCAiC5GI,CAAgBlJ,KAAMq9B,IAEtBzzB,EAAQ+M,EAAOzY,KAAK8B,KAAMwkB,EAAO3a,IAE3ByzB,qBAEN1zB,EAAM2zB,iBAEC3zB,EAmET,OAxGoBR,EAwCPi0B,GAxCoBpwB,EAwCV,CAAC,CACtB3N,IAAK,qBACLN,MAAO,WACL,GAAIP,OAAOy+B,EAA2B,EAAlCz+B,GAAwC,CAC1C,IAAI++B,EAAK/M,OAAOgN,UAAUC,UAAU1d,gBACE,IAAzBwd,EAAGr4B,QAAQ,WAA+C,IAA5Bq4B,EAAGr4B,QAAQ,cAA+C,IAAzBq4B,EAAGr4B,QAAQ,WAGrFnF,KAAKwkB,MAAMja,KAAK4Z,iBAAiB,YAAY,SAAUnJ,GACrDA,EAAEogB,uBAKT,CACD97B,IAAK,iBACLN,MAAO,WACL,IAAI0P,EAAS1O,KAEbA,KAAKwkB,MAAMja,KAAK4Z,iBAAiB,QAAQ,SAAUnJ,GAEjD,IAAI0R,EADJ1R,EAAEogB,iBAEF,IAAIuC,EAASjvB,EAAO7E,QAAQ8zB,OAM5B,GAJIA,GAA4B,oBAAXA,GACnBA,EAAO3iB,GAGL1M,SAASsvB,oBACXlR,EAASpe,SAASsvB,oBAAoB5iB,EAAE6iB,QAAS7iB,EAAE8iB,aAC9C,KAAIxvB,SAASyvB,uBAMlB,OALA,IAAIjhB,EAAWxO,SAASyvB,uBAAuB/iB,EAAE6iB,QAAS7iB,EAAE8iB,UAC5DpR,EAASpe,SAASqf,eACXC,SAAS9Q,EAASkhB,WAAYlhB,EAAShX,QAC9C4mB,EAAOuB,OAAOnR,EAASkhB,WAAYlhB,EAAShX,QAK9C,IAAI0oB,EAAa9f,EAAO8V,MAAMtZ,UAAUojB,gBAAgB5B,GAEpDpd,EAAQZ,EAAO8V,MAAMtZ,UAAUujB,kBAAkBD,GAErD9f,EAAOuvB,OAAO3uB,EAAO0L,EAAEkjB,aAAaC,YAGvC,CACD7+B,IAAK,SACLN,MAAO,SAAgBsQ,EAAO6uB,GAC5B,IAAIhvB,EAASnP,KAETo+B,EAAU,GACdx9B,MAAM+H,KAAKw1B,GAAOn8B,SAAQ,SAAUq8B,GAC9BA,IAAyD,IAAjDlvB,EAAOtF,QAAQy0B,UAAUn5B,QAAQk5B,EAAKxyB,OAChDuyB,EAAQh9B,KAAKi9B,MAIbD,EAAQl9B,OAAS,GACnBlB,KAAK6J,QAAQ4b,QAAQvnB,KAAK8B,KAAMsP,EAAO8uB,EAASp+B,KAAK6J,QAAQ00B,gBAnGSl1B,EAAkBD,EAAYzJ,UAAWsN,GAAiBC,GAAa7D,EAAkBD,EAAa8D,GAwG3KmwB,EAnF4B,CAoFnCJ,EAA6B,GAE/BE,EAAkBzpB,SAAW,CAC3B4qB,UAAW,CAAC,YAAa,cACzBC,UAAW,QACX9Y,QAAS,SAAiBnW,EAAO6uB,EAAOrzB,GACtC,IAAImF,EAASjQ,KAETw+B,EAAWL,EAAMl8B,KAAI,SAAUo8B,GACjC,OAAO,IAAIrK,SAAQ,SAAUqF,GAC3B,IAAIoF,EAAS,IAAIC,WAEjBD,EAAOE,OAAS,SAAU3jB,GACxBqe,EAAQre,EAAE1R,OAAOoa,SAGnB+a,EAAOG,cAAcP,SAGzBrK,QAAQ6K,IAAIL,GAAUM,MAAK,SAAUC,GACnC,IAAIvyB,EAASuyB,EAAOz8B,QAAO,SAAUsB,EAAOo7B,GAC1C,OAAOp7B,EAAM9C,QApIc9B,EAoIuBggC,GApI5B1/B,EAoIkBwL,KApIvBvD,EAoImB,IApIkB9I,OAAOC,eAAe6I,EAAKjI,EAAK,CAAEN,MAAOA,EAAOL,YAAY,EAAM+I,cAAc,EAAMC,UAAU,IAAkBJ,EAAIjI,GAAON,EAAgBuI,IAA3M,IAAyBA,EAAKjI,EAAKN,KAqI1B,IAAIg+B,EAAcvtB,GAAInO,OAAOgO,EAAM/N,OAAOF,OAAOiO,EAAMpO,SAE1D+O,EAAOuU,MAAMya,eAAezyB,EAAQ9B,EAAyB,EAAE0E,QAAQmE,MAEvEtD,EAAOuU,MAAM1U,aAAaR,EAAM/N,MAAQw9B,EAAO79B,OAAQwJ,EAAyB,EAAE0E,QAAQW,aAInE,IAAIvE,EAAY2xB,EAe7C3Y,EAAuB,EAAE5W,SAAS,CAChC,cAAeqK,EAAuB,EACtC,oBAAqBA,EAA0B,EAC/C,cAAe0kB,EAA6B,EAC5C,kBAAmBhzB,EAA2B,EAC9C,eAAgBtF,EAAwB,EACxC,cAAeu4B,EAA6B,EAC5C,eAAgBzkB,EAAwB,EACxC,eAAgB0kB,EAA8B,EAC9C,aAAcC,EAA4B,EAC1C,oBAAqBxxB,EAA2B,EAChD,kBAAmByxB,EAAiC,EACpD,mBAAoB3xB,EAA0B,EAC9C,mBAAoBI,IAEkBrF,EAA6B,QAAKqe,EAAuB,GAI1F,SAASzmB,EAAQoI,EAAqBvI,GAE7C,aAC+BA,EAAoBS,EAAE8H,EAAqB,KAAK,WAAa,OAAO+4B,KACpEthC,EAAoBS,EAAE8H,EAAqB,KAAK,WAAa,OAAOg5B,KACpEvhC,EAAoBS,EAAE8H,EAAqB,KAAK,WAAa,OAAOi5B,KACpExhC,EAAoBS,EAAE8H,EAAqB,KAAK,WAAa,OAAOk5B,KAC9E,IAAItZ,EAAgDnoB,EAAoB,IACpEooB,EAAqEpoB,EAAoB4B,EAAEumB,GAC3FE,EAA8CroB,EAAoB,IAClEsoB,EAAmEtoB,EAAoB4B,EAAEymB,GACzFqZ,EAA2C1hC,EAAoB,GAC/D2hC,EAAgE3hC,EAAoB4B,EAAE8/B,GACtFx4B,EAAyClJ,EAAoB,GAC7D4hC,EAA2C5hC,EAAoB,GAC/D6hC,EAA4C7hC,EAAoB,IAChE8hC,EAA4C9hC,EAAoB,GAChE+hC,EAAgD/hC,EAAoB,IAC7F,SAAS0J,EAAQC,GAAmV,OAAtOD,EAArD,oBAAXxI,QAAoD,kBAApBA,OAAOiE,SAAmC,SAAiBwE,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXzI,QAAyByI,EAAIC,cAAgB1I,QAAUyI,IAAQzI,OAAOa,UAAY,gBAAkB4H,IAAyBA,GAEnX,SAASK,EAAeC,EAAK7J,GAAK,OAUlC,SAAyB6J,GAAO,GAAIjH,MAAMC,QAAQgH,GAAM,OAAOA,EAVtBC,CAAgBD,IAQzD,SAA+BA,EAAK7J,GAAK,IAAI+J,EAAY,MAAPF,EAAc,KAAyB,qBAAX/I,QAA0B+I,EAAI/I,OAAOiE,WAAa8E,EAAI,cAAe,GAAU,MAANE,EAAJ,CAAwB,IAAkDC,EAAIC,EAAlDC,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAmB,IAAM,IAAKL,EAAKA,EAAG7J,KAAK2J,KAAQM,GAAMH,EAAKD,EAAG7E,QAAQmF,QAAoBH,EAAK9G,KAAK4G,EAAGhJ,QAAYhB,GAAKkK,EAAKhH,SAAWlD,GAA3DmK,GAAK,IAAoE,MAAOG,GAAOF,GAAK,EAAMH,EAAKK,EAAO,QAAU,IAAWH,GAAsB,MAAhBJ,EAAW,QAAWA,EAAW,SAAO,QAAU,GAAIK,EAAI,MAAMH,GAAQ,OAAOC,GARzbK,CAAsBV,EAAK7J,IAI5F,SAAqCQ,EAAGgK,GAAU,GAAKhK,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAOiK,EAAkBjK,EAAGgK,GAAS,IAAIhJ,EAAIf,OAAOkB,UAAU+I,SAASxK,KAAKM,GAAGkE,MAAM,GAAI,GAAiE,MAAnD,WAANlD,GAAkBhB,EAAEgJ,cAAahI,EAAIhB,EAAEgJ,YAAYlJ,MAAgB,QAANkB,GAAqB,QAANA,EAAoBoB,MAAM+H,KAAKnK,GAAc,cAANgB,GAAqB,2CAA2CoJ,KAAKpJ,GAAWiJ,EAAkBjK,EAAGgK,QAAzG,GAJ3MK,CAA4BhB,EAAK7J,IAEnI,WAA8B,MAAM,IAAI8K,UAAU,6IAFuFC,GAMzI,SAASN,EAAkBZ,EAAKmB,IAAkB,MAAPA,GAAeA,EAAMnB,EAAI3G,UAAQ8H,EAAMnB,EAAI3G,QAAQ,IAAK,IAAIlD,EAAI,EAAGiL,EAAO,IAAIrI,MAAMoI,GAAMhL,EAAIgL,EAAKhL,IAAOiL,EAAKjL,GAAK6J,EAAI7J,GAAM,OAAOiL,EAMhL,SAAS4d,EAAQpnB,EAAQqnB,GAAkB,IAAI3lB,EAAO1C,OAAO0C,KAAK1B,GAAS,GAAIhB,OAAOsoB,sBAAuB,CAAE,IAAIC,EAAUvoB,OAAOsoB,sBAAsBtnB,GAAaqnB,IAAkBE,EAAUA,EAAQllB,QAAO,SAAUmlB,GAAO,OAAOxoB,OAAOskB,yBAAyBtjB,EAAQwnB,GAAKtoB,eAAkBwC,EAAKC,KAAKqR,MAAMtR,EAAM6lB,GAAY,OAAO7lB,EAElV,SAAS+lB,EAAc5d,GAAU,IAAK,IAAItL,EAAI,EAAGA,EAAI8L,UAAU5I,OAAQlD,IAAK,CAAE,IAAIgO,EAAyB,MAAhBlC,UAAU9L,GAAa8L,UAAU9L,GAAK,GAAQA,EAAI,EAAK6oB,EAAQpoB,OAAOuN,IAAS,GAAMhK,SAAQ,SAAU1C,GAAOmI,EAAgB6B,EAAQhK,EAAK0M,EAAO1M,OAAsBb,OAAO0oB,0BAA6B1oB,OAAO2oB,iBAAiB9d,EAAQ7K,OAAO0oB,0BAA0Bnb,IAAmB6a,EAAQpoB,OAAOuN,IAAShK,SAAQ,SAAU1C,GAAOb,OAAOC,eAAe4K,EAAQhK,EAAKb,OAAOskB,yBAAyB/W,EAAQ1M,OAAe,OAAOgK,EAE7gB,SAAS7B,EAAgBF,EAAKjI,EAAKN,GAAiK,OAApJM,KAAOiI,EAAO9I,OAAOC,eAAe6I,EAAKjI,EAAK,CAAEN,MAAOA,EAAOL,YAAY,EAAM+I,cAAc,EAAMC,UAAU,IAAkBJ,EAAIjI,GAAON,EAAgBuI,EAI3M,SAAS8B,EAAkBC,EAAQC,GAAS,IAAK,IAAIvL,EAAI,EAAGA,EAAIuL,EAAMrI,OAAQlD,IAAK,CAAE,IAAIwL,EAAaD,EAAMvL,GAAIwL,EAAW7K,WAAa6K,EAAW7K,aAAc,EAAO6K,EAAW9B,cAAe,EAAU,UAAW8B,IAAYA,EAAW7B,UAAW,GAAMlJ,OAAOC,eAAe4K,EAAQE,EAAWlK,IAAKkK,IAM7S,SAASwZ,EAAgBxkB,EAAGqB,GAA+G,OAA1GmjB,EAAkBvkB,OAAO+X,gBAAkB,SAAyBhY,EAAGqB,GAAsB,OAAjBrB,EAAEiY,UAAY5W,EAAUrB,IAA6BA,EAAGqB,GAErK,SAASojB,EAAaC,GAAW,IAAIC,EAMrC,WAAuC,GAAuB,qBAAZR,UAA4BA,QAAQS,UAAW,OAAO,EAAO,GAAIT,QAAQS,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQ5jB,UAAU6jB,QAAQtlB,KAAKykB,QAAQS,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAOvI,GAAK,OAAO,GAN9PyI,GAA6B,OAAO,WAAkC,IAAsCC,EAAlCC,EAAQf,EAAgBM,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYhB,EAAgB5iB,MAAMwH,YAAakc,EAASf,QAAQS,UAAUO,EAAO7Z,UAAW8Z,QAAqBF,EAASC,EAAMlR,MAAMzS,KAAM8J,WAAc,OAAO+Z,EAA2B7jB,KAAM0jB,IAE5Z,SAASG,EAA2BC,EAAM5lB,GAAQ,OAAIA,GAA2B,WAAlBoJ,EAAQpJ,IAAsC,oBAATA,EAEpG,SAAgC4lB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,EAFbE,CAAuBF,GAAtC5lB,EAMnI,SAAS0kB,EAAgBpkB,GAAwJ,OAAnJokB,EAAkBnkB,OAAO+X,eAAiB/X,OAAOwlB,eAAiB,SAAyBzlB,GAAK,OAAOA,EAAEiY,WAAahY,OAAOwlB,eAAezlB,KAA8BA,GAUxM,IAAIiL,EAAQhL,OAAOghC,EAA2D,EAAlEhhC,CAAqE,kBAC7EmhC,EAAY,CACdC,UAAW,YACXC,IAAK,MACLC,MAAO,QACPC,OAAQ,SACRC,OAAQ,SACRC,SAAU,WACVt9B,IAAK,MACLu9B,KAAM,OACNC,UAAW,YACXC,QAAS,UACTC,WAAY,aACZC,UAAW,YACXl/B,OAAQ,MACR,IAAK,QACL,IAAK,WACL,IAAK,QACLm/B,IAAK,MACLC,QAAS,UACTvsB,MAAO,QAEPtD,KAAM,YACN8vB,GAAI,UACJ7vB,MAAO,aACP8vB,KAAM,YACNC,SAAU,WACVC,SAAU,QACVC,IAAK,MACLC,SAAU,QACVC,IAAK,UAEHC,EAAY,CAEd,EAAK,YACL,EAAK,MACL,GAAM,QACN,GAAM,SACN,GAAM,SACN,GAAM,WACN,GAAM,MACN,GAAM,OACN,GAAM,YACN,GAAM,UACN,GAAM,aACN,GAAM,YACN,GAAM,MACN,GAAM,QACN,IAAO,WACP,IAAO,QACP,IAAO,QACP,IAAO,QACP,GAAM,QACN,GAAM,UACN,GAAM,OAEJ9B,EAAW1gC,OAAOkhC,EAA+D,EAAtElhC,IAA8E,OAAOmK,KAAK60B,UAAUyD,UAAY,UAAY,UAEvIhC,EAAwB,SAAU9B,IAhFtC,SAAmBxY,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/b,UAAU,sDAAyD8b,EAASjlB,UAAYlB,OAAOY,OAAOwlB,GAAcA,EAAWllB,UAAW,CAAE6H,YAAa,CAAExI,MAAO4lB,EAAUjd,UAAU,EAAMD,cAAc,KAAemd,GAAY7B,EAAgB4B,EAAUC,GAiFjXC,CAAUoa,EAAU9B,GAEpB,IArFoBh0B,EAAa6D,EAAYC,EAqFzCyJ,EAASsM,EAAaic,GAE1B,SAASA,EAAS1a,EAAO3a,GACvB,IAAID,EA8EJ,OA1KJ,SAAyBT,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIN,UAAU,qCA8F5GI,CAAgBlJ,KAAMk/B,IAEtBt1B,EAAQ+M,EAAOzY,KAAK8B,KAAMwkB,EAAO3a,IAC3Bs3B,SAAW,GACjB1iC,OAAO0C,KAAKyI,EAAMC,QAAQs3B,UAAUn/B,SAAQ,SAAU1D,GAChDsL,EAAMC,QAAQs3B,SAAS7iC,IACzBsL,EAAMw3B,WAAWx3B,EAAMC,QAAQs3B,SAAS7iC,OAI5CsL,EAAMw3B,WAAW,CACf9hC,IAAK,QACL+hC,SAAU,MACTz3B,EAAM03B,aAET13B,EAAMw3B,WAAW,CACf9hC,IAAK,QACLiiC,QAAS,KACTC,QAAS,KACTC,OAAQ,OACP,eAEChjC,OAAOkhC,EAA+D,EAAtElhC,IAA8E,WAAWmK,KAAK60B,UAAUC,YAE1G9zB,EAAMw3B,WAAW,CACf9hC,IAAK,aACJ,CACDguB,WAAW,GACV1jB,EAAM83B,iBAET93B,EAAMw3B,WAAW,CACf9hC,IAAK,OACJ,CACDguB,WAAW,GACV1jB,EAAM+3B,gBAET/3B,EAAMw3B,WAAW,CACf9hC,IAAK,aACJ,CACDguB,WAAW,EACXzO,OAAQ,QACPjV,EAAM83B,iBAET93B,EAAMw3B,WAAW,CACf9hC,IAAK,OACJ,CACDguB,WAAW,EACX9E,OAAQ,QACP5e,EAAM+3B,eAGX/3B,EAAMw3B,WAAW,CACf9hC,IAAK,aACJ,CACDguB,WAAW,GACV1jB,EAAMg4B,mBAETh4B,EAAMw3B,WAAW,CACf9hC,IAAK,OACJ,CACDguB,WAAW,GACV1jB,EAAMg4B,mBAETh4B,EAAMw3B,WAAW,CACf9hC,IAAK,YACLmiC,OAAQ,KACRD,QAAS,KACTD,QAAS,KACTF,SAAU,MACT,CACD/T,WAAW,EACXxnB,OAAQ,GACP8D,EAAM83B,iBAET93B,EAAMi4B,SAECj4B,EA4RT,OAlcoBR,EAyKP81B,EAzKgChyB,EAmazC,CAAC,CACH5N,IAAK,QACLN,MAAO,SAAe8iC,EAAKC,GACzB,OAAI,CAAC,SAAU,UAAW,UAAW,YAAYxpB,MAAK,SAAUjZ,GAC9D,QAASyiC,EAAQziC,KAASwiC,EAAIxiC,IAAyB,OAAjByiC,EAAQziC,QAKzCyiC,EAAQziC,MAAQ4/B,EAAS8C,iBAAiBF,IAAQC,EAAQziC,MAAQwiC,EAAIG,SAE9E,CACD3iC,IAAK,mBACLN,MAAO,SAA0BkjC,GAC/B,IAAI5iC,EAAM4iC,EAAM5iC,IACZ2iC,EAAQC,EAAMD,MACdE,IAAmB7iC,EACnB8iC,EAAgBD,EAAiB7iC,EAAM2iC,EAU3C,OARIG,IAEAA,EADED,EACcvC,EAAUwC,EAAcpiB,gBAAkBoiB,EAE1CnB,EAAUmB,IAAkB5hC,OAAOC,aAAa2hC,IAI7DA,MA9bsBn1B,EAyKV,CAAC,CACtB3N,IAAK,aACLN,MAAO,SAAoBqjC,GACzB,IAAI3zB,EAAS1O,KAET4c,EAAU9S,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAC9E2b,EAAU3b,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAC9Ei4B,EAAU3C,EAAUiD,GAExB,GAAe,MAAXN,EAAJ,CAKuB,oBAAZnlB,IACTA,EAAU,CACR6I,QAAS7I,IAIU,oBAAZ6I,IACTA,EAAU,CACRA,QAASA,IAIb,IAAItkB,EAAOP,MAAMC,QAAQkhC,EAAQziC,KAAOyiC,EAAQziC,IAAM,CAACyiC,EAAQziC,KAC/D6B,EAAKa,SAAQ,SAAU1C,GACrB,IAAIgjC,EAAgBpb,EAAcA,EAAcA,EAAc,GAAI6a,GAAU,GAAI,CAC9EziC,IAAKA,GACJsd,GAAU6I,GAEb/W,EAAOyyB,SAASmB,EAAchjC,KAAOoP,EAAOyyB,SAASmB,EAAchjC,MAAQ,GAE3EoP,EAAOyyB,SAASmB,EAAchjC,KAAK8B,KAAKkhC,WAxBxC74B,EAAMoE,KAAK,4CAA6Ck0B,KA2B3D,CACDziC,IAAK,SACLN,MAAO,WACL,IAAImQ,EAASnP,KAEbA,KAAKwkB,MAAMja,KAAK4Z,iBAAiB,WAAW,SAAU2d,GACpD,IAAIA,EAAIS,mBAAoBT,EAAI9zB,YAAhC,CAEAmB,EAAOqzB,uBAAuBV,GAE9B,IAAIlpB,EAAUsmB,EAAS8C,iBAAiBF,GAEpCW,GADYtzB,EAAOgyB,SAASvoB,IAAY,IAAIzU,OAAOgL,EAAOgyB,SAASW,EAAIG,QAAU,IAC9DngC,QAAO,SAAUigC,GACtC,OAAO7C,EAAS3nB,MAAMuqB,EAAKC,MAE7B,GAAuB,IAAnBU,EAAQvhC,OAAZ,CAEA,IAAIoO,EAAQH,EAAOqV,MAAMjV,eAEzB,GAAa,MAATD,GAAkBH,EAAOqV,MAAMzS,WAAnC,CAEA,IACI2wB,EAAwB96B,EADDuH,EAAOqV,MAAMme,QAAQrzB,EAAM/N,OACW,GAC7D2D,EAAOw9B,EAAsB,GAC7B58B,EAAS48B,EAAsB,GAG/BE,EAAwBh7B,EADDuH,EAAOqV,MAAMqe,QAAQvzB,EAAM/N,OACW,GAC7DuhC,EAAYF,EAAsB,GAClCG,EAAcH,EAAsB,GAGpCpY,EAAQ5iB,EADgB,IAAjB0H,EAAMpO,OAAe,CAAC4hC,EAAWC,GAAe5zB,EAAOqV,MAAMqe,QAAQvzB,EAAM/N,MAAQ+N,EAAMpO,QACnE,GAC7B8hC,EAAUxY,EAAM,GAChByY,EAAYzY,EAAM,GAElB0Y,EAAaJ,aAAqBh8B,EAAiD,SAAIg8B,EAAU9jC,QAAQ0D,MAAM,EAAGqgC,GAAe,GACjII,EAAaH,aAAmBl8B,EAAiD,SAAIk8B,EAAQhkC,QAAQ0D,MAAMugC,GAAa,GACxHG,EAAa,CACf9V,UAA4B,IAAjBhe,EAAMpO,OACjBmiC,MAAwB,IAAjB/zB,EAAMpO,QAAgBgE,EAAKhE,UAAY,EAC9C0O,OAAQT,EAAOqV,MAAMrT,UAAU7B,GAC/BpK,KAAMA,EACNY,OAAQA,EACR+Y,OAAQqkB,EACR1a,OAAQ2a,EACR9d,MAAOyc,GAEOW,EAAQlqB,MAAK,SAAUwpB,GACrC,GAAyB,MAArBA,EAAQzU,WAAqByU,EAAQzU,YAAc8V,EAAW9V,UAChE,OAAO,EAGT,GAAqB,MAAjByU,EAAQsB,OAAiBtB,EAAQsB,QAAUD,EAAWC,MACxD,OAAO,EAGT,GAAsB,MAAlBtB,EAAQj8B,QAAkBi8B,EAAQj8B,SAAWs9B,EAAWt9B,OAC1D,OAAO,EAGT,GAAIlF,MAAMC,QAAQkhC,EAAQnyB,SAExB,GAAImyB,EAAQnyB,OAAO0zB,OAAM,SAAUhlC,GACjC,OAAkC,MAA3B8kC,EAAWxzB,OAAOtR,MAEzB,OAAO,OAEJ,GAAgC,WAA5BgJ,EAAQy6B,EAAQnyB,UAEpBnR,OAAO0C,KAAK4gC,EAAQnyB,QAAQ0zB,OAAM,SAAUhlC,GAC/C,OAA6B,IAAzByjC,EAAQnyB,OAAOtR,GAAkD,MAA3B8kC,EAAWxzB,OAAOtR,IAC/B,IAAzByjC,EAAQnyB,OAAOtR,GAAmD,MAA3B8kC,EAAWxzB,OAAOtR,GACtD4nB,IAAsD6b,EAAQnyB,OAAOtR,GAAO8kC,EAAWxzB,OAAOtR,OAErG,OAAO,EAIX,QAAsB,MAAlByjC,EAAQljB,SAAmBkjB,EAAQljB,OAAOjW,KAAKw6B,EAAWvkB,YAIxC,MAAlBkjB,EAAQvZ,SAAmBuZ,EAAQvZ,OAAO5f,KAAKw6B,EAAW5a,WAIM,IAA7DuZ,EAAQtc,QAAQvnB,KAAKiR,EAAQG,EAAO8zB,EAAYrB,OAIvDD,EAAI1G,yBAIT,CACD97B,IAAK,yBACLN,MAAO,SAAgCqmB,GACrC,IAAIvP,EAAW9V,KAAK6J,QAAQ05B,UAExBztB,GAAgC,oBAAbA,GACrBA,EAASuP,KAGZ,CACD/lB,IAAK,kBACLN,MAAO,SAAyBsQ,EAAOsN,GAErC,IAAI1b,EAAS,kCAAkC0H,KAAKgU,EAAQiC,QAAU,EAAI,EAC1E,KAAoB,IAAhBvP,EAAM/N,OAAevB,KAAKwkB,MAAMzT,aAAe,GAAnD,CACA,IAAIf,EAAU,GAIV9K,EADuB0C,EADD5H,KAAKwkB,MAAMme,QAAQrzB,EAAM/N,OACY,GAC/B,GAE5BqC,GAAQ,IAAI27B,EAAiD9vB,GAAInO,OAAOgO,EAAM/N,MAAQL,GAAQG,OAAOH,GAEzG,GAAuB,IAAnB0b,EAAQ9W,OAAc,CAExB,IAEI4P,EADuB9N,EADA5H,KAAKwkB,MAAMme,QAAQrzB,EAAM/N,MAAQ,GACI,GAChC,GAEhC,GAAImU,KAC8C,UAA1BA,EAAKsE,QAAQlP,UAAwB4K,EAAKxU,UAAY,GAEtD,CACpB,IAAIsiC,EAAat+B,EAAK8K,UAClByzB,EAAczjC,KAAKwkB,MAAMrT,UAAU7B,EAAM/N,MAAQ,EAAG,GAGxD,GAFAyO,EAAUsvB,EAAuD,aAAEl7B,KAAKo/B,EAAYC,IAAgB,GAEhGhlC,OAAO0C,KAAK6O,GAAS9O,OAAS,EAAG,CAEnC,IAAIwiC,GAAc,IAAInE,EAAiD9vB,GAAInO,OAAOgO,EAAM/N,MAAQ2D,EAAKhE,SAAW,GAAGI,OAAO,EAAG0O,GAC7HpM,EAAQA,EAAMT,QAAQugC,KAM9B1jC,KAAKwkB,MAAMya,eAAer7B,EAAO47B,EAA0D,EAAEpwB,QAAQmE,MACrGvT,KAAKwkB,MAAMvV,WAEZ,CACD3P,IAAK,eACLN,MAAO,SAAsBsQ,EAAOsN,GAElC,IAAI1b,EAAS,kCAAkC0H,KAAKgU,EAAQ4L,QAAU,EAAI,EAC1E,KAAIlZ,EAAM/N,OAASvB,KAAKwkB,MAAMzT,YAAc7P,GAA5C,CACA,IAAI8O,EAAU,GAIV9K,EADuB0C,EADA5H,KAAKwkB,MAAMme,QAAQrzB,EAAM/N,OACY,GAChC,GAE5BqC,GAAQ,IAAI27B,EAAiD9vB,GAAInO,OAAOgO,EAAM/N,OAAOF,OAAOH,GAEhG,GAAI0b,EAAQ9W,QAAUZ,EAAKhE,SAAW,EAAG,CACvC,IAEIgC,EADuB0E,EADA5H,KAAKwkB,MAAMme,QAAQrzB,EAAM/N,MAAQ,GACI,GAChC,GAEhC,GAAI2B,EAAM,CACR,IAAIsgC,EAAat+B,EAAK8K,UAClB2zB,EAAc3jC,KAAKwkB,MAAMrT,UAAU7B,EAAM/N,MAAO,GACpDyO,EAAUsvB,EAAuD,aAAEl7B,KAAKo/B,EAAYG,IAAgB,GAEhGllC,OAAO0C,KAAK6O,GAAS9O,OAAS,IAChC0C,EAAQA,EAAMtC,OAAO4B,EAAKhC,SAAW,GAAGI,OAAO,EAAG0O,KAKxDhQ,KAAKwkB,MAAMya,eAAer7B,EAAO47B,EAA0D,EAAEpwB,QAAQmE,MACrGvT,KAAKwkB,MAAMvV,WAEZ,CACD3P,IAAK,oBACLN,MAAO,SAA2BsQ,EAAOsN,GACvC5c,KAAKwiC,uBAAuB5lB,EAAQyI,OACpCga,EAAY,CACV/vB,MAAOA,EACPkV,MAAOxkB,KAAKwkB,QAEdxkB,KAAKwkB,MAAMvV,UAEZ,CACD3P,IAAK,cACLN,MAAO,SAAqBsQ,EAAOsN,GACjC,IAAI3M,EAASjQ,KAET4jC,EAAcnlC,OAAO0C,KAAKyb,EAAQhN,QAAQtN,QAAO,SAAU0N,EAASJ,GAKtE,OAJIK,EAAOuU,MAAMzZ,OAAOF,MAAM+E,EAAQ9I,EAA8C,MAAE4I,SAAW9O,MAAMC,QAAQ+b,EAAQhN,OAAOA,MAC5HI,EAAQJ,GAAUgN,EAAQhN,OAAOA,IAG5BI,IACN,IACCpM,GAAQ,IAAI27B,EAAiD9vB,GAAInO,OAAOgO,EAAM/N,OAAOF,OAAOiO,EAAMpO,QAAQJ,OAAO,KAAM8iC,GAC3H5jC,KAAKwkB,MAAMya,eAAer7B,EAAO47B,EAA0D,EAAEpwB,QAAQmE,MACrGvT,KAAKwkB,MAAM1U,aAAaR,EAAM/N,MAAQ,EAAGi+B,EAA0D,EAAEpwB,QAAQW,QAC7G/P,KAAKwkB,MAAMvV,QACXxQ,OAAO0C,KAAKyb,EAAQhN,QAAQ5N,SAAQ,SAAU1D,GACnB,MAArBslC,EAAYtlC,KACZsC,MAAMC,QAAQ+b,EAAQhN,OAAOtR,KACpB,SAATA,GAA4B,SAATA,IAEvB2R,EAAOuyB,uBAAuB5lB,EAAQyI,OAEtCpV,EAAOuU,MAAM5U,OAAOtR,EAAMse,EAAQhN,OAAOtR,GAAOkhC,EAA0D,EAAEpwB,QAAQmE,gBAha9ClK,EAAkBD,EAAYzJ,UAAWsN,GAAiBC,GAAa7D,EAAkBD,EAAa8D,GAkc3KgyB,EAhXmB,CAiX1BQ,EAA2D,GAuS7D,SAASmE,EAAqBta,GAC5B,MAAO,CACLjqB,IAAK,MACL+hC,UAAW9X,EACX3Z,OAAQ,CACN,cAAc,GAEhB6V,QAAS,SAAiBnW,GACxB,IAAIqqB,EAAY35B,KAAKwkB,MAAMzZ,OAAOF,MAAM,cACpC2G,EAAyB,IAAjBlC,EAAMpO,OAAelB,KAAKwkB,MAAM6W,SAAS/rB,EAAM/N,MAAO,GAAKvB,KAAKwkB,MAAM6W,SAAS/rB,GACvF/N,EAAQ+N,EAAM/N,MACdL,EAASoO,EAAMpO,OACnBsQ,EAAMxP,SAAQ,SAAUkD,EAAMlH,GACxBurB,GACFrkB,EAAK+U,SAAS,EAAG0f,EAAUc,KAEjB,IAANz8B,EACFuD,GAASo4B,EAAUc,IAAIv5B,OAEvBA,GAAUy4B,EAAUc,IAAIv5B,QAEmC,IAApDgE,EAAK0S,QAAQksB,YAAY3+B,QAAQw0B,EAAUc,OACpDv1B,EAAKwU,SAAS,EAAGigB,EAAUc,IAAIv5B,QAErB,IAANlD,EACFuD,GAASo4B,EAAUc,IAAIv5B,OAEvBA,GAAUy4B,EAAUc,IAAIv5B,WAI9BlB,KAAKwkB,MAAMhY,OAAOgzB,EAA0D,EAAEpwB,QAAQmE,MACtFvT,KAAKwkB,MAAM1U,aAAavO,EAAOL,EAAQs+B,EAA0D,EAAEpwB,QAAQW,UAKjH,SAASg0B,EAAsBzkC,EAAK+hC,GAClC,IAAI2C,EAGJ,OAIGv8B,EAJIu8B,EAAQ,CACb1kC,IAAKA,EACL+hC,SAAUA,EACVI,OAAQ,MAJU,cAARniC,EAAsB,SAAW,SAKZ,MAAOmI,EAAgBu8B,EAAO,WAAW,SAAiB10B,GACzF,IAAI/N,EAAQ+N,EAAM/N,MAUlB,MARY,eAARjC,IACFiC,GAAS+N,EAAMpO,OAAS,KAIC0G,EADD5H,KAAKwkB,MAAMqe,QAAQthC,GACkB,GAC/B,aAEVuF,EAAkD,aAE5D,cAARxH,EACE+hC,EACFrhC,KAAKwkB,MAAM1U,aAAaR,EAAM/N,MAAQ,EAAG+N,EAAMpO,OAAS,EAAGs+B,EAA0D,EAAEpwB,QAAQmE,MAE/HvT,KAAKwkB,MAAM1U,aAAaR,EAAM/N,MAAQ,EAAGi+B,EAA0D,EAAEpwB,QAAQmE,MAEtG8tB,EACTrhC,KAAKwkB,MAAM1U,aAAaR,EAAM/N,MAAO+N,EAAMpO,OAAS,EAAGs+B,EAA0D,EAAEpwB,QAAQmE,MAE3HvT,KAAKwkB,MAAM1U,aAAaR,EAAM/N,MAAQ+N,EAAMpO,OAAS,EAAGs+B,EAA0D,EAAEpwB,QAAQmE,OAGvH,MACLywB,EAGN,SAASC,EAAkBr0B,GACzB,MAAO,CACLtQ,IAAKsQ,EAAO,GACZs0B,UAAU,EACVze,QAAS,SAAiBnW,EAAOsN,GAC/B5c,KAAKwkB,MAAM5U,OAAOA,GAASgN,EAAQhN,OAAOA,GAAS4vB,EAA0D,EAAEpwB,QAAQmE,QAK7H,SAAS4wB,EAAsBzD,GAC7B,MAAO,CACLphC,IAAKohC,EAAK,UAAY,YACtBpT,WAAW,EACX1d,OAAQ,CAAC,SACT6V,QAAS,SAAiBnW,EAAOsN,GAE/B,IAAItd,EAAMohC,EAAK,OAAS,OACpB0D,EAAOxnB,EAAQ1X,KACfm/B,EAAYD,EAAK5qB,OAAOla,GAE5B,GAAiB,MAAb+kC,GACF,GAAmC,cAA/BA,EAAUrqB,QAAQlP,SAA0B,CAI9C,IAHA,IAAIw5B,EAAaD,EAAUjqB,SAASlF,KAChCK,EAAM6uB,EAES,MAAZ7uB,EAAIG,MACTH,EAAMA,EAAIG,KACV4uB,EAAaA,EAAWphC,KAG1B,IAAI3B,EAAQ+iC,EAAWx+B,OAAO9F,KAAKwkB,MAAMzZ,QAAUjH,KAAKC,IAAI6Y,EAAQ9W,OAAQw+B,EAAWpjC,SAAW,GAClGlB,KAAKwkB,MAAM1U,aAAavO,EAAO,EAAGi+B,EAA0D,EAAEpwB,QAAQmE,WAEnG,CACL,IAAIgxB,EAAaH,EAAKI,QAAQllC,GAEZ,MAAdilC,IACE7D,EACF1gC,KAAKwkB,MAAM1U,aAAay0B,EAAWz+B,OAAO9F,KAAKwkB,MAAMzZ,QAAUw5B,EAAWrjC,SAAW,EAAG,EAAGs+B,EAA0D,EAAEpwB,QAAQmE,MAE/JvT,KAAKwkB,MAAM1U,aAAay0B,EAAWz+B,OAAO9F,KAAKwkB,MAAMzZ,QAAS,EAAGy0B,EAA0D,EAAEpwB,QAAQmE,OAK3I,OAAO,IAKb,SAAS6rB,EAAU2C,GACjB,GAAuB,kBAAZA,GAA2C,kBAAZA,EACxCA,EAAU,CACRziC,IAAKyiC,OAEF,IAAyB,WAArBz6B,EAAQy6B,GAGjB,OAAO,KAFPA,EAAU/b,IAAwD+b,GAUpE,OALIA,EAAQmC,WACVnC,EAAQ5C,GAAY4C,EAAQmC,gBACrBnC,EAAQmC,UAGVnC,EAGT,SAAS1C,EAAYoF,GACnB,IAAIjgB,EAAQigB,EAAMjgB,MACdlV,EAAQm1B,EAAMn1B,MACdkC,EAAQgT,EAAM6W,SAAS/rB,GACvBU,EAAU,GAEd,GAAIwB,EAAMtQ,OAAS,EAAG,CACpB,IAAIwjC,EAAelzB,EAAM,GAAGxB,UACxB20B,EAAcnzB,EAAMA,EAAMtQ,OAAS,GAAG8O,UAC1CA,EAAUsvB,EAAuD,aAAEl7B,KAAKugC,EAAaD,IAAiB,GAGxGlgB,EAAM5V,WAAWU,EAAOkwB,EAA0D,EAAEpwB,QAAQmE,MAExF9U,OAAO0C,KAAK6O,GAAS9O,OAAS,GAChCsjB,EAAM7U,WAAWL,EAAM/N,MAAO,EAAGyO,EAASwvB,EAA0D,EAAEpwB,QAAQmE,MAGhHiR,EAAM1U,aAAaR,EAAM/N,MAAOi+B,EAA0D,EAAEpwB,QAAQW,QAvctGmvB,EAASxrB,SAAW,CAClBytB,SAAU,CACRyD,KAAMX,EAAkB,QACxBY,OAAQZ,EAAkB,UAC1Ba,UAAWb,EAAkB,aAC7B1a,OAAQ,CAENjqB,IAAK,MACLsQ,OAAQ,CAAC,aAAc,SAAU,QACjC6V,QAAS,SAAiBnW,EAAOsN,GAC/B,SAAIA,EAAQ0Q,WAAgC,IAAnB1Q,EAAQ9W,UACjC9F,KAAKwkB,MAAM5U,OAAO,SAAU,KAAM4vB,EAA0D,EAAEpwB,QAAQmE,OAC/F,KAGXwxB,QAAS,CACPzlC,IAAK,MACL+hC,UAAU,EACVzxB,OAAQ,CAAC,aAAc,SAAU,QAEjC6V,QAAS,SAAiBnW,EAAOsN,GAC/B,SAAIA,EAAQ0Q,WAAgC,IAAnB1Q,EAAQ9W,UACjC9F,KAAKwkB,MAAM5U,OAAO,SAAU,KAAM4vB,EAA0D,EAAEpwB,QAAQmE,OAC/F,KAGX,oBAAqB,CACnBjU,IAAK,YACLguB,WAAW,EACX+T,SAAU,KACVE,QAAS,KACTC,QAAS,KACTC,OAAQ,KACR7xB,OAAQ,CAAC,SAAU,QACnB9J,OAAQ,EACR2f,QAAS,SAAiBnW,EAAOsN,GACF,MAAzBA,EAAQhN,OAAO2Z,OACjBvpB,KAAKwkB,MAAM5U,OAAO,SAAU,KAAM4vB,EAA0D,EAAEpwB,QAAQmE,MACtE,MAAvBqJ,EAAQhN,OAAOga,MACxB5pB,KAAKwkB,MAAM5U,OAAO,QAAQ,EAAO4vB,EAA0D,EAAEpwB,QAAQmE,QAI3G,oBAAqBswB,GAAqB,GAC1C,qBAAsBA,GAAqB,GAC3C,aAAc,CACZvkC,IAAK,MACL+hC,UAAU,EACV/T,WAAW,EACXzO,OAAQ,MACR4G,QAAS,SAAiBnW,GACxBtP,KAAKwkB,MAAM5V,WAAWU,EAAM/N,MAAQ,EAAG,EAAGi+B,EAA0D,EAAEpwB,QAAQmE,QAGlHusB,IAAK,CACHxgC,IAAK,MACLmmB,QAAS,SAAiBnW,EAAOsN,GAC/B,GAAIA,EAAQhN,OAAO40B,MAAO,OAAO,EACjCxkC,KAAKwkB,MAAMjZ,QAAQy5B,SACnB,IAAIphC,GAAQ,IAAI27B,EAAiD9vB,GAAInO,OAAOgO,EAAM/N,OAAOF,OAAOiO,EAAMpO,QAAQJ,OAAO,MAIrH,OAHAd,KAAKwkB,MAAMya,eAAer7B,EAAO47B,EAA0D,EAAEpwB,QAAQmE,MACrGvT,KAAKwkB,MAAMjZ,QAAQy5B,SACnBhlC,KAAKwkB,MAAM1U,aAAaR,EAAM/N,MAAQ,EAAGi+B,EAA0D,EAAEpwB,QAAQW,SACtG,IAGX,yBAA0B,CACxBzQ,IAAK,QACLguB,WAAW,EACX1d,OAAQ,CAAC,cACTyzB,OAAO,EACP5d,QAAS,WACPzlB,KAAKwkB,MAAM5U,OAAO,cAAc,EAAO4vB,EAA0D,EAAEpwB,QAAQmE,QAG/G,mBAAoB,CAClBjU,IAAK,QACLguB,WAAW,EACX1d,OAAQ,CAAC,QACTyzB,OAAO,EACP5d,QAAS,SAAiBnW,EAAOsN,GAC/B,IAAI5M,EAAU,CACZ4Z,MAAM,GAGJhN,EAAQhN,OAAO2Z,SACjBvZ,EAAQuZ,QAAS,GAGnBvpB,KAAKwkB,MAAM7U,WAAWL,EAAM/N,MAAO+N,EAAMpO,OAAQ8O,EAASwvB,EAA0D,EAAEpwB,QAAQmE,QAGlI,kBAAmB,CACjBjU,IAAK,QACLguB,WAAW,EACX1d,OAAQ,CACNga,KAAM,WAERnE,QAAS,SAAiBnW,GACxB,IACI21B,EAAwBr9B,EADD5H,KAAKwkB,MAAMme,QAAQrzB,EAAM/N,OACa,GAC7D2D,EAAO+/B,EAAsB,GAC7Bn/B,EAASm/B,EAAsB,GAE/Bj1B,EAAUkX,EAAcA,EAAc,GAAIhiB,EAAK8K,WAAY,GAAI,CACjE4Z,KAAM,YAGJhmB,GAAQ,IAAI27B,EAAiD9vB,GAAInO,OAAOgO,EAAM/N,OAAOT,OAAO,KAAMkP,GAAS1O,OAAO4D,EAAKhE,SAAW4E,EAAS,GAAGxE,OAAO,EAAG,CAC1JsoB,KAAM,cAER5pB,KAAKwkB,MAAMya,eAAer7B,EAAO47B,EAA0D,EAAEpwB,QAAQmE,MACrGvT,KAAKwkB,MAAM1U,aAAaR,EAAM/N,MAAQ,EAAGi+B,EAA0D,EAAEpwB,QAAQW,QAC7G/P,KAAKwkB,MAAMtV,mBAGf,eAAgB,CACd5P,IAAK,QACLguB,WAAW,EACX1d,OAAQ,CAAC,UACT4Y,OAAQ,KACR/C,QAAS,SAAiBnW,EAAOsN,GAC/B,IACIsoB,EAAwBt9B,EADA5H,KAAKwkB,MAAMme,QAAQrzB,EAAM/N,OACa,GAC9D2D,EAAOggC,EAAsB,GAC7Bp/B,EAASo/B,EAAsB,GAE/BthC,GAAQ,IAAI27B,EAAiD9vB,GAAInO,OAAOgO,EAAM/N,OAAOT,OAAO,KAAM8b,EAAQhN,QAAQtO,OAAO4D,EAAKhE,SAAW4E,EAAS,GAAGxE,OAAO,EAAG,CACjK6jC,OAAQ,OAEVnlC,KAAKwkB,MAAMya,eAAer7B,EAAO47B,EAA0D,EAAEpwB,QAAQmE,MACrGvT,KAAKwkB,MAAM1U,aAAaR,EAAM/N,MAAQ,EAAGi+B,EAA0D,EAAEpwB,QAAQW,QAC7G/P,KAAKwkB,MAAMtV,mBAGf,kBAAmB,CACjB5P,IAAK,YACLsQ,OAAQ,CAAC,SACT0d,WAAW,EACXxnB,OAAQ,EACR2f,QAAS,cAEX,eAAgB,CACdnmB,IAAK,MACLsQ,OAAQ,CAAC,SACT0d,WAAW,EACX9E,OAAQ,KACR/C,QAAS,cAEX,cAAe,CACbnmB,IAAK,QACL+hC,SAAU,KACVzxB,OAAQ,CAAC,SACT6V,QAAS,SAAiBnW,GACxB,IAAIvR,EAASiC,KAAKwkB,MAAM4gB,UAAU,SAElC,GAAIrnC,EAAQ,CACV,IACIsnC,EAAoBz9B,EADD7J,EAAOunC,SAASh2B,GACkB,GACrDk1B,EAAQa,EAAkB,GAK1BnxB,EAsSd,SAAmBswB,EAAOe,EAAKnB,EAAMt+B,GACnC,OAAgB,MAAZy/B,EAAI7vB,MAA4B,MAAZ6vB,EAAIriC,KACT,MAAbkhC,EAAK1uB,MAA6B,MAAb0uB,EAAKlhC,KACV,IAAX4C,GAAgB,EAAI,EAGT,MAAbs+B,EAAK1uB,MAAgB,EAAI,EAGlB,MAAZ6vB,EAAI7vB,MACE,EAGM,MAAZ6vB,EAAIriC,KACC,EAGF,KAvTasiC,CAAUhB,EAJZa,EAAkB,GACjBA,EAAkB,GAChBA,EAAkB,IAG/B,GAAa,MAATnxB,EAAe,OACnB,IAAI3S,EAAQijC,EAAM1+B,SAElB,GAAIoO,EAAQ,EAAG,CACb,IAAItQ,GAAQ,IAAI27B,EAAiD9vB,GAAInO,OAAOC,GAAOT,OAAO,MAC1Fd,KAAKwkB,MAAMya,eAAer7B,EAAO47B,EAA0D,EAAEpwB,QAAQmE,MACrGvT,KAAKwkB,MAAM1U,aAAaR,EAAM/N,MAAQ,EAAG+N,EAAMpO,OAAQs+B,EAA0D,EAAEpwB,QAAQW,aACtH,GAAImE,EAAQ,EAAG,CACpB3S,GAASijC,EAAMtjC,SAEf,IAAIukC,GAAS,IAAIlG,EAAiD9vB,GAAInO,OAAOC,GAAOT,OAAO,MAE3Fd,KAAKwkB,MAAMya,eAAewG,EAAQjG,EAA0D,EAAEpwB,QAAQmE,MACtGvT,KAAKwkB,MAAM1U,aAAavO,EAAOi+B,EAA0D,EAAEpwB,QAAQmE,UAK3G,YAAa,CACXjU,IAAK,MACL+hC,SAAU,KACVzxB,OAAQ,CAAC,SACT6V,QAAS,SAAiBnW,EAAOsN,GAC/B,IAAIyI,EAAQzI,EAAQyI,MAChB+e,EAAOxnB,EAAQ1X,KACfY,EAASs+B,EAAKt+B,OAAO9F,KAAKwkB,MAAMzZ,QAEhCsa,EAAMgc,SACRrhC,KAAKwkB,MAAM1U,aAAahK,EAAS,EAAG05B,EAA0D,EAAEpwB,QAAQmE,MAExGvT,KAAKwkB,MAAM1U,aAAahK,EAASs+B,EAAKljC,SAAUs+B,EAA0D,EAAEpwB,QAAQmE,QAI1H,gBAAiB,CACfjU,IAAK,QACL+hC,SAAU,KACV/T,WAAW,EACX1d,OAAQ,CACN,cAAc,EACd81B,YAAY,EACZlB,OAAO,GAET3lB,OAAQ,kCACR4G,QAAS,SAAiBnW,EAAOsN,GAC/B,GAAuC,MAAnC5c,KAAKwkB,MAAMzZ,OAAOF,MAAM,QAAiB,OAAO,EACpD,IAQI7L,EARAkC,EAAS0b,EAAQiC,OAAO3d,OAGxBykC,EAAwB/9B,EADA5H,KAAKwkB,MAAMme,QAAQrzB,EAAM/N,OACa,GAC9D2D,EAAOygC,EAAsB,GAC7B7/B,EAAS6/B,EAAsB,GAEnC,GAAI7/B,EAAS5E,EAAQ,OAAO,EAG5B,OAAQ0b,EAAQiC,OAAO1U,QACrB,IAAK,KACL,IAAK,MACHnL,EAAQ,YACR,MAEF,IAAK,MACHA,EAAQ,UACR,MAEF,IAAK,IACL,IAAK,IACHA,EAAQ,SACR,MAEF,QACEA,EAAQ,UAGZgB,KAAKwkB,MAAMnS,WAAW/C,EAAM/N,MAAO,IAAKi+B,EAA0D,EAAEpwB,QAAQmE,MAC5GvT,KAAKwkB,MAAMjZ,QAAQy5B,SACnB,IAAIphC,GAAQ,IAAI27B,EAAiD9vB,GAAInO,OAAOgO,EAAM/N,MAAQuE,GAAQzE,OAAOH,EAAS,GAAGI,OAAO4D,EAAKhE,SAAW,EAAI4E,GAAQxE,OAAO,EAAG,CAChKsoB,KAAM5qB,IAMR,OAJAgB,KAAKwiC,uBAAuB5lB,EAAQyI,OACpCrlB,KAAKwkB,MAAMya,eAAer7B,EAAO47B,EAA0D,EAAEpwB,QAAQmE,MACrGvT,KAAKwkB,MAAMjZ,QAAQy5B,SACnBhlC,KAAKwkB,MAAM1U,aAAaR,EAAM/N,MAAQL,EAAQs+B,EAA0D,EAAEpwB,QAAQW,SAC3G,IAGX,YAAa,CACXzQ,IAAK,QACLguB,WAAW,EACX1d,OAAQ,CAAC,cACTiP,OAAQ,KACR2J,OAAQ,QACR/C,QAAS,SAAiBnW,GASxB,IARA,IACIs2B,EAAwBh+B,EADA5H,KAAKwkB,MAAMme,QAAQrzB,EAAM/N,OACa,GAC9D2D,EAAO0gC,EAAsB,GAC7B9/B,EAAS8/B,EAAsB,GAE/BC,EAAW,EACXtwB,EAAMrQ,EAEI,MAAPqQ,GAAeA,EAAIrU,UAAY,GAAKqU,EAAIvF,UAAU,eAIvD,GAHAuF,EAAMA,EAAIG,MACVmwB,GAAY,IAEI,EAAG,CACjB,IAAIjiC,GAAQ,IAAI27B,EAAiD9vB,GAAInO,OAAOgO,EAAM/N,MAAQ2D,EAAKhE,SAAW4E,EAAS,GAAGxE,OAAO,EAAG,CAC9H,aAAc,OACbD,OAAO,GAGV,OAFArB,KAAKwkB,MAAMya,eAAer7B,EAAO47B,EAA0D,EAAEpwB,QAAQmE,MACrGvT,KAAKwkB,MAAM1U,aAAaR,EAAM/N,MAAQ,EAAGi+B,EAA0D,EAAEpwB,QAAQW,SACtG,EAIX,OAAO,IAGX,aAAcg0B,EAAsB,aAAa,GACjD,mBAAoBA,EAAsB,aAAa,GACvD,cAAeA,EAAsB,cAAc,GACnD,oBAAqBA,EAAsB,cAAc,GACzD,aAAcI,GAAsB,GACpC,WAAYA,GAAsB,MAiM/B,SAASpmC,EAAQD,EAASF,IAEL,SAAS8yB,GAAS,IAAIoV,EAAQ,SAAUC,GAClE,OAAOA,GAAMA,EAAGjiC,MAAQA,MAAQiiC,GAIlChoC,EAAOD,QAELgoC,EAA2B,iBAAdE,YAA0BA,aACvCF,EAAuB,iBAAVrV,QAAsBA,SAEnCqV,EAAqB,iBAARhiB,MAAoBA,OACjCgiB,EAAuB,iBAAVpV,GAAsBA,IAElC,WAAc,OAAO1wB,KAArB,IAAmCsxB,SAAS,cAATA,KAETpzB,KAAK8B,KAAMpC,EAAoB,MAIrD,SAASG,EAAQD,EAASF,GAEjC,IAAI8yB,EAAS9yB,EAAoB,IAC7BqoC,EAASroC,EAAoB,IAC7BwZ,EAAMxZ,EAAoB,IAC1Bi1B,EAAMj1B,EAAoB,IAC1BsoC,EAAgBtoC,EAAoB,IACpCuoC,EAAoBvoC,EAAoB,IAExCwoC,EAAwBH,EAAO,OAC/BnnC,EAAS4xB,EAAO5xB,OAChBunC,EAAwBF,EAAoBrnC,EAASA,GAAUA,EAAOwnC,eAAiBzT,EAE3F90B,EAAOD,QAAU,SAAUQ,GAOvB,OANG8Y,EAAIgvB,EAAuB9nC,KAAW4nC,GAAuD,iBAA/BE,EAAsB9nC,MACnF4nC,GAAiB9uB,EAAItY,EAAQR,GAC/B8nC,EAAsB9nC,GAAQQ,EAAOR,GAErC8nC,EAAsB9nC,GAAQ+nC,EAAsB,UAAY/nC,IAE3D8nC,EAAsB9nC,KAM1B,SAASP,EAAQD,EAASF,IAEL,SAAS8yB,EAAQ3yB,GAU7C,IAaI4yB,EAAU,qBAQVG,EAAS,eAGTyV,EAAY,kBAIZxV,EAAS,eAyBTE,EAAe,8BAGfC,EAAW,mBAGXsV,EAAiB,GACrBA,EAxBiB,yBAwBYA,EAvBZ,yBAwBjBA,EAvBc,sBAuBYA,EAtBX,uBAuBfA,EAtBe,uBAsBYA,EArBZ,uBAsBfA,EArBsB,8BAqBYA,EApBlB,wBAqBhBA,EApBgB,yBAoBY,EAC5BA,EAAe7V,GAAW6V,EAnDX,kBAoDfA,EAhCqB,wBAgCYA,EAlDnB,oBAmDdA,EAhCkB,qBAgCYA,EAlDhB,iBAmDdA,EAlDe,kBAkDYA,EAjDb,qBAkDdA,EAAe1V,GAAU0V,EA/CT,mBAgDhBA,EAAeD,GAAaC,EA3CZ,mBA4ChBA,EAAezV,GAAUyV,EA1CT,mBA2ChBA,EAxCiB,qBAwCY,EAG7B,IAAIpV,EAA8B,iBAAVV,GAAsBA,GAAUA,EAAOjyB,SAAWA,QAAUiyB,EAGhFW,EAA0B,iBAARvN,MAAoBA,MAAQA,KAAKrlB,SAAWA,QAAUqlB,KAGxEvZ,EAAO6mB,GAAcC,GAAYC,SAAS,cAATA,GAGjCC,EAAuBzzB,IAAYA,EAAQ4Z,UAAY5Z,EAGvD0zB,EAAaD,GAAgC,iBAAVxzB,GAAsBA,IAAWA,EAAO2Z,UAAY3Z,EAGvF0zB,EAAgBD,GAAcA,EAAW1zB,UAAYyzB,EAGrDkV,EAAchV,GAAiBL,EAAWsV,QAG1CC,EAAY,WACd,IACE,OAAOF,GAAeA,EAAY1E,SAAW0E,EAAY1E,QAAQ,QACjE,MAAO/mB,KAHK,GAOZ4rB,EAAmBD,GAAYA,EAASE,aAuD5C,SAASC,EAAUhV,EAAO/vB,GAIxB,IAHA,IAAIR,GAAS,EACTL,EAAkB,MAAT4wB,EAAgB,EAAIA,EAAM5wB,SAE9BK,EAAQL,GACf,GAAIa,EAAU+vB,EAAMvwB,GAAQA,EAAOuwB,GACjC,OAAO,EAGX,OAAO,EAkET,SAASK,EAAWlwB,GAClB,IAAIV,GAAS,EACTmiB,EAAS9iB,MAAMqB,EAAImwB,MAKvB,OAHAnwB,EAAID,SAAQ,SAAShD,EAAOM,GAC1BokB,IAASniB,GAAS,CAACjC,EAAKN,MAEnB0kB,EAwBT,SAAS6O,EAAWjoB,GAClB,IAAI/I,GAAS,EACTmiB,EAAS9iB,MAAM0J,EAAI8nB,MAKvB,OAHA9nB,EAAItI,SAAQ,SAAShD,GACnB0kB,IAASniB,GAASvC,KAEb0kB,EAIT,IAxBiB4O,EAAM5sB,EAwBnB8sB,EAAa5xB,MAAMjB,UACnB8yB,EAAYnB,SAAS3xB,UACrB+yB,EAAcj0B,OAAOkB,UAGrBgzB,EAAapoB,EAAK,sBAGlByoB,EAAeP,EAAU/pB,SAGzB9I,EAAiB8yB,EAAY9yB,eAG7BgzB,EAAc,WAChB,IAAIC,EAAM,SAASC,KAAKH,GAAcA,EAAWxxB,MAAQwxB,EAAWxxB,KAAK4xB,UAAY,IACrF,OAAOF,EAAO,iBAAmBA,EAAO,GAFxB,GAUdkU,EAAuBrU,EAAYhqB,SAGnCwqB,EAAaC,OAAO,IACtBH,EAAa90B,KAAK0B,GAAgB6e,QA7PjB,sBA6PuC,QACvDA,QAAQ,yDAA0D,SAAW,KAI5E2U,EAAS3B,EAAgBlnB,EAAK6oB,YAASrpB,EACvCjL,EAASyL,EAAKzL,OACdu0B,EAAa9oB,EAAK8oB,WAClBG,EAAuBd,EAAYc,qBACnC7xB,EAAS6wB,EAAW7wB,OACpBqlC,EAAiBloC,EAASA,EAAOC,iBAAcgL,EAG/C0pB,EAAmBh1B,OAAOsoB,sBAC1B2M,EAAiBN,EAASA,EAAOO,cAAW5pB,EAC5C6pB,GAnEatB,EAmEQ7zB,OAAO0C,KAnETuE,EAmEejH,OAlE7B,SAASsC,GACd,OAAOuxB,EAAK5sB,EAAU3E,MAoEtB8yB,EAAWC,GAAUvpB,EAAM,YAC3BwpB,EAAMD,GAAUvpB,EAAM,OACtBypB,EAAUF,GAAUvpB,EAAM,WAC1B0pB,EAAMH,GAAUvpB,EAAM,OACtByO,EAAU8a,GAAUvpB,EAAM,WAC1B2pB,EAAeJ,GAAUr1B,OAAQ,UAGjC01B,EAAqBC,GAASP,GAC9BQ,EAAgBD,GAASL,GACzBO,EAAoBF,GAASJ,GAC7BO,EAAgBH,GAASH,GACzBO,EAAoBJ,GAASpb,GAG7Byb,EAAc31B,EAASA,EAAOa,eAAYoK,EAC1C2qB,GAAgBD,EAAcA,EAAYjR,aAAUzZ,EASxD,SAAS4qB,GAAKC,GACZ,IAAIrzB,GAAS,EACTL,EAAoB,MAAX0zB,EAAkB,EAAIA,EAAQ1zB,OAG3C,IADAlB,KAAK2M,UACIpL,EAAQL,GAAQ,CACvB,IAAI2zB,EAAQD,EAAQrzB,GACpBvB,KAAKsK,IAAIuqB,EAAM,GAAIA,EAAM,KA+F7B,SAASC,GAAUF,GACjB,IAAIrzB,GAAS,EACTL,EAAoB,MAAX0zB,EAAkB,EAAIA,EAAQ1zB,OAG3C,IADAlB,KAAK2M,UACIpL,EAAQL,GAAQ,CACvB,IAAI2zB,EAAQD,EAAQrzB,GACpBvB,KAAKsK,IAAIuqB,EAAM,GAAIA,EAAM,KA4G7B,SAASE,GAASH,GAChB,IAAIrzB,GAAS,EACTL,EAAoB,MAAX0zB,EAAkB,EAAIA,EAAQ1zB,OAG3C,IADAlB,KAAK2M,UACIpL,EAAQL,GAAQ,CACvB,IAAI2zB,EAAQD,EAAQrzB,GACpBvB,KAAKsK,IAAIuqB,EAAM,GAAIA,EAAM,KA+F7B,SAASoS,GAASpnB,GAChB,IAAIte,GAAS,EACTL,EAAmB,MAAV2e,EAAiB,EAAIA,EAAO3e,OAGzC,IADAlB,KAAKi1B,SAAW,IAAIF,KACXxzB,EAAQL,GACflB,KAAKqK,IAAIwV,EAAOte,IA2CpB,SAASyzB,GAAMJ,GACb,IAAI1S,EAAOliB,KAAKi1B,SAAW,IAAIH,GAAUF,GACzC50B,KAAKoyB,KAAOlQ,EAAKkQ,KAmGnB,SAAS8C,GAAcl2B,EAAOm2B,GAC5B,IAAIkB,EAAQx1B,GAAQ7B,GAChBkoC,GAAS7Q,GAASd,GAAYv2B,GAC9BmoC,GAAU9Q,IAAU6Q,GAASvT,GAAS30B,GACtCooC,GAAU/Q,IAAU6Q,IAAUC,GAAUN,GAAa7nC,GACrDy2B,EAAcY,GAAS6Q,GAASC,GAAUC,EAC1C1jB,EAAS+R,EAloBf,SAAmBj2B,EAAGuyB,GAIpB,IAHA,IAAIxwB,GAAS,EACTmiB,EAAS9iB,MAAMpB,KAEV+B,EAAQ/B,GACfkkB,EAAOniB,GAASwwB,EAASxwB,GAE3B,OAAOmiB,EA2nBoB8R,CAAUx2B,EAAMkC,OAAQV,QAAU,GACzDU,EAASwiB,EAAOxiB,OAEpB,IAAK,IAAI5B,KAAON,GACTm2B,IAAav1B,EAAe1B,KAAKc,EAAOM,IACvCm2B,IAEQ,UAAPn2B,GAEC6nC,IAAkB,UAAP7nC,GAA0B,UAAPA,IAE9B8nC,IAAkB,UAAP9nC,GAA0B,cAAPA,GAA8B,cAAPA,IAEtDo2B,GAAQp2B,EAAK4B,KAElBwiB,EAAOtiB,KAAK9B,GAGhB,OAAOokB,EAWT,SAASoS,GAAahE,EAAOxyB,GAE3B,IADA,IAAI4B,EAAS4wB,EAAM5wB,OACZA,KACL,GAAI20B,GAAG/D,EAAM5wB,GAAQ,GAAI5B,GACvB,OAAO4B,EAGX,OAAQ,EA0BV,SAASmmC,GAAWroC,GAClB,OAAa,MAATA,OACe+K,IAAV/K,EAt1BQ,qBARL,gBAg2BJgoC,GAAkBA,KAAkBvoC,OAAOO,GA0arD,SAAmBA,GACjB,IAAIsoC,EAAQ1nC,EAAe1B,KAAKc,EAAOgoC,GACnCjuB,EAAM/Z,EAAMgoC,GAEhB,IACEhoC,EAAMgoC,QAAkBj9B,EACxB,IAAIw9B,GAAW,EACf,MAAOvsB,IAET,IAAI0I,EAASqjB,EAAqB7oC,KAAKc,GAQvC,OAPIuoC,IACED,EACFtoC,EAAMgoC,GAAkBjuB,SAEjB/Z,EAAMgoC,IAGVtjB,EA1bH8jB,CAAUxoC,GA4iBhB,SAAwBA,GACtB,OAAO+nC,EAAqB7oC,KAAKc,GA5iB7Bi0B,CAAej0B,GAUrB,SAASyoC,GAAgBzoC,GACvB,OAAOo2B,GAAap2B,IAAUqoC,GAAWroC,IAAU2xB,EAiBrD,SAAS+W,GAAY1oC,EAAOoE,EAAOukC,EAASzR,EAAYC,GACtD,OAAIn3B,IAAUoE,IAGD,MAATpE,GAA0B,MAAToE,IAAmBgyB,GAAap2B,KAAWo2B,GAAahyB,GACpEpE,IAAUA,GAASoE,IAAUA,EAmBxC,SAAyB3D,EAAQ2D,EAAOukC,EAASzR,EAAY0R,EAAWzR,GACtE,IAAI0R,EAAWhnC,GAAQpB,GACnBqoC,EAAWjnC,GAAQuC,GACnB2kC,EAASF,EAl6BA,iBAk6BsBrR,GAAO/2B,GACtCuoC,EAASF,EAn6BA,iBAm6BsBtR,GAAOpzB,GAKtC6kC,GAHJF,EAASA,GAAUpX,EAAU4V,EAAYwB,IAGhBxB,EACrB2B,GAHJF,EAASA,GAAUrX,EAAU4V,EAAYyB,IAGhBzB,EACrB4B,EAAYJ,GAAUC,EAE1B,GAAIG,GAAaxU,GAASl0B,GAAS,CACjC,IAAKk0B,GAASvwB,GACZ,OAAO,EAETykC,GAAW,EACXI,GAAW,EAEb,GAAIE,IAAcF,EAEhB,OADA9R,IAAUA,EAAQ,IAAInB,IACd6S,GAAYhB,GAAapnC,GAC7B2oC,GAAY3oC,EAAQ2D,EAAOukC,EAASzR,EAAY0R,EAAWzR,GAiKnE,SAAoB12B,EAAQ2D,EAAO2V,EAAK4uB,EAASzR,EAAY0R,EAAWzR,GACtE,OAAQpd,GACN,IApkCc,oBAqkCZ,GAAKtZ,EAAOg4B,YAAcr0B,EAAMq0B,YAC3Bh4B,EAAO+3B,YAAcp0B,EAAMo0B,WAC9B,OAAO,EAET/3B,EAASA,EAAOi3B,OAChBtzB,EAAQA,EAAMszB,OAEhB,IA7kCiB,uBA8kCf,QAAKj3B,EAAOg4B,YAAcr0B,EAAMq0B,aAC3BmQ,EAAU,IAAIvU,EAAW5zB,GAAS,IAAI4zB,EAAWjwB,KAKxD,IAtmCU,mBAumCV,IAtmCU,gBAumCV,IAlmCY,kBAqmCV,OAAOyyB,IAAIp2B,GAAS2D,GAEtB,IA3mCW,iBA4mCT,OAAO3D,EAAOnB,MAAQ8E,EAAM9E,MAAQmB,EAAOoX,SAAWzT,EAAMyT,QAE9D,IArmCY,kBAsmCZ,IApmCY,kBAwmCV,OAAOpX,GAAW2D,EAAQ,GAE5B,KAAK0tB,EACH,IAAIhjB,EAAUqkB,EAEhB,KAAKpB,EACH,IAAIsX,EAroCiB,EAqoCLV,EAGhB,GAFA75B,IAAYA,EAAUykB,GAElB9yB,EAAO2yB,MAAQhvB,EAAMgvB,OAASiW,EAChC,OAAO,EAGT,IAAIlQ,EAAUhC,EAAMv3B,IAAIa,GACxB,GAAI04B,EACF,OAAOA,GAAW/0B,EAEpBukC,GA/oCuB,EAkpCvBxR,EAAM7rB,IAAI7K,EAAQ2D,GAClB,IAAIsgB,EAAS0kB,GAAYt6B,EAAQrO,GAASqO,EAAQ1K,GAAQukC,EAASzR,EAAY0R,EAAWzR,GAE1F,OADAA,EAAc,OAAE12B,GACTikB,EAET,IAhoCY,kBAioCV,GAAIgR,GACF,OAAOA,GAAcx2B,KAAKuB,IAAWi1B,GAAcx2B,KAAKkF,GAG9D,OAAO,EA9NDklC,CAAW7oC,EAAQ2D,EAAO2kC,EAAQJ,EAASzR,EAAY0R,EAAWzR,GAExE,KAj8ByB,EAi8BnBwR,GAAiC,CACrC,IAAIY,EAAeN,GAAYroC,EAAe1B,KAAKuB,EAAQ,eACvD+oC,EAAeN,GAAYtoC,EAAe1B,KAAKkF,EAAO,eAE1D,GAAImlC,GAAgBC,EAAc,CAChC,IAAIC,EAAeF,EAAe9oC,EAAOT,QAAUS,EAC/CipC,EAAeF,EAAeplC,EAAMpE,QAAUoE,EAGlD,OADA+yB,IAAUA,EAAQ,IAAInB,IACf4S,EAAUa,EAAcC,EAAcf,EAASzR,EAAYC,IAGtE,QAAKgS,IAGLhS,IAAUA,EAAQ,IAAInB,IA6NxB,SAAsBv1B,EAAQ2D,EAAOukC,EAASzR,EAAY0R,EAAWzR,GACnE,IAAIkS,EA9qCqB,EA8qCTV,EACZgB,EAAWnQ,GAAW/4B,GACtBmpC,EAAYD,EAASznC,OAErB2nC,EADWrQ,GAAWp1B,GACDlC,OAEzB,GAAI0nC,GAAaC,IAAcR,EAC7B,OAAO,EAGT,IADA,IAAI9mC,EAAQqnC,EACLrnC,KAAS,CACd,IAAIjC,EAAMqpC,EAASpnC,GACnB,KAAM8mC,EAAY/oC,KAAO8D,EAAQxD,EAAe1B,KAAKkF,EAAO9D,IAC1D,OAAO,EAIX,IAAI64B,EAAUhC,EAAMv3B,IAAIa,GACxB,GAAI04B,GAAWhC,EAAMv3B,IAAIwE,GACvB,OAAO+0B,GAAW/0B,EAEpB,IAAIsgB,GAAS,EACbyS,EAAM7rB,IAAI7K,EAAQ2D,GAClB+yB,EAAM7rB,IAAIlH,EAAO3D,GAGjB,IADA,IAAIqpC,EAAWT,IACN9mC,EAAQqnC,GAAW,CAC1BtpC,EAAMqpC,EAASpnC,GACf,IAAIq0B,EAAWn2B,EAAOH,GAClBypC,EAAW3lC,EAAM9D,GAErB,GAAI42B,EACF,IAAI8S,EAAWX,EACXnS,EAAW6S,EAAUnT,EAAUt2B,EAAK8D,EAAO3D,EAAQ02B,GACnDD,EAAWN,EAAUmT,EAAUzpC,EAAKG,EAAQ2D,EAAO+yB,GAGzD,UAAmBpsB,IAAbi/B,EACGpT,IAAamT,GAAYnB,EAAUhS,EAAUmT,EAAUpB,EAASzR,EAAYC,GAC7E6S,GACD,CACLtlB,GAAS,EACT,MAEFolB,IAAaA,EAAkB,eAAPxpC,GAE1B,GAAIokB,IAAWolB,EAAU,CACvB,IAAIG,EAAUxpC,EAAO+H,YACjB0hC,EAAU9lC,EAAMoE,YAGhByhC,GAAWC,KACV,gBAAiBzpC,MAAU,gBAAiB2D,IACzB,mBAAX6lC,GAAyBA,aAAmBA,GACjC,mBAAXC,GAAyBA,aAAmBA,IACvDxlB,GAAS,GAKb,OAFAyS,EAAc,OAAE12B,GAChB02B,EAAc,OAAE/yB,GACTsgB,EAzRAylB,CAAa1pC,EAAQ2D,EAAOukC,EAASzR,EAAY0R,EAAWzR,IA3D5DiT,CAAgBpqC,EAAOoE,EAAOukC,EAASzR,EAAYwR,GAAavR,IAsEzE,SAASwC,GAAa35B,GACpB,SAAKo3B,GAASp3B,IAwahB,SAAkBszB,GAChB,QAASM,GAAeA,KAAcN,EAzad+W,CAASrqC,MAGnB45B,GAAW55B,GAASk0B,EAAajC,GAChCroB,KAAKwrB,GAASp1B,IAsB/B,SAASw6B,GAAS/5B,GAChB,IAwZF,SAAqBT,GACnB,IAAIq4B,EAAOr4B,GAASA,EAAMwI,YACtBqvB,EAAwB,mBAARQ,GAAsBA,EAAK13B,WAAc+yB,EAE7D,OAAO1zB,IAAU63B,EA5ZZD,CAAYn3B,GACf,OAAOm0B,EAAWn0B,GAEpB,IAAIikB,EAAS,GACb,IAAK,IAAIpkB,KAAOb,OAAOgB,GACjBG,EAAe1B,KAAKuB,EAAQH,IAAe,eAAPA,GACtCokB,EAAOtiB,KAAK9B,GAGhB,OAAOokB,EAgBT,SAAS0kB,GAAYtW,EAAO1uB,EAAOukC,EAASzR,EAAY0R,EAAWzR,GACjE,IAAIkS,EAlhCqB,EAkhCTV,EACZ2B,EAAYxX,EAAM5wB,OAClB2nC,EAAYzlC,EAAMlC,OAEtB,GAAIooC,GAAaT,KAAeR,GAAaQ,EAAYS,GACvD,OAAO,EAGT,IAAInR,EAAUhC,EAAMv3B,IAAIkzB,GACxB,GAAIqG,GAAWhC,EAAMv3B,IAAIwE,GACvB,OAAO+0B,GAAW/0B,EAEpB,IAAI7B,GAAS,EACTmiB,GAAS,EACT6lB,EA/hCuB,EA+hCf5B,EAAoC,IAAIV,QAAWl9B,EAM/D,IAJAosB,EAAM7rB,IAAIwnB,EAAO1uB,GACjB+yB,EAAM7rB,IAAIlH,EAAO0uB,KAGRvwB,EAAQ+nC,GAAW,CAC1B,IAAIE,EAAW1X,EAAMvwB,GACjBwnC,EAAW3lC,EAAM7B,GAErB,GAAI20B,EACF,IAAI8S,EAAWX,EACXnS,EAAW6S,EAAUS,EAAUjoC,EAAO6B,EAAO0uB,EAAOqE,GACpDD,EAAWsT,EAAUT,EAAUxnC,EAAOuwB,EAAO1uB,EAAO+yB,GAE1D,QAAiBpsB,IAAbi/B,EAAwB,CAC1B,GAAIA,EACF,SAEFtlB,GAAS,EACT,MAGF,GAAI6lB,GACF,IAAKzC,EAAU1jC,GAAO,SAAS2lC,EAAUU,GACnC,GA72BanqC,EA62BOmqC,GAANF,EA52BXnyB,IAAI9X,KA62BFkqC,IAAaT,GAAYnB,EAAU4B,EAAUT,EAAUpB,EAASzR,EAAYC,IAC/E,OAAOoT,EAAKnoC,KAAKqoC,GA/2B/B,IAAyBnqC,KAi3BX,CACNokB,GAAS,EACT,YAEG,GACD8lB,IAAaT,IACXnB,EAAU4B,EAAUT,EAAUpB,EAASzR,EAAYC,GACpD,CACLzS,GAAS,EACT,OAKJ,OAFAyS,EAAc,OAAErE,GAChBqE,EAAc,OAAE/yB,GACTsgB,EAyKT,SAAS8U,GAAW/4B,GAClB,OApZF,SAAwBA,EAAQ24B,EAAUC,GACxC,IAAI3U,EAAS0U,EAAS34B,GACtB,OAAOoB,GAAQpB,GAAUikB,EAhuB3B,SAAmBoO,EAAOjS,GAKxB,IAJA,IAAIte,GAAS,EACTL,EAAS2e,EAAO3e,OAChB4E,EAASgsB,EAAM5wB,SAEVK,EAAQL,GACf4wB,EAAMhsB,EAASvE,GAASse,EAAOte,GAEjC,OAAOuwB,EAwtB2BwG,CAAU5U,EAAQ2U,EAAY54B,IAkZzD84B,CAAe94B,EAAQ0B,GAAM61B,IAWtC,SAAS+B,GAAW92B,EAAK3C,GACvB,IAAI4iB,EAAOjgB,EAAIgzB,SACf,OAqHF,SAAmBj2B,GACjB,IAAI6M,SAAc7M,EAClB,MAAgB,UAAR6M,GAA4B,UAARA,GAA4B,UAARA,GAA4B,WAARA,EACrD,cAAV7M,EACU,OAAVA,EAzHEg6B,CAAU15B,GACb4iB,EAAmB,iBAAP5iB,EAAkB,SAAW,QACzC4iB,EAAKjgB,IAWX,SAAS6xB,GAAUr0B,EAAQH,GACzB,IAAIN,EAxjCN,SAAkBS,EAAQH,GACxB,OAAiB,MAAVG,OAAiBsK,EAAYtK,EAAOH,GAujC/B25B,CAASx5B,EAAQH,GAC7B,OAAOq5B,GAAa35B,GAASA,OAAQ+K,EAp2BvC4qB,GAAKh1B,UAAUgN,MAvEf,WACE3M,KAAKi1B,SAAWf,EAAeA,EAAa,MAAQ,GACpDl0B,KAAKoyB,KAAO,GAsEduC,GAAKh1B,UAAkB,OAzDvB,SAAoBL,GAClB,IAAIokB,EAAS1jB,KAAKoX,IAAI9X,WAAeU,KAAKi1B,SAAS31B,GAEnD,OADAU,KAAKoyB,MAAQ1O,EAAS,EAAI,EACnBA,GAuDTiR,GAAKh1B,UAAUf,IA3Cf,SAAiBU,GACf,IAAI4iB,EAAOliB,KAAKi1B,SAChB,GAAIf,EAAc,CAChB,IAAIxQ,EAASxB,EAAK5iB,GAClB,MA3YiB,8BA2YVokB,OAA4B3Z,EAAY2Z,EAEjD,OAAO9jB,EAAe1B,KAAKgkB,EAAM5iB,GAAO4iB,EAAK5iB,QAAOyK,GAsCtD4qB,GAAKh1B,UAAUyX,IA1Bf,SAAiB9X,GACf,IAAI4iB,EAAOliB,KAAKi1B,SAChB,OAAOf,OAA8BnqB,IAAdmY,EAAK5iB,GAAsBM,EAAe1B,KAAKgkB,EAAM5iB,IAyB9Eq1B,GAAKh1B,UAAU2K,IAZf,SAAiBhL,EAAKN,GACpB,IAAIkjB,EAAOliB,KAAKi1B,SAGhB,OAFAj1B,KAAKoyB,MAAQpyB,KAAKoX,IAAI9X,GAAO,EAAI,EACjC4iB,EAAK5iB,GAAQ40B,QAA0BnqB,IAAV/K,EA3aV,4BA2akDA,EAC9DgB,MAuHT80B,GAAUn1B,UAAUgN,MApFpB,WACE3M,KAAKi1B,SAAW,GAChBj1B,KAAKoyB,KAAO,GAmFd0C,GAAUn1B,UAAkB,OAvE5B,SAAyBL,GACvB,IAAI4iB,EAAOliB,KAAKi1B,SACZ1zB,EAAQu0B,GAAa5T,EAAM5iB,GAE/B,QAAIiC,EAAQ,KAIRA,GADY2gB,EAAKhhB,OAAS,EAE5BghB,EAAKrgB,MAELF,EAAOzD,KAAKgkB,EAAM3gB,EAAO,KAEzBvB,KAAKoyB,MACA,IA0DT0C,GAAUn1B,UAAUf,IA9CpB,SAAsBU,GACpB,IAAI4iB,EAAOliB,KAAKi1B,SACZ1zB,EAAQu0B,GAAa5T,EAAM5iB,GAE/B,OAAOiC,EAAQ,OAAIwI,EAAYmY,EAAK3gB,GAAO,IA2C7CuzB,GAAUn1B,UAAUyX,IA/BpB,SAAsB9X,GACpB,OAAOw2B,GAAa91B,KAAKi1B,SAAU31B,IAAQ,GA+B7Cw1B,GAAUn1B,UAAU2K,IAlBpB,SAAsBhL,EAAKN,GACzB,IAAIkjB,EAAOliB,KAAKi1B,SACZ1zB,EAAQu0B,GAAa5T,EAAM5iB,GAQ/B,OANIiC,EAAQ,KACRvB,KAAKoyB,KACPlQ,EAAK9gB,KAAK,CAAC9B,EAAKN,KAEhBkjB,EAAK3gB,GAAO,GAAKvC,EAEZgB,MAyGT+0B,GAASp1B,UAAUgN,MAtEnB,WACE3M,KAAKoyB,KAAO,EACZpyB,KAAKi1B,SAAW,CACd,KAAQ,IAAIN,GACZ,IAAO,IAAKZ,GAAOe,IACnB,OAAU,IAAIH,KAkElBI,GAASp1B,UAAkB,OArD3B,SAAwBL,GACtB,IAAIokB,EAASqV,GAAW/4B,KAAMV,GAAa,OAAEA,GAE7C,OADAU,KAAKoyB,MAAQ1O,EAAS,EAAI,EACnBA,GAmDTqR,GAASp1B,UAAUf,IAvCnB,SAAqBU,GACnB,OAAOy5B,GAAW/4B,KAAMV,GAAKV,IAAIU,IAuCnCy1B,GAASp1B,UAAUyX,IA3BnB,SAAqB9X,GACnB,OAAOy5B,GAAW/4B,KAAMV,GAAK8X,IAAI9X,IA2BnCy1B,GAASp1B,UAAU2K,IAdnB,SAAqBhL,EAAKN,GACxB,IAAIkjB,EAAO6W,GAAW/4B,KAAMV,GACxB8yB,EAAOlQ,EAAKkQ,KAIhB,OAFAlQ,EAAK5X,IAAIhL,EAAKN,GACdgB,KAAKoyB,MAAQlQ,EAAKkQ,MAAQA,EAAO,EAAI,EAC9BpyB,MAyDTinC,GAAStnC,UAAU0K,IAAM48B,GAAStnC,UAAUyB,KAnB5C,SAAqBpC,GAEnB,OADAgB,KAAKi1B,SAAS3qB,IAAItL,EA3qBC,6BA4qBZgB,MAkBTinC,GAAStnC,UAAUyX,IANnB,SAAqBpY,GACnB,OAAOgB,KAAKi1B,SAAS7d,IAAIpY,IAqG3Bg2B,GAAMr1B,UAAUgN,MA3EhB,WACE3M,KAAKi1B,SAAW,IAAIH,GACpB90B,KAAKoyB,KAAO,GA0Ed4C,GAAMr1B,UAAkB,OA9DxB,SAAqBL,GACnB,IAAI4iB,EAAOliB,KAAKi1B,SACZvR,EAASxB,EAAa,OAAE5iB,GAG5B,OADAU,KAAKoyB,KAAOlQ,EAAKkQ,KACV1O,GA0DTsR,GAAMr1B,UAAUf,IA9ChB,SAAkBU,GAChB,OAAOU,KAAKi1B,SAASr2B,IAAIU,IA8C3B01B,GAAMr1B,UAAUyX,IAlChB,SAAkB9X,GAChB,OAAOU,KAAKi1B,SAAS7d,IAAI9X,IAkC3B01B,GAAMr1B,UAAU2K,IArBhB,SAAkBhL,EAAKN,GACrB,IAAIkjB,EAAOliB,KAAKi1B,SAChB,GAAI/S,aAAgB4S,GAAW,CAC7B,IAAIoE,EAAQhX,EAAK+S,SACjB,IAAKlB,GAAQmF,EAAMh4B,OAASi4B,IAG1B,OAFAD,EAAM93B,KAAK,CAAC9B,EAAKN,IACjBgB,KAAKoyB,OAASlQ,EAAKkQ,KACZpyB,KAETkiB,EAAOliB,KAAKi1B,SAAW,IAAIF,GAASmE,GAItC,OAFAhX,EAAK5X,IAAIhL,EAAKN,GACdgB,KAAKoyB,KAAOlQ,EAAKkQ,KACVpyB,MA+hBT,IAAIg3B,GAAcvD,EAA+B,SAASh0B,GACxD,OAAc,MAAVA,EACK,IAETA,EAAShB,OAAOgB,GA9sClB,SAAqBqyB,EAAO/vB,GAM1B,IALA,IAAIR,GAAS,EACTL,EAAkB,MAAT4wB,EAAgB,EAAIA,EAAM5wB,OACnCwoC,EAAW,EACXhmB,EAAS,KAEJniB,EAAQL,GAAQ,CACvB,IAAIlC,EAAQ8yB,EAAMvwB,GACdQ,EAAU/C,EAAOuC,EAAOuwB,KAC1BpO,EAAOgmB,KAAc1qC,GAGzB,OAAO0kB,EAmsCAimB,CAAYlW,EAAiBh0B,IAAS,SAAS23B,GACpD,OAAO5D,EAAqBt1B,KAAKuB,EAAQ23B,QAsd7C,WACE,MAAO,IA5cLZ,GAAS6Q,GAkCb,SAAS3R,GAAQ12B,EAAOkC,GAEtB,SADAA,EAAmB,MAAVA,EAt2CY,iBAs2CwBA,KAE1B,iBAATlC,GAAqBkyB,EAAStoB,KAAK5J,KAC1CA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,EAAQkC,EA4D7C,SAASkzB,GAAS9B,GAChB,GAAY,MAARA,EAAc,CAChB,IACE,OAAOU,EAAa90B,KAAKo0B,GACzB,MAAOtX,IACT,IACE,OAAQsX,EAAO,GACf,MAAOtX,KAEX,MAAO,GAmCT,SAAS6a,GAAG72B,EAAOoE,GACjB,OAAOpE,IAAUoE,GAAUpE,IAAUA,GAASoE,IAAUA,GA5IrDywB,GA7yCa,qBA6yCD2C,GAAO,IAAI3C,EAAS,IAAIuF,YAAY,MAChDrF,GAAOyC,GAAO,IAAIzC,IAAQjD,GAC1BkD,GAzzCY,oBAyzCDwC,GAAOxC,EAAQqF,YAC1BpF,GAAOuC,GAAO,IAAIvC,IAAQlD,GAC1B/X,GApzCY,oBAozCDwd,GAAO,IAAIxd,MACzBwd,GAAS,SAASx3B,GAChB,IAAI0kB,EAAS2jB,GAAWroC,GACpBq4B,EAAO3T,GAAU6iB,EAAYvnC,EAAMwI,iBAAcuC,EACjDuvB,EAAajC,EAAOjD,GAASiD,GAAQ,GAEzC,GAAIiC,EACF,OAAQA,GACN,KAAKnF,EAAoB,MAzzCf,oBA0zCV,KAAKE,EAAe,OAAOvD,EAC3B,KAAKwD,EAAmB,MAr0Cf,mBAs0CT,KAAKC,EAAe,OAAOxD,EAC3B,KAAKyD,EAAmB,MAh0Cf,mBAm0Cb,OAAO9Q,IA8IX,IAAI6R,GAAckS,GAAgB,WAAa,OAAO39B,UAApB,IAAsC29B,GAAkB,SAASzoC,GACjG,OAAOo2B,GAAap2B,IAAUY,EAAe1B,KAAKc,EAAO,YACtDw0B,EAAqBt1B,KAAKc,EAAO,WA0BlC6B,GAAUD,MAAMC,QAgDhB8yB,GAAWD,GA4Of,WACE,OAAO,GA1LT,SAASkF,GAAW55B,GAClB,IAAKo3B,GAASp3B,GACZ,OAAO,EAIT,IAAI+Z,EAAMsuB,GAAWroC,GACrB,MApmDY,qBAomDL+Z,GAnmDI,8BAmmDcA,GAxmDZ,0BAwmD6BA,GA7lD7B,kBA6lDgDA,EA6B/D,SAASwgB,GAASv6B,GAChB,MAAuB,iBAATA,GACZA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,GA5oDb,iBAwqDvB,SAASo3B,GAASp3B,GAChB,IAAI6M,SAAc7M,EAClB,OAAgB,MAATA,IAA0B,UAAR6M,GAA4B,YAARA,GA2B/C,SAASupB,GAAap2B,GACpB,OAAgB,MAATA,GAAiC,iBAATA,EAoBjC,IAAI6nC,GAAeD,EAhiDnB,SAAmBtU,GACjB,OAAO,SAAStzB,GACd,OAAOszB,EAAKtzB,IA8hDsB4qC,CAAUhD,GAnvBhD,SAA0B5nC,GACxB,OAAOo2B,GAAap2B,IAClBu6B,GAASv6B,EAAMkC,WAAaslC,EAAea,GAAWroC,KA+wB1D,SAASmC,GAAK1B,GACZ,OA1NgB,OADGT,EA2NAS,IA1NK85B,GAASv6B,EAAMkC,UAAY03B,GAAW55B,GA0NjCk2B,GAAcz1B,GAAU+5B,GAAS/5B,GA3NhE,IAAqBT,EAqQrBjB,EAAOD,QAlNP,SAAiBkB,EAAOoE,GACtB,OAAOskC,GAAY1oC,EAAOoE,MAmNClF,KAAK8B,KAAMpC,EAAoB,IAAKA,EAAoB,GAApBA,CAAwBG,KAIlF,SAASA,EAAQoI,EAAqBvI,GAE7C,aAC+BA,EAAoBS,EAAE8H,EAAqB,KAAK,WAAa,OAAO0jC,KACpEjsC,EAAoBS,EAAE8H,EAAqB,KAAK,WAAa,OAAO2jC,KACpElsC,EAAoBS,EAAE8H,EAAqB,KAAK,WAAa,OAAO4jC,KAC9E,IAAIpe,EAAyC/tB,EAAoB,GACtF,SAAS0J,EAAQC,GAAmV,OAAtOD,EAArD,oBAAXxI,QAAoD,kBAApBA,OAAOiE,SAAmC,SAAiBwE,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXzI,QAAyByI,EAAIC,cAAgB1I,QAAUyI,IAAQzI,OAAOa,UAAY,gBAAkB4H,IAAyBA,GAEnX,SAAS2B,EAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIN,UAAU,qCAEhH,SAASO,EAAkBC,EAAQC,GAAS,IAAK,IAAIvL,EAAI,EAAGA,EAAIuL,EAAMrI,OAAQlD,IAAK,CAAE,IAAIwL,EAAaD,EAAMvL,GAAIwL,EAAW7K,WAAa6K,EAAW7K,aAAc,EAAO6K,EAAW9B,cAAe,EAAU,UAAW8B,IAAYA,EAAW7B,UAAW,GAAMlJ,OAAOC,eAAe4K,EAAQE,EAAWlK,IAAKkK,IAI7S,SAASiZ,EAAKnZ,EAAQ5J,EAAUgjB,GAAuV,OAAtRD,EAA9B,qBAAZE,SAA2BA,QAAQ/jB,IAAc+jB,QAAQ/jB,IAAqB,SAAc0K,EAAQ5J,EAAUgjB,GAAY,IAAIrd,EAErL,SAAwB5F,EAAQC,GAAY,MAAQjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAA8D,QAAjDD,EAASmjB,EAAgBnjB,MAAuC,OAAOA,EAFOojB,CAAevZ,EAAQ5J,GAAW,GAAK2F,EAAL,CAAmB,IAAIyd,EAAOrkB,OAAOskB,yBAAyB1d,EAAM3F,GAAW,OAAIojB,EAAKlkB,IAAckkB,EAAKlkB,IAAIV,KAAKwkB,GAAoBI,EAAK9jB,SAAwBsK,EAAQ5J,EAAUgjB,GAAYpZ,GAMja,SAAS0Z,EAAgBxkB,EAAGqB,GAA+G,OAA1GmjB,EAAkBvkB,OAAO+X,gBAAkB,SAAyBhY,EAAGqB,GAAsB,OAAjBrB,EAAEiY,UAAY5W,EAAUrB,IAA6BA,EAAGqB,GAErK,SAASojB,EAAaC,GAAW,IAAIC,EAMrC,WAAuC,GAAuB,qBAAZR,UAA4BA,QAAQS,UAAW,OAAO,EAAO,GAAIT,QAAQS,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQ5jB,UAAU6jB,QAAQtlB,KAAKykB,QAAQS,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAOvI,GAAK,OAAO,GAN9PyI,GAA6B,OAAO,WAAkC,IAAsCC,EAAlCC,EAAQf,EAAgBM,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYhB,EAAgB5iB,MAAMwH,YAAakc,EAASf,QAAQS,UAAUO,EAAO7Z,UAAW8Z,QAAqBF,EAASC,EAAMlR,MAAMzS,KAAM8J,WAAc,OAAO+Z,EAA2B7jB,KAAM0jB,IAE5Z,SAASG,EAA2BC,EAAM5lB,GAAQ,OAAIA,GAA2B,WAAlBoJ,EAAQpJ,IAAsC,oBAATA,EAEpG,SAAgC4lB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,EAFbE,CAAuBF,GAAtC5lB,EAMnI,SAAS0kB,EAAgBpkB,GAAwJ,OAAnJokB,EAAkBnkB,OAAO+X,eAAiB/X,OAAOwlB,eAAiB,SAAyBzlB,GAAK,OAAOA,EAAEiY,WAAahY,OAAOwlB,eAAezlB,KAA8BA,GAIxM,IAAIqrC,EAA+B,SAAUG,IAhB7C,SAAmBplB,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/b,UAAU,sDAAyD8b,EAASjlB,UAAYlB,OAAOY,OAAOwlB,GAAcA,EAAWllB,UAAW,CAAE6H,YAAa,CAAExI,MAAO4lB,EAAUjd,UAAU,EAAMD,cAAc,KAAemd,GAAY7B,EAAgB4B,EAAUC,GAiBjXC,CAAU+kB,EAAiBG,GAE3B,IAzBoB5gC,EAAa6D,EAAYC,EAyBzCyJ,EAASsM,EAAa4mB,GAE1B,SAASA,IAGP,OAFA3gC,EAAgBlJ,KAAM6pC,GAEflzB,EAAOlE,MAAMzS,KAAM8J,WAiB5B,OA/CoBV,EAiCPygC,GAjCoB58B,EAiCH,CAAC,CAC7B3N,IAAK,QACLN,MAAO,SAAe4Y,GACpB,IAAI5Y,EAAQyjB,EAAKG,EAAgBinB,EAAgBlqC,WAAY,QAASK,MAAM9B,KAAK8B,KAAM4X,GAEvF,GAA8B,IAA1B5Y,EAAMmG,QAAQ,QAAe,OAAOnG,EACxCA,EAAQA,EAAMyf,QAAQ,UAAW,IAAIA,QAAQ,UAAW,IACxD,IAAIwrB,EAAMjrC,EAAMsZ,MAAM,KAAKrW,KAAI,SAAU0C,GACvC,MAAO,KAAKR,OAAOgV,SAASxU,EAAW,IAAI+D,SAAS,KAAKhG,OAAO,MAC/D8B,KAAK,IACR,MAAO,IAAIL,OAAO8lC,QA3CsD5gC,EAAkBD,EAAYzJ,UAAWsN,GAAiBC,GAAa7D,EAAkBD,EAAa8D,GA+C3K28B,EAzB0B,CA0BjCle,EAAwD,iBAEtDme,EAAa,IAAIne,EAAwD,gBAAE,QAAS,WAAY,CAClG9T,MAAO8T,EAA8C,MAAEzT,SAErD6xB,EAAa,IAAIF,EAAgB,QAAS,QAAS,CACrDhyB,MAAO8T,EAA8C,MAAEzT,UAMlD,SAASna,EAAQoI,EAAqBvI,GAE7C,aAC+BA,EAAoBS,EAAE8H,EAAqB,KAAK,WAAa,OAAO+jC,KACpEtsC,EAAoBS,EAAE8H,EAAqB,KAAK,WAAa,OAAOgkC,KACpEvsC,EAAoBS,EAAE8H,EAAqB,KAAK,WAAa,OAAOikC,KAC9E,IAAIze,EAAyC/tB,EAAoB,GAElFiW,EAAS,CACXgE,MAAO8T,EAA8C,MAAEjc,MACvD2O,UAAW,CAAC,QAEV6rB,EAAqB,IAAIve,EAAmD,WAAE,YAAa,MAAO9X,GAClGs2B,EAAiB,IAAIxe,EAAwD,gBAAE,YAAa,eAAgB9X,GAC5Gu2B,EAAiB,IAAIze,EAAwD,gBAAE,YAAa,YAAa9X,IAKtG,SAAS9V,EAAQD,EAASF,GAEjC,IAAIysC,EAAWzsC,EAAoB,IAE/BgC,EAAiB,GAAGA,eAExB7B,EAAOD,QAAUW,OAAO6rC,QAAU,SAAgBvE,EAAIzmC,GACpD,OAAOM,EAAe1B,KAAKmsC,EAAStE,GAAKzmC,KAMpC,SAASvB,EAAQD,EAASF,IAEL,SAAS8yB,EAAQ3yB,GAU7C,IAmDIkzB,EAAe,8BAGfC,EAAW,mBAGXsV,EAAiB,GACrBA,EAxBiB,yBAwBYA,EAvBZ,yBAwBjBA,EAvBc,sBAuBYA,EAtBX,uBAuBfA,EAtBe,uBAsBYA,EArBZ,uBAsBfA,EArBsB,8BAqBYA,EApBlB,wBAqBhBA,EApBgB,yBAoBY,EAC5BA,EAlDc,sBAkDYA,EAjDX,kBAkDfA,EAhCqB,wBAgCYA,EAhDnB,oBAiDdA,EAhCkB,qBAgCYA,EAhDhB,iBAiDdA,EAhDe,kBAgDYA,EA/Cb,qBAgDdA,EA9Ca,gBA8CYA,EA7CT,mBA8ChBA,EA5CgB,mBA4CYA,EA1CZ,mBA2ChBA,EA1Ca,gBA0CYA,EAzCT,mBA0ChBA,EAxCiB,qBAwCY,EAG7B,IAAIpV,EAA8B,iBAAVV,GAAsBA,GAAUA,EAAOjyB,SAAWA,QAAUiyB,EAGhFW,EAA0B,iBAARvN,MAAoBA,MAAQA,KAAKrlB,SAAWA,QAAUqlB,KAGxEvZ,EAAO6mB,GAAcC,GAAYC,SAAS,cAATA,GAGjCC,EAAuBzzB,IAAYA,EAAQ4Z,UAAY5Z,EAGvD0zB,EAAaD,GAAgC,iBAAVxzB,GAAsBA,IAAWA,EAAO2Z,UAAY3Z,EAGvF0zB,EAAgBD,GAAcA,EAAW1zB,UAAYyzB,EAGrDkV,EAAchV,GAAiBL,EAAWsV,QAG1CC,EAAY,WACd,IAEE,IAAI1vB,EAAQua,GAAcA,EAAW+Y,SAAW/Y,EAAW+Y,QAAQ,QAAQtzB,MAE3E,OAAIA,GAKGwvB,GAAeA,EAAY1E,SAAW0E,EAAY1E,QAAQ,QACjE,MAAO/mB,KAXK,GAeZ4rB,EAAmBD,GAAYA,EAASE,aAY5C,SAASp0B,EAAM6f,EAAMkY,EAASj2B,GAC5B,OAAQA,EAAKrT,QACX,KAAK,EAAG,OAAOoxB,EAAKp0B,KAAKssC,GACzB,KAAK,EAAG,OAAOlY,EAAKp0B,KAAKssC,EAASj2B,EAAK,IACvC,KAAK,EAAG,OAAO+d,EAAKp0B,KAAKssC,EAASj2B,EAAK,GAAIA,EAAK,IAChD,KAAK,EAAG,OAAO+d,EAAKp0B,KAAKssC,EAASj2B,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAE3D,OAAO+d,EAAK7f,MAAM+3B,EAASj2B,GA8D7B,IAPiB+d,EAAM5sB,EAOnB8sB,EAAa5xB,MAAMjB,UACnB8yB,EAAYnB,SAAS3xB,UACrB+yB,EAAcj0B,OAAOkB,UAGrBgzB,EAAapoB,EAAK,sBAGlByoB,EAAeP,EAAU/pB,SAGzB9I,EAAiB8yB,EAAY9yB,eAG7BgzB,EAAc,WAChB,IAAIC,EAAM,SAASC,KAAKH,GAAcA,EAAWxxB,MAAQwxB,EAAWxxB,KAAK4xB,UAAY,IACrF,OAAOF,EAAO,iBAAmBA,EAAO,GAFxB,GAUdkU,EAAuBrU,EAAYhqB,SAGnC+hC,EAAmBzX,EAAa90B,KAAKO,QAGrCy0B,EAAaC,OAAO,IACtBH,EAAa90B,KAAK0B,GAAgB6e,QA7KjB,sBA6KuC,QACvDA,QAAQ,yDAA0D,SAAW,KAI5E2U,EAAS3B,EAAgBlnB,EAAK6oB,YAASrpB,EACvCjL,EAASyL,EAAKzL,OACdu0B,EAAa9oB,EAAK8oB,WAClBqX,EAActX,EAASA,EAAOsX,iBAAc3gC,EAC5CupB,GA/CahB,EA+CU7zB,OAAOwlB,eA/CXve,EA+C2BjH,OA9CzC,SAASsC,GACd,OAAOuxB,EAAK5sB,EAAU3E,MA8CtBwyB,EAAe90B,OAAOY,OACtBm0B,EAAuBd,EAAYc,qBACnC7xB,EAAS6wB,EAAW7wB,OACpBqlC,EAAiBloC,EAASA,EAAOC,iBAAcgL,EAE/CrL,EAAkB,WACpB,IACE,IAAI4zB,EAAOwB,GAAUr1B,OAAQ,kBAE7B,OADA6zB,EAAK,GAAI,GAAI,IACNA,EACP,MAAOtX,KALW,GASlB0Y,EAAiBN,EAASA,EAAOO,cAAW5pB,EAC5C4gC,EAAY7mC,KAAKwP,IACjBs3B,EAAYC,KAAKC,IAGjB/W,EAAMD,GAAUvpB,EAAM,OACtB2pB,EAAeJ,GAAUr1B,OAAQ,UAUjCssC,EAAc,WAChB,SAAStrC,KACT,OAAO,SAASo3B,GACd,IAAKT,GAASS,GACZ,MAAO,GAET,GAAItD,EACF,OAAOA,EAAasD,GAEtBp3B,EAAOE,UAAYk3B,EACnB,IAAInT,EAAS,IAAIjkB,EAEjB,OADAA,EAAOE,eAAYoK,EACZ2Z,GAZO,GAuBlB,SAASiR,EAAKC,GACZ,IAAIrzB,GAAS,EACTL,EAAoB,MAAX0zB,EAAkB,EAAIA,EAAQ1zB,OAG3C,IADAlB,KAAK2M,UACIpL,EAAQL,GAAQ,CACvB,IAAI2zB,EAAQD,EAAQrzB,GACpBvB,KAAKsK,IAAIuqB,EAAM,GAAIA,EAAM,KA+F7B,SAASC,EAAUF,GACjB,IAAIrzB,GAAS,EACTL,EAAoB,MAAX0zB,EAAkB,EAAIA,EAAQ1zB,OAG3C,IADAlB,KAAK2M,UACIpL,EAAQL,GAAQ,CACvB,IAAI2zB,EAAQD,EAAQrzB,GACpBvB,KAAKsK,IAAIuqB,EAAM,GAAIA,EAAM,KA4G7B,SAASE,EAASH,GAChB,IAAIrzB,GAAS,EACTL,EAAoB,MAAX0zB,EAAkB,EAAIA,EAAQ1zB,OAG3C,IADAlB,KAAK2M,UACIpL,EAAQL,GAAQ,CACvB,IAAI2zB,EAAQD,EAAQrzB,GACpBvB,KAAKsK,IAAIuqB,EAAM,GAAIA,EAAM,KA8F7B,SAASG,EAAMJ,GACb,IAAI1S,EAAOliB,KAAKi1B,SAAW,IAAIH,EAAUF,GACzC50B,KAAKoyB,KAAOlQ,EAAKkQ,KAmGnB,SAAS8C,EAAcl2B,EAAOm2B,GAC5B,IAAIkB,EAAQx1B,GAAQ7B,GAChBkoC,GAAS7Q,GAASd,GAAYv2B,GAC9BmoC,GAAU9Q,IAAU6Q,GAASvT,GAAS30B,GACtCooC,GAAU/Q,IAAU6Q,IAAUC,GAAUN,GAAa7nC,GACrDy2B,EAAcY,GAAS6Q,GAASC,GAAUC,EAC1C1jB,EAAS+R,EAzjBf,SAAmBj2B,EAAGuyB,GAIpB,IAHA,IAAIxwB,GAAS,EACTmiB,EAAS9iB,MAAMpB,KAEV+B,EAAQ/B,GACfkkB,EAAOniB,GAASwwB,EAASxwB,GAE3B,OAAOmiB,EAkjBoB8R,CAAUx2B,EAAMkC,OAAQV,QAAU,GACzDU,EAASwiB,EAAOxiB,OAEpB,IAAK,IAAI5B,KAAON,GACTm2B,IAAav1B,EAAe1B,KAAKc,EAAOM,IACvCm2B,IAEQ,UAAPn2B,GAEC6nC,IAAkB,UAAP7nC,GAA0B,UAAPA,IAE9B8nC,IAAkB,UAAP9nC,GAA0B,cAAPA,GAA8B,cAAPA,IAEtDo2B,GAAQp2B,EAAK4B,KAElBwiB,EAAOtiB,KAAK9B,GAGhB,OAAOokB,EAYT,SAASsnB,EAAiBvrC,EAAQH,EAAKN,SACtB+K,IAAV/K,IAAwB62B,GAAGp2B,EAAOH,GAAMN,SAC9B+K,IAAV/K,KAAyBM,KAAOG,KACnCwrC,EAAgBxrC,EAAQH,EAAKN,GAcjC,SAAS22B,EAAYl2B,EAAQH,EAAKN,GAChC,IAAI42B,EAAWn2B,EAAOH,GAChBM,EAAe1B,KAAKuB,EAAQH,IAAQu2B,GAAGD,EAAU52B,UACxC+K,IAAV/K,GAAyBM,KAAOG,IACnCwrC,EAAgBxrC,EAAQH,EAAKN,GAYjC,SAAS82B,EAAahE,EAAOxyB,GAE3B,IADA,IAAI4B,EAAS4wB,EAAM5wB,OACZA,KACL,GAAI20B,GAAG/D,EAAM5wB,GAAQ,GAAI5B,GACvB,OAAO4B,EAGX,OAAQ,EAYV,SAAS+pC,EAAgBxrC,EAAQH,EAAKN,GACzB,aAAPM,GAAsBZ,EACxBA,EAAee,EAAQH,EAAK,CAC1B,cAAgB,EAChB,YAAc,EACd,MAASN,EACT,UAAY,IAGdS,EAAOH,GAAON,EA3alB21B,EAAKh1B,UAAUgN,MAvEf,WACE3M,KAAKi1B,SAAWf,EAAeA,EAAa,MAAQ,GACpDl0B,KAAKoyB,KAAO,GAsEduC,EAAKh1B,UAAkB,OAzDvB,SAAoBL,GAClB,IAAIokB,EAAS1jB,KAAKoX,IAAI9X,WAAeU,KAAKi1B,SAAS31B,GAEnD,OADAU,KAAKoyB,MAAQ1O,EAAS,EAAI,EACnBA,GAuDTiR,EAAKh1B,UAAUf,IA3Cf,SAAiBU,GACf,IAAI4iB,EAAOliB,KAAKi1B,SAChB,GAAIf,EAAc,CAChB,IAAIxQ,EAASxB,EAAK5iB,GAClB,MA7UiB,8BA6UVokB,OAA4B3Z,EAAY2Z,EAEjD,OAAO9jB,EAAe1B,KAAKgkB,EAAM5iB,GAAO4iB,EAAK5iB,QAAOyK,GAsCtD4qB,EAAKh1B,UAAUyX,IA1Bf,SAAiB9X,GACf,IAAI4iB,EAAOliB,KAAKi1B,SAChB,OAAOf,OAA8BnqB,IAAdmY,EAAK5iB,GAAsBM,EAAe1B,KAAKgkB,EAAM5iB,IAyB9Eq1B,EAAKh1B,UAAU2K,IAZf,SAAiBhL,EAAKN,GACpB,IAAIkjB,EAAOliB,KAAKi1B,SAGhB,OAFAj1B,KAAKoyB,MAAQpyB,KAAKoX,IAAI9X,GAAO,EAAI,EACjC4iB,EAAK5iB,GAAQ40B,QAA0BnqB,IAAV/K,EA7WV,4BA6WkDA,EAC9DgB,MAuHT80B,EAAUn1B,UAAUgN,MApFpB,WACE3M,KAAKi1B,SAAW,GAChBj1B,KAAKoyB,KAAO,GAmFd0C,EAAUn1B,UAAkB,OAvE5B,SAAyBL,GACvB,IAAI4iB,EAAOliB,KAAKi1B,SACZ1zB,EAAQu0B,EAAa5T,EAAM5iB,GAE/B,QAAIiC,EAAQ,KAIRA,GADY2gB,EAAKhhB,OAAS,EAE5BghB,EAAKrgB,MAELF,EAAOzD,KAAKgkB,EAAM3gB,EAAO,KAEzBvB,KAAKoyB,MACA,IA0DT0C,EAAUn1B,UAAUf,IA9CpB,SAAsBU,GACpB,IAAI4iB,EAAOliB,KAAKi1B,SACZ1zB,EAAQu0B,EAAa5T,EAAM5iB,GAE/B,OAAOiC,EAAQ,OAAIwI,EAAYmY,EAAK3gB,GAAO,IA2C7CuzB,EAAUn1B,UAAUyX,IA/BpB,SAAsB9X,GACpB,OAAOw2B,EAAa91B,KAAKi1B,SAAU31B,IAAQ,GA+B7Cw1B,EAAUn1B,UAAU2K,IAlBpB,SAAsBhL,EAAKN,GACzB,IAAIkjB,EAAOliB,KAAKi1B,SACZ1zB,EAAQu0B,EAAa5T,EAAM5iB,GAQ/B,OANIiC,EAAQ,KACRvB,KAAKoyB,KACPlQ,EAAK9gB,KAAK,CAAC9B,EAAKN,KAEhBkjB,EAAK3gB,GAAO,GAAKvC,EAEZgB,MAyGT+0B,EAASp1B,UAAUgN,MAtEnB,WACE3M,KAAKoyB,KAAO,EACZpyB,KAAKi1B,SAAW,CACd,KAAQ,IAAIN,EACZ,IAAO,IAAKZ,GAAOe,GACnB,OAAU,IAAIH,IAkElBI,EAASp1B,UAAkB,OArD3B,SAAwBL,GACtB,IAAIokB,EAASqV,GAAW/4B,KAAMV,GAAa,OAAEA,GAE7C,OADAU,KAAKoyB,MAAQ1O,EAAS,EAAI,EACnBA,GAmDTqR,EAASp1B,UAAUf,IAvCnB,SAAqBU,GACnB,OAAOy5B,GAAW/4B,KAAMV,GAAKV,IAAIU,IAuCnCy1B,EAASp1B,UAAUyX,IA3BnB,SAAqB9X,GACnB,OAAOy5B,GAAW/4B,KAAMV,GAAK8X,IAAI9X,IA2BnCy1B,EAASp1B,UAAU2K,IAdnB,SAAqBhL,EAAKN,GACxB,IAAIkjB,EAAO6W,GAAW/4B,KAAMV,GACxB8yB,EAAOlQ,EAAKkQ,KAIhB,OAFAlQ,EAAK5X,IAAIhL,EAAKN,GACdgB,KAAKoyB,MAAQlQ,EAAKkQ,MAAQA,EAAO,EAAI,EAC9BpyB,MAwGTg1B,EAAMr1B,UAAUgN,MA3EhB,WACE3M,KAAKi1B,SAAW,IAAIH,EACpB90B,KAAKoyB,KAAO,GA0Ed4C,EAAMr1B,UAAkB,OA9DxB,SAAqBL,GACnB,IAAI4iB,EAAOliB,KAAKi1B,SACZvR,EAASxB,EAAa,OAAE5iB,GAG5B,OADAU,KAAKoyB,KAAOlQ,EAAKkQ,KACV1O,GA0DTsR,EAAMr1B,UAAUf,IA9ChB,SAAkBU,GAChB,OAAOU,KAAKi1B,SAASr2B,IAAIU,IA8C3B01B,EAAMr1B,UAAUyX,IAlChB,SAAkB9X,GAChB,OAAOU,KAAKi1B,SAAS7d,IAAI9X,IAkC3B01B,EAAMr1B,UAAU2K,IArBhB,SAAkBhL,EAAKN,GACrB,IAAIkjB,EAAOliB,KAAKi1B,SAChB,GAAI/S,aAAgB4S,EAAW,CAC7B,IAAIoE,EAAQhX,EAAK+S,SACjB,IAAKlB,GAAQmF,EAAMh4B,OAASi4B,IAG1B,OAFAD,EAAM93B,KAAK,CAAC9B,EAAKN,IACjBgB,KAAKoyB,OAASlQ,EAAKkQ,KACZpyB,KAETkiB,EAAOliB,KAAKi1B,SAAW,IAAIF,EAASmE,GAItC,OAFAhX,EAAK5X,IAAIhL,EAAKN,GACdgB,KAAKoyB,KAAOlQ,EAAKkQ,KACVpyB,MAkIT,IAsWuBkrC,EAtWnBC,GAuWK,SAAS1rC,EAAQsyB,EAAUqG,GAMhC,IALA,IAAI72B,GAAS,EACT6pC,EAAW3sC,OAAOgB,GAClB8J,EAAQ6uB,EAAS34B,GACjByB,EAASqI,EAAMrI,OAEZA,KAAU,CACf,IAAI5B,EAAMiK,EAAM2hC,EAAYhqC,IAAWK,GACvC,IAA+C,IAA3CwwB,EAASqZ,EAAS9rC,GAAMA,EAAK8rC,GAC/B,MAGJ,OAAO3rC,GA1WX,SAAS4nC,GAAWroC,GAClB,OAAa,MAATA,OACe+K,IAAV/K,EA7xBQ,qBANL,gBAqyBJgoC,GAAkBA,KAAkBvoC,OAAOO,GA6YrD,SAAmBA,GACjB,IAAIsoC,EAAQ1nC,EAAe1B,KAAKc,EAAOgoC,GACnCjuB,EAAM/Z,EAAMgoC,GAEhB,IACEhoC,EAAMgoC,QAAkBj9B,EACxB,IAAIw9B,GAAW,EACf,MAAOvsB,IAET,IAAI0I,EAASqjB,EAAqB7oC,KAAKc,GAQvC,OAPIuoC,IACED,EACFtoC,EAAMgoC,GAAkBjuB,SAEjB/Z,EAAMgoC,IAGVtjB,EA7ZH8jB,CAAUxoC,GAwhBhB,SAAwBA,GACtB,OAAO+nC,EAAqB7oC,KAAKc,GAxhB7Bi0B,CAAej0B,GAUrB,SAASyoC,GAAgBzoC,GACvB,OAAOo2B,GAAap2B,IA5zBR,sBA4zBkBqoC,GAAWroC,GAW3C,SAAS25B,GAAa35B,GACpB,SAAKo3B,GAASp3B,IAodhB,SAAkBszB,GAChB,QAASM,GAAeA,KAAcN,EArdd+W,CAASrqC,MAGnB45B,GAAW55B,GAASk0B,EAAajC,GAChCroB,KAgmBjB,SAAkB0pB,GAChB,GAAY,MAARA,EAAc,CAChB,IACE,OAAOU,EAAa90B,KAAKo0B,GACzB,MAAOtX,IACT,IACE,OAAQsX,EAAO,GACf,MAAOtX,KAEX,MAAO,GAzmBaoZ,CAASp1B,IAsB/B,SAASqsC,GAAW5rC,GAClB,IAAK22B,GAAS32B,GACZ,OAmdJ,SAAsBA,GACpB,IAAIikB,EAAS,GACb,GAAc,MAAVjkB,EACF,IAAK,IAAIH,KAAOb,OAAOgB,GACrBikB,EAAOtiB,KAAK9B,GAGhB,OAAOokB,EA1dE4nB,CAAa7rC,GAEtB,IAAI8rC,EAAU3U,GAAYn3B,GACtBikB,EAAS,GAEb,IAAK,IAAIpkB,KAAOG,GACD,eAAPH,IAAyBisC,GAAY3rC,EAAe1B,KAAKuB,EAAQH,KACrEokB,EAAOtiB,KAAK9B,GAGhB,OAAOokB,EAcT,SAAS8nB,GAAU/rC,EAAQuM,EAAQy/B,EAAUvV,EAAYC,GACnD12B,IAAWuM,GAGfm/B,GAAQn/B,GAAQ,SAAS0/B,EAAUpsC,GAEjC,GADA62B,IAAUA,EAAQ,IAAInB,GAClBoB,GAASsV,IA+BjB,SAAuBjsC,EAAQuM,EAAQ1M,EAAKmsC,EAAUE,EAAWzV,EAAYC,GAC3E,IAAIP,EAAWgW,GAAQnsC,EAAQH,GAC3BosC,EAAWE,GAAQ5/B,EAAQ1M,GAC3B64B,EAAUhC,EAAMv3B,IAAI8sC,GAExB,GAAIvT,EACF6S,EAAiBvrC,EAAQH,EAAK64B,OADhC,CAIA,IAwpByBn5B,EAxpBrB85B,EAAW5C,EACXA,EAAWN,EAAU8V,EAAWpsC,EAAM,GAAKG,EAAQuM,EAAQmqB,QAC3DpsB,EAEA8hC,OAAwB9hC,IAAb+uB,EAEf,GAAI+S,EAAU,CACZ,IAAIxV,EAAQx1B,GAAQ6qC,GAChBvE,GAAU9Q,GAAS1C,GAAS+X,GAC5BI,GAAWzV,IAAU8Q,GAAUN,GAAa6E,GAEhD5S,EAAW4S,EACPrV,GAAS8Q,GAAU2E,EACjBjrC,GAAQ+0B,GACVkD,EAAWlD,EA2oBVR,GADkBp2B,EAxoBM42B,IAyoBDP,GAAYr2B,GAxoBpC85B,EAsHR,SAAmB9sB,EAAQ8lB,GACzB,IAAIvwB,GAAS,EACTL,EAAS8K,EAAO9K,OAGpB,IADA4wB,IAAUA,EAAQlxB,MAAMM,MACfK,EAAQL,GACf4wB,EAAMvwB,GAASyK,EAAOzK,GAExB,OAAOuwB,EA9HUyE,CAAUX,GAEduR,GACP0E,GAAW,EACX/S,EAqER,SAAqBpC,EAAQV,GAC3B,GAAIA,EACF,OAAOU,EAAOh0B,QAEhB,IAAIxB,EAASw1B,EAAOx1B,OAChBwiB,EAASgnB,EAAcA,EAAYxpC,GAAU,IAAIw1B,EAAOlvB,YAAYtG,GAGxE,OADAw1B,EAAO/W,KAAK+D,GACLA,EA7EUiT,CAAY+U,GAAU,IAE1BI,GACPD,GAAW,EACX/S,EAiGR,SAAyBnB,EAAY3B,GACnC,IAAIU,EAASV,EAff,SAA0B6C,GACxB,IAAInV,EAAS,IAAImV,EAAYrxB,YAAYqxB,EAAYpB,YAErD,OADA,IAAIpE,EAAW3P,GAAQpZ,IAAI,IAAI+oB,EAAWwF,IACnCnV,EAYe4T,CAAiBK,EAAWjB,QAAUiB,EAAWjB,OACvE,OAAO,IAAIiB,EAAWnwB,YAAYkvB,EAAQiB,EAAWH,WAAYG,EAAWz2B,QAnG3D02B,CAAgB8T,GAAU,IAGrC5S,EAAW,GAmyBnB,SAAuB95B,GACrB,IAAKo2B,GAAap2B,IA/tDJ,mBA+tDcqoC,GAAWroC,GACrC,OAAO,EAET,IAAI63B,EAAQvD,EAAat0B,GACzB,GAAc,OAAV63B,EACF,OAAO,EAET,IAAIQ,EAAOz3B,EAAe1B,KAAK24B,EAAO,gBAAkBA,EAAMrvB,YAC9D,MAAsB,mBAAR6vB,GAAsBA,aAAgBA,GAClDrE,EAAa90B,KAAKm5B,IAASoT,EA1yBlBsB,CAAcL,IAAanW,GAAYmW,IAC9C5S,EAAWlD,EACPL,GAAYK,GACdkD,EAq1BR,SAAuB95B,GACrB,OA5tBF,SAAoBgN,EAAQzC,EAAO9J,EAAQy2B,GACzC,IAAI8V,GAASvsC,EACbA,IAAWA,EAAS,IAKpB,IAHA,IAAI8B,GAAS,EACTL,EAASqI,EAAMrI,SAEVK,EAAQL,GAAQ,CACvB,IAAI5B,EAAMiK,EAAMhI,GAEZu3B,EAAW5C,EACXA,EAAWz2B,EAAOH,GAAM0M,EAAO1M,GAAMA,EAAKG,EAAQuM,QAClDjC,OAEaA,IAAb+uB,IACFA,EAAW9sB,EAAO1M,IAEhB0sC,EACFf,EAAgBxrC,EAAQH,EAAKw5B,GAE7BnD,EAAYl2B,EAAQH,EAAKw5B,GAG7B,OAAOr5B,EAqsBAs3B,CAAW/3B,EAAOitC,GAAOjtC,IAt1BfktC,CAActW,GAEjBQ,GAASR,KAAagD,GAAWhD,KACzCkD,EAwQR,SAAyBr5B,GACvB,MAAqC,mBAAtBA,EAAO+H,aAA8BovB,GAAYn3B,GAE5D,GADAsrC,EAAWzX,EAAa7zB,IA1QXq3B,CAAgB4U,KAI7BG,GAAW,EAGXA,IAEF1V,EAAM7rB,IAAIohC,EAAU5S,GACpB6S,EAAU7S,EAAU4S,EAAUD,EAAUvV,EAAYC,GACpDA,EAAc,OAAEuV,IAElBV,EAAiBvrC,EAAQH,EAAKw5B,IAzF1BqT,CAAc1sC,EAAQuM,EAAQ1M,EAAKmsC,EAAUD,GAAWtV,EAAYC,OAEjE,CACH,IAAI2C,EAAW5C,EACXA,EAAW0V,GAAQnsC,EAAQH,GAAMosC,EAAWpsC,EAAM,GAAKG,EAAQuM,EAAQmqB,QACvEpsB,OAEaA,IAAb+uB,IACFA,EAAW4S,GAEbV,EAAiBvrC,EAAQH,EAAKw5B,MAE/BmT,IAwFL,SAASG,GAAS9Z,EAAM3vB,GACtB,OAAO0pC,GA6WT,SAAkB/Z,EAAM3vB,EAAO+C,GAE7B,OADA/C,EAAQgoC,OAAoB5gC,IAAVpH,EAAuB2vB,EAAKpxB,OAAS,EAAKyB,EAAO,GAC5D,WAML,IALA,IAAI4R,EAAOzK,UACPvI,GAAS,EACTL,EAASypC,EAAUp2B,EAAKrT,OAASyB,EAAO,GACxCmvB,EAAQlxB,MAAMM,KAETK,EAAQL,GACf4wB,EAAMvwB,GAASgT,EAAK5R,EAAQpB,GAE9BA,GAAS,EAET,IADA,IAAI+qC,EAAY1rC,MAAM+B,EAAQ,KACrBpB,EAAQoB,GACf2pC,EAAU/qC,GAASgT,EAAKhT,GAG1B,OADA+qC,EAAU3pC,GAAS+C,EAAUosB,GACtBrf,EAAM6f,EAAMtyB,KAAMssC,IA9XRC,CAASja,EAAM3vB,EAAO6pC,IAAWla,EAAO,IAyL7D,SAASyG,GAAW92B,EAAK3C,GACvB,IAAI4iB,EAAOjgB,EAAIgzB,SACf,OA2GF,SAAmBj2B,GACjB,IAAI6M,SAAc7M,EAClB,MAAgB,UAAR6M,GAA4B,UAARA,GAA4B,UAARA,GAA4B,WAARA,EACrD,cAAV7M,EACU,OAAVA,EA/GEg6B,CAAU15B,GACb4iB,EAAmB,iBAAP5iB,EAAkB,SAAW,QACzC4iB,EAAKjgB,IAWX,SAAS6xB,GAAUr0B,EAAQH,GACzB,IAAIN,EAnhCN,SAAkBS,EAAQH,GACxB,OAAiB,MAAVG,OAAiBsK,EAAYtK,EAAOH,GAkhC/B25B,CAASx5B,EAAQH,GAC7B,OAAOq5B,GAAa35B,GAASA,OAAQ+K,EAmDvC,SAAS2rB,GAAQ12B,EAAOkC,GACtB,IAAI2K,SAAc7M,EAGlB,SAFAkC,EAAmB,MAAVA,EA1uCY,iBA0uCwBA,KAGlC,UAAR2K,GACU,UAARA,GAAoBqlB,EAAStoB,KAAK5J,KAChCA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,EAAQkC,EA2DjD,SAAS01B,GAAY53B,GACnB,IAAIq4B,EAAOr4B,GAASA,EAAMwI,YAG1B,OAAOxI,KAFqB,mBAARq4B,GAAsBA,EAAK13B,WAAc+yB,GAyE/D,SAASkZ,GAAQnsC,EAAQH,GACvB,IAAY,gBAARA,GAAgD,oBAAhBG,EAAOH,KAIhC,aAAPA,EAIJ,OAAOG,EAAOH,GAWhB,IAAI+sC,GAWJ,SAAkB/Z,GAChB,IAAIma,EAAQ,EACRC,EAAa,EAEjB,OAAO,WACL,IAAIC,EAAQ/B,IACRjpB,EA75CO,IA65CiBgrB,EAAQD,GAGpC,GADAA,EAAaC,EACThrB,EAAY,GACd,KAAM8qB,GAl6CI,IAm6CR,OAAO3iC,UAAU,QAGnB2iC,EAAQ,EAEV,OAAOna,EAAK7f,WAAM1I,EAAWD,YA3Bf8iC,CAnZKluC,EAA4B,SAAS4zB,EAAMua,GAChE,OAAOnuC,EAAe4zB,EAAM,WAAY,CACtC,cAAgB,EAChB,YAAc,EACd,OA+3BctzB,EA/3BI6tC,EAg4Bb,WACL,OAAO7tC,IAh4BP,UAAY,IA83BhB,IAAkBA,GAn4BsBwtC,IAqexC,SAAS3W,GAAG72B,EAAOoE,GACjB,OAAOpE,IAAUoE,GAAUpE,IAAUA,GAASoE,IAAUA,EAqB1D,IAAImyB,GAAckS,GAAgB,WAAa,OAAO39B,UAApB,IAAsC29B,GAAkB,SAASzoC,GACjG,OAAOo2B,GAAap2B,IAAUY,EAAe1B,KAAKc,EAAO,YACtDw0B,EAAqBt1B,KAAKc,EAAO,WA0BlC6B,GAAUD,MAAMC,QA2BpB,SAASw0B,GAAYr2B,GACnB,OAAgB,MAATA,GAAiBu6B,GAASv6B,EAAMkC,UAAY03B,GAAW55B,GAiDhE,IAAI20B,GAAWD,GAsUf,WACE,OAAO,GApTT,SAASkF,GAAW55B,GAClB,IAAKo3B,GAASp3B,GACZ,OAAO,EAIT,IAAI+Z,EAAMsuB,GAAWroC,GACrB,MA3mDY,qBA2mDL+Z,GA1mDI,8BA0mDcA,GA/mDZ,0BA+mD6BA,GArmD7B,kBAqmDgDA,EA6B/D,SAASwgB,GAASv6B,GAChB,MAAuB,iBAATA,GACZA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,GAnpDb,iBA+qDvB,SAASo3B,GAASp3B,GAChB,IAAI6M,SAAc7M,EAClB,OAAgB,MAATA,IAA0B,UAAR6M,GAA4B,YAARA,GA2B/C,SAASupB,GAAap2B,GACpB,OAAgB,MAATA,GAAiC,iBAATA,EA6DjC,IAAI6nC,GAAeD,EAvnDnB,SAAmBtU,GACjB,OAAO,SAAStzB,GACd,OAAOszB,EAAKtzB,IAqnDsB4qC,CAAUhD,GAj7BhD,SAA0B5nC,GACxB,OAAOo2B,GAAap2B,IAClBu6B,GAASv6B,EAAMkC,WAAaslC,EAAea,GAAWroC,KAo+B1D,SAASitC,GAAOxsC,GACd,OAAO41B,GAAY51B,GAAUy1B,EAAcz1B,GAAQ,GAAQ4rC,GAAW5rC,GAkCxE,IAxvBwBqtC,GAwvBpBC,IAxvBoBD,GAwvBG,SAASrtC,EAAQuM,EAAQy/B,GAClDD,GAAU/rC,EAAQuM,EAAQy/B,IAxvBnBW,IAAS,SAAS3sC,EAAQ2P,GAC/B,IAAI7N,GAAS,EACTL,EAASkO,EAAQlO,OACjBg1B,EAAah1B,EAAS,EAAIkO,EAAQlO,EAAS,QAAK6I,EAChDijC,EAAQ9rC,EAAS,EAAIkO,EAAQ,QAAKrF,EAWtC,IATAmsB,EAAc4W,GAAS5rC,OAAS,GAA0B,mBAAdg1B,GACvCh1B,IAAUg1B,QACXnsB,EAEAijC,GAuIR,SAAwBhuC,EAAOuC,EAAO9B,GACpC,IAAK22B,GAAS32B,GACZ,OAAO,EAET,IAAIoM,SAActK,EAClB,SAAY,UAARsK,EACKwpB,GAAY51B,IAAWi2B,GAAQn0B,EAAO9B,EAAOyB,QACrC,UAAR2K,GAAoBtK,KAAS9B,IAE7Bo2B,GAAGp2B,EAAO8B,GAAQvC,GAhJZiuC,CAAe79B,EAAQ,GAAIA,EAAQ,GAAI49B,KAClD9W,EAAah1B,EAAS,OAAI6I,EAAYmsB,EACtCh1B,EAAS,GAEXzB,EAAShB,OAAOgB,KACP8B,EAAQL,GAAQ,CACvB,IAAI8K,EAASoD,EAAQ7N,GACjByK,GACF8gC,GAASrtC,EAAQuM,EAAQzK,EAAO20B,GAGpC,OAAOz2B,MA+wBX,SAAS+sC,GAASxtC,GAChB,OAAOA,EAoBTjB,EAAOD,QAAUivC,KAEY7uC,KAAK8B,KAAMpC,EAAoB,IAAKA,EAAoB,GAApBA,CAAwBG,KAIlF,SAASA,EAAQoI,EAAqBvI,GAE7C,aAC+BA,EAAoBS,EAAE8H,EAAqB,KAAK,WAAa,OAAO+mC,KACpEtvC,EAAoBS,EAAE8H,EAAqB,KAAK,WAAa,OAAOgnC,KACpEvvC,EAAoBS,EAAE8H,EAAqB,KAAK,WAAa,OAAOinC,KAC9E,IAAIzhB,EAAyC/tB,EAAoB,GAElFiW,EAAS,CACXgE,MAAO8T,EAA8C,MAAEjc,MACvD2O,UAAW,CAAC,QAAS,SAAU,YAE7B6uB,EAAiB,IAAIvhB,EAAmD,WAAE,QAAS,QAAS9X,GAC5Fs5B,EAAa,IAAIxhB,EAAwD,gBAAE,QAAS,WAAY9X,GAChGu5B,EAAa,IAAIzhB,EAAwD,gBAAE,QAAS,aAAc9X,IAK/F,SAAS9V,EAAQD,GAExBC,EAAOD,QAAU,SAAUg1B,GACzB,IACE,QAASA,IACT,MAAO9oB,GACP,OAAO,KAOJ,SAASjM,EAAQD,GAExBC,EAAOD,QAAU,SAAUioC,GACzB,MAAqB,kBAAPA,EAAyB,OAAPA,EAA4B,oBAAPA,IAMhD,SAAShoC,EAAQD,EAASF,GAEjC,IAAIw4B,EAAWx4B,EAAoB,IAEnCG,EAAOD,QAAU,SAAUioC,GACzB,IAAK3P,EAAS2P,GACZ,MAAMj9B,UAAUtI,OAAOulC,GAAM,qBAC7B,OAAOA,IAMJ,SAAShoC,EAAQoI,EAAqBvI,GAE7C,aAIA,SAAS0J,EAAQC,GAAmV,OAAtOD,EAArD,oBAAXxI,QAAoD,kBAApBA,OAAOiE,SAAmC,SAAiBwE,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXzI,QAAyByI,EAAIC,cAAgB1I,QAAUyI,IAAQzI,OAAOa,UAAY,gBAAkB4H,IAAyBA,GAEnX,SAAS2B,EAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIN,UAAU,qCAEhH,SAASO,EAAkBC,EAAQC,GAAS,IAAK,IAAIvL,EAAI,EAAGA,EAAIuL,EAAMrI,OAAQlD,IAAK,CAAE,IAAIwL,EAAaD,EAAMvL,GAAIwL,EAAW7K,WAAa6K,EAAW7K,aAAc,EAAO6K,EAAW9B,cAAe,EAAU,UAAW8B,IAAYA,EAAW7B,UAAW,GAAMlJ,OAAOC,eAAe4K,EAAQE,EAAWlK,IAAKkK,IAI7S,SAASiZ,EAAKnZ,EAAQ5J,EAAUgjB,GAAuV,OAAtRD,EAA9B,qBAAZE,SAA2BA,QAAQ/jB,IAAc+jB,QAAQ/jB,IAAqB,SAAc0K,EAAQ5J,EAAUgjB,GAAY,IAAIrd,EAErL,SAAwB5F,EAAQC,GAAY,MAAQjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAA8D,QAAjDD,EAASmjB,EAAgBnjB,MAAuC,OAAOA,EAFOojB,CAAevZ,EAAQ5J,GAAW,GAAK2F,EAAL,CAAmB,IAAIyd,EAAOrkB,OAAOskB,yBAAyB1d,EAAM3F,GAAW,OAAIojB,EAAKlkB,IAAckkB,EAAKlkB,IAAIV,KAAKwkB,GAAoBI,EAAK9jB,SAAwBsK,EAAQ5J,EAAUgjB,GAAYpZ,GAMja,SAAS0Z,EAAgBxkB,EAAGqB,GAA+G,OAA1GmjB,EAAkBvkB,OAAO+X,gBAAkB,SAAyBhY,EAAGqB,GAAsB,OAAjBrB,EAAEiY,UAAY5W,EAAUrB,IAA6BA,EAAGqB,GAErK,SAASojB,EAAaC,GAAW,IAAIC,EAMrC,WAAuC,GAAuB,qBAAZR,UAA4BA,QAAQS,UAAW,OAAO,EAAO,GAAIT,QAAQS,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQ5jB,UAAU6jB,QAAQtlB,KAAKykB,QAAQS,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAOvI,GAAK,OAAO,GAN9PyI,GAA6B,OAAO,WAAkC,IAAsCC,EAAlCC,EAAQf,EAAgBM,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYhB,EAAgB5iB,MAAMwH,YAAakc,EAASf,QAAQS,UAAUO,EAAO7Z,UAAW8Z,QAAqBF,EAASC,EAAMlR,MAAMzS,KAAM8J,WAAc,OAAO+Z,EAA2B7jB,KAAM0jB,IAE5Z,SAASG,EAA2BC,EAAM5lB,GAAQ,OAAIA,GAA2B,WAAlBoJ,EAAQpJ,IAAsC,oBAATA,EAEpG,SAAgC4lB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,EAFbE,CAAuBF,GAAtC5lB,EAMnI,SAAS0kB,EAAgBpkB,GAAwJ,OAAnJokB,EAAkBnkB,OAAO+X,eAAiB/X,OAAOwlB,eAAiB,SAAyBzlB,GAAK,OAAOA,EAAEiY,WAAahY,OAAOwlB,eAAezlB,KAA8BA,GA3BzKZ,EAAoBS,EAAE8H,EAAqB,KAAK,WAAa,OAAOknC,KACpEzvC,EAAoBS,EAAE8H,EAAqB,KAAK,WAAa,OAAOmnC,KA8BnG,IAAID,EAAoB,SAAU9S,IAhBlC,SAAmB3V,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/b,UAAU,sDAAyD8b,EAASjlB,UAAYlB,OAAOY,OAAOwlB,GAAcA,EAAWllB,UAAW,CAAE6H,YAAa,CAAExI,MAAO4lB,EAAUjd,UAAU,EAAMD,cAAc,KAAemd,GAAY7B,EAAgB4B,EAAUC,GAiBjXC,CAAUuoB,EAAM9S,GAEhB,IAzBoBnxB,EAAa6D,EAAYC,EAyBzCyJ,EAASsM,EAAaoqB,GAE1B,SAASA,IAGP,OAFAnkC,EAAgBlJ,KAAMqtC,GAEf12B,EAAOlE,MAAMzS,KAAM8J,WAkC5B,OAhEoBV,EAiCPikC,EAjCgCngC,EA0CzC,CAAC,CACH5N,IAAK,SACLN,MAAO,SAAgBA,GACrB,IAAIqO,EAAOoV,EAAKG,EAAgByqB,GAAO,SAAUrtC,MAAM9B,KAAK8B,KAAMhB,GAKlE,OAHAqO,EAAKR,aAAa,OAAQ7M,KAAKutC,SAASvuC,IACxCqO,EAAKR,aAAa,MAAO,uBACzBQ,EAAKR,aAAa,SAAU,UACrBQ,IAER,CACD/N,IAAK,UACLN,MAAO,SAAiB4Y,GACtB,OAAOA,EAAQS,aAAa,UAE7B,CACD/Y,IAAK,WACLN,MAAO,SAAkBwuC,GACvB,OAAOF,EAAUE,EAAKxtC,KAAKytC,oBAAsBD,EAAMxtC,KAAK0tC,kBA5D/BzgC,EAiCd,CAAC,CAClB3N,IAAK,SACLN,MAAO,SAAgBV,EAAMU,GACvBV,IAAS0B,KAAKga,QAAQlP,UAAa9L,EAGrCgB,KAAK4X,QAAQ/K,aAAa,OAAQ7M,KAAKwH,YAAY+lC,SAASvuC,IAF5DyjB,EAAKG,EAAgByqB,EAAK1tC,WAAY,SAAUK,MAAM9B,KAAK8B,KAAM1B,EAAMU,QArCDqK,EAAkBD,EAAYzJ,UAAWsN,GAAiBC,GAAa7D,EAAkBD,EAAa8D,GAgE3KmgC,EA1Ce,CA7B8CzvC,EAAoB,IAwE5B,GAO9D,SAAS0vC,EAAUE,EAAKG,GACtB,IAAIC,EAASt/B,SAASC,cAAc,KACpCq/B,EAAOC,KAAOL,EACd,IAAIM,EAAWF,EAAOC,KAAKnrC,MAAM,EAAGkrC,EAAOC,KAAK1oC,QAAQ,MACxD,OAAOwoC,EAAUxoC,QAAQ2oC,IAAa,EATxCT,EAAKviC,SAAW,OAChBuiC,EAAK70B,QAAU,IACf60B,EAAKK,cAAgB,cACrBL,EAAKI,mBAAqB,CAAC,OAAQ,QAAS,SAAU,QAa/C,SAAS1vC,EAAQoI,EAAqBvI,GAE7C,aAC6BuI,EAAuB,EAAK,IAAI6S,SAItD,SAASjb,EAAQoI,EAAqBvI,GAE7C,aAC+BA,EAAoBS,EAAE8H,EAAqB,KAAK,WAAa,OAAO4nC,KACpEnwC,EAAoBS,EAAE8H,EAAqB,KAAK,WAAa,OAAO6nC,KAC9E,IAAIriB,EAAyC/tB,EAAoB,GAC7DqwC,EAAsCrwC,EAAoB,IAG/EmwC,EAAkB,IAAIpiB,EAAwD,gBAAE,aAAc,QAAS,CACzG9T,MAAO8T,EAA8C,MAAEzT,SAErD81B,EAAkB,IAAIC,EAA6D,EAAE,aAAc,mBAAoB,CACzHp2B,MAAO8T,EAA8C,MAAEzT,UAMlD,SAASna,EAAQoI,EAAqBvI,GAE7C,aAC+BA,EAAoBS,EAAE8H,EAAqB,KAAK,WAAa,OAAO+nC,KACpEtwC,EAAoBS,EAAE8H,EAAqB,KAAK,WAAa,OAAOgoC,KAC9E,IAAIxiB,EAAyC/tB,EAAoB,GACtF,SAAS0J,EAAQC,GAAmV,OAAtOD,EAArD,oBAAXxI,QAAoD,kBAApBA,OAAOiE,SAAmC,SAAiBwE,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXzI,QAAyByI,EAAIC,cAAgB1I,QAAUyI,IAAQzI,OAAOa,UAAY,gBAAkB4H,IAAyBA,GAEnX,SAAS2B,EAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIN,UAAU,qCAEhH,SAASO,EAAkBC,EAAQC,GAAS,IAAK,IAAIvL,EAAI,EAAGA,EAAIuL,EAAMrI,OAAQlD,IAAK,CAAE,IAAIwL,EAAaD,EAAMvL,GAAIwL,EAAW7K,WAAa6K,EAAW7K,aAAc,EAAO6K,EAAW9B,cAAe,EAAU,UAAW8B,IAAYA,EAAW7B,UAAW,GAAMlJ,OAAOC,eAAe4K,EAAQE,EAAWlK,IAAKkK,IAI7S,SAASiZ,EAAKnZ,EAAQ5J,EAAUgjB,GAAuV,OAAtRD,EAA9B,qBAAZE,SAA2BA,QAAQ/jB,IAAc+jB,QAAQ/jB,IAAqB,SAAc0K,EAAQ5J,EAAUgjB,GAAY,IAAIrd,EAErL,SAAwB5F,EAAQC,GAAY,MAAQjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAA8D,QAAjDD,EAASmjB,EAAgBnjB,MAAuC,OAAOA,EAFOojB,CAAevZ,EAAQ5J,GAAW,GAAK2F,EAAL,CAAmB,IAAIyd,EAAOrkB,OAAOskB,yBAAyB1d,EAAM3F,GAAW,OAAIojB,EAAKlkB,IAAckkB,EAAKlkB,IAAIV,KAAKwkB,GAAoBI,EAAK9jB,SAAwBsK,EAAQ5J,EAAUgjB,GAAYpZ,GAMja,SAAS0Z,EAAgBxkB,EAAGqB,GAA+G,OAA1GmjB,EAAkBvkB,OAAO+X,gBAAkB,SAAyBhY,EAAGqB,GAAsB,OAAjBrB,EAAEiY,UAAY5W,EAAUrB,IAA6BA,EAAGqB,GAErK,SAASojB,EAAaC,GAAW,IAAIC,EAMrC,WAAuC,GAAuB,qBAAZR,UAA4BA,QAAQS,UAAW,OAAO,EAAO,GAAIT,QAAQS,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQ5jB,UAAU6jB,QAAQtlB,KAAKykB,QAAQS,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAOvI,GAAK,OAAO,GAN9PyI,GAA6B,OAAO,WAAkC,IAAsCC,EAAlCC,EAAQf,EAAgBM,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYhB,EAAgB5iB,MAAMwH,YAAakc,EAASf,QAAQS,UAAUO,EAAO7Z,UAAW8Z,QAAqBF,EAASC,EAAMlR,MAAMzS,KAAM8J,WAAc,OAAO+Z,EAA2B7jB,KAAM0jB,IAE5Z,SAASG,EAA2BC,EAAM5lB,GAAQ,OAAIA,GAA2B,WAAlBoJ,EAAQpJ,IAAsC,oBAATA,EAEpG,SAAgC4lB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,EAFbE,CAAuBF,GAAtC5lB,EAMnI,SAAS0kB,EAAgBpkB,GAAwJ,OAAnJokB,EAAkBnkB,OAAO+X,eAAiB/X,OAAOwlB,eAAiB,SAAyBzlB,GAAK,OAAOA,EAAEiY,WAAahY,OAAOwlB,eAAezlB,KAA8BA,GAGxM,IAAIqV,EAAS,CACXgE,MAAO8T,EAA8C,MAAEzT,OACvDmG,UAAW,CAAC,QAAS,cAEnB8vB,EAAY,IAAIxiB,EAAwD,gBAAE,OAAQ,UAAW9X,GAuB7Fq6B,EAAY,IArBuB,SAAUlE,IArBjD,SAAmBplB,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/b,UAAU,sDAAyD8b,EAASjlB,UAAYlB,OAAOY,OAAOwlB,GAAcA,EAAWllB,UAAW,CAAE6H,YAAa,CAAExI,MAAO4lB,EAAUjd,UAAU,EAAMD,cAAc,KAAemd,GAAY7B,EAAgB4B,EAAUC,GAsBjXC,CAAUspB,EAAqBpE,GAE/B,IA9BoB5gC,EAAa6D,EAAYC,EA8BzCyJ,EAASsM,EAAamrB,GAE1B,SAASA,IAGP,OAFAllC,EAAgBlJ,KAAMouC,GAEfz3B,EAAOlE,MAAMzS,KAAM8J,WAU5B,OA7CoBV,EAsCPglC,GAtCoBnhC,EAsCC,CAAC,CACjC3N,IAAK,QACLN,MAAO,SAAeqO,GACpB,OAAOoV,EAAKG,EAAgBwrB,EAAoBzuC,WAAY,QAASK,MAAM9B,KAAK8B,KAAMqN,GAAMoR,QAAQ,QAAS,SAzCrCpV,EAAkBD,EAAYzJ,UAAWsN,GAAiBC,GAAa7D,EAAkBD,EAAa8D,GA6C3KkhC,EAlB8B,CAmBrCziB,EAAwD,iBAE1C,CAAwB,OAAQ,cAAe9X,IAKxD,SAAS9V,EAAQoI,EAAqBvI,GAE7C,aAC+BA,EAAoBS,EAAE8H,EAAqB,KAAK,WAAa,OAAOkoC,KACpEzwC,EAAoBS,EAAE8H,EAAqB,KAAK,WAAa,OAAOmoC,KAC9E,IAAI3iB,EAAyC/tB,EAAoB,GAElFywC,EAAY,IAAI1iB,EAAwD,gBAAE,OAAQ,UAAW,CAC/F9T,MAAO8T,EAA8C,MAAEzT,OACvDmG,UAAW,CAAC,QAAS,QAAS,UAE5BiwB,EAAY,IAAI3iB,EAAwD,gBAAE,OAAQ,YAAa,CACjG9T,MAAO8T,EAA8C,MAAEzT,OACvDmG,UAAW,CAAC,OAAQ,OAAQ,WAMvB,SAAStgB,EAAQoI,EAAqBvI,GAE7C,aAEA,SAAS0J,EAAQC,GAAmV,OAAtOD,EAArD,oBAAXxI,QAAoD,kBAApBA,OAAOiE,SAAmC,SAAiBwE,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXzI,QAAyByI,EAAIC,cAAgB1I,QAAUyI,IAAQzI,OAAOa,UAAY,gBAAkB4H,IAAyBA,GAEnX,SAAS2B,EAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIN,UAAU,qCAEhH,SAASO,EAAkBC,EAAQC,GAAS,IAAK,IAAIvL,EAAI,EAAGA,EAAIuL,EAAMrI,OAAQlD,IAAK,CAAE,IAAIwL,EAAaD,EAAMvL,GAAIwL,EAAW7K,WAAa6K,EAAW7K,aAAc,EAAO6K,EAAW9B,cAAe,EAAU,UAAW8B,IAAYA,EAAW7B,UAAW,GAAMlJ,OAAOC,eAAe4K,EAAQE,EAAWlK,IAAKkK,IAI7S,SAASiZ,EAAKnZ,EAAQ5J,EAAUgjB,GAAuV,OAAtRD,EAA9B,qBAAZE,SAA2BA,QAAQ/jB,IAAc+jB,QAAQ/jB,IAAqB,SAAc0K,EAAQ5J,EAAUgjB,GAAY,IAAIrd,EAErL,SAAwB5F,EAAQC,GAAY,MAAQjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAA8D,QAAjDD,EAASmjB,EAAgBnjB,MAAuC,OAAOA,EAFOojB,CAAevZ,EAAQ5J,GAAW,GAAK2F,EAAL,CAAmB,IAAIyd,EAAOrkB,OAAOskB,yBAAyB1d,EAAM3F,GAAW,OAAIojB,EAAKlkB,IAAckkB,EAAKlkB,IAAIV,KAAKwkB,GAAoBI,EAAK9jB,SAAwBsK,EAAQ5J,EAAUgjB,GAAYpZ,GAMja,SAAS0Z,EAAgBxkB,EAAGqB,GAA+G,OAA1GmjB,EAAkBvkB,OAAO+X,gBAAkB,SAAyBhY,EAAGqB,GAAsB,OAAjBrB,EAAEiY,UAAY5W,EAAUrB,IAA6BA,EAAGqB,GAErK,SAASojB,EAAaC,GAAW,IAAIC,EAMrC,WAAuC,GAAuB,qBAAZR,UAA4BA,QAAQS,UAAW,OAAO,EAAO,GAAIT,QAAQS,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQ5jB,UAAU6jB,QAAQtlB,KAAKykB,QAAQS,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAOvI,GAAK,OAAO,GAN9PyI,GAA6B,OAAO,WAAkC,IAAsCC,EAAlCC,EAAQf,EAAgBM,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYhB,EAAgB5iB,MAAMwH,YAAakc,EAASf,QAAQS,UAAUO,EAAO7Z,UAAW8Z,QAAqBF,EAASC,EAAMlR,MAAMzS,KAAM8J,WAAc,OAAO+Z,EAA2B7jB,KAAM0jB,IAE5Z,SAASG,EAA2BC,EAAM5lB,GAAQ,OAAIA,GAA2B,WAAlBoJ,EAAQpJ,IAAsC,oBAATA,EAEpG,SAAgC4lB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,EAFbE,CAAuBF,GAAtC5lB,EAMnI,SAAS0kB,EAAgBpkB,GAAwJ,OAAnJokB,EAAkBnkB,OAAO+X,eAAiB/X,OAAOwlB,eAAiB,SAAyBzlB,GAAK,OAAOA,EAAEiY,WAAahY,OAAOwlB,eAAezlB,KAA8BA,GAIxM,IAAI+vC,EAAoB,SAAUhU,IAhBlC,SAAmB3V,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/b,UAAU,sDAAyD8b,EAASjlB,UAAYlB,OAAOY,OAAOwlB,GAAcA,EAAWllB,UAAW,CAAE6H,YAAa,CAAExI,MAAO4lB,EAAUjd,UAAU,EAAMD,cAAc,KAAemd,GAAY7B,EAAgB4B,EAAUC,GAiBjXC,CAAUypB,EAAMhU,GAEhB,IAzBoBnxB,EAAa6D,EAAYC,EAyBzCyJ,EAASsM,EAAasrB,GAE1B,SAASA,IAGP,OAFArlC,EAAgBlJ,KAAMuuC,GAEf53B,EAAOlE,MAAMzS,KAAM8J,WAwB5B,OAtDoBV,EAiCPmlC,EAjCgCrhC,EA0CzC,CAAC,CACH5N,IAAK,SACLN,MAAO,WACL,OAAOyjB,EAAKG,EAAgB2rB,GAAO,SAAUvuC,MAAM9B,KAAK8B,QAEzD,CACDV,IAAK,UACLN,MAAO,WACL,OAAO,MAlDsBiO,EAiCd,CAAC,CAClB3N,IAAK,WACLN,MAAO,SAAkB4d,GACvB6F,EAAKG,EAAgB2rB,EAAK5uC,WAAY,WAAYK,MAAM9B,KAAK8B,KAAM4c,GAE/D5c,KAAK4X,QAAQY,UAAYxY,KAAKga,QAAQxB,QAAQ,IAChDxY,KAAKwa,YAAYxa,KAAKga,QAAQlP,eAvCwCzB,EAAkBD,EAAYzJ,UAAWsN,GAAiBC,GAAa7D,EAAkBD,EAAa8D,GAsD3KqhC,EAhCe,CA7B8C3wC,EAAoB,IA8D5B,GAE9D2wC,EAAKzjC,SAAW,OAChByjC,EAAK/1B,QAAU,CAAC,SAAU,KACGrS,EAAuB,EAAKooC,GAIlD,SAASxwC,EAAQoI,EAAqBvI,GAE7C,aAC+BA,EAAoBS,EAAE8H,EAAqB,KAAK,WAAa,OAAOqoC,KACpE5wC,EAAoBS,EAAE8H,EAAqB,KAAK,WAAa,OAAOsoC,KAC9E,IAAI9iB,EAAyC/tB,EAAoB,GAC7D8wC,EAA2C9wC,EAAoB,GAC/D+wC,EAA4C/wC,EAAoB,GAChEgxC,EAAgDhxC,EAAoB,IAC7F,SAAS0J,EAAQC,GAAmV,OAAtOD,EAArD,oBAAXxI,QAAoD,kBAApBA,OAAOiE,SAAmC,SAAiBwE,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXzI,QAAyByI,EAAIC,cAAgB1I,QAAUyI,IAAQzI,OAAOa,UAAY,gBAAkB4H,IAAyBA,GAInX,SAAS8B,EAAkBC,EAAQC,GAAS,IAAK,IAAIvL,EAAI,EAAGA,EAAIuL,EAAMrI,OAAQlD,IAAK,CAAE,IAAIwL,EAAaD,EAAMvL,GAAIwL,EAAW7K,WAAa6K,EAAW7K,aAAc,EAAO6K,EAAW9B,cAAe,EAAU,UAAW8B,IAAYA,EAAW7B,UAAW,GAAMlJ,OAAOC,eAAe4K,EAAQE,EAAWlK,IAAKkK,IAM7S,SAASwZ,EAAgBxkB,EAAGqB,GAA+G,OAA1GmjB,EAAkBvkB,OAAO+X,gBAAkB,SAAyBhY,EAAGqB,GAAsB,OAAjBrB,EAAEiY,UAAY5W,EAAUrB,IAA6BA,EAAGqB,GAErK,SAASojB,EAAaC,GAAW,IAAIC,EAMrC,WAAuC,GAAuB,qBAAZR,UAA4BA,QAAQS,UAAW,OAAO,EAAO,GAAIT,QAAQS,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQ5jB,UAAU6jB,QAAQtlB,KAAKykB,QAAQS,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAOvI,GAAK,OAAO,GAN9PyI,GAA6B,OAAO,WAAkC,IAAsCC,EAAlCC,EAAQf,EAAgBM,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYhB,EAAgB5iB,MAAMwH,YAAakc,EAASf,QAAQS,UAAUO,EAAO7Z,UAAW8Z,QAAqBF,EAASC,EAAMlR,MAAMzS,KAAM8J,WAAc,OAAO+Z,EAA2B7jB,KAAM0jB,IAE5Z,SAASG,EAA2BC,EAAM5lB,GAAQ,OAAIA,GAA2B,WAAlBoJ,EAAQpJ,IAAsC,oBAATA,EAA8C8lB,EAAuBF,GAAtC5lB,EAEnI,SAAS8lB,EAAuBF,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,EAI/J,SAASlB,EAAgBpkB,GAAwJ,OAAnJokB,EAAkBnkB,OAAO+X,eAAiB/X,OAAOwlB,eAAiB,SAAyBzlB,GAAK,OAAOA,EAAEiY,WAAahY,OAAOwlB,eAAezlB,KAA8BA,GAOxM,IAAIgwC,EAAuB,SAAUpR,IAnBrC,SAAmBxY,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/b,UAAU,sDAAyD8b,EAASjlB,UAAYlB,OAAOY,OAAOwlB,GAAcA,EAAWllB,UAAW,CAAE6H,YAAa,CAAExI,MAAO4lB,EAAUjd,UAAU,EAAMD,cAAc,KAAemd,GAAY7B,EAAgB4B,EAAUC,GAoBjXC,CAAU0pB,EAASpR,GAEnB,IAxBoBh0B,EAAa6D,EAAYC,EAwBzCyJ,EAASsM,EAAaurB,GAE1B,SAASA,EAAQhqB,EAAO3a,GACtB,IAAID,EAkDJ,OAjFJ,SAAyBT,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIN,UAAU,qCAiC5GI,CAAgBlJ,KAAMwuC,IAEtB5kC,EAAQ+M,EAAOzY,KAAK8B,KAAMwkB,EAAO3a,IAC3BglC,aAAe,EACrBjlC,EAAMklC,cAAe,EAErBllC,EAAM+C,QAEN/C,EAAM4a,MAAM9Y,GAAGgjC,EAA0D,EAAE/iC,OAAOC,eAAe,SAAUsY,EAAWtgB,EAAOuQ,EAAUnI,GACjIkY,IAAcwqB,EAA0D,EAAE/iC,OAAOG,aAAelC,EAAMklC,eAErGllC,EAAMC,QAAQklC,UAAY/iC,IAAW0iC,EAA0D,EAAEt/B,QAAQmE,KAG5G3J,EAAMlE,UAAU9B,GAFhBgG,EAAMolC,OAAOprC,EAAOuQ,OAMxBvK,EAAM4a,MAAMpZ,SAASg2B,WAAW,CAC9B9hC,IAAK,IACL4kC,UAAU,GACTt6B,EAAMqlC,KAAK1vC,KAAKykB,EAAuBpa,KAE1CA,EAAM4a,MAAMpZ,SAASg2B,WAAW,CAC9B9hC,IAAK,IACL4kC,UAAU,EACV7C,UAAU,GACTz3B,EAAMslC,KAAK3vC,KAAKykB,EAAuBpa,KAEtCnL,OAAOmwC,EAA+D,EAAtEnwC,IAA8E,OAAOmK,KAAK60B,UAAUyD,WACtGt3B,EAAM4a,MAAMpZ,SAASg2B,WAAW,CAC9B9hC,IAAK,IACL4kC,UAAU,GACTt6B,EAAMslC,KAAK3vC,KAAKykB,EAAuBpa,KAG5CA,EAAM4a,MAAMja,KAAK4Z,iBAAiB,eAAe,SAAUkB,GACjC,gBAApBA,EAAM8pB,WACRvlC,EAAMqlC,OAEN5pB,EAAM+V,kBACuB,gBAApB/V,EAAM8pB,YACfvlC,EAAMslC,OAEN7pB,EAAM+V,qBAIHxxB,EAuET,OApJoBR,EAgFPolC,GAhFoBvhC,EAgFX,CAAC,CACrB3N,IAAK,SACLN,MAAO,SAAgBgN,EAAQojC,GAC7B,GAAkC,IAA9BpvC,KAAKm2B,MAAMnqB,GAAQ9K,OAAvB,CACA,IAAI0C,EAAQ5D,KAAKm2B,MAAMnqB,GAAQnK,MAC3BwD,EAAOrF,KAAKwkB,MAAMtT,cAClBm+B,EAAezrC,EAAMwB,OAAOC,GAChCrF,KAAKm2B,MAAMiZ,GAAMhuC,KAAKiuC,GACtBrvC,KAAK6uC,aAAe,EACpB7uC,KAAK8uC,cAAe,EACpB9uC,KAAKwkB,MAAMya,eAAer7B,EAAO8qC,EAA0D,EAAEt/B,QAAQmE,MACrGvT,KAAK8uC,cAAe,EACpB,IAAIvtC,EAAQktC,EAAmBzuC,KAAKwkB,MAAMzZ,OAAQnH,GAClD5D,KAAKwkB,MAAM1U,aAAavO,MAEzB,CACDjC,IAAK,QACLN,MAAO,WACLgB,KAAKm2B,MAAQ,CACX8Y,KAAM,GACNC,KAAM,MAGT,CACD5vC,IAAK,SACLN,MAAO,WACLgB,KAAK6uC,aAAe,IAErB,CACDvvC,IAAK,SACLN,MAAO,SAAgBswC,EAAan7B,GAClC,GAA+B,IAA3Bm7B,EAAY3uC,IAAIO,OAApB,CACAlB,KAAKm2B,MAAM+Y,KAAO,GAClB,IAAIK,EAAYD,EAAYlqC,OAAO+O,GAC/Bq7B,EAAY3E,KAAKC,MAErB,GAAI9qC,KAAK6uC,aAAe7uC,KAAK6J,QAAQ4lC,MAAQD,GAAaxvC,KAAKm2B,MAAM8Y,KAAK/tC,OAAS,EAAG,CACpF,IAAI0C,EAAQ5D,KAAKm2B,MAAM8Y,KAAKptC,MAC5B0tC,EAAYA,EAAUpsC,QAAQS,QAE9B5D,KAAK6uC,aAAeW,EAGK,IAAvBD,EAAUruC,WACdlB,KAAKm2B,MAAM8Y,KAAK7tC,KAAKmuC,GAEjBvvC,KAAKm2B,MAAM8Y,KAAK/tC,OAASlB,KAAK6J,QAAQ6lC,UACxC1vC,KAAKm2B,MAAM8Y,KAAK/6B,YAGnB,CACD5U,IAAK,OACLN,MAAO,WACLgB,KAAKwP,OAAO,OAAQ,UAErB,CACDlQ,IAAK,YACLN,MAAO,SAAmB4E,GACxB+rC,EAAe3vC,KAAKm2B,MAAM8Y,KAAMrrC,GAChC+rC,EAAe3vC,KAAKm2B,MAAM+Y,KAAMtrC,KAEjC,CACDtE,IAAK,OACLN,MAAO,WACLgB,KAAKwP,OAAO,OAAQ,aAhJoDnG,EAAkBD,EAAYzJ,UAAWsN,GAAiBC,GAAa7D,EAAkBD,EAAa8D,GAoJ3KshC,EA/HkB,CAgIzBG,EAA2D,GAQ7D,SAASgB,EAAexZ,EAAOvyB,GAG7B,IAFA,IAAIgsC,EAAchsC,EAET5F,EAAIm4B,EAAMj1B,OAAS,EAAGlD,GAAK,EAAGA,GAAK,EAAG,CAC7C,IAAImW,EAAWgiB,EAAMn4B,GACrBm4B,EAAMn4B,GAAK4xC,EAAYlqC,UAAUyO,GAAU,GAC3Cy7B,EAAcz7B,EAASzO,UAAUkqC,GAEP,IAAtBzZ,EAAMn4B,GAAGkD,UACXi1B,EAAMx0B,OAAO3D,EAAG,IAsBtB,SAASywC,EAAmB1jC,EAAQnH,GAClC,IAAIisC,EAAejsC,EAAMtB,QAAO,SAAUpB,EAAQmB,GAChD,OAAOnB,GAAUmB,EAAGhB,QAAU,KAC7B,GACCyuC,EAAclsC,EAAM1C,SAAW2uC,EAMnC,OA3BF,SAA+B9kC,EAAQnH,GACrC,IAAIpC,EAASoC,EAAMjD,IAAIiD,EAAMjD,IAAIO,OAAS,GAC1C,OAAc,MAAVM,IAEiB,MAAjBA,EAAOV,OACuB,kBAAlBU,EAAOV,QAAuBU,EAAOV,OAAO+mB,SAAS,MAG5C,MAArBrmB,EAAOR,YACFvC,OAAO0C,KAAKK,EAAOR,YAAYuX,MAAK,SAAUmH,GACnD,OAAoF,MAA7E3U,EAAOF,MAAM6U,EAAMiM,EAA8C,MAAEjc,WAa1EqgC,CAAsBhlC,EAAQnH,KAChCksC,GAAe,GAGVA,EA/CTtB,EAAQ96B,SAAW,CACjB+7B,MAAO,IACPC,SAAU,IACVX,UAAU,IAmDL,SAAShxC,EAAQD,EAASF,GAEjC,IAAIoyC,EAAcpyC,EAAoB,IAClCqyC,EAAiBryC,EAAoB,IACrCsyC,EAAWtyC,EAAoB,IAC/BuyC,EAAgBvyC,EAAoB,IAGpCwyC,EAAkB3xC,OAAOC,eAI7BZ,EAAQuyC,EAAIL,EAAcI,EAAkB,SAAwBE,EAAGC,EAAGC,GAIxE,GAHAN,EAASI,GACTC,EAAIJ,EAAcI,GAClBL,EAASM,GACLP,EAAgB,IAClB,OAAOG,EAAgBE,EAAGC,EAAGC,GAC7B,MAAOxmC,IACT,GAAI,QAASwmC,GAAc,QAASA,EAAY,MAAM1nC,UAAU,2BAEhE,MADI,UAAW0nC,IAAYF,EAAEC,GAAKC,EAAWxxC,OACtCsxC,IAMF,SAASvyC,EAAQoI,EAAqBvI,GAE7C,aAGA,SAASyL,EAAkBC,EAAQC,GAAS,IAAK,IAAIvL,EAAI,EAAGA,EAAIuL,EAAMrI,OAAQlD,IAAK,CAAE,IAAIwL,EAAaD,EAAMvL,GAAIwL,EAAW7K,WAAa6K,EAAW7K,aAAc,EAAO6K,EAAW9B,cAAe,EAAU,UAAW8B,IAAYA,EAAW7B,UAAW,GAAMlJ,OAAOC,eAAe4K,EAAQE,EAAWlK,IAAKkK,IAI7S,IAAIinC,EAAqB,WACvB,SAASA,EAAMjsB,EAAO3a,IAPxB,SAAyBV,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIN,UAAU,qCAQ5GI,CAAgBlJ,KAAMywC,GAEtBzwC,KAAKwkB,MAAQA,EACbxkB,KAAK6J,QAAUA,EACf7J,KAAKtC,QAAU,GARnB,IAAsB0L,EAAa6D,EAAYC,EA+B7C,OA/BoB9D,EAWPqnC,GAXoBxjC,EAWb,CAAC,CACnB3N,IAAK,OACLN,MAAO,WACL,IAAI4K,EAAQ5J,KAEZvB,OAAO0C,KAAKnB,KAAK6J,QAAQnM,SAASsE,SAAQ,SAAU1D,GACvB,MAAvBsL,EAAMlM,QAAQY,IAChBsL,EAAMyB,UAAU/M,QAIrB,CACDgB,IAAK,YACLN,MAAO,SAAmBV,GACxB,IAAIoyC,EAAc1wC,KAAKwkB,MAAMhd,YAAYmM,OAAO,WAAWxP,OAAO7F,IAElE,OADA0B,KAAKtC,QAAQY,GAAQ,IAAIoyC,EAAY1wC,KAAKwkB,MAAOxkB,KAAK6J,QAAQnM,QAAQY,IAAS,IACxE0B,KAAKtC,QAAQY,QA3BoD+K,EAAkBD,EAAYzJ,UAAWsN,GAAiBC,GAAa7D,EAAkBD,EAAa8D,GA+B3KujC,EA7BgB,GAgCzBA,EAAM/8B,SAAW,CACfhW,QAAS,IAEX+yC,EAAME,OAAS,CACblvC,QAASgvC,GAEkBtqC,EAAuB,EAAKsqC,GAIlD,SAAS1yC,EAAQD,GAExB,IAAI8yC,EAGJA,EAAK,WACJ,OAAO5wC,KADH,GAIL,IAEC4wC,EAAIA,GAAK,IAAItf,SAAS,cAAb,GACR,MAAOtW,GAEc,kBAAXyV,SAAqBmgB,EAAIngB,QAOrC1yB,EAAOD,QAAU8yC,GAKV,SAAS7yC,EAAQD,EAASF,GAEjC,IAAIoyC,EAAcpyC,EAAoB,IAClCizC,EAAuBjzC,EAAoB,IAC3CkzC,EAA2BlzC,EAAoB,IAEnDG,EAAOD,QAAUkyC,EAAc,SAAUvwC,EAAQH,EAAKN,GACpD,OAAO6xC,EAAqBR,EAAE5wC,EAAQH,EAAKwxC,EAAyB,EAAG9xC,KACrE,SAAUS,EAAQH,EAAKN,GAEzB,OADAS,EAAOH,GAAON,EACPS,IAMF,SAAS1B,EAAQD,EAASF,GAEjC,IAAImzC,EAAQnzC,EAAoB,IAGhCG,EAAOD,SAAWizC,GAAM,WAEtB,OAA8E,GAAvEtyC,OAAOC,eAAe,GAAI,EAAG,CAAEE,IAAK,WAAc,OAAO,KAAQ,OAMnE,SAASb,EAAQoI,EAAqBvI,GAE7C,aACqB,IAAI+tB,EAAyC/tB,EAAoB,GAC7Dq+B,EAAqCr+B,EAAoB,GAClF,SAAS0J,EAAQC,GAAmV,OAAtOD,EAArD,oBAAXxI,QAAoD,kBAApBA,OAAOiE,SAAmC,SAAiBwE,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXzI,QAAyByI,EAAIC,cAAgB1I,QAAUyI,IAAQzI,OAAOa,UAAY,gBAAkB4H,IAAyBA,GAInX,SAAS8B,EAAkBC,EAAQC,GAAS,IAAK,IAAIvL,EAAI,EAAGA,EAAIuL,EAAMrI,OAAQlD,IAAK,CAAE,IAAIwL,EAAaD,EAAMvL,GAAIwL,EAAW7K,WAAa6K,EAAW7K,aAAc,EAAO6K,EAAW9B,cAAe,EAAU,UAAW8B,IAAYA,EAAW7B,UAAW,GAAMlJ,OAAOC,eAAe4K,EAAQE,EAAWlK,IAAKkK,IAI7S,SAASiZ,EAAKnZ,EAAQ5J,EAAUgjB,GAAuV,OAAtRD,EAA9B,qBAAZE,SAA2BA,QAAQ/jB,IAAc+jB,QAAQ/jB,IAAqB,SAAc0K,EAAQ5J,EAAUgjB,GAAY,IAAIrd,EAErL,SAAwB5F,EAAQC,GAAY,MAAQjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAA8D,QAAjDD,EAASmjB,EAAgBnjB,MAAuC,OAAOA,EAFOojB,CAAevZ,EAAQ5J,GAAW,GAAK2F,EAAL,CAAmB,IAAIyd,EAAOrkB,OAAOskB,yBAAyB1d,EAAM3F,GAAW,OAAIojB,EAAKlkB,IAAckkB,EAAKlkB,IAAIV,KAAKwkB,GAAoBI,EAAK9jB,SAAwBsK,EAAQ5J,EAAUgjB,GAAYpZ,GAMja,SAAS0Z,EAAgBxkB,EAAGqB,GAA+G,OAA1GmjB,EAAkBvkB,OAAO+X,gBAAkB,SAAyBhY,EAAGqB,GAAsB,OAAjBrB,EAAEiY,UAAY5W,EAAUrB,IAA6BA,EAAGqB,GAErK,SAASojB,EAAaC,GAAW,IAAIC,EAMrC,WAAuC,GAAuB,qBAAZR,UAA4BA,QAAQS,UAAW,OAAO,EAAO,GAAIT,QAAQS,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQ5jB,UAAU6jB,QAAQtlB,KAAKykB,QAAQS,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAOvI,GAAK,OAAO,GAN9PyI,GAA6B,OAAO,WAAkC,IAAsCC,EAAlCC,EAAQf,EAAgBM,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYhB,EAAgB5iB,MAAMwH,YAAakc,EAASf,QAAQS,UAAUO,EAAO7Z,UAAW8Z,QAAqBF,EAASC,EAAMlR,MAAMzS,KAAM8J,WAAc,OAAO+Z,EAA2B7jB,KAAM0jB,IAE5Z,SAASG,EAA2BC,EAAM5lB,GAAQ,OAAIA,GAA2B,WAAlBoJ,EAAQpJ,IAAsC,oBAATA,EAEpG,SAAgC4lB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,EAFbE,CAAuBF,GAAtC5lB,EAMnI,SAAS0kB,EAAgBpkB,GAAwJ,OAAnJokB,EAAkBnkB,OAAO+X,eAAiB/X,OAAOwlB,eAAiB,SAAyBzlB,GAAK,OAAOA,EAAEiY,WAAahY,OAAOwlB,eAAezlB,KAA8BA,GAIxM,IAEIwyC,EAAqB,SAAU1lB,IAlBnC,SAAmB1G,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/b,UAAU,sDAAyD8b,EAASjlB,UAAYlB,OAAOY,OAAOwlB,GAAcA,EAAWllB,UAAW,CAAE6H,YAAa,CAAExI,MAAO4lB,EAAUjd,UAAU,EAAMD,cAAc,KAAemd,GAAY7B,EAAgB4B,EAAUC,GAmBjXC,CAAUksB,EAAO1lB,GAEjB,IA3BoBliB,EAAa6D,EAAYC,EA2BzCyJ,EAASsM,EAAa+tB,GAE1B,SAASA,EAAMjmC,EAAQsC,GACrB,IAAIzD,EAqBJ,OAvDJ,SAAyBT,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIN,UAAU,qCAoC5GI,CAAgBlJ,KAAMgxC,IAEtBpnC,EAAQ+M,EAAOzY,KAAK8B,KAAM+K,EAAQsC,IAC5B4jC,YAAc3iC,SAASC,cAAc,QAE3C3E,EAAMqnC,YAAYpkC,aAAa,mBAAmB,GAElDjM,MAAM+H,KAAKiB,EAAMgO,QAAQqD,YAAYjZ,SAAQ,SAAUkvC,GACrDtnC,EAAMqnC,YAAYp2B,YAAYq2B,MAEhCtnC,EAAMunC,UAAY7iC,SAAS2T,eApBd,UAqBbrY,EAAMwnC,WAAa9iC,SAAS2T,eArBf,UAuBbrY,EAAMgO,QAAQiD,YAAYjR,EAAMunC,WAEhCvnC,EAAMgO,QAAQiD,YAAYjR,EAAMqnC,aAEhCrnC,EAAMgO,QAAQiD,YAAYjR,EAAMwnC,YAEzBxnC,EAoET,OAvHoBR,EAsDP4nC,GAtDoB/jC,EAsDb,CAAC,CACnB3N,IAAK,QACLN,MAAO,SAAeqO,EAAMvH,GAC1B,OAAIuH,IAASrN,KAAKmxC,UAAkB,EAChC9jC,IAASrN,KAAKoxC,WAAmB,EAC9B3uB,EAAKG,EAAgBouB,EAAMrxC,WAAY,QAASK,MAAM9B,KAAK8B,KAAMqN,EAAMvH,KAE/E,CACDxG,IAAK,UACLN,MAAO,SAAiBqO,GACtB,IAAIiC,EACAsd,EACA7e,EAAOV,EAAK6U,KAAK5J,MA5CV,UA4C4B9T,KAAK,IAE5C,GAAI6I,IAASrN,KAAKmxC,UAChB,GAAInxC,KAAK0V,gBAAgBumB,EAAoD,EAAG,CAC9E,IAAIoV,EAAarxC,KAAK0V,KAAKxU,SAC3BlB,KAAK0V,KAAKuE,SAASo3B,EAAYtjC,GAC/BuB,EAAQ,CACN2G,UAAWjW,KAAK0V,KAAKkC,QACrBoV,YAAaqkB,EAAatjC,EAAK7M,aAGjC0rB,EAAWte,SAAS2T,eAAelU,GACnC/N,KAAKwZ,OAAOhL,aAAaxO,KAAK+K,OAAO1L,OAAOutB,GAAW5sB,MACvDsP,EAAQ,CACN2G,UAAW2W,EACXI,YAAajf,EAAK7M,aAGbmM,IAASrN,KAAKoxC,aACnBpxC,KAAKkD,gBAAgB+4B,EAAoD,GAC3Ej8B,KAAKkD,KAAK+W,SAAS,EAAGlM,GACtBuB,EAAQ,CACN2G,UAAWjW,KAAKkD,KAAK0U,QACrBoV,YAAajf,EAAK7M,UAGpB0rB,EAAWte,SAAS2T,eAAelU,GACnC/N,KAAKwZ,OAAOhL,aAAaxO,KAAK+K,OAAO1L,OAAOutB,GAAW5sB,KAAKkD,MAC5DoM,EAAQ,CACN2G,UAAW2W,EACXI,YAAajf,EAAK7M,UAMxB,OADAmM,EAAK6U,KA/EM,SAgFJ5S,IAER,CACDhQ,IAAK,SACLN,MAAO,SAAgBiN,EAAW2Q,GAChC,IAAIlO,EAAS1O,KAEbiM,EAAUjK,SAAQ,SAAUob,GAC1B,GAAsB,kBAAlBA,EAASvR,OAA6BuR,EAAS9T,SAAWoF,EAAOyiC,WAAa/zB,EAAS9T,SAAWoF,EAAO0iC,YAAa,CACxH,IAAI9hC,EAAQZ,EAAOye,QAAQ/P,EAAS9T,QAEhCgG,IAAOsN,EAAQtN,MAAQA,YAjHyCjG,EAAkBD,EAAYzJ,UAAWsN,GAAiBC,GAAa7D,EAAkBD,EAAa8D,GAuH3K8jC,EA/FgB,CAgGvBrlB,EAAkD,WAEvBxlB,EAAuB,EAAK6qC,GAIlD,SAASjzC,EAAQoI,EAAqBvI,GAE7C,aAC+BA,EAAoBS,EAAE8H,EAAqB,KAAK,WAAa,OAAOmrC,KAKpE1zC,EAAoBS,EAAE8H,EAAqB,KAAK,WAAa,OAAOorC,KAC9E,IAAI/qC,EAA2C5I,EAAoB,GAC/D6I,EAAgE7I,EAAoB4B,EAAEgH,GACtFskB,EAAyCltB,EAAoB,GAC7D4zC,EAA4C5zC,EAAoB,GAChE6zC,EAA2C7zC,EAAoB,GAC/D8zC,EAA4C9zC,EAAoB,IAChE+zC,EAA4C/zC,EAAoB,GAChEg0C,EAA8Ch0C,EAAoB,IAClEi0C,EAAmDj0C,EAAoB,IACvEk0C,EAA6Cl0C,EAAoB,IACjEm0C,EAA8Cn0C,EAAoB,IAClEo0C,EAAmDp0C,EAAoB,IACvEq0C,EAA8Cr0C,EAAoB,IAClEs0C,EAA8Ct0C,EAAoB,IAClEu0C,EAA0Cv0C,EAAoB,IACvF,SAASipB,EAAQpnB,EAAQqnB,GAAkB,IAAI3lB,EAAO1C,OAAO0C,KAAK1B,GAAS,GAAIhB,OAAOsoB,sBAAuB,CAAE,IAAIC,EAAUvoB,OAAOsoB,sBAAsBtnB,GAAaqnB,IAAkBE,EAAUA,EAAQllB,QAAO,SAAUmlB,GAAO,OAAOxoB,OAAOskB,yBAAyBtjB,EAAQwnB,GAAKtoB,eAAkBwC,EAAKC,KAAKqR,MAAMtR,EAAM6lB,GAAY,OAAO7lB,EAElV,SAAS+lB,EAAc5d,GAAU,IAAK,IAAItL,EAAI,EAAGA,EAAI8L,UAAU5I,OAAQlD,IAAK,CAAE,IAAIgO,EAAyB,MAAhBlC,UAAU9L,GAAa8L,UAAU9L,GAAK,GAAQA,EAAI,EAAK6oB,EAAQpoB,OAAOuN,IAAS,GAAMhK,SAAQ,SAAU1C,GAAOmI,EAAgB6B,EAAQhK,EAAK0M,EAAO1M,OAAsBb,OAAO0oB,0BAA6B1oB,OAAO2oB,iBAAiB9d,EAAQ7K,OAAO0oB,0BAA0Bnb,IAAmB6a,EAAQpoB,OAAOuN,IAAShK,SAAQ,SAAU1C,GAAOb,OAAOC,eAAe4K,EAAQhK,EAAKb,OAAOskB,yBAAyB/W,EAAQ1M,OAAe,OAAOgK,EAE7gB,SAAShC,EAAQC,GAAmV,OAAtOD,EAArD,oBAAXxI,QAAoD,kBAApBA,OAAOiE,SAAmC,SAAiBwE,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXzI,QAAyByI,EAAIC,cAAgB1I,QAAUyI,IAAQzI,OAAOa,UAAY,gBAAkB4H,IAAyBA,GAEnX,SAASE,EAAgBF,EAAKjI,EAAKN,GAAiK,OAApJM,KAAOiI,EAAO9I,OAAOC,eAAe6I,EAAKjI,EAAK,CAAEN,MAAOA,EAAOL,YAAY,EAAM+I,cAAc,EAAMC,UAAU,IAAkBJ,EAAIjI,GAAON,EAAgBuI,EAE3M,SAASK,EAAeC,EAAK7J,GAAK,OAUlC,SAAyB6J,GAAO,GAAIjH,MAAMC,QAAQgH,GAAM,OAAOA,EAVtBC,CAAgBD,IAQzD,SAA+BA,EAAK7J,GAAK,IAAI+J,EAAY,MAAPF,EAAc,KAAyB,qBAAX/I,QAA0B+I,EAAI/I,OAAOiE,WAAa8E,EAAI,cAAe,GAAU,MAANE,EAAJ,CAAwB,IAAkDC,EAAIC,EAAlDC,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAmB,IAAM,IAAKL,EAAKA,EAAG7J,KAAK2J,KAAQM,GAAMH,EAAKD,EAAG7E,QAAQmF,QAAoBH,EAAK9G,KAAK4G,EAAGhJ,QAAYhB,GAAKkK,EAAKhH,SAAWlD,GAA3DmK,GAAK,IAAoE,MAAOG,GAAOF,GAAK,EAAMH,EAAKK,EAAO,QAAU,IAAWH,GAAsB,MAAhBJ,EAAW,QAAWA,EAAW,SAAO,QAAU,GAAIK,EAAI,MAAMH,GAAQ,OAAOC,GARzbK,CAAsBV,EAAK7J,IAI5F,SAAqCQ,EAAGgK,GAAU,GAAKhK,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAOiK,EAAkBjK,EAAGgK,GAAS,IAAIhJ,EAAIf,OAAOkB,UAAU+I,SAASxK,KAAKM,GAAGkE,MAAM,GAAI,GAAiE,MAAnD,WAANlD,GAAkBhB,EAAEgJ,cAAahI,EAAIhB,EAAEgJ,YAAYlJ,MAAgB,QAANkB,GAAqB,QAANA,EAAoBoB,MAAM+H,KAAKnK,GAAc,cAANgB,GAAqB,2CAA2CoJ,KAAKpJ,GAAWiJ,EAAkBjK,EAAGgK,QAAzG,GAJ3MK,CAA4BhB,EAAK7J,IAEnI,WAA8B,MAAM,IAAI8K,UAAU,6IAFuFC,GAMzI,SAASN,EAAkBZ,EAAKmB,IAAkB,MAAPA,GAAeA,EAAMnB,EAAI3G,UAAQ8H,EAAMnB,EAAI3G,QAAQ,IAAK,IAAIlD,EAAI,EAAGiL,EAAO,IAAIrI,MAAMoI,GAAMhL,EAAIgL,EAAKhL,IAAOiL,EAAKjL,GAAK6J,EAAI7J,GAAM,OAAOiL,EAQhL,SAASI,EAAkBC,EAAQC,GAAS,IAAK,IAAIvL,EAAI,EAAGA,EAAIuL,EAAMrI,OAAQlD,IAAK,CAAE,IAAIwL,EAAaD,EAAMvL,GAAIwL,EAAW7K,WAAa6K,EAAW7K,aAAc,EAAO6K,EAAW9B,cAAe,EAAU,UAAW8B,IAAYA,EAAW7B,UAAW,GAAMlJ,OAAOC,eAAe4K,EAAQE,EAAWlK,IAAKkK,IAM7S,SAASwZ,EAAgBxkB,EAAGqB,GAA+G,OAA1GmjB,EAAkBvkB,OAAO+X,gBAAkB,SAAyBhY,EAAGqB,GAAsB,OAAjBrB,EAAEiY,UAAY5W,EAAUrB,IAA6BA,EAAGqB,GAErK,SAASojB,EAAaC,GAAW,IAAIC,EAMrC,WAAuC,GAAuB,qBAAZR,UAA4BA,QAAQS,UAAW,OAAO,EAAO,GAAIT,QAAQS,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQ5jB,UAAU6jB,QAAQtlB,KAAKykB,QAAQS,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAOvI,GAAK,OAAO,GAN9PyI,GAA6B,OAAO,WAAkC,IAAsCC,EAAlCC,EAAQf,EAAgBM,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYhB,EAAgB5iB,MAAMwH,YAAakc,EAASf,QAAQS,UAAUO,EAAO7Z,UAAW8Z,QAAqBF,EAASC,EAAMlR,MAAMzS,KAAM8J,WAAc,OAAO+Z,EAA2B7jB,KAAM0jB,IAE5Z,SAASG,EAA2BC,EAAM5lB,GAAQ,OAAIA,GAA2B,WAAlBoJ,EAAQpJ,IAAsC,oBAATA,EAA8C8lB,EAAuBF,GAAtC5lB,EAEnI,SAAS8lB,EAAuBF,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,EAI/J,SAASlB,EAAgBpkB,GAAwJ,OAAnJokB,EAAkBnkB,OAAO+X,eAAiB/X,OAAOwlB,eAAiB,SAAyBzlB,GAAK,OAAOA,EAAEiY,WAAahY,OAAOwlB,eAAezlB,KAA8BA,GAgBxM,IAAIiL,EAAQhL,OAAOizC,EAA2D,EAAlEjzC,CAAqE,mBAG7E2zC,EAAmB,CAAC,CADR,EACoBC,GAAY,CADhC,EAC4CC,GAAe,CAAC,KAqa5E,SAAoBjlC,EAAMzJ,GAKxB,OAJK2uC,EAAc3uC,EAAO,OACxBA,EAAM9C,OAAO,MAGR8C,IA1asF,CAF5E,EAE2F0uC,GAAe,CAF1G,EA8YnB,SAAmBjlC,EAAMzJ,EAAOmH,GAC9B,IAAIwM,EAAQxM,EAAOF,MAAMwC,GACzB,GAAa,MAATkK,EAAe,OAAO3T,EAE1B,GAAI2T,EAAM5X,qBAAqBmrB,EAAkD,UAAG,CAClF,IAAI9Y,EAAQ,GACRhT,EAAQuY,EAAMvY,MAAMqO,GAExB,GAAa,MAATrO,EAEF,OADAgT,EAAMuF,EAAMzM,UAAY9L,GACjB,IAAIyH,EAAiDgJ,GAAI3O,OAAOkR,EAAOuF,EAAMvH,QAAQ3C,EAAMtC,SAOpG,GAJIwM,EAAM5X,qBAAqBmrB,EAAkD,YAAMynB,EAAc3uC,EAAO,OAC1GA,EAAM9C,OAAO,MAGc,oBAAlByW,EAAMvH,QACf,OAAOwiC,EAAY5uC,EAAO2T,EAAMzM,SAAUyM,EAAMvH,QAAQ3C,EAAMtC,IAIlE,OAAOnH,IAla+I,CAFrI,EA4WnB,SAAyByJ,EAAMzJ,EAAOmH,GACpC,IAAI/J,EAAa8pB,EAAmD,WAAE3pB,KAAKkM,GACvE0J,EAAU+T,EAAwD,gBAAE3pB,KAAKkM,GACzEoS,EAASqL,EAAwD,gBAAE3pB,KAAKkM,GACxE2C,EAAU,GAuBd,OAtBAhP,EAAWmD,OAAO4S,GAAS5S,OAAOsb,GAAQzd,SAAQ,SAAU1D,GAC1D,IAAIohB,EAAO3U,EAAOF,MAAMvM,EAAMwsB,EAA8C,MAAE/Q,WAElE,MAAR2F,IACF1P,EAAQ0P,EAAK/R,UAAY+R,EAAK1gB,MAAMqO,GAChC2C,EAAQ0P,EAAK/R,aAKP,OAFZ+R,EAAO+yB,EAAsBn0C,KAERohB,EAAK/R,WAAarP,GAAQohB,EAAK9G,UAAYta,IAC9D0R,EAAQ0P,EAAK/R,UAAY+R,EAAK1gB,MAAMqO,SAAStD,GAKnC,OAFZ2V,EAAOgzB,EAAkBp0C,KAEJohB,EAAK/R,WAAarP,GAAQohB,EAAK9G,UAAYta,IAC9DohB,EAAOgzB,EAAkBp0C,GACzB0R,EAAQ0P,EAAK/R,UAAY+R,EAAK1gB,MAAMqO,SAAStD,OAI7CtL,OAAO0C,KAAK6O,GAAS9O,OAAS,EACzBsxC,EAAY5uC,EAAOoM,GAGrBpM,IAzYgL,CAFtK,EAwfnB,SAAqByJ,EAAMzJ,GACzB,IAAIoM,EAAU,GACVoP,EAAQ/R,EAAK+R,OAAS,GAsB1B,MApBwB,WAApBA,EAAMuzB,YACR3iC,EAAQ60B,QAAS,IAGgC,IAA/CzlB,EAAMwzB,eAAeztC,QAAQ,eAC/B6K,EAAQ80B,WAAY,IAGgC,IAAlD1lB,EAAMwzB,eAAeztC,QAAQ,kBAC/B6K,EAAQ6iC,QAAS,IAGsB,IAArCzzB,EAAM0zB,WAAW3tC,QAAQ,SAAiBgU,SAASiG,EAAM0zB,WAAY,KAAO,OAC9E9iC,EAAQ40B,MAAO,GAGbnmC,OAAO0C,KAAK6O,GAAS9O,OAAS,IAChC0C,EAAQ4uC,EAAY5uC,EAAOoM,IAGzB+iC,WAAW3zB,EAAM4zB,YAAc,GAAK,GAE/B,IAAIvsC,EAAiDgJ,GAAI3O,OAAO,MAAMqD,OAAOP,GAG/EA,IAnhB6M,CAAC,KAubvN,SAAqByJ,EAAMzJ,EAAOmH,GAChC,IAAIwM,EAAQxM,EAAOF,MAAMwC,GAEzB,GAAa,MAATkK,GAAoC,SAAnBA,EAAMzM,WAAwBynC,EAAc3uC,EAAO,MACtE,OAAOA,EAMT,IAHA,IAAI2lB,GAAU,EACV/P,EAASnM,EAAKgK,WAED,MAAVmC,IACyC,IAA1C,CAAC,KAAM,MAAMrU,QAAQqU,EAAOhB,WAC9B+Q,GAAU,GAGZ/P,EAASA,EAAOnC,WAGlB,OAAIkS,GAAU,EAAU3lB,EACjBA,EAAMtB,QAAO,SAAU2wC,EAAU5wC,GACtC,OAAIA,EAAGrB,YAA8C,kBAAzBqB,EAAGrB,WAAWuoB,OACjC0pB,EAAS7xC,KAAKiB,GAGhB4wC,EAASnyC,OAAOuB,EAAGvB,OAAQomB,EAAc,CAC9CqC,OAAQA,GACPlnB,EAAGrB,YAAc,OACnB,IAAIyF,EAAiDgJ,KAldiL,CAAC,SAqd5O,SAAmBpC,EAAMzJ,GACvB,IAAIgmB,EAAwB,OAAjBvc,EAAKmL,QAAmB,UAAY,SAC/C,OAAOg6B,EAAY5uC,EAAO,OAAQgmB,KAvd8N,CAAC,MA6anQ,SAAwBvc,EAAMzJ,EAAOmH,GACnC,IAAIwM,EAAQxM,EAAOF,MAAM,cACrBqoC,GAAW37B,GAAQA,EAAMvH,QAAQ3C,EAAMtC,GAC3C,OAAOynC,EAAY5uC,EAAO,aAAcsvC,KAhbiP,CAAC,KAshB5R,SAAoB7lC,EAAMzJ,GACxB,IAAI4gC,EAAoC,UAA5Bn3B,EAAKgK,WAAWmB,QAAsBnL,EAAKgK,WAAahK,EAAKgK,WAAWA,WAEhFkuB,EADO3kC,MAAM+H,KAAK67B,EAAMlgB,iBAAiB,OAC9Bnf,QAAQkI,GAAQ,EAC/B,OAAOmlC,EAAY5uC,EAAO,QAAS2hC,KA1hB0Q,CAAC,IAAK4N,EAAW5zC,KAAK4zC,EAAY,SAAU,CAAC,IAAKA,EAAW5zC,KAAK4zC,EAAY,WAAY,CAAC,SAAUA,EAAW5zC,KAAK4zC,EAAY,WAAY,CAAC,QAmb7b,WACE,OAAO,IAAI1sC,EAAiDgJ,KAnb1D2jC,EAAqB,CAACf,EAAWC,GACjCG,EAAwB,CAACb,EAAoE,EAAGI,EAA6E,GAAG1vC,QAAO,SAAU8T,EAAMsJ,GAEzM,OADAtJ,EAAKsJ,EAAK9G,SAAW8G,EACdtJ,IACN,IACCs8B,EAAoB,CAACd,EAAgE,EAAGC,EAA0E,EAAGE,EAAgE,EAAGC,EAAyE,EAAGC,EAA+D,EAAGC,EAA+D,GAAG5vC,QAAO,SAAU8T,EAAMsJ,GAEjd,OADAtJ,EAAKsJ,EAAK9G,SAAW8G,EACdtJ,IACN,IAECk7B,EAAyB,SAAUlU,IA1CvC,SAAmBxY,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/b,UAAU,sDAAyD8b,EAASjlB,UAAYlB,OAAOY,OAAOwlB,GAAcA,EAAWllB,UAAW,CAAE6H,YAAa,CAAExI,MAAO4lB,EAAUjd,UAAU,EAAMD,cAAc,KAAemd,GAAY7B,EAAgB4B,EAAUC,GA2CjXC,CAAUwsB,EAAWlU,GAErB,IA/CoBh0B,EAAa6D,EAAYC,EA+CzCyJ,EAASsM,EAAaquB,GAE1B,SAASA,EAAU9sB,EAAO3a,GACxB,IAAID,EAwBJ,OA9EJ,SAAyBT,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIN,UAAU,qCAwD5GI,CAAgBlJ,KAAMsxC,IAEtB1nC,EAAQ+M,EAAOzY,KAAK8B,KAAMwkB,EAAO3a,IAE3B2a,MAAMja,KAAK4Z,iBAAiB,QAAQ,SAAUnJ,GAClD,OAAOpR,EAAMypC,cAAcr4B,GAAG,MAGhCpR,EAAM4a,MAAMja,KAAK4Z,iBAAiB,OAAO,SAAUnJ,GACjD,OAAOpR,EAAMypC,cAAcr4B,GAAG,MAGhCpR,EAAM4a,MAAMja,KAAK4Z,iBAAiB,QAASva,EAAM0pC,eAAe/zC,KAAKykB,EAAuBpa,KAE5FA,EAAM2pC,SAAW,GACjBnB,EAAiBjuC,OAAOyF,EAAMC,QAAQ0pC,UAAUvxC,SAAQ,SAAUwjB,GAChE,IAAIgF,EAAQ5iB,EAAe4d,EAAM,GAC7BguB,EAAWhpB,EAAM,GACjBipB,EAAUjpB,EAAM,GAEpB5gB,EAAM8pC,WAAWF,EAAUC,MAEtB7pC,EAsOT,OAhToBR,EA6EPkoC,GA7EoBrkC,EA6ET,CAAC,CACvB3N,IAAK,aACLN,MAAO,SAAoBw0C,EAAUC,GACnCzzC,KAAKuzC,SAASnyC,KAAK,CAACoyC,EAAUC,MAE/B,CACDn0C,IAAK,UACLN,MAAO,SAAiBkjC,GACtB,IAAIj4B,EAAOi4B,EAAMj4B,KACb8D,EAAOm0B,EAAMn0B,KACbiC,EAAUlG,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAElF,OAAIkG,EAAQ8hC,EAA4D,EAAEhnC,WACjE,IAAIrE,EAAiDgJ,GAAI3O,OAAOiN,EAAMtG,EAAgB,GAAIqqC,EAA4D,EAAEhnC,SAAUkF,EAAQ8hC,EAA4D,EAAEhnC,YAG1Ob,EAAOjK,KAAK2zC,cAAc1pC,EAAM+F,GAAWhQ,KAAK4zC,kBAAkB7lC,KAE1E,CACDzO,IAAK,oBACLN,MAAO,WACL,IAAI0P,EAAS1O,KAET+N,EAAOjE,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAE/E,GAAoB,IAAhBiE,EAAK7M,OACP,OAAO,IAAIuF,EAAiDgJ,EAG9D,IAAI8jC,EAAWvzC,KAAK6zC,sBAChBC,EAAU9zC,KAAKwkB,MAAMja,KAAKwpC,cAAcxlC,cAAc,OAC1DulC,EAAQhQ,YAAc/1B,EACtB,IAAIV,EAAOymC,EAAQ74B,WAAW,GAC9B,OAAOs4B,EAASjxC,QAAO,SAAUsB,EAAO6vC,GACtC,OAAOA,EAAQpmC,EAAMzJ,EAAO8K,EAAO8V,MAAMzZ,UACxC,IAAItE,EAAiDgJ,KAEzD,CACDnQ,IAAK,gBACLN,MAAO,SAAuBiL,EAAM+F,GAClC,IACIrG,GADM,IAAIqqC,WAAYC,gBAAgBhqC,EAAM,aAC5BoT,KAChB62B,EAAc,IAAIl7B,QAGlBm7B,EAAyBvsC,EADD5H,KAAKo0C,gBAAgBzqC,EAAWuqC,GACO,GAC/DG,EAAkBF,EAAuB,GACzCG,EAAeH,EAAuB,GAEtCvwC,EAAQ2tC,EAASvxC,KAAKwkB,MAAMzZ,OAAQpB,EAAW0qC,EAAiBC,EAAcJ,GAElF,OAAI3B,EAAc3uC,EAAO,QAAwD,MAA9CA,EAAMjD,IAAIiD,EAAMjD,IAAIO,OAAS,GAAGF,YAAsBgP,EAAQw0B,OACxF5gC,EAAMT,SAAQ,IAAIsD,EAAiDgJ,GAAInO,OAAOsC,EAAM1C,SAAW,GAAGG,OAAO,IAG3GuC,IAER,CACDtE,IAAK,uBACLN,MAAO,SAA8BuC,EAAO0I,GAC1C,IAAI+B,EAASlC,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,GAAmBA,UAAU,GAAK2nC,EAA0D,EAAEriC,QAAQC,IAErJ,GAAqB,kBAAV9N,EAAoB,CAC7B,IAAIqC,EAAQ5D,KAAK8N,QAAQ,CACvB7D,KAAM1I,EACNwM,KAAM,KAER/N,KAAKwkB,MAAM/X,YAAY7I,EAAOqG,GAC9BjK,KAAKwkB,MAAM1U,aAAa,EAAG2hC,EAA0D,EAAEriC,QAAQW,YAC1F,CACL,IAAIwkC,EAAQv0C,KAAK8N,QAAQ,CACvB7D,KAAMA,EACN8D,KAAM,KAER/N,KAAKwkB,MAAMya,gBAAe,IAAIx4B,EAAiDgJ,GAAInO,OAAOC,GAAO4C,OAAOowC,GAAQvoC,GAChHhM,KAAKwkB,MAAM1U,aAAavO,EAAQgzC,EAAMrzC,SAAUuwC,EAA0D,EAAEriC,QAAQW,WAGvH,CACDzQ,IAAK,gBACLN,MAAO,SAAuBgc,GAC5B,IAAIw5B,EAAQ1qC,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,IAAmBA,UAAU,GAC3E,IAAIkR,EAAEunB,kBAEFvnB,EAAEy5B,cAAN,CACEz5B,EAAEogB,iBAKJ,IAAIsZ,EAAwB10C,KAAKwkB,MAAMtZ,UAAUmB,WAC7CsoC,EAAyB/sC,EAAe8sC,EAAuB,GAC/DplC,EAAQqlC,EAAuB,GAEnC,GAAa,MAATrlC,EAAJ,CAEA,IAAIslC,EAAe50C,KAAK60C,OAAOvlC,EAAOklC,GAClCvqC,EAAO2qC,EAAa3qC,KACpB8D,EAAO6mC,EAAa7mC,KAExBiN,EAAEy5B,cAAcK,QAAQ,aAAc/mC,GACtCiN,EAAEy5B,cAAcK,QAAQ,YAAa7qC,GAEjCuqC,IACFx0C,KAAK+0C,cAAc,QAAS/5B,GAC5Bvc,OAAO0zC,EAA6D,EAApE1zC,CAAuE,CACrE6Q,MAAOA,EACPkV,MAAOxkB,KAAKwkB,aAIjB,CACDllB,IAAK,iBACLN,MAAO,SAAwBgc,GAC7B,IAAIA,EAAEunB,kBAAqBviC,KAAKwkB,MAAMlS,cACtCtS,KAAK+0C,cAAc,UAAW/5B,GAE1BA,EAAEy5B,eAAN,CACEz5B,EAAEogB,iBAKJ,IAAI9rB,EAAQtP,KAAKwkB,MAAMjV,cAAa,GACpC,GAAa,MAATD,EAAJ,CACA,IAAIrF,EAAO+Q,EAAEy5B,cAAcO,QAAQ,aAC/BjnC,EAAOiN,EAAEy5B,cAAcO,QAAQ,cAC/B7W,EAAQv9B,MAAM+H,KAAKqS,EAAEy5B,cAActW,OAAS,KAE3Cl0B,GAAQk0B,EAAMj9B,OAAS,EAC1BlB,KAAKwkB,MAAMhZ,SAASyyB,OAAO3uB,EAAO6uB,GAElCn+B,KAAKi1C,QAAQ3lC,EAAO,CAClBrF,KAAMA,EACN8D,KAAMA,QAIX,CACDzO,IAAK,gBACLN,MAAO,SAAuBV,EAAM+mB,GAClC,IAAIvP,EAAW9V,KAAK6J,QAAQvL,GAExBwX,GAAgC,oBAAbA,GACrBA,EAASuP,KAGZ,CACD/lB,IAAK,SACLN,MAAO,SAAgBsQ,GACrB,IAAIvB,EAAO/N,KAAKwkB,MAAM1S,QAAQxC,GAE9B,MAAO,CACLrF,KAFSjK,KAAKwkB,MAAM0wB,gBAAgB5lC,GAGpCvB,KAAMA,KAGT,CACDzO,IAAK,UACLN,MAAO,SAAiBsQ,EAAO00B,GAC7B,IAAIj2B,EAAOi2B,EAAMj2B,KACb9D,EAAO+5B,EAAM/5B,KACb+F,EAAUhQ,KAAKwkB,MAAMrT,UAAU7B,EAAM/N,OACrC4zC,EAAcn1C,KAAK8N,QAAQ,CAC7BC,KAAMA,EACN9D,KAAMA,GACL+F,GACHvG,EAAM2b,IAAI,UAAW+vB,EAAa,CAChCpnC,KAAMA,EACN9D,KAAMA,IAER,IAAIrG,GAAQ,IAAI6C,EAAiDgJ,GAAInO,OAAOgO,EAAM/N,OAAOF,OAAOiO,EAAMpO,QAAQiD,OAAOgxC,GACrHn1C,KAAKwkB,MAAMya,eAAer7B,EAAO6tC,EAA0D,EAAEriC,QAAQmE,MAErGvT,KAAKwkB,MAAM1U,aAAalM,EAAM1C,SAAWoO,EAAMpO,OAAQuwC,EAA0D,EAAEriC,QAAQW,QAC3H/P,KAAKwkB,MAAMtV,mBAEZ,CACD5P,IAAK,kBACLN,MAAO,SAAyB2K,EAAWuqC,GACzC,IAAIG,EAAkB,GAClBC,EAAe,GA2BnB,OA1BAt0C,KAAKuzC,SAASvxC,SAAQ,SAAU2vB,GAC9B,IAAIyjB,EAAQxtC,EAAe+pB,EAAM,GAC7B6hB,EAAW4B,EAAM,GACjB3B,EAAU2B,EAAM,GAEpB,OAAQ5B,GACN,KAzOM,EA0OJc,EAAalzC,KAAKqyC,GAClB,MAEF,KA9OS,EA+OPY,EAAgBjzC,KAAKqyC,GACrB,MAEF,QACE7yC,MAAM+H,KAAKgB,EAAU2a,iBAAiBkvB,IAAWxxC,SAAQ,SAAUqL,GAC7D6mC,EAAY98B,IAAI/J,GACJ6mC,EAAYt1C,IAAIyO,GACtBjM,KAAKqyC,GAEbS,EAAY5pC,IAAI+C,EAAM,CAAComC,WAM1B,CAACY,EAAiBC,KAE1B,CACDh1C,IAAK,sBACLN,MAAO,WACL,IAAIs1C,EAAe,CAACe,GAUpB,OATAr1C,KAAKuzC,SAASvxC,SAAQ,SAAU2vB,GAC9B,IAAI2jB,EAAS1tC,EAAe+pB,EAAM,GAC9B6hB,EAAW8B,EAAO,GAClB7B,EAAU6B,EAAO,IAEwB,IAAzClC,EAAmBjuC,QAAQsuC,IAxQvB,IAwQ0CD,GAChDc,EAAalzC,KAAKqyC,MAGfa,OA5SiEjrC,EAAkBD,EAAYzJ,UAAWsN,GAAiBC,GAAa7D,EAAkBD,EAAa8D,GAgT3KokC,EApQoB,CAqQ3BK,EAA2D,GAM7D,SAASa,EAAY5uC,EAAOgM,EAAQ5Q,GAClC,MAAwB,WAApBsI,EAAQsI,GACHnR,OAAO0C,KAAKyO,GAAQtN,QAAO,SAAUizC,EAAUj2C,GACpD,OAAOkzC,EAAY+C,EAAUj2C,EAAKsQ,EAAOtQ,MACxCsE,GAGEA,EAAMtB,QAAO,SAAUizC,EAAUlzC,GACtC,GAAIA,EAAGrB,YAAcqB,EAAGrB,WAAW4O,GACjC,OAAO2lC,EAASn0C,KAAKiB,GAGvB,IAAI2N,EAAUhR,EAAQyI,EAAgB,GAAImI,EAAQ5Q,GAAS,GAC3D,OAAOu2C,EAASz0C,OAAOuB,EAAGvB,OAAQomB,EAAcA,EAAc,GAAIlX,GAAU3N,EAAGrB,eAC9E,IAAIyF,EAAiDgJ,GAG1D,SAAS8iC,EAAc3uC,EAAOmK,GAG5B,IAFA,IAAIynC,EAAU,GAELx3C,EAAI4F,EAAMjD,IAAIO,OAAS,EAAGlD,GAAK,GAAKw3C,EAAQt0C,OAAS6M,EAAK7M,SAAUlD,EAC3E,CACA,IAAIqE,EAAKuB,EAAMjD,IAAI3C,GACnB,GAAyB,kBAAdqE,EAAGvB,OAAqB,MACnC00C,EAAUnzC,EAAGvB,OAAS00C,EAGxB,OAAOA,EAAQ9yC,OAAO,EAAIqL,EAAK7M,UAAY6M,EAG7C,SAAS+sB,EAAOztB,GACd,OAA+B,IAA3BA,EAAK4N,WAAW/Z,SAEkT,IAA/T,CAAC,UAAW,UAAW,aAAc,SAAU,KAAM,MAAO,KAAM,KAAM,WAAY,aAAc,SAAU,SAAU,OAAQ,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,SAAU,SAAU,KAAM,OAAQ,MAAO,KAAM,SAAU,IAAK,MAAO,UAAW,QAAS,KAAM,KAAM,KAAM,SAASiE,QAAQkI,EAAKmL,QAAQwH,eArCpTsxB,EAAU59B,SAAW,CACnB6/B,SAAU,IAuCZ,IAAIkC,EAAW,IAAIz8B,QAgBnB,SAASu4B,EAASxmC,EAAQsC,EAAMgnC,EAAiBC,EAAcJ,GAE7D,OAAI7mC,EAAKqK,WAAarK,EAAKsK,UAClB28B,EAAahyC,QAAO,SAAUsB,EAAO6vC,GAC1C,OAAOA,EAAQpmC,EAAMzJ,EAAOmH,KAC3B,IAAItE,EAAiDgJ,GAGtDpC,EAAKqK,WAAarK,EAAKqoC,aAClB90C,MAAM+H,KAAK0E,EAAK4N,YAAc,IAAI3Y,QAAO,SAAUsB,EAAOstC,GAC/D,IAAIyE,EAAgBpE,EAASxmC,EAAQmmC,EAAWmD,EAAiBC,EAAcJ,GAW/E,OATIhD,EAAUx5B,WAAarK,EAAKqoC,eAC9BC,EAAgBtB,EAAgB/xC,QAAO,SAAUszC,EAAcnC,GAC7D,OAAOA,EAAQvC,EAAW0E,EAAc7qC,KACvC4qC,GACHA,GAAiBzB,EAAYt1C,IAAIsyC,IAAc,IAAI5uC,QAAO,SAAUszC,EAAcnC,GAChF,OAAOA,EAAQvC,EAAW0E,EAAc7qC,KACvC4qC,IAGE/xC,EAAMO,OAAOwxC,KACnB,IAAIlvC,EAAiDgJ,GAGnD,IAAIhJ,EAAiDgJ,EAG9D,SAAS0jC,EAAWvjC,EAAQvC,EAAMzJ,GAChC,OAAO4uC,EAAY5uC,EAAOgM,GAAQ,GAmHpC,SAAS0iC,EAAajlC,EAAMzJ,EAAOmH,GACjC,IAAKwnC,EAAc3uC,EAAO,MAAO,CAC/B,GAAIk3B,EAAOztB,GACT,OAAOzJ,EAAM9C,OAAO,MAGtB,GAAI8C,EAAM1C,SAAW,GAAKmM,EAAKoP,YAG7B,IAFA,IAAIA,EAAcpP,EAAKoP,YAED,MAAfA,GAAqB,CAC1B,GAAIqe,EAAOre,GACT,OAAO7Y,EAAM9C,OAAO,MAGtB,IAAIyW,EAAQxM,EAAOF,MAAM4R,GAEzB,GAAIlF,GAASA,EAAM5X,qBAAqB6xC,EAA8D,EACpG,OAAO5tC,EAAM9C,OAAO,MAGtB2b,EAAcA,EAAYhB,YAKhC,OAAO7X,EA0CT,SAASyxC,EAAehoC,EAAMzJ,GAC5B,IAAImK,EAAOV,EAAK6U,MAAQ,GAExB,OADAnU,EAAOA,EAAK0Q,QAAQ,QAAS,MACtB7a,EAAM9C,OAAOiN,GAGtB,SAASskC,EAAUhlC,EAAMzJ,GACvB,IAAImK,EAAOV,EAAK6U,KAEhB,GAAgC,QAA5B7U,EAAKgK,WAAWmB,QAClB,OAAO5U,EAAM9C,OAAOiN,EAAK5D,QAG3B,GAA2B,IAAvB4D,EAAK5D,OAAOjJ,SAAwC,IAAxB6M,EAAK5I,QAAQ,MAC3C,OAAOvB,EAGT,IAlPF,SAASiyC,EAAMxoC,GACb,OAAY,MAARA,IAECooC,EAASr+B,IAAI/J,KACK,QAAjBA,EAAKmL,QACPi9B,EAASnrC,IAAI+C,GAAM,GAEnBooC,EAASnrC,IAAI+C,EAAMwoC,EAAMxoC,EAAKgK,cAI3Bo+B,EAAS72C,IAAIyO,IAuOfwoC,CAAMxoC,GAAO,CAChB,IAAIyoC,EAAW,SAAkBC,EAAUx+B,GACzC,IAAIy+B,EAAWz+B,EAAMkH,QAAQ,aAAc,IAE3C,OAAOu3B,EAAS90C,OAAS,GAAK60C,EAAW,IAAMC,GAIjDjoC,GADAA,EAAOA,EAAK0Q,QAAQ,QAAS,KAAKA,QAAQ,MAAO,MACrCA,QAAQ,SAAUq3B,EAASv2C,KAAKu2C,GAAU,KAE1B,MAAxBzoC,EAAKuU,iBAA2BkZ,EAAOztB,EAAKgK,aAAuC,MAAxBhK,EAAKuU,iBAA2BkZ,EAAOztB,EAAKuU,oBACzG7T,EAAOA,EAAK0Q,QAAQ,OAAQq3B,EAASv2C,KAAKu2C,GAAU,MAG9B,MAApBzoC,EAAKoP,aAAuBqe,EAAOztB,EAAKgK,aAAmC,MAApBhK,EAAKoP,aAAuBqe,EAAOztB,EAAKoP,gBACjG1O,EAAOA,EAAK0Q,QAAQ,OAAQq3B,EAASv2C,KAAKu2C,GAAU,KAIxD,OAAOlyC,EAAM9C,OAAOiN,KAOf,SAAShQ,EAAQD,GAExBC,EAAOD,QAAU,SAASC,GAoBzB,OAnBKA,EAAOk4C,kBACXl4C,EAAOm4C,UAAY,aACnBn4C,EAAOo4C,MAAQ,GAEVp4C,EAAOqc,WAAUrc,EAAOqc,SAAW,IACxC3b,OAAOC,eAAeX,EAAQ,SAAU,CACvCY,YAAY,EACZC,IAAK,WACJ,OAAOb,EAAOE,KAGhBQ,OAAOC,eAAeX,EAAQ,KAAM,CACnCY,YAAY,EACZC,IAAK,WACJ,OAAOb,EAAOC,KAGhBD,EAAOk4C,gBAAkB,GAEnBl4C,IAMD,SAASA,EAAQD,EAASF,GAEjC,IAAI8yB,EAAS9yB,EAAoB,IAE7Bw4C,EAAY,SAAUC,GACxB,MAA0B,mBAAZA,EAAyBA,OAAWtsC,GAGpDhM,EAAOD,QAAU,SAAU89B,EAAWH,GACpC,OAAO3xB,UAAU5I,OAAS,EAAIk1C,EAAU1lB,EAAOkL,IAAclL,EAAOkL,IAAclL,EAAOkL,GAAWH,KAM/F,SAAS19B,EAAQD,GAIxBC,EAAOD,QAAU,SAAUioC,GACzB,QAAUh8B,GAANg8B,EAAiB,MAAMj9B,UAAU,wBAA0Bi9B,GAC/D,OAAOA,IAMF,SAAShoC,EAAQD,GAExBC,EAAOD,SAAU,GAKV,SAASC,EAAQD,EAASF,GAEjC,IAAI04C,EAAyB14C,EAAoB,IAIjDG,EAAOD,QAAU,SAAUy4C,GACzB,OAAO93C,OAAO63C,EAAuBC,MAMhC,SAASx4C,EAAQD,GAExBC,EAAOD,QAAU,SAAU04C,EAAQx3C,GACjC,MAAO,CACLL,aAAuB,EAAT63C,GACd9uC,eAAyB,EAAT8uC,GAChB7uC,WAAqB,EAAT6uC,GACZx3C,MAAOA,KAOJ,SAASjB,EAAQD,EAASF,GAEjC,IAAI8yB,EAAS9yB,EAAoB,IAC7BmlB,EAA2BnlB,EAAoB,IAAIyyC,EACnDoG,EAA8B74C,EAAoB,IAClD84C,EAAW94C,EAAoB,IAC/B+4C,EAAY/4C,EAAoB,IAChCg5C,EAA4Bh5C,EAAoB,KAChDi5C,EAAWj5C,EAAoB,KAgBnCG,EAAOD,QAAU,SAAU+L,EAASmC,GAClC,IAGY1C,EAAQhK,EAAKw3C,EAAgBC,EAAgBvtC,EAHrDwtC,EAASntC,EAAQP,OACjB2tC,EAASptC,EAAQ6mB,OACjBwmB,EAASrtC,EAAQstC,KASrB,GANE7tC,EADE2tC,EACOvmB,EACAwmB,EACAxmB,EAAOsmB,IAAWL,EAAUK,EAAQ,KAEnCtmB,EAAOsmB,IAAW,IAAIr3C,UAEtB,IAAKL,KAAO0M,EAAQ,CAQ9B,GAPA+qC,EAAiB/qC,EAAO1M,GAGtBw3C,EAFEjtC,EAAQutC,aACV5tC,EAAauZ,EAAyBzZ,EAAQhK,KACfkK,EAAWxK,MACpBsK,EAAOhK,IACtBu3C,EAASI,EAAS33C,EAAM03C,GAAUE,EAAS,IAAM,KAAO53C,EAAKuK,EAAQwtC,cAE5CttC,IAAnB+sC,EAA8B,CAC3C,UAAWC,WAA0BD,EAAgB,SACrDF,EAA0BG,EAAgBD,IAGxCjtC,EAAQwZ,MAASyzB,GAAkBA,EAAezzB,OACpDozB,EAA4BM,EAAgB,QAAQ,GAGtDL,EAASptC,EAAQhK,EAAKy3C,EAAgBltC,MAOnC,SAAS9L,EAAQD,EAASF,GAEjC,IAAI05C,EAAY15C,EAAoB,IAEhCmG,EAAMD,KAAKC,IAIfhG,EAAOD,QAAU,SAAUy4C,GACzB,OAAOA,EAAW,EAAIxyC,EAAIuzC,EAAUf,GAAW,kBAAoB,IAM9D,SAASx4C,EAAQD,GAExBC,EAAOD,QAAU,IAKV,SAASC,EAAQoI,EAAqBvI,GAE7C,aAC+BA,EAAoBS,EAAE8H,EAAqB,KAAK,WAAa,OAAOoxC,KAEpE35C,EAAoBS,EAAE8H,EAAqB,KAAK,WAAa,OAAOqxC,KAC9E,IAAIhxC,EAA2C5I,EAAoB,GAC/D6I,EAAgE7I,EAAoB4B,EAAEgH,GACtFskB,EAAyCltB,EAAoB,GAC7D65C,EAA6C75C,EAAoB,IACjE6zC,EAA2C7zC,EAAoB,GAC/D85C,EAA4C95C,EAAoB,GAChE+5C,EAA4C/5C,EAAoB,GAChEg6C,EAA4Ch6C,EAAoB,GAChEi6C,EAA6Cj6C,EAAoB,IACjEk6C,EAA2Cl6C,EAAoB,GAC/Dm6C,EAA6Cn6C,EAAoB,IACjEo6C,EAA2Cp6C,EAAoB,IAC/Dq6C,EAAiDr6C,EAAoB,IAC9F,SAAS0J,EAAQC,GAAmV,OAAtOD,EAArD,oBAAXxI,QAAoD,kBAApBA,OAAOiE,SAAmC,SAAiBwE,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXzI,QAAyByI,EAAIC,cAAgB1I,QAAUyI,IAAQzI,OAAOa,UAAY,gBAAkB4H,IAAyBA,GAEnX,SAASE,EAAgBF,EAAKjI,EAAKN,GAAiK,OAApJM,KAAOiI,EAAO9I,OAAOC,eAAe6I,EAAKjI,EAAK,CAAEN,MAAOA,EAAOL,YAAY,EAAM+I,cAAc,EAAMC,UAAU,IAAkBJ,EAAIjI,GAAON,EAAgBuI,EAE3M,SAASK,EAAeC,EAAK7J,GAAK,OAUlC,SAAyB6J,GAAO,GAAIjH,MAAMC,QAAQgH,GAAM,OAAOA,EAVtBC,CAAgBD,IAQzD,SAA+BA,EAAK7J,GAAK,IAAI+J,EAAY,MAAPF,EAAc,KAAyB,qBAAX/I,QAA0B+I,EAAI/I,OAAOiE,WAAa8E,EAAI,cAAe,GAAU,MAANE,EAAJ,CAAwB,IAAkDC,EAAIC,EAAlDC,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAmB,IAAM,IAAKL,EAAKA,EAAG7J,KAAK2J,KAAQM,GAAMH,EAAKD,EAAG7E,QAAQmF,QAAoBH,EAAK9G,KAAK4G,EAAGhJ,QAAYhB,GAAKkK,EAAKhH,SAAWlD,GAA3DmK,GAAK,IAAoE,MAAOG,GAAOF,GAAK,EAAMH,EAAKK,EAAO,QAAU,IAAWH,GAAsB,MAAhBJ,EAAW,QAAWA,EAAW,SAAO,QAAU,GAAIK,EAAI,MAAMH,GAAQ,OAAOC,GARzbK,CAAsBV,EAAK7J,IAI5F,SAAqCQ,EAAGgK,GAAU,GAAKhK,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAOiK,EAAkBjK,EAAGgK,GAAS,IAAIhJ,EAAIf,OAAOkB,UAAU+I,SAASxK,KAAKM,GAAGkE,MAAM,GAAI,GAAiE,MAAnD,WAANlD,GAAkBhB,EAAEgJ,cAAahI,EAAIhB,EAAEgJ,YAAYlJ,MAAgB,QAANkB,GAAqB,QAANA,EAAoBoB,MAAM+H,KAAKnK,GAAc,cAANgB,GAAqB,2CAA2CoJ,KAAKpJ,GAAWiJ,EAAkBjK,EAAGgK,QAAzG,GAJ3MK,CAA4BhB,EAAK7J,IAEnI,WAA8B,MAAM,IAAI8K,UAAU,6IAFuFC,GAMzI,SAASN,EAAkBZ,EAAKmB,IAAkB,MAAPA,GAAeA,EAAMnB,EAAI3G,UAAQ8H,EAAMnB,EAAI3G,QAAQ,IAAK,IAAIlD,EAAI,EAAGiL,EAAO,IAAIrI,MAAMoI,GAAMhL,EAAIgL,EAAKhL,IAAOiL,EAAKjL,GAAK6J,EAAI7J,GAAM,OAAOiL,EAMhL,SAASC,EAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIN,UAAU,qCAEhH,SAASO,EAAkBC,EAAQC,GAAS,IAAK,IAAIvL,EAAI,EAAGA,EAAIuL,EAAMrI,OAAQlD,IAAK,CAAE,IAAIwL,EAAaD,EAAMvL,GAAIwL,EAAW7K,WAAa6K,EAAW7K,aAAc,EAAO6K,EAAW9B,cAAe,EAAU,UAAW8B,IAAYA,EAAW7B,UAAW,GAAMlJ,OAAOC,eAAe4K,EAAQE,EAAWlK,IAAKkK,IAE7S,SAAS0hB,EAAa9hB,EAAa6D,EAAYC,GAAmJ,OAAhID,GAAY5D,EAAkBD,EAAYzJ,UAAWsN,GAAiBC,GAAa7D,EAAkBD,EAAa8D,GAAqB9D,EAEzM,SAAS0b,EAAUF,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/b,UAAU,sDAAyD8b,EAASjlB,UAAYlB,OAAOY,OAAOwlB,GAAcA,EAAWllB,UAAW,CAAE6H,YAAa,CAAExI,MAAO4lB,EAAUjd,UAAU,EAAMD,cAAc,KAAemd,GAAY7B,EAAgB4B,EAAUC,GAEnX,SAAS7B,EAAgBxkB,EAAGqB,GAA+G,OAA1GmjB,EAAkBvkB,OAAO+X,gBAAkB,SAAyBhY,EAAGqB,GAAsB,OAAjBrB,EAAEiY,UAAY5W,EAAUrB,IAA6BA,EAAGqB,GAErK,SAASojB,EAAaC,GAAW,IAAIC,EAMrC,WAAuC,GAAuB,qBAAZR,UAA4BA,QAAQS,UAAW,OAAO,EAAO,GAAIT,QAAQS,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQ5jB,UAAU6jB,QAAQtlB,KAAKykB,QAAQS,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAOvI,GAAK,OAAO,GAN9PyI,GAA6B,OAAO,WAAkC,IAAsCC,EAAlCC,EAAQf,EAAgBM,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYhB,EAAgB5iB,MAAMwH,YAAakc,EAASf,QAAQS,UAAUO,EAAO7Z,UAAW8Z,QAAqBF,EAASC,EAAMlR,MAAMzS,KAAM8J,WAAc,OAAO+Z,EAA2B7jB,KAAM0jB,IAE5Z,SAASG,EAA2BC,EAAM5lB,GAAQ,OAAIA,GAA2B,WAAlBoJ,EAAQpJ,IAAsC,oBAATA,EAA8C8lB,EAAuBF,GAAtC5lB,EAEnI,SAAS8lB,EAAuBF,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,EAI/J,SAASrB,EAAKnZ,EAAQ5J,EAAUgjB,GAAuV,OAAtRD,EAA9B,qBAAZE,SAA2BA,QAAQ/jB,IAAc+jB,QAAQ/jB,IAAqB,SAAc0K,EAAQ5J,EAAUgjB,GAAY,IAAIrd,EAErL,SAAwB5F,EAAQC,GAAY,MAAQjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAA8D,QAAjDD,EAASmjB,EAAgBnjB,MAAuC,OAAOA,EAFOojB,CAAevZ,EAAQ5J,GAAW,GAAK2F,EAAL,CAAmB,IAAIyd,EAAOrkB,OAAOskB,yBAAyB1d,EAAM3F,GAAW,OAAIojB,EAAKlkB,IAAckkB,EAAKlkB,IAAIV,KAAKwkB,GAAoBI,EAAK9jB,SAAwBsK,EAAQ5J,EAAUgjB,GAAYpZ,GAIja,SAASsZ,EAAgBpkB,GAAwJ,OAAnJokB,EAAkBnkB,OAAO+X,eAAiB/X,OAAOwlB,eAAiB,SAAyBzlB,GAAK,OAAOA,EAAEiY,WAAahY,OAAOwlB,eAAezlB,KAA8BA,GAcxM,IAAI05C,EAAkB,IAAIptB,EAAwD,gBAAE,aAAc,OAAQ,CACxGjT,MAAOiT,EAA8C,MAAE5S,SAGrDigC,EAAyB,SAAU5d,GACrCzV,EAAUqzB,EAAW5d,GAErB,IAAI5jB,EAASsM,EAAak1B,GAE1B,SAASA,EAAUptC,EAAQ6M,EAAS5Y,GAClC,IAAI4K,EAMJ,OAJAV,EAAgBlJ,KAAMm4C,GAEtBvuC,EAAQ+M,EAAOzY,KAAK8B,KAAM+K,EAAQ6M,EAAS5Y,GAC3Ck5C,EAAgB7tC,IAAIT,EAAMgO,QAAS5Y,GAC5B4K,EA6CT,OA1CAshB,EAAaitB,EAAW,CAAC,CACvB74C,IAAK,SACLN,MAAO,SAAgBouB,EAASpuB,GAC1BouB,IAAY+qB,EAAUrtC,SACxB2X,EAAKG,EAAgBu1B,EAAUx4C,WAAY,SAAUK,MAAM9B,KAAK8B,KAAMotB,EAASpuB,GACtEA,EACTk5C,EAAgB7tC,IAAIrK,KAAK4X,QAAS5Y,IAElCk5C,EAAgBziC,OAAOzV,KAAK4X,SAC5B5X,KAAK4X,QAAQxN,UAAUqL,OAAOzV,KAAKga,QAAQ3L,cAG9C,CACD/O,IAAK,WACLN,MAAO,WAGL,IAFA,IAAIimB,EAEKb,EAAOta,UAAU5I,OAAQqT,EAAO,IAAI3T,MAAMwjB,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E9P,EAAK8P,GAAQva,UAAUua,IAGxBY,EAAQxC,EAAKG,EAAgBu1B,EAAUx4C,WAAY,WAAYK,OAAO9B,KAAKuU,MAAMwS,EAAO,CAACjlB,MAAMmE,OAAOoQ,IAElG2jC,EAAgBl5C,MAAMgB,KAAK4X,UAC9B5X,KAAKqc,YAGP,CAAC,CACH/c,IAAK,UACLN,MAAO,SAAiBqO,EAAMtC,GAC5B,KAAe,MAARsC,GAAgBA,IAAStC,EAAO6M,SAAS,CAC9C,GAAIvK,EAAKjD,WAAaiD,EAAKjD,UAAUoL,SAASuiC,EAA4D,EAAE1pC,WAC1G,OAAOoU,EAAKG,EAAgBu1B,GAAY,UAAWn4C,MAAM9B,KAAK8B,KAAMqN,EAAMtC,GAG5EsC,EAAOA,EAAKgK,gBAOX8gC,EAzDoB,CA0D3BV,EAA4D,GAE9DU,EAAUrtC,SAAW,aACrBqtC,EAAU9pC,UAAY,WAEtB,IAAIkpC,EAA+B,SAAUa,GAC3CtzB,EAAUyyB,EAAiBa,GAE3B,IAAI7sB,EAAUtI,EAAas0B,GAE3B,SAASA,IAGP,OAFAruC,EAAgBlJ,KAAMu3C,GAEfhsB,EAAQ9Y,MAAMzS,KAAM8J,WAwC7B,OArCAohB,EAAaqsB,EAAiB,CAAC,CAC7Bj4C,IAAK,SACLN,MACA,SAAgBV,EAAMU,GAChBV,IAAS0B,KAAKga,QAAQlP,UAAY9L,EACpCgB,KAAK4X,QAAQ/K,aAAa,gBAAiB7N,GAE3CyjB,EAAKG,EAAgB20B,EAAgB53C,WAAY,SAAUK,MAAM9B,KAAK8B,KAAM1B,EAAMU,KAGrF,CACDM,IAAK,cACLN,MAAO,SAAqBV,EAAMU,GAEhC,OADAgB,KAAK4Z,SAAS,EAAG5Z,KAAKkB,SAAUi3C,EAAUrtC,UAAU,GAC7C2X,EAAKG,EAAgB20B,EAAgB53C,WAAY,cAAeK,MAAM9B,KAAK8B,KAAM1B,EAAMU,MAE9F,CAAC,CACHM,IAAK,SACLN,MAAO,SAAgBA,GACrB,IAAI4Y,EAAU6K,EAAKG,EAAgB20B,GAAkB,SAAUv3C,MAAM9B,KAAK8B,KAAMhB,GAMhF,MAJqB,kBAAVA,GACT4Y,EAAQ/K,aAAa,gBAAiB7N,GAGjC4Y,IAER,CACDtY,IAAK,UACLN,MAAO,SAAiB4Y,GACtB,OAAOA,EAAQS,aAAa,kBAAoB,UAEjD,CACD/Y,IAAK,WACLN,MAAO,gBAGFu4C,EAhD0B,CAiDjCQ,EAA4D,GAE1DM,EAAwC,SAAUC,GACpDxzB,EAAUuzB,EAA0BC,GAEpC,IAAI9d,EAAUvX,EAAao1B,GAE3B,SAASA,IAGP,OAFAnvC,EAAgBlJ,KAAMq4C,GAEf7d,EAAQ/nB,MAAMzS,KAAM8J,WAoG7B,OAjGAohB,EAAamtB,EAA0B,CAAC,CACtC/4C,IAAK,SACLN,MAAO,WACLyjB,EAAKG,EAAgBy1B,EAAyB14C,WAAY,SAAUK,MAAM9B,KAAK8B,MAE/EA,KAAKu4C,WAAY,EACjBv4C,KAAK+K,OAAOytC,UAAUx4C,QAEvB,CACDV,IAAK,SACLN,MAAO,SAAgBV,EAAMU,GACvBV,IAASi5C,EAAgBzsC,WAC3B9K,KAAKu4C,WAAY,EACjBv4C,KAAKoa,SAASpY,SAAQ,SAAUkZ,GAC9BA,EAAMtL,OAAOtR,EAAMU,SAIxB,CACDM,IAAK,WACLN,MAAO,SAAkBuC,EAAOL,EAAQ5C,EAAMU,GACxCV,IAASi5C,EAAgBzsC,WAC3B9K,KAAKu4C,WAAY,GAGnB91B,EAAKG,EAAgBy1B,EAAyB14C,WAAY,WAAYK,MAAM9B,KAAK8B,KAAMuB,EAAOL,EAAQ5C,EAAMU,KAE7G,CACDM,IAAK,YACLN,MAAO,SAAmBy5C,GACxB,IAAI/pC,EAAS1O,KAETq3C,EAASvtC,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,IAAmBA,UAAU,GAC5E,GAA0B,MAAtB9J,KAAKoa,SAASlF,KAAlB,CACA,IAAIG,EAAQzU,MAAM+H,KAAK3I,KAAK4X,QAAQqD,YAAYnZ,QAAO,SAAUuL,GAC/D,OAAOA,IAASqB,EAAO4M,UAErBvN,EAAO,GAAG5J,OAAOkR,EAAMpT,KAAI,SAAUoL,GACvC,OAAOA,EAAKy2B,eACXt/B,KAAK,MAAO,MACX0uC,EAAWqE,EAAgBvnC,QAAQhQ,KAAKoa,SAASlF,KAAK0C,SAE1D,GAAIy/B,GAAUr3C,KAAKu4C,WAAav4C,KAAK04C,aAAe3qC,EAAM,CACxD,GAAIA,EAAK5D,OAAOjJ,OAAS,GAAwB,MAAnBlB,KAAK04C,WAAoB,CACrD,IAAIvkC,EAAWnU,KAAKoa,SAAS9X,QAAO,SAAUsB,EAAOsX,GACnD,OAAOtX,EAAMO,OAAO1F,OAAOk5C,EAA8D,EAArEl5C,CAAwEyc,GAAO,MAClG,IAAIzU,EAAiDgJ,GAEpD7L,EAAQ60C,EAAW1qC,EAAMmlC,GAE7B/+B,EAAS/P,KAAKR,GAAOtB,QAAO,SAAUf,EAAOikB,GAC3C,IAAIlkB,EAASkkB,EAAKlkB,OACdN,EAAawkB,EAAKxkB,WAEtB,OAAKM,GAEDN,GACFvC,OAAO0C,KAAKH,GAAYgB,SAAQ,SAAU4N,IACgC,IAApE,CAAC2nC,EAAgBzsC,SAAUqtC,EAAUrtC,UAAU3F,QAAQyK,IACzDlB,EAAOkL,SAASrY,EAAOD,EAAQsO,EAAQ5O,EAAW4O,OAKjDrO,EAAQD,GAVKC,IAWnB,GAGLvB,KAAK04C,WAAa3qC,EAClB/N,KAAKu4C,WAAY,MAGpB,CACDj5C,IAAK,OACLN,MAAO,SAAcuC,EAAOL,GAC1B,IAEIy3C,EADuB/wC,EADD5H,KAAKoa,SAAS9M,KAAK/L,GACkB,GAC1B,GAEjC2xC,EAAWyF,EAAYpB,EAAgBvnC,QAAQ2oC,EAAU/gC,SAAW,QACxE,MAAO,uBAAwBzT,OAAO+uC,EAAU,QAAS/uC,OAAOnE,KAAKq6B,KAAK94B,EAAOL,GAAS,cAE3F,CACD5B,IAAK,WACLN,MAAO,SAAkB4d,GAGvB,GAFA6F,EAAKG,EAAgBy1B,EAAyB14C,WAAY,WAAYK,MAAM9B,KAAK8B,KAAM4c,GAEpE,MAAf5c,KAAKwZ,QAAwC,MAAtBxZ,KAAKoa,SAASlF,MAA+B,MAAflV,KAAKsb,OAAgB,CAC5E,IAAI43B,EAAWqE,EAAgBvnC,QAAQhQ,KAAKoa,SAASlF,KAAK0C,SAEtDs7B,IAAalzC,KAAKsb,OAAOtc,QAC3BgB,KAAKsb,OAAOtc,MAAQk0C,QAMrBmF,EA5GmC,CA6G1CN,EAAuE,GAEzEM,EAAyBn8B,gBAAkB,CAACq7B,GAC5CA,EAAgBh9B,kBAAoB89B,EACpCd,EAAgBr7B,gBAAkB,CAACi8B,EAAWN,EAA4D,EAAGC,EAA0D,EAAGF,EAA2D,GAErO,IAAIJ,EAAsB,SAAUpa,GAClCtY,EAAU0yB,EAAQpa,GAElB,IAAIwb,EAAU31B,EAAau0B,GAE3B,SAASA,EAAOhzB,EAAO3a,GACrB,IAAIsF,EAMJ,GAJAjG,EAAgBlJ,KAAMw3C,GAIK,OAF3BroC,EAASypC,EAAQ16C,KAAK8B,KAAMwkB,EAAO3a,IAExBA,QAAQgvC,KACjB,MAAM,IAAIt0C,MAAM,6FAclB,OAXA4K,EAAO2pC,UAAY3pC,EAAOtF,QAAQivC,UAAUx2C,QAAO,SAAU8T,EAAMoU,GAGjE,OADApU,EADUoU,EAAMlrB,MACJ,EACL8W,IACN,IACHjH,EAAO4pC,cAAgB5pC,EAAO4pC,cAAcx5C,KAAKykB,EAAuB7U,IAExEA,EAAO6pC,eAEP7pC,EAAO8pC,YAEA9pC,EAsHT,OAnHA+b,EAAassB,EAAQ,CAAC,CACpBl4C,IAAK,eACLN,MAAO,WACL,IAAIiR,EAASjQ,KAEbA,KAAKwkB,MAAM9Y,GAAG+lC,EAA0D,EAAE9lC,OAAOga,mBAAmB,SAAUvU,GAC5G,GAAMA,aAAgBinC,EAAtB,CAEA,IAAIa,EAASjpC,EAAOuU,MAAMja,KAAKwpC,cAAcxlC,cAAc,UAE3D0B,EAAOpG,QAAQivC,UAAU92C,SAAQ,SAAUkgC,GACzC,IAAI5iC,EAAM4iC,EAAM5iC,IACZ65C,EAAQjX,EAAMiX,MACdC,EAASF,EAAOnF,cAAcxlC,cAAc,UAChD6qC,EAAOtV,YAAcqV,EACrBC,EAAOvsC,aAAa,QAASvN,GAC7B45C,EAAOr+B,YAAYu+B,MAGrBF,EAAO/0B,iBAAiB,UAAU,WAChC/S,EAAKxB,OAAO2nC,EAAgBzsC,SAAUouC,EAAOl6C,OAE7CiR,EAAOuU,MAAMja,KAAK0E,QAGlBgB,EAAOopC,UAAUjoC,GAAM,MAGN,MAAfA,EAAKkK,SACPlK,EAAKoK,SAAS09B,GAEV9nC,EAAKgJ,SAASlF,OAChBgkC,EAAOl6C,MAAQu4C,EAAgBvnC,QAAQoB,EAAKgJ,SAASlF,KAAK0C,iBAKjE,CACDtY,IAAK,YACLN,MAAO,WACL,IAAImR,EAASnQ,KAETs5C,EAAQ,KACZt5C,KAAKwkB,MAAM9Y,GAAG+lC,EAA0D,EAAE9lC,OAAOka,iBAAiB,WAChG0zB,aAAaD,GACbA,EAAQ7sB,YAAW,WACjBtc,EAAOkpC,YAEPC,EAAQ,OACPnpC,EAAOtG,QAAQ2vC,eAGrB,CACDl6C,IAAK,YACLN,MAAO,WACL,IAAIiT,EAASjS,KAEToR,EAAOtH,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,KAC3EiT,EAAQjT,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,IAAmBA,UAAU,GAC3E,IAAI9J,KAAKwkB,MAAMtZ,UAAU+C,UAAzB,CACAjO,KAAKwkB,MAAMhY,OAAOilC,EAA0D,EAAEriC,QAAQmE,MACtF,IAAIjE,EAAQtP,KAAKwkB,MAAMjV,eACnB4H,EAAgB,MAAR/F,EAAepR,KAAKwkB,MAAMzZ,OAAO+Q,YAAYu8B,GAA4B,CAACjnC,GACtF+F,EAAMnV,SAAQ,SAAU2H,GACtBA,EAAU0vC,UAAUpnC,EAAO8mC,cAAeh8B,MAE5C/c,KAAKwkB,MAAMhY,OAAOilC,EAA0D,EAAEriC,QAAQW,QAEzE,MAATT,GACFtP,KAAKwkB,MAAM1U,aAAaR,EAAOmiC,EAA0D,EAAEriC,QAAQW,WAGtG,CACDzQ,IAAK,gBACLN,MAAO,SAAuB+O,GAC5B,IAAImlC,EAAWppC,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,QAGnF,GAAiB,WAFjBopC,EAAWlzC,KAAK84C,UAAU5F,GAAYA,EAAW,SAG/C,OAAOz0C,OAAOq5C,EAA6D,EAApEr5C,CAAuEsP,GAAMuK,MAAM,MAAMhW,QAAO,SAAUsB,EAAOsB,EAAMlH,GAK5H,OAJU,IAANA,GACF4F,EAAM9C,OAAO,KAAM2G,EAAgB,GAAIswC,EAA4D,EAAEjtC,SAAUooC,IAG1GtvC,EAAM9C,OAAOoE,KACnB,IAAIuB,EAAiDgJ,GAG1D,IAAI9F,EAAY3J,KAAKwkB,MAAMja,KAAKwpC,cAAcxlC,cAAc,OAG5D,OAFA5E,EAAUS,UAAUC,IAAI0tC,EAA4D,EAAE1pC,WACtF1E,EAAUO,UAAYlK,KAAK6J,QAAQgvC,KAAKQ,UAAUnG,EAAUnlC,GAAM/O,MAC3DP,OAAOu5C,EAA2D,EAAlEv5C,CAAqEuB,KAAKwkB,MAAMzZ,OAAQpB,EAAW,CAAC,SAAU0D,EAAMzJ,GACzH,IAAI5E,EAAQk5C,EAAgBl5C,MAAMqO,GAElC,OAAIrO,EACK4E,EAAMT,SAAQ,IAAIsD,EAAiDgJ,GAAInO,OAAOsC,EAAM1C,SAAUuG,EAAgB,GAAI0wC,EAAUrtC,SAAU9L,KAGxI4E,IACL,CAAC,SAAUyJ,EAAMzJ,GACnB,OAAOyJ,EAAK6U,KAAK5J,MAAM,MAAMhW,QAAO,SAAU8T,EAAMqjC,EAAUz7C,GAE5D,OADU,IAANA,GAASoY,EAAKtV,OAAO,KAAM2G,EAAgB,GAAIswC,EAA4D,EAAEjtC,SAAUooC,IACpH98B,EAAKtV,OAAO24C,KAClB71C,KACD,IAAIoV,YAER,CAAC,CACH1Z,IAAK,WACLN,MAAO,WACLyyC,EAA0D,EAAE7jC,SAASuqC,GAAW,GAChF1G,EAA0D,EAAE7jC,SAAS2pC,GAAiB,GACtF9F,EAA0D,EAAE7jC,SAASyqC,GAA0B,OAI5Fb,EAjJiB,CAkJxBE,EAA2D,GAE7DF,EAAO9jC,SAAW,CAChBmlC,KACMp6C,OAAOw5C,EAAgE,EAAvEx5C,GACKgyB,OAAOooB,KAGT,KAETW,SAAU,IACVV,UAAW,CAAC,CACVx5C,IAAK,QACL65C,MAAO,SACN,CACD75C,IAAK,OACL65C,MAAO,QACN,CACD75C,IAAK,MACL65C,MAAO,OACN,CACD75C,IAAK,KACL65C,MAAO,MACN,CACD75C,IAAK,MACL65C,MAAO,OACN,CACD75C,IAAK,OACL65C,MAAO,QACN,CACD75C,IAAK,MACL65C,MAAO,YACN,CACD75C,IAAK,OACL65C,MAAO,QACN,CACD75C,IAAK,aACL65C,MAAO,cACN,CACD75C,IAAK,WACL65C,MAAO,YACN,CACD75C,IAAK,MACL65C,MAAO,OACN,CACD75C,IAAK,SACL65C,MAAO,UACN,CACD75C,IAAK,OACL65C,MAAO,QACN,CACD75C,IAAK,MACL65C,MAAO,UAOJ,SAASp7C,EAAQD,GAExB,IAAI47C,EAAO51C,KAAK41C,KACZC,EAAQ71C,KAAK61C,MAIjB57C,EAAOD,QAAU,SAAUy4C,GACzB,OAAOqD,MAAMrD,GAAYA,GAAY,GAAKA,EAAW,EAAIoD,EAAQD,GAAMnD,KAMlE,SAASx4C,EAAQD,EAASF,GAEjC,IAAIi8C,EAAWj8C,EAAoB,IAEnCG,EAAOD,QAAU,SAAUy4C,GACzB,GAAIsD,EAAStD,GAAW,MAAMztC,UAAU,6CACxC,OAAOtI,OAAO+1C,KAMT,SAASx4C,EAAQD,EAASF,GAEjC,IAAIk8C,EAAal8C,EAAoB,IACjCuoC,EAAoBvoC,EAAoB,IAE5CG,EAAOD,QAAUqoC,EAAoB,SAAUJ,GAC7C,MAAoB,iBAANA,GACZ,SAAUA,GACZ,IAAIgU,EAAUD,EAAW,UACzB,MAAyB,mBAAXC,GAAyBt7C,OAAOsnC,aAAegU,IAMxD,SAASh8C,EAAQD,EAASF,GAEjC,IAAI8yB,EAAS9yB,EAAoB,IAC7B+4C,EAAY/4C,EAAoB,IAGhC0hB,EAAQoR,EADC,uBACiBimB,EADjB,qBACmC,IAEhD54C,EAAOD,QAAUwhB,GAKV,SAASvhB,EAAQD,EAASF,GAEjC,IAAI8yB,EAAS9yB,EAAoB,IAEjCG,EAAOD,QAAU,SAAUwB,EAAKN,GAC9B,IAEEP,OAAOC,eAAegyB,EAAQpxB,EAAK,CAAEN,MAAOA,EAAO0I,cAAc,EAAMC,UAAU,IACjF,MAAOqC,GACP0mB,EAAOpxB,GAAON,EACd,OAAOA,IAMJ,SAASjB,EAAQD,EAASF,GAEjC,IAAIo8C,EAAcp8C,EAAoB,IAClCi8C,EAAWj8C,EAAoB,IAInCG,EAAOD,QAAU,SAAUy4C,GACzB,IAAIj3C,EAAM06C,EAAYzD,EAAU,UAChC,OAAOsD,EAASv6C,GAAOA,EAAMkB,OAAOlB,KAM/B,SAASvB,EAAQD,EAASF,GAEjC,IAAIqoC,EAASroC,EAAoB,IAC7Bi1B,EAAMj1B,EAAoB,IAE1BuD,EAAO8kC,EAAO,QAElBloC,EAAOD,QAAU,SAAUwB,GACzB,OAAO6B,EAAK7B,KAAS6B,EAAK7B,GAAOuzB,EAAIvzB,MAMhC,SAASvB,EAAQD,GAExBC,EAAOD,QAAU,IAKV,SAASC,EAAQD,EAASF,GAEjC,IAAIoyC,EAAcpyC,EAAoB,IAClCq8C,EAA6Br8C,EAAoB,KACjDkzC,EAA2BlzC,EAAoB,IAC/Cs8C,EAAkBt8C,EAAoB,IACtCuyC,EAAgBvyC,EAAoB,IACpCwZ,EAAMxZ,EAAoB,IAC1BqyC,EAAiBryC,EAAoB,IAGrCu8C,EAA4B17C,OAAOskB,yBAIvCjlB,EAAQuyC,EAAIL,EAAcmK,EAA4B,SAAkC7J,EAAGC,GAGzF,GAFAD,EAAI4J,EAAgB5J,GACpBC,EAAIJ,EAAcI,GACdN,EAAgB,IAClB,OAAOkK,EAA0B7J,EAAGC,GACpC,MAAOvmC,IACT,GAAIoN,EAAIk5B,EAAGC,GAAI,OAAOO,GAA0BmJ,EAA2B5J,EAAEnyC,KAAKoyC,EAAGC,GAAID,EAAEC,MAMtF,SAASxyC,EAAQD,EAASF,GAGjC,IAAIw8C,EAAgBx8C,EAAoB,KACpC04C,EAAyB14C,EAAoB,IAEjDG,EAAOD,QAAU,SAAUioC,GACzB,OAAOqU,EAAc9D,EAAuBvQ,MAMvC,SAAShoC,EAAQD,GAExB,IAAI4K,EAAW,GAAGA,SAElB3K,EAAOD,QAAU,SAAUioC,GACzB,OAAOr9B,EAASxK,KAAK6nC,GAAIrjC,MAAM,GAAI,KAM9B,SAAS3E,EAAQD,GAGxBC,EAAOD,QAAU,CACf,cACA,iBACA,gBACA,uBACA,iBACA,WACA,YAMK,SAASC,EAAQD,EAASF,GAEjC,aAEA,IAAImC,EAAmBC,MAAQA,KAAKD,iBAAoB,SAAUE,GAC9D,OAAQA,GAAOA,EAAId,WAAcc,EAAM,CAAE,QAAWA,IAExDxB,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtD,IACIiH,EADAo0C,EAAat6C,EAAgBnC,EAAoB,MAErD,SAAWqI,GAIPA,EAAGlD,SAHH,SAAkBpC,GACd,OAAO,IAAI05C,EAAW54C,QAAQd,IAclCsF,EAAG/E,OAXH,SAAgBmB,GACZ,MAAyB,kBAAdA,EAAGhB,OACHgB,EAAGhB,OAEgB,kBAAdgB,EAAGf,OACRe,EAAGf,OAGkB,kBAAde,EAAGvB,OAAsBuB,EAAGvB,OAAOI,OAAS,GAbtE,CAiBG+E,IAAOA,EAAK,KACfnI,EAAQ2D,QAAUwE,GAKX,SAASlI,EAAQD,EAASF,GAEjC,aAGA,IAAIwZ,EAAM3Y,OAAOkB,UAAUC,eACvBif,EAAS,IASb,SAASy7B,KA4BT,SAASC,EAAGC,EAAI59B,EAAShK,GACvB5S,KAAKw6C,GAAKA,EACVx6C,KAAK4c,QAAUA,EACf5c,KAAK4S,KAAOA,IAAQ,EActB,SAAS6nC,EAAY/vC,EAAS2a,EAAOm1B,EAAI59B,EAAShK,GAChD,GAAkB,oBAAP4nC,EACT,MAAM,IAAI1xC,UAAU,mCAGtB,IAAI4xC,EAAW,IAAIH,EAAGC,EAAI59B,GAAWlS,EAASkI,GAC1CkvB,EAAMjjB,EAASA,EAASwG,EAAQA,EAMpC,OAJK3a,EAAQiwC,QAAQ7Y,GACXp3B,EAAQiwC,QAAQ7Y,GAAK0Y,GAC1B9vC,EAAQiwC,QAAQ7Y,GAAO,CAACp3B,EAAQiwC,QAAQ7Y,GAAM4Y,GADhBhwC,EAAQiwC,QAAQ7Y,GAAK1gC,KAAKs5C,IADlChwC,EAAQiwC,QAAQ7Y,GAAO4Y,EAAUhwC,EAAQkwC,gBAI7DlwC,EAUT,SAASmwC,EAAWnwC,EAASo3B,GACI,MAAzBp3B,EAAQkwC,aAAoBlwC,EAAQiwC,QAAU,IAAIL,SAC5C5vC,EAAQiwC,QAAQ7Y,GAU9B,SAASgZ,IACP96C,KAAK26C,QAAU,IAAIL,EACnBt6C,KAAK46C,aAAe,EAxElBn8C,OAAOY,SACTi7C,EAAO36C,UAAYlB,OAAOY,OAAO,OAM5B,IAAIi7C,GAAS7jC,YAAWoI,GAAS,IA2ExCi8B,EAAan7C,UAAUo7C,WAAa,WAClC,IACIpvC,EACArN,EAFA08C,EAAQ,GAIZ,GAA0B,IAAtBh7C,KAAK46C,aAAoB,OAAOI,EAEpC,IAAK18C,KAASqN,EAAS3L,KAAK26C,QACtBvjC,EAAIlZ,KAAKyN,EAAQrN,IAAO08C,EAAM55C,KAAKyd,EAASvgB,EAAKoE,MAAM,GAAKpE,GAGlE,OAAIG,OAAOsoB,sBACFi0B,EAAM72C,OAAO1F,OAAOsoB,sBAAsBpb,IAG5CqvC,GAUTF,EAAan7C,UAAUolB,UAAY,SAAmBM,GACpD,IAAIyc,EAAMjjB,EAASA,EAASwG,EAAQA,EAChC41B,EAAWj7C,KAAK26C,QAAQ7Y,GAE5B,IAAKmZ,EAAU,MAAO,GACtB,GAAIA,EAAST,GAAI,MAAO,CAACS,EAAST,IAElC,IAAK,IAAIx8C,EAAI,EAAGC,EAAIg9C,EAAS/5C,OAAQg6C,EAAK,IAAIt6C,MAAM3C,GAAID,EAAIC,EAAGD,IAC7Dk9C,EAAGl9C,GAAKi9C,EAASj9C,GAAGw8C,GAGtB,OAAOU,GAUTJ,EAAan7C,UAAUw7C,cAAgB,SAAuB91B,GAC5D,IAAIyc,EAAMjjB,EAASA,EAASwG,EAAQA,EAChCN,EAAY/kB,KAAK26C,QAAQ7Y,GAE7B,OAAK/c,EACDA,EAAUy1B,GAAW,EAClBz1B,EAAU7jB,OAFM,GAYzB45C,EAAan7C,UAAU6U,KAAO,SAAc6Q,EAAO+1B,EAAIC,EAAIC,EAAIC,EAAIC,GACjE,IAAI1Z,EAAMjjB,EAASA,EAASwG,EAAQA,EAEpC,IAAKrlB,KAAK26C,QAAQ7Y,GAAM,OAAO,EAE/B,IAEIvtB,EACAvW,EAHA+mB,EAAY/kB,KAAK26C,QAAQ7Y,GACzB94B,EAAMc,UAAU5I,OAIpB,GAAI6jB,EAAUy1B,GAAI,CAGhB,OAFIz1B,EAAUnS,MAAM5S,KAAKy7C,eAAep2B,EAAON,EAAUy1B,QAAIzwC,GAAW,GAEhEf,GACN,KAAK,EAAG,OAAO+b,EAAUy1B,GAAGt8C,KAAK6mB,EAAUnI,UAAU,EACrD,KAAK,EAAG,OAAOmI,EAAUy1B,GAAGt8C,KAAK6mB,EAAUnI,QAASw+B,IAAK,EACzD,KAAK,EAAG,OAAOr2B,EAAUy1B,GAAGt8C,KAAK6mB,EAAUnI,QAASw+B,EAAIC,IAAK,EAC7D,KAAK,EAAG,OAAOt2B,EAAUy1B,GAAGt8C,KAAK6mB,EAAUnI,QAASw+B,EAAIC,EAAIC,IAAK,EACjE,KAAK,EAAG,OAAOv2B,EAAUy1B,GAAGt8C,KAAK6mB,EAAUnI,QAASw+B,EAAIC,EAAIC,EAAIC,IAAK,EACrE,KAAK,EAAG,OAAOx2B,EAAUy1B,GAAGt8C,KAAK6mB,EAAUnI,QAASw+B,EAAIC,EAAIC,EAAIC,EAAIC,IAAK,EAG3E,IAAKx9C,EAAI,EAAGuW,EAAO,IAAI3T,MAAMoI,EAAK,GAAIhL,EAAIgL,EAAKhL,IAC7CuW,EAAKvW,EAAI,GAAK8L,UAAU9L,GAG1B+mB,EAAUy1B,GAAG/nC,MAAMsS,EAAUnI,QAASrI,OACjC,CACL,IACImnC,EADAx6C,EAAS6jB,EAAU7jB,OAGvB,IAAKlD,EAAI,EAAGA,EAAIkD,EAAQlD,IAGtB,OAFI+mB,EAAU/mB,GAAG4U,MAAM5S,KAAKy7C,eAAep2B,EAAON,EAAU/mB,GAAGw8C,QAAIzwC,GAAW,GAEtEf,GACN,KAAK,EAAG+b,EAAU/mB,GAAGw8C,GAAGt8C,KAAK6mB,EAAU/mB,GAAG4e,SAAU,MACpD,KAAK,EAAGmI,EAAU/mB,GAAGw8C,GAAGt8C,KAAK6mB,EAAU/mB,GAAG4e,QAASw+B,GAAK,MACxD,KAAK,EAAGr2B,EAAU/mB,GAAGw8C,GAAGt8C,KAAK6mB,EAAU/mB,GAAG4e,QAASw+B,EAAIC,GAAK,MAC5D,KAAK,EAAGt2B,EAAU/mB,GAAGw8C,GAAGt8C,KAAK6mB,EAAU/mB,GAAG4e,QAASw+B,EAAIC,EAAIC,GAAK,MAChE,QACE,IAAK/mC,EAAM,IAAKmnC,EAAI,EAAGnnC,EAAO,IAAI3T,MAAMoI,EAAK,GAAI0yC,EAAI1yC,EAAK0yC,IACxDnnC,EAAKmnC,EAAI,GAAK5xC,UAAU4xC,GAG1B32B,EAAU/mB,GAAGw8C,GAAG/nC,MAAMsS,EAAU/mB,GAAG4e,QAASrI,IAKpD,OAAO,GAYTumC,EAAan7C,UAAU+L,GAAK,SAAY2Z,EAAOm1B,EAAI59B,GACjD,OAAO69B,EAAYz6C,KAAMqlB,EAAOm1B,EAAI59B,GAAS,IAY/Ck+B,EAAan7C,UAAUiT,KAAO,SAAcyS,EAAOm1B,EAAI59B,GACrD,OAAO69B,EAAYz6C,KAAMqlB,EAAOm1B,EAAI59B,GAAS,IAa/Ck+B,EAAan7C,UAAU87C,eAAiB,SAAwBp2B,EAAOm1B,EAAI59B,EAAShK,GAClF,IAAIkvB,EAAMjjB,EAASA,EAASwG,EAAQA,EAEpC,IAAKrlB,KAAK26C,QAAQ7Y,GAAM,OAAO9hC,KAC/B,IAAKw6C,EAEH,OADAK,EAAW76C,KAAM8hC,GACV9hC,KAGT,IAAI+kB,EAAY/kB,KAAK26C,QAAQ7Y,GAE7B,GAAI/c,EAAUy1B,GAEVz1B,EAAUy1B,KAAOA,GACf5nC,IAAQmS,EAAUnS,MAClBgK,GAAWmI,EAAUnI,UAAYA,GAEnCi+B,EAAW76C,KAAM8hC,OAEd,CACL,IAAK,IAAI9jC,EAAI,EAAG2N,EAAS,GAAIzK,EAAS6jB,EAAU7jB,OAAQlD,EAAIkD,EAAQlD,KAEhE+mB,EAAU/mB,GAAGw8C,KAAOA,GACnB5nC,IAASmS,EAAU/mB,GAAG4U,MACtBgK,GAAWmI,EAAU/mB,GAAG4e,UAAYA,IAErCjR,EAAOvK,KAAK2jB,EAAU/mB,IAOtB2N,EAAOzK,OAAQlB,KAAK26C,QAAQ7Y,GAAyB,IAAlBn2B,EAAOzK,OAAeyK,EAAO,GAAKA,EACpEkvC,EAAW76C,KAAM8hC,GAGxB,OAAO9hC,MAUT86C,EAAan7C,UAAUg8C,mBAAqB,SAA4Bt2B,GACtE,IAAIyc,EAUJ,OARIzc,GACFyc,EAAMjjB,EAASA,EAASwG,EAAQA,EAC5BrlB,KAAK26C,QAAQ7Y,IAAM+Y,EAAW76C,KAAM8hC,KAExC9hC,KAAK26C,QAAU,IAAIL,EACnBt6C,KAAK46C,aAAe,GAGf56C,MAMT86C,EAAan7C,UAAU6S,IAAMsoC,EAAan7C,UAAU87C,eACpDX,EAAan7C,UAAU86C,YAAcK,EAAan7C,UAAU+L,GAK5DovC,EAAac,SAAW/8B,EAKxBi8B,EAAaA,aAAeA,EAM1B/8C,EAAOD,QAAUg9C,GAMZ,SAAS/8C,EAAQD,EAASF,GAGjC,IAAIsoC,EAAgBtoC,EAAoB,IAExCG,EAAOD,QAAUooC,IACXpnC,OAAOukB,MACkB,iBAAnBvkB,OAAOiE,UAKZ,SAAShF,EAAQD,EAASF,GAGjC,IAAIi+C,EAAaj+C,EAAoB,IACjCmzC,EAAQnzC,EAAoB,IAGhCG,EAAOD,UAAYW,OAAOsoB,wBAA0BgqB,GAAM,WACxD,IAAI3Z,EAASt4B,SAGb,OAAQ0B,OAAO42B,MAAa34B,OAAO24B,aAAmBt4B,UAEnDA,OAAOukB,MAAQw4B,GAAcA,EAAa,OAMxC,SAAS99C,EAAQD,EAASF,GAEjC,IAWI0M,EAAK1L,EAAKwY,EAXV0kC,EAAkBl+C,EAAoB,IACtC8yB,EAAS9yB,EAAoB,IAC7Bw4B,EAAWx4B,EAAoB,IAC/B64C,EAA8B74C,EAAoB,IAClDm+C,EAAYn+C,EAAoB,IAChCqoC,EAASroC,EAAoB,IAC7Bo+C,EAAYp+C,EAAoB,IAChCq+C,EAAar+C,EAAoB,IAGjCob,EAAU0X,EAAO1X,QAgBrB,GAAI8iC,GAAmB7V,EAAOiW,MAAO,CACnC,IAAI58B,EAAQ2mB,EAAOiW,QAAUjW,EAAOiW,MAAQ,IAAIljC,GAC5CmjC,EAAQ78B,EAAM1gB,IACdw9C,EAAQ98B,EAAMlI,IACdilC,EAAQ/8B,EAAMhV,IAClBA,EAAM,SAAUy7B,EAAIuW,GAClB,GAAIF,EAAMl+C,KAAKohB,EAAOymB,GAAK,MAAM,IAAIj9B,UAvBR,8BA0B7B,OAFAwzC,EAASC,OAASxW,EAClBsW,EAAMn+C,KAAKohB,EAAOymB,EAAIuW,GACfA,GAET19C,EAAM,SAAUmnC,GACd,OAAOoW,EAAMj+C,KAAKohB,EAAOymB,IAAO,IAElC3uB,EAAM,SAAU2uB,GACd,OAAOqW,EAAMl+C,KAAKohB,EAAOymB,QAEtB,CACL,IAAIyW,EAAQR,EAAU,SACtBC,EAAWO,IAAS,EACpBlyC,EAAM,SAAUy7B,EAAIuW,GAClB,GAAIP,EAAUhW,EAAIyW,GAAQ,MAAM,IAAI1zC,UAtCP,8BAyC7B,OAFAwzC,EAASC,OAASxW,EAClB0Q,EAA4B1Q,EAAIyW,EAAOF,GAChCA,GAET19C,EAAM,SAAUmnC,GACd,OAAOgW,EAAUhW,EAAIyW,GAASzW,EAAGyW,GAAS,IAE5CplC,EAAM,SAAU2uB,GACd,OAAOgW,EAAUhW,EAAIyW,IAIzBz+C,EAAOD,QAAU,CACfwM,IAAKA,EACL1L,IAAKA,EACLwY,IAAKA,EACLqlC,QAnDY,SAAU1W,GACtB,OAAO3uB,EAAI2uB,GAAMnnC,EAAImnC,GAAMz7B,EAAIy7B,EAAI,KAmDnC2W,UAhDc,SAAUjkC,GACxB,OAAO,SAAUstB,GACf,IAAImW,EACJ,IAAK9lB,EAAS2P,KAAQmW,EAAQt9C,EAAImnC,IAAKl6B,OAAS4M,EAC9C,MAAM3P,UAAU,0BAA4B2P,EAAO,aACnD,OAAOyjC,MAiDN,SAASn+C,EAAQD,EAASF,GAEjC,IAAI0hB,EAAQ1hB,EAAoB,IAE5B++C,EAAmBrrB,SAAS5oB,SAGE,mBAAvB4W,EAAMs9B,gBACft9B,EAAMs9B,cAAgB,SAAU7W,GAC9B,OAAO4W,EAAiBz+C,KAAK6nC,KAIjChoC,EAAOD,QAAUwhB,EAAMs9B,eAKhB,SAAS7+C,EAAQD,EAASF,GAEjC,IAAIoyC,EAAcpyC,EAAoB,IAClCmzC,EAAQnzC,EAAoB,IAC5B2Q,EAAgB3Q,EAAoB,IAGxCG,EAAOD,SAAWkyC,IAAgBe,GAAM,WAEtC,OAEQ,GAFDtyC,OAAOC,eAAe6P,EAAc,OAAQ,IAAK,CACtD3P,IAAK,WAAc,OAAO,KACzB6Q,MAME,SAAS1R,EAAQD,EAASF,GAEjC,IAAI8yB,EAAS9yB,EAAoB,IAC7Bw4B,EAAWx4B,EAAoB,IAE/B0Q,EAAWoiB,EAAOpiB,SAElBuuC,EAASzmB,EAAS9nB,IAAa8nB,EAAS9nB,EAASC,eAErDxQ,EAAOD,QAAU,SAAUioC,GACzB,OAAO8W,EAASvuC,EAASC,cAAcw3B,GAAM,KAMxC,SAAShoC,EAAQD,EAASF,GAEjC,IAAIk/C,EAAUl/C,EAAoB,IAC9B0hB,EAAQ1hB,EAAoB,KAE/BG,EAAOD,QAAU,SAAUwB,EAAKN,GAC/B,OAAOsgB,EAAMhgB,KAASggB,EAAMhgB,QAAiByK,IAAV/K,EAAsBA,EAAQ,MAChE,WAAY,IAAIoC,KAAK,CACtBwT,QAAS,SACT1V,KAAM49C,EAAU,OAAS,SACzBC,UAAW,6CAMN,SAASh/C,EAAQD,GAExB,IAAIk/C,EAAK,EACLC,EAAUn5C,KAAKo5C,SAEnBn/C,EAAOD,QAAU,SAAUwB,GACzB,MAAO,UAAYkB,YAAeuJ,IAARzK,EAAoB,GAAKA,GAAO,QAAU09C,EAAKC,GAASv0C,SAAS,MAMtF,SAAS3K,EAAQD,EAASF,GAEjC,IAAI8yB,EAAS9yB,EAAoB,IAC7B64C,EAA8B74C,EAAoB,IAClDwZ,EAAMxZ,EAAoB,IAC1B+4C,EAAY/4C,EAAoB,IAChCg/C,EAAgBh/C,EAAoB,IACpCu/C,EAAsBv/C,EAAoB,IAE1Cw/C,EAAmBD,EAAoBv+C,IACvCy+C,EAAuBF,EAAoBV,QAC3Ca,EAAW98C,OAAOA,QAAQ8X,MAAM,WAEnCva,EAAOD,QAAU,SAAUwyC,EAAGhxC,EAAKN,EAAO6K,GACzC,IAGIqyC,EAHAqB,IAAS1zC,KAAYA,EAAQ0zC,OAC7BC,IAAS3zC,KAAYA,EAAQlL,WAC7By4C,IAAcvtC,KAAYA,EAAQutC,YAElB,mBAATp4C,IACS,iBAAPM,GAAoB8X,EAAIpY,EAAO,SACxCy3C,EAA4Bz3C,EAAO,OAAQM,IAE7C48C,EAAQmB,EAAqBr+C,IAClBgN,SACTkwC,EAAMlwC,OAASsxC,EAAS94C,KAAmB,iBAAPlF,EAAkBA,EAAM,MAG5DgxC,IAAM5f,GAIE6sB,GAEAnG,GAAe9G,EAAEhxC,KAC3Bk+C,GAAS,UAFFlN,EAAEhxC,GAIPk+C,EAAQlN,EAAEhxC,GAAON,EAChBy3C,EAA4BnG,EAAGhxC,EAAKN,IATnCw+C,EAAQlN,EAAEhxC,GAAON,EAChB23C,EAAUr3C,EAAKN,KAUrBsyB,SAAS3xB,UAAW,YAAY,WACjC,MAAsB,mBAARK,MAAsBo9C,EAAiBp9C,MAAMgM,QAAU4wC,EAAc58C,UAM9E,SAASjC,EAAQD,EAASF,GAEjC,IAAIwZ,EAAMxZ,EAAoB,IAC1Bs8C,EAAkBt8C,EAAoB,IACtCuH,EAAUvH,EAAoB,KAAKuH,QACnC82C,EAAar+C,EAAoB,IAErCG,EAAOD,QAAU,SAAU2B,EAAQu7C,GACjC,IAGI17C,EAHAgxC,EAAI4J,EAAgBz6C,GACpBzB,EAAI,EACJ0lB,EAAS,GAEb,IAAKpkB,KAAOgxC,GAAIl5B,EAAI6kC,EAAY38C,IAAQ8X,EAAIk5B,EAAGhxC,IAAQokB,EAAOtiB,KAAK9B,GAEnE,KAAO07C,EAAM95C,OAASlD,GAAOoZ,EAAIk5B,EAAGhxC,EAAM07C,EAAMh9C,SAC7CmH,EAAQue,EAAQpkB,IAAQokB,EAAOtiB,KAAK9B,IAEvC,OAAOokB,IAMF,SAAS3lB,EAAQD,EAASF,GAEjC,IAAI05C,EAAY15C,EAAoB,IAEhC0V,EAAMxP,KAAKwP,IACXvP,EAAMD,KAAKC,IAKfhG,EAAOD,QAAU,SAAUyD,EAAOL,GAChC,IAAIu8C,EAAUnG,EAAU/1C,GACxB,OAAOk8C,EAAU,EAAInqC,EAAImqC,EAAUv8C,EAAQ,GAAK6C,EAAI05C,EAASv8C,KAMxD,SAASnD,EAAQD,EAASF,GAEjC,aAEA,IAcI8/C,EAAmBC,EAAmCC,EAdtD7M,EAAQnzC,EAAoB,IAC5BqmB,EAAiBrmB,EAAoB,IACrC64C,EAA8B74C,EAAoB,IAClDwZ,EAAMxZ,EAAoB,IAC1BigD,EAAkBjgD,EAAoB,IACtCk/C,EAAUl/C,EAAoB,IAE9BkgD,EAAWD,EAAgB,YAC3BE,GAAyB,EASzB,GAAG58C,OAGC,SAFNy8C,EAAgB,GAAGz8C,SAIjBw8C,EAAoC15B,EAAeA,EAAe25B,OACxBn/C,OAAOkB,YAAW+9C,EAAoBC,GAHlDI,GAAyB,GAO3D,IAAIC,OAA8Cj0C,GAArB2zC,GAAkC3M,GAAM,WACnE,IAAInoC,EAAO,GAEX,OAAO80C,EAAkBI,GAAU5/C,KAAK0K,KAAUA,KAGhDo1C,IAAwBN,EAAoB,IAI1CZ,IAAWkB,GAA4B5mC,EAAIsmC,EAAmBI,IAClErH,EAA4BiH,EAAmBI,GA5BhC,WAAc,OAAO99C,QA+BtCjC,EAAOD,QAAU,CACf4/C,kBAAmBA,EACnBK,uBAAwBA,IAMnB,SAAShgD,EAAQD,EAASF,GAEjC,IAAIwZ,EAAMxZ,EAAoB,IAC1BysC,EAAWzsC,EAAoB,IAC/Bo+C,EAAYp+C,EAAoB,IAChCqgD,EAA2BrgD,EAAoB,KAE/Cm1B,EAAWipB,EAAU,YACrBkC,EAAkBz/C,OAAOkB,UAK7B5B,EAAOD,QAAUmgD,EAA2Bx/C,OAAOwlB,eAAiB,SAAUqsB,GAE5E,OADAA,EAAIjG,EAASiG,GACTl5B,EAAIk5B,EAAGvd,GAAkBud,EAAEvd,GACH,mBAAjBud,EAAE9oC,aAA6B8oC,aAAaA,EAAE9oC,YAChD8oC,EAAE9oC,YAAY7H,UACd2wC,aAAa7xC,OAASy/C,EAAkB,OAM5C,SAASngD,EAAQD,EAASF,GAGjC,IAqDIugD,EArDAjO,EAAWtyC,EAAoB,IAC/BwpB,EAAmBxpB,EAAoB,KACvCwgD,EAAcxgD,EAAoB,IAClCq+C,EAAar+C,EAAoB,IACjCqM,EAAOrM,EAAoB,KAC3BygD,EAAwBzgD,EAAoB,IAC5Co+C,EAAYp+C,EAAoB,IAMhCm1B,EAAWipB,EAAU,YAErBsC,EAAmB,aAEnBC,EAAY,SAAUC,GACxB,MAAOC,WAAmBD,EAAnBC,cAILC,EAA4B,SAAUP,GACxCA,EAAgBQ,MAAMJ,EAAU,KAChCJ,EAAgBS,QAChB,IAAIC,EAAOV,EAAgBW,aAAargD,OAExC,OADA0/C,EAAkB,KACXU,GA4BLE,EAAkB,WACpB,IACEZ,EAAkB,IAAIa,cAAc,YACpC,MAAOh1C,IACT+0C,EAAkBzwC,SAAS2wC,QAAUd,EACnCO,EAA0BP,GA7BC,WAE7B,IAEIe,EAFAC,EAASd,EAAsB,UAGnC,GAAIc,EAAO//B,MAST,OARA+/B,EAAO//B,MAAMggC,QAAU,OACvBn1C,EAAK4Q,YAAYskC,GAEjBA,EAAOE,IAAM7+C,OANN,gBAOP0+C,EAAiBC,EAAOG,cAAchxC,UACvBixC,OACfL,EAAeP,MAAMJ,EAAU,sBAC/BW,EAAeN,QACRM,EAAeM,EAgBtBC,IACAf,EAA0BP,GAE5B,IADA,IAAIj9C,EAASk9C,EAAYl9C,OAClBA,YAAiB69C,EAAyB,UAAEX,EAAYl9C,IAC/D,OAAO69C,KAGT9C,EAAWlpB,IAAY,EAIvBh1B,EAAOD,QAAUW,OAAOY,QAAU,SAAgBixC,EAAGoP,GACnD,IAAIh8B,EAQJ,OAPU,OAAN4sB,GACFgO,EAA0B,UAAIpO,EAASI,GACvC5sB,EAAS,IAAI46B,EACbA,EAA0B,UAAI,KAE9B56B,EAAOqP,GAAYud,GACd5sB,EAASq7B,SACMh1C,IAAf21C,EAA2Bh8B,EAAS0D,EAAiB1D,EAAQg8B,KAM/D,SAAS3hD,EAAQD,EAASF,GAEjC,IAAIc,EAAiBd,EAAoB,IAAIyyC,EACzCj5B,EAAMxZ,EAAoB,IAG1B+hD,EAFkB/hD,EAAoB,GAEtBigD,CAAgB,eAEpC9/C,EAAOD,QAAU,SAAUioC,EAAI6Z,EAAK1I,GAC9BnR,IAAO3uB,EAAI2uB,EAAKmR,EAASnR,EAAKA,EAAGpmC,UAAWggD,IAC9CjhD,EAAeqnC,EAAI4Z,EAAe,CAAEj4C,cAAc,EAAM1I,MAAO4gD,MAO5D,SAAS7hD,EAAQD,EAASF,GAEjC,IAAIw4C,EAAYx4C,EAAoB,KAGpCG,EAAOD,QAAU,SAAU08C,EAAIqF,EAAM3+C,GAEnC,GADAk1C,EAAUoE,QACGzwC,IAAT81C,EAAoB,OAAOrF,EAC/B,OAAQt5C,GACN,KAAK,EAAG,OAAO,WACb,OAAOs5C,EAAGt8C,KAAK2hD,IAEjB,KAAK,EAAG,OAAO,SAAUpwC,GACvB,OAAO+qC,EAAGt8C,KAAK2hD,EAAMpwC,IAEvB,KAAK,EAAG,OAAO,SAAUA,EAAG8G,GAC1B,OAAOikC,EAAGt8C,KAAK2hD,EAAMpwC,EAAG8G,IAE1B,KAAK,EAAG,OAAO,SAAU9G,EAAG8G,EAAGnY,GAC7B,OAAOo8C,EAAGt8C,KAAK2hD,EAAMpwC,EAAG8G,EAAGnY,IAG/B,OAAO,WACL,OAAOo8C,EAAG/nC,MAAMotC,EAAM/1C,cAOnB,SAAS/L,EAAQD,EAASF,GAEjC,IAAI8yB,EAAS9yB,EAAoB,IAC7B2B,EAAO3B,EAAoB,IAE3BM,EAAOozB,SAASpzB,KAEpBH,EAAOD,QAAU,SAAUgiD,EAAaC,EAAQ7+C,GAC9C,OAAO3B,EAAKrB,EAAMwyB,EAAOovB,GAAangD,UAAUogD,GAAS7+C,KAMpD,SAASnD,EAAQoI,EAAqBvI,GAE7C,aAEAA,EAAoBiB,EAAEsH,GAGXvI,EAAoB,IAGpBA,EAAoB,KAGfA,EAAoB,KANpC,IAeIoiD,EAAOpiD,EAAoB,IAG3BqiD,EAAQriD,EAAoB,IAG5BsiD,EAAYtiD,EAAoB,IAGhCiX,EAAYjX,EAAoB,GAGpC,SAAS0J,EAAQC,GAAmV,OAAtOD,EAArD,oBAAXxI,QAAoD,kBAApBA,OAAOiE,SAAmC,SAAiBwE,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXzI,QAAyByI,EAAIC,cAAgB1I,QAAUyI,IAAQzI,OAAOa,UAAY,gBAAkB4H,IAAyBA,GAEnX,SAAS2B,EAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIN,UAAU,qCAEhH,SAASO,EAAkBC,EAAQC,GAAS,IAAK,IAAIvL,EAAI,EAAGA,EAAIuL,EAAMrI,OAAQlD,IAAK,CAAE,IAAIwL,EAAaD,EAAMvL,GAAIwL,EAAW7K,WAAa6K,EAAW7K,aAAc,EAAO6K,EAAW9B,cAAe,EAAU,UAAW8B,IAAYA,EAAW7B,UAAW,GAAMlJ,OAAOC,eAAe4K,EAAQE,EAAWlK,IAAKkK,IAI7S,SAASiZ,EAAKnZ,EAAQ5J,EAAUgjB,GAAuV,OAAtRD,EAA9B,qBAAZE,SAA2BA,QAAQ/jB,IAAc+jB,QAAQ/jB,IAAqB,SAAc0K,EAAQ5J,EAAUgjB,GAAY,IAAIrd,EAErL,SAAwB5F,EAAQC,GAAY,MAAQjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAA8D,QAAjDD,EAASmjB,EAAgBnjB,MAAuC,OAAOA,EAFOojB,CAAevZ,EAAQ5J,GAAW,GAAK2F,EAAL,CAAmB,IAAIyd,EAAOrkB,OAAOskB,yBAAyB1d,EAAM3F,GAAW,OAAIojB,EAAKlkB,IAAckkB,EAAKlkB,IAAIV,KAAKwkB,GAAoBI,EAAK9jB,SAAwBsK,EAAQ5J,EAAUgjB,GAAYpZ,GAMja,SAAS0Z,EAAgBxkB,EAAGqB,GAA+G,OAA1GmjB,EAAkBvkB,OAAO+X,gBAAkB,SAAyBhY,EAAGqB,GAAsB,OAAjBrB,EAAEiY,UAAY5W,EAAUrB,IAA6BA,EAAGqB,GAErK,SAASojB,EAAaC,GAAW,IAAIC,EAMrC,WAAuC,GAAuB,qBAAZR,UAA4BA,QAAQS,UAAW,OAAO,EAAO,GAAIT,QAAQS,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQ5jB,UAAU6jB,QAAQtlB,KAAKykB,QAAQS,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAOvI,GAAK,OAAO,GAN9PyI,GAA6B,OAAO,WAAkC,IAAsCC,EAAlCC,EAAQf,EAAgBM,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYhB,EAAgB5iB,MAAMwH,YAAakc,EAASf,QAAQS,UAAUO,EAAO7Z,UAAW8Z,QAAqBF,EAASC,EAAMlR,MAAMzS,KAAM8J,WAAc,OAAO+Z,EAA2B7jB,KAAM0jB,IAE5Z,SAASG,EAA2BC,EAAM5lB,GAAQ,OAAIA,GAA2B,WAAlBoJ,EAAQpJ,IAAsC,oBAATA,EAEpG,SAAgC4lB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,EAFbE,CAAuBF,GAAtC5lB,EAMnI,SAAS0kB,EAAgBpkB,GAAwJ,OAAnJokB,EAAkBnkB,OAAO+X,eAAiB/X,OAAOwlB,eAAiB,SAAyBzlB,GAAK,OAAOA,EAAEiY,WAAahY,OAAOwlB,eAAezlB,KAA8BA,GAIxM,IA6CiC+qB,EAJf,IAzCkB,SAAU42B,IAhB9C,SAAmBv7B,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/b,UAAU,sDAAyD8b,EAASjlB,UAAYlB,OAAOY,OAAOwlB,GAAcA,EAAWllB,UAAW,CAAE6H,YAAa,CAAExI,MAAO4lB,EAAUjd,UAAU,EAAMD,cAAc,KAAemd,GAAY7B,EAAgB4B,EAAUC,GAiBjXC,CAAUs7B,EAAkBD,GAE5B,IAzBoB/2C,EAAa6D,EAAYC,EAyBzCyJ,EAASsM,EAAam9B,GAE1B,SAASA,IAGP,OAFAl3C,EAAgBlJ,KAAMogD,GAEfzpC,EAAOlE,MAAMzS,KAAM8J,WA8B5B,OA5DoBV,EAiCPg3C,GAjCoBnzC,EAiCF,CAAC,CAC9B3N,IAAK,MACLN,MAAO,SAAaqO,EAAMrO,GACxB,GAAc,OAAVA,GAA4B,OAAVA,EAAgB,CACpC,IAAIuqB,EAASvpB,KAAKhB,MAAMqO,IAAS,EACjCrO,EAAkB,OAAVA,EAAiBuqB,EAAS,EAAIA,EAAS,EAGjD,OAAc,IAAVvqB,GACFgB,KAAKyV,OAAOpI,IACL,GAGFoV,EAAKG,EAAgBw9B,EAAiBzgD,WAAY,MAAOK,MAAM9B,KAAK8B,KAAMqN,EAAMrO,KAExF,CACDM,IAAK,SACLN,MAAO,SAAgBqO,EAAMrO,GAC3B,OAAOyjB,EAAKG,EAAgBw9B,EAAiBzgD,WAAY,SAAUK,MAAM9B,KAAK8B,KAAMqN,EAAMrO,IAAUyjB,EAAKG,EAAgBw9B,EAAiBzgD,WAAY,SAAUK,MAAM9B,KAAK8B,KAAMqN,EAAM8L,SAASna,EAAO,OAExM,CACDM,IAAK,QACLN,MAAO,SAAeqO,GACpB,OAAO8L,SAASsJ,EAAKG,EAAgBw9B,EAAiBzgD,WAAY,QAASK,MAAM9B,KAAK8B,KAAMqN,GAAO,UAAOtD,OAxDlCV,EAAkBD,EAAYzJ,UAAWsN,GAAiBC,GAAa7D,EAAkBD,EAAa8D,GA4D3KkzC,EAtC2B,CAuClCvrC,EAA2B,iBAEX,CAAqB,SAAU,YAAa,CAC5DgD,MAAOhD,EAAiB,MAAEnF,MAC1B2O,UAAW,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,KAI/BpG,EAAQra,EAAoB,GAGhC,SAASyiD,EAAkB94C,GAAuW,OAA1P84C,EAArD,oBAAXvhD,QAAoD,kBAApBA,OAAOiE,SAA6C,SAAiBwE,GAAO,cAAcA,GAAqC,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXzI,QAAyByI,EAAIC,cAAgB1I,QAAUyI,IAAQzI,OAAOa,UAAY,gBAAkB4H,IAAmCA,GAE3Z,SAAS+4C,EAA0Bn3C,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIN,UAAU,qCAI1H,SAASy3C,EAA0B/hD,EAAGqB,GAAyH,OAApH0gD,EAA4B9hD,OAAO+X,gBAAkB,SAAyBhY,EAAGqB,GAAsB,OAAjBrB,EAAEiY,UAAY5W,EAAUrB,IAAuCA,EAAGqB,GAEnM,SAAS2gD,EAAuBt9B,GAAW,IAAIC,EAM/C,WAAiD,GAAuB,qBAAZR,UAA4BA,QAAQS,UAAW,OAAO,EAAO,GAAIT,QAAQS,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQ5jB,UAAU6jB,QAAQtlB,KAAKykB,QAAQS,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAOvI,GAAK,OAAO,GAN9PylC,GAAuC,OAAO,WAAkC,IAAgD/8B,EAA5CC,EAAQ+8B,EAA0Bx9B,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAY88B,EAA0B1gD,MAAMwH,YAAakc,EAASf,QAAQS,UAAUO,EAAO7Z,UAAW8Z,QAAqBF,EAASC,EAAMlR,MAAMzS,KAAM8J,WAAc,OAAO62C,EAAqC3gD,KAAM0jB,IAE9c,SAASi9B,EAAqC78B,EAAM5lB,GAAQ,OAAIA,GAAqC,WAA5BmiD,EAAkBniD,IAAsC,oBAATA,EAExH,SAA0C4lB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,EAFH88B,CAAiC98B,GAAhD5lB,EAMvJ,SAASwiD,EAA0BliD,GAAkK,OAA7JkiD,EAA4BjiD,OAAO+X,eAAiB/X,OAAOwlB,eAAiB,SAAyBzlB,GAAK,OAAOA,EAAEiY,WAAahY,OAAOwlB,eAAezlB,KAAwCA,GAItO,IAAIqiD,EAA0B,SAAUvmB,IAhBxC,SAA6B1V,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/b,UAAU,sDAAyD8b,EAASjlB,UAAYlB,OAAOY,OAAOwlB,GAAcA,EAAWllB,UAAW,CAAE6H,YAAa,CAAExI,MAAO4lB,EAAUjd,UAAU,EAAMD,cAAc,KAAemd,GAAY07B,EAA0B37B,EAAUC,GAiBrYi8B,CAAoBD,EAAYvmB,GAEhC,IAAI3jB,EAAS6pC,EAAuBK,GAEpC,SAASA,IAGP,OAFAP,EAA0BtgD,KAAM6gD,GAEzBlqC,EAAOlE,MAAMzS,KAAM8J,WAG5B,OAAO+2C,EAXqB,CAY5B5oC,EAAuB,GAEzB4oC,EAAW/1C,SAAW,aACtB+1C,EAAWroC,QAAU,aACQ,IAAIktB,EAAcmb,EAE/C,SAASE,EAAcx5C,GAA+V,OAAlPw5C,EAArD,oBAAXjiD,QAAoD,kBAApBA,OAAOiE,SAAyC,SAAiBwE,GAAO,cAAcA,GAAiC,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXzI,QAAyByI,EAAIC,cAAgB1I,QAAUyI,IAAQzI,OAAOa,UAAY,gBAAkB4H,IAA+BA,GAE3Y,SAASy5C,EAAsB73C,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIN,UAAU,qCAEtH,SAASm4C,EAAwB33C,EAAQC,GAAS,IAAK,IAAIvL,EAAI,EAAGA,EAAIuL,EAAMrI,OAAQlD,IAAK,CAAE,IAAIwL,EAAaD,EAAMvL,GAAIwL,EAAW7K,WAAa6K,EAAW7K,aAAc,EAAO6K,EAAW9B,cAAe,EAAU,UAAW8B,IAAYA,EAAW7B,UAAW,GAAMlJ,OAAOC,eAAe4K,EAAQE,EAAWlK,IAAKkK,IAMnT,SAAS03C,EAAsB1iD,EAAGqB,GAAqH,OAAhHqhD,EAAwBziD,OAAO+X,gBAAkB,SAAyBhY,EAAGqB,GAAsB,OAAjBrB,EAAEiY,UAAY5W,EAAUrB,IAAmCA,EAAGqB,GAEvL,SAASshD,EAAmBj+B,GAAW,IAAIC,EAM3C,WAA6C,GAAuB,qBAAZR,UAA4BA,QAAQS,UAAW,OAAO,EAAO,GAAIT,QAAQS,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQ5jB,UAAU6jB,QAAQtlB,KAAKykB,QAAQS,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAOvI,GAAK,OAAO,GAN9PomC,GAAmC,OAAO,WAAkC,IAA4C19B,EAAxCC,EAAQ09B,EAAsBn+B,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYy9B,EAAsBrhD,MAAMwH,YAAakc,EAASf,QAAQS,UAAUO,EAAO7Z,UAAW8Z,QAAqBF,EAASC,EAAMlR,MAAMzS,KAAM8J,WAAc,OAAOw3C,EAAiCthD,KAAM0jB,IAE1b,SAAS49B,EAAiCx9B,EAAM5lB,GAAQ,OAAIA,GAAiC,WAAxB6iD,EAAc7iD,IAAsC,oBAATA,EAEhH,SAAsC4lB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,EAFPy9B,CAA6Bz9B,GAA5C5lB,EAM/I,SAASmjD,EAAsB7iD,GAA8J,OAAzJ6iD,EAAwB5iD,OAAO+X,eAAiB/X,OAAOwlB,eAAiB,SAAyBzlB,GAAK,OAAOA,EAAEiY,WAAahY,OAAOwlB,eAAezlB,KAAoCA,GAI1N,IAAIgjD,EAAsB,SAAUlnB,IAhBpC,SAAyB1V,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/b,UAAU,sDAAyD8b,EAASjlB,UAAYlB,OAAOY,OAAOwlB,GAAcA,EAAWllB,UAAW,CAAE6H,YAAa,CAAExI,MAAO4lB,EAAUjd,UAAU,EAAMD,cAAc,KAAemd,GAAYq8B,EAAsBt8B,EAAUC,GAiB7X48B,CAAgBD,EAAQlnB,GAExB,IArB0BlxB,EAAa6D,EAAYC,EAqB/CyJ,EAASwqC,EAAmBK,GAEhC,SAASA,IAGP,OAFAR,EAAsBhhD,KAAMwhD,GAErB7qC,EAAOlE,MAAMzS,KAAM8J,WAU5B,OApC0BV,EA6BPo4C,EA7BgCt0C,EA6BlB,CAAC,CAChC5N,IAAK,UACLN,MAAO,SAAiB4Y,GACtB,OAAO5X,KAAKwY,QAAQrT,QAAQyS,EAAQY,SAAW,MAhCZvL,EA6BZ,OA7BuDg0C,EAAwB73C,EAAYzJ,UAAWsN,GAAiBC,GAAa+zC,EAAwB73C,EAAa8D,GAoC7Ls0C,EAlBiB,CAmBxBvpC,EAAuB,GAEzBupC,EAAO12C,SAAW,SAClB02C,EAAOhpC,QAAU,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,MACnB,IAAI2sB,EAAUqc,EAEvC73C,EAAY/L,EAAoB,IAGhC8jD,EAAa9jD,EAAoB,GAGrC,SAAS+jD,EAAYp6C,GAA2V,OAA9Oo6C,EAArD,oBAAX7iD,QAAoD,kBAApBA,OAAOiE,SAAuC,SAAiBwE,GAAO,cAAcA,GAA+B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXzI,QAAyByI,EAAIC,cAAgB1I,QAAUyI,IAAQzI,OAAOa,UAAY,gBAAkB4H,IAA6BA,GAEnY,SAASq6C,EAAsBt4C,EAAQC,GAAS,IAAK,IAAIvL,EAAI,EAAGA,EAAIuL,EAAMrI,OAAQlD,IAAK,CAAE,IAAIwL,EAAaD,EAAMvL,GAAIwL,EAAW7K,WAAa6K,EAAW7K,aAAc,EAAO6K,EAAW9B,cAAe,EAAU,UAAW8B,IAAYA,EAAW7B,UAAW,GAAMlJ,OAAOC,eAAe4K,EAAQE,EAAWlK,IAAKkK,IAIjT,SAASq4C,EAASv4C,EAAQ5J,EAAUgjB,GAAmW,OAAlSm/B,EAA9B,qBAAZl/B,SAA2BA,QAAQ/jB,IAAkB+jB,QAAQ/jB,IAAyB,SAAc0K,EAAQ5J,EAAUgjB,GAAY,IAAIrd,EAEjM,SAA4B5F,EAAQC,GAAY,MAAQjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAAkE,QAArDD,EAASqiD,EAAoBriD,MAAuC,OAAOA,EAFWsiD,CAAmBz4C,EAAQ5J,GAAW,GAAK2F,EAAL,CAAmB,IAAIyd,EAAOrkB,OAAOskB,yBAAyB1d,EAAM3F,GAAW,OAAIojB,EAAKlkB,IAAckkB,EAAKlkB,IAAIV,KAAKwkB,GAAoBI,EAAK9jB,SAA4BsK,EAAQ5J,EAAUgjB,GAAYpZ,GAIrb,SAAS04C,EAAoB74C,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIN,UAAU,qCAEpH,SAASm5C,EAAcr9B,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/b,UAAU,sDAAyD8b,EAASjlB,UAAYlB,OAAOY,OAAOwlB,GAAcA,EAAWllB,UAAW,CAAE6H,YAAa,CAAExI,MAAO4lB,EAAUjd,UAAU,EAAMD,cAAc,KAAemd,GAAYq9B,EAAoBt9B,EAAUC,GAE3X,SAASq9B,EAAoB1jD,EAAGqB,GAAmH,OAA9GqiD,EAAsBzjD,OAAO+X,gBAAkB,SAAyBhY,EAAGqB,GAAsB,OAAjBrB,EAAEiY,UAAY5W,EAAUrB,IAAiCA,EAAGqB,GAEjL,SAASsiD,EAAiBj/B,GAAW,IAAIC,EAMzC,WAA2C,GAAuB,qBAAZR,UAA4BA,QAAQS,UAAW,OAAO,EAAO,GAAIT,QAAQS,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQ5jB,UAAU6jB,QAAQtlB,KAAKykB,QAAQS,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAOvI,GAAK,OAAO,GAN9PonC,GAAiC,OAAO,WAAkC,IAA0C1+B,EAAtCC,EAAQm+B,EAAoB5+B,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYk+B,EAAoB9hD,MAAMwH,YAAakc,EAASf,QAAQS,UAAUO,EAAO7Z,UAAW8Z,QAAqBF,EAASC,EAAMlR,MAAMzS,KAAM8J,WAAc,OAAOu4C,EAA+BriD,KAAM0jB,IAEhb,SAAS2+B,EAA+Bv+B,EAAM5lB,GAAQ,OAAIA,GAA+B,WAAtByjD,EAAYzjD,IAAsC,oBAATA,EAE5G,SAAoC4lB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,EAFTw+B,CAA2Bx+B,GAA1C5lB,EAM3I,SAAS4jD,EAAoBtjD,GAA4J,OAAvJsjD,EAAsBrjD,OAAO+X,eAAiB/X,OAAOwlB,eAAiB,SAAyBzlB,GAAK,OAAOA,EAAEiY,WAAahY,OAAOwlB,eAAezlB,KAAkCA,GAMpN,IAAI+jD,EAA6B,SAAUpoB,GACzC8nB,EAAcM,EAAepoB,GAE7B,IAAIxjB,EAASwrC,EAAiBI,GAE9B,SAASA,IAGP,OAFAP,EAAoBhiD,KAAMuiD,GAEnB5rC,EAAOlE,MAAMzS,KAAM8J,WAG5B,OAAOy4C,EAXwB,CAY/B54C,EAA2B,GAE7B44C,EAAcz3C,SAAW,iBACzBy3C,EAAc/pC,QAAU,KAExB,IAAIgqC,EAA6B,SAAUloB,GACzC2nB,EAAcQ,EAAUnoB,GAExB,IA9CwBlxB,EAAa6D,EAAYC,EA8C7Cqe,EAAU42B,EAAiBM,GAE/B,SAASA,EAAS13C,EAAQ6M,GACxB,IAAIhO,EAEJo4C,EAAoBhiD,KAAMyiD,GAE1B74C,EAAQ2hB,EAAQrtB,KAAK8B,KAAM+K,EAAQ6M,GACnC,IAAI8qC,EAAK9qC,EAAQm8B,cAAcxlC,cAAc,QAEzCo0C,EAAmB,SAA0B3nC,GAC/C,GAAKjQ,EAAOuH,YAAZ,CAEA,IAAI1C,EAAShG,EAAMoQ,QAAQhK,QAAQ4H,EAAS7M,GAE7B,YAAX6E,GACFhG,EAAMgG,OAAO,OAAQ,aAErBoL,EAAEogB,kBACkB,cAAXxrB,IACThG,EAAMgG,OAAO,OAAQ,WAErBoL,EAAEogB,oBASN,OALAsnB,EAAGv+B,iBAAiB,YAAaw+B,GACjCD,EAAGv+B,iBAAiB,aAAcw+B,GAElC/4C,EAAM4R,SAASknC,GAER94C,EAgCT,OA7GwBR,EAgFPq5C,EAhFgCv1C,EAyF7C,CAAC,CACH5N,IAAK,SACLN,MAAO,SAAgBA,GACrB,IAAIqO,EAAOw0C,EAASC,EAAoBW,GAAW,SAAUziD,MAAM9B,KAAK8B,MAGxE,OADAqN,EAAKR,aAAa,YAAa7N,GACxBqO,IAER,CACD/N,IAAK,UACLN,MAAO,SAAiB4Y,GACtB,OAAOA,EAAQS,aAAa,mBAAgBtO,IAE7C,CACDzK,IAAK,WACLN,MAAO,WACL0iD,EAA4B,EAAE9zC,SAAS20C,OAzGNt1C,EAgFV,CAAC,CAC1B3N,IAAK,SACLN,MAAO,SAAgBV,EAAMU,GACvBV,IAAS0B,KAAKga,QAAQlP,UAAY9L,EACpCgB,KAAK4X,QAAQ/K,aAAa,YAAa7N,GAEvC6iD,EAASC,EAAoBW,EAAS9iD,WAAY,SAAUK,MAAM9B,KAAK8B,KAAM1B,EAAMU,QAtFT4iD,EAAsBx4C,EAAYzJ,UAAWsN,GAAiBC,GAAa00C,EAAsBx4C,EAAa8D,GA6GvLu1C,EAlEwB,CAmE/BxqC,EAAuB,GAEzBuqC,EAAc13C,SAAW,OACzB03C,EAAchqC,QAAU,KACxB+pC,EAAcrmC,gBAAkB,CAACsmC,GACjCA,EAAcjoC,kBAAoBgoC,EAGlC,IAAIK,EAAahlD,EAAoB,IAGjCilD,EAAQjlD,EAAoB,IAG5BklD,EAAOllD,EAAoB,IAG3Bw0B,EAAOx0B,EAAoB,IAG3BgnC,EAAOhnC,EAAoB,IAG/B,SAASmlD,EAAcx7C,GAA+V,OAAlPw7C,EAArD,oBAAXjkD,QAAoD,kBAApBA,OAAOiE,SAAyC,SAAiBwE,GAAO,cAAcA,GAAiC,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXzI,QAAyByI,EAAIC,cAAgB1I,QAAUyI,IAAQzI,OAAOa,UAAY,gBAAkB4H,IAA+BA,GAE3Y,SAASy7C,EAAsB75C,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIN,UAAU,qCAItH,SAASm6C,GAAsBzkD,EAAGqB,GAAqH,OAAhHojD,GAAwBxkD,OAAO+X,gBAAkB,SAAyBhY,EAAGqB,GAAsB,OAAjBrB,EAAEiY,UAAY5W,EAAUrB,IAAmCA,EAAGqB,GAEvL,SAASqjD,GAAmBhgC,GAAW,IAAIC,EAM3C,WAA6C,GAAuB,qBAAZR,UAA4BA,QAAQS,UAAW,OAAO,EAAO,GAAIT,QAAQS,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQ5jB,UAAU6jB,QAAQtlB,KAAKykB,QAAQS,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAOvI,GAAK,OAAO,GAN9PmoC,GAAmC,OAAO,WAAkC,IAA4Cz/B,EAAxCC,EAAQy/B,GAAsBlgC,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYw/B,GAAsBpjD,MAAMwH,YAAakc,EAASf,QAAQS,UAAUO,EAAO7Z,UAAW8Z,QAAqBF,EAASC,EAAMlR,MAAMzS,KAAM8J,WAAc,OAAOu5C,GAAiCrjD,KAAM0jB,IAE1b,SAAS2/B,GAAiCv/B,EAAM5lB,GAAQ,OAAIA,GAAiC,WAAxB6kD,EAAc7kD,IAAsC,oBAATA,EAEhH,SAAsC4lB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,EAFPw/B,CAA6Bx/B,GAA5C5lB,EAM/I,SAASklD,GAAsB5kD,GAA8J,OAAzJ4kD,GAAwB3kD,OAAO+X,eAAiB/X,OAAOwlB,eAAiB,SAAyBzlB,GAAK,OAAOA,EAAEiY,WAAahY,OAAOwlB,eAAezlB,KAAoCA,GAI1N,IAAI+kD,GAAsB,SAAUC,IAhBpC,SAAyB5+B,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/b,UAAU,sDAAyD8b,EAASjlB,UAAYlB,OAAOY,OAAOwlB,GAAcA,EAAWllB,UAAW,CAAE6H,YAAa,CAAExI,MAAO4lB,EAAUjd,UAAU,EAAMD,cAAc,KAAemd,GAAYo+B,GAAsBr+B,EAAUC,GAiB7X4+B,CAAgBF,EAAQC,GAExB,IAAI7sC,EAASusC,GAAmBK,GAEhC,SAASA,IAGP,OAFAP,EAAsBhjD,KAAMujD,GAErB5sC,EAAOlE,MAAMzS,KAAM8J,WAG5B,OAAOy5C,EAXiB,CAYxB3e,EAAsB,GAExB2e,GAAOz4C,SAAW,SAClBy4C,GAAO/qC,QAAU,CAAC,KAAM,KACK,IAAIqsB,GAAU0e,GAEvCG,GAAe9lD,EAAoB,IAGnCua,GAASva,EAAoB,IAGjC,SAAS+lD,GAAcp8C,GAA+V,OAAlPo8C,GAArD,oBAAX7kD,QAAoD,kBAApBA,OAAOiE,SAAyC,SAAiBwE,GAAO,cAAcA,GAAiC,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXzI,QAAyByI,EAAIC,cAAgB1I,QAAUyI,IAAQzI,OAAOa,UAAY,gBAAkB4H,IAA+BA,GAE3Y,SAASq8C,GAAsBz6C,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIN,UAAU,qCAEtH,SAAS+6C,GAAwBv6C,EAAQC,GAAS,IAAK,IAAIvL,EAAI,EAAGA,EAAIuL,EAAMrI,OAAQlD,IAAK,CAAE,IAAIwL,EAAaD,EAAMvL,GAAIwL,EAAW7K,WAAa6K,EAAW7K,aAAc,EAAO6K,EAAW9B,cAAe,EAAU,UAAW8B,IAAYA,EAAW7B,UAAW,GAAMlJ,OAAOC,eAAe4K,EAAQE,EAAWlK,IAAKkK,IAInT,SAASs6C,GAAWx6C,EAAQ5J,EAAUgjB,GAAyW,OAAxSohC,GAA9B,qBAAZnhC,SAA2BA,QAAQ/jB,IAAoB+jB,QAAQ/jB,IAA2B,SAAc0K,EAAQ5J,EAAUgjB,GAAY,IAAIrd,EAEvM,SAA8B5F,EAAQC,GAAY,MAAQjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAAoE,QAAvDD,EAASskD,GAAsBtkD,MAAuC,OAAOA,EAFaukD,CAAqB16C,EAAQ5J,GAAW,GAAK2F,EAAL,CAAmB,IAAIyd,EAAOrkB,OAAOskB,yBAAyB1d,EAAM3F,GAAW,OAAIojB,EAAKlkB,IAAckkB,EAAKlkB,IAAIV,KAAKwkB,GAAoBI,EAAK9jB,SAA8BsK,EAAQ5J,EAAUgjB,GAAYpZ,GAM/b,SAAS26C,GAAsBzlD,EAAGqB,GAAqH,OAAhHokD,GAAwBxlD,OAAO+X,gBAAkB,SAAyBhY,EAAGqB,GAAsB,OAAjBrB,EAAEiY,UAAY5W,EAAUrB,IAAmCA,EAAGqB,GAEvL,SAASqkD,GAAmBhhC,GAAW,IAAIC,EAM3C,WAA6C,GAAuB,qBAAZR,UAA4BA,QAAQS,UAAW,OAAO,EAAO,GAAIT,QAAQS,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQ5jB,UAAU6jB,QAAQtlB,KAAKykB,QAAQS,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAOvI,GAAK,OAAO,GAN9PmpC,GAAmC,OAAO,WAAkC,IAA4CzgC,EAAxCC,EAAQogC,GAAsB7gC,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYmgC,GAAsB/jD,MAAMwH,YAAakc,EAASf,QAAQS,UAAUO,EAAO7Z,UAAW8Z,QAAqBF,EAASC,EAAMlR,MAAMzS,KAAM8J,WAAc,OAAOs6C,GAAiCpkD,KAAM0jB,IAE1b,SAAS0gC,GAAiCtgC,EAAM5lB,GAAQ,OAAIA,GAAiC,WAAxBylD,GAAczlD,IAAsC,oBAATA,EAEhH,SAAsC4lB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,EAFPugC,CAA6BvgC,GAA5C5lB,EAM/I,SAAS6lD,GAAsBvlD,GAA8J,OAAzJulD,GAAwBtlD,OAAO+X,eAAiB/X,OAAOwlB,eAAiB,SAAyBzlB,GAAK,OAAOA,EAAEiY,WAAahY,OAAOwlB,eAAezlB,KAAoCA,GAI1N,IAAI8lD,GAAsB,SAAU/pB,IAhBpC,SAAyB3V,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/b,UAAU,sDAAyD8b,EAASjlB,UAAYlB,OAAOY,OAAOwlB,GAAcA,EAAWllB,UAAW,CAAE6H,YAAa,CAAExI,MAAO4lB,EAAUjd,UAAU,EAAMD,cAAc,KAAemd,GAAYo/B,GAAsBr/B,EAAUC,GAiB7X0/B,CAAgBD,EAAQ/pB,GAExB,IAzB0BnxB,EAAa6D,EAAYC,EAyB/CyJ,EAASutC,GAAmBI,GAEhC,SAASA,IAGP,OAFAV,GAAsB5jD,KAAMskD,GAErB3tC,EAAOlE,MAAMzS,KAAM8J,WAyB5B,OAvD0BV,EAiCPk7C,EAjCgCp3C,EAiClB,CAAC,CAChC5N,IAAK,SACLN,MAAO,SAAgBA,GACrB,MAAc,UAAVA,EACKsP,SAASC,cAAc,OAGlB,QAAVvP,EACKsP,SAASC,cAAc,OAGzBu1C,GAAWC,GAAsBO,GAAS,SAAUtkD,MAAM9B,KAAK8B,KAAMhB,KAE7E,CACDM,IAAK,UACLN,MAAO,SAAiB4Y,GACtB,MAAwB,QAApBA,EAAQY,QAA0B,MACd,QAApBZ,EAAQY,QAA0B,aAAtC,MAlDmCvL,EAiCZ,OAjCuD42C,GAAwBz6C,EAAYzJ,UAAWsN,GAAiBC,GAAa22C,GAAwBz6C,EAAa8D,GAuD7Lo3C,EAjCiB,CAkCxBnsC,GAAwB,GAE1BmsC,GAAOx5C,SAAW,SAClBw5C,GAAO9rC,QAAU,CAAC,MAAO,OACI,IAAIgsC,GAAUF,GAE3C,SAASG,GAAcl9C,GAA+V,OAAlPk9C,GAArD,oBAAX3lD,QAAoD,kBAApBA,OAAOiE,SAAyC,SAAiBwE,GAAO,cAAcA,GAAiC,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXzI,QAAyByI,EAAIC,cAAgB1I,QAAUyI,IAAQzI,OAAOa,UAAY,gBAAkB4H,IAA+BA,GAE3Y,SAASm9C,GAAsBv7C,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIN,UAAU,qCAItH,SAAS67C,GAAsBnmD,EAAGqB,GAAqH,OAAhH8kD,GAAwBlmD,OAAO+X,gBAAkB,SAAyBhY,EAAGqB,GAAsB,OAAjBrB,EAAEiY,UAAY5W,EAAUrB,IAAmCA,EAAGqB,GAEvL,SAAS+kD,GAAmB1hC,GAAW,IAAIC,EAM3C,WAA6C,GAAuB,qBAAZR,UAA4BA,QAAQS,UAAW,OAAO,EAAO,GAAIT,QAAQS,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQ5jB,UAAU6jB,QAAQtlB,KAAKykB,QAAQS,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAOvI,GAAK,OAAO,GAN9P6pC,GAAmC,OAAO,WAAkC,IAA4CnhC,EAAxCC,EAAQmhC,GAAsB5hC,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYkhC,GAAsB9kD,MAAMwH,YAAakc,EAASf,QAAQS,UAAUO,EAAO7Z,UAAW8Z,QAAqBF,EAASC,EAAMlR,MAAMzS,KAAM8J,WAAc,OAAOi7C,GAAiC/kD,KAAM0jB,IAE1b,SAASqhC,GAAiCjhC,EAAM5lB,GAAQ,OAAIA,GAAiC,WAAxBumD,GAAcvmD,IAAsC,oBAATA,EAEhH,SAAsC4lB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,EAFPkhC,CAA6BlhC,GAA5C5lB,EAM/I,SAAS4mD,GAAsBtmD,GAA8J,OAAzJsmD,GAAwBrmD,OAAO+X,eAAiB/X,OAAOwlB,eAAiB,SAAyBzlB,GAAK,OAAOA,EAAEiY,WAAahY,OAAOwlB,eAAezlB,KAAoCA,GAI1N,IAAIymD,GAAsB,SAAUzB,IAhBpC,SAAyB5+B,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/b,UAAU,sDAAyD8b,EAASjlB,UAAYlB,OAAOY,OAAOwlB,GAAcA,EAAWllB,UAAW,CAAE6H,YAAa,CAAExI,MAAO4lB,EAAUjd,UAAU,EAAMD,cAAc,KAAemd,GAAY8/B,GAAsB//B,EAAUC,GAiB7XqgC,CAAgBD,EAAQzB,GAExB,IAAI7sC,EAASiuC,GAAmBK,GAEhC,SAASA,IAGP,OAFAP,GAAsB1kD,KAAMilD,GAErBtuC,EAAOlE,MAAMzS,KAAM8J,WAG5B,OAAOm7C,EAXiB,CAYxBrgB,EAAsB,GAExBqgB,GAAOn6C,SAAW,SAClBm6C,GAAOzsC,QAAU,CAAC,IAAK,UACM,IAAIq6B,GAAUoS,GAE3C,SAASE,GAAiB59C,GAAqW,OAAxP49C,GAArD,oBAAXrmD,QAAoD,kBAApBA,OAAOiE,SAA4C,SAAiBwE,GAAO,cAAcA,GAAoC,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXzI,QAAyByI,EAAIC,cAAgB1I,QAAUyI,IAAQzI,OAAOa,UAAY,gBAAkB4H,IAAkCA,GAEvZ,SAAS69C,GAAyBj8C,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIN,UAAU,qCAIzH,SAASu8C,GAAyB7mD,EAAGqB,GAAwH,OAAnHwlD,GAA2B5mD,OAAO+X,gBAAkB,SAAyBhY,EAAGqB,GAAsB,OAAjBrB,EAAEiY,UAAY5W,EAAUrB,IAAsCA,EAAGqB,GAEhM,SAASylD,GAAsBpiC,GAAW,IAAIC,EAM9C,WAAgD,GAAuB,qBAAZR,UAA4BA,QAAQS,UAAW,OAAO,EAAO,GAAIT,QAAQS,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQ5jB,UAAU6jB,QAAQtlB,KAAKykB,QAAQS,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAOvI,GAAK,OAAO,GAN9PuqC,GAAsC,OAAO,WAAkC,IAA+C7hC,EAA3CC,EAAQ6hC,GAAyBtiC,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAY4hC,GAAyBxlD,MAAMwH,YAAakc,EAASf,QAAQS,UAAUO,EAAO7Z,UAAW8Z,QAAqBF,EAASC,EAAMlR,MAAMzS,KAAM8J,WAAc,OAAO27C,GAAoCzlD,KAAM0jB,IAEzc,SAAS+hC,GAAoC3hC,EAAM5lB,GAAQ,OAAIA,GAAoC,WAA3BinD,GAAiBjnD,IAAsC,oBAATA,EAEtH,SAAyC4lB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,EAFJ4hC,CAAgC5hC,GAA/C5lB,EAMrJ,SAASsnD,GAAyBhnD,GAAiK,OAA5JgnD,GAA2B/mD,OAAO+X,eAAiB/X,OAAOwlB,eAAiB,SAAyBzlB,GAAK,OAAOA,EAAEiY,WAAahY,OAAOwlB,eAAezlB,KAAuCA,GAInO,IAAImnD,GAAyB,SAAUprB,IAhBvC,SAA4B3V,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/b,UAAU,sDAAyD8b,EAASjlB,UAAYlB,OAAOY,OAAOwlB,GAAcA,EAAWllB,UAAW,CAAE6H,YAAa,CAAExI,MAAO4lB,EAAUjd,UAAU,EAAMD,cAAc,KAAemd,GAAYwgC,GAAyBzgC,EAAUC,GAiBnY+gC,CAAmBD,EAAWprB,GAE9B,IAAI5jB,EAAS2uC,GAAsBK,GAEnC,SAASA,IAGP,OAFAP,GAAyBplD,KAAM2lD,GAExBhvC,EAAOlE,MAAMzS,KAAM8J,WAG5B,OAAO67C,EAXoB,CAY3BxtC,GAAwB,GAE1BwtC,GAAU76C,SAAW,YACrB66C,GAAUntC,QAAU,IACS,IAAIssB,GAAa6gB,GAE1C/oB,GAAch/B,EAAoB,IAGlCs/B,GAAYt/B,EAAoB,IAGpC,SAASioD,GAAet+C,GAAiW,OAApPs+C,GAArD,oBAAX/mD,QAAoD,kBAApBA,OAAOiE,SAA0C,SAAiBwE,GAAO,cAAcA,GAAkC,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXzI,QAAyByI,EAAIC,cAAgB1I,QAAUyI,IAAQzI,OAAOa,UAAY,gBAAkB4H,IAAgCA,GAE/Y,SAASu+C,GAAuB38C,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIN,UAAU,qCAEvH,SAASi9C,GAAyBz8C,EAAQC,GAAS,IAAK,IAAIvL,EAAI,EAAGA,EAAIuL,EAAMrI,OAAQlD,IAAK,CAAE,IAAIwL,EAAaD,EAAMvL,GAAIwL,EAAW7K,WAAa6K,EAAW7K,aAAc,EAAO6K,EAAW9B,cAAe,EAAU,UAAW8B,IAAYA,EAAW7B,UAAW,GAAMlJ,OAAOC,eAAe4K,EAAQE,EAAWlK,IAAKkK,IAIpT,SAASw8C,GAAY18C,EAAQ5J,EAAUgjB,GAA4W,OAA3SsjC,GAA9B,qBAAZrjC,SAA2BA,QAAQ/jB,IAAqB+jB,QAAQ/jB,IAA4B,SAAc0K,EAAQ5J,EAAUgjB,GAAY,IAAIrd,EAE1M,SAA+B5F,EAAQC,GAAY,MAAQjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAAqE,QAAxDD,EAASwmD,GAAuBxmD,MAAuC,OAAOA,EAFcymD,CAAsB58C,EAAQ5J,GAAW,GAAK2F,EAAL,CAAmB,IAAIyd,EAAOrkB,OAAOskB,yBAAyB1d,EAAM3F,GAAW,OAAIojB,EAAKlkB,IAAckkB,EAAKlkB,IAAIV,KAAKwkB,GAAoBI,EAAK9jB,SAA+BsK,EAAQ5J,EAAUgjB,GAAYpZ,GAMpc,SAAS68C,GAAuB3nD,EAAGqB,GAAsH,OAAjHsmD,GAAyB1nD,OAAO+X,gBAAkB,SAAyBhY,EAAGqB,GAAsB,OAAjBrB,EAAEiY,UAAY5W,EAAUrB,IAAoCA,EAAGqB,GAE1L,SAASumD,GAAoBljC,GAAW,IAAIC,EAM5C,WAA8C,GAAuB,qBAAZR,UAA4BA,QAAQS,UAAW,OAAO,EAAO,GAAIT,QAAQS,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQ5jB,UAAU6jB,QAAQtlB,KAAKykB,QAAQS,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAOvI,GAAK,OAAO,GAN9PqrC,GAAoC,OAAO,WAAkC,IAA6C3iC,EAAzCC,EAAQsiC,GAAuB/iC,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYqiC,GAAuBjmD,MAAMwH,YAAakc,EAASf,QAAQS,UAAUO,EAAO7Z,UAAW8Z,QAAqBF,EAASC,EAAMlR,MAAMzS,KAAM8J,WAAc,OAAOw8C,GAAkCtmD,KAAM0jB,IAE/b,SAAS4iC,GAAkCxiC,EAAM5lB,GAAQ,OAAIA,GAAkC,WAAzB2nD,GAAe3nD,IAAsC,oBAATA,EAElH,SAAuC4lB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,EAFNyiC,CAA8BziC,GAA7C5lB,EAMjJ,SAAS+nD,GAAuBznD,GAA+J,OAA1JynD,GAAyBxnD,OAAO+X,eAAiB/X,OAAOwlB,eAAiB,SAAyBzlB,GAAK,OAAOA,EAAEiY,WAAahY,OAAOwlB,eAAezlB,KAAqCA,GAK7N,IAAIgoD,GAA+B,SAAUC,IAjB7C,SAA0B7hC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/b,UAAU,sDAAyD8b,EAASjlB,UAAYlB,OAAOY,OAAOwlB,GAAcA,EAAWllB,UAAW,CAAE6H,YAAa,CAAExI,MAAO4lB,EAAUjd,UAAU,EAAMD,cAAc,KAAemd,GAAYshC,GAAuBvhC,EAAUC,GAkB/X6hC,CAAiBC,EAASF,GAE1B,IA1B2Br9C,EAAa6D,EAAYC,EA0BhDyJ,EAASyvC,GAAoBO,GAEjC,SAASA,IAGP,OAFAb,GAAuB9lD,KAAM2mD,GAEtBhwC,EAAOlE,MAAMzS,KAAM8J,WA2C5B,OA1E2BV,EAkCPu9C,EAlCgCz5C,EA0ChD,CAAC,CACH5N,IAAK,SACLN,MAAO,SAAgBA,GACrB,IAAI4nD,EAAQ,KAMZ,GAJInoD,OAAOy+B,GAA2B,EAAlCz+B,KACFmoD,EAAQn2B,OAAOm2B,OAGJ,MAATA,EACF,MAAM,IAAIriD,MAAM,kCAGlB,IAAI8I,EAAO24C,GAAYC,GAAuBU,GAAU,SAAU3mD,MAAM9B,KAAK8B,KAAMhB,GAUnF,MARqB,kBAAVA,IACT4nD,EAAMC,OAAO7nD,EAAOqO,EAAM,CACxBy5C,cAAc,EACdC,WAAY,SAEd15C,EAAKR,aAAa,aAAc7N,IAG3BqO,IAER,CACD/N,IAAK,QACLN,MAAO,SAAe4Y,GACpB,OAAOA,EAAQS,aAAa,kBAtEQpL,EAkCX,CAAC,CAC5B3N,IAAK,OACLN,MAAO,WACL,IACIgoD,EADchnD,KAAKhB,QACGgoD,QAE1B,MAAO,SAAS7iD,OAAO6iD,EAAS,gBAxC+CjB,GAAyB38C,EAAYzJ,UAAWsN,GAAiBC,GAAa64C,GAAyB38C,EAAa8D,GA0EhMy5C,EAnD0B,CAoDjC/pB,GAA6B,GAE/B4pB,GAAgB17C,SAAW,UAC3B07C,GAAgBn4C,UAAY,aAC5Bm4C,GAAgBhuC,QAAU,OACG,IAAIwuC,GAAWR,GAE5C,SAASS,GAAa1/C,GAA6V,OAAhP0/C,GAArD,oBAAXnoD,QAAoD,kBAApBA,OAAOiE,SAAwC,SAAiBwE,GAAO,cAAcA,GAAgC,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXzI,QAAyByI,EAAIC,cAAgB1I,QAAUyI,IAAQzI,OAAOa,UAAY,gBAAkB4H,IAA8BA,GAEvY,SAAS2/C,GAAqB/9C,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIN,UAAU,qCAErH,SAASq+C,GAAuB79C,EAAQC,GAAS,IAAK,IAAIvL,EAAI,EAAGA,EAAIuL,EAAMrI,OAAQlD,IAAK,CAAE,IAAIwL,EAAaD,EAAMvL,GAAIwL,EAAW7K,WAAa6K,EAAW7K,aAAc,EAAO6K,EAAW9B,cAAe,EAAU,UAAW8B,IAAYA,EAAW7B,UAAW,GAAMlJ,OAAOC,eAAe4K,EAAQE,EAAWlK,IAAKkK,IAIlT,SAAS49C,GAAU99C,EAAQ5J,EAAUgjB,GAAsW,OAArS0kC,GAA9B,qBAAZzkC,SAA2BA,QAAQ/jB,IAAmB+jB,QAAQ/jB,IAA0B,SAAc0K,EAAQ5J,EAAUgjB,GAAY,IAAIrd,EAEpM,SAA6B5F,EAAQC,GAAY,MAAQjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAAmE,QAAtDD,EAAS4nD,GAAqB5nD,MAAuC,OAAOA,EAFY6nD,CAAoBh+C,EAAQ5J,GAAW,GAAK2F,EAAL,CAAmB,IAAIyd,EAAOrkB,OAAOskB,yBAAyB1d,EAAM3F,GAAW,OAAIojB,EAAKlkB,IAAckkB,EAAKlkB,IAAIV,KAAKwkB,GAAoBI,EAAK9jB,SAA6BsK,EAAQ5J,EAAUgjB,GAAYpZ,GAM1b,SAASi+C,GAAqB/oD,EAAGqB,GAAoH,OAA/G0nD,GAAuB9oD,OAAO+X,gBAAkB,SAAyBhY,EAAGqB,GAAsB,OAAjBrB,EAAEiY,UAAY5W,EAAUrB,IAAkCA,EAAGqB,GAEpL,SAAS2nD,GAAkBtkC,GAAW,IAAIC,EAM1C,WAA4C,GAAuB,qBAAZR,UAA4BA,QAAQS,UAAW,OAAO,EAAO,GAAIT,QAAQS,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQ5jB,UAAU6jB,QAAQtlB,KAAKykB,QAAQS,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAOvI,GAAK,OAAO,GAN9PysC,GAAkC,OAAO,WAAkC,IAA2C/jC,EAAvCC,EAAQ0jC,GAAqBnkC,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYyjC,GAAqBrnD,MAAMwH,YAAakc,EAASf,QAAQS,UAAUO,EAAO7Z,UAAW8Z,QAAqBF,EAASC,EAAMlR,MAAMzS,KAAM8J,WAAc,OAAO49C,GAAgC1nD,KAAM0jB,IAErb,SAASgkC,GAAgC5jC,EAAM5lB,GAAQ,OAAIA,GAAgC,WAAvB+oD,GAAa/oD,IAAsC,oBAATA,EAE9G,SAAqC4lB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,EAFR6jC,CAA4B7jC,GAA3C5lB,EAM7I,SAASmpD,GAAqB7oD,GAA6J,OAAxJ6oD,GAAuB5oD,OAAO+X,eAAiB/X,OAAOwlB,eAAiB,SAAyBzlB,GAAK,OAAOA,EAAEiY,WAAahY,OAAOwlB,eAAezlB,KAAmCA,GAKvN,IAAIopD,GAAa,CAAC,MAAO,SAAU,SAE/BC,GAA2B,SAAUv8B,IAnBzC,SAAwB1G,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/b,UAAU,sDAAyD8b,EAASjlB,UAAYlB,OAAOY,OAAOwlB,GAAcA,EAAWllB,UAAW,CAAE6H,YAAa,CAAExI,MAAO4lB,EAAUjd,UAAU,EAAMD,cAAc,KAAemd,GAAY0iC,GAAqB3iC,EAAUC,GAoB3XijC,CAAeC,EAAOz8B,GAEtB,IA5ByBliB,EAAa6D,EAAYC,EA4B9CyJ,EAAS6wC,GAAkBO,GAE/B,SAASA,IAGP,OAFAb,GAAqBlnD,KAAM+nD,GAEpBpxC,EAAOlE,MAAMzS,KAAM8J,WAiE5B,OAlGyBV,EAoCP2+C,EApCgC76C,EAiD9C,CAAC,CACH5N,IAAK,SACLN,MAAO,SAAgBA,GACrB,IAAIqO,EAAO+5C,GAAUC,GAAqBU,GAAQ,SAAU/nD,MAAM9B,KAAK8B,KAAMhB,GAM7E,MAJqB,kBAAVA,GACTqO,EAAKR,aAAa,MAAO7M,KAAKutC,SAASvuC,IAGlCqO,IAER,CACD/N,IAAK,UACLN,MAAO,SAAiB4Y,GACtB,OAAOgwC,GAAWtlD,QAAO,SAAU0N,EAASwP,GAK1C,OAJI5H,EAAQowC,aAAaxoC,KACvBxP,EAAQwP,GAAa5H,EAAQS,aAAamH,IAGrCxP,IACN,MAEJ,CACD1Q,IAAK,QACLN,MAAO,SAAewuC,GACpB,MAAO,qBAAqB5kC,KAAK4kC,IAAQ,yBAAyB5kC,KAAK4kC,KAExE,CACDluC,IAAK,WACLN,MAAO,WACDP,OAAOy+B,GAA2B,EAAlCz+B,IAA0C,WAAWmK,KAAK60B,UAAUC,YACtEjR,YAAW,WAETne,SAAS25C,YAAY,wBAAwB,GAAO,KACnD,KAGN,CACD3oD,IAAK,WACLN,MAAO,SAAkBwuC,GACvB,OAAO/uC,OAAOilD,GAA+B,EAAtCjlD,CAAyC+uC,EAAK,CAAC,OAAQ,QAAS,SAAWA,EAAM,SAEzF,CACDluC,IAAK,QACLN,MAAO,SAAe4Y,GACpB,OAAOA,EAAQS,aAAa,WA9FMpL,EAoCb,CAAC,CACxB3N,IAAK,SACLN,MAAO,SAAgBV,EAAMU,GACvB4oD,GAAWziD,QAAQ7G,IAAS,EAC1BU,EACFgB,KAAK4X,QAAQ/K,aAAavO,EAAMU,GAEhCgB,KAAK4X,QAAQ8G,gBAAgBpgB,GAG/B8oD,GAAUC,GAAqBU,EAAMpoD,WAAY,SAAUK,MAAM9B,KAAK8B,KAAM1B,EAAMU,QA9CPmoD,GAAuB/9C,EAAYzJ,UAAWsN,GAAiBC,GAAai6C,GAAuB/9C,EAAa8D,GAkG1L66C,EAzEsB,CA0E7BlzC,EAAqB,WAEvBgzC,GAAY/8C,SAAW,QACvB+8C,GAAYrvC,QAAU,MACO,IAAI0vC,GAAiBL,GAElD,SAASM,GAAa5gD,GAA6V,OAAhP4gD,GAArD,oBAAXrpD,QAAoD,kBAApBA,OAAOiE,SAAwC,SAAiBwE,GAAO,cAAcA,GAAgC,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXzI,QAAyByI,EAAIC,cAAgB1I,QAAUyI,IAAQzI,OAAOa,UAAY,gBAAkB4H,IAA8BA,GAEvY,SAAS6gD,GAAqBj/C,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIN,UAAU,qCAErH,SAASu/C,GAAuB/+C,EAAQC,GAAS,IAAK,IAAIvL,EAAI,EAAGA,EAAIuL,EAAMrI,OAAQlD,IAAK,CAAE,IAAIwL,EAAaD,EAAMvL,GAAIwL,EAAW7K,WAAa6K,EAAW7K,aAAc,EAAO6K,EAAW9B,cAAe,EAAU,UAAW8B,IAAYA,EAAW7B,UAAW,GAAMlJ,OAAOC,eAAe4K,EAAQE,EAAWlK,IAAKkK,IAIlT,SAAS8+C,GAAUh/C,EAAQ5J,EAAUgjB,GAAsW,OAArS4lC,GAA9B,qBAAZ3lC,SAA2BA,QAAQ/jB,IAAmB+jB,QAAQ/jB,IAA0B,SAAc0K,EAAQ5J,EAAUgjB,GAAY,IAAIrd,EAEpM,SAA6B5F,EAAQC,GAAY,MAAQjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAAmE,QAAtDD,EAAS8oD,GAAqB9oD,MAAuC,OAAOA,EAFY+oD,CAAoBl/C,EAAQ5J,GAAW,GAAK2F,EAAL,CAAmB,IAAIyd,EAAOrkB,OAAOskB,yBAAyB1d,EAAM3F,GAAW,OAAIojB,EAAKlkB,IAAckkB,EAAKlkB,IAAIV,KAAKwkB,GAAoBI,EAAK9jB,SAA6BsK,EAAQ5J,EAAUgjB,GAAYpZ,GAM1b,SAASm/C,GAAqBjqD,EAAGqB,GAAoH,OAA/G4oD,GAAuBhqD,OAAO+X,gBAAkB,SAAyBhY,EAAGqB,GAAsB,OAAjBrB,EAAEiY,UAAY5W,EAAUrB,IAAkCA,EAAGqB,GAEpL,SAAS6oD,GAAkBxlC,GAAW,IAAIC,EAM1C,WAA4C,GAAuB,qBAAZR,UAA4BA,QAAQS,UAAW,OAAO,EAAO,GAAIT,QAAQS,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQ5jB,UAAU6jB,QAAQtlB,KAAKykB,QAAQS,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAOvI,GAAK,OAAO,GAN9P2tC,GAAkC,OAAO,WAAkC,IAA2CjlC,EAAvCC,EAAQ4kC,GAAqBrlC,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAY2kC,GAAqBvoD,MAAMwH,YAAakc,EAASf,QAAQS,UAAUO,EAAO7Z,UAAW8Z,QAAqBF,EAASC,EAAMlR,MAAMzS,KAAM8J,WAAc,OAAO8+C,GAAgC5oD,KAAM0jB,IAErb,SAASklC,GAAgC9kC,EAAM5lB,GAAQ,OAAIA,GAAgC,WAAvBiqD,GAAajqD,IAAsC,oBAATA,EAE9G,SAAqC4lB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,EAFR+kC,CAA4B/kC,GAA3C5lB,EAM7I,SAASqqD,GAAqB/pD,GAA6J,OAAxJ+pD,GAAuB9pD,OAAO+X,eAAiB/X,OAAOwlB,eAAiB,SAAyBzlB,GAAK,OAAOA,EAAEiY,WAAahY,OAAOwlB,eAAezlB,KAAmCA,GAIvN,IAAIsqD,GAAmB,CAAC,SAAU,SAE9BC,GAA2B,SAAUC,IAlBzC,SAAwBpkC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/b,UAAU,sDAAyD8b,EAASjlB,UAAYlB,OAAOY,OAAOwlB,GAAcA,EAAWllB,UAAW,CAAE6H,YAAa,CAAExI,MAAO4lB,EAAUjd,UAAU,EAAMD,cAAc,KAAemd,GAAY4jC,GAAqB7jC,EAAUC,GAmB3XokC,CAAeC,EAAOF,GAEtB,IA3ByB5/C,EAAa6D,EAAYC,EA2B9CyJ,EAAS+xC,GAAkBQ,GAE/B,SAASA,IAGP,OAFAd,GAAqBpoD,KAAMkpD,GAEpBvyC,EAAOlE,MAAMzS,KAAM8J,WAyD5B,OAzFyBV,EAmCP8/C,EAnCgCh8C,EAwD9C,CAAC,CACH5N,IAAK,SACLN,MAAO,SAAgBA,GACrB,IAAIqO,EAAOi7C,GAAUC,GAAqBW,GAAQ,SAAUlpD,MAAM9B,KAAK8B,KAAMhB,GAK7E,OAHAqO,EAAKR,aAAa,cAAe,KACjCQ,EAAKR,aAAa,mBAAmB,GACrCQ,EAAKR,aAAa,MAAO7M,KAAKutC,SAASvuC,IAChCqO,IAER,CACD/N,IAAK,UACLN,MAAO,SAAiB4Y,GACtB,OAAOkxC,GAAiBxmD,QAAO,SAAU0N,EAASwP,GAKhD,OAJI5H,EAAQowC,aAAaxoC,KACvBxP,EAAQwP,GAAa5H,EAAQS,aAAamH,IAGrCxP,IACN,MAEJ,CACD1Q,IAAK,WACLN,MAAO,SAAkBwuC,GACvB,OAAOkW,GAA8B,EAAEnW,SAASC,KAEjD,CACDluC,IAAK,QACLN,MAAO,SAAe4Y,GACpB,OAAOA,EAAQS,aAAa,WArFMpL,EAmCb,CAAC,CACxB3N,IAAK,SACLN,MAAO,SAAgBV,EAAMU,GACvB8pD,GAAiB3jD,QAAQ7G,IAAS,EAChCU,EACFgB,KAAK4X,QAAQ/K,aAAavO,EAAMU,GAEhCgB,KAAK4X,QAAQ8G,gBAAgBpgB,GAG/BgqD,GAAUC,GAAqBW,EAAMvpD,WAAY,SAAUK,MAAM9B,KAAK8B,KAAM1B,EAAMU,KAGrF,CACDM,IAAK,OACLN,MAAO,WACL,IACImqD,EADcnpD,KAAKhB,QACCmqD,MAExB,MAAO,YAAahlD,OAAOglD,EAAO,MAAOhlD,OAAOglD,EAAO,aAtDsBd,GAAuBj/C,EAAYzJ,UAAWsN,GAAiBC,GAAam7C,GAAuBj/C,EAAa8D,GAyF1Lg8C,EAjEsB,CAkE7BjxC,EAA0B,GAE5B8wC,GAAYj+C,SAAW,QACvBi+C,GAAY16C,UAAY,WACxB06C,GAAYvwC,QAAU,SACO,IAAI2wC,GAASJ,GAEtC1uB,GAAOz8B,EAAoB,IAG3BwrD,GAASxrD,EAAoB,IAG7B8C,GAAQ9C,EAAoB,GAC5Bo/B,GAA6Bp/B,EAAoB4B,EAAEkB,IAGnDu8B,GAAcr/B,EAAoB,GAGtC,SAASyrD,GAAa9hD,GAA6V,OAAhP8hD,GAArD,oBAAXvqD,QAAoD,kBAApBA,OAAOiE,SAAwC,SAAiBwE,GAAO,cAAcA,GAAgC,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXzI,QAAyByI,EAAIC,cAAgB1I,QAAUyI,IAAQzI,OAAOa,UAAY,gBAAkB4H,IAA8BA,GAEvY,SAASK,GAAeC,EAAK7J,GAAK,OAUlC,SAAyB6J,GAAO,GAAIjH,MAAMC,QAAQgH,GAAM,OAAOA,EAVtBC,CAAgBD,IAQzD,SAA+BA,EAAK7J,GAAK,IAAI+J,EAAY,MAAPF,EAAc,KAAyB,qBAAX/I,QAA0B+I,EAAI/I,OAAOiE,WAAa8E,EAAI,cAAe,GAAU,MAANE,EAAJ,CAAwB,IAAkDC,EAAIC,EAAlDC,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAmB,IAAM,IAAKL,EAAKA,EAAG7J,KAAK2J,KAAQM,GAAMH,EAAKD,EAAG7E,QAAQmF,QAAoBH,EAAK9G,KAAK4G,EAAGhJ,QAAYhB,GAAKkK,EAAKhH,SAAWlD,GAA3DmK,GAAK,IAAoE,MAAOG,GAAOF,GAAK,EAAMH,EAAKK,EAAO,QAAU,IAAWH,GAAsB,MAAhBJ,EAAW,QAAWA,EAAW,SAAO,QAAU,GAAIK,EAAI,MAAMH,GAAQ,OAAOC,GARzbK,CAAsBV,EAAK7J,IAI5F,SAAqCQ,EAAGgK,GAAU,GAAKhK,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAOiK,GAAkBjK,EAAGgK,GAAS,IAAIhJ,EAAIf,OAAOkB,UAAU+I,SAASxK,KAAKM,GAAGkE,MAAM,GAAI,GAAiE,MAAnD,WAANlD,GAAkBhB,EAAEgJ,cAAahI,EAAIhB,EAAEgJ,YAAYlJ,MAAgB,QAANkB,GAAqB,QAANA,EAAoBoB,MAAM+H,KAAKnK,GAAc,cAANgB,GAAqB,2CAA2CoJ,KAAKpJ,GAAWiJ,GAAkBjK,EAAGgK,QAAzG,GAJ3MK,CAA4BhB,EAAK7J,IAEnI,WAA8B,MAAM,IAAI8K,UAAU,6IAFuFC,GAMzI,SAASN,GAAkBZ,EAAKmB,IAAkB,MAAPA,GAAeA,EAAMnB,EAAI3G,UAAQ8H,EAAMnB,EAAI3G,QAAQ,IAAK,IAAIlD,EAAI,EAAGiL,EAAO,IAAIrI,MAAMoI,GAAMhL,EAAIgL,EAAKhL,IAAOiL,EAAKjL,GAAK6J,EAAI7J,GAAM,OAAOiL,EAMhL,SAASqgD,GAAqBngD,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIN,UAAU,qCAErH,SAASygD,GAAuBjgD,EAAQC,GAAS,IAAK,IAAIvL,EAAI,EAAGA,EAAIuL,EAAMrI,OAAQlD,IAAK,CAAE,IAAIwL,EAAaD,EAAMvL,GAAIwL,EAAW7K,WAAa6K,EAAW7K,aAAc,EAAO6K,EAAW9B,cAAe,EAAU,UAAW8B,IAAYA,EAAW7B,UAAW,GAAMlJ,OAAOC,eAAe4K,EAAQE,EAAWlK,IAAKkK,IAElT,SAASggD,GAAkBpgD,EAAa6D,EAAYC,GAA6J,OAA1ID,GAAYs8C,GAAuBngD,EAAYzJ,UAAWsN,GAAiBC,GAAaq8C,GAAuBngD,EAAa8D,GAAqB9D,EAExN,SAASqgD,GAAUngD,EAAQ5J,EAAUgjB,GAAsW,OAArS+mC,GAA9B,qBAAZ9mC,SAA2BA,QAAQ/jB,IAAmB+jB,QAAQ/jB,IAA0B,SAAc0K,EAAQ5J,EAAUgjB,GAAY,IAAIrd,EAEpM,SAA6B5F,EAAQC,GAAY,MAAQjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAAmE,QAAtDD,EAASiqD,GAAqBjqD,MAAuC,OAAOA,EAFYkqD,CAAoBrgD,EAAQ5J,GAAW,GAAK2F,EAAL,CAAmB,IAAIyd,EAAOrkB,OAAOskB,yBAAyB1d,EAAM3F,GAAW,OAAIojB,EAAKlkB,IAAckkB,EAAKlkB,IAAIV,KAAKwkB,GAAoBI,EAAK9jB,SAA6BsK,EAAQ5J,EAAUgjB,GAAYpZ,GAI1b,SAASsgD,GAAehlC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/b,UAAU,sDAAyD8b,EAASjlB,UAAYlB,OAAOY,OAAOwlB,GAAcA,EAAWllB,UAAW,CAAE6H,YAAa,CAAExI,MAAO4lB,EAAUjd,UAAU,EAAMD,cAAc,KAAemd,GAAYglC,GAAqBjlC,EAAUC,GAE7X,SAASglC,GAAqBrrD,EAAGqB,GAAoH,OAA/GgqD,GAAuBprD,OAAO+X,gBAAkB,SAAyBhY,EAAGqB,GAAsB,OAAjBrB,EAAEiY,UAAY5W,EAAUrB,IAAkCA,EAAGqB,GAEpL,SAASiqD,GAAkB5mC,GAAW,IAAIC,EAM1C,WAA4C,GAAuB,qBAAZR,UAA4BA,QAAQS,UAAW,OAAO,EAAO,GAAIT,QAAQS,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQ5jB,UAAU6jB,QAAQtlB,KAAKykB,QAAQS,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAOvI,GAAK,OAAO,GAN9P+uC,GAAkC,OAAO,WAAkC,IAA2CrmC,EAAvCC,EAAQ+lC,GAAqBxmC,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAY8lC,GAAqB1pD,MAAMwH,YAAakc,EAASf,QAAQS,UAAUO,EAAO7Z,UAAW8Z,QAAqBF,EAASC,EAAMlR,MAAMzS,KAAM8J,WAAc,OAAOkgD,GAAgChqD,KAAM0jB,IAErb,SAASsmC,GAAgClmC,EAAM5lB,GAAQ,OAAIA,GAAgC,WAAvBmrD,GAAanrD,IAAsC,oBAATA,EAE9G,SAAqC4lB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,EAFRmmC,CAA4BnmC,GAA3C5lB,EAM7I,SAASwrD,GAAqBlrD,GAA6J,OAAxJkrD,GAAuBjrD,OAAO+X,eAAiB/X,OAAOwlB,eAAiB,SAAyBzlB,GAAK,OAAOA,EAAEiY,WAAahY,OAAOwlB,eAAezlB,KAAmCA,GAKvN,IAAI0rD,GAAyB,SAAU5vB,GACrCsvB,GAAeM,EAAW5vB,GAE1B,IAAI3jB,EAASmzC,GAAkBI,GAE/B,SAASA,IAGP,OAFAZ,GAAqBtpD,KAAMkqD,GAEpBvzC,EAAOlE,MAAMzS,KAAM8J,WAgE5B,OA7DA0/C,GAAkBU,EAAW,CAAC,CAC5B5qD,IAAK,aACLN,MAAO,WACL,OAAIgB,KAAKwZ,OACAxZ,KAAKwZ,OAAOY,SAASjV,QAAQnF,OAG9B,IAET,CACDV,IAAK,SACLN,MAAO,SAAgBV,EAAMU,GACvBV,IAAS4rD,EAAUp/C,UAAY9L,EACjCgB,KAAK4X,QAAQ/K,aAAa,WAAY7N,GAEtCyqD,GAAUC,GAAqBQ,EAAUvqD,WAAY,SAAUK,MAAM9B,KAAK8B,KAAM1B,EAAMU,KAGzF,CACDM,IAAK,MACLN,MAAO,WACL,OAAOgB,KAAKwZ,SAEb,CACDla,IAAK,YACLN,MAAO,WACL,OAAIgB,KAAKulC,MACAvlC,KAAKulC,MAAM4kB,aAGZ,IAET,CACD7qD,IAAK,QACLN,MAAO,WACL,OAAOgB,KAAKulC,OAASvlC,KAAKulC,MAAMf,WAEhC,CAAC,CACHllC,IAAK,SACLN,MAAO,SAAgBA,GACrB,IAAIqO,EAAOo8C,GAAUC,GAAqBQ,GAAY,SAAUlqD,MAAM9B,KAAK8B,MAQ3E,OANIhB,EACFqO,EAAKR,aAAa,WAAY7N,GAE9BqO,EAAKR,aAAa,WAAYu9C,MAGzB/8C,IAER,CACD/N,IAAK,UACLN,MAAO,SAAiB4Y,GACtB,GAAIA,EAAQowC,aAAa,YACvB,OAAOpwC,EAAQS,aAAa,gBAO3B6xC,EAxEoB,CAyE3BjyC,EAAuB,GAEzBiyC,GAAUp/C,SAAW,QACrBo/C,GAAU1xC,QAAU,CAAC,KAAM,MAE3B,IAAI6xC,GAAwB,SAAUlwB,GACpCyvB,GAAeS,EAAUlwB,GAEzB,IAAI5O,EAAUu+B,GAAkBO,GAEhC,SAASA,IAGP,OAFAf,GAAqBtpD,KAAMqqD,GAEpB9+B,EAAQ9Y,MAAMzS,KAAM8J,WA+D7B,OA5DA0/C,GAAkBa,EAAU,CAAC,CAC3B/qD,IAAK,aACLN,MAAO,WACL,GAAIyqD,GAAUC,GAAqBW,EAAS1qD,WAAY,aAAcK,MAAM9B,KAAK8B,OAAoC,MAA3BA,KAAKkD,KAAKkX,SAASlF,KAAc,CACzH,IAAIo1C,EAAWtqD,KAAKoa,SAASlF,KAAKlF,UAC9Bu6C,EAAWvqD,KAAKoa,SAASjF,KAAKnF,UAC9Bw6C,EAAWxqD,KAAKkD,KAAKkX,SAASlF,KAAKlF,UACnCy6C,EAAWzqD,KAAKkD,KAAKkX,SAASjF,KAAKnF,UACvC,OAAOs6C,EAAS9lB,QAAU+lB,EAAS/lB,OAAS8lB,EAAS9lB,QAAUgmB,EAAShmB,OAAS8lB,EAAS9lB,QAAUimB,EAASjmB,MAG/G,OAAO,IAER,CACDllC,IAAK,WACLN,MAAO,WAIL,IAHA,IAAIimB,EACArb,EAAQ5J,KAEHokB,EAAOta,UAAU5I,OAAQqT,EAAO,IAAI3T,MAAMwjB,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E9P,EAAK8P,GAAQva,UAAUua,IAGxBY,EAAQwkC,GAAUC,GAAqBW,EAAS1qD,WAAY,WAAYK,OAAO9B,KAAKuU,MAAMwS,EAAO,CAACjlB,MAAMmE,OAAOoQ,IAEhHvU,KAAKoa,SAASpY,SAAQ,SAAUkZ,GAC9B,GAAkB,MAAdA,EAAMhY,KAAV,CACA,IAAIwnD,EAAexvC,EAAMlL,UACrB2zB,EAAczoB,EAAMhY,KAAK8M,UAE7B,GAAI06C,EAAalmB,QAAUb,EAAYa,MAAO,CAC5C,IAAIthC,EAAO0G,EAAMwS,WAAWlB,GAExBhY,GACFA,EAAKmX,WAIHzQ,EAAM8L,MACR9L,EAAM8L,KAAK2E,kBAKlB,CACD/a,IAAK,YACLN,MAAO,WACL,OAAIgB,KAAKwZ,OACAxZ,KAAKwZ,OAAOY,SAASjV,QAAQnF,OAG9B,IAET,CACDV,IAAK,QACLN,MAAO,WACL,OAAOgB,KAAKwZ,QAAUxZ,KAAKwZ,OAAOA,WAI/B6wC,EAvEmB,CAwE1B1gD,EAA2B,GAE7B0gD,GAASv/C,SAAW,YACpBu/C,GAAS7xC,QAAU,KAEnB,IAAImyC,GAAyB,SAAUC,GACrChB,GAAee,EAAWC,GAE1B,IAAIpwB,EAAUsvB,GAAkBa,GAEhC,SAASA,IAGP,OAFArB,GAAqBtpD,KAAM2qD,GAEpBnwB,EAAQ/nB,MAAMzS,KAAM8J,WAG7B,OAAO6gD,EAXoB,CAY3BhhD,EAA2B,GAE7BghD,GAAU7/C,SAAW,aACrB6/C,GAAUnyC,QAAU,CAAC,QAAS,SAE9B,IAAIqyC,GAA8B,SAAUC,GAC1ClB,GAAeiB,EAAgBC,GAE/B,IAAIlS,EAAUkR,GAAkBe,GAEhC,SAASA,IAGP,OAFAvB,GAAqBtpD,KAAM6qD,GAEpBjS,EAAQnmC,MAAMzS,KAAM8J,WAoG7B,OAjGA0/C,GAAkBqB,EAAgB,CAAC,CACjCvrD,IAAK,eACLN,MAAO,WACL,IAAI0P,EAAS1O,KAET+qD,EAAO/qD,KAAK8b,YAAYuuC,IACxBW,EAAaD,EAAKzoD,QAAO,SAAUgR,EAAKiyB,GAC1C,OAAOzhC,KAAKwP,IAAIiyB,EAAInrB,SAASlZ,OAAQoS,KACpC,GACHy3C,EAAK/oD,SAAQ,SAAUujC,GACrB,IAAI3kC,MAAMoqD,EAAazlB,EAAInrB,SAASlZ,QAAQ+pD,KAAK,GAAGjpD,SAAQ,WAC1D,IAAIhD,EAEqB,MAArBumC,EAAInrB,SAASlF,OACflW,EAAQkrD,GAAUl6C,QAAQu1B,EAAInrB,SAASlF,KAAK0C,UAG9C,IAAIxG,EAAO1C,EAAO3D,OAAO1L,OAAO6qD,GAAUp/C,SAAU9L,GAEpDumC,EAAI1qB,YAAYzJ,GAChBA,EAAKiJ,mBAIV,CACD/a,IAAK,QACLN,MAAO,SAAeksD,GACpB,OAAOlrD,KAAK+qD,OAAO9oD,KAAI,SAAUsjC,GAC/B,OAAOA,EAAInrB,SAAS9E,GAAG41C,QAG1B,CACD5rD,IAAK,eACLN,MAAO,SAAsBuC,GAC3B,IAEI8b,EADoBzV,GADD5H,KAAK4b,WAAW+uC,IACkB,GAC5B,GAEjB,MAARttC,GAAsC,MAAtBA,EAAKjD,SAASlF,MAClCmI,EAAKjD,SAASpY,SAAQ,SAAUujC,GAC9B,IAAInB,EAAOmB,EAAInrB,SAAS9E,GAAG/T,GAEf,MAAR6iC,GACFA,EAAK3uB,cAIV,CACDnW,IAAK,eACLN,MAAO,SAAsBuC,GAC3B,IAAI4N,EAASnP,KAITqd,EADoBzV,GADA5H,KAAK4b,WAAW+uC,IACkB,GAC7B,GAEjB,MAARttC,GAAsC,MAAtBA,EAAKjD,SAASlF,MAClCmI,EAAKjD,SAASpY,SAAQ,SAAUujC,GAC9B,IAAIprB,EAAMorB,EAAInrB,SAAS9E,GAAG/T,GACtBvC,EAAQkrD,GAAUl6C,QAAQu1B,EAAInrB,SAASlF,KAAK0C,SAE5CwsB,EAAOj1B,EAAOpE,OAAO1L,OAAO6qD,GAAUp/C,SAAU9L,GAEpDumC,EAAI/2B,aAAa41B,EAAMjqB,QAG1B,CACD7a,IAAK,YACLN,MAAO,SAAmBuC,GACxB,IAAI0O,EAASjQ,KAITqd,EADoBzV,GADA5H,KAAK4b,WAAW+uC,IACkB,GAC7B,GAE7B,GAAY,MAARttC,GAAsC,MAAtBA,EAAKjD,SAASlF,KAAlC,CACA,IAAI8nC,EAAKoN,KACL7kB,EAAMvlC,KAAK+K,OAAO1L,OAAOgrD,GAASv/C,UACtCuS,EAAKjD,SAASlF,KAAKkF,SAASpY,SAAQ,WAClC,IAAIoiC,EAAOn0B,EAAOlF,OAAO1L,OAAO6qD,GAAUp/C,SAAUkyC,GAEpDzX,EAAI1qB,YAAYupB,MAElB,IAAIjqB,EAAMkD,EAAKjD,SAAS9E,GAAG/T,GAC3B8b,EAAK7O,aAAa+2B,EAAKprB,MAExB,CACD7a,IAAK,OACLN,MAAO,WACL,IAAIqe,EAAOrd,KAAKoa,SAASlF,KACzB,OAAY,MAARmI,EAAqB,GAClBA,EAAKjD,SAASnY,KAAI,SAAUsjC,GACjC,OAAOA,SAKNslB,EA5GyB,CA6GhClhD,EAA2B,GAW7B,SAASygD,KACP,IAAIpN,EAAKl5C,KAAKo5C,SAASx0C,SAAS,IAAIhG,MAAM,EAAG,GAC7C,MAAO,OAAOyB,OAAO64C,GAKvB,SAASmO,GAAqB5jD,GAA6W,OAAhQ4jD,GAArD,oBAAXrsD,QAAoD,kBAApBA,OAAOiE,SAAgD,SAAiBwE,GAAO,cAAcA,GAAwC,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXzI,QAAyByI,EAAIC,cAAgB1I,QAAUyI,IAAQzI,OAAOa,UAAY,gBAAkB4H,IAAsCA,GAEva,SAAS6jD,GAAoBvjD,EAAK7J,GAAK,OAUvC,SAA8B6J,GAAO,GAAIjH,MAAMC,QAAQgH,GAAM,OAAOA,EAVtBwjD,CAAqBxjD,IAQnE,SAAoCA,EAAK7J,GAAK,IAAI+J,EAAY,MAAPF,EAAc,KAAyB,qBAAX/I,QAA0B+I,EAAI/I,OAAOiE,WAAa8E,EAAI,cAAe,GAAU,MAANE,EAAJ,CAAwB,IAAkDC,EAAIC,EAAlDC,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAmB,IAAM,IAAKL,EAAKA,EAAG7J,KAAK2J,KAAQM,GAAMH,EAAKD,EAAG7E,QAAQmF,QAAoBH,EAAK9G,KAAK4G,EAAGhJ,QAAYhB,GAAKkK,EAAKhH,SAAWlD,GAA3DmK,GAAK,IAAoE,MAAOG,GAAOF,GAAK,EAAMH,EAAKK,EAAO,QAAU,IAAWH,GAAsB,MAAhBJ,EAAW,QAAWA,EAAW,SAAO,QAAU,GAAIK,EAAI,MAAMH,GAAQ,OAAOC,GARpbojD,CAA2BzjD,EAAK7J,IAI3G,SAA0CQ,EAAGgK,GAAU,GAAKhK,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAO+sD,GAAuB/sD,EAAGgK,GAAS,IAAIhJ,EAAIf,OAAOkB,UAAU+I,SAASxK,KAAKM,GAAGkE,MAAM,GAAI,GAAiE,MAAnD,WAANlD,GAAkBhB,EAAEgJ,cAAahI,EAAIhB,EAAEgJ,YAAYlJ,MAAgB,QAANkB,GAAqB,QAANA,EAAoBoB,MAAM+H,KAAKnK,GAAc,cAANgB,GAAqB,2CAA2CoJ,KAAKpJ,GAAW+rD,GAAuB/sD,EAAGgK,QAA9G,GAJtMgjD,CAAiC3jD,EAAK7J,IAEvJ,WAAmC,MAAM,IAAI8K,UAAU,6IAFsG2iD,GAM7J,SAASF,GAAuB1jD,EAAKmB,IAAkB,MAAPA,GAAeA,EAAMnB,EAAI3G,UAAQ8H,EAAMnB,EAAI3G,QAAQ,IAAK,IAAIlD,EAAI,EAAGiL,EAAO,IAAIrI,MAAMoI,GAAMhL,EAAIgL,EAAKhL,IAAOiL,EAAKjL,GAAK6J,EAAI7J,GAAM,OAAOiL,EAMrL,SAASyiD,GAA6BviD,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIN,UAAU,qCAE7H,SAAS6iD,GAA+BriD,EAAQC,GAAS,IAAK,IAAIvL,EAAI,EAAGA,EAAIuL,EAAMrI,OAAQlD,IAAK,CAAE,IAAIwL,EAAaD,EAAMvL,GAAIwL,EAAW7K,WAAa6K,EAAW7K,aAAc,EAAO6K,EAAW9B,cAAe,EAAU,UAAW8B,IAAYA,EAAW7B,UAAW,GAAMlJ,OAAOC,eAAe4K,EAAQE,EAAWlK,IAAKkK,IAM1T,SAASoiD,GAA6BptD,EAAGqB,GAA4H,OAAvH+rD,GAA+BntD,OAAO+X,gBAAkB,SAAyBhY,EAAGqB,GAAsB,OAAjBrB,EAAEiY,UAAY5W,EAAUrB,IAA0CA,EAAGqB,GAE5M,SAASgsD,GAA0B3oC,GAAW,IAAIC,EAMlD,WAAoD,GAAuB,qBAAZR,UAA4BA,QAAQS,UAAW,OAAO,EAAO,GAAIT,QAAQS,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQ5jB,UAAU6jB,QAAQtlB,KAAKykB,QAAQS,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAOvI,GAAK,OAAO,GAN9P8wC,GAA0C,OAAO,WAAkC,IAAmDpoC,EAA/CC,EAAQooC,GAA6B7oC,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYmoC,GAA6B/rD,MAAMwH,YAAakc,EAASf,QAAQS,UAAUO,EAAO7Z,UAAW8Z,QAAqBF,EAASC,EAAMlR,MAAMzS,KAAM8J,WAAc,OAAOkiD,GAAwChsD,KAAM0jB,IAE7d,SAASsoC,GAAwCloC,EAAM5lB,GAAQ,OAAIA,GAAwC,WAA/BitD,GAAqBjtD,IAAsC,oBAATA,EAE9H,SAA6C4lB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,EAFAmoC,CAAoCnoC,GAAnD5lB,EAM7J,SAAS6tD,GAA6BvtD,GAAqK,OAAhKutD,GAA+BttD,OAAO+X,eAAiB/X,OAAOwlB,eAAiB,SAAyBzlB,GAAK,OAAOA,EAAEiY,WAAahY,OAAOwlB,eAAezlB,KAA2CA,GAhD/OqsD,GAAe//C,SAAW,kBAC1B+/C,GAAeryC,QAAU,QACzBqyC,GAAe3uC,gBAAkB,CAACyuC,IAClCA,GAAUpwC,kBAAoBswC,GAC9BF,GAAUzuC,gBAAkB,CAACmuC,IAC7BA,GAAS9vC,kBAAoBowC,GAC7BN,GAASnuC,gBAAkB,CAACguC,IAC5BA,GAAU3vC,kBAAoB8vC,GAgD9B,IAqMiC6B,GArMF,SAAU9uB,IAnBzC,SAAgCxY,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/b,UAAU,sDAAyD8b,EAASjlB,UAAYlB,OAAOY,OAAOwlB,GAAcA,EAAWllB,UAAW,CAAE6H,YAAa,CAAExI,MAAO4lB,EAAUjd,UAAU,EAAMD,cAAc,KAAemd,GAAY+mC,GAA6BhnC,EAAUC,GAoB3YsnC,CAAuBC,EAAOhvB,GAE9B,IAxBiCh0B,EAAa6D,EAAYC,EAwBtDyJ,EAASk1C,GAA0BO,GAEvC,SAASA,IACP,IAAIxiD,EAEJ8hD,GAA6B1rD,KAAMosD,GAEnC,IAAK,IAAIhoC,EAAOta,UAAU5I,OAAQqT,EAAO,IAAI3T,MAAMwjB,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E9P,EAAK8P,GAAQva,UAAUua,GAOzB,OAJAza,EAAQ+M,EAAOzY,KAAKuU,MAAMkE,EAAQ,CAAC3W,MAAMmE,OAAOoQ,KAE1C83C,qBAECziD,EAgLT,OAvNiCR,EA0CPgjD,EA1CgCl/C,EA6MtD,CAAC,CACH5N,IAAK,WACLN,MAAO,WACL0iD,EAA4B,EAAE9zC,SAASs8C,IACvCxI,EAA4B,EAAE9zC,SAASy8C,IACvC3I,EAA4B,EAAE9zC,SAAS+8C,IACvCjJ,EAA4B,EAAE9zC,SAASi9C,QAnNG59C,EA0Cb,CAAC,CAChC3N,IAAK,gBACLN,MAAO,WACLgB,KAAKwkB,MAAMzZ,OAAO+Q,YAAY+uC,IAAgB7oD,SAAQ,SAAUwiC,GAC9DA,EAAM8nB,oBAGT,CACDhtD,IAAK,eACLN,MAAO,WACL,IACIutD,EAAkBnB,GADDprD,KAAKslC,WACgC,GACtDd,EAAQ+nB,EAAgB,GACxBnoB,EAAOmoB,EAAgB,GAEf,MAARnoB,IACJI,EAAMgoB,aAAapoB,EAAKqoB,cACxBzsD,KAAKwkB,MAAMhY,OAAOk1C,EAA4B,EAAEtyC,QAAQmE,SAEzD,CACDjU,IAAK,YACLN,MAAO,WACL,IAEIumC,EADkB6lB,GADAprD,KAAKslC,WACgC,GACjC,GAEf,MAAPC,IACJA,EAAI9vB,SACJzV,KAAKwkB,MAAMhY,OAAOk1C,EAA4B,EAAEtyC,QAAQmE,SAEzD,CACDjU,IAAK,cACLN,MAAO,WACL,IAEIwlC,EADkB4mB,GADAprD,KAAKslC,WACgC,GAC/B,GAE5B,GAAa,MAATd,EAAJ,CACA,IAAI1+B,EAAS0+B,EAAM1+B,SACnB0+B,EAAM/uB,SACNzV,KAAKwkB,MAAMhY,OAAOk1C,EAA4B,EAAEtyC,QAAQmE,MACxDvT,KAAKwkB,MAAM1U,aAAahK,EAAQ47C,EAA4B,EAAEtyC,QAAQW,WAEvE,CACDzQ,IAAK,WACLN,MAAO,WACL,IAAIsQ,EAAQxF,UAAU5I,OAAS,QAAsB6I,IAAjBD,UAAU,GAAmBA,UAAU,GAAK9J,KAAKwkB,MAAMjV,eAC3F,GAAa,MAATD,EAAe,MAAO,CAAC,KAAM,KAAM,MAAO,GAE9C,IAAIo9C,EAAsB1sD,KAAKwkB,MAAMme,QAAQrzB,EAAM/N,OAC/CorD,EAAuBvB,GAAoBsB,EAAqB,GAChEtoB,EAAOuoB,EAAqB,GAC5B7mD,EAAS6mD,EAAqB,GAElC,GAAY,MAARvoB,GAAgBA,EAAKpqB,QAAQlP,WAAao/C,GAAUp/C,SACtD,MAAO,CAAC,KAAM,KAAM,MAAO,GAG7B,IAAIy6B,EAAMnB,EAAK5qB,OACXgrB,EAAQe,EAAI/rB,OAAOA,OACvB,MAAO,CAACgrB,EAAOe,EAAKnB,EAAMt+B,KAE3B,CACDxG,IAAK,eACLN,MAAO,SAAsB8G,GAC3B,IAAIwJ,EAAQtP,KAAKwkB,MAAMjV,eAGnBq9C,EAAkBxB,GADAprD,KAAKslC,SAASh2B,GACuB,GACvDk1B,EAAQooB,EAAgB,GACxBrnB,EAAMqnB,EAAgB,GACtBxoB,EAAOwoB,EAAgB,GAE3B,GAAY,MAARxoB,EAAJ,CACA,IAAI8mB,EAAS9mB,EAAKqoB,aAClBjoB,EAAMqoB,aAAa3B,EAASplD,GAC5B9F,KAAKwkB,MAAMhY,OAAOk1C,EAA4B,EAAEtyC,QAAQmE,MACxD,IAAIW,EAAQqxB,EAAI4kB,YAED,IAAXrkD,IACFoO,GAAS,GAGXlU,KAAKwkB,MAAM1U,aAAaR,EAAM/N,MAAQ2S,EAAO5E,EAAMpO,OAAQwgD,EAA4B,EAAEtyC,QAAQW,WAElG,CACDzQ,IAAK,mBACLN,MAAO,WACLgB,KAAK6sD,aAAa,KAEnB,CACDvtD,IAAK,oBACLN,MAAO,WACLgB,KAAK6sD,aAAa,KAEnB,CACDvtD,IAAK,YACLN,MAAO,SAAmB8G,GACxB,IAAIwJ,EAAQtP,KAAKwkB,MAAMjV,eAGnBu9C,EAAmB1B,GADDprD,KAAKslC,SAASh2B,GACwB,GACxDk1B,EAAQsoB,EAAiB,GACzBvnB,EAAMunB,EAAiB,GAG3B,GAAY,MAFDA,EAAiB,GAE5B,CACA,IAAIvrD,EAAQgkC,EAAI4kB,YAChB3lB,EAAMuoB,UAAUxrD,EAAQuE,GACxB9F,KAAKwkB,MAAMhY,OAAOk1C,EAA4B,EAAEtyC,QAAQmE,MAEpDzN,EAAS,EACX9F,KAAKwkB,MAAM1U,aAAaR,EAAOoyC,EAA4B,EAAEtyC,QAAQW,QAErE/P,KAAKwkB,MAAM1U,aAAaR,EAAM/N,MAAQgkC,EAAInrB,SAASlZ,OAAQoO,EAAMpO,OAAQwgD,EAA4B,EAAEtyC,QAAQW,WAGlH,CACDzQ,IAAK,iBACLN,MAAO,WACLgB,KAAK+sD,UAAU,KAEhB,CACDztD,IAAK,iBACLN,MAAO,WACLgB,KAAK+sD,UAAU,KAEhB,CACDztD,IAAK,cACLN,MAAO,SAAqB+rD,EAAMiC,GAChC,IAAI19C,EAAQtP,KAAKwkB,MAAMjV,eACvB,GAAa,MAATD,EAAJ,CACA,IAAI1L,EAAQ,IAAIhD,MAAMmqD,GAAME,KAAK,GAAG3oD,QAAO,SAAU8T,GACnD,IAAIrI,EAAO,IAAInN,MAAMosD,GAAS/B,KAAK,MAAMzmD,KAAK,IAC9C,OAAO4R,EAAKtV,OAAOiN,EAAM,CACvBy2B,MAAO4lB,UAER,IAAIptB,GAAcvtB,GAAInO,OAAOgO,EAAM/N,QACtCvB,KAAKwkB,MAAMya,eAAer7B,EAAO89C,EAA4B,EAAEtyC,QAAQmE,MACvEvT,KAAKwkB,MAAM1U,aAAaR,EAAM/N,MAAOmgD,EAA4B,EAAEtyC,QAAQW,QAC3E/P,KAAKitD,mBAEN,CACD3tD,IAAK,qBACLN,MAAO,WACL,IAAI0P,EAAS1O,KAEbA,KAAKwkB,MAAM9Y,GAAGg2C,EAA4B,EAAE/1C,OAAOka,iBAAiB,SAAU5Z,GAC5EA,EAAUsM,MAAK,SAAU6E,GACvB,OAAyE,IAArE,CAAC,KAAM,KAAM,QAAS,SAASjY,QAAQiY,EAAS9T,OAAOkP,WACzD9J,EAAO8V,MAAM5R,KAAK8uC,EAA4B,EAAE/1C,OAAOG,aAAa,SAAUlI,EAAOspD,EAAKlhD,GACpFA,IAAW01C,EAA4B,EAAEtyC,QAAQmE,MAErD7E,EAAOu+C,oBAGF,cAtMwEtB,GAA+BviD,EAAYzJ,UAAWsN,GAAiBC,GAAay+C,GAA+BviD,EAAa8D,GAuNlNk/C,EAlMsB,CAmM7BnvB,GAA6B,GAI/B,SAASkwB,GAAsB5lD,GAA+W,OAAlQ4lD,GAArD,oBAAXruD,QAAoD,kBAApBA,OAAOiE,SAAiD,SAAiBwE,GAAO,cAAcA,GAAyC,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXzI,QAAyByI,EAAIC,cAAgB1I,QAAUyI,IAAQzI,OAAOa,UAAY,gBAAkB4H,IAAuCA,GAE3a,SAAS6lD,GAA8BjkD,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIN,UAAU,qCAE9H,SAASukD,GAAgC/jD,EAAQC,GAAS,IAAK,IAAIvL,EAAI,EAAGA,EAAIuL,EAAMrI,OAAQlD,IAAK,CAAE,IAAIwL,EAAaD,EAAMvL,GAAIwL,EAAW7K,WAAa6K,EAAW7K,aAAc,EAAO6K,EAAW9B,cAAe,EAAU,UAAW8B,IAAYA,EAAW7B,UAAW,GAAMlJ,OAAOC,eAAe4K,EAAQE,EAAWlK,IAAKkK,IAM3T,SAAS8jD,GAA8B9uD,EAAGqB,GAA6H,OAAxHytD,GAAgC7uD,OAAO+X,gBAAkB,SAAyBhY,EAAGqB,GAAsB,OAAjBrB,EAAEiY,UAAY5W,EAAUrB,IAA2CA,EAAGqB,GAE/M,SAAS0tD,GAA2BrqC,GAAW,IAAIC,EAMnD,WAAqD,GAAuB,qBAAZR,UAA4BA,QAAQS,UAAW,OAAO,EAAO,GAAIT,QAAQS,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQ5jB,UAAU6jB,QAAQtlB,KAAKykB,QAAQS,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAOvI,GAAK,OAAO,GAN9PwyC,GAA2C,OAAO,WAAkC,IAAoD9pC,EAAhDC,EAAQ8pC,GAA8BvqC,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAY6pC,GAA8BztD,MAAMwH,YAAakc,EAASf,QAAQS,UAAUO,EAAO7Z,UAAW8Z,QAAqBF,EAASC,EAAMlR,MAAMzS,KAAM8J,WAAc,OAAO4jD,GAAyC1tD,KAAM0jB,IAEle,SAASgqC,GAAyC5pC,EAAM5lB,GAAQ,OAAIA,GAAyC,WAAhCivD,GAAsBjvD,IAAsC,oBAATA,EAEhI,SAA8C4lB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,EAFC6pC,CAAqC7pC,GAApD5lB,EAM/J,SAASuvD,GAA8BjvD,GAAsK,OAAjKivD,GAAgChvD,OAAO+X,eAAiB/X,OAAOwlB,eAAiB,SAAyBzlB,GAAK,OAAOA,EAAEiY,WAAahY,OAAOwlB,eAAezlB,KAA4CA,GAIlP,IAAIovD,GAA8B,SAAUtiC,IAhB5C,SAAiC1G,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/b,UAAU,sDAAyD8b,EAASjlB,UAAYlB,OAAOY,OAAOwlB,GAAcA,EAAWllB,UAAW,CAAE6H,YAAa,CAAExI,MAAO4lB,EAAUjd,UAAU,EAAMD,cAAc,KAAemd,GAAYyoC,GAA8B1oC,EAAUC,GAiB7YgpC,CAAwBD,EAAgBtiC,GAExC,IArBkCliB,EAAa6D,EAAYC,EAqBvDyJ,EAAS42C,GAA2BK,GAExC,SAASA,IAGP,OAFAR,GAA8BptD,KAAM4tD,GAE7Bj3C,EAAOlE,MAAMzS,KAAM8J,WA2B5B,OArDkCV,EA6BPwkD,EA7BgC1gD,EA8CvD,CAAC,CACH5N,IAAK,QACLN,MAAO,WACL,MAAO,SAjDoCiO,EA6BJ,CAAC,CAC1C3N,IAAK,SACLN,MAAO,WACL,OAAO,IAER,CACDM,IAAK,QACLN,MAAO,WACL,MAAO,OAER,CACDM,IAAK,WACLN,MAAO,WACAgB,KAAK0V,MAAS1V,KAAKkD,MACtBlD,KAAKyV,cA3C+E43C,GAAgCjkD,EAAYzJ,UAAWsN,GAAiBC,GAAamgD,GAAgCjkD,EAAa8D,GAqDrN0gD,EAnCyB,CAoChC/4C,EAAqB,WAEvB+4C,GAAe9iD,SAAW,iBAC1B8iD,GAAep1C,QAAU,KACI,IAAIs1C,GAAkBF,GAEnD,SAASG,GAAiBxmD,GAAqW,OAAxPwmD,GAArD,oBAAXjvD,QAAoD,kBAApBA,OAAOiE,SAA4C,SAAiBwE,GAAO,cAAcA,GAAoC,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXzI,QAAyByI,EAAIC,cAAgB1I,QAAUyI,IAAQzI,OAAOa,UAAY,gBAAkB4H,IAAkCA,GAMvZ,SAASymD,GAA2B1kD,EAAQC,GAAS,IAAK,IAAIvL,EAAI,EAAGA,EAAIuL,EAAMrI,OAAQlD,IAAK,CAAE,IAAIwL,EAAaD,EAAMvL,GAAIwL,EAAW7K,WAAa6K,EAAW7K,aAAc,EAAO6K,EAAW9B,cAAe,EAAU,UAAW8B,IAAYA,EAAW7B,UAAW,GAAMlJ,OAAOC,eAAe4K,EAAQE,EAAWlK,IAAKkK,IAMtT,SAASykD,GAAyBzvD,EAAGqB,GAAwH,OAAnHouD,GAA2BxvD,OAAO+X,gBAAkB,SAAyBhY,EAAGqB,GAAsB,OAAjBrB,EAAEiY,UAAY5W,EAAUrB,IAAsCA,EAAGqB,GAEhM,SAASquD,GAAsBhrC,GAAW,IAAIC,EAM9C,WAAgD,GAAuB,qBAAZR,UAA4BA,QAAQS,UAAW,OAAO,EAAO,GAAIT,QAAQS,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQ5jB,UAAU6jB,QAAQtlB,KAAKykB,QAAQS,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAOvI,GAAK,OAAO,GAN9PmzC,GAAsC,OAAO,WAAkC,IAA+CzqC,EAA3CC,EAAQyqC,GAAyBlrC,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYwqC,GAAyBpuD,MAAMwH,YAAakc,EAASf,QAAQS,UAAUO,EAAO7Z,UAAW8Z,QAAqBF,EAASC,EAAMlR,MAAMzS,KAAM8J,WAAc,OAAOukD,GAAoCruD,KAAM0jB,IAEzc,SAAS2qC,GAAoCvqC,EAAM5lB,GAAQ,OAAIA,GAAoC,WAA3B6vD,GAAiB7vD,IAAsC,oBAATA,EAA8CowD,GAAgCxqC,GAA/C5lB,EAErJ,SAASowD,GAAgCxqC,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,EAIxK,SAASsqC,GAAyB5vD,GAAiK,OAA5J4vD,GAA2B3vD,OAAO+X,eAAiB/X,OAAOwlB,eAAiB,SAAyBzlB,GAAK,OAAOA,EAAEiY,WAAahY,OAAOwlB,eAAezlB,KAAuCA,GAOnO,SAAS+vD,GAAalhD,GACpB,OAAKA,EAAKoP,aAAgBpP,EAAKuU,iBAIxB,IAAIob,GAAcvtB,GAAI3O,OAAO,CAClCgtD,eAAgB,MAJT,IAAI9wB,GAAcvtB,GAAI3O,OAAO,MAQxC,IAwCiC0tD,GAxCM,SAAUpxB,IA7BjD,SAA4BxY,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/b,UAAU,sDAAyD8b,EAASjlB,UAAYlB,OAAOY,OAAOwlB,GAAcA,EAAWllB,UAAW,CAAE6H,YAAa,CAAExI,MAAO4lB,EAAUjd,UAAU,EAAMD,cAAc,KAAemd,GAAYopC,GAAyBrpC,EAAUC,GA8BnY4pC,CAAmBC,EAAWtxB,GAE9B,IAlC6Bh0B,EAAa6D,EAAYC,EAkClDyJ,EAASu3C,GAAsBQ,GAEnC,SAASA,EAAUlqC,EAAO3a,GACxB,IAAID,EA3CiBrC,EAAKjI,EAAKN,EAwD/B,OAtDJ,SAAkCmK,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIN,UAAU,qCA2CrH6lD,CAAyB3uD,KAAM0uD,GAG/B9kD,EAAQ+M,EAAOzY,KAAK8B,KAAMwkB,EAAO3a,GACjC63C,EAA4B,EAAE9zC,UAjDC5O,EAiDkC8uD,IAjDvCxuD,EA+Cf,0BA/CUiI,EAiDkC,IAjDG9I,OAAOC,eAAe6I,EAAKjI,EAAK,CAAEN,MAAOA,EAAOL,YAAY,EAAM+I,cAAc,EAAMC,UAAU,IAAkBJ,EAAIjI,GAAON,EAAgBuI,IAiDrH,GAClFid,EAAMpZ,SAASg2B,WAAW,CACxB9hC,IAAK,QACL+hC,UAAU,GACTz3B,EAAMglD,aAAarvD,KAAK+uD,GAAgC1kD,KAC3D4a,EAAMpZ,SAAS+1B,SAASpB,MAAMr+B,QAAQ8iB,EAAMpZ,SAAS+1B,SAASpB,MAAMl+B,OACpE2iB,EAAMlZ,UAAUooC,WAAW,KAAM6a,IAC1B3kD,EAkBT,OApE6BR,EAqDPslD,GArDoBzhD,EAqDT,CAAC,CAChC3N,IAAK,eACLN,MAAO,SAAsBsQ,GAC3B,IAAIu/C,EAAc7uD,KAAKwkB,MAAMqe,QAAQvzB,EAAM/N,OAAO,GAC9CutD,EAAW9uD,KAAKwkB,MAAMqe,QAAQvzB,EAAM/N,MAAQ,GAAG,GACnDvB,KAAKwkB,MAAMtS,YAAY5C,EAAM/N,MAAO,kBAAkB,EAAM,QAE3C,OAAbutD,GAAqBD,EAAYr1C,SAAWs1C,EAASt1C,QACvDxZ,KAAKwkB,MAAMtS,YAAY5C,EAAM/N,MAAO,kBAAkB,EAAM,QAG9DvB,KAAKwkB,MAAM1U,aAAaR,EAAM/N,MAAQ,EAAGmgD,EAA4B,EAAEtyC,QAAQW,aAhEEi+C,GAA2B5kD,EAAYzJ,UAAWsN,GAAiBC,GAAa8gD,GAA2B5kD,EAAa8D,GAoEtMwhD,EArC8B,CAsCrCzxB,GAA6B,GA6B/B+iB,EAAc,QAAEpyC,SAAS,CACvB,kCAAmCsyC,EAAsC,EACzE,0BAA2BD,EAA0B,EACrD,+BAAgC2C,EAAoC,EACpE,0BAA2BC,EAA0B,EACrD,8BAA+B3C,EAAkC,EACjE,yBAA0B4C,EAAwB,EAClD,yBAA0B1wB,EAAwB,EAClD,0BAA2B6tB,EAA0B,EACrD,+BAAgC2C,EAAoC,EACpE,0BAA2BC,EAA0B,EACrD,8BAA+B3C,EAAkC,EACjE,yBAA0B4C,EAAwB,EAClD,yBAA0B1wB,EAAwB,IACjD,GACH4tB,EAAc,QAAEpyC,SAAS,CACvB,gBAAiBqyC,EAA0B,EAC3C,oBAAqBC,EAAkC,EACvD,iBAAkB32B,EAClB,qBAAsBq5B,EAAoC,EAC1D,gBAAiBC,EAA0B,EAC3C,eAAgBC,EAAwB,EACxC,eAAgB1wB,EAAwB,EACxC,qBAAsBsT,EACtB,qBAAsBrL,GAAsB,EAC5C,iBAAkB8K,EAClB,eAAgBqd,EAChB,eAAgB5d,EAAsB,EACtC,eAAgBvK,GAAmB,EACnC,iBAAkBwK,GAClB,eAAgB6e,GAA8B,EAC9C,iBAAkBc,GAClB,iBAAkB3R,GAClB,oBAAqB/N,GACrB,kBAAmBkiB,GACnB,gBAAiBkB,GACjB,gBAAiBiB,GACjB,iBAAkBC,GAAwB,EAC1C,gBAAiB8C,GACjB,oBAAqBsC,KACpB,GACwCroD,EAA6B,QAAK65C,EAAc,SAIpF,SAASjiD,EAAQD,GA8CxB,SAASixD,EAAUC,EAAOC,EAAOC,EAAYC,GAE3C,GAAIH,IAAUC,EACZ,OAAID,EACK,CAAC,CAfG,EAeUA,IAEhB,GAGT,GAAkB,MAAdE,EAAoB,CACtB,IAAIE,EA6mBR,SAA+BxmC,EAASC,EAASqmC,GAE/C,IAAIhjD,EAAiC,kBAAfgjD,EACpB,CAAE3tD,MAAO2tD,EAAYhuD,OAAQ,GAAMguD,EAAWhjD,SAC5CE,EAAiC,kBAAf8iD,EACpB,KAAOA,EAAW9iD,SAKhBijD,EAAYzmC,EAAQ1nB,OACpBouD,EAAYzmC,EAAQ3nB,OACxB,GAAwB,IAApBgL,EAAShL,SAA8B,OAAbkL,GAAyC,IAApBA,EAASlL,QAAe,CAEzE,IAAIquD,EAAYrjD,EAAS3K,MACrBiuD,EAAY5mC,EAAQlmB,MAAM,EAAG6sD,GAC7BE,EAAW7mC,EAAQlmB,MAAM6sD,GACzBG,EAAiBtjD,EAAWA,EAAS7K,MAAQ,KAG3CouD,EAAYJ,EAAYD,EAAYD,EACxC,IAAuB,OAAnBK,GAA2BA,IAAmBC,MAG9CA,EAAY,GAAKA,EAAYL,GAAjC,CAGA,IAAIM,EAAY/mC,EAAQnmB,MAAM,EAAGitD,GAEjC,IADIE,EAAWhnC,EAAQnmB,MAAMitD,MACZF,EAAjB,CAGA,IAAIK,EAAehsD,KAAKC,IAAIwrD,EAAWI,GACnCI,EAAYP,EAAU9sD,MAAM,EAAGotD,GAC/BE,EAAYJ,EAAUltD,MAAM,EAAGotD,GACnC,GAAIC,IAAcC,EAAlB,CAGA,IAAIC,EAAYT,EAAU9sD,MAAMotD,GAC5BI,EAAYN,EAAUltD,MAAMotD,GAChC,OAAOK,EAAiBJ,EAAWE,EAAWC,EAAWT,KAIzD,GAAuB,OAAnBC,GAA2BA,IAAmBH,EAAlD,CAGA,IAAIlrD,EAASkrD,EAETM,GADAD,EAAY/mC,EAAQnmB,MAAM,EAAG2B,GAClBwkB,EAAQnmB,MAAM2B,IAC7B,GAAIurD,IAAcJ,EAAlB,CAGA,IAAIjnC,EAAezkB,KAAKC,IAAIsrD,EAAYhrD,EAAQirD,EAAYjrD,GACxD+rD,EAAYX,EAAS/sD,MAAM+sD,EAASvuD,OAASqnB,GAC7C8nC,EAAYR,EAASntD,MAAMmtD,EAAS3uD,OAASqnB,GACjD,GAAI6nC,IAAcC,EAKlB,OAFIJ,EAAYR,EAAS/sD,MAAM,EAAG+sD,EAASvuD,OAASqnB,GAChD2nC,EAAYL,EAASntD,MAAM,EAAGmtD,EAAS3uD,OAASqnB,GAC7C4nC,EAAiBX,EAAWS,EAAWC,EAAWE,KAG7D,OAAIlkD,EAAShL,OAAS,GAAKkL,GAAgC,IAApBA,EAASlL,SAGxC6uD,EAAYnnC,EAAQlmB,MAAM,EAAGwJ,EAAS3K,OACtC6uD,EAAYxnC,EAAQlmB,MAAMwJ,EAAS3K,MAAQ2K,EAAShL,QACpD4uD,EAAeC,EAAU7uD,OACzBqnB,EAAe6nC,EAAUlvD,SACzBouD,EAAYQ,EAAevnC,KAG3BynC,EAAYnnC,EAAQnmB,MAAM,EAAGotD,GAC7BO,EAAYxnC,EAAQnmB,MAAM4sD,EAAY/mC,GACtCwnC,IAAcC,GAAaI,IAAcC,KAGzCJ,EAAYrnC,EAAQlmB,MAAMotD,EAAcT,EAAY9mC,GACpD2nC,EAAYrnC,EAAQnmB,MAAMotD,EAAcR,EAAY/mC,GACjD4nC,EAAiBJ,EAAWE,EAAWC,EAAWE,IAItD,KAlsBUE,CAAsBtB,EAAOC,EAAOC,GACnD,GAAIE,EACF,OAAOA,EAKX,IAAImB,EAAeC,EAAkBxB,EAAOC,GACxCwB,EAAezB,EAAM0B,UAAU,EAAGH,GAKtCA,EAAeI,EAJf3B,EAAQA,EAAM0B,UAAUH,GACxBtB,EAAQA,EAAMyB,UAAUH,IAIxB,IAAIK,EAAe5B,EAAM0B,UAAU1B,EAAM9tD,OAASqvD,GAK9CM,EAqBN,SAAuB7B,EAAOC,GAC5B,IAAI4B,EAEJ,IAAK7B,EAEH,MAAO,CAAC,CAnEM,EAmEQC,IAGxB,IAAKA,EAEH,MAAO,CAAC,EAzEM,EAyEQD,IAGxB,IAAI8B,EAAW9B,EAAM9tD,OAAS+tD,EAAM/tD,OAAS8tD,EAAQC,EACjD8B,EAAY/B,EAAM9tD,OAAS+tD,EAAM/tD,OAAS+tD,EAAQD,EAClDhxD,EAAI8yD,EAAS3rD,QAAQ4rD,GACzB,IAAW,IAAP/yD,EAWF,OATA6yD,EAAQ,CACN,CAjFY,EAiFEC,EAASJ,UAAU,EAAG1yD,IACpC,CAjFW,EAiFE+yD,GACb,CAnFY,EAmFED,EAASJ,UAAU1yD,EAAI+yD,EAAU7vD,UAG7C8tD,EAAM9tD,OAAS+tD,EAAM/tD,SACvB2vD,EAAM,GAAG,GAAKA,EAAM,GAAG,IAxFX,GA0FPA,EAGT,GAAyB,IAArBE,EAAU7vD,OAGZ,MAAO,CAAC,EAhGM,EAgGQ8tD,GAAQ,CA/FhB,EA+F8BC,IAI9C,IAAI+B,EAwPN,SAAyBhC,EAAOC,GAC9B,IAAI6B,EAAW9B,EAAM9tD,OAAS+tD,EAAM/tD,OAAS8tD,EAAQC,EACjD8B,EAAY/B,EAAM9tD,OAAS+tD,EAAM/tD,OAAS+tD,EAAQD,EACtD,GAAI8B,EAAS5vD,OAAS,GAAwB,EAAnB6vD,EAAU7vD,OAAa4vD,EAAS5vD,OACzD,OAAO,KAeT,SAAS+vD,EAAiBH,EAAUC,EAAW/yD,GAM7C,IAJA,IAGIkzD,EAAiBC,EAAiBC,EAAkBC,EAHpDC,EAAOR,EAASJ,UAAU1yD,EAAGA,EAAI8F,KAAK61C,MAAMmX,EAAS5vD,OAAS,IAC9Dw6C,GAAK,EACL6V,EAAc,IAE+B,KAAzC7V,EAAIqV,EAAU5rD,QAAQmsD,EAAM5V,EAAI,KAAY,CAClD,IAAIoU,EAAeU,EACjBM,EAASJ,UAAU1yD,GAAI+yD,EAAUL,UAAUhV,IACzCnzB,EAAeooC,EACjBG,EAASJ,UAAU,EAAG1yD,GAAI+yD,EAAUL,UAAU,EAAGhV,IAC/C6V,EAAYrwD,OAASqnB,EAAeunC,IACtCyB,EAAcR,EAAUL,UACtBhV,EAAInzB,EAAcmzB,GAAKqV,EAAUL,UAAUhV,EAAGA,EAAIoU,GACpDoB,EAAkBJ,EAASJ,UAAU,EAAG1yD,EAAIuqB,GAC5C4oC,EAAkBL,EAASJ,UAAU1yD,EAAI8xD,GACzCsB,EAAmBL,EAAUL,UAAU,EAAGhV,EAAInzB,GAC9C8oC,EAAmBN,EAAUL,UAAUhV,EAAIoU,IAG/C,OAAyB,EAArByB,EAAYrwD,QAAc4vD,EAAS5vD,OAC9B,CACLgwD,EAAiBC,EACjBC,EAAkBC,EAAkBE,GAG/B,KAKX,IAGIP,EAaAQ,EAASC,EAASC,EAASC,EAhB3BC,EAAMX,EAAiBH,EAAUC,EAAWjtD,KAAK41C,KAAKoX,EAAS5vD,OAAS,IAExE2wD,EAAMZ,EAAiBH,EAAUC,EAAWjtD,KAAK41C,KAAKoX,EAAS5vD,OAAS,IAE5E,IAAK0wD,IAAQC,EACX,OAAO,KAOPb,EANUa,EAEAD,GAILA,EAAI,GAAG1wD,OAAS2wD,EAAI,GAAG3wD,OAAS0wD,EAHhCC,EAFAD,EAUH5C,EAAM9tD,OAAS+tD,EAAM/tD,QACvBswD,EAAUR,EAAG,GACbS,EAAUT,EAAG,GACbU,EAAUV,EAAG,GACbW,EAAUX,EAAG,KAEbU,EAAUV,EAAG,GACbW,EAAUX,EAAG,GACbQ,EAAUR,EAAG,GACbS,EAAUT,EAAG,IAEf,IAAIc,EAAad,EAAG,GACpB,MAAO,CAACQ,EAASC,EAASC,EAASC,EAASG,GAvUnCC,CAAgB/C,EAAOC,GAChC,GAAI+B,EAAI,CAEN,IAAIQ,EAAUR,EAAG,GACbS,EAAUT,EAAG,GACbU,EAAUV,EAAG,GACbW,EAAUX,EAAG,GACbc,EAAad,EAAG,GAEhBgB,EAAUjD,EAAUyC,EAASE,GAC7BO,EAAUlD,EAAU0C,EAASE,GAEjC,OAAOK,EAAQ7tD,OAAO,CAAC,CA9GV,EA8GuB2tD,IAAcG,GAGpD,OAaF,SAAsBjD,EAAOC,GAW3B,IATA,IAAIiD,EAAelD,EAAM9tD,OACrBixD,EAAelD,EAAM/tD,OACrBkxD,EAAQtuD,KAAK41C,MAAMwY,EAAeC,GAAgB,GAClDE,EAAWD,EACXE,EAAW,EAAIF,EACfG,EAAK,IAAI3xD,MAAM0xD,GACfE,EAAK,IAAI5xD,MAAM0xD,GAGVG,EAAI,EAAGA,EAAIH,EAAUG,IAC5BF,EAAGE,IAAM,EACTD,EAAGC,IAAM,EAEXF,EAAGF,EAAW,GAAK,EACnBG,EAAGH,EAAW,GAAK,EAWnB,IAVA,IAAIzuD,EAAQsuD,EAAeC,EAGvBO,EAAS9uD,EAAQ,IAAM,EAGvB+uD,EAAU,EACVC,EAAQ,EACRC,EAAU,EACVC,EAAQ,EACHz0D,EAAI,EAAGA,EAAI+zD,EAAO/zD,IAAK,CAE9B,IAAK,IAAI00D,GAAM10D,EAAIs0D,EAASI,GAAM10D,EAAIu0D,EAAOG,GAAM,EAAG,CASpD,IARA,IAAIC,EAAYX,EAAWU,EAOvBE,GAJFC,EADEH,KAAQ10D,GAAM00D,IAAO10D,GAAKk0D,EAAGS,EAAY,GAAKT,EAAGS,EAAY,GAC1DT,EAAGS,EAAY,GAEfT,EAAGS,EAAY,GAAK,GAEbD,EAEZG,EAAKhB,GAAgBe,EAAKd,GAC1BnD,EAAMmE,OAAOD,KAAQjE,EAAMkE,OAAOF,IAElCC,IACAD,IAGF,GADAV,EAAGS,GAAaE,EACZA,EAAKhB,EAEPU,GAAS,OACJ,GAAIK,EAAKd,EAEdQ,GAAW,OACN,GAAID,IACLU,EAAYf,EAAWzuD,EAAQmvD,IAClB,GAAKK,EAAYd,IAA+B,IAAnBE,EAAGY,GAAmB,CAElE,IAAIC,EAAKnB,EAAeM,EAAGY,GAC3B,GAAIF,GAAMG,EAER,OAAOC,EAAkBtE,EAAOC,EAAOiE,EAAID,IAOnD,IAAK,IAAIM,GAAMl1D,EAAIw0D,EAASU,GAAMl1D,EAAIy0D,EAAOS,GAAM,EAAG,CASpD,IARA,IAAIH,EAAYf,EAAWkB,EAOvBC,GAJFH,EADEE,KAAQl1D,GAAMk1D,IAAOl1D,GAAKm0D,EAAGY,EAAY,GAAKZ,EAAGY,EAAY,GAC1DZ,EAAGY,EAAY,GAEfZ,EAAGY,EAAY,GAAK,GAEbG,EAEZF,EAAKnB,GAAgBsB,EAAKrB,GAC1BnD,EAAMmE,OAAOjB,EAAemB,EAAK,KAAOpE,EAAMkE,OAAOhB,EAAeqB,EAAK,IAEzEH,IACAG,IAGF,GADAhB,EAAGY,GAAaC,EACZA,EAAKnB,EAEPY,GAAS,OACJ,GAAIU,EAAKrB,EAEdU,GAAW,OACN,IAAKH,IACNM,EAAYX,EAAWzuD,EAAQ2vD,IAClB,GAAKP,EAAYV,IAA+B,IAAnBC,EAAGS,GAAmB,CAClE,IAAIE,EAAKX,EAAGS,GAIZ,GAHIC,EAAKZ,EAAWa,EAAKF,EAGrBE,IADJG,EAAKnB,EAAemB,GAGlB,OAAOC,EAAkBtE,EAAOC,EAAOiE,EAAID,KAQrD,MAAO,CAAC,EA1OQ,EA0OMjE,GAAQ,CAzOd,EAyO4BC,IAvHrCwE,CAAazE,EAAOC,GAzEfyE,CAJZ1E,EAAQA,EAAM0B,UAAU,EAAG1B,EAAM9tD,OAASqvD,GAC1CtB,EAAQA,EAAMyB,UAAU,EAAGzB,EAAM/tD,OAASqvD,IAa1C,OAPIE,GACFI,EAAMnvD,QAAQ,CA5CD,EA4Cc+uD,IAEzBG,GACFC,EAAMzvD,KAAK,CA/CE,EA+CWwvD,IAoY5B,SAAS+C,EAAkB9C,EAAO+C,GAChC/C,EAAMzvD,KAAK,CApbI,EAobS,KAOxB,IANA,IAKImvD,EALAsD,EAAU,EACVC,EAAe,EACfC,EAAe,EACfC,EAAc,GACdC,EAAc,GAEXJ,EAAUhD,EAAM3vD,QACrB,GAAI2yD,EAAUhD,EAAM3vD,OAAS,IAAM2vD,EAAMgD,GAAS,GAChDhD,EAAMlvD,OAAOkyD,EAAS,QAGxB,OAAQhD,EAAMgD,GAAS,IACrB,KAlcY,EAocVE,IACAE,GAAepD,EAAMgD,GAAS,GAC9BA,IACA,MACF,KAzcY,EA0cVC,IACAE,GAAenD,EAAMgD,GAAS,GAC9BA,IACA,MACF,KA5cW,EA6cT,IAAIK,EAAoBL,EAAUE,EAAeD,EAAe,EAChE,GAAIF,EAAa,CAWf,GAAIM,GAAqB,GAAKC,EAAqBtD,EAAMqD,GAAmB,IAAK,CAC/E,IAAIE,EAAQvD,EAAMqD,GAAmB,GAAGxxD,OAAO,GAI/C,GAHAmuD,EAAMqD,GAAmB,GAAKrD,EAAMqD,GAAmB,GAAGxxD,MAAM,GAAI,GACpEsxD,EAAcI,EAAQJ,EACtBC,EAAcG,EAAQH,GACjBpD,EAAMqD,GAAmB,GAAI,CAEhCrD,EAAMlvD,OAAOuyD,EAAmB,GAChCL,IACA,IAAIQ,EAAIH,EAAoB,EACxBrD,EAAMwD,IApeN,IAoeYxD,EAAMwD,GAAG,KACvBN,IACAE,EAAcpD,EAAMwD,GAAG,GAAKJ,EAC5BI,KAEExD,EAAMwD,KA1eN,IA0eYxD,EAAMwD,GAAG,KACvBP,IACAE,EAAcnD,EAAMwD,GAAG,GAAKL,EAC5BK,KAEFH,EAAoBG,GAGpBC,EAAqBzD,EAAMgD,GAAS,MAClCO,EAAQvD,EAAMgD,GAAS,GAAGV,OAAO,GACrCtC,EAAMgD,GAAS,GAAKhD,EAAMgD,GAAS,GAAGnxD,MAAM,GAC5CsxD,GAAeI,EACfH,GAAeG,GAGnB,GAAIP,EAAUhD,EAAM3vD,OAAS,IAAM2vD,EAAMgD,GAAS,GAAI,CAEpDhD,EAAMlvD,OAAOkyD,EAAS,GACtB,MAEF,GAAIG,EAAY9yD,OAAS,GAAK+yD,EAAY/yD,OAAS,EAAG,CAEhD8yD,EAAY9yD,OAAS,GAAK+yD,EAAY/yD,OAAS,IAG5B,KADrBqvD,EAAeC,EAAkByD,EAAaD,MAExCE,GAAqB,EACvBrD,EAAMqD,GAAmB,IAAMD,EAAYvD,UAAU,EAAGH,IAExDM,EAAMlvD,OAAO,EAAG,EAAG,CArgBlB,EAqgB+BsyD,EAAYvD,UAAU,EAAGH,KACzDsD,KAEFI,EAAcA,EAAYvD,UAAUH,GACpCyD,EAAcA,EAAYtD,UAAUH,IAIjB,KADrBA,EAAeI,EAAkBsD,EAAaD,MAE5CnD,EAAMgD,GAAS,GACbI,EAAYvD,UAAUuD,EAAY/yD,OAASqvD,GAAgBM,EAAMgD,GAAS,GAC5EI,EAAcA,EAAYvD,UAAU,EAAGuD,EAAY/yD,OAASqvD,GAC5DyD,EAAcA,EAAYtD,UAAU,EAAGsD,EAAY9yD,OAASqvD,KAIhE,IAAI/wD,EAAIu0D,EAAeD,EACI,IAAvBE,EAAY9yD,QAAuC,IAAvB+yD,EAAY/yD,QAC1C2vD,EAAMlvD,OAAOkyD,EAAUr0D,EAAGA,GAC1Bq0D,GAAoBr0D,GACY,IAAvBw0D,EAAY9yD,QACrB2vD,EAAMlvD,OAAOkyD,EAAUr0D,EAAGA,EAAG,CA3hBvB,EA2hBqCy0D,IAC3CJ,EAAUA,EAAUr0D,EAAI,GACQ,IAAvBy0D,EAAY/yD,QACrB2vD,EAAMlvD,OAAOkyD,EAAUr0D,EAAGA,EAAG,EA/hBvB,EA+hBqCw0D,IAC3CH,EAAUA,EAAUr0D,EAAI,IAExBqxD,EAAMlvD,OAAOkyD,EAAUr0D,EAAGA,EAAG,EAliBvB,EAkiBqCw0D,GAAc,CAjiBnD,EAiiBiEC,IACvEJ,EAAUA,EAAUr0D,EAAI,GAGZ,IAAZq0D,GApiBK,IAoiBYhD,EAAMgD,EAAU,GAAG,IAEtChD,EAAMgD,EAAU,GAAG,IAAMhD,EAAMgD,GAAS,GACxChD,EAAMlvD,OAAOkyD,EAAS,IAEtBA,IAEFE,EAAe,EACfD,EAAe,EACfE,EAAc,GACdC,EAAc,GAIe,KAA/BpD,EAAMA,EAAM3vD,OAAS,GAAG,IAC1B2vD,EAAMhvD,MAMR,IAAI0yD,GAAU,EAGd,IAFAV,EAAU,EAEHA,EAAUhD,EAAM3vD,OAAS,GA5jBjB,IA6jBT2vD,EAAMgD,EAAU,GAAG,IA7jBV,IA8jBXhD,EAAMgD,EAAU,GAAG,KAEfhD,EAAMgD,GAAS,GAAGnD,UAAUG,EAAMgD,GAAS,GAAG3yD,OAChD2vD,EAAMgD,EAAU,GAAG,GAAG3yD,UAAY2vD,EAAMgD,EAAU,GAAG,IAErDhD,EAAMgD,GAAS,GAAKhD,EAAMgD,EAAU,GAAG,GACrChD,EAAMgD,GAAS,GAAGnD,UAAU,EAAGG,EAAMgD,GAAS,GAAG3yD,OAC/C2vD,EAAMgD,EAAU,GAAG,GAAG3yD,QAC1B2vD,EAAMgD,EAAU,GAAG,GAAKhD,EAAMgD,EAAU,GAAG,GAAKhD,EAAMgD,EAAU,GAAG,GACnEhD,EAAMlvD,OAAOkyD,EAAU,EAAG,GAC1BU,GAAU,GACD1D,EAAMgD,GAAS,GAAGnD,UAAU,EAAGG,EAAMgD,EAAU,GAAG,GAAG3yD,SAC9D2vD,EAAMgD,EAAU,GAAG,KAEnBhD,EAAMgD,EAAU,GAAG,IAAMhD,EAAMgD,EAAU,GAAG,GAC5ChD,EAAMgD,GAAS,GACbhD,EAAMgD,GAAS,GAAGnD,UAAUG,EAAMgD,EAAU,GAAG,GAAG3yD,QAClD2vD,EAAMgD,EAAU,GAAG,GACrBhD,EAAMlvD,OAAOkyD,EAAU,EAAG,GAC1BU,GAAU,IAGdV,IAGEU,GACFZ,EAAkB9C,EAAO+C,GAviB3BD,CAAkB9C,EAAO1B,GAClB0B,EAmMT,SAASyC,EAAkBtE,EAAOC,EAAOwD,EAAG+B,GAC1C,IAAIC,EAASzF,EAAM0B,UAAU,EAAG+B,GAC5BiC,EAASzF,EAAMyB,UAAU,EAAG8D,GAC5BG,EAAS3F,EAAM0B,UAAU+B,GACzBmC,EAAS3F,EAAMyB,UAAU8D,GAGzB3D,EAAQ9B,EAAU0F,EAAQC,GAC1BG,EAAS9F,EAAU4F,EAAQC,GAE/B,OAAO/D,EAAM1sD,OAAO0wD,GAWtB,SAASrE,EAAkBxB,EAAOC,GAEhC,IAAKD,IAAUC,GAASD,EAAMmE,OAAO,KAAOlE,EAAMkE,OAAO,GACvD,OAAO,EAQT,IAJA,IAAI2B,EAAa,EACbC,EAAajxD,KAAKC,IAAIirD,EAAM9tD,OAAQ+tD,EAAM/tD,QAC1C8zD,EAAaD,EACbE,EAAe,EACZH,EAAaE,GAEhBhG,EAAM0B,UAAUuE,EAAcD,IAC9B/F,EAAMyB,UAAUuE,EAAcD,GAG9BC,EADAH,EAAaE,EAGbD,EAAaC,EAEfA,EAAalxD,KAAK61C,OAAOob,EAAaD,GAAc,EAAIA,GAO1D,OAJII,EAAwBlG,EAAMmG,WAAWH,EAAa,KACxDA,IAGKA,EAUT,SAASrE,EAAkB3B,EAAOC,GAEhC,IAAKD,IAAUC,GAASD,EAAMtsD,OAAO,KAAOusD,EAAMvsD,OAAO,GACvD,OAAO,EAQT,IAJA,IAAIoyD,EAAa,EACbC,EAAajxD,KAAKC,IAAIirD,EAAM9tD,OAAQ+tD,EAAM/tD,QAC1C8zD,EAAaD,EACbK,EAAa,EACVN,EAAaE,GAEhBhG,EAAM0B,UAAU1B,EAAM9tD,OAAS8zD,EAAYhG,EAAM9tD,OAASk0D,IAC1DnG,EAAMyB,UAAUzB,EAAM/tD,OAAS8zD,EAAY/F,EAAM/tD,OAASk0D,GAG1DA,EADAN,EAAaE,EAGbD,EAAaC,EAEfA,EAAalxD,KAAK61C,OAAOob,EAAaD,GAAc,EAAIA,GAO1D,OAJIO,EAAsBrG,EAAMmG,WAAWnG,EAAM9tD,OAAS8zD,KACxDA,IAGKA,EAgRT,SAASE,EAAwBI,GAC/B,OAAOA,GAAY,OAAUA,GAAY,MAG3C,SAASD,EAAsBC,GAC7B,OAAOA,GAAY,OAAUA,GAAY,MAG3C,SAAShB,EAAqBiB,GAC5B,OAAOF,EAAsBE,EAAIJ,WAAW,IAG9C,SAAShB,EAAqBoB,GAC5B,OAAOL,EAAwBK,EAAIJ,WAAWI,EAAIr0D,OAAS,IAa7D,SAASivD,EAAiBqF,EAAQvF,EAAWC,EAAWlzC,GACtD,OAAIm3C,EAAqBqB,IAAWlB,EAAqBt3C,GAChD,KAZX,SAA6By4C,GAE3B,IADA,IAAI7/C,EAAM,GACD5X,EAAI,EAAGA,EAAIy3D,EAAOv0D,OAAQlD,IAC7By3D,EAAOz3D,GAAG,GAAGkD,OAAS,GACxB0U,EAAIxU,KAAKq0D,EAAOz3D,IAGpB,OAAO4X,EAOA8/C,CAAoB,CACzB,CA3nBa,EA2nBAF,GACb,EA9nBc,EA8nBAvF,GACd,CA9nBc,EA8nBAC,GACd,CA9nBa,EA8nBAlzC,KA4FjB,SAAS5Y,EAAK4qD,EAAOC,EAAOC,GAG1B,OAAOH,EAAUC,EAAOC,EAAOC,GAAY,GAG7C9qD,EAAKS,OAjuBa,EAkuBlBT,EAAKU,QAnuBa,EAouBlBV,EAAKW,MAluBY,EAouBjBhH,EAAOD,QAAUsG,GAKV,SAASrG,EAAQD,EAASF,GAEjC,aAEA,IAAImC,EAAmBC,MAAQA,KAAKD,iBAAoB,SAAUE,GAC9D,OAAQA,GAAOA,EAAId,WAAcc,EAAM,CAAE,QAAWA,IAExDxB,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtD,IAEIkH,EAFA/F,EAAqBJ,EAAgBnC,EAAoB,KACzDwC,EAAmBL,EAAgBnC,EAAoB,MAE3D,SAAWsI,GA0BPA,EAAa/C,QAzBb,SAAiBsM,EAAG8G,EAAGo/C,QACT,IAANlmD,IAAgBA,EAAI,SACd,IAAN8G,IAAgBA,EAAI,IACP,kBAAN9G,IACPA,EAAI,IAES,kBAAN8G,IACPA,EAAI,IAER,IAAIvV,EAAab,EAAmBsB,QAAQ8U,GAS5C,IAAK,IAAIjX,KARJq2D,IACD30D,EAAavC,OAAO0C,KAAKH,GAAYsB,QAAO,SAAUqd,EAAMrgB,GAIxD,OAHuB,MAAnB0B,EAAW1B,KACXqgB,EAAKrgB,GAAO0B,EAAW1B,IAEpBqgB,IACR,KAESlQ,OACG1F,IAAX0F,EAAEnQ,SAAiCyK,IAAXwM,EAAEjX,KAC1B0B,EAAW1B,GAAOmQ,EAAEnQ,IAG5B,OAAOb,OAAO0C,KAAKH,GAAYE,OAAS,EAAIF,OAAa+I,GAsB7D7D,EAAa9B,KAnBb,SAAcqL,EAAG8G,QACH,IAAN9G,IAAgBA,EAAI,SACd,IAAN8G,IAAgBA,EAAI,IACP,kBAAN9G,IACPA,EAAI,IAES,kBAAN8G,IACPA,EAAI,IAER,IAAIvV,EAAavC,OAAO0C,KAAKsO,GACxBtL,OAAO1F,OAAO0C,KAAKoV,IACnBjU,QAAO,SAAUszD,EAAOt2D,GAIzB,OAHKc,EAAiBqB,QAAQgO,EAAEnQ,GAAMiX,EAAEjX,MACpCs2D,EAAMt2D,QAAkByK,IAAXwM,EAAEjX,GAAqB,KAAOiX,EAAEjX,IAE1Cs2D,IACR,IACH,OAAOn3D,OAAO0C,KAAKH,GAAYE,OAAS,EAAIF,OAAa+I,GAoB7D7D,EAAad,OAjBb,SAAgBsa,EAAMra,QACL,IAATqa,IAAmBA,EAAO,SACjB,IAATra,IAAmBA,EAAO,IAC9Bqa,EAAOA,GAAQ,GACf,IAAIm2C,EAAep3D,OAAO0C,KAAKkE,GAAM/C,QAAO,SAAU8T,EAAM9W,GAIxD,OAHI+F,EAAK/F,KAASogB,EAAKpgB,SAAsByK,IAAd2V,EAAKpgB,KAChC8W,EAAK9W,GAAO+F,EAAK/F,IAEd8W,IACR,IACH,OAAO3X,OAAO0C,KAAKue,GAAMpd,QAAO,SAAU8T,EAAM9W,GAI5C,OAHIogB,EAAKpgB,KAAS+F,EAAK/F,SAAsByK,IAAd1E,EAAK/F,KAChC8W,EAAK9W,GAAO,MAET8W,IACRy/C,IAsBP3vD,EAAaR,UAnBb,SAAmB+J,EAAG8G,EAAG5Q,GAErB,QADiB,IAAbA,IAAuBA,GAAW,GACrB,kBAAN8J,EACP,OAAO8G,EAEX,GAAiB,kBAANA,EAAX,CAGA,IAAK5Q,EACD,OAAO4Q,EAEX,IAAIvV,EAAavC,OAAO0C,KAAKoV,GAAGjU,QAAO,SAAUszD,EAAOt2D,GAIpD,YAHeyK,IAAX0F,EAAEnQ,KACFs2D,EAAMt2D,GAAOiX,EAAEjX,IAEZs2D,IACR,IACH,OAAOn3D,OAAO0C,KAAKH,GAAYE,OAAS,EAAIF,OAAa+I,IAlFjE,CAqFG7D,IAAiBA,EAAe,KACnCpI,EAAQ2D,QAAUyE,GAKX,SAASnI,EAAQD,EAASF,GAEjC,aAEA,IAAImC,EAAmBC,MAAQA,KAAKD,iBAAoB,SAAUE,GAC9D,OAAQA,GAAOA,EAAId,WAAcc,EAAM,CAAE,QAAWA,IAExDxB,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,IACtD,IAAIsB,EAAOP,EAAgBnC,EAAoB,KAC3Ck4D,EAA0B,WAC1B,SAASA,EAASn1D,GACdX,KAAKW,IAAMA,EACXX,KAAKuB,MAAQ,EACbvB,KAAK8F,OAAS,EAyFlB,OAvFAgwD,EAASn2D,UAAUqD,QAAU,WACzB,OAAOhD,KAAK2D,aAAed,KAE/BizD,EAASn2D,UAAUuD,KAAO,SAAUhC,GAC3BA,IACDA,EAAS2B,KAEb,IAAII,EAASjD,KAAKW,IAAIX,KAAKuB,OAC3B,GAAI0B,EAAQ,CACR,IAAI6C,EAAS9F,KAAK8F,OACdlB,EAAWtE,EAAKmB,QAAQP,OAAO+B,GASnC,GARI/B,GAAU0D,EAAWkB,GACrB5E,EAAS0D,EAAWkB,EACpB9F,KAAKuB,OAAS,EACdvB,KAAK8F,OAAS,GAGd9F,KAAK8F,QAAU5E,EAEU,kBAAlB+B,EAAO5B,OACd,MAAO,CAAEA,OAAQH,GAGjB,IAAI60D,EAAQ,GAcZ,OAbI9yD,EAAOjC,aACP+0D,EAAM/0D,WAAaiC,EAAOjC,YAED,kBAAlBiC,EAAO3B,OACdy0D,EAAMz0D,OAASJ,EAEe,kBAAlB+B,EAAOnC,OACnBi1D,EAAMj1D,OAASmC,EAAOnC,OAAOk1D,OAAOlwD,EAAQ5E,GAI5C60D,EAAMj1D,OAASmC,EAAOnC,OAEnBi1D,EAIX,MAAO,CAAEz0D,OAAQuB,MAGzBizD,EAASn2D,UAAU6D,KAAO,WACtB,OAAOxD,KAAKW,IAAIX,KAAKuB,QAEzBu0D,EAASn2D,UAAUgE,WAAa,WAC5B,OAAI3D,KAAKW,IAAIX,KAAKuB,OAEPjB,EAAKmB,QAAQP,OAAOlB,KAAKW,IAAIX,KAAKuB,QAAUvB,KAAK8F,OAGjDjD,KAGfizD,EAASn2D,UAAU+D,SAAW,WAC1B,OAAI1D,KAAKW,IAAIX,KAAKuB,OAC6B,kBAAhCvB,KAAKW,IAAIX,KAAKuB,OAAOF,OACrB,SAEqC,kBAAhCrB,KAAKW,IAAIX,KAAKuB,OAAOD,OAC1B,SAGA,SAGR,UAEXw0D,EAASn2D,UAAUuE,KAAO,WACtB,GAAKlE,KAAKgD,UAGL,IAAoB,IAAhBhD,KAAK8F,OACV,OAAO9F,KAAKW,IAAI+B,MAAM1C,KAAKuB,OAG3B,IAAIuE,EAAS9F,KAAK8F,OACdvE,EAAQvB,KAAKuB,MACb2B,EAAOlD,KAAKkD,OACZgB,EAAOlE,KAAKW,IAAI+B,MAAM1C,KAAKuB,OAG/B,OAFAvB,KAAK8F,OAASA,EACd9F,KAAKuB,MAAQA,EACN,CAAC2B,GAAMiB,OAAOD,GAZrB,MAAO,IAeR4xD,EA7FmB,GA+F9Bh4D,EAAQ2D,QAAUq0D,GAKX,SAAS/3D,EAAQD,EAASF,GAEjC,IAAI4b,EAAS5b,EAAoB,IAEjCG,EAAOD,QAAU0b,GAKV,SAASzb,EAAQD,EAASF,GAEjCA,EAAoB,IACpBA,EAAoB,KACpB,IAAI4P,EAAO5P,EAAoB,KAE/BG,EAAOD,QAAU0P,EAAK5M,MAAM+H,MAKrB,SAAS5K,EAAQD,EAASF,GAEjC,aAEA,IAAIu1D,EAASv1D,EAAoB,IAAIu1D,OACjCzqD,EAAW9K,EAAoB,IAC/Bu/C,EAAsBv/C,EAAoB,IAC1Cq4D,EAAiBr4D,EAAoB,IAGrCs4D,EAAmB/Y,EAAoB7yC,IACvC8yC,EAAmBD,EAAoBT,UAFrB,mBAMtBuZ,EAAez1D,OAAQ,UAAU,SAAU21D,GACzCD,EAAiBl2D,KAAM,CACrB6L,KARkB,kBASlBghC,OAAQnkC,EAASytD,GACjB50D,MAAO,OAIR,WACD,IAGI60D,EAHAla,EAAQkB,EAAiBp9C,MACzB6sC,EAASqP,EAAMrP,OACftrC,EAAQ26C,EAAM36C,MAElB,OAAIA,GAASsrC,EAAO3rC,OAAe,CAAElC,WAAO+K,EAAW1B,MAAM,IAC7D+tD,EAAQjD,EAAOtmB,EAAQtrC,GACvB26C,EAAM36C,OAAS60D,EAAMl1D,OACd,CAAElC,MAAOo3D,EAAO/tD,MAAM,QAMxB,SAAStK,EAAQD,EAASF,GAEjC,IAAI05C,EAAY15C,EAAoB,IAChC8K,EAAW9K,EAAoB,IAC/B04C,EAAyB14C,EAAoB,IAG7Cy4D,EAAe,SAAUC,GAC3B,OAAO,SAAUC,EAAO7hD,GACtB,IAGI0a,EAAOonC,EAHPC,EAAI/tD,EAAS4tC,EAAuBigB,IACpCz5C,EAAWw6B,EAAU5iC,GACrB0d,EAAOqkC,EAAEv1D,OAEb,OAAI4b,EAAW,GAAKA,GAAYsV,EAAakkC,EAAoB,QAAKvsD,GACtEqlB,EAAQqnC,EAAEtB,WAAWr4C,IACN,OAAUsS,EAAQ,OAAUtS,EAAW,IAAMsV,IACtDokC,EAASC,EAAEtB,WAAWr4C,EAAW,IAAM,OAAU05C,EAAS,MAC1DF,EAAoBG,EAAEtD,OAAOr2C,GAAYsS,EACzCknC,EAAoBG,EAAE/zD,MAAMoa,EAAUA,EAAW,GAA+B05C,EAAS,OAAlCpnC,EAAQ,OAAU,IAA0B,QAI7GrxB,EAAOD,QAAU,CAGf44D,OAAQL,GAAa,GAGrBlD,OAAQkD,GAAa,KAMhB,SAASt4D,EAAQD,EAASF,GAEjC,IAOI2Z,EAAO3C,EAPP8b,EAAS9yB,EAAoB,IAC7B8/B,EAAY9/B,EAAoB,IAEhC8oC,EAAUhW,EAAOgW,QACjBiwB,EAAOjmC,EAAOimC,KACdC,EAAWlwB,GAAWA,EAAQkwB,UAAYD,GAAQA,EAAK/hD,QACvDiiD,EAAKD,GAAYA,EAASC,GAG1BA,EAEFjiD,GADA2C,EAAQs/C,EAAGv+C,MAAM,MACD,GAAK,EAAI,EAAIf,EAAM,GAAKA,EAAM,GACrCmmB,MACTnmB,EAAQmmB,EAAUnmB,MAAM,iBACVA,EAAM,IAAM,MACxBA,EAAQmmB,EAAUnmB,MAAM,oBACb3C,EAAU2C,EAAM,IAI/BxZ,EAAOD,QAAU8W,IAAYA,GAKtB,SAAS7W,EAAQD,EAASF,GAEjC,IAAIk8C,EAAal8C,EAAoB,IAErCG,EAAOD,QAAUg8C,EAAW,YAAa,cAAgB,IAKlD,SAAS/7C,EAAQD,EAASF,GAEjC,IAAI8yB,EAAS9yB,EAAoB,IAC7Bg/C,EAAgBh/C,EAAoB,IAEpCob,EAAU0X,EAAO1X,QAErBjb,EAAOD,QAA6B,oBAAZkb,GAA0B,cAAcpQ,KAAKg0C,EAAc5jC,KAK5E,SAASjb,EAAQD,EAASF,GAEjC,IAAIw4B,EAAWx4B,EAAoB,IAC/Bi8C,EAAWj8C,EAAoB,IAC/Bk5D,EAAsBl5D,EAAoB,IAG1Cm5D,EAFkBn5D,EAAoB,GAEvBigD,CAAgB,eAInC9/C,EAAOD,QAAU,SAAUwZ,EAAO0/C,GAChC,IAAK5gC,EAAS9e,IAAUuiC,EAASviC,GAAQ,OAAOA,EAChD,IACIoM,EADAuzC,EAAe3/C,EAAMy/C,GAEzB,QAAqBhtD,IAAjBktD,EAA4B,CAG9B,QAFaltD,IAATitD,IAAoBA,EAAO,WAC/BtzC,EAASuzC,EAAa/4D,KAAKoZ,EAAO0/C,IAC7B5gC,EAAS1S,IAAWm2B,EAASn2B,GAAS,OAAOA,EAClD,MAAM5a,UAAU,2CAGlB,YADaiB,IAATitD,IAAoBA,EAAO,UACxBF,EAAoBx/C,EAAO0/C,KAM7B,SAASj5D,EAAQD,EAASF,GAEjC,IAAIw4B,EAAWx4B,EAAoB,IAInCG,EAAOD,QAAU,SAAUwZ,EAAO0/C,GAChC,IAAIxc,EAAI0c,EACR,GAAa,WAATF,GAAqD,mBAAxBxc,EAAKljC,EAAM5O,YAA4B0tB,EAAS8gC,EAAM1c,EAAGt8C,KAAKoZ,IAAS,OAAO4/C,EAC/G,GAAmC,mBAAvB1c,EAAKljC,EAAMkM,WAA2B4S,EAAS8gC,EAAM1c,EAAGt8C,KAAKoZ,IAAS,OAAO4/C,EACzF,GAAa,WAATF,GAAqD,mBAAxBxc,EAAKljC,EAAM5O,YAA4B0tB,EAAS8gC,EAAM1c,EAAGt8C,KAAKoZ,IAAS,OAAO4/C,EAC/G,MAAMpuD,UAAU,6CAMX,SAAS/K,EAAQD,EAASF,GAEjC,aAEA,IAAIu5D,EAAIv5D,EAAoB,IACxBw5D,EAA4Bx5D,EAAoB,KAChDqmB,EAAiBrmB,EAAoB,IACrC4Y,EAAiB5Y,EAAoB,KACrCy5D,EAAiBz5D,EAAoB,IACrC64C,EAA8B74C,EAAoB,IAClD84C,EAAW94C,EAAoB,IAC/BigD,EAAkBjgD,EAAoB,IACtCk/C,EAAUl/C,EAAoB,IAC9B05D,EAAY15D,EAAoB,IAChC25D,EAAgB35D,EAAoB,IAEpC8/C,EAAoB6Z,EAAc7Z,kBAClCK,EAAyBwZ,EAAcxZ,uBACvCD,EAAWD,EAAgB,YAK3B2Z,EAAa,WAAc,OAAOx3D,MAEtCjC,EAAOD,QAAU,SAAU25D,EAAUC,EAAMC,EAAqBz0D,EAAM00D,EAASC,EAAQC,GACrFV,EAA0BO,EAAqBD,EAAMx0D,GAErD,IAkBI60D,EAA0BC,EAASC,EAlBnCC,EAAqB,SAAUC,GACjC,GAAIA,IAASP,GAAWQ,EAAiB,OAAOA,EAChD,IAAKra,GAA0Boa,KAAQE,EAAmB,OAAOA,EAAkBF,GACnF,OAAQA,GACN,IAbK,OAcL,IAbO,SAcP,IAbQ,UAaM,OAAO,WAAqB,OAAO,IAAIR,EAAoB33D,KAAMm4D,IAC/E,OAAO,WAAc,OAAO,IAAIR,EAAoB33D,QAGpD2/C,EAAgB+X,EAAO,YACvBY,GAAwB,EACxBD,EAAoBZ,EAAS93D,UAC7B44D,EAAiBF,EAAkBva,IAClCua,EAAkB,eAClBT,GAAWS,EAAkBT,GAC9BQ,GAAmBra,GAA0Bwa,GAAkBL,EAAmBN,GAClFY,EAA4B,SAARd,GAAkBW,EAAkBzjC,SAA4B2jC,EAiCxF,GA7BIC,IACFT,EAA2B9zC,EAAeu0C,EAAkBt6D,KAAK,IAAIu5D,IACjE/Z,IAAsBj/C,OAAOkB,WAAao4D,EAAyB70D,OAChE45C,GAAW74B,EAAe8zC,KAA8Bra,IACvDlnC,EACFA,EAAeuhD,EAA0Bra,GACa,mBAAtCqa,EAAyBja,IACzCrH,EAA4BshB,EAA0Bja,EAAU0Z,IAIpEH,EAAeU,EAA0BpY,GAAe,GAAM,GAC1D7C,IAASwa,EAAU3X,GAAiB6X,KAzCjC,UA8CPI,GAAqBW,GA9Cd,WA8CgCA,EAAej6D,OACxDg6D,GAAwB,EACxBF,EAAkB,WAAoB,OAAOG,EAAer6D,KAAK8B,QAI7D88C,IAAWgb,GAAWO,EAAkBva,KAAcsa,GAC1D3hB,EAA4B4hB,EAAmBva,EAAUsa,GAE3Dd,EAAUI,GAAQU,EAGdR,EAMF,GALAI,EAAU,CACRn4C,OAAQq4C,EA5DD,UA6DP/2D,KAAM02D,EAASO,EAAkBF,EA9D5B,QA+DLtjC,QAASsjC,EA7DD,YA+DNJ,EAAQ,IAAKG,KAAOD,GAClBja,GAA0Bua,KAA2BL,KAAOI,KAC9D3hB,EAAS2hB,EAAmBJ,EAAKD,EAAQC,SAEtCd,EAAE,CAAE7tD,OAAQouD,EAAM7gC,OAAO,EAAMwgB,OAAQ0G,GAA0Bua,GAAyBN,GAGnG,OAAOA,IAMF,SAASj6D,EAAQD,EAASF,GAEjC,aAEA,IAAI66D,EAAwB,GAAGjlC,qBAE3BzQ,EAA2BtkB,OAAOskB,yBAGlC21C,EAAc31C,IAA6B01C,EAAsBv6D,KAAK,CAAEy6D,EAAG,GAAK,GAIpF76D,EAAQuyC,EAAIqoB,EAAc,SAA8BE,GACtD,IAAIpvD,EAAauZ,EAAyB/iB,KAAM44D,GAChD,QAASpvD,GAAcA,EAAW7K,YAChC85D,GAKG,SAAS16D,EAAQD,EAASF,GAEjC,IAAImzC,EAAQnzC,EAAoB,IAC5Bi7D,EAAUj7D,EAAoB,IAE9B0a,EAAQ,GAAGA,MAGfva,EAAOD,QAAUizC,GAAM,WAGrB,OAAQtyC,OAAO,KAAK+0B,qBAAqB,MACtC,SAAUuS,GACb,MAAsB,UAAf8yB,EAAQ9yB,GAAkBztB,EAAMpa,KAAK6nC,EAAI,IAAMtnC,OAAOsnC,IAC3DtnC,QAKG,SAASV,EAAQD,EAASF,GAEjC,IAAIwZ,EAAMxZ,EAAoB,IAC1BipB,EAAUjpB,EAAoB,KAC9Bk7D,EAAiCl7D,EAAoB,IACrDizC,EAAuBjzC,EAAoB,IAE/CG,EAAOD,QAAU,SAAUwL,EAAQ0C,GAIjC,IAHA,IAAI7K,EAAO0lB,EAAQ7a,GACftN,EAAiBmyC,EAAqBR,EACtCttB,EAA2B+1C,EAA+BzoB,EACrDryC,EAAI,EAAGA,EAAImD,EAAKD,OAAQlD,IAAK,CACpC,IAAIsB,EAAM6B,EAAKnD,GACVoZ,EAAI9N,EAAQhK,IAAMZ,EAAe4K,EAAQhK,EAAKyjB,EAAyB/W,EAAQ1M,OAOjF,SAASvB,EAAQD,EAASF,GAEjC,IAAIk8C,EAAal8C,EAAoB,IACjCm7D,EAA4Bn7D,EAAoB,KAChDo7D,EAA8Bp7D,EAAoB,KAClDsyC,EAAWtyC,EAAoB,IAGnCG,EAAOD,QAAUg8C,EAAW,UAAW,YAAc,SAAiB/T,GACpE,IAAI5kC,EAAO43D,EAA0B1oB,EAAEH,EAASnK,IAC5Chf,EAAwBiyC,EAA4B3oB,EACxD,OAAOtpB,EAAwB5lB,EAAKgD,OAAO4iB,EAAsBgf,IAAO5kC,IAMnE,SAASpD,EAAQD,EAASF,GAEjC,IAAIq7D,EAAqBr7D,EAAoB,IAGzCq+C,EAFcr+C,EAAoB,IAETuG,OAAO,SAAU,aAK9CrG,EAAQuyC,EAAI5xC,OAAOy6D,qBAAuB,SAA6B5oB,GACrE,OAAO2oB,EAAmB3oB,EAAG2L,KAMxB,SAASl+C,EAAQD,EAASF,GAEjC,IAAIs8C,EAAkBt8C,EAAoB,IACtCu7D,EAAWv7D,EAAoB,IAC/Bw7D,EAAkBx7D,EAAoB,IAGtCy4D,EAAe,SAAUgD,GAC3B,OAAO,SAAU9C,EAAO+C,EAAIC,GAC1B,IAGIv6D,EAHAsxC,EAAI4J,EAAgBqc,GACpBr1D,EAASi4D,EAAS7oB,EAAEpvC,QACpBK,EAAQ63D,EAAgBG,EAAWr4D,GAIvC,GAAIm4D,GAAeC,GAAMA,GAAI,KAAOp4D,EAASK,GAG3C,IAFAvC,EAAQsxC,EAAE/uC,OAEGvC,EAAO,OAAO,OAEtB,KAAMkC,EAASK,EAAOA,IAC3B,IAAK83D,GAAe93D,KAAS+uC,IAAMA,EAAE/uC,KAAW+3D,EAAI,OAAOD,GAAe93D,GAAS,EACnF,OAAQ83D,IAAgB,IAI9Bt7D,EAAOD,QAAU,CAGf07D,SAAUnD,GAAa,GAGvBlxD,QAASkxD,GAAa,KAMjB,SAASt4D,EAAQD,GAGxBA,EAAQuyC,EAAI5xC,OAAOsoB,uBAKZ,SAAShpB,EAAQD,EAASF,GAEjC,IAAImzC,EAAQnzC,EAAoB,IAE5B6c,EAAc,kBAEdo8B,EAAW,SAAU4iB,EAASC,GAChC,IAAI16D,EAAQkjB,EAAKkd,EAAUq6B,IAC3B,OAAOz6D,GAAS26D,GACZ36D,GAAS46D,IACW,mBAAbF,EAA0B3oB,EAAM2oB,KACrCA,IAGJt6B,EAAYyX,EAASzX,UAAY,SAAUyN,GAC7C,OAAOrsC,OAAOqsC,GAAQpuB,QAAQhE,EAAa,KAAKuF,eAG9CkC,EAAO20B,EAAS30B,KAAO,GACvB03C,EAAS/iB,EAAS+iB,OAAS,IAC3BD,EAAW9iB,EAAS8iB,SAAW,IAEnC57D,EAAOD,QAAU+4C,GAKV,SAAS94C,EAAQD,EAASF,GAEjC,aAEA,IAAI8/C,EAAoB9/C,EAAoB,IAAI8/C,kBAC5Cr+C,EAASzB,EAAoB,IAC7BkzC,EAA2BlzC,EAAoB,IAC/Cy5D,EAAiBz5D,EAAoB,IACrC05D,EAAY15D,EAAoB,IAEhC45D,EAAa,WAAc,OAAOx3D,MAEtCjC,EAAOD,QAAU,SAAU65D,EAAqBD,EAAMx0D,GACpD,IAAIy8C,EAAgB+X,EAAO,YAI3B,OAHAC,EAAoBh4D,UAAYN,EAAOq+C,EAAmB,CAAEx6C,KAAM4tC,EAAyB,EAAG5tC,KAC9Fm0D,EAAeM,EAAqBhY,GAAe,GAAO,GAC1D2X,EAAU3X,GAAiB6X,EACpBG,IAMF,SAAS55D,EAAQD,EAASF,GAEjC,IAAImzC,EAAQnzC,EAAoB,IAEhCG,EAAOD,SAAWizC,GAAM,WACtB,SAASyO,KAGT,OAFAA,EAAE7/C,UAAU6H,YAAc,KAEnB/I,OAAOwlB,eAAe,IAAIu7B,KAASA,EAAE7/C,cAMvC,SAAS5B,EAAQD,EAASF,GAEjC,IAAIoyC,EAAcpyC,EAAoB,IAClCizC,EAAuBjzC,EAAoB,IAC3CsyC,EAAWtyC,EAAoB,IAC/Bi8D,EAAaj8D,EAAoB,KAKrCG,EAAOD,QAAUkyC,EAAcvxC,OAAO2oB,iBAAmB,SAA0BkpB,EAAGoP,GACpFxP,EAASI,GAKT,IAJA,IAGIhxC,EAHA6B,EAAO04D,EAAWna,GAClBx+C,EAASC,EAAKD,OACdK,EAAQ,EAELL,EAASK,GAAOsvC,EAAqBR,EAAEC,EAAGhxC,EAAM6B,EAAKI,KAAUm+C,EAAWpgD,IACjF,OAAOgxC,IAMF,SAASvyC,EAAQD,EAASF,GAEjC,IAAIq7D,EAAqBr7D,EAAoB,IACzCwgD,EAAcxgD,EAAoB,IAKtCG,EAAOD,QAAUW,OAAO0C,MAAQ,SAAcmvC,GAC5C,OAAO2oB,EAAmB3oB,EAAG8N,KAMxB,SAASrgD,EAAQD,EAASF,GAEjC,IAAIk8C,EAAal8C,EAAoB,IAErCG,EAAOD,QAAUg8C,EAAW,WAAY,oBAKjC,SAAS/7C,EAAQD,EAASF,GAGjC,IAAIsyC,EAAWtyC,EAAoB,IAC/Bk8D,EAAqBl8D,EAAoB,KAM7CG,EAAOD,QAAUW,OAAO+X,iBAAmB,aAAe,GAAK,WAC7D,IAEIujD,EAFAC,GAAiB,EACjBpxD,EAAO,GAEX,KAEEmxD,EAASt7D,OAAOskB,yBAAyBtkB,OAAOkB,UAAW,aAAa2K,KACjEpM,KAAK0K,EAAM,IAClBoxD,EAAiBpxD,aAAgBhI,MACjC,MAAOoJ,IACT,OAAO,SAAwBsmC,EAAGzZ,GAKhC,OAJAqZ,EAASI,GACTwpB,EAAmBjjC,GACfmjC,EAAgBD,EAAO77D,KAAKoyC,EAAGzZ,GAC9ByZ,EAAE75B,UAAYogB,EACZyZ,GAfoD,QAiBzDvmC,IAKC,SAAShM,EAAQD,EAASF,GAEjC,IAAIw4B,EAAWx4B,EAAoB,IAEnCG,EAAOD,QAAU,SAAUioC,GACzB,IAAK3P,EAAS2P,IAAc,OAAPA,EACnB,MAAMj9B,UAAU,aAAetI,OAAOulC,GAAM,mBAC5C,OAAOA,IAMJ,SAAShoC,EAAQD,EAASF,GAEjC,IAAIu5D,EAAIv5D,EAAoB,IACxB+K,EAAO/K,EAAoB,KAU/Bu5D,EAAE,CAAE7tD,OAAQ,QAAS6tC,MAAM,EAAME,QATCz5C,EAAoB,IAE3Bq8D,EAA4B,SAAU7uB,GAE/DxqC,MAAM+H,KAAKyiC,OAKmD,CAC9DziC,KAAMA,KAMD,SAAS5K,EAAQD,EAASF,GAEjC,aAEA,IAAI2B,EAAO3B,EAAoB,IAC3BysC,EAAWzsC,EAAoB,IAC/Bs8D,EAA+Bt8D,EAAoB,KACnDu8D,EAAwBv8D,EAAoB,KAC5Cu7D,EAAWv7D,EAAoB,IAC/Bw8D,EAAiBx8D,EAAoB,KACrCy8D,EAAoBz8D,EAAoB,KAI5CG,EAAOD,QAAU,SAAcw8D,GAC7B,IAOIp5D,EAAQwiB,EAAQ62C,EAAMx3D,EAAUG,EAAMlE,EAPtCsxC,EAAIjG,EAASiwB,GACbE,EAAmB,mBAARx6D,KAAqBA,KAAOY,MACvC65D,EAAkB3wD,UAAU5I,OAC5Bw5D,EAAQD,EAAkB,EAAI3wD,UAAU,QAAKC,EAC7C4wD,OAAoB5wD,IAAV2wD,EACVE,EAAiBP,EAAkB/pB,GACnC/uC,EAAQ,EAIZ,GAFIo5D,IAASD,EAAQn7D,EAAKm7D,EAAOD,EAAkB,EAAI3wD,UAAU,QAAKC,EAAW,SAE3DA,GAAlB6wD,GAAiCJ,GAAK55D,OAASu5D,EAAsBS,GAWvE,IADAl3C,EAAS,IAAI82C,EADbt5D,EAASi4D,EAAS7oB,EAAEpvC,SAEdA,EAASK,EAAOA,IACpBvC,EAAQ27D,EAAUD,EAAMpqB,EAAE/uC,GAAQA,GAAS+uC,EAAE/uC,GAC7C64D,EAAe12C,EAAQniB,EAAOvC,QAThC,IAFAkE,GADAH,EAAW63D,EAAe18D,KAAKoyC,IACfptC,KAChBwgB,EAAS,IAAI82C,IACLD,EAAOr3D,EAAKhF,KAAK6E,IAAWsF,KAAM9G,IACxCvC,EAAQ27D,EAAUT,EAA6Bn3D,EAAU23D,EAAO,CAACH,EAAKv7D,MAAOuC,IAAQ,GAAQg5D,EAAKv7D,MAClGo7D,EAAe12C,EAAQniB,EAAOvC,GAWlC,OADA0kB,EAAOxiB,OAASK,EACTmiB,IAMF,SAAS3lB,EAAQD,GAExBC,EAAOD,QAAU,SAAUioC,GACzB,GAAiB,mBAANA,EACT,MAAMj9B,UAAUtI,OAAOulC,GAAM,sBAC7B,OAAOA,IAMJ,SAAShoC,EAAQD,EAASF,GAEjC,IAAIsyC,EAAWtyC,EAAoB,IAC/Bi9D,EAAgBj9D,EAAoB,KAGxCG,EAAOD,QAAU,SAAUiF,EAAUy3C,EAAIx7C,EAAO87D,GAC9C,IACE,OAAOA,EAAUtgB,EAAGtK,EAASlxC,GAAO,GAAIA,EAAM,IAAMw7C,EAAGx7C,GACvD,MAAOgL,GAEP,MADA6wD,EAAc93D,GACRiH,KAOH,SAASjM,EAAQD,EAASF,GAEjC,IAAIsyC,EAAWtyC,EAAoB,IAEnCG,EAAOD,QAAU,SAAUiF,GACzB,IAAIg4D,EAAeh4D,EAAiB,OACpC,QAAqBgH,IAAjBgxD,EACF,OAAO7qB,EAAS6qB,EAAa78D,KAAK6E,IAAW/D,QAO1C,SAASjB,EAAQD,EAASF,GAEjC,IAAIigD,EAAkBjgD,EAAoB,IACtC05D,EAAY15D,EAAoB,IAEhCkgD,EAAWD,EAAgB,YAC3Bmd,EAAiBp6D,MAAMjB,UAG3B5B,EAAOD,QAAU,SAAUioC,GACzB,YAAch8B,IAAPg8B,IAAqBuxB,EAAU12D,QAAUmlC,GAAMi1B,EAAeld,KAAc/X,KAM9E,SAAShoC,EAAQD,EAASF,GAEjC,aAEA,IAAIuyC,EAAgBvyC,EAAoB,IACpCizC,EAAuBjzC,EAAoB,IAC3CkzC,EAA2BlzC,EAAoB,IAEnDG,EAAOD,QAAU,SAAU2B,EAAQH,EAAKN,GACtC,IAAIi8D,EAAc9qB,EAAc7wC,GAC5B27D,KAAex7D,EAAQoxC,EAAqBR,EAAE5wC,EAAQw7D,EAAanqB,EAAyB,EAAG9xC,IAC9FS,EAAOw7D,GAAej8D,IAMtB,SAASjB,EAAQD,EAASF,GAEjC,IAAIi7D,EAAUj7D,EAAoB,KAC9B05D,EAAY15D,EAAoB,IAGhCkgD,EAFkBlgD,EAAoB,GAE3BigD,CAAgB,YAE/B9/C,EAAOD,QAAU,SAAUioC,GACzB,QAAUh8B,GAANg8B,EAAiB,OAAOA,EAAG+X,IAC1B/X,EAAG,eACHuxB,EAAUuB,EAAQ9yB,MAMlB,SAAShoC,EAAQD,EAASF,GAEjC,IAAIs9D,EAAwBt9D,EAAoB,KAC5Cu9D,EAAav9D,EAAoB,IAGjC+hD,EAFkB/hD,EAAoB,GAEtBigD,CAAgB,eAEhCud,EAAuE,aAAnDD,EAAW,WAAc,OAAOrxD,UAArB,IAUnC/L,EAAOD,QAAUo9D,EAAwBC,EAAa,SAAUp1B,GAC9D,IAAIuK,EAAGv3B,EAAK2K,EACZ,YAAc3Z,IAAPg8B,EAAmB,YAAqB,OAAPA,EAAc,OAEM,iBAAhDhtB,EAXD,SAAUgtB,EAAIzmC,GACzB,IACE,OAAOymC,EAAGzmC,GACV,MAAO0K,KAQSqxD,CAAO/qB,EAAI7xC,OAAOsnC,GAAK4Z,IAA8B5mC,EAEnEqiD,EAAoBD,EAAW7qB,GAEH,WAA3B5sB,EAASy3C,EAAW7qB,KAAsC,mBAAZA,EAAEgrB,OAAuB,YAAc53C,IAMrF,SAAS3lB,EAAQD,EAASF,GAEjC,IAGIgL,EAAO,GAEXA,EALsBhL,EAAoB,GAEtBigD,CAAgB,gBAGd,IAEtB9/C,EAAOD,QAA2B,eAAjB0C,OAAOoI,IAKjB,SAAS7K,EAAQD,EAASF,GAEjC,IAEIkgD,EAFkBlgD,EAAoB,GAE3BigD,CAAgB,YAC3B0d,GAAe,EAEnB,IACE,IAAIC,EAAS,EACTC,EAAqB,CACvBv4D,KAAM,WACJ,MAAO,CAAEmF,OAAQmzD,MAEnB,OAAU,WACRD,GAAe,IAGnBE,EAAmB3d,GAAY,WAC7B,OAAO99C,MAGTY,MAAM+H,KAAK8yD,GAAoB,WAAc,MAAM,KACnD,MAAOzxD,IAETjM,EAAOD,QAAU,SAAUg1B,EAAM4oC,GAC/B,IAAKA,IAAiBH,EAAc,OAAO,EAC3C,IAAII,GAAoB,EACxB,IACE,IAAIl8D,EAAS,GACbA,EAAOq+C,GAAY,WACjB,MAAO,CACL56C,KAAM,WACJ,MAAO,CAAEmF,KAAMszD,GAAoB,MAIzC7oC,EAAKrzB,GACL,MAAOuK,IACT,OAAO2xD,IAMF,SAAS59D,EAAQD,EAASF,GAEjC,IAAI8yB,EAAS9yB,EAAoB,IAEjCG,EAAOD,QAAU4yB,GAKV,SAAS3yB,EAAQD,EAASF,GAEjC,IAAI4b,EAAS5b,EAAoB,KAEjCG,EAAOD,QAAU0b,GAKV,SAASzb,EAAQD,EAASF,GAEjCA,EAAoB,KACpB,IAAIg+D,EAAch+D,EAAoB,IAEtCG,EAAOD,QAAU89D,EAAY,QAAS,SAK/B,SAAS79D,EAAQD,EAASF,GAEjC,IAAIu5D,EAAIv5D,EAAoB,IACxBqtD,EAAOrtD,EAAoB,KAC3Bi+D,EAAmBj+D,EAAoB,KAI3Cu5D,EAAE,CAAE7tD,OAAQ,QAASutB,OAAO,GAAQ,CAClCo0B,KAAMA,IAIR4Q,EAAiB,SAKV,SAAS99D,EAAQD,EAASF,GAEjC,aAEA,IAAIysC,EAAWzsC,EAAoB,IAC/Bw7D,EAAkBx7D,EAAoB,IACtCu7D,EAAWv7D,EAAoB,IAInCG,EAAOD,QAAU,SAAckB,GAO7B,IANA,IAAIsxC,EAAIjG,EAASrqC,MACbkB,EAASi4D,EAAS7oB,EAAEpvC,QACpBu5D,EAAkB3wD,UAAU5I,OAC5BK,EAAQ63D,EAAgBqB,EAAkB,EAAI3wD,UAAU,QAAKC,EAAW7I,GACxE0B,EAAM63D,EAAkB,EAAI3wD,UAAU,QAAKC,EAC3C+xD,OAAiB/xD,IAARnH,EAAoB1B,EAASk4D,EAAgBx2D,EAAK1B,GACxD46D,EAASv6D,GAAO+uC,EAAE/uC,KAAWvC,EACpC,OAAOsxC,IAMF,SAASvyC,EAAQD,EAASF,GAEjC,IAAIigD,EAAkBjgD,EAAoB,IACtCyB,EAASzB,EAAoB,IAC7BizC,EAAuBjzC,EAAoB,IAE3Cm+D,EAAcle,EAAgB,eAC9Bmd,EAAiBp6D,MAAMjB,eAIQoK,GAA/BixD,EAAee,IACjBlrB,EAAqBR,EAAE2qB,EAAgBe,EAAa,CAClDr0D,cAAc,EACd1I,MAAOK,EAAO,QAKlBtB,EAAOD,QAAU,SAAUwB,GACzB07D,EAAee,GAAaz8D,IAAO,IAM9B,SAASvB,EAAQD,EAASF,GAEjC,IAAI4b,EAAS5b,EAAoB,KAEjCG,EAAOD,QAAU0b,GAKV,SAASzb,EAAQD,EAASF,GAEjCA,EAAoB,KACpB,IAAIg+D,EAAch+D,EAAoB,IAEtCG,EAAOD,QAAU89D,EAAY,SAAU,aAKhC,SAAS79D,EAAQD,EAASF,GAEjC,aAEA,IAAIu5D,EAAIv5D,EAAoB,IACxBmlB,EAA2BnlB,EAAoB,IAAIyyC,EACnD8oB,EAAWv7D,EAAoB,IAC/B8K,EAAW9K,EAAoB,IAC/Bo+D,EAAap+D,EAAoB,KACjC04C,EAAyB14C,EAAoB,IAC7Cq+D,EAAuBr+D,EAAoB,KAC3Ck/C,EAAUl/C,EAAoB,IAG9Bs+D,EAAY,GAAGr0C,SACf9jB,EAAMD,KAAKC,IAEXo4D,EAA0BF,EAAqB,YASnD9E,EAAE,CAAE7tD,OAAQ,SAAUutB,OAAO,EAAMwgB,UAPXyF,IAAYqf,GAA6B,WAC/D,IAAI3yD,EAAauZ,EAAyBviB,OAAOb,UAAW,YAC5D,OAAO6J,IAAeA,EAAW7B,SAF8B,MAOAw0D,GAA2B,CAC1Ft0C,SAAU,SAAkBu0C,GAC1B,IAAIvc,EAAOn3C,EAAS4tC,EAAuBt2C,OAC3Cg8D,EAAWI,GACX,IAAIC,EAAcvyD,UAAU5I,OAAS,EAAI4I,UAAU,QAAKC,EACpDf,EAAMmwD,EAAStZ,EAAK3+C,QACpB0B,OAAsBmH,IAAhBsyD,EAA4BrzD,EAAMjF,EAAIo1D,EAASkD,GAAcrzD,GACnEszD,EAAS5zD,EAAS0zD,GACtB,OAAOF,EACHA,EAAUh+D,KAAK2hD,EAAMyc,EAAQ15D,GAC7Bi9C,EAAKn9C,MAAME,EAAM05D,EAAOp7D,OAAQ0B,KAAS05D,MAO1C,SAASv+D,EAAQD,EAASF,GAEjC,IAAI2+D,EAAW3+D,EAAoB,KAEnCG,EAAOD,QAAU,SAAUioC,GACzB,GAAIw2B,EAASx2B,GACX,MAAMj9B,UAAU,iDAChB,OAAOi9B,IAMJ,SAAShoC,EAAQD,EAASF,GAEjC,IAAIw4B,EAAWx4B,EAAoB,IAC/Bi7D,EAAUj7D,EAAoB,IAG9B4+D,EAFkB5+D,EAAoB,GAE9BigD,CAAgB,SAI5B9/C,EAAOD,QAAU,SAAUioC,GACzB,IAAIw2B,EACJ,OAAOnmC,EAAS2P,UAAmCh8B,KAA1BwyD,EAAWx2B,EAAGy2B,MAA0BD,EAA0B,UAAf1D,EAAQ9yB,MAM/E,SAAShoC,EAAQD,EAASF,GAEjC,IAEI4+D,EAFkB5+D,EAAoB,GAE9BigD,CAAgB,SAE5B9/C,EAAOD,QAAU,SAAU2+D,GACzB,IAAI3kC,EAAS,IACb,IACE,MAAM2kC,GAAa3kC,GACnB,MAAO4kC,GACP,IAEE,OADA5kC,EAAO0kC,IAAS,EACT,MAAMC,GAAa3kC,GAC1B,MAAO6kC,KACT,OAAO,IAKX,CAEO,SAAS5+D,EAAQD,EAASF,GAEjCG,EAAOD,QAAUF,EAAoB,OAIf,SAjonBpBG,EAAOD,QAAUL","file":"static/js/main~a2dfeb8c.9b904ea3.chunk.js","sourcesContent":["/*!\n * DevExtreme-Quill Editor v.1.1.5\n * https://js.devexpress.com/\n * Copyright (c) 2020, Developer Express Inc.\n * Copyright (c) 2017, Slab\n * Copyright (c) 2014, Jason Chen\n * Copyright (c) 2013, salesforce.com\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Quill\"] = factory();\n\telse\n\t\troot[\"DevExpress\"] = root[\"DevExpress\"] || {}, root[\"DevExpress\"][\"Quill\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \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 = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 139);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar fast_diff_1 = __importDefault(__webpack_require__(87));\nvar lodash_clonedeep_1 = __importDefault(__webpack_require__(12));\nvar lodash_isequal_1 = __importDefault(__webpack_require__(22));\nvar AttributeMap_1 = __importDefault(__webpack_require__(88));\nvar Op_1 = __importDefault(__webpack_require__(67));\nvar NULL_CHARACTER = String.fromCharCode(0); // Placeholder char for embed in diff()\nvar Delta = /** @class */ (function () {\n function Delta(ops) {\n // Assume we are given a well formed ops\n if (Array.isArray(ops)) {\n this.ops = ops;\n }\n else if (ops != null && Array.isArray(ops.ops)) {\n this.ops = ops.ops;\n }\n else {\n this.ops = [];\n }\n }\n Delta.prototype.insert = function (arg, attributes) {\n var newOp = {};\n if (typeof arg === 'string' && arg.length === 0) {\n return this;\n }\n newOp.insert = arg;\n if (attributes != null &&\n typeof attributes === 'object' &&\n Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n };\n Delta.prototype.delete = function (length) {\n if (length <= 0) {\n return this;\n }\n return this.push({ delete: length });\n };\n Delta.prototype.retain = function (length, attributes) {\n if (length <= 0) {\n return this;\n }\n var newOp = { retain: length };\n if (attributes != null &&\n typeof attributes === 'object' &&\n Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n };\n Delta.prototype.push = function (newOp) {\n var index = this.ops.length;\n var lastOp = this.ops[index - 1];\n newOp = lodash_clonedeep_1.default(newOp);\n if (typeof lastOp === 'object') {\n if (typeof newOp.delete === 'number' &&\n typeof lastOp.delete === 'number') {\n this.ops[index - 1] = { delete: lastOp.delete + newOp.delete };\n return this;\n }\n // Since it does not matter if we insert before or after deleting at the same index,\n // always prefer to insert first\n if (typeof lastOp.delete === 'number' && newOp.insert != null) {\n index -= 1;\n lastOp = this.ops[index - 1];\n if (typeof lastOp !== 'object') {\n this.ops.unshift(newOp);\n return this;\n }\n }\n if (lodash_isequal_1.default(newOp.attributes, lastOp.attributes)) {\n if (typeof newOp.insert === 'string' &&\n typeof lastOp.insert === 'string') {\n this.ops[index - 1] = { insert: lastOp.insert + newOp.insert };\n if (typeof newOp.attributes === 'object') {\n this.ops[index - 1].attributes = newOp.attributes;\n }\n return this;\n }\n else if (typeof newOp.retain === 'number' &&\n typeof lastOp.retain === 'number') {\n this.ops[index - 1] = { retain: lastOp.retain + newOp.retain };\n if (typeof newOp.attributes === 'object') {\n this.ops[index - 1].attributes = newOp.attributes;\n }\n return this;\n }\n }\n }\n if (index === this.ops.length) {\n this.ops.push(newOp);\n }\n else {\n this.ops.splice(index, 0, newOp);\n }\n return this;\n };\n Delta.prototype.chop = function () {\n var lastOp = this.ops[this.ops.length - 1];\n if (lastOp && lastOp.retain && !lastOp.attributes) {\n this.ops.pop();\n }\n return this;\n };\n Delta.prototype.filter = function (predicate) {\n return this.ops.filter(predicate);\n };\n Delta.prototype.forEach = function (predicate) {\n this.ops.forEach(predicate);\n };\n Delta.prototype.map = function (predicate) {\n return this.ops.map(predicate);\n };\n Delta.prototype.partition = function (predicate) {\n var passed = [];\n var failed = [];\n this.forEach(function (op) {\n var target = predicate(op) ? passed : failed;\n target.push(op);\n });\n return [passed, failed];\n };\n Delta.prototype.reduce = function (predicate, initialValue) {\n return this.ops.reduce(predicate, initialValue);\n };\n Delta.prototype.changeLength = function () {\n return this.reduce(function (length, elem) {\n if (elem.insert) {\n return length + Op_1.default.length(elem);\n }\n else if (elem.delete) {\n return length - elem.delete;\n }\n return length;\n }, 0);\n };\n Delta.prototype.length = function () {\n return this.reduce(function (length, elem) {\n return length + Op_1.default.length(elem);\n }, 0);\n };\n Delta.prototype.slice = function (start, end) {\n if (start === void 0) { start = 0; }\n if (end === void 0) { end = Infinity; }\n var ops = [];\n var iter = Op_1.default.iterator(this.ops);\n var index = 0;\n while (index < end && iter.hasNext()) {\n var nextOp = void 0;\n if (index < start) {\n nextOp = iter.next(start - index);\n }\n else {\n nextOp = iter.next(end - index);\n ops.push(nextOp);\n }\n index += Op_1.default.length(nextOp);\n }\n return new Delta(ops);\n };\n Delta.prototype.compose = function (other) {\n var thisIter = Op_1.default.iterator(this.ops);\n var otherIter = Op_1.default.iterator(other.ops);\n var ops = [];\n var firstOther = otherIter.peek();\n if (firstOther != null &&\n typeof firstOther.retain === 'number' &&\n firstOther.attributes == null) {\n var firstLeft = firstOther.retain;\n while (thisIter.peekType() === 'insert' &&\n thisIter.peekLength() <= firstLeft) {\n firstLeft -= thisIter.peekLength();\n ops.push(thisIter.next());\n }\n if (firstOther.retain - firstLeft > 0) {\n otherIter.next(firstOther.retain - firstLeft);\n }\n }\n var delta = new Delta(ops);\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n }\n else if (thisIter.peekType() === 'delete') {\n delta.push(thisIter.next());\n }\n else {\n var length_1 = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length_1);\n var otherOp = otherIter.next(length_1);\n if (typeof otherOp.retain === 'number') {\n var newOp = {};\n if (typeof thisOp.retain === 'number') {\n newOp.retain = length_1;\n }\n else {\n newOp.insert = thisOp.insert;\n }\n // Preserve null when composing with a retain, otherwise remove it for inserts\n var attributes = AttributeMap_1.default.compose(thisOp.attributes, otherOp.attributes, typeof thisOp.retain === 'number');\n if (attributes) {\n newOp.attributes = attributes;\n }\n delta.push(newOp);\n // Optimization if rest of other is just retain\n if (!otherIter.hasNext() &&\n lodash_isequal_1.default(delta.ops[delta.ops.length - 1], newOp)) {\n var rest = new Delta(thisIter.rest());\n return delta.concat(rest).chop();\n }\n // Other op should be delete, we could be an insert or retain\n // Insert + delete cancels out\n }\n else if (typeof otherOp.delete === 'number' &&\n typeof thisOp.retain === 'number') {\n delta.push(otherOp);\n }\n }\n }\n return delta.chop();\n };\n Delta.prototype.concat = function (other) {\n var delta = new Delta(this.ops.slice());\n if (other.ops.length > 0) {\n delta.push(other.ops[0]);\n delta.ops = delta.ops.concat(other.ops.slice(1));\n }\n return delta;\n };\n Delta.prototype.diff = function (other, cursor) {\n if (this.ops === other.ops) {\n return new Delta();\n }\n var strings = [this, other].map(function (delta) {\n return delta\n .map(function (op) {\n if (op.insert != null) {\n return typeof op.insert === 'string' ? op.insert : NULL_CHARACTER;\n }\n var prep = delta === other ? 'on' : 'with';\n throw new Error('diff() called ' + prep + ' non-document');\n })\n .join('');\n });\n var retDelta = new Delta();\n var diffResult = fast_diff_1.default(strings[0], strings[1], cursor);\n var thisIter = Op_1.default.iterator(this.ops);\n var otherIter = Op_1.default.iterator(other.ops);\n diffResult.forEach(function (component) {\n var length = component[1].length;\n while (length > 0) {\n var opLength = 0;\n switch (component[0]) {\n case fast_diff_1.default.INSERT:\n opLength = Math.min(otherIter.peekLength(), length);\n retDelta.push(otherIter.next(opLength));\n break;\n case fast_diff_1.default.DELETE:\n opLength = Math.min(length, thisIter.peekLength());\n thisIter.next(opLength);\n retDelta.delete(opLength);\n break;\n case fast_diff_1.default.EQUAL:\n opLength = Math.min(thisIter.peekLength(), otherIter.peekLength(), length);\n var thisOp = thisIter.next(opLength);\n var otherOp = otherIter.next(opLength);\n if (lodash_isequal_1.default(thisOp.insert, otherOp.insert)) {\n retDelta.retain(opLength, AttributeMap_1.default.diff(thisOp.attributes, otherOp.attributes));\n }\n else {\n retDelta.push(otherOp).delete(opLength);\n }\n break;\n }\n length -= opLength;\n }\n });\n return retDelta.chop();\n };\n Delta.prototype.eachLine = function (predicate, newline) {\n if (newline === void 0) { newline = '\\n'; }\n var iter = Op_1.default.iterator(this.ops);\n var line = new Delta();\n var i = 0;\n while (iter.hasNext()) {\n if (iter.peekType() !== 'insert') {\n return;\n }\n var thisOp = iter.peek();\n var start = Op_1.default.length(thisOp) - iter.peekLength();\n var index = typeof thisOp.insert === 'string'\n ? thisOp.insert.indexOf(newline, start) - start\n : -1;\n if (index < 0) {\n line.push(iter.next());\n }\n else if (index > 0) {\n line.push(iter.next(index));\n }\n else {\n if (predicate(line, iter.next(1).attributes || {}, i) === false) {\n return;\n }\n i += 1;\n line = new Delta();\n }\n }\n if (line.length() > 0) {\n predicate(line, {}, i);\n }\n };\n Delta.prototype.invert = function (base) {\n var inverted = new Delta();\n this.reduce(function (baseIndex, op) {\n if (op.insert) {\n inverted.delete(Op_1.default.length(op));\n }\n else if (op.retain && op.attributes == null) {\n inverted.retain(op.retain);\n return baseIndex + op.retain;\n }\n else if (op.delete || (op.retain && op.attributes)) {\n var length_2 = (op.delete || op.retain);\n var slice = base.slice(baseIndex, baseIndex + length_2);\n slice.forEach(function (baseOp) {\n if (op.delete) {\n inverted.push(baseOp);\n }\n else if (op.retain && op.attributes) {\n inverted.retain(Op_1.default.length(baseOp), AttributeMap_1.default.invert(op.attributes, baseOp.attributes));\n }\n });\n return baseIndex + length_2;\n }\n return baseIndex;\n }, 0);\n return inverted.chop();\n };\n Delta.prototype.transform = function (arg, priority) {\n if (priority === void 0) { priority = false; }\n priority = !!priority;\n if (typeof arg === 'number') {\n return this.transformPosition(arg, priority);\n }\n var other = arg;\n var thisIter = Op_1.default.iterator(this.ops);\n var otherIter = Op_1.default.iterator(other.ops);\n var delta = new Delta();\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (thisIter.peekType() === 'insert' &&\n (priority || otherIter.peekType() !== 'insert')) {\n delta.retain(Op_1.default.length(thisIter.next()));\n }\n else if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n }\n else {\n var length_3 = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length_3);\n var otherOp = otherIter.next(length_3);\n if (thisOp.delete) {\n // Our delete either makes their delete redundant or removes their retain\n continue;\n }\n else if (otherOp.delete) {\n delta.push(otherOp);\n }\n else {\n // We retain either their retain or insert\n delta.retain(length_3, AttributeMap_1.default.transform(thisOp.attributes, otherOp.attributes, priority));\n }\n }\n }\n return delta.chop();\n };\n Delta.prototype.transformPosition = function (index, priority) {\n if (priority === void 0) { priority = false; }\n priority = !!priority;\n var thisIter = Op_1.default.iterator(this.ops);\n var offset = 0;\n while (thisIter.hasNext() && offset <= index) {\n var length_4 = thisIter.peekLength();\n var nextType = thisIter.peekType();\n thisIter.next();\n if (nextType === 'delete') {\n index -= Math.min(length_4, index - offset);\n continue;\n }\n else if (nextType === 'insert' && (offset < index || !priority)) {\n index += length_4;\n }\n offset += length_4;\n }\n return index;\n };\n Delta.Op = Op_1.default;\n Delta.AttributeMap = AttributeMap_1.default;\n return Delta;\n}());\nmodule.exports = Delta;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return globalRegistry; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return expandConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return overload; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Quill; });\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(quill_delta__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);\n/* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var lodash_merge__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(26);\n/* harmony import */ var lodash_merge__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_merge__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2);\n/* harmony import */ var _editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(4);\n/* harmony import */ var _emitter__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(3);\n/* harmony import */ var _module__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(9);\n/* harmony import */ var _selection__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(6);\n/* harmony import */ var _instances__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(32);\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(15);\n/* harmony import */ var _theme__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(39);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\n\n\n\n\n\n\n\nvar debug = Object(_logger__WEBPACK_IMPORTED_MODULE_9__[/* default */ \"a\"])('quill');\nvar globalRegistry = new parchment__WEBPACK_IMPORTED_MODULE_3__[\"Registry\"]();\nparchment__WEBPACK_IMPORTED_MODULE_3__[\"ParentBlot\"].uiClass = 'ql-ui';\n\nvar Quill = /*#__PURE__*/function () {\n function Quill(container) {\n var _this = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Quill);\n\n this.options = expandConfig(container, options);\n this.container = this.options.container;\n\n if (this.container == null) {\n return debug.error('Invalid Quill container', container);\n }\n\n if (this.options.debug) {\n Quill.debug(this.options.debug);\n }\n\n var html = this.container.innerHTML.trim();\n this.container.classList.add('ql-container');\n this.container.innerHTML = '';\n _instances__WEBPACK_IMPORTED_MODULE_8__[/* default */ \"a\"].set(this.container, this);\n this.root = this.addContainer('ql-editor');\n this.root.classList.add('ql-blank');\n this.scrollingContainer = this.options.scrollingContainer || this.root;\n this.emitter = new _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"]();\n var ScrollBlot = this.options.registry.query(parchment__WEBPACK_IMPORTED_MODULE_3__[\"ScrollBlot\"].blotName);\n this.scroll = new ScrollBlot(this.options.registry, this.root, {\n emitter: this.emitter,\n toggleBlankClass: this.toggleBlankClass.bind(this)\n });\n this.editor = new _editor__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"](this.scroll);\n this.selection = new _selection__WEBPACK_IMPORTED_MODULE_7__[/* default */ \"b\"](this.scroll, this.emitter);\n this.theme = new this.options.theme(this, this.options); // eslint-disable-line new-cap\n\n this.keyboard = this.theme.addModule('keyboard');\n this.clipboard = this.theme.addModule('clipboard');\n this.history = this.theme.addModule('history');\n this.uploader = this.theme.addModule('uploader');\n this.theme.init();\n this.emitter.on(_emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].events.EDITOR_CHANGE, function (type) {\n if (type === _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].events.TEXT_CHANGE) {\n _this.toggleBlankClass();\n }\n });\n this.emitter.on(_emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].events.SCROLL_UPDATE, function (source, mutations) {\n var oldRange = _this.selection.lastRange;\n\n var _this$selection$getRa = _this.selection.getRange(),\n _this$selection$getRa2 = _slicedToArray(_this$selection$getRa, 1),\n newRange = _this$selection$getRa2[0];\n\n var selectionInfo = oldRange && newRange ? {\n oldRange: oldRange,\n newRange: newRange\n } : undefined;\n modify.call(_this, function () {\n return _this.editor.update(null, mutations, selectionInfo);\n }, source);\n });\n this.setContents(this.getInitialContent(html));\n this.history.clear();\n\n if (this.options.placeholder) {\n this.root.setAttribute('data-placeholder', this.options.placeholder);\n }\n\n if (this.options.readOnly) {\n this.disable();\n }\n\n this.allowReadOnlyEdits = false;\n }\n\n _createClass(Quill, [{\n key: \"getInitialContent\",\n value: function getInitialContent(html) {\n return this.clipboard.convert({\n html: \"\".concat(html, \"


\"),\n text: '\\n'\n });\n }\n }, {\n key: \"toggleBlankClass\",\n value: function toggleBlankClass() {\n var isComposing = this.selection.composing;\n this.root.classList.toggle('ql-blank', this.editor.isBlank(isComposing));\n }\n }, {\n key: \"addContainer\",\n value: function addContainer(container) {\n var refNode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (typeof container === 'string') {\n var className = container;\n container = document.createElement('div');\n container.classList.add(className);\n }\n\n this.container.insertBefore(container, refNode);\n return container;\n }\n }, {\n key: \"blur\",\n value: function blur() {\n this.selection.setRange(null);\n }\n }, {\n key: \"deleteText\",\n value: function deleteText(index, length, source) {\n var _this2 = this;\n\n var _overload = overload(index, length, source);\n\n var _overload2 = _slicedToArray(_overload, 4);\n\n index = _overload2[0];\n length = _overload2[1];\n source = _overload2[3];\n return modify.call(this, function () {\n return _this2.editor.deleteText(index, length);\n }, source, index, -1 * length);\n }\n }, {\n key: \"disable\",\n value: function disable() {\n this.enable(false);\n }\n }, {\n key: \"editReadOnly\",\n value: function editReadOnly(modifier) {\n this.allowReadOnlyEdits = true;\n var value = modifier();\n this.allowReadOnlyEdits = false;\n return value;\n }\n }, {\n key: \"enable\",\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n this.scroll.enable(enabled);\n this.container.classList.toggle('ql-disabled', !enabled);\n }\n }, {\n key: \"focus\",\n value: function focus() {\n var scrollTop = this.scrollingContainer.scrollTop;\n this.selection.focus();\n this.scrollingContainer.scrollTop = scrollTop;\n this.scrollIntoView();\n }\n }, {\n key: \"format\",\n value: function format(name, value) {\n var _this3 = this;\n\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].sources.API;\n return modify.call(this, function () {\n var range = _this3.getSelection(true);\n\n var change = new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a();\n if (range == null) return change;\n\n if (_this3.scroll.query(name, parchment__WEBPACK_IMPORTED_MODULE_3__[\"Scope\"].BLOCK)) {\n change = _this3.editor.formatLine(range.index, range.length, _defineProperty({}, name, value));\n } else if (range.length === 0) {\n _this3.selection.format(name, value);\n\n return change;\n } else {\n change = _this3.editor.formatText(range.index, range.length, _defineProperty({}, name, value));\n }\n\n _this3.setSelection(range, _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].sources.SILENT);\n\n return change;\n }, source);\n }\n }, {\n key: \"formatLine\",\n value: function formatLine(index, length, name, value, source) {\n var _this4 = this;\n\n var formats; // eslint-disable-next-line prefer-const\n\n var _overload3 = overload(index, length, name, value, source);\n\n var _overload4 = _slicedToArray(_overload3, 4);\n\n index = _overload4[0];\n length = _overload4[1];\n formats = _overload4[2];\n source = _overload4[3];\n return modify.call(this, function () {\n return _this4.editor.formatLine(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: \"formatText\",\n value: function formatText(index, length, name, value, source) {\n var _this5 = this;\n\n var formats; // eslint-disable-next-line prefer-const\n\n var _overload5 = overload(index, length, name, value, source);\n\n var _overload6 = _slicedToArray(_overload5, 4);\n\n index = _overload6[0];\n length = _overload6[1];\n formats = _overload6[2];\n source = _overload6[3];\n return modify.call(this, function () {\n return _this5.editor.formatText(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: \"getBounds\",\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var bounds;\n\n if (typeof index === 'number') {\n bounds = this.selection.getBounds(index, length);\n } else {\n bounds = this.selection.getBounds(index.index, index.length);\n }\n\n var containerBounds = this.container.getBoundingClientRect();\n return {\n bottom: bounds.bottom - containerBounds.top,\n height: bounds.height,\n left: bounds.left - containerBounds.left,\n right: bounds.right - containerBounds.left,\n top: bounds.top - containerBounds.top,\n width: bounds.width\n };\n }\n }, {\n key: \"getContents\",\n value: function getContents() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n\n var _overload7 = overload(index, length);\n\n var _overload8 = _slicedToArray(_overload7, 2);\n\n index = _overload8[0];\n length = _overload8[1];\n return this.editor.getContents(index, length);\n }\n }, {\n key: \"getFormat\",\n value: function getFormat() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getSelection(true);\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n if (typeof index === 'number') {\n return this.editor.getFormat(index, length);\n }\n\n return this.editor.getFormat(index.index, index.length);\n }\n }, {\n key: \"getIndex\",\n value: function getIndex(blot) {\n return blot.offset(this.scroll);\n }\n }, {\n key: \"getLength\",\n value: function getLength() {\n return this.scroll.length();\n }\n }, {\n key: \"getLeaf\",\n value: function getLeaf(index) {\n return this.scroll.leaf(index);\n }\n }, {\n key: \"getLine\",\n value: function getLine(index) {\n return this.scroll.line(index);\n }\n }, {\n key: \"getLines\",\n value: function getLines() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n\n if (typeof index !== 'number') {\n return this.scroll.lines(index.index, index.length);\n }\n\n return this.scroll.lines(index, length);\n }\n }, {\n key: \"getModule\",\n value: function getModule(name) {\n return this.theme.modules[name];\n }\n }, {\n key: \"getSelection\",\n value: function getSelection() {\n var focus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n if (focus) this.focus();\n this.update(); // Make sure we access getRange with editor in consistent state\n\n return this.selection.getRange()[0];\n }\n }, {\n key: \"getSemanticHTML\",\n value: function getSemanticHTML() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n\n var _overload9 = overload(index, length);\n\n var _overload10 = _slicedToArray(_overload9, 2);\n\n index = _overload10[0];\n length = _overload10[1];\n return this.editor.getHTML(index, length);\n }\n }, {\n key: \"getText\",\n value: function getText() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n\n var _overload11 = overload(index, length);\n\n var _overload12 = _slicedToArray(_overload11, 2);\n\n index = _overload12[0];\n length = _overload12[1];\n return this.editor.getText(index, length);\n }\n }, {\n key: \"hasFocus\",\n value: function hasFocus() {\n return this.selection.hasFocus();\n }\n }, {\n key: \"insertEmbed\",\n value: function insertEmbed(index, embed, value) {\n var _this6 = this;\n\n var source = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Quill.sources.API;\n return modify.call(this, function () {\n return _this6.editor.insertEmbed(index, embed, value);\n }, source, index);\n }\n }, {\n key: \"insertText\",\n value: function insertText(index, text, name, value, source) {\n var _this7 = this;\n\n var formats; // eslint-disable-next-line prefer-const\n\n var _overload13 = overload(index, 0, name, value, source);\n\n var _overload14 = _slicedToArray(_overload13, 4);\n\n index = _overload14[0];\n formats = _overload14[2];\n source = _overload14[3];\n return modify.call(this, function () {\n return _this7.editor.insertText(index, text, formats);\n }, source, index, text.length);\n }\n }, {\n key: \"isEnabled\",\n value: function isEnabled() {\n return this.scroll.isEnabled();\n }\n }, {\n key: \"off\",\n value: function off() {\n var _this$emitter;\n\n return (_this$emitter = this.emitter).off.apply(_this$emitter, arguments);\n }\n }, {\n key: \"on\",\n value: function on() {\n var _this$emitter2;\n\n return (_this$emitter2 = this.emitter).on.apply(_this$emitter2, arguments);\n }\n }, {\n key: \"once\",\n value: function once() {\n var _this$emitter3;\n\n return (_this$emitter3 = this.emitter).once.apply(_this$emitter3, arguments);\n }\n }, {\n key: \"removeFormat\",\n value: function removeFormat(index, length, source) {\n var _this8 = this;\n\n var _overload15 = overload(index, length, source);\n\n var _overload16 = _slicedToArray(_overload15, 4);\n\n index = _overload16[0];\n length = _overload16[1];\n source = _overload16[3];\n return modify.call(this, function () {\n return _this8.editor.removeFormat(index, length);\n }, source, index);\n }\n }, {\n key: \"scrollIntoView\",\n value: function scrollIntoView() {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }, {\n key: \"setContents\",\n value: function setContents(delta) {\n var _this9 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].sources.API;\n return modify.call(this, function () {\n delta = new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a(delta);\n\n var length = _this9.getLength(); // Quill will set empty editor to \\n\n\n\n var delete1 = _this9.editor.deleteText(0, length); // delta always applied before existing content\n\n\n var applied = _this9.editor.applyDelta(delta); // Remove extra \\n from empty editor initialization\n\n\n var delete2 = _this9.editor.deleteText(_this9.getLength() - 1, 1);\n\n return delete1.compose(applied).compose(delete2);\n }, source);\n }\n }, {\n key: \"setSelection\",\n value: function setSelection(index, length, source) {\n if (index == null) {\n this.selection.setRange(null, length || Quill.sources.API);\n } else {\n var _overload17 = overload(index, length, source);\n\n var _overload18 = _slicedToArray(_overload17, 4);\n\n index = _overload18[0];\n length = _overload18[1];\n source = _overload18[3];\n this.selection.setRange(new _selection__WEBPACK_IMPORTED_MODULE_7__[/* Range */ \"a\"](Math.max(0, index), length), source);\n\n if (source !== _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].sources.SILENT) {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }\n }\n }, {\n key: \"setText\",\n value: function setText(text) {\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].sources.API;\n var delta = new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a().insert(text);\n return this.setContents(delta, source);\n }\n }, {\n key: \"update\",\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].sources.USER;\n var change = this.scroll.update(source); // Will update selection before selection.update() does if text changes\n\n this.selection.update(source); // TODO this is usually undefined\n\n return change;\n }\n }, {\n key: \"updateContents\",\n value: function updateContents(delta) {\n var _this10 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].sources.API;\n return modify.call(this, function () {\n delta = new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a(delta);\n return _this10.editor.applyDelta(delta, source);\n }, source, true);\n }\n }], [{\n key: \"debug\",\n value: function debug(limit) {\n if (limit === true) {\n limit = 'log';\n }\n\n _logger__WEBPACK_IMPORTED_MODULE_9__[/* default */ \"a\"].level(limit);\n }\n }, {\n key: \"find\",\n value: function find(node) {\n return _instances__WEBPACK_IMPORTED_MODULE_8__[/* default */ \"a\"].get(node) || globalRegistry.find(node);\n }\n }, {\n key: \"import\",\n value: function _import(name) {\n if (this.imports[name] == null) {\n debug.error(\"Cannot import \".concat(name, \". Are you sure it was registered?\"));\n }\n\n return this.imports[name];\n }\n }, {\n key: \"register\",\n value: function register(path, target) {\n var _this11 = this;\n\n var overwrite = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (typeof path !== 'string') {\n var name = path.attrName || path.blotName;\n\n if (typeof name === 'string') {\n // register(Blot | Attributor, overwrite)\n this.register(\"formats/\".concat(name), path, target);\n } else {\n Object.keys(path).forEach(function (key) {\n _this11.register(key, path[key], target);\n });\n }\n } else {\n if (this.imports[path] != null && !overwrite) {\n debug.warn(\"Overwriting \".concat(path, \" with\"), target);\n }\n\n this.imports[path] = target;\n\n if ((path.indexOf('blots/') === 0 || path.indexOf('formats/') === 0) && target.blotName !== 'abstract') {\n globalRegistry.register(target);\n }\n\n if (typeof target.register === 'function') {\n target.register(globalRegistry);\n }\n }\n }\n }]);\n\n return Quill;\n}();\n\nQuill.DEFAULTS = {\n bounds: null,\n modules: {},\n placeholder: '',\n readOnly: false,\n registry: globalRegistry,\n scrollingContainer: null,\n theme: 'default'\n};\nQuill.events = _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].events;\nQuill.sources = _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].sources; // eslint-disable-next-line no-undef\n\nQuill.version = false ? undefined : \"1.1.5\";\nQuill.imports = {\n delta: quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a,\n parchment: parchment__WEBPACK_IMPORTED_MODULE_3__,\n 'core/module': _module__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"],\n 'core/theme': _theme__WEBPACK_IMPORTED_MODULE_10__[/* default */ \"a\"]\n};\n\nfunction expandConfig(container, userConfig) {\n userConfig = lodash_merge__WEBPACK_IMPORTED_MODULE_2___default()({\n container: container,\n modules: {\n clipboard: true,\n keyboard: true,\n history: true,\n uploader: true\n }\n }, userConfig);\n\n if (!userConfig.theme || userConfig.theme === Quill.DEFAULTS.theme) {\n userConfig.theme = _theme__WEBPACK_IMPORTED_MODULE_10__[/* default */ \"a\"];\n } else {\n userConfig.theme = Quill.import(\"themes/\".concat(userConfig.theme));\n\n if (userConfig.theme == null) {\n throw new Error(\"Invalid theme \".concat(userConfig.theme, \". Did you register it?\"));\n }\n }\n\n var themeConfig = lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1___default()(userConfig.theme.DEFAULTS);\n [themeConfig, userConfig].forEach(function (config) {\n config.modules = config.modules || {};\n Object.keys(config.modules).forEach(function (module) {\n if (config.modules[module] === true) {\n config.modules[module] = {};\n }\n });\n });\n var moduleNames = Object.keys(themeConfig.modules).concat(Object.keys(userConfig.modules));\n var moduleConfig = moduleNames.reduce(function (config, name) {\n var moduleClass = Quill.import(\"modules/\".concat(name));\n\n if (moduleClass == null) {\n debug.error(\"Cannot load \".concat(name, \" module. Are you sure you registered it?\"));\n } else {\n config[name] = moduleClass.DEFAULTS || {};\n }\n\n return config;\n }, {}); // Special case toolbar shorthand\n\n if (userConfig.modules != null && userConfig.modules.toolbar && userConfig.modules.toolbar.constructor !== Object) {\n userConfig.modules.toolbar = {\n container: userConfig.modules.toolbar\n };\n }\n\n userConfig = lodash_merge__WEBPACK_IMPORTED_MODULE_2___default()({}, Quill.DEFAULTS, {\n modules: moduleConfig\n }, themeConfig, userConfig);\n ['bounds', 'container', 'scrollingContainer'].forEach(function (key) {\n if (typeof userConfig[key] === 'string') {\n userConfig[key] = document.querySelector(userConfig[key]);\n }\n });\n userConfig.modules = Object.keys(userConfig.modules).reduce(function (config, name) {\n if (userConfig.modules[name]) {\n config[name] = userConfig.modules[name];\n }\n\n return config;\n }, {});\n return userConfig;\n} // Handle selection preservation and TEXT_CHANGE emission\n// common to modification APIs\n\n\nfunction modify(modifier, source, index, shift) {\n if (!this.isEnabled() && source === _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].sources.USER && !this.allowReadOnlyEdits) {\n return new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a();\n }\n\n var range = index == null ? null : this.getSelection();\n var oldDelta = this.editor.delta;\n var change = modifier();\n\n if (range != null) {\n if (index === true) {\n index = range.index; // eslint-disable-line prefer-destructuring\n }\n\n if (shift == null) {\n range = shiftRange(range, change, source);\n } else if (shift !== 0) {\n range = shiftRange(range, index, shift, source);\n }\n\n this.setSelection(range, _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].sources.SILENT);\n }\n\n if (change.length() > 0) {\n var _this$emitter4;\n\n var args = [_emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].events.TEXT_CHANGE, change, oldDelta, source];\n\n (_this$emitter4 = this.emitter).emit.apply(_this$emitter4, [_emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].events.EDITOR_CHANGE].concat(args));\n\n if (source !== _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].sources.SILENT) {\n var _this$emitter5;\n\n (_this$emitter5 = this.emitter).emit.apply(_this$emitter5, args);\n }\n }\n\n return change;\n}\n\nfunction overload(index, length, name, value, source) {\n var formats = {};\n\n if (typeof index.index === 'number' && typeof index.length === 'number') {\n // Allow for throwaway end (used by insertText/insertEmbed)\n if (typeof length !== 'number') {\n source = value;\n value = name;\n name = length;\n length = index.length; // eslint-disable-line prefer-destructuring\n\n index = index.index; // eslint-disable-line prefer-destructuring\n } else {\n length = index.length; // eslint-disable-line prefer-destructuring\n\n index = index.index; // eslint-disable-line prefer-destructuring\n }\n } else if (typeof length !== 'number') {\n source = value;\n value = name;\n name = length;\n length = 0;\n } // Handle format being object, two format name/value strings or excluded\n\n\n if (_typeof(name) === 'object') {\n formats = name;\n source = value;\n } else if (typeof name === 'string') {\n if (value != null) {\n formats[name] = value;\n } else {\n source = name;\n }\n } // Handle optional source\n\n\n source = source || _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].sources.API;\n return [index, length, formats, source];\n}\n\nfunction shiftRange(range, index, length, source) {\n if (range == null) return null;\n var start;\n var end;\n\n if (index instanceof quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a) {\n var _map = [range.index, range.index + range.length].map(function (pos) {\n return index.transformPosition(pos, source !== _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].sources.USER);\n });\n\n var _map2 = _slicedToArray(_map, 2);\n\n start = _map2[0];\n end = _map2[1];\n } else {\n var _map3 = [range.index, range.index + range.length].map(function (pos) {\n if (pos < index || pos === index && source === _emitter__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"].sources.USER) return pos;\n\n if (length >= 0) {\n return pos + length;\n }\n\n return Math.max(index, pos + length);\n });\n\n var _map4 = _slicedToArray(_map3, 2);\n\n start = _map4[0];\n end = _map4[1];\n }\n\n return new _selection__WEBPACK_IMPORTED_MODULE_7__[/* Range */ \"a\"](start, end - start);\n}\n\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"ParentBlot\", function() { return /* reexport */ abstract_parent; });\n__webpack_require__.d(__webpack_exports__, \"ContainerBlot\", function() { return /* reexport */ container; });\n__webpack_require__.d(__webpack_exports__, \"LeafBlot\", function() { return /* reexport */ leaf; });\n__webpack_require__.d(__webpack_exports__, \"EmbedBlot\", function() { return /* reexport */ blot_embed; });\n__webpack_require__.d(__webpack_exports__, \"ScrollBlot\", function() { return /* reexport */ blot_scroll; });\n__webpack_require__.d(__webpack_exports__, \"BlockBlot\", function() { return /* reexport */ block; });\n__webpack_require__.d(__webpack_exports__, \"InlineBlot\", function() { return /* reexport */ inline; });\n__webpack_require__.d(__webpack_exports__, \"TextBlot\", function() { return /* reexport */ blot_text; });\n__webpack_require__.d(__webpack_exports__, \"Attributor\", function() { return /* reexport */ attributor; });\n__webpack_require__.d(__webpack_exports__, \"ClassAttributor\", function() { return /* reexport */ attributor_class; });\n__webpack_require__.d(__webpack_exports__, \"StyleAttributor\", function() { return /* reexport */ style; });\n__webpack_require__.d(__webpack_exports__, \"AttributorStore\", function() { return /* reexport */ store; });\n__webpack_require__.d(__webpack_exports__, \"Registry\", function() { return /* reexport */ registry; });\n__webpack_require__.d(__webpack_exports__, \"Scope\", function() { return /* reexport */ src_scope; });\n\n// CONCATENATED MODULE: ./node_modules/parchment/src/scope.ts\nvar Scope;\n\n(function (Scope) {\n Scope[Scope[\"TYPE\"] = 3] = \"TYPE\";\n Scope[Scope[\"LEVEL\"] = 12] = \"LEVEL\";\n Scope[Scope[\"ATTRIBUTE\"] = 13] = \"ATTRIBUTE\";\n Scope[Scope[\"BLOT\"] = 14] = \"BLOT\";\n Scope[Scope[\"INLINE\"] = 7] = \"INLINE\";\n Scope[Scope[\"BLOCK\"] = 11] = \"BLOCK\";\n Scope[Scope[\"BLOCK_BLOT\"] = 10] = \"BLOCK_BLOT\";\n Scope[Scope[\"INLINE_BLOT\"] = 6] = \"INLINE_BLOT\";\n Scope[Scope[\"BLOCK_ATTRIBUTE\"] = 9] = \"BLOCK_ATTRIBUTE\";\n Scope[Scope[\"INLINE_ATTRIBUTE\"] = 5] = \"INLINE_ATTRIBUTE\";\n Scope[Scope[\"ANY\"] = 15] = \"ANY\";\n})(Scope || (Scope = {}));\n\n/* harmony default export */ var src_scope = (Scope);\n// CONCATENATED MODULE: ./node_modules/parchment/src/collection/linked-list.ts\nvar LinkedList = function () {\n function LinkedList() {\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n LinkedList.prototype.append = function () {\n var nodes = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n nodes[_i] = arguments[_i];\n }\n\n this.insertBefore(nodes[0], null);\n\n if (nodes.length > 1) {\n var rest = nodes.slice(1);\n this.append.apply(this, rest);\n }\n };\n\n LinkedList.prototype.at = function (index) {\n var next = this.iterator();\n var cur = next();\n\n while (cur && index > 0) {\n index -= 1;\n cur = next();\n }\n\n return cur;\n };\n\n LinkedList.prototype.contains = function (node) {\n var next = this.iterator();\n var cur = next();\n\n while (cur) {\n if (cur === node) {\n return true;\n }\n\n cur = next();\n }\n\n return false;\n };\n\n LinkedList.prototype.indexOf = function (node) {\n var next = this.iterator();\n var cur = next();\n var index = 0;\n\n while (cur) {\n if (cur === node) {\n return index;\n }\n\n index += 1;\n cur = next();\n }\n\n return -1;\n };\n\n LinkedList.prototype.insertBefore = function (node, refNode) {\n if (node == null) {\n return;\n }\n\n this.remove(node);\n node.next = refNode;\n\n if (refNode != null) {\n node.prev = refNode.prev;\n\n if (refNode.prev != null) {\n refNode.prev.next = node;\n }\n\n refNode.prev = node;\n\n if (refNode === this.head) {\n this.head = node;\n }\n } else if (this.tail != null) {\n this.tail.next = node;\n node.prev = this.tail;\n this.tail = node;\n } else {\n node.prev = null;\n this.head = this.tail = node;\n }\n\n this.length += 1;\n };\n\n LinkedList.prototype.offset = function (target) {\n var index = 0;\n var cur = this.head;\n\n while (cur != null) {\n if (cur === target) {\n return index;\n }\n\n index += cur.length();\n cur = cur.next;\n }\n\n return -1;\n };\n\n LinkedList.prototype.remove = function (node) {\n if (!this.contains(node)) {\n return;\n }\n\n if (node.prev != null) {\n node.prev.next = node.next;\n }\n\n if (node.next != null) {\n node.next.prev = node.prev;\n }\n\n if (node === this.head) {\n this.head = node.next;\n }\n\n if (node === this.tail) {\n this.tail = node.prev;\n }\n\n this.length -= 1;\n };\n\n LinkedList.prototype.iterator = function (curNode) {\n if (curNode === void 0) {\n curNode = this.head;\n } // TODO use yield when we can\n\n\n return function () {\n var ret = curNode;\n\n if (curNode != null) {\n curNode = curNode.next;\n }\n\n return ret;\n };\n };\n\n LinkedList.prototype.find = function (index, inclusive) {\n if (inclusive === void 0) {\n inclusive = false;\n }\n\n var next = this.iterator();\n var cur = next();\n\n while (cur) {\n var length = cur.length();\n\n if (index < length || inclusive && index === length && (cur.next == null || cur.next.length() !== 0)) {\n return [cur, index];\n }\n\n index -= length;\n cur = next();\n }\n\n return [null, 0];\n };\n\n LinkedList.prototype.forEach = function (callback) {\n var next = this.iterator();\n var cur = next();\n\n while (cur) {\n callback(cur);\n cur = next();\n }\n };\n\n LinkedList.prototype.forEachAt = function (index, length, callback) {\n if (length <= 0) {\n return;\n }\n\n var _a = this.find(index),\n startNode = _a[0],\n offset = _a[1];\n\n var curIndex = index - offset;\n var next = this.iterator(startNode);\n var cur = next();\n\n while (cur && curIndex < index + length) {\n var curLength = cur.length();\n\n if (index > curIndex) {\n callback(cur, index - curIndex, Math.min(length, curIndex + curLength - index));\n } else {\n callback(cur, 0, Math.min(curLength, index + length - curIndex));\n }\n\n curIndex += curLength;\n cur = next();\n }\n };\n\n LinkedList.prototype.map = function (callback) {\n return this.reduce(function (memo, cur) {\n memo.push(callback(cur));\n return memo;\n }, []);\n };\n\n LinkedList.prototype.reduce = function (callback, memo) {\n var next = this.iterator();\n var cur = next();\n\n while (cur) {\n memo = callback(memo, cur);\n cur = next();\n }\n\n return memo;\n };\n\n return LinkedList;\n}();\n\n/* harmony default export */ var linked_list = (LinkedList);\n// CONCATENATED MODULE: ./node_modules/parchment/src/error.ts\nvar __extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nvar ParchmentError = function (_super) {\n __extends(ParchmentError, _super);\n\n function ParchmentError(message) {\n var _this = this;\n\n message = '[Parchment] ' + message;\n _this = _super.call(this, message) || this;\n _this.message = message;\n _this.name = _this.constructor.name;\n return _this;\n }\n\n return ParchmentError;\n}(Error);\n\n/* harmony default export */ var error = (ParchmentError);\n// CONCATENATED MODULE: ./node_modules/parchment/src/registry.ts\n\n\n\nvar registry_Registry = function () {\n function Registry() {\n this.attributes = {};\n this.classes = {};\n this.tags = {};\n this.types = {};\n }\n\n Registry.find = function (node, bubble) {\n if (bubble === void 0) {\n bubble = false;\n }\n\n if (node == null) {\n return null;\n }\n\n if (this.blots.has(node)) {\n return this.blots.get(node) || null;\n }\n\n if (bubble) {\n return this.find(node.parentNode, bubble);\n }\n\n return null;\n };\n\n Registry.prototype.create = function (scroll, input, value) {\n var match = this.query(input);\n\n if (match == null) {\n throw new error(\"Unable to create \" + input + \" blot\");\n }\n\n var blotClass = match;\n var node = // @ts-ignore\n input instanceof Node || input.nodeType === Node.TEXT_NODE ? input : blotClass.create(value);\n var blot = new blotClass(scroll, node, value);\n Registry.blots.set(blot.domNode, blot);\n return blot;\n };\n\n Registry.prototype.find = function (node, bubble) {\n if (bubble === void 0) {\n bubble = false;\n }\n\n return Registry.find(node, bubble);\n };\n\n Registry.prototype.query = function (query, scope) {\n var _this = this;\n\n if (scope === void 0) {\n scope = src_scope.ANY;\n }\n\n var match;\n\n if (typeof query === 'string') {\n match = this.types[query] || this.attributes[query]; // @ts-ignore\n } else if (query instanceof Text || query.nodeType === Node.TEXT_NODE) {\n match = this.types.text;\n } else if (typeof query === 'number') {\n if (query & src_scope.LEVEL & src_scope.BLOCK) {\n match = this.types.block;\n } else if (query & src_scope.LEVEL & src_scope.INLINE) {\n match = this.types.inline;\n }\n } else if (query instanceof HTMLElement) {\n var names = (query.getAttribute('class') || '').split(/\\s+/);\n names.some(function (name) {\n match = _this.classes[name];\n\n if (match) {\n return true;\n }\n\n return false;\n });\n match = match || this.tags[query.tagName];\n }\n\n if (match == null) {\n return null;\n } // @ts-ignore\n\n\n if (scope & src_scope.LEVEL & match.scope && scope & src_scope.TYPE & match.scope) {\n return match;\n }\n\n return null;\n };\n\n Registry.prototype.register = function () {\n var _this = this;\n\n var definitions = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n definitions[_i] = arguments[_i];\n }\n\n if (definitions.length > 1) {\n return definitions.map(function (d) {\n return _this.register(d);\n });\n }\n\n var definition = definitions[0];\n\n if (typeof definition.blotName !== 'string' && typeof definition.attrName !== 'string') {\n throw new error('Invalid definition');\n } else if (definition.blotName === 'abstract') {\n throw new error('Cannot register abstract class');\n }\n\n this.types[definition.blotName || definition.attrName] = definition;\n\n if (typeof definition.keyName === 'string') {\n this.attributes[definition.keyName] = definition;\n } else {\n if (definition.className != null) {\n this.classes[definition.className] = definition;\n }\n\n if (definition.tagName != null) {\n if (Array.isArray(definition.tagName)) {\n definition.tagName = definition.tagName.map(function (tagName) {\n return tagName.toUpperCase();\n });\n } else {\n definition.tagName = definition.tagName.toUpperCase();\n }\n\n var tagNames = Array.isArray(definition.tagName) ? definition.tagName : [definition.tagName];\n tagNames.forEach(function (tag) {\n if (_this.tags[tag] == null || definition.className == null) {\n _this.tags[tag] = definition;\n }\n });\n }\n }\n\n return definition;\n };\n\n Registry.blots = new WeakMap();\n return Registry;\n}();\n\n/* harmony default export */ var registry = (registry_Registry);\n// CONCATENATED MODULE: ./node_modules/parchment/src/blot/abstract/shadow.ts\n\n\n\n\nvar shadow_ShadowBlot = function () {\n function ShadowBlot(scroll, domNode) {\n this.scroll = scroll;\n this.domNode = domNode;\n registry.blots.set(domNode, this);\n this.prev = null;\n this.next = null;\n }\n\n ShadowBlot.create = function (value) {\n if (this.tagName == null) {\n throw new error('Blot definition missing tagName');\n }\n\n var node;\n\n if (Array.isArray(this.tagName)) {\n if (typeof value === 'string') {\n value = value.toUpperCase();\n\n if (parseInt(value, 10).toString() === value) {\n value = parseInt(value, 10);\n }\n }\n\n if (typeof value === 'number') {\n node = document.createElement(this.tagName[value - 1]);\n } else if (this.tagName.indexOf(value) > -1) {\n node = document.createElement(value);\n } else {\n node = document.createElement(this.tagName[0]);\n }\n } else {\n node = document.createElement(this.tagName);\n }\n\n if (this.className) {\n node.classList.add(this.className);\n }\n\n return node;\n };\n\n Object.defineProperty(ShadowBlot.prototype, \"statics\", {\n // Hack for accessing inherited static methods\n get: function get() {\n return this.constructor;\n },\n enumerable: false,\n configurable: true\n });\n\n ShadowBlot.prototype.attach = function () {// Nothing to do\n };\n\n ShadowBlot.prototype.clone = function () {\n var domNode = this.domNode.cloneNode(false);\n return this.scroll.create(domNode);\n };\n\n ShadowBlot.prototype.detach = function () {\n if (this.parent != null) {\n this.parent.removeChild(this);\n }\n\n registry.blots.delete(this.domNode);\n };\n\n ShadowBlot.prototype.deleteAt = function (index, length) {\n var blot = this.isolate(index, length);\n blot.remove();\n };\n\n ShadowBlot.prototype.formatAt = function (index, length, name, value) {\n var blot = this.isolate(index, length);\n\n if (this.scroll.query(name, src_scope.BLOT) != null && value) {\n blot.wrap(name, value);\n } else if (this.scroll.query(name, src_scope.ATTRIBUTE) != null) {\n var parent = this.scroll.create(this.statics.scope);\n blot.wrap(parent);\n parent.format(name, value);\n }\n };\n\n ShadowBlot.prototype.insertAt = function (index, value, def) {\n var blot = def == null ? this.scroll.create('text', value) : this.scroll.create(value, def);\n var ref = this.split(index);\n this.parent.insertBefore(blot, ref || undefined);\n };\n\n ShadowBlot.prototype.isolate = function (index, length) {\n var target = this.split(index);\n\n if (target == null) {\n throw new Error('Attempt to isolate at end');\n }\n\n target.split(length);\n return target;\n };\n\n ShadowBlot.prototype.length = function () {\n return 1;\n };\n\n ShadowBlot.prototype.offset = function (root) {\n if (root === void 0) {\n root = this.parent;\n }\n\n if (this.parent == null || this === root) {\n return 0;\n }\n\n return this.parent.children.offset(this) + this.parent.offset(root);\n };\n\n ShadowBlot.prototype.optimize = function (_context) {\n if (this.statics.requiredContainer && !(this.parent instanceof this.statics.requiredContainer)) {\n this.wrap(this.statics.requiredContainer.blotName);\n }\n };\n\n ShadowBlot.prototype.remove = function () {\n if (this.domNode.parentNode != null) {\n this.domNode.parentNode.removeChild(this.domNode);\n }\n\n this.detach();\n };\n\n ShadowBlot.prototype.replaceWith = function (name, value) {\n var replacement = typeof name === 'string' ? this.scroll.create(name, value) : name;\n\n if (this.parent != null) {\n this.parent.insertBefore(replacement, this.next || undefined);\n this.remove();\n }\n\n return replacement;\n };\n\n ShadowBlot.prototype.split = function (index, _force) {\n return index === 0 ? this : this.next;\n };\n\n ShadowBlot.prototype.update = function (_mutations, _context) {// Nothing to do by default\n };\n\n ShadowBlot.prototype.wrap = function (name, value) {\n var wrapper = typeof name === 'string' ? this.scroll.create(name, value) : name;\n\n if (this.parent != null) {\n this.parent.insertBefore(wrapper, this.next || undefined);\n }\n\n if (typeof wrapper.appendChild !== 'function') {\n throw new error(\"Cannot wrap \" + name);\n }\n\n wrapper.appendChild(this);\n return wrapper;\n };\n\n ShadowBlot.blotName = 'abstract';\n return ShadowBlot;\n}();\n\n/* harmony default export */ var shadow = (shadow_ShadowBlot);\n// CONCATENATED MODULE: ./node_modules/parchment/src/blot/abstract/parent.ts\nvar parent_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n\n\n\n\n\nfunction makeAttachedBlot(node, scroll) {\n var blot = scroll.find(node);\n\n if (blot == null) {\n try {\n blot = scroll.create(node);\n } catch (e) {\n blot = scroll.create(src_scope.INLINE);\n Array.from(node.childNodes).forEach(function (child) {\n // @ts-ignore\n blot.domNode.appendChild(child);\n });\n\n if (node.parentNode) {\n node.parentNode.replaceChild(blot.domNode, node);\n }\n\n blot.attach();\n }\n }\n\n return blot;\n}\n\nvar parent_ParentBlot = function (_super) {\n parent_extends(ParentBlot, _super);\n\n function ParentBlot(scroll, domNode) {\n var _this = _super.call(this, scroll, domNode) || this;\n\n _this.uiNode = null;\n\n _this.build();\n\n return _this;\n }\n\n ParentBlot.prototype.appendChild = function (other) {\n this.insertBefore(other);\n };\n\n ParentBlot.prototype.attach = function () {\n _super.prototype.attach.call(this);\n\n this.children.forEach(function (child) {\n child.attach();\n });\n };\n\n ParentBlot.prototype.attachUI = function (node) {\n if (this.uiNode != null) {\n this.uiNode.remove();\n }\n\n this.uiNode = node;\n\n if (ParentBlot.uiClass) {\n this.uiNode.classList.add(ParentBlot.uiClass);\n }\n\n this.uiNode.setAttribute('contenteditable', 'false');\n this.domNode.insertBefore(this.uiNode, this.domNode.firstChild);\n };\n\n ParentBlot.prototype.build = function () {\n var _this = this;\n\n this.children = new linked_list(); // Need to be reversed for if DOM nodes already in order\n\n Array.from(this.domNode.childNodes).filter(function (node) {\n return node !== _this.uiNode;\n }).reverse().forEach(function (node) {\n try {\n var child = makeAttachedBlot(node, _this.scroll);\n\n _this.insertBefore(child, _this.children.head || undefined);\n } catch (err) {\n if (err instanceof error) {\n return;\n } else {\n throw err;\n }\n }\n });\n };\n\n ParentBlot.prototype.deleteAt = function (index, length) {\n if (index === 0 && length === this.length()) {\n return this.remove();\n }\n\n this.children.forEachAt(index, length, function (child, offset, childLength) {\n child.deleteAt(offset, childLength);\n });\n };\n\n ParentBlot.prototype.descendant = function (criteria, index) {\n if (index === void 0) {\n index = 0;\n }\n\n var _a = this.children.find(index),\n child = _a[0],\n offset = _a[1];\n\n if (criteria.blotName == null && criteria(child) || criteria.blotName != null && child instanceof criteria) {\n return [child, offset];\n } else if (child instanceof ParentBlot) {\n return child.descendant(criteria, offset);\n } else {\n return [null, -1];\n }\n };\n\n ParentBlot.prototype.descendants = function (criteria, index, length) {\n if (index === void 0) {\n index = 0;\n }\n\n if (length === void 0) {\n length = Number.MAX_VALUE;\n }\n\n var descendants = [];\n var lengthLeft = length;\n this.children.forEachAt(index, length, function (child, childIndex, childLength) {\n if (criteria.blotName == null && criteria(child) || criteria.blotName != null && child instanceof criteria) {\n descendants.push(child);\n }\n\n if (child instanceof ParentBlot) {\n descendants = descendants.concat(child.descendants(criteria, childIndex, lengthLeft));\n }\n\n lengthLeft -= childLength;\n });\n return descendants;\n };\n\n ParentBlot.prototype.detach = function () {\n this.children.forEach(function (child) {\n child.detach();\n });\n\n _super.prototype.detach.call(this);\n };\n\n ParentBlot.prototype.enforceAllowedChildren = function () {\n var _this = this;\n\n var done = false;\n this.children.forEach(function (child) {\n if (done) {\n return;\n }\n\n var allowed = _this.statics.allowedChildren.some(function (def) {\n return child instanceof def;\n });\n\n if (allowed) {\n return;\n }\n\n if (child.statics.scope === src_scope.BLOCK_BLOT) {\n if (child.next != null) {\n _this.splitAfter(child);\n }\n\n if (child.prev != null) {\n _this.splitAfter(child.prev);\n }\n\n child.parent.unwrap();\n done = true;\n } else if (child instanceof ParentBlot) {\n child.unwrap();\n } else {\n child.remove();\n }\n });\n };\n\n ParentBlot.prototype.formatAt = function (index, length, name, value) {\n this.children.forEachAt(index, length, function (child, offset, childLength) {\n child.formatAt(offset, childLength, name, value);\n });\n };\n\n ParentBlot.prototype.insertAt = function (index, value, def) {\n var _a = this.children.find(index),\n child = _a[0],\n offset = _a[1];\n\n if (child) {\n child.insertAt(offset, value, def);\n } else {\n var blot = def == null ? this.scroll.create('text', value) : this.scroll.create(value, def);\n this.appendChild(blot);\n }\n };\n\n ParentBlot.prototype.insertBefore = function (childBlot, refBlot) {\n if (childBlot.parent != null) {\n childBlot.parent.children.remove(childBlot);\n }\n\n var refDomNode = null;\n this.children.insertBefore(childBlot, refBlot || null);\n childBlot.parent = this;\n\n if (refBlot != null) {\n refDomNode = refBlot.domNode;\n }\n\n if (this.domNode.parentNode !== childBlot.domNode || this.domNode.nextSibling !== refDomNode) {\n this.domNode.insertBefore(childBlot.domNode, refDomNode);\n }\n\n childBlot.attach();\n };\n\n ParentBlot.prototype.length = function () {\n return this.children.reduce(function (memo, child) {\n return memo + child.length();\n }, 0);\n };\n\n ParentBlot.prototype.moveChildren = function (targetParent, refNode) {\n this.children.forEach(function (child) {\n targetParent.insertBefore(child, refNode);\n });\n };\n\n ParentBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n\n this.enforceAllowedChildren();\n\n if (this.uiNode != null && this.uiNode !== this.domNode.firstChild) {\n this.domNode.insertBefore(this.uiNode, this.domNode.firstChild);\n }\n\n if (this.children.length === 0) {\n if (this.statics.defaultChild != null) {\n var child = this.scroll.create(this.statics.defaultChild.blotName);\n this.appendChild(child); // TODO double check if necessary\n // child.optimize(context);\n } else {\n this.remove();\n }\n }\n };\n\n ParentBlot.prototype.path = function (index, inclusive) {\n if (inclusive === void 0) {\n inclusive = false;\n }\n\n var _a = this.children.find(index, inclusive),\n child = _a[0],\n offset = _a[1];\n\n var position = [[this, index]];\n\n if (child instanceof ParentBlot) {\n return position.concat(child.path(offset, inclusive));\n } else if (child != null) {\n position.push([child, offset]);\n }\n\n return position;\n };\n\n ParentBlot.prototype.removeChild = function (child) {\n this.children.remove(child);\n };\n\n ParentBlot.prototype.replaceWith = function (name, value) {\n var replacement = typeof name === 'string' ? this.scroll.create(name, value) : name;\n\n if (replacement instanceof ParentBlot) {\n this.moveChildren(replacement);\n }\n\n return _super.prototype.replaceWith.call(this, replacement);\n };\n\n ParentBlot.prototype.split = function (index, force) {\n if (force === void 0) {\n force = false;\n }\n\n if (!force) {\n if (index === 0) {\n return this;\n }\n\n if (index === this.length()) {\n return this.next;\n }\n }\n\n var after = this.clone();\n\n if (this.parent) {\n this.parent.insertBefore(after, this.next || undefined);\n }\n\n this.children.forEachAt(index, this.length(), function (child, offset, _length) {\n var split = child.split(offset, force);\n\n if (split != null) {\n after.appendChild(split);\n }\n });\n return after;\n };\n\n ParentBlot.prototype.splitAfter = function (child) {\n var after = this.clone();\n\n while (child.next != null) {\n after.appendChild(child.next);\n }\n\n if (this.parent) {\n this.parent.insertBefore(after, this.next || undefined);\n }\n\n return after;\n };\n\n ParentBlot.prototype.unwrap = function () {\n if (this.parent) {\n this.moveChildren(this.parent, this.next || undefined);\n }\n\n this.remove();\n };\n\n ParentBlot.prototype.update = function (mutations, _context) {\n var _this = this;\n\n var addedNodes = [];\n var removedNodes = [];\n mutations.forEach(function (mutation) {\n if (mutation.target === _this.domNode && mutation.type === 'childList') {\n addedNodes.push.apply(addedNodes, mutation.addedNodes);\n removedNodes.push.apply(removedNodes, mutation.removedNodes);\n }\n });\n removedNodes.forEach(function (node) {\n // Check node has actually been removed\n // One exception is Chrome does not immediately remove IFRAMEs\n // from DOM but MutationRecord is correct in its reported removal\n if (node.parentNode != null && // @ts-ignore\n node.tagName !== 'IFRAME' && document.body.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return;\n }\n\n var blot = _this.scroll.find(node);\n\n if (blot == null) {\n return;\n }\n\n if (blot.domNode.parentNode == null || blot.domNode.parentNode === _this.domNode) {\n blot.detach();\n }\n });\n addedNodes.filter(function (node) {\n return node.parentNode === _this.domNode || node === _this.uiNode;\n }).sort(function (a, b) {\n if (a === b) {\n return 0;\n }\n\n if (a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING) {\n return 1;\n }\n\n return -1;\n }).forEach(function (node) {\n var refBlot = null;\n\n if (node.nextSibling != null) {\n refBlot = _this.scroll.find(node.nextSibling);\n }\n\n var blot = makeAttachedBlot(node, _this.scroll);\n\n if (blot.next !== refBlot || blot.next == null) {\n if (blot.parent != null) {\n blot.parent.removeChild(_this);\n }\n\n _this.insertBefore(blot, refBlot || undefined);\n }\n });\n this.enforceAllowedChildren();\n };\n\n ParentBlot.uiClass = '';\n return ParentBlot;\n}(shadow);\n\n/* harmony default export */ var abstract_parent = (parent_ParentBlot);\n// CONCATENATED MODULE: ./node_modules/parchment/src/blot/abstract/container.ts\nvar container_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n\n\n\nvar container_ContainerBlot = function (_super) {\n container_extends(ContainerBlot, _super);\n\n function ContainerBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n ContainerBlot.prototype.checkMerge = function () {\n return this.next !== null && this.next.statics.blotName === this.statics.blotName;\n };\n\n ContainerBlot.prototype.deleteAt = function (index, length) {\n _super.prototype.deleteAt.call(this, index, length);\n\n this.enforceAllowedChildren();\n };\n\n ContainerBlot.prototype.formatAt = function (index, length, name, value) {\n _super.prototype.formatAt.call(this, index, length, name, value);\n\n this.enforceAllowedChildren();\n };\n\n ContainerBlot.prototype.insertAt = function (index, value, def) {\n _super.prototype.insertAt.call(this, index, value, def);\n\n this.enforceAllowedChildren();\n };\n\n ContainerBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n\n if (this.children.length > 0 && this.next != null && this.checkMerge()) {\n this.next.moveChildren(this);\n this.next.remove();\n }\n };\n\n ContainerBlot.blotName = 'container';\n ContainerBlot.scope = src_scope.BLOCK_BLOT;\n return ContainerBlot;\n}(abstract_parent);\n\n/* harmony default export */ var container = (container_ContainerBlot);\n// CONCATENATED MODULE: ./node_modules/parchment/src/blot/abstract/leaf.ts\nvar leaf_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n\n\n\nvar leaf_LeafBlot = function (_super) {\n leaf_extends(LeafBlot, _super);\n\n function LeafBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n LeafBlot.value = function (_domNode) {\n return true;\n };\n\n LeafBlot.prototype.index = function (node, offset) {\n if (this.domNode === node || this.domNode.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return Math.min(offset, 1);\n }\n\n return -1;\n };\n\n LeafBlot.prototype.position = function (index, _inclusive) {\n var childNodes = Array.from(this.parent.domNode.childNodes);\n var offset = childNodes.indexOf(this.domNode);\n\n if (index > 0) {\n offset += 1;\n }\n\n return [this.parent.domNode, offset];\n };\n\n LeafBlot.prototype.value = function () {\n var _a;\n\n return _a = {}, _a[this.statics.blotName] = this.statics.value(this.domNode) || true, _a;\n };\n\n LeafBlot.scope = src_scope.INLINE_BLOT;\n return LeafBlot;\n}(shadow);\n\n/* harmony default export */ var leaf = (leaf_LeafBlot);\n// CONCATENATED MODULE: ./node_modules/parchment/src/attributor/attributor.ts\n\n\nvar attributor_Attributor = function () {\n function Attributor(attrName, keyName, options) {\n if (options === void 0) {\n options = {};\n }\n\n this.attrName = attrName;\n this.keyName = keyName;\n var attributeBit = src_scope.TYPE & src_scope.ATTRIBUTE;\n this.scope = options.scope != null ? // Ignore type bits, force attribute bit\n options.scope & src_scope.LEVEL | attributeBit : src_scope.ATTRIBUTE;\n\n if (options.whitelist != null) {\n this.whitelist = options.whitelist;\n }\n }\n\n Attributor.keys = function (node) {\n return Array.from(node.attributes).map(function (item) {\n return item.name;\n });\n };\n\n Attributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value)) {\n return false;\n }\n\n node.setAttribute(this.keyName, value);\n return true;\n };\n\n Attributor.prototype.canAdd = function (_node, value) {\n if (this.whitelist == null) {\n return true;\n }\n\n if (typeof value === 'string') {\n return this.whitelist.indexOf(value.replace(/[\"']/g, '')) > -1;\n } else {\n return this.whitelist.indexOf(value) > -1;\n }\n };\n\n Attributor.prototype.remove = function (node) {\n node.removeAttribute(this.keyName);\n };\n\n Attributor.prototype.value = function (node) {\n var value = node.getAttribute(this.keyName);\n\n if (this.canAdd(node, value) && value) {\n return value;\n }\n\n return '';\n };\n\n return Attributor;\n}();\n\n/* harmony default export */ var attributor = (attributor_Attributor);\n// CONCATENATED MODULE: ./node_modules/parchment/src/attributor/class.ts\nvar class_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n\n\nfunction class_match(node, prefix) {\n var className = node.getAttribute('class') || '';\n return className.split(/\\s+/).filter(function (name) {\n return name.indexOf(prefix + \"-\") === 0;\n });\n}\n\nvar ClassAttributor = function (_super) {\n class_extends(ClassAttributor, _super);\n\n function ClassAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n ClassAttributor.keys = function (node) {\n return (node.getAttribute('class') || '').split(/\\s+/).map(function (name) {\n return name.split('-').slice(0, -1).join('-');\n });\n };\n\n ClassAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value)) {\n return false;\n }\n\n this.remove(node);\n node.classList.add(this.keyName + \"-\" + value);\n return true;\n };\n\n ClassAttributor.prototype.remove = function (node) {\n var matches = class_match(node, this.keyName);\n matches.forEach(function (name) {\n node.classList.remove(name);\n });\n\n if (node.classList.length === 0) {\n node.removeAttribute('class');\n }\n };\n\n ClassAttributor.prototype.value = function (node) {\n var result = class_match(node, this.keyName)[0] || '';\n var value = result.slice(this.keyName.length + 1); // +1 for hyphen\n\n return this.canAdd(node, value) ? value : '';\n };\n\n return ClassAttributor;\n}(attributor);\n\n/* harmony default export */ var attributor_class = (ClassAttributor);\n// CONCATENATED MODULE: ./node_modules/parchment/src/attributor/style.ts\nvar style_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n\n\nfunction camelize(name) {\n var parts = name.split('-');\n var rest = parts.slice(1).map(function (part) {\n return part[0].toUpperCase() + part.slice(1);\n }).join('');\n return parts[0] + rest;\n}\n\nvar StyleAttributor = function (_super) {\n style_extends(StyleAttributor, _super);\n\n function StyleAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n StyleAttributor.keys = function (node) {\n return (node.getAttribute('style') || '').split(';').map(function (value) {\n var arr = value.split(':');\n return arr[0].trim();\n });\n };\n\n StyleAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value)) {\n return false;\n } // @ts-ignore\n\n\n node.style[camelize(this.keyName)] = value;\n return true;\n };\n\n StyleAttributor.prototype.remove = function (node) {\n // @ts-ignore\n node.style[camelize(this.keyName)] = '';\n\n if (!node.getAttribute('style')) {\n node.removeAttribute('style');\n }\n };\n\n StyleAttributor.prototype.value = function (node) {\n // @ts-ignore\n var value = node.style[camelize(this.keyName)];\n return this.canAdd(node, value) ? value : '';\n };\n\n return StyleAttributor;\n}(attributor);\n\n/* harmony default export */ var style = (StyleAttributor);\n// CONCATENATED MODULE: ./node_modules/parchment/src/attributor/store.ts\n\n\n\n\n\n\nvar store_AttributorStore = function () {\n function AttributorStore(domNode) {\n this.attributes = {};\n this.domNode = domNode;\n this.build();\n }\n\n AttributorStore.prototype.attribute = function (attribute, value) {\n // verb\n if (value) {\n if (attribute.add(this.domNode, value)) {\n if (attribute.value(this.domNode) != null) {\n this.attributes[attribute.attrName] = attribute;\n } else {\n delete this.attributes[attribute.attrName];\n }\n }\n } else {\n attribute.remove(this.domNode);\n delete this.attributes[attribute.attrName];\n }\n };\n\n AttributorStore.prototype.build = function () {\n var _this = this;\n\n this.attributes = {};\n var blot = registry.find(this.domNode);\n\n if (blot == null) {\n return;\n }\n\n var attributes = attributor.keys(this.domNode);\n var classes = attributor_class.keys(this.domNode);\n var styles = style.keys(this.domNode);\n attributes.concat(classes).concat(styles).forEach(function (name) {\n var attr = blot.scroll.query(name, src_scope.ATTRIBUTE);\n\n if (attr instanceof attributor) {\n _this.attributes[attr.attrName] = attr;\n }\n });\n };\n\n AttributorStore.prototype.copy = function (target) {\n var _this = this;\n\n Object.keys(this.attributes).forEach(function (key) {\n var value = _this.attributes[key].value(_this.domNode);\n\n target.format(key, value);\n });\n };\n\n AttributorStore.prototype.move = function (target) {\n var _this = this;\n\n this.copy(target);\n Object.keys(this.attributes).forEach(function (key) {\n _this.attributes[key].remove(_this.domNode);\n });\n this.attributes = {};\n };\n\n AttributorStore.prototype.values = function () {\n var _this = this;\n\n return Object.keys(this.attributes).reduce(function (attributes, name) {\n attributes[name] = _this.attributes[name].value(_this.domNode);\n return attributes;\n }, {});\n };\n\n return AttributorStore;\n}();\n\n/* harmony default export */ var store = (store_AttributorStore);\n// CONCATENATED MODULE: ./node_modules/parchment/src/blot/inline.ts\nvar inline_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n\n\n\n\n // Shallow object comparison\n\nfunction isEqual(obj1, obj2) {\n if (Object.keys(obj1).length !== Object.keys(obj2).length) {\n return false;\n } // @ts-ignore\n\n\n for (var prop in obj1) {\n // @ts-ignore\n if (obj1[prop] !== obj2[prop]) {\n return false;\n }\n }\n\n return true;\n}\n\nvar inline_InlineBlot = function (_super) {\n inline_extends(InlineBlot, _super);\n\n function InlineBlot(scroll, domNode) {\n var _this = _super.call(this, scroll, domNode) || this;\n\n _this.attributes = new store(_this.domNode);\n return _this;\n }\n\n InlineBlot.formats = function (domNode, scroll) {\n var match = scroll.query(InlineBlot.blotName);\n\n if (match != null && domNode.tagName === match.tagName) {\n return undefined;\n } else if (typeof this.tagName === 'string') {\n return true;\n } else if (Array.isArray(this.tagName)) {\n return domNode.tagName.toLowerCase();\n }\n\n return undefined;\n };\n\n InlineBlot.prototype.format = function (name, value) {\n var _this = this;\n\n if (name === this.statics.blotName && !value) {\n this.children.forEach(function (child) {\n if (!(child instanceof InlineBlot)) {\n child = child.wrap(InlineBlot.blotName, true);\n }\n\n _this.attributes.copy(child);\n });\n this.unwrap();\n } else {\n var format = this.scroll.query(name, src_scope.INLINE);\n\n if (format == null) {\n return;\n }\n\n if (format instanceof attributor) {\n this.attributes.attribute(format, value);\n } else if (value && (name !== this.statics.blotName || this.formats()[name] !== value)) {\n this.replaceWith(name, value);\n }\n }\n };\n\n InlineBlot.prototype.formats = function () {\n var formats = this.attributes.values();\n var format = this.statics.formats(this.domNode, this.scroll);\n\n if (format != null) {\n formats[this.statics.blotName] = format;\n }\n\n return formats;\n };\n\n InlineBlot.prototype.formatAt = function (index, length, name, value) {\n if (this.formats()[name] != null || this.scroll.query(name, src_scope.ATTRIBUTE)) {\n var blot = this.isolate(index, length);\n blot.format(name, value);\n } else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n\n InlineBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n\n var formats = this.formats();\n\n if (Object.keys(formats).length === 0) {\n return this.unwrap(); // unformatted span\n }\n\n var next = this.next;\n\n if (next instanceof InlineBlot && next.prev === this && isEqual(formats, next.formats())) {\n next.moveChildren(this);\n next.remove();\n }\n };\n\n InlineBlot.prototype.replaceWith = function (name, value) {\n var replacement = _super.prototype.replaceWith.call(this, name, value);\n\n this.attributes.copy(replacement);\n return replacement;\n };\n\n InlineBlot.prototype.update = function (mutations, context) {\n var _this = this;\n\n _super.prototype.update.call(this, mutations, context);\n\n var attributeChanged = mutations.some(function (mutation) {\n return mutation.target === _this.domNode && mutation.type === 'attributes';\n });\n\n if (attributeChanged) {\n this.attributes.build();\n }\n };\n\n InlineBlot.prototype.wrap = function (name, value) {\n var wrapper = _super.prototype.wrap.call(this, name, value);\n\n if (wrapper instanceof InlineBlot) {\n this.attributes.move(wrapper);\n }\n\n return wrapper;\n };\n\n InlineBlot.allowedChildren = [InlineBlot, leaf];\n InlineBlot.blotName = 'inline';\n InlineBlot.scope = src_scope.INLINE_BLOT;\n InlineBlot.tagName = 'SPAN';\n return InlineBlot;\n}(abstract_parent);\n\n/* harmony default export */ var inline = (inline_InlineBlot);\n// CONCATENATED MODULE: ./node_modules/parchment/src/blot/block.ts\nvar block_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n\n\n\n\n\n\n\nvar block_BlockBlot = function (_super) {\n block_extends(BlockBlot, _super);\n\n function BlockBlot(scroll, domNode) {\n var _this = _super.call(this, scroll, domNode) || this;\n\n _this.attributes = new store(_this.domNode);\n return _this;\n }\n\n BlockBlot.formats = function (domNode, scroll) {\n var match = scroll.query(BlockBlot.blotName);\n\n if (match != null && domNode.tagName === match.tagName) {\n return undefined;\n } else if (typeof this.tagName === 'string') {\n return true;\n } else if (Array.isArray(this.tagName)) {\n return domNode.tagName.toLowerCase();\n }\n };\n\n BlockBlot.prototype.format = function (name, value) {\n var format = this.scroll.query(name, src_scope.BLOCK);\n\n if (format == null) {\n return;\n } else if (format instanceof attributor) {\n this.attributes.attribute(format, value);\n } else if (name === this.statics.blotName && !value) {\n this.replaceWith(BlockBlot.blotName);\n } else if (value && (name !== this.statics.blotName || this.formats()[name] !== value)) {\n this.replaceWith(name, value);\n }\n };\n\n BlockBlot.prototype.formats = function () {\n var formats = this.attributes.values();\n var format = this.statics.formats(this.domNode, this.scroll);\n\n if (format != null) {\n formats[this.statics.blotName] = format;\n }\n\n return formats;\n };\n\n BlockBlot.prototype.formatAt = function (index, length, name, value) {\n if (this.scroll.query(name, src_scope.BLOCK) != null) {\n this.format(name, value);\n } else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n\n BlockBlot.prototype.insertAt = function (index, value, def) {\n if (def == null || this.scroll.query(value, src_scope.INLINE) != null) {\n // Insert text or inline\n _super.prototype.insertAt.call(this, index, value, def);\n } else {\n var after = this.split(index);\n\n if (after != null) {\n var blot = this.scroll.create(value, def);\n after.parent.insertBefore(blot, after);\n } else {\n throw new Error('Attempt to insertAt after block boundaries');\n }\n }\n };\n\n BlockBlot.prototype.replaceWith = function (name, value) {\n var replacement = _super.prototype.replaceWith.call(this, name, value);\n\n this.attributes.copy(replacement);\n return replacement;\n };\n\n BlockBlot.prototype.update = function (mutations, context) {\n var _this = this;\n\n _super.prototype.update.call(this, mutations, context);\n\n var attributeChanged = mutations.some(function (mutation) {\n return mutation.target === _this.domNode && mutation.type === 'attributes';\n });\n\n if (attributeChanged) {\n this.attributes.build();\n }\n };\n\n BlockBlot.blotName = 'block';\n BlockBlot.scope = src_scope.BLOCK_BLOT;\n BlockBlot.tagName = 'P';\n BlockBlot.allowedChildren = [inline, BlockBlot, leaf];\n return BlockBlot;\n}(abstract_parent);\n\n/* harmony default export */ var block = (block_BlockBlot);\n// CONCATENATED MODULE: ./node_modules/parchment/src/blot/embed.ts\nvar embed_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n\n\nvar EmbedBlot = function (_super) {\n embed_extends(EmbedBlot, _super);\n\n function EmbedBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n EmbedBlot.formats = function (_domNode, _scroll) {\n return undefined;\n };\n\n EmbedBlot.prototype.format = function (name, value) {\n // super.formatAt wraps, which is what we want in general,\n // but this allows subclasses to overwrite for formats\n // that just apply to particular embeds\n _super.prototype.formatAt.call(this, 0, this.length(), name, value);\n };\n\n EmbedBlot.prototype.formatAt = function (index, length, name, value) {\n if (index === 0 && length === this.length()) {\n this.format(name, value);\n } else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n\n EmbedBlot.prototype.formats = function () {\n return this.statics.formats(this.domNode, this.scroll);\n };\n\n return EmbedBlot;\n}(leaf);\n\n/* harmony default export */ var blot_embed = (EmbedBlot);\n// CONCATENATED MODULE: ./node_modules/parchment/src/blot/scroll.ts\nvar scroll_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n\n\n\n\n\nvar OBSERVER_CONFIG = {\n attributes: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true\n};\nvar MAX_OPTIMIZE_ITERATIONS = 100;\n\nvar scroll_ScrollBlot = function (_super) {\n scroll_extends(ScrollBlot, _super);\n\n function ScrollBlot(registry, node) {\n var _this = // @ts-ignore\n _super.call(this, null, node) || this;\n\n _this.registry = registry;\n _this.scroll = _this;\n\n _this.build();\n\n _this.observer = new MutationObserver(function (mutations) {\n _this.update(mutations);\n });\n\n _this.observer.observe(_this.domNode, OBSERVER_CONFIG);\n\n _this.attach();\n\n return _this;\n }\n\n ScrollBlot.prototype.create = function (input, value) {\n return this.registry.create(this, input, value);\n };\n\n ScrollBlot.prototype.find = function (node, bubble) {\n if (bubble === void 0) {\n bubble = false;\n }\n\n return this.registry.find(node, bubble);\n };\n\n ScrollBlot.prototype.query = function (query, scope) {\n if (scope === void 0) {\n scope = src_scope.ANY;\n }\n\n return this.registry.query(query, scope);\n };\n\n ScrollBlot.prototype.register = function () {\n var _a;\n\n var definitions = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n definitions[_i] = arguments[_i];\n }\n\n return (_a = this.registry).register.apply(_a, definitions);\n };\n\n ScrollBlot.prototype.build = function () {\n if (this.scroll == null) {\n return;\n }\n\n _super.prototype.build.call(this);\n };\n\n ScrollBlot.prototype.detach = function () {\n _super.prototype.detach.call(this);\n\n this.observer.disconnect();\n };\n\n ScrollBlot.prototype.deleteAt = function (index, length) {\n this.update();\n\n if (index === 0 && length === this.length()) {\n this.children.forEach(function (child) {\n child.remove();\n });\n } else {\n _super.prototype.deleteAt.call(this, index, length);\n }\n };\n\n ScrollBlot.prototype.formatAt = function (index, length, name, value) {\n this.update();\n\n _super.prototype.formatAt.call(this, index, length, name, value);\n };\n\n ScrollBlot.prototype.insertAt = function (index, value, def) {\n this.update();\n\n _super.prototype.insertAt.call(this, index, value, def);\n };\n\n ScrollBlot.prototype.optimize = function (mutations, context) {\n var _this = this;\n\n if (mutations === void 0) {\n mutations = [];\n }\n\n if (context === void 0) {\n context = {};\n }\n\n _super.prototype.optimize.call(this, context);\n\n var mutationsMap = context.mutationsMap || new WeakMap(); // We must modify mutations directly, cannot make copy and then modify\n\n var records = Array.from(this.observer.takeRecords()); // Array.push currently seems to be implemented by a non-tail recursive function\n // so we cannot just mutations.push.apply(mutations, this.observer.takeRecords());\n\n while (records.length > 0) {\n mutations.push(records.pop());\n }\n\n var mark = function mark(blot, markParent) {\n if (markParent === void 0) {\n markParent = true;\n }\n\n if (blot == null || blot === _this) {\n return;\n }\n\n if (blot.domNode.parentNode == null) {\n return;\n }\n\n if (!mutationsMap.has(blot.domNode)) {\n mutationsMap.set(blot.domNode, []);\n }\n\n if (markParent) {\n mark(blot.parent);\n }\n };\n\n var optimize = function optimize(blot) {\n // Post-order traversal\n if (!mutationsMap.has(blot.domNode)) {\n return;\n }\n\n if (blot instanceof abstract_parent) {\n blot.children.forEach(optimize);\n }\n\n mutationsMap.delete(blot.domNode);\n blot.optimize(context);\n };\n\n var remaining = mutations;\n\n for (var i = 0; remaining.length > 0; i += 1) {\n if (i >= MAX_OPTIMIZE_ITERATIONS) {\n throw new Error('[Parchment] Maximum optimize iterations reached');\n }\n\n remaining.forEach(function (mutation) {\n var blot = _this.find(mutation.target, true);\n\n if (blot == null) {\n return;\n }\n\n if (blot.domNode === mutation.target) {\n if (mutation.type === 'childList') {\n mark(_this.find(mutation.previousSibling, false));\n Array.from(mutation.addedNodes).forEach(function (node) {\n var child = _this.find(node, false);\n\n mark(child, false);\n\n if (child instanceof abstract_parent) {\n child.children.forEach(function (grandChild) {\n mark(grandChild, false);\n });\n }\n });\n } else if (mutation.type === 'attributes') {\n mark(blot.prev);\n }\n }\n\n mark(blot);\n });\n this.children.forEach(optimize);\n remaining = Array.from(this.observer.takeRecords());\n records = remaining.slice();\n\n while (records.length > 0) {\n mutations.push(records.pop());\n }\n }\n };\n\n ScrollBlot.prototype.update = function (mutations, context) {\n var _this = this;\n\n if (context === void 0) {\n context = {};\n }\n\n mutations = mutations || this.observer.takeRecords();\n var mutationsMap = new WeakMap();\n mutations.map(function (mutation) {\n var blot = registry.find(mutation.target, true);\n\n if (blot == null) {\n return null;\n }\n\n if (mutationsMap.has(blot.domNode)) {\n mutationsMap.get(blot.domNode).push(mutation);\n return null;\n } else {\n mutationsMap.set(blot.domNode, [mutation]);\n return blot;\n }\n }).forEach(function (blot) {\n if (blot != null && blot !== _this && mutationsMap.has(blot.domNode)) {\n blot.update(mutationsMap.get(blot.domNode) || [], context);\n }\n });\n context.mutationsMap = mutationsMap;\n\n if (mutationsMap.has(this.domNode)) {\n _super.prototype.update.call(this, mutationsMap.get(this.domNode), context);\n }\n\n this.optimize(mutations, context);\n };\n\n ScrollBlot.blotName = 'scroll';\n ScrollBlot.defaultChild = block;\n ScrollBlot.allowedChildren = [block, container];\n ScrollBlot.scope = src_scope.BLOCK_BLOT;\n ScrollBlot.tagName = 'DIV';\n return ScrollBlot;\n}(abstract_parent);\n\n/* harmony default export */ var blot_scroll = (scroll_ScrollBlot);\n// CONCATENATED MODULE: ./node_modules/parchment/src/blot/text.ts\nvar text_extends = undefined && undefined.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\n\n\n\nvar text_TextBlot = function (_super) {\n text_extends(TextBlot, _super);\n\n function TextBlot(scroll, node) {\n var _this = _super.call(this, scroll, node) || this;\n\n _this.text = _this.statics.value(_this.domNode);\n return _this;\n }\n\n TextBlot.create = function (value) {\n return document.createTextNode(value);\n };\n\n TextBlot.value = function (domNode) {\n return domNode.data;\n };\n\n TextBlot.prototype.deleteAt = function (index, length) {\n this.domNode.data = this.text = this.text.slice(0, index) + this.text.slice(index + length);\n };\n\n TextBlot.prototype.index = function (node, offset) {\n if (this.domNode === node) {\n return offset;\n }\n\n return -1;\n };\n\n TextBlot.prototype.insertAt = function (index, value, def) {\n if (def == null) {\n this.text = this.text.slice(0, index) + value + this.text.slice(index);\n this.domNode.data = this.text;\n } else {\n _super.prototype.insertAt.call(this, index, value, def);\n }\n };\n\n TextBlot.prototype.length = function () {\n return this.text.length;\n };\n\n TextBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n\n this.text = this.statics.value(this.domNode);\n\n if (this.text.length === 0) {\n this.remove();\n } else if (this.next instanceof TextBlot && this.next.prev === this) {\n this.insertAt(this.length(), this.next.value());\n this.next.remove();\n }\n };\n\n TextBlot.prototype.position = function (index, _inclusive) {\n if (_inclusive === void 0) {\n _inclusive = false;\n }\n\n return [this.domNode, index];\n };\n\n TextBlot.prototype.split = function (index, force) {\n if (force === void 0) {\n force = false;\n }\n\n if (!force) {\n if (index === 0) {\n return this;\n }\n\n if (index === this.length()) {\n return this.next;\n }\n }\n\n var after = this.scroll.create(this.domNode.splitText(index));\n this.parent.insertBefore(after, this.next || undefined);\n this.text = this.statics.value(this.domNode);\n return after;\n };\n\n TextBlot.prototype.update = function (mutations, _context) {\n var _this = this;\n\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this.domNode;\n })) {\n this.text = this.statics.value(this.domNode);\n }\n };\n\n TextBlot.prototype.value = function () {\n return this.text;\n };\n\n TextBlot.blotName = 'text';\n TextBlot.scope = src_scope.INLINE_BLOT;\n return TextBlot;\n}(leaf);\n\n/* harmony default export */ var blot_text = (text_TextBlot);\n// CONCATENATED MODULE: ./node_modules/parchment/src/parchment.ts\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var eventemitter3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(68);\n/* harmony import */ var eventemitter3__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(eventemitter3__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_hasWindow__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);\n/* harmony import */ var _instances__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(32);\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(15);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\nvar debug = Object(_logger__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"])('quill:events');\nvar EVENTS = ['selectionchange', 'mousedown', 'mouseup', 'click'];\n\nif (Object(_utils_hasWindow__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])()) {\n EVENTS.forEach(function (eventName) {\n document.addEventListener(eventName, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n Array.from(document.querySelectorAll('.ql-container')).forEach(function (node) {\n var quill = _instances__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"].get(node);\n\n if (quill && quill.emitter) {\n var _quill$emitter;\n\n (_quill$emitter = quill.emitter).handleDOM.apply(_quill$emitter, args);\n }\n });\n });\n });\n}\n\nvar Emitter = /*#__PURE__*/function (_EventEmitter) {\n _inherits(Emitter, _EventEmitter);\n\n var _super = _createSuper(Emitter);\n\n function Emitter() {\n var _this;\n\n _classCallCheck(this, Emitter);\n\n _this = _super.call(this);\n _this.listeners = {};\n\n _this.on('error', debug.error);\n\n return _this;\n }\n\n _createClass(Emitter, [{\n key: \"emit\",\n value: function emit() {\n var _debug$log, _get2;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n (_debug$log = debug.log).call.apply(_debug$log, [debug].concat(args));\n\n (_get2 = _get(_getPrototypeOf(Emitter.prototype), \"emit\", this)).call.apply(_get2, [this].concat(args));\n }\n }, {\n key: \"handleDOM\",\n value: function handleDOM(event) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n\n (this.listeners[event.type] || []).forEach(function (_ref) {\n var node = _ref.node,\n handler = _ref.handler;\n\n if (event.target === node || node.contains(event.target)) {\n handler.apply(void 0, [event].concat(args));\n }\n });\n }\n }, {\n key: \"listenDOM\",\n value: function listenDOM(eventName, node, handler) {\n if (!this.listeners[eventName]) {\n this.listeners[eventName] = [];\n }\n\n this.listeners[eventName].push({\n node: node,\n handler: handler\n });\n }\n }]);\n\n return Emitter;\n}(eventemitter3__WEBPACK_IMPORTED_MODULE_0___default.a);\n\nEmitter.events = {\n EDITOR_CHANGE: 'editor-change',\n SCROLL_BEFORE_UPDATE: 'scroll-before-update',\n SCROLL_BLOT_MOUNT: 'scroll-blot-mount',\n SCROLL_BLOT_UNMOUNT: 'scroll-blot-unmount',\n SCROLL_OPTIMIZE: 'scroll-optimize',\n SCROLL_UPDATE: 'scroll-update',\n SELECTION_CHANGE: 'selection-change',\n TEXT_CHANGE: 'text-change'\n};\nEmitter.sources = {\n API: 'api',\n SILENT: 'silent',\n USER: 'user'\n};\n/* harmony default export */ __webpack_exports__[\"a\"] = (Emitter);\n\n/***/ }),\n/* 4 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);\n/* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var lodash_isequal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(22);\n/* harmony import */ var lodash_isequal__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_isequal__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var lodash_merge__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(26);\n/* harmony import */ var lodash_merge__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_merge__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0);\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(quill_delta__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(2);\n/* harmony import */ var _selection__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(6);\n/* harmony import */ var _blots_cursor__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(17);\n/* harmony import */ var _blots_block__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(5);\n/* harmony import */ var _blots_break__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(8);\n/* harmony import */ var _blots_text__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(7);\nfunction _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest(); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\n\n\n\n\n\n\nvar ASCII = /^[ -~]*$/;\n\nvar Editor = /*#__PURE__*/function () {\n function Editor(scroll) {\n _classCallCheck(this, Editor);\n\n this.scroll = scroll;\n this.delta = this.getDelta();\n }\n\n _createClass(Editor, [{\n key: \"applyDelta\",\n value: function applyDelta(delta) {\n var _this = this;\n\n var consumeNextNewline = false;\n this.scroll.update();\n var scrollLength = this.scroll.length();\n this.scroll.batchStart();\n var normalizedDelta = normalizeDelta(delta);\n normalizedDelta.reduce(function (index, op) {\n var length = op.retain || op.delete || op.insert.length || 1;\n var attributes = op.attributes || {};\n\n if (op.insert != null) {\n if (typeof op.insert === 'string') {\n var text = op.insert;\n\n if (text.endsWith('\\n') && consumeNextNewline) {\n consumeNextNewline = false;\n text = text.slice(0, -1);\n }\n\n if ((index >= scrollLength || _this.scroll.descendant(_blots_block__WEBPACK_IMPORTED_MODULE_7__[/* BlockEmbed */ \"a\"], index)[0]) && !text.endsWith('\\n')) {\n consumeNextNewline = true;\n }\n\n _this.scroll.insertAt(index, text);\n\n var _this$scroll$line = _this.scroll.line(index),\n _this$scroll$line2 = _slicedToArray(_this$scroll$line, 2),\n line = _this$scroll$line2[0],\n offset = _this$scroll$line2[1];\n\n var formats = lodash_merge__WEBPACK_IMPORTED_MODULE_2___default()({}, Object(_blots_block__WEBPACK_IMPORTED_MODULE_7__[/* bubbleFormats */ \"c\"])(line));\n\n if (line instanceof _blots_block__WEBPACK_IMPORTED_MODULE_7__[/* default */ \"d\"]) {\n var _line$descendant = line.descendant(parchment__WEBPACK_IMPORTED_MODULE_4__[\"LeafBlot\"], offset),\n _line$descendant2 = _slicedToArray(_line$descendant, 1),\n leaf = _line$descendant2[0];\n\n formats = lodash_merge__WEBPACK_IMPORTED_MODULE_2___default()(formats, Object(_blots_block__WEBPACK_IMPORTED_MODULE_7__[/* bubbleFormats */ \"c\"])(leaf));\n }\n\n attributes = quill_delta__WEBPACK_IMPORTED_MODULE_3__[\"AttributeMap\"].diff(formats, attributes) || {};\n } else if (_typeof(op.insert) === 'object') {\n var key = Object.keys(op.insert)[0]; // There should only be one key\n\n if (key == null) return index;\n\n _this.scroll.insertAt(index, key, op.insert[key]);\n }\n\n scrollLength += length;\n }\n\n Object.keys(attributes).forEach(function (name) {\n _this.scroll.formatAt(index, length, name, attributes[name]);\n });\n return index + length;\n }, 0);\n normalizedDelta.reduce(function (index, op) {\n if (typeof op.delete === 'number') {\n _this.scroll.deleteAt(index, op.delete);\n\n return index;\n }\n\n return index + (op.retain || op.insert.length || 1);\n }, 0);\n this.scroll.batchEnd();\n this.scroll.optimize();\n return this.update(normalizedDelta);\n }\n }, {\n key: \"deleteText\",\n value: function deleteText(index, length) {\n this.scroll.deleteAt(index, length);\n return this.update(new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().retain(index).delete(length));\n }\n }, {\n key: \"formatLine\",\n value: function formatLine(index, length) {\n var _this2 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.scroll.update();\n Object.keys(formats).forEach(function (format) {\n _this2.scroll.lines(index, Math.max(length, 1)).forEach(function (line) {\n line.format(format, formats[format]);\n });\n });\n this.scroll.optimize();\n var delta = new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().retain(index).retain(length, lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0___default()(formats));\n return this.update(delta);\n }\n }, {\n key: \"formatText\",\n value: function formatText(index, length) {\n var _this3 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Object.keys(formats).forEach(function (format) {\n _this3.scroll.formatAt(index, length, format, formats[format]);\n });\n var delta = new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().retain(index).retain(length, lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0___default()(formats));\n return this.update(delta);\n }\n }, {\n key: \"getContents\",\n value: function getContents(index, length) {\n return this.delta.slice(index, index + length);\n }\n }, {\n key: \"getDelta\",\n value: function getDelta() {\n return this.scroll.lines().reduce(function (delta, line) {\n return delta.concat(line.delta());\n }, new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a());\n }\n }, {\n key: \"getFormat\",\n value: function getFormat(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var lines = [];\n var leaves = [];\n\n if (length === 0) {\n this.scroll.path(index).forEach(function (path) {\n var _path = _slicedToArray(path, 1),\n blot = _path[0];\n\n if (blot instanceof _blots_block__WEBPACK_IMPORTED_MODULE_7__[/* default */ \"d\"]) {\n lines.push(blot);\n } else if (blot instanceof parchment__WEBPACK_IMPORTED_MODULE_4__[\"LeafBlot\"]) {\n leaves.push(blot);\n }\n });\n } else {\n lines = this.scroll.lines(index, length);\n leaves = this.scroll.descendants(parchment__WEBPACK_IMPORTED_MODULE_4__[\"LeafBlot\"], index, length);\n }\n\n var _map = [lines, leaves].map(function (blots) {\n if (blots.length === 0) return {};\n var formats = Object(_blots_block__WEBPACK_IMPORTED_MODULE_7__[/* bubbleFormats */ \"c\"])(blots.shift());\n\n while (Object.keys(formats).length > 0) {\n var blot = blots.shift();\n if (blot == null) return formats;\n formats = combineFormats(Object(_blots_block__WEBPACK_IMPORTED_MODULE_7__[/* bubbleFormats */ \"c\"])(blot), formats);\n }\n\n return formats;\n });\n\n var _map2 = _slicedToArray(_map, 2);\n\n lines = _map2[0];\n leaves = _map2[1];\n return _objectSpread(_objectSpread({}, lines), leaves);\n }\n }, {\n key: \"getHTML\",\n value: function getHTML(index, length) {\n var _this$scroll$line3 = this.scroll.line(index),\n _this$scroll$line4 = _slicedToArray(_this$scroll$line3, 2),\n line = _this$scroll$line4[0],\n lineOffset = _this$scroll$line4[1];\n\n if (line.length() >= lineOffset + length) {\n return convertHTML(line, lineOffset, length, true);\n }\n\n return convertHTML(this.scroll, index, length, true);\n }\n }, {\n key: \"getText\",\n value: function getText(index, length) {\n return this.getContents(index, length).filter(function (op) {\n return typeof op.insert === 'string';\n }).map(function (op) {\n return op.insert;\n }).join('');\n }\n }, {\n key: \"insertEmbed\",\n value: function insertEmbed(index, embed, value) {\n this.scroll.insertAt(index, embed, value);\n return this.update(new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().retain(index).insert(_defineProperty({}, embed, value)));\n }\n }, {\n key: \"insertText\",\n value: function insertText(index, text) {\n var _this4 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n text = text.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n this.scroll.insertAt(index, text);\n Object.keys(formats).forEach(function (format) {\n _this4.scroll.formatAt(index, text.length, format, formats[format]);\n });\n return this.update(new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().retain(index).insert(text, lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0___default()(formats)));\n }\n }, {\n key: \"isBlank\",\n value: function isBlank() {\n var isComposing = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n if (this.scroll.children.length === 0) return true;\n if (isComposing) return false;\n if (this.scroll.children.length > 1) return false;\n var block = this.scroll.children.head;\n if (block.statics.blotName !== _blots_block__WEBPACK_IMPORTED_MODULE_7__[/* default */ \"d\"].blotName) return false;\n if (block.children.length > 1) return false;\n return block.children.head instanceof _blots_break__WEBPACK_IMPORTED_MODULE_8__[/* default */ \"a\"];\n }\n }, {\n key: \"removeFormat\",\n value: function removeFormat(index, length) {\n var text = this.getText(index, length);\n\n var _this$scroll$line5 = this.scroll.line(index + length),\n _this$scroll$line6 = _slicedToArray(_this$scroll$line5, 2),\n line = _this$scroll$line6[0],\n offset = _this$scroll$line6[1];\n\n var suffixLength = 0;\n var suffix = new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a();\n\n if (line != null) {\n suffixLength = line.length() - offset;\n suffix = line.delta().slice(offset, offset + suffixLength - 1).insert('\\n');\n }\n\n var contents = this.getContents(index, length + suffixLength);\n var diff = contents.diff(new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().insert(text).concat(suffix));\n var delta = new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().retain(index).concat(diff);\n return this.applyDelta(delta);\n }\n }, {\n key: \"update\",\n value: function update(change) {\n var mutations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var selectionInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n var oldDelta = this.delta;\n\n if (mutations.length === 1 && mutations[0].type === 'characterData' && mutations[0].target.data.match(ASCII) && this.scroll.find(mutations[0].target)) {\n // Optimization for character changes\n var textBlot = this.scroll.find(mutations[0].target);\n var formats = Object(_blots_block__WEBPACK_IMPORTED_MODULE_7__[/* bubbleFormats */ \"c\"])(textBlot);\n var index = textBlot.offset(this.scroll);\n var oldValue = mutations[0].oldValue.replace(_blots_cursor__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"].CONTENTS, '');\n var oldText = new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().insert(oldValue);\n var newText = new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().insert(textBlot.value());\n var relativeSelectionInfo = selectionInfo && {\n oldRange: shiftRange(selectionInfo.oldRange, -index),\n newRange: shiftRange(selectionInfo.newRange, -index)\n };\n var diffDelta = new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().retain(index).concat(oldText.diff(newText, relativeSelectionInfo));\n change = diffDelta.reduce(function (delta, op) {\n if (op.insert) {\n return delta.insert(op.insert, formats);\n }\n\n return delta.push(op);\n }, new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a());\n this.delta = oldDelta.compose(change);\n } else {\n this.delta = this.getDelta();\n\n if (!change || !lodash_isequal__WEBPACK_IMPORTED_MODULE_1___default()(oldDelta.compose(change), this.delta)) {\n change = oldDelta.diff(this.delta, selectionInfo);\n }\n }\n\n return change;\n }\n }]);\n\n return Editor;\n}();\n\nfunction convertListHTML(items, lastIndent, types) {\n if (items.length === 0) {\n var _getListType = getListType(types.pop()),\n _getListType2 = _slicedToArray(_getListType, 1),\n _endTag = _getListType2[0];\n\n if (lastIndent <= 0) {\n return \"\");\n }\n\n return \"\").concat(convertListHTML([], lastIndent - 1, types));\n }\n\n var _items = _toArray(items),\n _items$ = _items[0],\n child = _items$.child,\n offset = _items$.offset,\n length = _items$.length,\n indent = _items$.indent,\n type = _items$.type,\n rest = _items.slice(1);\n\n var _getListType3 = getListType(type, child),\n _getListType4 = _slicedToArray(_getListType3, 2),\n tag = _getListType4[0],\n attribute = _getListType4[1];\n\n if (indent > lastIndent) {\n types.push(type);\n\n if (indent === lastIndent + 1) {\n return \"<\".concat(tag, \">\").concat(convertHTML(child, offset, length)).concat(convertListHTML(rest, indent, types));\n }\n\n return \"<\".concat(tag, \">
  • \").concat(convertListHTML(items, lastIndent + 1, types));\n }\n\n var previousType = types[types.length - 1];\n\n if (indent === lastIndent && type === previousType) {\n return \"
  • \").concat(convertHTML(child, offset, length)).concat(convertListHTML(rest, indent, types));\n }\n\n var _getListType5 = getListType(types.pop()),\n _getListType6 = _slicedToArray(_getListType5, 1),\n endTag = _getListType6[0];\n\n return \"\").concat(convertListHTML(items, lastIndent - 1, types));\n}\n\nfunction convertHTML(blot, index, length) {\n var isRoot = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n if (typeof blot.html === 'function') {\n return blot.html(index, length);\n }\n\n if (blot instanceof _blots_text__WEBPACK_IMPORTED_MODULE_9__[/* default */ \"a\"]) {\n return Object(_blots_text__WEBPACK_IMPORTED_MODULE_9__[/* escapeText */ \"b\"])(blot.value().slice(index, index + length));\n }\n\n if (blot.children) {\n // TODO fix API\n if (blot.statics.blotName === 'list-container') {\n var items = [];\n blot.children.forEachAt(index, length, function (child, offset, childLength) {\n var formats = child.formats();\n items.push({\n child: child,\n offset: offset,\n length: childLength,\n indent: formats.indent || 0,\n type: formats.list\n });\n });\n return convertListHTML(items, -1, []);\n }\n\n var parts = [];\n blot.children.forEachAt(index, length, function (child, offset, childLength) {\n parts.push(convertHTML(child, offset, childLength));\n });\n handleBreakLine(blot.children, parts);\n\n if (isRoot || blot.statics.blotName === 'list') {\n return parts.join('');\n }\n\n var _blot$domNode = blot.domNode,\n outerHTML = _blot$domNode.outerHTML,\n innerHTML = _blot$domNode.innerHTML;\n\n var _outerHTML$split = outerHTML.split(\">\".concat(innerHTML, \"<\")),\n _outerHTML$split2 = _slicedToArray(_outerHTML$split, 2),\n start = _outerHTML$split2[0],\n end = _outerHTML$split2[1]; // TODO cleanup\n\n\n if (start === '\".concat(parts.join(''), \"<\").concat(end);\n }\n\n return \"\".concat(start, \">\").concat(parts.join(''), \"<\").concat(end);\n }\n\n return blot.domNode.outerHTML;\n}\n\nfunction handleBreakLine(linkedList, parts) {\n if (linkedList.length === 1 && linkedList.head instanceof _blots_break__WEBPACK_IMPORTED_MODULE_8__[/* default */ \"a\"]) {\n parts.push('
    ');\n }\n}\n\nfunction combineFormats(formats, combined) {\n return Object.keys(combined).reduce(function (merged, name) {\n if (formats[name] == null) return merged;\n\n if (combined[name] === formats[name]) {\n merged[name] = combined[name];\n } else if (Array.isArray(combined[name])) {\n if (combined[name].indexOf(formats[name]) < 0) {\n merged[name] = combined[name].concat([formats[name]]);\n }\n } else {\n merged[name] = [combined[name], formats[name]];\n }\n\n return merged;\n }, {});\n}\n\nfunction getListType(type, child) {\n var tag = type === 'ordered' ? 'ol' : 'ul';\n var attributes = child ? \"\".concat(getBlotNodeAttributes(child)) : '';\n\n switch (type) {\n case 'checked':\n return [tag, \"\".concat(attributes, \" data-list=\\\"checked\\\"\")];\n\n case 'unchecked':\n return [tag, \"\".concat(attributes, \" data-list=\\\"unchecked\\\"\")];\n\n default:\n return [tag, attributes];\n }\n}\n\nfunction getBlotNodeAttributes(_ref) {\n var domNode = _ref.domNode;\n\n if (!domNode.hasAttributes()) {\n return '';\n }\n\n var attributes = domNode.attributes;\n var attributesString = ' ';\n\n for (var i = 0; i < attributes.length; i += 1) {\n var name = attributes[i].name;\n var value = attributes[i].value;\n\n if (name === 'class') {\n value = removeIndentClass(value);\n }\n\n if (value.length && name.indexOf('data-') === -1) {\n attributesString += \"\".concat(name, \"=\\\"\").concat(value, \"\\\"\");\n }\n }\n\n return attributesString.length > 1 ? attributesString : '';\n}\n\nfunction removeIndentClass(classString) {\n return classString.replace(/ql-indent-\\d/g, '').trim();\n}\n\nfunction normalizeDelta(delta) {\n return delta.reduce(function (normalizedDelta, op) {\n if (typeof op.insert === 'string') {\n var text = op.insert.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n return normalizedDelta.insert(text, op.attributes);\n }\n\n return normalizedDelta.push(op);\n }, new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a());\n}\n\nfunction shiftRange(_ref2, amount) {\n var index = _ref2.index,\n length = _ref2.length;\n return new _selection__WEBPACK_IMPORTED_MODULE_5__[/* Range */ \"a\"](index + amount, length);\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Editor);\n\n/***/ }),\n/* 5 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return blockDelta; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return bubbleFormats; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return BlockEmbed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return Block; });\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(quill_delta__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);\n/* harmony import */ var _break__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8);\n/* harmony import */ var _inline__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(10);\n/* harmony import */ var _text__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\nvar NEWLINE_LENGTH = 1;\n\nvar Block = /*#__PURE__*/function (_BlockBlot) {\n _inherits(Block, _BlockBlot);\n\n var _super = _createSuper(Block);\n\n function Block(scroll, domNode) {\n var _this;\n\n _classCallCheck(this, Block);\n\n _this = _super.call(this, scroll, domNode);\n _this.cache = {};\n return _this;\n }\n\n _createClass(Block, [{\n key: \"delta\",\n value: function delta() {\n if (this.cache.delta == null) {\n this.cache.delta = blockDelta(this);\n }\n\n return this.cache.delta;\n }\n }, {\n key: \"deleteAt\",\n value: function deleteAt(index, length) {\n _get(_getPrototypeOf(Block.prototype), \"deleteAt\", this).call(this, index, length);\n\n this.cache = {};\n }\n }, {\n key: \"formatAt\",\n value: function formatAt(index, length, name, value) {\n if (length <= 0) return;\n\n if (this.scroll.query(name, parchment__WEBPACK_IMPORTED_MODULE_1__[\"Scope\"].BLOCK)) {\n if (index + length === this.length()) {\n this.format(name, value);\n }\n } else {\n _get(_getPrototypeOf(Block.prototype), \"formatAt\", this).call(this, index, Math.min(length, this.length() - index - 1), name, value);\n }\n\n this.cache = {};\n }\n }, {\n key: \"insertAt\",\n value: function insertAt(index, value, def) {\n if (def != null) {\n _get(_getPrototypeOf(Block.prototype), \"insertAt\", this).call(this, index, value, def);\n\n this.cache = {};\n return;\n }\n\n if (value.length === 0) return;\n var lines = value.split('\\n');\n var text = lines.shift();\n\n if (text.length > 0) {\n if (index < this.length() - 1 || this.children.tail == null) {\n _get(_getPrototypeOf(Block.prototype), \"insertAt\", this).call(this, Math.min(index, this.length() - 1), text);\n } else {\n this.children.tail.insertAt(this.children.tail.length(), text);\n }\n\n this.cache = {};\n }\n\n var block = this;\n lines.reduce(function (lineIndex, line) {\n block = block.split(lineIndex, true);\n block.insertAt(0, line);\n return line.length;\n }, index + text.length);\n }\n }, {\n key: \"insertBefore\",\n value: function insertBefore(blot, ref) {\n var head = this.children.head;\n\n _get(_getPrototypeOf(Block.prototype), \"insertBefore\", this).call(this, blot, ref);\n\n if (head instanceof _break__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"]) {\n head.remove();\n }\n\n this.cache = {};\n }\n }, {\n key: \"length\",\n value: function length() {\n if (this.cache.length == null) {\n this.cache.length = _get(_getPrototypeOf(Block.prototype), \"length\", this).call(this) + NEWLINE_LENGTH;\n }\n\n return this.cache.length;\n }\n }, {\n key: \"moveChildren\",\n value: function moveChildren(target, ref) {\n _get(_getPrototypeOf(Block.prototype), \"moveChildren\", this).call(this, target, ref);\n\n this.cache = {};\n }\n }, {\n key: \"optimize\",\n value: function optimize(context) {\n _get(_getPrototypeOf(Block.prototype), \"optimize\", this).call(this, context);\n\n this.cache = {};\n }\n }, {\n key: \"path\",\n value: function path(index) {\n return _get(_getPrototypeOf(Block.prototype), \"path\", this).call(this, index, true);\n }\n }, {\n key: \"removeChild\",\n value: function removeChild(child) {\n _get(_getPrototypeOf(Block.prototype), \"removeChild\", this).call(this, child);\n\n this.cache = {};\n }\n }, {\n key: \"split\",\n value: function split(index) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (force && (index === 0 || index >= this.length() - NEWLINE_LENGTH)) {\n var clone = this.clone();\n\n if (index === 0) {\n this.parent.insertBefore(clone, this);\n return this;\n }\n\n this.parent.insertBefore(clone, this.next);\n return clone;\n }\n\n var next = _get(_getPrototypeOf(Block.prototype), \"split\", this).call(this, index, force);\n\n this.cache = {};\n return next;\n }\n }]);\n\n return Block;\n}(parchment__WEBPACK_IMPORTED_MODULE_1__[\"BlockBlot\"]);\n\nBlock.blotName = 'block';\nBlock.tagName = 'P';\nBlock.defaultChild = _break__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"];\nBlock.allowedChildren = [_break__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"], _inline__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"], parchment__WEBPACK_IMPORTED_MODULE_1__[\"EmbedBlot\"], _text__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"]];\n\nvar BlockEmbed = /*#__PURE__*/function (_EmbedBlot) {\n _inherits(BlockEmbed, _EmbedBlot);\n\n var _super2 = _createSuper(BlockEmbed);\n\n function BlockEmbed() {\n _classCallCheck(this, BlockEmbed);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(BlockEmbed, [{\n key: \"attach\",\n value: function attach() {\n _get(_getPrototypeOf(BlockEmbed.prototype), \"attach\", this).call(this);\n\n this.attributes = new parchment__WEBPACK_IMPORTED_MODULE_1__[\"AttributorStore\"](this.domNode);\n }\n }, {\n key: \"delta\",\n value: function delta() {\n return new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a().insert(this.value(), _objectSpread(_objectSpread({}, this.formats()), this.attributes.values()));\n }\n }, {\n key: \"format\",\n value: function format(name, value) {\n var attribute = this.scroll.query(name, parchment__WEBPACK_IMPORTED_MODULE_1__[\"Scope\"].BLOCK_ATTRIBUTE);\n\n if (attribute != null) {\n this.attributes.attribute(attribute, value);\n }\n }\n }, {\n key: \"formatAt\",\n value: function formatAt(index, length, name, value) {\n this.format(name, value);\n }\n }, {\n key: \"insertAt\",\n value: function insertAt(index, value, def) {\n if (typeof value === 'string' && value.endsWith('\\n')) {\n var block = this.scroll.create(Block.blotName);\n this.parent.insertBefore(block, index === 0 ? this : this.next);\n block.insertAt(0, value.slice(0, -1));\n } else {\n _get(_getPrototypeOf(BlockEmbed.prototype), \"insertAt\", this).call(this, index, value, def);\n }\n }\n }]);\n\n return BlockEmbed;\n}(parchment__WEBPACK_IMPORTED_MODULE_1__[\"EmbedBlot\"]);\n\nBlockEmbed.scope = parchment__WEBPACK_IMPORTED_MODULE_1__[\"Scope\"].BLOCK_BLOT; // It is important for cursor behavior BlockEmbeds use tags that are block level elements\n\nfunction blockDelta(blot) {\n var filter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n return blot.descendants(parchment__WEBPACK_IMPORTED_MODULE_1__[\"LeafBlot\"]).reduce(function (delta, leaf) {\n if (leaf.length() === 0) {\n return delta;\n }\n\n return delta.insert(leaf.value(), bubbleFormats(leaf, {}, filter));\n }, new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a()).insert('\\n', bubbleFormats(blot));\n}\n\nfunction bubbleFormats(blot) {\n var formats = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var filter = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n if (blot == null) return formats;\n\n if (typeof blot.formats === 'function') {\n formats = _objectSpread(_objectSpread({}, formats), blot.formats());\n\n if (filter) {\n // exclude syntax highlighting from deltas and getFormat()\n delete formats['code-token'];\n }\n }\n\n if (blot.parent == null || blot.parent.statics.blotName === 'scroll' || blot.parent.statics.scope !== blot.statics.scope) {\n return formats;\n }\n\n return bubbleFormats(blot.parent, formats, filter);\n}\n\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Range; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return Selection; });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n/* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);\n/* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var lodash_isequal__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(22);\n/* harmony import */ var lodash_isequal__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_isequal__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _emitter__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3);\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(15);\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n\n\n\n\n\nvar debug = Object(_logger__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"])('quill:selection');\n\nvar Range = function Range(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n _classCallCheck(this, Range);\n\n this.index = index;\n this.length = length;\n};\n\nvar Selection = /*#__PURE__*/function () {\n function Selection(scroll, emitter) {\n var _this = this;\n\n _classCallCheck(this, Selection);\n\n this.emitter = emitter;\n this.scroll = scroll;\n this.composing = false;\n this.mouseDown = false;\n this.root = this.scroll.domNode;\n this.cursor = this.scroll.create('cursor', this); // savedRange is last non-null range\n\n this.savedRange = new Range(0, 0);\n this.lastRange = this.savedRange;\n this.lastNative = null;\n this.handleComposition();\n this.handleDragging();\n this.emitter.listenDOM('selectionchange', document, function () {\n if (!_this.mouseDown && !_this.composing) {\n setTimeout(_this.update.bind(_this, _emitter__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.USER), 1);\n }\n });\n this.emitter.on(_emitter__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].events.SCROLL_BEFORE_UPDATE, function () {\n if (!_this.hasFocus()) return;\n\n var native = _this.getNativeRange();\n\n if (native == null) return;\n if (native.start.node === _this.cursor.textNode) return; // cursor.restore() will handle\n\n _this.emitter.once(_emitter__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].events.SCROLL_UPDATE, function () {\n try {\n if (_this.root.contains(native.start.node) && _this.root.contains(native.end.node)) {\n _this.setNativeRange(native.start.node, native.start.offset, native.end.node, native.end.offset);\n }\n\n _this.update(_emitter__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.SILENT);\n } catch (ignored) {// ignore\n }\n });\n });\n this.emitter.on(_emitter__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].events.SCROLL_OPTIMIZE, function (mutations, context) {\n if (context.range) {\n var _context$range = context.range,\n startNode = _context$range.startNode,\n startOffset = _context$range.startOffset,\n endNode = _context$range.endNode,\n endOffset = _context$range.endOffset;\n\n _this.setNativeRange(startNode, startOffset, endNode, endOffset);\n\n _this.update(_emitter__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.SILENT);\n }\n });\n this.update(_emitter__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.SILENT);\n }\n\n _createClass(Selection, [{\n key: \"handleComposition\",\n value: function handleComposition() {\n var _this2 = this;\n\n this.root.addEventListener('compositionstart', function () {\n _this2.composing = true;\n\n _this2.scroll.batchStart();\n });\n this.root.addEventListener('compositionend', function () {\n _this2.scroll.batchEnd();\n\n _this2.composing = false;\n\n if (_this2.cursor.parent) {\n var range = _this2.cursor.restore();\n\n if (!range) return;\n setTimeout(function () {\n _this2.setNativeRange(range.startNode, range.startOffset, range.endNode, range.endOffset);\n }, 1);\n }\n });\n }\n }, {\n key: \"handleDragging\",\n value: function handleDragging() {\n var _this3 = this;\n\n this.emitter.listenDOM('mousedown', document.body, function () {\n _this3.mouseDown = true;\n });\n this.emitter.listenDOM('mouseup', document.body, function () {\n _this3.mouseDown = false;\n\n _this3.update(_emitter__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.USER);\n });\n }\n }, {\n key: \"focus\",\n value: function focus() {\n if (this.hasFocus()) return;\n this.root.focus();\n this.setRange(this.savedRange);\n }\n }, {\n key: \"format\",\n value: function format(_format, value) {\n this.scroll.update();\n var nativeRange = this.getNativeRange();\n if (nativeRange == null || !nativeRange.native.collapsed || this.scroll.query(_format, parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].BLOCK)) return;\n\n if (nativeRange.start.node !== this.cursor.textNode) {\n var blot = this.scroll.find(nativeRange.start.node, false);\n if (blot == null) return; // TODO Give blot ability to not split\n\n if (blot instanceof parchment__WEBPACK_IMPORTED_MODULE_0__[\"LeafBlot\"]) {\n var after = blot.split(nativeRange.start.offset);\n blot.parent.insertBefore(this.cursor, after);\n } else {\n blot.insertBefore(this.cursor, nativeRange.start.node); // Should never happen\n }\n\n this.cursor.attach();\n }\n\n this.cursor.format(_format, value);\n this.scroll.optimize();\n this.setNativeRange(this.cursor.textNode, this.cursor.textNode.data.length);\n this.update();\n }\n }, {\n key: \"getBounds\",\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var scrollLength = this.scroll.length();\n index = Math.min(index, scrollLength - 1);\n length = Math.min(index + length, scrollLength - 1) - index;\n var node;\n\n var _this$scroll$leaf = this.scroll.leaf(index),\n _this$scroll$leaf2 = _slicedToArray(_this$scroll$leaf, 2),\n leaf = _this$scroll$leaf2[0],\n offset = _this$scroll$leaf2[1];\n\n if (leaf == null) return null;\n\n var _leaf$position = leaf.position(offset, true);\n\n var _leaf$position2 = _slicedToArray(_leaf$position, 2);\n\n node = _leaf$position2[0];\n offset = _leaf$position2[1];\n var range = document.createRange();\n\n if (length > 0) {\n range.setStart(node, offset);\n\n var _this$scroll$leaf3 = this.scroll.leaf(index + length);\n\n var _this$scroll$leaf4 = _slicedToArray(_this$scroll$leaf3, 2);\n\n leaf = _this$scroll$leaf4[0];\n offset = _this$scroll$leaf4[1];\n if (leaf == null) return null;\n\n var _leaf$position3 = leaf.position(offset, true);\n\n var _leaf$position4 = _slicedToArray(_leaf$position3, 2);\n\n node = _leaf$position4[0];\n offset = _leaf$position4[1];\n range.setEnd(node, offset);\n return range.getBoundingClientRect();\n }\n\n var side = 'left';\n var rect;\n\n if (node instanceof Text) {\n if (offset < node.data.length) {\n range.setStart(node, offset);\n range.setEnd(node, offset + 1);\n } else {\n range.setStart(node, offset - 1);\n range.setEnd(node, offset);\n side = 'right';\n }\n\n rect = range.getBoundingClientRect();\n } else {\n rect = leaf.domNode.getBoundingClientRect();\n if (offset > 0) side = 'right';\n }\n\n return {\n bottom: rect.top + rect.height,\n height: rect.height,\n left: rect[side],\n right: rect[side],\n top: rect.top,\n width: 0\n };\n }\n }, {\n key: \"getNativeRange\",\n value: function getNativeRange() {\n var selection = document.getSelection();\n if (selection == null || selection.rangeCount <= 0) return null;\n var nativeRange = selection.getRangeAt(0);\n if (nativeRange == null) return null;\n var range = this.normalizeNative(nativeRange);\n debug.info('getNativeRange', range);\n return range;\n }\n }, {\n key: \"getRange\",\n value: function getRange() {\n var normalized = this.getNativeRange();\n if (normalized == null) return [null, null];\n var range = this.normalizedToRange(normalized);\n return [range, normalized];\n }\n }, {\n key: \"hasFocus\",\n value: function hasFocus() {\n return document.activeElement === this.root || contains(this.root, document.activeElement);\n }\n }, {\n key: \"normalizedToRange\",\n value: function normalizedToRange(range) {\n var _this4 = this;\n\n var positions = [[range.start.node, range.start.offset]];\n\n if (!range.native.collapsed) {\n positions.push([range.end.node, range.end.offset]);\n }\n\n var indexes = positions.map(function (position) {\n var _position = _slicedToArray(position, 2),\n node = _position[0],\n offset = _position[1];\n\n var blot = _this4.scroll.find(node, true);\n\n var index = blot.offset(_this4.scroll);\n\n if (offset === 0) {\n return index;\n }\n\n if (blot instanceof parchment__WEBPACK_IMPORTED_MODULE_0__[\"LeafBlot\"]) {\n return index + blot.index(node, offset);\n }\n\n return index + blot.length();\n });\n var end = Math.min(Math.max.apply(Math, _toConsumableArray(indexes)), this.scroll.length() - 1);\n var start = Math.min.apply(Math, [end].concat(_toConsumableArray(indexes)));\n return new Range(start, end - start);\n }\n }, {\n key: \"normalizeNative\",\n value: function normalizeNative(nativeRange) {\n if (!contains(this.root, nativeRange.startContainer) || !nativeRange.collapsed && !contains(this.root, nativeRange.endContainer)) {\n return null;\n }\n\n var range = {\n start: {\n node: nativeRange.startContainer,\n offset: nativeRange.startOffset\n },\n end: {\n node: nativeRange.endContainer,\n offset: nativeRange.endOffset\n },\n native: nativeRange\n };\n [range.start, range.end].forEach(function (position) {\n var node = position.node,\n offset = position.offset;\n\n while (!(node instanceof Text) && node.childNodes.length > 0) {\n if (node.childNodes.length > offset) {\n node = node.childNodes[offset];\n offset = 0;\n } else if (node.childNodes.length === offset) {\n node = node.lastChild;\n\n if (node instanceof Text) {\n offset = node.data.length;\n } else if (node.childNodes.length > 0) {\n // Container case\n offset = node.childNodes.length;\n } else {\n // Embed case\n offset = node.childNodes.length + 1;\n }\n } else {\n break;\n }\n }\n\n position.node = node;\n position.offset = offset;\n });\n return range;\n }\n }, {\n key: \"rangeToNative\",\n value: function rangeToNative(range) {\n var _this5 = this;\n\n var indexes = range.collapsed ? [range.index] : [range.index, range.index + range.length];\n var args = [];\n var scrollLength = this.scroll.length();\n indexes.forEach(function (index, i) {\n index = Math.min(scrollLength - 1, index);\n\n var _this5$scroll$leaf = _this5.scroll.leaf(index),\n _this5$scroll$leaf2 = _slicedToArray(_this5$scroll$leaf, 2),\n leaf = _this5$scroll$leaf2[0],\n leafOffset = _this5$scroll$leaf2[1];\n\n var _leaf$position5 = leaf.position(leafOffset, i !== 0),\n _leaf$position6 = _slicedToArray(_leaf$position5, 2),\n node = _leaf$position6[0],\n offset = _leaf$position6[1];\n\n args.push(node, offset);\n });\n\n if (args.length < 2) {\n return args.concat(args);\n }\n\n return args;\n }\n }, {\n key: \"scrollIntoView\",\n value: function scrollIntoView(scrollingContainer) {\n var range = this.lastRange;\n if (range == null) return;\n var bounds = this.getBounds(range.index, range.length);\n if (bounds == null) return;\n var limit = this.scroll.length() - 1;\n\n var _this$scroll$line = this.scroll.line(Math.min(range.index, limit)),\n _this$scroll$line2 = _slicedToArray(_this$scroll$line, 1),\n first = _this$scroll$line2[0];\n\n var last = first;\n\n if (range.length > 0) {\n var _this$scroll$line3 = this.scroll.line(Math.min(range.index + range.length, limit));\n\n var _this$scroll$line4 = _slicedToArray(_this$scroll$line3, 1);\n\n last = _this$scroll$line4[0];\n }\n\n if (first == null || last == null) return;\n var scrollBounds = scrollingContainer.getBoundingClientRect();\n\n if (bounds.top < scrollBounds.top) {\n scrollingContainer.scrollTop -= scrollBounds.top - bounds.top;\n } else if (bounds.bottom > scrollBounds.bottom) {\n scrollingContainer.scrollTop += bounds.bottom - scrollBounds.bottom;\n }\n }\n }, {\n key: \"setNativeRange\",\n value: function setNativeRange(startNode, startOffset) {\n var endNode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : startNode;\n var endOffset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : startOffset;\n var force = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n debug.info('setNativeRange', startNode, startOffset, endNode, endOffset);\n\n if (startNode != null && (this.root.parentNode == null || startNode.parentNode == null || endNode.parentNode == null)) {\n return;\n }\n\n var selection = document.getSelection();\n if (selection == null) return;\n\n if (startNode != null) {\n if (!this.hasFocus()) this.root.focus();\n\n var _ref = this.getNativeRange() || {},\n native = _ref.native;\n\n if (native == null || force || startNode !== native.startContainer || startOffset !== native.startOffset || endNode !== native.endContainer || endOffset !== native.endOffset) {\n if (startNode.tagName === 'BR') {\n startOffset = Array.from(startNode.parentNode.childNodes).indexOf(startNode);\n startNode = startNode.parentNode;\n }\n\n if (endNode.tagName === 'BR') {\n endOffset = Array.from(endNode.parentNode.childNodes).indexOf(endNode);\n endNode = endNode.parentNode;\n }\n\n var range = document.createRange();\n range.setStart(startNode, startOffset);\n range.setEnd(endNode, endOffset);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n } else {\n selection.removeAllRanges();\n this.root.blur();\n document.body.focus(); // root.blur() not enough for IE11\n }\n }\n }, {\n key: \"setRange\",\n value: function setRange(range) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.API;\n\n if (typeof force === 'string') {\n source = force;\n force = false;\n }\n\n debug.info('setRange', range);\n\n if (range != null) {\n var args = this.rangeToNative(range);\n this.setNativeRange.apply(this, _toConsumableArray(args).concat([force]));\n } else {\n this.setNativeRange(null);\n }\n\n this.update(source);\n }\n }, {\n key: \"update\",\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.USER;\n var oldRange = this.lastRange;\n\n var _this$getRange = this.getRange(),\n _this$getRange2 = _slicedToArray(_this$getRange, 2),\n lastRange = _this$getRange2[0],\n nativeRange = _this$getRange2[1];\n\n this.lastRange = lastRange;\n this.lastNative = nativeRange;\n\n if (this.lastRange != null) {\n this.savedRange = this.lastRange;\n }\n\n if (!lodash_isequal__WEBPACK_IMPORTED_MODULE_2___default()(oldRange, this.lastRange)) {\n var _this$emitter;\n\n if (!this.composing && nativeRange != null && nativeRange.native.collapsed && nativeRange.start.node !== this.cursor.textNode) {\n var range = this.cursor.restore();\n\n if (range) {\n this.setNativeRange(range.startNode, range.startOffset, range.endNode, range.endOffset);\n }\n }\n\n var args = [_emitter__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].events.SELECTION_CHANGE, lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1___default()(this.lastRange), lodash_clonedeep__WEBPACK_IMPORTED_MODULE_1___default()(oldRange), source];\n\n (_this$emitter = this.emitter).emit.apply(_this$emitter, [_emitter__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].events.EDITOR_CHANGE].concat(args));\n\n if (source !== _emitter__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.SILENT) {\n var _this$emitter2;\n\n (_this$emitter2 = this.emitter).emit.apply(_this$emitter2, args);\n }\n }\n }\n }]);\n\n return Selection;\n}();\n\nfunction contains(parent, descendant) {\n try {\n // Firefox inserts inaccessible nodes around video elements\n descendant.parentNode; // eslint-disable-line no-unused-expressions\n } catch (e) {\n return false;\n } // IE11 has bug with Text nodes\n // https://connect.microsoft.com/IE/feedback/details/780874/node-contains-is-incorrect\n\n\n if (descendant instanceof Text) {\n descendant = descendant.parentNode;\n }\n\n return parent.contains(descendant);\n}\n\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Text; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return escapeText; });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\nvar Text = /*#__PURE__*/function (_TextBlot) {\n _inherits(Text, _TextBlot);\n\n var _super = _createSuper(Text);\n\n function Text() {\n _classCallCheck(this, Text);\n\n return _super.apply(this, arguments);\n }\n\n return Text;\n}(parchment__WEBPACK_IMPORTED_MODULE_0__[\"TextBlot\"]);\n\nfunction escapeText(text) {\n return text.replace(/[&<>\"']/g, function (s) {\n // https://lodash.com/docs#escape\n var entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n };\n return entityMap[s];\n });\n}\n\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\nvar Break = /*#__PURE__*/function (_EmbedBlot) {\n _inherits(Break, _EmbedBlot);\n\n var _super = _createSuper(Break);\n\n function Break() {\n _classCallCheck(this, Break);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Break, [{\n key: \"optimize\",\n value: function optimize() {\n if (this.prev || this.next) {\n this.remove();\n }\n }\n }, {\n key: \"length\",\n value: function length() {\n return 0;\n }\n }, {\n key: \"value\",\n value: function value() {\n return '';\n }\n }], [{\n key: \"value\",\n value: function value() {\n return undefined;\n }\n }]);\n\n return Break;\n}(parchment__WEBPACK_IMPORTED_MODULE_0__[\"EmbedBlot\"]);\n\nBreak.blotName = 'break';\nBreak.tagName = 'BR';\n/* harmony default export */ __webpack_exports__[\"a\"] = (Break);\n\n/***/ }),\n/* 9 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Module = function Module(quill) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Module);\n\n this.quill = quill;\n this.options = options;\n};\n\nModule.DEFAULTS = {};\n/* harmony default export */ __webpack_exports__[\"a\"] = (Module);\n\n/***/ }),\n/* 10 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n/* harmony import */ var _break__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8);\n/* harmony import */ var _text__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\nvar Inline = /*#__PURE__*/function (_InlineBlot) {\n _inherits(Inline, _InlineBlot);\n\n var _super = _createSuper(Inline);\n\n function Inline() {\n _classCallCheck(this, Inline);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Inline, [{\n key: \"formatAt\",\n value: function formatAt(index, length, name, value) {\n if (Inline.compare(this.statics.blotName, name) < 0 && this.scroll.query(name, parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].BLOT)) {\n var blot = this.isolate(index, length);\n\n if (value) {\n blot.wrap(name, value);\n }\n } else {\n _get(_getPrototypeOf(Inline.prototype), \"formatAt\", this).call(this, index, length, name, value);\n }\n }\n }, {\n key: \"optimize\",\n value: function optimize(context) {\n _get(_getPrototypeOf(Inline.prototype), \"optimize\", this).call(this, context);\n\n if (this.parent instanceof Inline && Inline.compare(this.statics.blotName, this.parent.statics.blotName) > 0) {\n var parent = this.parent.isolate(this.offset(), this.length());\n this.moveChildren(parent);\n parent.wrap(this);\n }\n }\n }], [{\n key: \"compare\",\n value: function compare(self, other) {\n var selfIndex = Inline.order.indexOf(self);\n var otherIndex = Inline.order.indexOf(other);\n\n if (selfIndex >= 0 || otherIndex >= 0) {\n return selfIndex - otherIndex;\n }\n\n if (self === other) {\n return 0;\n }\n\n if (self < other) {\n return -1;\n }\n\n return 1;\n }\n }]);\n\n return Inline;\n}(parchment__WEBPACK_IMPORTED_MODULE_0__[\"InlineBlot\"]);\n\nInline.allowedChildren = [Inline, _break__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"], parchment__WEBPACK_IMPORTED_MODULE_0__[\"EmbedBlot\"], _text__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"]]; // Lower index means deeper in the DOM tree, since not found (-1) is for embeds\n\nInline.order = ['cursor', 'inline', // Must be lower\n'link', // Chrome wants to be lower\n'underline', 'strike', 'italic', 'bold', 'script', 'code' // Must be higher\n];\n/* harmony default export */ __webpack_exports__[\"a\"] = (Inline);\n\n/***/ }),\n/* 11 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar hasWindow = function hasWindow() {\n return typeof window !== 'undefined';\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (hasWindow);\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global, module) {/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = true && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/**\n * Adds the key-value `pair` to `map`.\n *\n * @private\n * @param {Object} map The map to modify.\n * @param {Array} pair The key-value pair to add.\n * @returns {Object} Returns `map`.\n */\nfunction addMapEntry(map, pair) {\n // Don't return `map.set` because it's not chainable in IE 11.\n map.set(pair[0], pair[1]);\n return map;\n}\n\n/**\n * Adds `value` to `set`.\n *\n * @private\n * @param {Object} set The set to modify.\n * @param {*} value The value to add.\n * @returns {Object} Returns `set`.\n */\nfunction addSetEntry(set, value) {\n // Don't return `set.add` because it's not chainable in IE 11.\n set.add(value);\n return set;\n}\n\n/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array ? array.length : 0;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n this.__data__ = new ListCache(entries);\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n return this.__data__['delete'](key);\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var cache = this.__data__;\n if (cache instanceof ListCache) {\n var pairs = cache.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n return this;\n }\n cache = this.__data__ = new MapCache(pairs);\n }\n cache.set(key, value);\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n object[key] = value;\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @param {boolean} [isFull] Specify a clone including symbols.\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, isDeep, isFull, customizer, key, object, stack) {\n var result;\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n if (isHostObject(value)) {\n return object ? value : {};\n }\n result = initCloneObject(isFunc ? {} : value);\n if (!isDeep) {\n return copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, baseClone, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (!isArr) {\n var props = isFull ? getAllKeys(value) : keys(value);\n }\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));\n });\n return result;\n}\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} prototype The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nfunction baseCreate(proto) {\n return isObject(proto) ? objectCreate(proto) : {};\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var result = new buffer.constructor(buffer.length);\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\n/**\n * Creates a clone of `map`.\n *\n * @private\n * @param {Object} map The map to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned map.\n */\nfunction cloneMap(map, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);\n return arrayReduce(array, addMapEntry, new map.constructor);\n}\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\n/**\n * Creates a clone of `set`.\n *\n * @private\n * @param {Object} set The set to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned set.\n */\nfunction cloneSet(set, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);\n return arrayReduce(array, addSetEntry, new set.constructor);\n}\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n assignValue(object, key, newValue === undefined ? source[key] : newValue);\n }\n return object;\n}\n\n/**\n * Copies own symbol properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Creates an array of the own enumerable symbol properties of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11,\n// for data views in Edge < 14, and promises in Node.js.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, cloneFunc, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return cloneMap(object, isDeep, cloneFunc);\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return cloneSet(object, isDeep, cloneFunc);\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, true, true);\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = cloneDeep;\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(40), __webpack_require__(45)(module)))\n\n/***/ }),\n/* 13 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Code; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return CodeBlockContainer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return CodeBlock; });\n/* harmony import */ var _blots_block__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5);\n/* harmony import */ var _blots_break__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8);\n/* harmony import */ var _blots_cursor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(17);\n/* harmony import */ var _blots_inline__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(10);\n/* harmony import */ var _blots_text__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7);\n/* harmony import */ var _blots_container__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(16);\n/* harmony import */ var _core_quill__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(1);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n\n\n\nvar CodeBlockContainer = /*#__PURE__*/function (_Container) {\n _inherits(CodeBlockContainer, _Container);\n\n var _super = _createSuper(CodeBlockContainer);\n\n function CodeBlockContainer() {\n _classCallCheck(this, CodeBlockContainer);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(CodeBlockContainer, [{\n key: \"code\",\n value: function code(index, length) {\n var text = this.children.map(function (child) {\n return child.length() <= 1 ? '' : child.domNode.innerText;\n }).join('\\n').slice(index, index + length);\n return Object(_blots_text__WEBPACK_IMPORTED_MODULE_4__[/* escapeText */ \"b\"])(text);\n }\n }, {\n key: \"html\",\n value: function html(index, length) {\n // `\\n`s are needed in order to support empty lines at the beginning and the end.\n // https://html.spec.whatwg.org/multipage/syntax.html#element-restrictions\n return \"
    \\n\".concat(this.code(index, length), \"\\n
    \");\n }\n }], [{\n key: \"create\",\n value: function create(value) {\n var domNode = _get(_getPrototypeOf(CodeBlockContainer), \"create\", this).call(this, value);\n\n domNode.setAttribute('spellcheck', false);\n return domNode;\n }\n }]);\n\n return CodeBlockContainer;\n}(_blots_container__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"]);\n\nvar CodeBlock = /*#__PURE__*/function (_Block) {\n _inherits(CodeBlock, _Block);\n\n var _super2 = _createSuper(CodeBlock);\n\n function CodeBlock() {\n _classCallCheck(this, CodeBlock);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(CodeBlock, null, [{\n key: \"register\",\n value: function register() {\n _core_quill__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"].register(CodeBlockContainer);\n }\n }]);\n\n return CodeBlock;\n}(_blots_block__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"d\"]);\n\nvar Code = /*#__PURE__*/function (_Inline) {\n _inherits(Code, _Inline);\n\n var _super3 = _createSuper(Code);\n\n function Code() {\n _classCallCheck(this, Code);\n\n return _super3.apply(this, arguments);\n }\n\n return Code;\n}(_blots_inline__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"]);\n\nCode.blotName = 'code';\nCode.tagName = 'CODE';\nCodeBlock.blotName = 'code-block';\nCodeBlock.className = 'ql-code-block';\nCodeBlock.tagName = 'DIV';\nCodeBlockContainer.blotName = 'code-block-container';\nCodeBlockContainer.className = 'ql-code-block-container';\nCodeBlockContainer.tagName = 'DIV';\nCodeBlockContainer.allowedChildren = [CodeBlock];\nCodeBlock.allowedChildren = [_blots_text__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"], _blots_break__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"], _blots_cursor__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"]];\nCodeBlock.requiredContainer = CodeBlockContainer;\nCodeBlock.TAB = ' ';\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n/* harmony import */ var _core_emitter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3);\n/* harmony import */ var _block__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5);\n/* harmony import */ var _break__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(8);\n/* harmony import */ var _container__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(16);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n\nfunction isLine(blot) {\n return blot instanceof _block__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"d\"] || blot instanceof _block__WEBPACK_IMPORTED_MODULE_2__[/* BlockEmbed */ \"a\"];\n}\n\nvar Scroll = /*#__PURE__*/function (_ScrollBlot) {\n _inherits(Scroll, _ScrollBlot);\n\n var _super = _createSuper(Scroll);\n\n function Scroll(registry, domNode, _ref) {\n var _this;\n\n var emitter = _ref.emitter,\n toggleBlankClass = _ref.toggleBlankClass;\n\n _classCallCheck(this, Scroll);\n\n _this = _super.call(this, registry, domNode);\n _this.emitter = emitter;\n _this.toggleBlankClass = toggleBlankClass;\n _this.batch = false;\n\n _this.optimize();\n\n _this.enable();\n\n _this.domNode.addEventListener('dragstart', function (e) {\n return _this.handleDragStart(e);\n });\n\n return _this;\n }\n\n _createClass(Scroll, [{\n key: \"batchStart\",\n value: function batchStart() {\n if (!Array.isArray(this.batch)) {\n this.batch = [];\n }\n }\n }, {\n key: \"batchEnd\",\n value: function batchEnd() {\n var mutations = this.batch;\n this.batch = false;\n this.update(mutations);\n }\n }, {\n key: \"emitMount\",\n value: function emitMount(blot) {\n this.emitter.emit(_core_emitter__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"].events.SCROLL_BLOT_MOUNT, blot);\n }\n }, {\n key: \"emitUnmount\",\n value: function emitUnmount(blot) {\n this.emitter.emit(_core_emitter__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"].events.SCROLL_BLOT_UNMOUNT, blot);\n }\n }, {\n key: \"deleteAt\",\n value: function deleteAt(index, length) {\n var _this$line = this.line(index),\n _this$line2 = _slicedToArray(_this$line, 2),\n first = _this$line2[0],\n offset = _this$line2[1];\n\n var _this$line3 = this.line(index + length),\n _this$line4 = _slicedToArray(_this$line3, 1),\n last = _this$line4[0];\n\n _get(_getPrototypeOf(Scroll.prototype), \"deleteAt\", this).call(this, index, length);\n\n if (last != null && first !== last && offset > 0) {\n if (first instanceof _block__WEBPACK_IMPORTED_MODULE_2__[/* BlockEmbed */ \"a\"] || last instanceof _block__WEBPACK_IMPORTED_MODULE_2__[/* BlockEmbed */ \"a\"]) {\n this.optimize();\n return;\n }\n\n var ref = last.children.head instanceof _break__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"] ? null : last.children.head;\n first.moveChildren(last, ref);\n first.remove();\n }\n\n this.optimize();\n }\n }, {\n key: \"enable\",\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n this.domNode.setAttribute('contenteditable', enabled);\n }\n }, {\n key: \"formatAt\",\n value: function formatAt(index, length, format, value) {\n _get(_getPrototypeOf(Scroll.prototype), \"formatAt\", this).call(this, index, length, format, value);\n\n this.optimize();\n }\n }, {\n key: \"handleDragStart\",\n value: function handleDragStart(event) {\n event.preventDefault();\n }\n }, {\n key: \"insertAt\",\n value: function insertAt(index, value, def) {\n if (index >= this.length()) {\n if (def == null || this.scroll.query(value, parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].BLOCK) == null) {\n var blot = this.scroll.create(this.statics.defaultChild.blotName);\n this.appendChild(blot);\n\n if (def == null && value.endsWith('\\n')) {\n blot.insertAt(0, value.slice(0, -1), def);\n } else {\n blot.insertAt(0, value, def);\n }\n } else {\n var embed = this.scroll.create(value, def);\n this.appendChild(embed);\n }\n } else {\n _get(_getPrototypeOf(Scroll.prototype), \"insertAt\", this).call(this, index, value, def);\n }\n\n this.optimize();\n }\n }, {\n key: \"insertBefore\",\n value: function insertBefore(blot, ref) {\n if (blot.statics.scope === parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].INLINE_BLOT) {\n var wrapper = this.scroll.create(this.statics.defaultChild.blotName);\n wrapper.appendChild(blot);\n\n _get(_getPrototypeOf(Scroll.prototype), \"insertBefore\", this).call(this, wrapper, ref);\n } else {\n _get(_getPrototypeOf(Scroll.prototype), \"insertBefore\", this).call(this, blot, ref);\n }\n }\n }, {\n key: \"isEnabled\",\n value: function isEnabled() {\n return this.domNode.getAttribute('contenteditable') === 'true';\n }\n }, {\n key: \"leaf\",\n value: function leaf(index) {\n return this.path(index).pop() || [null, -1];\n }\n }, {\n key: \"line\",\n value: function line(index) {\n if (index === this.length()) {\n return this.line(index - 1);\n }\n\n return this.descendant(isLine, index);\n }\n }, {\n key: \"lines\",\n value: function lines() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n\n var getLines = function getLines(blot, blotIndex, blotLength) {\n var lines = [];\n var lengthLeft = blotLength;\n blot.children.forEachAt(blotIndex, blotLength, function (child, childIndex, childLength) {\n if (isLine(child)) {\n lines.push(child);\n } else if (child instanceof parchment__WEBPACK_IMPORTED_MODULE_0__[\"ContainerBlot\"]) {\n lines = lines.concat(getLines(child, childIndex, lengthLeft));\n }\n\n lengthLeft -= childLength;\n });\n return lines;\n };\n\n return getLines(this, index, length);\n }\n }, {\n key: \"optimize\",\n value: function optimize() {\n var mutations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (this.batch) return;\n\n _get(_getPrototypeOf(Scroll.prototype), \"optimize\", this).call(this, mutations, context);\n\n if (mutations.length > 0) {\n this.emitter.emit(_core_emitter__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"].events.SCROLL_OPTIMIZE, mutations, context);\n }\n }\n }, {\n key: \"path\",\n value: function path(index) {\n return _get(_getPrototypeOf(Scroll.prototype), \"path\", this).call(this, index).slice(1); // Exclude self\n }\n }, {\n key: \"remove\",\n value: function remove() {// Never remove self\n }\n }, {\n key: \"update\",\n value: function update(mutations) {\n var _this2 = this;\n\n if (this.batch) {\n if (Array.isArray(mutations)) {\n this.batch = this.batch.concat(mutations);\n this.toggleBlankClass();\n }\n\n return;\n }\n\n var source = _core_emitter__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"].sources.USER;\n\n if (typeof mutations === 'string') {\n source = mutations;\n }\n\n if (!Array.isArray(mutations)) {\n mutations = this.observer.takeRecords();\n }\n\n mutations = mutations.filter(function (_ref2) {\n var target = _ref2.target;\n\n var blot = _this2.find(target, true);\n\n return blot && blot.scroll === _this2;\n });\n\n if (mutations.length > 0) {\n this.emitter.emit(_core_emitter__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"].events.SCROLL_BEFORE_UPDATE, source, mutations);\n }\n\n _get(_getPrototypeOf(Scroll.prototype), \"update\", this).call(this, mutations.concat([])); // pass copy\n\n\n if (mutations.length > 0) {\n this.emitter.emit(_core_emitter__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"].events.SCROLL_UPDATE, source, mutations);\n }\n }\n }]);\n\n return Scroll;\n}(parchment__WEBPACK_IMPORTED_MODULE_0__[\"ScrollBlot\"]);\n\nScroll.blotName = 'scroll';\nScroll.className = 'ql-editor';\nScroll.tagName = 'DIV';\nScroll.defaultChild = _block__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"d\"];\nScroll.allowedChildren = [_block__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"d\"], _block__WEBPACK_IMPORTED_MODULE_2__[/* BlockEmbed */ \"a\"], _container__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"]];\n/* harmony default export */ __webpack_exports__[\"a\"] = (Scroll);\n\n/***/ }),\n/* 15 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar levels = ['error', 'warn', 'log', 'info'];\nvar level = 'warn';\n\nfunction debug(method) {\n if (levels.indexOf(method) <= levels.indexOf(level)) {\n var _console;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n (_console = console)[method].apply(_console, args); // eslint-disable-line no-console\n\n }\n}\n\nfunction namespace(ns) {\n return levels.reduce(function (logger, method) {\n logger[method] = debug.bind(console, method, ns);\n return logger;\n }, {});\n}\n\nnamespace.level = function (newLevel) {\n level = newLevel;\n};\n\ndebug.level = namespace.level;\n/* harmony default export */ __webpack_exports__[\"a\"] = (namespace);\n\n/***/ }),\n/* 16 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\nvar Container = /*#__PURE__*/function (_ContainerBlot) {\n _inherits(Container, _ContainerBlot);\n\n var _super = _createSuper(Container);\n\n function Container() {\n _classCallCheck(this, Container);\n\n return _super.apply(this, arguments);\n }\n\n return Container;\n}(parchment__WEBPACK_IMPORTED_MODULE_0__[\"ContainerBlot\"]);\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Container);\n\n/***/ }),\n/* 17 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n/* harmony import */ var _text__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\nvar Cursor = /*#__PURE__*/function (_EmbedBlot) {\n _inherits(Cursor, _EmbedBlot);\n\n var _super = _createSuper(Cursor);\n\n function Cursor(scroll, domNode, selection) {\n var _this;\n\n _classCallCheck(this, Cursor);\n\n _this = _super.call(this, scroll, domNode);\n _this.selection = selection;\n _this.textNode = document.createTextNode(Cursor.CONTENTS);\n\n _this.domNode.appendChild(_this.textNode);\n\n _this.savedLength = 0;\n return _this;\n }\n\n _createClass(Cursor, [{\n key: \"detach\",\n value: function detach() {\n // super.detach() will also clear domNode.__blot\n if (this.parent != null) this.parent.removeChild(this);\n }\n }, {\n key: \"format\",\n value: function format(name, value) {\n if (this.savedLength !== 0) {\n _get(_getPrototypeOf(Cursor.prototype), \"format\", this).call(this, name, value);\n\n return;\n }\n\n var target = this;\n var index = 0;\n\n while (target != null && target.statics.scope !== parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].BLOCK_BLOT) {\n index += target.offset(target.parent);\n target = target.parent;\n }\n\n if (target != null) {\n this.savedLength = Cursor.CONTENTS.length;\n target.optimize();\n target.formatAt(index, Cursor.CONTENTS.length, name, value);\n this.savedLength = 0;\n }\n }\n }, {\n key: \"index\",\n value: function index(node, offset) {\n if (node === this.textNode) return 0;\n return _get(_getPrototypeOf(Cursor.prototype), \"index\", this).call(this, node, offset);\n }\n }, {\n key: \"length\",\n value: function length() {\n return this.savedLength;\n }\n }, {\n key: \"position\",\n value: function position() {\n return [this.textNode, this.textNode.data.length];\n }\n }, {\n key: \"remove\",\n value: function remove() {\n _get(_getPrototypeOf(Cursor.prototype), \"remove\", this).call(this);\n\n this.parent = null;\n }\n }, {\n key: \"restore\",\n value: function restore() {\n if (this.selection.composing || this.parent == null) return null;\n var range = this.selection.getNativeRange(); // Link format will insert text outside of anchor tag\n\n while (this.domNode.lastChild != null && this.domNode.lastChild !== this.textNode) {\n this.domNode.parentNode.insertBefore(this.domNode.lastChild, this.domNode);\n }\n\n var prevTextBlot = this.prev instanceof _text__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"] ? this.prev : null;\n var prevTextLength = prevTextBlot ? prevTextBlot.length() : 0;\n var nextTextBlot = this.next instanceof _text__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"] ? this.next : null;\n var nextText = nextTextBlot ? nextTextBlot.text : '';\n var textNode = this.textNode; // take text from inside this blot and reset it\n\n var newText = textNode.data.split(Cursor.CONTENTS).join('');\n textNode.data = Cursor.CONTENTS; // proactively merge TextBlots around cursor so that optimization\n // doesn't lose the cursor. the reason we are here in cursor.restore\n // could be that the user clicked in prevTextBlot or nextTextBlot, or\n // the user typed something.\n\n var mergedTextBlot;\n\n if (prevTextBlot) {\n mergedTextBlot = prevTextBlot;\n\n if (newText || nextTextBlot) {\n prevTextBlot.insertAt(prevTextBlot.length(), newText + nextText);\n\n if (nextTextBlot) {\n nextTextBlot.remove();\n }\n }\n } else if (nextTextBlot) {\n mergedTextBlot = nextTextBlot;\n nextTextBlot.insertAt(0, newText);\n } else {\n var newTextNode = document.createTextNode(newText);\n mergedTextBlot = this.scroll.create(newTextNode);\n this.parent.insertBefore(mergedTextBlot, this);\n }\n\n this.remove();\n\n if (range) {\n // calculate selection to restore\n var remapOffset = function remapOffset(node, offset) {\n if (prevTextBlot && node === prevTextBlot.domNode) {\n return offset;\n }\n\n if (node === textNode) {\n return prevTextLength + offset - 1;\n }\n\n if (nextTextBlot && node === nextTextBlot.domNode) {\n return prevTextLength + newText.length + offset;\n }\n\n return null;\n };\n\n var start = remapOffset(range.start.node, range.start.offset);\n var end = remapOffset(range.end.node, range.end.offset);\n\n if (start !== null && end !== null) {\n return {\n startNode: mergedTextBlot.domNode,\n startOffset: start,\n endNode: mergedTextBlot.domNode,\n endOffset: end\n };\n }\n }\n\n return null;\n }\n }, {\n key: \"update\",\n value: function update(mutations, context) {\n var _this2 = this;\n\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this2.textNode;\n })) {\n var range = this.restore();\n if (range) context.range = range;\n }\n }\n }, {\n key: \"value\",\n value: function value() {\n return '';\n }\n }], [{\n key: \"value\",\n value: function value() {\n return undefined;\n }\n }]);\n\n return Cursor;\n}(parchment__WEBPACK_IMPORTED_MODULE_0__[\"EmbedBlot\"]);\n\nCursor.blotName = 'cursor';\nCursor.className = 'ql-cursor';\nCursor.tagName = 'span';\nCursor.CONTENTS = \"\\uFEFF\"; // Zero width no break space\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Cursor);\n\n/***/ }),\n/* 18 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXTERNAL MODULE: ./core/quill.js\nvar quill = __webpack_require__(1);\n\n// EXTERNAL MODULE: ./blots/block.js\nvar block = __webpack_require__(5);\n\n// EXTERNAL MODULE: ./blots/break.js\nvar blots_break = __webpack_require__(8);\n\n// EXTERNAL MODULE: ./blots/container.js\nvar container = __webpack_require__(16);\n\n// EXTERNAL MODULE: ./blots/cursor.js\nvar cursor = __webpack_require__(17);\n\n// EXTERNAL MODULE: ./blots/embed.js\nvar blots_embed = __webpack_require__(43);\n\n// EXTERNAL MODULE: ./blots/inline.js\nvar inline = __webpack_require__(10);\n\n// EXTERNAL MODULE: ./blots/scroll.js\nvar blots_scroll = __webpack_require__(14);\n\n// EXTERNAL MODULE: ./blots/text.js\nvar blots_text = __webpack_require__(7);\n\n// EXTERNAL MODULE: ./modules/clipboard.js\nvar clipboard = __webpack_require__(44);\n\n// EXTERNAL MODULE: ./modules/history.js\nvar modules_history = __webpack_require__(37);\n\n// EXTERNAL MODULE: ./modules/keyboard.js\nvar keyboard = __webpack_require__(19);\n\n// EXTERNAL MODULE: ./node_modules/quill-delta/dist/Delta.js\nvar Delta = __webpack_require__(0);\nvar Delta_default = /*#__PURE__*/__webpack_require__.n(Delta);\n\n// EXTERNAL MODULE: ./core/emitter.js\nvar emitter = __webpack_require__(3);\n\n// EXTERNAL MODULE: ./core/module.js\nvar core_module = __webpack_require__(9);\n\n// EXTERNAL MODULE: ./utils/hasWindow.js\nvar hasWindow = __webpack_require__(11);\n\n// CONCATENATED MODULE: ./modules/uploader.js\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\nvar uploader_Uploader = /*#__PURE__*/function (_Module) {\n _inherits(Uploader, _Module);\n\n var _super = _createSuper(Uploader);\n\n function Uploader(quill, options) {\n var _this;\n\n _classCallCheck(this, Uploader);\n\n _this = _super.call(this, quill, options);\n\n _this.addDragOverHandler();\n\n _this.addDropHandler();\n\n return _this;\n }\n\n _createClass(Uploader, [{\n key: \"addDragOverHandler\",\n value: function addDragOverHandler() {\n if (Object(hasWindow[\"a\" /* default */])()) {\n var ua = window.navigator.userAgent.toLowerCase();\n var isMsIe = ua.indexOf('msie ') !== -1 || ua.indexOf('trident/') !== -1 || ua.indexOf('edge/') !== -1;\n\n if (isMsIe) {\n this.quill.root.addEventListener('dragover', function (e) {\n e.preventDefault();\n });\n }\n }\n }\n }, {\n key: \"addDropHandler\",\n value: function addDropHandler() {\n var _this2 = this;\n\n this.quill.root.addEventListener('drop', function (e) {\n e.preventDefault();\n var native;\n var onDrop = _this2.options.onDrop;\n\n if (onDrop && typeof onDrop === 'function') {\n onDrop(e);\n }\n\n if (document.caretRangeFromPoint) {\n native = document.caretRangeFromPoint(e.clientX, e.clientY);\n } else if (document.caretPositionFromPoint) {\n var position = document.caretPositionFromPoint(e.clientX, e.clientY);\n native = document.createRange();\n native.setStart(position.offsetNode, position.offset);\n native.setEnd(position.offsetNode, position.offset);\n } else {\n return;\n }\n\n var normalized = _this2.quill.selection.normalizeNative(native);\n\n var range = _this2.quill.selection.normalizedToRange(normalized);\n\n _this2.upload(range, e.dataTransfer.files);\n });\n }\n }, {\n key: \"upload\",\n value: function upload(range, files) {\n var _this3 = this;\n\n var uploads = [];\n Array.from(files).forEach(function (file) {\n if (file && _this3.options.mimetypes.indexOf(file.type) !== -1) {\n uploads.push(file);\n }\n });\n\n if (uploads.length > 0) {\n this.options.handler.call(this, range, uploads, this.options.imageBlot);\n }\n }\n }]);\n\n return Uploader;\n}(core_module[\"a\" /* default */]);\n\nuploader_Uploader.DEFAULTS = {\n mimetypes: ['image/png', 'image/jpeg'],\n imageBlot: 'image',\n handler: function handler(range, files, blotName) {\n var _this4 = this;\n\n var promises = files.map(function (file) {\n return new Promise(function (resolve) {\n var reader = new FileReader();\n\n reader.onload = function (e) {\n resolve(e.target.result);\n };\n\n reader.readAsDataURL(file);\n });\n });\n Promise.all(promises).then(function (images) {\n var update = images.reduce(function (delta, image) {\n return delta.insert(_defineProperty({}, blotName, image));\n }, new Delta_default.a().retain(range.index).delete(range.length));\n\n _this4.quill.updateContents(update, emitter[\"a\" /* default */].sources.USER);\n\n _this4.quill.setSelection(range.index + images.length, emitter[\"a\" /* default */].sources.SILENT);\n });\n }\n};\n/* harmony default export */ var uploader = (uploader_Uploader);\n// CONCATENATED MODULE: ./core.js\n\n\n\n\n\n\n\n\n\n\n\n\n\nquill[\"a\" /* default */].register({\n 'blots/block': block[\"d\" /* default */],\n 'blots/block/embed': block[\"a\" /* BlockEmbed */],\n 'blots/break': blots_break[\"a\" /* default */],\n 'blots/container': container[\"a\" /* default */],\n 'blots/cursor': cursor[\"a\" /* default */],\n 'blots/embed': blots_embed[\"a\" /* default */],\n 'blots/inline': inline[\"a\" /* default */],\n 'blots/scroll': blots_scroll[\"a\" /* default */],\n 'blots/text': blots_text[\"a\" /* default */],\n 'modules/clipboard': clipboard[\"a\" /* default */],\n 'modules/history': modules_history[\"a\" /* default */],\n 'modules/keyboard': keyboard[\"b\" /* default */],\n 'modules/uploader': uploader\n});\n/* harmony default export */ var core = __webpack_exports__[\"default\"] = (quill[\"a\" /* default */]);\n\n/***/ }),\n/* 19 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return Keyboard; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return SHORTKEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return normalize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return deleteRange; });\n/* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);\n/* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var lodash_isequal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(22);\n/* harmony import */ var lodash_isequal__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_isequal__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0);\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(quill_delta__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2);\n/* harmony import */ var _core_quill__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1);\n/* harmony import */ var _core_logger__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(15);\n/* harmony import */ var _core_module__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(9);\n/* harmony import */ var _utils_hasWindow__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(11);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n\n\n\nvar debug = Object(_core_logger__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"])('quill:keyboard');\nvar KEY_NAMES = {\n backspace: 'backspace',\n tab: 'tab',\n enter: 'enter',\n escape: 'escape',\n pageup: 'pageUp',\n pagedown: 'pageDown',\n end: 'end',\n home: 'home',\n arrowleft: 'leftArrow',\n arrowup: 'upArrow',\n arrowright: 'rightArrow',\n arrowdown: 'downArrow',\n delete: 'del',\n ' ': 'space',\n '*': 'asterisk',\n '-': 'minus',\n alt: 'alt',\n control: 'control',\n shift: 'shift',\n // IE11:\n left: 'leftArrow',\n up: 'upArrow',\n right: 'rightArrow',\n down: 'downArrow',\n multiply: 'asterisk',\n spacebar: 'space',\n del: 'del',\n subtract: 'minus',\n esc: 'escape'\n};\nvar KEY_CODES = {\n // iOS 10.2 and lower didn't supports KeyboardEvent.key\n '8': 'backspace',\n '9': 'tab',\n '13': 'enter',\n '27': 'escape',\n '33': 'pageUp',\n '34': 'pageDown',\n '35': 'end',\n '36': 'home',\n '37': 'leftArrow',\n '38': 'upArrow',\n '39': 'rightArrow',\n '40': 'downArrow',\n '46': 'del',\n '32': 'space',\n '106': 'asterisk',\n '109': 'minus',\n '189': 'minus',\n '173': 'minus',\n '16': 'shift',\n '17': 'control',\n '18': 'alt'\n};\nvar SHORTKEY = Object(_utils_hasWindow__WEBPACK_IMPORTED_MODULE_7__[/* default */ \"a\"])() && /Mac/i.test(navigator.platform) ? 'metaKey' : 'ctrlKey';\n\nvar Keyboard = /*#__PURE__*/function (_Module) {\n _inherits(Keyboard, _Module);\n\n var _super = _createSuper(Keyboard);\n\n function Keyboard(quill, options) {\n var _this;\n\n _classCallCheck(this, Keyboard);\n\n _this = _super.call(this, quill, options);\n _this.bindings = {};\n Object.keys(_this.options.bindings).forEach(function (name) {\n if (_this.options.bindings[name]) {\n _this.addBinding(_this.options.bindings[name]);\n }\n });\n\n _this.addBinding({\n key: 'enter',\n shiftKey: null\n }, _this.handleEnter);\n\n _this.addBinding({\n key: 'enter',\n metaKey: null,\n ctrlKey: null,\n altKey: null\n }, function () {});\n\n if (Object(_utils_hasWindow__WEBPACK_IMPORTED_MODULE_7__[/* default */ \"a\"])() && /Firefox/i.test(navigator.userAgent)) {\n // Need to handle delete and backspace for Firefox in the general case #1171\n _this.addBinding({\n key: 'backspace'\n }, {\n collapsed: true\n }, _this.handleBackspace);\n\n _this.addBinding({\n key: 'del'\n }, {\n collapsed: true\n }, _this.handleDelete);\n } else {\n _this.addBinding({\n key: 'backspace'\n }, {\n collapsed: true,\n prefix: /^.?$/\n }, _this.handleBackspace);\n\n _this.addBinding({\n key: 'del'\n }, {\n collapsed: true,\n suffix: /^.?$/\n }, _this.handleDelete);\n }\n\n _this.addBinding({\n key: 'backspace'\n }, {\n collapsed: false\n }, _this.handleDeleteRange);\n\n _this.addBinding({\n key: 'del'\n }, {\n collapsed: false\n }, _this.handleDeleteRange);\n\n _this.addBinding({\n key: 'backspace',\n altKey: null,\n ctrlKey: null,\n metaKey: null,\n shiftKey: null\n }, {\n collapsed: true,\n offset: 0\n }, _this.handleBackspace);\n\n _this.listen();\n\n return _this;\n }\n\n _createClass(Keyboard, [{\n key: \"addBinding\",\n value: function addBinding(keyBinding) {\n var _this2 = this;\n\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var handler = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var binding = normalize(keyBinding);\n\n if (binding == null) {\n debug.warn('Attempted to add invalid keyboard binding', binding);\n return;\n }\n\n if (typeof context === 'function') {\n context = {\n handler: context\n };\n }\n\n if (typeof handler === 'function') {\n handler = {\n handler: handler\n };\n }\n\n var keys = Array.isArray(binding.key) ? binding.key : [binding.key];\n keys.forEach(function (key) {\n var singleBinding = _objectSpread(_objectSpread(_objectSpread({}, binding), {}, {\n key: key\n }, context), handler);\n\n _this2.bindings[singleBinding.key] = _this2.bindings[singleBinding.key] || [];\n\n _this2.bindings[singleBinding.key].push(singleBinding);\n });\n }\n }, {\n key: \"listen\",\n value: function listen() {\n var _this3 = this;\n\n this.quill.root.addEventListener('keydown', function (evt) {\n if (evt.defaultPrevented || evt.isComposing) return;\n\n _this3.raiseOnKeydownCallback(evt);\n\n var keyName = Keyboard.normalizeKeyName(evt);\n var bindings = (_this3.bindings[keyName] || []).concat(_this3.bindings[evt.which] || []);\n var matches = bindings.filter(function (binding) {\n return Keyboard.match(evt, binding);\n });\n if (matches.length === 0) return;\n\n var range = _this3.quill.getSelection();\n\n if (range == null || !_this3.quill.hasFocus()) return;\n\n var _this3$quill$getLine = _this3.quill.getLine(range.index),\n _this3$quill$getLine2 = _slicedToArray(_this3$quill$getLine, 2),\n line = _this3$quill$getLine2[0],\n offset = _this3$quill$getLine2[1];\n\n var _this3$quill$getLeaf = _this3.quill.getLeaf(range.index),\n _this3$quill$getLeaf2 = _slicedToArray(_this3$quill$getLeaf, 2),\n leafStart = _this3$quill$getLeaf2[0],\n offsetStart = _this3$quill$getLeaf2[1];\n\n var _ref = range.length === 0 ? [leafStart, offsetStart] : _this3.quill.getLeaf(range.index + range.length),\n _ref2 = _slicedToArray(_ref, 2),\n leafEnd = _ref2[0],\n offsetEnd = _ref2[1];\n\n var prefixText = leafStart instanceof parchment__WEBPACK_IMPORTED_MODULE_3__[\"TextBlot\"] ? leafStart.value().slice(0, offsetStart) : '';\n var suffixText = leafEnd instanceof parchment__WEBPACK_IMPORTED_MODULE_3__[\"TextBlot\"] ? leafEnd.value().slice(offsetEnd) : '';\n var curContext = {\n collapsed: range.length === 0,\n empty: range.length === 0 && line.length() <= 1,\n format: _this3.quill.getFormat(range),\n line: line,\n offset: offset,\n prefix: prefixText,\n suffix: suffixText,\n event: evt\n };\n var prevented = matches.some(function (binding) {\n if (binding.collapsed != null && binding.collapsed !== curContext.collapsed) {\n return false;\n }\n\n if (binding.empty != null && binding.empty !== curContext.empty) {\n return false;\n }\n\n if (binding.offset != null && binding.offset !== curContext.offset) {\n return false;\n }\n\n if (Array.isArray(binding.format)) {\n // any format is present\n if (binding.format.every(function (name) {\n return curContext.format[name] == null;\n })) {\n return false;\n }\n } else if (_typeof(binding.format) === 'object') {\n // all formats must match\n if (!Object.keys(binding.format).every(function (name) {\n if (binding.format[name] === true) return curContext.format[name] != null;\n if (binding.format[name] === false) return curContext.format[name] == null;\n return lodash_isequal__WEBPACK_IMPORTED_MODULE_1___default()(binding.format[name], curContext.format[name]);\n })) {\n return false;\n }\n }\n\n if (binding.prefix != null && !binding.prefix.test(curContext.prefix)) {\n return false;\n }\n\n if (binding.suffix != null && !binding.suffix.test(curContext.suffix)) {\n return false;\n }\n\n return binding.handler.call(_this3, range, curContext, binding) !== true;\n });\n\n if (prevented) {\n evt.preventDefault();\n }\n });\n }\n }, {\n key: \"raiseOnKeydownCallback\",\n value: function raiseOnKeydownCallback(event) {\n var callback = this.options.onKeydown;\n\n if (callback && typeof callback === 'function') {\n callback(event);\n }\n }\n }, {\n key: \"handleBackspace\",\n value: function handleBackspace(range, context) {\n // Check for astral symbols\n var length = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]$/.test(context.prefix) ? 2 : 1;\n if (range.index === 0 || this.quill.getLength() <= 1) return;\n var formats = {};\n\n var _this$quill$getLine = this.quill.getLine(range.index),\n _this$quill$getLine2 = _slicedToArray(_this$quill$getLine, 1),\n line = _this$quill$getLine2[0];\n\n var delta = new quill_delta__WEBPACK_IMPORTED_MODULE_2___default.a().retain(range.index - length).delete(length);\n\n if (context.offset === 0) {\n // Always deleting newline here, length always 1\n var _this$quill$getLine3 = this.quill.getLine(range.index - 1),\n _this$quill$getLine4 = _slicedToArray(_this$quill$getLine3, 1),\n prev = _this$quill$getLine4[0];\n\n if (prev) {\n var isPrevLineEmpty = prev.statics.blotName === 'block' && prev.length() <= 1;\n\n if (!isPrevLineEmpty) {\n var curFormats = line.formats();\n var prevFormats = this.quill.getFormat(range.index - 1, 1);\n formats = quill_delta__WEBPACK_IMPORTED_MODULE_2__[\"AttributeMap\"].diff(curFormats, prevFormats) || {};\n\n if (Object.keys(formats).length > 0) {\n // line.length() - 1 targets \\n in line, another -1 for newline being deleted\n var formatDelta = new quill_delta__WEBPACK_IMPORTED_MODULE_2___default.a().retain(range.index + line.length() - 2).retain(1, formats);\n delta = delta.compose(formatDelta);\n }\n }\n }\n }\n\n this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n this.quill.focus();\n }\n }, {\n key: \"handleDelete\",\n value: function handleDelete(range, context) {\n // Check for astral symbols\n var length = /^[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/.test(context.suffix) ? 2 : 1;\n if (range.index >= this.quill.getLength() - length) return;\n var formats = {};\n\n var _this$quill$getLine5 = this.quill.getLine(range.index),\n _this$quill$getLine6 = _slicedToArray(_this$quill$getLine5, 1),\n line = _this$quill$getLine6[0];\n\n var delta = new quill_delta__WEBPACK_IMPORTED_MODULE_2___default.a().retain(range.index).delete(length);\n\n if (context.offset >= line.length() - 1) {\n var _this$quill$getLine7 = this.quill.getLine(range.index + 1),\n _this$quill$getLine8 = _slicedToArray(_this$quill$getLine7, 1),\n next = _this$quill$getLine8[0];\n\n if (next) {\n var curFormats = line.formats();\n var nextFormats = this.quill.getFormat(range.index, 1);\n formats = quill_delta__WEBPACK_IMPORTED_MODULE_2__[\"AttributeMap\"].diff(curFormats, nextFormats) || {};\n\n if (Object.keys(formats).length > 0) {\n delta = delta.retain(next.length() - 1).retain(1, formats);\n }\n }\n }\n\n this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n this.quill.focus();\n }\n }, {\n key: \"handleDeleteRange\",\n value: function handleDeleteRange(range, context) {\n this.raiseOnKeydownCallback(context.event);\n deleteRange({\n range: range,\n quill: this.quill\n });\n this.quill.focus();\n }\n }, {\n key: \"handleEnter\",\n value: function handleEnter(range, context) {\n var _this4 = this;\n\n var lineFormats = Object.keys(context.format).reduce(function (formats, format) {\n if (_this4.quill.scroll.query(format, parchment__WEBPACK_IMPORTED_MODULE_3__[\"Scope\"].BLOCK) && !Array.isArray(context.format[format])) {\n formats[format] = context.format[format];\n }\n\n return formats;\n }, {});\n var delta = new quill_delta__WEBPACK_IMPORTED_MODULE_2___default.a().retain(range.index).delete(range.length).insert('\\n', lineFormats);\n this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n this.quill.setSelection(range.index + 1, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.SILENT);\n this.quill.focus();\n Object.keys(context.format).forEach(function (name) {\n if (lineFormats[name] != null) return;\n if (Array.isArray(context.format[name])) return;\n if (name === 'code' || name === 'link') return;\n\n _this4.raiseOnKeydownCallback(context.event);\n\n _this4.quill.format(name, context.format[name], _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n });\n }\n }], [{\n key: \"match\",\n value: function match(evt, binding) {\n if (['altKey', 'ctrlKey', 'metaKey', 'shiftKey'].some(function (key) {\n return !!binding[key] !== evt[key] && binding[key] !== null;\n })) {\n return false;\n }\n\n return binding.key === Keyboard.normalizeKeyName(evt) || binding.key === evt.which;\n }\n }, {\n key: \"normalizeKeyName\",\n value: function normalizeKeyName(_ref3) {\n var key = _ref3.key,\n which = _ref3.which;\n var isKeySupported = !!key;\n var normalizedKey = isKeySupported ? key : which;\n\n if (normalizedKey) {\n if (isKeySupported) {\n normalizedKey = KEY_NAMES[normalizedKey.toLowerCase()] || normalizedKey;\n } else {\n normalizedKey = KEY_CODES[normalizedKey] || String.fromCharCode(normalizedKey);\n }\n }\n\n return normalizedKey;\n }\n }]);\n\n return Keyboard;\n}(_core_module__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"]);\n\nKeyboard.DEFAULTS = {\n bindings: {\n bold: makeFormatHandler('bold'),\n italic: makeFormatHandler('italic'),\n underline: makeFormatHandler('underline'),\n indent: {\n // highlight tab or tab at beginning of list, indent or blockquote\n key: 'tab',\n format: ['blockquote', 'indent', 'list'],\n handler: function handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '+1', _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n return false;\n }\n },\n outdent: {\n key: 'tab',\n shiftKey: true,\n format: ['blockquote', 'indent', 'list'],\n // highlight tab or tab at beginning of list, indent or blockquote\n handler: function handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '-1', _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n return false;\n }\n },\n 'outdent backspace': {\n key: 'backspace',\n collapsed: true,\n shiftKey: null,\n metaKey: null,\n ctrlKey: null,\n altKey: null,\n format: ['indent', 'list'],\n offset: 0,\n handler: function handler(range, context) {\n if (context.format.indent != null) {\n this.quill.format('indent', '-1', _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n } else if (context.format.list != null) {\n this.quill.format('list', false, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n }\n }\n },\n 'indent code-block': makeCodeBlockHandler(true),\n 'outdent code-block': makeCodeBlockHandler(false),\n 'remove tab': {\n key: 'tab',\n shiftKey: true,\n collapsed: true,\n prefix: /\\t$/,\n handler: function handler(range) {\n this.quill.deleteText(range.index - 1, 1, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n }\n },\n tab: {\n key: 'tab',\n handler: function handler(range, context) {\n if (context.format.table) return true;\n this.quill.history.cutoff();\n var delta = new quill_delta__WEBPACK_IMPORTED_MODULE_2___default.a().retain(range.index).delete(range.length).insert('\\t');\n this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index + 1, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.SILENT);\n return false;\n }\n },\n 'blockquote empty enter': {\n key: 'enter',\n collapsed: true,\n format: ['blockquote'],\n empty: true,\n handler: function handler() {\n this.quill.format('blockquote', false, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n }\n },\n 'list empty enter': {\n key: 'enter',\n collapsed: true,\n format: ['list'],\n empty: true,\n handler: function handler(range, context) {\n var formats = {\n list: false\n };\n\n if (context.format.indent) {\n formats.indent = false;\n }\n\n this.quill.formatLine(range.index, range.length, formats, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n }\n },\n 'checklist enter': {\n key: 'enter',\n collapsed: true,\n format: {\n list: 'checked'\n },\n handler: function handler(range) {\n var _this$quill$getLine9 = this.quill.getLine(range.index),\n _this$quill$getLine10 = _slicedToArray(_this$quill$getLine9, 2),\n line = _this$quill$getLine10[0],\n offset = _this$quill$getLine10[1];\n\n var formats = _objectSpread(_objectSpread({}, line.formats()), {}, {\n list: 'checked'\n });\n\n var delta = new quill_delta__WEBPACK_IMPORTED_MODULE_2___default.a().retain(range.index).insert('\\n', formats).retain(line.length() - offset - 1).retain(1, {\n list: 'unchecked'\n });\n this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n this.quill.setSelection(range.index + 1, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'header enter': {\n key: 'enter',\n collapsed: true,\n format: ['header'],\n suffix: /^$/,\n handler: function handler(range, context) {\n var _this$quill$getLine11 = this.quill.getLine(range.index),\n _this$quill$getLine12 = _slicedToArray(_this$quill$getLine11, 2),\n line = _this$quill$getLine12[0],\n offset = _this$quill$getLine12[1];\n\n var delta = new quill_delta__WEBPACK_IMPORTED_MODULE_2___default.a().retain(range.index).insert('\\n', context.format).retain(line.length() - offset - 1).retain(1, {\n header: null\n });\n this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n this.quill.setSelection(range.index + 1, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'table backspace': {\n key: 'backspace',\n format: ['table'],\n collapsed: true,\n offset: 0,\n handler: function handler() {}\n },\n 'table delete': {\n key: 'del',\n format: ['table'],\n collapsed: true,\n suffix: /^$/,\n handler: function handler() {}\n },\n 'table enter': {\n key: 'enter',\n shiftKey: null,\n format: ['table'],\n handler: function handler(range) {\n var module = this.quill.getModule('table');\n\n if (module) {\n var _module$getTable = module.getTable(range),\n _module$getTable2 = _slicedToArray(_module$getTable, 4),\n table = _module$getTable2[0],\n row = _module$getTable2[1],\n cell = _module$getTable2[2],\n offset = _module$getTable2[3];\n\n var shift = tableSide(table, row, cell, offset);\n if (shift == null) return;\n var index = table.offset();\n\n if (shift < 0) {\n var delta = new quill_delta__WEBPACK_IMPORTED_MODULE_2___default.a().retain(index).insert('\\n');\n this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n this.quill.setSelection(range.index + 1, range.length, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.SILENT);\n } else if (shift > 0) {\n index += table.length();\n\n var _delta = new quill_delta__WEBPACK_IMPORTED_MODULE_2___default.a().retain(index).insert('\\n');\n\n this.quill.updateContents(_delta, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n this.quill.setSelection(index, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n }\n }\n }\n },\n 'table tab': {\n key: 'tab',\n shiftKey: null,\n format: ['table'],\n handler: function handler(range, context) {\n var event = context.event,\n cell = context.line;\n var offset = cell.offset(this.quill.scroll);\n\n if (event.shiftKey) {\n this.quill.setSelection(offset - 1, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n } else {\n this.quill.setSelection(offset + cell.length(), _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n }\n }\n },\n 'list autofill': {\n key: 'space',\n shiftKey: null,\n collapsed: true,\n format: {\n 'code-block': false,\n blockquote: false,\n table: false\n },\n prefix: /^\\s*?(\\d+\\.|-|\\*|\\[ ?\\]|\\[x\\])$/,\n handler: function handler(range, context) {\n if (this.quill.scroll.query('list') == null) return true;\n var length = context.prefix.length;\n\n var _this$quill$getLine13 = this.quill.getLine(range.index),\n _this$quill$getLine14 = _slicedToArray(_this$quill$getLine13, 2),\n line = _this$quill$getLine14[0],\n offset = _this$quill$getLine14[1];\n\n if (offset > length) return true;\n var value;\n\n switch (context.prefix.trim()) {\n case '[]':\n case '[ ]':\n value = 'unchecked';\n break;\n\n case '[x]':\n value = 'checked';\n break;\n\n case '-':\n case '*':\n value = 'bullet';\n break;\n\n default:\n value = 'ordered';\n }\n\n this.quill.insertText(range.index, ' ', _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n this.quill.history.cutoff();\n var delta = new quill_delta__WEBPACK_IMPORTED_MODULE_2___default.a().retain(range.index - offset).delete(length + 1).retain(line.length() - 2 - offset).retain(1, {\n list: value\n });\n this.raiseOnKeydownCallback(context.event);\n this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index - length, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.SILENT);\n return false;\n }\n },\n 'code exit': {\n key: 'enter',\n collapsed: true,\n format: ['code-block'],\n prefix: /^$/,\n suffix: /^\\s*$/,\n handler: function handler(range) {\n var _this$quill$getLine15 = this.quill.getLine(range.index),\n _this$quill$getLine16 = _slicedToArray(_this$quill$getLine15, 2),\n line = _this$quill$getLine16[0],\n offset = _this$quill$getLine16[1];\n\n var numLines = 2;\n var cur = line;\n\n while (cur != null && cur.length() <= 1 && cur.formats()['code-block']) {\n cur = cur.prev;\n numLines -= 1; // Requisite prev lines are empty\n\n if (numLines <= 0) {\n var delta = new quill_delta__WEBPACK_IMPORTED_MODULE_2___default.a().retain(range.index + line.length() - offset - 2).retain(1, {\n 'code-block': null\n }).delete(1);\n this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n this.quill.setSelection(range.index - 1, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.SILENT);\n return false;\n }\n }\n\n return true;\n }\n },\n 'embed left': makeEmbedArrowHandler('leftArrow', false),\n 'embed left shift': makeEmbedArrowHandler('leftArrow', true),\n 'embed right': makeEmbedArrowHandler('rightArrow', false),\n 'embed right shift': makeEmbedArrowHandler('rightArrow', true),\n 'table down': makeTableArrowHandler(false),\n 'table up': makeTableArrowHandler(true)\n }\n};\n\nfunction makeCodeBlockHandler(indent) {\n return {\n key: 'tab',\n shiftKey: !indent,\n format: {\n 'code-block': true\n },\n handler: function handler(range) {\n var CodeBlock = this.quill.scroll.query('code-block');\n var lines = range.length === 0 ? this.quill.getLines(range.index, 1) : this.quill.getLines(range);\n var index = range.index,\n length = range.length;\n lines.forEach(function (line, i) {\n if (indent) {\n line.insertAt(0, CodeBlock.TAB);\n\n if (i === 0) {\n index += CodeBlock.TAB.length;\n } else {\n length += CodeBlock.TAB.length;\n }\n } else if (line.domNode.textContent.indexOf(CodeBlock.TAB) === 0) {\n line.deleteAt(0, CodeBlock.TAB.length);\n\n if (i === 0) {\n index -= CodeBlock.TAB.length;\n } else {\n length -= CodeBlock.TAB.length;\n }\n }\n });\n this.quill.update(_core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n this.quill.setSelection(index, length, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.SILENT);\n }\n };\n}\n\nfunction makeEmbedArrowHandler(key, shiftKey) {\n var _ref4;\n\n var where = key === 'leftArrow' ? 'prefix' : 'suffix';\n return _ref4 = {\n key: key,\n shiftKey: shiftKey,\n altKey: null\n }, _defineProperty(_ref4, where, /^$/), _defineProperty(_ref4, \"handler\", function handler(range) {\n var index = range.index;\n\n if (key === 'rightArrow') {\n index += range.length + 1;\n }\n\n var _this$quill$getLeaf = this.quill.getLeaf(index),\n _this$quill$getLeaf2 = _slicedToArray(_this$quill$getLeaf, 1),\n leaf = _this$quill$getLeaf2[0];\n\n if (!(leaf instanceof parchment__WEBPACK_IMPORTED_MODULE_3__[\"EmbedBlot\"])) return true;\n\n if (key === 'leftArrow') {\n if (shiftKey) {\n this.quill.setSelection(range.index - 1, range.length + 1, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n } else {\n this.quill.setSelection(range.index - 1, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n }\n } else if (shiftKey) {\n this.quill.setSelection(range.index, range.length + 1, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n } else {\n this.quill.setSelection(range.index + range.length + 1, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n }\n\n return false;\n }), _ref4;\n}\n\nfunction makeFormatHandler(format) {\n return {\n key: format[0],\n shortKey: true,\n handler: function handler(range, context) {\n this.quill.format(format, !context.format[format], _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n }\n };\n}\n\nfunction makeTableArrowHandler(up) {\n return {\n key: up ? 'upArrow' : 'downArrow',\n collapsed: true,\n format: ['table'],\n handler: function handler(range, context) {\n // TODO move to table module\n var key = up ? 'prev' : 'next';\n var cell = context.line;\n var targetRow = cell.parent[key];\n\n if (targetRow != null) {\n if (targetRow.statics.blotName === 'table-row') {\n var targetCell = targetRow.children.head;\n var cur = cell;\n\n while (cur.prev != null) {\n cur = cur.prev;\n targetCell = targetCell.next;\n }\n\n var index = targetCell.offset(this.quill.scroll) + Math.min(context.offset, targetCell.length() - 1);\n this.quill.setSelection(index, 0, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n }\n } else {\n var targetLine = cell.table()[key];\n\n if (targetLine != null) {\n if (up) {\n this.quill.setSelection(targetLine.offset(this.quill.scroll) + targetLine.length() - 1, 0, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n } else {\n this.quill.setSelection(targetLine.offset(this.quill.scroll), 0, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n }\n }\n }\n\n return false;\n }\n };\n}\n\nfunction normalize(binding) {\n if (typeof binding === 'string' || typeof binding === 'number') {\n binding = {\n key: binding\n };\n } else if (_typeof(binding) === 'object') {\n binding = lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0___default()(binding);\n } else {\n return null;\n }\n\n if (binding.shortKey) {\n binding[SHORTKEY] = binding.shortKey;\n delete binding.shortKey;\n }\n\n return binding;\n}\n\nfunction deleteRange(_ref5) {\n var quill = _ref5.quill,\n range = _ref5.range;\n var lines = quill.getLines(range);\n var formats = {};\n\n if (lines.length > 1) {\n var firstFormats = lines[0].formats();\n var lastFormats = lines[lines.length - 1].formats();\n formats = quill_delta__WEBPACK_IMPORTED_MODULE_2__[\"AttributeMap\"].diff(lastFormats, firstFormats) || {};\n }\n\n quill.deleteText(range, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n\n if (Object.keys(formats).length > 0) {\n quill.formatLine(range.index, 1, formats, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.USER);\n }\n\n quill.setSelection(range.index, _core_quill__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"].sources.SILENT);\n}\n\nfunction tableSide(table, row, cell, offset) {\n if (row.prev == null && row.next == null) {\n if (cell.prev == null && cell.next == null) {\n return offset === 0 ? -1 : 1;\n }\n\n return cell.prev == null ? -1 : 1;\n }\n\n if (row.prev == null) {\n return -1;\n }\n\n if (row.next == null) {\n return 1;\n }\n\n return null;\n}\n\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(40)))\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(20);\nvar shared = __webpack_require__(75);\nvar has = __webpack_require__(25);\nvar uid = __webpack_require__(76);\nvar NATIVE_SYMBOL = __webpack_require__(70);\nvar USE_SYMBOL_AS_UID = __webpack_require__(69);\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n if (NATIVE_SYMBOL && has(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n }\n } return WellKnownSymbolsStore[name];\n};\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global, module) {/**\n * Lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright JS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = true && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = isEqual;\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(40), __webpack_require__(45)(module)))\n\n/***/ }),\n/* 23 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ColorAttributor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return ColorClass; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return ColorStyle; });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\nvar ColorAttributor = /*#__PURE__*/function (_StyleAttributor) {\n _inherits(ColorAttributor, _StyleAttributor);\n\n var _super = _createSuper(ColorAttributor);\n\n function ColorAttributor() {\n _classCallCheck(this, ColorAttributor);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(ColorAttributor, [{\n key: \"value\",\n value: function value(domNode) {\n var value = _get(_getPrototypeOf(ColorAttributor.prototype), \"value\", this).call(this, domNode);\n\n if (value.indexOf('rgb(') !== 0) return value;\n value = value.replace(/^[^\\d]+/, '').replace(/[^\\d]+$/, '');\n var hex = value.split(',').map(function (component) {\n return \"00\".concat(parseInt(component, 10).toString(16)).slice(-2);\n }).join('');\n return \"#\".concat(hex);\n }\n }]);\n\n return ColorAttributor;\n}(parchment__WEBPACK_IMPORTED_MODULE_0__[\"StyleAttributor\"]);\n\nvar ColorClass = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"ClassAttributor\"]('color', 'ql-color', {\n scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].INLINE\n});\nvar ColorStyle = new ColorAttributor('color', 'color', {\n scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].INLINE\n});\n\n\n/***/ }),\n/* 24 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return DirectionAttribute; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return DirectionClass; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return DirectionStyle; });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n\nvar config = {\n scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].BLOCK,\n whitelist: ['rtl']\n};\nvar DirectionAttribute = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"Attributor\"]('direction', 'dir', config);\nvar DirectionClass = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"ClassAttributor\"]('direction', 'ql-direction', config);\nvar DirectionStyle = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"StyleAttributor\"]('direction', 'direction', config);\n\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toObject = __webpack_require__(49);\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty.call(toObject(it), key);\n};\n\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global, module) {/**\n * Lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = true && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeMax = Math.max,\n nativeNow = Date.now;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\n/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = merge;\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(40), __webpack_require__(45)(module)))\n\n/***/ }),\n/* 27 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return AlignAttribute; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return AlignClass; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return AlignStyle; });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n\nvar config = {\n scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].BLOCK,\n whitelist: ['right', 'center', 'justify']\n};\nvar AlignAttribute = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"Attributor\"]('align', 'align', config);\nvar AlignClass = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"ClassAttributor\"]('align', 'ql-align', config);\nvar AlignStyle = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"StyleAttributor\"]('align', 'text-align', config);\n\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(29);\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Link; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return _sanitize; });\n/* harmony import */ var _blots_inline__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(10);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\nvar Link = /*#__PURE__*/function (_Inline) {\n _inherits(Link, _Inline);\n\n var _super = _createSuper(Link);\n\n function Link() {\n _classCallCheck(this, Link);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Link, [{\n key: \"format\",\n value: function format(name, value) {\n if (name !== this.statics.blotName || !value) {\n _get(_getPrototypeOf(Link.prototype), \"format\", this).call(this, name, value);\n } else {\n this.domNode.setAttribute('href', this.constructor.sanitize(value));\n }\n }\n }], [{\n key: \"create\",\n value: function create(value) {\n var node = _get(_getPrototypeOf(Link), \"create\", this).call(this, value);\n\n node.setAttribute('href', this.sanitize(value));\n node.setAttribute('rel', 'noopener noreferrer');\n node.setAttribute('target', '_blank');\n return node;\n }\n }, {\n key: \"formats\",\n value: function formats(domNode) {\n return domNode.getAttribute('href');\n }\n }, {\n key: \"sanitize\",\n value: function sanitize(url) {\n return _sanitize(url, this.PROTOCOL_WHITELIST) ? url : this.SANITIZED_URL;\n }\n }]);\n\n return Link;\n}(_blots_inline__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"]);\n\nLink.blotName = 'link';\nLink.tagName = 'A';\nLink.SANITIZED_URL = 'about:blank';\nLink.PROTOCOL_WHITELIST = ['http', 'https', 'mailto', 'tel'];\n\nfunction _sanitize(url, protocols) {\n var anchor = document.createElement('a');\n anchor.href = url;\n var protocol = anchor.href.slice(0, anchor.href.indexOf(':'));\n return protocols.indexOf(protocol) > -1;\n}\n\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (new WeakMap());\n\n/***/ }),\n/* 33 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return BackgroundClass; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return BackgroundStyle; });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n/* harmony import */ var _color__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(23);\n\n\nvar BackgroundClass = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"ClassAttributor\"]('background', 'ql-bg', {\n scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].INLINE\n});\nvar BackgroundStyle = new _color__WEBPACK_IMPORTED_MODULE_1__[/* ColorAttributor */ \"a\"]('background', 'background-color', {\n scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].INLINE\n});\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return FontStyle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return FontClass; });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\nvar config = {\n scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].INLINE,\n whitelist: ['serif', 'monospace']\n};\nvar FontClass = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"ClassAttributor\"]('font', 'ql-font', config);\n\nvar FontStyleAttributor = /*#__PURE__*/function (_StyleAttributor) {\n _inherits(FontStyleAttributor, _StyleAttributor);\n\n var _super = _createSuper(FontStyleAttributor);\n\n function FontStyleAttributor() {\n _classCallCheck(this, FontStyleAttributor);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(FontStyleAttributor, [{\n key: \"value\",\n value: function value(node) {\n return _get(_getPrototypeOf(FontStyleAttributor.prototype), \"value\", this).call(this, node).replace(/[\"']/g, '');\n }\n }]);\n\n return FontStyleAttributor;\n}(parchment__WEBPACK_IMPORTED_MODULE_0__[\"StyleAttributor\"]);\n\nvar FontStyle = new FontStyleAttributor('font', 'font-family', config);\n\n\n/***/ }),\n/* 35 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return SizeClass; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return SizeStyle; });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n\nvar SizeClass = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"ClassAttributor\"]('size', 'ql-size', {\n scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].INLINE,\n whitelist: ['small', 'large', 'huge']\n});\nvar SizeStyle = new parchment__WEBPACK_IMPORTED_MODULE_0__[\"StyleAttributor\"]('size', 'font-size', {\n scope: parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].INLINE,\n whitelist: ['10px', '18px', '32px']\n});\n\n\n/***/ }),\n/* 36 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _blots_inline__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(10);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\nvar Bold = /*#__PURE__*/function (_Inline) {\n _inherits(Bold, _Inline);\n\n var _super = _createSuper(Bold);\n\n function Bold() {\n _classCallCheck(this, Bold);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Bold, [{\n key: \"optimize\",\n value: function optimize(context) {\n _get(_getPrototypeOf(Bold.prototype), \"optimize\", this).call(this, context);\n\n if (this.domNode.tagName !== this.statics.tagName[0]) {\n this.replaceWith(this.statics.blotName);\n }\n }\n }], [{\n key: \"create\",\n value: function create() {\n return _get(_getPrototypeOf(Bold), \"create\", this).call(this);\n }\n }, {\n key: \"formats\",\n value: function formats() {\n return true;\n }\n }]);\n\n return Bold;\n}(_blots_inline__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"]);\n\nBold.blotName = 'bold';\nBold.tagName = ['STRONG', 'B'];\n/* harmony default export */ __webpack_exports__[\"a\"] = (Bold);\n\n/***/ }),\n/* 37 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return History; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return getLastChangeIndex; });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n/* harmony import */ var _core_quill__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1);\n/* harmony import */ var _core_module__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9);\n/* harmony import */ var _utils_hasWindow__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(11);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\nvar History = /*#__PURE__*/function (_Module) {\n _inherits(History, _Module);\n\n var _super = _createSuper(History);\n\n function History(quill, options) {\n var _this;\n\n _classCallCheck(this, History);\n\n _this = _super.call(this, quill, options);\n _this.lastRecorded = 0;\n _this.ignoreChange = false;\n\n _this.clear();\n\n _this.quill.on(_core_quill__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"].events.EDITOR_CHANGE, function (eventName, delta, oldDelta, source) {\n if (eventName !== _core_quill__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"].events.TEXT_CHANGE || _this.ignoreChange) return;\n\n if (!_this.options.userOnly || source === _core_quill__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"].sources.USER) {\n _this.record(delta, oldDelta);\n } else {\n _this.transform(delta);\n }\n });\n\n _this.quill.keyboard.addBinding({\n key: 'z',\n shortKey: true\n }, _this.undo.bind(_assertThisInitialized(_this)));\n\n _this.quill.keyboard.addBinding({\n key: 'z',\n shortKey: true,\n shiftKey: true\n }, _this.redo.bind(_assertThisInitialized(_this)));\n\n if (Object(_utils_hasWindow__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"])() && /Win/i.test(navigator.platform)) {\n _this.quill.keyboard.addBinding({\n key: 'y',\n shortKey: true\n }, _this.redo.bind(_assertThisInitialized(_this)));\n }\n\n _this.quill.root.addEventListener('beforeinput', function (event) {\n if (event.inputType === 'historyUndo') {\n _this.undo();\n\n event.preventDefault();\n } else if (event.inputType === 'historyRedo') {\n _this.redo();\n\n event.preventDefault();\n }\n });\n\n return _this;\n }\n\n _createClass(History, [{\n key: \"change\",\n value: function change(source, dest) {\n if (this.stack[source].length === 0) return;\n var delta = this.stack[source].pop();\n var base = this.quill.getContents();\n var inverseDelta = delta.invert(base);\n this.stack[dest].push(inverseDelta);\n this.lastRecorded = 0;\n this.ignoreChange = true;\n this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"].sources.USER);\n this.ignoreChange = false;\n var index = getLastChangeIndex(this.quill.scroll, delta);\n this.quill.setSelection(index);\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.stack = {\n undo: [],\n redo: []\n };\n }\n }, {\n key: \"cutoff\",\n value: function cutoff() {\n this.lastRecorded = 0;\n }\n }, {\n key: \"record\",\n value: function record(changeDelta, oldDelta) {\n if (changeDelta.ops.length === 0) return;\n this.stack.redo = [];\n var undoDelta = changeDelta.invert(oldDelta);\n var timestamp = Date.now();\n\n if (this.lastRecorded + this.options.delay > timestamp && this.stack.undo.length > 0) {\n var delta = this.stack.undo.pop();\n undoDelta = undoDelta.compose(delta);\n } else {\n this.lastRecorded = timestamp;\n }\n\n if (undoDelta.length() === 0) return;\n this.stack.undo.push(undoDelta);\n\n if (this.stack.undo.length > this.options.maxStack) {\n this.stack.undo.shift();\n }\n }\n }, {\n key: \"redo\",\n value: function redo() {\n this.change('redo', 'undo');\n }\n }, {\n key: \"transform\",\n value: function transform(delta) {\n transformStack(this.stack.undo, delta);\n transformStack(this.stack.redo, delta);\n }\n }, {\n key: \"undo\",\n value: function undo() {\n this.change('undo', 'redo');\n }\n }]);\n\n return History;\n}(_core_module__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"]);\n\nHistory.DEFAULTS = {\n delay: 1000,\n maxStack: 100,\n userOnly: false\n};\n\nfunction transformStack(stack, delta) {\n var remoteDelta = delta;\n\n for (var i = stack.length - 1; i >= 0; i -= 1) {\n var oldDelta = stack[i];\n stack[i] = remoteDelta.transform(oldDelta, true);\n remoteDelta = oldDelta.transform(remoteDelta);\n\n if (stack[i].length() === 0) {\n stack.splice(i, 1);\n }\n }\n}\n\nfunction endsWithNewlineChange(scroll, delta) {\n var lastOp = delta.ops[delta.ops.length - 1];\n if (lastOp == null) return false;\n\n if (lastOp.insert != null) {\n return typeof lastOp.insert === 'string' && lastOp.insert.endsWith('\\n');\n }\n\n if (lastOp.attributes != null) {\n return Object.keys(lastOp.attributes).some(function (attr) {\n return scroll.query(attr, parchment__WEBPACK_IMPORTED_MODULE_0__[\"Scope\"].BLOCK) != null;\n });\n }\n\n return false;\n}\n\nfunction getLastChangeIndex(scroll, delta) {\n var deleteLength = delta.reduce(function (length, op) {\n return length + (op.delete || 0);\n }, 0);\n var changeIndex = delta.length() - deleteLength;\n\n if (endsWithNewlineChange(scroll, delta)) {\n changeIndex -= 1;\n }\n\n return changeIndex;\n}\n\n\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(42);\nvar IE8_DOM_DEFINE = __webpack_require__(73);\nvar anObject = __webpack_require__(30);\nvar toPropertyKey = __webpack_require__(60);\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n/***/ }),\n/* 39 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar Theme = /*#__PURE__*/function () {\n function Theme(quill, options) {\n _classCallCheck(this, Theme);\n\n this.quill = quill;\n this.options = options;\n this.modules = {};\n }\n\n _createClass(Theme, [{\n key: \"init\",\n value: function init() {\n var _this = this;\n\n Object.keys(this.options.modules).forEach(function (name) {\n if (_this.modules[name] == null) {\n _this.addModule(name);\n }\n });\n }\n }, {\n key: \"addModule\",\n value: function addModule(name) {\n var ModuleClass = this.quill.constructor.import(\"modules/\".concat(name));\n this.modules[name] = new ModuleClass(this.quill, this.options.modules[name] || {});\n return this.modules[name];\n }\n }]);\n\n return Theme;\n}();\n\nTheme.DEFAULTS = {\n modules: {}\n};\nTheme.themes = {\n default: Theme\n};\n/* harmony default export */ __webpack_exports__[\"a\"] = (Theme);\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports) {\n\nvar g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\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\nmodule.exports = g;\n\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(42);\nvar definePropertyModule = __webpack_require__(38);\nvar createPropertyDescriptor = __webpack_require__(50);\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(28);\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n\n\n/***/ }),\n/* 43 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n/* harmony import */ var _text__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\nvar GUARD_TEXT = \"\\uFEFF\";\n\nvar Embed = /*#__PURE__*/function (_EmbedBlot) {\n _inherits(Embed, _EmbedBlot);\n\n var _super = _createSuper(Embed);\n\n function Embed(scroll, node) {\n var _this;\n\n _classCallCheck(this, Embed);\n\n _this = _super.call(this, scroll, node);\n _this.contentNode = document.createElement('span');\n\n _this.contentNode.setAttribute('contenteditable', false);\n\n Array.from(_this.domNode.childNodes).forEach(function (childNode) {\n _this.contentNode.appendChild(childNode);\n });\n _this.leftGuard = document.createTextNode(GUARD_TEXT);\n _this.rightGuard = document.createTextNode(GUARD_TEXT);\n\n _this.domNode.appendChild(_this.leftGuard);\n\n _this.domNode.appendChild(_this.contentNode);\n\n _this.domNode.appendChild(_this.rightGuard);\n\n return _this;\n }\n\n _createClass(Embed, [{\n key: \"index\",\n value: function index(node, offset) {\n if (node === this.leftGuard) return 0;\n if (node === this.rightGuard) return 1;\n return _get(_getPrototypeOf(Embed.prototype), \"index\", this).call(this, node, offset);\n }\n }, {\n key: \"restore\",\n value: function restore(node) {\n var range;\n var textNode;\n var text = node.data.split(GUARD_TEXT).join('');\n\n if (node === this.leftGuard) {\n if (this.prev instanceof _text__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"]) {\n var prevLength = this.prev.length();\n this.prev.insertAt(prevLength, text);\n range = {\n startNode: this.prev.domNode,\n startOffset: prevLength + text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(this.scroll.create(textNode), this);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n } else if (node === this.rightGuard) {\n if (this.next instanceof _text__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"]) {\n this.next.insertAt(0, text);\n range = {\n startNode: this.next.domNode,\n startOffset: text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(this.scroll.create(textNode), this.next);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n }\n\n node.data = GUARD_TEXT;\n return range;\n }\n }, {\n key: \"update\",\n value: function update(mutations, context) {\n var _this2 = this;\n\n mutations.forEach(function (mutation) {\n if (mutation.type === 'characterData' && (mutation.target === _this2.leftGuard || mutation.target === _this2.rightGuard)) {\n var range = _this2.restore(mutation.target);\n\n if (range) context.range = range;\n }\n });\n }\n }]);\n\n return Embed;\n}(parchment__WEBPACK_IMPORTED_MODULE_0__[\"EmbedBlot\"]);\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Embed);\n\n/***/ }),\n/* 44 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Clipboard; });\n/* unused harmony export matchAttributor */\n/* unused harmony export matchBlot */\n/* unused harmony export matchNewline */\n/* unused harmony export matchText */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return traverse; });\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(quill_delta__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);\n/* harmony import */ var _blots_block__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5);\n/* harmony import */ var _core_quill__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1);\n/* harmony import */ var _core_logger__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(15);\n/* harmony import */ var _core_module__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(9);\n/* harmony import */ var _formats_align__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(27);\n/* harmony import */ var _formats_background__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(33);\n/* harmony import */ var _formats_code__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(13);\n/* harmony import */ var _formats_color__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(23);\n/* harmony import */ var _formats_direction__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(24);\n/* harmony import */ var _formats_font__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(34);\n/* harmony import */ var _formats_size__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(35);\n/* harmony import */ var _keyboard__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(19);\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar debug = Object(_core_logger__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"])('quill:clipboard');\nvar ELEMENT_NODE = 1;\nvar TEXT_NODE = 3;\nvar CLIPBOARD_CONFIG = [[TEXT_NODE, matchText], [TEXT_NODE, matchNewline], ['br', matchBreak], [ELEMENT_NODE, matchNewline], [ELEMENT_NODE, matchBlot], [ELEMENT_NODE, matchAttributor], [ELEMENT_NODE, matchStyles], ['li', matchIndent], ['ol, ul', matchList], ['pre', matchCodeBlock], ['tr', matchTable], ['b', matchAlias.bind(matchAlias, 'bold')], ['i', matchAlias.bind(matchAlias, 'italic')], ['strike', matchAlias.bind(matchAlias, 'strike')], ['style', matchIgnore]];\nvar HTML_TEXT_MATCHERS = [matchText, matchNewline];\nvar ATTRIBUTE_ATTRIBUTORS = [_formats_align__WEBPACK_IMPORTED_MODULE_6__[/* AlignAttribute */ \"a\"], _formats_direction__WEBPACK_IMPORTED_MODULE_10__[/* DirectionAttribute */ \"a\"]].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\nvar STYLE_ATTRIBUTORS = [_formats_align__WEBPACK_IMPORTED_MODULE_6__[/* AlignStyle */ \"c\"], _formats_background__WEBPACK_IMPORTED_MODULE_7__[/* BackgroundStyle */ \"b\"], _formats_color__WEBPACK_IMPORTED_MODULE_9__[/* ColorStyle */ \"c\"], _formats_direction__WEBPACK_IMPORTED_MODULE_10__[/* DirectionStyle */ \"c\"], _formats_font__WEBPACK_IMPORTED_MODULE_11__[/* FontStyle */ \"b\"], _formats_size__WEBPACK_IMPORTED_MODULE_12__[/* SizeStyle */ \"b\"]].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nvar Clipboard = /*#__PURE__*/function (_Module) {\n _inherits(Clipboard, _Module);\n\n var _super = _createSuper(Clipboard);\n\n function Clipboard(quill, options) {\n var _this;\n\n _classCallCheck(this, Clipboard);\n\n _this = _super.call(this, quill, options);\n\n _this.quill.root.addEventListener('copy', function (e) {\n return _this.onCaptureCopy(e, false);\n });\n\n _this.quill.root.addEventListener('cut', function (e) {\n return _this.onCaptureCopy(e, true);\n });\n\n _this.quill.root.addEventListener('paste', _this.onCapturePaste.bind(_assertThisInitialized(_this)));\n\n _this.matchers = [];\n CLIPBOARD_CONFIG.concat(_this.options.matchers).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n selector = _ref2[0],\n matcher = _ref2[1];\n\n _this.addMatcher(selector, matcher);\n });\n return _this;\n }\n\n _createClass(Clipboard, [{\n key: \"addMatcher\",\n value: function addMatcher(selector, matcher) {\n this.matchers.push([selector, matcher]);\n }\n }, {\n key: \"convert\",\n value: function convert(_ref3) {\n var html = _ref3.html,\n text = _ref3.text;\n var formats = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (formats[_formats_code__WEBPACK_IMPORTED_MODULE_8__[/* default */ \"c\"].blotName]) {\n return new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a().insert(text, _defineProperty({}, _formats_code__WEBPACK_IMPORTED_MODULE_8__[/* default */ \"c\"].blotName, formats[_formats_code__WEBPACK_IMPORTED_MODULE_8__[/* default */ \"c\"].blotName]));\n }\n\n return html ? this.applyMatchers(html, formats) : this.applyTextMatchers(text);\n }\n }, {\n key: \"applyTextMatchers\",\n value: function applyTextMatchers() {\n var _this2 = this;\n\n var text = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n\n if (text.length === 0) {\n return new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a();\n }\n\n var matchers = this.prepareTextMatching();\n var element = this.quill.root.ownerDocument.createElement('div');\n element.textContent = text;\n var node = element.childNodes[0];\n return matchers.reduce(function (delta, matcher) {\n return matcher(node, delta, _this2.quill.scroll);\n }, new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a());\n }\n }, {\n key: \"applyMatchers\",\n value: function applyMatchers(html, formats) {\n var doc = new DOMParser().parseFromString(html, 'text/html');\n var container = doc.body;\n var nodeMatches = new WeakMap();\n\n var _this$prepareMatching = this.prepareMatching(container, nodeMatches),\n _this$prepareMatching2 = _slicedToArray(_this$prepareMatching, 2),\n elementMatchers = _this$prepareMatching2[0],\n textMatchers = _this$prepareMatching2[1];\n\n var delta = traverse(this.quill.scroll, container, elementMatchers, textMatchers, nodeMatches); // Remove trailing newline\n\n if (deltaEndsWith(delta, '\\n') && (delta.ops[delta.ops.length - 1].attributes == null || formats.table)) {\n return delta.compose(new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a().retain(delta.length() - 1).delete(1));\n }\n\n return delta;\n }\n }, {\n key: \"dangerouslyPasteHTML\",\n value: function dangerouslyPasteHTML(index, html) {\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _core_quill__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.API;\n\n if (typeof index === 'string') {\n var delta = this.convert({\n html: index,\n text: ''\n });\n this.quill.setContents(delta, html);\n this.quill.setSelection(0, _core_quill__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.SILENT);\n } else {\n var paste = this.convert({\n html: html,\n text: ''\n });\n this.quill.updateContents(new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a().retain(index).concat(paste), source);\n this.quill.setSelection(index + paste.length(), _core_quill__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.SILENT);\n }\n }\n }, {\n key: \"onCaptureCopy\",\n value: function onCaptureCopy(e) {\n var isCut = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (e.defaultPrevented) return;\n\n if (e.clipboardData) {\n e.preventDefault();\n } else {\n return;\n }\n\n var _this$quill$selection = this.quill.selection.getRange(),\n _this$quill$selection2 = _slicedToArray(_this$quill$selection, 1),\n range = _this$quill$selection2[0];\n\n if (range == null) return;\n\n var _this$onCopy = this.onCopy(range, isCut),\n html = _this$onCopy.html,\n text = _this$onCopy.text;\n\n e.clipboardData.setData('text/plain', text);\n e.clipboardData.setData('text/html', html);\n\n if (isCut) {\n this.raiseCallback('onCut', e);\n Object(_keyboard__WEBPACK_IMPORTED_MODULE_13__[/* deleteRange */ \"c\"])({\n range: range,\n quill: this.quill\n });\n }\n }\n }, {\n key: \"onCapturePaste\",\n value: function onCapturePaste(e) {\n if (e.defaultPrevented || !this.quill.isEnabled()) return;\n this.raiseCallback('onPaste', e);\n\n if (e.clipboardData) {\n e.preventDefault();\n } else {\n return;\n }\n\n var range = this.quill.getSelection(true);\n if (range == null) return;\n var html = e.clipboardData.getData('text/html');\n var text = e.clipboardData.getData('text/plain');\n var files = Array.from(e.clipboardData.files || []);\n\n if (!html && files.length > 0) {\n this.quill.uploader.upload(range, files);\n } else {\n this.onPaste(range, {\n html: html,\n text: text\n });\n }\n }\n }, {\n key: \"raiseCallback\",\n value: function raiseCallback(name, event) {\n var callback = this.options[name];\n\n if (callback && typeof callback === 'function') {\n callback(event);\n }\n }\n }, {\n key: \"onCopy\",\n value: function onCopy(range) {\n var text = this.quill.getText(range);\n var html = this.quill.getSemanticHTML(range);\n return {\n html: html,\n text: text\n };\n }\n }, {\n key: \"onPaste\",\n value: function onPaste(range, _ref4) {\n var text = _ref4.text,\n html = _ref4.html;\n var formats = this.quill.getFormat(range.index);\n var pastedDelta = this.convert({\n text: text,\n html: html\n }, formats);\n debug.log('onPaste', pastedDelta, {\n text: text,\n html: html\n });\n var delta = new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a().retain(range.index).delete(range.length).concat(pastedDelta);\n this.quill.updateContents(delta, _core_quill__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.USER); // range.length contributes to delta.length()\n\n this.quill.setSelection(delta.length() - range.length, _core_quill__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.SILENT);\n this.quill.scrollIntoView();\n }\n }, {\n key: \"prepareMatching\",\n value: function prepareMatching(container, nodeMatches) {\n var elementMatchers = [];\n var textMatchers = [];\n this.matchers.forEach(function (pair) {\n var _pair = _slicedToArray(pair, 2),\n selector = _pair[0],\n matcher = _pair[1];\n\n switch (selector) {\n case TEXT_NODE:\n textMatchers.push(matcher);\n break;\n\n case ELEMENT_NODE:\n elementMatchers.push(matcher);\n break;\n\n default:\n Array.from(container.querySelectorAll(selector)).forEach(function (node) {\n if (nodeMatches.has(node)) {\n var matches = nodeMatches.get(node);\n matches.push(matcher);\n } else {\n nodeMatches.set(node, [matcher]);\n }\n });\n break;\n }\n });\n return [elementMatchers, textMatchers];\n }\n }, {\n key: \"prepareTextMatching\",\n value: function prepareTextMatching() {\n var textMatchers = [matchPlainText];\n this.matchers.forEach(function (pair) {\n var _pair2 = _slicedToArray(pair, 2),\n selector = _pair2[0],\n matcher = _pair2[1];\n\n if (HTML_TEXT_MATCHERS.indexOf(matcher) === -1 && selector === TEXT_NODE) {\n textMatchers.push(matcher);\n }\n });\n return textMatchers;\n }\n }]);\n\n return Clipboard;\n}(_core_module__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"]);\n\nClipboard.DEFAULTS = {\n matchers: []\n};\n\nfunction applyFormat(delta, format, value) {\n if (_typeof(format) === 'object') {\n return Object.keys(format).reduce(function (newDelta, key) {\n return applyFormat(newDelta, key, format[key]);\n }, delta);\n }\n\n return delta.reduce(function (newDelta, op) {\n if (op.attributes && op.attributes[format]) {\n return newDelta.push(op);\n }\n\n var formats = value ? _defineProperty({}, format, value) : {};\n return newDelta.insert(op.insert, _objectSpread(_objectSpread({}, formats), op.attributes));\n }, new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a());\n}\n\nfunction deltaEndsWith(delta, text) {\n var endText = '';\n\n for (var i = delta.ops.length - 1; i >= 0 && endText.length < text.length; --i // eslint-disable-line no-plusplus\n ) {\n var op = delta.ops[i];\n if (typeof op.insert !== 'string') break;\n endText = op.insert + endText;\n }\n\n return endText.slice(-1 * text.length) === text;\n}\n\nfunction isLine(node) {\n if (node.childNodes.length === 0) return false; // Exclude embed blocks\n\n return ['address', 'article', 'blockquote', 'canvas', 'dd', 'div', 'dl', 'dt', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'iframe', 'li', 'main', 'nav', 'ol', 'output', 'p', 'pre', 'section', 'table', 'td', 'tr', 'ul', 'video'].indexOf(node.tagName.toLowerCase()) !== -1;\n}\n\nvar preNodes = new WeakMap();\n\nfunction isPre(node) {\n if (node == null) return false;\n\n if (!preNodes.has(node)) {\n if (node.tagName === 'PRE') {\n preNodes.set(node, true);\n } else {\n preNodes.set(node, isPre(node.parentNode));\n }\n }\n\n return preNodes.get(node);\n}\n\nfunction traverse(scroll, node, elementMatchers, textMatchers, nodeMatches) {\n // Post-order\n if (node.nodeType === node.TEXT_NODE) {\n return textMatchers.reduce(function (delta, matcher) {\n return matcher(node, delta, scroll);\n }, new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a());\n }\n\n if (node.nodeType === node.ELEMENT_NODE) {\n return Array.from(node.childNodes || []).reduce(function (delta, childNode) {\n var childrenDelta = traverse(scroll, childNode, elementMatchers, textMatchers, nodeMatches);\n\n if (childNode.nodeType === node.ELEMENT_NODE) {\n childrenDelta = elementMatchers.reduce(function (reducedDelta, matcher) {\n return matcher(childNode, reducedDelta, scroll);\n }, childrenDelta);\n childrenDelta = (nodeMatches.get(childNode) || []).reduce(function (reducedDelta, matcher) {\n return matcher(childNode, reducedDelta, scroll);\n }, childrenDelta);\n }\n\n return delta.concat(childrenDelta);\n }, new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a());\n }\n\n return new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a();\n}\n\nfunction matchAlias(format, node, delta) {\n return applyFormat(delta, format, true);\n}\n\nfunction matchAttributor(node, delta, scroll) {\n var attributes = parchment__WEBPACK_IMPORTED_MODULE_1__[\"Attributor\"].keys(node);\n var classes = parchment__WEBPACK_IMPORTED_MODULE_1__[\"ClassAttributor\"].keys(node);\n var styles = parchment__WEBPACK_IMPORTED_MODULE_1__[\"StyleAttributor\"].keys(node);\n var formats = {};\n attributes.concat(classes).concat(styles).forEach(function (name) {\n var attr = scroll.query(name, parchment__WEBPACK_IMPORTED_MODULE_1__[\"Scope\"].ATTRIBUTE);\n\n if (attr != null) {\n formats[attr.attrName] = attr.value(node);\n if (formats[attr.attrName]) return;\n }\n\n attr = ATTRIBUTE_ATTRIBUTORS[name];\n\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n\n attr = STYLE_ATTRIBUTORS[name];\n\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n attr = STYLE_ATTRIBUTORS[name];\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n });\n\n if (Object.keys(formats).length > 0) {\n return applyFormat(delta, formats);\n }\n\n return delta;\n}\n\nfunction matchBlot(node, delta, scroll) {\n var match = scroll.query(node);\n if (match == null) return delta;\n\n if (match.prototype instanceof parchment__WEBPACK_IMPORTED_MODULE_1__[\"EmbedBlot\"]) {\n var embed = {};\n var value = match.value(node);\n\n if (value != null) {\n embed[match.blotName] = value;\n return new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a().insert(embed, match.formats(node, scroll));\n }\n } else {\n if (match.prototype instanceof parchment__WEBPACK_IMPORTED_MODULE_1__[\"BlockBlot\"] && !deltaEndsWith(delta, '\\n')) {\n delta.insert('\\n');\n }\n\n if (typeof match.formats === 'function') {\n return applyFormat(delta, match.blotName, match.formats(node, scroll));\n }\n }\n\n return delta;\n}\n\nfunction matchBreak(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n delta.insert('\\n');\n }\n\n return delta;\n}\n\nfunction matchCodeBlock(node, delta, scroll) {\n var match = scroll.query('code-block');\n var language = match ? match.formats(node, scroll) : true;\n return applyFormat(delta, 'code-block', language);\n}\n\nfunction matchIgnore() {\n return new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a();\n}\n\nfunction matchIndent(node, delta, scroll) {\n var match = scroll.query(node);\n\n if (match == null || match.blotName !== 'list' || !deltaEndsWith(delta, '\\n')) {\n return delta;\n }\n\n var indent = -1;\n var parent = node.parentNode;\n\n while (parent != null) {\n if (['OL', 'UL'].indexOf(parent.tagName) !== -1) {\n indent += 1;\n }\n\n parent = parent.parentNode;\n }\n\n if (indent <= 0) return delta;\n return delta.reduce(function (composed, op) {\n if (op.attributes && typeof op.attributes.indent === 'number') {\n return composed.push(op);\n }\n\n return composed.insert(op.insert, _objectSpread({\n indent: indent\n }, op.attributes || {}));\n }, new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a());\n}\n\nfunction matchList(node, delta) {\n var list = node.tagName === 'OL' ? 'ordered' : 'bullet';\n return applyFormat(delta, 'list', list);\n}\n\nfunction matchNewline(node, delta, scroll) {\n if (!deltaEndsWith(delta, '\\n')) {\n if (isLine(node)) {\n return delta.insert('\\n');\n }\n\n if (delta.length() > 0 && node.nextSibling) {\n var nextSibling = node.nextSibling;\n\n while (nextSibling != null) {\n if (isLine(nextSibling)) {\n return delta.insert('\\n');\n }\n\n var match = scroll.query(nextSibling);\n\n if (match && match.prototype instanceof _blots_block__WEBPACK_IMPORTED_MODULE_2__[/* BlockEmbed */ \"a\"]) {\n return delta.insert('\\n');\n }\n\n nextSibling = nextSibling.firstChild;\n }\n }\n }\n\n return delta;\n}\n\nfunction matchStyles(node, delta) {\n var formats = {};\n var style = node.style || {};\n\n if (style.fontStyle === 'italic') {\n formats.italic = true;\n }\n\n if (style.textDecoration.indexOf('underline') !== -1) {\n formats.underline = true;\n }\n\n if (style.textDecoration.indexOf('line-through') !== -1) {\n formats.strike = true;\n }\n\n if (style.fontWeight.indexOf('bold') === 0 || parseInt(style.fontWeight, 10) >= 700) {\n formats.bold = true;\n }\n\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n\n if (parseFloat(style.textIndent || 0) > 0) {\n // Could be 0.5in\n return new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a().insert('\\t').concat(delta);\n }\n\n return delta;\n}\n\nfunction matchTable(node, delta) {\n var table = node.parentNode.tagName === 'TABLE' ? node.parentNode : node.parentNode.parentNode;\n var rows = Array.from(table.querySelectorAll('tr'));\n var row = rows.indexOf(node) + 1;\n return applyFormat(delta, 'table', row);\n}\n\nfunction matchPlainText(node, delta) {\n var text = node.data || '';\n text = text.replace(/\\r\\n/g, '\\n');\n return delta.insert(text);\n}\n\nfunction matchText(node, delta) {\n var text = node.data; // Word represents empty line with  \n\n if (node.parentNode.tagName === 'O:P') {\n return delta.insert(text.trim());\n }\n\n if (text.trim().length === 0 && text.indexOf('\\n') !== -1) {\n return delta;\n }\n\n if (!isPre(node)) {\n var replacer = function replacer(collapse, match) {\n var replaced = match.replace(/[^\\u00a0]/g, ''); // \\u00a0 is nbsp;\n\n return replaced.length < 1 && collapse ? ' ' : replaced;\n };\n\n text = text.replace(/\\r\\n/g, ' ').replace(/\\n/g, ' ');\n text = text.replace(/\\s\\s+/g, replacer.bind(replacer, true)); // collapse whitespace\n\n if (node.previousSibling == null && isLine(node.parentNode) || node.previousSibling != null && isLine(node.previousSibling)) {\n text = text.replace(/^\\s+/, replacer.bind(replacer, false));\n }\n\n if (node.nextSibling == null && isLine(node.parentNode) || node.nextSibling != null && isLine(node.nextSibling)) {\n text = text.replace(/\\s+$/, replacer.bind(replacer, false));\n }\n }\n\n return delta.insert(text);\n}\n\n\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports) {\n\nmodule.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(20);\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports) {\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports) {\n\nmodule.exports = false;\n\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar requireObjectCoercible = __webpack_require__(47);\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(20);\nvar getOwnPropertyDescriptor = __webpack_require__(63).f;\nvar createNonEnumerableProperty = __webpack_require__(41);\nvar redefine = __webpack_require__(77);\nvar setGlobal = __webpack_require__(59);\nvar copyConstructorProperties = __webpack_require__(102);\nvar isForced = __webpack_require__(107);\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(55);\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return SyntaxCodeBlock; });\n/* unused harmony export CodeToken */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return Syntax; });\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(quill_delta__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);\n/* harmony import */ var _blots_inline__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(10);\n/* harmony import */ var _core_quill__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1);\n/* harmony import */ var _core_module__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(9);\n/* harmony import */ var _blots_block__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(5);\n/* harmony import */ var _blots_break__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(8);\n/* harmony import */ var _blots_cursor__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(17);\n/* harmony import */ var _blots_text__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(7);\n/* harmony import */ var _formats_code__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(13);\n/* harmony import */ var _clipboard__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(44);\n/* harmony import */ var _utils_hasWindow__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(11);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar TokenAttributor = new parchment__WEBPACK_IMPORTED_MODULE_1__[\"ClassAttributor\"]('code-token', 'hljs', {\n scope: parchment__WEBPACK_IMPORTED_MODULE_1__[\"Scope\"].INLINE\n});\n\nvar CodeToken = /*#__PURE__*/function (_Inline) {\n _inherits(CodeToken, _Inline);\n\n var _super = _createSuper(CodeToken);\n\n function CodeToken(scroll, domNode, value) {\n var _this;\n\n _classCallCheck(this, CodeToken);\n\n _this = _super.call(this, scroll, domNode, value);\n TokenAttributor.add(_this.domNode, value);\n return _this;\n }\n\n _createClass(CodeToken, [{\n key: \"format\",\n value: function format(_format, value) {\n if (_format !== CodeToken.blotName) {\n _get(_getPrototypeOf(CodeToken.prototype), \"format\", this).call(this, _format, value);\n } else if (value) {\n TokenAttributor.add(this.domNode, value);\n } else {\n TokenAttributor.remove(this.domNode);\n this.domNode.classList.remove(this.statics.className);\n }\n }\n }, {\n key: \"optimize\",\n value: function optimize() {\n var _get2;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n (_get2 = _get(_getPrototypeOf(CodeToken.prototype), \"optimize\", this)).call.apply(_get2, [this].concat(args));\n\n if (!TokenAttributor.value(this.domNode)) {\n this.unwrap();\n }\n }\n }], [{\n key: \"formats\",\n value: function formats(node, scroll) {\n while (node != null && node !== scroll.domNode) {\n if (node.classList && node.classList.contains(_formats_code__WEBPACK_IMPORTED_MODULE_9__[/* default */ \"c\"].className)) {\n return _get(_getPrototypeOf(CodeToken), \"formats\", this).call(this, node, scroll);\n }\n\n node = node.parentNode;\n }\n\n return undefined;\n }\n }]);\n\n return CodeToken;\n}(_blots_inline__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"]);\n\nCodeToken.blotName = 'code-token';\nCodeToken.className = 'ql-token';\n\nvar SyntaxCodeBlock = /*#__PURE__*/function (_CodeBlock) {\n _inherits(SyntaxCodeBlock, _CodeBlock);\n\n var _super2 = _createSuper(SyntaxCodeBlock);\n\n function SyntaxCodeBlock() {\n _classCallCheck(this, SyntaxCodeBlock);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(SyntaxCodeBlock, [{\n key: \"format\",\n value: // Syntax module will register\n function format(name, value) {\n if (name === this.statics.blotName && value) {\n this.domNode.setAttribute('data-language', value);\n } else {\n _get(_getPrototypeOf(SyntaxCodeBlock.prototype), \"format\", this).call(this, name, value);\n }\n }\n }, {\n key: \"replaceWith\",\n value: function replaceWith(name, value) {\n this.formatAt(0, this.length(), CodeToken.blotName, false);\n return _get(_getPrototypeOf(SyntaxCodeBlock.prototype), \"replaceWith\", this).call(this, name, value);\n }\n }], [{\n key: \"create\",\n value: function create(value) {\n var domNode = _get(_getPrototypeOf(SyntaxCodeBlock), \"create\", this).call(this, value);\n\n if (typeof value === 'string') {\n domNode.setAttribute('data-language', value);\n }\n\n return domNode;\n }\n }, {\n key: \"formats\",\n value: function formats(domNode) {\n return domNode.getAttribute('data-language') || 'plain';\n }\n }, {\n key: \"register\",\n value: function register() {}\n }]);\n\n return SyntaxCodeBlock;\n}(_formats_code__WEBPACK_IMPORTED_MODULE_9__[/* default */ \"c\"]);\n\nvar SyntaxCodeBlockContainer = /*#__PURE__*/function (_CodeBlockContainer) {\n _inherits(SyntaxCodeBlockContainer, _CodeBlockContainer);\n\n var _super3 = _createSuper(SyntaxCodeBlockContainer);\n\n function SyntaxCodeBlockContainer() {\n _classCallCheck(this, SyntaxCodeBlockContainer);\n\n return _super3.apply(this, arguments);\n }\n\n _createClass(SyntaxCodeBlockContainer, [{\n key: \"attach\",\n value: function attach() {\n _get(_getPrototypeOf(SyntaxCodeBlockContainer.prototype), \"attach\", this).call(this);\n\n this.forceNext = false;\n this.scroll.emitMount(this);\n }\n }, {\n key: \"format\",\n value: function format(name, value) {\n if (name === SyntaxCodeBlock.blotName) {\n this.forceNext = true;\n this.children.forEach(function (child) {\n child.format(name, value);\n });\n }\n }\n }, {\n key: \"formatAt\",\n value: function formatAt(index, length, name, value) {\n if (name === SyntaxCodeBlock.blotName) {\n this.forceNext = true;\n }\n\n _get(_getPrototypeOf(SyntaxCodeBlockContainer.prototype), \"formatAt\", this).call(this, index, length, name, value);\n }\n }, {\n key: \"highlight\",\n value: function highlight(_highlight) {\n var _this2 = this;\n\n var forced = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (this.children.head == null) return;\n var nodes = Array.from(this.domNode.childNodes).filter(function (node) {\n return node !== _this2.uiNode;\n });\n var text = \"\".concat(nodes.map(function (node) {\n return node.textContent;\n }).join('\\n'), \"\\n\");\n var language = SyntaxCodeBlock.formats(this.children.head.domNode);\n\n if (forced || this.forceNext || this.cachedText !== text) {\n if (text.trim().length > 0 || this.cachedText == null) {\n var oldDelta = this.children.reduce(function (delta, child) {\n return delta.concat(Object(_blots_block__WEBPACK_IMPORTED_MODULE_5__[/* blockDelta */ \"b\"])(child, false));\n }, new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a());\n\n var delta = _highlight(text, language);\n\n oldDelta.diff(delta).reduce(function (index, _ref) {\n var retain = _ref.retain,\n attributes = _ref.attributes;\n // Should be all retains\n if (!retain) return index;\n\n if (attributes) {\n Object.keys(attributes).forEach(function (format) {\n if ([SyntaxCodeBlock.blotName, CodeToken.blotName].indexOf(format) !== -1) {\n _this2.formatAt(index, retain, format, attributes[format]);\n }\n });\n }\n\n return index + retain;\n }, 0);\n }\n\n this.cachedText = text;\n this.forceNext = false;\n }\n }\n }, {\n key: \"html\",\n value: function html(index, length) {\n var _this$children$find = this.children.find(index),\n _this$children$find2 = _slicedToArray(_this$children$find, 1),\n codeBlock = _this$children$find2[0];\n\n var language = codeBlock ? SyntaxCodeBlock.formats(codeBlock.domNode) : 'plain';\n return \"
    \\n\").concat(this.code(index, length), \"\\n
    \");\n }\n }, {\n key: \"optimize\",\n value: function optimize(context) {\n _get(_getPrototypeOf(SyntaxCodeBlockContainer.prototype), \"optimize\", this).call(this, context);\n\n if (this.parent != null && this.children.head != null && this.uiNode != null) {\n var language = SyntaxCodeBlock.formats(this.children.head.domNode);\n\n if (language !== this.uiNode.value) {\n this.uiNode.value = language;\n }\n }\n }\n }]);\n\n return SyntaxCodeBlockContainer;\n}(_formats_code__WEBPACK_IMPORTED_MODULE_9__[/* CodeBlockContainer */ \"b\"]);\n\nSyntaxCodeBlockContainer.allowedChildren = [SyntaxCodeBlock];\nSyntaxCodeBlock.requiredContainer = SyntaxCodeBlockContainer;\nSyntaxCodeBlock.allowedChildren = [CodeToken, _blots_cursor__WEBPACK_IMPORTED_MODULE_7__[/* default */ \"a\"], _blots_text__WEBPACK_IMPORTED_MODULE_8__[/* default */ \"a\"], _blots_break__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"]];\n\nvar Syntax = /*#__PURE__*/function (_Module) {\n _inherits(Syntax, _Module);\n\n var _super4 = _createSuper(Syntax);\n\n function Syntax(quill, options) {\n var _this3;\n\n _classCallCheck(this, Syntax);\n\n _this3 = _super4.call(this, quill, options);\n\n if (_this3.options.hljs == null) {\n throw new Error('Syntax module requires highlight.js. Please include the library on the page before Quill.');\n }\n\n _this3.languages = _this3.options.languages.reduce(function (memo, _ref2) {\n var key = _ref2.key;\n memo[key] = true;\n return memo;\n }, {});\n _this3.highlightBlot = _this3.highlightBlot.bind(_assertThisInitialized(_this3));\n\n _this3.initListener();\n\n _this3.initTimer();\n\n return _this3;\n }\n\n _createClass(Syntax, [{\n key: \"initListener\",\n value: function initListener() {\n var _this4 = this;\n\n this.quill.on(_core_quill__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].events.SCROLL_BLOT_MOUNT, function (blot) {\n if (!(blot instanceof SyntaxCodeBlockContainer)) return;\n\n var select = _this4.quill.root.ownerDocument.createElement('select');\n\n _this4.options.languages.forEach(function (_ref3) {\n var key = _ref3.key,\n label = _ref3.label;\n var option = select.ownerDocument.createElement('option');\n option.textContent = label;\n option.setAttribute('value', key);\n select.appendChild(option);\n });\n\n select.addEventListener('change', function () {\n blot.format(SyntaxCodeBlock.blotName, select.value);\n\n _this4.quill.root.focus(); // Prevent scrolling\n\n\n _this4.highlight(blot, true);\n });\n\n if (blot.uiNode == null) {\n blot.attachUI(select);\n\n if (blot.children.head) {\n select.value = SyntaxCodeBlock.formats(blot.children.head.domNode);\n }\n }\n });\n }\n }, {\n key: \"initTimer\",\n value: function initTimer() {\n var _this5 = this;\n\n var timer = null;\n this.quill.on(_core_quill__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].events.SCROLL_OPTIMIZE, function () {\n clearTimeout(timer);\n timer = setTimeout(function () {\n _this5.highlight();\n\n timer = null;\n }, _this5.options.interval);\n });\n }\n }, {\n key: \"highlight\",\n value: function highlight() {\n var _this6 = this;\n\n var blot = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (this.quill.selection.composing) return;\n this.quill.update(_core_quill__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.USER);\n var range = this.quill.getSelection();\n var blots = blot == null ? this.quill.scroll.descendants(SyntaxCodeBlockContainer) : [blot];\n blots.forEach(function (container) {\n container.highlight(_this6.highlightBlot, force);\n });\n this.quill.update(_core_quill__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.SILENT);\n\n if (range != null) {\n this.quill.setSelection(range, _core_quill__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].sources.SILENT);\n }\n }\n }, {\n key: \"highlightBlot\",\n value: function highlightBlot(text) {\n var language = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'plain';\n language = this.languages[language] ? language : 'plain';\n\n if (language === 'plain') {\n return Object(_blots_text__WEBPACK_IMPORTED_MODULE_8__[/* escapeText */ \"b\"])(text).split('\\n').reduce(function (delta, line, i) {\n if (i !== 0) {\n delta.insert('\\n', _defineProperty({}, _formats_code__WEBPACK_IMPORTED_MODULE_9__[/* default */ \"c\"].blotName, language));\n }\n\n return delta.insert(line);\n }, new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a());\n }\n\n var container = this.quill.root.ownerDocument.createElement('div');\n container.classList.add(_formats_code__WEBPACK_IMPORTED_MODULE_9__[/* default */ \"c\"].className);\n container.innerHTML = this.options.hljs.highlight(language, text).value;\n return Object(_clipboard__WEBPACK_IMPORTED_MODULE_10__[/* traverse */ \"b\"])(this.quill.scroll, container, [function (node, delta) {\n var value = TokenAttributor.value(node);\n\n if (value) {\n return delta.compose(new quill_delta__WEBPACK_IMPORTED_MODULE_0___default.a().retain(delta.length(), _defineProperty({}, CodeToken.blotName, value)));\n }\n\n return delta;\n }], [function (node, delta) {\n return node.data.split('\\n').reduce(function (memo, nodeText, i) {\n if (i !== 0) memo.insert('\\n', _defineProperty({}, _formats_code__WEBPACK_IMPORTED_MODULE_9__[/* default */ \"c\"].blotName, language));\n return memo.insert(nodeText);\n }, delta);\n }], new WeakMap());\n }\n }], [{\n key: \"register\",\n value: function register() {\n _core_quill__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].register(CodeToken, true);\n _core_quill__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].register(SyntaxCodeBlock, true);\n _core_quill__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"].register(SyntaxCodeBlockContainer, true);\n }\n }]);\n\n return Syntax;\n}(_core_module__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"]);\n\nSyntax.DEFAULTS = {\n hljs: function () {\n if (Object(_utils_hasWindow__WEBPACK_IMPORTED_MODULE_11__[/* default */ \"a\"])()) {\n return window.hljs;\n }\n\n return null;\n }(),\n interval: 1000,\n languages: [{\n key: 'plain',\n label: 'Plain'\n }, {\n key: 'bash',\n label: 'Bash'\n }, {\n key: 'cpp',\n label: 'C++'\n }, {\n key: 'cs',\n label: 'C#'\n }, {\n key: 'css',\n label: 'CSS'\n }, {\n key: 'diff',\n label: 'Diff'\n }, {\n key: 'xml',\n label: 'HTML/XML'\n }, {\n key: 'java',\n label: 'Java'\n }, {\n key: 'javascript',\n label: 'Javascript'\n }, {\n key: 'markdown',\n label: 'Markdown'\n }, {\n key: 'php',\n label: 'PHP'\n }, {\n key: 'python',\n label: 'Python'\n }, {\n key: 'ruby',\n label: 'Ruby'\n }, {\n key: 'sql',\n label: 'SQL'\n }]\n};\n\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports) {\n\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.es/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isSymbol = __webpack_require__(57);\n\nmodule.exports = function (argument) {\n if (isSymbol(argument)) throw TypeError('Cannot convert a Symbol value to a string');\n return String(argument);\n};\n\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(46);\nvar USE_SYMBOL_AS_UID = __webpack_require__(69);\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return typeof $Symbol == 'function' && Object(it) instanceof $Symbol;\n};\n\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(20);\nvar setGlobal = __webpack_require__(59);\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(20);\n\nmodule.exports = function (key, value) {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toPrimitive = __webpack_require__(97);\nvar isSymbol = __webpack_require__(57);\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : String(key);\n};\n\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar shared = __webpack_require__(75);\nvar uid = __webpack_require__(76);\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(42);\nvar propertyIsEnumerableModule = __webpack_require__(100);\nvar createPropertyDescriptor = __webpack_require__(50);\nvar toIndexedObject = __webpack_require__(64);\nvar toPropertyKey = __webpack_require__(60);\nvar has = __webpack_require__(25);\nvar IE8_DOM_DEFINE = __webpack_require__(73);\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = __webpack_require__(101);\nvar requireObjectCoercible = __webpack_require__(47);\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports) {\n\nvar toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports) {\n\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Iterator_1 = __importDefault(__webpack_require__(89));\nvar Op;\n(function (Op) {\n function iterator(ops) {\n return new Iterator_1.default(ops);\n }\n Op.iterator = iterator;\n function length(op) {\n if (typeof op.delete === 'number') {\n return op.delete;\n }\n else if (typeof op.retain === 'number') {\n return op.retain;\n }\n else {\n return typeof op.insert === 'string' ? op.insert.length : 1;\n }\n }\n Op.length = length;\n})(Op || (Op = {}));\nexports.default = Op;\n\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif (true) {\n module.exports = EventEmitter;\n}\n\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = __webpack_require__(70);\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = __webpack_require__(94);\nvar fails = __webpack_require__(28);\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar NATIVE_WEAK_MAP = __webpack_require__(96);\nvar global = __webpack_require__(20);\nvar isObject = __webpack_require__(29);\nvar createNonEnumerableProperty = __webpack_require__(41);\nvar objectHas = __webpack_require__(25);\nvar shared = __webpack_require__(58);\nvar sharedKey = __webpack_require__(61);\nvar hiddenKeys = __webpack_require__(62);\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n if (wmhas.call(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (objectHas(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar store = __webpack_require__(58);\n\nvar functionToString = Function.toString;\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(42);\nvar fails = __webpack_require__(28);\nvar createElement = __webpack_require__(74);\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- requied for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(20);\nvar isObject = __webpack_require__(29);\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar IS_PURE = __webpack_require__(48);\nvar store = __webpack_require__(58);\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.16.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports) {\n\nvar id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(20);\nvar createNonEnumerableProperty = __webpack_require__(41);\nvar has = __webpack_require__(25);\nvar setGlobal = __webpack_require__(59);\nvar inspectSource = __webpack_require__(72);\nvar InternalStateModule = __webpack_require__(71);\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var state;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) {\n createNonEnumerableProperty(value, 'name', key);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(25);\nvar toIndexedObject = __webpack_require__(64);\nvar indexOf = __webpack_require__(105).indexOf;\nvar hiddenKeys = __webpack_require__(62);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(55);\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fails = __webpack_require__(28);\nvar getPrototypeOf = __webpack_require__(81);\nvar createNonEnumerableProperty = __webpack_require__(41);\nvar has = __webpack_require__(25);\nvar wellKnownSymbol = __webpack_require__(21);\nvar IS_PURE = __webpack_require__(48);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif ((!IS_PURE || NEW_ITERATOR_PROTOTYPE) && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(25);\nvar toObject = __webpack_require__(49);\nvar sharedKey = __webpack_require__(61);\nvar CORRECT_PROTOTYPE_GETTER = __webpack_require__(109);\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = __webpack_require__(30);\nvar defineProperties = __webpack_require__(110);\nvar enumBugKeys = __webpack_require__(66);\nvar hiddenKeys = __webpack_require__(62);\nvar html = __webpack_require__(112);\nvar documentCreateElement = __webpack_require__(74);\nvar sharedKey = __webpack_require__(61);\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n if (iframe.style) {\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n }\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = document.domain && activeXDocument ?\n NullProtoObjectViaActiveX(activeXDocument) : // old IE\n NullProtoObjectViaIFrame() ||\n NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar defineProperty = __webpack_require__(38).f;\nvar has = __webpack_require__(25);\nvar wellKnownSymbol = __webpack_require__(21);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar aFunction = __webpack_require__(117);\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(20);\nvar bind = __webpack_require__(84);\n\nvar call = Function.call;\n\nmodule.exports = function (CONSTRUCTOR, METHOD, length) {\n return bind(call, global[CONSTRUCTOR].prototype[METHOD], length);\n};\n\n\n/***/ }),\n/* 86 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXTERNAL MODULE: ./node_modules/core-js/features/array/from.js\nvar from = __webpack_require__(90);\n\n// EXTERNAL MODULE: ./node_modules/core-js/features/array/fill.js\nvar fill = __webpack_require__(127);\n\n// EXTERNAL MODULE: ./node_modules/core-js/features/string/ends-with.js\nvar ends_with = __webpack_require__(132);\n\n// CONCATENATED MODULE: ./polyfills.js\n// IE11 support\r\n\r\n\r\n\r\n\n// EXTERNAL MODULE: ./core.js + 1 modules\nvar core = __webpack_require__(18);\n\n// EXTERNAL MODULE: ./formats/align.js\nvar align = __webpack_require__(27);\n\n// EXTERNAL MODULE: ./formats/direction.js\nvar direction = __webpack_require__(24);\n\n// EXTERNAL MODULE: ./node_modules/parchment/src/parchment.ts + 17 modules\nvar parchment = __webpack_require__(2);\n\n// CONCATENATED MODULE: ./formats/indent.js\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\nvar IndentAttributor = /*#__PURE__*/function (_ClassAttributor) {\n _inherits(IndentAttributor, _ClassAttributor);\n\n var _super = _createSuper(IndentAttributor);\n\n function IndentAttributor() {\n _classCallCheck(this, IndentAttributor);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(IndentAttributor, [{\n key: \"add\",\n value: function add(node, value) {\n if (value === '+1' || value === '-1') {\n var indent = this.value(node) || 0;\n value = value === '+1' ? indent + 1 : indent - 1;\n }\n\n if (value === 0) {\n this.remove(node);\n return true;\n }\n\n return _get(_getPrototypeOf(IndentAttributor.prototype), \"add\", this).call(this, node, value);\n }\n }, {\n key: \"canAdd\",\n value: function canAdd(node, value) {\n return _get(_getPrototypeOf(IndentAttributor.prototype), \"canAdd\", this).call(this, node, value) || _get(_getPrototypeOf(IndentAttributor.prototype), \"canAdd\", this).call(this, node, parseInt(value, 10));\n }\n }, {\n key: \"value\",\n value: function value(node) {\n return parseInt(_get(_getPrototypeOf(IndentAttributor.prototype), \"value\", this).call(this, node), 10) || undefined; // Don't return NaN\n }\n }]);\n\n return IndentAttributor;\n}(parchment[\"ClassAttributor\"]);\n\nvar IndentClass = new IndentAttributor('indent', 'ql-indent', {\n scope: parchment[\"Scope\"].BLOCK,\n whitelist: [1, 2, 3, 4, 5, 6, 7, 8]\n});\n/* harmony default export */ var indent = (IndentClass);\n// EXTERNAL MODULE: ./blots/block.js\nvar block = __webpack_require__(5);\n\n// CONCATENATED MODULE: ./formats/blockquote.js\nfunction blockquote_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { blockquote_typeof = function _typeof(obj) { return typeof obj; }; } else { blockquote_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return blockquote_typeof(obj); }\n\nfunction blockquote_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction blockquote_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) blockquote_setPrototypeOf(subClass, superClass); }\n\nfunction blockquote_setPrototypeOf(o, p) { blockquote_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return blockquote_setPrototypeOf(o, p); }\n\nfunction blockquote_createSuper(Derived) { var hasNativeReflectConstruct = blockquote_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = blockquote_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = blockquote_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return blockquote_possibleConstructorReturn(this, result); }; }\n\nfunction blockquote_possibleConstructorReturn(self, call) { if (call && (blockquote_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return blockquote_assertThisInitialized(self); }\n\nfunction blockquote_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction blockquote_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction blockquote_getPrototypeOf(o) { blockquote_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return blockquote_getPrototypeOf(o); }\n\n\n\nvar Blockquote = /*#__PURE__*/function (_Block) {\n blockquote_inherits(Blockquote, _Block);\n\n var _super = blockquote_createSuper(Blockquote);\n\n function Blockquote() {\n blockquote_classCallCheck(this, Blockquote);\n\n return _super.apply(this, arguments);\n }\n\n return Blockquote;\n}(block[\"d\" /* default */]);\n\nBlockquote.blotName = 'blockquote';\nBlockquote.tagName = 'blockquote';\n/* harmony default export */ var blockquote = (Blockquote);\n// CONCATENATED MODULE: ./formats/header.js\nfunction header_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { header_typeof = function _typeof(obj) { return typeof obj; }; } else { header_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return header_typeof(obj); }\n\nfunction header_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction header_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction header_createClass(Constructor, protoProps, staticProps) { if (protoProps) header_defineProperties(Constructor.prototype, protoProps); if (staticProps) header_defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction header_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) header_setPrototypeOf(subClass, superClass); }\n\nfunction header_setPrototypeOf(o, p) { header_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return header_setPrototypeOf(o, p); }\n\nfunction header_createSuper(Derived) { var hasNativeReflectConstruct = header_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = header_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = header_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return header_possibleConstructorReturn(this, result); }; }\n\nfunction header_possibleConstructorReturn(self, call) { if (call && (header_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return header_assertThisInitialized(self); }\n\nfunction header_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction header_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction header_getPrototypeOf(o) { header_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return header_getPrototypeOf(o); }\n\n\n\nvar Header = /*#__PURE__*/function (_Block) {\n header_inherits(Header, _Block);\n\n var _super = header_createSuper(Header);\n\n function Header() {\n header_classCallCheck(this, Header);\n\n return _super.apply(this, arguments);\n }\n\n header_createClass(Header, null, [{\n key: \"formats\",\n value: function formats(domNode) {\n return this.tagName.indexOf(domNode.tagName) + 1;\n }\n }]);\n\n return Header;\n}(block[\"d\" /* default */]);\n\nHeader.blotName = 'header';\nHeader.tagName = ['H1', 'H2', 'H3', 'H4', 'H5', 'H6'];\n/* harmony default export */ var header = (Header);\n// EXTERNAL MODULE: ./blots/container.js\nvar container = __webpack_require__(16);\n\n// EXTERNAL MODULE: ./core/quill.js\nvar core_quill = __webpack_require__(1);\n\n// CONCATENATED MODULE: ./formats/list.js\nfunction list_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { list_typeof = function _typeof(obj) { return typeof obj; }; } else { list_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return list_typeof(obj); }\n\nfunction list_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction list_createClass(Constructor, protoProps, staticProps) { if (protoProps) list_defineProperties(Constructor.prototype, protoProps); if (staticProps) list_defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction list_get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { list_get = Reflect.get; } else { list_get = function _get(target, property, receiver) { var base = list_superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return list_get(target, property, receiver || target); }\n\nfunction list_superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = list_getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction list_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction list_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) list_setPrototypeOf(subClass, superClass); }\n\nfunction list_setPrototypeOf(o, p) { list_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return list_setPrototypeOf(o, p); }\n\nfunction list_createSuper(Derived) { var hasNativeReflectConstruct = list_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = list_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = list_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return list_possibleConstructorReturn(this, result); }; }\n\nfunction list_possibleConstructorReturn(self, call) { if (call && (list_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return list_assertThisInitialized(self); }\n\nfunction list_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction list_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction list_getPrototypeOf(o) { list_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return list_getPrototypeOf(o); }\n\n\n\n\n\nvar ListContainer = /*#__PURE__*/function (_Container) {\n list_inherits(ListContainer, _Container);\n\n var _super = list_createSuper(ListContainer);\n\n function ListContainer() {\n list_classCallCheck(this, ListContainer);\n\n return _super.apply(this, arguments);\n }\n\n return ListContainer;\n}(container[\"a\" /* default */]);\n\nListContainer.blotName = 'list-container';\nListContainer.tagName = 'OL';\n\nvar list_ListItem = /*#__PURE__*/function (_Block) {\n list_inherits(ListItem, _Block);\n\n var _super2 = list_createSuper(ListItem);\n\n function ListItem(scroll, domNode) {\n var _this;\n\n list_classCallCheck(this, ListItem);\n\n _this = _super2.call(this, scroll, domNode);\n var ui = domNode.ownerDocument.createElement('span');\n\n var listEventHandler = function listEventHandler(e) {\n if (!scroll.isEnabled()) return;\n\n var format = _this.statics.formats(domNode, scroll);\n\n if (format === 'checked') {\n _this.format('list', 'unchecked');\n\n e.preventDefault();\n } else if (format === 'unchecked') {\n _this.format('list', 'checked');\n\n e.preventDefault();\n }\n };\n\n ui.addEventListener('mousedown', listEventHandler);\n ui.addEventListener('touchstart', listEventHandler);\n\n _this.attachUI(ui);\n\n return _this;\n }\n\n list_createClass(ListItem, [{\n key: \"format\",\n value: function format(name, value) {\n if (name === this.statics.blotName && value) {\n this.domNode.setAttribute('data-list', value);\n } else {\n list_get(list_getPrototypeOf(ListItem.prototype), \"format\", this).call(this, name, value);\n }\n }\n }], [{\n key: \"create\",\n value: function create(value) {\n var node = list_get(list_getPrototypeOf(ListItem), \"create\", this).call(this);\n\n node.setAttribute('data-list', value);\n return node;\n }\n }, {\n key: \"formats\",\n value: function formats(domNode) {\n return domNode.getAttribute('data-list') || undefined;\n }\n }, {\n key: \"register\",\n value: function register() {\n core_quill[\"a\" /* default */].register(ListContainer);\n }\n }]);\n\n return ListItem;\n}(block[\"d\" /* default */]);\n\nlist_ListItem.blotName = 'list';\nlist_ListItem.tagName = 'LI';\nListContainer.allowedChildren = [list_ListItem];\nlist_ListItem.requiredContainer = ListContainer;\n\n// EXTERNAL MODULE: ./formats/background.js\nvar background = __webpack_require__(33);\n\n// EXTERNAL MODULE: ./formats/color.js\nvar color = __webpack_require__(23);\n\n// EXTERNAL MODULE: ./formats/font.js\nvar font = __webpack_require__(34);\n\n// EXTERNAL MODULE: ./formats/size.js\nvar size = __webpack_require__(35);\n\n// EXTERNAL MODULE: ./formats/bold.js\nvar bold = __webpack_require__(36);\n\n// CONCATENATED MODULE: ./formats/italic.js\nfunction italic_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { italic_typeof = function _typeof(obj) { return typeof obj; }; } else { italic_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return italic_typeof(obj); }\n\nfunction italic_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction italic_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) italic_setPrototypeOf(subClass, superClass); }\n\nfunction italic_setPrototypeOf(o, p) { italic_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return italic_setPrototypeOf(o, p); }\n\nfunction italic_createSuper(Derived) { var hasNativeReflectConstruct = italic_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = italic_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = italic_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return italic_possibleConstructorReturn(this, result); }; }\n\nfunction italic_possibleConstructorReturn(self, call) { if (call && (italic_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return italic_assertThisInitialized(self); }\n\nfunction italic_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction italic_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction italic_getPrototypeOf(o) { italic_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return italic_getPrototypeOf(o); }\n\n\n\nvar Italic = /*#__PURE__*/function (_Bold) {\n italic_inherits(Italic, _Bold);\n\n var _super = italic_createSuper(Italic);\n\n function Italic() {\n italic_classCallCheck(this, Italic);\n\n return _super.apply(this, arguments);\n }\n\n return Italic;\n}(bold[\"a\" /* default */]);\n\nItalic.blotName = 'italic';\nItalic.tagName = ['EM', 'I'];\n/* harmony default export */ var italic = (Italic);\n// EXTERNAL MODULE: ./formats/link.js\nvar formats_link = __webpack_require__(31);\n\n// EXTERNAL MODULE: ./blots/inline.js\nvar inline = __webpack_require__(10);\n\n// CONCATENATED MODULE: ./formats/script.js\nfunction script_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { script_typeof = function _typeof(obj) { return typeof obj; }; } else { script_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return script_typeof(obj); }\n\nfunction script_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction script_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction script_createClass(Constructor, protoProps, staticProps) { if (protoProps) script_defineProperties(Constructor.prototype, protoProps); if (staticProps) script_defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction script_get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { script_get = Reflect.get; } else { script_get = function _get(target, property, receiver) { var base = script_superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return script_get(target, property, receiver || target); }\n\nfunction script_superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = script_getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction script_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) script_setPrototypeOf(subClass, superClass); }\n\nfunction script_setPrototypeOf(o, p) { script_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return script_setPrototypeOf(o, p); }\n\nfunction script_createSuper(Derived) { var hasNativeReflectConstruct = script_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = script_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = script_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return script_possibleConstructorReturn(this, result); }; }\n\nfunction script_possibleConstructorReturn(self, call) { if (call && (script_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return script_assertThisInitialized(self); }\n\nfunction script_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction script_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction script_getPrototypeOf(o) { script_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return script_getPrototypeOf(o); }\n\n\n\nvar Script = /*#__PURE__*/function (_Inline) {\n script_inherits(Script, _Inline);\n\n var _super = script_createSuper(Script);\n\n function Script() {\n script_classCallCheck(this, Script);\n\n return _super.apply(this, arguments);\n }\n\n script_createClass(Script, null, [{\n key: \"create\",\n value: function create(value) {\n if (value === 'super') {\n return document.createElement('sup');\n }\n\n if (value === 'sub') {\n return document.createElement('sub');\n }\n\n return script_get(script_getPrototypeOf(Script), \"create\", this).call(this, value);\n }\n }, {\n key: \"formats\",\n value: function formats(domNode) {\n if (domNode.tagName === 'SUB') return 'sub';\n if (domNode.tagName === 'SUP') return 'super';\n return undefined;\n }\n }]);\n\n return Script;\n}(inline[\"a\" /* default */]);\n\nScript.blotName = 'script';\nScript.tagName = ['SUB', 'SUP'];\n/* harmony default export */ var script = (Script);\n// CONCATENATED MODULE: ./formats/strike.js\nfunction strike_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { strike_typeof = function _typeof(obj) { return typeof obj; }; } else { strike_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return strike_typeof(obj); }\n\nfunction strike_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction strike_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) strike_setPrototypeOf(subClass, superClass); }\n\nfunction strike_setPrototypeOf(o, p) { strike_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return strike_setPrototypeOf(o, p); }\n\nfunction strike_createSuper(Derived) { var hasNativeReflectConstruct = strike_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = strike_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = strike_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return strike_possibleConstructorReturn(this, result); }; }\n\nfunction strike_possibleConstructorReturn(self, call) { if (call && (strike_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return strike_assertThisInitialized(self); }\n\nfunction strike_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction strike_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction strike_getPrototypeOf(o) { strike_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return strike_getPrototypeOf(o); }\n\n\n\nvar Strike = /*#__PURE__*/function (_Bold) {\n strike_inherits(Strike, _Bold);\n\n var _super = strike_createSuper(Strike);\n\n function Strike() {\n strike_classCallCheck(this, Strike);\n\n return _super.apply(this, arguments);\n }\n\n return Strike;\n}(bold[\"a\" /* default */]);\n\nStrike.blotName = 'strike';\nStrike.tagName = ['S', 'STRIKE'];\n/* harmony default export */ var strike = (Strike);\n// CONCATENATED MODULE: ./formats/underline.js\nfunction underline_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { underline_typeof = function _typeof(obj) { return typeof obj; }; } else { underline_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return underline_typeof(obj); }\n\nfunction underline_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction underline_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) underline_setPrototypeOf(subClass, superClass); }\n\nfunction underline_setPrototypeOf(o, p) { underline_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return underline_setPrototypeOf(o, p); }\n\nfunction underline_createSuper(Derived) { var hasNativeReflectConstruct = underline_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = underline_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = underline_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return underline_possibleConstructorReturn(this, result); }; }\n\nfunction underline_possibleConstructorReturn(self, call) { if (call && (underline_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return underline_assertThisInitialized(self); }\n\nfunction underline_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction underline_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction underline_getPrototypeOf(o) { underline_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return underline_getPrototypeOf(o); }\n\n\n\nvar Underline = /*#__PURE__*/function (_Inline) {\n underline_inherits(Underline, _Inline);\n\n var _super = underline_createSuper(Underline);\n\n function Underline() {\n underline_classCallCheck(this, Underline);\n\n return _super.apply(this, arguments);\n }\n\n return Underline;\n}(inline[\"a\" /* default */]);\n\nUnderline.blotName = 'underline';\nUnderline.tagName = 'U';\n/* harmony default export */ var underline = (Underline);\n// EXTERNAL MODULE: ./blots/embed.js\nvar blots_embed = __webpack_require__(43);\n\n// EXTERNAL MODULE: ./utils/hasWindow.js\nvar hasWindow = __webpack_require__(11);\n\n// CONCATENATED MODULE: ./formats/formula.js\nfunction formula_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { formula_typeof = function _typeof(obj) { return typeof obj; }; } else { formula_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return formula_typeof(obj); }\n\nfunction formula_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction formula_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction formula_createClass(Constructor, protoProps, staticProps) { if (protoProps) formula_defineProperties(Constructor.prototype, protoProps); if (staticProps) formula_defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction formula_get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { formula_get = Reflect.get; } else { formula_get = function _get(target, property, receiver) { var base = formula_superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return formula_get(target, property, receiver || target); }\n\nfunction formula_superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = formula_getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction formula_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) formula_setPrototypeOf(subClass, superClass); }\n\nfunction formula_setPrototypeOf(o, p) { formula_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return formula_setPrototypeOf(o, p); }\n\nfunction formula_createSuper(Derived) { var hasNativeReflectConstruct = formula_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = formula_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = formula_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return formula_possibleConstructorReturn(this, result); }; }\n\nfunction formula_possibleConstructorReturn(self, call) { if (call && (formula_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return formula_assertThisInitialized(self); }\n\nfunction formula_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction formula_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction formula_getPrototypeOf(o) { formula_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return formula_getPrototypeOf(o); }\n\n\n\n\nvar formula_Formula = /*#__PURE__*/function (_Embed) {\n formula_inherits(Formula, _Embed);\n\n var _super = formula_createSuper(Formula);\n\n function Formula() {\n formula_classCallCheck(this, Formula);\n\n return _super.apply(this, arguments);\n }\n\n formula_createClass(Formula, [{\n key: \"html\",\n value: function html() {\n var _this$value = this.value(),\n formula = _this$value.formula;\n\n return \"\".concat(formula, \"\");\n }\n }], [{\n key: \"create\",\n value: function create(value) {\n var katex = null;\n\n if (Object(hasWindow[\"a\" /* default */])()) {\n katex = window.katex;\n }\n\n if (katex == null) {\n throw new Error('Formula module requires KaTeX.');\n }\n\n var node = formula_get(formula_getPrototypeOf(Formula), \"create\", this).call(this, value);\n\n if (typeof value === 'string') {\n katex.render(value, node, {\n throwOnError: false,\n errorColor: '#f00'\n });\n node.setAttribute('data-value', value);\n }\n\n return node;\n }\n }, {\n key: \"value\",\n value: function value(domNode) {\n return domNode.getAttribute('data-value');\n }\n }]);\n\n return Formula;\n}(blots_embed[\"a\" /* default */]);\n\nformula_Formula.blotName = 'formula';\nformula_Formula.className = 'ql-formula';\nformula_Formula.tagName = 'SPAN';\n/* harmony default export */ var formula = (formula_Formula);\n// CONCATENATED MODULE: ./formats/image.js\nfunction image_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { image_typeof = function _typeof(obj) { return typeof obj; }; } else { image_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return image_typeof(obj); }\n\nfunction image_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction image_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction image_createClass(Constructor, protoProps, staticProps) { if (protoProps) image_defineProperties(Constructor.prototype, protoProps); if (staticProps) image_defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction image_get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { image_get = Reflect.get; } else { image_get = function _get(target, property, receiver) { var base = image_superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return image_get(target, property, receiver || target); }\n\nfunction image_superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = image_getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction image_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) image_setPrototypeOf(subClass, superClass); }\n\nfunction image_setPrototypeOf(o, p) { image_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return image_setPrototypeOf(o, p); }\n\nfunction image_createSuper(Derived) { var hasNativeReflectConstruct = image_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = image_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = image_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return image_possibleConstructorReturn(this, result); }; }\n\nfunction image_possibleConstructorReturn(self, call) { if (call && (image_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return image_assertThisInitialized(self); }\n\nfunction image_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction image_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction image_getPrototypeOf(o) { image_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return image_getPrototypeOf(o); }\n\n\n\n\nvar ATTRIBUTES = ['alt', 'height', 'width'];\n\nvar image_Image = /*#__PURE__*/function (_EmbedBlot) {\n image_inherits(Image, _EmbedBlot);\n\n var _super = image_createSuper(Image);\n\n function Image() {\n image_classCallCheck(this, Image);\n\n return _super.apply(this, arguments);\n }\n\n image_createClass(Image, [{\n key: \"format\",\n value: function format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n image_get(image_getPrototypeOf(Image.prototype), \"format\", this).call(this, name, value);\n }\n }\n }], [{\n key: \"create\",\n value: function create(value) {\n var node = image_get(image_getPrototypeOf(Image), \"create\", this).call(this, value);\n\n if (typeof value === 'string') {\n node.setAttribute('src', this.sanitize(value));\n }\n\n return node;\n }\n }, {\n key: \"formats\",\n value: function formats(domNode) {\n return ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n\n return formats;\n }, {});\n }\n }, {\n key: \"match\",\n value: function match(url) {\n return /\\.(jpe?g|gif|png)$/.test(url) || /^data:image\\/.+;base64/.test(url);\n }\n }, {\n key: \"register\",\n value: function register() {\n if (Object(hasWindow[\"a\" /* default */])() && /Firefox/i.test(navigator.userAgent)) {\n setTimeout(function () {\n // Disable image resizing in Firefox\n document.execCommand('enableObjectResizing', false, false);\n }, 1);\n }\n }\n }, {\n key: \"sanitize\",\n value: function sanitize(url) {\n return Object(formats_link[\"b\" /* sanitize */])(url, ['http', 'https', 'data']) ? url : '//:0';\n }\n }, {\n key: \"value\",\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n\n return Image;\n}(parchment[\"EmbedBlot\"]);\n\nimage_Image.blotName = 'image';\nimage_Image.tagName = 'IMG';\n/* harmony default export */ var formats_image = (image_Image);\n// CONCATENATED MODULE: ./formats/video.js\nfunction video_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { video_typeof = function _typeof(obj) { return typeof obj; }; } else { video_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return video_typeof(obj); }\n\nfunction video_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction video_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction video_createClass(Constructor, protoProps, staticProps) { if (protoProps) video_defineProperties(Constructor.prototype, protoProps); if (staticProps) video_defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction video_get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { video_get = Reflect.get; } else { video_get = function _get(target, property, receiver) { var base = video_superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return video_get(target, property, receiver || target); }\n\nfunction video_superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = video_getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction video_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) video_setPrototypeOf(subClass, superClass); }\n\nfunction video_setPrototypeOf(o, p) { video_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return video_setPrototypeOf(o, p); }\n\nfunction video_createSuper(Derived) { var hasNativeReflectConstruct = video_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = video_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = video_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return video_possibleConstructorReturn(this, result); }; }\n\nfunction video_possibleConstructorReturn(self, call) { if (call && (video_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return video_assertThisInitialized(self); }\n\nfunction video_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction video_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction video_getPrototypeOf(o) { video_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return video_getPrototypeOf(o); }\n\n\n\nvar video_ATTRIBUTES = ['height', 'width'];\n\nvar video_Video = /*#__PURE__*/function (_BlockEmbed) {\n video_inherits(Video, _BlockEmbed);\n\n var _super = video_createSuper(Video);\n\n function Video() {\n video_classCallCheck(this, Video);\n\n return _super.apply(this, arguments);\n }\n\n video_createClass(Video, [{\n key: \"format\",\n value: function format(name, value) {\n if (video_ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n video_get(video_getPrototypeOf(Video.prototype), \"format\", this).call(this, name, value);\n }\n }\n }, {\n key: \"html\",\n value: function html() {\n var _this$value = this.value(),\n video = _this$value.video;\n\n return \"
    \").concat(video, \"\");\n }\n }], [{\n key: \"create\",\n value: function create(value) {\n var node = video_get(video_getPrototypeOf(Video), \"create\", this).call(this, value);\n\n node.setAttribute('frameborder', '0');\n node.setAttribute('allowfullscreen', true);\n node.setAttribute('src', this.sanitize(value));\n return node;\n }\n }, {\n key: \"formats\",\n value: function formats(domNode) {\n return video_ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n\n return formats;\n }, {});\n }\n }, {\n key: \"sanitize\",\n value: function sanitize(url) {\n return formats_link[\"a\" /* default */].sanitize(url); // eslint-disable-line import/no-named-as-default-member\n }\n }, {\n key: \"value\",\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n\n return Video;\n}(block[\"a\" /* BlockEmbed */]);\n\nvideo_Video.blotName = 'video';\nvideo_Video.className = 'ql-video';\nvideo_Video.tagName = 'IFRAME';\n/* harmony default export */ var video = (video_Video);\n// EXTERNAL MODULE: ./formats/code.js\nvar code = __webpack_require__(13);\n\n// EXTERNAL MODULE: ./modules/syntax.js\nvar syntax = __webpack_require__(54);\n\n// EXTERNAL MODULE: ./node_modules/quill-delta/dist/Delta.js\nvar Delta = __webpack_require__(0);\nvar Delta_default = /*#__PURE__*/__webpack_require__.n(Delta);\n\n// EXTERNAL MODULE: ./core/module.js\nvar core_module = __webpack_require__(9);\n\n// CONCATENATED MODULE: ./formats/table.js\nfunction table_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { table_typeof = function _typeof(obj) { return typeof obj; }; } else { table_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return table_typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction table_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction table_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction table_createClass(Constructor, protoProps, staticProps) { if (protoProps) table_defineProperties(Constructor.prototype, protoProps); if (staticProps) table_defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction table_get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { table_get = Reflect.get; } else { table_get = function _get(target, property, receiver) { var base = table_superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return table_get(target, property, receiver || target); }\n\nfunction table_superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = table_getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction table_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) table_setPrototypeOf(subClass, superClass); }\n\nfunction table_setPrototypeOf(o, p) { table_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return table_setPrototypeOf(o, p); }\n\nfunction table_createSuper(Derived) { var hasNativeReflectConstruct = table_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = table_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = table_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return table_possibleConstructorReturn(this, result); }; }\n\nfunction table_possibleConstructorReturn(self, call) { if (call && (table_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return table_assertThisInitialized(self); }\n\nfunction table_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction table_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction table_getPrototypeOf(o) { table_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return table_getPrototypeOf(o); }\n\n\n\n\nvar TableCell = /*#__PURE__*/function (_Block) {\n table_inherits(TableCell, _Block);\n\n var _super = table_createSuper(TableCell);\n\n function TableCell() {\n table_classCallCheck(this, TableCell);\n\n return _super.apply(this, arguments);\n }\n\n table_createClass(TableCell, [{\n key: \"cellOffset\",\n value: function cellOffset() {\n if (this.parent) {\n return this.parent.children.indexOf(this);\n }\n\n return -1;\n }\n }, {\n key: \"format\",\n value: function format(name, value) {\n if (name === TableCell.blotName && value) {\n this.domNode.setAttribute('data-row', value);\n } else {\n table_get(table_getPrototypeOf(TableCell.prototype), \"format\", this).call(this, name, value);\n }\n }\n }, {\n key: \"row\",\n value: function row() {\n return this.parent;\n }\n }, {\n key: \"rowOffset\",\n value: function rowOffset() {\n if (this.row()) {\n return this.row().rowOffset();\n }\n\n return -1;\n }\n }, {\n key: \"table\",\n value: function table() {\n return this.row() && this.row().table();\n }\n }], [{\n key: \"create\",\n value: function create(value) {\n var node = table_get(table_getPrototypeOf(TableCell), \"create\", this).call(this);\n\n if (value) {\n node.setAttribute('data-row', value);\n } else {\n node.setAttribute('data-row', tableId());\n }\n\n return node;\n }\n }, {\n key: \"formats\",\n value: function formats(domNode) {\n if (domNode.hasAttribute('data-row')) {\n return domNode.getAttribute('data-row');\n }\n\n return undefined;\n }\n }]);\n\n return TableCell;\n}(block[\"d\" /* default */]);\n\nTableCell.blotName = 'table';\nTableCell.tagName = ['TD', 'TH'];\n\nvar TableRow = /*#__PURE__*/function (_Container) {\n table_inherits(TableRow, _Container);\n\n var _super2 = table_createSuper(TableRow);\n\n function TableRow() {\n table_classCallCheck(this, TableRow);\n\n return _super2.apply(this, arguments);\n }\n\n table_createClass(TableRow, [{\n key: \"checkMerge\",\n value: function checkMerge() {\n if (table_get(table_getPrototypeOf(TableRow.prototype), \"checkMerge\", this).call(this) && this.next.children.head != null) {\n var thisHead = this.children.head.formats();\n var thisTail = this.children.tail.formats();\n var nextHead = this.next.children.head.formats();\n var nextTail = this.next.children.tail.formats();\n return thisHead.table === thisTail.table && thisHead.table === nextHead.table && thisHead.table === nextTail.table;\n }\n\n return false;\n }\n }, {\n key: \"optimize\",\n value: function optimize() {\n var _get2,\n _this = this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n (_get2 = table_get(table_getPrototypeOf(TableRow.prototype), \"optimize\", this)).call.apply(_get2, [this].concat(args));\n\n this.children.forEach(function (child) {\n if (child.next == null) return;\n var childFormats = child.formats();\n var nextFormats = child.next.formats();\n\n if (childFormats.table !== nextFormats.table) {\n var next = _this.splitAfter(child);\n\n if (next) {\n next.optimize();\n } // We might be able to merge with prev now\n\n\n if (_this.prev) {\n _this.prev.optimize();\n }\n }\n });\n }\n }, {\n key: \"rowOffset\",\n value: function rowOffset() {\n if (this.parent) {\n return this.parent.children.indexOf(this);\n }\n\n return -1;\n }\n }, {\n key: \"table\",\n value: function table() {\n return this.parent && this.parent.parent;\n }\n }]);\n\n return TableRow;\n}(container[\"a\" /* default */]);\n\nTableRow.blotName = 'table-row';\nTableRow.tagName = 'TR';\n\nvar TableBody = /*#__PURE__*/function (_Container2) {\n table_inherits(TableBody, _Container2);\n\n var _super3 = table_createSuper(TableBody);\n\n function TableBody() {\n table_classCallCheck(this, TableBody);\n\n return _super3.apply(this, arguments);\n }\n\n return TableBody;\n}(container[\"a\" /* default */]);\n\nTableBody.blotName = 'table-body';\nTableBody.tagName = ['TBODY', 'THEAD'];\n\nvar TableContainer = /*#__PURE__*/function (_Container3) {\n table_inherits(TableContainer, _Container3);\n\n var _super4 = table_createSuper(TableContainer);\n\n function TableContainer() {\n table_classCallCheck(this, TableContainer);\n\n return _super4.apply(this, arguments);\n }\n\n table_createClass(TableContainer, [{\n key: \"balanceCells\",\n value: function balanceCells() {\n var _this2 = this;\n\n var rows = this.descendants(TableRow);\n var maxColumns = rows.reduce(function (max, row) {\n return Math.max(row.children.length, max);\n }, 0);\n rows.forEach(function (row) {\n new Array(maxColumns - row.children.length).fill(0).forEach(function () {\n var value;\n\n if (row.children.head != null) {\n value = TableCell.formats(row.children.head.domNode);\n }\n\n var blot = _this2.scroll.create(TableCell.blotName, value);\n\n row.appendChild(blot);\n blot.optimize(); // Add break blot\n });\n });\n }\n }, {\n key: \"cells\",\n value: function cells(column) {\n return this.rows().map(function (row) {\n return row.children.at(column);\n });\n }\n }, {\n key: \"deleteColumn\",\n value: function deleteColumn(index) {\n var _this$descendant = this.descendant(TableBody),\n _this$descendant2 = _slicedToArray(_this$descendant, 1),\n body = _this$descendant2[0];\n\n if (body == null || body.children.head == null) return;\n body.children.forEach(function (row) {\n var cell = row.children.at(index);\n\n if (cell != null) {\n cell.remove();\n }\n });\n }\n }, {\n key: \"insertColumn\",\n value: function insertColumn(index) {\n var _this3 = this;\n\n var _this$descendant3 = this.descendant(TableBody),\n _this$descendant4 = _slicedToArray(_this$descendant3, 1),\n body = _this$descendant4[0];\n\n if (body == null || body.children.head == null) return;\n body.children.forEach(function (row) {\n var ref = row.children.at(index);\n var value = TableCell.formats(row.children.head.domNode);\n\n var cell = _this3.scroll.create(TableCell.blotName, value);\n\n row.insertBefore(cell, ref);\n });\n }\n }, {\n key: \"insertRow\",\n value: function insertRow(index) {\n var _this4 = this;\n\n var _this$descendant5 = this.descendant(TableBody),\n _this$descendant6 = _slicedToArray(_this$descendant5, 1),\n body = _this$descendant6[0];\n\n if (body == null || body.children.head == null) return;\n var id = tableId();\n var row = this.scroll.create(TableRow.blotName);\n body.children.head.children.forEach(function () {\n var cell = _this4.scroll.create(TableCell.blotName, id);\n\n row.appendChild(cell);\n });\n var ref = body.children.at(index);\n body.insertBefore(row, ref);\n }\n }, {\n key: \"rows\",\n value: function rows() {\n var body = this.children.head;\n if (body == null) return [];\n return body.children.map(function (row) {\n return row;\n });\n }\n }]);\n\n return TableContainer;\n}(container[\"a\" /* default */]);\n\nTableContainer.blotName = 'table-container';\nTableContainer.tagName = 'TABLE';\nTableContainer.allowedChildren = [TableBody];\nTableBody.requiredContainer = TableContainer;\nTableBody.allowedChildren = [TableRow];\nTableRow.requiredContainer = TableBody;\nTableRow.allowedChildren = [TableCell];\nTableCell.requiredContainer = TableRow;\n\nfunction tableId() {\n var id = Math.random().toString(36).slice(2, 6);\n return \"row-\".concat(id);\n}\n\n\n// CONCATENATED MODULE: ./modules/table.js\nfunction modules_table_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { modules_table_typeof = function _typeof(obj) { return typeof obj; }; } else { modules_table_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return modules_table_typeof(obj); }\n\nfunction table_slicedToArray(arr, i) { return table_arrayWithHoles(arr) || table_iterableToArrayLimit(arr, i) || table_unsupportedIterableToArray(arr, i) || table_nonIterableRest(); }\n\nfunction table_nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction table_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return table_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return table_arrayLikeToArray(o, minLen); }\n\nfunction table_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction table_iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction table_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction modules_table_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction modules_table_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction modules_table_createClass(Constructor, protoProps, staticProps) { if (protoProps) modules_table_defineProperties(Constructor.prototype, protoProps); if (staticProps) modules_table_defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction modules_table_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) modules_table_setPrototypeOf(subClass, superClass); }\n\nfunction modules_table_setPrototypeOf(o, p) { modules_table_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return modules_table_setPrototypeOf(o, p); }\n\nfunction modules_table_createSuper(Derived) { var hasNativeReflectConstruct = modules_table_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = modules_table_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = modules_table_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return modules_table_possibleConstructorReturn(this, result); }; }\n\nfunction modules_table_possibleConstructorReturn(self, call) { if (call && (modules_table_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return modules_table_assertThisInitialized(self); }\n\nfunction modules_table_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction modules_table_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction modules_table_getPrototypeOf(o) { modules_table_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return modules_table_getPrototypeOf(o); }\n\n\n\n\n\n\nvar table_Table = /*#__PURE__*/function (_Module) {\n modules_table_inherits(Table, _Module);\n\n var _super = modules_table_createSuper(Table);\n\n function Table() {\n var _this;\n\n modules_table_classCallCheck(this, Table);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _this.listenBalanceCells();\n\n return _this;\n }\n\n modules_table_createClass(Table, [{\n key: \"balanceTables\",\n value: function balanceTables() {\n this.quill.scroll.descendants(TableContainer).forEach(function (table) {\n table.balanceCells();\n });\n }\n }, {\n key: \"deleteColumn\",\n value: function deleteColumn() {\n var _this$getTable = this.getTable(),\n _this$getTable2 = table_slicedToArray(_this$getTable, 3),\n table = _this$getTable2[0],\n cell = _this$getTable2[2];\n\n if (cell == null) return;\n table.deleteColumn(cell.cellOffset());\n this.quill.update(core_quill[\"a\" /* default */].sources.USER);\n }\n }, {\n key: \"deleteRow\",\n value: function deleteRow() {\n var _this$getTable3 = this.getTable(),\n _this$getTable4 = table_slicedToArray(_this$getTable3, 2),\n row = _this$getTable4[1];\n\n if (row == null) return;\n row.remove();\n this.quill.update(core_quill[\"a\" /* default */].sources.USER);\n }\n }, {\n key: \"deleteTable\",\n value: function deleteTable() {\n var _this$getTable5 = this.getTable(),\n _this$getTable6 = table_slicedToArray(_this$getTable5, 1),\n table = _this$getTable6[0];\n\n if (table == null) return;\n var offset = table.offset();\n table.remove();\n this.quill.update(core_quill[\"a\" /* default */].sources.USER);\n this.quill.setSelection(offset, core_quill[\"a\" /* default */].sources.SILENT);\n }\n }, {\n key: \"getTable\",\n value: function getTable() {\n var range = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.quill.getSelection();\n if (range == null) return [null, null, null, -1];\n\n var _this$quill$getLine = this.quill.getLine(range.index),\n _this$quill$getLine2 = table_slicedToArray(_this$quill$getLine, 2),\n cell = _this$quill$getLine2[0],\n offset = _this$quill$getLine2[1];\n\n if (cell == null || cell.statics.blotName !== TableCell.blotName) {\n return [null, null, null, -1];\n }\n\n var row = cell.parent;\n var table = row.parent.parent;\n return [table, row, cell, offset];\n }\n }, {\n key: \"insertColumn\",\n value: function insertColumn(offset) {\n var range = this.quill.getSelection();\n\n var _this$getTable7 = this.getTable(range),\n _this$getTable8 = table_slicedToArray(_this$getTable7, 3),\n table = _this$getTable8[0],\n row = _this$getTable8[1],\n cell = _this$getTable8[2];\n\n if (cell == null) return;\n var column = cell.cellOffset();\n table.insertColumn(column + offset);\n this.quill.update(core_quill[\"a\" /* default */].sources.USER);\n var shift = row.rowOffset();\n\n if (offset === 0) {\n shift += 1;\n }\n\n this.quill.setSelection(range.index + shift, range.length, core_quill[\"a\" /* default */].sources.SILENT);\n }\n }, {\n key: \"insertColumnLeft\",\n value: function insertColumnLeft() {\n this.insertColumn(0);\n }\n }, {\n key: \"insertColumnRight\",\n value: function insertColumnRight() {\n this.insertColumn(1);\n }\n }, {\n key: \"insertRow\",\n value: function insertRow(offset) {\n var range = this.quill.getSelection();\n\n var _this$getTable9 = this.getTable(range),\n _this$getTable10 = table_slicedToArray(_this$getTable9, 3),\n table = _this$getTable10[0],\n row = _this$getTable10[1],\n cell = _this$getTable10[2];\n\n if (cell == null) return;\n var index = row.rowOffset();\n table.insertRow(index + offset);\n this.quill.update(core_quill[\"a\" /* default */].sources.USER);\n\n if (offset > 0) {\n this.quill.setSelection(range, core_quill[\"a\" /* default */].sources.SILENT);\n } else {\n this.quill.setSelection(range.index + row.children.length, range.length, core_quill[\"a\" /* default */].sources.SILENT);\n }\n }\n }, {\n key: \"insertRowAbove\",\n value: function insertRowAbove() {\n this.insertRow(0);\n }\n }, {\n key: \"insertRowBelow\",\n value: function insertRowBelow() {\n this.insertRow(1);\n }\n }, {\n key: \"insertTable\",\n value: function insertTable(rows, columns) {\n var range = this.quill.getSelection();\n if (range == null) return;\n var delta = new Array(rows).fill(0).reduce(function (memo) {\n var text = new Array(columns).fill('\\n').join('');\n return memo.insert(text, {\n table: tableId()\n });\n }, new Delta_default.a().retain(range.index));\n this.quill.updateContents(delta, core_quill[\"a\" /* default */].sources.USER);\n this.quill.setSelection(range.index, core_quill[\"a\" /* default */].sources.SILENT);\n this.balanceTables();\n }\n }, {\n key: \"listenBalanceCells\",\n value: function listenBalanceCells() {\n var _this2 = this;\n\n this.quill.on(core_quill[\"a\" /* default */].events.SCROLL_OPTIMIZE, function (mutations) {\n mutations.some(function (mutation) {\n if (['TD', 'TR', 'TBODY', 'TABLE'].indexOf(mutation.target.tagName) !== -1) {\n _this2.quill.once(core_quill[\"a\" /* default */].events.TEXT_CHANGE, function (delta, old, source) {\n if (source !== core_quill[\"a\" /* default */].sources.USER) return;\n\n _this2.balanceTables();\n });\n\n return true;\n }\n\n return false;\n });\n });\n }\n }], [{\n key: \"register\",\n value: function register() {\n core_quill[\"a\" /* default */].register(TableCell);\n core_quill[\"a\" /* default */].register(TableRow);\n core_quill[\"a\" /* default */].register(TableBody);\n core_quill[\"a\" /* default */].register(TableContainer);\n }\n }]);\n\n return Table;\n}(core_module[\"a\" /* default */]);\n\n/* harmony default export */ var modules_table = (table_Table);\n// CONCATENATED MODULE: ./blots/multilineBreak.js\nfunction multilineBreak_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { multilineBreak_typeof = function _typeof(obj) { return typeof obj; }; } else { multilineBreak_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return multilineBreak_typeof(obj); }\n\nfunction multilineBreak_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction multilineBreak_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction multilineBreak_createClass(Constructor, protoProps, staticProps) { if (protoProps) multilineBreak_defineProperties(Constructor.prototype, protoProps); if (staticProps) multilineBreak_defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction multilineBreak_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) multilineBreak_setPrototypeOf(subClass, superClass); }\n\nfunction multilineBreak_setPrototypeOf(o, p) { multilineBreak_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return multilineBreak_setPrototypeOf(o, p); }\n\nfunction multilineBreak_createSuper(Derived) { var hasNativeReflectConstruct = multilineBreak_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = multilineBreak_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = multilineBreak_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return multilineBreak_possibleConstructorReturn(this, result); }; }\n\nfunction multilineBreak_possibleConstructorReturn(self, call) { if (call && (multilineBreak_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return multilineBreak_assertThisInitialized(self); }\n\nfunction multilineBreak_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction multilineBreak_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction multilineBreak_getPrototypeOf(o) { multilineBreak_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return multilineBreak_getPrototypeOf(o); }\n\n\n\nvar MultilineBreak = /*#__PURE__*/function (_EmbedBlot) {\n multilineBreak_inherits(MultilineBreak, _EmbedBlot);\n\n var _super = multilineBreak_createSuper(MultilineBreak);\n\n function MultilineBreak() {\n multilineBreak_classCallCheck(this, MultilineBreak);\n\n return _super.apply(this, arguments);\n }\n\n multilineBreak_createClass(MultilineBreak, [{\n key: \"length\",\n value: function length() {\n return 1;\n }\n }, {\n key: \"value\",\n value: function value() {\n return '\\n';\n }\n }, {\n key: \"optimize\",\n value: function optimize() {\n if (!this.prev && !this.next) {\n this.remove();\n }\n }\n }], [{\n key: \"value\",\n value: function value() {\n return '\\n';\n }\n }]);\n\n return MultilineBreak;\n}(parchment[\"EmbedBlot\"]);\n\nMultilineBreak.blotName = 'multilineBreak';\nMultilineBreak.tagName = 'BR';\n/* harmony default export */ var multilineBreak = (MultilineBreak);\n// CONCATENATED MODULE: ./modules/multiline.js\nfunction multiline_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { multiline_typeof = function _typeof(obj) { return typeof obj; }; } else { multiline_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return multiline_typeof(obj); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction multiline_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction multiline_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction multiline_createClass(Constructor, protoProps, staticProps) { if (protoProps) multiline_defineProperties(Constructor.prototype, protoProps); if (staticProps) multiline_defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction multiline_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) multiline_setPrototypeOf(subClass, superClass); }\n\nfunction multiline_setPrototypeOf(o, p) { multiline_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return multiline_setPrototypeOf(o, p); }\n\nfunction multiline_createSuper(Derived) { var hasNativeReflectConstruct = multiline_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = multiline_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = multiline_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return multiline_possibleConstructorReturn(this, result); }; }\n\nfunction multiline_possibleConstructorReturn(self, call) { if (call && (multiline_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return multiline_assertThisInitialized(self); }\n\nfunction multiline_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction multiline_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction multiline_getPrototypeOf(o) { multiline_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return multiline_getPrototypeOf(o); }\n\n\n\n\n\n\nfunction breakMatcher(node) {\n if (!node.nextSibling && !node.previousSibling) {\n return new Delta_default.a().insert('\\n');\n }\n\n return new Delta_default.a().insert({\n multilineBreak: ''\n });\n}\n\nvar multiline_Multiline = /*#__PURE__*/function (_Module) {\n multiline_inherits(Multiline, _Module);\n\n var _super = multiline_createSuper(Multiline);\n\n function Multiline(quill, options) {\n var _this;\n\n multiline_classCallCheck(this, Multiline);\n\n var path = 'blots/multilineBreak';\n _this = _super.call(this, quill, options);\n core_quill[\"a\" /* default */].register(_defineProperty({}, path, multilineBreak), true);\n quill.keyboard.addBinding({\n key: 'enter',\n shiftKey: true\n }, _this.enterHandler.bind(multiline_assertThisInitialized(_this)));\n quill.keyboard.bindings.enter.unshift(quill.keyboard.bindings.enter.pop());\n quill.clipboard.addMatcher('BR', breakMatcher);\n return _this;\n }\n\n multiline_createClass(Multiline, [{\n key: \"enterHandler\",\n value: function enterHandler(range) {\n var currentLeaf = this.quill.getLeaf(range.index)[0];\n var nextLeaf = this.quill.getLeaf(range.index + 1)[0];\n this.quill.insertEmbed(range.index, 'multilineBreak', true, 'user');\n\n if (nextLeaf === null || currentLeaf.parent !== nextLeaf.parent) {\n this.quill.insertEmbed(range.index, 'multilineBreak', true, 'user');\n }\n\n this.quill.setSelection(range.index + 1, core_quill[\"a\" /* default */].sources.SILENT);\n }\n }]);\n\n return Multiline;\n}(core_module[\"a\" /* default */]);\n\n/* harmony default export */ var multiline = (multiline_Multiline);\n// CONCATENATED MODULE: ./quill.js\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\ncore[\"default\"].register({\n 'attributors/attribute/direction': direction[\"a\" /* DirectionAttribute */],\n 'attributors/class/align': align[\"b\" /* AlignClass */],\n 'attributors/class/background': background[\"a\" /* BackgroundClass */],\n 'attributors/class/color': color[\"b\" /* ColorClass */],\n 'attributors/class/direction': direction[\"b\" /* DirectionClass */],\n 'attributors/class/font': font[\"a\" /* FontClass */],\n 'attributors/class/size': size[\"a\" /* SizeClass */],\n 'attributors/style/align': align[\"c\" /* AlignStyle */],\n 'attributors/style/background': background[\"b\" /* BackgroundStyle */],\n 'attributors/style/color': color[\"c\" /* ColorStyle */],\n 'attributors/style/direction': direction[\"c\" /* DirectionStyle */],\n 'attributors/style/font': font[\"b\" /* FontStyle */],\n 'attributors/style/size': size[\"b\" /* SizeStyle */]\n}, true);\ncore[\"default\"].register({\n 'formats/align': align[\"b\" /* AlignClass */],\n 'formats/direction': direction[\"b\" /* DirectionClass */],\n 'formats/indent': indent,\n 'formats/background': background[\"b\" /* BackgroundStyle */],\n 'formats/color': color[\"c\" /* ColorStyle */],\n 'formats/font': font[\"a\" /* FontClass */],\n 'formats/size': size[\"a\" /* SizeClass */],\n 'formats/blockquote': blockquote,\n 'formats/code-block': code[\"c\" /* default */],\n 'formats/header': header,\n 'formats/list': list_ListItem,\n 'formats/bold': bold[\"a\" /* default */],\n 'formats/code': code[\"a\" /* Code */],\n 'formats/italic': italic,\n 'formats/link': formats_link[\"a\" /* default */],\n 'formats/script': script,\n 'formats/strike': strike,\n 'formats/underline': underline,\n 'formats/formula': formula,\n 'formats/image': formats_image,\n 'formats/video': video,\n 'modules/syntax': syntax[\"b\" /* default */],\n 'modules/table': modules_table,\n 'modules/multiline': multiline\n}, true);\n/* harmony default export */ var quill_0 = __webpack_exports__[\"default\"] = (core[\"default\"]);\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports) {\n\n/**\n * This library modifies the diff-patch-match library by Neil Fraser\n * by removing the patch and match functionality and certain advanced\n * options in the diff function. The original license is as follows:\n *\n * ===\n *\n * Diff Match and Patch\n *\n * Copyright 2006 Google Inc.\n * http://code.google.com/p/google-diff-match-patch/\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n/**\n * The data structure representing a diff is an array of tuples:\n * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']]\n * which means: delete 'Hello', add 'Goodbye' and keep ' world.'\n */\nvar DIFF_DELETE = -1;\nvar DIFF_INSERT = 1;\nvar DIFF_EQUAL = 0;\n\n\n/**\n * Find the differences between two texts. Simplifies the problem by stripping\n * any common prefix or suffix off the texts before diffing.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {Int|Object} [cursor_pos] Edit position in text1 or object with more info\n * @return {Array} Array of diff tuples.\n */\nfunction diff_main(text1, text2, cursor_pos, _fix_unicode) {\n // Check for equality\n if (text1 === text2) {\n if (text1) {\n return [[DIFF_EQUAL, text1]];\n }\n return [];\n }\n\n if (cursor_pos != null) {\n var editdiff = find_cursor_edit_diff(text1, text2, cursor_pos);\n if (editdiff) {\n return editdiff;\n }\n }\n\n // Trim off common prefix (speedup).\n var commonlength = diff_commonPrefix(text1, text2);\n var commonprefix = text1.substring(0, commonlength);\n text1 = text1.substring(commonlength);\n text2 = text2.substring(commonlength);\n\n // Trim off common suffix (speedup).\n commonlength = diff_commonSuffix(text1, text2);\n var commonsuffix = text1.substring(text1.length - commonlength);\n text1 = text1.substring(0, text1.length - commonlength);\n text2 = text2.substring(0, text2.length - commonlength);\n\n // Compute the diff on the middle block.\n var diffs = diff_compute_(text1, text2);\n\n // Restore the prefix and suffix.\n if (commonprefix) {\n diffs.unshift([DIFF_EQUAL, commonprefix]);\n }\n if (commonsuffix) {\n diffs.push([DIFF_EQUAL, commonsuffix]);\n }\n diff_cleanupMerge(diffs, _fix_unicode);\n return diffs;\n};\n\n\n/**\n * Find the differences between two texts. Assumes that the texts do not\n * have any common prefix or suffix.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_compute_(text1, text2) {\n var diffs;\n\n if (!text1) {\n // Just add some text (speedup).\n return [[DIFF_INSERT, text2]];\n }\n\n if (!text2) {\n // Just delete some text (speedup).\n return [[DIFF_DELETE, text1]];\n }\n\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n var i = longtext.indexOf(shorttext);\n if (i !== -1) {\n // Shorter text is inside the longer text (speedup).\n diffs = [\n [DIFF_INSERT, longtext.substring(0, i)],\n [DIFF_EQUAL, shorttext],\n [DIFF_INSERT, longtext.substring(i + shorttext.length)]\n ];\n // Swap insertions for deletions if diff is reversed.\n if (text1.length > text2.length) {\n diffs[0][0] = diffs[2][0] = DIFF_DELETE;\n }\n return diffs;\n }\n\n if (shorttext.length === 1) {\n // Single character string.\n // After the previous speedup, the character can't be an equality.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n }\n\n // Check to see if the problem can be split in two.\n var hm = diff_halfMatch_(text1, text2);\n if (hm) {\n // A half-match was found, sort out the return data.\n var text1_a = hm[0];\n var text1_b = hm[1];\n var text2_a = hm[2];\n var text2_b = hm[3];\n var mid_common = hm[4];\n // Send both pairs off for separate processing.\n var diffs_a = diff_main(text1_a, text2_a);\n var diffs_b = diff_main(text1_b, text2_b);\n // Merge the results.\n return diffs_a.concat([[DIFF_EQUAL, mid_common]], diffs_b);\n }\n\n return diff_bisect_(text1, text2);\n};\n\n\n/**\n * Find the 'middle snake' of a diff, split the problem in two\n * and return the recursively constructed diff.\n * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n * @private\n */\nfunction diff_bisect_(text1, text2) {\n // Cache the text lengths to prevent multiple calls.\n var text1_length = text1.length;\n var text2_length = text2.length;\n var max_d = Math.ceil((text1_length + text2_length) / 2);\n var v_offset = max_d;\n var v_length = 2 * max_d;\n var v1 = new Array(v_length);\n var v2 = new Array(v_length);\n // Setting all elements to -1 is faster in Chrome & Firefox than mixing\n // integers and undefined.\n for (var x = 0; x < v_length; x++) {\n v1[x] = -1;\n v2[x] = -1;\n }\n v1[v_offset + 1] = 0;\n v2[v_offset + 1] = 0;\n var delta = text1_length - text2_length;\n // If the total number of characters is odd, then the front path will collide\n // with the reverse path.\n var front = (delta % 2 !== 0);\n // Offsets for start and end of k loop.\n // Prevents mapping of space beyond the grid.\n var k1start = 0;\n var k1end = 0;\n var k2start = 0;\n var k2end = 0;\n for (var d = 0; d < max_d; d++) {\n // Walk the front path one step.\n for (var k1 = -d + k1start; k1 <= d - k1end; k1 += 2) {\n var k1_offset = v_offset + k1;\n var x1;\n if (k1 === -d || (k1 !== d && v1[k1_offset - 1] < v1[k1_offset + 1])) {\n x1 = v1[k1_offset + 1];\n } else {\n x1 = v1[k1_offset - 1] + 1;\n }\n var y1 = x1 - k1;\n while (\n x1 < text1_length && y1 < text2_length &&\n text1.charAt(x1) === text2.charAt(y1)\n ) {\n x1++;\n y1++;\n }\n v1[k1_offset] = x1;\n if (x1 > text1_length) {\n // Ran off the right of the graph.\n k1end += 2;\n } else if (y1 > text2_length) {\n // Ran off the bottom of the graph.\n k1start += 2;\n } else if (front) {\n var k2_offset = v_offset + delta - k1;\n if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] !== -1) {\n // Mirror x2 onto top-left coordinate system.\n var x2 = text1_length - v2[k2_offset];\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n\n // Walk the reverse path one step.\n for (var k2 = -d + k2start; k2 <= d - k2end; k2 += 2) {\n var k2_offset = v_offset + k2;\n var x2;\n if (k2 === -d || (k2 !== d && v2[k2_offset - 1] < v2[k2_offset + 1])) {\n x2 = v2[k2_offset + 1];\n } else {\n x2 = v2[k2_offset - 1] + 1;\n }\n var y2 = x2 - k2;\n while (\n x2 < text1_length && y2 < text2_length &&\n text1.charAt(text1_length - x2 - 1) === text2.charAt(text2_length - y2 - 1)\n ) {\n x2++;\n y2++;\n }\n v2[k2_offset] = x2;\n if (x2 > text1_length) {\n // Ran off the left of the graph.\n k2end += 2;\n } else if (y2 > text2_length) {\n // Ran off the top of the graph.\n k2start += 2;\n } else if (!front) {\n var k1_offset = v_offset + delta - k2;\n if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] !== -1) {\n var x1 = v1[k1_offset];\n var y1 = v_offset + x1 - k1_offset;\n // Mirror x2 onto top-left coordinate system.\n x2 = text1_length - x2;\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n }\n // Diff took too long and hit the deadline or\n // number of diffs equals number of characters, no commonality at all.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n};\n\n\n/**\n * Given the location of the 'middle snake', split the diff in two parts\n * and recurse.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {number} x Index of split point in text1.\n * @param {number} y Index of split point in text2.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_bisectSplit_(text1, text2, x, y) {\n var text1a = text1.substring(0, x);\n var text2a = text2.substring(0, y);\n var text1b = text1.substring(x);\n var text2b = text2.substring(y);\n\n // Compute both diffs serially.\n var diffs = diff_main(text1a, text2a);\n var diffsb = diff_main(text1b, text2b);\n\n return diffs.concat(diffsb);\n};\n\n\n/**\n * Determine the common prefix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the start of each\n * string.\n */\nfunction diff_commonPrefix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 || text1.charAt(0) !== text2.charAt(0)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerstart = 0;\n while (pointermin < pointermid) {\n if (\n text1.substring(pointerstart, pointermid) ==\n text2.substring(pointerstart, pointermid)\n ) {\n pointermin = pointermid;\n pointerstart = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n\n if (is_surrogate_pair_start(text1.charCodeAt(pointermid - 1))) {\n pointermid--;\n }\n\n return pointermid;\n};\n\n\n/**\n * Determine the common suffix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the end of each string.\n */\nfunction diff_commonSuffix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 || text1.slice(-1) !== text2.slice(-1)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerend = 0;\n while (pointermin < pointermid) {\n if (\n text1.substring(text1.length - pointermid, text1.length - pointerend) ==\n text2.substring(text2.length - pointermid, text2.length - pointerend)\n ) {\n pointermin = pointermid;\n pointerend = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n\n if (is_surrogate_pair_end(text1.charCodeAt(text1.length - pointermid))) {\n pointermid--;\n }\n\n return pointermid;\n};\n\n\n/**\n * Do the two texts share a substring which is at least half the length of the\n * longer text?\n * This speedup can produce non-minimal diffs.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {Array.} Five element Array, containing the prefix of\n * text1, the suffix of text1, the prefix of text2, the suffix of\n * text2 and the common middle. Or null if there was no match.\n */\nfunction diff_halfMatch_(text1, text2) {\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n if (longtext.length < 4 || shorttext.length * 2 < longtext.length) {\n return null; // Pointless.\n }\n\n /**\n * Does a substring of shorttext exist within longtext such that the substring\n * is at least half the length of longtext?\n * Closure, but does not reference any external variables.\n * @param {string} longtext Longer string.\n * @param {string} shorttext Shorter string.\n * @param {number} i Start index of quarter length substring within longtext.\n * @return {Array.} Five element Array, containing the prefix of\n * longtext, the suffix of longtext, the prefix of shorttext, the suffix\n * of shorttext and the common middle. Or null if there was no match.\n * @private\n */\n function diff_halfMatchI_(longtext, shorttext, i) {\n // Start with a 1/4 length substring at position i as a seed.\n var seed = longtext.substring(i, i + Math.floor(longtext.length / 4));\n var j = -1;\n var best_common = '';\n var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b;\n while ((j = shorttext.indexOf(seed, j + 1)) !== -1) {\n var prefixLength = diff_commonPrefix(\n longtext.substring(i), shorttext.substring(j));\n var suffixLength = diff_commonSuffix(\n longtext.substring(0, i), shorttext.substring(0, j));\n if (best_common.length < suffixLength + prefixLength) {\n best_common = shorttext.substring(\n j - suffixLength, j) + shorttext.substring(j, j + prefixLength);\n best_longtext_a = longtext.substring(0, i - suffixLength);\n best_longtext_b = longtext.substring(i + prefixLength);\n best_shorttext_a = shorttext.substring(0, j - suffixLength);\n best_shorttext_b = shorttext.substring(j + prefixLength);\n }\n }\n if (best_common.length * 2 >= longtext.length) {\n return [\n best_longtext_a, best_longtext_b,\n best_shorttext_a, best_shorttext_b, best_common\n ];\n } else {\n return null;\n }\n }\n\n // First check if the second quarter is the seed for a half-match.\n var hm1 = diff_halfMatchI_(longtext, shorttext, Math.ceil(longtext.length / 4));\n // Check again based on the third quarter.\n var hm2 = diff_halfMatchI_(longtext, shorttext, Math.ceil(longtext.length / 2));\n var hm;\n if (!hm1 && !hm2) {\n return null;\n } else if (!hm2) {\n hm = hm1;\n } else if (!hm1) {\n hm = hm2;\n } else {\n // Both matched. Select the longest.\n hm = hm1[4].length > hm2[4].length ? hm1 : hm2;\n }\n\n // A half-match was found, sort out the return data.\n var text1_a, text1_b, text2_a, text2_b;\n if (text1.length > text2.length) {\n text1_a = hm[0];\n text1_b = hm[1];\n text2_a = hm[2];\n text2_b = hm[3];\n } else {\n text2_a = hm[0];\n text2_b = hm[1];\n text1_a = hm[2];\n text1_b = hm[3];\n }\n var mid_common = hm[4];\n return [text1_a, text1_b, text2_a, text2_b, mid_common];\n};\n\n\n/**\n * Reorder and merge like edit sections. Merge equalities.\n * Any edit section can move as long as it doesn't cross an equality.\n * @param {Array} diffs Array of diff tuples.\n * @param {boolean} fix_unicode Whether to normalize to a unicode-correct diff\n */\nfunction diff_cleanupMerge(diffs, fix_unicode) {\n diffs.push([DIFF_EQUAL, '']); // Add a dummy entry at the end.\n var pointer = 0;\n var count_delete = 0;\n var count_insert = 0;\n var text_delete = '';\n var text_insert = '';\n var commonlength;\n while (pointer < diffs.length) {\n if (pointer < diffs.length - 1 && !diffs[pointer][1]) {\n diffs.splice(pointer, 1);\n continue;\n }\n switch (diffs[pointer][0]) {\n case DIFF_INSERT:\n\n count_insert++;\n text_insert += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_DELETE:\n count_delete++;\n text_delete += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_EQUAL:\n var previous_equality = pointer - count_insert - count_delete - 1;\n if (fix_unicode) {\n // prevent splitting of unicode surrogate pairs. when fix_unicode is true,\n // we assume that the old and new text in the diff are complete and correct\n // unicode-encoded JS strings, but the tuple boundaries may fall between\n // surrogate pairs. we fix this by shaving off stray surrogates from the end\n // of the previous equality and the beginning of this equality. this may create\n // empty equalities or a common prefix or suffix. for example, if AB and AC are\n // emojis, `[[0, 'A'], [-1, 'BA'], [0, 'C']]` would turn into deleting 'ABAC' and\n // inserting 'AC', and then the common suffix 'AC' will be eliminated. in this\n // particular case, both equalities go away, we absorb any previous inequalities,\n // and we keep scanning for the next equality before rewriting the tuples.\n if (previous_equality >= 0 && ends_with_pair_start(diffs[previous_equality][1])) {\n var stray = diffs[previous_equality][1].slice(-1);\n diffs[previous_equality][1] = diffs[previous_equality][1].slice(0, -1);\n text_delete = stray + text_delete;\n text_insert = stray + text_insert;\n if (!diffs[previous_equality][1]) {\n // emptied out previous equality, so delete it and include previous delete/insert\n diffs.splice(previous_equality, 1);\n pointer--;\n var k = previous_equality - 1;\n if (diffs[k] && diffs[k][0] === DIFF_INSERT) {\n count_insert++;\n text_insert = diffs[k][1] + text_insert;\n k--;\n }\n if (diffs[k] && diffs[k][0] === DIFF_DELETE) {\n count_delete++;\n text_delete = diffs[k][1] + text_delete;\n k--;\n }\n previous_equality = k;\n }\n }\n if (starts_with_pair_end(diffs[pointer][1])) {\n var stray = diffs[pointer][1].charAt(0);\n diffs[pointer][1] = diffs[pointer][1].slice(1);\n text_delete += stray;\n text_insert += stray;\n }\n }\n if (pointer < diffs.length - 1 && !diffs[pointer][1]) {\n // for empty equality not at end, wait for next equality\n diffs.splice(pointer, 1);\n break;\n }\n if (text_delete.length > 0 || text_insert.length > 0) {\n // note that diff_commonPrefix and diff_commonSuffix are unicode-aware\n if (text_delete.length > 0 && text_insert.length > 0) {\n // Factor out any common prefixes.\n commonlength = diff_commonPrefix(text_insert, text_delete);\n if (commonlength !== 0) {\n if (previous_equality >= 0) {\n diffs[previous_equality][1] += text_insert.substring(0, commonlength);\n } else {\n diffs.splice(0, 0, [DIFF_EQUAL, text_insert.substring(0, commonlength)]);\n pointer++;\n }\n text_insert = text_insert.substring(commonlength);\n text_delete = text_delete.substring(commonlength);\n }\n // Factor out any common suffixes.\n commonlength = diff_commonSuffix(text_insert, text_delete);\n if (commonlength !== 0) {\n diffs[pointer][1] =\n text_insert.substring(text_insert.length - commonlength) + diffs[pointer][1];\n text_insert = text_insert.substring(0, text_insert.length - commonlength);\n text_delete = text_delete.substring(0, text_delete.length - commonlength);\n }\n }\n // Delete the offending records and add the merged ones.\n var n = count_insert + count_delete;\n if (text_delete.length === 0 && text_insert.length === 0) {\n diffs.splice(pointer - n, n);\n pointer = pointer - n;\n } else if (text_delete.length === 0) {\n diffs.splice(pointer - n, n, [DIFF_INSERT, text_insert]);\n pointer = pointer - n + 1;\n } else if (text_insert.length === 0) {\n diffs.splice(pointer - n, n, [DIFF_DELETE, text_delete]);\n pointer = pointer - n + 1;\n } else {\n diffs.splice(pointer - n, n, [DIFF_DELETE, text_delete], [DIFF_INSERT, text_insert]);\n pointer = pointer - n + 2;\n }\n }\n if (pointer !== 0 && diffs[pointer - 1][0] === DIFF_EQUAL) {\n // Merge this equality with the previous one.\n diffs[pointer - 1][1] += diffs[pointer][1];\n diffs.splice(pointer, 1);\n } else {\n pointer++;\n }\n count_insert = 0;\n count_delete = 0;\n text_delete = '';\n text_insert = '';\n break;\n }\n }\n if (diffs[diffs.length - 1][1] === '') {\n diffs.pop(); // Remove the dummy entry at the end.\n }\n\n // Second pass: look for single edits surrounded on both sides by equalities\n // which can be shifted sideways to eliminate an equality.\n // e.g: ABAC -> ABAC\n var changes = false;\n pointer = 1;\n // Intentionally ignore the first and last element (don't need checking).\n while (pointer < diffs.length - 1) {\n if (diffs[pointer - 1][0] === DIFF_EQUAL &&\n diffs[pointer + 1][0] === DIFF_EQUAL) {\n // This is a single edit surrounded by equalities.\n if (diffs[pointer][1].substring(diffs[pointer][1].length -\n diffs[pointer - 1][1].length) === diffs[pointer - 1][1]) {\n // Shift the edit over the previous equality.\n diffs[pointer][1] = diffs[pointer - 1][1] +\n diffs[pointer][1].substring(0, diffs[pointer][1].length -\n diffs[pointer - 1][1].length);\n diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1];\n diffs.splice(pointer - 1, 1);\n changes = true;\n } else if (diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) ==\n diffs[pointer + 1][1]) {\n // Shift the edit over the next equality.\n diffs[pointer - 1][1] += diffs[pointer + 1][1];\n diffs[pointer][1] =\n diffs[pointer][1].substring(diffs[pointer + 1][1].length) +\n diffs[pointer + 1][1];\n diffs.splice(pointer + 1, 1);\n changes = true;\n }\n }\n pointer++;\n }\n // If shifts were made, the diff needs reordering and another shift sweep.\n if (changes) {\n diff_cleanupMerge(diffs, fix_unicode);\n }\n};\n\nfunction is_surrogate_pair_start(charCode) {\n return charCode >= 0xD800 && charCode <= 0xDBFF;\n}\n\nfunction is_surrogate_pair_end(charCode) {\n return charCode >= 0xDC00 && charCode <= 0xDFFF;\n}\n\nfunction starts_with_pair_end(str) {\n return is_surrogate_pair_end(str.charCodeAt(0));\n}\n\nfunction ends_with_pair_start(str) {\n return is_surrogate_pair_start(str.charCodeAt(str.length - 1));\n}\n\nfunction remove_empty_tuples(tuples) {\n var ret = [];\n for (var i = 0; i < tuples.length; i++) {\n if (tuples[i][1].length > 0) {\n ret.push(tuples[i]);\n }\n }\n return ret;\n}\n\nfunction make_edit_splice(before, oldMiddle, newMiddle, after) {\n if (ends_with_pair_start(before) || starts_with_pair_end(after)) {\n return null;\n }\n return remove_empty_tuples([\n [DIFF_EQUAL, before],\n [DIFF_DELETE, oldMiddle],\n [DIFF_INSERT, newMiddle],\n [DIFF_EQUAL, after]\n ]);\n}\n\nfunction find_cursor_edit_diff(oldText, newText, cursor_pos) {\n // note: this runs after equality check has ruled out exact equality\n var oldRange = typeof cursor_pos === 'number' ?\n { index: cursor_pos, length: 0 } : cursor_pos.oldRange;\n var newRange = typeof cursor_pos === 'number' ?\n null : cursor_pos.newRange;\n // take into account the old and new selection to generate the best diff\n // possible for a text edit. for example, a text change from \"xxx\" to \"xx\"\n // could be a delete or forwards-delete of any one of the x's, or the\n // result of selecting two of the x's and typing \"x\".\n var oldLength = oldText.length;\n var newLength = newText.length;\n if (oldRange.length === 0 && (newRange === null || newRange.length === 0)) {\n // see if we have an insert or delete before or after cursor\n var oldCursor = oldRange.index;\n var oldBefore = oldText.slice(0, oldCursor);\n var oldAfter = oldText.slice(oldCursor);\n var maybeNewCursor = newRange ? newRange.index : null;\n editBefore: {\n // is this an insert or delete right before oldCursor?\n var newCursor = oldCursor + newLength - oldLength;\n if (maybeNewCursor !== null && maybeNewCursor !== newCursor) {\n break editBefore;\n }\n if (newCursor < 0 || newCursor > newLength) {\n break editBefore;\n }\n var newBefore = newText.slice(0, newCursor);\n var newAfter = newText.slice(newCursor);\n if (newAfter !== oldAfter) {\n break editBefore;\n }\n var prefixLength = Math.min(oldCursor, newCursor);\n var oldPrefix = oldBefore.slice(0, prefixLength);\n var newPrefix = newBefore.slice(0, prefixLength);\n if (oldPrefix !== newPrefix) {\n break editBefore;\n }\n var oldMiddle = oldBefore.slice(prefixLength);\n var newMiddle = newBefore.slice(prefixLength);\n return make_edit_splice(oldPrefix, oldMiddle, newMiddle, oldAfter);\n }\n editAfter: {\n // is this an insert or delete right after oldCursor?\n if (maybeNewCursor !== null && maybeNewCursor !== oldCursor) {\n break editAfter;\n }\n var cursor = oldCursor;\n var newBefore = newText.slice(0, cursor);\n var newAfter = newText.slice(cursor);\n if (newBefore !== oldBefore) {\n break editAfter;\n }\n var suffixLength = Math.min(oldLength - cursor, newLength - cursor);\n var oldSuffix = oldAfter.slice(oldAfter.length - suffixLength);\n var newSuffix = newAfter.slice(newAfter.length - suffixLength);\n if (oldSuffix !== newSuffix) {\n break editAfter;\n }\n var oldMiddle = oldAfter.slice(0, oldAfter.length - suffixLength);\n var newMiddle = newAfter.slice(0, newAfter.length - suffixLength);\n return make_edit_splice(oldBefore, oldMiddle, newMiddle, oldSuffix);\n }\n }\n if (oldRange.length > 0 && newRange && newRange.length === 0) {\n replaceRange: {\n // see if diff could be a splice of the old selection range\n var oldPrefix = oldText.slice(0, oldRange.index);\n var oldSuffix = oldText.slice(oldRange.index + oldRange.length);\n var prefixLength = oldPrefix.length;\n var suffixLength = oldSuffix.length;\n if (newLength < prefixLength + suffixLength) {\n break replaceRange;\n }\n var newPrefix = newText.slice(0, prefixLength);\n var newSuffix = newText.slice(newLength - suffixLength);\n if (oldPrefix !== newPrefix || oldSuffix !== newSuffix) {\n break replaceRange;\n }\n var oldMiddle = oldText.slice(prefixLength, oldLength - suffixLength);\n var newMiddle = newText.slice(prefixLength, newLength - suffixLength);\n return make_edit_splice(oldPrefix, oldMiddle, newMiddle, oldSuffix);\n }\n }\n\n return null;\n}\n\nfunction diff(text1, text2, cursor_pos) {\n // only pass fix_unicode=true at the top level, not when diff_main is\n // recursively invoked\n return diff_main(text1, text2, cursor_pos, true);\n}\n\ndiff.INSERT = DIFF_INSERT;\ndiff.DELETE = DIFF_DELETE;\ndiff.EQUAL = DIFF_EQUAL;\n\nmodule.exports = diff;\n\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar lodash_clonedeep_1 = __importDefault(__webpack_require__(12));\nvar lodash_isequal_1 = __importDefault(__webpack_require__(22));\nvar AttributeMap;\n(function (AttributeMap) {\n function compose(a, b, keepNull) {\n if (a === void 0) { a = {}; }\n if (b === void 0) { b = {}; }\n if (typeof a !== 'object') {\n a = {};\n }\n if (typeof b !== 'object') {\n b = {};\n }\n var attributes = lodash_clonedeep_1.default(b);\n if (!keepNull) {\n attributes = Object.keys(attributes).reduce(function (copy, key) {\n if (attributes[key] != null) {\n copy[key] = attributes[key];\n }\n return copy;\n }, {});\n }\n for (var key in a) {\n if (a[key] !== undefined && b[key] === undefined) {\n attributes[key] = a[key];\n }\n }\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n AttributeMap.compose = compose;\n function diff(a, b) {\n if (a === void 0) { a = {}; }\n if (b === void 0) { b = {}; }\n if (typeof a !== 'object') {\n a = {};\n }\n if (typeof b !== 'object') {\n b = {};\n }\n var attributes = Object.keys(a)\n .concat(Object.keys(b))\n .reduce(function (attrs, key) {\n if (!lodash_isequal_1.default(a[key], b[key])) {\n attrs[key] = b[key] === undefined ? null : b[key];\n }\n return attrs;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n AttributeMap.diff = diff;\n function invert(attr, base) {\n if (attr === void 0) { attr = {}; }\n if (base === void 0) { base = {}; }\n attr = attr || {};\n var baseInverted = Object.keys(base).reduce(function (memo, key) {\n if (base[key] !== attr[key] && attr[key] !== undefined) {\n memo[key] = base[key];\n }\n return memo;\n }, {});\n return Object.keys(attr).reduce(function (memo, key) {\n if (attr[key] !== base[key] && base[key] === undefined) {\n memo[key] = null;\n }\n return memo;\n }, baseInverted);\n }\n AttributeMap.invert = invert;\n function transform(a, b, priority) {\n if (priority === void 0) { priority = false; }\n if (typeof a !== 'object') {\n return b;\n }\n if (typeof b !== 'object') {\n return undefined;\n }\n if (!priority) {\n return b; // b simply overwrites us without priority\n }\n var attributes = Object.keys(b).reduce(function (attrs, key) {\n if (a[key] === undefined) {\n attrs[key] = b[key]; // null is a valid value\n }\n return attrs;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n AttributeMap.transform = transform;\n})(AttributeMap || (AttributeMap = {}));\nexports.default = AttributeMap;\n\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Op_1 = __importDefault(__webpack_require__(67));\nvar Iterator = /** @class */ (function () {\n function Iterator(ops) {\n this.ops = ops;\n this.index = 0;\n this.offset = 0;\n }\n Iterator.prototype.hasNext = function () {\n return this.peekLength() < Infinity;\n };\n Iterator.prototype.next = function (length) {\n if (!length) {\n length = Infinity;\n }\n var nextOp = this.ops[this.index];\n if (nextOp) {\n var offset = this.offset;\n var opLength = Op_1.default.length(nextOp);\n if (length >= opLength - offset) {\n length = opLength - offset;\n this.index += 1;\n this.offset = 0;\n }\n else {\n this.offset += length;\n }\n if (typeof nextOp.delete === 'number') {\n return { delete: length };\n }\n else {\n var retOp = {};\n if (nextOp.attributes) {\n retOp.attributes = nextOp.attributes;\n }\n if (typeof nextOp.retain === 'number') {\n retOp.retain = length;\n }\n else if (typeof nextOp.insert === 'string') {\n retOp.insert = nextOp.insert.substr(offset, length);\n }\n else {\n // offset should === 0, length should === 1\n retOp.insert = nextOp.insert;\n }\n return retOp;\n }\n }\n else {\n return { retain: Infinity };\n }\n };\n Iterator.prototype.peek = function () {\n return this.ops[this.index];\n };\n Iterator.prototype.peekLength = function () {\n if (this.ops[this.index]) {\n // Should never return 0 if our index is being managed correctly\n return Op_1.default.length(this.ops[this.index]) - this.offset;\n }\n else {\n return Infinity;\n }\n };\n Iterator.prototype.peekType = function () {\n if (this.ops[this.index]) {\n if (typeof this.ops[this.index].delete === 'number') {\n return 'delete';\n }\n else if (typeof this.ops[this.index].retain === 'number') {\n return 'retain';\n }\n else {\n return 'insert';\n }\n }\n return 'retain';\n };\n Iterator.prototype.rest = function () {\n if (!this.hasNext()) {\n return [];\n }\n else if (this.offset === 0) {\n return this.ops.slice(this.index);\n }\n else {\n var offset = this.offset;\n var index = this.index;\n var next = this.next();\n var rest = this.ops.slice(this.index);\n this.offset = offset;\n this.index = index;\n return [next].concat(rest);\n }\n };\n return Iterator;\n}());\nexports.default = Iterator;\n\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar parent = __webpack_require__(91);\n\nmodule.exports = parent;\n\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(92);\n__webpack_require__(115);\nvar path = __webpack_require__(126);\n\nmodule.exports = path.Array.from;\n\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar charAt = __webpack_require__(93).charAt;\nvar toString = __webpack_require__(56);\nvar InternalStateModule = __webpack_require__(71);\nvar defineIterator = __webpack_require__(99);\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(55);\nvar toString = __webpack_require__(56);\nvar requireObjectCoercible = __webpack_require__(47);\n\n// `String.prototype.codePointAt` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(20);\nvar userAgent = __webpack_require__(95);\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] < 4 ? 1 : match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(46);\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(20);\nvar inspectSource = __webpack_require__(72);\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(29);\nvar isSymbol = __webpack_require__(57);\nvar ordinaryToPrimitive = __webpack_require__(98);\nvar wellKnownSymbol = __webpack_require__(21);\n\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = input[TO_PRIMITIVE];\n var result;\n if (exoticToPrim !== undefined) {\n if (pref === undefined) pref = 'default';\n result = exoticToPrim.call(input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(29);\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (pref !== 'string' && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(51);\nvar createIteratorConstructor = __webpack_require__(108);\nvar getPrototypeOf = __webpack_require__(81);\nvar setPrototypeOf = __webpack_require__(113);\nvar setToStringTag = __webpack_require__(83);\nvar createNonEnumerableProperty = __webpack_require__(41);\nvar redefine = __webpack_require__(77);\nvar wellKnownSymbol = __webpack_require__(21);\nvar IS_PURE = __webpack_require__(48);\nvar Iterators = __webpack_require__(53);\nvar IteratorsCore = __webpack_require__(80);\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(28);\nvar classof = __webpack_require__(65);\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(25);\nvar ownKeys = __webpack_require__(103);\nvar getOwnPropertyDescriptorModule = __webpack_require__(63);\nvar definePropertyModule = __webpack_require__(38);\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(46);\nvar getOwnPropertyNamesModule = __webpack_require__(104);\nvar getOwnPropertySymbolsModule = __webpack_require__(106);\nvar anObject = __webpack_require__(30);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar internalObjectKeys = __webpack_require__(78);\nvar enumBugKeys = __webpack_require__(66);\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toIndexedObject = __webpack_require__(64);\nvar toLength = __webpack_require__(52);\nvar toAbsoluteIndex = __webpack_require__(79);\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports) {\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(28);\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar IteratorPrototype = __webpack_require__(80).IteratorPrototype;\nvar create = __webpack_require__(82);\nvar createPropertyDescriptor = __webpack_require__(50);\nvar setToStringTag = __webpack_require__(83);\nvar Iterators = __webpack_require__(53);\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(28);\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n\n\n/***/ }),\n/* 110 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(42);\nvar definePropertyModule = __webpack_require__(38);\nvar anObject = __webpack_require__(30);\nvar objectKeys = __webpack_require__(111);\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n\n\n/***/ }),\n/* 111 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar internalObjectKeys = __webpack_require__(78);\nvar enumBugKeys = __webpack_require__(66);\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n\n\n/***/ }),\n/* 112 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(46);\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n\n\n/***/ }),\n/* 113 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* eslint-disable no-proto -- safe */\nvar anObject = __webpack_require__(30);\nvar aPossiblePrototype = __webpack_require__(114);\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n\n\n/***/ }),\n/* 114 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(29);\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n\n\n/***/ }),\n/* 115 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $ = __webpack_require__(51);\nvar from = __webpack_require__(116);\nvar checkCorrectnessOfIteration = __webpack_require__(125);\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es/no-array-from -- required for testing\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n\n\n/***/ }),\n/* 116 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar bind = __webpack_require__(84);\nvar toObject = __webpack_require__(49);\nvar callWithSafeIterationClosing = __webpack_require__(118);\nvar isArrayIteratorMethod = __webpack_require__(120);\nvar toLength = __webpack_require__(52);\nvar createProperty = __webpack_require__(121);\nvar getIteratorMethod = __webpack_require__(122);\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n result = new C();\n for (;!(step = next.call(iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n\n\n/***/ }),\n/* 117 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n\n\n/***/ }),\n/* 118 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(30);\nvar iteratorClose = __webpack_require__(119);\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator);\n throw error;\n }\n};\n\n\n/***/ }),\n/* 119 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(30);\n\nmodule.exports = function (iterator) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) {\n return anObject(returnMethod.call(iterator)).value;\n }\n};\n\n\n/***/ }),\n/* 120 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(21);\nvar Iterators = __webpack_require__(53);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n\n\n/***/ }),\n/* 121 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toPropertyKey = __webpack_require__(60);\nvar definePropertyModule = __webpack_require__(38);\nvar createPropertyDescriptor = __webpack_require__(50);\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n\n\n/***/ }),\n/* 122 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classof = __webpack_require__(123);\nvar Iterators = __webpack_require__(53);\nvar wellKnownSymbol = __webpack_require__(21);\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n\n\n/***/ }),\n/* 123 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(124);\nvar classofRaw = __webpack_require__(65);\nvar wellKnownSymbol = __webpack_require__(21);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n\n\n/***/ }),\n/* 124 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(21);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n\n\n/***/ }),\n/* 125 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(21);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n\n\n/***/ }),\n/* 126 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(20);\n\nmodule.exports = global;\n\n\n/***/ }),\n/* 127 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar parent = __webpack_require__(128);\n\nmodule.exports = parent;\n\n\n/***/ }),\n/* 128 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(129);\nvar entryUnbind = __webpack_require__(85);\n\nmodule.exports = entryUnbind('Array', 'fill');\n\n\n/***/ }),\n/* 129 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $ = __webpack_require__(51);\nvar fill = __webpack_require__(130);\nvar addToUnscopables = __webpack_require__(131);\n\n// `Array.prototype.fill` method\n// https://tc39.es/ecma262/#sec-array.prototype.fill\n$({ target: 'Array', proto: true }, {\n fill: fill\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('fill');\n\n\n/***/ }),\n/* 130 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toObject = __webpack_require__(49);\nvar toAbsoluteIndex = __webpack_require__(79);\nvar toLength = __webpack_require__(52);\n\n// `Array.prototype.fill` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var argumentsLength = arguments.length;\n var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n\n\n/***/ }),\n/* 131 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(21);\nvar create = __webpack_require__(82);\nvar definePropertyModule = __webpack_require__(38);\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n\n\n/***/ }),\n/* 132 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar parent = __webpack_require__(133);\n\nmodule.exports = parent;\n\n\n/***/ }),\n/* 133 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(134);\nvar entryUnbind = __webpack_require__(85);\n\nmodule.exports = entryUnbind('String', 'endsWith');\n\n\n/***/ }),\n/* 134 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(51);\nvar getOwnPropertyDescriptor = __webpack_require__(63).f;\nvar toLength = __webpack_require__(52);\nvar toString = __webpack_require__(56);\nvar notARegExp = __webpack_require__(135);\nvar requireObjectCoercible = __webpack_require__(47);\nvar correctIsRegExpLogic = __webpack_require__(137);\nvar IS_PURE = __webpack_require__(48);\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = toString(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n\n\n/***/ }),\n/* 135 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isRegExp = __webpack_require__(136);\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n\n\n/***/ }),\n/* 136 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(29);\nvar classof = __webpack_require__(65);\nvar wellKnownSymbol = __webpack_require__(21);\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n\n\n/***/ }),\n/* 137 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(21);\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n\n\n/***/ }),\n/* 138 */,\n/* 139 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(86);\n\n\n/***/ })\n/******/ ])[\"default\"];\n});"],"sourceRoot":""}